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<1,>=0.80
cryptography<47,>=46.0.7

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

[anthropic]
anthropic<1,>=0.40

[cohere]
cohere<6,>=5.13

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

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

[groq]
groq<1,>=0.11

[huggingface]
huggingface_hub<1,>=0.24

[mcp]
mcp<2,>=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<6,>=5.0

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

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