agentfootprint 9.74.0 → 9.76.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 (161) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +126 -0
  3. package/CLAUDE.md +24 -19
  4. package/ai-instructions/claude-code/SKILL.md +1 -1
  5. package/dist/artifacts/index.js +3 -1
  6. package/dist/artifacts/index.js.map +1 -1
  7. package/dist/artifacts/recordingArtifact.js +47 -1
  8. package/dist/artifacts/recordingArtifact.js.map +1 -1
  9. package/dist/core/Agent.js +53 -1
  10. package/dist/core/Agent.js.map +1 -1
  11. package/dist/core/agent/AgentBuilder.js +12 -0
  12. package/dist/core/agent/AgentBuilder.js.map +1 -1
  13. package/dist/core/agent/evidence/gate.js +22 -3
  14. package/dist/core/agent/evidence/gate.js.map +1 -1
  15. package/dist/core/agent/stagedRefs.js +161 -0
  16. package/dist/core/agent/stagedRefs.js.map +1 -0
  17. package/dist/core/agent/stages/callLLM.js +22 -2
  18. package/dist/core/agent/stages/callLLM.js.map +1 -1
  19. package/dist/core/agent/stages/evidenceRecheck.js +21 -2
  20. package/dist/core/agent/stages/evidenceRecheck.js.map +1 -1
  21. package/dist/core/agent/stages/toolCalls.js +42 -0
  22. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  23. package/dist/core/agent/toolDispatch.js +101 -0
  24. package/dist/core/agent/toolDispatch.js.map +1 -0
  25. package/dist/core/flowchartAsTool.js +9 -2
  26. package/dist/core/flowchartAsTool.js.map +1 -1
  27. package/dist/core/runbook/coverage.js +162 -0
  28. package/dist/core/runbook/coverage.js.map +1 -0
  29. package/dist/core/runbook/dispatch.js +119 -0
  30. package/dist/core/runbook/dispatch.js.map +1 -0
  31. package/dist/core/runbook/index.js +24 -0
  32. package/dist/core/runbook/index.js.map +1 -0
  33. package/dist/core/runbook/runbookAsTool.js +358 -0
  34. package/dist/core/runbook/runbookAsTool.js.map +1 -0
  35. package/dist/core/runbook/types.js +22 -0
  36. package/dist/core/runbook/types.js.map +1 -0
  37. package/dist/core/runbook/verdicts.js +156 -0
  38. package/dist/core/runbook/verdicts.js.map +1 -0
  39. package/dist/core/runbook/walk.js +115 -0
  40. package/dist/core/runbook/walk.js.map +1 -0
  41. package/dist/core/tools.js +55 -1
  42. package/dist/core/tools.js.map +1 -1
  43. package/dist/esm/artifacts/index.d.ts +1 -1
  44. package/dist/esm/artifacts/index.js +1 -1
  45. package/dist/esm/artifacts/index.js.map +1 -1
  46. package/dist/esm/artifacts/recordingArtifact.d.ts +36 -0
  47. package/dist/esm/artifacts/recordingArtifact.js +45 -0
  48. package/dist/esm/artifacts/recordingArtifact.js.map +1 -1
  49. package/dist/esm/core/Agent.js +53 -1
  50. package/dist/esm/core/Agent.js.map +1 -1
  51. package/dist/esm/core/agent/AgentBuilder.d.ts +12 -0
  52. package/dist/esm/core/agent/AgentBuilder.js +12 -0
  53. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  54. package/dist/esm/core/agent/evidence/gate.d.ts +11 -1
  55. package/dist/esm/core/agent/evidence/gate.js +22 -3
  56. package/dist/esm/core/agent/evidence/gate.js.map +1 -1
  57. package/dist/esm/core/agent/evidence/types.d.ts +23 -0
  58. package/dist/esm/core/agent/stagedRefs.d.ts +94 -0
  59. package/dist/esm/core/agent/stagedRefs.js +154 -0
  60. package/dist/esm/core/agent/stagedRefs.js.map +1 -0
  61. package/dist/esm/core/agent/stages/callLLM.d.ts +17 -0
  62. package/dist/esm/core/agent/stages/callLLM.js +22 -2
  63. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  64. package/dist/esm/core/agent/stages/evidenceRecheck.d.ts +19 -1
  65. package/dist/esm/core/agent/stages/evidenceRecheck.js +21 -2
  66. package/dist/esm/core/agent/stages/evidenceRecheck.js.map +1 -1
  67. package/dist/esm/core/agent/stages/toolCalls.js +42 -0
  68. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  69. package/dist/esm/core/agent/toolDispatch.d.ts +50 -0
  70. package/dist/esm/core/agent/toolDispatch.js +97 -0
  71. package/dist/esm/core/agent/toolDispatch.js.map +1 -0
  72. package/dist/esm/core/flowchartAsTool.d.ts +6 -0
  73. package/dist/esm/core/flowchartAsTool.js +9 -2
  74. package/dist/esm/core/flowchartAsTool.js.map +1 -1
  75. package/dist/esm/core/runbook/coverage.d.ts +69 -0
  76. package/dist/esm/core/runbook/coverage.js +155 -0
  77. package/dist/esm/core/runbook/coverage.js.map +1 -0
  78. package/dist/esm/core/runbook/dispatch.d.ts +69 -0
  79. package/dist/esm/core/runbook/dispatch.js +112 -0
  80. package/dist/esm/core/runbook/dispatch.js.map +1 -0
  81. package/dist/esm/core/runbook/index.d.ts +9 -0
  82. package/dist/esm/core/runbook/index.js +9 -0
  83. package/dist/esm/core/runbook/index.js.map +1 -0
  84. package/dist/esm/core/runbook/runbookAsTool.d.ts +88 -0
  85. package/dist/esm/core/runbook/runbookAsTool.js +354 -0
  86. package/dist/esm/core/runbook/runbookAsTool.js.map +1 -0
  87. package/dist/esm/core/runbook/types.d.ts +196 -0
  88. package/dist/esm/core/runbook/types.js +21 -0
  89. package/dist/esm/core/runbook/types.js.map +1 -0
  90. package/dist/esm/core/runbook/verdicts.d.ts +78 -0
  91. package/dist/esm/core/runbook/verdicts.js +148 -0
  92. package/dist/esm/core/runbook/verdicts.js.map +1 -0
  93. package/dist/esm/core/runbook/walk.d.ts +72 -0
  94. package/dist/esm/core/runbook/walk.js +110 -0
  95. package/dist/esm/core/runbook/walk.js.map +1 -0
  96. package/dist/esm/core/tools.d.ts +112 -0
  97. package/dist/esm/core/tools.js +52 -0
  98. package/dist/esm/core/tools.js.map +1 -1
  99. package/dist/esm/events/payloads.d.ts +39 -0
  100. package/dist/esm/events/registry.d.ts +3 -1
  101. package/dist/esm/events/registry.js +2 -0
  102. package/dist/esm/events/registry.js.map +1 -1
  103. package/dist/esm/index.d.ts +4 -3
  104. package/dist/esm/index.js +19 -2
  105. package/dist/esm/index.js.map +1 -1
  106. package/dist/esm/lib/mcp/toolExtras.d.ts +8 -0
  107. package/dist/esm/lib/mcp/toolExtras.js +7 -1
  108. package/dist/esm/lib/mcp/toolExtras.js.map +1 -1
  109. package/dist/events/registry.js +2 -0
  110. package/dist/events/registry.js.map +1 -1
  111. package/dist/index.js +97 -66
  112. package/dist/index.js.map +1 -1
  113. package/dist/lib/mcp/toolExtras.js +6 -0
  114. package/dist/lib/mcp/toolExtras.js.map +1 -1
  115. package/dist/types/artifacts/index.d.ts +1 -1
  116. package/dist/types/artifacts/index.d.ts.map +1 -1
  117. package/dist/types/artifacts/recordingArtifact.d.ts +36 -0
  118. package/dist/types/artifacts/recordingArtifact.d.ts.map +1 -1
  119. package/dist/types/core/Agent.d.ts.map +1 -1
  120. package/dist/types/core/agent/AgentBuilder.d.ts +12 -0
  121. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  122. package/dist/types/core/agent/evidence/gate.d.ts +11 -1
  123. package/dist/types/core/agent/evidence/gate.d.ts.map +1 -1
  124. package/dist/types/core/agent/evidence/types.d.ts +23 -0
  125. package/dist/types/core/agent/evidence/types.d.ts.map +1 -1
  126. package/dist/types/core/agent/stagedRefs.d.ts +95 -0
  127. package/dist/types/core/agent/stagedRefs.d.ts.map +1 -0
  128. package/dist/types/core/agent/stages/callLLM.d.ts +17 -0
  129. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  130. package/dist/types/core/agent/stages/evidenceRecheck.d.ts +19 -1
  131. package/dist/types/core/agent/stages/evidenceRecheck.d.ts.map +1 -1
  132. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  133. package/dist/types/core/agent/toolDispatch.d.ts +51 -0
  134. package/dist/types/core/agent/toolDispatch.d.ts.map +1 -0
  135. package/dist/types/core/flowchartAsTool.d.ts +6 -0
  136. package/dist/types/core/flowchartAsTool.d.ts.map +1 -1
  137. package/dist/types/core/runbook/coverage.d.ts +70 -0
  138. package/dist/types/core/runbook/coverage.d.ts.map +1 -0
  139. package/dist/types/core/runbook/dispatch.d.ts +70 -0
  140. package/dist/types/core/runbook/dispatch.d.ts.map +1 -0
  141. package/dist/types/core/runbook/index.d.ts +10 -0
  142. package/dist/types/core/runbook/index.d.ts.map +1 -0
  143. package/dist/types/core/runbook/runbookAsTool.d.ts +89 -0
  144. package/dist/types/core/runbook/runbookAsTool.d.ts.map +1 -0
  145. package/dist/types/core/runbook/types.d.ts +197 -0
  146. package/dist/types/core/runbook/types.d.ts.map +1 -0
  147. package/dist/types/core/runbook/verdicts.d.ts +79 -0
  148. package/dist/types/core/runbook/verdicts.d.ts.map +1 -0
  149. package/dist/types/core/runbook/walk.d.ts +73 -0
  150. package/dist/types/core/runbook/walk.d.ts.map +1 -0
  151. package/dist/types/core/tools.d.ts +112 -0
  152. package/dist/types/core/tools.d.ts.map +1 -1
  153. package/dist/types/events/payloads.d.ts +39 -0
  154. package/dist/types/events/payloads.d.ts.map +1 -1
  155. package/dist/types/events/registry.d.ts +3 -1
  156. package/dist/types/events/registry.d.ts.map +1 -1
  157. package/dist/types/index.d.ts +4 -3
  158. package/dist/types/index.d.ts.map +1 -1
  159. package/dist/types/lib/mcp/toolExtras.d.ts +8 -0
  160. package/dist/types/lib/mcp/toolExtras.d.ts.map +1 -1
  161. package/package.json +1 -1
