@agi-fans/dsh-tui 0.14.0 → 0.16.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 (123) hide show
  1. package/lib/CHANGELOG.md +77 -1
  2. package/lib/chrome/diff-render.js +12 -0
  3. package/lib/chrome/diff-render.js.map +1 -1
  4. package/lib/chrome/goal-bar.d.ts +13 -0
  5. package/lib/chrome/goal-bar.js +45 -0
  6. package/lib/chrome/goal-bar.js.map +1 -0
  7. package/lib/chrome/grapheme.d.ts +15 -0
  8. package/lib/chrome/grapheme.js +49 -0
  9. package/lib/chrome/grapheme.js.map +1 -0
  10. package/lib/chrome/main-screen-renderer.js +21 -5
  11. package/lib/chrome/main-screen-renderer.js.map +1 -1
  12. package/lib/chrome/markdown.js +101 -30
  13. package/lib/chrome/markdown.js.map +1 -1
  14. package/lib/chrome/renderer.d.ts +13 -61
  15. package/lib/chrome/renderer.js +17 -181
  16. package/lib/chrome/renderer.js.map +1 -1
  17. package/lib/chrome/status-config.d.ts +9 -4
  18. package/lib/chrome/status-config.js +13 -4
  19. package/lib/chrome/status-config.js.map +1 -1
  20. package/lib/chrome/status-line.d.ts +3 -1
  21. package/lib/chrome/status-line.js +42 -10
  22. package/lib/chrome/status-line.js.map +1 -1
  23. package/lib/chrome/theme.d.ts +9 -2
  24. package/lib/chrome/theme.js +60 -12
  25. package/lib/chrome/theme.js.map +1 -1
  26. package/lib/chrome/tool-renderers.d.ts +2 -0
  27. package/lib/chrome/tool-renderers.js +149 -2
  28. package/lib/chrome/tool-renderers.js.map +1 -1
  29. package/lib/chrome/welcome-tips.js +1 -0
  30. package/lib/chrome/welcome-tips.js.map +1 -1
  31. package/lib/chrome/width.d.ts +19 -1
  32. package/lib/chrome/width.js +135 -41
  33. package/lib/chrome/width.js.map +1 -1
  34. package/lib/commands/diff.d.ts +32 -0
  35. package/lib/commands/diff.js +116 -0
  36. package/lib/commands/diff.js.map +1 -0
  37. package/lib/commands/jobs.d.ts +14 -0
  38. package/lib/commands/jobs.js +82 -0
  39. package/lib/commands/jobs.js.map +1 -0
  40. package/lib/commands/model.d.ts +25 -0
  41. package/lib/commands/model.js +168 -4
  42. package/lib/commands/model.js.map +1 -1
  43. package/lib/commands/permission.d.ts +10 -1
  44. package/lib/commands/permission.js +23 -14
  45. package/lib/commands/permission.js.map +1 -1
  46. package/lib/commands/session.js +75 -1
  47. package/lib/commands/session.js.map +1 -1
  48. package/lib/definition.d.ts +38 -4
  49. package/lib/definition.js.map +1 -1
  50. package/lib/input/editor.d.ts +2 -0
  51. package/lib/input/editor.js +19 -9
  52. package/lib/input/editor.js.map +1 -1
  53. package/lib/input/keybindings-config.d.ts +1 -1
  54. package/lib/input/keybindings-config.js +9 -0
  55. package/lib/input/keybindings-config.js.map +1 -1
  56. package/lib/runtime/agent-profile.d.ts +11 -0
  57. package/lib/runtime/agent-profile.js +20 -1
  58. package/lib/runtime/agent-profile.js.map +1 -1
  59. package/lib/runtime/provider-local.d.ts +15 -5
  60. package/lib/runtime/provider-local.js +392 -98
  61. package/lib/runtime/provider-local.js.map +1 -1
  62. package/lib/runtime/runner.js +33 -8
  63. package/lib/runtime/runner.js.map +1 -1
  64. package/lib/runtime/tool-presentation.js +13 -2
  65. package/lib/runtime/tool-presentation.js.map +1 -1
  66. package/lib/session/interaction-adapter.d.ts +10 -0
  67. package/lib/session/interaction-adapter.js +12 -1
  68. package/lib/session/interaction-adapter.js.map +1 -1
  69. package/lib/session/job-notice.d.ts +28 -0
  70. package/lib/session/job-notice.js +34 -0
  71. package/lib/session/job-notice.js.map +1 -0
  72. package/lib/session/live-attempt-tracker.d.ts +43 -0
  73. package/lib/session/live-attempt-tracker.js +58 -0
  74. package/lib/session/live-attempt-tracker.js.map +1 -0
  75. package/lib/session/project-context.d.ts +2 -0
  76. package/lib/session/project-context.js +22 -11
  77. package/lib/session/project-context.js.map +1 -1
  78. package/lib/session/session-configuration.js +1 -1
  79. package/lib/session/session-configuration.js.map +1 -1
  80. package/lib/session/session-controller.d.ts +10 -4
  81. package/lib/session/session-controller.js +293 -65
  82. package/lib/session/session-controller.js.map +1 -1
  83. package/lib/session/subagent-roster.d.ts +31 -1
  84. package/lib/session/subagent-roster.js +79 -19
  85. package/lib/session/subagent-roster.js.map +1 -1
  86. package/lib/session/tui-settings.js +1 -0
  87. package/lib/session/tui-settings.js.map +1 -1
  88. package/lib/views/agent-hub.d.ts +3 -0
  89. package/lib/views/agent-hub.js +40 -4
  90. package/lib/views/agent-hub.js.map +1 -1
  91. package/lib/views/copy-selector.d.ts +3 -0
  92. package/lib/views/copy-selector.js +26 -6
  93. package/lib/views/copy-selector.js.map +1 -1
  94. package/lib/views/event-views.d.ts +59 -1
  95. package/lib/views/event-views.js +245 -73
  96. package/lib/views/event-views.js.map +1 -1
  97. package/lib/views/history-search.d.ts +3 -0
  98. package/lib/views/history-search.js +40 -4
  99. package/lib/views/history-search.js.map +1 -1
  100. package/lib/views/hotkey-format.d.ts +39 -0
  101. package/lib/views/hotkey-format.js +42 -0
  102. package/lib/views/hotkey-format.js.map +1 -0
  103. package/lib/views/hotkeys.d.ts +3 -0
  104. package/lib/views/hotkeys.js +44 -7
  105. package/lib/views/hotkeys.js.map +1 -1
  106. package/lib/views/prompt-selector.d.ts +3 -0
  107. package/lib/views/prompt-selector.js +46 -7
  108. package/lib/views/prompt-selector.js.map +1 -1
  109. package/lib/views/settings-list.d.ts +3 -0
  110. package/lib/views/settings-list.js +36 -5
  111. package/lib/views/settings-list.js.map +1 -1
  112. package/lib/views/stream-time.d.ts +14 -0
  113. package/lib/views/stream-time.js +32 -0
  114. package/lib/views/stream-time.js.map +1 -0
  115. package/lib/views/streaming-reveal.js +56 -8
  116. package/lib/views/streaming-reveal.js.map +1 -1
  117. package/lib/views/trajectory.d.ts +57 -1
  118. package/lib/views/trajectory.js +452 -60
  119. package/lib/views/trajectory.js.map +1 -1
  120. package/lib/views/transcript-search.d.ts +45 -0
  121. package/lib/views/transcript-search.js +105 -0
  122. package/lib/views/transcript-search.js.map +1 -0
  123. package/package.json +41 -30
