dsh-ssh-tui 0.6.4 → 0.7.0-rc.2

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 (79) hide show
  1. package/README.en.md +14 -0
  2. package/README.md +14 -0
  3. package/docs/remote-ops.md +133 -0
  4. package/docs/screenshots/compare.png +0 -0
  5. package/docs/screenshots/headless.png +0 -0
  6. package/docs/screenshots/workspace.png +0 -0
  7. package/lib/approval-cache.js +158 -0
  8. package/lib/approval-cache.js.map +1 -0
  9. package/lib/attach.js +66 -7
  10. package/lib/attach.js.map +1 -1
  11. package/lib/auto-approval.js +13 -0
  12. package/lib/auto-approval.js.map +1 -1
  13. package/lib/color-depth.js +192 -0
  14. package/lib/color-depth.js.map +1 -0
  15. package/lib/commands.js +5 -0
  16. package/lib/commands.js.map +1 -1
  17. package/lib/copy-text.js +1 -0
  18. package/lib/copy-text.js.map +1 -1
  19. package/lib/dialogs.js +81 -8
  20. package/lib/dialogs.js.map +1 -1
  21. package/lib/display-sock.js +24 -8
  22. package/lib/display-sock.js.map +1 -1
  23. package/lib/doctor.js +380 -0
  24. package/lib/doctor.js.map +1 -0
  25. package/lib/footer.js +76 -6
  26. package/lib/footer.js.map +1 -1
  27. package/lib/i18n/en.js +136 -3
  28. package/lib/i18n/en.js.map +1 -1
  29. package/lib/i18n/zh.js +137 -4
  30. package/lib/i18n/zh.js.map +1 -1
  31. package/lib/index.js +8 -1
  32. package/lib/index.js.map +1 -1
  33. package/lib/keymap.js +172 -0
  34. package/lib/keymap.js.map +1 -0
  35. package/lib/line-diff.js +224 -0
  36. package/lib/line-diff.js.map +1 -0
  37. package/lib/line-mode.js +86 -0
  38. package/lib/line-mode.js.map +1 -0
  39. package/lib/paint.js +158 -26
  40. package/lib/paint.js.map +1 -1
  41. package/lib/plan.js +51 -8
  42. package/lib/plan.js.map +1 -1
  43. package/lib/preset-authoring.js +110 -0
  44. package/lib/preset-authoring.js.map +1 -0
  45. package/lib/preset-picker.js +105 -0
  46. package/lib/preset-picker.js.map +1 -0
  47. package/lib/preset-rows.js +288 -34
  48. package/lib/preset-rows.js.map +1 -1
  49. package/lib/selection.js +154 -0
  50. package/lib/selection.js.map +1 -0
  51. package/lib/term-text.js +106 -1
  52. package/lib/term-text.js.map +1 -1
  53. package/lib/tool-present.js +157 -21
  54. package/lib/tool-present.js.map +1 -1
  55. package/lib/tui.js +1428 -97
  56. package/lib/tui.js.map +1 -1
  57. package/lib/types/approval-cache.d.ts +125 -0
  58. package/lib/types/attach.d.ts +29 -0
  59. package/lib/types/auto-approval.d.ts +11 -0
  60. package/lib/types/color-depth.d.ts +50 -0
  61. package/lib/types/commands.d.ts +9 -0
  62. package/lib/types/dialogs.d.ts +36 -5
  63. package/lib/types/display-sock.d.ts +6 -0
  64. package/lib/types/doctor.d.ts +118 -0
  65. package/lib/types/footer.d.ts +35 -0
  66. package/lib/types/keymap.d.ts +68 -0
  67. package/lib/types/line-diff.d.ts +107 -0
  68. package/lib/types/line-mode.d.ts +36 -0
  69. package/lib/types/paint.d.ts +89 -4
  70. package/lib/types/plan.d.ts +7 -0
  71. package/lib/types/preset-authoring.d.ts +135 -0
  72. package/lib/types/preset-picker.d.ts +64 -0
  73. package/lib/types/preset-rows.d.ts +113 -9
  74. package/lib/types/selection.d.ts +81 -0
  75. package/lib/types/term-text.d.ts +29 -0
  76. package/lib/types/tool-present.d.ts +53 -3
  77. package/lib/types/transcript-types.d.ts +12 -2
  78. package/lib/types/tui.d.ts +231 -2
  79. package/package.json +33 -32
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Line mode: one plain line per event, for screen readers, log capture, and
3
+ * terminals where a full-screen repaint is the wrong shape.
4
+ *
5
+ * The TUI normally paints a framed screen: absolute cursor addressing, an
6
+ * alternate screen buffer, only the rows that changed, and a spinner that
7
+ * redraws in place. None of that survives a pipe, a screen reader, or a
8
+ * recording — the same event can appear twice, out of order, or not at all.
9
+ * This module turns a transcript row into the lines a log would carry, and the
10
+ * caller appends them once, in order, and never repaints.
11
+ *
12
+ * Colour is deliberately absent: the caller may style a line, but the text has
13
+ * to stand on its own because that is the point of the mode.
14
+ * @module dsh-ssh-tui/line-mode
15
+ */
16
+ /** Whether the environment asks for line mode. `1/true/on/yes` all count. */
17
+ export function lineModeEnabled(env = process.env) {
18
+ const raw = (env.DSH_TUI_LINE_MODE ?? '').trim().toLowerCase();
19
+ return raw === '1' || raw === 'true' || raw === 'on' || raw === 'yes';
20
+ }
21
+ /**
22
+ * The lines one row contributes to the log.
23
+ *
24
+ * A row with embedded newlines contributes several lines — the alternative is
25
+ * joining them, which corrupts a report's structure for the reader this mode
26
+ * exists for. Rows that only make sense on a screen (the logo, a transient
27
+ * reasoning buffer) contribute nothing rather than noise.
28
+ * @param row - the transcript row that was just pushed.
29
+ * @returns the lines to append, in order; empty when the row is screen-only.
30
+ */
31
+ export function lineModeLines(row) {
32
+ const split = (text) => (text === '' ? [] : text.split('\n'));
33
+ switch (row.kind) {
34
+ case 'brand-logo':
35
+ return [];
36
+ case 'tool': {
37
+ const head = [row.title, row.summary].filter(part => part.trim() !== '').join(' ');
38
+ const lines = head === '' ? [] : [head];
39
+ if (row.diff !== undefined && row.diff.length > 0) {
40
+ for (const hunk of row.diff) {
41
+ lines.push(hunk.path);
42
+ if (hunk.oldText !== null)
43
+ for (const line of split(hunk.oldText))
44
+ lines.push(`- ${line}`);
45
+ for (const line of split(hunk.newText))
46
+ lines.push(`+ ${line}`);
47
+ }
48
+ }
49
+ else if (row.output !== undefined && row.output !== '') {
50
+ lines.push(...split(row.output));
51
+ }
52
+ return lines;
53
+ }
54
+ case 'plan':
55
+ return [
56
+ ...split(row.planMarkdown ?? ''),
57
+ ...row.todos.map(item => `[${item.status}] ${item.content}`),
58
+ ];
59
+ case 'question':
60
+ return [
61
+ ...split(row.title),
62
+ ...(row.header === undefined ? [] : split(row.header)),
63
+ ...(row.detail === undefined ? [] : split(row.detail)),
64
+ ];
65
+ case 'subagent':
66
+ return row.logs.flatMap(entry => split(entry.text));
67
+ case 'compaction':
68
+ return split([row.summary, row.error ?? ''].filter(part => part !== '').join('\n'));
69
+ case 'goal':
70
+ return [row.objective, ...(row.blockedReason === undefined ? [] : [row.blockedReason])];
71
+ default:
72
+ return split(row.text);
73
+ }
74
+ }
75
+ /**
76
+ * What one row's lines look like once appended.
77
+ *
78
+ * A trailing newline per line, and nothing else: no carriage returns (they
79
+ * would overwrite the line just written on a terminal) and no escape sequences.
80
+ */
81
+ export function appendRow(lines) {
82
+ if (lines.length === 0)
83
+ return '';
84
+ return `${lines.join('\n')}\n`;
85
+ }
86
+ //# sourceMappingURL=line-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-mode.js","sourceRoot":"","sources":["../src/line-mode.ts"],"names":[],"mappings":"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"}
package/lib/paint.js CHANGED
@@ -5,6 +5,7 @@
5
5
  * the agent-backed SshTui class.