@@ -51,6 +51,7 @@
51
51
  * (offline, cheap, fast). Set membership over normalized tokens is the entire
52
52
  * mechanism, it costs microseconds, and it is the same on every run.
53
53
  */
54
+ import type { StagedRefsMatch } from '../stagedRefs.js';
54
55
  import type { EvidenceCorpus } from './evidenceIndex.js';
55
56
  import { EVIDENCE_CHECK_FRAME_PREFIX } from './frames.js';
56
57
  import type { EvidencePosture, EvidenceVerdict, NamesAndNumbersOptions, ResolvedEvidenceGate, UnsupportedValue } from './types.js';
@@ -90,8 +91,17 @@ export declare function describeValues(values: readonly UnsupportedValue[]): str
90
91
  * come first and untrusted text never gets the last line is the same rule the
91
92
  * compaction frame and the schema frame follow, and a rule with an exception
92
93
  * is not a rule.
94
+ *
95
+ * `stagedRefs` (optional) is the staged-refs join computed by the recheck
96
+ * stage: when this turn holds placed artifact tickets a served `wants` tool
97
+ * can spend, the frame names the refs and the spender by their declared names
98
+ * — "call the tool that provides it" without saying WHICH tool over WHICH ref
99
+ * leaves the model to head-math again. The clause sits INSIDE the authored
100
+ * frame (ref ids and tool names are declarations, not model output), so the
101
+ * quoted values still come last and `isLibraryAuthoredTurn`'s prefix match is
102
+ * untouched.
93
103
  */