@@ -56,6 +56,10 @@ export function charWidth(cp) {
56
56
  return 0;
57
57
  if (cp === 0x200d || cp === 0xfe0f)
58
58
  return 0;
59
+ // Skin-tone modifiers fold into the preceding base glyph and never advance
60
+ // the cursor, so they must be measured as zero rather than as emoji.
61
+ if (cp >= 0x1f3fb && cp <= 0x1f3ff)
62
+ return 0;
59
63
  if ((cp >= 0x1100 && cp <= 0x115f)
60
64
  || cp === 0x2329
61
65
  || cp === 0x232a
@@ -68,17 +72,96 @@ export function charWidth(cp) {
68
72
  || (cp >= 0xffe0 && cp <= 0xffe6)
69
73
  || isWideEmojiSymbol(cp)
70
74
  || (cp >= 0x1f300 && cp <= 0x1f64f)
75
+ // Transport and map symbols (🚀 U+1F680, 🛸 U+1F6F8, …). Ornamental
76
+ // dingbats (U+1F650–U+1F67F) sit between the two emoji blocks and are
77
+ // text-presentation, so they stay one cell.
78
+ || (cp >= 0x1f680 && cp <= 0x1f6ff)
79
+ // Large coloured circles and squares (U+1F7E0–U+1F7EB).
80
+ || (cp >= 0x1f7e0 && cp <= 0x1f7eb)
71
81
  || (cp >= 0x1f900 && cp <= 0x1f9ff)
72
82
  || (cp >= 0x1fa00 && cp <= 0x1faff))
73
83
  return 2;
74
84
  return 1;
75
85
  }
76
- /** Visible column count, ignoring ANSI and counting wide glyphs as two cells. */
77
- export function visibleWidth(text) {
86
+ let clusterSegmenter;
87
+ /**
88
+ * Clusters that a terminal draws as a single glyph but that per-code-point
89
+ * summing gets wrong: ZWJ sequences, emoji presentation selectors, and
90
+ * regional-indicator pairs. Everything else — including skin-tone modifiers
91
+ * and combining marks, which `charWidth` already reports as zero — keeps the
92
+ * per-code-point fast path.
93
+ */
94
+ const CLUSTER_RE = /[\u200D\uFE0F\u{1F1E6}-\u{1F1FF}]/u;
95
+ const REGIONAL_PAIR_RE = /^\p{Regional_Indicator}{2}$/u;
96
+ function segments(text) {
97
+ clusterSegmenter ??= new Intl.Segmenter(undefined, { granularity: 'grapheme' });
98
+ return clusterSegmenter.segment(text);
99
+ }
100
+ /**
101
+ * Cell width of one grapheme cluster.
102
+ *
103
+ * Clusters that fold several code points into a single terminal glyph occupy
104
+ * two cells on mainstream terminals, so they are measured as a unit instead of
105
+ * summing their parts (which would report a ZWJ family as eight). Clusters
106
+ * without ZWJ, an emoji presentation selector, or a regional-indicator pair
107
+ * fall back to per-code-point summing, which is also what makes decomposed
108
+ * sequences such as `e` + U+0301 measure as one cell.
109
+ */
110
+ export function graphemeWidth(cluster) {
111
+ if (cluster === '')
112
+ return 0;
113
+ if (cluster.length === 1)
114
+ return charWidth(cluster.codePointAt(0) ?? 0);
115
+ if (cluster.includes('\u200D') || cluster.includes('\uFE0F'))
116
+ return 2;
117
+ if (REGIONAL_PAIR_RE.test(cluster))
118
+ return 2;
78
119
  let width = 0;
79
- for (const ch of stripAnsi(text)) {
120
+ for (const ch of cluster)
80
121
  width += charWidth(ch.codePointAt(0) ?? 0);
122
+ return width;
123
+ }
124
+ /** Iterate `text` as grapheme clusters, using code points when that suffices. */
125
+ function* clusters(text) {
126
+ if (!CLUSTER_RE.test(text)) {
127
+ for (const ch of text)
128
+ yield ch;
129
+ return;
81
130
  }
131
+ for (const part of segments(text))
132
+ yield part.segment;
133
+ }
134
+ /**
135
+ * Grapheme spans with their UTF-16 offsets. Callers that must map a cursor
136
+ * back onto a wrapped row need both the cluster text and where it starts, so
137
+ * the offsets stay valid indices into the original string.
138
+ */
139
+ function clusterSpans(text) {
140
+ const spans = [];
141
+ if (!CLUSTER_RE.test(text)) {
142
+ for (let i = 0; i < text.length;) {
143
+ const ch = String.fromCodePoint(text.codePointAt(i) ?? 0);
144
+ spans.push({ index: i, cluster: ch });
145
+ i += ch.length;
146
+ }
147
+ return spans;
148
+ }
149
+ for (const part of segments(text))
150
+ spans.push({ index: part.index, cluster: part.segment });
151
+ return spans;
152
+ }
153
+ /** Visible column count, ignoring ANSI and counting wide glyphs as two cells. */
154
+ export function visibleWidth(text) {
155
+ const plain = stripAnsi(text);
156
+ if (!CLUSTER_RE.test(plain)) {
157
+ let width = 0;
158
+ for (const ch of plain)
159
+ width += charWidth(ch.codePointAt(0) ?? 0);
160
+ return width;
161
+ }
162
+ let width = 0;
163
+ for (const part of segments(plain))
164
+ width += graphemeWidth(part.segment);
82
165
  return width;
83
166
  }
84
167
  /** Split `text` into ANSI vs printable runs. */
@@ -109,18 +192,18 @@ export function expandTabs(text, tabWidth = 8, initialColumn = 0) {
109
192
  out += part.value;
110
193
  continue;
111
194
  }
112
- for (const char of part.value) {
113
- if (char === '\t') {
195
+ for (const cluster of clusters(part.value)) {
196
+ if (cluster === '\t') {
114
197
  const spaces = size - (column % size);
115
198
  out += ' '.repeat(spaces);
116
199
  column += spaces;
117
200
  }
118
201
  else {
119
- out += char;
120
- if (char === '\n')
202
+ out += cluster;
203
+ if (cluster === '\n')
121
204
  column = Math.max(0, Math.trunc(initialColumn));
122
205
  else
123
- column += charWidth(char.codePointAt(0) ?? 0);
206
+ column += graphemeWidth(cluster);
124
207
  }
125
208
  }
126
209
  }
@@ -132,7 +215,9 @@ export function padding(n) {
132
215
  }
133
216
  /**
134
217
  * Truncate to `width` cells, preserving leading ANSI and appending an ellipsis.
135
- * Closes SGR so a cut mid-style cannot bleed into the next cell.
218
+ * Clusters are atomic: a ZWJ sequence, emoji presentation sequence, or flag is
219
+ * either kept whole or dropped, never cut into a dangling joiner. Closes SGR so
220
+ * a cut mid-style cannot bleed into the next cell.
136
221
  */
137
222
  export function truncateToWidth(text, width, ellipsis = '…') {
138
223
  if (width <= 0)
@@ -143,20 +228,23 @@ export function truncateToWidth(text, width, ellipsis = '…') {
143
228
  const budget = Math.max(0, width - ellW);
144
229
  let out = '';
145
230
  let used = 0;
231
+ let reset = '';
146
232
  for (const part of splitAnsi(text)) {
147
233
  if (part.ansi) {
148
234
  out += part.value;
235
+ if (part.value.endsWith('m'))
236
+ reset = '\x1b[0m';
149
237
  continue;
150
238
  }
151
- for (const ch of part.value) {
152
- const cw = charWidth(ch.codePointAt(0) ?? 0);
239
+ for (const cluster of clusters(part.value)) {
240
+ const cw = graphemeWidth(cluster);
153
241
  if (used + cw > budget)
154
- return out + ellipsis + '\x1b[0m';
155
- out += ch;
242
+ return out + ellipsis + reset;
243
+ out += cluster;
156
244
  used += cw;
157
245
  }
158
246
  }
159
- return out + ellipsis + '\x1b[0m';
247
+ return out + ellipsis + reset;
160
248
  }
161
249
  /** Pad (or truncate) so the line occupies exactly `width` cells. */
162
250
  export function padToWidth(text, width) {
@@ -206,14 +294,14 @@ function hardWrapAnsi(text, width) {
206
294
  pending += part.value;
207
295
  continue;
208
296
  }
209
- for (const ch of part.value) {
210
- const cw = charWidth(ch.codePointAt(0) ?? 0);
297
+ for (const cluster of clusters(part.value)) {
298
+ const cw = graphemeWidth(cluster);
211
299
  if (currentW + cw > width && currentW > 0) {
212
300
  lines.push(current);
213
301
  current = '';
214
302
  currentW = 0;
215
303
  }
216
- current += pending + ch;
304
+ current += pending + cluster;
217
305
  pending = '';
218
306
  currentW += cw;
219
307
  }
@@ -231,8 +319,13 @@ function hardWrapAnsi(text, width) {
231
319
  export function wrapText(text, width) {
232
320
  if (width <= 0)
233
321
  return [''];
322
+ // A tab carries no cell width of its own, so a paragraph that still holds one
323
+ // would be measured short and overflow its row. Callers that prefix padding
324
+ // expand before adding it, so the tab stop accounts for that padding; the
325
+ // expansion here covers the remaining entry points from column zero.
326
+ const expanded = text.includes('\t') ? expandTabs(text, 8, 0) : text;
234
327
  const out = [];
235
- for (const para of text.split('\n')) {
328
+ for (const para of expanded.split('\n')) {
236
329
  if (para === '') {
237
330
  out.push('');
238
331
  continue;
@@ -357,48 +450,53 @@ export function wrapTextStable(text, width) {
357
450
  /**
358
451
  * Wrap plain `text` (no ANSI) to `width`, carrying source offsets so a cursor
359
452
  * index can be mapped to (row, column).
453
+ *
454
+ * Tabs are deliberately not expanded here: a literal tab is a completion key in
455
+ * the composer rather than buffer content, and expanding would invalidate the
456
+ * UTF-16 offsets this returns. A tab that did reach the buffer would measure as
457
+ * zero cells, so callers must keep it out of the text.
360
458
  */
361
459
  export function wrapIndexed(text, width) {
362
460
  if (width <= 0)
363
461
  return [{ text: '', start: 0, end: 0 }];
364
462
  const lines = [];
463
+ const spans = clusterSpans(text);
365
464
  let start = 0;
366
465
  let used = 0;
367
466
  let breakAt = -1;
368
467
  const flush = (end) => {
369
468
  lines.push({ text: text.slice(start, end), start, end });
370
469
  };
371
- for (let i = 0; i < text.length;) {
372
- const cp = text.codePointAt(i) ?? 0;
373
- const ch = String.fromCodePoint(cp);
374
- if (ch === '\n') {
470
+ for (const span of spans) {
471
+ const i = span.index;
472
+ const cluster = span.cluster;
473
+ if (cluster === '\n') {
375
474
  flush(i);
376
- i += ch.length;
377
- start = i;
475
+ start = i + 1;
378
476
  used = 0;
379
477
  breakAt = -1;
380
478
  continue;
381
479
  }
382
- const cw = charWidth(cp);
480
+ const cw = graphemeWidth(cluster);
383
481
  if (used + cw > width && i > start) {
384
482
  const cut = breakAt >= start ? breakAt : i;
385
483
  flush(cut);
386
484
  start = breakAt >= start ? breakAt + 1 : i;
387
485
  used = 0;
388
486
  breakAt = -1;
389
- for (let j = start; j < i;) {
390
- const cp2 = text.codePointAt(j) ?? 0;
391
- const ch2 = String.fromCodePoint(cp2);
392
- if (ch2 === ' ')
393
- breakAt = j;
394
- used += charWidth(cp2);
395
- j += ch2.length;
487
+ for (const inner of spans) {
488
+ if (inner.index < start)
489
+ continue;
490
+ if (inner.index >= i)
491
+ break;
492
+ if (inner.cluster === ' ')
493
+ breakAt = inner.index;
494
+ used += graphemeWidth(inner.cluster);
396
495
  }
397
496
  }
398
- if (ch === ' ')
497
+ if (cluster === ' ')
399
498
  breakAt = i;
400
499
  used += cw;
401
- i += ch.length;
402
500
  }
403
501
  flush(text.length);
404
502
  return lines.length > 0 ? lines : [{ text: '', start: 0, end: 0 }];
@@ -407,15 +505,11 @@ export function wrapIndexed(text, width) {
407
505
  export function indexOnWrapped(line, column, source) {
408
506
  const target = Math.max(0, column);
409
507
  let col = 0;
410
- let i = line.start;
411
- while (i < line.end) {
412
- const cp = source.codePointAt(i) ?? 0;
413
- const ch = String.fromCodePoint(cp);
414
- const width = charWidth(cp);
508
+ for (const span of clusterSpans(source.slice(line.start, line.end))) {
509
+ const width = graphemeWidth(span.cluster);
415
510
  if (col + width > target)
416
- return i;
511
+ return line.start + span.index;
417
512
  col += width;
418
- i += ch.length;
419
513
  }
420
514
  return line.end;
421
515
  }
@@ -1 +1 @@
1
- {"version":3,"file":"width.js","sourceRoot":"","sources":["../../src/chrome/width.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"width.js","sourceRoot":"","sources":["../../src/chrome/width.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /** Workspace change summary command registered through dsh-commands. */
2
+ import type { Context } from '@deepseek-ai/cordis';
3
+ export declare const name = "omdsh-command-diff";
4
+ export declare const inject: string[];
5
+ /** One tracked file's line delta in the working tree. */
6
+ export interface FileChange {
7
+ path: string;
8
+ added: number;
9
+ removed: number;
10
+ /** Binary files report `-` for both counts. */
11
+ binary: boolean;
12
+ }
13
+ /**
14
+ * Parse `git diff --numstat` output.
15
+ * @param output - raw stdout, one `added\tremoved\tpath` row per file.
16
+ * @returns parsed changes in git's order.
17
+ */
18
+ export declare function parseNumstat(output: string): FileChange[];
19
+ /**
20
+ * Collect untracked paths from `git status --porcelain` output.
21
+ * @param output - raw stdout; only `??` rows are considered.
22
+ * @returns untracked paths in git's order.
23
+ */
24
+ export declare function untrackedFromStatus(output: string): string[];
25
+ /**
26
+ * Render the workspace change summary as Markdown.
27
+ * @param changes - tracked file deltas.
28
+ * @param untracked - untracked paths.
29
+ * @returns a Markdown summary, or a no-change notice.
30
+ */
31
+ export declare function formatChangeSummary(changes: readonly FileChange[], untracked: readonly string[]): string;
32
+ export declare function apply(ctx: Context): void;
@@ -0,0 +1,116 @@
1
+ /** Workspace change summary command registered through dsh-commands. */
2
+ import { execFile } from 'node:child_process';
3
+ import { registerCommands } from "./registration.js";
4
+ export const name = 'omdsh-command-diff';
5
+ export const inject = ['commands'];
6
+ /** Maximum rows rendered before a summary is truncated. */
7
+ const DIFF_MAX_ROWS = 20;
8
+ /**
9
+ * Parse `git diff --numstat` output.
10
+ * @param output - raw stdout, one `added\tremoved\tpath` row per file.
11
+ * @returns parsed changes in git's order.
12
+ */
13
+ export function parseNumstat(output) {
14
+ const changes = [];
15
+ for (const line of output.split('\n')) {
16
+ if (line.trim() === '')
17
+ continue;
18
+ const [added, removed, ...rest] = line.split('\t');
19
+ const path = rest.join('\t').trim();
20
+ if (path === '')
21
+ continue;
22
+ const binary = added === '-' || removed === '-';
23
+ changes.push({
24
+ path,
25
+ added: binary ? 0 : Number.parseInt(added ?? '0', 10) || 0,
26
+ removed: binary ? 0 : Number.parseInt(removed ?? '0', 10) || 0,
27
+ binary,
28
+ });
29
+ }
30
+ return changes;
31
+ }
32
+ /**
33
+ * Collect untracked paths from `git status --porcelain` output.
34
+ * @param output - raw stdout; only `??` rows are considered.
35
+ * @returns untracked paths in git's order.
36
+ */
37
+ export function untrackedFromStatus(output) {
38
+ return output.split('\n')
39
+ .filter(line => line.startsWith('?? '))
40
+ .map(line => line.slice(3).trim())
41
+ .filter(path => path !== '');
42
+ }
43
+ /**
44
+ * Render the workspace change summary as Markdown.
45
+ * @param changes - tracked file deltas.
46
+ * @param untracked - untracked paths.
47
+ * @returns a Markdown summary, or a no-change notice.
48
+ */
49
+ export function formatChangeSummary(changes, untracked) {
50
+ if (changes.length === 0 && untracked.length === 0)
51
+ return 'No workspace changes.';
52
+ const added = changes.reduce((total, change) => total + change.added, 0);
53
+ const removed = changes.reduce((total, change) => total + change.removed, 0);
54
+ const lines = [
55
+ `Workspace changes · ${changes.length} tracked · ${untracked.length} untracked · +${added} −${removed}`,
56
+ ];
57
+ if (changes.length > 0) {
58
+ lines.push('', '| File | + | − |', '|---|---|---|');
59
+ for (const change of changes.slice(0, DIFF_MAX_ROWS)) {
60
+ lines.push(`| \`${change.path}\` | ${change.binary ? '—' : change.added} | ${change.binary ? '—' : change.removed} |`);
61
+ }
62
+ if (changes.length > DIFF_MAX_ROWS)
63
+ lines.push('', `…and ${changes.length - DIFF_MAX_ROWS} more tracked files.`);
64
+ }
65
+ if (untracked.length > 0) {
66
+ lines.push('', '**Untracked**');
67
+ for (const path of untracked.slice(0, DIFF_MAX_ROWS))
68
+ lines.push(`- \`${path}\``);
69
+ if (untracked.length > DIFF_MAX_ROWS)
70
+ lines.push(`- …and ${untracked.length - DIFF_MAX_ROWS} more.`);
71
+ }
72
+ return lines.join('\n');
73
+ }
74
+ function gitRunner(cwd) {
75
+ return (args) => new Promise((resolvePromise, reject) => {
76
+ execFile('git', [...args], { cwd, timeout: 5_000, maxBuffer: 4 * 1024 * 1024 }, (error, stdout) => {
77
+ if (error !== null)
78
+ reject(error);
79
+ else
80
+ resolvePromise(stdout);
81
+ });
82
+ });
83
+ }
84
+ async function showDiff(invocation) {
85
+ const target = invocation.rawInput.trim();
86
+ const cwd = invocation.agent.session.header.cwd ?? process.cwd();
87
+ const git = gitRunner(cwd);
88
+ try {
89
+ if (target !== '') {
90
+ const patch = await git(['diff', '--', target]);
91
+ if (patch.trim() === '')
92
+ return { kind: 'success', text: `No unstaged changes in ${target}.` };
93
+ return { kind: 'success', text: `Diff · ${target}\n\n\`\`\`diff\n${patch.trimEnd()}\n\`\`\`` };
94
+ }
95
+ const [numstat, status] = await Promise.all([
96
+ git(['diff', '--numstat']),
97
+ git(['status', '--porcelain']),
98
+ ]);
99
+ return {
100
+ kind: 'success',
101
+ text: formatChangeSummary(parseNumstat(numstat), untrackedFromStatus(status)),
102
+ };
103
+ }
104
+ catch (error) {
105
+ return { kind: 'error', text: 'git diff failed: ' + (error instanceof Error ? error.message : String(error)) };
106
+ }
107
+ }
108
+ export function apply(ctx) {
109
+ registerCommands(ctx, [{
110
+ name: 'diff',
111
+ description: 'Summarize the workspace changes, or show one file',
112
+ input: { hint: '[path]' },
113
+ handler: showDiff,
114
+ }], 'omdsh diff command');
115
+ }
116
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Human-facing background-job surface over the Harness job registry.
3
+ * `/jobs` lists this session's jobs; `/jobs kill <id>` requests cancellation.
4
+ * Output stays with the model: the registry's read cursor is consuming, so a
5
+ * human read would steal the model's next `job_output`.
6
+ * @module @agi-fans/dsh-tui/command-jobs
7
+ */
8
+ import type { Context } from '@deepseek-ai/cordis';
9
+ import { type JobSnapshot } from '@deepseek-ai/dsh-jobs';
10
+ export declare const name = "omdsh-command-jobs";
11
+ export declare const inject: string[];
12
+ /** Markdown panel for `/jobs`; `now` is injected so the rendering stays pure. */
13
+ export declare function jobsText(jobs: readonly JobSnapshot[], now: number): string;
14
+ export declare function apply(ctx: Context): void;
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Human-facing background-job surface over the Harness job registry.
3
+ * `/jobs` lists this session's jobs; `/jobs kill <id>` requests cancellation.
4
+ * Output stays with the model: the registry's read cursor is consuming, so a
5
+ * human read would steal the model's next `job_output`.
6
+ * @module @agi-fans/dsh-tui/command-jobs
7
+ */
8
+ import { JobId } from '@deepseek-ai/dsh-jobs';
9
+ import { formatDuration } from "../chrome/status-line.js";
10
+ import { JOB_STATUS_WORD } from "../session/job-notice.js";
11
+ import { registerCommands } from "./registration.js";
12
+ export const name = 'omdsh-command-jobs';
13
+ export const inject = ['commands', 'jobs'];
14
+ function elapsed(snapshot, now) {
15
+ const end = snapshot.finishedAt ?? now;
16
+ return formatDuration(Math.max(0, end - snapshot.startedAt));
17
+ }
18
+ function statusCell(snapshot, now) {
19
+ const parts = [JOB_STATUS_WORD[snapshot.status], elapsed(snapshot, now)];
20
+ if (snapshot.detail !== undefined && snapshot.detail.trim() !== '')
21
+ parts.push(snapshot.detail.trim());
22
+ return parts.join(' · ');
23
+ }
24
+ /** Markdown panel for `/jobs`; `now` is injected so the rendering stays pure. */
25
+ export function jobsText(jobs, now) {
26
+ if (jobs.length === 0)
27
+ return 'No background jobs in this session.';
28
+ const running = jobs.filter(job => job.status === 'running' || job.status === 'stopping').length;
29
+ const settled = jobs.length - running;
30
+ const summary = [running === 0 ? '' : `${running} running`, settled === 0 ? '' : `${settled} finished`]
31
+ .filter(part => part !== '')
32
+ .join(' · ');
33
+ return [
34
+ `Jobs · ${summary}`,
35
+ '',
36
+ '| Job | Status | Description |',
37
+ '|---|---|---|',
38
+ ...jobs.map(job => `| \`${job.id}\` | ${statusCell(job, now)} | ${(job.label || '—').replace(/\|/gu, '\\|')} |`),
39
+ '',
40
+ '`/jobs kill <id>` stops a running job.',
41
+ ].join('\n');
42
+ }
43
+ function killJob(ctx, invocation) {
44
+ const id = invocation.rawInput.trim();
45
+ if (id === '')
46
+ return { kind: 'error', text: 'Usage: /jobs kill <id>' };
47
+ try {
48
+ const outcome = ctx.jobs.kill(JobId(id), invocation.agent, 'stopped from /jobs');
49
+ return {
50
+ kind: 'success',
51
+ text: outcome === 'requested' ? `Stopping ${id}.` : `${id} has already finished.`,
52
+ };
53
+ }
54
+ catch (error) {
55
+ return { kind: 'error', text: error instanceof Error ? error.message : String(error) };
56
+ }
57
+ }
58
+ function showJobs(ctx, invocation) {
59
+ const raw = invocation.rawInput.trim();
60
+ if (raw === '') {
61
+ return { kind: 'success', text: jobsText(ctx.jobs.list(invocation.agent), Date.now()) };
62
+ }
63
+ const [verb, ...rest] = raw.split(/\s+/u);
64
+ if (verb === 'kill') {
65
+ const id = rest[0];
66
+ if (id === undefined || rest.length > 1)
67
+ return { kind: 'error', text: 'Usage: /jobs kill <id>' };
68
+ return killJob(ctx, { ...invocation, rawInput: id });
69
+ }
70
+ return { kind: 'error', text: 'Usage: /jobs [kill <id>]' };
71
+ }
72
+ export function apply(ctx) {
73
+ registerCommands(ctx, [
74
+ {
75
+ name: 'jobs',
76
+ description: 'List background jobs or stop one',
77
+ input: { hint: '[kill <id>]' },
78
+ handler: invocation => showJobs(ctx, invocation),
79
+ },
80
+ ], 'omdsh jobs command');
81
+ }
82
+ //# sourceMappingURL=jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/commands/jobs.ts"],"names":[],"mappings":"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"}