agentfootprint 9.30.0 → 9.31.0

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.
Files changed (56) hide show
  1. package/CLAUDE.md +2 -1
  2. package/dist/adapters/llm/BrowserOpenAIProvider.js +5 -3
  3. package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  4. package/dist/adapters/llm/OpenAIProvider.js +74 -2
  5. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  6. package/dist/adapters/llm/azureUrl.js +48 -0
  7. package/dist/adapters/llm/azureUrl.js.map +1 -0
  8. package/dist/adapters/llm/createProvider.js +25 -6
  9. package/dist/adapters/llm/createProvider.js.map +1 -1
  10. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +5 -3
  11. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  12. package/dist/esm/adapters/llm/OpenAIProvider.d.ts +15 -2
  13. package/dist/esm/adapters/llm/OpenAIProvider.js +74 -2
  14. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  15. package/dist/esm/adapters/llm/azureUrl.d.ts +36 -0
  16. package/dist/esm/adapters/llm/azureUrl.js +43 -0
  17. package/dist/esm/adapters/llm/azureUrl.js.map +1 -0
  18. package/dist/esm/adapters/llm/createProvider.d.ts +5 -1
  19. package/dist/esm/adapters/llm/createProvider.js +25 -6
  20. package/dist/esm/adapters/llm/createProvider.js.map +1 -1
  21. package/dist/esm/lib/injection-engine/skillExamples.d.ts +168 -0
  22. package/dist/esm/lib/injection-engine/skillExamples.js +435 -0
  23. package/dist/esm/lib/injection-engine/skillExamples.js.map +1 -0
  24. package/dist/esm/lib/injection-engine/skillGraph.d.ts +63 -0
  25. package/dist/esm/lib/injection-engine/skillGraph.js +40 -2
  26. package/dist/esm/lib/injection-engine/skillGraph.js.map +1 -1
  27. package/dist/esm/lib/injection-engine/skillGraphCheckup.d.ts +25 -2
  28. package/dist/esm/lib/injection-engine/skillGraphCheckup.js +11 -2
  29. package/dist/esm/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  30. package/dist/esm/lib/injection-engine/skillMatch.d.ts +7 -0
  31. package/dist/esm/lib/injection-engine/skillMatch.js +9 -4
  32. package/dist/esm/lib/injection-engine/skillMatch.js.map +1 -1
  33. package/dist/lib/injection-engine/skillExamples.js +440 -0
  34. package/dist/lib/injection-engine/skillExamples.js.map +1 -0
  35. package/dist/lib/injection-engine/skillGraph.js +40 -2
  36. package/dist/lib/injection-engine/skillGraph.js.map +1 -1
  37. package/dist/lib/injection-engine/skillGraphCheckup.js +11 -2
  38. package/dist/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  39. package/dist/lib/injection-engine/skillMatch.js +11 -5
  40. package/dist/lib/injection-engine/skillMatch.js.map +1 -1
  41. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
  42. package/dist/types/adapters/llm/OpenAIProvider.d.ts +15 -2
  43. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  44. package/dist/types/adapters/llm/azureUrl.d.ts +37 -0
  45. package/dist/types/adapters/llm/azureUrl.d.ts.map +1 -0
  46. package/dist/types/adapters/llm/createProvider.d.ts +5 -1
  47. package/dist/types/adapters/llm/createProvider.d.ts.map +1 -1
  48. package/dist/types/lib/injection-engine/skillExamples.d.ts +169 -0
  49. package/dist/types/lib/injection-engine/skillExamples.d.ts.map +1 -0
  50. package/dist/types/lib/injection-engine/skillGraph.d.ts +63 -0
  51. package/dist/types/lib/injection-engine/skillGraph.d.ts.map +1 -1
  52. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts +25 -2
  53. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts.map +1 -1
  54. package/dist/types/lib/injection-engine/skillMatch.d.ts +7 -0
  55. package/dist/types/lib/injection-engine/skillMatch.d.ts.map +1 -1
  56. package/package.json +2 -1
