Drop mlx-lm as a core dependency
mlx-lm moves to an optional [llm] extra, needed only by the speech-to-speech pipeline's in-process LLM responder - the one place that loads an arbitrary chat model rather than a speech model's own transformer. Its imports move inside LocalLLMResponseEngine, with an actionable ImportError. This also fixes a live bug: voice_pipeline imported mlx_lm at module scope, so 'pip install mlx-audio[sts]' could not import VoicePipeline at all. The modular CI job only passed because the [all] install happened to pull mlx-lm in. Adds test_no_mlx_lm.py as a permanent guard: an AST walk rejecting mlx_lm imports outside the allowed file, a regex sweep for the dynamic importlib/__import__ form, and a check that mlx-lm never returns to [project.dependencies]. Verified with mlx-lm uninstalled: 1237 passed, 40 skipped, no collection errors; parity modules skip cleanly. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A
Alazar Manakelew committed
3d277bcaaad39b40eb12f9dd05d225dfae77b6e6
Parent: ee1d78a