@aiwayds/dsh-tui-pi 2.19.0 → 2.21.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 (108) hide show
  1. package/README.md +18 -48
  2. package/README.zh-CN.md +17 -47
  3. package/lib/agents.js +67 -52
  4. package/lib/agents.js.map +1 -1
  5. package/lib/ask-user.js +30 -30
  6. package/lib/ask-user.js.map +1 -1
  7. package/lib/attachments.js +8 -3
  8. package/lib/attachments.js.map +1 -1
  9. package/lib/btw-overlay.d.ts +18 -2
  10. package/lib/btw-overlay.js +55 -15
  11. package/lib/btw-overlay.js.map +1 -1
  12. package/lib/btw.d.ts +46 -6
  13. package/lib/btw.js +60 -20
  14. package/lib/btw.js.map +1 -1
  15. package/lib/custom-provider.js +34 -28
  16. package/lib/custom-provider.js.map +1 -1
  17. package/lib/footer.d.ts +9 -8
  18. package/lib/footer.js +36 -18
  19. package/lib/footer.js.map +1 -1
  20. package/lib/hard-exit.d.ts +36 -0
  21. package/lib/hard-exit.js +64 -0
  22. package/lib/hard-exit.js.map +1 -0
  23. package/lib/history-fork.d.ts +2 -2
  24. package/lib/history-fork.js +12 -9
  25. package/lib/history-fork.js.map +1 -1
  26. package/lib/history-turns.d.ts +4 -2
  27. package/lib/history-turns.js +7 -3
  28. package/lib/history-turns.js.map +1 -1
  29. package/lib/history.js +57 -45
  30. package/lib/history.js.map +1 -1
  31. package/lib/hotkeys.js +44 -33
  32. package/lib/hotkeys.js.map +1 -1
  33. package/lib/i18n/index.d.ts +54 -0
  34. package/lib/i18n/index.js +98 -0
  35. package/lib/i18n/index.js.map +1 -0
  36. package/lib/i18n/registry.d.ts +65 -0
  37. package/lib/i18n/registry.js +129 -0
  38. package/lib/i18n/registry.js.map +1 -0
  39. package/lib/index.js +216 -108
  40. package/lib/index.js.map +1 -1
  41. package/lib/language-ask.d.ts +98 -0
  42. package/lib/language-ask.js +118 -0
  43. package/lib/language-ask.js.map +1 -0
  44. package/lib/live-widgets.js +9 -8
  45. package/lib/live-widgets.js.map +1 -1
  46. package/lib/login.js +5 -4
  47. package/lib/login.js.map +1 -1
  48. package/lib/messages.d.ts +0 -4
  49. package/lib/messages.js +14 -15
  50. package/lib/messages.js.map +1 -1
  51. package/lib/model-profiles.js +32 -20
  52. package/lib/model-profiles.js.map +1 -1
  53. package/lib/panels.js +18 -17
  54. package/lib/panels.js.map +1 -1
  55. package/lib/preflight-projcache.js +9 -3
  56. package/lib/preflight-projcache.js.map +1 -1
  57. package/lib/preset-dialog.d.ts +3 -3
  58. package/lib/preset-dialog.js +20 -17
  59. package/lib/preset-dialog.js.map +1 -1
  60. package/lib/provider-catalog.d.ts +23 -7
  61. package/lib/provider-catalog.js +90 -68
  62. package/lib/provider-catalog.js.map +1 -1
  63. package/lib/queue-panel.d.ts +2 -2
  64. package/lib/queue-panel.js +13 -9
  65. package/lib/queue-panel.js.map +1 -1
  66. package/lib/repair-dialog.d.ts +4 -4
  67. package/lib/repair-dialog.js +23 -16
  68. package/lib/repair-dialog.js.map +1 -1
  69. package/lib/route-dialog.d.ts +3 -3
  70. package/lib/route-dialog.js +20 -14
  71. package/lib/route-dialog.js.map +1 -1
  72. package/lib/selectors.d.ts +15 -1
  73. package/lib/selectors.js +57 -23
  74. package/lib/selectors.js.map +1 -1
  75. package/lib/sessions.d.ts +47 -14
  76. package/lib/sessions.js +162 -53
  77. package/lib/sessions.js.map +1 -1
  78. package/lib/settings.d.ts +68 -9
  79. package/lib/settings.js +327 -78
  80. package/lib/settings.js.map +1 -1
  81. package/lib/skills-manager.js +27 -21
  82. package/lib/skills-manager.js.map +1 -1
  83. package/lib/skills.js +5 -4
  84. package/lib/skills.js.map +1 -1
  85. package/lib/startup-info.js +9 -3
  86. package/lib/startup-info.js.map +1 -1
  87. package/lib/steer-flow.d.ts +14 -4
  88. package/lib/steer-flow.js +24 -9
  89. package/lib/steer-flow.js.map +1 -1
  90. package/lib/stop-dialog.d.ts +2 -2
  91. package/lib/stop-dialog.js +16 -12
  92. package/lib/stop-dialog.js.map +1 -1
  93. package/lib/subagent-viewer.d.ts +3 -6
  94. package/lib/subagent-viewer.js +38 -36
  95. package/lib/subagent-viewer.js.map +1 -1
  96. package/lib/theme-preview.js +12 -11
  97. package/lib/theme-preview.js.map +1 -1
  98. package/lib/theme-settings.d.ts +23 -2
  99. package/lib/theme-settings.js +68 -61
  100. package/lib/theme-settings.js.map +1 -1
  101. package/lib/tui.js +2 -1
  102. package/lib/tui.js.map +1 -1
  103. package/locales/en.json +646 -0
  104. package/locales/ja.json +646 -0
  105. package/locales/ko.json +646 -0
  106. package/locales/zh-CN.json +646 -0
  107. package/package.json +2 -1
  108. package/skills/dsh-tui-pi-config/SKILL.md +9 -2
