@aiwayds/dsh-tui-pi 2.18.2 → 2.20.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 (106) hide show
  1. package/README.md +12 -43
  2. package/README.zh-CN.md +11 -42
  3. package/lib/agents.js +67 -52
  4. package/lib/agents.js.map +1 -1
  5. package/lib/ask-user.d.ts +122 -3
  6. package/lib/ask-user.js +335 -41
  7. package/lib/ask-user.js.map +1 -1
  8. package/lib/attachments.js +8 -3
  9. package/lib/attachments.js.map +1 -1
  10. package/lib/btw.d.ts +4 -2
  11. package/lib/btw.js +22 -16
  12. package/lib/btw.js.map +1 -1
  13. package/lib/custom-provider.js +34 -28
  14. package/lib/custom-provider.js.map +1 -1
  15. package/lib/footer.d.ts +9 -8
  16. package/lib/footer.js +36 -18
  17. package/lib/footer.js.map +1 -1
  18. package/lib/hard-exit.d.ts +36 -0
  19. package/lib/hard-exit.js +64 -0
  20. package/lib/hard-exit.js.map +1 -0
  21. package/lib/history-fork.d.ts +2 -2
  22. package/lib/history-fork.js +12 -9
  23. package/lib/history-fork.js.map +1 -1
  24. package/lib/history-turns.d.ts +4 -2
  25. package/lib/history-turns.js +7 -3
  26. package/lib/history-turns.js.map +1 -1
  27. package/lib/history.js +57 -45
  28. package/lib/history.js.map +1 -1
  29. package/lib/hotkeys.js +44 -33
  30. package/lib/hotkeys.js.map +1 -1
  31. package/lib/i18n/index.d.ts +54 -0
  32. package/lib/i18n/index.js +98 -0
  33. package/lib/i18n/index.js.map +1 -0
  34. package/lib/i18n/registry.d.ts +65 -0
  35. package/lib/i18n/registry.js +129 -0
  36. package/lib/i18n/registry.js.map +1 -0
  37. package/lib/index.js +219 -109
  38. package/lib/index.js.map +1 -1
  39. package/lib/language-ask.d.ts +98 -0
  40. package/lib/language-ask.js +118 -0
  41. package/lib/language-ask.js.map +1 -0
  42. package/lib/live-widgets.js +9 -8
  43. package/lib/live-widgets.js.map +1 -1
  44. package/lib/login.js +5 -4
  45. package/lib/login.js.map +1 -1
  46. package/lib/messages.d.ts +0 -4
  47. package/lib/messages.js +14 -15
  48. package/lib/messages.js.map +1 -1
  49. package/lib/model-profiles.js +32 -20
  50. package/lib/model-profiles.js.map +1 -1
  51. package/lib/panels.js +18 -17
  52. package/lib/panels.js.map +1 -1
  53. package/lib/preflight-projcache.js +9 -3
  54. package/lib/preflight-projcache.js.map +1 -1
  55. package/lib/preset-dialog.d.ts +3 -3
  56. package/lib/preset-dialog.js +20 -17
  57. package/lib/preset-dialog.js.map +1 -1
  58. package/lib/provider-catalog.d.ts +23 -7
  59. package/lib/provider-catalog.js +90 -68
  60. package/lib/provider-catalog.js.map +1 -1
  61. package/lib/queue-panel.d.ts +2 -2
  62. package/lib/queue-panel.js +13 -9
  63. package/lib/queue-panel.js.map +1 -1
  64. package/lib/repair-dialog.d.ts +4 -4
  65. package/lib/repair-dialog.js +23 -16
  66. package/lib/repair-dialog.js.map +1 -1
  67. package/lib/route-dialog.d.ts +3 -3
  68. package/lib/route-dialog.js +20 -14
  69. package/lib/route-dialog.js.map +1 -1
  70. package/lib/selectors.d.ts +15 -1
  71. package/lib/selectors.js +57 -23
  72. package/lib/selectors.js.map +1 -1
  73. package/lib/sessions.d.ts +47 -14
  74. package/lib/sessions.js +162 -53
  75. package/lib/sessions.js.map +1 -1
  76. package/lib/settings.d.ts +68 -9
  77. package/lib/settings.js +327 -78
  78. package/lib/settings.js.map +1 -1
  79. package/lib/skills-manager.js +27 -21
  80. package/lib/skills-manager.js.map +1 -1
  81. package/lib/skills.js +5 -4
  82. package/lib/skills.js.map +1 -1
  83. package/lib/startup-info.js +9 -3
  84. package/lib/startup-info.js.map +1 -1
  85. package/lib/steer-flow.d.ts +14 -4
  86. package/lib/steer-flow.js +24 -9
  87. package/lib/steer-flow.js.map +1 -1
  88. package/lib/stop-dialog.d.ts +2 -2
  89. package/lib/stop-dialog.js +16 -12
  90. package/lib/stop-dialog.js.map +1 -1
  91. package/lib/subagent-viewer.d.ts +3 -8
  92. package/lib/subagent-viewer.js +38 -62
  93. package/lib/subagent-viewer.js.map +1 -1
  94. package/lib/theme-preview.js +12 -11
  95. package/lib/theme-preview.js.map +1 -1
  96. package/lib/theme-settings.d.ts +44 -2
  97. package/lib/theme-settings.js +97 -54
  98. package/lib/theme-settings.js.map +1 -1
  99. package/lib/tui.js +2 -1
  100. package/lib/tui.js.map +1 -1
  101. package/locales/en.json +646 -0
  102. package/locales/ja.json +646 -0
  103. package/locales/ko.json +646 -0
  104. package/locales/zh-CN.json +646 -0
  105. package/package.json +2 -1
  106. package/skills/dsh-tui-pi-config/SKILL.md +14 -4
