agentfootprint 6.26.1 → 6.27.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.
package/README.md CHANGED
@@ -97,6 +97,63 @@ A: verifyAuditBundle → valid: false, brokenAt: #16 — the tampered record, na
97
97
 
98
98
  And you don't have to read the trace yourself — **we provide the tools for an LLM to track it for you**: the trace toolpack let a debugger model find a planted bug while reading **9.5% of the trace** ([guide](docs/guides/trace-debugging.md)).
99
99
 
100
+ ## One contextual error, walked end to end
101
+
102
+ The third question above, in full — every value below is the captured output of
103
+ [`examples/observability/05-context-bisect.ts`](examples/observability/05-context-bisect.ts)
104
+ and [`06-backtrack-trace.ts`](examples/observability/06-backtrack-trace.ts), runnable offline.
105
+
106
+ **The bug.** A refunds agent carries a poisoned customer-profile fact. It answers:
107
+
108
+ > *"Refund APPROVED: Dana Reyes holds VIP tier override status, so the 47-day-old
109
+ > order qualifies for a refund beyond the 30-day window."*
110
+
111
+ The policy says 30 days. The logs look fine — the model was *given* bad context,
112
+ and classical logging has no row for that.
113
+
114
+ **The walk.** Because context here is state, the decision backtracks like a
115
+ variable: who read it, who wrote it, who let it in, where it was born —
116
+
117
+ ```text
118
+ ANSWER "Refund APPROVED…" ← the bug
119
+ READ call-llm#40 assembled the system prompt ← exactly what the model saw
120
+ LANDED context#6 wrote systemPromptInjections ← who mutated state
121
+ ALLOWED trigger { kind: 'always' } — active every iteration ← why it was let in
122
+ BORN defineFact('vip-override-fact') ← who wrote it
123
+ ```
124
+
125
+ That chain gives the **complete, provable candidate set** — every piece of
126
+ context that demonstrably reached the call, and nothing else. Influence scoring
127
+ then *ranks* inside it (the two facts sit 0.01 apart — proxies can't separate
128
+ them), and counterfactual **ablation proves**: removing `vip-override-fact`
129
+ flips APPROVED → DECLINED in **3/3 seeded reruns**; the benign style fact and
130
+ the lookup tool come back not-confirmed, 0/3. Scores are proxies; only the
131
+ ablation verdict makes a causal claim — the report says so itself.
132
+
133
+ **The same walk, visual.** One call serializes the report for
134
+ [AgentThinkingUI](https://github.com/footprintjs/agentThinkingUI)'s
135
+ `<BacktrackView>` — the "why?" board, triggerable from **any** decision point
136
+ (final answer, a mid-loop tool choice, a deterministic `decide()` rule):
137
+
138
+ ```typescript
139
+ import { localizeContextBug, toBacktrackTrace } from 'agentfootprint/observe';
140
+
141
+ const report = await localizeContextBug({ artifacts, embedder, atStep, rerun });
142
+ const trace = toBacktrackTrace(report, {
143
+ claim: 'The agent approved a refund 47 days past the 30-day window — why?',
144
+ answer: { text: buggyAnswer, label: 'the wrong answer' },
145
+ });
146
+ // <BacktrackView trace={trace}/> — or <BacktrackOverlay/> from any decision point
147
+ ```
148
+
149
+ <img alt="The BacktrackView board: the wrong answer, the suspects with influence meters, the CAUSAL 3/3 ablation stamp on the planted fact, and the chain-of-custody rewind showing the exact system prompt the model saw with the culprit sentence highlighted." src="docs/assets/backtrack-board.png" width="100%"/>
150
+
151
+ The rewind pane at the bottom is the killer view: **the exact system prompt the
152
+ model saw**, with the culprit sentence highlighted — recorded state, not a
153
+ reconstruction. And the same chain feeds the machine door: every id on the
154
+ board is a `runtimeStageId` a debugger LLM can drill with the
155
+ [trace toolpack](docs/guides/trace-debugging.md), token-cheaply.
156
+
100
157
  ---
101
158
 
102
159
  ## Pick your door
@@ -16,6 +16,7 @@
16
16
  */
17
17
  export { llmEdgeWeigher, stepOutputText, } from './llmEdgeWeigher.js';
18
18
  export { defaultSuspectClassifier, formatContextBugReport, llmCallIdsFromEvents, localizeContextBug, suspectLabel, } from './localize.js';
19
+ export { toBacktrackTrace, } from './toBacktrackTrace.js';
19
20
  export { ablationForSuspect, applyAblations, defaultOutcomeComparator, probeFlipped, runAblationProbe, verdictFor, } from './ablation.js';
20
21
  export { bisectCulprits, } from './bisect.js';
21
22
  export { CONTEXT_BISECT_DEFAULTS, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/context-bisect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,GAKb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,UAAU,GAGX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,GAIf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,GAoBxB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/context-bisect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,GAKb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,GAOjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,UAAU,GAGX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,GAIf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,GAoBxB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * toBacktrackTrace — serialize a ContextBugReport into the BacktrackTrace
3
+ * shape that agentThinkingUI's <BacktrackView>/<BacktrackOverlay> renders
4
+ * (the "why?" board: suspects → influence meters → ablation stamps →
5
+ * chain-of-custody rewind).
6
+ *
7
+ * Pure mapping, no UI dependency — the BacktrackTrace interfaces below
8
+ * MIRROR agentthinkingui's `types/index.d.ts` contract; both sides are
9
+ * framework-agnostic JSON. The report carries everything except two
10
+ * things only the caller knows:
11
+ *
12
+ * - `answer` (REQUIRED): the report localizes a decision but does not
13
+ * hold the decision's output text — pass what the agent said/chose.
14
+ * - `custody` (optional): the rewind player replays RECORDED STATE
15
+ * (the assembled prompt, the mutating commit). That content lives in
16
+ * the caller's artifacts (snapshot/events), not in the report — pass
17
+ * a callback to enrich confirmed suspects with evidence panes.
18
+ *
19
+ * Honesty is preserved, not added: ranks are TRUE report positions even
20
+ * when the cards are a subset (`rank`), path-only scores carry
21
+ * `upperBound` (hatched meter + starred value in the UI), honesty flags
22
+ * map verbatim, and the claims-discipline lines ride along. The mapper
23
+ * never invents a causal claim: `verdict` exists only where the report's
24
+ * ablation produced one ('inconclusive' maps to NO stamp, not a verdict).
25
+ */
26
+ /* ── mapping ──────────────────────────────────────────────────────────── */
27
+ const BORN_VIA = {
28
+ injection: 'injection engine',
29
+ tool: 'tool result',
30
+ arg: 'run args/env (untracked)',
31
+ stage: 'stage commit',
32
+ };
33
+ /** The report's claims-discipline lines — same tier language as formatContextBugReport. */
34
+ const CLAIMS_LINES = [
35
+ 'scores/weights are deterministic embedding-geometry proxies — semantic alignment, not model internals.',
36
+ 'only ablation verdicts make causal claims.',
37
+ ];
38
+ function suspectName(s) {
39
+ return s.detail?.injectionId ?? s.detail?.toolName ?? s.source;
40
+ }
41
+ function toCard(s, trueRank, custody) {
42
+ // edgePath walks decision → suspect; the suspect-adjacent hop is last
43
+ const adjacent = s.edgePath.length > 0 ? s.edgePath[s.edgePath.length - 1] : undefined;
44
+ const verdict = s.verdict && s.verdict.verdict !== 'inconclusive'
45
+ ? {
46
+ kind: s.verdict.verdict,
47
+ flips: s.runs?.flips,
48
+ samples: s.runs?.samples,
49
+ claim: s.verdict.claim,
50
+ }
51
+ : undefined;
52
+ return {
53
+ kind: s.kind,
54
+ flavor: s.detail?.flavor,
55
+ name: suspectName(s),
56
+ text: s.detail?.text,
57
+ score: s.score,
58
+ rank: trueRank,
59
+ upperBound: s.hasContentEvidence ? undefined : true,
60
+ edge: adjacent
61
+ ? { key: adjacent.key, weight: adjacent.weight, kind: adjacent.kind }
62
+ : undefined,
63
+ path: s.edgePath.length > 1
64
+ ? s.edgePath.map((h) => ({
65
+ key: h.key ?? '',
66
+ kind: h.kind,
67
+ via: `${h.from} ← ${h.to}`,
68
+ }))
69
+ : undefined,
70
+ bornAt: { id: s.source, label: s.stageName, via: BORN_VIA[s.kind] },
71
+ custody: custody?.(s, trueRank),
72
+ verdict,
73
+ };
74
+ }
75
+ /**
76
+ * Serialize a localizer report for agentThinkingUI's BacktrackView.
77
+ * See module doc — `answer` is required; `custody` enriches the rewind.
78
+ */
79
+ export function toBacktrackTrace(report, opts) {
80
+ const max = opts.maxSuspects ?? 6;
81
+ const prefer = opts.preferContentEvidence ?? true;
82
+ // selection — true report rank rides on every card either way
83
+ const indexed = report.suspects.map((s, i) => ({ s, trueRank: i + 1 }));
84
+ let selected;
85
+ if (indexed.length <= max) {
86
+ selected = indexed;
87
+ }
88
+ else if (prefer) {
89
+ const content = indexed.filter((e) => e.s.hasContentEvidence);
90
+ const structural = indexed.filter((e) => !e.s.hasContentEvidence);
91
+ selected = [...content, ...structural].slice(0, max);
92
+ selected.sort((a, b) => a.trueRank - b.trueRank); // cards stay in rank order
93
+ }
94
+ else {
95
+ selected = indexed.slice(0, max);
96
+ }
97
+ const selectedRanks = new Set(selected.map((e) => e.trueRank));
98
+ const dropped = indexed.filter((e) => !selectedRanks.has(e.trueRank));
99
+ const folded = dropped.length > 0
100
+ ? `${dropped.length} more suspect${dropped.length === 1 ? '' : 's'} folded — ` +
101
+ dropped.map((e) => `#${e.trueRank} ${e.s.source}`).join(' · ') +
102
+ (dropped.every((e) => !e.s.hasContentEvidence)
103
+ ? ' (path-only upper bounds)'
104
+ : '') +
105
+ ' — every id drillable with the trace toolpack'
106
+ : undefined;
107
+ // auto tie-warning: only when the report's top two genuinely crowd each other
108
+ let scoreNote = opts.scoreNote;
109
+ if (scoreNote === undefined && report.suspects.length >= 2) {
110
+ const margin = report.suspects[0].score - report.suspects[1].score;
111
+ if (margin < 0.05) {
112
+ scoreNote = `top-2 margin ${margin.toFixed(2)} — proxy scores alone cannot separate them${report.mode === 'causal' ? '; the ablation test can' : ''}.`;
113
+ }
114
+ }
115
+ const honesty = [
116
+ ...report.honestyFlags.map((f) => `⚠ ${f.flag}: ${f.note}`),
117
+ ...CLAIMS_LINES,
118
+ ];
119
+ return {
120
+ claim: opts.claim ?? `Why did ${report.stepName} (${report.step}) decide this?`,
121
+ mode: report.mode,
122
+ modeLabel: opts.modeLabel,
123
+ agent: opts.agent,
124
+ model: opts.model,
125
+ answer: opts.answer,
126
+ decidedAt: { id: report.step, label: report.stepName, kind: opts.decidedAtKind ?? 'llm' },
127
+ suspects: selected.map((e) => toCard(e.s, e.trueRank, opts.custody)),
128
+ trail: opts.trail,
129
+ folded,
130
+ scoreNote,
131
+ baseline: report.baseline
132
+ ? `${report.baseline.flips}/${report.baseline.samples} flipped with no ablation`
133
+ : undefined,
134
+ honesty,
135
+ };
136
+ }
137
+ //# sourceMappingURL=toBacktrackTrace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toBacktrackTrace.js","sourceRoot":"","sources":["../../../../src/lib/context-bisect/toBacktrackTrace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAwGH,6EAA6E;AAE7E,MAAM,QAAQ,GAAuC;IACnD,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,0BAA0B;IAC/B,KAAK,EAAE,cAAc;CACtB,CAAC;AAEF,2FAA2F;AAC3F,MAAM,YAAY,GAAsB;IACtC,wGAAwG;IACxG,4CAA4C;CAC7C,CAAC;AAEF,SAAS,WAAW,CAAC,CAAU;IAC7B,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC;AAED,SAAS,MAAM,CACb,CAAU,EACV,QAAgB,EAChB,OAA4C;IAE5C,sEAAsE;IACtE,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,MAAM,OAAO,GACX,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,cAAc;QAC/C,CAAC,CAAC;YACE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO;YACvB,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK;YACpB,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO;YACxB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK;SACvB;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM;QACxB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QACnD,IAAI,EAAE,QAAQ;YACZ,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;YACrE,CAAC,CAAC,SAAS;QACb,IAAI,EACF,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrB,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE;aAC3B,CAAC,CAAC;YACL,CAAC,CAAC,SAAS;QACf,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QACnE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC/B,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAwB,EACxB,IAA6B;IAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC;IAElD,8DAA8D;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,IAAI,QAAwB,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC1B,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAClE,QAAQ,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,2BAA2B;IAC/E,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY;YAC5E,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9D,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBAC5C,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,EAAE,CAAC;YACP,+CAA+C;QACjD,CAAC,CAAC,SAAS,CAAC;IAEhB,8EAA8E;IAC9E,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/B,IAAI,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;YAClB,SAAS,GAAG,gBAAgB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,6CAC3C,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EACzD,GAAG,CAAC;QACN,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,GAAG,YAAY;KAChB,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,WAAW,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,gBAAgB;QAC/E,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE;QACzF,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM;QACN,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACvB,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,2BAA2B;YAChF,CAAC,CAAC,SAAS;QACb,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -77,6 +77,10 @@ export { callTraceTool, TOOLPACK_HARD_CAPS, traceToolpack, } from './lib/trace-t
77
77
  // embedding-geometry PROXIES; ablation verdicts are the ONLY causal
78
78
  // claims; slice completeness is bounded by tracking — and says so.
79
79
  export { ablationForSuspect, applyAblations, bisectCulprits, CONTEXT_BISECT_DEFAULTS, defaultOutcomeComparator, defaultSuspectClassifier, formatContextBugReport, llmCallIdsFromEvents, llmEdgeWeigher, localizeContextBug, probeFlipped, runAblationProbe, stepOutputText, suspectLabel, verdictFor, } from './lib/context-bisect/index.js';
80
+ // BacktrackTrace serializer — feeds agentThinkingUI's <BacktrackView>
81
+ // (the "why?" board) straight off a localizer report. Pure mapping, no
82
+ // UI dependency; the interfaces mirror agentthinkingui's contract.
83
+ export { toBacktrackTrace, } from './lib/context-bisect/index.js';
80
84
  // Tool-catalog confusability lint (RFC-002 tier 1, C1–C3) — build-time,
81
85
  // CI-gateable, framework-agnostic: plain { name, description?, inputSchema? }
82
86
  // tools in (OpenAI/Anthropic/MCP lists coerce via coerceCatalog; the
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/observe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/observe.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  * claims; slice completeness is bounded by tracking — and says so.
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.CONTEXT_BISECT_DEFAULTS = exports.bisectCulprits = exports.verdictFor = exports.runAblationProbe = exports.probeFlipped = exports.defaultOutcomeComparator = exports.applyAblations = exports.ablationForSuspect = exports.suspectLabel = exports.localizeContextBug = exports.llmCallIdsFromEvents = exports.formatContextBugReport = exports.defaultSuspectClassifier = exports.stepOutputText = exports.llmEdgeWeigher = void 0;
19
+ exports.CONTEXT_BISECT_DEFAULTS = exports.bisectCulprits = exports.verdictFor = exports.runAblationProbe = exports.probeFlipped = exports.defaultOutcomeComparator = exports.applyAblations = exports.ablationForSuspect = exports.toBacktrackTrace = exports.suspectLabel = exports.localizeContextBug = exports.llmCallIdsFromEvents = exports.formatContextBugReport = exports.defaultSuspectClassifier = exports.stepOutputText = exports.llmEdgeWeigher = void 0;
20
20
  var llmEdgeWeigher_js_1 = require("./llmEdgeWeigher.js");
21
21
  Object.defineProperty(exports, "llmEdgeWeigher", { enumerable: true, get: function () { return llmEdgeWeigher_js_1.llmEdgeWeigher; } });
22
22
  Object.defineProperty(exports, "stepOutputText", { enumerable: true, get: function () { return llmEdgeWeigher_js_1.stepOutputText; } });
@@ -26,6 +26,8 @@ Object.defineProperty(exports, "formatContextBugReport", { enumerable: true, get
26
26
  Object.defineProperty(exports, "llmCallIdsFromEvents", { enumerable: true, get: function () { return localize_js_1.llmCallIdsFromEvents; } });
27
27
  Object.defineProperty(exports, "localizeContextBug", { enumerable: true, get: function () { return localize_js_1.localizeContextBug; } });
28
28
  Object.defineProperty(exports, "suspectLabel", { enumerable: true, get: function () { return localize_js_1.suspectLabel; } });
29
+ var toBacktrackTrace_js_1 = require("./toBacktrackTrace.js");
30
+ Object.defineProperty(exports, "toBacktrackTrace", { enumerable: true, get: function () { return toBacktrackTrace_js_1.toBacktrackTrace; } });
29
31
  var ablation_js_1 = require("./ablation.js");
30
32
  Object.defineProperty(exports, "ablationForSuspect", { enumerable: true, get: function () { return ablation_js_1.ablationForSuspect; } });
31
33
  Object.defineProperty(exports, "applyAblations", { enumerable: true, get: function () { return ablation_js_1.applyAblations; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/context-bisect/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,yDAM6B;AAL3B,mHAAA,cAAc,OAAA;AACd,mHAAA,cAAc,OAAA;AAMhB,6CAUuB;AATrB,uHAAA,wBAAwB,OAAA;AACxB,qHAAA,sBAAsB,OAAA;AACtB,mHAAA,oBAAoB,OAAA;AACpB,iHAAA,kBAAkB,OAAA;AAClB,2GAAA,YAAY,OAAA;AAOd,6CASuB;AARrB,iHAAA,kBAAkB,OAAA;AAClB,6GAAA,cAAc,OAAA;AACd,uHAAA,wBAAwB,OAAA;AACxB,2GAAA,YAAY,OAAA;AACZ,+GAAA,gBAAgB,OAAA;AAChB,yGAAA,UAAU,OAAA;AAKZ,yCAKqB;AAJnB,2GAAA,cAAc,OAAA;AAMhB,uCAqBoB;AApBlB,mHAAA,uBAAuB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/context-bisect/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,yDAM6B;AAL3B,mHAAA,cAAc,OAAA;AACd,mHAAA,cAAc,OAAA;AAMhB,6CAUuB;AATrB,uHAAA,wBAAwB,OAAA;AACxB,qHAAA,sBAAsB,OAAA;AACtB,mHAAA,oBAAoB,OAAA;AACpB,iHAAA,kBAAkB,OAAA;AAClB,2GAAA,YAAY,OAAA;AAOd,6DAQ+B;AAP7B,uHAAA,gBAAgB,OAAA;AASlB,6CASuB;AARrB,iHAAA,kBAAkB,OAAA;AAClB,6GAAA,cAAc,OAAA;AACd,uHAAA,wBAAwB,OAAA;AACxB,2GAAA,YAAY,OAAA;AACZ,+GAAA,gBAAgB,OAAA;AAChB,yGAAA,UAAU,OAAA;AAKZ,yCAKqB;AAJnB,2GAAA,cAAc,OAAA;AAMhB,uCAqBoB;AApBlB,mHAAA,uBAAuB,OAAA"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ /**
3
+ * toBacktrackTrace — serialize a ContextBugReport into the BacktrackTrace
4
+ * shape that agentThinkingUI's <BacktrackView>/<BacktrackOverlay> renders
5
+ * (the "why?" board: suspects → influence meters → ablation stamps →
6
+ * chain-of-custody rewind).
7
+ *
8
+ * Pure mapping, no UI dependency — the BacktrackTrace interfaces below
9
+ * MIRROR agentthinkingui's `types/index.d.ts` contract; both sides are
10
+ * framework-agnostic JSON. The report carries everything except two
11
+ * things only the caller knows:
12
+ *
13
+ * - `answer` (REQUIRED): the report localizes a decision but does not
14
+ * hold the decision's output text — pass what the agent said/chose.
15
+ * - `custody` (optional): the rewind player replays RECORDED STATE
16
+ * (the assembled prompt, the mutating commit). That content lives in
17
+ * the caller's artifacts (snapshot/events), not in the report — pass
18
+ * a callback to enrich confirmed suspects with evidence panes.
19
+ *
20
+ * Honesty is preserved, not added: ranks are TRUE report positions even
21
+ * when the cards are a subset (`rank`), path-only scores carry
22
+ * `upperBound` (hatched meter + starred value in the UI), honesty flags
23
+ * map verbatim, and the claims-discipline lines ride along. The mapper
24
+ * never invents a causal claim: `verdict` exists only where the report's
25
+ * ablation produced one ('inconclusive' maps to NO stamp, not a verdict).
26
+ */
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.toBacktrackTrace = void 0;
29
+ /* ── mapping ──────────────────────────────────────────────────────────── */
30
+ const BORN_VIA = {
31
+ injection: 'injection engine',
32
+ tool: 'tool result',
33
+ arg: 'run args/env (untracked)',
34
+ stage: 'stage commit',
35
+ };
36
+ /** The report's claims-discipline lines — same tier language as formatContextBugReport. */
37
+ const CLAIMS_LINES = [
38
+ 'scores/weights are deterministic embedding-geometry proxies — semantic alignment, not model internals.',
39
+ 'only ablation verdicts make causal claims.',
40
+ ];
41
+ function suspectName(s) {
42
+ return s.detail?.injectionId ?? s.detail?.toolName ?? s.source;
43
+ }
44
+ function toCard(s, trueRank, custody) {
45
+ // edgePath walks decision → suspect; the suspect-adjacent hop is last
46
+ const adjacent = s.edgePath.length > 0 ? s.edgePath[s.edgePath.length - 1] : undefined;
47
+ const verdict = s.verdict && s.verdict.verdict !== 'inconclusive'
48
+ ? {
49
+ kind: s.verdict.verdict,
50
+ flips: s.runs?.flips,
51
+ samples: s.runs?.samples,
52
+ claim: s.verdict.claim,
53
+ }
54
+ : undefined;
55
+ return {
56
+ kind: s.kind,
57
+ flavor: s.detail?.flavor,
58
+ name: suspectName(s),
59
+ text: s.detail?.text,
60
+ score: s.score,
61
+ rank: trueRank,
62
+ upperBound: s.hasContentEvidence ? undefined : true,
63
+ edge: adjacent
64
+ ? { key: adjacent.key, weight: adjacent.weight, kind: adjacent.kind }
65
+ : undefined,
66
+ path: s.edgePath.length > 1
67
+ ? s.edgePath.map((h) => ({
68
+ key: h.key ?? '',
69
+ kind: h.kind,
70
+ via: `${h.from} ← ${h.to}`,
71
+ }))
72
+ : undefined,
73
+ bornAt: { id: s.source, label: s.stageName, via: BORN_VIA[s.kind] },
74
+ custody: custody?.(s, trueRank),
75
+ verdict,
76
+ };
77
+ }
78
+ /**
79
+ * Serialize a localizer report for agentThinkingUI's BacktrackView.
80
+ * See module doc — `answer` is required; `custody` enriches the rewind.
81
+ */
82
+ function toBacktrackTrace(report, opts) {
83
+ const max = opts.maxSuspects ?? 6;
84
+ const prefer = opts.preferContentEvidence ?? true;
85
+ // selection — true report rank rides on every card either way
86
+ const indexed = report.suspects.map((s, i) => ({ s, trueRank: i + 1 }));
87
+ let selected;
88
+ if (indexed.length <= max) {
89
+ selected = indexed;
90
+ }
91
+ else if (prefer) {
92
+ const content = indexed.filter((e) => e.s.hasContentEvidence);
93
+ const structural = indexed.filter((e) => !e.s.hasContentEvidence);
94
+ selected = [...content, ...structural].slice(0, max);
95
+ selected.sort((a, b) => a.trueRank - b.trueRank); // cards stay in rank order
96
+ }
97
+ else {
98
+ selected = indexed.slice(0, max);
99
+ }
100
+ const selectedRanks = new Set(selected.map((e) => e.trueRank));
101
+ const dropped = indexed.filter((e) => !selectedRanks.has(e.trueRank));
102
+ const folded = dropped.length > 0
103
+ ? `${dropped.length} more suspect${dropped.length === 1 ? '' : 's'} folded — ` +
104
+ dropped.map((e) => `#${e.trueRank} ${e.s.source}`).join(' · ') +
105
+ (dropped.every((e) => !e.s.hasContentEvidence)
106
+ ? ' (path-only upper bounds)'
107
+ : '') +
108
+ ' — every id drillable with the trace toolpack'
109
+ : undefined;
110
+ // auto tie-warning: only when the report's top two genuinely crowd each other
111
+ let scoreNote = opts.scoreNote;
112
+ if (scoreNote === undefined && report.suspects.length >= 2) {
113
+ const margin = report.suspects[0].score - report.suspects[1].score;
114
+ if (margin < 0.05) {
115
+ scoreNote = `top-2 margin ${margin.toFixed(2)} — proxy scores alone cannot separate them${report.mode === 'causal' ? '; the ablation test can' : ''}.`;
116
+ }
117
+ }
118
+ const honesty = [
119
+ ...report.honestyFlags.map((f) => `⚠ ${f.flag}: ${f.note}`),
120
+ ...CLAIMS_LINES,
121
+ ];
122
+ return {
123
+ claim: opts.claim ?? `Why did ${report.stepName} (${report.step}) decide this?`,
124
+ mode: report.mode,
125
+ modeLabel: opts.modeLabel,
126
+ agent: opts.agent,
127
+ model: opts.model,
128
+ answer: opts.answer,
129
+ decidedAt: { id: report.step, label: report.stepName, kind: opts.decidedAtKind ?? 'llm' },
130
+ suspects: selected.map((e) => toCard(e.s, e.trueRank, opts.custody)),
131
+ trail: opts.trail,
132
+ folded,
133
+ scoreNote,
134
+ baseline: report.baseline
135
+ ? `${report.baseline.flips}/${report.baseline.samples} flipped with no ablation`
136
+ : undefined,
137
+ honesty,
138
+ };
139
+ }
140
+ exports.toBacktrackTrace = toBacktrackTrace;
141
+ //# sourceMappingURL=toBacktrackTrace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toBacktrackTrace.js","sourceRoot":"","sources":["../../../src/lib/context-bisect/toBacktrackTrace.ts"],"names":[],"mappings":"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"}
package/dist/observe.js CHANGED
@@ -33,7 +33,7 @@
33
33
  */
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
35
  exports.bisectCulprits = exports.applyAblations = exports.ablationForSuspect = exports.traceToolpack = exports.TOOLPACK_HARD_CAPS = exports.callTraceTool = exports.structuralProximity = exports.scoreMargin = exports.scoreInfluence = exports.persistence = exports.pairwiseSimilarity = exports.finalAnswerSimilarity = exports.embeddingCache = exports.EmbeddingCache = exports.DEFAULT_PERSISTENCE_THRESHOLD = exports.DEFAULT_MARGIN_THRESHOLD = exports.DEFAULT_INFLUENCE_WEIGHTS = exports.contentHash = exports.compositeScore = exports.averageRelevancy = exports.adaptWeights = exports.typedEmit = exports.agentThinkingTrace = exports.toolLineageRecorder = exports.attachStatus = exports.LoggingDomains = exports.attachLogging = exports.skillRecorder = exports.permissionRecorder = exports.memoryRecorder = exports.evalRecorder = exports.contextEvaluatedRecorder = exports.toolsRecorder = exports.costRecorder = exports.LiveAgentTurnTracker = exports.LiveToolTracker = exports.LiveLLMTracker = exports.LiveStateRecorder = exports.liveStateRecorder = exports.buildStepGraph = exports.attachFlowchart = exports.runStepRecorder = exports.RunStepRecorder = exports.buildRunSteps = exports.BoundaryRecorder = exports.boundaryRecorder = exports.agentRecorder = exports.compositionRecorder = exports.streamRecorder = exports.ContextRecorder = void 0;
36
- exports.toolChoiceRecorder = exports.buildChoiceContext = exports.saysWhatNotWhenRule = exports.runToolLintCli = exports.optionalParamRule = exports.MOCK_EMBEDDER_CALIBRATION = exports.formatToolCatalogReport = exports.enumInProseRule = exports.differentiationHint = exports.descriptionRule = exports.defaultStructuralRules = exports.DEFAULT_WHEN_CUES = exports.DEFAULT_WATCH_BAND = exports.DEFAULT_OMISSION_CUES = exports.DEFAULT_CONFUSABILITY_THRESHOLD = exports.confusabilityText = exports.coerceCatalog = exports.catalogFromTools = exports.analyzeToolCatalog = exports.verdictFor = exports.suspectLabel = exports.stepOutputText = exports.runAblationProbe = exports.probeFlipped = exports.localizeContextBug = exports.llmEdgeWeigher = exports.llmCallIdsFromEvents = exports.formatContextBugReport = exports.defaultSuspectClassifier = exports.defaultOutcomeComparator = exports.CONTEXT_BISECT_DEFAULTS = void 0;
36
+ exports.toolChoiceRecorder = exports.buildChoiceContext = exports.saysWhatNotWhenRule = exports.runToolLintCli = exports.optionalParamRule = exports.MOCK_EMBEDDER_CALIBRATION = exports.formatToolCatalogReport = exports.enumInProseRule = exports.differentiationHint = exports.descriptionRule = exports.defaultStructuralRules = exports.DEFAULT_WHEN_CUES = exports.DEFAULT_WATCH_BAND = exports.DEFAULT_OMISSION_CUES = exports.DEFAULT_CONFUSABILITY_THRESHOLD = exports.confusabilityText = exports.coerceCatalog = exports.catalogFromTools = exports.analyzeToolCatalog = exports.toBacktrackTrace = exports.verdictFor = exports.suspectLabel = exports.stepOutputText = exports.runAblationProbe = exports.probeFlipped = exports.localizeContextBug = exports.llmEdgeWeigher = exports.llmCallIdsFromEvents = exports.formatContextBugReport = exports.defaultSuspectClassifier = exports.defaultOutcomeComparator = exports.CONTEXT_BISECT_DEFAULTS = void 0;
37
37
  // Tier 1 — context + stream
38
38
  var ContextRecorder_js_1 = require("./recorders/core/ContextRecorder.js");
39
39
  Object.defineProperty(exports, "ContextRecorder", { enumerable: true, get: function () { return ContextRecorder_js_1.ContextRecorder; } });
@@ -143,6 +143,11 @@ Object.defineProperty(exports, "runAblationProbe", { enumerable: true, get: func
143
143
  Object.defineProperty(exports, "stepOutputText", { enumerable: true, get: function () { return index_js_3.stepOutputText; } });
144
144
  Object.defineProperty(exports, "suspectLabel", { enumerable: true, get: function () { return index_js_3.suspectLabel; } });
145
145
  Object.defineProperty(exports, "verdictFor", { enumerable: true, get: function () { return index_js_3.verdictFor; } });
146
+ // BacktrackTrace serializer — feeds agentThinkingUI's <BacktrackView>
147
+ // (the "why?" board) straight off a localizer report. Pure mapping, no
148
+ // UI dependency; the interfaces mirror agentthinkingui's contract.
149
+ var index_js_4 = require("./lib/context-bisect/index.js");
150
+ Object.defineProperty(exports, "toBacktrackTrace", { enumerable: true, get: function () { return index_js_4.toBacktrackTrace; } });
146
151
  // Tool-catalog confusability lint (RFC-002 tier 1, C1–C3) — build-time,
147
152
  // CI-gateable, framework-agnostic: plain { name, description?, inputSchema? }
148
153
  // tools in (OpenAI/Anthropic/MCP lists coerce via coerceCatalog; the
@@ -150,24 +155,24 @@ Object.defineProperty(exports, "verdictFor", { enumerable: true, get: function (
150
155
  // out. Pluggable structural rule pack; thresholds + embedder consumer-
151
156
  // injected with our defaults. Bin: `agentfootprint-lint-tools`.
152
157
  // Front door: docs/guides/tool-catalog-lint.md.
153
- var index_js_4 = require("./lib/tool-lint/index.js");
154
- Object.defineProperty(exports, "analyzeToolCatalog", { enumerable: true, get: function () { return index_js_4.analyzeToolCatalog; } });
155
- Object.defineProperty(exports, "catalogFromTools", { enumerable: true, get: function () { return index_js_4.catalogFromTools; } });
156
- Object.defineProperty(exports, "coerceCatalog", { enumerable: true, get: function () { return index_js_4.coerceCatalog; } });
157
- Object.defineProperty(exports, "confusabilityText", { enumerable: true, get: function () { return index_js_4.confusabilityText; } });
158
- Object.defineProperty(exports, "DEFAULT_CONFUSABILITY_THRESHOLD", { enumerable: true, get: function () { return index_js_4.DEFAULT_CONFUSABILITY_THRESHOLD; } });
159
- Object.defineProperty(exports, "DEFAULT_OMISSION_CUES", { enumerable: true, get: function () { return index_js_4.DEFAULT_OMISSION_CUES; } });
160
- Object.defineProperty(exports, "DEFAULT_WATCH_BAND", { enumerable: true, get: function () { return index_js_4.DEFAULT_WATCH_BAND; } });
161
- Object.defineProperty(exports, "DEFAULT_WHEN_CUES", { enumerable: true, get: function () { return index_js_4.DEFAULT_WHEN_CUES; } });
162
- Object.defineProperty(exports, "defaultStructuralRules", { enumerable: true, get: function () { return index_js_4.defaultStructuralRules; } });
163
- Object.defineProperty(exports, "descriptionRule", { enumerable: true, get: function () { return index_js_4.descriptionRule; } });
164
- Object.defineProperty(exports, "differentiationHint", { enumerable: true, get: function () { return index_js_4.differentiationHint; } });
165
- Object.defineProperty(exports, "enumInProseRule", { enumerable: true, get: function () { return index_js_4.enumInProseRule; } });
166
- Object.defineProperty(exports, "formatToolCatalogReport", { enumerable: true, get: function () { return index_js_4.formatToolCatalogReport; } });
167
- Object.defineProperty(exports, "MOCK_EMBEDDER_CALIBRATION", { enumerable: true, get: function () { return index_js_4.MOCK_EMBEDDER_CALIBRATION; } });
168
- Object.defineProperty(exports, "optionalParamRule", { enumerable: true, get: function () { return index_js_4.optionalParamRule; } });
169
- Object.defineProperty(exports, "runToolLintCli", { enumerable: true, get: function () { return index_js_4.runToolLintCli; } });
170
- Object.defineProperty(exports, "saysWhatNotWhenRule", { enumerable: true, get: function () { return index_js_4.saysWhatNotWhenRule; } });
158
+ var index_js_5 = require("./lib/tool-lint/index.js");
159
+ Object.defineProperty(exports, "analyzeToolCatalog", { enumerable: true, get: function () { return index_js_5.analyzeToolCatalog; } });
160
+ Object.defineProperty(exports, "catalogFromTools", { enumerable: true, get: function () { return index_js_5.catalogFromTools; } });
161
+ Object.defineProperty(exports, "coerceCatalog", { enumerable: true, get: function () { return index_js_5.coerceCatalog; } });
162
+ Object.defineProperty(exports, "confusabilityText", { enumerable: true, get: function () { return index_js_5.confusabilityText; } });
163
+ Object.defineProperty(exports, "DEFAULT_CONFUSABILITY_THRESHOLD", { enumerable: true, get: function () { return index_js_5.DEFAULT_CONFUSABILITY_THRESHOLD; } });
164
+ Object.defineProperty(exports, "DEFAULT_OMISSION_CUES", { enumerable: true, get: function () { return index_js_5.DEFAULT_OMISSION_CUES; } });
165
+ Object.defineProperty(exports, "DEFAULT_WATCH_BAND", { enumerable: true, get: function () { return index_js_5.DEFAULT_WATCH_BAND; } });
166
+ Object.defineProperty(exports, "DEFAULT_WHEN_CUES", { enumerable: true, get: function () { return index_js_5.DEFAULT_WHEN_CUES; } });
167
+ Object.defineProperty(exports, "defaultStructuralRules", { enumerable: true, get: function () { return index_js_5.defaultStructuralRules; } });
168
+ Object.defineProperty(exports, "descriptionRule", { enumerable: true, get: function () { return index_js_5.descriptionRule; } });
169
+ Object.defineProperty(exports, "differentiationHint", { enumerable: true, get: function () { return index_js_5.differentiationHint; } });
170
+ Object.defineProperty(exports, "enumInProseRule", { enumerable: true, get: function () { return index_js_5.enumInProseRule; } });
171
+ Object.defineProperty(exports, "formatToolCatalogReport", { enumerable: true, get: function () { return index_js_5.formatToolCatalogReport; } });
172
+ Object.defineProperty(exports, "MOCK_EMBEDDER_CALIBRATION", { enumerable: true, get: function () { return index_js_5.MOCK_EMBEDDER_CALIBRATION; } });
173
+ Object.defineProperty(exports, "optionalParamRule", { enumerable: true, get: function () { return index_js_5.optionalParamRule; } });
174
+ Object.defineProperty(exports, "runToolLintCli", { enumerable: true, get: function () { return index_js_5.runToolLintCli; } });
175
+ Object.defineProperty(exports, "saysWhatNotWhenRule", { enumerable: true, get: function () { return index_js_5.saysWhatNotWhenRule; } });
171
176
  // Tool-choice margin recorder (RFC-002 tier 2, C4–C6) — per LLM call,
172
177
  // ranks the OFFERED catalog against the choice context (user message +
173
178
  // latest assistant reasoning) via influence-core scoreMargin; embeds
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;;;;AAEH,4BAA4B;AAC5B,0EAAmG;AAA1F,qHAAA,eAAe,OAAA;AACxB,wEAAgG;AAAvF,mHAAA,cAAc,OAAA;AAEvB,+BAA+B;AAC/B,kFAGiD;AAF/C,6HAAA,mBAAmB,OAAA;AAGrB,sEAA6F;AAApF,iHAAA,aAAa,OAAA;AACtB,qFAkBuD;AAjBrD,uHAAA,gBAAgB,OAAA;AAChB,uHAAA,gBAAgB,OAAA;AAiBlB,mFAWsD;AAVpD,mHAAA,aAAa,OAAA;AACb,qHAAA,eAAe,OAAA;AACf,qHAAA,eAAe,OAAA;AASjB,uFAUwD;AATtD,uHAAA,eAAe,OAAA;AACf,sHAAA,cAAc,OAAA;AAShB,uFAUwD;AATtD,yHAAA,iBAAiB,OAAA;AACjB,yHAAA,iBAAiB,OAAA;AACjB,sHAAA,cAAc,OAAA;AACd,uHAAA,eAAe,OAAA;AACf,4HAAA,oBAAoB,OAAA;AAOtB,6BAA6B;AAC7B,oEAA0F;AAAjF,+GAAA,YAAY,OAAA;AACrB,sEAA6F;AAApF,iHAAA,aAAa,OAAA;AACtB,4FAGsD;AAFpD,uIAAA,wBAAwB,OAAA;AAG1B,oEAA0F;AAAjF,+GAAA,YAAY,OAAA;AACrB,wEAAgG;AAAvF,mHAAA,cAAc,OAAA;AACvB,gFAGgD;AAF9C,2HAAA,kBAAkB,OAAA;AAGpB,sEAA6F;AAApF,iHAAA,aAAa,OAAA;AACtB,mFAMsD;AALpD,mHAAA,aAAa,OAAA;AACb,oHAAA,cAAc,OAAA;AAKhB,iFAIqD;AAHnD,iHAAA,YAAY,OAAA;AAId,4EAA4E;AAC5E,gFAAgF;AAChF,2FAO0D;AANxD,6HAAA,mBAAmB,OAAA;AAOrB,gFAAgF;AAChF,gFAAgF;AAChF,yGASiE;AAR/D,mIAAA,kBAAkB,OAAA;AAUpB,uDAAuD;AACvD,8DAA0D;AAAjD,yGAAA,SAAS,OAAA;AAElB,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,oEAAoE;AACpE,kEAAkE;AAClE,eAAe;AACf,0DAgCuC;AA/BrC,wGAAA,YAAY,OAAA;AACZ,4GAAA,gBAAgB,OAAA;AAChB,0GAAA,cAAc,OAAA;AACd,uGAAA,WAAW,OAAA;AACX,qHAAA,yBAAyB,OAAA;AACzB,oHAAA,wBAAwB,OAAA;AACxB,yHAAA,6BAA6B,OAAA;AAC7B,0GAAA,cAAc,OAAA;AACd,0GAAA,cAAc,OAAA;AACd,iHAAA,qBAAqB,OAAA;AACrB,8GAAA,kBAAkB,OAAA;AAClB,uGAAA,WAAW,OAAA;AACX,0GAAA,cAAc,OAAA;AACd,uGAAA,WAAW,OAAA;AACX,+GAAA,mBAAmB,OAAA;AAkBrB,uEAAuE;AACvE,2EAA2E;AAC3E,mEAAmE;AACnE,0DAMuC;AALrC,yGAAA,aAAa,OAAA;AACb,8GAAA,kBAAkB,OAAA;AAClB,yGAAA,aAAa,OAAA;AAIf,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,+DAA+D;AAC/D,oEAAoE;AACpE,mEAAmE;AACnE,0DA8CuC;AA7CrC,8GAAA,kBAAkB,OAAA;AAClB,0GAAA,cAAc,OAAA;AACd,0GAAA,cAAc,OAAA;AACd,mHAAA,uBAAuB,OAAA;AACvB,oHAAA,wBAAwB,OAAA;AACxB,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,0GAAA,cAAc,OAAA;AACd,8GAAA,kBAAkB,OAAA;AAClB,wGAAA,YAAY,OAAA;AACZ,4GAAA,gBAAgB,OAAA;AAChB,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AACZ,sGAAA,UAAU,OAAA;AAgCZ,sEAAsE;AACtE,uEAAuE;AACvE,mEAAmE;AACnE,0DAQuC;AAPrC,4GAAA,gBAAgB,OAAA;AAQlB,wEAAwE;AACxE,8EAA8E;AAC9E,qEAAqE;AACrE,wEAAwE;AACxE,uEAAuE;AACvE,gEAAgE;AAChE,gDAAgD;AAChD,qDAgCkC;AA/BhC,8GAAA,kBAAkB,OAAA;AAClB,4GAAA,gBAAgB,OAAA;AAChB,yGAAA,aAAa,OAAA;AACb,6GAAA,iBAAiB,OAAA;AACjB,2HAAA,+BAA+B,OAAA;AAC/B,iHAAA,qBAAqB,OAAA;AACrB,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,kHAAA,sBAAsB,OAAA;AACtB,2GAAA,eAAe,OAAA;AACf,+GAAA,mBAAmB,OAAA;AACnB,2GAAA,eAAe,OAAA;AACf,mHAAA,uBAAuB,OAAA;AACvB,qHAAA,yBAAyB,OAAA;AACzB,6GAAA,iBAAiB,OAAA;AACjB,0GAAA,cAAc,OAAA;AACd,+GAAA,mBAAmB,OAAA;AAgBrB,sEAAsE;AACtE,uEAAuE;AACvE,qEAAqE;AACrE,oEAAoE;AACpE,yFASyD;AARvD,2HAAA,kBAAkB,OAAA;AAClB,2HAAA,kBAAkB,OAAA"}
@@ -16,6 +16,7 @@
16
16
  */
17
17
  export { llmEdgeWeigher, stepOutputText, type LlmEdgeWeigherHandle, type LlmEdgeWeigherOptions, type RankedParentEdge, } from './llmEdgeWeigher.js';
18
18
  export { defaultSuspectClassifier, formatContextBugReport, llmCallIdsFromEvents, localizeContextBug, suspectLabel, type ClassifyContext, type LocalizeContextBugOptions, type SuspectClassifier, type SuspectSeed, } from './localize.js';
19
+ export { toBacktrackTrace, type BacktrackCustodyHop, type BacktrackHop, type BacktrackSuspectCard, type BacktrackTrace, type BacktrackTrail, type ToBacktrackTraceOptions, } from './toBacktrackTrace.js';
19
20
  export { ablationForSuspect, applyAblations, defaultOutcomeComparator, probeFlipped, runAblationProbe, verdictFor, type AblationTargets, type ProbeConfig, } from './ablation.js';
20
21
  export { bisectCulprits, type BisectCulpritsOptions, type BisectionProbe, type BisectionResult, } from './bisect.js';
21
22
  export { CONTEXT_BISECT_DEFAULTS, type AblationRerun, type AblationRunner, type AblationRunStats, type AblationSpec, type AblationVerdict, type AblationVerdictKind, type CapturedEventLike, type ContextBugArtifacts, type ContextBugReport, type EdgePathStep, type HonestyFlag, type HonestyFlagKind, type OutcomeComparator, type QualityTriggerLookup, type SimilarityStats, type SliceStats, type Suspect, type SuspectDetail, type SuspectKind, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/context-bisect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/context-bisect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * toBacktrackTrace — serialize a ContextBugReport into the BacktrackTrace
3
+ * shape that agentThinkingUI's <BacktrackView>/<BacktrackOverlay> renders
4
+ * (the "why?" board: suspects → influence meters → ablation stamps →
5
+ * chain-of-custody rewind).
6
+ *
7
+ * Pure mapping, no UI dependency — the BacktrackTrace interfaces below
8
+ * MIRROR agentthinkingui's `types/index.d.ts` contract; both sides are
9
+ * framework-agnostic JSON. The report carries everything except two
10
+ * things only the caller knows:
11
+ *
12
+ * - `answer` (REQUIRED): the report localizes a decision but does not
13
+ * hold the decision's output text — pass what the agent said/chose.
14
+ * - `custody` (optional): the rewind player replays RECORDED STATE
15
+ * (the assembled prompt, the mutating commit). That content lives in
16
+ * the caller's artifacts (snapshot/events), not in the report — pass
17
+ * a callback to enrich confirmed suspects with evidence panes.
18
+ *
19
+ * Honesty is preserved, not added: ranks are TRUE report positions even
20
+ * when the cards are a subset (`rank`), path-only scores carry
21
+ * `upperBound` (hatched meter + starred value in the UI), honesty flags
22
+ * map verbatim, and the claims-discipline lines ride along. The mapper
23
+ * never invents a causal claim: `verdict` exists only where the report's
24
+ * ablation produced one ('inconclusive' maps to NO stamp, not a verdict).
25
+ */
26
+ import type { ContextBugReport, Suspect } from './types.js';
27
+ export interface BacktrackCustodyHop {
28
+ readonly step: string;
29
+ readonly detail: string;
30
+ readonly at?: string;
31
+ readonly variable?: string;
32
+ /** recorded state at this hop — prompt text, commit payload, code, rule operands */
33
+ readonly content?: string;
34
+ /** exact substring of `content` highlighted as the culprit span */
35
+ readonly highlight?: string;
36
+ }
37
+ export interface BacktrackHop {
38
+ readonly key: string;
39
+ readonly kind?: 'data' | 'control';
40
+ readonly via?: string;
41
+ }
42
+ export interface BacktrackSuspectCard {
43
+ readonly kind: string;
44
+ readonly flavor?: string;
45
+ readonly name: string;
46
+ readonly text?: string;
47
+ readonly score: number;
48
+ /** true position in the report's ranking (cards may be a subset) */
49
+ readonly rank: number;
50
+ /** score is a path-only upper bound — no content signal */
51
+ readonly upperBound?: boolean;
52
+ /** the hop adjacent to the suspect (what fed the decision side) */
53
+ readonly edge?: {
54
+ readonly key?: string;
55
+ readonly weight?: number;
56
+ readonly kind?: 'data' | 'control';
57
+ };
58
+ /** the full hop chain, decision → suspect (multi-hop paths only) */
59
+ readonly path?: readonly BacktrackHop[];
60
+ readonly bornAt?: {
61
+ readonly id: string;
62
+ readonly label?: string;
63
+ readonly via?: string;
64
+ };
65
+ readonly custody?: readonly BacktrackCustodyHop[];
66
+ readonly verdict?: {
67
+ readonly kind: 'confirmed' | 'not-confirmed';
68
+ readonly flips?: number;
69
+ readonly samples?: number;
70
+ readonly claim?: string;
71
+ };
72
+ }
73
+ export interface BacktrackTrail {
74
+ readonly title?: string;
75
+ readonly custody?: readonly BacktrackCustodyHop[];
76
+ readonly claim?: string;
77
+ }
78
+ export interface BacktrackTrace {
79
+ readonly claim: string;
80
+ readonly mode: 'causal' | 'correlational';
81
+ readonly modeLabel?: string;
82
+ readonly agent?: string;
83
+ readonly model?: string;
84
+ readonly answer: {
85
+ readonly text: string;
86
+ readonly label?: string;
87
+ readonly tone?: 'error' | 'question';
88
+ };
89
+ readonly decidedAt: {
90
+ readonly id: string;
91
+ readonly label?: string;
92
+ readonly kind?: 'llm' | 'rule';
93
+ };
94
+ readonly suspects: readonly BacktrackSuspectCard[];
95
+ readonly trail?: BacktrackTrail;
96
+ readonly folded?: string;
97
+ readonly scoreNote?: string;
98
+ readonly baseline?: string;
99
+ readonly honesty?: readonly string[];
100
+ }
101
+ export interface ToBacktrackTraceOptions {
102
+ /** The decision's output text — the report doesn't hold it. */
103
+ readonly answer: {
104
+ readonly text: string;
105
+ readonly label?: string;
106
+ readonly tone?: 'error' | 'question';
107
+ };
108
+ /** Headline question. Default: derived from the trigger step. */
109
+ readonly claim?: string;
110
+ /** 'rule' renders the decision diamond instead of the brain. Default 'llm'. */
111
+ readonly decidedAtKind?: 'llm' | 'rule';
112
+ /** Override the mode chip (e.g. "exact chain · proxy ranking"). */
113
+ readonly modeLabel?: string;
114
+ readonly agent?: string;
115
+ readonly model?: string;
116
+ /** Max suspect cards. Default 6. The rest fold into one disclosed line. */
117
+ readonly maxSuspects?: number;
118
+ /**
119
+ * Card selection when the report has more suspects than `maxSuspects`.
120
+ * Default TRUE: content-evidence suspects fill the cards first (they are
121
+ * what a human can act on), structural path-only hops fold — but every
122
+ * card keeps its TRUE report rank, and the folded line discloses what
123
+ * was left out and that it ranked where it ranked. FALSE: strictly the
124
+ * report's top-N.
125
+ */
126
+ readonly preferContentEvidence?: boolean;
127
+ /** Enrich a suspect's chain of custody with recorded-state panes. */
128
+ readonly custody?: (suspect: Suspect, trueRank: number) => readonly BacktrackCustodyHop[] | undefined;
129
+ /** Exact recorded hops for deterministic decisions (no ablation verdict). */
130
+ readonly trail?: BacktrackTrail;
131
+ /** Override the auto score note (top-2 margin tie warning). */
132
+ readonly scoreNote?: string;
133
+ }
134
+ /**
135
+ * Serialize a localizer report for agentThinkingUI's BacktrackView.
136
+ * See module doc — `answer` is required; `custody` enriches the rewind.
137
+ */
138
+ export declare function toBacktrackTrace(report: ContextBugReport, opts: ToBacktrackTraceOptions): BacktrackTrace;
139
+ //# sourceMappingURL=toBacktrackTrace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toBacktrackTrace.d.ts","sourceRoot":"","sources":["../../../../src/lib/context-bisect/toBacktrackTrace.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ export { typedEmit } from './recorders/core/typedEmit.js';
53
53
  export { adaptWeights, averageRelevancy, compositeScore, contentHash, DEFAULT_INFLUENCE_WEIGHTS, DEFAULT_MARGIN_THRESHOLD, DEFAULT_PERSISTENCE_THRESHOLD, EmbeddingCache, embeddingCache, finalAnswerSimilarity, pairwiseSimilarity, persistence, scoreInfluence, scoreMargin, structuralProximity, type CandidateScore, type Embedder, type EmbeddingCacheOptions, type EmbeddingCacheStats, type EvidenceInput, type InfluenceScore, type InfluenceWeights, type MarginCandidate, type MarginResult, type PairwiseSimilarityArgs, type PairwiseSimilarityResult, type ScoreInfluenceArgs, type ScoreMarginArgs, type SignalScores, type SimilarityItem, type SimilarityPair, } from './lib/influence-core/index.js';
54
54
  export { callTraceTool, TOOLPACK_HARD_CAPS, traceToolpack, type TraceToolpackArtifacts, type TraceToolpackOptions, } from './lib/trace-toolpack/index.js';
55
55
  export { ablationForSuspect, applyAblations, bisectCulprits, CONTEXT_BISECT_DEFAULTS, defaultOutcomeComparator, defaultSuspectClassifier, formatContextBugReport, llmCallIdsFromEvents, llmEdgeWeigher, localizeContextBug, probeFlipped, runAblationProbe, stepOutputText, suspectLabel, verdictFor, type AblationRerun, type AblationRunner, type AblationRunStats, type AblationSpec, type AblationTargets, type AblationVerdict, type AblationVerdictKind, type BisectCulpritsOptions, type BisectionProbe, type BisectionResult, type CapturedEventLike, type ClassifyContext, type ContextBugArtifacts, type ContextBugReport, type EdgePathStep, type HonestyFlag, type HonestyFlagKind, type LlmEdgeWeigherHandle, type LlmEdgeWeigherOptions, type LocalizeContextBugOptions, type OutcomeComparator, type QualityTriggerLookup, type RankedParentEdge, type SimilarityStats, type SliceStats, type Suspect, type SuspectClassifier, type SuspectDetail, type SuspectKind, type SuspectSeed, } from './lib/context-bisect/index.js';
56
+ export { toBacktrackTrace, type BacktrackCustodyHop, type BacktrackHop, type BacktrackSuspectCard, type BacktrackTrace, type BacktrackTrail, type ToBacktrackTraceOptions, } from './lib/context-bisect/index.js';
56
57
  export { analyzeToolCatalog, catalogFromTools, coerceCatalog, confusabilityText, DEFAULT_CONFUSABILITY_THRESHOLD, DEFAULT_OMISSION_CUES, DEFAULT_WATCH_BAND, DEFAULT_WHEN_CUES, defaultStructuralRules, descriptionRule, differentiationHint, enumInProseRule, formatToolCatalogReport, MOCK_EMBEDDER_CALIBRATION, optionalParamRule, runToolLintCli, saysWhatNotWhenRule, type AnalyzeToolCatalogOptions, type CatalogTool, type ConfusablePairFinding, type DescriptionRuleOptions, type FormatReportOptions, type LintRule, type LintSeverity, type OptionalParamRuleOptions, type PairVerdict, type SaysWhatNotWhenRuleOptions, type SimilarityReport, type StructuralFinding, type ToolCatalogReport, type ToolLintCliIO, } from './lib/tool-lint/index.js';
57
58
  export { buildChoiceContext, toolChoiceRecorder, type OfferedTool, type ToolChoiceCall, type ToolChoiceRecorderHandle, type ToolChoiceRecorderOptions, type ToolChoiceSkipReason, type ToolChoiceSummary, } from './recorders/observability/ToolChoiceRecorder.js';
58
59
  //# sourceMappingURL=observe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../src/observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAGhG,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,eAAe,EACf,cAAc,EACd,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,gDAAgD,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EACL,wBAAwB,EACxB,KAAK,+BAA+B,GACrC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EACL,aAAa,EACb,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,GACjB,MAAM,kDAAkD,CAAC;AAG1D,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,yDAAyD,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAS1D,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AAOvC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,+BAA+B,EAC/B,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,iDAAiD,CAAC"}
1
+ {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../src/observe.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentfootprint",
3
- "version": "6.26.1",
3
+ "version": "6.27.0",
4
4
  "description": "The explainable agent framework — build AI agents you can explain, audit, and trust. Built on footprintjs.",
5
5
  "license": "MIT",
6
6
  "author": "Sanjay Krishna Anbalagan",