File size: 3,533 Bytes
d506628
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47e51e7
d506628
 
 
 
 
 
 
 
 
 
 
 
 
 
47e51e7
d506628
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
---
license: apache-2.0
tags:
  - flowcast
  - loudink
  - loudink-v1.1
  - voice-agent
  - mlx
  - apple-silicon
  - compact-ir
  - dictation
  - computer-use
  - skills
  - record-and-replay
library_name: mlx-lm
---

# 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`](https://huggingface.co/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)

```python
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

```json
{"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

```python
# 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.**