pi-fabric 0.44.12 → 0.44.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"capability-advisory.d.ts","sourceRoot":"","sources":["../../src/core/capability-advisory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAQ7D,eAAO,MAAM,+BAA+B,yBAAyB,CAAC;AA+BtE,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QAAE,OAAO,EAAE,uBAAuB,EAAE,CAAA;KAAE,CAAC;CACjD;AAED,KAAK,oBAAoB,GAAG,OAAO,GAAG,SAAS,CAAC;AAMhD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAoBD,qBAAa,iBAAiB;;IAS5B,OAAO,CAAC,WAAW,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAIpD,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI;IAIhD,UAAU,IAAI,cAAc,EAAE;IAO9B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAc1C,OAAO,IAAI,IAAI;IASf,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,8BAA8B,GACrC,wBAAwB,GAAG,SAAS;CAyKxC"}
1
+ {"version":3,"file":"capability-advisory.d.ts","sourceRoot":"","sources":["../../src/core/capability-advisory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAQ7D,eAAO,MAAM,+BAA+B,yBAAyB,CAAC;AA+BtE,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QAAE,OAAO,EAAE,uBAAuB,EAAE,CAAA;KAAE,CAAC;CACjD;AAED,KAAK,oBAAoB,GAAG,OAAO,GAAG,SAAS,CAAC;AAMhD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAgED,qBAAa,iBAAiB;;IAS5B,OAAO,CAAC,WAAW,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAIpD,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI;IAIhD,UAAU,IAAI,cAAc,EAAE;IAO9B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAc1C,OAAO,IAAI,IAAI;IASf,QAAQ,CACN,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,8BAA8B,GACrC,wBAAwB,GAAG,SAAS;CAiKxC"}
@@ -37,7 +37,40 @@ const STEER_LINE = "Steer: prefer these captured tools over re-implementing the
37
37
  const SKILL_REGION = /<available_skills\b[^>]*>[\s\S]*?(?:<\/available_skills\s*>|$)|<skill\b[^>]*>[\s\S]*?(?:<\/skill\s*>|$)/g;
38
38
  const stripSkillRegions = (prompt) => prompt.replace(SKILL_REGION, " ");
39
39
  const estimateTokens = (text) => Math.ceil(text.length / 4);
40
- const formatRef = (name, description) => `${ADVISORY_REF_PREFIX}.${name} (${truncateAdvisoryDescription(description)})`;
40
+ // One source = one tree block: the source label, then one row per shown tool
41
+ // (name, then the truncated description after an em-dash on the rich rung),
42
+ // then a leaf counting — and naming — the tools that didn't make the cut.
43
+ const renderTree = (blocks, withDescriptions) => {
44
+ const lines = [];
45
+ for (const block of blocks) {
46
+ lines.push(` ${block.label}`);
47
+ const rows = block.names.map((name, index) => {
48
+ const ref = `${ADVISORY_REF_PREFIX}.${name}`;
49
+ const description = block.descriptions[index] ?? "";
50
+ return withDescriptions && description
51
+ ? `${ref} — ${truncateAdvisoryDescription(description)}`
52
+ : ref;
53
+ });
54
+ if (block.leftoverNames.length > 0) {
55
+ const listed = block.leftoverNames.slice(0, 3).join(", ");
56
+ rows.push(`+${block.leftoverNames.length} more: ${listed}${block.leftoverNames.length > 3 ? ", …" : ""}`);
57
+ }
58
+ rows.forEach((row, index) => {
59
+ lines.push(` ${index === rows.length - 1 ? "└─" : "├─"} ${row}`);
60
+ });
61
+ }
62
+ return lines;
63
+ };
64
+ // Leanest non-trivial rung: one line per source, bare refs with leftovers
65
+ // inline — the actionable identity of each capability, no prose.
66
+ const renderFlat = (blocks) => blocks.map((block) => {
67
+ const refs = block.names.map((name) => `${ADVISORY_REF_PREFIX}.${name}`);
68
+ const listed = block.leftoverNames.slice(0, 3).join(", ");
69
+ const leftover = block.leftoverNames.length > 0
70
+ ? `, +${block.leftoverNames.length} more: ${listed}${block.leftoverNames.length > 3 ? ", …" : ""}`
71
+ : "";
72
+ return ` ${block.label} — ${refs.join(", ")}${leftover}`;
73
+ });
41
74
  export class CapabilityAdvisor {
42
75
  #index = buildCapabilityIndex([]);
43
76
  #ash = new Map();
@@ -179,57 +212,52 @@ export class CapabilityAdvisor {
179
212
  const header = included[0] !== undefined && included[0].score >= config.threshold + WEAK_MATCH_BAND
180
213
  ? BASE_HEADER
181
214
  : WEAK_HEADER;
182
- // Structured like fovea's sync advisories: headline, grouped candidate
183
- // lines, a Next: action pointing at the top ref, and a Steer: directive.
184
- const lines = [`${header} prompt terms matched captured tools.`, "Candidates:"];
215
+ // Structured like fovea's sync advisories: headline, a tree of
216
+ // candidates grouped by source, a Next: action pointing at the top ref,
217
+ // and a Steer: directive.
218
+ const headerLine = `${header} prompt terms matched captured tools.`;
219
+ const blocks = [];
185
220
  let shown = 0;
186
221
  for (const match of included) {
187
- const total = match.names.length;
188
- const refs = [];
189
222
  const cappedNames = [];
190
223
  const cappedDescriptions = [];
191
- for (let index = 0; index < total; index++) {
224
+ for (let index = 0; index < match.names.length; index++) {
192
225
  const name = match.names[index];
193
226
  if (name !== undefined &&
194
227
  cappedNames.length < MAX_NAMES_PER_SOURCE &&
195
228
  shown < MAX_ADVISORY_NAMES) {
196
- refs.push(formatRef(name, match.descriptions[index] ?? ""));
197
229
  cappedNames.push(name);
198
230
  cappedDescriptions.push(match.descriptions[index] ?? "");
199
231
  shown++;
200
232
  }
201
233
  }
202
- match.omitted = total - cappedNames.length;
234
+ match.omitted = match.names.length - cappedNames.length;
235
+ const leftoverNames = match.names.slice(cappedNames.length);
203
236
  match.names = cappedNames;
204
237
  match.descriptions = cappedDescriptions;
205
- lines.push(` ${match.label} — ${refs.join(", ")}${match.omitted > 0 ? `, +${match.omitted} more` : ""}`);
206
- }
207
- const topName = included[0]?.names[0];
208
- let nextLine = "";
209
- if (topName !== undefined) {
210
- nextLine = `Next: tools.describe('${topName}') for its schema, then ${ADVISORY_REF_PREFIX}.${topName}({…}) inside fabric_exec.`;
238
+ blocks.push({
239
+ label: match.label,
240
+ names: cappedNames,
241
+ descriptions: cappedDescriptions,
242
+ leftoverNames,
243
+ });
211
244
  }
212
- // Budget squeeze (fovea pattern): drop trailing candidate lines first,
213
- // then bare-name refs, then the Next: line, always keeping the header and
214
- // steer. Details keep the full (pre-squeeze) picture regardless.
215
- const sourceCount = lines.length - 2; // headline + "Candidates:" at index 0-1
245
+ const topName = blocks[0]?.names[0];
246
+ const nextLine = topName === undefined
247
+ ? ""
248
+ : `Next: tools.describe('${topName}') for its schema, then ${ADVISORY_REF_PREFIX}.${topName}({…}) inside fabric_exec.`;
249
+ // Budget squeeze (fovea pattern): walk the ladder until a rung fits —
250
+ // tree with descriptions → tree, names only → flat names-only per source
251
+ // (dropping Next: alongside the tree) → header + steer as the floor.
252
+ // Details keep the full (pre-squeeze) picture regardless.
253
+ const rungs = [
254
+ [...renderTree(blocks, true), ...(nextLine ? [nextLine] : [])],
255
+ [...renderTree(blocks, false), ...(nextLine ? [nextLine] : [])],
256
+ renderFlat(blocks),
257
+ ];
216
258
  let content = "";
217
- for (let drop = 0; drop <= sourceCount + 1; drop++) {
218
- const kept = lines.slice(0, 2 + Math.max(0, sourceCount - drop));
219
- const descriptionFree = drop > sourceCount;
220
- const rendered = descriptionFree
221
- ? [
222
- ...kept.slice(0, 2),
223
- ...included.map((match) => ` ${match.label} — ${match.names
224
- .map((name) => `${ADVISORY_REF_PREFIX}.${name}`)
225
- .join(", ")}`),
226
- ]
227
- : kept;
228
- const parts = [...rendered];
229
- if (!descriptionFree && nextLine)
230
- parts.push(nextLine);
231
- parts.push(STEER_LINE);
232
- const candidate = parts.join("\n");
259
+ for (const rung of rungs) {
260
+ const candidate = [headerLine, "Candidates:", ...rung, STEER_LINE].join("\n");
233
261
  if (estimateTokens(candidate) <= config.budget) {
234
262
  content = candidate;
235
263
  break;
@@ -237,7 +265,7 @@ export class CapabilityAdvisor {
237
265
  }
238
266
  if (!content) {
239
267
  // Pathological budget: header + steer only, refs survive in details.
240
- content = `${lines[0] ?? BASE_HEADER}\n${STEER_LINE}`;
268
+ content = `${headerLine}\n${STEER_LINE}`;
241
269
  }
242
270
  for (const match of included) {
243
271
  this.#ash.set(match.namespace, {
@@ -1 +1 @@
1
- {"version":3,"file":"capability-advisory.js","sourceRoot":"","sources":["../../src/core/capability-advisory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-advisory.js","sourceRoot":"","sources":["../../src/core/capability-advisory.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ each source's corpus is its tools' names plus descriptions. A prompt scores
27
27
  against each unburned source as the sum of matched-term weights:
28
28
 
29
29
  $$
30
- s(p, j) = \sum_{t \in T(p) \cap T(j)} \frac{1}{\mathrm{df}(t)}, \qquad \mathrm{df}(t) = \bigl|\{ j : t \in T(j) \bigr\|
30
+ s(p, j) = \sum_{t \in T(p) \cap T(j)} \frac{1}{\mathrm{df}(t)}, \qquad \mathrm{df}(t) = \Bigl|\{ j : t \in T(j) \}\Bigr|
31
31
  $$
32
32
 
33
33
  The weight is *plain* $1/\mathrm{df}$, not $\ln(N/\mathrm{df})$ tf-idf. Classic idf
@@ -153,7 +153,7 @@ before the turn closed? A fire that the model ignored is smoke; a streak of
153
153
  smoke raises the weak-band ignition point:
154
154
 
155
155
  $$
156
- \theta_i = \theta \cdot \bigl(1 + \tfrac{n}{\tau^2}\bigr), \qquad 0 \leq n \leq \tau^2 \quad (\tau = 2: \\ \text{step } 0.25\theta,\ \text{cap } 4)
156
+ \theta_i = \theta \cdot \bigl(1 + n / \tau^2\bigr), \qquad 0 \leq n \leq \tau^2
157
157
  $$
158
158
 
159
159
  where $n$ is the consecutive no-use streak (capped at 4, so ignition never
@@ -234,7 +234,7 @@ Fabric risk classes are `read`, `write`, `execute`, `network`, and `agent`; appr
234
234
  - Captured and directly registered tools default to the conservative `execute` risk because Pi tool definitions do not declare effects. Add exact tool-name overrides under `capture.risks`. Fovea's verified graph-navigation tools (`fovea_sketch`, `fovea_focus`, `fovea_dwell`, and `fovea_impact`) are read-only exceptions and default to `read`.
235
235
  - Set `capture.hideFromModel` to `false` to index non-core extension tools without hiding them from the model's active set.
236
236
  - `capture.keepVisible` names stay in both Fabric and Pi's model-facing active set, except that Pi core names are always Fabric-owned in full code mode.
237
- - `capture.advisory` injects a capability hint at `before_agent_start` when the prompt's terms match a captured source's tf-idf fingerprint (names + descriptions grouped by source namespace, no manifest declarations needed). `mode: "enabled"` (default) renders the hint in the transcript, `"hidden"` delivers it to the model only, and `"disabled"` turns it off. Each capability fires at most once — the fired set persists in `<agent-dir>/fabric/capability-advisories.json` across session restarts; `maxPerSession` (default 3) caps hints within a session, `threshold` (default 0.9) tunes sensitivity, `maxPerSession` (default 3) caps hints within a session, `threshold` (default 0.9) tunes sensitivity, and `budget` (default 512, clamped 128–8192 — same range as [pi-fovea](https://github.com/monotykamary/pi-fovea)'s `sync.budget`) caps the advisory text in tokens (estimated as chars/4; detail lines squeeze out first, `header + steer` are always kept). The matcher follows a combustion model: 1/df-weighted term scoring, strong matches fire instantly, weak matches accumulate warmth ($W \leftarrow \frac{1}{2}W + \frac{1}{2}s$; ignites at $W \geq$ threshold), each namespace's fire-set is durable *ash* (`fired` or `organic` — organic covers tools you used without a hint) persisted in `<agent-dir>/fabric/capability-advisories.json` across restarts, and ignored fires push smoke streaks that raise the weak-band ignition point by $\theta/\tau^2$ per streak ($0.25\theta$ at the internal memory scale $\tau = 2$ — every internal constant projects from $\tau$ and the score quantum $q = 1$). See [docs/capability-combustion.md](docs/capability-combustion.md) for the full math. Skill markup pi expands into the prompt (`<available_skills>`/`<skill>` blocks) is stripped before matching so a loaded skill cannot trigger its own hint. The hint follows fovea's structured shape: headline, `Candidates:` refs grouped by source, a `Next:` schema/action line for the top ref, and a `Steer:` directive.
237
+ - `capture.advisory` injects a capability hint at `before_agent_start` when the prompt's terms match a captured source's tf-idf fingerprint (names + descriptions grouped by source namespace, no manifest declarations needed). `mode: "enabled"` (default) renders the hint in the transcript, `"hidden"` delivers it to the model only, and `"disabled"` turns it off. Each capability fires at most once — the fired set persists in `<agent-dir>/fabric/capability-advisories.json` across session restarts; `maxPerSession` (default 3) caps hints within a session, `threshold` (default 0.9) tunes sensitivity, `maxPerSession` (default 3) caps hints within a session, `threshold` (default 0.9) tunes sensitivity, and `budget` (default 512, clamped 128–8192 — same range as [pi-fovea](https://github.com/monotykamary/pi-fovea)'s `sync.budget`) caps the advisory text in tokens (estimated as chars/4; rendering walks a degradation ladder — indented tool tree with descriptions → names-only tree → flat per-source lines → `header + steer` until a rung fits; the ladder keeps leftover tool names in a `+N more:` leaf so they stay addressable). The matcher follows a combustion model: 1/df-weighted term scoring, strong matches fire instantly, weak matches accumulate warmth ($W \leftarrow \frac{1}{2}W + \frac{1}{2}s$; ignites at $W \geq$ threshold), each namespace's fire-set is durable *ash* (`fired` or `organic` — organic covers tools you used without a hint) persisted in `<agent-dir>/fabric/capability-advisories.json` across restarts, and ignored fires push smoke streaks that raise the weak-band ignition point by $\theta/\tau^2$ per streak ($0.25\theta$ at the internal memory scale $\tau = 2$ — every internal constant projects from $\tau$ and the score quantum $q = 1$). See [docs/capability-combustion.md](docs/capability-combustion.md) for the full math. Skill markup pi expands into the prompt (`<available_skills>`/`<skill>` blocks) is stripped before matching so a loaded skill cannot trigger its own hint. The hint follows fovea's structured shape: headline, `Candidates:` refs grouped by source, a `Next:` schema/action line for the top ref, and a `Steer:` directive.
238
238
  - An `ask` policy emits a warning notification and opens an explicit **Allow once** / **Allow for this session** / **Deny** permission prompt, matching Claude-style approval scopes. **Allow once** authorizes only the requested action. **Allow for this session** authorizes that risk class until the current Pi session ends. The TUI uses an inline wizard; RPC clients receive the equivalent `select` dialog.
239
239
  - Concurrent requests are serialized so a one-time approval never silently widens to sibling calls. Session-wide grants are shared between native calls and `fabric_exec`. Escape, dismissal, unavailable interactive UI, and session restart all fail closed.
240
240
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-fabric",
3
- "version": "0.44.12",
3
+ "version": "0.44.13",
4
4
  "description": "A programmable tool and agent runtime for Pi",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",