@@ -1 +1 @@
1
- {"version":3,"file":"startup-info.js","sourceRoot":"","sources":["../src/startup-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup-info.js","sourceRoot":"","sources":["../src/startup-info.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ export declare function buildUserPrompt(text: string): {
58
58
  source: {
59
59
  kind: "user";
60
60
  };
61
- } & Pick<import("@deepseek-ai/dsh-llm").UserMessage, "role" | "id">;
61
+ } & Pick<import("@deepseek-ai/dsh-llm").UserMessage, "id" | "role">;
62
62
  /**
63
63
  * Deliver a built message honoring the chosen route, with the design's race
64
64
  * fallback: a requested steer that cannot land (the turn ended before
@@ -106,9 +106,19 @@ export type QueueActionResult = {
106
106
  * Shared degrade notices — one wording source for the submit dialog path,
107
107
  * the queue panel and the transcript mirrors (review nit: the copy was
108
108
  * duplicated in three places and could drift).
109
+ *
110
+ * Kept as plain English consts (NOT resolved through {@link t}) because
111
+ * src/index.ts renders them directly and this module must not change that
112
+ * import shape. The i18n twins live under the `steer.notice.*` keys and are
113
+ * used by {@link describeQueueActionResult}; the en catalog values are
114
+ * byte-identical to these consts.
109
115
  */
110
116
  export declare const STEER_UNAVAILABLE_NOTICE = "Steering was unavailable \u2014 the message stayed queued as a follow-up.";
111
117
  export declare const TURN_ENDED_QUEUED_NOTICE = "The turn ended before the steer could land \u2014 queued as a follow-up instead.";
118
+ /** Translated twin of {@link STEER_UNAVAILABLE_NOTICE} for render paths that go through `t()`. */
119
+ export declare function steerUnavailableNotice(): string;
120
+ /** Translated twin of {@link TURN_ENDED_QUEUED_NOTICE} for render paths that go through `t()`. */
121
+ export declare function turnEndedQueuedNotice(): string;
112
122
  /** Remove one pending message from the inbox (queue panel `d`). */
113
123
  export declare function removeFromInbox(inbox: RemovableInbox, view: PendingPromptView): QueueActionResult;
114
124
  /**
@@ -130,8 +140,8 @@ export declare function promotePending(agent: DeliverableAgent & {
130
140
  readonly inbox: RemovableInbox;
131
141
  }, view: PendingPromptView): QueueActionResult;
132
142
  /**
133
- * Human-readable transcript notice for one queue action result (UI text is
134
- * English-only per AGENTS.md). The degrade wording states the ACTUAL route
135
- * the message took, per design §二.2/§二.4.
143
+ * Human-readable transcript notice for one queue action result (translated
144
+ * at call time through the `steer.notice.*` keys). The degrade wording
145
+ * states the ACTUAL route the message took, per design §二.2/§二.4.
136
146
  */
137
147
  export declare function describeQueueActionResult(result: QueueActionResult): string;
package/lib/steer-flow.js CHANGED
@@ -20,6 +20,7 @@
20
20
  * follow-up instead of failing (design §二.2 race fallback).
21
21
  */
22
22
  import { createUserMessage } from '@deepseek-ai/dsh-llm';
23
+ import { t } from "./i18n/index.js";
23
24
  /** The submit path for one line: direct send when idle, dialog when running. */
24
25
  export function decideSubmitPath(running) {
25
26
  return running ? 'dialog' : 'direct';
@@ -79,9 +80,23 @@ export function deliverToAgent(agent, message, route) {
79
80
  * Shared degrade notices — one wording source for the submit dialog path,
80
81
  * the queue panel and the transcript mirrors (review nit: the copy was
81
82
  * duplicated in three places and could drift).
83
+ *
84
+ * Kept as plain English consts (NOT resolved through {@link t}) because
85
+ * src/index.ts renders them directly and this module must not change that
86
+ * import shape. The i18n twins live under the `steer.notice.*` keys and are
87
+ * used by {@link describeQueueActionResult}; the en catalog values are
88
+ * byte-identical to these consts.
82
89
  */
83
90
  export const STEER_UNAVAILABLE_NOTICE = 'Steering was unavailable — the message stayed queued as a follow-up.';
84
91
  export const TURN_ENDED_QUEUED_NOTICE = 'The turn ended before the steer could land — queued as a follow-up instead.';
92
+ /** Translated twin of {@link STEER_UNAVAILABLE_NOTICE} for render paths that go through `t()`. */
93
+ export function steerUnavailableNotice() {
94
+ return t('steer.notice.unavailable');
95
+ }
96
+ /** Translated twin of {@link TURN_ENDED_QUEUED_NOTICE} for render paths that go through `t()`. */
97
+ export function turnEndedQueuedNotice() {
98
+ return t('steer.notice.turnEnded');
99
+ }
85
100
  /** Remove one pending message from the inbox (queue panel `d`). */
86
101
  export function removeFromInbox(inbox, view) {
87
102
  let removed;
@@ -128,28 +143,28 @@ export function promotePending(agent, view) {
128
143
  catch {
129
144
  return {
130
145
  kind: 'error',
131
- error: `${delivery.error} — the message left the queue but was NOT delivered; submit it again.`,
146
+ error: t('steer.notice.orphaned', { error: delivery.error }),
132
147
  };
133
148
  }
134
149
  }
135
150
  }
136
151
  /**
137
- * Human-readable transcript notice for one queue action result (UI text is
138
- * English-only per AGENTS.md). The degrade wording states the ACTUAL route
139
- * the message took, per design §二.2/§二.4.
152
+ * Human-readable transcript notice for one queue action result (translated
153
+ * at call time through the `steer.notice.*` keys). The degrade wording
154
+ * states the ACTUAL route the message took, per design §二.2/§二.4.
140
155
  */
141
156
  export function describeQueueActionResult(result) {
142
157
  switch (result.kind) {
143
158
  case 'removed':
144
- return 'Removed from the pending queue.';
159
+ return t('steer.notice.removed');
145
160
  case 'promoted':
146
161
  return result.degraded
147
- ? STEER_UNAVAILABLE_NOTICE
148
- : 'Promoted — steering the current turn now.';
162
+ ? t('steer.notice.unavailable')
163
+ : t('steer.notice.promoted');
149
164
  case 'not-found':
150
- return 'Already claimed or removed — list refreshed.';
165
+ return t('steer.notice.notFound');
151
166
  case 'error':
152
- return `✘ ${result.error}`;
167
+ return t('steer.notice.error', { error: result.error });
153
168
  }
154
169
  }
155
170
  //# sourceMappingURL=steer-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"steer-flow.js","sourceRoot":"","sources":["../src/steer-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"steer-flow.js","sourceRoot":"","sources":["../src/steer-flow.ts"],"names":[],"mappings":"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"}
@@ -45,8 +45,8 @@ export declare function stopConfirmOptions(): ReadonlyArray<{
45
45
  }>;
46
46
  /** Accent-BOLD dialog title. */
47
47
  export declare function stopConfirmTitle(wording: StopConfirmWording): string;
48
- /** Footer hint — hardcoded like every other panel footer (English-only). */
49
- export declare const STOP_CONFIRM_FOOTER = "\u2191\u2193 select \u00B7 1/2 pick \u00B7 Enter confirm \u00B7 Esc keep running";
48
+ /** Footer hint — resolved per call so a live language switch repaints it. */
49
+ export declare function stopConfirmFooter(): string;
50
50
  /**
51
51
  * Pure dialog state: which row is highlighted, and the terminal outcome.
52
52
  * Same shape as the preset dialog's state.
@@ -22,6 +22,7 @@
22
22
  * the CURRENT editor instance through `restoreFocus`.
23
23
  */
24
24
  import { getKeybindings } from '@earendil-works/pi-tui';
25
+ import { t } from "./i18n/index.js";
25
26
  import { PanelHost, panelThemeFns } from "./panels.js";
26
27
  import { BOLD, RESET, ansiFg } from "./theme/index.js";
27
28
  import { clipToWidth, wrapText } from "./text.js";
@@ -37,35 +38,38 @@ export const STOP_CONFIRM_OPTION_IDS = ['stop', 'cancel'];
37
38
  export function stopConfirmWording(mainRunning, runningChildren) {
38
39
  const running = [];
39
40
  if (mainRunning)
40
- running.push('the main turn is generating');
41
+ running.push(t('stop.confirm.mainRunning'));
41
42
  if (runningChildren > 0) {
42
- running.push(`${runningChildren} subagent${runningChildren === 1 ? ' is' : 's are'} running`);
43
+ running.push(runningChildren === 1
44
+ ? t('stop.confirm.childrenOne', { count: runningChildren })
45
+ : t('stop.confirm.childrenMany', { count: runningChildren }));
43
46
  }
44
47
  const situation = running.length > 0
45
- ? `Right now ${running.join(' and ')}.`
46
- : 'Nothing is running right now.';
48
+ ? t('stop.confirm.situation', { parts: running.join(t('stop.confirm.joiner')) })
49
+ : t('stop.confirm.idle');
47
50
  return {
48
- title: '● Stop all LLM work?',
51
+ title: t('stop.confirm.title'),
49
52
  body: [
50
53
  situation,
51
- 'Confirming cancels the main turn and every running subagent. '
52
- + 'Queued messages are kept and the session stays resumable.',
54
+ t('stop.confirm.reassure'),
53
55
  ],
54
56
  };
55
57
  }
56
58
  /** The fixed option rows for one wording. */
57
59
  export function stopConfirmOptions() {
58
60
  return [
59
- { id: 'stop', text: 'Stop everything — cancel the main turn and all subagents' },
60
- { id: 'cancel', text: 'Cancel — keep everything running' },
61
+ { id: 'stop', text: t('stop.option.stop') },
62
+ { id: 'cancel', text: t('stop.option.cancel') },
61
63
  ];
62
64
  }
63
65
  /** Accent-BOLD dialog title. */
64
66
  export function stopConfirmTitle(wording) {
65
67
  return wording.title;
66
68
  }
67
- /** Footer hint — hardcoded like every other panel footer (English-only). */
68
- export const STOP_CONFIRM_FOOTER = '↑↓ select · 1/2 pick · Enter confirm · Esc keep running';
69
+ /** Footer hint — resolved per call so a live language switch repaints it. */
70
+ export function stopConfirmFooter() {
71
+ return t('stop.footer');
72
+ }
69
73
  export function initialStopConfirmState() {
70
74
  return { selected: 0 };
71
75
  }
@@ -142,7 +146,7 @@ export class StopConfirmPanel {
142
146
  : fns.muted(row));
143
147
  }
144
148
  lines.push('');
145
- lines.push(fns.subtle(clipToWidth(STOP_CONFIRM_FOOTER, wrap)));
149
+ lines.push(fns.subtle(clipToWidth(stopConfirmFooter(), wrap)));
146
150
  return lines;
147
151
  }
148
152
  handleInput(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"stop-dialog.js","sourceRoot":"","sources":["../src/stop-dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop-dialog.js","sourceRoot":"","sources":["../src/stop-dialog.ts"],"names":[],"mappings":"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"}
@@ -48,16 +48,13 @@ import { type TuiTheme } from './theme/index.ts';
48
48
  export declare const STEER_SENT_NOTICE = "Steer message sent";
49
49
  /** Notice shown when the target child can no longer receive steering. */
50
50
  export declare const STEER_ENDED_NOTICE = "This subagent has ended \u2014 steering unavailable";
51
- /** Transcript footer for a RUNNING child: x ×2 stops it. */
52
- export declare const VIEWER_FOOTER_RUNNING = "\u2191\u2193 scroll \u00B7 Esc close \u00B7 x \u00D72 stop \u00B7 Enter steer";
53
- /** Transcript footer for a SETTLED child: nothing to stop, x ×2 closes. */
54
- export declare const VIEWER_FOOTER_SETTLED = "\u2191\u2193 scroll \u00B7 Esc close \u00B7 x \u00D72 close \u00B7 Enter steer";
55
51
  /**
56
52
  * The transcript footer for one child state. The x ×2 semantics flipped with
57
53
  * the everything-stop work: on a running child the double press is the
58
54
  * per-subagent STOP (cancel this child), on a settled one — nothing left to
59
55
  * stop — it keeps its old close shortcut. The footer always names which one
60
- * a press will do.
56
+ * a press will do. Resolved through t() per call (never freeze the language
57
+ * in a module constant).
61
58
  */
62
59
  export declare function viewerFooter(running: boolean): string;
63
60
  /** Steer input footer: hardcoded like every other in-panel key hint. */
@@ -120,7 +117,7 @@ export declare function buildSteerMessage(text: string): {
120
117
  kind: "plugin";
121
118
  plugin: string;
122
119
  };
123
- } & Pick<import("@deepseek-ai/dsh-llm").UserMessage, "role" | "id">;
120
+ } & Pick<import("@deepseek-ai/dsh-llm").UserMessage, "id" | "role">;
124
121
  /**
125
122
  * Resolve the route for one child at THIS instant and deliver `text` when it
126
123
  * is live. Pure decision + delivery, no scheduling: callers own the timing
@@ -50,6 +50,7 @@ import { normalizePreview } from "./sessions.js";
50
50
  import { toolSubject } from "./activity.js";
51
51
  import { ansiFg, BOLD, RESET } from "./theme/index.js";
52
52
  import { clipToWidth } from "./text.js";
53
+ import { t } from "./i18n/index.js";
53
54
  /** Live-refresh interval of the transcript panel while it is open. */
