pydantic>=2.4.0
pydantic-settings>=2.0
python-dotenv>=1.2.2
sqlalchemy>=2.0
pyyaml>=6.0
aiofiles>=23.0
jsonschema>=4.0
httpx>=0.24
requests>=2.33.0
cryptography>=44.0.1
gitpython>=3.1.41
lxml>=6.1.0
anthropic>=0.39.0
tiktoken>=0.5.0
rich>=14.0
textual>=0.50
google-generativeai>=0.5
typer>=0.9
psutil>=5.9

[all]
empirica[api,mcp,prose,vector,vision]

[api]
flask>=3.1.3
flask-cors>=4.0.2
werkzeug>=3.1.6
fastapi>=0.115.0
uvicorn>=0.24

[dev]
empirica[lint,test,typecheck]

[lint]
ruff>=0.1.0

[mcp]
mcp>=1.0.0

[prose]
textstat>=0.7
proselint>=0.14

[test]
pytest>=9.0.3
pytest-asyncio>=0.21
pytest-cov>=4.1
pytest-mock>=3.11
dirty-equals>=0.7

[typecheck]
pyright>=1.1.330

[vector]
qdrant-client>=1.7

[vision]
pytesseract>=0.3
pillow>=12.1.1
opencv-contrib-python>=4.12.0
