diff --git a/poetry.lock b/poetry.lock index ea44174..2ec555a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.4.1 and should not be changed by hand. [[package]] name = "aiofile" @@ -30,14 +30,14 @@ files = [ [[package]] name = "anthropic" -version = "0.97.0" +version = "0.107.1" description = "The official Python library for the anthropic API" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "anthropic-0.97.0-py3-none-any.whl", hash = "sha256:8a1a472dfabcfc0c52ff6a3eecf724ac7e07107a2f6e2367be55ceb42f5d5613"}, - {file = "anthropic-0.97.0.tar.gz", hash = "sha256:021e79fd8e21e90ad94dc5ba2bbbd8b1599f424f5b1fab6c06204009cab764be"}, + {file = "anthropic-0.107.1-py3-none-any.whl", hash = "sha256:b74338d08000ba105dfc8adae29af3713ece845a4bffec9986a20697e087c7b3"}, + {file = "anthropic-0.107.1.tar.gz", hash = "sha256:8e7169a6ab57fb806b778d9af018c867bad688144efec8969cdb4c5ccecd6670"}, ] [package.dependencies] @@ -56,6 +56,7 @@ aws = ["boto3 (>=1.28.57)", "botocore (>=1.31.57)"] bedrock = ["boto3 (>=1.28.57)", "botocore (>=1.31.57)"] mcp = ["mcp (>=1.0) ; python_version >= \"3.10\""] vertex = ["google-auth[requests] (>=2,<3)"] +webhooks = ["standardwebhooks (>=1.0.1,<2)"] [[package]] name = "anyio" @@ -165,19 +166,20 @@ files = [ [[package]] name = "authlib" -version = "1.6.9" +version = "1.7.2" description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." optional = true -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] markers = "extra == \"mcp\"" files = [ - {file = "authlib-1.6.9-py2.py3-none-any.whl", hash = "sha256:f08b4c14e08f0861dc18a32357b33fbcfd2ea86cfe3fe149484b4d764c4a0ac3"}, - {file = "authlib-1.6.9.tar.gz", hash = "sha256:d8f2421e7e5980cc1ddb4e32d3f5fa659cfaf60d8eaf3281ebed192e4ab74f04"}, + {file = "authlib-1.7.2-py2.py3-none-any.whl", hash = "sha256:3e1faedc9d87e7d56a164eca3ccb6ace0d61b94abe83e92242f8dc8bba9b4a9f"}, + {file = "authlib-1.7.2.tar.gz", hash = "sha256:2cea25fefcd4e7173bdf1372c0afc265c8034b23a8cd5dcb6a9164b826c64231"}, ] [package.dependencies] cryptography = "*" +joserfc = ">=1.6.0" [[package]] name = "beartype" @@ -512,14 +514,14 @@ files = [ [[package]] name = "click" -version = "8.3.3" +version = "8.4.1" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "click-8.3.3-py3-none-any.whl", hash = "sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613"}, - {file = "click-8.3.3.tar.gz", hash = "sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2"}, + {file = "click-8.4.1-py3-none-any.whl", hash = "sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2"}, + {file = "click-8.4.1.tar.gz", hash = "sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96"}, ] [package.dependencies] @@ -540,14 +542,14 @@ markers = {main = "platform_system == \"Windows\""} [[package]] name = "commitizen" -version = "4.15.1" +version = "4.16.3" description = "Python commitizen client tool" optional = false python-versions = "<4.0,>=3.10" groups = ["dev"] files = [ - {file = "commitizen-4.15.1-py3-none-any.whl", hash = "sha256:8207ee3e0344b483c5e59103d59ce19b96eb7204ccf28c72b65596fa524b06e2"}, - {file = "commitizen-4.15.1.tar.gz", hash = "sha256:cca192e07b2f9d77734044c631da294b3007ef9aa10cc8f0600290aa662e9fa3"}, + {file = "commitizen-4.16.3-py3-none-any.whl", hash = "sha256:ce1be39fe98a16725fd0c960daf0f360acac86db7ae8db1e1df8d3541005b5be"}, + {file = "commitizen-4.16.3.tar.gz", hash = "sha256:5cdca4c02715cc770312f4b505c65a6c39024c73ece41b943bccaf81c44436ed"}, ] [package.dependencies] @@ -969,49 +971,82 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fastmcp" -version = "3.2.4" +version = "3.4.2" description = "The fast, Pythonic way to build MCP servers and clients." optional = true python-versions = ">=3.10" groups = ["main"] markers = "extra == \"mcp\"" files = [ - {file = "fastmcp-3.2.4-py3-none-any.whl", hash = "sha256:e6c9c429171041455e47ab94bb3f83c4657622a0ec28922f6940053959bd58a9"}, - {file = "fastmcp-3.2.4.tar.gz", hash = "sha256:083ecb75b44a4169e7fc0f632f94b781bdb0ff877c6b35b9877cbb566fd4d4d1"}, + {file = "fastmcp-3.4.2-py3-none-any.whl", hash = "sha256:c87a62b029f0c5400ada85f683629345d2466c39169f0cb853e487b2f7308c08"}, + {file = "fastmcp-3.4.2.tar.gz", hash = "sha256:b468722946fc467c3796a6572f7a14d93d48c014cf8fea12910245220cbbe4e1"}, ] [package.dependencies] -authlib = ">=1.6.5" -cyclopts = ">=4.0.0" -exceptiongroup = ">=1.2.2" -griffelib = ">=2.0.0" -httpx = ">=0.28.1,<1.0" -jsonref = ">=1.1.0" -jsonschema-path = ">=0.3.4" -mcp = ">=1.24.0,<2.0" -openapi-pydantic = ">=0.5.1" -opentelemetry-api = ">=1.20.0" -packaging = ">=24.0" +fastmcp-slim = {version = "3.4.2", extras = ["client", "server"]} + +[package.extras] +anthropic = ["fastmcp-slim[anthropic] (==3.4.2)"] +apps = ["fastmcp-slim[apps] (==3.4.2)"] +azure = ["fastmcp-slim[azure] (==3.4.2)"] +code-mode = ["fastmcp-slim[code-mode] (==3.4.2)"] +gemini = ["fastmcp-slim[gemini] (==3.4.2)"] +openai = ["fastmcp-slim[openai] (==3.4.2)"] +tasks = ["fastmcp-slim[tasks] (==3.4.2)"] + +[[package]] +name = "fastmcp-slim" +version = "3.4.2" +description = "The dependency-slim FastMCP package." +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"mcp\"" +files = [ + {file = "fastmcp_slim-3.4.2-py3-none-any.whl", hash = "sha256:bdc72492212681ca502755fa8acc0457f559295da1fc3dfc0599adc1c04b82f3"}, + {file = "fastmcp_slim-3.4.2.tar.gz", hash = "sha256:290646e0955a516235a317151034559aa48336cb843d3f006131aedad8759bb4"}, +] + +[package.dependencies] +authlib = {version = ">=1.6.11", optional = true, markers = "extra == \"client\" or extra == \"server\""} +cyclopts = {version = ">=4.0.0", optional = true, markers = "extra == \"server\""} +exceptiongroup = {version = ">=1.2.2", optional = true, markers = "extra == \"client\" or extra == \"server\""} +griffelib = {version = ">=2.0.0", optional = true, markers = "extra == \"server\""} +httpx = {version = ">=0.28.1,<1.0", optional = true, markers = "extra == \"client\" or extra == \"server\""} +joserfc = {version = ">=1.1.0", optional = true, markers = "extra == \"server\""} +jsonref = {version = ">=1.1.0", optional = true, markers = "extra == \"server\""} +jsonschema-path = {version = ">=0.3.4", optional = true, markers = "extra == \"server\""} +mcp = {version = ">=1.24.0,<2.0", optional = true, markers = "extra == \"client\" or extra == \"server\""} +openapi-pydantic = {version = ">=0.5.1", optional = true, markers = "extra == \"server\""} +opentelemetry-api = {version = ">=1.20.0", optional = true, markers = "extra == \"client\" or extra == \"server\""} +packaging = {version = ">=24.0", optional = true, markers = "extra == \"server\""} platformdirs = ">=4.0.0" -py-key-value-aio = {version = ">=0.4.4,<0.5.0", extras = ["filetree", "keyring", "memory"]} +py-key-value-aio = {version = ">=0.4.4,<0.5.0", extras = ["filetree", "keyring", "memory"], optional = true, markers = "extra == \"client\" or extra == \"server\""} pydantic = {version = ">=2.11.7", extras = ["email"]} -pyperclip = ">=1.9.0" +pydantic-settings = ">=2.0.0" +pyperclip = {version = ">=1.9.0", optional = true, markers = "extra == \"server\""} python-dotenv = ">=1.1.0" -pyyaml = ">=6.0,<7.0" +python-multipart = {version = ">=0.0.26", optional = true, markers = "extra == \"server\""} +pyyaml = {version = ">=6.0,<7.0", optional = true, markers = "extra == \"server\""} rich = ">=13.9.4" -uncalled-for = ">=0.2.0" -uvicorn = ">=0.35" -watchfiles = ">=1.0.0" -websockets = ">=15.0.1" +starlette = {version = ">=1.0.1", optional = true, markers = "extra == \"client\" or extra == \"server\""} +typing-extensions = ">=4.0.0" +uncalled-for = {version = ">=0.2.0", optional = true, markers = "extra == \"server\""} +uvicorn = {version = ">=0.35", optional = true, markers = "extra == \"server\""} +watchfiles = {version = ">=1.0.0", optional = true, markers = "extra == \"server\""} +websockets = {version = ">=15.0.1", optional = true, markers = "extra == \"server\""} [package.extras] anthropic = ["anthropic (>=0.48.0)"] apps = ["prefab-ui (>=0.18.0)"] azure = ["azure-identity (>=1.16.0)", "pyjwt (>=2.12.0)"] -code-mode = ["pydantic-monty (==0.0.11)"] -gemini = ["google-genai (>=1.18.0)"] +client = ["authlib (>=1.6.11)", "exceptiongroup (>=1.2.2)", "httpx (>=0.28.1,<1.0)", "mcp (>=1.24.0,<2.0)", "opentelemetry-api (>=1.20.0)", "py-key-value-aio[filetree,keyring,memory] (>=0.4.4,<0.5.0)", "starlette (>=1.0.1)"] +code-mode = ["pydantic-monty (==0.0.17)"] +gemini = ["google-genai (>=1.18.0)", "jsonref (>=1.1.0)"] +mcp = ["exceptiongroup (>=1.2.2)", "httpx (>=0.28.1,<1.0)", "mcp (>=1.24.0,<2.0)", "opentelemetry-api (>=1.20.0)", "starlette (>=1.0.1)"] openai = ["openai (>=1.102.0)"] -tasks = ["pydocket (>=0.19.0)"] +server = ["authlib (>=1.6.11)", "cyclopts (>=4.0.0)", "exceptiongroup (>=1.2.2)", "griffelib (>=2.0.0)", "httpx (>=0.28.1,<1.0)", "joserfc (>=1.1.0)", "jsonref (>=1.1.0)", "jsonschema-path (>=0.3.4)", "mcp (>=1.24.0,<2.0)", "openapi-pydantic (>=0.5.1)", "opentelemetry-api (>=1.20.0)", "packaging (>=24.0)", "py-key-value-aio[filetree,keyring,memory] (>=0.4.4,<0.5.0)", "pyperclip (>=1.9.0)", "python-multipart (>=0.0.26)", "pyyaml (>=6.0,<7.0)", "starlette (>=1.0.1)", "uncalled-for (>=0.2.0)", "uvicorn (>=0.35)", "watchfiles (>=1.0.0)", "websockets (>=15.0.1)"] +tasks = ["pydocket (>=0.20.0)"] [[package]] name = "filelock" @@ -1584,6 +1619,25 @@ files = [ {file = "jiter-0.13.0.tar.gz", hash = "sha256:f2839f9c2c7e2dffc1bc5929a510e14ce0a946be9365fd1219e7ef342dae14f4"}, ] +[[package]] +name = "joserfc" +version = "1.7.0" +description = "The ultimate Python library for JOSE RFCs, including JWS, JWE, JWK, JWA, JWT" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"mcp\"" +files = [ + {file = "joserfc-1.7.0-py3-none-any.whl", hash = "sha256:17e5d7a5a35e65442b05efc435a3d5d46696ffa2c8a2ed0eea6f63fc268e3224"}, + {file = "joserfc-1.7.0.tar.gz", hash = "sha256:4aced6ab0c47846f0a531402aec2419a874b91e918df9c4c9da8a82fb559d6c4"}, +] + +[package.dependencies] +cryptography = ">=45.0.1" + +[package.extras] +drafts = ["pycryptodome"] + [[package]] name = "jsonpath-python" version = "1.1.5" @@ -1627,7 +1681,7 @@ files = [ [package.dependencies] attrs = ">=22.2.0" -jsonschema-specifications = ">=2023.03.6" +jsonschema-specifications = ">=2023.3.6" referencing = ">=0.28.4" rpds-py = ">=0.25.0" @@ -2490,19 +2544,19 @@ timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows [[package]] name = "pydantic-ai-slim" -version = "1.97.0" +version = "1.106.0" description = "Agent Framework / shim to use Pydantic with LLMs, slim package" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "pydantic_ai_slim-1.97.0-py3-none-any.whl", hash = "sha256:f4e086f6b2141f841aacfdc3a5825a3632bac463e2d49261aaad5789700e93ef"}, - {file = "pydantic_ai_slim-1.97.0.tar.gz", hash = "sha256:f7da3bc68cefa43819e744223bb024f7ff7921d99aefce791e00e33eae84597b"}, + {file = "pydantic_ai_slim-1.106.0-py3-none-any.whl", hash = "sha256:0dd7a99ea3fa89b490098406c2240ba7d75c327eea094c3fd057dd7aa9f3d163"}, + {file = "pydantic_ai_slim-1.106.0.tar.gz", hash = "sha256:e265598c8ee0e903ebb02d0494bb232be4cc8aa463ba1a55aa743cf34135dacf"}, ] [package.dependencies] -anthropic = {version = ">=0.97.0", optional = true, markers = "extra == \"anthropic\""} -genai-prices = ">=0.0.48" +anthropic = {version = ">=0.105.0", optional = true, markers = "extra == \"anthropic\""} +genai-prices = ">=0.0.56" google-genai = {version = ">=1.70.0", optional = true, markers = "extra == \"google\""} griffelib = ">=2.0" httpx = ">=0.27" @@ -2510,25 +2564,25 @@ mistralai = {version = ">=2.0.0,<2.4.6 || >2.4.6", optional = true, markers = "e openai = {version = ">=2.29.0", optional = true, markers = "extra == \"openai\""} opentelemetry-api = ">=1.28.0" pydantic = ">=2.12" -pydantic-graph = "1.97.0" +pydantic-graph = "1.106.0" tiktoken = {version = ">=0.12.0", optional = true, markers = "extra == \"openai\""} typing-inspection = ">=0.4.0" [package.extras] a2a = ["fasta2a (>=0.6.1)"] ag-ui = ["ag-ui-protocol (>=0.1.10)", "starlette (>=0.45.3)"] -anthropic = ["anthropic (>=0.97.0)"] +anthropic = ["anthropic (>=0.105.0)"] bedrock = ["boto3 (>=1.42.63)"] cli = ["argcomplete (>=3.5.0)", "prompt-toolkit (>=3)", "pyperclip (>=1.9.0)", "pyyaml (>=6.0.2)", "rich (>=13)"] cohere = ["cohere (>=5.20.6) ; platform_system != \"Emscripten\""] dbos = ["dbos (>=2.10.0)"] duckduckgo = ["ddgs (>=9.0.0)"] -evals = ["pydantic-evals (==1.97.0)"] +evals = ["pydantic-evals (==1.106.0)"] exa = ["exa-py (>=2.0.0)"] fastmcp = ["fastmcp (>=3.3.0)"] google = ["google-genai (>=1.70.0)"] groq = ["groq (>=0.25.0)"] -huggingface = ["huggingface-hub (>=1.3.4,<2.0.0)"] +huggingface = ["hf-xet (<1.5.0) ; platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"arm64\" or platform_machine == \"aarch64\"", "huggingface-hub (>=1.3.4,<2.0.0)"] logfire = ["logfire[httpx] (>=4.16.0)"] mcp = ["fastmcp-slim[client] (>=3.3.0)"] mistral = ["mistralai (>=2.0.0,!=2.4.6)"] @@ -2536,10 +2590,10 @@ openai = ["openai (>=2.29.0)", "tiktoken (>=0.12.0)"] openrouter = ["openai (>=2.8.0)"] outlines-llamacpp = ["outlines[llamacpp] (>=1.0.0,<1.3.0) ; python_version < \"3.14\""] outlines-mlxlm = ["outlines[mlxlm] (>=1.0.0,<1.3.0) ; python_version < \"3.14\" and platform_system == \"Darwin\" and platform_machine == \"arm64\""] -outlines-sglang = ["outlines[sglang] (>=1.0.0,<1.3.0) ; python_version < \"3.14\"", "pillow (>=12.1.1) ; python_version < \"3.14\""] -outlines-transformers = ["outlines[transformers] (>=1.0.0,<1.3.0) ; python_version < \"3.14\" and (sys_platform != \"darwin\" or platform_machine != \"x86_64\")", "pillow (>=12.1.1) ; python_version < \"3.14\"", "torch (>=2.8.0) ; python_version < \"3.14\" and (sys_platform != \"darwin\" or platform_machine != \"x86_64\")", "transformers (>=4.0.0) ; python_version < \"3.14\""] -outlines-vllm-offline = ["outlines (>=1.0.0,<1.3.0) ; python_version < \"3.14\"", "torch (>=2.8.0) ; python_version < \"3.14\" and (sys_platform != \"darwin\" or platform_machine != \"x86_64\")", "vllm (>=0.15.0) ; python_version < \"3.12\" and (sys_platform != \"darwin\" or platform_machine != \"x86_64\")"] -prefect = ["prefect (>=3.4.21)"] +outlines-sglang = ["outlines[sglang] (>=1.0.0,<1.3.0) ; python_version < \"3.14\"", "pillow (>=12.2.0) ; python_version < \"3.14\""] +outlines-transformers = ["outlines[transformers] (>=1.0.0,<1.3.0) ; python_version < \"3.14\" and (sys_platform != \"darwin\" or platform_machine != \"x86_64\")", "pillow (>=12.2.0) ; python_version < \"3.14\"", "torch (>=2.8.0) ; python_version < \"3.14\" and (sys_platform != \"darwin\" or platform_machine != \"x86_64\")", "transformers (>=4.0.0) ; python_version < \"3.14\""] +outlines-vllm-offline = ["outlines (>=1.0.0,<1.3.0) ; python_version < \"3.14\"", "torch (>=2.8.0) ; python_version < \"3.14\" and (sys_platform != \"darwin\" or platform_machine != \"x86_64\")", "vllm (>=0.20.0) ; python_version < \"3.12\" and (sys_platform != \"darwin\" or platform_machine != \"x86_64\")"] +prefect = ["prefect (>=3.6.13)"] retries = ["tenacity (>=8.2.3)"] sentence-transformers = ["sentence-transformers (>=5.2.0) ; python_version < \"3.14\""] spec = ["pydantic-handlebars (>=0.1.0)", "pyyaml (>=6.0.2)"] @@ -2550,7 +2604,7 @@ vertexai = ["google-auth (>=2.36.0)", "requests (>=2.32.2)"] voyageai = ["voyageai (>=0.3.7) ; python_version < \"3.14\""] web = ["httpx (>=0.27.0)", "starlette (>=0.45.3)", "uvicorn (>=0.38.0)"] web-fetch = ["markdownify (>=1.2)"] -xai = ["xai-sdk (>=1.5.0)"] +xai = ["xai-sdk (>=1.12.2)"] [[package]] name = "pydantic-core" @@ -2687,14 +2741,14 @@ typing-extensions = ">=4.14.1" [[package]] name = "pydantic-graph" -version = "1.97.0" +version = "1.106.0" description = "Graph and state machine library" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "pydantic_graph-1.97.0-py3-none-any.whl", hash = "sha256:db0c95e1686e0fd9843b558ff608fa90ed2cdc56d8b8a7249180216ad56ad764"}, - {file = "pydantic_graph-1.97.0.tar.gz", hash = "sha256:26dade3f9a3a090325f9bc52c72c6fe48470c8d18c746ffd577b7202a72c656b"}, + {file = "pydantic_graph-1.106.0-py3-none-any.whl", hash = "sha256:e6bb61aef0fdb49185a81142d311f94fc3315329345471d12cab85ab5845221f"}, + {file = "pydantic_graph-1.106.0.tar.gz", hash = "sha256:55afa33df4f699ed5c1185f81b6a06e2161958f1aa0c20742b2dae5745e84cce"}, ] [package.dependencies] @@ -2861,22 +2915,22 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests [[package]] name = "pytest-asyncio" -version = "1.3.0" +version = "1.4.0" description = "Pytest support for asyncio" optional = false python-versions = ">=3.10" groups = ["dev"] files = [ - {file = "pytest_asyncio-1.3.0-py3-none-any.whl", hash = "sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5"}, - {file = "pytest_asyncio-1.3.0.tar.gz", hash = "sha256:d7f52f36d231b80ee124cd216ffb19369aa168fc10095013c6b014a34d3ee9e5"}, + {file = "pytest_asyncio-1.4.0-py3-none-any.whl", hash = "sha256:933ca923a23075a87fb7070c0ec272a6848489824d887c85c812670932835aa1"}, + {file = "pytest_asyncio-1.4.0.tar.gz", hash = "sha256:c6c0d2259945122819f171a32ecea2c349ead889ee28176caaf492143424be42"}, ] [package.dependencies] -pytest = ">=8.2,<10" +pytest = ">=8.4,<10" typing-extensions = {version = ">=4.12", markers = "python_version < \"3.13\""} [package.extras] -docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] +docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)", "sphinx-tabs (>=3.5)"] testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] [[package]] @@ -2972,15 +3026,15 @@ yaml = ["PyYaml (>=6.0.1)"] [[package]] name = "python-multipart" -version = "0.0.22" +version = "0.0.32" description = "A streaming multipart parser for Python" optional = true python-versions = ">=3.10" groups = ["main"] markers = "extra == \"mcp\"" files = [ - {file = "python_multipart-0.0.22-py3-none-any.whl", hash = "sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155"}, - {file = "python_multipart-0.0.22.tar.gz", hash = "sha256:7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58"}, + {file = "python_multipart-0.0.32-py3-none-any.whl", hash = "sha256:ff6d3f776f16878c894e52e107296ffc890e913c611b1a4ec6c44e2821fe2e23"}, + {file = "python_multipart-0.0.32.tar.gz", hash = "sha256:be54b7f3fa167bb83e4fcd936b887b708f4e57fe75911c02aebf53efaf8d938e"}, ] [[package]] @@ -3596,15 +3650,15 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "starlette" -version = "1.0.0" +version = "1.2.1" description = "The little ASGI library that shines." optional = true python-versions = ">=3.10" groups = ["main"] markers = "extra == \"mcp\"" files = [ - {file = "starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b"}, - {file = "starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149"}, + {file = "starlette-1.2.1-py3-none-any.whl", hash = "sha256:4de0082d08c8f6764a85a54cf1120d6939507a19905c7768acad2a9f875d2b89"}, + {file = "starlette-1.2.1.tar.gz", hash = "sha256:9b9b5ebb992e67d6093741e63c2f59e4f6fff986f81163c087867bd7b924b3f6"}, ] [package.dependencies] @@ -4200,4 +4254,4 @@ mcp = ["fastmcp"] [metadata] lock-version = "2.1" python-versions = ">=3.12,<4" -content-hash = "c321d78e0a53ecc375eabdb94cb5bbdc36417615b012b36f3d02201dd16a3cba" +content-hash = "755bd701a5cc1ee23b0b759af06d46f51b90ad15a89d2e767b5e49d4cf20213b" diff --git a/pyproject.toml b/pyproject.toml index fb983c0..02f735c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,9 +33,9 @@ classifiers = [ ] dependencies = [ - "click>=8.3.3,<9.0.0", + "click>=8.4.1,<9.0.0", "pydantic>=2.13.4,<3.0.0", - "pydantic-ai-slim[anthropic,google,mistral,openai] (>=1.97.0,<2.0.0)", + "pydantic-ai-slim[anthropic,google,mistral,openai] (>=1.106.0,<2.0.0)", "python-gitlab>=5.1.0,<6.0.0", "rich>=13.9.4,<14.0.0", "pygithub>=2.9.1,<3.0.0", @@ -47,7 +47,7 @@ dependencies = [ [project.optional-dependencies] mcp = [ - "fastmcp (>=3.2.4,<4.0.0)", + "fastmcp (>=3.4.2,<4.0.0)", ] [project.urls] @@ -65,7 +65,7 @@ pytest-cov = "*" ipdb = "*" commitizen = "*" pre-commit = "*" -pytest-asyncio = "^1.2.0" +pytest-asyncio = "^1.4.0" [project.scripts] lgtm = "lgtm_ai.__main__:cli"