agentfootprint 9.55.0 → 9.57.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 (172) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +8 -1
  3. package/ai-instructions/claude-code/SKILL.md +1 -1
  4. package/dist/cache/CacheDecisionSubflow.js +2 -1
  5. package/dist/cache/CacheDecisionSubflow.js.map +1 -1
  6. package/dist/conventions.js +16 -0
  7. package/dist/conventions.js.map +1 -1
  8. package/dist/core/Agent.js +43 -1
  9. package/dist/core/Agent.js.map +1 -1
  10. package/dist/core/agent/buildAgentChart.js +12 -0
  11. package/dist/core/agent/buildAgentChart.js.map +1 -1
  12. package/dist/core/agent/buildDynamicAgentChart.js +17 -0
  13. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  14. package/dist/core/agent/stages/callLLM.js +20 -2
  15. package/dist/core/agent/stages/callLLM.js.map +1 -1
  16. package/dist/core/agent/stages/prepareFinal.js +15 -0
  17. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  18. package/dist/core/agent/stages/route.js +168 -27
  19. package/dist/core/agent/stages/route.js.map +1 -1
  20. package/dist/core/agent/stages/window.js +75 -3
  21. package/dist/core/agent/stages/window.js.map +1 -1
  22. package/dist/core/agent/stages/wrapUp.js +101 -0
  23. package/dist/core/agent/stages/wrapUp.js.map +1 -0
  24. package/dist/core/agent/window/index.js.map +1 -1
  25. package/dist/core/agent/window/lastToolResult.js +123 -0
  26. package/dist/core/agent/window/lastToolResult.js.map +1 -0
  27. package/dist/core/agent/window/notice.js +58 -6
  28. package/dist/core/agent/window/notice.js.map +1 -1
  29. package/dist/core/agent/window/options.js +31 -1
  30. package/dist/core/agent/window/options.js.map +1 -1
  31. package/dist/core/agent/window/strategies/drop.js +73 -17
  32. package/dist/core/agent/window/strategies/drop.js.map +1 -1
  33. package/dist/core/agent/window/toolNames.js +81 -0
  34. package/dist/core/agent/window/toolNames.js.map +1 -0
  35. package/dist/core/agent/window/turns.js +50 -2
  36. package/dist/core/agent/window/turns.js.map +1 -1
  37. package/dist/esm/cache/CacheDecisionSubflow.js +2 -1
  38. package/dist/esm/cache/CacheDecisionSubflow.js.map +1 -1
  39. package/dist/esm/conventions.d.ts +8 -0
  40. package/dist/esm/conventions.js +16 -0
  41. package/dist/esm/conventions.js.map +1 -1
  42. package/dist/esm/core/Agent.d.ts +6 -0
  43. package/dist/esm/core/Agent.js +43 -1
  44. package/dist/esm/core/Agent.js.map +1 -1
  45. package/dist/esm/core/agent/buildAgentChart.d.ts +14 -0
  46. package/dist/esm/core/agent/buildAgentChart.js +12 -0
  47. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  48. package/dist/esm/core/agent/buildDynamicAgentChart.js +17 -0
  49. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  50. package/dist/esm/core/agent/stages/callLLM.js +20 -2
  51. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  52. package/dist/esm/core/agent/stages/prepareFinal.js +15 -0
  53. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  54. package/dist/esm/core/agent/stages/route.d.ts +8 -2
  55. package/dist/esm/core/agent/stages/route.js +168 -26
  56. package/dist/esm/core/agent/stages/route.js.map +1 -1
  57. package/dist/esm/core/agent/stages/window.d.ts +10 -0
  58. package/dist/esm/core/agent/stages/window.js +75 -3
  59. package/dist/esm/core/agent/stages/window.js.map +1 -1
  60. package/dist/esm/core/agent/stages/wrapUp.d.ts +64 -0
  61. package/dist/esm/core/agent/stages/wrapUp.js +97 -0
  62. package/dist/esm/core/agent/stages/wrapUp.js.map +1 -0
  63. package/dist/esm/core/agent/types.d.ts +116 -0
  64. package/dist/esm/core/agent/window/index.d.ts +1 -1
  65. package/dist/esm/core/agent/window/index.js.map +1 -1
  66. package/dist/esm/core/agent/window/lastToolResult.d.ts +96 -0
  67. package/dist/esm/core/agent/window/lastToolResult.js +119 -0
  68. package/dist/esm/core/agent/window/lastToolResult.js.map +1 -0
  69. package/dist/esm/core/agent/window/notice.d.ts +14 -4
  70. package/dist/esm/core/agent/window/notice.js +58 -6
  71. package/dist/esm/core/agent/window/notice.js.map +1 -1
  72. package/dist/esm/core/agent/window/options.d.ts +21 -0
  73. package/dist/esm/core/agent/window/options.js +29 -0
  74. package/dist/esm/core/agent/window/options.js.map +1 -1
  75. package/dist/esm/core/agent/window/strategies/drop.d.ts +20 -0
  76. package/dist/esm/core/agent/window/strategies/drop.js +73 -17
  77. package/dist/esm/core/agent/window/strategies/drop.js.map +1 -1
  78. package/dist/esm/core/agent/window/toolNames.d.ts +53 -0
  79. package/dist/esm/core/agent/window/toolNames.js +76 -0
  80. package/dist/esm/core/agent/window/toolNames.js.map +1 -0
  81. package/dist/esm/core/agent/window/turns.d.ts +23 -1
  82. package/dist/esm/core/agent/window/turns.js +50 -2
  83. package/dist/esm/core/agent/window/turns.js.map +1 -1
  84. package/dist/esm/core/agent/window/types.d.ts +84 -0
  85. package/dist/esm/events/payloads.d.ts +67 -3
  86. package/dist/esm/events/registry.d.ts +3 -1
  87. package/dist/esm/events/registry.js +2 -0
  88. package/dist/esm/events/registry.js.map +1 -1
  89. package/dist/esm/index.d.ts +1 -1
  90. package/dist/esm/index.js.map +1 -1
  91. package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js +12 -1
  92. package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  93. package/dist/esm/lib/injection-engine/evaluator.js +31 -6
  94. package/dist/esm/lib/injection-engine/evaluator.js.map +1 -1
  95. package/dist/esm/lib/injection-engine/factories/defineInstruction.d.ts +45 -3
  96. package/dist/esm/lib/injection-engine/factories/defineInstruction.js +38 -4
  97. package/dist/esm/lib/injection-engine/factories/defineInstruction.js.map +1 -1
  98. package/dist/esm/lib/injection-engine/promptTemplate.d.ts +76 -0
  99. package/dist/esm/lib/injection-engine/promptTemplate.js +124 -0
  100. package/dist/esm/lib/injection-engine/promptTemplate.js.map +1 -0
  101. package/dist/esm/lib/injection-engine/types.d.ts +60 -3
  102. package/dist/esm/lib/injection-engine/types.js +25 -3
  103. package/dist/esm/lib/injection-engine/types.js.map +1 -1
  104. package/dist/esm/lib/iterationBudget.d.ts +28 -0
  105. package/dist/esm/lib/iterationBudget.js +31 -0
  106. package/dist/esm/lib/iterationBudget.js.map +1 -0
  107. package/dist/events/registry.js +2 -0
  108. package/dist/events/registry.js.map +1 -1
  109. package/dist/index.js.map +1 -1
  110. package/dist/lib/injection-engine/buildInjectionEngineSubflow.js +12 -1
  111. package/dist/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  112. package/dist/lib/injection-engine/evaluator.js +31 -6
  113. package/dist/lib/injection-engine/evaluator.js.map +1 -1
  114. package/dist/lib/injection-engine/factories/defineInstruction.js +38 -4
  115. package/dist/lib/injection-engine/factories/defineInstruction.js.map +1 -1
  116. package/dist/lib/injection-engine/promptTemplate.js +132 -0
  117. package/dist/lib/injection-engine/promptTemplate.js.map +1 -0
  118. package/dist/lib/injection-engine/types.js +25 -3
  119. package/dist/lib/injection-engine/types.js.map +1 -1
  120. package/dist/lib/iterationBudget.js +35 -0
  121. package/dist/lib/iterationBudget.js.map +1 -0
  122. package/dist/types/cache/CacheDecisionSubflow.d.ts.map +1 -1
  123. package/dist/types/conventions.d.ts +8 -0
  124. package/dist/types/conventions.d.ts.map +1 -1
  125. package/dist/types/core/Agent.d.ts +6 -0
  126. package/dist/types/core/Agent.d.ts.map +1 -1
  127. package/dist/types/core/agent/buildAgentChart.d.ts +14 -0
  128. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  129. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  130. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  131. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  132. package/dist/types/core/agent/stages/route.d.ts +8 -2
  133. package/dist/types/core/agent/stages/route.d.ts.map +1 -1
  134. package/dist/types/core/agent/stages/window.d.ts +10 -0
  135. package/dist/types/core/agent/stages/window.d.ts.map +1 -1
  136. package/dist/types/core/agent/stages/wrapUp.d.ts +65 -0
  137. package/dist/types/core/agent/stages/wrapUp.d.ts.map +1 -0
  138. package/dist/types/core/agent/types.d.ts +116 -0
  139. package/dist/types/core/agent/types.d.ts.map +1 -1
  140. package/dist/types/core/agent/window/index.d.ts +1 -1
  141. package/dist/types/core/agent/window/index.d.ts.map +1 -1
  142. package/dist/types/core/agent/window/lastToolResult.d.ts +97 -0
  143. package/dist/types/core/agent/window/lastToolResult.d.ts.map +1 -0
  144. package/dist/types/core/agent/window/notice.d.ts +14 -4
  145. package/dist/types/core/agent/window/notice.d.ts.map +1 -1
  146. package/dist/types/core/agent/window/options.d.ts +21 -0
  147. package/dist/types/core/agent/window/options.d.ts.map +1 -1
  148. package/dist/types/core/agent/window/strategies/drop.d.ts +20 -0
  149. package/dist/types/core/agent/window/strategies/drop.d.ts.map +1 -1
  150. package/dist/types/core/agent/window/toolNames.d.ts +54 -0
  151. package/dist/types/core/agent/window/toolNames.d.ts.map +1 -0
  152. package/dist/types/core/agent/window/turns.d.ts +23 -1
  153. package/dist/types/core/agent/window/turns.d.ts.map +1 -1
  154. package/dist/types/core/agent/window/types.d.ts +84 -0
  155. package/dist/types/core/agent/window/types.d.ts.map +1 -1
  156. package/dist/types/events/payloads.d.ts +67 -3
  157. package/dist/types/events/payloads.d.ts.map +1 -1
  158. package/dist/types/events/registry.d.ts +3 -1
  159. package/dist/types/events/registry.d.ts.map +1 -1
  160. package/dist/types/index.d.ts +1 -1
  161. package/dist/types/index.d.ts.map +1 -1
  162. package/dist/types/lib/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
  163. package/dist/types/lib/injection-engine/evaluator.d.ts.map +1 -1
  164. package/dist/types/lib/injection-engine/factories/defineInstruction.d.ts +45 -3
  165. package/dist/types/lib/injection-engine/factories/defineInstruction.d.ts.map +1 -1
  166. package/dist/types/lib/injection-engine/promptTemplate.d.ts +77 -0
  167. package/dist/types/lib/injection-engine/promptTemplate.d.ts.map +1 -0
  168. package/dist/types/lib/injection-engine/types.d.ts +60 -3
  169. package/dist/types/lib/injection-engine/types.d.ts.map +1 -1
  170. package/dist/types/lib/iterationBudget.d.ts +29 -0
  171. package/dist/types/lib/iterationBudget.d.ts.map +1 -0
  172. package/package.json +1 -1
