@duetso/agent 0.1.201 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +43 -9
  2. package/dist/package.json +1 -1
  3. package/dist/src/cli/help.d.ts +1 -0
  4. package/dist/src/cli/help.d.ts.map +1 -1
  5. package/dist/src/cli/help.js +73 -26
  6. package/dist/src/cli/help.js.map +1 -1
  7. package/dist/src/cli/inline-slash.js +1 -1
  8. package/dist/src/cli/login.d.ts +2 -3
  9. package/dist/src/cli/login.d.ts.map +1 -1
  10. package/dist/src/cli/login.js +17 -32
  11. package/dist/src/cli/login.js.map +1 -1
  12. package/dist/src/cli/memory-add.d.ts +8 -1
  13. package/dist/src/cli/memory-add.d.ts.map +1 -1
  14. package/dist/src/cli/memory-add.js +49 -53
  15. package/dist/src/cli/memory-add.js.map +1 -1
  16. package/dist/src/cli/memory-db.d.ts +23 -0
  17. package/dist/src/cli/memory-db.d.ts.map +1 -1
  18. package/dist/src/cli/memory-db.js +48 -1
  19. package/dist/src/cli/memory-db.js.map +1 -1
  20. package/dist/src/cli/memory-json.d.ts +67 -0
  21. package/dist/src/cli/memory-json.d.ts.map +1 -0
  22. package/dist/src/cli/memory-json.js +28 -0
  23. package/dist/src/cli/memory-json.js.map +1 -0
  24. package/dist/src/cli/memory-query.d.ts +20 -1
  25. package/dist/src/cli/memory-query.d.ts.map +1 -1
  26. package/dist/src/cli/memory-query.js +45 -20
  27. package/dist/src/cli/memory-query.js.map +1 -1
  28. package/dist/src/cli/memory-recall.d.ts +53 -0
  29. package/dist/src/cli/memory-recall.d.ts.map +1 -0
  30. package/dist/src/cli/memory-recall.js +217 -0
  31. package/dist/src/cli/memory-recall.js.map +1 -0
  32. package/dist/src/cli/memory.d.ts +3 -1
  33. package/dist/src/cli/memory.d.ts.map +1 -1
  34. package/dist/src/cli/memory.js +10 -4
  35. package/dist/src/cli/memory.js.map +1 -1
  36. package/dist/src/cli/model-gateway.d.ts +3 -3
  37. package/dist/src/cli/model-gateway.js +3 -3
  38. package/dist/src/cli/rpc.d.ts +19 -5
  39. package/dist/src/cli/rpc.d.ts.map +1 -1
  40. package/dist/src/cli/rpc.js +20 -19
  41. package/dist/src/cli/rpc.js.map +1 -1
  42. package/dist/src/cli/run.d.ts +8 -0
  43. package/dist/src/cli/run.d.ts.map +1 -1
  44. package/dist/src/cli/run.js +7 -20
  45. package/dist/src/cli/run.js.map +1 -1
  46. package/dist/src/cli/send-feedback.d.ts +1 -1
  47. package/dist/src/cli/send-feedback.js +1 -1
  48. package/dist/src/cli/shared.d.ts +16 -3
  49. package/dist/src/cli/shared.d.ts.map +1 -1
  50. package/dist/src/cli/shared.js +19 -4
  51. package/dist/src/cli/shared.js.map +1 -1
  52. package/dist/src/cli/train.d.ts.map +1 -1
  53. package/dist/src/cli/train.js +40 -23
  54. package/dist/src/cli/train.js.map +1 -1
  55. package/dist/src/cli.d.ts +1 -0
  56. package/dist/src/cli.d.ts.map +1 -1
  57. package/dist/src/cli.js +1 -0
  58. package/dist/src/cli.js.map +1 -1
  59. package/dist/src/lib/duet-api-url.d.ts +9 -0
  60. package/dist/src/lib/duet-api-url.d.ts.map +1 -0
  61. package/dist/src/lib/duet-api-url.js +18 -0
  62. package/dist/src/lib/duet-api-url.js.map +1 -0
  63. package/dist/src/lib/feedback.d.ts +1 -1
  64. package/dist/src/lib/feedback.js +4 -4
  65. package/dist/src/lib/feedback.js.map +1 -1
  66. package/dist/src/lib/login.d.ts +24 -21
  67. package/dist/src/lib/login.d.ts.map +1 -1
  68. package/dist/src/lib/login.js +50 -114
  69. package/dist/src/lib/login.js.map +1 -1
  70. package/dist/src/memory/embedding.d.ts +20 -15
  71. package/dist/src/memory/embedding.d.ts.map +1 -1
  72. package/dist/src/memory/embedding.js +26 -20
  73. package/dist/src/memory/embedding.js.map +1 -1
  74. package/dist/src/memory/recall.d.ts +44 -0
  75. package/dist/src/memory/recall.d.ts.map +1 -1
  76. package/dist/src/memory/recall.js +92 -6
  77. package/dist/src/memory/recall.js.map +1 -1
  78. package/dist/src/model-resolution/duet-gateway.d.ts +4 -3
  79. package/dist/src/model-resolution/duet-gateway.d.ts.map +1 -1
  80. package/dist/src/model-resolution/duet-gateway.js +12 -6
  81. package/dist/src/model-resolution/duet-gateway.js.map +1 -1
  82. package/dist/src/tui/app.d.ts +2 -2
  83. package/dist/src/tui/app.d.ts.map +1 -1
  84. package/dist/src/tui/app.js +20 -2
  85. package/dist/src/tui/app.js.map +1 -1
  86. package/dist/src/tui/paste-controller.d.ts +3 -0
  87. package/dist/src/tui/paste-controller.d.ts.map +1 -1
  88. package/dist/src/tui/paste-controller.js +25 -0
  89. package/dist/src/tui/paste-controller.js.map +1 -1
  90. package/dist/src/tui/session-subscription.d.ts +10 -0
  91. package/dist/src/tui/session-subscription.d.ts.map +1 -1
  92. package/dist/src/tui/session-subscription.js +22 -5
  93. package/dist/src/tui/session-subscription.js.map +1 -1
  94. package/dist/src/tui/slash-commands.d.ts +4 -4
  95. package/dist/src/tui/slash-commands.js +4 -4
  96. package/dist/src/tui/step-renderer.d.ts +4 -0
  97. package/dist/src/tui/step-renderer.d.ts.map +1 -1
  98. package/dist/src/tui/step-renderer.js +41 -37
  99. package/dist/src/tui/step-renderer.js.map +1 -1
  100. package/dist/src/tui/tool-formatters.d.ts +2 -2
  101. package/dist/src/tui/tool-formatters.d.ts.map +1 -1
  102. package/dist/src/turn-runner/agent-events.d.ts +12 -1
  103. package/dist/src/turn-runner/agent-events.d.ts.map +1 -1
  104. package/dist/src/turn-runner/agent-events.js +60 -42
  105. package/dist/src/turn-runner/agent-events.js.map +1 -1
  106. package/dist/src/turn-runner/tools.d.ts.map +1 -1
  107. package/dist/src/turn-runner/tools.js +15 -54
  108. package/dist/src/turn-runner/tools.js.map +1 -1
  109. package/dist/src/turn-runner/turn-runner.d.ts +2 -0
  110. package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
  111. package/dist/src/turn-runner/turn-runner.js +4 -2
  112. package/dist/src/turn-runner/turn-runner.js.map +1 -1
  113. package/dist/src/types/memory.d.ts +11 -0
  114. package/dist/src/types/memory.d.ts.map +1 -1
  115. package/dist/src/types/protocol.d.ts +22 -3
  116. package/dist/src/types/protocol.d.ts.map +1 -1
  117. package/package.json +1 -1
  118. package/dist/src/lib/duet-app-url.d.ts +0 -10
  119. package/dist/src/lib/duet-app-url.d.ts.map +0 -1
  120. package/dist/src/lib/duet-app-url.js +0 -19
  121. package/dist/src/lib/duet-app-url.js.map +0 -1
  122. package/dist/src/lib/sync-skills.d.ts +0 -54
  123. package/dist/src/lib/sync-skills.d.ts.map +0 -1
  124. package/dist/src/lib/sync-skills.js +0 -215
  125. package/dist/src/lib/sync-skills.js.map +0 -1
