Ctrl K
ComunidadGuías…

api/pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[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 }