54
55
  const VIEWER_TICK_MS = 300;
55
56
  /** How many recent settled children appear after the running ones. */
@@ -64,19 +65,16 @@ const CHILD_LOG_CAP = 2000;
64
65
  export const STEER_SENT_NOTICE = 'Steer message sent';
65
66
  /** Notice shown when the target child can no longer receive steering. */
66
67
  export const STEER_ENDED_NOTICE = 'This subagent has ended — steering unavailable';
67
- /** Transcript footer for a RUNNING child: x ×2 stops it. */
68
- export const VIEWER_FOOTER_RUNNING = '↑↓ scroll · Esc close · x ×2 stop · Enter steer';
69
- /** Transcript footer for a SETTLED child: nothing to stop, x ×2 closes. */
70
- export const VIEWER_FOOTER_SETTLED = '↑↓ scroll · Esc close · x ×2 close · Enter steer';
71
68
  /**
72
69
  * The transcript footer for one child state. The x ×2 semantics flipped with
73
70
  * the everything-stop work: on a running child the double press is the
74
71
  * per-subagent STOP (cancel this child), on a settled one — nothing left to
75
72
  * stop — it keeps its old close shortcut. The footer always names which one
76
- * a press will do.
73
+ * a press will do. Resolved through t() per call (never freeze the language
74
+ * in a module constant).
77
75
  */
