agentfootprint 9.17.0 → 9.18.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 +1 -1
- package/README.md +19 -0
- package/ai-instructions/claude-code/SKILL.md +1 -1
- package/dist/conventions.js +14 -0
- package/dist/conventions.js.map +1 -1
- package/dist/core/Agent.js +31 -1
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/AgentBuilder.js +107 -0
- package/dist/core/agent/AgentBuilder.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +26 -0
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +32 -0
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/buildToolRegistry.js +23 -0
- package/dist/core/agent/buildToolRegistry.js.map +1 -1
- package/dist/core/agent/stages/route.js +130 -4
- package/dist/core/agent/stages/route.js.map +1 -1
- package/dist/core/agent/stages/seed.js +11 -0
- package/dist/core/agent/stages/seed.js.map +1 -1
- package/dist/core/agent/stages/stepNudge.js +82 -0
- package/dist/core/agent/stages/stepNudge.js.map +1 -0
- package/dist/core/agent/stages/toolCalls.js +178 -5
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +106 -7
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/conventions.d.ts +6 -0
- package/dist/esm/conventions.js +14 -0
- package/dist/esm/conventions.js.map +1 -1
- package/dist/esm/core/Agent.js +31 -1
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/AgentBuilder.js +107 -0
- package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.d.ts +22 -0
- package/dist/esm/core/agent/buildAgentChart.js +26 -0
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js +32 -0
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildToolRegistry.js +23 -0
- package/dist/esm/core/agent/buildToolRegistry.js.map +1 -1
- package/dist/esm/core/agent/stages/route.d.ts +3 -2
- package/dist/esm/core/agent/stages/route.js +130 -4
- package/dist/esm/core/agent/stages/route.js.map +1 -1
- package/dist/esm/core/agent/stages/seed.d.ts +7 -0
- package/dist/esm/core/agent/stages/seed.js +11 -0
- package/dist/esm/core/agent/stages/seed.js.map +1 -1
- package/dist/esm/core/agent/stages/stepNudge.d.ts +29 -0
- package/dist/esm/core/agent/stages/stepNudge.js +78 -0
- package/dist/esm/core/agent/stages/stepNudge.js.map +1 -0
- package/dist/esm/core/agent/stages/toolCalls.d.ts +24 -0
- package/dist/esm/core/agent/stages/toolCalls.js +178 -5
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +19 -0
- package/dist/esm/core/slots/buildToolsSlot.d.ts +22 -0
- package/dist/esm/core/slots/buildToolsSlot.js +106 -7
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +60 -2
- package/dist/esm/events/registry.d.ts +7 -1
- package/dist/esm/events/registry.js +6 -0
- package/dist/esm/events/registry.js.map +1 -1
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.d.ts +10 -0
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js +31 -5
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/esm/lib/injection-engine/factories/defineSkill.d.ts +34 -0
- package/dist/esm/lib/injection-engine/factories/defineSkill.js +17 -0
- package/dist/esm/lib/injection-engine/factories/defineSkill.js.map +1 -1
- package/dist/esm/lib/injection-engine/factories/defineStepsHint.d.ts +39 -0
- package/dist/esm/lib/injection-engine/factories/defineStepsHint.js +51 -0
- package/dist/esm/lib/injection-engine/factories/defineStepsHint.js.map +1 -0
- package/dist/esm/lib/injection-engine/index.d.ts +2 -0
- package/dist/esm/lib/injection-engine/index.js +7 -0
- package/dist/esm/lib/injection-engine/index.js.map +1 -1
- package/dist/esm/lib/injection-engine/skillSteps.d.ts +185 -0
- package/dist/esm/lib/injection-engine/skillSteps.js +276 -0
- package/dist/esm/lib/injection-engine/skillSteps.js.map +1 -0
- package/dist/esm/lib/injection-engine/types.d.ts +17 -2
- package/dist/esm/lib/injection-engine/types.js.map +1 -1
- package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.js +16 -1
- package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/commentary/commentaryTemplates.js +193 -8
- package/dist/esm/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
- package/dist/events/registry.js +6 -0
- package/dist/events/registry.js.map +1 -1
- package/dist/lib/injection-engine/buildInjectionEngineSubflow.js +31 -5
- package/dist/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/lib/injection-engine/factories/defineSkill.js +17 -0
- package/dist/lib/injection-engine/factories/defineSkill.js.map +1 -1
- package/dist/lib/injection-engine/factories/defineStepsHint.js +55 -0
- package/dist/lib/injection-engine/factories/defineStepsHint.js.map +1 -0
- package/dist/lib/injection-engine/index.js +13 -1
- package/dist/lib/injection-engine/index.js.map +1 -1
- package/dist/lib/injection-engine/skillSteps.js +297 -0
- package/dist/lib/injection-engine/skillSteps.js.map +1 -0
- package/dist/lib/injection-engine/types.js.map +1 -1
- package/dist/recorders/observability/AgentThinkingTraceRecorder.js +16 -1
- package/dist/recorders/observability/AgentThinkingTraceRecorder.js.map +1 -1
- package/dist/recorders/observability/commentary/commentaryTemplates.js +193 -8
- package/dist/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
- package/dist/types/conventions.d.ts +6 -0
- package/dist/types/conventions.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts +22 -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/buildToolRegistry.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts +3 -2
- package/dist/types/core/agent/stages/route.d.ts.map +1 -1
- package/dist/types/core/agent/stages/seed.d.ts +7 -0
- package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
- package/dist/types/core/agent/stages/stepNudge.d.ts +30 -0
- package/dist/types/core/agent/stages/stepNudge.d.ts.map +1 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts +24 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +19 -0
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/slots/buildToolsSlot.d.ts +22 -0
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +60 -2
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/events/registry.d.ts +7 -1
- package/dist/types/events/registry.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/buildInjectionEngineSubflow.d.ts +10 -0
- package/dist/types/lib/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/factories/defineSkill.d.ts +34 -0
- package/dist/types/lib/injection-engine/factories/defineSkill.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/factories/defineStepsHint.d.ts +40 -0
- package/dist/types/lib/injection-engine/factories/defineStepsHint.d.ts.map +1 -0
- package/dist/types/lib/injection-engine/index.d.ts +2 -0
- package/dist/types/lib/injection-engine/index.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/skillSteps.d.ts +186 -0
- package/dist/types/lib/injection-engine/skillSteps.d.ts.map +1 -0
- package/dist/types/lib/injection-engine/types.d.ts +17 -2
- package/dist/types/lib/injection-engine/types.d.ts.map +1 -1
- package/dist/types/recorders/observability/AgentThinkingTraceRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/commentary/commentaryTemplates.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -19,6 +19,7 @@ const typedEmit_js_1 = require("../../../recorders/core/typedEmit.js");
|
|
|
19
19
|
const runChain_js_1 = require("../middleware/runChain.js");
|
|
20
20
|
const ledger_js_1 = require("../middleware/ledger.js");
|
|
21
21
|
const outputEnforcement_js_1 = require("../outputEnforcement.js");
|
|
22
|
+
const skillSteps_js_1 = require("../../../lib/injection-engine/skillSteps.js");
|
|
22
23
|
/** The base decision, with the sentence that explains it. Split out so the
|
|
23
24
|
* enforcement-enabled path can decide, then judge, then announce ONCE — an
|
|
24
25
|
* agent whose answer is about to be re-asked should not have a route event
|
|
@@ -122,6 +123,68 @@ function emitRouteDecided(scope, chosen, rationale) {
|
|
|
122
123
|
rationale,
|
|
123
124
|
});
|
|
124
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Judge a WOULD-BE-FINAL answer against the active step procedure (9.18.0).
|
|
128
|
+
*
|
|
129
|
+
* Called only at a moment the decider is about to return `'final'` (never on
|
|
130
|
+
* a denied answer — a withheld answer is not re-asked, and not nudged). Three
|
|
131
|
+
* verdicts, per the declared table:
|
|
132
|
+
*
|
|
133
|
+
* • steps remain, no limit fired, nudge unspent → `'step-nudge'`: the
|
|
134
|
+
* StepNudge branch appends the one teaching re-ask and loops (it emits
|
|
135
|
+
* `steps_unfinished { action: 'nudged' }` itself, where the work is);
|
|
136
|
+
* • steps remain, nudge already spent → final proceeds — NEVER a forced
|
|
137
|
+
* continue; `steps_unfinished { action: 'accepted' }` goes on the record
|
|
138
|
+
* here (no stage runs for an accepted stop);
|
|
139
|
+
* • steps remain, a LIMIT forced final → final proceeds, no nudge (a nudge
|
|
140
|
+
* would spend an iteration the limit refused);
|
|
141
|
+
* `steps_unfinished { action: 'cut-short' }`.
|
|
142
|
+
*
|
|
143
|
+
* A turn that tenured two stepped skills is judged on the CURRENT pointer
|
|
144
|
+
* only — an earlier tenant's unfinished procedure died at its cursor move
|
|
145
|
+
* (the re-key), already visible in the record as a pointer that never
|
|
146
|
+
* completed. Undefined `stepPlanFor`, no pointer, or a complete procedure →
|
|
147
|
+
* `undefined` and not one event (zero-cost-when-unused).
|
|
148
|
+
*/
|
|
149
|
+
function judgeUnfinishedSteps(scope, stepPlanFor, earlyStop) {
|
|
150
|
+
if (!stepPlanFor)
|
|
151
|
+
return undefined;
|
|
152
|
+
const ptr = (0, skillSteps_js_1.pointerOf)(scope.stepPointer);
|
|
153
|
+
if (!(0, skillSteps_js_1.stepInProgress)(ptr))
|
|
154
|
+
return undefined;
|
|
155
|
+
const plan = stepPlanFor(ptr.skillId);
|
|
156
|
+
if (!plan)
|
|
157
|
+
return undefined;
|
|
158
|
+
const iteration = scope.iteration;
|
|
159
|
+
if (earlyStop !== undefined) {
|
|
160
|
+
(0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.skill.steps_unfinished', {
|
|
161
|
+
skillId: ptr.skillId,
|
|
162
|
+
remaining: (0, skillSteps_js_1.remainingStepsOf)(ptr, plan),
|
|
163
|
+
total: ptr.total,
|
|
164
|
+
action: 'cut-short',
|
|
165
|
+
iteration,
|
|
166
|
+
});
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
if (scope.stepNudgeSpent === true) {
|
|
170
|
+
(0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.skill.steps_unfinished', {
|
|
171
|
+
skillId: ptr.skillId,
|
|
172
|
+
remaining: (0, skillSteps_js_1.remainingStepsOf)(ptr, plan),
|
|
173
|
+
total: ptr.total,
|
|
174
|
+
action: 'accepted',
|
|
175
|
+
iteration,
|
|
176
|
+
});
|
|
177
|
+
return undefined;
|
|
178
|
+
}
|
|
179
|
+
return 'step-nudge';
|
|
180
|
+
}
|
|
181
|
+
/** The `route_decided` rationale for a step nudge. */
|
|
182
|
+
function stepNudgeRationale(scope) {
|
|
183
|
+
const ptr = (0, skillSteps_js_1.pointerOf)(scope.stepPointer);
|
|
184
|
+
const remaining = ptr.total - ptr.step + 1;
|
|
185
|
+
return (`final answer left ${remaining} declared step(s) of '${ptr.skillId}' unrun — ` +
|
|
186
|
+
`one teaching nudge goes back (at most once per turn)`);
|
|
187
|
+
}
|
|
125
188
|
const routeDeciderStage = (scope) => {
|
|
126
189
|
const { chosen, rationale, earlyStop } = decideBranch(scope);
|
|
127
190
|
emitRouteDecided(scope, chosen, rationale);
|
|
@@ -172,12 +235,15 @@ exports.routeDeciderStage = routeDeciderStage;
|
|
|
172
235
|
* never judged or retried: it was withheld on purpose, and re-asking for it
|
|
173
236
|
* would be the library working around a rule the app wrote.
|
|
174
237
|
*/
|
|
175
|
-
function buildRouteDeciderStage(messageMiddleware, enforcement) {
|
|
238
|
+
function buildRouteDeciderStage(messageMiddleware, enforcement, stepPlanFor) {
|
|
176
239
|
const chain = messageMiddleware ?? [];
|
|
177
|
-
if (chain.length === 0 && enforcement === undefined)
|
|
240
|
+
if (chain.length === 0 && enforcement === undefined && stepPlanFor === undefined) {
|
|
178
241
|
return exports.routeDeciderStage;
|
|
242
|
+
}
|
|
179
243
|
if (enforcement !== undefined)
|
|
180
|
-
return buildEnforcingDecider(chain, enforcement);
|
|
244
|
+
return buildEnforcingDecider(chain, enforcement, stepPlanFor);
|
|
245
|
+
if (stepPlanFor !== undefined)
|
|
246
|
+
return buildStepsAwareDecider(chain, stepPlanFor);
|
|
181
247
|
return async (scope) => {
|
|
182
248
|
const { chosen, rationale, earlyStop } = decideBranch(scope);
|
|
183
249
|
emitRouteDecided(scope, chosen, rationale);
|
|
@@ -211,13 +277,60 @@ function buildRouteDeciderStage(messageMiddleware, enforcement) {
|
|
|
211
277
|
};
|
|
212
278
|
}
|
|
213
279
|
exports.buildRouteDeciderStage = buildRouteDeciderStage;
|
|
280
|
+
/**
|
|
281
|
+
* The decider an agent with a STEPPED skill runs (9.18.0), without schema
|
|
282
|
+
* enforcement: decide, run the output chain if there is one, judge the
|
|
283
|
+
* would-be-final answer against the active procedure, THEN announce the
|
|
284
|
+
* branch once — so `route_decided` names the branch the run actually took
|
|
285
|
+
* (the enforcing decider's discipline). A DENIED answer is neither judged
|
|
286
|
+
* nor nudged: it was withheld on purpose, and looping it would re-ask for
|
|
287
|
+
* an answer the app refused to release.
|
|
288
|
+
*
|
|
289
|
+
* Only stepped agents receive this function — everyone else keeps the exact
|
|
290
|
+
* decider (and event timing) they always had.
|
|
291
|
+
*/
|
|
292
|
+
function buildStepsAwareDecider(chain, stepPlanFor) {
|
|
293
|
+
return async (scope) => {
|
|
294
|
+
const { chosen, rationale, earlyStop } = decideBranch(scope);
|
|
295
|
+
if (chosen !== 'final') {
|
|
296
|
+
emitRouteDecided(scope, chosen, rationale);
|
|
297
|
+
return chosen;
|
|
298
|
+
}
|
|
299
|
+
let denied = false;
|
|
300
|
+
if (chain.length > 0) {
|
|
301
|
+
const verdict = await (0, runChain_js_1.runMessageChain)(chain, {
|
|
302
|
+
phase: 'output',
|
|
303
|
+
content: scope.llmLatestContent,
|
|
304
|
+
history: [...scope.history],
|
|
305
|
+
iteration: scope.iteration,
|
|
306
|
+
...(scope.runIdentity && { identity: scope.runIdentity }),
|
|
307
|
+
});
|
|
308
|
+
(0, ledger_js_1.recordDecisions)(scope, verdict.decisions);
|
|
309
|
+
if (verdict.kind === 'deny') {
|
|
310
|
+
denied = true;
|
|
311
|
+
scope.messageDeniedReason = verdict.reason;
|
|
312
|
+
scope.messageDeniedPhase = 'output';
|
|
313
|
+
scope.messageDeniedBy = verdict.middleware;
|
|
314
|
+
}
|
|
315
|
+
scope.llmLatestContent = verdict.content;
|
|
316
|
+
}
|
|
317
|
+
if (!denied && judgeUnfinishedSteps(scope, stepPlanFor, earlyStop) === 'step-nudge') {
|
|
318
|
+
emitRouteDecided(scope, 'step-nudge', stepNudgeRationale(scope));
|
|
319
|
+
return 'step-nudge';
|
|
320
|
+
}
|
|
321
|
+
emitRouteDecided(scope, 'final', rationale);
|
|
322
|
+
if (earlyStop !== undefined)
|
|
323
|
+
recordEarlyStop(scope, earlyStop);
|
|
324
|
+
return 'final';
|
|
325
|
+
};
|
|
326
|
+
}
|
|
214
327
|
/**
|
|
215
328
|
* The decider an agent with `.outputSchema(parser, { retries })` runs:
|
|
216
329
|
* decide, run the output chain if there is one, judge the answer, THEN
|
|
217
330
|
* announce the branch — so `route_decided` names the branch the run actually
|
|
218
331
|
* took rather than the one it was heading for.
|
|
219
332
|
*/
|
|
220
|
-
function buildEnforcingDecider(chain, enforcement) {
|
|
333
|
+
function buildEnforcingDecider(chain, enforcement, stepPlanFor) {
|
|
221
334
|
return async (scope) => {
|
|
222
335
|
const base = decideBranch(scope);
|
|
223
336
|
if (base.chosen !== 'final') {
|
|
@@ -269,6 +382,12 @@ function buildEnforcingDecider(chain, enforcement) {
|
|
|
269
382
|
iteration: scope.iteration,
|
|
270
383
|
outcome: 'passed',
|
|
271
384
|
});
|
|
385
|
+
// The schema verdict ran FIRST (an answer being re-asked is not a
|
|
386
|
+
// stop); the step judge sees only an answer the schema let stand.
|
|
387
|
+
if (judgeUnfinishedSteps(scope, stepPlanFor, base.earlyStop) === 'step-nudge') {
|
|
388
|
+
emitRouteDecided(scope, 'step-nudge', stepNudgeRationale(scope));
|
|
389
|
+
return 'step-nudge';
|
|
390
|
+
}
|
|
272
391
|
emitRouteDecided(scope, 'final', base.rationale);
|
|
273
392
|
if (base.earlyStop !== undefined)
|
|
274
393
|
recordEarlyStop(scope, base.earlyStop);
|
|
@@ -318,6 +437,13 @@ function buildEnforcingDecider(chain, enforcement) {
|
|
|
318
437
|
fallbackConfigured: enforcement.hasFallback,
|
|
319
438
|
...(brokenByChain !== undefined && { brokenBy: brokenByChain }),
|
|
320
439
|
});
|
|
440
|
+
// A schema-exhausted answer is still a would-be-final one, and the step
|
|
441
|
+
// table is unconditional on schema state: steps remaining + nudge
|
|
442
|
+
// unspent → one teaching re-ask (its turn may well fix both).
|
|
443
|
+
if (judgeUnfinishedSteps(scope, stepPlanFor, base.earlyStop) === 'step-nudge') {
|
|
444
|
+
emitRouteDecided(scope, 'step-nudge', stepNudgeRationale(scope));
|
|
445
|
+
return 'step-nudge';
|
|
446
|
+
}
|
|
321
447
|
emitRouteDecided(scope, 'final', brokenByChain !== undefined
|
|
322
448
|
? `final answer satisfied the output schema until the output rule '${brokenByChain}' ` +
|
|
323
449
|
`rewrote it (${failure.stage}) — not re-asked, because the model's answer was fine`
|
|
@@ -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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"}
|
|
@@ -255,6 +255,17 @@ function seedFrom(scope, message, deps) {
|
|
|
255
255
|
}
|
|
256
256
|
// The model's `read_skill` pick — nothing picked yet on a fresh turn.
|
|
257
257
|
scope.pendingSkillPick = undefined;
|
|
258
|
+
// Step-procedure state (9.18.0) — fresh every run, beside the cursor reset
|
|
259
|
+
// it is subordinate to. Steps are TURN-scoped by design: even under
|
|
260
|
+
// `continuity: 'conversation'` only the CURSOR carries, and a re-tenured
|
|
261
|
+
// stepped skill starts at step 1 on the continued turn (the restored
|
|
262
|
+
// history still shows the prior turn's completed step results — the record
|
|
263
|
+
// is not lost, the pointer is fresh). Written only when a stepped skill is
|
|
264
|
+
// registered, so every other agent commits exactly the keys it always did.
|
|
265
|
+
if (deps.hasSteps === true) {
|
|
266
|
+
scope.stepPointer = [];
|
|
267
|
+
scope.stepNudgeSpent = false;
|
|
268
|
+
}
|
|
258
269
|
// `.configure()` — resolved ONCE here (seed runs exactly once per run)
|
|
259
270
|
// and written to scope, which means the run's commit log records the
|
|
260
271
|
// model and instructions the run actually used. A run that changed its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/seed.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAKH,4DAAkE;AAClE,uEAAiE;AAIjE,2DAA4D;AAC5D,uDAA0D;
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/seed.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAKH,4DAAkE;AAClE,uEAAiE;AAIjE,2DAA4D;AAC5D,uDAA0D;AAiH1D;;;GAGG;AACH,SAAS,cAAc,CAAC,OAA8B;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,OAAO;QAAE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,KAAK,EAAE,CAAC;IACpE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,gBAAgB,CAC7B,KAA6B,EAC7B,MAA8B;IAE9B,KAAK,CAAC,UAAU,GAAG,MAAM,IAAA,4BAAiB,EAAC;QACzC,MAAM;QACN,QAAQ,EAAE,KAAK,CAAC,WAAW;QAC3B,QAAQ,EAAE,KAAK,CAAC,UAAU;KAC3B,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAC5B,IAAmB;IAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC7C,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,6CAA6C;IAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;YACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5D,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAc,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAe,EAAC,KAAK,EAAE;YAC3C,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,EAAE;YACX,qDAAqD;YACrD,SAAS,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;SAClD,CAAC,CAAC;QACH,IAAA,2BAAe,EAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,gEAAgE;YAChE,uEAAuE;YACvE,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;YAC3C,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC;YACnC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;YAC3C,kEAAkE;YAClE,wDAAwD;YACxD,qEAAqE;YACrE,sEAAsE;YACtE,wDAAwD;YACxD,KAAK,CAAC,MAAM,CAAC,4BAA4B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AApDD,wCAoDC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,KAA6B,EAAE,OAAe,EAAE,IAAmB;IACnF,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAc,CAAC;IAC1C,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;IAE5B,4DAA4D;IAC5D,6DAA6D;IAC7D,2DAA2D;IAC3D,0DAA0D;IAC1D,uCAAuC;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACzD,MAAM,OAAO,GACX,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;QACvC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;QACpB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAExB,wEAAwE;IACxE,uEAAuE;IACvE,gEAAgE;IAChE,4EAA4E;IAC5E,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,EAAE,EAAE,CAAC;IACzD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,wEAAwE;IACxE,EAAE;IACF,iEAAiE;IACjE,EAAE;IACF,mEAAmE;IACnE,2EAA2E;IAC3E,4EAA4E;IAC5E,wEAAwE;IACxE,8DAA8D;IAC9D,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,yEAAyE;IACzE,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,wDAAwD;IACxD,2EAA2E;IAC3E,6DAA6D;IAC7D,EAAE;IACF,uEAAuE;IACvE,sEAAsE;IACtE,6EAA6E;IAC7E,yEAAyE;IACzE,2EAA2E;IAC3E,6EAA6E;IAC7E,mEAAmE;IACnE,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;SAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;QAClD,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,WAAW,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,SAAS,EAAE,CAAC;IAC9E,CAAC;IACD,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;IACvB,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,6DAA6D;IAC7D,EAAE;IACF,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,sEAAsE;IACtE,2EAA2E;IAC3E,4DAA4D;IAC5D,KAAK,CAAC,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,gEAAgE;IAChE,mEAAmE;IACnE,mEAAmE;IACnE,KAAK,CAAC,sBAAsB,GAAG,MAAM,CAAC;IACtC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACzC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;IACxB,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAC3B,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC;IAClC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC9B,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;IAC3B,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC5B,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC9B,qEAAqE;IACrE,gEAAgE;IAChE,gEAAgE;IAChE,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;IAC1B,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC5B,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;IAC1B,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;IACzB,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;IAC1B,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;IAC1B,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;IAC5B,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS;QAAE,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAC9F,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC5B,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC;IACjC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5C,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC;IAChC,4DAA4D;IAC5D,gEAAgE;IAChE,4DAA4D;IAC5D,2DAA2D;IAC3D,2DAA2D;IAC3D,6DAA6D;IAC7D,gCAAgC;IAChC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;IACxB,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC7C,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;IACxB,6EAA6E;IAC7E,6EAA6E;IAC7E,kEAAkE;IAClE,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;IACjC,uEAAuE;IACvE,6EAA6E;IAC7E,yEAAyE;IACzE,uEAAuE;IACvE,0EAA0E;IAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC;IACjE,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QACtE,KAAK,CAAC,cAAc,GAAG,eAAe,CAAC;IACzC,CAAC;IACD,sEAAsE;IACtE,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACnC,2EAA2E;IAC3E,oEAAoE;IACpE,yEAAyE;IACzE,qEAAqE;IACrE,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC3B,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,oEAAoE;IACpE,6CAA6C;IAC7C,EAAE;IACF,wEAAwE;IACxE,uEAAuE;IACvE,uCAAuC;IACvC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;QACxE,IAAI,QAAQ,EAAE,YAAY,KAAK,SAAS;YAAE,KAAK,CAAC,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC/F,CAAC;IAED,IAAA,wBAAS,EAAC,KAAK,EAAE,iCAAiC,EAAE;QAClD,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,OAAO;KACpB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* stepNudge — the branch that asks once when a final answer left declared
|
|
4
|
+
* steps unrun (9.18.0).
|
|
5
|
+
*
|
|
6
|
+
* Mounted as a branch of the Route decider, and only on an agent with ≥1
|
|
7
|
+
* STEPPED skill. It carries `{ loopTo }` to the same target the
|
|
8
|
+
* `tool-calls` branch loops to — the SchemaRetry mechanism verbatim: a
|
|
9
|
+
* nudge is not a special mode, it is one more ordinary turn of the ReAct
|
|
10
|
+
* loop, with its own `iteration_start` / `llm_start` bracket and its own
|
|
11
|
+
* `cost.tick` against `costBudget`.
|
|
12
|
+
*
|
|
13
|
+
* What it appends is the conversation as it really went: the premature
|
|
14
|
+
* answer as the assistant turn, then a `role: 'user'` teaching message
|
|
15
|
+
* naming every unrun step and its note — "finish them, or say why you are
|
|
16
|
+
* stopping". At most once per turn (`stepNudgeSpent`); the model stopping
|
|
17
|
+
* AGAIN is honored (`steps_unfinished { action: 'accepted' }`, judged by
|
|
18
|
+
* the decider) — a procedure is a declared order, never a forced march.
|
|
19
|
+
*
|
|
20
|
+
* Pure function apart from its plan closure — no Agent class state.
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.buildStepNudgeStage = void 0;
|
|
24
|
+
const typedEmit_js_1 = require("../../../recorders/core/typedEmit.js");
|
|
25
|
+
const skillSteps_js_1 = require("../../../lib/injection-engine/skillSteps.js");
|
|
26
|
+
/**
|
|
27
|
+
* Build the nudge stage. The decider already judged the table (steps
|
|
28
|
+
* remain, no limit fired, nudge unspent) before routing here — this stage
|
|
29
|
+
* does the work of asking.
|
|
30
|
+
*/
|
|
31
|
+
function buildStepNudgeStage(stepPlanFor) {
|
|
32
|
+
return (scope) => {
|
|
33
|
+
const ptr = (0, skillSteps_js_1.pointerOf)(scope.stepPointer);
|
|
34
|
+
const plan = (0, skillSteps_js_1.stepInProgress)(ptr) ? stepPlanFor(ptr.skillId) : undefined;
|
|
35
|
+
if (!ptr || !plan) {
|
|
36
|
+
// Unreachable through the decider, which judges the pointer
|
|
37
|
+
// immediately before routing here. Returning quietly rather than
|
|
38
|
+
// throwing keeps a hand-built chart that mounts this branch without
|
|
39
|
+
// the decider from taking down a run (the SchemaRetry discipline).
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const iteration = scope.iteration;
|
|
43
|
+
const prematureAnswer = scope.llmLatestContent;
|
|
44
|
+
const teaching = (0, skillSteps_js_1.nudgeTeachingMessage)(ptr, plan);
|
|
45
|
+
// The conversation, as it really went: the answer that stopped early,
|
|
46
|
+
// then the teaching ask. A plain local array — a TypedScope array read
|
|
47
|
+
// is a live proxy view, and both the commit and the event payload below
|
|
48
|
+
// must be detached plain data.
|
|
49
|
+
const newHistory = [
|
|
50
|
+
...scope.history,
|
|
51
|
+
{ role: 'assistant', content: prematureAnswer },
|
|
52
|
+
{ role: 'user', content: teaching },
|
|
53
|
+
];
|
|
54
|
+
scope.history = newHistory;
|
|
55
|
+
// The one-per-turn latch. Spent BEFORE the loop turns, so a second
|
|
56
|
+
// premature stop is accepted rather than re-nudged — never a forced
|
|
57
|
+
// continue.
|
|
58
|
+
scope.stepNudgeSpent = true;
|
|
59
|
+
(0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.skill.steps_unfinished', {
|
|
60
|
+
skillId: ptr.skillId,
|
|
61
|
+
remaining: (0, skillSteps_js_1.remainingStepsOf)(ptr, plan),
|
|
62
|
+
total: ptr.total,
|
|
63
|
+
action: 'nudged',
|
|
64
|
+
iteration,
|
|
65
|
+
});
|
|
66
|
+
// Close this iteration's bracket before the loop turns — every recorder
|
|
67
|
+
// that synthesizes steps pairs `iteration_start`/`iteration_end` per
|
|
68
|
+
// `iterIndex`, and the crash-checkpoint tracker snapshots history from
|
|
69
|
+
// this payload (the SchemaRetry stage's reasoning, verbatim).
|
|
70
|
+
(0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.agent.iteration_end', {
|
|
71
|
+
turnIndex: 0,
|
|
72
|
+
iterIndex: iteration,
|
|
73
|
+
toolCallCount: 0,
|
|
74
|
+
history: newHistory,
|
|
75
|
+
});
|
|
76
|
+
// A nudge consumes an iteration, exactly as a tool call does — one more
|
|
77
|
+
// real turn against the agent's declared budget.
|
|
78
|
+
scope.iteration = iteration + 1;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
exports.buildStepNudgeStage = buildStepNudgeStage;
|
|
82
|
+
//# sourceMappingURL=stepNudge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stepNudge.js","sourceRoot":"","sources":["../../../../src/core/agent/stages/stepNudge.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAIH,uEAAiE;AACjE,+EAMqD;AAGrD;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,WAAwB;IAExB,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,GAAG,GAAG,IAAA,yBAAS,EAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAA,8BAAc,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,4DAA4D;YAC5D,iEAAiE;YACjE,oEAAoE;YACpE,mEAAmE;YACnE,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,SAAmB,CAAC;QAC5C,MAAM,eAAe,GAAG,KAAK,CAAC,gBAA0B,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAA,oCAAoB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEjD,sEAAsE;QACtE,uEAAuE;QACvE,wEAAwE;QACxE,+BAA+B;QAC/B,MAAM,UAAU,GAAiB;YAC/B,GAAI,KAAK,CAAC,OAAiC;YAC3C,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE;YAC/C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;SACpC,CAAC;QACF,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;QAE3B,mEAAmE;QACnE,oEAAoE;QACpE,YAAY;QACZ,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;QAE5B,IAAA,wBAAS,EAAC,KAAK,EAAE,uCAAuC,EAAE;YACxD,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,IAAA,gCAAgB,EAAC,GAAG,EAAE,IAAI,CAAC;YACtC,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,QAAQ;YAChB,SAAS;SACV,CAAC,CAAC;QAEH,wEAAwE;QACxE,qEAAqE;QACrE,uEAAuE;QACvE,8DAA8D;QAC9D,IAAA,wBAAS,EAAC,KAAK,EAAE,oCAAoC,EAAE;YACrD,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC;QAEH,wEAAwE;QACxE,iDAAiD;QACjD,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAzDD,kDAyDC"}
|
|
@@ -59,6 +59,7 @@ const ledger_js_1 = require("../middleware/ledger.js");
|
|
|
59
59
|
const toolArgsValidation_js_1 = require("../toolArgsValidation.js");
|
|
60
60
|
const validators_js_1 = require("../validators.js");
|
|
61
61
|
const toolResultCap_js_1 = require("../toolResultCap.js");
|
|
62
|
+
const skillSteps_js_1 = require("../../../lib/injection-engine/skillSteps.js");
|
|
62
63
|
/** Declaration order preserved, ids de-duplicated — the shape the gate's re-prompt
|
|
63
64
|
* and the `skill.rejected` payload both report as "what this gate accepts". */
|
|
64
65
|
function dedupeIds(ids) {
|
|
@@ -252,6 +253,104 @@ function buildToolCallsHandler(deps) {
|
|
|
252
253
|
: (0, toolResultCap_js_1.capToolResult)(values.modelResult, { toolName, maxChars: max }).value,
|
|
253
254
|
};
|
|
254
255
|
};
|
|
256
|
+
// ── Step-procedure boundary (9.18.0) — ONE implementation, five sites ──
|
|
257
|
+
// The batch loop and the four resume paths all finalize results; each
|
|
258
|
+
// calls these where its result becomes final, so a pointer can never miss
|
|
259
|
+
// a move because of which door the result came through (the resume-path
|
|
260
|
+
// law: the checkpoint carries the pointer for free in sharedState, and
|
|
261
|
+
// the answered call advances it HERE on resume).
|
|
262
|
+
/** The in-progress procedure, when there is one: pointer + plan + the
|
|
263
|
+
* current step. Undefined on every agent without steps, between tenures,
|
|
264
|
+
* and once a procedure completed. */
|
|
265
|
+
const stepStateOf = (scope) => {
|
|
266
|
+
if (!deps.stepPlanFor)
|
|
267
|
+
return undefined;
|
|
268
|
+
const ptr = (0, skillSteps_js_1.pointerOf)(scope.stepPointer);
|
|
269
|
+
if (!(0, skillSteps_js_1.stepInProgress)(ptr))
|
|
270
|
+
return undefined;
|
|
271
|
+
const plan = deps.stepPlanFor(ptr.skillId);
|
|
272
|
+
if (!plan)
|
|
273
|
+
return undefined;
|
|
274
|
+
const step = (0, skillSteps_js_1.currentStepOf)(ptr, plan);
|
|
275
|
+
return step ? { ptr, plan, step } : undefined;
|
|
276
|
+
};
|
|
277
|
+
/**
|
|
278
|
+
* `skip_step` bookkeeping — returns the AUTHORITATIVE result that
|
|
279
|
+
* replaces the tool's placeholder (both channels, the read_skill-refusal
|
|
280
|
+
* precedent). Emits `step_skipped` and moves/holds the pointer per the
|
|
281
|
+
* declared policy; a teaching answer (no active procedure / empty
|
|
282
|
+
* reason) emits nothing.
|
|
283
|
+
*/
|
|
284
|
+
const applySkipStep = (scope, call) => {
|
|
285
|
+
const state = stepStateOf(scope);
|
|
286
|
+
if (!state)
|
|
287
|
+
return (0, skillSteps_js_1.skipNothingActiveSentence)();
|
|
288
|
+
const raw = call.args.reason;
|
|
289
|
+
const reason = typeof raw === 'string' ? raw.trim() : '';
|
|
290
|
+
if (reason.length === 0)
|
|
291
|
+
return (0, skillSteps_js_1.skipNeedsReasonSentence)();
|
|
292
|
+
const { ptr, plan, step } = state;
|
|
293
|
+
(0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.skill.step_skipped', {
|
|
294
|
+
skillId: ptr.skillId,
|
|
295
|
+
step: { index: ptr.step, total: ptr.total, tool: step.tool, note: step.note },
|
|
296
|
+
reason,
|
|
297
|
+
policy: plan.onSkip,
|
|
298
|
+
iteration: call.iteration,
|
|
299
|
+
toolCallId: call.toolCallId,
|
|
300
|
+
});
|
|
301
|
+
// 'hold': recorded and held — the step stays the offer; repeated skips
|
|
302
|
+
// of a held step are each recorded, because each is a fact.
|
|
303
|
+
if (plan.onSkip === 'hold')
|
|
304
|
+
return (0, skillSteps_js_1.skipHoldSentence)(ptr, reason, plan);
|
|
305
|
+
const next = {
|
|
306
|
+
skillId: ptr.skillId,
|
|
307
|
+
step: ptr.step + 1,
|
|
308
|
+
total: ptr.total,
|
|
309
|
+
skipped: [...ptr.skipped, ptr.step],
|
|
310
|
+
};
|
|
311
|
+
scope.stepPointer = [next];
|
|
312
|
+
return (0, skillSteps_js_1.skipAdvanceSentence)(ptr.step, reason, next, plan);
|
|
313
|
+
};
|
|
314
|
+
/**
|
|
315
|
+
* Advance-on-return — the caller has just finalized a NON-error,
|
|
316
|
+
* NON-denied, NON-refused result for `toolName`. When that call is the
|
|
317
|
+
* current step's tool: pointer + 1, `step_advanced` (with `completed` on
|
|
318
|
+
* the last), and the returned suffix joins the model-visible result
|
|
319
|
+
* BEFORE the history push. Empty string otherwise. Eligibility (ran,
|
|
320
|
+
* not denied/rejected/errored) is judged by the CALLING site, because
|
|
321
|
+
* each dispatch path knows its own truth about that.
|
|
322
|
+
*/
|
|
323
|
+
const applyStepReturn = (scope, call) => {
|
|
324
|
+
const state = stepStateOf(scope);
|
|
325
|
+
if (!state || state.step.tool !== call.toolName)
|
|
326
|
+
return '';
|
|
327
|
+
const { ptr, plan, step } = state;
|
|
328
|
+
const next = {
|
|
329
|
+
skillId: ptr.skillId,
|
|
330
|
+
step: ptr.step + 1,
|
|
331
|
+
total: ptr.total,
|
|
332
|
+
skipped: [...ptr.skipped],
|
|
333
|
+
};
|
|
334
|
+
scope.stepPointer = [next];
|
|
335
|
+
const completed = next.step > next.total;
|
|
336
|
+
(0, typedEmit_js_1.typedEmit)(scope, 'agentfootprint.skill.step_advanced', {
|
|
337
|
+
skillId: ptr.skillId,
|
|
338
|
+
step: { index: ptr.step, total: ptr.total, tool: step.tool, note: step.note },
|
|
339
|
+
iteration: call.iteration,
|
|
340
|
+
toolCallId: call.toolCallId,
|
|
341
|
+
...(completed && { completed: true }),
|
|
342
|
+
});
|
|
343
|
+
return (0, skillSteps_js_1.stepAdvanceSuffix)(next, plan);
|
|
344
|
+
};
|
|
345
|
+
/** The `read_skill` activation intro for a STEPPED skill — where its
|
|
346
|
+
* procedure starts. Rides the same "activated for the next iteration"
|
|
347
|
+
* promise the read_skill result already makes (a same-batch declared
|
|
348
|
+
* edge that outruns the pick reports itself via `reroute_superseded`,
|
|
349
|
+
* exactly as it does for the activation sentence). */
|
|
350
|
+
const readSkillStepIntroFor = (pickedId) => {
|
|
351
|
+
const plan = deps.stepPlanFor?.(pickedId);
|
|
352
|
+
return plan ? (0, skillSteps_js_1.readSkillStepIntro)(plan) : '';
|
|
353
|
+
};
|
|
255
354
|
/**
|
|
256
355
|
* Every teardown scope an Agent run can honour (9.7.0).
|
|
257
356
|
*
|
|
@@ -1161,6 +1260,17 @@ function buildToolCallsHandler(deps) {
|
|
|
1161
1260
|
}
|
|
1162
1261
|
}
|
|
1163
1262
|
}
|
|
1263
|
+
// ── skip_step bookkeeping (9.18.0) ─────────────────────────────
|
|
1264
|
+
// Same block as the read_skill gate, same mechanism: the stage
|
|
1265
|
+
// OVERWRITES the tool's placeholder with the authoritative sentence
|
|
1266
|
+
// BEFORE the after-tool moment, so governance rules and the cap
|
|
1267
|
+
// compose over what the model will actually read, on both channels.
|
|
1268
|
+
// Postures never gate it — skipping is judgment inside a step, not
|
|
1269
|
+
// routing. Zero-cost gate: `stepPlanFor` is undefined on every agent
|
|
1270
|
+
// without a stepped skill.
|
|
1271
|
+
if (deps.stepPlanFor && tc.name === skillSteps_js_1.SKIP_STEP_TOOL_NAME && !error && !denied) {
|
|
1272
|
+
result = applySkipStep(scope, { args: callArgs, toolCallId: tc.id, iteration });
|
|
1273
|
+
}
|
|
1164
1274
|
// ── The after-tool moment ────────────────────────────────────────
|
|
1165
1275
|
// Last thing before the result becomes history, and only for a call
|
|
1166
1276
|
// that ran. `modelResult` is what the model reads; `result` stays the
|
|
@@ -1191,7 +1301,32 @@ function buildToolCallsHandler(deps) {
|
|
|
1191
1301
|
durationMs,
|
|
1192
1302
|
...(error === true && { error: true }),
|
|
1193
1303
|
});
|
|
1194
|
-
|
|
1304
|
+
let resultStr = typeof modelResult === 'string' ? modelResult : (0, validators_js_1.safeStringify)(modelResult);
|
|
1305
|
+
// ── Step boundary (9.18.0): advance decided, then decorate, THEN
|
|
1306
|
+
// push — the suffix must be part of the one past every reader sees
|
|
1307
|
+
// (history, `lastToolResult`, the batch), never spliced in later.
|
|
1308
|
+
// `stream.tool_end` above keeps reporting the tool's own truth.
|
|
1309
|
+
if (deps.stepPlanFor) {
|
|
1310
|
+
// The activation intro: an ACCEPTED read_skill pick of a stepped
|
|
1311
|
+
// skill says where the procedure starts (recency channel §1).
|
|
1312
|
+
if (tc.name === 'read_skill' && !error && !denied && !skillRejected) {
|
|
1313
|
+
const pickedId = callArgs.id;
|
|
1314
|
+
if (typeof pickedId === 'string' && pickedId.length > 0) {
|
|
1315
|
+
resultStr += readSkillStepIntroFor(pickedId);
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
// The advance: only a call that RAN clean completes a step — an
|
|
1319
|
+
// error result never advances (the pointer holds; the model
|
|
1320
|
+
// retries, skips with a reason, or routes around), and neither
|
|
1321
|
+
// does a permission denial or a gate refusal.
|
|
1322
|
+
if (executed && !error && !denied && !skillRejected) {
|
|
1323
|
+
resultStr += applyStepReturn(scope, {
|
|
1324
|
+
toolName: tc.name,
|
|
1325
|
+
toolCallId: tc.id,
|
|
1326
|
+
iteration,
|
|
1327
|
+
});
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1195
1330
|
newHistory.push({
|
|
1196
1331
|
role: 'tool',
|
|
1197
1332
|
content: resultStr,
|
|
@@ -1326,6 +1461,9 @@ function buildToolCallsHandler(deps) {
|
|
|
1326
1461
|
* after-tool moment transformed or withheld it. */
|
|
1327
1462
|
let modelResult;
|
|
1328
1463
|
let error;
|
|
1464
|
+
/** The call REALLY ran, clean — the step-advance eligibility this
|
|
1465
|
+
* path knows about itself (a decline or a chain-deny never ran). */
|
|
1466
|
+
let stepToolRan = false;
|
|
1329
1467
|
if (!decision.approved) {
|
|
1330
1468
|
result = decision.note ? `declined by human: ${decision.note}` : 'declined by human';
|
|
1331
1469
|
(0, ledger_js_1.recordDecisions)(scope, [
|
|
@@ -1432,6 +1570,14 @@ function buildToolCallsHandler(deps) {
|
|
|
1432
1570
|
const dispatched = await resolveCredentialAndExecute(scope, tool, toolName, rest.args, toolCallId, iteration, env);
|
|
1433
1571
|
result = dispatched.result;
|
|
1434
1572
|
error = dispatched.error;
|
|
1573
|
+
stepToolRan = dispatched.executed === true && error !== true;
|
|
1574
|
+
// skip_step behind a middleware ask, approved (9.18.0): the
|
|
1575
|
+
// placeholder just landed — replace it with the authoritative
|
|
1576
|
+
// sentence BEFORE the chain's last word, the execute loop's
|
|
1577
|
+
// composition kept.
|
|
1578
|
+
if (deps.stepPlanFor && toolName === skillSteps_js_1.SKIP_STEP_TOOL_NAME && stepToolRan) {
|
|
1579
|
+
result = applySkipStep(scope, { args: rest.args, toolCallId, iteration });
|
|
1580
|
+
}
|
|
1435
1581
|
// The tool ran on this side of the pause, so the chain gets its
|
|
1436
1582
|
// last word here too — a rule about results cannot be skipped by
|
|
1437
1583
|
// routing a call through a human.
|
|
@@ -1457,7 +1603,13 @@ function buildToolCallsHandler(deps) {
|
|
|
1457
1603
|
modelResult = result;
|
|
1458
1604
|
const askCapped = capResults(toolName, { result, modelResult });
|
|
1459
1605
|
modelResult = askCapped.modelResult;
|
|
1460
|
-
|
|
1606
|
+
let askResultStr = typeof modelResult === 'string' ? modelResult : (0, validators_js_1.safeStringify)(modelResult);
|
|
1607
|
+
// Step boundary (9.18.0) — a result finalized HERE is as final as one
|
|
1608
|
+
// from the batch loop; the answered call advances the pointer before
|
|
1609
|
+
// the push, exactly as it would have inline.
|
|
1610
|
+
if (deps.stepPlanFor && stepToolRan) {
|
|
1611
|
+
askResultStr += applyStepReturn(scope, { toolName, toolCallId, iteration });
|
|
1612
|
+
}
|
|
1461
1613
|
const askHistory = [
|
|
1462
1614
|
...scope.history,
|
|
1463
1615
|
{ role: 'tool', content: askResultStr, toolCallId, toolName },
|
|
@@ -1515,12 +1667,15 @@ function buildToolCallsHandler(deps) {
|
|
|
1515
1667
|
/** What the model reads — see the ask path above. */
|
|
1516
1668
|
let modelResult;
|
|
1517
1669
|
let error;
|
|
1670
|
+
/** Step-advance eligibility, judged by this path (a decline ran nothing). */
|
|
1671
|
+
let stepToolRan = false;
|
|
1518
1672
|
if (decision.approved) {
|
|
1519
1673
|
const env = scope.$getEnv();
|
|
1520
1674
|
const tool = lookupTool(toolName);
|
|
1521
1675
|
const dispatched = await resolveCredentialAndExecute(scope, tool, toolName, args, toolCallId, iteration, env);
|
|
1522
1676
|
result = dispatched.result;
|
|
1523
1677
|
error = dispatched.error;
|
|
1678
|
+
stepToolRan = dispatched.executed === true && error !== true;
|
|
1524
1679
|
// Consent moved the execution to this side of the pause; the rules
|
|
1525
1680
|
// about results move with it.
|
|
1526
1681
|
if (dispatched.executed === true) {
|
|
@@ -1545,7 +1700,12 @@ function buildToolCallsHandler(deps) {
|
|
|
1545
1700
|
modelResult = result;
|
|
1546
1701
|
const decisionCapped = capResults(toolName, { result, modelResult });
|
|
1547
1702
|
modelResult = decisionCapped.modelResult;
|
|
1548
|
-
|
|
1703
|
+
let decisionResultStr = typeof modelResult === 'string' ? modelResult : (0, validators_js_1.safeStringify)(modelResult);
|
|
1704
|
+
// Step boundary (9.18.0) — an approved consequential step (a checkIn
|
|
1705
|
+
// tool CAN be a step's tool) advances on the resumed dispatch.
|
|
1706
|
+
if (deps.stepPlanFor && stepToolRan) {
|
|
1707
|
+
decisionResultStr += applyStepReturn(scope, { toolName, toolCallId, iteration });
|
|
1708
|
+
}
|
|
1549
1709
|
const decisionHistory = [
|
|
1550
1710
|
...scope.history,
|
|
1551
1711
|
{ role: 'tool', content: decisionResultStr, toolCallId, toolName },
|
|
@@ -1615,7 +1775,12 @@ function buildToolCallsHandler(deps) {
|
|
|
1615
1775
|
modelResult = result;
|
|
1616
1776
|
const consentCapped = capResults(toolName, { result, modelResult });
|
|
1617
1777
|
modelResult = consentCapped.modelResult;
|
|
1618
|
-
|
|
1778
|
+
let consentResultStr = typeof modelResult === 'string' ? modelResult : (0, validators_js_1.safeStringify)(modelResult);
|
|
1779
|
+
// Step boundary (9.18.0) — a step tool that waited on 3LO consent
|
|
1780
|
+
// advances the moment its resumed dispatch really ran, clean.
|
|
1781
|
+
if (deps.stepPlanFor && dispatched.executed === true && error !== true) {
|
|
1782
|
+
consentResultStr += applyStepReturn(scope, { toolName, toolCallId, iteration });
|
|
1783
|
+
}
|
|
1619
1784
|
const consentHistory = [
|
|
1620
1785
|
...scope.history,
|
|
1621
1786
|
{ role: 'tool', content: consentResultStr, toolCallId, toolName },
|
|
@@ -1693,7 +1858,15 @@ function buildToolCallsHandler(deps) {
|
|
|
1693
1858
|
// as a tool's rows do.
|
|
1694
1859
|
const pauseCapped = capResults(toolName, { result: input, modelResult: rawPauseResult });
|
|
1695
1860
|
const modelResult = pauseCapped.modelResult;
|
|
1696
|
-
|
|
1861
|
+
let resultStr = typeof modelResult === 'string' ? modelResult : (0, validators_js_1.safeStringify)(modelResult);
|
|
1862
|
+
// Step boundary (9.18.0) — THE HITL step ("ask a human, then export"):
|
|
1863
|
+
// the tool paused mid-step, the person's answer IS its result, and the
|
|
1864
|
+
// completed step advances here at the same boundary it would have
|
|
1865
|
+
// inline. The pointer itself crossed the checkpoint for free (it is
|
|
1866
|
+
// committed shared state); this is the half that has to be wired.
|
|
1867
|
+
if (deps.stepPlanFor) {
|
|
1868
|
+
resultStr += applyStepReturn(scope, { toolName, toolCallId, iteration });
|
|
1869
|
+
}
|
|
1697
1870
|
const newHistory = [
|
|
1698
1871
|
...scope.history,
|
|
1699
1872
|
{
|