moderado 0.4.34 → 0.4.46

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 (97) hide show
  1. package/dist/commands/chat.d.ts +7 -70
  2. package/dist/commands/chat.d.ts.map +1 -1
  3. package/dist/commands/chat.js +279 -453
  4. package/dist/commands/chat.js.map +1 -1
  5. package/dist/commands/chat_meta.d.ts +36 -0
  6. package/dist/commands/chat_meta.d.ts.map +1 -0
  7. package/dist/commands/chat_meta.js +102 -0
  8. package/dist/commands/chat_meta.js.map +1 -0
  9. package/dist/commands/chat_outcome.d.ts +31 -0
  10. package/dist/commands/chat_outcome.d.ts.map +1 -0
  11. package/dist/commands/chat_outcome.js +70 -0
  12. package/dist/commands/chat_outcome.js.map +1 -0
  13. package/dist/commands/chat_search.d.ts +24 -0
  14. package/dist/commands/chat_search.d.ts.map +1 -0
  15. package/dist/commands/chat_search.js +61 -0
  16. package/dist/commands/chat_search.js.map +1 -0
  17. package/dist/commands/chat_slash.d.ts +17 -0
  18. package/dist/commands/chat_slash.d.ts.map +1 -0
  19. package/dist/commands/chat_slash.js +108 -0
  20. package/dist/commands/chat_slash.js.map +1 -0
  21. package/dist/commands/run.d.ts.map +1 -1
  22. package/dist/commands/run.js +25 -1
  23. package/dist/commands/run.js.map +1 -1
  24. package/dist/config.d.ts +1 -1
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/config.js +18 -2
  27. package/dist/config.js.map +1 -1
  28. package/dist/diagnostic_log.d.ts.map +1 -1
  29. package/dist/diagnostic_log.js +1 -0
  30. package/dist/diagnostic_log.js.map +1 -1
  31. package/dist/sessions.d.ts.map +1 -1
  32. package/dist/sessions.js +5 -1
  33. package/dist/sessions.js.map +1 -1
  34. package/dist/transcript.d.ts +19 -0
  35. package/dist/transcript.d.ts.map +1 -0
  36. package/dist/transcript.js +76 -0
  37. package/dist/transcript.js.map +1 -0
  38. package/dist/turn_summary.d.ts +76 -0
  39. package/dist/turn_summary.d.ts.map +1 -0
  40. package/dist/turn_summary.js +305 -0
  41. package/dist/turn_summary.js.map +1 -0
  42. package/dist/ui/box.d.ts +19 -0
  43. package/dist/ui/box.d.ts.map +1 -1
  44. package/dist/ui/box.js +119 -12
  45. package/dist/ui/box.js.map +1 -1
  46. package/dist/ui/chart.d.ts +2 -0
  47. package/dist/ui/chart.d.ts.map +1 -0
  48. package/dist/ui/chart.js +97 -0
  49. package/dist/ui/chart.js.map +1 -0
  50. package/dist/ui/composer.d.ts +80 -0
  51. package/dist/ui/composer.d.ts.map +1 -0
  52. package/dist/ui/composer.js +762 -0
  53. package/dist/ui/composer.js.map +1 -0
  54. package/dist/ui/help_content.d.ts +1 -1
  55. package/dist/ui/help_content.d.ts.map +1 -1
  56. package/dist/ui/help_content.js +4 -2
  57. package/dist/ui/help_content.js.map +1 -1
  58. package/dist/ui/model_selector.d.ts +1 -0
  59. package/dist/ui/model_selector.d.ts.map +1 -1
  60. package/dist/ui/model_selector.js +61 -18
  61. package/dist/ui/model_selector.js.map +1 -1
  62. package/dist/ui/popup.d.ts.map +1 -1
  63. package/dist/ui/popup.js +7 -0
  64. package/dist/ui/popup.js.map +1 -1
  65. package/dist/ui/provider_connect.d.ts +8 -0
  66. package/dist/ui/provider_connect.d.ts.map +1 -1
  67. package/dist/ui/provider_connect.js +81 -23
  68. package/dist/ui/provider_connect.js.map +1 -1
  69. package/dist/ui/renderer.d.ts +49 -4
  70. package/dist/ui/renderer.d.ts.map +1 -1
  71. package/dist/ui/renderer.js +167 -31
  72. package/dist/ui/renderer.js.map +1 -1
  73. package/dist/ui/terminal_approval.d.ts +21 -0
  74. package/dist/ui/terminal_approval.d.ts.map +1 -1
  75. package/dist/ui/terminal_approval.js +145 -47
  76. package/dist/ui/terminal_approval.js.map +1 -1
  77. package/dist/ui/welcome.d.ts +223 -68
  78. package/dist/ui/welcome.d.ts.map +1 -1
  79. package/dist/ui/welcome.js +564 -687
  80. package/dist/ui/welcome.js.map +1 -1
  81. package/dist/vendor/providers/presets.d.ts +16 -0
  82. package/dist/vendor/providers/presets.d.ts.map +1 -1
  83. package/dist/vendor/providers/presets.js +13 -0
  84. package/dist/vendor/providers/presets.js.map +1 -1
  85. package/dist/vendor/tools/checkpoints.js +5 -5
  86. package/dist/vendor/tools/checkpoints.js.map +1 -1
  87. package/dist/vendor/tools/jail.d.ts +8 -0
  88. package/dist/vendor/tools/jail.d.ts.map +1 -1
  89. package/dist/vendor/tools/jail.js +13 -2
  90. package/dist/vendor/tools/jail.js.map +1 -1
  91. package/dist/vendor/tools/tools/apply_patch.d.ts.map +1 -1
  92. package/dist/vendor/tools/tools/apply_patch.js +6 -3
  93. package/dist/vendor/tools/tools/apply_patch.js.map +1 -1
  94. package/dist/vendor/tools/tools/git_diff.d.ts.map +1 -1
  95. package/dist/vendor/tools/tools/git_diff.js +5 -3
  96. package/dist/vendor/tools/tools/git_diff.js.map +1 -1
  97. package/package.json +1 -1