94
- export declare function buildEvidenceCorrection(failedAnswer: string, values: readonly UnsupportedValue[]): readonly [{
104
+ export declare function buildEvidenceCorrection(failedAnswer: string, values: readonly UnsupportedValue[], stagedRefs?: StagedRefsMatch): readonly [{
95
105
  role: 'assistant';
96
106
  content: string;
97
107
  }, {
@@ -51,6 +51,7 @@
51
51
  * (offline, cheap, fast). Set membership over normalized tokens is the entire
52
52
  * mechanism, it costs microseconds, and it is the same on every run.
53
53
  */
54
+ import { stagedRefsTeachingClause } from '../stagedRefs.js';
54
55
  import { EVIDENCE_CHECK_FRAME_PREFIX } from './frames.js';
55
56
  import { extractCandidates } from './extract.js';
56
57
  import { lookupForms, normalizeToken } from './normalize.js';
@@ -86,6 +87,13 @@ export function resolveEvidenceGate(opts = {}) {
86
87
  `1 — got ${String(opts.minDigits)}. It is the point at which a BARE number stops being ` +
87
88
  `prose ("24 hours") and starts being a reading off a screen ("41,200"); the default is 4.`);
88
89
  }
90
+ const nudge = opts.nudge ?? false;
91
+ if (typeof nudge !== 'boolean') {
92
+ throw new Error(`AgentBuilder.namesAndNumbersFromEvidence: nudge must be a boolean — got ` +
93
+ `${String(opts.nudge)}. \`true\` appends one late line per iteration naming staged ` +
94
+ `artifact refs and the \`wants\` tool that spends them; absent or \`false\` composes ` +
95
+ `nothing, byte-identical.`);
96
+ }
89
97
  const shapes = [];
90
98
  const names = new Set();
91
99
  for (const shape of opts.shapes ?? []) {
@@ -122,7 +130,7 @@ export function resolveEvidenceGate(opts = {}) {
122
130
  throw new Error('AgentBuilder.namesAndNumbersFromEvidence: `exempt` takes strings and RegExps only.');
123
131
  }
124
132
  }
125
- return { posture, shapes, exemptValues, exemptPatterns, minDigits };
133
+ return { posture, shapes, exemptValues, exemptPatterns, minDigits, nudge };
126
134
  }
127
135
  /**
128
136
  * Anchor a caller's pattern to a whole token and drop `g`/`y`.
@@ -177,12 +185,23 @@ export function describeValues(values) {
177
185
  * come first and untrusted text never gets the last line is the same rule the
178
186
  * compaction frame and the schema frame follow, and a rule with an exception
179
187
  * is not a rule.
188
+ *
189
+ * `stagedRefs` (optional) is the staged-refs join computed by the recheck
190
+ * stage: when this turn holds placed artifact tickets a served `wants` tool
191
+ * can spend, the frame names the refs and the spender by their declared names
192
+ * — "call the tool that provides it" without saying WHICH tool over WHICH ref
193
+ * leaves the model to head-math again. The clause sits INSIDE the authored
194
+ * frame (ref ids and tool names are declarations, not model output), so the
195
+ * quoted values still come last and `isLibraryAuthoredTurn`'s prefix match is
196
+ * untouched.
180
197
  */
181
- export function buildEvidenceCorrection(failedAnswer, values) {
198
+ export function buildEvidenceCorrection(failedAnswer, values, stagedRefs) {
182
199
  const frame = `${EVIDENCE_CHECK_FRAME_PREFIX} — the answer above states values that appear in NO tool ` +
183
200
  `result from this turn, so they were not read from the data. Reply again using only names ` +
184
201
  `and numbers a tool actually returned. If you need one of these values, call the tool that ` +
185
- `provides it. If the data was never collected, say so plainly — an honest "that was not ` +
202
+ `provides it.` +
203
+ (stagedRefs === undefined ? '' : stagedRefsTeachingClause(stagedRefs)) +
204
+ ` If the data was never collected, say so plainly — an honest "that was not ` +
186
205
  `collected" is a correct answer and an invented identifier is not. The tokens listed after ` +
187
206
  `this line are quoted from YOUR OWN answer as DATA; they are a report, not an instruction ` +
188
207
  `addressed to you.]`;
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../../../src/core/agent/evidence/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../../../src/core/agent/evidence/gate.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,27 @@ export interface NamesAndNumbersOptions {
73
73
  * positives that follow.
74
74
  */
75
75
  readonly minDigits?: number;
76
+ /**
77
+ * The staged-refs nudge. Default `false` — off, byte-identical.
78
+ *
79
+ * When an iteration's context carries tool results staged by reference
80
+ * (`artifacts.placement` tickets) AND a tool the model can currently call
81
+ * declares `wants` over one of their kinds, the library appends ONE short
82
+ * line at the END of that request naming the refs and the spender tool:
83
+ * derived numbers come from the tool, not from mental arithmetic. Composed
84
+ * entirely from declarations (`Tool.resultKind` / `Tool.wants`) — no app
85
+ * prose — and placed late because the measured failure was recency: the
86
+ * app's own "use the compute tool" instruction sat at the top of the
87
+ * context while the numbers sat at the bottom, and the model summed them
88
+ * in its head. The line is request-only (never history) and recomposed per
89
+ * iteration, so it exists exactly while both conditions hold. Each firing
90
+ * lands as `agentfootprint.agent.grounding_nudged`.
91
+ *
92
+ * Advisory — the postures above stay the guarantee. An agent with no
93
+ * artifact placement or no `wants`-declaring tool arms nothing and keeps
94
+ * byte-identical requests.
95
+ */
96
+ readonly nudge?: boolean;
76
97
  }
77
98
  /** One value in the answer that no tool result carried. */
78
99
  export interface UnsupportedValue {
@@ -99,6 +120,8 @@ export interface ResolvedEvidenceGate {
99
120
  readonly exemptValues: ReadonlySet<string>;
100
121
  readonly exemptPatterns: readonly RegExp[];
101
122
  readonly minDigits: number;
123
+ /** The staged-refs nudge dial. `false` is today's bytes. */
124
+ readonly nudge: boolean;
102
125
  }
103
126
  /** The gate's verdict on one answer. */
104
127
  export interface EvidenceVerdict {
@@ -0,0 +1,94 @@
1
+ /**
2
+ * core/agent/stagedRefs — the join between data staged BY REFERENCE and the
3
+ * tool declared to spend it, composed into one sentence the model reads.
4
+ *
5
+ * ── The measured failure ────────────────────────────────────────────────────
6
+ * A traced production run: four tool results carried real numbers, a compute
7
+ * tool that could sum them was on the wire, and the app's prompt SAID to use
8
+ * it — yet the model summed the four numbers in its head and stated the total.
9
+ * The evidence gate recorded the truth ("appears in no tool result") and the
10
+ * answer shipped anyway, because the posture only observed. The prose
11
+ * instruction sat at the top of a long context; the numbers sat at the bottom.
12
+ * Recency won.
13
+ *
14
+ * ── The intervention: say it LATE, from DECLARATIONS ────────────────────────
15
+ * The library already holds both halves of the fix as data, no prose surface
16
+ * needed:
17
+ *
18
+ * • a placed tool result (`artifacts.placement` / `Tool.resultKind`) is a
19
+ * ticket in the conversation — `{ placed: true, ref, kind, … }` — naming
20
+ * data staged by reference;
21
+ * • a tool's `wants` (`{ arg: 'dataset/rows' }`) is the DECLARED promise
22
+ * that it spends refs of exactly that kind — matched by the same
23
+ * exact-string law the dispatch matcher uses, never by tool name.
24
+ *
25
+ * When both hold in one iteration, this module composes ONE short line naming
26
+ * the refs and the spender tool, placed at the END of the request — beside the
27
+ * data, where recency works for the instruction instead of against it. The
28
+ * line is ephemeral (request assembly only, never history) and recomposed
29
+ * each iteration, so it exists exactly while both conditions hold.
30
+ *
31
+ * The same join feeds the evidence correction: a revision that says "call the
32
+ * tool that provides it" without naming WHICH tool over WHICH ref leaves the
33
+ * model to head-math again.
34
+ *
35
+ * Pure functions, no scope, no events — the callers own delivery and record.
36
+ */
37
+ import type { LLMMessage } from '../../adapters/types.js';
38
+ import type { Tool } from '../tools.js';
39
+ /** One staged parcel a spender tool could be handed. */
40
+ export interface StagedRef {
41
+ /** The artifact ref, verbatim — what the model passes as the argument. */
42
+ readonly ref: string;
43
+ /** The minted kind — the exact string a `wants` declaration matched. */
44
+ readonly kind: string;
45
+ }
46
+ /** The join: which refs are in this iteration's context, and which served
47
+ * tools declared `wants` over their kinds. Both lists are non-empty. */
48
+ export interface StagedRefsMatch {
49
+ /** Distinct matched refs, oldest first, capped at {@link MAX_NUDGE_REFS}. */
50
+ readonly refs: readonly StagedRef[];
51
+ /** Matched refs beyond the cap — stated rather than silently dropped. */
52
+ readonly refsOmitted: number;
53
+ /** The spender tools' REGISTERED names, capped at {@link MAX_NUDGE_TOOLS}. */
54
+ readonly tools: readonly string[];
55
+ }
56
+ /** Most refs one nudge line names. Bounded so a fan-out that staged fifty
57
+ * parcels cannot turn the one-line nudge into a page. */
58
+ export declare const MAX_NUDGE_REFS = 6;
59
+ /** Most spender tools one nudge line names. */
60
+ export declare const MAX_NUDGE_TOOLS = 3;
61
+ /**
62
+ * Harvest `Tool.wants` from the declared catalog — the `toolGrounding`
63
+ * harvest verbatim, and with the same caveat: ToolProvider-DELIVERED tools
64
+ * are invisible here (`list(ctx)` is opaque and per-iteration), so a provider
65
+ * tool declaring `wants` arms nothing. The runtime check stays correctly
66
+ * scoped on its own: the join below intersects this map with the tools the
67
+ * current call actually serves.
68
+ */
69
+ export declare function toolWantsOf(registryByName: ReadonlyMap<string, Tool>): ReadonlyMap<string, readonly string[]>;
70
+ /**
71
+ * The join itself: scan the conversation for placed tickets whose `kind` a
72
+ * currently-served `wants` tool declares, by the exact-string law the
73
+ * dispatch matcher uses. Returns `undefined` unless BOTH sides hold — no
74
+ * staged ref, or no served spender for any staged kind, means no match and
75
+ * the caller composes nothing.
76
+ *
77
+ * A `role: 'tool'` message carrying a placed result holds the ticket as JSON
78
+ * (`placedToolResult` is what wrote it); anything that does not parse to the
79
+ * ticket shape is an ordinary result and is skipped without a sound.
80
+ */
81
+ export declare function findStagedRefs(messages: readonly LLMMessage[], toolWants: ReadonlyMap<string, readonly string[]>, servedToolNames: ReadonlySet<string>): StagedRefsMatch | undefined;
82
+ /**
83
+ * The one late-positioned line (`nudge: true` on
84
+ * `.namesAndNumbersFromEvidence()`). Appended at request assembly as the LAST
85
+ * message of the iteration — never written to history — so the direction sits
86
+ * beside the data instead of a thousand tokens above it.
87
+ */
88
+ export declare function stagedRefsNudgeLine(match: StagedRefsMatch): string;
89
+ /**
90
+ * The refs sentence the evidence CORRECTION carries when the join holds at
91
+ * recheck time (see `buildEvidenceCorrection`) — the same facts, spoken
92
+ * inside the authored frame so the untrusted values still come last.
93
+ */
94
+ export declare function stagedRefsTeachingClause(match: StagedRefsMatch): string;
@@ -0,0 +1,154 @@
1
+ /**
2
+ * core/agent/stagedRefs — the join between data staged BY REFERENCE and the
3
+ * tool declared to spend it, composed into one sentence the model reads.
4
+ *
5
+ * ── The measured failure ────────────────────────────────────────────────────
6
+ * A traced production run: four tool results carried real numbers, a compute
7
+ * tool that could sum them was on the wire, and the app's prompt SAID to use
8
+ * it — yet the model summed the four numbers in its head and stated the total.
9
+ * The evidence gate recorded the truth ("appears in no tool result") and the
10
+ * answer shipped anyway, because the posture only observed. The prose
11
+ * instruction sat at the top of a long context; the numbers sat at the bottom.
12
+ * Recency won.
13
+ *
14
+ * ── The intervention: say it LATE, from DECLARATIONS ────────────────────────
15
+ * The library already holds both halves of the fix as data, no prose surface
16
+ * needed:
17
+ *
18
+ * • a placed tool result (`artifacts.placement` / `Tool.resultKind`) is a
19
+ * ticket in the conversation — `{ placed: true, ref, kind, … }` — naming
20
+ * data staged by reference;
21
+ * • a tool's `wants` (`{ arg: 'dataset/rows' }`) is the DECLARED promise
22
+ * that it spends refs of exactly that kind — matched by the same
23
+ * exact-string law the dispatch matcher uses, never by tool name.
24
+ *
25
+ * When both hold in one iteration, this module composes ONE short line naming
26
+ * the refs and the spender tool, placed at the END of the request — beside the
27
+ * data, where recency works for the instruction instead of against it. The
28
+ * line is ephemeral (request assembly only, never history) and recomposed
29
+ * each iteration, so it exists exactly while both conditions hold.
30
+ *
31
+ * The same join feeds the evidence correction: a revision that says "call the
32
+ * tool that provides it" without naming WHICH tool over WHICH ref leaves the
33
+ * model to head-math again.
34
+ *
35
+ * Pure functions, no scope, no events — the callers own delivery and record.
36
+ */
37
+ import { isPlacedToolResult } from '../../artifacts/placement.js';
38
+ /** Most refs one nudge line names. Bounded so a fan-out that staged fifty
39
+ * parcels cannot turn the one-line nudge into a page. */
40
+ export const MAX_NUDGE_REFS = 6;
41
+ /** Most spender tools one nudge line names. */
42
+ export const MAX_NUDGE_TOOLS = 3;
43
+ /**
44
+ * Harvest `Tool.wants` from the declared catalog — the `toolGrounding`
45
+ * harvest verbatim, and with the same caveat: ToolProvider-DELIVERED tools
46
+ * are invisible here (`list(ctx)` is opaque and per-iteration), so a provider
47
+ * tool declaring `wants` arms nothing. The runtime check stays correctly
48
+ * scoped on its own: the join below intersects this map with the tools the
49
+ * current call actually serves.
50
+ */
51
+ export function toolWantsOf(registryByName) {
52
+ const map = new Map();
53
+ for (const [name, tool] of registryByName) {
54
+ if (tool.wants === undefined)
55
+ continue;
56
+ const kinds = [...new Set(Object.values(tool.wants))];
57
+ if (kinds.length > 0)
58
+ map.set(name, kinds);
59
+ }
60
+ return map;
61
+ }
62
+ /**
63
+ * The join itself: scan the conversation for placed tickets whose `kind` a
64
+ * currently-served `wants` tool declares, by the exact-string law the
65
+ * dispatch matcher uses. Returns `undefined` unless BOTH sides hold — no
66
+ * staged ref, or no served spender for any staged kind, means no match and
67
+ * the caller composes nothing.
68
+ *
69
+ * A `role: 'tool'` message carrying a placed result holds the ticket as JSON
70
+ * (`placedToolResult` is what wrote it); anything that does not parse to the
71
+ * ticket shape is an ordinary result and is skipped without a sound.
72
+ */
73
+ export function findStagedRefs(messages, toolWants, servedToolNames) {
74
+ const spendersByKind = new Map();
75
+ for (const [name, kinds] of toolWants) {
76
+ if (!servedToolNames.has(name))
77
+ continue;
78
+ for (const kind of kinds) {
79
+ const list = spendersByKind.get(kind);
80
+ if (list === undefined)
81
+ spendersByKind.set(kind, [name]);
82
+ else if (!list.includes(name))
83
+ list.push(name);
84
+ }
85
+ }
86
+ if (spendersByKind.size === 0)
87
+ return undefined;
88
+ const refs = [];
89
+ const seenRefs = new Set();
90
+ const tools = [];
91
+ let refsOmitted = 0;
92
+ for (const message of messages) {
93
+ if (message.role !== 'tool')
94
+ continue;
95
+ let parsed;
96
+ try {
97
+ parsed = JSON.parse(message.content);
98
+ }
99
+ catch {
100
+ continue;
101
+ }
102
+ if (!isPlacedToolResult(parsed))
103
+ continue;
104
+ const kind = parsed.kind;
105
+ if (typeof kind !== 'string')
106
+ continue;
107
+ const spenders = spendersByKind.get(kind);
108
+ if (spenders === undefined || seenRefs.has(parsed.ref))
109
+ continue;
110
+ seenRefs.add(parsed.ref);
111
+ if (refs.length < MAX_NUDGE_REFS)
112
+ refs.push({ ref: parsed.ref, kind });
113
+ else
114
+ refsOmitted += 1;
115
+ for (const name of spenders)
116
+ if (!tools.includes(name))
117
+ tools.push(name);
118
+ }
119
+ if (refs.length === 0)
120
+ return undefined;
121
+ return { refs, refsOmitted, tools: tools.slice(0, MAX_NUDGE_TOOLS) };
122
+ }
123
+ /** Render the matched refs for a sentence: `'art_x' (dataset/rows), …`. */
124
+ function describeRefs(match) {
125
+ const rendered = match.refs.map((r) => `'${r.ref}' (${r.kind})`).join(', ');
126
+ return match.refsOmitted > 0 ? `${rendered}, and ${match.refsOmitted} more` : rendered;
127
+ }
128
+ /** Render the spender tools: `` `compute` `` or `` `compute` or `chart` ``. */
129
+ function describeSpenders(tools) {
130
+ return tools.map((t) => `\`${t}\``).join(' or ');
131
+ }
132
+ /**
133
+ * The one late-positioned line (`nudge: true` on
134
+ * `.namesAndNumbersFromEvidence()`). Appended at request assembly as the LAST
135
+ * message of the iteration — never written to history — so the direction sits
136
+ * beside the data instead of a thousand tokens above it.
137
+ */
138
+ export function stagedRefsNudgeLine(match) {
139
+ return (`[staged data — this turn's tool results include data staged by reference: ` +
140
+ `${describeRefs(match)}. Any derived number — a total, a sum, a difference, an average — ` +
141
+ `must come from a tool result, not from your own arithmetic. To compute over the staged ` +
142
+ `data, pass the ref string to ${describeSpenders(match.tools)} and report what it returns.]`);
143
+ }
144
+ /**
145
+ * The refs sentence the evidence CORRECTION carries when the join holds at
146
+ * recheck time (see `buildEvidenceCorrection`) — the same facts, spoken
147
+ * inside the authored frame so the untrusted values still come last.
148
+ */
149
+ export function stagedRefsTeachingClause(match) {
150
+ return (` This turn staged data you can compute over: pass ${describeRefs(match)} to ` +
151
+ `${describeSpenders(match.tools)} — compute the number there and answer with what it ` +
152
+ `returns.`);
153
+ }
154
+ //# sourceMappingURL=stagedRefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stagedRefs.js","sourceRoot":"","sources":["../../../../src/core/agent/stagedRefs.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,23 @@ export interface CallLLMStageDeps {
68
68
  * label. Absent → the corpus is exactly what it always was.
69
69
  */
70
70
  readonly externalGrounds?: () => readonly ExternalGround[];
71
+ /**
72
+ * The staged-refs nudge's harvest (`.namesAndNumbersFromEvidence({ nudge:
73
+ * true })`) — `Tool.wants` by tool name, present ONLY when the dial is on
74
+ * AND at least one registered tool declares `wants`; absent → this stage
75
+ * reads nothing new and every request keeps its exact bytes.
76
+ *
77
+ * When present, an iteration whose conversation holds placed artifact
78
+ * tickets a currently-served spender can consume gets ONE extra `role:
79
+ * 'user'` line appended at request assembly — never written to history —
80
+ * naming the refs and the spender: derived numbers come from the tool, not
81
+ * from mental arithmetic. Appended HERE for the wrap-up's reason (this is
82
+ * the one seam that decides what goes on the wire) and at the END for the
83
+ * measured reason: the failure this closes was recency — the app's own
84
+ * "use the compute tool" prose sat at the top of the context, the numbers
85
+ * at the bottom, and the model summed them in its head.
86
+ */
87
+ readonly toolWants?: ReadonlyMap<string, readonly string[]>;
71
88
  /**
72
89
  * The per-run disposition ledger, by REFERENCE (9.60.0) — plumbing shared
73
90
  * through the build closure like ProviderToolCache, never scope state.
@@ -24,6 +24,7 @@ import { wireViolationsOf } from '../../../integrity/invariant-violation/wire.js
24
24
  import { danglingReferencesOf } from '../../../integrity/dangling-reference/check.js';
25
25
  import { declaredEnumValuesOf, unsupportedArgumentsOf, } from '../../../integrity/unsupported-argument/check.js';
26
26
  import { toolNameOfMessage } from '../window/toolNames.js';
27
+ import { findStagedRefs, stagedRefsNudgeLine } from '../stagedRefs.js';
27
28
  import { contextErrorIdentity } from '../../../integrity/finding/types.js';
28
29
  import { resilienceHooks } from '../../../recorders/core/resilienceHooks.js';
29
30
  import { emitCostTick } from '../../cost.js';
@@ -180,6 +181,25 @@ export function buildCallLLMStage(deps) {
180
181
  const activeToolSchemas = deps.schemaTool
181
182
  ? [...registeredToolSchemas, deps.schemaTool]
182
183
  : registeredToolSchemas;
184
+ // THE STAGED-REFS NUDGE (`nudge: true` on the evidence gate). Judged on
185
+ // `registeredToolSchemas` — the tools REALLY served this call, so the
186
+ // wrap-up's withheld surface arms nothing and a synthetic schema tool is
187
+ // never named a spender. The line is request-only: `scope.history` is
188
+ // untouched, so it never enters the exempt corpus and never persists —
189
+ // recomposed each iteration, present exactly while both conditions hold.
190
+ let wireMessages = messages;
191
+ if (deps.toolWants !== undefined) {
192
+ const match = findStagedRefs(messages, deps.toolWants, new Set(registeredToolSchemas.map((t) => t.name)));
193
+ if (match !== undefined) {
194
+ wireMessages = [...messages, { role: 'user', content: stagedRefsNudgeLine(match) }];
195
+ typedEmit(scope, 'agentfootprint.agent.grounding_nudged', {
196
+ iteration,
197
+ refs: match.refs.map((r) => ({ ref: r.ref, kind: r.kind })),
198
+ ...(match.refsOmitted > 0 && { refsOmitted: match.refsOmitted }),
199
+ tools: [...match.tools],
200
+ });
201
+ }
202
+ }
183
203
  typedEmit(scope, 'agentfootprint.stream.llm_start', {
184
204
  iteration,
185
205
  provider: provider.name,
@@ -188,7 +208,7 @@ export function buildCallLLMStage(deps) {
188
208
  // Opt-in (9.50.0): the assembled prompt VERBATIM, exactly the string
189
209
  // handed to the provider below — never re-joined by a consumer.
190
210
  ...(deps.recordSystemPrompt === true && { systemPromptText: systemPrompt }),
191
- messagesCount: messages.length,
211
+ messagesCount: wireMessages.length,
192
212
  toolsCount: activeToolSchemas.length,
193
213
  // WHICH BRAIN answered (9.19.0) — stamped ONLY when a brain rung won,
194
214
  // so configured/default runs keep byte-identical events.
@@ -209,7 +229,7 @@ export function buildCallLLMStage(deps) {
209
229
  const startMs = Date.now();
210
230
  const baseRequest = {
211
231
  ...(systemPrompt.length > 0 && { systemPrompt }),
212
- messages,
232
+ messages: wireMessages,
213
233
  ...(activeToolSchemas.length > 0 && { tools: activeToolSchemas }),
214
234
  model,
215
235
  ...(deps.temperature !== undefined && { temperature: deps.temperature }),
@@ -1 +1 @@
1
- {"version":3,"file":"callLLM.js","sourceRoot":"","sources":["../../../../../src/core/agent/stages/callLLM.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callLLM.js","sourceRoot":"","sources":["../../../../../src/core/agent/stages/callLLM.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,26 @@
24
24
  import type { TypedScope } from 'footprintjs';
25
25
  import type { ResolvedEvidenceGate } from '../evidence/types.js';
26
26
  import type { AgentState } from '../types.js';
27
+ /**
28
+ * The staged-refs join's build-time half, threaded only when at least one
29
+ * registered tool declares `wants` (the `toolGrounding` law: absent means the
30
+ * stage reads no new scope key and the correction keeps its exact bytes).
31
+ */
32
+ export interface EvidenceStagedRefsDeps {
33
+ /** Harvested `Tool.wants` — tool name → the kinds it spends. */
34
+ readonly toolWants: ReadonlyMap<string, readonly string[]>;
35
+ /** The static tool-schema names, late-bound (the `toolSchemas` getter
36
+ * pattern) — the fallback before the tools slot has written
37
+ * `dynamicToolSchemas`. */
38
+ readonly staticToolNames: () => readonly string[];
39
+ }
27
40
  /**
28
41
  * Build the recheck stage. The decider already found the values and wrote the
29
42
  * carrier immediately before routing here — this stage does the work of asking.
43
+ *
44
+ * `stagedRefs` (optional): when this turn holds placed artifact tickets a
45
+ * currently-served `wants` tool can spend, the correction names the refs and
46
+ * the spender tool — the route to a grounded number, not just the demand for
47
+ * one. The revision-asked event carries the same facts, additively.
30
48
  */
31
- export declare function buildEvidenceRecheckStage(gate: ResolvedEvidenceGate): (scope: TypedScope<AgentState>) => void;
49
+ export declare function buildEvidenceRecheckStage(gate: ResolvedEvidenceGate, stagedRefs?: EvidenceStagedRefsDeps): (scope: TypedScope<AgentState>) => void;
@@ -23,11 +23,17 @@
23
23
  */
24
24
  import { typedEmit } from '../../../recorders/core/typedEmit.js';
25
25
  import { buildEvidenceCorrection, MAX_REPORTED_VALUES } from '../evidence/gate.js';
26
+ import { findStagedRefs } from '../stagedRefs.js';
26
27
  /**
27
28
  * Build the recheck stage. The decider already found the values and wrote the
28
29
  * carrier immediately before routing here — this stage does the work of asking.
30
+ *
31
+ * `stagedRefs` (optional): when this turn holds placed artifact tickets a
32
+ * currently-served `wants` tool can spend, the correction names the refs and
33
+ * the spender tool — the route to a grounded number, not just the demand for
34
+ * one. The revision-asked event carries the same facts, additively.
29
35
  */
30
- export function buildEvidenceRecheckStage(gate) {
36
+ export function buildEvidenceRecheckStage(gate, stagedRefs) {
31
37
  return (scope) => {
32
38
  const pending = scope.evidenceUnsupported;
33
39
  if (pending === undefined || pending.values.length === 0) {
@@ -40,7 +46,14 @@ export function buildEvidenceRecheckStage(gate) {
40
46
  const iteration = scope.iteration;
41
47
  const values = [...pending.values];
42
48
  const flaggedAnswer = scope.llmLatestContent;
43
- const [answerTurn, correctionTurn] = buildEvidenceCorrection(flaggedAnswer, values);
49
+ // The staged-refs join, computed against the tools the model can
50
+ // CURRENTLY call (the slot's per-iteration surface when it has run, the
51
+ // static catalog before it) — a spender the model cannot reach must not
52
+ // be named as the way out.
53
+ const match = stagedRefs === undefined
54
+ ? undefined
55
+ : findStagedRefs(scope.history ?? [], stagedRefs.toolWants, new Set((scope.dynamicToolSchemas?.map((t) => t.name) ?? stagedRefs.staticToolNames()).values()));
56
+ const [answerTurn, correctionTurn] = buildEvidenceCorrection(flaggedAnswer, values, match);
44
57
  // The conversation, as it really went. A plain local array — a TypedScope
45
58
  // array read is a live proxy view, and both the commit and the event
46
59
  // payload below must be detached plain data.
@@ -63,6 +76,12 @@ export function buildEvidenceRecheckStage(gate) {
63
76
  unsupported: values.slice(0, MAX_REPORTED_VALUES),
64
77
  action: 'revision-asked',
65
78
  afterRevision: false,
79
+ // What the correction TAUGHT, additively (absent when the join found
80
+ // nothing): which staged refs and which spender tools it named.
81
+ ...(match !== undefined && {
82
+ stagedRefs: match.refs.map((r) => ({ ref: r.ref, kind: r.kind })),
83
+ spenderTools: [...match.tools],
84
+ }),
66
85
  });
67
86
  // Close this iteration's bracket before the loop turns — every recorder
68
87
  // that synthesizes steps pairs `iteration_start`/`iteration_end` per