diff --git a/poetry.lock b/poetry.lock index 14e8706..d3e5154 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1940,6 +1940,33 @@ files = [ [package.dependencies] traitlets = "*" +[[package]] +name = "mcp" +version = "1.5.0" +description = "Model Context Protocol SDK" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "mcp-1.5.0-py3-none-any.whl", hash = "sha256:51c3f35ce93cb702f7513c12406bbea9665ef75a08db909200b07da9db641527"}, + {file = "mcp-1.5.0.tar.gz", hash = "sha256:5b2766c05e68e01a2034875e250139839498c61792163a7b221fc170c12f5aa9"}, +] + +[package.dependencies] +anyio = ">=4.5" +httpx = ">=0.27" +httpx-sse = ">=0.4" +pydantic = ">=2.7.2,<3.0.0" +pydantic-settings = ">=2.5.2" +sse-starlette = ">=1.6.1" +starlette = ">=0.27" +uvicorn = ">=0.23.1" + +[package.extras] +cli = ["python-dotenv (>=1.0.0)", "typer (>=0.12.4)"] +rich = ["rich (>=13.9.4)"] +ws = ["websockets (>=15.0.1)"] + [[package]] name = "mdit-py-plugins" version = "0.4.2" @@ -2409,14 +2436,14 @@ files = [ [[package]] name = "openai" -version = "1.65.1" +version = "1.68.2" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "openai-1.65.1-py3-none-any.whl", hash = "sha256:396652a6452dd42791b3ad8a3aab09b1feb7c1c4550a672586fb300760a8e204"}, - {file = "openai-1.65.1.tar.gz", hash = "sha256:9d9370a20d2b8c3ce319fd2194c2eef5eab59effbcc5b04ff480977edc530fba"}, + {file = "openai-1.68.2-py3-none-any.whl", hash = "sha256:24484cb5c9a33b58576fdc5acf0e5f92603024a4e39d0b99793dfa1eb14c2b36"}, + {file = "openai-1.68.2.tar.gz", hash = "sha256:b720f0a95a1dbe1429c0d9bb62096a0d98057bcda82516f6e8af10284bdd5b19"}, ] [package.dependencies] @@ -2432,6 +2459,7 @@ typing-extensions = ">=4.11,<5" [package.extras] datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] realtime = ["websockets (>=13,<15)"] +voice-helpers = ["numpy (>=2.0.2)", "sounddevice (>=0.5.1)"] [[package]] name = "opentelemetry-api" @@ -2979,33 +3007,33 @@ timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows [[package]] name = "pydantic-ai" -version = "0.0.40" +version = "0.0.44" description = "Agent Framework / shim to use Pydantic with LLMs" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pydantic_ai-0.0.40-py3-none-any.whl", hash = "sha256:d7cb87e3dafc3723ededa70e741c705fa588cb49ab7a1960c0f11c58aab2cc6c"}, - {file = "pydantic_ai-0.0.40.tar.gz", hash = "sha256:db4ac09b8590cdf232190bad2203ce37b12057ad35b93fb305f06fbcb3245e1e"}, + {file = "pydantic_ai-0.0.44-py3-none-any.whl", hash = "sha256:fd5c6b025ea5ebc9499b0d29bf1c491addeec2776e14968ad03bea687cb5e67c"}, + {file = "pydantic_ai-0.0.44.tar.gz", hash = "sha256:7a224710f4ffd87a07c1935f9e26a56ce9adf304147f608c6c2dd4fafa703967"}, ] [package.dependencies] -pydantic-ai-slim = {version = "0.0.40", extras = ["anthropic", "bedrock", "cli", "cohere", "groq", "mistral", "openai", "vertexai"]} +pydantic-ai-slim = {version = "0.0.44", extras = ["anthropic", "bedrock", "cli", "cohere", "groq", "mcp", "mistral", "openai", "vertexai"]} [package.extras] -examples = ["pydantic-ai-examples (==0.0.40)"] +examples = ["pydantic-ai-examples (==0.0.44)"] logfire = ["logfire (>=2.3)"] [[package]] name = "pydantic-ai-slim" -version = "0.0.40" +version = "0.0.44" description = "Agent Framework / shim to use Pydantic with LLMs, slim package" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pydantic_ai_slim-0.0.40-py3-none-any.whl", hash = "sha256:5b67312dd50c0954105553dcf1ad9b0f02a9bfae1937a2a25ede21b038395aa8"}, - {file = "pydantic_ai_slim-0.0.40.tar.gz", hash = "sha256:f143f3ec6c2894a1d9f177a3a46c4a0bbe5b765ae84319d54d0695320dab17ad"}, + {file = "pydantic_ai_slim-0.0.44-py3-none-any.whl", hash = "sha256:f21f44464e6be5713dccf80b0832f15ffb4090212682960aea174ac48941c8e5"}, + {file = "pydantic_ai_slim-0.0.44.tar.gz", hash = "sha256:5c8c53acd2d13e25ed3c568b15992a4f9c0d827878d1e5c2c8a9256d56e6f5ab"}, ] [package.dependencies] @@ -3016,14 +3044,15 @@ cohere = {version = ">=5.13.11", optional = true, markers = "extra == \"cohere\" eval-type-backport = ">=0.2.0" google-auth = {version = ">=2.36.0", optional = true, markers = "extra == \"vertexai\""} griffe = ">=1.3.2" -groq = {version = ">=0.12.0", optional = true, markers = "extra == \"groq\""} +groq = {version = ">=0.15.0", optional = true, markers = "extra == \"groq\""} httpx = ">=0.27" +mcp = {version = ">=1.4.1", optional = true, markers = "python_version >= \"3.10\" and extra == \"mcp\""} mistralai = {version = ">=1.2.5", optional = true, markers = "extra == \"mistral\""} -openai = {version = ">=1.65.1", optional = true, markers = "extra == \"openai\""} +openai = {version = ">=1.67.0", optional = true, markers = "extra == \"openai\""} opentelemetry-api = ">=1.28.0" prompt-toolkit = {version = ">=3", optional = true, markers = "extra == \"cli\""} pydantic = ">=2.10" -pydantic-graph = "0.0.40" +pydantic-graph = "0.0.44" requests = {version = ">=2.32.3", optional = true, markers = "extra == \"vertexai\""} rich = {version = ">=13", optional = true, markers = "extra == \"cli\""} typing-inspection = ">=0.4.0" @@ -3034,10 +3063,11 @@ bedrock = ["boto3 (>=1.34.116)"] cli = ["argcomplete (>=3.5.0)", "prompt-toolkit (>=3)", "rich (>=13)"] cohere = ["cohere (>=5.13.11)"] duckduckgo = ["duckduckgo-search (>=7.0.0)"] -groq = ["groq (>=0.12.0)"] +groq = ["groq (>=0.15.0)"] logfire = ["logfire (>=2.3)"] +mcp = ["mcp (>=1.4.1) ; python_version >= \"3.10\""] mistral = ["mistralai (>=1.2.5)"] -openai = ["openai (>=1.65.1)"] +openai = ["openai (>=1.67.0)"] tavily = ["tavily-python (>=0.5.0)"] vertexai = ["google-auth (>=2.36.0)", "requests (>=2.32.3)"] @@ -3156,14 +3186,14 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pydantic-graph" -version = "0.0.40" +version = "0.0.44" description = "Graph and state machine library" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pydantic_graph-0.0.40-py3-none-any.whl", hash = "sha256:02d7465ac824971b03017117b81b756e7763b1406c1e13f330bb8e78e299ce4b"}, - {file = "pydantic_graph-0.0.40.tar.gz", hash = "sha256:0dd25950e5c6c943a25acf01e2b5c5b17ba32c554ea7d783aa2a036f700ea52e"}, + {file = "pydantic_graph-0.0.44-py3-none-any.whl", hash = "sha256:f0a4dfcc0d0d82e60dbf542371e09ef5d8a6ac5e12758bfd14f02d5e76a81122"}, + {file = "pydantic_graph-0.0.44.tar.gz", hash = "sha256:bf7e58a0e19caa801e8c0209badc4bc0bca571c34439b01dfc7993fe30ed94f9"}, ] [package.dependencies] @@ -3172,6 +3202,27 @@ logfire-api = ">=1.2.0" pydantic = ">=2.10" typing-inspection = ">=0.4.0" +[[package]] +name = "pydantic-settings" +version = "2.8.1" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "pydantic_settings-2.8.1-py3-none-any.whl", hash = "sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c"}, + {file = "pydantic_settings-2.8.1.tar.gz", hash = "sha256:d5c663dfbe9db9d5e1c646b2e161da12f0d734d422ee56f567d0ea2cee4e8585"}, +] + +[package.dependencies] +pydantic = ">=2.7.0" +python-dotenv = ">=0.21.0" + +[package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + [[package]] name = "pygments" version = "2.19.1" @@ -3313,6 +3364,21 @@ files = [ [package.dependencies] six = ">=1.5" +[[package]] +name = "python-dotenv" +version = "1.1.0" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"}, + {file = "python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + [[package]] name = "python-multipart" version = "0.0.20" @@ -3891,6 +3957,26 @@ files = [ {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, ] +[[package]] +name = "sse-starlette" +version = "2.2.1" +description = "SSE plugin for Starlette" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "sse_starlette-2.2.1-py3-none-any.whl", hash = "sha256:6410a3d3ba0c89e7675d4c273a301d64649c03a5ef1ca101f10b47f895fd0e99"}, + {file = "sse_starlette-2.2.1.tar.gz", hash = "sha256:54470d5f19274aeed6b2d473430b08b4b379ea851d953b11d7f1c4a2c118b419"}, +] + +[package.dependencies] +anyio = ">=4.7.0" +starlette = ">=0.41.3" + +[package.extras] +examples = ["fastapi"] +uvicorn = ["uvicorn (>=0.34.0)"] + [[package]] name = "stack-data" version = "0.6.3" @@ -4435,4 +4521,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = "^3.11" -content-hash = "57d7f3de2e17e5696e0de11e57bb63542d1211b818fdaede2aa8c730e3058c62" +content-hash = "dbc6b0a76edf7365788696adf4fb0edaf56d52bba47021e301bb42741165c20f" diff --git a/pyproject.toml b/pyproject.toml index c2abe94..ae3355e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ matplotlib = "^3.9.2" # Visualization of results jinja2 = "^3.1.4" # Templating for code generation sentry_sdk = "^2.22.0" # Error tracking tomli = "^2.2.1" # TOML parsing -pydantic-ai = ">=0.0.24,<0.0.41" # Pydantic extension for AI models +pydantic-ai = ">=0.0.24,<0.0.45" # Pydantic extension for AI models # crewai = "^0.102.0" # CrewAI integration # autogen = "^0.4.0" # Code generation python-multipart = "^0.0.20" # For file uploads in FastAPI