pi-agent-flow 2.2.1 → 2.2.3

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 (49) hide show
  1. package/README.md +29 -188
  2. package/agents/trace.md +17 -1
  3. package/dist/config/config.d.ts +2 -0
  4. package/dist/config/config.d.ts.map +1 -1
  5. package/dist/config/config.js +4 -0
  6. package/dist/config/config.js.map +1 -1
  7. package/dist/config/settings-resolver.d.ts +1 -0
  8. package/dist/config/settings-resolver.d.ts.map +1 -1
  9. package/dist/config/settings-resolver.js +21 -0
  10. package/dist/config/settings-resolver.js.map +1 -1
  11. package/dist/core2/snapshot.d.ts +13 -1
  12. package/dist/core2/snapshot.d.ts.map +1 -1
  13. package/dist/core2/snapshot.js +330 -10
  14. package/dist/core2/snapshot.js.map +1 -1
  15. package/dist/flow/executor.d.ts +2 -0
  16. package/dist/flow/executor.d.ts.map +1 -1
  17. package/dist/flow/executor.js +1 -0
  18. package/dist/flow/executor.js.map +1 -1
  19. package/dist/flow/runner.d.ts +2 -0
  20. package/dist/flow/runner.d.ts.map +1 -1
  21. package/dist/flow/runner.js +131 -7
  22. package/dist/flow/runner.js.map +1 -1
  23. package/dist/flow/settings-command.d.ts.map +1 -1
  24. package/dist/flow/settings-command.js +41 -2
  25. package/dist/flow/settings-command.js.map +1 -1
  26. package/dist/flow/transition.d.ts +0 -1
  27. package/dist/flow/transition.d.ts.map +1 -1
  28. package/dist/flow/transition.js +0 -3
  29. package/dist/flow/transition.js.map +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +33 -7
  32. package/dist/index.js.map +1 -1
  33. package/dist/snapshot/trace-output.d.ts +15 -0
  34. package/dist/snapshot/trace-output.d.ts.map +1 -0
  35. package/dist/snapshot/trace-output.js +113 -0
  36. package/dist/snapshot/trace-output.js.map +1 -0
  37. package/dist/tools/trace.d.ts.map +1 -1
  38. package/dist/tools/trace.js +66 -13
  39. package/dist/tools/trace.js.map +1 -1
  40. package/dist/tui/render.d.ts +8 -1
  41. package/dist/tui/render.d.ts.map +1 -1
  42. package/dist/tui/render.js +59 -27
  43. package/dist/tui/render.js.map +1 -1
  44. package/dist/types/flow.d.ts +4 -0
  45. package/dist/types/flow.d.ts.map +1 -1
  46. package/dist/types/flow.js.map +1 -1
  47. package/dist/types/output.d.ts +7 -0
  48. package/dist/types/output.d.ts.map +1 -1
  49. package/package.json +1 -1
@@ -8,8 +8,8 @@
8
8
  */
9
9
  import { Type } from "@sinclair/typebox";
10
10
  import { runFlow } from "../flow/runner.js";
11
- import { discoverFlows } from "../flow/agents.js";
12
- import { buildCore2Snapshot } from "../core2/snapshot.js";
11
+ import { discoverFlows, getFlowTier } from "../flow/agents.js";
12
+ import { buildCore2Snapshot, parseSharedContext } from "../core2/snapshot.js";
13
13
  import { resolveFlowModelCandidates, resolveModelContextWindow, selectFlowModelStrategy, } from "../config/config.js";
14
14
  import { renderFlowCall, renderFlowResult } from "../tui/render.js";
15
15
  import { DEFAULT_FLOW_COLORS } from "../tui/flow-colors.js";
@@ -18,6 +18,7 @@ import { getFlowOutput } from "../types/flow.js";
18
18
  import { executeOperations } from "../batch/execute.js";
19
19
  import { runBashWithLimits } from "../batch/batch-bash.js";
20
20
  import { runWebOps } from "./web-ops.js";
