aiohttp<4,>=3.9
websockets<17,>=12
cron-descriptor<3,>=1.4
croniter<7,>=2.0
numpy<3,>=1.21
snowballstemmer>=1.0
python-docx<2,>=0.8.6
pdfplumber<1,>=0.11
python-pptx<2,>=0.6.21
html2text>=2020.1.16
trafilatura<3,>=2
nh3>=0.2
openpyxl<4,>=3.1
Pillow<13,>=10
httpx>=0.27
PyYAML<7,>=6
python-dotenv>=1.0

[:sys_platform == "linux" and platform_machine == "x86_64"]
pysqlite3-binary>=0.5.4

[anthropic]
anthropic>=0.20

[bedrock]
boto3>=1.34

[dev]
personalclaw[test]
personalclaw[models]
personalclaw[mcp]
personalclaw[bedrock]
black<27,>=26
isort>=5
flake8>=7
mypy>=1.5
build>=1.0

[embeddings]
sentence-transformers>=3.0
faiss-cpu>=1.7

[eval]
jinja2>=3.0

[httpx]
httpx>=0.27

[js-render]
playwright>=1.40

[mcp]
mcp>=1.2

[models]
personalclaw[embeddings]
personalclaw[stt]
personalclaw[tts]

[oauth2]
cryptography>=42

[openai]
openai>=1.0

[slack]
slack-sdk<4,>=3.27

[stt]
faster-whisper>=1.0

[test]
pytest>=7
pytest-asyncio>=0.23
pytest-xdist>=3
pytest-timeout>=2
pytest-cov>=4
hypothesis>=6

[tts]
huggingface-hub>=0.23
piper-tts>=1.2