@@ -59,6 +59,21 @@ export class PasteController {
59
59
  this.nextImageId = 1;
60
60
  this.statusController.setPendingImageCount(0);
61
61
  }
62
+ /** Re-stage already-built image attachments from a queued follow-up. */
63
+ stageImages(images) {
64
+ if (images.length === 0)
65
+ return;
66
+ for (const attachment of images) {
67
+ this.pendingImages.push({
68
+ id: this.nextImageId,
69
+ label: `[Image #${this.nextImageId}]`,
70
+ path: "",
71
+ attachment,
72
+ });
73
+ this.nextImageId += 1;
74
+ }
75
+ this.statusController.setPendingImageCount(this.pendingImages.length);
76
+ }
62
77
  /**
63
78
  * Handle a bracketed-paste event from the textarea. Decides synchronously
64
79
  * whether the payload is image bytes, a file path, an empty trigger that
@@ -201,6 +216,9 @@ export class PasteController {
201
216
  if (candidates.length === 0)
202
217
  return;
203
218
  const alreadyAttached = new Set(this.pendingImages.map((p) => p.path));
219
+ // Re-staged follow-up images keep their bytes but not their source path,
220
+ // so path-only dedup misses popped prompts that still mention that path.
221
+ const alreadyAttachedContent = new Set(this.pendingImages.map((p) => imageContentKey(p.attachment)));
204
222
  const seen = new Set();
205
223
  for (const candidate of candidates) {
206
224
  // Normalize each extracted substring through the same shell-escape /
@@ -229,6 +247,10 @@ export class PasteController {
229
247
  rawPath: normalized,
230
248
  id: this.nextImageId,
231
249
  });
250
+ const contentKey = imageContentKey(pending.attachment);
251
+ if (alreadyAttachedContent.has(contentKey))
252
+ continue;
253
+ alreadyAttachedContent.add(contentKey);
232
254
  alreadyAttached.add(pending.path);
233
255
  this.nextImageId += 1;
234
256
  this.pendingImages.push(pending);
@@ -287,6 +309,9 @@ export class PasteController {
287
309
  }
288
310
  }
289
311
  }
312
+ function imageContentKey(attachment) {
313
+ return `${attachment.mimeType}:${attachment.data}`;
314
+ }
290
315
  function formatBytes(n) {
291
316
  if (n < 1024)
292
317
  return `${n} B`;
@@ -1 +1 @@
1
- {"version":3,"file":"paste-controller.js","sourceRoot":"","sources":["../../../src/tui/paste-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paste-controller.js","sourceRoot":"","sources":["../../../src/tui/paste-controller.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  import type { BoxRenderable, TextRenderable } from "@opentui/core";
2
2
  import type { Session } from "../session/session.js";
3
+ import type { TurnFollowUpQueueEntry } from "../types/protocol.js";
3
4
  import type { QuestionPicker } from "./question-picker.js";
4
5
  import type { Sidebar } from "./sidebar.js";
5
6
  import type { StatusController } from "./status-controller.js";
6
7
  import type { StepRenderer } from "./step-renderer.js";
8
+ export interface FollowUpPopSuppression {
9
+ pending: TurnFollowUpQueueEntry[];
10
+ }
7
11
  export interface SessionSubscriptionDeps {
8
12
  session: Session;
9
13
  sidebar: Sidebar;
@@ -22,6 +26,12 @@ export interface SessionSubscriptionDeps {
22
26
  * already running; this callback fires it later when the queue shrinks.
23
27
  */
