anthropic<2,>=1.0
bandit>=1.8.6
tenacity>=8.2.0
openai<3,>=1.12.0
fastapi>=0.109.0
uvicorn[standard]>=0.27.0
websockets>=12.0
pydantic>=2.6.0
pydantic-settings>=2.1.0
python-dotenv>=1.2.2
sqlalchemy>=2.0.0
aiosqlite>=0.19.0
aiohttp>=3.14.0
yarl<2,>=1.22
httpx>=0.27.0
typer<0.28,>=0.27
rich>=13.7.0
textual>=0.86.0
requests>=2.33.0
gitpython<4,>=3.1.60
pyyaml>=6.0.0
tree-sitter>=0.20.4
tree-sitter-python>=0.20.4
tree-sitter-javascript>=0.20.3
tree-sitter-typescript>=0.20.3
tiktoken>=0.12.0
radon>=6.0.1
pytest<10,>=9.0.3
ruff>=0.14.0
pytest-asyncio>=1.4.0
pytest-json-report>=1.5.0
hypothesis>=6.148.0
fastapi-users[sqlalchemy]>=15.0.2
filelock>=3.0
bcrypt>=4.2.0
keyring>=24.0.0
jinja2>=3.1.6
slowapi>=0.1.9
rapidfuzz>=3.0.0
starlette>=1.0.1
python-multipart>=0.0.27
pyjwt>=2.15.0
cryptography>=46.0.7
urllib3>=2.8.0
mcp>=1.23.0
idna>=3.15

[cloud]
e2b>=2.0.0

[dev]
pytest<10,>=9.0.3
pytest-asyncio>=1.4.0
pytest-cov>=4.1.0
pytest-json-report>=1.5.0
pytest-timeout>=2.3.0
black>=26.3.1
ruff>=0.2.0
mypy>=1.8.0
pre-commit>=3.5.0
hypothesis>=6.0.0
e2b>=2.0.0
jsonschema>=4.0.0
limits[redis]

[redis]
limits[redis]
