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.
Files changed (135) hide show
  1. package/README.md +126 -489
  2. package/agents/audit.md +4 -2
  3. package/agents/build.md +3 -2
  4. package/agents/craft.md +3 -3
  5. package/agents/debug.md +4 -3
  6. package/agents/ideas.md +5 -4
  7. package/agents/scout.md +3 -1
  8. package/dist/batch/apply-patch.d.ts +60 -0
  9. package/dist/batch/apply-patch.d.ts.map +1 -0
  10. package/dist/batch/apply-patch.js +477 -0
  11. package/dist/batch/apply-patch.js.map +1 -0
  12. package/dist/batch/batch-bash.d.ts +0 -6
  13. package/dist/batch/batch-bash.d.ts.map +1 -1
  14. package/dist/batch/batch-bash.js +25 -10
  15. package/dist/batch/batch-bash.js.map +1 -1
  16. package/dist/batch/constants.d.ts +33 -4
  17. package/dist/batch/constants.d.ts.map +1 -1
  18. package/dist/batch/constants.js +26 -4
  19. package/dist/batch/constants.js.map +1 -1
  20. package/dist/batch/execute.d.ts +8 -2
  21. package/dist/batch/execute.d.ts.map +1 -1
  22. package/dist/batch/execute.js +221 -66
  23. package/dist/batch/execute.js.map +1 -1
  24. package/dist/batch/fuzzy-edit.d.ts +4 -1
  25. package/dist/batch/fuzzy-edit.d.ts.map +1 -1
  26. package/dist/batch/fuzzy-edit.js +7 -2
  27. package/dist/batch/fuzzy-edit.js.map +1 -1
  28. package/dist/batch/index.d.ts +3 -15
  29. package/dist/batch/index.d.ts.map +1 -1
  30. package/dist/batch/index.js +48 -78
  31. package/dist/batch/index.js.map +1 -1
  32. package/dist/batch/render.d.ts.map +1 -1
  33. package/dist/batch/render.js +30 -7
  34. package/dist/batch/render.js.map +1 -1
  35. package/dist/batch/summary.d.ts.map +1 -1
  36. package/dist/batch/summary.js +4 -0
  37. package/dist/batch/summary.js.map +1 -1
  38. package/dist/core/depth.d.ts +3 -3
  39. package/dist/core/depth.d.ts.map +1 -1
  40. package/dist/core/depth.js +5 -5
  41. package/dist/core/depth.js.map +1 -1
  42. package/dist/core/executor.d.ts +3 -3
  43. package/dist/core/executor.d.ts.map +1 -1
  44. package/dist/core/executor.js +2 -2
  45. package/dist/core/executor.js.map +1 -1
  46. package/dist/core/flow.d.ts +10 -3
  47. package/dist/core/flow.d.ts.map +1 -1
  48. package/dist/core/flow.js +76 -33
  49. package/dist/core/flow.js.map +1 -1
  50. package/dist/core/{delegation.d.ts → transition.d.ts} +8 -8
  51. package/dist/core/{delegation.d.ts.map → transition.d.ts.map} +1 -1
  52. package/dist/core/{delegation.js → transition.js} +12 -12
  53. package/dist/core/{delegation.js.map → transition.js.map} +1 -1
  54. package/dist/flow/auto-warp.d.ts +1 -1
  55. package/dist/flow/auto-warp.js +1 -1
  56. package/dist/flow/continuation.js +2 -2
  57. package/dist/flow/continuation.js.map +1 -1
  58. package/dist/flow/index.d.ts +2 -2
  59. package/dist/flow/index.d.ts.map +1 -1
  60. package/dist/flow/index.js +3 -3
  61. package/dist/flow/index.js.map +1 -1
  62. package/dist/flow/loop-command.d.ts.map +1 -1
  63. package/dist/flow/loop-command.js +3 -0
  64. package/dist/flow/loop-command.js.map +1 -1
  65. package/dist/flow/settings-command.d.ts.map +1 -1
  66. package/dist/flow/settings-command.js +4 -1
  67. package/dist/flow/settings-command.js.map +1 -1
  68. package/dist/flow/warp.d.ts +15 -0
  69. package/dist/flow/warp.d.ts.map +1 -0
  70. package/dist/flow/warp.js +207 -0
  71. package/dist/flow/warp.js.map +1 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +168 -21
  74. package/dist/index.js.map +1 -1
  75. package/dist/snapshot/runner-events.d.ts +5 -0
  76. package/dist/snapshot/runner-events.d.ts.map +1 -1
  77. package/dist/snapshot/runner-events.js +89 -15
  78. package/dist/snapshot/runner-events.js.map +1 -1
  79. package/dist/snapshot/snapshot.d.ts.map +1 -1
  80. package/dist/snapshot/snapshot.js +51 -18
  81. package/dist/snapshot/snapshot.js.map +1 -1
  82. package/dist/steering/flow-prompt.d.ts +2 -2
  83. package/dist/steering/flow-prompt.d.ts.map +1 -1
  84. package/dist/steering/flow-prompt.js +4 -4
  85. package/dist/steering/flow-prompt.js.map +1 -1
  86. package/dist/steering/sliding-prompt.js +6 -6
  87. package/dist/steering/sliding-prompt.js.map +1 -1
  88. package/dist/steering/tool-utils.d.ts +31 -8
  89. package/dist/steering/tool-utils.d.ts.map +1 -1
  90. package/dist/steering/tool-utils.js +63 -30
  91. package/dist/steering/tool-utils.js.map +1 -1
  92. package/dist/tools/ask-user.d.ts +0 -17
  93. package/dist/tools/ask-user.d.ts.map +1 -1
  94. package/dist/tools/ask-user.js +13 -37
  95. package/dist/tools/ask-user.js.map +1 -1
  96. package/dist/tools/timed-bash.d.ts +1 -1
  97. package/dist/tools/timed-bash.d.ts.map +1 -1
  98. package/dist/tools/timed-bash.js +10 -8
  99. package/dist/tools/timed-bash.js.map +1 -1
  100. package/dist/tools/web-tool.d.ts.map +1 -1
  101. package/dist/tools/web-tool.js +11 -13
  102. package/dist/tools/web-tool.js.map +1 -1
  103. package/dist/tui/render-utils.d.ts.map +1 -1
  104. package/dist/tui/render-utils.js +2 -4
  105. package/dist/tui/render-utils.js.map +1 -1
  106. package/dist/tui/render.d.ts +9 -0
  107. package/dist/tui/render.d.ts.map +1 -1
  108. package/dist/tui/render.js +78 -39
  109. package/dist/tui/render.js.map +1 -1
  110. package/dist/tui/scramble/index.d.ts +1 -1
  111. package/dist/tui/scramble/index.d.ts.map +1 -1
  112. package/dist/tui/scramble/index.js +1 -1
  113. package/dist/tui/scramble/index.js.map +1 -1
  114. package/dist/tui/scramble/manager.d.ts +1 -1
  115. package/dist/tui/scramble/manager.d.ts.map +1 -1
  116. package/dist/tui/scramble/manager.js +14 -2
  117. package/dist/tui/scramble/manager.js.map +1 -1
  118. package/dist/tui/scramble/utils.js +1 -1
  119. package/dist/tui/scramble/utils.js.map +1 -1
  120. package/dist/types/flow.d.ts.map +1 -1
  121. package/dist/types/flow.js +11 -2
  122. package/dist/types/flow.js.map +1 -1
  123. package/package.json +2 -2
  124. package/dist/flow/perform-warp.d.ts +0 -28
  125. package/dist/flow/perform-warp.d.ts.map +0 -1
  126. package/dist/flow/perform-warp.js +0 -127
  127. package/dist/flow/perform-warp.js.map +0 -1
  128. package/dist/flow/warp-command.d.ts +0 -8
  129. package/dist/flow/warp-command.d.ts.map +0 -1
  130. package/dist/flow/warp-command.js +0 -144
  131. package/dist/flow/warp-command.js.map +0 -1
  132. package/dist/flow/warp-utils.d.ts +0 -11
  133. package/dist/flow/warp-utils.d.ts.map +0 -1
  134. package/dist/flow/warp-utils.js +0 -187
  135. 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 { appendStrategicHintOnce, resetStrategicHintTracker, configureStrategicHint } from "./steering/tool-utils.js";
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 child-agent budget: fast=300s, default=600s, long=900s, extreme_long=1200s.",
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 orchestrator steering hint injection.",
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, canDelegate, ancestorFlowStack, preventCycles } = depthConfig;
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
- configureStrategicHint(resolved.steeringStrategicHint);
283
+ configureDirective(resolved.steeringStrategicHint);
172
284
  scrambleManager.setAnimationConfig({ enabled: resolved.animationEnabled, glitch: resolved.animationGlitch });
