mlx==0.32.0
mlx-lm==0.31.3
regex
mlx-embeddings==0.1.0
transformers<5.13,>=5.12.1
mistral-common>=1.10
tokenizers>=0.19.0
huggingface-hub>=1.19.0
numpy<2.4,>=1.24.0
tqdm>=4.66.0
pyyaml>=6.0
packaging>=24
itsdangerous>=2.0
jinja2>=3.0
rich>=13.0.0
sentencepiece
tiktoken
protobuf
requests>=2.28.0
httpx<1,>=0.27.0
cryptography>=42.0.0
socksio>=1.0.0
tabulate>=0.9.0
psutil>=5.9.0
setproctitle>=1.3.3
fastapi>=0.108.0
uvicorn>=0.23.0
websockets<16,>=14.0
python-multipart>=0.0.5
jsonschema>=4.0.0
openai-harmony
cohere_melody>=0.9.0
mlx-vlm==0.6.3
Pillow>=9.0.0
qrcode==8.2
markitdown[docx,pdf,pptx]==0.1.6
markdownify<2,>=1.2.3
openpyxl<4,>=3.1.2
reportlab<5,>=4.2.0
pypdf<7,>=5.0.0
zeroconf<1,>=0.147

[audio]
mlx-audio[sts,stt,tts]==0.4.6
sherpa-onnx==1.13.4
av==18.0.0

[browser]
selenium<5,>=4.35.0

[bundle]
mcp>=1.5.0
modelscope>=1.10.0
selenium<5,>=4.35.0
scipy>=1.11.0
librosa>=0.10.0
miniaudio>=1.59
numba>=0.59.0
pyloudnorm>=0.1.0
sounddevice>=0.4.6
misaki>=0.9.4
num2words>=0.5.14
spacy>=3.8.4
phonemizer-fork>=3.3.2
espeakng-loader>=0.2.4
webrtcvad>=2.0.10
sherpa-onnx==1.13.4
av==18.0.0
mistral-common[audio]>=1.10

[control-plane]
regex
huggingface-hub>=1.19.0
pyyaml>=6.0
packaging>=24
itsdangerous>=2.0
jinja2>=3.0
requests>=2.28.0
httpx<1,>=0.27.0
cryptography>=42.0.0
socksio>=1.0.0
tabulate>=0.9.0
psutil>=5.9.0
setproctitle>=1.3.3
fastapi>=0.108.0
uvicorn>=0.23.0
websockets<16,>=14.0
python-multipart>=0.0.5
jsonschema>=4.0.0
Pillow>=9.0.0
qrcode==8.2
markitdown[docx,pdf,pptx]==0.1.6
markdownify<2,>=1.2.3
openpyxl<4,>=3.1.2
reportlab<5,>=4.2.0
pypdf<7,>=5.0.0
zeroconf<1,>=0.147
selenium<5,>=4.35.0
mcp>=1.5.0

[dev]
pytest>=7.0.0
pytest-asyncio>=0.21.0
black>=23.0.0
ruff>=0.1.0
mypy>=1.0.0
mcp>=1.5.0
venvstacks>=0.7.0
xgrammar==0.2.3
apache-tvm-ffi==0.1.11

[grammar]
xgrammar==0.2.3
apache-tvm-ffi==0.1.11

[mcp]
mcp>=1.5.0

[modelscope]
modelscope>=1.10.0

[paroquant]

[paroquant:python_version >= "3.11"]
paroquant==0.1.16
