loudink-v1.1 v1.1.1 (canary)

On-device dual-stack for LoudInk / Flowcast on Apple Silicon, plus user skills:

  1. Writer β€” LFM2.5-1.2B LoRA (dictation polish / messages / email / prompts)
  2. Planner β€” FunctionGemma compact-IR LoRA (run_skill + freeform computer-use)
  3. Skill store β€” local JSON skills (record β†’ compile β†’ voice replay)

Stable GA line: nsalerni/loudink-v1 (0.4.0 freeze).
This package is the v1.1 canary (PR-A→E). Prefer dual-package client routing with kill-switch to v1.

Product bars (v1.1)

Slice Shipped Neural Latency
Writing daily 100% 100.0% p50 184 ms
Computer daily 100% β€” mostly fast-path
Multi-step 100% β€” mostly fast-path
Daily-Mac overall (n=69) 100% β€” β€”
Skill invoke (n=19) 100% β€” deterministic store
IR honesty (n=112, no FP) β€” 46.4% honesty lineage

Holds loudink-v1 0.4 bars; writing neural improved on expanded suite (~92% vs ~86%).

Bundle layout

writer/                 # optional promoted_core_100.safetensors seed adapter
writer_unified/         # production writer LoRA
ir/                     # skill-aware IR LoRA
ir_honesty_fallback/    # v0.4 honesty IR (optional rollback)
skill_store/            # example seed skills (not user data)
router.json
manifest.json
inference_config.json

Bases are not vendored (size). Pull 4-bit bases:

  • Writer: mlx-community/LFM2.5-1.2B-Instruct-4bit
  • IR: mlx-community/functiongemma-270m-it-4bit

Skills (record β†’ replay)

from huggingface_hub import snapshot_download
from gemmaflow_tune.skills.store import SkillStore
from gemmaflow_tune.skills.invoke import try_skill_invoke_plan

bundle = snapshot_download("nsalerni/loudink-v1.1")
store = SkillStore(f"{bundle}/skill_store")
plan = try_skill_invoke_plan("run my invoice chase for Acme", skill_store=store)

Client should point skill_store_path at a user-writable directory and merge or replace example seeds. Private recordings stay local; do not train cloud models on them by default.

IR extension

{"intent": "run_skill", "skill_id": "invoice_chase", "slots": {"company": "Acme"}, "confidence": 0.92}

Unknown skill_id β†’ null plan (never invent). Freeform (open gmail) never hijacks skills.

Vision (PR-E)

skills/vision.py scaffold is in the training repo; default disabled. Client injects a resolver when ready.

Integration

# runner_kind: loudink_v1
# skill_store_path: {bundle}/skill_store  # or user path
# ir_adapter_path: {bundle}/ir
# writer_unified_adapter_path: {bundle}/writer_unified

See inference_config.json and client_contract.md.

Methods (v1.1)

  • PR-A: Skill schema, store, recorder compiler, null-safe run_skill
  • PR-B: Paraphrase invoke + skill_invoke bench + light IR SFT
  • PR-C: Deterministic slot fill (for / about / named)
  • PR-D: Expanded daily-Mac computer + writing cases
  • PR-E: Vision fallback scaffold (noop until client wires resolver)

License

Apache-2.0 (adapters + example skills). Base model licenses apply to community 4-bit bases. User-recorded skills are user data.

Downloads last month

-

Downloads are not tracked for this model. How to track
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support