173
- // Only restrict tools for the main orchestrator (depth 0).
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 orchestrator): only batch_read — no bash ops, only reads + flow tool.
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
- resetStrategicHintTracker();
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, canDelegate, resolved.discoveredFlows, depthConfig);
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: messagesChanged } = stripSteeringHintsFromMessages(event.messages);
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 (canDelegate) {
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
- return {
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
- isError: result.isError,
531
+ failed: result.failed,
397
532
  _toolCallId: toolCallId,
398
533
  };
399
- appendStrategicHintOnce(flowToolResult);
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 sub-agents.
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 sub-agents don't become orphans.
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":"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"}
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;AAwCnD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOzD;AA0DD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAgD/E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvD;AAsCD;;;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;AAoID,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"}
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 <= 0) {
112
- if (tracker.pauseAfterNextEmit) {
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
- tracker.pendingTokens = 0;
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
- tracker.smoothedTps = EMA_ALPHA * instantRate + (1 - EMA_ALPHA) * tracker.smoothedTps;
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 toolCallChars = 0;
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
- toolCallChars += tcText.length;
358
+ toolCallTokens += estimateToolCallTokens(tcText);
301
359
  }
302
360
  }
303
- if (toolCallChars > 0) {
304
- updateStreamingEstimate(result, toolCallChars);
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 intentionally NOT accumulated into the streaming buffer.
357
- // Reasoning content is stripped from flow results to keep output clean.
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;