# Keep mlx-vlm / mlx-lm on the same Transformers floor as the main Studio
# environment when uv applies their dependency metadata.
transformers>=5.5.0; python_version >= "3.10"
transformers>=4.57.6; python_version < "3.10"

# mlx-vlm / mlx-lm pull anyio>=4.14, which fights the constraints.txt cap (needed
# for the 4.14 Python-3.13 streaming cancel-scope RuntimeError, #6483). The -c
# constraint loses that fight on macOS-arm, leaving a half-resolved 4.14/4.13
# anyio that also ImportErrors on TaskHandle and 500s the server. An override
# wins the fight, so force one consistent <4.14 here too.
anyio<4.14.0

# mlx-audio (pulled by mlx-vlm>=0.5.0) declares huggingface_hub>=1.0.
#
# On python < 3.10 we are still on the transformers==4.57.6 stack, which needs
# hub<1.0, and constraints.txt pins hub==0.36.2 there. Without the cap uv
# silently backtracks mlx-vlm to 0.4.4, dropping newer VLM/audio support, so the
# cap stays: the resolver must never pair hub 1.x with pinned transformers 4.x.
#
# On python >= 3.10 that premise is gone. diffusers (for MiniMax-H3) requires
# huggingface-hub>=1.23.0,<2.0, and constraints.txt, studio.txt, base.txt and
# no-torch-runtime.txt all moved to that window. A flat <1.0 here contradicts
# them and is unsatisfiable, which is macOS-arm only, so only the mac legs see
# it: uv reports "Because you require huggingface-hub>=0.34.0,<1.0 and
# huggingface-hub>=1.23.0,<2.0, your requirements are unsatisfiable", falls back
# to pip, and the clean-machine trace then fails on a rustc probe. mlx-audio's
# own >=1.0 floor is satisfied by the 1.x window anyway.
huggingface_hub>=1.23.0,<2.0; python_version >= "3.10"
huggingface_hub>=0.34.0,<1.0; python_version < "3.10"
