litellm<2,>=1.80.9
pydantic<3,>=2.12.5
griffe>=1.15.0
aiosqlite>=0.21.0
typing-extensions<5,>=4.15.0
click<9,>=8.1.7

[a2a]
a2a-sdk[http-server]>=1.0.0

[a2a-postgres]
psycopg[binary,pool]>=3.2

[all]
philharmonica-adk[a2a-postgres,anthropic,checkpointer-postgres,checkpointer-redis,checkpointer-s3,cost-ledger-postgres,cost-ledger-redis,gemini,guardrails,mcp,memory-chroma,memory-pgvector,memory-pinecone,memory-qdrant,openai,otel,rag,serve,server,session-postgres,temporal,verbose,viz,voice]

[anthropic]
anthropic>=0.75.0

[audit-postgres]
psycopg[binary,pool]>=3.2

[audit-s3]
boto3>=1.34.0

[checkpointer-postgres]
psycopg[binary,pool]>=3.2

[checkpointer-redis]
redis>=5.0

[checkpointer-s3]
boto3>=1.34.0

[cost-ledger-postgres]
psycopg[binary,pool]>=3.2

[cost-ledger-redis]
redis>=5.0

[dev]
philharmonica-adk[all,test]
ruff==0.15.7
mypy>=1.15.0
pyright>=1.1.408
types-PyYAML>=6.0
pre-commit>=3.5.0
bandit[toml]>=1.7
pip-audit>=2.7
python-dotenv>=1.2.2
commitizen>=4.4.0
build>=1.2.0

[gemini]
google-genai>=1.0.0

[guardrails]
philharmonica-adk[guardrails-lingua]

[guardrails-lingua]
lingua-language-detector>=2.0.0

[mcp]
mcp<2,>=1.24.0

[memory-chroma]
chromadb>=0.5

[memory-pgvector]
psycopg[binary,pool]>=3.2
pgvector>=0.3

[memory-pinecone]
pinecone>=8.0

[memory-qdrant]
qdrant-client>=1.12

[mermaid]
mermaid-py>=0.5.0

[openai]
openai>=2.0.0

[otel]
opentelemetry-api>=1.39.1
opentelemetry-sdk>=1.39.1
opentelemetry-exporter-otlp>=1.39.1

[rag]
philharmonica-adk[rag-docx,rag-github,rag-pdf,rag-web,rag-youtube]

[rag-docx]
python-docx>=1.1

[rag-github]
PyGithub>=2.1

[rag-pdf]
pymupdf>=1.24

[rag-web]
requests>=2.31
beautifulsoup4>=4.12

[rag-youtube]
youtube-transcript-api>=1.0
pytube>=15.0

[restate]
restate-sdk>=0.18.0

[sandbox]

[sandbox-blaxel]
philharmonica-adk[sandbox-remote-vm]

[sandbox-cloudflare]
philharmonica-adk[sandbox-remote-vm]

[sandbox-daytona]
philharmonica-adk[sandbox-remote-vm]

[sandbox-docker]
docker>=7.0.0

[sandbox-e2b]
philharmonica-adk[sandbox-remote-vm]

[sandbox-gcs]
google-cloud-storage>=2.16.0

[sandbox-k8s]
kubernetes>=30.0.0

[sandbox-modal]
philharmonica-adk[sandbox-remote-vm]

[sandbox-remote-vm]
httpx>=0.27.0

[sandbox-runloop]
philharmonica-adk[sandbox-remote-vm]

[sandbox-s3]
boto3>=1.34.0

[sandbox-vercel]
philharmonica-adk[sandbox-remote-vm]

[serve]
philharmonica-adk[a2a,server]
uvicorn>=0.30

[server]
starlette>=0.37
sse-starlette>=2.0

[session-postgres]
psycopg[binary,pool]>=3.2

[temporal]
temporalio>=1.24.0

[test]
pytest<10,>=9.0.0
pytest-asyncio>=1.0.0
pytest-cov>=7.0.0
pytest-mock>=3.14.0
pytest-timeout>=2.4.0
pytest-xdist>=3.6.0
pytest-rerunfailures>=14.0
coverage[toml]>=7.6.0
parameterized>=0.9.0
inline-snapshot>=0.20.7
fakeredis[lua]>=2.21
moto>=5.0
pytest-postgresql>=6.0

[verbose]
rich>=14.2.0

[viz]
graphviz>=0.20.2

[voice]
philharmonica-adk[openai]
websockets>=13.0
numpy>=1.26

[yaml]
pyyaml>=6.0