21
+ import { extractTraceStructuredOutput, resolveToolEvidence } from "../snapshot/trace-output.js";
21
22
  // ---------------------------------------------------------------------------
22
23
  // Dispatch schemas — mirror of the flow-tool dispatch (kept here to avoid
23
24
  // circular imports with src/index.ts).
@@ -61,42 +62,81 @@ export const DispatchOpSchema = Type.Union([BatchDispatchOp, BashDispatchOp, Web
61
62
  });
62
63
  async function executeDispatchOps(dispatch, cwd, ctx, signal) {
63
64
  const parts = [];
65
+ const messages = [];
64
66
  let toolCallIndex = 0;
65
67
  for (const group of dispatch) {
66
68
  if (signal?.aborted)
67
69
  break;
68
70
  const toolCallId = `pre_dispatch_${group.tool}_${toolCallIndex++}`;
71
+ let resultString = "";
69
72
  try {
70
73
  if (group.tool === "batch") {
71
74
  const fileOps = group.ops.filter((op) => op.o !== "bash");
72
75
  const bashOps = group.ops.filter((op) => op.o === "bash");
76
+ const subParts = [];
73
77
  if (fileOps.length > 0) {
74
78
  const fileOutput = await executeOperations(fileOps, cwd, signal, { includeLimitWarnings: true });
75
- parts.push(`### batch (file ops)\n\ntool_call_id: ${toolCallId}\n\n${fileOutput.contentText}`);
79
+ subParts.push(fileOutput.contentText);
76
80
  }
77
81
  if (bashOps.length > 0) {
78
82
  for (const op of bashOps) {
79
83
  const { stdout, stderr, exitCode } = await runBashWithLimits(op.c ?? "", op.h ?? cwd, op.t ?? 30000, signal);
80
- parts.push(`### batch (bash op)\n\ntool_call_id: ${toolCallId}\n\nstdout:\n${stdout}${stderr ? `\nstderr:\n${stderr}` : ""}${exitCode !== 0 ? `\nexitCode: ${exitCode}` : ""}`);
84
+ subParts.push(`stdout:\n${stdout}${stderr ? `\nstderr:\n${stderr}` : ""}${exitCode !== 0 ? `\nexitCode: ${exitCode}` : ""}`);
81
85
  }
82
86
  }
87
+ resultString = subParts.join("\n\n");
88
+ parts.push(`### batch (file ops)\n\ntool_call_id: ${toolCallId}\n\n${resultString}`);
83
89
  }
84
90
  else if (group.tool === "bash") {
91
+ const subParts = [];
85
92
  for (const cmd of group.ops) {
86
93
  const { stdout, stderr, exitCode } = await runBashWithLimits(cmd.c, cmd.h ?? cwd, cmd.t ?? 30000, signal);
87
- parts.push(`### bash\n\ntool_call_id: ${toolCallId}\n\nstdout:\n${stdout}${stderr ? `\nstderr:\n${stderr}` : ""}${exitCode !== 0 ? `\nexitCode: ${exitCode}` : ""}`);
94
+ subParts.push(`stdout:\n${stdout}${stderr ? `\nstderr:\n${stderr}` : ""}${exitCode !== 0 ? `\nexitCode: ${exitCode}` : ""}`);
88
95
  }
96
+ resultString = subParts.join("\n\n");
97
+ parts.push(`### bash\n\ntool_call_id: ${toolCallId}\n\n${resultString}`);
89
98
  }
90
99
  else if (group.tool === "web") {
91
100
  const webOutput = await runWebOps({ op: group.ops }, ctx, signal);
92
- parts.push(`### web\n\ntool_call_id: ${toolCallId}\n\n${webOutput.content[0].text}`);
101
+ resultString = webOutput.content[0].text;
102
+ parts.push(`### web\n\ntool_call_id: ${toolCallId}\n\n${resultString}`);
93
103
  }
94
104
  }
95
105
  catch (err) {
96
- parts.push(`### ${group.tool}\n\ntool_call_id: ${toolCallId}\n\nError: ${err instanceof Error ? err.message : String(err)}`);
106
+ resultString = `Error: ${err instanceof Error ? err.message : String(err)}`;
107
+ parts.push(`### ${group.tool}\n\ntool_call_id: ${toolCallId}\n\n${resultString}`);
97
108
  }
109
+ // Add mock messages
110
+ messages.push({
111
+ role: "assistant",
112
+ content: [
113
+ {
114
+ type: "toolCall",
115
+ toolCallId,
116
+ name: group.tool,
117
+ arguments: group.tool === "batch"
118
+ ? { o: group.ops }
119
+ : group.tool === "bash"
120
+ ? { ops: group.ops }
121
+ : { op: group.ops },
122
+ }
123
+ ]
124
+ });
125
+ messages.push({
126
+ role: "tool",
127
+ toolCallId,
128
+ content: [
129
+ {
130
+ type: "text",
131
+ text: resultString,
132
+ }
133
+ ]
134
+ });
98
135
  }
99
- return parts.join("\n\n");
136
+ return {
137
+ promptString: parts.join("\n\n"),
138
+ messages,
139
+ };
100
140
  }