package/lib/history.js CHANGED
@@ -59,9 +59,10 @@ import { SessionId } from '@deepseek-ai/dsh-session';
59
59
  import { Container, getKeybindings, HStack, matchesKey, Markdown, Spacer, Text, VStack, } from '@earendil-works/pi-tui';
60
60
  import { groupHistoryTurns, matchesTurnFilter, toolCallSummary, turnPrimaryUserText, turnSeedSlice, } from "./history-turns.js";
61
61
  import { stopIcon } from "./icons.js";
62
+ import { t } from "./i18n/index.js";
62
63
  import { isCorruptLogError } from "./log-repair.js";
63
64
  import { autoColumns, PanelHost, panelThemeFns, TablePanel } from "./panels.js";
64
- import { headerOf, isResumableSessionHeader, inspectPersistedSession, loadSessionLastUpdates, loadSessionPreviews, normalizePreview, PREVIEW_SESSION_CAP, RESUME_DIR_CAP, resumeRowTitle, sortSessionsByLastUpdate, } from "./sessions.js";
65
+ import { headerOf, isResumableSessionHeader, inspectPersistedSession, loadSessionLastUpdates, loadSessionPreviews, normalizePreview, PREVIEW_SESSION_CAP, RESUME_DIR_CAP, resumeRowTitle, orderSessionsByLastUpdate, } from "./sessions.js";
65
66
  import { ansiFg, BOLD, RESET } from "./theme/index.js";
66
67
  import { clipToWidth } from "./text.js";
67
68
  /** Terminal width at which the browser switches from stacked to side-by-side. */
@@ -82,8 +83,13 @@ export const MAX_USER_BUBBLE_LINES = 40;
82
83
  * budget nothing changes.
83
84
  */
84
85
  export const MAX_DETAIL_LINES = 4000;
85
- /** List footer hint (the detail pane carries the scroll hints). */
86
- const HISTORY_FOOTER = '↑↓ navigate · Enter/c copy · f fork · → detail · s session · / filter · Esc close';
86
+ /**
87
+ * List footer hint (the detail pane carries the scroll hints). A function, not
88
+ * a const: a module-top t() would freeze the footer in the startup language.
89
+ */
90
+ function historyFooter() {
91
+ return t('history.footer');
92
+ }
87
93
  /**
88
94
  * Content-row budget inside the framed overlay: showOverlay slices the
89
95
  * component's lines at maxHeight ('85%' of the terminal — pi-tui floors the
@@ -123,12 +129,12 @@ export function historyRows(turns, query) {
123
129
  .map(turn => ({
124
130
  turn,
125
131
  turnLabel: String(turn.turn),
126
- preview: normalizePreview(turn.previewText) || '(no text)',
132
+ preview: normalizePreview(turn.previewText) || t('history.noText'),
127
133
  }));
128
134
  }
129
135
  /** The left-list title for one browsed session. */
