mlx: include sibling commons headers before the packaged ones

SI
17h ago
+129-126

Summary

  • rac_mlx.h now includes the decision, LLM, and speech headers that sit next to it in core/include before it looks at a packaged include path.
  • A Swift build was failing because the packaged headers had rac/core/rac_error.h but not rac/features/decision/rac_decision_service.h.

Test plan

  • CI on this PR is green.

Made with Cursor


Summary by cubic

Adds LFM3 Omni and LFM3 D1 support across the MLX Swift runtime and llama.cpp, fixes a Swift build failure in rac_mlx.h by preferring sibling commons headers from core/include before the packaged ones, and enables git long paths on Windows so the llama.cpp fetch doesn't hit MAX_PATH.

  • Bumps llama.cpp to runanywhere-b10453.10 and mlx-swift-lm to 3.31.14; mlx-audio-swift moves from the 0.1.9 tag to a branch carrying that version.
  • The MLX runtime loads lfm3_omni checkpoints with the VLM factory and scores both lfm3_vl and lfm3-d1 checkpoints with a new LFM3D1 model.
  • llama.cpp chat formatting now runs the model's Jinja template via common_chat_templates_apply; the old llama_chat_apply_template detected ChatML and dropped LFM3-Omni's prefilled thinking response, and the plain-text fallback is kept for template failures.
  • Trains the desktop kit version at 0.20.43; published SDK assets stay pinned at 0.20.37, with XCFramework checksums refreshed from a local build of the new llama.cpp and mlx-swift-lm versions.

Summary by CodeRabbit

  • New Features

    • Added support for loading and scoring LFM3 decision models in the Swift MLX runtime.
    • Added recognition of LFM3 decision models in the llama.cpp runtime.
  • Improvements

    • Improved chat-template handling, with a plain-text fallback if template processing fails.
    • Updated the llama.cpp runtime version across supported platforms.
    • Updated the MLX Swift language-model dependency.