78
76
  export function viewerFooter(running) {
79
- return running ? VIEWER_FOOTER_RUNNING : VIEWER_FOOTER_SETTLED;
77
+ return running ? t('viewer.footer.running') : t('viewer.footer.settled');
80
78
  }
81
79
  /** Steer input footer: hardcoded like every other in-panel key hint. */
82
80
  export const STEER_FOOTER = 'Enter send · Shift+Enter newline · Esc cancel';
@@ -197,13 +195,15 @@ function statusGlyph(view) {
197
195
  export function eventLine(event, callNames) {
198
196
  switch (event.type) {
199
197
  case 'turn/start':
200
- return `– turn ${event.data.turn} start`;
198
+ return t('viewer.event.turnStart', { n: event.data.turn });
201
199
  case 'turn/end': {
202
200
  const reason = event.data.reason;
203
201
  const detail = reason.kind === 'error'
204
- ? `error${reason.error !== undefined ? `: ${reason.error.message ?? ''}` : ''}`
202
+ ? (reason.error !== undefined
203
+ ? t('viewer.event.errorDetail', { message: reason.error.message ?? '' })
204
+ : t('viewer.event.error'))
205
205
  : reason.kind;
206
- return `– turn ${event.data.turn} end · ${detail}`;
206
+ return t('viewer.event.turnEnd', { n: event.data.turn, detail });
207
207
  }
208
208
  case 'user/message': {
209
209
  const message = event.data;
@@ -261,7 +261,7 @@ export function eventLine(event, callNames) {
261
261
  }
262
262
  case 'subagent/descriptor': {
263
263
  const descriptor = event.data;
264
- const parts = [`${sunglassesIcon()} subagent`];
264
+ const parts = [`${sunglassesIcon()} ${t('viewer.event.subagent')}`];
265
265
  if (descriptor.provider !== undefined && descriptor.provider !== '')
266
266
  parts.push(descriptor.provider);
267
267
  if (descriptor.mode !== undefined)
@@ -274,7 +274,7 @@ export function eventLine(event, callNames) {
274
274
  const summary = todos
275
275
  .map(todo => `${todo.status === 'in_progress' ? '◐' : '☐'} ${todo.content}`)
276
276
  .join(' ');
277
- return `☑ todos ${done}/${todos.length}: ${normalizePreview(summary)}`;
277
+ return t('viewer.event.todos', { done, total: todos.length, summary: normalizePreview(summary) });
278
278
  }
279
279
  default:
280
280
  return undefined;
@@ -306,7 +306,7 @@ export function pickerItems(views, getRoundCount, maxRounds, getCompactionCount
306
306
  .slice(0, SETTLED_CAP);
307
307
  return [...running, ...settled].map(view => {
308
308
  const rounds = getRoundCount(view.childId);
309
- const roundsText = maxRounds > 0 ? `rounds ${rounds}/${maxRounds}` : `rounds ${rounds}`;
309
+ const roundsText = t('viewer.rounds', { count: rounds, cap: maxRounds > 0 ? `/${maxRounds}` : '' });
310
310
  const mode = view.mode === undefined ? '' : ` [${view.mode}]`;
311
311
  // Model short name — the route's model tail (the segment after the
312
312
  // provider slash; a slash-less route shows whole). List rows scan, so
@@ -323,8 +323,8 @@ export function pickerItems(views, getRoundCount, maxRounds, getCompactionCount
323
323
  // `⚡ injected` — a policy wrap-up (or steer) reached this child; shows
324
324
  // the injection landed even when the child LLM then ignored it.
325
325
  // `⏻ stopped` — the policy FORCE-stopped it (grace exhausted).
326
- const injected = view.injectedAt !== undefined ? ' ⚡ injected' : '';
327
- const stopped = view.hardStop !== undefined ? ' ⏻ stopped' : '';
326
+ const injected = view.injectedAt !== undefined ? ` ${t('viewer.injected')}` : '';
327
+ const stopped = view.hardStop !== undefined ? ` ${t('viewer.stopped')}` : '';
328
328
  return {
329
329
  value: view.childId,
330
330
  label: `${statusGlyph(view)} ${view.label}${mode}: ${roundsText}${stopped}${injected}${modelShort !== undefined ? ` · ${modelShort}` : ''}`,
@@ -424,14 +424,14 @@ class LiveSubagentTable {
424
424
  /** A fresh table over `items` — widths re-fit, selection at `preselect`. */
425
425
  buildList(items, preselect) {
426
426
  return new TablePanel(this.theme, {
427
- title: '● Sub-agents',
427
+ title: t('viewer.title'),
428
428
  // Auto layout: SUB-AGENT fits its content, STATS runs to the edge.
429
- columns: autoColumns([{ key: 'label', title: 'Sub-agent', cap: 40 }, { key: 'description', title: 'Stats' }], items, (item, key) => (key === 'description' ? item.description ?? '' : item.label)),
429
+ columns: autoColumns([{ key: 'label', title: t('viewer.col.subagent'), cap: 40 }, { key: 'description', title: t('viewer.col.stats') }], items, (item, key) => (key === 'description' ? item.description ?? '' : item.label)),
430
430
  rows: items,
431
431
  renderCell: (item, column) => (column.key === 'description' ? item.description ?? '' : item.label),
432
432
  maxVisible: PICKER_MAX_VISIBLE,
433
433
  preselect,
434
- footer: '↑↓ navigate · Enter open · s sort · K stop all · Esc close',
434
+ footer: t('viewer.pickerFooter'),
435
435
  onSelect: item => this.onSelectItem(item),
436
436
  onCancel: () => this.onCancelPicker(),
437
437
  });
@@ -557,18 +557,18 @@ export class SubagentViewerPanel {
557
557
  const wrap = Math.max(2, width - 2);
558
558
  const out = [...this.headerLines(view)];
559
559
  if (truncated)
560
- out.push(fns.subtle(`…history truncated (${CHILD_LOG_CAP} event cap)`));
560
+ out.push(fns.subtle(t('viewer.truncated', { cap: CHILD_LOG_CAP })));
561
561
  // The `⏻` marker row: the maxRounds policy hard-stopped this child — a
562
562
  // synthetic in-transcript line (render-layer composition, the same shape
563
563
  // as the dsh-dcp compaction marker), NOT a log event. It states the
564
564
  // round it fired at and the cap it enforced so the stop reads as policy,
565
565
  // never as a mysterious failure.
566
566
  if (view?.hardStop !== undefined) {
567
- out.push(fns.subtle(clipToWidth(`⏻ hard-stopped by maxRounds policy (round ${view.hardStop.round} + grace exhausted, cap ${view.hardStop.cap})`, wrap)));
567
+ out.push(fns.subtle(clipToWidth(t('viewer.hardStopped', { round: view.hardStop.round, cap: view.hardStop.cap }), wrap)));
568
568
  }
569
569
  const slice = lines.slice(this.scrollTop, this.scrollTop + this.bodyRows);
570
570
  if (slice.length === 0) {
571
- out.push(fns.subtle(' — no events yet —'));
571
+ out.push(fns.subtle(t('viewer.noEvents')));
572
572
  }
573
573
  else {
574
574
  for (const line of slice)
@@ -605,7 +605,7 @@ export class SubagentViewerPanel {
605
605
  // broken.
606
606
  const running = this.bridge.getAgentViews().some(view => view.childId === this.childId && view.outcome === undefined);
607
607
  if (running && this.bridge.cancelChild(this.childId)) {
608
- this.showNotice('⏹ canceling this subagent…');
608
+ this.showNotice(t('viewer.canceling'));
609
609
  }
610
610
  else {
611
611
  this.onClose();
@@ -650,12 +650,12 @@ export class SubagentViewerPanel {
650
650
  headerLines(view) {
651
651
  const p = this.theme.palette;
652
652
  if (view === undefined) {
653
- return [ansiFg(p.accent) + BOLD + `ⓘ subagent ${clipToWidth(this.childId, 8)}` + RESET];
653
+ return [ansiFg(p.accent) + BOLD + t('viewer.header.child', { id: clipToWidth(this.childId, 8) }) + RESET];
654
654
  }
655
- const status = view.outcome === undefined ? 'running'
656
- : view.outcome === 'completed' ? 'completed'
657
- : view.outcome === 'failed' ? 'failed'
658
- : 'cancelled';
655
+ const status = view.outcome === undefined ? t('viewer.status.running')
656
+ : view.outcome === 'completed' ? t('viewer.status.completed')
657
+ : view.outcome === 'failed' ? t('viewer.status.failed')
658
+ : t('viewer.status.cancelled');
659
659
  const statusColor = view.outcome === undefined ? p.accent
660
660
  : view.outcome === 'completed' ? p.success
661
661
  : view.outcome === 'failed' ? p.danger
@@ -671,7 +671,7 @@ export class SubagentViewerPanel {
671
671
  if (view.modelRoute !== undefined)
672
672
  routeParts.push(view.modelRoute);
673
673
  if (view.thinking !== undefined)
674
- routeParts.push(`think ${view.thinking}`);
674
+ routeParts.push(t('viewer.route.think', { effort: view.thinking }));
675
675
  if (view.mode !== undefined)
676
676
  routeParts.push(view.mode);
677
677
  if (view.provider !== undefined && view.provider !== 'spawn')
@@ -681,11 +681,11 @@ export class SubagentViewerPanel {
681
681
  // Line 3 — the activity/budget indicators (the old header tail).
682
682
  const maxRounds = this.readMaxRounds();
683
683
  const rounds = this.bridge.getRoundCount(this.childId);
684
- const tail = [`rounds ${rounds}${maxRounds > 0 ? `/${maxRounds}` : ''}`];
684
+ const tail = [t('viewer.rounds', { count: rounds, cap: maxRounds > 0 ? `/${maxRounds}` : '' })];
685
685
  if (view.hardStop !== undefined)
686
- tail.push(`⏻ hard-stopped @${view.hardStop.round}`);
686
+ tail.push(t('viewer.hardStoppedAt', { round: view.hardStop.round }));
687
687
  if (view.injectedAt !== undefined)
688
- tail.push('⚡ injected');
688
+ tail.push(t('viewer.injected'));
689
689
  if (view.tokens > 0)
690
690
  tail.push(formatTokens(view.tokens));
691
691
  const elapsed = (view.outcome === undefined ? Date.now() : view.endedAt ?? Date.now()) - view.startedAt;
@@ -754,15 +754,15 @@ export class SteerInputPanel {
754
754
  const fns = panelThemeFns(this.theme);
755
755
  const wrap = Math.max(2, width - 2);
756
756
  const lines = [
757
- fns.accent(BOLD + clipToWidth(`Steer ${this.options.label}`, wrap) + RESET),
758
- fns.muted(clipToWidth('Delivered as a plugin-sourced user message.', wrap)),
757
+ fns.accent(BOLD + clipToWidth(t('viewer.steer.title', { label: this.options.label }), wrap) + RESET),
758
+ fns.muted(clipToWidth(t('viewer.steer.hint'), wrap)),
759
759
  '',
760
760
  ...this.editor.render(wrap),
761
761
  '',
762
762
  ];
763
763
  if (this.error !== undefined)
764
764
  lines.push(this.fgDanger(clipToWidth(`✘ ${this.error}`, wrap)));
765
- lines.push(fns.subtle(clipToWidth(STEER_FOOTER, wrap)));
765
+ lines.push(fns.subtle(clipToWidth(t('viewer.steer.footer'), wrap)));
766
766
  return lines;
767
767
  }
768
768
  handleInput(data) {
@@ -874,7 +874,9 @@ export async function openSubagentViewer(ctx, tui, theme, bridge, restoreFocus)
874
874
  if (key === 'K') {
875
875
  const stopped = bridge.cancelAllChildren();
876
876
  // Feedback rides the same toast channel as the per-viewer stop.
877
- panel.showNotice?.(`⏹ stop-all: ${stopped} subagent${stopped === 1 ? '' : 's'} canceled`);
877
+ panel.showNotice?.(stopped === 1
878
+ ? t('viewer.stopAllOne')
879
+ : t('viewer.stopAllMany', { n: stopped }));
878
880
  return true;
879
881
  }
880
882
  return false;
@@ -902,7 +904,7 @@ export async function openSubagentViewer(ctx, tui, theme, bridge, restoreFocus)
902
904
  }, () => tui.requestRender(), () => {
903
905
  // Ended children get an inline notice INSTEAD of the input box.
904
906
  if (!steerAvailable(childId)) {
905
- panel.showNotice(STEER_ENDED_NOTICE);
907
+ panel.showNotice(t('viewer.steer.ended'));
906
908
  return;
907
909
  }
908
910
  panel.dispose();
@@ -924,7 +926,7 @@ export async function openSubagentViewer(ctx, tui, theme, bridge, restoreFocus)
924
926
  // settled while the message was being typed or queued.
925
927
  deliverSubagentSteer(findView(childId), ctx.agents.get(SessionId(childId)), text),
926
928
  onFinish: result => {
927
- showViewer(childId, result.outcome === 'sent' ? STEER_SENT_NOTICE : STEER_ENDED_NOTICE);
929
+ showViewer(childId, result.outcome === 'sent' ? t('viewer.steer.sent') : t('viewer.steer.ended'));
928
930
  },
929
931
  onCancel: () => showViewer(childId),
930
932
  requestRender: () => tui.requestRender(),