PyYAML>=5.1
requests>=2.32.4
aiohttp>=3.13.5
typing-extensions>=4.0.0
urllib3>=2.6.3

[all]
mcp>=1.23.0
fastmcp>=2.13.0
pywebview>=5.0
fastapi>=0.100.0
uvicorn[standard]>=0.20.0
aiosqlite>=0.19.0
sqlalchemy>=2.0.0
watchdog>=3.0.0
platformdirs>=3.0.0
python-multipart>=0.0.20
pypdf<7,>=6
python-docx<2,>=1.2
Pillow<13,>=11
pytesseract>=0.3.13
psutil>=5.8
memory-profiler>=0.60

[all:python_version < "3.10"]
eval_type_backport>=0.2.0

[all:python_version >= "3.10"]
langgraph<2,>=1.2

[app]
pywebview>=5.0
fastapi>=0.100.0
uvicorn[standard]>=0.20.0
aiosqlite>=0.19.0
sqlalchemy>=2.0.0
watchdog>=3.0.0
platformdirs>=3.0.0
keyring>=23.0.0
httpx>=0.24.0
websockets>=12.0
python-multipart>=0.0.20
pypdf<7,>=6
python-docx<2,>=1.2
Pillow<13,>=11
pytesseract>=0.3.13

[app:python_version < "3.10"]
eval_type_backport>=0.2.0

[app:python_version >= "3.10"]
langgraph<2,>=1.2

[benchmark]
psutil>=5.8
memory-profiler>=0.60

[control-plane]
fastapi>=0.100.0
uvicorn[standard]>=0.20.0

[demo]
fastapi>=0.100.0
uvicorn>=0.20.0
aiosqlite>=0.19.0
sqlalchemy>=2.0.0
platformdirs>=3.0.0
httpx>=0.24.0
python-multipart>=0.0.20
pypdf<7,>=6
python-docx<2,>=1.2
Pillow<13,>=11
pytesseract>=0.3.13

[demo:python_version >= "3.10"]
langgraph<2,>=1.2

[dev]
pytest>=6.0
pytest-cov>=3.0
pytest-xdist>=2.0
pytest-asyncio>=0.21.0
black>=22.0
flake8>=4.0
isort>=5.0
mypy>=0.900
safety>=2.0
bandit>=1.7
psutil>=5.8
fastapi>=0.100.0
httpx>=0.24.0

[mcp]
mcp>=1.23.0
fastmcp>=2.13.0