101
141
  // ---------------------------------------------------------------------------
102
142
  // Override tool params — zero required fields
@@ -152,16 +192,23 @@ export function createTraceTool(opts = {}) {
152
192
  if (!traceFlow) {
153
193
  throw new Error("Trace agent not found. Expected agents/trace.md to be present.");
154
194
  }
195
+ const preDispatch = params.dispatch?.length
196
+ ? await executeDispatchOps(params.dispatch, params.cwd ?? ctx.cwd, ctx, signal)
197
+ : undefined;
198
+ const preDispatchResults = preDispatch?.promptString;
199
+ const preDispatchMessages = preDispatch?.messages ?? [];
200
+ const forkSessionSnapshotJsonl = buildCore2Snapshot(ctx.sessionManager, {
201
+ activeToolCallId: toolCallId,
202
+ tier: traceFlow.tier ?? getFlowTier("trace"),
203
+ });
204
+ const sharedContext = parseSharedContext(forkSessionSnapshotJsonl);
155
205
  const makeDetails = (results) => ({
156
206
  mode: "flow",
157
207
  flowStyle: "fork",
158
208
  projectAgentsDir: discovery.projectFlowsDir,
159
209
  results,
210
+ sharedContext,
160
211
  });
161
- const preDispatchResults = params.dispatch?.length
162
- ? await executeDispatchOps(params.dispatch, params.cwd ?? ctx.cwd, ctx, signal)
163
- : undefined;
164
- const forkSessionSnapshotJsonl = buildCore2Snapshot(ctx.sessionManager);
165
212
  // Resolve model and context window (mirrors executeSingleFlow in executor.ts)
166
213
  const tier = traceFlow.tier ?? "lite";
167
214
  let selectedStrategy;
@@ -213,7 +260,13 @@ export function createTraceTool(opts = {}) {
213
260
  }
214
261
  : undefined,
215
262
  });
216
- const outputText = getFlowOutput(result.messages) || "Trace completed.";
263
+ const rawOutput = getFlowOutput(result.messages) || "Trace completed.";
264
+ const traceOutput = extractTraceStructuredOutput(rawOutput) ?? { note: rawOutput, tool_ids: [] };
265
+ let outputText = traceOutput.note;
266
+ const evidence = resolveToolEvidence(traceOutput.tool_ids, [...preDispatchMessages, ...result.messages], ctx.sessionManager.getBranch());
267
+ if (evidence) {
268
+ outputText += "\n\n" + evidence;
269
+ }
217
270
  const success = result.exitCode === 0;
218
271
  return {
219
272
  content: [{ type: "text", text: outputText }],
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/tools/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/tools/trace.ts"],"names":[],"mappings":"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"}
@@ -49,5 +49,12 @@ export declare function renderFlowResult(result: {
49
49
  }>;
50
50
  details?: unknown;
51
51
  }, expanded: boolean, theme: FlowTheme, args?: Record<string, any>, config?: FlowColorConfig): Container | Text;