24
28
  appendUserBlock(message: string): void;
29
+ /**
30
+ * Entries lifted out of the queue by a Ctrl+C pop. When a removed entry
31
+ * matches one of these, it is dropped silently rather than rendered as a
32
+ * delivered `you:` block. Optional so non-TUI callers (tests) can omit it.
33
+ */
34
+ popSuppression?: FollowUpPopSuppression;
25
35
  }
26
36
  /**
27
37
  * Re-paints the sidebar from the session's current state snapshot. Used both
@@ -1 +1 @@
1
- {"version":3,"file":"session-subscription.d.ts","sourceRoot":"","sources":["../../../src/tui/session-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUvD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,aAAa,EAAE,aAAa,CAAC;IAC7B,sEAAsE;IACtE,iBAAiB,EAAE,cAAc,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAmB5F;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,IAAI,CAyEzE"}
1
+ {"version":3,"file":"session-subscription.d.ts","sourceRoot":"","sources":["../../../src/tui/session-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAa,sBAAsB,EAAmB,MAAM,sBAAsB,CAAC;AAC/F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUvD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,aAAa,EAAE,aAAa,CAAC;IAC7B,sEAAsE;IACtE,iBAAiB,EAAE,cAAc,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAmB5F;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,IAAI,CAuEzE"}
@@ -34,7 +34,7 @@ export function refreshSidebarFromSession(deps) {
34
34
  * thin projection of the session state.
35
35
  */