@@ -0,0 +1,169 @@
1
+ /**
2
+ * skillExamples — the EXAMPLES side of a start rule: the phrasings a rule says
3
+ * it claims, and the three things a build-time check-up can then PROVE about
4
+ * them by RUNNING the compiled matchers instead of comparing them.
5
+ *
6
+ * ## Why this exists (two field failures, one evening)
7
+ *
8
+ * `compareMatchers` (skillMatch.ts) answers only what matcher-vs-matcher
9
+ * analysis can prove, and says so out loud: two DIFFERENT regex sources return
10
+ * `undefined` ("regex intersection is not decided here — only identity is
11
+ * provable"). That honesty left two real production failures unreportable:
12
+ *
13
+ * A. SHADOWING BY DIFFERENT REGEXES — an earlier rule matching one product
14
+ * name sat above an inventory rule whose matcher is a longer alternation.
15
+ * A real phrase ("what's running on <host-looking-name>") was claimed by
16
+ * the earlier rule, so the later rule could never win on its own
17
+ * phrasings. Two different regexes: the check-up was correctly silent.
18
+ * B. ABSENCE — a second phrase matched NO rule at all, fell through to the
19
+ * model tier, and the model picked the wrong skill because an array name
20
+ * looked like a hostname. Not shadowing: absence. No amount of
21
+ * matcher-vs-matcher analysis can ever catch it.
22
+ *
23
+ * A declared example turns both into arithmetic. Run the compiled predicates
24
+ * over one concrete phrase, in declaration order, exactly as the cold start
25
+ * does — and the answer is a WITNESS, not a theory: this phrase, this rule,
26
+ * this winner. No regex intersection is decided anywhere in this file.
27
+ *
28
+ * ## The tier difference (read this before writing `examples` anywhere)
29
+ *
30
+ * Two different lists spell the same author-facing sentence — "the phrasings
31
+ * this rule claims" — and they have DIFFERENT RUNTIME ROLES:
32
+ *
33
+ * • TIER 2, `match: { intent, examples }` — SCORING material. The classifier
34
+ * reads those examples AT RUN TIME to judge every new message
35
+ * (`skillIntent.ts`); they are part of how the graph routes.
36
+ * • TIER 1, a rule-level `examples: [...]` (this file) — TEST material. Read
37
+ * at BUILD time by the check-up and fed to nothing, ever. They do not
38
+ * widen, soften or otherwise touch matching: a rule with examples routes
39
+ * byte-identically to the same rule without them.
40
+ *
41
+ * One rule may not carry both lists (a teaching refusal names the difference):
42
+ * two example lists with two different jobs under one rule is exactly the
43
+ * confusion this note exists to prevent.
44
+ *
45
+ * ## The two start laws, and why one of them is only a WARNING
46
+ *
47
+ * Which rule claims a phrase is decided by one of TWO laws, and the graph does
48
+ * not know which one it will be mounted under:
49
+ *
50
+ * • the declaration-order COLD WALK (`makeResolveCursor`, the default mount)
51
+ * returns at the first entry with no condition or the first whose condition
52
+ * passes — so an UNCONDITIONAL entry claims every message from its position
53
+ * onward;
54
+ * • the turn-start CASCADE's tier 1 (`firstRuleMatch`, skillIntent.ts) reads
55
+ * the CONDITIONAL non-intent entries only — an unconditional entry is a
56
+ * default, not a rule, and never wins the turn there. That cascade is
57
+ * mounted by `.classify()` AND by `.skillGraph(g, { continuity:
58
+ * 'conversation' })`, and continuity is an AGENT-MOUNT option that does not
59
+ * exist yet when this check runs.
60
+ *
61
+ * The two laws differ in exactly one place: whether an unconditional entry
62
+ * claims. So when the earlier claimant is unconditional, the check-up cannot
63
+ * say which law will apply — it reports BOTH readings as a WARNING
64
+ * (`example-shadowed-by-default`) instead of asserting one as an ERROR. A
65
+ * check-up that disagrees with the router is worse than no check-up: the router
66
+ * really does start that turn on the later rule under a `continuity:
67
+ * 'conversation'` mount. The ERROR (`example-shadowed-by-earlier`) is kept for
68
+ * what both laws agree on.
69
+ *
70
+ * ## The context a rule is judged in, and what that makes provable
71
+ *
72
+ * Every predicate here runs on ONE context: {@link coldContext} — iteration 1,
73
+ * the phrase as `userMessage`, empty `history`, no cursor. That is a real
74
+ * context (the first iteration of a turn), but it is not the only one a start
75
+ * rule ever sees: turn 2 of a conversation also starts cold in cursor terms
76
+ * while carrying HISTORY. So:
77
+ *
78
+ * • a DATA matcher (`match:`) reads `userMessage` and nothing else, so a
79
+ * no-match here is a no-match under every context — ERROR;
80
+ * • an opaque `when` may legitimately be gated on conversation state
81
+ * (`ctx.history.length > 0`) and claim the phrase on a later turn — the
82
+ * check cannot run that turn, so a no-match is a WARNING, and the message
83
+ * names the context it judged under rather than leaving the author to guess.
84
+ *
85
+ * A THROW stays an ERROR either way: a predicate must be pure and total, and
86
+ * the context it threw on is one every turn 1 really hands it.
87
+ *
88
+ * ## The boundary, and why it is on the report itself
89
+ *
90
+ * These checks prove things about the phrases the author DECLARED and nothing
91
+ * about phrases nobody wrote. No warning is NOT proof of coverage. That
92
+ * sentence ships as {@link EXAMPLES_BOUNDARY} on `GraphCheckup.notes` —
93
+ * visible wherever the graph reports its problems — because a reader who meets
94
+ * it only in prose docs will meet a clean report first.
95
+ *
96
+ * Composed into `graph.checkup()` by `skillGraph.ts`, exactly like
97
+ * `skillContract`/`skillIntent`/`skillVocabulary`: this module owns the rule
98
+ * AND its boundaries, and reports in the shared `GraphProblem` voice.
99
+ */
100
+ import type { InjectionContext } from './types.js';
101
+ import { type SkillMatchData } from './skillMatch.js';
102
+ import type { GraphProblem } from './skillGraphCheckup.js';
103
+ /**
104
+ * The statement the check-up makes about its own reach, carried on
105
+ * `GraphCheckup.notes` whenever any rule declared examples. Same voice as the
106
+ * ingress ticket's "absence of a refusal is not consent": a clean report is
107
+ * evidence about the phrases you wrote, and about nothing else.
108
+ */
109
+ export declare const EXAMPLES_BOUNDARY: string;
110
+ /** The note added when declaration order does not decide the turn start, so
111
+ * only the order-independent check (self-match) could run. */
112
+ export declare const EXAMPLES_ORDER_NOT_CHECKED: string;
113
+ /**
114
+ * The slice of an entry declaration this module reads — structural, so
115
+ * `skillGraph.ts`'s module-private `EntryDecl` satisfies it unchanged (the
116
+ * same trick `skillIntent.ts` uses).
117
+ */
118
+ export interface ExampleRuleDecl {
119
+ readonly id: string;
120
+ /** The compiled condition (from `match:`) or the author's `when`. Absent on
121
+ * an unconditional entry and on an intent rule (no sync predicate). */
122
+ readonly when?: (ctx: InjectionContext) => boolean;
123
+ /** The serializable matcher behind `when`, when declared as data — quoted
124
+ * back in the messages, and the one way to spot the intent arm. */
125
+ readonly match?: SkillMatchData;
126
+ /** The phrasings this rule claims (build-time TEST material). */
127
+ readonly examples?: readonly string[];
128
+ }
129
+ /** What {@link checkStartRuleExamples} found, plus what it wants to say about
130
+ * its own reach. Both empty when no rule declared examples. */
131
+ export interface ExamplesCheckup {
132
+ readonly problems: readonly GraphProblem[];
133
+ readonly notes: readonly string[];
134
+ }
135
+ /**
136
+ * Validate a rule-level `examples` list at DECLARATION time, refusing every
137
+ * shape whose check-up answer could only mislead — each refusal naming the fix:
138
+ *
139
+ * • not an array / an EMPTY array — nothing to prove, and a check-up that
140
+ * passes in silence reads as coverage;
141
+ * • a non-string or blank entry — there is no phrase to run a matcher on;
142
+ * • examples on an UNCONDITIONAL entry — it claims every message, so every
143
+ * example passes by construction and proves nothing;
144
+ * • examples beside `match: { intent, examples }` — two lists, two jobs (see
145
+ * the tier note in this file's header).
146
+ *
147
+ * Returns a frozen copy (or `undefined` when nothing was declared), so the
148
+ * stored list cannot drift from the validated one.
149
+ */
150
+ export declare function validateStartRuleExamples(examples: unknown, where: string, rule: {
151
+ readonly hasCondition: boolean;
152
+ readonly isIntent: boolean;
153
+ }): readonly string[] | undefined;
154
+ /**
155
+ * Run the three example properties. Pure, and byte-identically silent when no
156
+ * rule declared examples (one `Array.some` and out).
157
+ *
158
+ * `orderDecides` mirrors the gate the pairwise rule checks already use
159
+ * (`!exclusiveEntries || hasClassifier`): declaration order decides the turn
160
+ * start under the default form and under a classifier's tier 1, and does NOT
161
+ * under a scorer or `.entryByRead()`. Where it does not hold, only the
162
+ * order-independent property (self-match) is claimed and a note says so.
163
+ */
164
+ export declare function checkStartRuleExamples(input: {
165
+ readonly entries: readonly ExampleRuleDecl[];
166
+ readonly orderDecides: boolean;
167
+ readonly hasClassifier: boolean;
168
+ }): ExamplesCheckup;
169
+ //# sourceMappingURL=skillExamples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillExamples.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillExamples.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAEsC,CAAC;AAErE;+DAC+D;AAC/D,eAAO,MAAM,0BAA0B,QAG4B,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;4EACwE;IACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACnD;wEACoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;gEACgE;AAChE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACnE,SAAS,MAAM,EAAE,GAAG,SAAS,CAgD/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC,GAAG,eAAe,CAwMlB"}
@@ -141,11 +141,17 @@ export type SkillStartRule = {
141
141
  /** The code form — an opaque predicate over the iteration context. */
142
142
  readonly when: (ctx: InjectionContext) => boolean;
143
143
  readonly match?: never;
144
+ /** The phrasings this rule claims — build-time TEST material. See
145
+ * {@link SkillEntryOptions.examples}. */
146
+ readonly examples?: readonly string[];
144
147
  } | {
145
148
  readonly use: string;
146
149
  /** The data form — comparable, drawable, stored. See {@link SkillMatch}. */
147
150
  readonly match: SkillMatch;
148
151
  readonly when?: never;
152
+ /** The phrasings this rule claims — build-time TEST material. See
153
+ * {@link SkillEntryOptions.examples}. */
154
+ readonly examples?: readonly string[];
149
155
  };