130
136
  function historyListTitle(sessionId, live) {
131
- return `● History · ${clipToWidth(sessionId, 8)}${live ? ' (live)' : ''}`;
137
+ return `${t('history.listTitle', { id: clipToWidth(sessionId, 8) })}${live ? ` ${t('history.liveTag')}` : ''}`;
132
138
  }
133
139
  /**
134
140
  * The user bubble's styled body: `▎ `-prefixed lines (the main transcript's
@@ -140,19 +146,19 @@ function userBubbleText(text, theme) {
140
146
  const lines = text.split('\n');
141
147
  const body = lines.length <= MAX_USER_BUBBLE_LINES
142
148
  ? lines
143
- : [...lines.slice(0, MAX_USER_BUBBLE_LINES), `… +${lines.length - MAX_USER_BUBBLE_LINES} more lines`];
149
+ : [...lines.slice(0, MAX_USER_BUBBLE_LINES), t('history.moreLines', { count: lines.length - MAX_USER_BUBBLE_LINES })];
144
150
  return theme.chat.userMessageText(body.map(line => `▎ ${line}`).join('\n'));
145
151
  }
146
152
  /** The turn-end status line (the main transcript's renderTurnEnd vocabulary). */
147
153
  function turnEndLine(turn, theme) {
148
154
  if (turn.endReason === 'error') {
149
- return ansiFg(theme.palette.danger) + `✘ ${turn.endError ?? 'turn failed'}` + RESET;
155
+ return ansiFg(theme.palette.danger) + `✘ ${turn.endError ?? t('history.turnFailed')}` + RESET;
150
156
  }
151
157
  if (turn.endReason === 'aborted' || turn.endReason === 'interrupted' || turn.interrupted) {
152
- return ansiFg(theme.palette.fgSubtle) + `${stopIcon()} interrupted` + RESET;
158
+ return ansiFg(theme.palette.fgSubtle) + `${stopIcon()} ${t('history.interrupted')}` + RESET;
153
159
  }
154
160
  if (turn.endReason === 'max-tokens') {
155
- return ansiFg(theme.palette.attention) + '⚠ output token limit reached' + RESET;
161
+ return ansiFg(theme.palette.attention) + `⚠ ${t('history.maxTokens')}` + RESET;
156
162
  }
157
163
  return undefined;
158
164
  }
@@ -195,11 +201,11 @@ export function buildTurnDetailContainer(turn, theme, sessionId) {
195
201
  }
196
202
  if (truncated > 0) {
197
203
  const pointer = sessionId !== undefined ? `/resume ${clipToWidth(sessionId, 8)} ` : '/resume ';
198
- doc.addChild(new Text(ansiFg(theme.palette.fgSubtle) + `… ${truncated} more lines truncated ${pointer}for the full turn` + RESET, 1, 0));
204
+ doc.addChild(new Text(ansiFg(theme.palette.fgSubtle) + t('history.truncated', { count: truncated, pointer }) + RESET, 1, 0));
199
205
  doc.addChild(new Spacer(1));
200
206
  }
201
207
  if (turn.userTexts.length === 0 && turn.assistantTexts.length === 0) {
202
- doc.addChild(new Text(ansiFg(theme.palette.fgSubtle) + '(this turn rendered no prompt or reply text)' + RESET, 1, 0));
208
+ doc.addChild(new Text(ansiFg(theme.palette.fgSubtle) + t('history.emptyTurn') + RESET, 1, 0));
203
209
  doc.addChild(new Spacer(1));
204
210
  }