36
36
  export function bindSessionToUi(deps) {
37
- const { session, sidebar, followUpPanel, followUpPanelBody, stepRenderer, statusController, questionPicker, appendLine, appendBlock, appendUserBlock, } = deps;
37
+ const { session, sidebar, followUpPanel, followUpPanelBody, stepRenderer, statusController, questionPicker, appendLine, appendBlock, appendUserBlock, popSuppression, } = deps;
38
38
  const refreshSidebar = () => refreshSidebarFromSession({ session, sidebar });
39
39
  // Seed the queue snapshot from the session's hydrated state so a resumed
40
40
  // session that already has persisted follow-ups does not falsely treat
@@ -47,12 +47,10 @@ export function bindSessionToUi(deps) {
47
47
  stepRenderer.renderStep(event.step);
48
48
  }
49
49
  else if (event.type === "follow_up_queue") {
50
- // Render the new queue snapshot, mirror the count into the status
51
- // line, and replay any entries the runner just delivered (entries
52
- // present in the prior snapshot but absent from the new one) as
53
- // proper `you:` transcript blocks.
54
50
  const next = event.followUpQueue;
55
51
  for (const delivered of diffRemovedEntries(previousQueue, next)) {
52
+ if (consumeSuppressedPop(popSuppression, delivered))
53
+ continue;
56
54
  appendUserBlock(delivered.message);
57
55
  if (delivered.images?.length) {
58
56
  appendBlock(null, `📎 ${delivered.images.length} image attachment${delivered.images.length === 1 ? "" : "s"}`, COLORS.hint);
@@ -122,6 +120,25 @@ function renderFollowUpPanel(entries, panel, body) {
122
120
  body.content = lines.join("\n");
123
121
  panel.visible = true;
124
122
  }
123
+ function consumeSuppressedPop(suppression, removed) {
124
+ if (!suppression)
125
+ return false;
126
+ const index = suppression.pending.findIndex((entry) => sameFollowUpEntry(entry, removed));
127
+ if (index === -1)
128
+ return false;
129
+ suppression.pending.splice(index, 1);
130
+ return true;
131
+ }
132
+ function sameFollowUpEntry(a, b) {
133
+ return a.message === b.message && sameImages(a.images, b.images);
134
+ }
135
+ function sameImages(a, b) {
136
+ const left = a ?? [];
137
+ const right = b ?? [];
138
+ if (left.length !== right.length)
139
+ return false;
140
+ return left.every((image, index) => image.data === right[index]?.data && image.mimeType === right[index]?.mimeType);
141
+ }
125
142
  /**
126
143
  * Returns the entries that were in `prev` but are no longer in `next`,
127
144
  * treating the lists as message-text multisets. Used to detect deliveries
@@ -1 +1 @@
1
- {"version":3,"file":"session-subscription.js","sourceRoot":"","sources":["../../../src/tui/session-subscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-subscription.js","sourceRoot":"","sources":["../../../src/tui/session-subscription.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export interface SlashCommandContext {
14
14
  * Controllers are optional because not every consumer of this
15
15
  * interface wires the full TUI. The non-TUI CLI applies inline
16
16
  * `/model` and `/thinking` against a stripped-down context that
17
- * has no clipboard, transcript, or reset surface — those commands
17
+ * has no clipboard, transcript, or session-management surface — those commands
18
18
  * are filtered out via `applyInlineSlashCommands`'s `onlyCommands`
19
19
  * before they could ever run, so the handlers that depend on these
20
20
  * controllers never see a missing one in practice.
@@ -24,12 +24,12 @@ export interface SlashCommandContext {
24
24
  transcriptWriter?: TranscriptWriter;
25
25
  appendBlock(label: string | null, body: string, fg: string): void;
26
26
  /**
27
- * Invoked by `/reset` to ask the outer dispatcher to dispose the
27
+ * Invoked by `/clear` to ask the outer dispatcher to dispose the
28
28
  * current session and re-enter `runTui` with a fresh one. The TUI
29
29
  * tears its renderer down immediately after so the parent `while`
30
30
  * loop in `cli/run.ts` wakes and performs the swap.
31
31
  */
32
- onReset?(): void;
32
+ onClear?(): void;
33
33
  /**
34
34
  * Invoked by `/model <name>` to swap the model used for subsequent
35
35
  * turns. Returns the canonicalized name the session will use on the
@@ -64,7 +64,7 @@ export interface SlashCommandContext {
64
64
  * takes when it appears anywhere in a longer prompt rather than as the
65
65
  * whole submitted message.
66
66
  *
67
- * - `"none"`: bare invocation only (`/reset`). Matches `/name` with
67
+ * - `"none"`: bare invocation only (`/clear`). Matches `/name` with
68
68
  * whitespace / start / end boundaries on both sides.
69
69
  * - `"token"`: requires one whitespace-bounded argument (`/model X`).
70
70
  * Matches `/name <token>` with whitespace / start before and consumes
@@ -65,12 +65,12 @@ export const BUILT_IN_SLASH_COMMANDS = [
65
65
  },
66
66
  },
67
67
  {
68
- name: "reset",
68
+ name: "clear",
69
69
  description: "Dispose the current session and start a fresh one",
70
- matches: (message) => isBare(message, "reset"),
70
+ matches: (message) => isBare(message, "clear"),
71
71
  handle: (_, ctx) => {
72
- ctx.appendBlock("[reset]", "starting a new session…", COLORS.system);
73
- ctx.onReset?.();
72
+ ctx.appendBlock("[clear]", "starting a new session…", COLORS.system);
73
+ ctx.onClear?.();
74
74
  },
75
75
  inline: "none",
76
76
  },
@@ -38,7 +38,11 @@ export declare class StepRenderer {
38
38
  type: "memory";
39
39
  }>): void;
40
40
  private renderDelta;
41
+ private renderToolCallStart;
41
42
  private renderToolCall;
43
+ /** Mount a new tool block into the transcript, or return undefined when the
44
+ * formatter hides this tool (e.g. ask_user_question owns its own display). */
45
+ private mountToolBlock;
42
46
  private finalizeToolCall;
43
47
  private finalizeDelta;
44
48
  private toolBlockColumns;
@@ -1 +1 @@
1
- {"version":3,"file":"step-renderer.d.ts","sourceRoot":"","sources":["../../../src/tui/step-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAgC,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAIxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAkChF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;6CAEyC;IACzC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAY;IAQX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,qBAAqB,CAA6B;IAI1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;gBAEpC,IAAI,EAAE,mBAAmB;IAEtD,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IA+ChC;;wEAEoE;IACpE,uBAAuB,IAAI,IAAI;IAa/B,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI;IAwBzC,iBAAiB,IAAI,IAAI;IAazB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWpC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,GAAG,IAAI;IAcvE,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,cAAc;IA2CtB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;CAIzB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,GAAG,MAAM,CAS3F"}
1
+ {"version":3,"file":"step-renderer.d.ts","sourceRoot":"","sources":["../../../src/tui/step-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAgC,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AASxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA+BhF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;6CAEyC;IACzC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAY;IAQX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,qBAAqB,CAA6B;IAI1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;gBAEpC,IAAI,EAAE,mBAAmB;IAEtD,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAiDhC;;wEAEoE;IACpE,uBAAuB,IAAI,IAAI;IAa/B,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI;IAwBzC,iBAAiB,IAAI,IAAI;IAazB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWpC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,GAAG,IAAI;IAcvE,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,cAAc;IAyBtB;mFAC+E;IAC/E,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;CAIzB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,GAAG,MAAM,CAS3F"}
@@ -2,7 +2,7 @@ import { TextRenderable } from "@opentui/core";
2
2
  import { formatElapsed, runningMarker } from "./status-controller.js";
3
3
  import { SIDEBAR_WIDTH } from "./sidebar.js";
4
4
  import { COLORS } from "./theme.js";
5
- import { assembleToolBlock, formatToolBlock, truncateReasoningBody } from "./tool-formatters.js";
5
+ import { assembleToolBlock, formatToolBlock, truncateReasoningBody, } from "./tool-formatters.js";
6
6
  /**
7
7
  * Renders the streaming surface of a turn: text deltas, reasoning deltas,
8
8
  * tool-call blocks (live spinner → ✓/✗), memory phase banners, and the
@@ -16,8 +16,8 @@ export class StepRenderer {
16
16
  opts;
17
17
  activeTextStream;
18
18
  activeReasoningStream;
19
- // Tool calls fire twice (runningcompleted/error). Track the rendered
20
- // block by toolCallId so the second event updates the same line in place
19
+ // Tool calls fire twice (tool_call_starttool_call). Track the rendered
20
+ // block by toolCallId so the canonical step updates the same line in place
21
21
  // instead of pushing a separate block.
22
22
  activeToolBlocks = new Map();
23
23
  constructor(opts) {
@@ -51,6 +51,9 @@ export class StepRenderer {
51
51
  this.opts.transcriptWriter.appendBlock("[reasoning]", truncateReasoningBody(trimmed), COLORS.reasoning);
52
52
  }
53
53
  }
54
+ else if (step.type === "tool_call_start") {
55
+ this.renderToolCallStart(step);
56
+ }
54
57
  else if (step.type === "tool_call") {
55
58
  this.renderToolCall(step);
56
59
  }
@@ -139,57 +142,58 @@ export class StepRenderer {
139
142
  updateStreamingBlock(next);
140
143
  return next;
141
144
  }
142
- // Render a tool call as a single, self-updating block. The first event
143
- // (`status: "running"`) creates the block with a spinner; the second event
144
- // (`completed` or `error`) replaces the spinner with ✓/✗ and appends the
145
- // truncated result inline so the call and its outcome stay visually paired.
146
- // Per-tool formatters in `tool-formatters.ts` decide the header text and
147
- // whether the call should appear in the transcript at all (e.g.
148
- // ask_user_question hides itself live and lets the `ask` terminal event
149
- // own the question display).
145
+ // Render a tool call as a single, self-updating block. The
146
+ // `tool_call_start` step creates the block with a spinner; the canonical
147
+ // `tool_call` step replaces the spinner with ✓/✗ and appends the truncated
148
+ // result inline so the call and its outcome stay visually paired. Per-tool
149
+ // formatters in `tool-formatters.ts` decide the header text and whether the
150
+ // call should appear in the transcript at all (e.g. ask_user_question hides
151
+ // itself live and lets the `ask` terminal event own the question display).
152
+ renderToolCallStart(step) {
153
+ const block = this.mountToolBlock(formatToolBlock({
154
+ toolName: step.toolName,
155
+ status: "running",
156
+ input: step.input,
157
+ mode: "live",
158
+ }), COLORS.tool, Date.now());
159
+ if (block)
160
+ this.activeToolBlocks.set(step.toolCallId, block);
161
+ }
150
162
  renderToolCall(step) {
151
163
  const existing = this.activeToolBlocks.get(step.toolCallId);
152
164
  if (existing) {
153
165
  this.finalizeToolCall(step, existing);
154
166
  return;
155
167
  }
156
- const isLive = step.status === "running" || step.status === "pending";
157
- const formatStatus = isLive ? "running" : step.status === "error" ? "error" : "completed";
158
- const formatted = formatToolBlock({
168
+ // No live block the canonical step arrived without a preceding
169
+ // `tool_call_start` (cached/replayed history). It echoes the call's
170
+ // input, so it renders as a complete block on its own; there is just no
171
+ // real duration because we never saw the call start.
172
+ const block = this.mountToolBlock(formatToolBlock({
159
173
  toolName: step.toolName,
160
- status: formatStatus,
174
+ status: step.isError ? "error" : "completed",
161
175
  input: step.input,
162
176
  output: step.output,
163
177
  mode: "live",
164
- });
178
+ }), step.isError ? COLORS.error : COLORS.tool, undefined);
179
+ if (block)
180
+ this.finalizeToolCall(step, block);
181
+ }
182
+ /** Mount a new tool block into the transcript, or return undefined when the
183
+ * formatter hides this tool (e.g. ask_user_question owns its own display). */
184
+ mountToolBlock(formatted, fg, startedAt) {
165
185
  if (formatted.hidden)
166
- return;
167
- const startedAt = isLive ? Date.now() : undefined;
168
- const marker = "⏳";
169
- const fg = step.status === "error" ? COLORS.error : COLORS.tool;
170
- const columns = this.toolBlockColumns();
186
+ return undefined;
171
187
  const line = new TextRenderable(this.opts.renderer, {
172
- content: assembleToolBlock(formatted, marker, { columns }),
188
+ content: assembleToolBlock(formatted, "⏳", { columns: this.toolBlockColumns() }),
173
189
  fg,
174
190
  });
175
191
  this.opts.transcriptWriter.beginBlock();
176
192
  this.opts.transcriptWriter.mount(line);
177
- const block = {
178
- line,
179
- header: formatted.header,
180
- body: formatted.body ?? "",
181
- input: step.input,
182
- startedAt,
183
- };
184
- this.activeToolBlocks.set(step.toolCallId, block);
185
- // The same event may already carry a terminal status (cached/replayed
186
- // history). Fall through to finalize against the just-created block.
187
- if (!isLive) {
188
- this.finalizeToolCall(step, block);
189
- }
193
+ return { line, header: formatted.header, body: formatted.body ?? "", startedAt };
190
194
  }
191
195
  finalizeToolCall(step, block) {
192
- const isError = step.status === "error";
196
+ const isError = step.isError;
193
197
  const glyph = isError ? "✗" : "✓";
194
198
  const elapsedMs = block.startedAt === undefined ? 0 : Date.now() - block.startedAt;
195
199
  // Sub-second runs drop the elapsed suffix so the transcript does not get
@@ -198,7 +202,7 @@ export class StepRenderer {
198
202
  const formatted = formatToolBlock({
199
203
  toolName: step.toolName,
200
204
  status: isError ? "error" : "completed",
201
- input: block.input,
205
+ input: step.input,
202
206
  output: step.output,
203
207
  mode: "live",
204
208
  });
@@ -1 +1 @@
1
- {"version":3,"file":"step-renderer.js","sourceRoot":"","sources":["../../../src/tui/step-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-renderer.js","sourceRoot":"","sources":["../../../src/tui/step-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAoB,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,eAAe,EAEf,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AA2C9B;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IAQM;IAPrB,gBAAgB,CAA6B;IAC7C,qBAAqB,CAA6B;IAC1D,0EAA0E;IAC1E,2EAA2E;IAC3E,uCAAuC;IACtB,gBAAgB,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEjE,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;IAAG,CAAC;IAE1D,UAAU,CAAC,IAAc;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CACtC,IAAI,CAAC,gBAAgB,EACrB,IAAI,EACJ,IAAI,CAAC,KAAK,EACV,MAAM,CAAC,KAAK,CACb,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC3C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAC3C,IAAI,CAAC,qBAAqB,EAC1B,aAAa,EACb,IAAI,CAAC,KAAK,EACV,MAAM,CAAC,SAAS,EAChB,qBAAqB,CACtB,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;gBACxD,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;gBACvC,OAAO;YACT,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CACpC,aAAa,EACb,qBAAqB,CAAC,OAAO,CAAC,EAC9B,MAAM,CAAC,SAAS,CACjB,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED;;wEAEoE;IACpE,uBAAuB;QACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;gBAAE,SAAS;YAC5C,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,iBAAiB,CACpC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,EACvD,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,EAC3C,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,WAAW,CAAC,KAAsB;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,uEAAuE;QACvE,8EAA8E;QAC9E,oEAAoE;QACpE,sEAAsE;QACtE,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,MAAM,GAAG,cAAc,KAAK,CAAC,KAAK,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG;YAChB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1B,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC5B,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;SAC9B;aACE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAE,KAAgB,GAAG,CAAC,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,KAAM,KAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;YACpB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3G,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,MAAM,GAAG,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IAED,iBAAiB;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;QACnE,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QACpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CACnC,sBAAsB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,EAAE,EAC7D,MAAM,CAAC,MAAM,CACd,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,6DAA6D;IAC7D,cAAc,CAAC,MAAc;QAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;QACnE,MAAM,YAAY,GAChB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;QACzF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CACnC,oBAAoB,SAAS,GAAG,YAAY,EAAE,EAC9C,MAAM,CAAC,MAAM,CACd,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,KAA6C;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,WAAW,KAAK,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,WAAW,CACjB,KAAiC,EACjC,KAAoB,EACpB,KAAa,EACb,EAAU,EACV,QAAmC;QAEnC,MAAM,IAAI,GACR,KAAK;YACJ;gBACC,IAAI,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBACjE,KAAK;gBACL,IAAI,EAAE,EAAE;gBACR,QAAQ;aACiB,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QACnB,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2DAA2D;IAC3D,yEAAyE;IACzE,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IACnE,mBAAmB,CAAC,IAAoD;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAC/B,eAAe,CAAC;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,MAAM;SACb,CAAC,EACF,MAAM,CAAC,IAAI,EACX,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;QACF,IAAI,KAAK;YAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEO,cAAc,CAAC,IAA8C;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,iEAAiE;QACjE,oEAAoE;QACpE,wEAAwE;QACxE,qDAAqD;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAC/B,eAAe,CAAC;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;YAC5C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,MAAM;SACb,CAAC,EACF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EACzC,SAAS,CACV,CAAC;QACF,IAAI,KAAK;YAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;mFAC+E;IACvE,cAAc,CACpB,SAAwB,EACxB,EAAU,EACV,SAA6B;QAE7B,IAAI,SAAS,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClD,OAAO,EAAE,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAChF,EAAE;SACH,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC;IACnF,CAAC;IAEO,gBAAgB,CAAC,IAA8C,EAAE,KAAgB;QACvF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;QACnF,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,cAAc,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,SAAS,GAAG,eAAe,CAAC;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;YACvC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,cAAc,EAAE,EAAE;YAC7E,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;SACjC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAEO,aAAa,CAAC,KAAqB,EAAE,IAAY;QACvD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,wEAAwE;IACxE,oEAAoE;IACpE,sEAAsE;IACtE,0EAA0E;IAC1E,qEAAqE;IACrE,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,wDAAwD;IAChD,gBAAgB;QACtB,MAAM,uBAAuB,GAAG,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC;IAClG,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,KAAqB;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA6C;IACjF,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,OAAO,CACtB,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAC1E,CAAC;IACF,IAAI,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC"}
@@ -15,8 +15,8 @@ import type { ImageContent, TextContent } from "@earendil-works/pi-ai";
15
15
  * history, so the formatter sees which path it is on and can branch. */
16
16
  export type ToolFormatMode = "live" | "history";
17
17
  /** Status of a tool call as visible to the formatter. `running` covers the
18
- * pending/running spinner phase before any result is available; `completed`
19
- * and `error` carry the tool result. */
18
+ * spinner phase before any result is available; `completed` and `error`
19
+ * carry the tool result. */
20
20
  export type ToolCallStatus = "running" | "completed" | "error";
21
21
  export interface ToolCallSpec {
22
22
  toolName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-formatters.d.ts","sourceRoot":"","sources":["../../../src/tui/tool-formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGvE;;;;;;;;;;GAUG;AAEH;;wEAEwE;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhD;;wCAEwC;AACxC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,MAAM,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;IACnD,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC;6EACyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAaR;AA2BD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,SAAS,GAC7D,MAAM,CAMR;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAGjE"}
1
+ {"version":3,"file":"tool-formatters.d.ts","sourceRoot":"","sources":["../../../src/tui/tool-formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGvE;;;;;;;;;;GAUG;AAEH;;wEAEwE;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhD;;4BAE4B;AAC5B,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,MAAM,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;IACnD,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC;6EACyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAaR;AA2BD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,SAAS,GAC7D,MAAM,CAMR;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAGjE"}
@@ -1,5 +1,16 @@
1
1
  import type { AgentEvent, AgentMessage } from "@earendil-works/pi-agent-core";
2
2
  import type { TurnStepEvent } from "../types/protocol.js";
3
- export declare function agentEventToTurnEvents(event: AgentEvent): TurnStepEvent[];
3
+ /**
4
+ * Build a translator from pi agent events to turn step events.
5
+ *
6
+ * The translator is stateful: pi's `tool_execution_end` does not carry the
7
+ * tool arguments, but the canonical `tool_call` step is self-contained (it
8
+ * echoes the call's `input`, mirroring how the canonical `text` step carries
9
+ * the full text after `text_delta`). Each call's input is remembered from
10
+ * `tool_execution_start` until its end event arrives. Tool call ids are
11
+ * unique across the parent and state agents, so one translator per runner is
12
+ * enough.
13
+ */
14
+ export declare function createAgentEventTranslator(): (event: AgentEvent) => TurnStepEvent[];
4
15
  export declare function agentMessageText(message: AgentMessage): string;
5
16
  //# sourceMappingURL=agent-events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-events.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/agent-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,EAAE,CA6CzE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAW9D"}
1
+ {"version":3,"file":"agent-events.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/agent-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,IAAI,CAAC,KAAK,EAAE,UAAU,KAAK,aAAa,EAAE,CAqDnF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAW9D"}
@@ -1,48 +1,66 @@
1
- export function agentEventToTurnEvents(event) {
2
- switch (event.type) {
3
- case "message_update": {
4
- const update = event.assistantMessageEvent;
5
- switch (update.type) {
6
- case "text_delta":
7
- return [{ type: "step", step: { type: "text_delta", delta: update.delta } }];
8
- case "thinking_delta":
9
- return [{ type: "step", step: { type: "reasoning_delta", delta: update.delta } }];
10
- case "text_end":
11
- return [{ type: "step", step: { type: "text", text: update.content } }];
12
- case "thinking_end":
13
- return [{ type: "step", step: { type: "reasoning", text: update.content } }];
1
+ /**
2
+ * Build a translator from pi agent events to turn step events.
3
+ *
4
+ * The translator is stateful: pi's `tool_execution_end` does not carry the
5
+ * tool arguments, but the canonical `tool_call` step is self-contained (it
6
+ * echoes the call's `input`, mirroring how the canonical `text` step carries
7
+ * the full text after `text_delta`). Each call's input is remembered from
8
+ * `tool_execution_start` until its end event arrives. Tool call ids are
9
+ * unique across the parent and state agents, so one translator per runner is
10
+ * enough.
11
+ */
12
+ export function createAgentEventTranslator() {
13
+ const inputByToolCallId = new Map();
14
+ return (event) => {
15
+ switch (event.type) {
16
+ case "message_update": {
17
+ const update = event.assistantMessageEvent;
18
+ switch (update.type) {
19
+ case "text_delta":
20
+ return [{ type: "step", step: { type: "text_delta", delta: update.delta } }];
21
+ case "thinking_delta":
22
+ return [{ type: "step", step: { type: "reasoning_delta", delta: update.delta } }];
23
+ case "text_end":
24
+ return [{ type: "step", step: { type: "text", text: update.content } }];
25
+ case "thinking_end":
26
+ return [{ type: "step", step: { type: "reasoning", text: update.content } }];
27
+ }
28
+ return [];
14
29
  }
15
- return [];
16
- }
17
- case "tool_execution_start":
18
- return [
19
- {
20
- type: "step",
21
- step: {
22
- type: "tool_call",
23
- toolName: event.toolName,
24
- toolCallId: event.toolCallId,
25
- status: "running",
26
- input: event.args,
30
+ case "tool_execution_start":
31
+ inputByToolCallId.set(event.toolCallId, event.args);
32
+ return [
33
+ {
34
+ type: "step",
35
+ step: {
36
+ type: "tool_call_start",
37
+ toolName: event.toolName,
38
+ toolCallId: event.toolCallId,
39
+ input: event.args,
40
+ },
27
41
  },
28
- },
29
- ];
30
- case "tool_execution_end":
31
- return [
32
- {
33
- type: "step",
34
- step: {
35
- type: "tool_call",
36
- toolName: event.toolName,
37
- toolCallId: event.toolCallId,
38
- status: event.isError ? "error" : "completed",
39
- output: event.result?.content,
42
+ ];
43
+ case "tool_execution_end": {
44
+ const input = inputByToolCallId.get(event.toolCallId);
45
+ inputByToolCallId.delete(event.toolCallId);
46
+ return [
47
+ {
48
+ type: "step",
49
+ step: {
50
+ type: "tool_call",
51
+ toolName: event.toolName,
52
+ toolCallId: event.toolCallId,
53
+ input,
54
+ isError: event.isError,
55
+ output: event.result?.content,
56
+ },
40
57
  },
41
- },
42
- ];
43
- default:
44
- return [];
45
- }
58
+ ];
59
+ }
60
+ default:
61
+ return [];
62
+ }
63
+ };
46
64
  }
47
65
  export function agentMessageText(message) {
48
66
  const content = "content" in message ? message.content : undefined;