@@ -284,53 +284,111 @@ async function chooseModeradoModel(connection, options) {
284
284
  });
285
285
  return modelId ? { ...connection, defaultModel: modelId } : connection;
286
286
  }
287
- export async function loginModeradoInteractive(options = {}) {
287
+ /**
288
+ * The Gateway URL is a property of the deployment, not a question for the user:
289
+ * reuse the environment override, the configured Gateway, the saved profile, or
290
+ * the active connection before asking for a Prod/Dev choice at all.
291
+ */
292
+ function knownModeradoGatewayUrl(options) {
293
+ const active = options.activeConnection;
294
+ const activeUrl = active && (active.id === 'moderado' || active.id === 'moderado-cloud') ? active.baseUrl : undefined;
295
+ const candidates = [
296
+ process.env.MODERADO_BASE_URL ?? process.env.MODERADO_CLOUD_BASE_URL,
297
+ options.gatewayUrl,
298
+ options.savedConnections?.moderado?.baseUrl,
299
+ options.savedConnections?.['moderado-cloud']?.baseUrl,
300
+ activeUrl,
301
+ ];
302
+ return candidates.find((value) => typeof value === 'string' && value.trim().length > 0)?.trim();
303
+ }
304
+ async function resolveModeradoGatewayUrl(options) {
305
+ const known = knownModeradoGatewayUrl(options);
306
+ if (known) {
307
+ try {
308
+ return validateProviderBaseUrl(known);
309
+ }
310
+ catch {
311
+ // A malformed saved URL must not trap the user: fall through to the picker.
312
+ }
313
+ }
288
314
  const modes = [
289
315
  { label: 'Prod Mode', value: 'production', description: 'https://modr.alfazen.org/v1' },
290
316
  { label: 'Dev Mode', value: 'development', description: 'http://127.0.0.1:4788/v1' },
291
317
  ];
292
318
  if ((process.env.MODERADO_ENV ?? process.env.MODERADO_CLOUD_ENV) === 'development')
293
319
  modes.reverse();
294
- const defaultMode = 0;
295
320
  const selectedMode = options.drawFrame
296
321
  ? await selectListPopup('Moderado Gateway Mode', modes, { drawFrame: options.drawFrame, signal: options.signal, hint: '↑↓ choose · Enter continue · Esc cancel' })
297
- : (await askSelect('Moderado Gateway Mode', modes, defaultMode, { signal: options.signal })).value;
322
+ : (await askSelect('Moderado Gateway Mode', modes, 0, { signal: options.signal })).value;
298
323
  if (!selectedMode || options.signal?.aborted)
299
324
  return undefined;
300
- const baseUrl = resolveModeradoBaseUrl(selectedMode, process.env.MODERADO_BASE_URL ?? process.env.MODERADO_CLOUD_BASE_URL);
301
- const enteredBaseUrl = await askProviderBaseUrl('Moderado Gateway Base URL', baseUrl, options);
302
- if (!enteredBaseUrl)
325
+ return resolveModeradoBaseUrl(selectedMode, undefined);
326
+ }
327
+ async function resolveSavedModeradoConnection(options) {
328
+ if (options.forceReauthenticate)
303
329
  return undefined;
304
- let savedConnection;
305
330
  const saved = options.savedConnections?.moderado ?? options.savedConnections?.['moderado-cloud'];
306
- if (saved) {
307
- try {
308
- const resolved = options.resolveSavedConnection ? await options.resolveSavedConnection(saved) : saved;
309
- if (resolved.apiKey?.trim())
310
- savedConnection = resolved;
311
- }
312
- catch {
313
- // Keep direct key entry available when credential storage cannot be read.
314
- }
331
+ if (!saved)
332
+ return undefined;
333
+ try {
334
+ const resolved = options.resolveSavedConnection ? await options.resolveSavedConnection(saved) : saved;
335
+ return resolved.apiKey?.trim() ? resolved : undefined;
336
+ }
337
+ catch {
338
+ // Keep sign-in available when credential storage cannot be read.
339
+ return undefined;
315
340
  }
316
- let prompt = 'Moderado Gateway API key (mrd_…, optional for paid routes)';
317
- let initialKey = savedConnection?.apiKey ?? '';
341
+ }
342
+ async function askModeradoApiKey(baseUrl, options) {
343
+ let prompt = 'Moderado API key (mrd_…, optional for paid routes)';
318
344
  while (!options.signal?.aborted) {
319
- const apiKey = await askPopupText(prompt, options, true, initialKey);
345
+ const apiKey = await askPopupText(prompt, options, true);
320
346
  if (apiKey === undefined)
321
347
  return undefined;
322
348
  try {
323
- const credentialExpiresAt = apiKey === savedConnection?.apiKey ? savedConnection.credentialExpiresAt : undefined;
324
- const connection = buildModeradoConnection(apiKey || undefined, credentialExpiresAt, enteredBaseUrl);
325
- return chooseModeradoModel(connection, options);
349
+ return chooseModeradoModel(buildModeradoConnection(apiKey || undefined, undefined, baseUrl), options);
326
350
  }
327
351
  catch (error) {
328
352
  prompt = `Invalid key: ${error instanceof Error ? error.message : String(error)} Try again`;
329
- initialKey = '';
330
353
  }
331
354
  }
332
355
  return undefined;
333
356
  }
357
+ /**
358
+ * Connect to the Moderado Gateway. The flow asks only what it cannot know:
359
+ * the deployment (once, when nothing is configured), the credential (reused
360
+ * when saved, otherwise browser sign-in with a manual key as the fallback),
361
+ * and the model. The base URL is never typed by hand.
362
+ */
363
+ export async function loginModeradoInteractive(options = {}) {
364
+ if (options.signal?.aborted)
365
+ return undefined;
366
+ const baseUrl = await resolveModeradoGatewayUrl(options);
367
+ if (!baseUrl || options.signal?.aborted)
368
+ return undefined;
369
+ const saved = await resolveSavedModeradoConnection(options);
370
+ if (saved?.apiKey) {
371
+ return chooseModeradoModel(buildModeradoConnection(saved.apiKey, saved.credentialExpiresAt, baseUrl), options);
372
+ }
373
+ // No reusable credential: sign in once instead of interrogating for a key.
374
+ const method = options.drawFrame
375
+ ? await selectListPopup('Moderado Sign-in', [
376
+ { label: 'Sign in with browser', value: 'browser', description: 'Opens mod.alfazen.org and returns here automatically' },
377
+ { label: 'Paste an API key', value: 'key', description: 'Use an mrd_… key from your Moderado account' },
378
+ ], { drawFrame: options.drawFrame, signal: options.signal, hint: '↑↓ choose · Enter continue · Esc cancel' })
379
+ : 'key';
380
+ if (!method)
381
+ return undefined;
382
+ if (method === 'browser') {
383
+ const auth = await authorizeModeradoInBrowser(options.signal, { drawFrame: options.drawFrame });
384
+ if (auth)
385
+ return chooseModeradoModel(buildModeradoConnection(auth.accessToken, auth.expiresAt, baseUrl), options);
386
+ if (options.signal?.aborted)
387
+ return undefined;
388
+ // Cancelled or unavailable browser flow: keep the manual key as a fallback.
389
+ }
390
+ return askModeradoApiKey(baseUrl, options);
391
+ }
334
392
  /** @deprecated Use loginModeradoInteractive. */
335
393
  export const loginModeradoCloudInteractive = loginModeradoInteractive;
336
394
  async function askProviderBaseUrl(label, initialValue, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"provider_connect.js","sourceRoot":"","sources":["../../src/ui/provider_connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider_connect.js","sourceRoot":"","sources":["../../src/ui/provider_connect.ts"],"names":[],"mappings":"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"}
@@ -10,20 +10,65 @@ export declare class TerminalRenderer {
10
10
  private readonly isChatMode;
11
11
  private isStreamingAssistant;
12
12
  private hasTransientProgress;
13
- /** Step counter from progress events; -1 marks a delegation with no step budget. */
14
- private taskStep;
15
- private taskMaxSteps;
13
+ /** Latest progress sentence from the engine, shown as a short phase label. */
14
+ private taskStatus;
16
15
  private sawTaskProgress;
17
16
  private latestUsage?;
18
17
  private hasUsageTitle;
19
18
  private lastUsageTimestamp;
19
+ /**
20
+ * Raw engine status of the open row, or `undefined` when no row is open.
21
+ *
22
+ * This is the only row the renderer ever rewrites, and it is always the last
23
+ * row on screen, so repainting it cannot destroy anything above it. Every
24
+ * other write appends — which is what keeps the log scrollable.
25
+ */
26
+ private liveStatus?;
27
+ /** Short display label of the open row. */
28
+ private liveLabel?;
29
+ private liveStartedAt;
30
+ /** Ticks the live row's clock while a phase runs; see startLiveClock. */
31
+ private liveTimer?;
32
+ /** Whether the last write ended a row, so the next one starts on a clean line. */
33
+ private atRowStart;
20
34
  constructor(options?: TerminalRendererOptions);
35
+ /** Append output, remembering whether the cursor is sitting at a row start. */
36
+ private write;
37
+ /** Columns available for wrapping; a non-TTY stream reports no width. */
38
+ private columns;
39
+ private elapsedLabel;
21
40
  handleEvent(event: AgentEvent): void;
22
41
  private printUsageSummary;
23
42
  private finishAssistantStream;
24
43
  private clearTransientProgress;
25
- /** Transient single-line progress: "Processing task… Step N/M" when a step budget is known. */
44
+ /**
45
+ * Finalise the live row in place and close it, so it becomes scrollback.
46
+ *
47
+ * The row is repainted with its settled glyph and elapsed time and then a
48
+ * newline pushes it up. Nothing above it is touched, so the terminal's own
49
+ * scrollback — the mouse wheel, the slider, PgUp — reaches every phase the
50
+ * agent went through.
51
+ */
52
+ private commitLive;
53
+ /**
54
+ * Transient single-line progress, kept live on the last row only.
55
+ *
56
+ * The engine's step counter is deliberately not printed: `Step 1/25` stayed
57
+ * true for minutes while one inference ran, so it described the engine's loop
58
+ * rather than anything the reader could use.
59
+ */
26
60
  private paintTaskStatus;
61
+ /**
62
+ * Keep the live row's clock moving while a phase runs.
63
+ *
64
+ * One inference can run for minutes with no event of any kind, and a row
65
+ * frozen at `· 0s` reads as a hang. The timer is unref'd so it can never hold
66
+ * the process open, and it stops the moment the row is committed.
67
+ */
68
+ private startLiveClock;
69
+ private stopLiveClock;
70
+ /** Release the live-row timer; safe to call more than once. */
71
+ dispose(): void;
27
72
  private formatToolSummary;
28
73
  }
29
74
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/ui/renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,oBAAoB,CAAS;IACrC,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,kBAAkB,CAAa;gBAE3B,OAAO,GAAE,uBAA4B;IAMjD,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAiKpC,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,sBAAsB;IAO9B,+FAA+F;IAC/F,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,iBAAiB;CAQ1B"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/ui/renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAYD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,oBAAoB,CAAS;IACrC,8EAA8E;IAC9E,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,kBAAkB,CAAa;IACvC;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,2CAA2C;IAC3C,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAK;IAC1B,yEAAyE;IACzE,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,kFAAkF;IAClF,OAAO,CAAC,UAAU,CAAQ;gBAEd,OAAO,GAAE,uBAA4B;IAMjD,+EAA+E;IAC/E,OAAO,CAAC,KAAK;IAKb,yEAAyE;IACzE,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,YAAY;IAKpB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAuLpC,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,sBAAsB;IAe9B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAMrB,+DAA+D;IAC/D,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,iBAAiB;CAQ1B"}
@@ -1,22 +1,58 @@
1
- import { formatTokenUsage } from './welcome.js';
1
+ import { formatTokenUsage, describeActivity, wrapText } from './welcome.js';
2
+ /**
3
+ * Body rows one log entry may occupy before the rest folds into a footer.
4
+ *
5
+ * A tool result used to be printed as `lines[0].slice(0, 75)`: one clipped line
6
+ * that hid an entire payload behind “… (+37 lines)”. Five wrapped rows show
7
+ * enough of a real output to be read while keeping the log scannable, and the
8
+ * footer says exactly how much was left out.
9
+ */
10
+ const LOG_ENTRY_MAX_ROWS = 5;
2
11
  export class TerminalRenderer {
3
12
  stdout;
4
13
  verbose;
5
14
  isChatMode;
6
15
  isStreamingAssistant = false;
7
16
  hasTransientProgress = false;
8
- /** Step counter from progress events; -1 marks a delegation with no step budget. */
9
- taskStep = 0;
10
- taskMaxSteps = 0;
17
+ /** Latest progress sentence from the engine, shown as a short phase label. */
18
+ taskStatus = '';
11
19
  sawTaskProgress = false;
12
20
  latestUsage;
13
21
  hasUsageTitle = false;
14
22
  lastUsageTimestamp = -Infinity;
23
+ /**
24
+ * Raw engine status of the open row, or `undefined` when no row is open.
25
+ *
26
+ * This is the only row the renderer ever rewrites, and it is always the last
27
+ * row on screen, so repainting it cannot destroy anything above it. Every
28
+ * other write appends — which is what keeps the log scrollable.
29
+ */
30
+ liveStatus;
31
+ /** Short display label of the open row. */
32
+ liveLabel;
33
+ liveStartedAt = 0;
34
+ /** Ticks the live row's clock while a phase runs; see startLiveClock. */
35
+ liveTimer;
36
+ /** Whether the last write ended a row, so the next one starts on a clean line. */
37
+ atRowStart = true;
15
38
  constructor(options = {}) {
16
39
  this.stdout = options.stdout ?? process.stdout;
17
40
  this.verbose = options.verbose ?? false;
18
41
  this.isChatMode = options.isChatMode ?? false;
19
42
  }
43
+ /** Append output, remembering whether the cursor is sitting at a row start. */
44
+ write(text) {
45
+ this.stdout.write(text);
46
+ this.atRowStart = text.endsWith('\n');
47
+ }
48
+ /** Columns available for wrapping; a non-TTY stream reports no width. */
49
+ columns() {
50
+ return Math.max(20, this.stdout.columns || 80);
51
+ }
52
+ elapsedLabel() {
53
+ const seconds = (Date.now() - this.liveStartedAt) / 1000;
54
+ return seconds < 1 ? '<1s' : `${Math.round(seconds)}s`;
55
+ }
20
56
  handleEvent(event) {
21
57
  // The interactive chat command owns a full-screen frame and redraws it as
22
58
  // events arrive. Writing here would place output beneath the previous
@@ -37,8 +73,13 @@ export class TerminalRenderer {
37
73
  this.hasUsageTitle = true;
38
74
  }
39
75
  else {
40
- this.stdout.write(`\r\x1b[K\x1b[38;5;244m${text}\x1b[0m`);
76
+ this.write(`\r\x1b[K\x1b[38;5;244m${text}\x1b[0m`);
41
77
  this.hasTransientProgress = true;
78
+ // The counters replaced the live row, so it is no longer ours to
79
+ // rewrite: the next phase opens a fresh one instead of committing
80
+ // text the reader can no longer see.
81
+ this.liveStatus = undefined;
82
+ this.liveLabel = undefined;
42
83
  }
43
84
  break;
44
85
  }
@@ -52,18 +93,17 @@ export class TerminalRenderer {
52
93
  : event.reason === 'user_pinned'
53
94
  ? 'Pinned'
54
95
  : `Fallback (${event.reason})`;
55
- this.stdout.write(`\x1b[38;5;141m● Model:\x1b[0m ${reasonText} \x1b[1;38;5;75m${event.newModelId}\x1b[0m \x1b[38;5;244m(${event.accessClass})\x1b[0m\n`);
96
+ this.write(`\x1b[38;5;141m● Model:\x1b[0m ${reasonText} \x1b[1;38;5;75m${event.newModelId}\x1b[0m \x1b[38;5;244m(${event.accessClass})\x1b[0m\n`);
56
97
  break;
57
98
  }
58
99
  case 'progress': {
59
100
  if (this.verbose) {
60
101
  this.finishAssistantStream();
61
102
  this.clearTransientProgress();
62
- this.stdout.write(`\x1b[38;5;244m◇ ${event.status}\x1b[0m\n`);
103
+ this.write(`\x1b[38;5;244m◇ ${event.status}\x1b[0m\n`);
63
104
  }
64
105
  else {
65
- this.taskStep = event.step;
66
- this.taskMaxSteps = event.maxSteps ?? 0;
106
+ this.taskStatus = event.status;
67
107
  this.sawTaskProgress = true;
68
108
  this.paintTaskStatus();
69
109
  }
@@ -71,9 +111,8 @@ export class TerminalRenderer {
71
111
  }
72
112
  case 'reasoning_delta': {
73
113
  // Do not display internal thinking process. Keep subtle transient spinner.
74
- if (!this.hasTransientProgress) {
114
+ if (this.liveStatus === undefined)
75
115
  this.paintTaskStatus();
76
- }
77
116
  break;
78
117
  }
79
118
  case 'assistant_delta': {
@@ -82,22 +121,23 @@ export class TerminalRenderer {
82
121
  this.isStreamingAssistant = true;
83
122
  }
84
123
  this.stdout.write(event.delta);
124
+ this.atRowStart = false;
85
125
  break;
86
126
  }
87
127
  case 'tool_call_initiated': {
88
128
  this.finishAssistantStream();
89
129
  this.clearTransientProgress();
90
130
  const summary = this.formatToolSummary(event.toolName, event.parameters);
91
- this.stdout.write(`\x1b[38;5;75m⏺\x1b[0m \x1b[1m${event.toolName}\x1b[0m \x1b[38;5;244m${summary}\x1b[0m\n`);
131
+ this.write(`\x1b[38;5;75m⏺\x1b[0m \x1b[1m${event.toolName}\x1b[0m \x1b[38;5;244m${summary}\x1b[0m\n`);
92
132
  break;
93
133
  }
94
134
  case 'diagnostic_result': {
95
135
  this.finishAssistantStream();
96
136
  this.clearTransientProgress();
97
137
  const visible = event.diagnostics.slice(0, 10);
98
- this.stdout.write(`\x1b[38;5;203mDiagnostics (exit ${event.exitCode}):\x1b[0m\n`);
138
+ this.write(`\x1b[38;5;203mDiagnostics (exit ${event.exitCode}):\x1b[0m\n`);
99
139
  for (const diagnostic of visible)
100
- this.stdout.write(` ${diagnostic.file ? `${diagnostic.file}:${diagnostic.line ?? 0}:${diagnostic.column ?? 0} ` : ''}${diagnostic.code ? `${diagnostic.code} ` : ''}${diagnostic.message}\n`);
140
+ this.write(` ${diagnostic.file ? `${diagnostic.file}:${diagnostic.line ?? 0}:${diagnostic.column ?? 0} ` : ''}${diagnostic.code ? `${diagnostic.code} ` : ''}${diagnostic.message}\n`);
101
141
  break;
102
142
  }
103
143
  case 'tool_result': {
@@ -110,9 +150,32 @@ export class TerminalRenderer {
110
150
  ? '\x1b[38;5;222m'
111
151
  : '\x1b[38;5;203m';
112
152
  const statusIcon = isSuccess ? '✔' : event.result.status === 'denied' ? '⚠' : '✖';
113
- const lines = event.result.output.trim().split('\n');
114
- const preview = lines[0] + (lines.length > 1 ? ` ... (+${lines.length - 1} lines)` : '');
115
- this.stdout.write(` \x1b[38;5;240m└\x1b[0m ${statusColor}${statusIcon}\x1b[0m \x1b[38;5;244m${preview.slice(0, 75)}\x1b[0m\n\n`);
153
+ // Wrap instead of clipping: the first line of a payload is rarely the
154
+ // interesting one, and “… (+37 lines)” told the reader nothing about
155
+ // what the agent actually saw.
156
+ const width = Math.max(20, this.columns() - 4);
157
+ const trimmed = event.result.output.trim();
158
+ const rows = trimmed
159
+ ? trimmed
160
+ .split('\n')
161
+ .flatMap((line) => (line.trim() ? wrapText(line, width) : ['']))
162
+ : [];
163
+ const shown = rows.slice(0, LOG_ENTRY_MAX_ROWS);
164
+ const hidden = rows.length - shown.length;
165
+ this.write(` \x1b[38;5;240m└\x1b[0m ${statusColor}${statusIcon}\x1b[0m`);
166
+ if (shown.length === 0) {
167
+ this.write(` \x1b[38;5;244m(no output)\x1b[0m\n\n`);
168
+ break;
169
+ }
170
+ for (const [index, row] of shown.entries()) {
171
+ // ` └ ✔ ` is six cells, so continuation rows align under the text.
172
+ const gutter = index === 0 ? ' ' : ' ';
173
+ this.write(`${gutter}\x1b[38;5;244m${row}\x1b[0m\n`);
174
+ }
175
+ if (hidden > 0) {
176
+ this.write(` \x1b[38;5;240m… +${hidden} more line${hidden === 1 ? '' : 's'}\x1b[0m\n`);
177
+ }
178
+ this.write('\n');
116
179
  break;
117
180
  }
118
181
  case 'completion': {
@@ -120,18 +183,17 @@ export class TerminalRenderer {
120
183
  this.finishAssistantStream();
121
184
  this.clearTransientProgress();
122
185
  if (event.status === 'completed' && this.sawTaskProgress) {
123
- this.stdout.write(`\x1b[38;5;114m✔ Done (${event.totalSteps} ${event.totalSteps === 1 ? 'step' : 'steps'})\x1b[0m\n`);
186
+ this.write(`\x1b[38;5;114m✔ Done (${event.totalSteps} ${event.totalSteps === 1 ? 'step' : 'steps'})\x1b[0m\n`);
124
187
  }
125
188
  this.sawTaskProgress = false;
126
- this.taskStep = 0;
127
- this.taskMaxSteps = 0;
189
+ this.taskStatus = '';
128
190
  const bannerColor = event.status === 'completed'
129
191
  ? '\x1b[1;32m'
130
192
  : event.status === 'step_limit_reached'
131
193
  ? '\x1b[1;33m'
132
194
  : '\x1b[1;31m';
133
195
  const icon = event.status === 'completed' ? '✔' : '⚠';
134
- this.stdout.write(`\n\x1b[90m╭─────────────────────────────────────────────────────────────╮\x1b[0m\n` +
196
+ this.write(`\n\x1b[90m╭─────────────────────────────────────────────────────────────╮\x1b[0m\n` +
135
197
  `\x1b[90m│\x1b[0m ${icon} ${bannerColor}=== Session Finished: ${event.status.toUpperCase()} (Total Steps: ${event.totalSteps}) ===\x1b[0m\n` +
136
198
  `\x1b[90m╰─────────────────────────────────────────────────────────────╯\x1b[0m\n`);
137
199
  break;
@@ -140,14 +202,14 @@ export class TerminalRenderer {
140
202
  this.printUsageSummary();
141
203
  this.finishAssistantStream();
142
204
  this.clearTransientProgress();
143
- this.stdout.write(`\n\x1b[1;31m✖ [Error ${event.code}]\x1b[0m ${event.message}\n`);
205
+ this.write(`\n\x1b[1;31m✖ [Error ${event.code}]\x1b[0m ${event.message}\n`);
144
206
  break;
145
207
  }
146
208
  case 'cancellation': {
147
209
  this.printUsageSummary();
148
210
  this.finishAssistantStream();
149
211
  this.clearTransientProgress();
150
- this.stdout.write(`\n\x1b[1;33m⚠ [Cancelled]\x1b[0m ${event.reason}\n`);
212
+ this.write(`\n\x1b[1;33m⚠ [Cancelled]\x1b[0m ${event.reason}\n`);
151
213
  break;
152
214
  }
153
215
  default:
@@ -162,29 +224,103 @@ export class TerminalRenderer {
162
224
  if (!this.latestUsage)
163
225
  return;
164
226
  this.finishAssistantStream();
165
- this.stdout.write(`${formatTokenUsage(this.latestUsage)}\n`);
227
+ this.write(`${formatTokenUsage(this.latestUsage)}\n`);
166
228
  this.latestUsage = undefined;
167
229
  }
168
230
  finishAssistantStream() {
169
231
  this.clearTransientProgress();
170
232
  if (this.isStreamingAssistant) {
171
- this.stdout.write('\n');
233
+ // Only add the line break the stream itself owes: committing a phase
234
+ // already ended its row, and a second newline would print a blank line.
235
+ if (!this.atRowStart)
236
+ this.write('\n');
172
237
  this.isStreamingAssistant = false;
173
238
  }
174
239
  }
175
240
  clearTransientProgress() {
241
+ if (this.liveStatus !== undefined) {
242
+ // The phase is over: keep it. Erasing the row (`\r\x1b[K`) is what made
243
+ // the log unreadable — the sentence the reader was halfway through
244
+ // vanished the moment the next phase started.
245
+ this.commitLive();
246
+ this.hasTransientProgress = false;
247
+ return;
248
+ }
176
249
  if (this.hasTransientProgress) {
177
- this.stdout.write('\r\x1b[K');
250
+ this.write('\r\x1b[K');
178
251
  this.hasTransientProgress = false;
179
252
  }
180
253
  }
181
- /** Transient single-line progress: "Processing task… Step N/M" when a step budget is known. */
254
+ /**
255
+ * Finalise the live row in place and close it, so it becomes scrollback.
256
+ *
257
+ * The row is repainted with its settled glyph and elapsed time and then a
258
+ * newline pushes it up. Nothing above it is touched, so the terminal's own
259
+ * scrollback — the mouse wheel, the slider, PgUp — reaches every phase the
260
+ * agent went through.
261
+ */
262
+ commitLive() {
263
+ if (this.liveStatus === undefined)
264
+ return;
265
+ this.write(`\r\x1b[K\x1b[38;5;245m✔ ${this.liveLabel} · ${this.elapsedLabel()}\x1b[0m\n`);
266
+ this.liveStatus = undefined;
267
+ this.liveLabel = undefined;
268
+ this.stopLiveClock();
269
+ }
270
+ /**
271
+ * Transient single-line progress, kept live on the last row only.
272
+ *
273
+ * The engine's step counter is deliberately not printed: `Step 1/25` stayed
274
+ * true for minutes while one inference ran, so it described the engine's loop
275
+ * rather than anything the reader could use.
276
+ */
182
277
  paintTaskStatus() {
183
- const label = this.taskMaxSteps > 0 && this.taskStep >= 0
184
- ? `Processing task… Step ${this.taskStep}/${this.taskMaxSteps}`
185
- : 'Processing task…';
186
- this.stdout.write(`\r\x1b[K\x1b[38;5;245m⠋ ${label}\x1b[0m`);
278
+ const status = this.taskStatus || 'Working';
279
+ const label = describeActivity(status);
280
+ // A new engine phase commits the previous row first, so the log grows
281
+ // instead of being overwritten — this is the whole difference between a
282
+ // one-line spinner and a readable, scrollable activity log. Two phases that
283
+ // map to the same short label ("Inferring…" and "Inferring next action…")
284
+ // are still two rows, because the reader is following the work, not the
285
+ // label.
286
+ if (this.liveStatus !== status) {
287
+ this.commitLive();
288
+ this.liveStatus = status;
289
+ this.liveLabel = label;
290
+ this.liveStartedAt = Date.now();
291
+ }
292
+ this.write(`\r\x1b[K\x1b[38;5;245m⠋ ${label} · ${this.elapsedLabel()}\x1b[0m`);
187
293
  this.hasTransientProgress = true;
294
+ this.startLiveClock();
295
+ }
296
+ /**
297
+ * Keep the live row's clock moving while a phase runs.
298
+ *
299
+ * One inference can run for minutes with no event of any kind, and a row
300
+ * frozen at `· 0s` reads as a hang. The timer is unref'd so it can never hold
301
+ * the process open, and it stops the moment the row is committed.
302
+ */
303
+ startLiveClock() {
304
+ if (this.liveTimer || !this.stdout.isTTY)
305
+ return;
306
+ this.liveTimer = setInterval(() => {
307
+ if (this.liveStatus === undefined) {
308
+ this.stopLiveClock();
309
+ return;
310
+ }
311
+ this.paintTaskStatus();
312
+ }, 1000);
313
+ this.liveTimer.unref?.();
314
+ }
315
+ stopLiveClock() {
316
+ if (!this.liveTimer)
317
+ return;
318
+ clearInterval(this.liveTimer);
319
+ this.liveTimer = undefined;
320
+ }
321
+ /** Release the live-row timer; safe to call more than once. */
322
+ dispose() {
323
+ this.stopLiveClock();
188
324
  }
189
325
  formatToolSummary(toolName, params) {
190
326
  if (params.filePath)