openai<2,>=1.50
python-dotenv>=1.0.1
gtts>=2.5.0
reportlab>=4.1.0
speechrecognition>=3.10.1
cherrypy>=18.8.0
pydub>=0.25.1
textual<8,>=0.80
cryptography<51,>=48.0.1

[all]
anthropic<2,>=0.40
google-generativeai<1,>=0.7
mistralai<2,>=1.0
cohere<8,>=5.13
huggingface_hub<3,>=0.24
groq<2,>=0.11
pyttsx4>=3.0.0

[anthropic]
anthropic<2,>=0.40

[cohere]
cohere<8,>=5.13

[dev]
pytest<10,>=9.0.3
pytest-cov<8,>=5.0
pytest-asyncio<2,>=1.0
pytest-mock<4,>=3.12
respx<1,>=0.21
ruff<1,>=0.6
mypy<3,>=1.10
bandit<2,>=1.7
pip-audit<3,>=2.7
types-requests
anthropic<2,>=0.40
google-generativeai<1,>=0.7
mistralai<2,>=1.0
cohere<8,>=5.13
huggingface_hub<3,>=0.24
groq<2,>=0.11
pyttsx4>=3.0.0
mcp<3,>=0.9

[google]
google-generativeai<1,>=0.7

[groq]
groq<2,>=0.11

[huggingface]
huggingface_hub<3,>=0.24

[mcp]
mcp<3,>=0.9

[memory]
mem0ai<1,>=0.1

[mic]
pyaudio>=0.2.14

[mistral]
mistralai<2,>=1.0

[offline-tts]
pyttsx4>=3.0.0

[redact]
presidio-analyzer<3,>=2.2

[redis]
redis<9,>=5.0

[tts-local]
kokoro-onnx<1,>=0.4

[watermark]
audioseal<1,>=0.1
torch>=2.1
torchaudio>=2.1
numpy>=1.26