52
- export declare function renderSingleFlowResult(r: SingleResult, expanded: boolean, theme: FlowTheme, streamingText?: string, toolCallId?: string, config?: FlowColorConfig): Container | Text;
52
+ export declare function renderSingleFlowResult(r: SingleResult, expanded: boolean, theme: FlowTheme, streamingText?: string, toolCallId?: string, config?: FlowColorConfig, sharedContext?: {
53
+ messageCount: number;
54
+ userMessageCount: number;
55
+ assistantMessageCount: number;
56
+ toolCalls: Record<string, number>;
57
+ totalTokens: number;
58
+ preview: string;
59
+ }): Container | Text;
53
60
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/tui/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,SAAS,EAAoB,IAAI,EAAiB,MAAM,wBAAwB,CAAC;AAE1F,OAAO,KAAK,EACX,YAAY,EAEZ,MAAM,kBAAkB,CAAC;AA2B1B,yEAAyE;AACzE,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AA2BD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,SAAS,EAGf,MAAM,kBAAkB,CAAC;AAyG1B,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,kEAAkE;IAClE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,oBAAoB,CA8D1E;AAsID,sFAAsF;AACtF,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAapF;AAOD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAsBtH;AAMD,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9E,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,eAAe,GACtB,SAAS,GAAG,IAAI,CA2GlB;AAMD,wBAAgB,sBAAsB,CACrC,CAAC,EAAE,YAAY,EACf,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,SAAS,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,eAAe,GACtB,SAAS,GAAG,IAAI,CAalB"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/tui/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,SAAS,EAAoB,IAAI,EAAiB,MAAM,wBAAwB,CAAC;AAE1F,OAAO,KAAK,EACX,YAAY,EAEZ,MAAM,kBAAkB,CAAC;AA2B1B,yEAAyE;AACzE,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AA2BD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,SAAS,EAGf,MAAM,kBAAkB,CAAC;AAyG1B,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,kEAAkE;IAClE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,oBAAoB,CA8D1E;AAsID,sFAAsF;AACtF,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAapF;AAOD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAsBtH;AAMD,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9E,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,eAAe,GACtB,SAAS,GAAG,IAAI,CA4GlB;AAMD,wBAAgB,sBAAsB,CACrC,CAAC,EAAE,YAAY,EACf,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,SAAS,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,eAAe,EACxB,aAAa,CAAC,EAAE;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CAChB,GACC,SAAS,GAAG,IAAI,CAalB"}
@@ -373,6 +373,7 @@ export function renderFlowCall(args, theme, config) {
373
373
  export function renderFlowResult(result, expanded, theme, args, config) {
374
374
  const details = result.details;
375
375
  const streamingText = result.content?.[0]?.type === "text" ? result.content[0].text : undefined;
376
+ const sharedContext = details?.sharedContext;
376
377
  // Resolve a stable id for this flow widget. Once an id is stored in
377
378
  // state we keep reusing it to prevent mid-render id switches that would
378
379
  // reset scramble animation state. On first render we prefer result._toolCallId,
@@ -415,7 +416,7 @@ export function renderFlowResult(result, expanded, theme, args, config) {
415
416
  const ghostId = resolvedToolCallId || 'ghost';
416
417
  if (expanded) {
417
418
  const now = Date.now();
418
- container = renderFlowExpanded(ghostResult, flowStatusIcon(ghostResult, theme), false, getFlowDisplayItems([]), getFlowOutput([]), theme, ghostId, now, false, streamingText || "", config);
419
+ container = renderFlowExpanded(ghostResult, flowStatusIcon(ghostResult, theme), false, getFlowDisplayItems([]), getFlowOutput([]), theme, ghostId, now, false, streamingText || "", config, undefined);
419
420
  }
420
421
  else {
421
422
  container = renderFlowCollapsed(ghostResult, flowStatusIcon(ghostResult, theme), false, streamingText || "", theme, undefined, ghostId, config);
@@ -426,10 +427,10 @@ export function renderFlowResult(result, expanded, theme, args, config) {
426
427
  }
427
428
  }
428
429
  else if (details.results.length === 1) {
429
- container = renderSingleFlowResult(details.results[0], expanded, theme, streamingText, resolvedToolCallId, config);
430
+ container = renderSingleFlowResult(details.results[0], expanded, theme, streamingText, resolvedToolCallId, config, sharedContext);
430
431
  }
431
432
  else {
432
- container = renderMultiFlowResult(details, expanded, theme, resolvedToolCallId, config);
433
+ container = renderMultiFlowResult(details, expanded, theme, resolvedToolCallId, config, sharedContext);
433
434
  }
434
435
  // In-place mutation pattern: reuse the stored root container
435
436
  // so the TUI host's cached reference stays valid.
@@ -485,7 +486,7 @@ export function renderFlowResult(result, expanded, theme, args, config) {
485
486
  // ---------------------------------------------------------------------------
486
487
  // Single flow result
487
488
  // ---------------------------------------------------------------------------
488
- export function renderSingleFlowResult(r, expanded, theme, streamingText, toolCallId, config) {
489
+ export function renderSingleFlowResult(r, expanded, theme, streamingText, toolCallId, config, sharedContext) {
489
490
  const id = toolCallId || "single";
490
491
  const error = isFlowError(r);
491
492
  const icon = flowStatusIcon(r, theme);
@@ -494,14 +495,29 @@ export function renderSingleFlowResult(r, expanded, theme, streamingText, toolCa
494
495
  const now = Date.now();
495
496
  const isComplete = isFlowStatusComplete(r);
496
497
  if (expanded) {
497
- return renderFlowExpanded(r, icon, error, displayItems, flowOutput, theme, id, now, isComplete, streamingText, config);
498
+ return renderFlowExpanded(r, icon, error, displayItems, flowOutput, theme, id, now, isComplete, streamingText, config, sharedContext);
498
499
  }
499
- return renderFlowCollapsed(r, icon, error, flowOutput, theme, streamingText, id, config);
500
+ return renderFlowCollapsed(r, icon, error, flowOutput, theme, streamingText, id, config, sharedContext);
500
501
  }
501
- function renderFlowExpanded(r, icon, error, displayItems, flowOutput, theme, id, now, isComplete, streamingText, config) {
502
+ function renderFlowExpanded(r, icon, error, displayItems, flowOutput, theme, id, now, isComplete, streamingText, config, sharedContext) {
502
503
  const mdTheme = getMarkdownTheme();
503
504
  const container = new Container();
504
505
  const typeName = formatFlowTypeName(r.type);
506
+ if (sharedContext) {
507
+ container.addChild(new Text(applyRole("prefixLabel", "── shared context ──", theme, config), 0, 0));
508
+ container.addChild(new Text(applyRole("aimContent", sharedContext.preview, theme, config), 0, 0));
509
+ const statsParts = [];
510
+ statsParts.push(`${sharedContext.userMessageCount} user`);
511
+ statsParts.push(`${sharedContext.assistantMessageCount} assistant`);
512
+ statsParts.push(`${sharedContext.totalTokens} tokens`);
513
+ for (const [name, count] of Object.entries(sharedContext.toolCalls)) {
514
+ statsParts.push(`${count}× ${name}`);
515
+ }
516
+ container.addChild(new Text(applyRole("stats", statsParts.join(" · "), theme, config), 0, 0));
517
+ container.addChild(new Spacer(1));
518
+ container.addChild(new Text(applyRole("prefixLabel", sectionHeader(typeName), theme, config), 0, 0));
519
+ container.addChild(new Spacer(1));
520
+ }
505
521
  const initialDot = flowStatusIcon(r, theme);
506
522
  let header = `${initialDot} ${applyRole("flowName", typeName, theme, config)}`;
507
523
  const errorSegment = error && r.stopReason ? ` [${r.stopReason}]` : "";
@@ -525,7 +541,8 @@ function renderFlowExpanded(r, icon, error, displayItems, flowOutput, theme, id,
525
541
  container.addChild(new Text(scrambleManager.renderStatic(theme.fg("error", `Error: ${r.errorMessage}`)), 0, 0));
526
542
  }
527
543
  // Stats: dashboard format
528
- const inlineStats = formatCompactStats(r.usage, r.model);
544
+ const displayUsage = sharedContext ? { ...r.usage, input: sharedContext.totalTokens } : r.usage;
545
+ const inlineStats = formatCompactStats(displayUsage, r.model);
529
546
  container.addChild(new DynamicScrambleText(applyRole("stats", inlineStats, theme, config), () => {
530
547
  const result = scrambleManager.updateText(id, 'stats', stripAnsi(inlineStats), Date.now(), isComplete);
531
548
  return result.isAnimating ? applyRole("stats", result.content, theme, config) : applyRole("stats", inlineStats, theme, config);
@@ -660,7 +677,7 @@ function renderFlowExpanded(r, icon, error, displayItems, flowOutput, theme, id,
660
677
  }
661
678
  return container;
662
679
  }
663
- function renderFlowCollapsed(r, icon, error, flowOutput, theme, streamingText, toolCallId, config) {
680
+ function renderFlowCollapsed(r, icon, error, flowOutput, theme, streamingText, toolCallId, config, sharedContext) {
664
681
  const id = toolCallId || "collapsed";
665
682
  const now = Date.now();
666
683
  const container = new Container();
@@ -671,8 +688,9 @@ function renderFlowCollapsed(r, icon, error, flowOutput, theme, streamingText, t
671
688
  const isComplete = isFlowStatusComplete(r);
672
689
  // Build header stats: ctxLabel · t/s
673
690
  const statsParts = [];
674
- if (r.maxContextTokens !== undefined || r.usage.contextTokens > 0) {
675
- const ctxLabel = formatContextLabel(r.usage.contextTokens, r.maxContextTokens);
691
+ const ctxTokens = sharedContext?.totalTokens ?? r.usage.contextTokens;
692
+ if (r.maxContextTokens !== undefined || ctxTokens > 0) {
693
+ const ctxLabel = formatContextLabel(ctxTokens, r.maxContextTokens);
676
694
  statsParts.push(ctxLabel);
677
695
  }
678
696
  let displayStats = statsParts.join(" · ");
@@ -820,7 +838,7 @@ function renderFlowCollapsed(r, icon, error, flowOutput, theme, streamingText, t
820
838
  // ---------------------------------------------------------------------------
821
839
  // Multi-flow result
822
840
  // ---------------------------------------------------------------------------
823
- function renderMultiFlowResult(details, expanded, theme, toolCallId, config) {
841
+ function renderMultiFlowResult(details, expanded, theme, toolCallId, config, sharedContext) {
824
842
  const baseId = toolCallId || "multi";
825
843
  const results = details.results;
826
844
  const successCount = results.filter((r) => isFlowSuccess(r)).length;
@@ -828,13 +846,26 @@ function renderMultiFlowResult(details, expanded, theme, toolCallId, config) {
828
846
  const icon = failCount > 0 ? theme.fg("warning", "(!)") : theme.fg("success", "(ok)");
829
847
  const now = Date.now();
830
848
  if (expanded) {
831
- return renderMultiFlowExpanded(results, successCount, icon, theme, baseId, now, config);
849
+ return renderMultiFlowExpanded(results, successCount, icon, theme, baseId, now, config, sharedContext);
832
850
  }
833
- return renderMultiFlowCollapsed(results, theme, baseId, config);
851
+ return renderMultiFlowCollapsed(results, theme, baseId, config, sharedContext);
834
852
  }
835
- function renderMultiFlowExpanded(results, successCount, icon, theme, baseId, now, config) {
853
+ function renderMultiFlowExpanded(results, successCount, icon, theme, baseId, now, config, sharedContext) {
836
854
  const mdTheme = getMarkdownTheme();
837
855
  const container = new Container();
856
+ if (sharedContext) {
857
+ container.addChild(new Text(applyRole("prefixLabel", "── shared context ──", theme, config), 0, 0));
858
+ container.addChild(new Text(applyRole("aimContent", sharedContext.preview, theme, config), 0, 0));
859
+ const statsParts = [];
860
+ statsParts.push(`${sharedContext.userMessageCount} user`);
861
+ statsParts.push(`${sharedContext.assistantMessageCount} assistant`);
862
+ statsParts.push(`${sharedContext.totalTokens} tokens`);
863
+ for (const [name, count] of Object.entries(sharedContext.toolCalls)) {
864
+ statsParts.push(`${count}× ${name}`);
865
+ }
866
+ container.addChild(new Text(applyRole("stats", statsParts.join(" · "), theme, config), 0, 0));
867
+ container.addChild(new Spacer(1));
868
+ }
838
869
  // Summary: just show count, no icon
839
870
  container.addChild(new Text(applyRole("flowName", `${results.length} flows`, theme, config), 0, 0));
840
871
  for (let flowIdx = 0; flowIdx < results.length; flowIdx++) {
@@ -932,7 +963,7 @@ function renderMultiFlowExpanded(results, successCount, icon, theme, baseId, now
932
963
  container.addChild(new Text(applyRole("stats", totalStats, theme, config), 0, 0));
933
964
  return container;
934
965
  }
935
- function renderActivityPanel(results, theme, baseId, config) {
966
+ function renderActivityPanel(results, theme, baseId, config, sharedContext) {
936
967
  const idPrefix = baseId || "panel";
937
968
  const container = new Container();
938
969
  const now = Date.now();
@@ -962,10 +993,10 @@ function renderActivityPanel(results, theme, baseId, config) {
962
993
  const item = orderedItems[itemIdx];
963
994
  const isLastRoot = itemIdx === orderedItems.length - 1;
964
995
  if (item.kind === "flow") {
965
- renderStandaloneFlow(container, results[item.index], item.index, idPrefix, theme, now, config, isLastRoot);
996
+ renderStandaloneFlow(container, results[item.index], item.index, idPrefix, theme, now, config, isLastRoot, sharedContext);
966
997
  }
967
998
  else {
968
- renderGroup(container, groups[item.groupIndex], results, idPrefix, theme, now, config, isLastRoot);
999
+ renderGroup(container, groups[item.groupIndex], results, idPrefix, theme, now, config, isLastRoot, sharedContext);
969
1000
  }
970
1001
  // No blank line separator between root items — compact tree
971
1002
  }
@@ -974,11 +1005,11 @@ function renderActivityPanel(results, theme, baseId, config) {
974
1005
  // ---------------------------------------------------------------------------
975
1006
  // Standalone flow (rendered at depth 0)
976
1007
  // ---------------------------------------------------------------------------
977
- function renderStandaloneFlow(container, r, index, idPrefix, theme, now, config, isLastRoot = false) {
1008
+ function renderStandaloneFlow(container, r, index, idPrefix, theme, now, config, isLastRoot = false, sharedContext) {
978
1009
  const flowId = `${idPrefix}#${index}`;
979
1010
  const headerPrefix = isLastRoot ? "└─" : "├─";
980
1011
  const childPrefix = isLastRoot ? " " : "│ ";
981
- renderFlowHeader(container, r, flowId, headerPrefix, theme, now, config);
1012
+ renderFlowHeader(container, r, flowId, headerPrefix, theme, now, config, sharedContext);
982
1013
  renderFlowBody(container, r, flowId, childPrefix, theme, now, config);
983
1014
  if (isFlowStatusComplete(r)) {
984
1015
  scrambleManager.completeFlow(flowId);
@@ -987,7 +1018,7 @@ function renderStandaloneFlow(container, r, index, idPrefix, theme, now, config,
987
1018
  // ---------------------------------------------------------------------------
988
1019
  // Group rendering (rendered at depth 1)
989
1020
  // ---------------------------------------------------------------------------
990
- function renderGroup(container, group, results, idPrefix, theme, now, config, isLastRoot = false) {
1021
+ function renderGroup(container, group, results, idPrefix, theme, now, config, isLastRoot = false, sharedContext) {
991
1022
  // ─── Group header line ───
992
1023
  const headerPrefix = isLastRoot ? "" : "├─";
993
1024
  const headerText = `${headerPrefix}${headerPrefix ? ' ' : ''}audit-loop`;
@@ -1001,7 +1032,7 @@ function renderGroup(container, group, results, idPrefix, theme, now, config, is
1001
1032
  // Audit always follows the last build, so every build uses ├─; only audit gets └─
1002
1033
  const buildHeaderPrefix = isLastRoot ? "├─" : "│ ├─";
1003
1034
  const buildChildPrefix = isLastRoot ? "│ " : "│ │ "; // All builds: audit follows, tree line continues
1004
- renderFlowHeader(container, r, flowId, buildHeaderPrefix, theme, now, config);
1035
+ renderFlowHeader(container, r, flowId, buildHeaderPrefix, theme, now, config, sharedContext);
1005
1036
  renderFlowBody(container, r, flowId, buildChildPrefix, theme, now, config);
1006
1037
  if (isFlowStatusComplete(r)) {
1007
1038
  scrambleManager.completeFlow(flowId);
@@ -1014,7 +1045,7 @@ function renderGroup(container, group, results, idPrefix, theme, now, config, is
1014
1045
  const auditFlowId = `${idPrefix}#${auditIdx}`;
1015
1046
  const auditHeaderPrefix = isLastRoot ? "└─" : "│ └─";
1016
1047
  const auditChildPrefix = isLastRoot ? " " : "│ ";
1017
- renderFlowHeader(container, auditResult, auditFlowId, auditHeaderPrefix, theme, now, config);
1048
+ renderFlowHeader(container, auditResult, auditFlowId, auditHeaderPrefix, theme, now, config, sharedContext);
1018
1049
  renderFlowBody(container, auditResult, auditFlowId, auditChildPrefix, theme, now, config);
1019
1050
  if (isFlowStatusComplete(auditResult)) {
1020
1051
  scrambleManager.completeFlow(auditFlowId);
@@ -1024,7 +1055,7 @@ function renderGroup(container, group, results, idPrefix, theme, now, config, is
1024
1055
  // ---------------------------------------------------------------------------
1025
1056
  // Shared flow rendering helpers
1026
1057
  // ---------------------------------------------------------------------------
1027
- function renderFlowHeader(container, r, flowId, headerPrefix, theme, now, config) {
1058
+ function renderFlowHeader(container, r, flowId, headerPrefix, theme, now, config, sharedContext) {
1028
1059
  const typeName = formatCollapsedFlowHeaderTypeName(r.type);
1029
1060
  const modelLabel = formatModelLabel(r.model);
1030
1061
  const isComplete = isFlowStatusComplete(r);
@@ -1044,7 +1075,8 @@ function renderFlowHeader(container, r, flowId, headerPrefix, theme, now, config
1044
1075
  // Standard flow: model + stats
1045
1076
  const statsParts = [];
1046
1077
  if (r.maxContextTokens !== undefined || r.usage.contextTokens > 0) {
1047
- const ctxLabel = formatContextLabel(r.usage.contextTokens, r.maxContextTokens);
1078
+ const ctxTokens = sharedContext?.totalTokens ?? r.usage.contextTokens;
1079
+ const ctxLabel = formatContextLabel(ctxTokens, r.maxContextTokens);
1048
1080
  statsParts.push(ctxLabel);
1049
1081
  }
1050
1082
  let displayStats = statsParts.join(" · ");
@@ -1198,7 +1230,7 @@ function renderFlowBody(container, r, flowId, indent, theme, now, config) {
1198
1230
  }, true));
1199
1231
  }
1200
1232
  }
1201
- function renderMultiFlowCollapsed(results, theme, baseId, config) {
1202
- return renderActivityPanel(results, theme, baseId, config);
1233
+ function renderMultiFlowCollapsed(results, theme, baseId, config, sharedContext) {
1234
+ return renderActivityPanel(results, theme, baseId, config, sharedContext);
1203
1235
  }
1204
1236
  //# sourceMappingURL=render.js.map