6
6
  */
7
7
  import { t } from './i18n/index.js';
8
+ import { lineModeEnabled } from './line-mode.js';
8
9
  import { padAnsiToWidth, pinEmojiCells, truncateToWidth } from './term-text.js';
9
10
  import { detectSshSession, RTT_SAMPLE_TIMEOUT_MS, TerminalInputPump } from './terminal-input.js';
10
11
  const RENDER_INTERVAL_MS = 160;
@@ -118,6 +119,49 @@ export function linkSignalPips(quality) {
118
119
  return 1;
119
120
  return 0;
120
121
  }
122
+ /**
123
+ * How many bytes one frame may carry before the rest waits for the next tick.
124
+ *
125
+ * A 100x30 full repaint costs about 3.7 kB, which on a 400ms link is a third of
126
+ * a second of serialization the user waits through before anything moves. The
127
+ * cadence already follows the measured RTT; the budget bounds what each of
128
+ * those ticks may spend, so a resize or a burst of streaming output degrades
129
+ * into a few ordered frames instead of one long freeze and a queue behind it.
130
+ */
131
+ export const FRAME_BYTE_BUDGETS = {
132
+ local: Number.POSITIVE_INFINITY,
133
+ good: 16_384,
134
+ ok: 8_192,
135
+ slow: 4_096,
136
+ poor: 2_048,
137
+ unknown: 8_192,
138
+ };
139
+ /** The per-frame byte budget for a link quality. */
140
+ export function frameByteBudget(quality) {
141
+ return FRAME_BYTE_BUDGETS[quality] ?? Number.POSITIVE_INFINITY;
142
+ }
143
+ /**
144
+ * How many body lines an expanded card may show before it points at the
145
+ * overlay, by link quality.
146
+ *
147
+ * A measured slow link is the only case that truncates: there, every body line
148
+ * is bytes the user waits for, and the overlay is one key away (`Enter`). Fast
149
+ * and unmeasured links keep the behavior 0.3.9 settled on — an expanded body
150
+ * shows in full, or opens in the overlay when it cannot fit the workspace — so
151
+ * nothing changes for a local terminal or a link whose RTT could not be probed.
152
+ */
153
+ export const TOOL_BODY_LINES_BY_QUALITY = {
154
+ local: Number.POSITIVE_INFINITY,
155
+ good: Number.POSITIVE_INFINITY,
156
+ ok: Number.POSITIVE_INFINITY,
157
+ slow: 6,
158
+ poor: 3,
159
+ unknown: Number.POSITIVE_INFINITY,
160
+ };
161
+ /** The body-line cap for a link quality; `Infinity` means "show it all". */
162
+ export function toolBodyLineLimit(quality) {
163
+ return TOOL_BODY_LINES_BY_QUALITY[quality] ?? Number.POSITIVE_INFINITY;
164
+ }
121
165
  const LINK_PIP_COLOR = {
122
166
  0: '90',
123
167
  1: '31',
@@ -140,8 +184,33 @@ export function formatLinkQualityChip(kind, intervalMs, rttMs, probed, color = f
140
184
  : `${intervalMs}ms`;
141
185
  return t('paint.sshChip', { pips: colored, delay });
142
186
  }
143
- /** One incremental paint as a single stdout write (one SSH packet when corked). */
144
- export function composePaintOutput(options) {
187
+ /**
188
+ * Which dirty rows to paint first when a byte budget applies.
189
+ *
190
+ * Rows at or below `from` were deferred by the previous frame and go first so
191
+ * they cannot starve; everything above is the tail the user is looking at,
192
+ * painted newest-row-first so the input area is current even when the budget
193
+ * runs out. Without a `from`, the order is simply tail-first.
194
+ * @param dirty - row indices that need a paint, ascending.
195
+ * @param from - highest row the previous frame deferred, if any.
196
+ * @returns indices in paint order.
197
+ */
198
+ export function paintOrder(dirty, from) {
199
+ const descending = (values) => [...values].sort((left, right) => right - left);
200
+ if (from === undefined)
201
+ return descending(dirty);
202
+ return [...descending(dirty.filter(index => index <= from)), ...descending(dirty.filter(index => index > from))];
203
+ }
204
+ /**
205
+ * Compose one incremental paint, optionally bounded by a byte budget.
206
+ *
207
+ * Every row is addressed absolutely, so the paint order is free: with a budget
208
+ * the frame spends it on the tail first and reports what it could not reach, so
209
+ * the caller keeps those rows dirty instead of forgetting them.
210
+ * @param options - the frame to paint, plus the budget and resume point.
211
+ * @returns the write, what it covered, and what is left for the next tick.
212
+ */
213
+ export function composePaintFrame(options) {
145
214
  const { width, height, paintRows, previousRows, sizeChanged, chromeChanged, chromeStart } = options;
146
215
  const previousChromeStart = options.previousChromeStart ?? chromeStart;
147
216
  // When a card expands, the input box moves up. Rows that used to be
@@ -156,25 +225,47 @@ export function composePaintOutput(options) {
156
225
  // Never address row height+1: that scrolls the SSH viewport and leaves
157
226
  // thinking/tool/assistant glyphs sitting on the next card.
158
227
  const rowCount = Math.min(height, paintRows.length);
159
- let painted = sizeChanged;
228
+ const dirty = [];
229
+ for (let index = 0; index < rowCount; index += 1) {
230
+ const current = paintRows[index] ?? '';
231
+ if (current === prev[index] && !(chromeChanged && index >= dirtyChromeStart))
232
+ continue;
233
+ dirty.push(index);
234
+ }
235
+ const budgeted = options.maxBytes !== undefined && Number.isFinite(options.maxBytes);
236
+ // Without a budget the order stays ascending, byte for byte what the
237
+ // unbudgeted painter always wrote.
238
+ const order = budgeted ? paintOrder(dirty, options.from) : [...dirty].sort((left, right) => left - right);
239
+ const limit = options.maxBytes ?? Number.POSITIVE_INFINITY;
240
+ const painted = [];
241
+ const deferred = [];
160
242
  let rows = '';
161
- for (let i = 0; i < rowCount; i++) {
162
- const current = paintRows[i] ?? '';
163
- if (current === prev[i] && !(chromeChanged && i >= dirtyChromeStart))
243
+ let used = out.length;
244
+ for (const index of order) {
245
+ // Pin first, then pad: the padder measures with `visibleWidth`, which does
246
+ // not know that a symbol like ⚠ will gain a variation selector and a
247
+ // reserving space. Padding the unpinned form and pinning afterwards pushed
248
+ // rows that reach the right edge two cells past the terminal.
249
+ const clipped = padAnsiToWidth(pinEmojiCells(paintRows[index] ?? ''), width);
250
+ const row = `\x1b[${index + 1};1H\x1b[0m\x1b[2K${clipped}\x1b[0m`;
251
+ // Always paint one row, however small the budget: a frame that draws
252
+ // nothing would leave the terminal stale for as long as the burst lasts.
253
+ if (painted.length > 0 && used + row.length > limit) {
254
+ deferred.push(index);
164
255
  continue;
165
- painted = true;
166
- const clipped = pinEmojiCells(padAnsiToWidth(current, width));
167
- // EL2 *before* the glyphs, from column 1. A full-width write followed
168
- // by EL hits DEC auto-margin: the cursor wraps, and EL then blanks the
169
- // next card instead of the row we just drew.
170
- rows += `\x1b[${i + 1};1H\x1b[0m\x1b[2K${clipped}\x1b[0m`;
256
+ }
257
+ rows += row;
258
+ used += row.length;
259
+ painted.push(index);
171
260
  }
172
261
  if (rowCount < height && (sizeChanged || previousRows.length !== paintRows.length)) {
173
- painted = true;
174
262
  rows += `\x1b[${rowCount + 1};1H\x1b[J`;
175
263
  }
176
- if (!painted && options.hideCursor === true)
177
- return '';
264
+ painted.sort((left, right) => left - right);
265
+ const paintedAny = painted.length > 0 || sizeChanged;
266
+ if (!paintedAny && options.hideCursor === true) {
267
+ return { output: '', painted, deferred, resume: undefined, bytes: 0 };
268
+ }
178
269
  if (rows !== '') {
179
270
  // DECAWM off for the row batch. A glyph the width table under-counts (a
180
271
  // terminal drawing some emoji wider than wcwidth says) then loses its
@@ -184,16 +275,47 @@ export function composePaintOutput(options) {
184
275
  out += `\x1b[?7l${rows}\x1b[?7h`;
185
276
  }
186
277
  out += '\x1b[0m';
187
- if (options.hideCursor === true)
188
- return out;
189
- const cursorRow = Math.min(height, Math.max(1, options.cursorRow));
190
- // Column `width + 1` (and writing into the last cell then parking past
191
- // it) trips DEC auto-margin: the hardware cursor wraps onto the next
192
- // row and the caret punches through the last glyph. Keep the caret on
193
- // this row, in a real cell.
194
- const cursorColumn = Math.min(width, Math.max(1, options.cursorColumn));
195
- out += `\x1b[${cursorRow};${cursorColumn}H\x1b[?25h`;
196
- return out;
278
+ if (options.hideCursor !== true) {
279
+ const cursorRow = Math.min(height, Math.max(1, options.cursorRow));
280
+ // Column `width + 1` (and writing into the last cell then parking past
281
+ // it) trips DEC auto-margin: the hardware cursor wraps onto the next
282
+ // row and the caret punches through the last glyph. Keep the caret on
283
+ // this row, in a real cell.
284
+ const cursorColumn = Math.min(width, Math.max(1, options.cursorColumn));
285
+ out += `\x1b[${cursorRow};${cursorColumn}H\x1b[?25h`;
286
+ }
287
+ return {
288
+ output: out,
289
+ painted,
290
+ deferred,
291
+ resume: deferred.length === 0 ? undefined : Math.max(...deferred),
292
+ bytes: out.length,
293
+ };
294
+ }
295
+ /**
296
+ * The snapshot for the next frame: only the rows a frame painted become clean.
297
+ *
298
+ * A deferred row has to keep its previous content in the snapshot, or the next
299
+ * frame would compare it against itself, call it unchanged, and never paint it:
300
+ * the row would simply stay wrong. The array also keeps its old length while
301
+ * anything is owed, so the "row count changed" clear keeps firing until the
302
+ * frame is complete.
303
+ * @param previous - the snapshot the frame painted against.
304
+ * @param current - the rows the frame wanted to show.
305
+ * @param painted - indices the frame actually wrote.
306
+ * @returns the snapshot to hand to the next frame.
307
+ */
308
+ export function advancePaintedRows(previous, current, painted) {
309
+ const next = previous.slice();
310
+ for (const index of painted) {
311
+ if (index < next.length)
312
+ next[index] = current[index] ?? '';
313
+ }
314
+ return next;
315
+ }
316
+ /** One incremental paint as a single stdout write (one SSH packet when corked). */
317
+ export function composePaintOutput(options) {
318
+ return composePaintFrame(options).output;
197
319
  }
198
320
  /** Whether `text` could still grow into a recognized escape sequence. */
199
321
  export function isEscapePrefix(text) {
@@ -276,8 +398,18 @@ export function pickerWindowStart(cursor, total, windowSize = PICKER_WINDOW) {
276
398
  const start = cursor - Math.floor((windowSize - 1) / 2);
277
399
  return Math.max(0, Math.min(maxStart, start));
278
400
  }
279
- /** Immediate first-frame chrome so a 2–3s Host boot is not a blank TTY. */
401
+ /**
402
+ * Immediate first-frame chrome so a 2–3s Host boot is not a blank TTY.
403
+ *
404
+ * Line mode gets nothing: a splash enters the alternate screen and paints over
405
+ * itself, which is exactly what that mode exists to avoid — the log would open
406
+ * with screen control instead of the session's first event.
407
+ * @param message - what the launcher is waiting for.
408
+ * @param color - whether colour is allowed.
409
+ */
280
410
  export function writeBootSplash(message, color = true) {
411
+ if (lineModeEnabled())
412
+ return;
281
413
  const width = Math.max(20, process.stdout.columns || 80);
282
414
  const title = t('boot.banner');
283
415
  const line = color
package/lib/paint.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"paint.js","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paint.js","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"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"}
package/lib/plan.js CHANGED
@@ -2,14 +2,29 @@
2
2
  * Plan dock, todo lists, /find, prompt-injection cards, and compact errors.
3
3
  */
4
4
  import { t } from './i18n/index.js';
5
- import { formatTokens } from './footer.js';
5
+ import { CONTEXT_RING_EMPTY, CONTEXT_RING_FULL, CONTEXT_RING_SEGMENTS, formatTokens } from './footer.js';
6
6
  import { parseJsonArgs } from './json-args.js';
7
7
  export const MAX_SUBAGENT_LOGS = 80;
8
8
  export const TODO_STATUS_MARK = {
9
9
  pending: '○',
10
10
  in_progress: '◐',
11
11
  completed: '●',
12
+ failed: '✖',
13
+ skipped: '⊘',
12
14
  };
15
+ /** The status a model names, mapped onto the five we render. */
16
+ function normalizeTodoStatus(value) {
17
+ const text = typeof value === 'string' ? value.trim().toLowerCase().replaceAll('-', '_') : '';
18
+ if (text === 'in_progress' || text === 'active' || text === 'doing')
19
+ return 'in_progress';
20
+ if (text === 'completed' || text === 'complete' || text === 'done')
21
+ return 'completed';
22
+ if (text === 'failed' || text === 'fail' || text === 'error' || text === 'blocked')
23
+ return 'failed';
24
+ if (text === 'skipped' || text === 'skip' || text === 'cancelled' || text === 'canceled' || text === 'deferred')
25
+ return 'skipped';
26
+ return 'pending';
27
+ }
13
28
  /** True while a plan still belongs in the dock (latest incomplete work). */
14
29
  export function planIsLive(plan) {
15
30
  if (plan.archived === true)
@@ -261,7 +276,9 @@ export function planDockNote(plan) {
261
276
  export function todoProgressLabel(todos) {
262
277
  const done = todos.filter(item => item.status === 'completed').length;
263
278
  const active = todos.filter(item => item.status === 'in_progress').length;
264
- const pending = todos.length - done - active;
279
+ const failed = todos.filter(item => item.status === 'failed').length;
280
+ const skipped = todos.filter(item => item.status === 'skipped').length;
281
+ const pending = todos.length - done - active - failed - skipped;
265
282
  const parts = [];
266
283
  if (done > 0)
267
284
  parts.push(t('plan.todoDone', { count: done }));
@@ -269,6 +286,10 @@ export function todoProgressLabel(todos) {
269
286
  parts.push(t('plan.todoActive', { count: active }));
270
287
  if (pending > 0)
271
288
  parts.push(t('plan.todoPending', { count: pending }));
289
+ if (failed > 0)
290
+ parts.push(t('plan.todoFailed', { count: failed }));
291
+ if (skipped > 0)
292
+ parts.push(t('plan.todoSkipped', { count: skipped }));
272
293
  return parts.join(' · ');
273
294
  }
274
295
  export function todoItemKind(status) {
@@ -276,8 +297,32 @@ export function todoItemKind(status) {
276
297
  return 'todo-done';
277
298
  if (status === 'in_progress')
278
299
  return 'todo-active';
300
+ if (status === 'failed')
301
+ return 'todo-failed';
302
+ if (status === 'skipped')
303
+ return 'todo-skipped';
279
304
  return 'todo-pending';
280
305
  }
306
+ /**
307
+ * A Braille bar for the plan's completion, in the same family as the context
308
+ * ring: `⣿` filled, `⣀` empty, and the eight partial cells between them.
309
+ * @param todos - the list as the model last wrote it.
310
+ * @param cells - bar width in cells.
311
+ */
312
+ export function todoProgressBar(todos, cells = 10) {
313
+ const width = Math.max(1, cells);
314
+ const total = todos.length;
315
+ if (total === 0)
316
+ return CONTEXT_RING_EMPTY.repeat(width);
317
+ const done = todos.filter(item => item.status === 'completed').length;
318
+ const steps = Math.round((done / total) * width * 8);
319
+ let bar = '';
320
+ for (let cell = 0; cell < width; cell += 1) {
321
+ const remaining = steps - cell * 8;
322
+ bar += CONTEXT_RING_SEGMENTS[Math.max(0, Math.min(8, remaining))] ?? CONTEXT_RING_FULL;
323
+ }
324
+ return bar;
325
+ }
281
326
  export function planMarkdownFromArgs(value) {
282
327
  const root = typeof value === 'string' ? parseJsonArgs(value) : value;
283
328
  if (root === null || typeof root !== 'object' || Array.isArray(root))
@@ -308,11 +353,7 @@ export function parsePlanTodos(value) {
308
353
  : '';
309
354
  if (content === '')
310
355
  continue;
311
- const status = item.status;
312
- out.push({
313
- content,
314
- status: status === 'in_progress' || status === 'completed' ? status : 'pending',
315
- });
356
+ out.push({ content, status: normalizeTodoStatus(item.status) });
316
357
  }
317
358
  return out;
318
359
  }
@@ -324,7 +365,9 @@ export function todoSummary(value) {
324
365
  const done = todos.filter(item => item.status === 'completed').length;
325
366
  const active = todos.find(item => item.status === 'in_progress');
326
367
  const extra = todos.filter(item => item.status === 'in_progress').length;
327
- const head = t('plan.todoSummary', { done, total: todos.length });
368
+ // The collapsed card is the line a user actually watches during a long task,
369
+ // so the bar belongs here too — the expanded body repeats it beside the list.
370
+ const head = `${todoProgressBar(todos)} ${t('plan.todoSummary', { done, total: todos.length })}`;
328
371
  if (active === undefined)
329
372
  return head;
330
373
  return extra > 1
package/lib/plan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}