@@ -39,7 +39,15 @@ function decideBranch(scope) {
39
39
  // A limit only CUT SHORT a turn if the model still wanted to do something.
40
40
  // A turn that ended because the model was done is not an early stop, however
41
41
  // many iterations it spent getting there.
42
- const earlyStop = chosen === 'final' && toolCalls.length > 0
42
+ //
43
+ // 9.56.0 — with ONE addition: a turn that already spent its wrap-up is cut
44
+ // short for every judge downstream, whether or not this last answer still
45
+ // asked for tools. The budget that forced the wrap-up has not come back, and
46
+ // the wrap-up call is the last one this turn buys — a step nudge or an
47
+ // evidence revision here would loop past a limit that already fired. (It
48
+ // does not double-record: `settleWrapUp` sees the latch first and corrects
49
+ // the existing record instead of writing a second one.)
50
+ const earlyStop = chosen === 'final' && (toolCalls.length > 0 || scope.wrapUpAsked === true)
43
51
  ? outOfIterations
44
52
  ? 'max-iterations'
45
53
  : costHalt
@@ -89,7 +97,10 @@ function decideBranch(scope) {
89
97
  * is sometimes a real one (a model can return content AND tool calls). Raising
90
98
  * would reject good answers to fix a bad one.
91
99
  */
92
- function recordEarlyStop(scope, reason) {
100
+ function recordEarlyStop(scope, reason,
101
+ /** True when the WrapUp branch is about to run, so the answer the caller
102
+ * receives is not the one being measured here yet (9.56.0). */
103
+ wrapUp) {
93
104
  const toolCalls = scope.llmLatestToolCalls;
94
105
  const iteration = scope.iteration;
95
106
  const answerWasEmpty = (scope.llmLatestContent ?? '') === '';
@@ -107,7 +118,29 @@ function recordEarlyStop(scope, reason) {
107
118
  action: 'abort',
108
119
  });
109
120
  }
110
- if (answerWasEmpty) {
121
+ // 9.56.0 — a FOURTH channel, and the one a dashboard reads. `limit_hit`
122
+ // reports a limit being crossed and has to stay exactly that (it is the
123
+ // reserved cost vocabulary, and a cost budget fires its own). This one
124
+ // reports what the run DID about the crossing, which is the difference
125
+ // between an outcome chip that says "answered" and one that says "answered
126
+ // after the budget ran out". Emitted for BOTH limits: the fact is true
127
+ // either way, and only `action` differs.
128
+ (0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.agent.budget_exhausted', {
129
+ reason,
130
+ iteration,
131
+ // `limit` only where the run actually HOLDS the limit. For a cost budget it
132
+ // holds the cumulative spend instead, and reporting spend as a limit is the
133
+ // exact mistake the `cost.limit_hit` comment above exists to avoid.
134
+ ...(reason === 'max-iterations' && { limit: scope.maxIterations }),
135
+ pendingToolCalls: toolCalls.length,
136
+ action: wrapUp ? 'wrapped-up' : 'cut-short',
137
+ });
138
+ // Held back when a wrap-up is about to run: the answer this warning is
139
+ // about does not exist yet, and warning about a string that is being
140
+ // replaced would be the library complaining about its own draft.
141
+ // `settleWrapUp` warns on the pass after, if the wrap-up came back empty
142
+ // too.
143
+ if (answerWasEmpty && !wrapUp) {
111
144
  // eslint-disable-next-line no-console
112
145
  console.warn(`[agentfootprint] this turn stopped at iteration ${iteration} because ` +
113
146
  `${reason === 'max-iterations' ? 'maxIterations was reached' : 'costBudget was reached'}, ` +
@@ -117,6 +150,66 @@ function recordEarlyStop(scope, reason) {
117
150
  `show.`);
118
151
  }
119
152
  }
153
+ /**
154
+ * Is this would-be-final turn going to be WRAPPED UP instead (9.56.0)?
155
+ *
156
+ * Pure, so the four deciders can announce the branch they are really taking
157
+ * before anything is recorded — the ordering every one of them already has
158
+ * (`route_decided`, then the early-stop record).
159
+ *
160
+ * Only the ITERATION budget is wrapped up. A halting `costBudget` capped the
161
+ * MONEY, and one more call would spend past the cap the person set; an action
162
+ * cap says nothing about a call that takes no action. `wrapUpAsked` is the
163
+ * one-per-turn latch: the wrap-up call itself can never buy a second one.
164
+ */
165
+ function wantsWrapUp(scope, earlyStop, hasWrapUp) {
166
+ return hasWrapUp && earlyStop === 'max-iterations' && scope.wrapUpAsked !== true;
167
+ }
168
+ /**
169
+ * File what a limit did to this turn (9.56.0) — called at every moment the
170
+ * four deciders answer `'final'` or `'wrap-up'`. Three outcomes:
171
+ *
172
+ * • the wrap-up already ran → its answer IS the turn's answer: correct the
173
+ * committed record to describe that string (not the fragment it replaced),
174
+ * mark it `wrappedUp`, and warn only if even the wrap-up came back empty.
175
+ * Never a second `limit_hit`, never a second `budget_exhausted` — one
176
+ * crossing, one report;
177
+ * • a limit just fired → today's `recordEarlyStop`, told whether a wrap-up
178
+ * is about to run (which holds back the empty-answer warning, since the
179
+ * answer it is about does not exist yet);
180
+ * • neither → nothing, after one `undefined` check.
181
+ */
182
+ function settleWrapUp(scope, earlyStop, wrapUp) {
183
+ if (scope.wrapUpAsked === true) {
184
+ const cut = scope.stoppedEarly;
185
+ // Unreachable through the decider (the branch only runs after the record
186
+ // is written), but a hand-built chart mounting the branch without the
187
+ // decider must not take down a run — the SchemaRetry discipline.
188
+ if (cut === undefined)
189
+ return;
190
+ const answer = scope.llmLatestContent ?? '';
191
+ scope.stoppedEarly = { ...cut, answerWasEmpty: answer === '', wrappedUp: true };
192
+ if (answer === '') {
193
+ // eslint-disable-next-line no-console
194
+ console.warn(`[agentfootprint] this turn stopped at iteration ${cut.iteration} because ` +
195
+ `maxIterations was reached, while the model was still asking for ` +
196
+ `${cut.pendingToolCalls} tool call(s). One more call went out with the tools ` +
197
+ `withheld, asking for a final summary, and it came back EMPTY — so the answer ` +
198
+ `handed back is still the empty string. Raise the limit, or read ` +
199
+ `agent.stoppedEarly() and decide what to show.`);
200
+ }
201
+ return;
202
+ }
203
+ if (earlyStop === undefined)
204
+ return;
205
+ recordEarlyStop(scope, earlyStop, wrapUp);
206
+ }
207
+ /** The `route_decided` rationale for a wrap-up. */
208
+ function wrapUpRationale(scope) {
209
+ const pending = scope.llmLatestToolCalls.length;
210
+ return (`maxIterations reached with ${pending} tool call(s) still pending — asking once more ` +
211
+ `with the tools withheld, so the turn ends with a summary instead of a fragment`);
212
+ }
120
213
  function emitRouteDecided(scope, chosen, rationale) {
121
214
  (0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.agent.route_decided', {
122
215
  turnIndex: 0,
@@ -299,14 +392,33 @@ function stepNudgeRationale(scope) {
299
392
  return (`final answer left ${remaining} declared step(s) of '${ptr.skillId}' unrun — ` +
300
393
  `one teaching nudge goes back (at most once per turn)`);
301
394
  }
302
- const routeDeciderStage = (scope) => {
303
- const { chosen, rationale, earlyStop } = decideBranch(scope);
304
- emitRouteDecided(scope, chosen, rationale);
305
- if (earlyStop !== undefined)
306
- recordEarlyStop(scope, earlyStop);
307
- return chosen;
308
- };
309
- exports.routeDeciderStage = routeDeciderStage;
395
+ /**
396
+ * The decider every plain agent runs: decide, announce, file whatever a limit
397
+ * did. `hasWrapUp` is the ONE build-time fact it needs — a decider may never
398
+ * name a branch the chart did not mount.
399
+ */
400
+ function buildSimpleDecider(hasWrapUp) {
401
+ return (scope) => {
402
+ const { chosen, rationale, earlyStop } = decideBranch(scope);
403
+ // ── The out-of-budget wrap-up (9.56.0) ─────────────────────────────
404
+ // FIRST, and before the output chain or any judge: a fragment the loop is
405
+ // about to replace is not the final answer, so it is not middlewared, not
406
+ // schema-judged and not grounded — the step nudge's reasoning, one branch
407
+ // over. `false` for hasWrapUp short-circuits here in one comparison.
408
+ if (chosen === 'final' && wantsWrapUp(scope, earlyStop, hasWrapUp)) {
409
+ emitRouteDecided(scope, 'wrap-up', wrapUpRationale(scope));
410
+ settleWrapUp(scope, earlyStop, true);
411
+ return 'wrap-up';
412
+ }
413
+ emitRouteDecided(scope, chosen, rationale);
414
+ if (chosen === 'final')
415
+ settleWrapUp(scope, earlyStop, false);
416
+ return chosen;
417
+ };
418
+ }
419
+ /** The wrap-up-less decider, kept as a module constant because it is the exact
420
+ * function reference every pre-9.56.0 chart was handed. */
421
+ exports.routeDeciderStage = buildSimpleDecider(false);
310
422
  /**
311
423
  * Build the Route decider, optionally carrying the `'output'` half of the
312
424
  * message chain.
@@ -349,20 +461,34 @@ exports.routeDeciderStage = routeDeciderStage;
349
461
  * never judged or retried: it was withheld on purpose, and re-asking for it
350
462
  * would be the library working around a rule the app wrote.
351
463
  */
352
- function buildRouteDeciderStage(messageMiddleware, enforcement, stepPlanFor, evidence) {
464
+ function buildRouteDeciderStage(messageMiddleware, enforcement, stepPlanFor, evidence,
465
+ /** Whether the chart mounted the WrapUp branch (9.56.0). A decider may never
466
+ * name a branch that does not exist, so this is build-time knowledge, not a
467
+ * scope read. `false` reproduces every earlier release exactly. */
468
+ hasWrapUp = false) {
353
469
  const chain = messageMiddleware ?? [];
354
470
  if (chain.length === 0 &&
355
471
  enforcement === undefined &&
356
472
  stepPlanFor === undefined &&
357
473
  evidence === undefined) {
358
- return exports.routeDeciderStage;
474
+ return hasWrapUp ? buildSimpleDecider(true) : exports.routeDeciderStage;
359
475
  }
360
476
  if (enforcement !== undefined)
361
- return buildEnforcingDecider(chain, enforcement, stepPlanFor, evidence);
477
+ return buildEnforcingDecider(chain, enforcement, stepPlanFor, evidence, hasWrapUp);
362
478
  if (stepPlanFor !== undefined || evidence !== undefined)
363
- return buildJudgingDecider(chain, stepPlanFor, evidence);
479
+ return buildJudgingDecider(chain, stepPlanFor, evidence, hasWrapUp);
364
480
  return async (scope) => {
365
481
  const { chosen, rationale, earlyStop } = decideBranch(scope);
482
+ // ── The out-of-budget wrap-up (9.56.0) ─────────────────────────────
483
+ // FIRST, and before the output chain or any judge: a fragment the loop is
484
+ // about to replace is not the final answer, so it is not middlewared, not
485
+ // schema-judged and not grounded — the step nudge's reasoning, one branch
486
+ // over. `false` for hasWrapUp short-circuits here in one comparison.
487
+ if (chosen === 'final' && wantsWrapUp(scope, earlyStop, hasWrapUp)) {
488
+ emitRouteDecided(scope, 'wrap-up', wrapUpRationale(scope));
489
+ settleWrapUp(scope, earlyStop, true);
490
+ return 'wrap-up';
491
+ }
366
492
  emitRouteDecided(scope, chosen, rationale);
367
493
  if (chosen !== 'final')
368
494
  return chosen;
@@ -388,8 +514,7 @@ function buildRouteDeciderStage(messageMiddleware, enforcement, stepPlanFor, evi
388
514
  scope.llmLatestContent = verdict.content;
389
515
  // AFTER the chain: `answerWasEmpty` has to be judged on the string the
390
516
  // caller will actually receive, and the chain may have rewritten it.
391
- if (earlyStop !== undefined)
392
- recordEarlyStop(scope, earlyStop);
517
+ settleWrapUp(scope, earlyStop, false);
393
518
  return chosen;
394
519
  };
395
520
  }
@@ -407,13 +532,23 @@ exports.buildRouteDeciderStage = buildRouteDeciderStage;
407
532
  * Only agents that asked for one of those two receive this function —
408
533
  * everyone else keeps the exact decider (and event timing) they always had.
409
534
  */
410
- function buildJudgingDecider(chain, stepPlanFor, evidence) {
535
+ function buildJudgingDecider(chain, stepPlanFor, evidence, hasWrapUp) {
411
536
  return async (scope) => {
412
537
  const { chosen, rationale, earlyStop } = decideBranch(scope);
413
538
  if (chosen !== 'final') {
414
539
  emitRouteDecided(scope, chosen, rationale);
415
540
  return chosen;
416
541
  }
542
+ // ── The out-of-budget wrap-up (9.56.0) ─────────────────────────────
543
+ // FIRST, and before the output chain or any judge: a fragment the loop is
544
+ // about to replace is not the final answer, so it is not middlewared, not
545
+ // schema-judged and not grounded — the step nudge's reasoning, one branch
546
+ // over. `false` for hasWrapUp short-circuits here in one comparison.
547
+ if (wantsWrapUp(scope, earlyStop, hasWrapUp)) {
548
+ emitRouteDecided(scope, 'wrap-up', wrapUpRationale(scope));
549
+ settleWrapUp(scope, earlyStop, true);
550
+ return 'wrap-up';
551
+ }
417
552
  let denied = false;
418
553
  if (chain.length > 0) {
419
554
  const verdict = await (0, runChain_js_1.runMessageChain)(chain, {
@@ -443,8 +578,7 @@ function buildJudgingDecider(chain, stepPlanFor, evidence) {
443
578
  return 'evidence-recheck';
444
579
  }
445
580
  emitRouteDecided(scope, 'final', rationale);
446
- if (earlyStop !== undefined)
447
- recordEarlyStop(scope, earlyStop);
581
+ settleWrapUp(scope, earlyStop, false);
448
582
  return 'final';
449
583
  };
450
584
  }
@@ -454,13 +588,23 @@ function buildJudgingDecider(chain, stepPlanFor, evidence) {
454
588
  * announce the branch — so `route_decided` names the branch the run actually
455
589
  * took rather than the one it was heading for.
456
590
  */
457
- function buildEnforcingDecider(chain, enforcement, stepPlanFor, evidence) {
591
+ function buildEnforcingDecider(chain, enforcement, stepPlanFor, evidence, hasWrapUp) {
458
592
  return async (scope) => {
459
593
  const base = decideBranch(scope);
460
594
  if (base.chosen !== 'final') {
461
595
  emitRouteDecided(scope, base.chosen, base.rationale);
462
596
  return base.chosen;
463
597
  }
598
+ // ── The out-of-budget wrap-up (9.56.0) ─────────────────────────────
599
+ // FIRST, and before the output chain or any judge: a fragment the loop is
600
+ // about to replace is not the final answer, so it is not middlewared, not
601
+ // schema-judged and not grounded — the step nudge's reasoning, one branch
602
+ // over. `false` for hasWrapUp short-circuits here in one comparison.
603
+ if (wantsWrapUp(scope, base.earlyStop, hasWrapUp)) {
604
+ emitRouteDecided(scope, 'wrap-up', wrapUpRationale(scope));
605
+ settleWrapUp(scope, base.earlyStop, true);
606
+ return 'wrap-up';
607
+ }
464
608
  let denied = false;
465
609
  // Who, if anyone, rewrote the answer on its way out — and whether the
466
610
  // answer they rewrote was already good. See `brokenBy` below.
@@ -494,8 +638,7 @@ function buildEnforcingDecider(chain, enforcement, stepPlanFor, evidence) {
494
638
  // of it would be the library routing around that decision.
495
639
  if (denied) {
496
640
  emitRouteDecided(scope, 'final', base.rationale);
497
- if (base.earlyStop !== undefined)
498
- recordEarlyStop(scope, base.earlyStop);
641
+ settleWrapUp(scope, base.earlyStop, false);
499
642
  return 'final';
500
643
  }
501
644
  const attempt = (scope.outputAttempts?.length ?? 0) + 1;
@@ -520,8 +663,7 @@ function buildEnforcingDecider(chain, enforcement, stepPlanFor, evidence) {
520
663
  return 'evidence-recheck';
521
664
  }
522
665
  emitRouteDecided(scope, 'final', base.rationale);
523
- if (base.earlyStop !== undefined)
524
- recordEarlyStop(scope, base.earlyStop);
666
+ settleWrapUp(scope, base.earlyStop, false);
525
667
  return 'final';
526
668
  }
527
669
  // Did the OUTPUT CHAIN break an answer the model got right? (8.18.0)
@@ -585,8 +727,7 @@ function buildEnforcingDecider(chain, enforcement, stepPlanFor, evidence) {
585
727
  `rewrote it (${failure.stage}) — not re-asked, because the model's answer was fine`
586
728
  : `final answer failed the output schema (${failure.stage}) and ` +
587
729
  `${enforcement.retries} retry/retries were spent`);
588
- if (base.earlyStop !== undefined)
589
- recordEarlyStop(scope, base.earlyStop);
730
+ settleWrapUp(scope, base.earlyStop, false);
590
731
  return 'final';
591
732
  };
592
733
  }
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/route.ts"],"names":[],"mappings":"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"}
@@ -51,8 +51,33 @@ const typedEmit_js_1 = require("../../../recorders/core/typedEmit.js");
51
51
  const helpers_js_1 = require("../../slots/helpers.js");
52
52
  const cost_js_1 = require("../../cost.js");
53
53
  const currentRequest_js_1 = require("../window/currentRequest.js");
54
+ const lastToolResult_js_1 = require("../window/lastToolResult.js");
55
+ const options_js_1 = require("../window/options.js");
54
56
  const removal_js_1 = require("../window/removal.js");
55
57
  const turns_js_1 = require("../window/turns.js");
58
+ const toolNames_js_1 = require("../window/toolNames.js");
59
+ /**
60
+ * True when the pin is PROVABLY what is stopping the window from shrinking:
61
+ * the two most recent visits both removed nothing AND both named
62
+ * `'last-tool-result'`.
63
+ *
64
+ * Two, not one: a single blocked boundary is ordinary (the next tool result
65
+ * arrives and the pin moves). Two in a row with the pin named in both is
66
+ * non-progress, and the pin releases for one visit rather than let a window
67
+ * grow without bound — which is reachable under `summarizeOldest`, where a
68
+ * lone existing summary sitting in front of a pinned turn short-circuits the
69
+ * whole plan to "remove nothing" for ever.
70
+ *
71
+ * Deliberately a release-under-PROVEN-NON-PROGRESS rule and not a
72
+ * release-under-budget-pressure one: budget pressure peaks exactly when the
73
+ * model is most likely to fabricate, which is the worst moment to throw its
74
+ * evidence away.
75
+ */
76
+ function pinIsBlocking(records) {
77
+ const recent = records.slice(-2);
78
+ return (recent.length === 2 &&
79
+ recent.every((r) => r.removedMessageCount === 0 && r.refusals.some((f) => f.reason === 'last-tool-result')));
80
+ }
56
81
  /** Build the window stage. */
57
82
  function buildWindowStage(deps) {
58
83
  const { strategy, meter } = deps;
@@ -87,18 +112,38 @@ function buildWindowStage(deps) {
87
112
  `being managed. Use a provider that reports usage, or remove the window strategy.`);
88
113
  }
89
114
  const origins = meter.origins();
115
+ // Read once, used twice: the append below, and the pin's stand-down check
116
+ // (9.57.0). One tracked read of the same key either way.
117
+ const priorRecords = scope.compactions ?? [];
90
118
  const pausedToolCallId = scope.pausedToolCallId;
91
119
  // The one message this run is executing (9.55.0). `scope.userMessage` is
92
120
  // what the seed stage committed, so the match is against the run's own
93
121
  // copy rather than a guess from position — see window/currentRequest.ts
94
122
  // for what happens when the window was seeded from somewhere else.
95
123
  const currentRequestIndex = (0, currentRequest_js_1.currentRequestIndexOf)(history, scope.userMessage);
124
+ // The last-tool-result pin (9.57.0). Candidates are resolved here, in the
125
+ // stage, for the same reason the anchor is: this is the one place holding
126
+ // the window, the anchor and the run's own state together. The CEILING is
127
+ // spent inside `planRemoval`, where the keep window is known — a pin that
128
+ // is already safe must not spend a slot.
129
+ const limit = deps.keepLastToolResults === false
130
+ ? 0
131
+ : deps.keepLastToolResults ?? options_js_1.DEFAULT_KEEP_LAST_TOOL_RESULTS;
132
+ const standDown = limit > 0 && pinIsBlocking(priorRecords);
133
+ const pins = limit > 0 && !standDown ? (0, lastToolResult_js_1.toolResultPinsOf)(turns, history, currentRequestIndex) : [];
96
134
  const guards = {
97
135
  answeredCallIds: (0, turns_js_1.answeredCallIds)(history),
98
136
  ...(currentRequestIndex >= 0 && { currentRequestIndex }),
99
137
  ...(pausedToolCallId !== undefined && { pausedToolCallId }),
100
138
  ...(scope.pausedCheckIn === true && { pausedCheckIn: true }),
139
+ // Value-conditional: with no pinnable result the guards are the exact
140
+ // object this stage has always built.
141
+ ...(pins.length > 0 && { toolResultPins: pins, keepLastToolResults: limit }),
101
142
  };
143
+ // What the pin actually did, captured off the plan the strategy asked
144
+ // for. A strategy may ask more than once; the last answer is the one that
145
+ // decided the window.
146
+ let observed;
102
147
  const result = await strategy.plan({
103
148
  history,
104
149
  turns,
@@ -113,7 +158,12 @@ function buildWindowStage(deps) {
113
158
  now,
114
159
  // The refusal engine, bound. A strategy cannot skip it: it never
115
160
  // receives the guards, only the answer.
116
- planRemoval: (keepRecentTurns, isExistingSummary) => (0, turns_js_1.planRemoval)(turns, keepRecentTurns, guards, isExistingSummary),
161
+ planRemoval: (keepRecentTurns, isExistingSummary) => {
162
+ const plan = (0, turns_js_1.planRemoval)(turns, keepRecentTurns, guards, isExistingSummary);
163
+ if (plan.observations !== undefined)
164
+ observed = plan.observations;
165
+ return plan;
166
+ },
117
167
  removalFacts: (indices, atMs) => (0, removal_js_1.removalFacts)(origins, indices, atMs),
118
168
  });
119
169
  // `undefined` = this strategy did not engage this iteration. Nothing to
@@ -127,8 +177,30 @@ function buildWindowStage(deps) {
127
177
  meter.rebaseForWindowChange(result.rebase.headCount, result.rebase.keptTailCount, result.rebase.insertedAtMs);
128
178
  scope.history = result.window;
129
179
  }
130
- const prior = scope.compactions ?? [];
131
- scope.compactions = [...prior, result.record];
180
+ // The record's honesty pass (9.57.0). The strategy files WHAT it did; the
181
+ // stage — which is the one place that holds the pre-change window and the
182
+ // eviction indices together — files WHOSE EVIDENCE left. It is stamped
183
+ // here rather than inside a strategy so a strategy a consumer wrote gets
184
+ // it too, and so it is filed on the removals that authored no notice at
185
+ // all: a drop further into the window tells the model nothing, and then
186
+ // the record is the only place the fact exists.
187
+ const evicted = result.evictions
188
+ .map((e) => history[e.index])
189
+ .filter((m) => m !== undefined);
190
+ const droppedObservations = (0, toolNames_js_1.droppedToolNames)(evicted, history);
191
+ // A stand-down is a decision, so it is filed even though it kept nothing.
192
+ const observations = standDown
193
+ ? { pinned: [], yielded: 0, limit, standDown: true }
194
+ : observed;
195
+ const record = droppedObservations.length > 0 || observations !== undefined
196
+ ? {
197
+ ...result.record,
198
+ ...(droppedObservations.length > 0 && { droppedObservations }),
199
+ ...(observations !== undefined && { observations }),
200
+ }
201
+ : result.record;
202
+ const prior = priorRecords;
203
+ scope.compactions = [...prior, record];
132
204
  // The durable half, written in the SAME commit as the window change and
133
205
  // the record above. That co-location is the guarantee: there is no state,
134
206
  // and no failure, in which messages left the window and the record of what
@@ -1 +1 @@
1
- {"version":3,"file":"window.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/window.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"window.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/window.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /**
3
+ * wrapUp — the branch that asks for a real answer when the action budget
4
+ * runs out mid-task (9.56.0).
5
+ *
6
+ * Mounted as a branch of the Route decider on any agent that can call tools,
7
+ * unless `wrapUpAtMaxIterations: false` turned it off. It carries `{ loopTo }`
8
+ * to the same target the `tool-calls` branch loops to — the SchemaRetry
9
+ * mechanism verbatim: a wrap-up is not a special mode, it is one more ordinary
10
+ * turn of the ReAct loop, with its own `iteration_start` / `llm_start` /
11
+ * `llm_end` bracket and its own `cost.tick` against `costBudget`.
12
+ *
13
+ * ## What it exists to stop
14
+ *
15
+ * `maxIterations` is a cap on ACTIONS, and the model does not know it is about
16
+ * to be hit. Before this, a turn that reached the cap while the model was
17
+ * still asking for tools handed back whatever text happened to ride that last
18
+ * call — which, mid-task, is a fragment:
19
+ *
20
+ * > "The third finding focus is not settling… Let me check what's on screen
21
+ * > now:"
22
+ *
23
+ * That sentence reached the person as if it were the answer, under an `'ok'`
24
+ * status, with nothing anywhere saying the budget had run out. Two recorded
25
+ * runs of exactly that shape are why this branch exists.
26
+ *
27
+ * ## Why the tools come off
28
+ *
29
+ * The one thing the run must not do is spend this call the way it spent the
30
+ * last ten. Withholding the tools is what makes the call terminal BY
31
+ * CONSTRUCTION rather than by another rule: with nothing to ask for, the model
32
+ * can only answer, so the wrap-up is exempt from `maxIterations` without any
33
+ * risk of looping past it. The withholding itself happens at request assembly
34
+ * in `callLLM` (the one seam that decides what goes on the wire); this stage
35
+ * only raises the flag.
36
+ *
37
+ * ## What it appends
38
+ *
39
+ * One `role: 'user'` message, authored by the framework, and NOT the fragment
40
+ * that preceded it. The model's tool-asking turn was never appended to history
41
+ * (nothing ran, so nothing round-tripped), and putting the half-sentence back
42
+ * as an assistant turn would invite the model to continue it — which is the
43
+ * opposite of the ask. The fragment is not lost: it is committed as
44
+ * `llmLatestContent`, where the run's own record keeps it.
45
+ *
46
+ * Pure function — no closure over Agent class state, no deps.
47
+ */
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.wrapUpStage = exports.WRAP_UP_INSTRUCTION = void 0;
50
+ const typedEmit_js_1 = require("../../../recorders/core/typedEmit.js");
51
+ /**
52
+ * The instruction the wrap-up call carries, verbatim.
53
+ *
54
+ * Exported so tests, docs and consumers read the one string the wire reads —
55
+ * a sentence quoted in three places and defined in none is how documentation
56
+ * starts lying. It is written to be answerable from what the turn already
57
+ * has: no new lookups, an honest split between done and not-done, and room
58
+ * for the thing the person most needs to hear.
59
+ */
60
+ exports.WRAP_UP_INSTRUCTION = 'Your action budget for this turn is exhausted. Do not request tools. ' +
61
+ 'Give your best final answer from what you have: what you completed, ' +
62
+ 'what remains undone, and anything the person should know.';
63
+ /**
64
+ * The stage body. The decider has already established the whole table (the
65
+ * iteration budget ran out, tool calls were pending, the wrap-up is unspent)
66
+ * immediately before routing here — this stage does the work of asking.
67
+ */
68
+ const wrapUpStage = (scope) => {
69
+ const iteration = scope.iteration;
70
+ // The conversation as it really went, plus the ask. A plain local array —
71
+ // a TypedScope array read is a live proxy view, and both the commit and the
72
+ // event payload below must be detached plain data.
73
+ const newHistory = [
74
+ ...scope.history,
75
+ { role: 'user', content: exports.WRAP_UP_INSTRUCTION },
76
+ ];
77
+ scope.history = newHistory;
78
+ // The one-per-turn latch, raised BEFORE the loop turns. It does double duty
79
+ // and both jobs need it set now: `callLLM` reads it at request assembly to
80
+ // withhold the tools, and the Route decider reads it on the pass after to
81
+ // settle `stoppedEarly` against the answer that actually came back instead
82
+ // of wrapping up a second time.
83
+ scope.wrapUpAsked = true;
84
+ // Close this iteration's bracket before the loop turns — every recorder that
85
+ // synthesizes steps pairs `iteration_start`/`iteration_end` per `iterIndex`,
86
+ // and the crash-checkpoint tracker snapshots history from this payload (the
87
+ // SchemaRetry stage's reasoning, verbatim).
88
+ (0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.agent.iteration_end', {
89
+ turnIndex: 0,
90
+ iterIndex: iteration,
91
+ toolCallCount: 0,
92
+ history: newHistory,
93
+ });
94
+ // The wrap-up is a real turn on the record — one more `iteration_start`, one
95
+ // more billed call — so the counter moves with it. What it is exempt from is
96
+ // the LIMIT, not the count: the decider never re-asks whether the budget
97
+ // allows this call, because the call it allows cannot take an action.
98
+ scope.iteration = iteration + 1;
99
+ };
100
+ exports.wrapUpStage = wrapUpStage;
101
+ //# sourceMappingURL=wrapUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapUp.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/wrapUp.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;;;AAIH,uEAAiE;AAGjE;;;;;;;;GAQG;AACU,QAAA,mBAAmB,GAC9B,uEAAuE;IACvE,sEAAsE;IACtE,2DAA2D,CAAC;AAE9D;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,KAA6B,EAAQ,EAAE;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAmB,CAAC;IAE5C,0EAA0E;IAC1E,4EAA4E;IAC5E,mDAAmD;IACnD,MAAM,UAAU,GAAiB;QAC/B,GAAI,KAAK,CAAC,OAAiC;QAC3C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAAmB,EAAE;KAC/C,CAAC;IACF,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;IAE3B,4EAA4E;IAC5E,2EAA2E;IAC3E,0EAA0E;IAC1E,2EAA2E;IAC3E,gCAAgC;IAChC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IAEzB,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,4CAA4C;IAC5C,IAAA,wBAAS,EAAC,KAAK,EAAE,oCAAoC,EAAE;QACrD,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,CAAC;QAChB,OAAO,EAAE,UAAU;KACpB,CAAC,CAAC;IAEH,6EAA6E;IAC7E,6EAA6E;IAC7E,yEAAyE;IACzE,sEAAsE;IACtE,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC;AAnCW,QAAA,WAAW,eAmCtB"}