api/pyproject.toml
Rama main · réplica de lectura del repositorio original.
[project]
name = "api"
version = "0.128.11"
description = "Agenta API"
requires-python = ">=3.11,<3.14"
authors = [
{ name = "Mahmoud Mabrouk", email = "mahmoud@agenta.ai" },
{ name = "Juan Vega", email = "jp@agenta.ai" },
]
dependencies = [
"agenta[server-tracing]",
"fastapi>=0.139,<0.140",
"pydantic[email]>=2,<3",
# MCP OAuth uses the SDK's TokenStorage protocol and OAuth wire contracts directly.
# Keep this exact: a range would silently change those contracts underneath us, and
# the contract case beside the OAuth storage asserts this exact version, so a relock
# that moved within a range turned the branch red (M16).
"mcp==2.2.0",
"uvicorn[standard]>=0.51,<0.52",
"gunicorn>=26,<27",
"httpx>=0.28,<0.29",
"structlog>=26,<27",
"python-dotenv>=1,<2",
"python-multipart>=0.0.32,<0.0.33",
"cryptography>=49,<51",
"sqlalchemy>=2,<3",
"sqlalchemy-utils>=0.42,<0.43",
"sqlalchemy-json>=0.7,<0.8",
"greenlet>=3,<4",
"asyncpg>=0.31,<0.32",
"alembic>=1,<2",
"orjson>=3,<4",
"jsonschema>=4,<5",
"genson>=1,<2",
"python-jsonpath>=2,<3",
"uuid-utils>=0.17,<0.18",
"taskiq>=0.12,<0.13",
"taskiq-redis>=1,<2",
"redis>=8,<9",
"cachetools>=7,<8",
"supertokens-python>=0.31,<0.32",
"openai>=2,<3",
"litellm>=1.98,<2,!=1.107.0",
"sendgrid>=6,<7",
"stripe>=15,<16",
"posthog>=7,<8",
"dnspython>=2,<3",
"opentelemetry-proto>=1,<2",
"croniter>=6,<7",
"miniopy-async>=1.21.3,<1.22",
"pathspec>=0.12,<0.13",
"stream-zip>=0.0.83,<0.1",
"puremagic>=1.30,<2",
"pyyaml>=6,<7",
"google-auth>=2.40",
]
[dependency-groups]
dev = [
"watchdog[watchmedo]>=3,<4",
"click>=8,<9",
"pytest>=9,<10",
"pytest-asyncio>=1,<2",
"pytest-xdist>=3,<4",
"pytest-mock>=3,<4",
"pytest-html>=4,<5",
"fakeredis>=2.34.1,<3",
# Test-only: scoped-session cleanup tests run against in-memory SQLite
# via aiosqlite; not needed at runtime (production uses asyncpg).
"aiosqlite>=0.20,<1",
# Starlette 1.2's TestClient prefers httpx2 and warns when only httpx is
# present. Runtime code stays on httpx (0.28); this test-only dep silences
# the deprecation without touching the runtime HTTP stack.
"httpx2>=2.3,<3",
]
[tool.uv]
package = false
# miniopy-async 1.21.x caps certifi below 2026, which blocks the certifi security fix
# (GHSA-6q48-6c7w-9gw2). Its code only needs certifi's CA bundle, so lift the cap here.
# miniopy-async must stay on 1.21.3: 1.21.1 returns a tuple from remove_objects and
# storage.py iterates it with `async for`.
override-dependencies = ["certifi>=2026.10.18"]
[tool.uv.sources]
agenta = { path = "../sdks/python", editable = true }