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