numpy>=1.24.0
torch>=2.1.0
sentence-transformers>=2.2.0
scikit-learn>=1.3.0
openai>=1.0.0
huggingface-hub>=0.20.0

[agent]
pydantic-ai<3,>=2.0.0

[all]
anthropic>=0.20.0
google-genai>=1.0.0
pypdf>=4.0.0
turbopuffer>=0.5.0
pydantic-ai<3,>=2.0.0
fastapi>=0.110.0
uvicorn[standard]>=0.29.0
pydantic>=2.0
python-multipart>=0.0.9
mcp>=1.2.0
rank-bm25>=0.2.2

[anthropic]
anthropic>=0.20.0

[bm25]
rank-bm25>=0.2.2

[dev]
build>=1.2.2
check-wheel-contents>=0.6.1
pytest>=7.4.0
pytest-cov>=5.0.0
ruff>=0.14.0
twine>=5.1.1

[docs]
mkdocs-material>=9.5

[google]
google-genai>=1.0.0

[mcp]
mcp>=1.2.0

[observability]
logfire[fastapi,httpx,system-metrics]>=3.0

[pdf]
pypdf>=4.0.0

[service]
fastapi>=0.110.0
uvicorn[standard]>=0.29.0
pydantic>=2.0
python-multipart>=0.0.9

[turbopuffer]
turbopuffer>=0.5.0