150
156
  /** Where a turn starts, in the object-literal (flat) form. */
151
157
  export type SkillGraphStart = string | {
@@ -302,6 +308,63 @@ export interface SkillEntryOptions {
302
308
  * exactly as before.
303
309
  */
304
310
  readonly match?: SkillMatch;
311
+ /**
312
+ * The phrasings this rule CLAIMS — real messages a user would type that
313
+ * should start the turn here. Optional, additive, and **fed to nothing at
314
+ * run time**: the check-up reads them at build time and the routing never
315
+ * sees them, so a rule with examples routes byte-identically to the same
316
+ * rule without them.
317
+ *
318
+ * Things become PROVABLE once a phrase is declared, by RUNNING the compiled
319
+ * matchers rather than comparing them:
320
+ *
321
+ * • `example-misses-own-rule` — this rule does not claim its own example.
322
+ * An ERROR for a data `match` (it reads the user message and nothing
323
+ * else, so the no-match holds under every context) or for a predicate
324
+ * that THREW; a WARNING for an opaque `when` that returned false, which
325
+ * may be gated on conversation state and claim the phrase on a later
326
+ * turn (see the context note below);
327
+ * • `example-shadowed-by-earlier` (error) — an EARLIER rule claims the
328
+ * phrase first, so the turn starts somewhere your own example denies.
329
+ * This is the one `rules-shadowed-by-order` must stay silent about when
330
+ * the two rules use different regexes (intersection is not decided
331
+ * anywhere in this library) — a witness phrase decides it instead;
332
+ * • `example-shadowed-by-default` (warning) — the earlier claimant is an
333
+ * UNCONDITIONAL entry. The declaration-order cold start stops at a
334
+ * default; the turn-start cascade (a classifier, or `continuity:
335
+ * 'conversation'`) reads the conditional rules only and skips it — and
336
+ * which one applies is decided at AGENT MOUNT, so the report names both
337
+ * readings instead of asserting one against the router;
338
+ * • `example-unclaimed` (warning) — NO rule claims the phrase, so the turn
339
+ * falls through to the model tier. Absence, which no matcher-vs-matcher
340
+ * analysis can catch.
341
+ *
342
+ * **The context they are judged on.** Every condition here runs on ONE
343
+ * context — iteration 1, the phrase as `userMessage`, empty `history`, no
344
+ * cursor — the context a turn's FIRST iteration hands a start rule. Turn 2 of
345
+ * a conversation also starts cold in cursor terms while CARRYING history, so
346
+ * a `when` gated on conversation state may claim the phrase on a turn this
347
+ * check cannot run. That is why its no-match is a warning, and why every
348
+ * message names the context it judged under.
349
+ *
350
+ * **Tier difference, and it matters.** In `match: { intent, examples }`
351
+ * (tier 2) the examples are SCORING material: the classifier reads them at
352
+ * RUN time to judge new messages. Here (tier 1) they are TEST material only.
353
+ * The author-facing meaning is the same — "the phrasings this rule claims" —
354
+ * the runtime role is not, and a rule may not carry both lists (refused at
355
+ * build, naming the difference).
356
+ *
357
+ * The boundary: these checks prove things about the phrases you declared and
358
+ * nothing about phrases nobody wrote. No warning is not proof of coverage —
359
+ * `graph.checkup().notes` says so on the report itself.
360
+ *
361
+ * @example
362
+ * .entry(arrayInventory, {
363
+ * match: /\b(array|volume|pool)\b/i,
364
+ * examples: ["what's running on shpstrprncl101"],
365
+ * })
366
+ */
367
+ readonly examples?: readonly string[];
305
368
  readonly label?: string;
306
369
  }
307
370
  /** Options for a decision `tree()`. */
@@ -1 +1 @@
1
- {"version":3,"file":"skillGraph.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG3F,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGhF,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,4DAA4D;AAC5D,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEtD,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB;IACE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;CACvB,CAAC;AAEN,8DAA8D;AAC9D,MAAM,MAAM,eAAe,GACvB,MAAM,GACN;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACxB;IACE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC9C;oEACgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC;gEAC4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3C,GACD;IACE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;mFAC+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC;2EACuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;CACjC,CAAC;AAEN,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC;kDAC8C;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IACtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;8EAC0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAK3E,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAEzC,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC;;8EAE0E;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,iCAAiC,EAAE,gBAAgB,CAAC;KAC9E,KAAK,OAAO,CAAC;IACd;+DAC2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,CAAC,EAClB,OAAO,iCAAiC,EAAE,gBAAgB,GAC1D,aAAa,CAAC,OAAO,iCAAiC,EAAE,gBAAgB,CAAC,CAAC;IAC9E,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACnD;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAElG,MAAM,WAAW,SAAS;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;6BAEyB;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC;IAC7C,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;gDAEgD;AAChD,wBAAgB,WAAW,CACzB,SAAS,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,EAC7C,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,SAAS,EAAE,YAAY,GAAG,SAAS,EACnC,KAAK,CAAC,EAAE,MAAM,GACb,YAAY,CAEd;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,OAAO,GACP,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,MAAM,GACN,MAAM,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;6EACyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC/C;AAED,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;IAC7B;;gFAE4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;CACjC;AAED,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B;yEACqE;IACrE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACnD;;gCAE4B;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C;;4EAEwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IAC5D,gCAAgC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;kFAC8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,cAAwB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;mEAC+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iCAAiC,kCAA4C,CAAC;AAE3F,MAAM,WAAW,UAAU;IACzB;oDACgD;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC;gEAC4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,sEAAsE;IACtE,SAAS,IAAI,MAAM,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;IACrD;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAAC;IACpD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAAC;IAC5D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC5D;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClF;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,YAAY,CAAC;IAChD;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;IAC/D;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7D;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CACtD;AAED,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACrE,gFAAgF;IAChF,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACnF;;;8EAG0E;IAC1E,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;IAC5E;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAAC;IAChD;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,CAAC;IACxD;;;;;;;;;;;;;OAaG;IACH,WAAW,IAAI,iBAAiB,CAAC;IACjC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACxC;AA0DD,wBAAgB,UAAU,IAAI,iBAAiB,CAAC;AAChD,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"skillGraph.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ import { type SkillMatchData } from './skillMatch.js';
34
34
  * engine-type-free, which is what keeps that law intact here).
35
35
  */
36
36
  export type CheckupTriggerKind = 'always' | 'rule' | 'on-tool-return' | 'llm-activated';
37
- export type GraphProblemCode = 'unknown-skill' | 'no-entry' | 'unreachable-skill' | 'model-edge-only' | 'multi-entry-fanout' | 'dead-entry-step' | 'ambiguous-routes' | 'self-loop' | 'rule-id-exists' | 'overlapping-rules' | 'rules-shadowed-by-order' | 'intent-without-classify' | 'duplicate-intent-example' | 'overlapping-intents' | 'body-foreign-tool' | 'body-unknown-tool' | 'artifact-kind-unsatisfied';
37
+ export type GraphProblemCode = 'unknown-skill' | 'no-entry' | 'unreachable-skill' | 'model-edge-only' | 'multi-entry-fanout' | 'dead-entry-step' | 'ambiguous-routes' | 'self-loop' | 'rule-id-exists' | 'overlapping-rules' | 'rules-shadowed-by-order' | 'intent-without-classify' | 'duplicate-intent-example' | 'overlapping-intents' | 'body-foreign-tool' | 'body-unknown-tool' | 'example-misses-own-rule' | 'example-shadowed-by-earlier' | 'example-shadowed-by-default' | 'example-unclaimed' | 'artifact-kind-unsatisfied';
38
38
  /** One issue found by the check-up. `kind: 'error'` fails `ok` (and `'throw'`). */
39
39
  export interface GraphProblem {
40
40
  readonly kind: 'error' | 'warning';
@@ -44,11 +44,28 @@ export interface GraphProblem {
44
44
  readonly skill?: string;
45
45
  readonly from?: string;
46
46
  readonly to?: string;
47
+ /**
48
+ * The declared example phrase this problem is about — present only on the
49
+ * `example-*` codes, which are the only checks that reason about a concrete
50
+ * phrase. The message always quotes it too; this is the same string as data,
51
+ * so a tool can group by phrase without parsing prose.
52
+ */
53
+ readonly example?: string;
47
54
  }
48
55
  /** Result of `graph.checkup()`. `ok` is false iff there is ≥1 `error`. */
49
56
  export interface GraphCheckup {
50
57
  readonly ok: boolean;
51
58
  readonly problems: readonly GraphProblem[];
59
+ /**
60
+ * What this report does NOT cover — present only when a check ran whose
61
+ * SILENCE could be misread as proof. Today that is the start-rule examples
62
+ * (skillExamples.ts): they prove things about the phrases the author
63
+ * declared and nothing about phrases nobody wrote, so a clean report is not
64
+ * proof of coverage — and the report says so itself rather than leaving it
65
+ * to prose docs. Absent (not empty) when nothing needed saying, so a graph
66
+ * that never heard of examples reports the exact same object as always.
67
+ */
68
+ readonly notes?: readonly string[];
52
69
  }
53
70
  /** One declared entry, in declaration order. */
54
71
  export interface CheckupEntry {
@@ -103,6 +120,12 @@ export interface CheckupInput {
103
120
  }
104
121
  /** Run the check-up. Pure. */
105
122
  export declare function checkupGraph(input: CheckupInput): GraphCheckup;
106
- /** Format a check-up for a thrown error / console warning. */
123
+ /**
124
+ * Format a check-up for a thrown error / console warning.
125
+ *
126
+ * Notes render AFTER the problems, tagged `[note]`: they are statements about
127
+ * the report's own reach, not findings. A check-up with no notes formats
128
+ * byte-identically to every version before them.
129
+ */
107
130
  export declare function formatCheckup(checkup: GraphCheckup): string;
108
131
  //# sourceMappingURL=skillGraphCheckup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skillGraphCheckup.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraphCheckup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAExF,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,UAAU,GACV,mBAAmB,GACnB,iBAAiB,GACjB,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,WAAW,GAEX,gBAAgB,GAKhB,mBAAmB,GACnB,yBAAyB,GAIzB,yBAAyB,GAIzB,0BAA0B,GAG1B,qBAAqB,GAIrB,mBAAmB,GACnB,mBAAmB,GAEnB,2BAA2B,CAAC;AAMhC,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;CAC5C;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;qDACiD;IACjD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;+EAG2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzF,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/D;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAwV9D;AA2CD,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAE3D"}
1
+ {"version":3,"file":"skillGraphCheckup.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraphCheckup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAExF,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,UAAU,GACV,mBAAmB,GACnB,iBAAiB,GACjB,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,WAAW,GAEX,gBAAgB,GAKhB,mBAAmB,GACnB,yBAAyB,GAIzB,yBAAyB,GAIzB,0BAA0B,GAG1B,qBAAqB,GAIrB,mBAAmB,GACnB,mBAAmB,GAInB,yBAAyB,GAKzB,6BAA6B,GAO7B,6BAA6B,GAO7B,mBAAmB,GAInB,2BAA2B,CAAC;AAMhC,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;qDACiD;IACjD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;+EAG2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzF,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/D;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAwV9D;AA2CD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAI3D"}
@@ -207,4 +207,11 @@ export declare function compareMatchers(earlier: SkillMatchData, later: SkillMat
207
207
  * before.
208
208
  */
209
209
  export declare function mermaidMatchCaption(m: SkillMatchData): string;
210
+ /**
211
+ * The UNESCAPED caption — one grammar for naming a matcher, shared by the
212
+ * mermaid label (which escapes it once, at the top) and by prose that quotes a
213
+ * matcher back to its author (`skillExamples.ts`'s messages). Recursion for the
214
+ * `all` arm happens here so the escaping stays a single outer pass.
215
+ */
216
+ export declare function plainMatchCaption(m: SkillMatchData): string;
210
217
  //# sourceMappingURL=skillMatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skillMatch.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillMatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAAC;AAE5C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACnE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC1F;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,CAAC;AAExE;+EAC+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;wBACwB;AACxB,eAAO,MAAM,iBAAiB,KAAK,CAAC;AA6BpC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GACZ;IACD,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5D,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,YAAY,GAAG,SAAS,CAAC;CAC/D,CAuFA;AA4GD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,cAAc,GACpB;IAAE,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAmC/D;AAwED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAE7D"}
1
+ {"version":3,"file":"skillMatch.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillMatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAAC;AAE5C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACnE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC1F;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,CAAC;AAExE;+EAC+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;wBACwB;AACxB,eAAO,MAAM,iBAAiB,KAAK,CAAC;AA6BpC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GACZ;IACD,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5D,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,YAAY,GAAG,SAAS,CAAC;CAC/D,CAuFA;AA4GD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,cAAc,GACpB;IAAE,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAmC/D;AAwED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAU3D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentfootprint",
3
- "version": "9.30.0",
3
+ "version": "9.31.0",
4
4
  "description": "The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -373,6 +373,7 @@
373
373
  "footprintjs": "^9.15.0",
374
374
  "google-auth-library": "^11.0.1",
375
375
  "jose": "^6.2.7",
376
+ "openai": "^7.4.0",
376
377
  "prettier": "^2.8.1",
377
378
  "publint": "^0.3.0",
378
379
  "typedoc": "^0.28.19",