205
211
  if (turn.toolCallNames.length > 0) {
@@ -247,10 +253,10 @@ class TurnDetailPane {
247
253
  /** Static rebuild: swap the content to `turn`'s events and reset to the top. */
248
254
  setTurn(turn, live, sessionId) {
249
255
  this.scrollTop = 0;
250
- const source = live ? ' · live snapshot' : '';
256
+ const source = live ? ` · ${t('history.liveSnapshot')}` : '';
251
257
  this.headerTitle = turn === undefined
252
- ? 'History'
253
- : `Turn ${String(turn.turn)}${turn.endReason === 'completed' ? '' : ` · ${turn.endReason}`}${turn.interrupted ? ' · interrupted' : ''}${source}`;
258
+ ? t('history.title')
259
+ : `${t('history.turnTitle', { turn: String(turn.turn) })}${turn.endReason === 'completed' ? '' : ` · ${turn.endReason}`}${turn.interrupted ? ` · ${t('history.interrupted')}` : ''}${source}`;
254
260
  this.container = turn === undefined
255
261
  ? new Container()
256
262
  : buildTurnDetailContainer(turn, this.theme, sessionId);
@@ -294,22 +300,28 @@ class TurnDetailPane {
294
300
  const maxScroll = Math.max(0, lines.length - this.bodyRows);
295
301
  this.scrollTop = Math.max(0, Math.min(this.scrollTop, maxScroll));
296
302
  const body = this.lineCount === 0
297
- ? [fns.subtle(clipToWidth('Select a turn on the left.', width))]
303
+ ? [fns.subtle(clipToWidth(t('history.selectTurn'), width))]
298
304
  : lines.slice(this.scrollTop, this.scrollTop + this.bodyRows);
299
305
  while (body.length < this.bodyRows)
300
306
  body.push('');
301
307
  // Focus visuals: the focused pane's title reads accent BOLD, the idle
302
308
  // one fades to subtle; the focused footer carries the exit/scroll hints.
303
- const title = this.headerTitle === '' ? 'History' : this.headerTitle;
309
+ const title = this.headerTitle === '' ? t('history.title') : this.headerTitle;
304
310
  const header = this.focused
305
311
  ? fns.accent(BOLD + clipToWidth(title, width) + RESET)
306
312
  : fns.subtle(clipToWidth(title, width));
307
313
  const window = this.lineCount > this.bodyRows
308
- ? `${this.scrollTop + 1}–${Math.min(this.lineCount, this.scrollTop + this.bodyRows)}/${this.lineCount} lines`
309
- : `${this.lineCount} line${this.lineCount === 1 ? '' : 's'}`;
314
+ ? t('history.linesRange', {
315
+ start: this.scrollTop + 1,
316
+ end: Math.min(this.lineCount, this.scrollTop + this.bodyRows),
317
+ total: this.lineCount,
318
+ })
319
+ : this.lineCount === 1
320
+ ? t('history.lineOne', { count: this.lineCount })
321
+ : t('history.lineMany', { count: this.lineCount });
310
322
  const footer = this.focused
311
- ? `← list · ↑↓ scroll · [ / ] page · ${window}`
312
- : `[ / ] page · ${window}`;
323
+ ? t('history.detailFooterFocused', { window })
324
+ : t('history.detailFooterIdle', { window });
313
325
  return [header, '', ...body, '', fns.subtle(clipToWidth(footer, width))];
314
326
  }
315
327
  }
@@ -337,9 +349,9 @@ export function historyLoadErrorMessage(id, error) {
337
349
  const message = error instanceof Error ? error.message : String(error);
338
350
  const short = clipToWidth(id, 8);
339
351
  if (isCorruptLogError(message)) {
340
- return `⚠ ${short}: corrupt session log — /resume ${short} offers a repair.`;
352
+ return t('history.corruptLog', { id: short });
341
353
  }
342
- return `Cannot read ${short}: ${message}`;
354
+ return t('history.cannotRead', { id: short, message });
343
355
  }
344
356
  /**
345
357
  * Case-insensitive substring filter over the picker's display vocabulary:
@@ -368,11 +380,11 @@ export function filterSessionPickRows(rows, query) {
368
380
  async function buildSessionPickRows(ctx, currentId) {
369
381
  const persistence = ctx.get('sessionPersistence');
370
382
  if (persistence === undefined) {
371
- throw new Error('Session persistence is not configured in this profile.');
383
+ throw new Error(t('history.noPersistence'));
372
384
  }
373
385
  const headers = (await persistence.list()).map(headerOf).filter(isResumableSessionHeader);
374
386
  const lastUpdates = await loadSessionLastUpdates();
375
- const ordered = sortSessionsByLastUpdate(headers, lastUpdates);
387
+ const ordered = orderSessionsByLastUpdate(headers, lastUpdates);
376
388
  const { previews, corruptIds } = await loadSessionPreviews(persistence, ordered.slice(0, PREVIEW_SESSION_CAP).map(header => header.id));
377
389
  return ordered.map(header => {
378
390
  const id = String(header.id);
@@ -381,7 +393,7 @@ async function buildSessionPickRows(ctx, currentId) {
381
393
  return {
382
394
  id,
383
395
  updated: new Date(updated).toLocaleString(),
384
- dir: header.cwd ?? 'no cwd',
396
+ dir: header.cwd ?? t('history.noCwd'),
385
397
  session: id === currentId ? `● ${title}` : title,
386
398
  };
387
399
  });
@@ -457,8 +469,8 @@ export class HistoryBrowserPanel {
457
469
  // needs carrying over.
458
470
  const wasFiltering = this.list?.isFiltering() ?? false;
459
471
  const columns = autoColumns([
460
- { key: 'turnLabel', title: 'Turn', cap: 6, align: 'right' },
461
- { key: 'preview', title: 'Prompt' },
472
+ { key: 'turnLabel', title: t('history.col.turn'), cap: 6, align: 'right' },
473
+ { key: 'preview', title: t('history.col.prompt') },
462
474
  ], this.rows, (row, key) => (key === 'preview' ? row.preview : row.turnLabel));
463
475
  this.listOptions = {
464
476
  title,
@@ -466,14 +478,14 @@ export class HistoryBrowserPanel {
466
478
  rows: this.rows,
467
479
  renderCell: (row, column) => (column.key === 'preview' ? row.preview : row.turnLabel),
468
480
  maxVisible: this.listMax,
469
- footer: HISTORY_FOOTER,
470
- emptyHint: 'No completed turns',
481
+ footer: historyFooter(),
482
+ emptyHint: t('history.empty'),
471
483
  // Focus visualization: the focused list shows the ▸ cursor; while the
472
484
  // detail pane owns the keyboard the cursor demotes to `›` (the list is
473
485
  // still visible, just not keyed).
474
486
  marker: selected => selected ? (this.focus === 'detail' ? '› ' : '▸ ') : ' ',
475
487
  onSelect: row => this.copyTurn(row.turn),
476
- onCancel: () => this.finish('History closed.'),
488
+ onCancel: () => this.finish(t('history.closed')),
477
489
  shortcuts: {
478
490
  c: () => this.copySelected(),
479
491
  s: () => { void this.openSessionPicker(); },
@@ -624,12 +636,12 @@ export class HistoryBrowserPanel {
624
636
  // not land in the editor — one Enter would submit a notice as a prompt).
625
637
  const text = turnPrimaryUserText(turn);
626
638
  if (text === undefined || text === '') {
627
- this.status = 'Nothing to copy — the turn has no user prompt.';
639
+ this.status = t('history.nothingToCopy');
628
640
  this.deps.requestRender();
629
641
  return;
630
642
  }
631
643
  this.deps.copyToEditor(text);
632
- this.finish('Prompt copied to the editor.');
644
+ this.finish(t('history.copied'));
633
645
  }
634
646
  copySelected() {
635
647
  const row = this.list.selectedRow();
@@ -686,20 +698,20 @@ export class HistoryBrowserPanel {
686
698
  buildSessionPickerPanel(rows) {
687
699
  let query = '';
688
700
  const columns = autoColumns([
689
- { key: 'updated', title: 'Updated', cap: 26 },
701
+ { key: 'updated', title: t('history.col.updated'), cap: 26 },
690
702
  // Same cap as the /resume picker's DIR column.
691
- { key: 'dir', title: 'Dir', cap: RESUME_DIR_CAP },
692
- { key: 'session', title: 'Session' },
703
+ { key: 'dir', title: t('history.col.dir'), cap: RESUME_DIR_CAP },
704
+ { key: 'session', title: t('history.col.session') },
693
705
  ], rows, (row, key) => row[key]);
694
706
  let picker;
695
707
  const options = {
696
- title: '● Browse session',
708
+ title: t('history.pickerTitle'),
697
709
  columns,
698
710
  rows: [...rows],
699
711
  renderCell: (row, column) => row[column.key],
700
- footer: '↑↓ navigate · Enter browse · / filter · Esc back',
712
+ footer: t('history.pickerFooter'),
701
713
  maxVisible: listMaxVisible(),
702
- emptyHint: 'No matching sessions',
714
+ emptyHint: t('history.noMatching'),
703
715
  onSelect: row => { void this.loadAndShow(row.id); },
704
716
  onCancel: () => {
705
717
  // Back to the browser: show it, then the host hides the picker. (A
@@ -745,12 +757,12 @@ export class HistoryBrowserPanel {
745
757
  if (outcome !== true)
746
758
  return;
747
759
  await this.deps.forkAtTurn(seed, this.sessionId);
748
- this.finish(`Forked at turn ${row.turnLabel} — new session opened.`);
760
+ this.finish(t('history.forked', { turn: row.turnLabel }));
749
761
  }
750
762
  catch (error) {
751
763
  const message = error instanceof Error ? error.message : String(error);
752
- this.status = `Fork failed: ${message}`;
753
- this.deps.reportError(`Fork at turn ${row.turnLabel} failed: ${message}`);
764
+ this.status = t('history.forkFailed', { message });
765
+ this.deps.reportError(t('history.forkAtTurnFailed', { turn: row.turnLabel, message }));
754
766
  this.deps.requestRender();
755
767
  }
756
768
  finally {
@@ -776,7 +788,7 @@ export class HistoryBrowserPanel {
776
788
  if (this.closed)
777
789
  return;
778
790
  if (rows.length === 0) {
779
- this.status = 'No stored sessions to browse.';
791
+ this.status = t('history.noStored');
780
792
  this.deps.requestRender();
781
793
  return;
782
794
  }
@@ -803,7 +815,7 @@ export async function openHistoryBrowser(deps, sessionIdArg) {
803
815
  const target = sessionIdArg ?? deps.getSessionId();
804
816
  if (target === undefined || target === '') {
805
817
  return {
806
- text: 'No active session — use /history <sessionId> to browse a stored one.',
818
+ text: t('history.noActive'),
807
819
  error: true,
808
820
  };
809
821
  }
@@ -820,14 +832,14 @@ export async function openHistoryBrowser(deps, sessionIdArg) {
820
832
  // gets the truth: this is a mount failure, not a quiet close. (Promise
821
833
  // resolution is idempotent, so a later finish/onFinish is a no-op.)
822
834
  deps.restoreFocus();
823
- resolve({ text: 'Failed to open the history viewer.', error: true });
835
+ resolve({ text: t('history.openFailed'), error: true });
824
836
  });
825
837
  const panel = new HistoryBrowserPanel(deps, host, loaded);
826
838
  panel.onFinish = text => resolve({ text, error: false });
827
839
  const handle = host.open(panel, '90%', '85%');
828
840
  if (handle === undefined) {
829
841
  // host.open already ran the error path above (focus restored + resolve).
830
- resolve({ text: 'Failed to open the history viewer.', error: true });
842
+ resolve({ text: t('history.openFailed'), error: true });
831
843
  }
832
844
  });
833
845
  }
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}
package/lib/hotkeys.js CHANGED
@@ -19,6 +19,7 @@
19
19
  */
20
20
  import { readFileSync, writeFileSync } from 'node:fs';
21
21
  import { basename, join } from 'node:path';
22
+ import { t } from "./i18n/index.js";
22
23
  import { DEFAULT_KEYBINDINGS } from "./keymap.js";
23
24
  import { FieldPanel, PanelHost } from "./panels.js";
24
25
  import { EditField } from "./settings.js";
@@ -31,15 +32,17 @@ export function keybindingsPath(home) {
31
32
  }
32
33
  /** The six app-level bindings the file may remap (order = display order). */
33
34
  export const APP_KEY_FIELDS = ['escape', 'ctrlC', 'ctrlD', 'modelPicker', 'subagentViewer', 'queuePanel'];
34
- /** Action descriptions for the `/hotkeys` table. */
35
- const KEY_ACTIONS = {
36
- escape: 'stop the current task — requires two presses (1st arms, 2nd within 500ms fires)',
37
- ctrlC: 'running: cancel turn · idle: clear editor · second press quits',
38
- ctrlD: 'quit only on an empty editor',
39
- modelPicker: 'open the model / think picker',
40
- subagentViewer: 'open the subagent picker / viewer',
41
- queuePanel: 'open the pending-message queue (d remove · s steer now)',
42
- };
35
+ /** Action description for one app key in the `/hotkeys` table. A function, not a module table: the text resolves through `t()` on every call so a language switch re-renders instead of freezing the boot-time language. */
36
+ function keyAction(field) {
37
+ switch (field) {
38
+ case 'escape': return t('hotkeys.action.escape');
39
+ case 'ctrlC': return t('hotkeys.action.ctrlC');
40
+ case 'ctrlD': return t('hotkeys.action.ctrlD');
41
+ case 'modelPicker': return t('hotkeys.action.modelPicker');
42
+ case 'subagentViewer': return t('hotkeys.action.subagentViewer');
43
+ case 'queuePanel': return t('hotkeys.action.queuePanel');
44
+ }
45
+ }
43
46
  // ------------------------------------------------------------- validation --
44
47
  const MODIFIERS = new Set(['ctrl', 'shift', 'alt', 'super']);
45
48
  const NAMED_KEYS = new Set([
@@ -99,10 +102,10 @@ export function loadKeyBindings(path) {
99
102
  raw = JSON.parse(text);
100
103
  }
101
104
  catch (error) {
102
- return { bindings: {}, warnings: [`${label}: invalid JSON — ${error.message}`], exists: true };
105
+ return { bindings: {}, warnings: [t('hotkeys.warn.invalidJson', { label, error: error.message })], exists: true };
103
106
  }
104
107
  if (raw === null || typeof raw !== 'object' || Array.isArray(raw)) {
105
- return { bindings: {}, warnings: [`${label}: expected a JSON object of app-key → key id`], exists: true };
108
+ return { bindings: {}, warnings: [t('hotkeys.warn.notObject', { label })], exists: true };
106
109
  }
107
110
  const record = raw;
108
111
  const bindings = {};
@@ -112,7 +115,7 @@ export function loadKeyBindings(path) {
112
115
  if (value === undefined)
113
116
  continue;
114
117
  if (!isValidKeyId(value)) {
115
- warnings.push(`${label}: "${field}" = ${JSON.stringify(value)} is not a valid key id — keeping the default`);
118
+ warnings.push(t('hotkeys.warn.invalidKey', { label, field, value: JSON.stringify(value) }));
116
119
  }
117
120
  else {
118
121
  bindings[field] = value;
@@ -120,7 +123,7 @@ export function loadKeyBindings(path) {
120
123
  }
121
124
  for (const field of Object.keys(record)) {
122
125
  if (!APP_KEY_FIELDS.includes(field)) {
123
- warnings.push(`${label}: unknown field "${field}" — ignored`);
126
+ warnings.push(t('hotkeys.warn.unknownField', { label, field }));
124
127
  }
125
128
  }
126
129
  return { bindings, warnings, exists: true };
@@ -141,13 +144,13 @@ export function updateKeyBindingsFile(path, updates) {
141
144
  fileExisted = true;
142
145
  const parsed = JSON.parse(text);
143
146
  if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
144
- return `${label}: expected a JSON object — fix or delete the file, then retry`;
147
+ return t('hotkeys.file.notObject', { label });
145
148
  }
146
149
  Object.assign(existing, parsed);
147
150
  }
148
151
  catch (error) {
149
152
  if (fileExisted)
150
- return `${label}: ${error.message} — fix or delete the file, then retry`;
153
+ return t('hotkeys.file.parseError', { label, error: error.message });
151
154
  // Absent file: start fresh.
152
155
  }
153
156
  for (const [field, value] of updates) {
@@ -160,7 +163,7 @@ export function updateKeyBindingsFile(path, updates) {
160
163
  writeFileSync(path, JSON.stringify(existing, null, 2) + '\n');
161
164
  }
162
165
  catch (error) {
163
- return `${label}: cannot write — ${error.message}`;
166
+ return t('hotkeys.file.writeError', { label, error: error.message });
164
167
  }
165
168
  return undefined;
166
169
  }
@@ -170,7 +173,7 @@ export function parseKeyInput(text) {
170
173
  if (trimmed === '')
171
174
  return { kind: 'unset' };
172
175
  if (!isValidKeyId(trimmed)) {
173
- return { kind: 'error', error: `not a key id — ctrl/shift/alt/super + key (e.g. ctrl+x, f5, escape)` };
176
+ return { kind: 'error', error: t('hotkeys.parse.notKeyId') };
174
177
  }
175
178
  return { kind: 'value', value: trimmed };
176
179
  }
@@ -185,7 +188,7 @@ export function appHotkeyRows(custom) {
185
188
  return {
186
189
  field,
187
190
  key: displayKey(override ?? DEFAULT_KEYBINDINGS[field]),
188
- action: KEY_ACTIONS[field],
191
+ action: keyAction(field),
189
192
  custom: override !== undefined,
190
193
  };
191
194
  });
@@ -204,7 +207,7 @@ export async function openHotkeysManager(tui, theme, options) {
204
207
  let settle;
205
208
  const host = new PanelHost(tui, theme, message => {
206
209
  options.restoreFocus();
207
- settle?.(`✘ failed to open the hotkeys view: ${message}`);
210
+ settle?.(t('hotkeys.openFailed', { message }));
208
211
  });
209
212
  /** Re-read the file after a write and push the change into the running TUI. */
210
213
  const applyBindings = () => {
@@ -220,25 +223,28 @@ export async function openHotkeysManager(tui, theme, options) {
220
223
  editable: true,
221
224
  }));
222
225
  const customCount = Object.keys(loaded.bindings).length;
226
+ const customLine = loaded.exists
227
+ ? (customCount === 1
228
+ ? t('hotkeys.custom.one', { path: options.filePath })
229
+ : t('hotkeys.custom.many', { path: options.filePath, count: customCount }))
230
+ : t('hotkeys.custom.missing', { path: options.filePath });
223
231
  const content = [
224
- loaded.exists
225
- ? `custom: ${options.filePath} (${customCount} override${customCount === 1 ? '' : 's'})`
226
- : `custom: ${options.filePath} (not found — defaults in use)`,
227
- 'format: ctrl/shift/alt/super+key · Enter edits · empty input resets to the default',
228
- 'editor: pi-tui defaults — arrows · Ctrl+B/F · Alt+←→ word · Home/End · Ctrl+W/U/K delete · Ctrl+- undo',
232
+ customLine,
233
+ t('hotkeys.formatHint'),
234
+ t('hotkeys.editorHint'),
229
235
  ...loaded.warnings.map(warning => `! ${warning}`),
230
236
  ];
231
237
  const panel = new FieldPanel(theme, {
232
- title: ansiFg(theme.palette.accent) + BOLD + 'hotkeys' + RESET,
238
+ title: ansiFg(theme.palette.accent) + BOLD + t('hotkeys.title') + RESET,
233
239
  content,
234
240
  fields,
235
241
  status: () => status,
236
- footer: '↑↓ key · Enter change · Esc close',
242
+ footer: t('hotkeys.footer'),
237
243
  onEdit: index => edit(fields[index].key),
238
244
  onCancel: () => {
239
245
  host.close();
240
246
  options.restoreFocus();
241
- resolve(changed ? 'Keybindings updated.' : undefined);
247
+ resolve(changed ? t('hotkeys.updated') : undefined);
242
248
  },
243
249
  });
244
250
  host.open(panel);
@@ -251,9 +257,14 @@ export async function openHotkeysManager(tui, theme, options) {
251
257
  const loaded = loadKeyBindings(options.filePath);
252
258
  const current = loaded.bindings[field];
253
259
  const editor = new EditField(tui, {
254
- title: `Key for ${field} — default ${displayKey(DEFAULT_KEYBINDINGS[field])}`
255
- + (current !== undefined ? ` · custom ${displayKey(current)}` : ''),
256
- subtitle: 'ctrl/shift/alt/super + key · empty resets to the default',
260
+ title: current !== undefined
261
+ ? t('hotkeys.edit.titleCustom', {
262
+ field,
263
+ defaultValue: displayKey(DEFAULT_KEYBINDINGS[field]),
264
+ custom: displayKey(current),
265
+ })
266
+ : t('hotkeys.edit.title', { field, defaultValue: displayKey(DEFAULT_KEYBINDINGS[field]) }),
267
+ subtitle: t('hotkeys.edit.subtitle'),
257
268
  initial: current ?? '',
258
269
  parse: parseKeyInput,
259
270
  onCommit: async (outcome) => {
@@ -270,8 +281,8 @@ export async function openHotkeysManager(tui, theme, options) {
270
281
  changed = true;
271
282
  applyBindings();
272
283
  status = reset
273
- ? `${field} default (${displayKey(DEFAULT_KEYBINDINGS[field])}) — applied`
274
- : `${field} ${id} — applied`;
284
+ ? t('hotkeys.status.reset', { field, defaultValue: displayKey(DEFAULT_KEYBINDINGS[field]) })
285
+ : t('hotkeys.status.set', { field, id });
275
286
  return undefined;
276
287
  }
277
288
  if (outcome.kind === 'unset') {
@@ -283,7 +294,7 @@ export async function openHotkeysManager(tui, theme, options) {
283
294
  return { error };
284
295
  changed = true;
285
296
  applyBindings();
286
- status = `${field} default (${displayKey(DEFAULT_KEYBINDINGS[field])}) — applied`;
297
+ status = t('hotkeys.status.reset', { field, defaultValue: displayKey(DEFAULT_KEYBINDINGS[field]) });
287
298
  return undefined;
288
299
  }
289
300
  return undefined;