pi-agent-flow 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +126 -489
- package/agents/audit.md +4 -2
- package/agents/build.md +3 -2
- package/agents/craft.md +3 -3
- package/agents/debug.md +4 -3
- package/agents/ideas.md +5 -4
- package/agents/scout.md +3 -1
- package/dist/batch/apply-patch.d.ts +60 -0
- package/dist/batch/apply-patch.d.ts.map +1 -0
- package/dist/batch/apply-patch.js +477 -0
- package/dist/batch/apply-patch.js.map +1 -0
- package/dist/batch/batch-bash.d.ts +0 -6
- package/dist/batch/batch-bash.d.ts.map +1 -1
- package/dist/batch/batch-bash.js +25 -10
- package/dist/batch/batch-bash.js.map +1 -1
- package/dist/batch/constants.d.ts +33 -4
- package/dist/batch/constants.d.ts.map +1 -1
- package/dist/batch/constants.js +26 -4
- package/dist/batch/constants.js.map +1 -1
- package/dist/batch/execute.d.ts +8 -2
- package/dist/batch/execute.d.ts.map +1 -1
- package/dist/batch/execute.js +221 -66
- package/dist/batch/execute.js.map +1 -1
- package/dist/batch/fuzzy-edit.d.ts +4 -1
- package/dist/batch/fuzzy-edit.d.ts.map +1 -1
- package/dist/batch/fuzzy-edit.js +7 -2
- package/dist/batch/fuzzy-edit.js.map +1 -1
- package/dist/batch/index.d.ts +3 -15
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js +48 -78
- package/dist/batch/index.js.map +1 -1
- package/dist/batch/render.d.ts.map +1 -1
- package/dist/batch/render.js +30 -7
- package/dist/batch/render.js.map +1 -1
- package/dist/batch/summary.d.ts.map +1 -1
- package/dist/batch/summary.js +4 -0
- package/dist/batch/summary.js.map +1 -1
- package/dist/core/depth.d.ts +3 -3
- package/dist/core/depth.d.ts.map +1 -1
- package/dist/core/depth.js +5 -5
- package/dist/core/depth.js.map +1 -1
- package/dist/core/executor.d.ts +3 -3
- package/dist/core/executor.d.ts.map +1 -1
- package/dist/core/executor.js +2 -2
- package/dist/core/executor.js.map +1 -1
- package/dist/core/flow.d.ts +10 -3
- package/dist/core/flow.d.ts.map +1 -1
- package/dist/core/flow.js +76 -33
- package/dist/core/flow.js.map +1 -1
- package/dist/core/{delegation.d.ts → transition.d.ts} +8 -8
- package/dist/core/{delegation.d.ts.map → transition.d.ts.map} +1 -1
- package/dist/core/{delegation.js → transition.js} +12 -12
- package/dist/core/{delegation.js.map → transition.js.map} +1 -1
- package/dist/flow/auto-warp.d.ts +1 -1
- package/dist/flow/auto-warp.js +1 -1
- package/dist/flow/continuation.js +2 -2
- package/dist/flow/continuation.js.map +1 -1
- package/dist/flow/index.d.ts +2 -2
- package/dist/flow/index.d.ts.map +1 -1
- package/dist/flow/index.js +3 -3
- package/dist/flow/index.js.map +1 -1
- package/dist/flow/loop-command.d.ts.map +1 -1
- package/dist/flow/loop-command.js +3 -0
- package/dist/flow/loop-command.js.map +1 -1
- package/dist/flow/settings-command.d.ts.map +1 -1
- package/dist/flow/settings-command.js +4 -1
- package/dist/flow/settings-command.js.map +1 -1
- package/dist/flow/warp.d.ts +15 -0
- package/dist/flow/warp.d.ts.map +1 -0
- package/dist/flow/warp.js +207 -0
- package/dist/flow/warp.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +168 -21
- package/dist/index.js.map +1 -1
- package/dist/snapshot/runner-events.d.ts +5 -0
- package/dist/snapshot/runner-events.d.ts.map +1 -1
- package/dist/snapshot/runner-events.js +89 -15
- package/dist/snapshot/runner-events.js.map +1 -1
- package/dist/snapshot/snapshot.d.ts.map +1 -1
- package/dist/snapshot/snapshot.js +51 -18
- package/dist/snapshot/snapshot.js.map +1 -1
- package/dist/steering/flow-prompt.d.ts +2 -2
- package/dist/steering/flow-prompt.d.ts.map +1 -1
- package/dist/steering/flow-prompt.js +4 -4
- package/dist/steering/flow-prompt.js.map +1 -1
- package/dist/steering/sliding-prompt.js +6 -6
- package/dist/steering/sliding-prompt.js.map +1 -1
- package/dist/steering/tool-utils.d.ts +31 -8
- package/dist/steering/tool-utils.d.ts.map +1 -1
- package/dist/steering/tool-utils.js +63 -30
- package/dist/steering/tool-utils.js.map +1 -1
- package/dist/tools/ask-user.d.ts +0 -17
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +13 -37
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/timed-bash.d.ts +1 -1
- package/dist/tools/timed-bash.d.ts.map +1 -1
- package/dist/tools/timed-bash.js +10 -8
- package/dist/tools/timed-bash.js.map +1 -1
- package/dist/tools/web-tool.d.ts.map +1 -1
- package/dist/tools/web-tool.js +11 -13
- package/dist/tools/web-tool.js.map +1 -1
- package/dist/tui/render-utils.d.ts.map +1 -1
- package/dist/tui/render-utils.js +2 -4
- package/dist/tui/render-utils.js.map +1 -1
- package/dist/tui/render.d.ts +9 -0
- package/dist/tui/render.d.ts.map +1 -1
- package/dist/tui/render.js +78 -39
- package/dist/tui/render.js.map +1 -1
- package/dist/tui/scramble/index.d.ts +1 -1
- package/dist/tui/scramble/index.d.ts.map +1 -1
- package/dist/tui/scramble/index.js +1 -1
- package/dist/tui/scramble/index.js.map +1 -1
- package/dist/tui/scramble/manager.d.ts +1 -1
- package/dist/tui/scramble/manager.d.ts.map +1 -1
- package/dist/tui/scramble/manager.js +14 -2
- package/dist/tui/scramble/manager.js.map +1 -1
- package/dist/tui/scramble/utils.js +1 -1
- package/dist/tui/scramble/utils.js.map +1 -1
- package/dist/types/flow.d.ts.map +1 -1
- package/dist/types/flow.js +11 -2
- package/dist/types/flow.js.map +1 -1
- package/package.json +2 -2
- package/dist/flow/perform-warp.d.ts +0 -28
- package/dist/flow/perform-warp.d.ts.map +0 -1
- package/dist/flow/perform-warp.js +0 -127
- package/dist/flow/perform-warp.js.map +0 -1
- package/dist/flow/warp-command.d.ts +0 -8
- package/dist/flow/warp-command.d.ts.map +0 -1
- package/dist/flow/warp-command.js +0 -144
- package/dist/flow/warp-command.js.map +0 -1
- package/dist/flow/warp-utils.d.ts +0 -11
- package/dist/flow/warp-utils.d.ts.map +0 -1
- package/dist/flow/warp-utils.js +0 -187
- package/dist/flow/warp-utils.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -10,8 +10,8 @@ import { discoverFlows, getFlowTier } from "./core/agents.js";
|
|
|
10
10
|
import { getInheritedCliArgs } from "./snapshot/cli-args.js";
|
|
11
11
|
import { renderFlowCall, renderFlowResult } from "./tui/render.js";
|
|
12
12
|
import { terminateAllChildGroups } from "./core/flow.js";
|
|
13
|
-
import { executeFlows } from "./core/executor.js";
|
|
14
|
-
import {
|
|
13
|
+
import { executeFlows, evictCacheOverflow } from "./core/executor.js";
|
|
14
|
+
import { appendDirectiveOnce, resetDirectiveTracker, configureDirective, stripDirectivesFromMessages } from "./steering/tool-utils.js";
|
|
15
15
|
import { createBatchTool, createBatchReadTool, BashProcessTracker, createBatchBashPollTool, } from "./batch/index.js";
|
|
16
16
|
import { createWebTool } from "./tools/web-tool.js";
|
|
17
17
|
import { createAskUserTool } from "./tools/ask-user.js";
|
|
@@ -30,6 +30,113 @@ export { logWarn, logError };
|
|
|
30
30
|
// flow results are compressed properly in fork snapshots.
|
|
31
31
|
// ---------------------------------------------------------------------------
|
|
32
32
|
const flowResultCache = new Map();
|
|
33
|
+
/**
|
|
34
|
+
* Reconstruct flowResultCache from an existing session branch after restart.
|
|
35
|
+
* Scans tool results for the "flow" tool and rebuilds CompressedFlowResult
|
|
36
|
+
* entries so child-fork compression works immediately without waiting for
|
|
37
|
+
* new flows to complete.
|
|
38
|
+
*/
|
|
39
|
+
function reconstructFlowResultCache(sessionManager, cache) {
|
|
40
|
+
const branch = sessionManager.getBranch();
|
|
41
|
+
if (!Array.isArray(branch) || branch.length === 0)
|
|
42
|
+
return;
|
|
43
|
+
// Pass 1: map toolCallId -> "flow" from assistant messages
|
|
44
|
+
const toolCallIdToName = new Map();
|
|
45
|
+
for (const entry of branch) {
|
|
46
|
+
if (!entry || typeof entry !== "object")
|
|
47
|
+
continue;
|
|
48
|
+
const e = entry;
|
|
49
|
+
if (e.type !== "message")
|
|
50
|
+
continue;
|
|
51
|
+
const msg = e.message;
|
|
52
|
+
if (!msg || msg.role !== "assistant")
|
|
53
|
+
continue;
|
|
54
|
+
const content = msg.content;
|
|
55
|
+
if (!Array.isArray(content))
|
|
56
|
+
continue;
|
|
57
|
+
for (const part of content) {
|
|
58
|
+
if (!part || typeof part !== "object")
|
|
59
|
+
continue;
|
|
60
|
+
const p = part;
|
|
61
|
+
if (p.type === "toolCall" && p.name === "flow") {
|
|
62
|
+
const tcId = (p.id ?? p.toolCallId);
|
|
63
|
+
if (tcId)
|
|
64
|
+
toolCallIdToName.set(tcId, "flow");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Pass 2: scan tool/toolResult messages and rebuild cache
|
|
69
|
+
for (const entry of branch) {
|
|
70
|
+
if (!entry || typeof entry !== "object")
|
|
71
|
+
continue;
|
|
72
|
+
const e = entry;
|
|
73
|
+
if (e.type !== "message")
|
|
74
|
+
continue;
|
|
75
|
+
const msg = e.message;
|
|
76
|
+
if (!msg || (msg.role !== "tool" && msg.role !== "toolResult"))
|
|
77
|
+
continue;
|
|
78
|
+
let toolCallId;
|
|
79
|
+
if (typeof msg.toolCallId === "string" && msg.toolCallId.trim()) {
|
|
80
|
+
toolCallId = msg.toolCallId;
|
|
81
|
+
}
|
|
82
|
+
else if (Array.isArray(msg.content)) {
|
|
83
|
+
for (const part of msg.content) {
|
|
84
|
+
if (!part || typeof part !== "object")
|
|
85
|
+
continue;
|
|
86
|
+
const p = part;
|
|
87
|
+
if (p.type === "toolResult" && typeof p.toolCallId === "string" && p.toolCallId.trim()) {
|
|
88
|
+
toolCallId = p.toolCallId;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!toolCallId || toolCallIdToName.get(toolCallId) !== "flow")
|
|
94
|
+
continue;
|
|
95
|
+
const details = msg.details;
|
|
96
|
+
if (!details || !Array.isArray(details.results))
|
|
97
|
+
continue;
|
|
98
|
+
const results = details.results;
|
|
99
|
+
const compressed = [];
|
|
100
|
+
for (const r of results) {
|
|
101
|
+
const so = r.structuredOutput;
|
|
102
|
+
if (!so)
|
|
103
|
+
continue;
|
|
104
|
+
const c = {
|
|
105
|
+
type: typeof r.type === "string" ? r.type : "unknown",
|
|
106
|
+
status: typeof r.exitCode === "number" && r.exitCode === 0 ? "accomplished" : "failed",
|
|
107
|
+
};
|
|
108
|
+
if (typeof r.intent === "string")
|
|
109
|
+
c.intent = r.intent;
|
|
110
|
+
if (typeof r.aim === "string")
|
|
111
|
+
c.aim = r.aim;
|
|
112
|
+
if (typeof so.summary === "string")
|
|
113
|
+
c.summary = so.summary;
|
|
114
|
+
if (Array.isArray(so.files))
|
|
115
|
+
c.files = so.files;
|
|
116
|
+
if (Array.isArray(so.actions))
|
|
117
|
+
c.actions = so.actions;
|
|
118
|
+
if (Array.isArray(so.commands))
|
|
119
|
+
c.commands = so.commands;
|
|
120
|
+
if (Array.isArray(so.notDone))
|
|
121
|
+
c.notDone = so.notDone;
|
|
122
|
+
if (Array.isArray(so.nextSteps))
|
|
123
|
+
c.nextSteps = so.nextSteps;
|
|
124
|
+
if (Array.isArray(so.reasoning))
|
|
125
|
+
c.reasoning = so.reasoning;
|
|
126
|
+
if (Array.isArray(so.notes))
|
|
127
|
+
c.notes = so.notes;
|
|
128
|
+
if (typeof r.errorMessage === "string")
|
|
129
|
+
c.error = r.errorMessage;
|
|
130
|
+
compressed.push(c);
|
|
131
|
+
}
|
|
132
|
+
if (compressed.length > 0) {
|
|
133
|
+
const existing = cache.get(toolCallId) ?? [];
|
|
134
|
+
existing.push(...compressed);
|
|
135
|
+
cache.set(toolCallId, existing);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
evictCacheOverflow(cache);
|
|
139
|
+
}
|
|
33
140
|
import { computeActiveTools, buildBeforeAgentStartPrompt, } from "./steering/flow-prompt.js";
|
|
34
141
|
// ---------------------------------------------------------------------------
|
|
35
142
|
// Tool parameter schema
|
|
@@ -62,7 +169,7 @@ const FlowItem = Type.Object({
|
|
|
62
169
|
const FlowParams = Type.Object({
|
|
63
170
|
flow: Type.Array(FlowItem, {
|
|
64
171
|
description: "Array of flow tasks to execute. Each runs in its own forked process. " +
|
|
65
|
-
"Optional sessionMode selects the
|
|
172
|
+
"Optional sessionMode selects the flow state budget: fast=300s, default=600s, long=900s, extreme_long=1200s.",
|
|
66
173
|
examples: [
|
|
67
174
|
{ type: "scout", intent: "Map auth module files and trace JWT validation path", aim: "Map auth and trace JWT" },
|
|
68
175
|
{ type: "audit", intent: "Audit input validation and SQL injection risks in user routes", aim: "Audit user route security" },
|
|
@@ -133,7 +240,7 @@ export default function (pi) {
|
|
|
133
240
|
type: "boolean",
|
|
134
241
|
});
|
|
135
242
|
pi.registerFlag("no-steering", {
|
|
136
|
-
description: "Disable
|
|
243
|
+
description: "Disable root state steering hint injection.",
|
|
137
244
|
type: "boolean",
|
|
138
245
|
});
|
|
139
246
|
pi.registerFlag("steering-prompt", {
|
|
@@ -157,7 +264,7 @@ export default function (pi) {
|
|
|
157
264
|
// Wire up /flow command and continuation hooks
|
|
158
265
|
registerFlow(pi);
|
|
159
266
|
const depthConfig = resolveFlowDepthConfig(pi);
|
|
160
|
-
const { currentDepth, maxDepth,
|
|
267
|
+
const { currentDepth, maxDepth, canTransition, ancestorFlowStack, preventCycles } = depthConfig;
|
|
161
268
|
let resolved;
|
|
162
269
|
let _sessionCtx;
|
|
163
270
|
let bashTracker;
|
|
@@ -166,18 +273,23 @@ export default function (pi) {
|
|
|
166
273
|
sessionRegistry.register(ctx.cwd, ctx.sessionManager.getSessionId());
|
|
167
274
|
_sessionCtx = ctx;
|
|
168
275
|
resolved = resolveSettings(pi, ctx.cwd);
|
|
276
|
+
// Reconstruct historical flow result cache so fork snapshots can compress
|
|
277
|
+
// past flow results immediately (instead of showing placeholder text until
|
|
278
|
+
// new flows complete). bashTracker is created fresh below — pending OS
|
|
279
|
+
// processes are inherently lost across restarts, which is expected.
|
|
280
|
+
reconstructFlowResultCache(ctx.sessionManager, flowResultCache);
|
|
169
281
|
// Wire resolved settings to modules
|
|
170
282
|
configureSteering({ enabled: resolved.steeringEnabled, customPrompt: resolved.steeringCustomPrompt });
|
|
171
|
-
|
|
283
|
+
configureDirective(resolved.steeringStrategicHint);
|
|
172
284
|
scrambleManager.setAnimationConfig({ enabled: resolved.animationEnabled, glitch: resolved.animationGlitch });
|
|
173
|
-
// Only restrict tools for the main
|
|
285
|
+
// Only restrict tools for the main root state (depth 0).
|
|
174
286
|
// Child flows (depth > 0) receive their tools via --tools CLI arg;
|
|
175
287
|
// overriding them here would strip bash/batch from children.
|
|
176
288
|
if (currentDepth === 0) {
|
|
177
289
|
pi.setActiveTools(computeActiveTools(resolved.toolOptimize));
|
|
178
290
|
}
|
|
179
291
|
// Register tools based on depth.
|
|
180
|
-
// Depth 0 (main
|
|
292
|
+
// Depth 0 (main root state): only batch_read — no bash ops, only reads + flow tool.
|
|
181
293
|
// Depth > 0 (child flows): batch (with bash), batch_bash_poll — they need bash ops.
|
|
182
294
|
// Children use batch for reads (which includes read ops), so batch_read is NOT
|
|
183
295
|
// registered for depth > 0 to avoid confusion and keep the tool set minimal.
|
|
@@ -202,13 +314,27 @@ export default function (pi) {
|
|
|
202
314
|
}
|
|
203
315
|
}
|
|
204
316
|
});
|
|
317
|
+
// Clean up global mutable state on session shutdown
|
|
318
|
+
pi.on("session_shutdown", () => {
|
|
319
|
+
flowResultCache.clear();
|
|
320
|
+
_sessionCtx = undefined;
|
|
321
|
+
// bashTracker and its pending OS processes are discarded on restart.
|
|
322
|
+
// This is expected — child process state is not serializable.
|
|
323
|
+
if (bashTracker) {
|
|
324
|
+
try {
|
|
325
|
+
bashTracker.abortAll();
|
|
326
|
+
}
|
|
327
|
+
catch { /* best-effort */ }
|
|
328
|
+
bashTracker = undefined;
|
|
329
|
+
}
|
|
330
|
+
});
|
|
205
331
|
// Re-apply active tools every turn to survive registry refreshes.
|
|
206
332
|
// Skip for child flows — they get tools from --tools CLI arg.
|
|
207
333
|
pi.on("turn_start", () => {
|
|
208
334
|
if (currentDepth > 0 || !resolved)
|
|
209
335
|
return;
|
|
210
336
|
pi.setActiveTools(computeActiveTools(resolved.toolOptimize));
|
|
211
|
-
|
|
337
|
+
resetDirectiveTracker();
|
|
212
338
|
});
|
|
213
339
|
// Inject available flows into the system prompt.
|
|
214
340
|
// Skip entirely for child flows (depth > 0) — they get their instructions
|
|
@@ -216,7 +342,7 @@ export default function (pi) {
|
|
|
216
342
|
pi.on("before_agent_start", async (event) => {
|
|
217
343
|
if (currentDepth > 0 || !resolved)
|
|
218
344
|
return undefined;
|
|
219
|
-
const augmented = buildBeforeAgentStartPrompt(event, resolved.toolOptimize,
|
|
345
|
+
const augmented = buildBeforeAgentStartPrompt(event, resolved.toolOptimize, canTransition, resolved.discoveredFlows, depthConfig);
|
|
220
346
|
if (augmented === undefined)
|
|
221
347
|
return undefined;
|
|
222
348
|
return { systemPrompt: augmented };
|
|
@@ -231,7 +357,10 @@ export default function (pi) {
|
|
|
231
357
|
if (currentDepth > 0)
|
|
232
358
|
return undefined;
|
|
233
359
|
// Always strip old steering hint messages to prevent accumulation
|
|
234
|
-
const { messages, changed:
|
|
360
|
+
const { messages: steeringStrippedMessages, changed: steeringChanged } = stripSteeringHintsFromMessages(event.messages);
|
|
361
|
+
// Also strip directive hints (adaptive hints appended to tool results)
|
|
362
|
+
const { messages, changed: directiveChanged } = stripDirectivesFromMessages(steeringStrippedMessages);
|
|
363
|
+
const messagesChanged = steeringChanged || directiveChanged;
|
|
235
364
|
// Find latest user message
|
|
236
365
|
const userIndices = messages
|
|
237
366
|
.map((m, i) => (m.role === "user" ? i : -1))
|
|
@@ -289,10 +418,16 @@ export default function (pi) {
|
|
|
289
418
|
// Register the ask_user tool
|
|
290
419
|
pi.registerTool(createAskUserTool());
|
|
291
420
|
// Register the flow tool
|
|
292
|
-
if (
|
|
421
|
+
if (canTransition) {
|
|
293
422
|
pi.registerTool({
|
|
294
423
|
name: "flow",
|
|
295
424
|
label: "Flow",
|
|
425
|
+
promptSnippet: "Transition to specialized agent flows running in isolated forked processes",
|
|
426
|
+
promptGuidelines: [
|
|
427
|
+
"Use `flow` when the task requires skills beyond your current context (scout, debug, build, craft, audit, ideas).",
|
|
428
|
+
"Combine multiple related tasks into a single `flow` call with an array of flow items.",
|
|
429
|
+
"Always provide a concrete intent, aim, and optional acceptance criteria.",
|
|
430
|
+
],
|
|
296
431
|
description: [
|
|
297
432
|
"If you cannot answer from your current context, you are forbidden from guessing.",
|
|
298
433
|
"You MUST enter to the following flow states, with tool call method.",
|
|
@@ -306,11 +441,7 @@ export default function (pi) {
|
|
|
306
441
|
parameters: FlowParams,
|
|
307
442
|
async execute(toolCallId, params, signal, onUpdate, ctx) {
|
|
308
443
|
if (!resolved) {
|
|
309
|
-
|
|
310
|
-
content: [{ type: "text", text: "Error: session not initialized" }],
|
|
311
|
-
details: makeFlowDetailsFactory(null)([]),
|
|
312
|
-
isError: true,
|
|
313
|
-
};
|
|
444
|
+
throw new Error("Error: session not initialized");
|
|
314
445
|
}
|
|
315
446
|
const discovery = discoverFlows(ctx.cwd, "all");
|
|
316
447
|
const { flows } = discovery;
|
|
@@ -390,13 +521,29 @@ export default function (pi) {
|
|
|
390
521
|
}
|
|
391
522
|
},
|
|
392
523
|
}, params.flow.map((f) => ({ type: f.type, intent: f.intent, aim: f.aim, acceptance: f.acceptance, cwd: f.cwd, sessionMode: f.sessionMode })), toolCallId);
|
|
524
|
+
if (result.failed) {
|
|
525
|
+
const text = result.content?.[0]?.text ?? "Flow execution failed";
|
|
526
|
+
throw new Error(text);
|
|
527
|
+
}
|
|
393
528
|
const flowToolResult = {
|
|
394
529
|
content: result.content,
|
|
395
530
|
details: result.details,
|
|
396
|
-
|
|
531
|
+
failed: result.failed,
|
|
397
532
|
_toolCallId: toolCallId,
|
|
398
533
|
};
|
|
399
|
-
|
|
534
|
+
// Build adaptive directive context from flow results
|
|
535
|
+
const hintContext = { hasNotDone: false, statusVague: false };
|
|
536
|
+
if (result.details?.results && Array.isArray(result.details.results)) {
|
|
537
|
+
for (const r of result.details.results) {
|
|
538
|
+
if (r.structuredOutput?.notDone?.length) {
|
|
539
|
+
hintContext.hasNotDone = true;
|
|
540
|
+
}
|
|
541
|
+
if (!r.structuredOutput || !["complete", "partial", "blocked"].includes(r.structuredOutput.status)) {
|
|
542
|
+
hintContext.statusVague = true;
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
appendDirectiveOnce(flowToolResult, hintContext);
|
|
400
547
|
return flowToolResult;
|
|
401
548
|
},
|
|
402
549
|
renderCall: (args, theme) => renderFlowCall(args, theme),
|
|
@@ -437,11 +584,11 @@ export default function (pi) {
|
|
|
437
584
|
}
|
|
438
585
|
// Register cleanup on process exit (once).
|
|
439
586
|
// We use prependListener on SIGINT/SIGTERM to propagate to child processes
|
|
440
|
-
// before the host's own signal handler runs. This avoids orphaned
|
|
587
|
+
// before the host's own signal handler runs. This avoids orphaned flow states.
|
|
441
588
|
// The host handler still runs afterward and handles terminal cleanup.
|
|
442
589
|
if (!globalThis.__pi_agent_flow_shutdown_registered) {
|
|
443
590
|
globalThis.__pi_agent_flow_shutdown_registered = true;
|
|
444
|
-
// Propagate signals to child process groups so
|
|
591
|
+
// Propagate signals to child process groups so flow states don't become orphans.
|
|
445
592
|
// We use prependListener so our handler runs first, before the host's cleanup.
|
|
446
593
|
const shutdown = () => {
|
|
447
594
|
// First, abort any pending bash operations tracked by the batch tool.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAOtH,OAAO,EACN,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACN,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,EACvB,iBAAiB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAW,oBAAoB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EACN,sBAAsB,GAEtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,6BAA6B,EAC7B,oBAAoB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,eAAe,GAEf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAE7B,8EAA8E;AAC9E,6EAA6E;AAC7E,0DAA0D;AAC1D,8EAA8E;AAC9E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;AAElE,OAAO,EACN,kBAAkB,EAClB,2BAA2B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,yIAAyI;KACtJ,CAAC;IACF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,gPAAgP;KAC7P,CAAC;IACF,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,gGAAgG;KAC7G,CAAC;IACF,UAAU,EAAE,IAAI,CAAC,QAAQ,CACxB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qEAAqE,EAAE,CAAC,CACnG;IACD,GAAG,EAAE,IAAI,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC,CACzE;IACD,WAAW,EAAE,IAAI,CAAC,QAAQ,CACzB,IAAI,CAAC,KAAK,CAAC;QACV,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;KAC5B,EAAE;QACF,WAAW,EAAE,sLAAsL;KACnM,CAAC,CACF;CACD,EAAE;IACF,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,2DAA2D;CACxE,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC1B,WAAW,EACV,uEAAuE;YACvE,8GAA8G;QAC/G,QAAQ,EAAE;YACT,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,qDAAqD,EAAE,GAAG,EAAE,wBAAwB,EAAE;YAC/G,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,+DAA+D,EAAE,GAAG,EAAE,2BAA2B,EAAE;SAC5H;QACD,QAAQ,EAAE,CAAC;KACX,CAAC;IACF,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CACjC,IAAI,CAAC,OAAO,CAAC;QACZ,WAAW,EAAE,+EAA+E;QAC5F,OAAO,EAAE,IAAI;KACb,CAAC,CACF;CACD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;AAE/C,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,sBAAsB,CAAC,eAA8B;IAC7D,OAAO,CAAC,OAAuB,EAAe,EAAE,CAAC,CAAC;QACjD,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,MAAM;QACjB,gBAAgB,EAAE,eAAe;QACjC,OAAO;KACP,CAAC,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtF,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,CAAC,OAAO,WAAW,EAAgB;IACxC,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE;QACjC,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,qBAAqB,EAAE;QACtC,WAAW,EAAE,4EAA4E;QACzF,IAAI,EAAE,SAAS;KACf,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE;QACpC,WAAW,EAAE,gEAAgE;QAC7E,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE;QAC5B,WAAW,EAAE,kFAAkF;QAC/F,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE;QAClC,WAAW,EAAE,2CAA2C;QACxD,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE;QACnC,WAAW,EAAE,4CAA4C;QACzD,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE;QAClC,WAAW,EAAE,2CAA2C;QACxD,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,sBAAsB,EAAE;QACvC,WAAW,EAAE,8DAA8D;QAC3E,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE;QACpC,WAAW,EAAE,iHAAiH;QAC9H,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;IAEH,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE;QAChC,WAAW,EAAE,uFAAuF;QACpG,IAAI,EAAE,SAAS;KACf,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE;QAC9B,WAAW,EAAE,+CAA+C;QAC5D,IAAI,EAAE,SAAS;KACf,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE;QAClC,WAAW,EAAE,iDAAiD;QAC9D,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE;QACpC,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,SAAS;KACf,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE;QAC/B,WAAW,EAAE,8CAA8C;QAC3D,IAAI,EAAE,SAAS;KACf,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE;QAC5B,WAAW,EAAE,iCAAiC;QAC9C,IAAI,EAAE,SAAS;KACf,CAAC,CAAC;IAEH,uCAAuC;IACvC,WAAW,CAAC,EAAE,CAAC,CAAC;IAGhB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,MAAM,WAAW,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAC9E,WAAW,CAAC;IAEb,IAAI,QAAsC,CAAC;IAC3C,IAAI,WAAyC,CAAC;IAC9C,IAAI,WAA2C,CAAC;IAEhD,uCAAuC;IACvC,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC5C,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;QACrE,WAAW,GAAG,GAAG,CAAC;QAClB,QAAQ,GAAG,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAExC,oCAAoC;QACpC,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACtG,sBAAsB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACvD,eAAe,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;QAE7G,2DAA2D;QAC3D,mEAAmE;QACnE,6DAA6D;QAC7D,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,iCAAiC;QACjC,sFAAsF;QACtF,oFAAoF;QACpF,+EAA+E;QAC/E,6EAA6E;QAC7E,8EAA8E;QAC9E,6DAA6D;QAC7D,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC3B,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACP,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;gBACvC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;gBACrE,EAAE,CAAC,YAAY,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;YACvD,CAAC;QACF,CAAC;QAED,2FAA2F;QAC3F,sFAAsF;QACtF,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,6BAA6B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,SAAS,EAAE,CAAC;gBACf,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,kEAAkE;IAClE,8DAA8D;IAC9D,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1C,EAAE,CAAC,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7D,yBAAyB,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,0EAA0E;IAC1E,qDAAqD;IACrD,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3C,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAEpD,MAAM,SAAS,GAAG,2BAA2B,CAC5C,KAAK,EACL,QAAQ,CAAC,YAAY,EACrB,WAAW,EACX,QAAQ,CAAC,eAAe,EACxB,WAAW,CACX,CAAC;QAEF,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,uEAAuE;IACvE,0EAA0E;IAC1E,yEAAyE;IACzE,yDAAyD;IACzD,iFAAiF;IACjF,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAChC,IAAI,YAAY,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAEvC,kEAAkE;QAClE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,8BAA8B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE9F,2BAA2B;QAC3B,MAAM,WAAW,GAAG,QAAQ;aAC1B,GAAG,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxD,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAElC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,4EAA4E;YAC5E,uEAAuE;YACvE,4CAA4C;YAC5C,IAAI,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACtC,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAChC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBACrD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;oBAC/B,YAAY,GAAG,QAAQ,CAAC;oBACxB,mBAAmB,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACF,CAAC;YACD,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,IAAI,eAAe;gBAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAChD,IAAI,mBAAmB;gBAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;YAC5D,OAAO,CAAC,eAAe,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,CAAC;QAED,4EAA4E;QAC5E,8DAA8D;QAC9D,IAAI,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACtC,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC/B,YAAY,GAAG,QAAQ,CAAC;gBACxB,mBAAmB,GAAG,IAAI,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,uBAAuB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,WAAW;YAC3B,CAAC,CAAC;gBACA,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;gBACnC,WAAW;gBACX,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;aAChC;YACF,CAAC,CAAC,QAAQ,CAAC;QAEZ,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,IAAI,WAAW,IAAI,eAAe;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/D,IAAI,mBAAmB,EAAE,CAAC;YACzB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;IAEjC,6BAA6B;IAC7B,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAErC,yBAAyB;IACzB,IAAI,WAAW,EAAE,CAAC;QACjB,EAAE,CAAC,YAAY,CAAC;YACf,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,WAAW,EAAE;gBACZ,kFAAkF;gBAClF,qEAAqE;gBACrE,EAAE;gBACF,2FAA2F;gBAC3F,yGAAyG;gBACzG,uJAAuJ;gBACvJ,mDAAmD;gBACnD,mGAAmG;aACnG,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,UAAU;YAEtB,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;gBACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACf,OAAO;wBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC;wBACnE,OAAO,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBACzC,OAAO,EAAE,IAAI;qBACb,CAAC;gBACH,CAAC;gBAED,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAChD,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;gBAC5B,MAAM,WAAW,GAAG,sBAAsB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;gBAEtE,yEAAyE;gBACzE,8CAA8C;gBAC9C,oEAAoE;gBACpE,yDAAyD;gBACzD,MAAM,EAAE,MAAM,EAAE,wBAAwB,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,oBAAoB,CACjG,6BAA6B,CAAC,GAAG,CAAC,cAAc,CAAC,EACjD,eAAe,EACf;oBACC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE;oBAC7C,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAClC,KAAK,EAAE,YAAY,GAAG,CAAC;oBACvB,GAAG,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxG,CACD,CAAC;gBAEF,MAAM,eAAe,GAAG,CAAC,IAA+B,EAAsB,EAAE;oBAC/E,MAAM,QAAQ,GACb,IAAI,KAAK,MAAM;wBACd,CAAC,CAAC,iBAAiB;wBACnB,CAAC,CAAC,IAAI,KAAK,OAAO;4BACjB,CAAC,CAAC,kBAAkB;4BACpB,CAAC,CAAC,iBAAiB,CAAC;oBACvB,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC1C,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE;wBAAE,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;oBACxF,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC7D,OAAO,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACxG,CAAC,CAAC;gBAEF,IAAI,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnF,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC5C,OAAO,CAAC,uDAAuD,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,SAAS,IAAI,MAAM,sBAAsB,CAAC,CAAC;wBAChK,UAAU,GAAG,OAAO,CAAC;oBACtB,CAAC;gBACF,CAAC;gBACD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChC,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,SAAS,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM;oBAC3C,QAAQ,EAAE,UAAU,CAAC,QAAQ;iBAC7B,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEd,MAAM,MAAM,GAAG,MAAM,YAAY,CAChC;oBACC,KAAK;oBACL,YAAY;oBACZ,QAAQ;oBACR,iBAAiB;oBACjB,aAAa;oBACb,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;oBAC3C,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;oBACvD,cAAc,EAAE,QAAQ,CAAC,cAAc;oBAEvC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;oBAC/C,MAAM;oBACN,QAAQ;oBACR,WAAW;oBACX,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,QAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;oBACpG,oBAAoB,EAAE,eAAe;oBACrC,aAAa,EAAE,gBAAgB,CAAC,aAAa;oBAC7C,wBAAwB;oBACxB,wBAAwB;oBACxB,eAAe;oBACf,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;oBACvD,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,UAAU;wBAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC9G,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;oBAC/C,WAAW;oBACX,wBAAwB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;wBAC3C,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC/E,IAAI,CAAC,IAAI;4BAAE,OAAO;wBAClB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;4BACzB,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;4BAC9E,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACpD,CAAC;oBACF,CAAC;iBACD,EACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAC/I,UAAU,CACV,CAAC;gBAEF,MAAM,cAAc,GAAG;oBACtB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE,UAAU;iBAChB,CAAC;gBACT,uBAAuB,CAAC,cAAc,CAAC,CAAC;gBACxC,OAAO,cAAc,CAAC;YACvB,CAAC;YAED,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;YACxD,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACnD,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;SAChD,CAAC,CAAC;IACJ,CAAC;IAGD,4EAA4E;IAC5E,wDAAwD;IACxD,4EAA4E;IAE5E,0EAA0E;IAC1E,MAAM,SAAS,GAAmB;QACjC,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC;QACzD,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;QAChD,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ;YAC1B,CAAC,CAAC;gBACA,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;gBAC3C,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;gBACnD,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;gBACrD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;gBAC3C,eAAe,EAAE,QAAQ,CAAC,eAAe;aACzC;YACF,CAAC,CAAC;gBACA,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,IAAI;gBACtB,cAAc,EAAE,CAAC;gBACjB,eAAe,EAAE,IAAI;gBACrB,oBAAoB,EAAE,SAAS;gBAC/B,qBAAqB,EAAE,IAAI;gBAC3B,gBAAgB,EAAE,IAAI;gBACtB,eAAe,EAAE,IAAI;aACrB;KACH,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACnC,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,2CAA2C;IAC3C,2EAA2E;IAC3E,8EAA8E;IAC9E,sEAAsE;IACtE,IAAI,CAAE,UAAkB,CAAC,mCAAmC,EAAE,CAAC;QAC7D,UAAkB,CAAC,mCAAmC,GAAG,IAAI,CAAC;QAE/D,gFAAgF;QAChF,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,GAAG,EAAE;YACrB,sEAAsE;YACtE,IAAI,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC;oBAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC;YACD,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACnC,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAC/D,CAAC;QACF,CAAC,CAAC;QAEF,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,gFAAgF;QAChF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC;AAEF,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,11 @@ export declare function updateSmoothedTps(result: object, estimatedTokens: numbe
|
|
|
30
30
|
* Return the current EMA-smoothed tokens-per-second value.
|
|
31
31
|
*/
|
|
32
32
|
export declare function drainSmoothedTps(result: object): number;
|
|
33
|
+
/**
|
|
34
|
+
* Drain the accumulated tool call token estimate and return it.
|
|
35
|
+
* Returns 0 when no tool calls have been estimated.
|
|
36
|
+
*/
|
|
37
|
+
export declare function drainToolCallEstimate(result: object): number;
|
|
33
38
|
/**
|
|
34
39
|
* Drain the current streaming estimate and return estimated output tokens.
|
|
35
40
|
* Returns 0 when no streaming has occurred.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-events.d.ts","sourceRoot":"","sources":["../../src/snapshot/runner-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-events.d.ts","sourceRoot":"","sources":["../../src/snapshot/runner-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAyCnD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOzD;AAgGD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CA2D/E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvD;AAsCD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIvD;AAkBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,kBAAwB,GAAG,MAAM,CAsBpF;AAkCD,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAoJD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAW7E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAuB5D;AAwGD,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,MAAM,CA6DrE"}
|
|
@@ -25,6 +25,7 @@ const pendingTokensMap = new WeakMap();
|
|
|
25
25
|
const pauseAfterNextEmitMap = new WeakMap();
|
|
26
26
|
const ctxBaselineMap = new WeakMap();
|
|
27
27
|
const ctxStreamingCharsMap = new WeakMap();
|
|
28
|
+
const toolCallTokenEstimateMap = new WeakMap();
|
|
28
29
|
function getSeenFlowMessageSignatures(result) {
|
|
29
30
|
if (!seenSignaturesMap.has(result)) {
|
|
30
31
|
seenSignaturesMap.set(result, new Set());
|
|
@@ -77,6 +78,44 @@ function getStreamingEstimate(result) {
|
|
|
77
78
|
}
|
|
78
79
|
return streamingEstimateMap.get(result);
|
|
79
80
|
}
|
|
81
|
+
function getToolCallTokenEstimate(result) {
|
|
82
|
+
if (!toolCallTokenEstimateMap.has(result)) {
|
|
83
|
+
toolCallTokenEstimateMap.set(result, 0);
|
|
84
|
+
}
|
|
85
|
+
return toolCallTokenEstimateMap.get(result);
|
|
86
|
+
}
|
|
87
|
+
function addToolCallTokens(result, tokens) {
|
|
88
|
+
if (tokens <= 0)
|
|
89
|
+
return;
|
|
90
|
+
toolCallTokenEstimateMap.set(result, getToolCallTokenEstimate(result) + tokens);
|
|
91
|
+
}
|
|
92
|
+
/** Better estimator for JSON content that treats structural chars as ~1 token each. */
|
|
93
|
+
function estimateToolCallTokens(text) {
|
|
94
|
+
let tokens = 0;
|
|
95
|
+
let alphaRun = 0;
|
|
96
|
+
for (const char of text) {
|
|
97
|
+
if ('{}[]":,'.includes(char)) {
|
|
98
|
+
if (alphaRun > 0) {
|
|
99
|
+
tokens += Math.ceil(alphaRun / 4);
|
|
100
|
+
alphaRun = 0;
|
|
101
|
+
}
|
|
102
|
+
tokens += 1;
|
|
103
|
+
}
|
|
104
|
+
else if (/[a-zA-Z0-9]/.test(char)) {
|
|
105
|
+
alphaRun++;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
if (alphaRun > 0) {
|
|
109
|
+
tokens += Math.ceil(alphaRun / 4);
|
|
110
|
+
alphaRun = 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (alphaRun > 0) {
|
|
115
|
+
tokens += Math.ceil(alphaRun / 4);
|
|
116
|
+
}
|
|
117
|
+
return tokens;
|
|
118
|
+
}
|
|
80
119
|
/**
|
|
81
120
|
* Lazily initialize TPS tracking state on the result object.
|
|
82
121
|
* Returns an accessor object backed by a WeakMap so frozen/sealed
|
|
@@ -108,12 +147,8 @@ function getTpsState(result) {
|
|
|
108
147
|
*/
|
|
109
148
|
export function updateSmoothedTps(result, estimatedTokens) {
|
|
110
149
|
const tracker = getTpsState(result);
|
|
111
|
-
if (estimatedTokens
|
|
112
|
-
|
|
113
|
-
tracker.lastEmitTime = 0;
|
|
114
|
-
tracker.pauseAfterNextEmit = false;
|
|
115
|
-
}
|
|
116
|
-
return;
|
|
150
|
+
if (estimatedTokens > 0) {
|
|
151
|
+
tracker.pendingTokens += estimatedTokens;
|
|
117
152
|
}
|
|
118
153
|
if (tracker.lastEmitTime === 0) {
|
|
119
154
|
// First emit after a gap — seed the value directly
|
|
@@ -121,7 +156,6 @@ export function updateSmoothedTps(result, estimatedTokens) {
|
|
|
121
156
|
tracker.pauseAfterNextEmit = false;
|
|
122
157
|
return;
|
|
123
158
|
}
|
|
124
|
-
tracker.pendingTokens += estimatedTokens;
|
|
125
159
|
const now = Date.now();
|
|
126
160
|
const deltaMs = now - tracker.lastEmitTime;
|
|
127
161
|
if (deltaMs < MIN_TPS_SAMPLE_MS) {
|
|
@@ -130,7 +164,18 @@ export function updateSmoothedTps(result, estimatedTokens) {
|
|
|
130
164
|
if (tracker.pauseAfterNextEmit) {
|
|
131
165
|
tracker.lastEmitTime = 0;
|
|
132
166
|
tracker.pauseAfterNextEmit = false;
|
|
133
|
-
|
|
167
|
+
}
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
// Enough time has passed — compute TPS if we have tokens, otherwise just
|
|
171
|
+
// reset the clock so the next batch is measured cleanly.
|
|
172
|
+
if (tracker.pendingTokens <= 0) {
|
|
173
|
+
if (tracker.pauseAfterNextEmit) {
|
|
174
|
+
tracker.lastEmitTime = 0;
|
|
175
|
+
tracker.pauseAfterNextEmit = false;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
tracker.lastEmitTime = now;
|
|
134
179
|
}
|
|
135
180
|
return;
|
|
136
181
|
}
|
|
@@ -143,7 +188,11 @@ export function updateSmoothedTps(result, estimatedTokens) {
|
|
|
143
188
|
tracker.smoothedTps = instantRate;
|
|
144
189
|
}
|
|
145
190
|
else {
|
|
146
|
-
|
|
191
|
+
// Outlier rejection: dampen burst spikes that would dominate the EMA
|
|
192
|
+
const alpha = (tracker.smoothedTps > 0 && instantRate > 2 * tracker.smoothedTps)
|
|
193
|
+
? EMA_ALPHA * 0.3
|
|
194
|
+
: EMA_ALPHA;
|
|
195
|
+
tracker.smoothedTps = alpha * instantRate + (1 - alpha) * tracker.smoothedTps;
|
|
147
196
|
}
|
|
148
197
|
tracker.lastEmitTime = now;
|
|
149
198
|
tracker.pendingTokens = 0;
|
|
@@ -189,6 +238,15 @@ function updateStreamingEstimate(result, deltaLength) {
|
|
|
189
238
|
const ctxState = getCtxState(result);
|
|
190
239
|
ctxState.streamingChars += deltaLength;
|
|
191
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Drain the accumulated tool call token estimate and return it.
|
|
243
|
+
* Returns 0 when no tool calls have been estimated.
|
|
244
|
+
*/
|
|
245
|
+
export function drainToolCallEstimate(result) {
|
|
246
|
+
const tokens = getToolCallTokenEstimate(result);
|
|
247
|
+
toolCallTokenEstimateMap.set(result, 0);
|
|
248
|
+
return tokens;
|
|
249
|
+
}
|
|
192
250
|
/**
|
|
193
251
|
* Drain the current streaming estimate and return estimated output tokens.
|
|
194
252
|
* Returns 0 when no streaming has occurred.
|
|
@@ -292,16 +350,16 @@ function addFlowAssistantMessage(result, message) {
|
|
|
292
350
|
}
|
|
293
351
|
// Count tool call parts in the message content and estimate their tokens
|
|
294
352
|
if (Array.isArray(message.content)) {
|
|
295
|
-
let
|
|
353
|
+
let toolCallTokens = 0;
|
|
296
354
|
for (const part of message.content) {
|
|
297
355
|
if (part.type === "toolCall") {
|
|
298
356
|
result.usage.toolCalls++;
|
|
299
357
|
const tcText = JSON.stringify({ name: part.name, args: part.arguments || part.input || {} });
|
|
300
|
-
|
|
358
|
+
toolCallTokens += estimateToolCallTokens(tcText);
|
|
301
359
|
}
|
|
302
360
|
}
|
|
303
|
-
if (
|
|
304
|
-
|
|
361
|
+
if (toolCallTokens > 0) {
|
|
362
|
+
addToolCallTokens(result, toolCallTokens);
|
|
305
363
|
const tracker = getTpsState(result);
|
|
306
364
|
tracker.pauseAfterNextEmit = true;
|
|
307
365
|
}
|
|
@@ -353,9 +411,25 @@ function processFlowEvent(event, result) {
|
|
|
353
411
|
if (evt.type === "text_delta") {
|
|
354
412
|
return accumulateStreamingDelta(result, evt.delta ?? "");
|
|
355
413
|
}
|
|
356
|
-
// thinking_delta is
|
|
357
|
-
//
|
|
414
|
+
// thinking_delta is NOT accumulated into the streaming text buffer
|
|
415
|
+
// (reasoning is stripped from flow results), but tokens ARE counted
|
|
416
|
+
// for TPS estimation so the dashboard shows a live rate during
|
|
417
|
+
// extended thinking phases.
|
|
358
418
|
if (evt.type === "thinking_delta") {
|
|
419
|
+
const thinkingDelta = evt.delta ?? "";
|
|
420
|
+
if (thinkingDelta) {
|
|
421
|
+
updateStreamingEstimate(result, thinkingDelta.length);
|
|
422
|
+
}
|
|
423
|
+
return false;
|
|
424
|
+
}
|
|
425
|
+
// toolcall_delta carries streaming tool-call arguments — actual
|
|
426
|
+
// output tokens that should contribute to TPS even though they
|
|
427
|
+
// aren't part of the text buffer.
|
|
428
|
+
if (evt.type === "toolcall_delta") {
|
|
429
|
+
const toolDelta = evt.delta ?? "";
|
|
430
|
+
if (toolDelta) {
|
|
431
|
+
updateStreamingEstimate(result, toolDelta.length);
|
|
432
|
+
}
|
|
359
433
|
return false;
|
|
360
434
|
}
|
|
361
435
|
return false;
|