@agi-fans/dsh-tui 0.19.0 → 0.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 (322) hide show
  1. package/lib/CHANGELOG.md +173 -1
  2. package/lib/chrome/box.js +2 -12
  3. package/lib/chrome/box.js.map +1 -1
  4. package/lib/chrome/code-highlight.d.ts +26 -18
  5. package/lib/chrome/code-highlight.js +114 -39
  6. package/lib/chrome/code-highlight.js.map +1 -1
  7. package/lib/chrome/diff-render.d.ts +1 -2
  8. package/lib/chrome/diff-render.js +41 -90
  9. package/lib/chrome/diff-render.js.map +1 -1
  10. package/lib/chrome/main-screen-renderer.d.ts +6 -32
  11. package/lib/chrome/main-screen-renderer.js +68 -15
  12. package/lib/chrome/main-screen-renderer.js.map +1 -1
  13. package/lib/chrome/markdown.js +128 -93
  14. package/lib/chrome/markdown.js.map +1 -1
  15. package/lib/chrome/math.d.ts +4 -0
  16. package/lib/chrome/math.js +340 -0
  17. package/lib/chrome/math.js.map +1 -0
  18. package/lib/chrome/md-style.d.ts +3 -0
  19. package/lib/chrome/md-style.js.map +1 -1
  20. package/lib/chrome/mermaid.d.ts +6 -0
  21. package/lib/chrome/mermaid.js +56 -0
  22. package/lib/chrome/mermaid.js.map +1 -0
  23. package/lib/chrome/renderer.d.ts +12 -0
  24. package/lib/chrome/renderer.js +1 -1
  25. package/lib/chrome/renderer.js.map +1 -1
  26. package/lib/chrome/status-config.d.ts +5 -0
  27. package/lib/chrome/status-config.js +3 -0
  28. package/lib/chrome/status-config.js.map +1 -1
  29. package/lib/chrome/status-line.d.ts +0 -21
  30. package/lib/chrome/status-line.js +8 -65
  31. package/lib/chrome/status-line.js.map +1 -1
  32. package/lib/chrome/terminal-images.d.ts +31 -0
  33. package/lib/chrome/terminal-images.js +34 -0
  34. package/lib/chrome/terminal-images.js.map +1 -0
  35. package/lib/chrome/theme.d.ts +5 -6
  36. package/lib/chrome/theme.js +225 -136
  37. package/lib/chrome/theme.js.map +1 -1
  38. package/lib/chrome/tool-args.d.ts +1 -1
  39. package/lib/chrome/tool-args.js +3 -1
  40. package/lib/chrome/tool-args.js.map +1 -1
  41. package/lib/chrome/tool-renderers.d.ts +2 -0
  42. package/lib/chrome/tool-renderers.js +10 -0
  43. package/lib/chrome/tool-renderers.js.map +1 -1
  44. package/lib/chrome/welcome-tips.d.ts +1 -0
  45. package/lib/chrome/welcome-tips.js +4 -3
  46. package/lib/chrome/welcome-tips.js.map +1 -1
  47. package/lib/chrome/width.d.ts +7 -3
  48. package/lib/chrome/width.js +78 -14
  49. package/lib/chrome/width.js.map +1 -1
  50. package/lib/commands/advisor.d.ts +15 -0
  51. package/lib/commands/advisor.js +200 -0
  52. package/lib/commands/advisor.js.map +1 -0
  53. package/lib/commands/auth.d.ts +4 -2
  54. package/lib/commands/auth.js +317 -83
  55. package/lib/commands/auth.js.map +1 -1
  56. package/lib/commands/btw.d.ts +15 -0
  57. package/lib/commands/btw.js +126 -0
  58. package/lib/commands/btw.js.map +1 -0
  59. package/lib/commands/diff.js +171 -5
  60. package/lib/commands/diff.js.map +1 -1
  61. package/lib/commands/export.d.ts +1 -1
  62. package/lib/commands/export.js +57 -8
  63. package/lib/commands/export.js.map +1 -1
  64. package/lib/commands/files.d.ts +8 -0
  65. package/lib/commands/files.js +185 -0
  66. package/lib/commands/files.js.map +1 -0
  67. package/lib/commands/integrations.js +18 -6
  68. package/lib/commands/integrations.js.map +1 -1
  69. package/lib/commands/model.js +1 -0
  70. package/lib/commands/model.js.map +1 -1
  71. package/lib/commands/permission.js +35 -1
  72. package/lib/commands/permission.js.map +1 -1
  73. package/lib/commands/plugins.d.ts +8 -0
  74. package/lib/commands/plugins.js +195 -0
  75. package/lib/commands/plugins.js.map +1 -0
  76. package/lib/commands/rate.d.ts +33 -0
  77. package/lib/commands/rate.js +212 -0
  78. package/lib/commands/rate.js.map +1 -0
  79. package/lib/commands/schedule.d.ts +19 -0
  80. package/lib/commands/schedule.js +197 -0
  81. package/lib/commands/schedule.js.map +1 -0
  82. package/lib/commands/session-configuration.d.ts +5 -1
  83. package/lib/commands/session-configuration.js +75 -35
  84. package/lib/commands/session-configuration.js.map +1 -1
  85. package/lib/commands/session.js +111 -60
  86. package/lib/commands/session.js.map +1 -1
  87. package/lib/commands/steer.js +2 -2
  88. package/lib/commands/steer.js.map +1 -1
  89. package/lib/commands/terminal.d.ts +21 -0
  90. package/lib/commands/terminal.js +202 -0
  91. package/lib/commands/terminal.js.map +1 -0
  92. package/lib/commands/worktree.d.ts +5 -0
  93. package/lib/commands/worktree.js +103 -0
  94. package/lib/commands/worktree.js.map +1 -0
  95. package/lib/definition.d.ts +163 -10
  96. package/lib/definition.js.map +1 -1
  97. package/lib/input/clipboard.d.ts +12 -7
  98. package/lib/input/clipboard.js +79 -20
  99. package/lib/input/clipboard.js.map +1 -1
  100. package/lib/input/composer-files.d.ts +26 -0
  101. package/lib/input/composer-files.js +50 -0
  102. package/lib/input/composer-files.js.map +1 -0
  103. package/lib/input/editor-discovery.d.ts +21 -0
  104. package/lib/input/editor-discovery.js +99 -0
  105. package/lib/input/editor-discovery.js.map +1 -0
  106. package/lib/input/editor.d.ts +26 -1
  107. package/lib/input/editor.js +126 -12
  108. package/lib/input/editor.js.map +1 -1
  109. package/lib/input/external-editor.d.ts +5 -2
  110. package/lib/input/external-editor.js +14 -12
  111. package/lib/input/external-editor.js.map +1 -1
  112. package/lib/input/fuzzy-search.d.ts +9 -0
  113. package/lib/input/fuzzy-search.js +113 -0
  114. package/lib/input/fuzzy-search.js.map +1 -0
  115. package/lib/input/keybindings-config.d.ts +6 -2
  116. package/lib/input/keybindings-config.js +61 -7
  117. package/lib/input/keybindings-config.js.map +1 -1
  118. package/lib/input/keys.d.ts +13 -1
  119. package/lib/input/keys.js +27 -8
  120. package/lib/input/keys.js.map +1 -1
  121. package/lib/input/mouse-policy.d.ts +3 -0
  122. package/lib/input/mouse-policy.js +14 -0
  123. package/lib/input/mouse-policy.js.map +1 -0
  124. package/lib/input/paste-burst.d.ts +16 -0
  125. package/lib/input/paste-burst.js +61 -0
  126. package/lib/input/paste-burst.js.map +1 -0
  127. package/lib/input/text-selection.d.ts +20 -0
  128. package/lib/input/text-selection.js +195 -0
  129. package/lib/input/text-selection.js.map +1 -0
  130. package/lib/runtime/agent-profile.d.ts +5 -0
  131. package/lib/runtime/agent-profile.js +12 -0
  132. package/lib/runtime/agent-profile.js.map +1 -1
  133. package/lib/runtime/approval-rules.d.ts +59 -0
  134. package/lib/runtime/approval-rules.js +179 -0
  135. package/lib/runtime/approval-rules.js.map +1 -0
  136. package/lib/runtime/btw-policy.d.ts +7 -0
  137. package/lib/runtime/btw-policy.js +18 -0
  138. package/lib/runtime/btw-policy.js.map +1 -0
  139. package/lib/runtime/btw.d.ts +47 -0
  140. package/lib/runtime/btw.js +200 -0
  141. package/lib/runtime/btw.js.map +1 -0
  142. package/lib/runtime/composer-images.d.ts +1 -0
  143. package/lib/runtime/composer-images.js +11 -3
  144. package/lib/runtime/composer-images.js.map +1 -1
  145. package/lib/runtime/composer-shell.d.ts +15 -0
  146. package/lib/runtime/composer-shell.js +84 -0
  147. package/lib/runtime/composer-shell.js.map +1 -0
  148. package/lib/runtime/file-open.d.ts +2 -0
  149. package/lib/runtime/file-open.js +12 -0
  150. package/lib/runtime/file-open.js.map +1 -0
  151. package/lib/runtime/file-recovery-local.d.ts +73 -0
  152. package/lib/runtime/file-recovery-local.js +351 -0
  153. package/lib/runtime/file-recovery-local.js.map +1 -0
  154. package/lib/runtime/file-recovery-recording.d.ts +23 -0
  155. package/lib/runtime/file-recovery-recording.js +131 -0
  156. package/lib/runtime/file-recovery-recording.js.map +1 -0
  157. package/lib/runtime/file-recovery-review.d.ts +4 -0
  158. package/lib/runtime/file-recovery-review.js +131 -0
  159. package/lib/runtime/file-recovery-review.js.map +1 -0
  160. package/lib/runtime/file-recovery-store.d.ts +83 -0
  161. package/lib/runtime/file-recovery-store.js +325 -0
  162. package/lib/runtime/file-recovery-store.js.map +1 -0
  163. package/lib/runtime/file-recovery-worker.d.ts +22 -0
  164. package/lib/runtime/file-recovery-worker.js +153 -0
  165. package/lib/runtime/file-recovery-worker.js.map +1 -0
  166. package/lib/runtime/file-review.d.ts +27 -0
  167. package/lib/runtime/file-review.js +225 -0
  168. package/lib/runtime/file-review.js.map +1 -0
  169. package/lib/runtime/herdr-agent.d.ts +11 -28
  170. package/lib/runtime/herdr-agent.js +170 -142
  171. package/lib/runtime/herdr-agent.js.map +1 -1
  172. package/lib/runtime/hook-settings.d.ts +17 -0
  173. package/lib/runtime/hook-settings.js +57 -0
  174. package/lib/runtime/hook-settings.js.map +1 -0
  175. package/lib/runtime/human-interaction.js +1 -1
  176. package/lib/runtime/human-interaction.js.map +1 -1
  177. package/lib/runtime/image-preview.d.ts +8 -0
  178. package/lib/runtime/image-preview.js +119 -0
  179. package/lib/runtime/image-preview.js.map +1 -0
  180. package/lib/runtime/plain-tui.d.ts +2 -0
  181. package/lib/runtime/plain-tui.js +2 -2
  182. package/lib/runtime/plain-tui.js.map +1 -1
  183. package/lib/runtime/plugin-settings.d.ts +40 -0
  184. package/lib/runtime/plugin-settings.js +450 -0
  185. package/lib/runtime/plugin-settings.js.map +1 -0
  186. package/lib/runtime/provider-local.d.ts +60 -10
  187. package/lib/runtime/provider-local.js +1640 -197
  188. package/lib/runtime/provider-local.js.map +1 -1
  189. package/lib/runtime/runner.js +50 -4
  190. package/lib/runtime/runner.js.map +1 -1
  191. package/lib/runtime/session-archive.d.ts +11 -0
  192. package/lib/runtime/session-archive.js +240 -0
  193. package/lib/runtime/session-archive.js.map +1 -0
  194. package/lib/runtime/session-runtime.js +1 -1
  195. package/lib/runtime/session-runtime.js.map +1 -1
  196. package/lib/runtime/settings-preferences.d.ts +5 -0
  197. package/lib/runtime/settings-preferences.js +34 -0
  198. package/lib/runtime/settings-preferences.js.map +1 -0
  199. package/lib/runtime/subagent-model-selection.d.ts +5 -0
  200. package/lib/runtime/subagent-model-selection.js +15 -0
  201. package/lib/runtime/subagent-model-selection.js.map +1 -0
  202. package/lib/runtime/terminal-notifications.d.ts +8 -0
  203. package/lib/runtime/terminal-notifications.js +16 -0
  204. package/lib/runtime/terminal-notifications.js.map +1 -1
  205. package/lib/runtime/terminal-reader.d.ts +11 -0
  206. package/lib/runtime/terminal-reader.js +87 -0
  207. package/lib/runtime/terminal-reader.js.map +1 -0
  208. package/lib/runtime/terminal-state.d.ts +29 -0
  209. package/lib/runtime/terminal-state.js +62 -0
  210. package/lib/runtime/terminal-state.js.map +1 -0
  211. package/lib/runtime/tool-presentation.js +50 -14
  212. package/lib/runtime/tool-presentation.js.map +1 -1
  213. package/lib/session/composer-drafts.d.ts +20 -0
  214. package/lib/session/composer-drafts.js +103 -0
  215. package/lib/session/composer-drafts.js.map +1 -0
  216. package/lib/session/conversation-turns.d.ts +16 -0
  217. package/lib/session/conversation-turns.js +33 -0
  218. package/lib/session/conversation-turns.js.map +1 -0
  219. package/lib/session/external-agents.d.ts +5 -0
  220. package/lib/session/external-agents.js +27 -0
  221. package/lib/session/external-agents.js.map +1 -0
  222. package/lib/session/feature-toggles.d.ts +8 -29
  223. package/lib/session/feature-toggles.js +15 -46
  224. package/lib/session/feature-toggles.js.map +1 -1
  225. package/lib/session/fold-policy.d.ts +0 -17
  226. package/lib/session/fold-policy.js +0 -11
  227. package/lib/session/fold-policy.js.map +1 -1
  228. package/lib/session/interaction-adapter.d.ts +3 -8
  229. package/lib/session/interaction-adapter.js +243 -34
  230. package/lib/session/interaction-adapter.js.map +1 -1
  231. package/lib/session/message-queue.d.ts +22 -0
  232. package/lib/session/message-queue.js +157 -0
  233. package/lib/session/message-queue.js.map +1 -0
  234. package/lib/session/model-readiness.d.ts +16 -0
  235. package/lib/session/model-readiness.js +43 -0
  236. package/lib/session/model-readiness.js.map +1 -0
  237. package/lib/session/project-context.d.ts +5 -0
  238. package/lib/session/project-context.js +36 -0
  239. package/lib/session/project-context.js.map +1 -1
  240. package/lib/session/project-file-search.js +3 -21
  241. package/lib/session/project-file-search.js.map +1 -1
  242. package/lib/session/session-controller.d.ts +11 -20
  243. package/lib/session/session-controller.js +287 -176
  244. package/lib/session/session-controller.js.map +1 -1
  245. package/lib/session/session-library.d.ts +11 -3
  246. package/lib/session/session-library.js +50 -8
  247. package/lib/session/session-library.js.map +1 -1
  248. package/lib/session/session-tree.d.ts +27 -0
  249. package/lib/session/session-tree.js +112 -0
  250. package/lib/session/session-tree.js.map +1 -0
  251. package/lib/session/steering.d.ts +3 -0
  252. package/lib/session/steering.js +9 -0
  253. package/lib/session/steering.js.map +1 -0
  254. package/lib/session/subagent-roster.d.ts +2 -1
  255. package/lib/session/subagent-roster.js +24 -3
  256. package/lib/session/subagent-roster.js.map +1 -1
  257. package/lib/session/subagent-tracker.d.ts +6 -2
  258. package/lib/session/subagent-tracker.js +49 -2
  259. package/lib/session/subagent-tracker.js.map +1 -1
  260. package/lib/session/tui-settings.d.ts +23 -1
  261. package/lib/session/tui-settings.js +15 -1
  262. package/lib/session/tui-settings.js.map +1 -1
  263. package/lib/session/workflow-projection.d.ts +9 -0
  264. package/lib/session/workflow-projection.js +44 -0
  265. package/lib/session/workflow-projection.js.map +1 -0
  266. package/lib/session/working-directory.d.ts +4 -0
  267. package/lib/session/working-directory.js +4 -0
  268. package/lib/session/working-directory.js.map +1 -0
  269. package/lib/session/worktrees.d.ts +13 -0
  270. package/lib/session/worktrees.js +49 -0
  271. package/lib/session/worktrees.js.map +1 -0
  272. package/lib/views/agent-hub.js +12 -4
  273. package/lib/views/agent-hub.js.map +1 -1
  274. package/lib/views/approval-rule.d.ts +3 -0
  275. package/lib/views/approval-rule.js +4 -0
  276. package/lib/views/approval-rule.js.map +1 -0
  277. package/lib/views/at-complete.d.ts +8 -0
  278. package/lib/views/at-complete.js +64 -2
  279. package/lib/views/at-complete.js.map +1 -1
  280. package/lib/views/autocomplete.d.ts +4 -0
  281. package/lib/views/autocomplete.js +33 -36
  282. package/lib/views/autocomplete.js.map +1 -1
  283. package/lib/views/copy-selector.d.ts +3 -0
  284. package/lib/views/copy-selector.js +46 -15
  285. package/lib/views/copy-selector.js.map +1 -1
  286. package/lib/views/copy-targets.d.ts +2 -2
  287. package/lib/views/copy-targets.js +31 -13
  288. package/lib/views/copy-targets.js.map +1 -1
  289. package/lib/views/document-reader.d.ts +34 -0
  290. package/lib/views/document-reader.js +145 -0
  291. package/lib/views/document-reader.js.map +1 -0
  292. package/lib/views/event-views.d.ts +1 -1
  293. package/lib/views/event-views.js +57 -2
  294. package/lib/views/event-views.js.map +1 -1
  295. package/lib/views/file-actions.d.ts +12 -0
  296. package/lib/views/file-actions.js +72 -0
  297. package/lib/views/file-actions.js.map +1 -0
  298. package/lib/views/hotkeys.d.ts +1 -0
  299. package/lib/views/hotkeys.js +18 -7
  300. package/lib/views/hotkeys.js.map +1 -1
  301. package/lib/views/prompt-selector.d.ts +36 -4
  302. package/lib/views/prompt-selector.js +316 -60
  303. package/lib/views/prompt-selector.js.map +1 -1
  304. package/lib/views/prompt-tree.d.ts +11 -0
  305. package/lib/views/prompt-tree.js +74 -0
  306. package/lib/views/prompt-tree.js.map +1 -0
  307. package/lib/views/session-files.d.ts +7 -0
  308. package/lib/views/session-files.js +62 -0
  309. package/lib/views/session-files.js.map +1 -0
  310. package/lib/views/settings-list.d.ts +63 -2
  311. package/lib/views/settings-list.js +269 -62
  312. package/lib/views/settings-list.js.map +1 -1
  313. package/lib/views/transcript-export.js +9 -0
  314. package/lib/views/transcript-export.js.map +1 -1
  315. package/lib/views/transcript-render.d.ts +25 -39
  316. package/lib/views/transcript-render.js +146 -217
  317. package/lib/views/transcript-render.js.map +1 -1
  318. package/lib/views/transcript-types.d.ts +1 -1
  319. package/package.json +126 -42
  320. package/lib/chrome/style.d.ts +0 -22
  321. package/lib/chrome/style.js +0 -23
  322. package/lib/chrome/style.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"code-highlight.js","sourceRoot":"","sources":["../../src/chrome/code-highlight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-highlight.js","sourceRoot":"","sources":["../../src/chrome/code-highlight.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Align Harness FileDiff hunks and paint them as a terminal edit card.
3
- * Line LCS recovers context that the presenter stores on both sides; a 1:1
3
+ * Line alignment recovers context that the presenter stores on both sides; a 1:1
4
4
  * replacement also marks changed tokens with inverse video.
5
5
  */
6
6
  import type { FileDiff } from '@deepseek-ai/dsh-tools';
@@ -34,7 +34,6 @@ export declare function formatDiffStats(added: number, removed: number): string
34
34
  export declare function formatDiffRow(row: DiffRow): string;
35
35
  export declare function formatDiffRows(rows: readonly DiffRow[]): string[];
36
36
  /** Color a already-prefixed plain diff line (`- `, `+ `, ` `, path, or gap). */
37
- export declare function paintPrefixedDiffLine(line: string, theme: Theme): string;
38
37
  export declare function paintDiffRow(row: DiffRow, theme: Theme): string;
39
38
  export declare function paintDiffStats(added: number, removed: number, theme: Theme): string;
40
39
  /** Paint, expand tabs, wrap to the framed-body width, and close inverse and foreground per row. */
@@ -1,25 +1,37 @@
1
1
  /**
2
2
  * Align Harness FileDiff hunks and paint them as a terminal edit card.
3
- * Line LCS recovers context that the presenter stores on both sides; a 1:1
3
+ * Line alignment recovers context that the presenter stores on both sides; a 1:1
4
4
  * replacement also marks changed tokens with inverse video.
5
5
  */
6
+ import { diffArrays } from 'diff';
6
7
  import { highlightCodeLines, languageFromPath } from "./code-highlight.js";
7
- import { expandTabs, wrapTextStable } from "./width.js";
8
- /** Skip Myers/LCS when a side is this long; dump old then new instead. */
9
- const ALIGN_LINE_LIMIT = 200;
10
- /**
11
- * Skip the quadratic intra-line alignment when either side tokenizes this
12
- * long. The table costs time and memory in the product of both sides, so one
13
- * minified source line measured 63 ms and roughly 18 MB of temporary storage at
14
- * 3 000 tokens, and the running tool card re-renders on every spinner frame.
15
- * Past this ceiling the row keeps its added/removed marking and loses only the
16
- * intra-line highlighting.
17
- */
18
- const TOKEN_ALIGN_LIMIT = 400;
8
+ import { expandTabs, wrapCode } from "./width.js";
9
+ /** Bound work by edit distance so large, mostly unchanged hunks still align. */
10
+ const MAX_LINE_EDITS = 400;
11
+ const ALIGN_LINE_LIMIT = 10_000;
12
+ /** Minified or extensively rewritten lines keep their red/green row marking. */
13
+ const INTRA_LINE_CHAR_LIMIT = 8_192;
14
+ const MAX_WORD_EDITS = 200;
19
15
  /** Inverse-off after each wrapped visual row so frame padding cannot inherit it. */
20
16
  const INVERSE_OFF = '\x1b[27m';
21
17
  /** Foreground-off after each wrapped visual row so syntax colors cannot leak into borders. */
22
18
  const FG_RESET = '\x1b[39m';
19
+ const diffSegmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
20
+ /** Keep identifiers and spacing intact, with punctuation as separate tokens.
21
+ * Emoji and combining sequences must not acquire ANSI inside one grapheme. */
22
+ function wordTokens(text) {
23
+ const tokens = [];
24
+ let previousKind = '';
25
+ for (const { segment } of diffSegmenter.segment(text)) {
26
+ const kind = /^[\p{L}\p{M}\p{N}_]+$/u.test(segment) ? 'word' : /^\s+$/u.test(segment) ? 'space' : 'punctuation';
27
+ if (kind !== 'punctuation' && previousKind === kind)
28
+ tokens[tokens.length - 1] += segment;
29
+ else
30
+ tokens.push(segment);
31
+ previousKind = kind;
32
+ }
33
+ return tokens;
34
+ }
23
35
  function plainRow(kind, text) {
24
36
  return { kind, tokens: [{ text }] };
25
37
  }
@@ -39,81 +51,26 @@ export function contentLines(text) {
39
51
  export function rowText(row) {
40
52
  return row.tokens.map(token => token.text).join('');
41
53
  }
42
- /**
43
- * Longest common subsequence walk. Equal remaining scores prefer a deletion so
44
- * replacements emit as a deleted run followed by an added run.
45
- */
46
- function alignSequences(oldItems, newItems) {
47
- const oldCount = oldItems.length;
48
- const newCount = newItems.length;
49
- const table = Array.from({ length: oldCount + 1 }, () => new Uint16Array(newCount + 1));
50
- for (let oldIndex = oldCount - 1; oldIndex >= 0; oldIndex -= 1) {
51
- const oldRow = table[oldIndex];
52
- const nextRow = table[oldIndex + 1];
53
- if (oldRow === undefined || nextRow === undefined)
54
- continue;
55
- for (let newIndex = newCount - 1; newIndex >= 0; newIndex -= 1) {
56
- oldRow[newIndex] = oldItems[oldIndex] === newItems[newIndex]
57
- ? (nextRow[newIndex + 1] ?? 0) + 1
58
- : Math.max(nextRow[newIndex] ?? 0, oldRow[newIndex + 1] ?? 0);
59
- }
60
- }
61
- const rows = [];
62
- let oldIndex = 0;
63
- let newIndex = 0;
64
- while (oldIndex < oldCount && newIndex < newCount) {
65
- if (oldItems[oldIndex] === newItems[newIndex]) {
66
- rows.push({ kind: 'ctx', text: oldItems[oldIndex] ?? '' });
67
- oldIndex += 1;
68
- newIndex += 1;
69
- continue;
70
- }
71
- const down = table[oldIndex + 1]?.[newIndex] ?? 0;
72
- const right = table[oldIndex]?.[newIndex + 1] ?? 0;
73
- if (down >= right) {
74
- rows.push({ kind: 'del', text: oldItems[oldIndex] ?? '' });
75
- oldIndex += 1;
76
- }
77
- else {
78
- rows.push({ kind: 'add', text: newItems[newIndex] ?? '' });
79
- newIndex += 1;
80
- }
81
- }
82
- while (oldIndex < oldCount) {
83
- rows.push({ kind: 'del', text: oldItems[oldIndex] ?? '' });
84
- oldIndex += 1;
85
- }
86
- while (newIndex < newCount) {
87
- rows.push({ kind: 'add', text: newItems[newIndex] ?? '' });
88
- newIndex += 1;
89
- }
90
- return rows;
91
- }
92
- function tokenize(text) {
93
- return text.split(/(\s+)/u).filter(part => part !== '');
94
- }
95
54
  function highlightPair(oldText, newText) {
96
- const oldTokens = tokenize(oldText);
97
- const newTokens = tokenize(newText);
98
- if (oldTokens.length === 0 && newTokens.length === 0) {
55
+ if (oldText.length > INTRA_LINE_CHAR_LIMIT || newText.length > INTRA_LINE_CHAR_LIMIT) {
99
56
  return { removed: plainRow('del', oldText), added: plainRow('add', newText) };
100
57
  }
101
- if (oldTokens.length > TOKEN_ALIGN_LIMIT || newTokens.length > TOKEN_ALIGN_LIMIT) {
58
+ const aligned = diffArrays(wordTokens(oldText), wordTokens(newText), { maxEditLength: MAX_WORD_EDITS });
59
+ if (aligned === undefined)
102
60
  return { removed: plainRow('del', oldText), added: plainRow('add', newText) };
103
- }
104
- const aligned = alignSequences(oldTokens, newTokens);
105
61
  const removed = [];
106
62
  const added = [];
107
63
  for (const part of aligned) {
108
- if (part.kind === 'ctx') {
109
- removed.push({ text: part.text });
110
- added.push({ text: part.text });
64
+ const text = part.value.join('');
65
+ if (part.removed) {
66
+ removed.push({ text, changed: true });
111
67
  }
112
- else if (part.kind === 'del') {
113
- removed.push({ text: part.text, changed: true });
68
+ else if (part.added) {
69
+ added.push({ text, changed: true });
114
70
  }
115
71
  else {
116
- added.push({ text: part.text, changed: true });
72
+ removed.push({ text });
73
+ added.push({ text });
117
74
  }
118
75
  }
119
76
  return {
@@ -161,13 +118,16 @@ function alignHunk(oldText, newText, language) {
161
118
  return contentLines(newText).map(line => plainRow('add', line));
162
119
  const oldLines = contentLines(oldText);
163
120
  const newLines = contentLines(newText);
164
- if (oldLines.length > ALIGN_LINE_LIMIT || newLines.length > ALIGN_LINE_LIMIT) {
121
+ const changes = oldLines.length > ALIGN_LINE_LIMIT || newLines.length > ALIGN_LINE_LIMIT
122
+ ? undefined
123
+ : diffArrays(oldLines, newLines, { maxEditLength: MAX_LINE_EDITS });
124
+ if (changes === undefined) {
165
125
  return [
166
126
  ...oldLines.map(line => plainRow('del', line)),
167
127
  ...newLines.map(line => plainRow('add', line)),
168
128
  ];
169
129
  }
170
- const aligned = alignSequences(oldLines, newLines).map(part => part.kind === 'ctx' ? ctxRow(part.text, language) : plainRow(part.kind, part.text));
130
+ const aligned = changes.flatMap(part => part.value.map(text => part.removed ? plainRow('del', text) : part.added ? plainRow('add', text) : ctxRow(text, language)));
171
131
  return applyIntraLine(aligned);
172
132
  }
173
133
  /** Align every hunk, inserting a path header or a same-file gap. */
@@ -247,15 +207,6 @@ function paintTokens(tokens, theme) {
247
207
  return out;
248
208
  }
249
209
  /** Color a already-prefixed plain diff line (`- `, `+ `, ` `, path, or gap). */
250
- export function paintPrefixedDiffLine(line, theme) {
251
- if (line.startsWith('- '))
252
- return theme.fg('toolDiffRemoved', line);
253
- if (line.startsWith('+ '))
254
- return theme.fg('toolDiffAdded', line);
255
- if (line.startsWith(' '))
256
- return theme.fg('toolDiffContext', line);
257
- return theme.fg('dim', line);
258
- }
259
210
  export function paintDiffRow(row, theme) {
260
211
  const body = paintTokens(row.tokens, theme);
261
212
  switch (row.kind) {
@@ -341,7 +292,7 @@ export function wrapPaintedDiffRows(rows, theme, width) {
341
292
  const ctxBody = ctxBodies.get(i);
342
293
  const painted = ctxBody === undefined ? paintDiffRow(row, theme) : paintContextRow(ctxBody, theme);
343
294
  const expanded = expandTabs(painted, 8, 2);
344
- for (const segment of wrapTextStable(expanded, inner)) {
295
+ for (const segment of wrapCode(expanded, inner)) {
345
296
  lines.push(theme.colors ? segment + INVERSE_OFF + FG_RESET : segment);
346
297
  }
347
298
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diff-render.js","sourceRoot":"","sources":["../../src/chrome/diff-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-render.js","sourceRoot":"","sources":["../../src/chrome/diff-render.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE1E,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwBjD,gFAAgF;AAChF,MAAM,cAAc,GAAG,GAAG,CAAA;AAC1B,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAE/B,gFAAgF;AAChF,MAAM,qBAAqB,GAAG,KAAK,CAAA;AACnC,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B,oFAAoF;AACpF,MAAM,WAAW,GAAG,UAAU,CAAA;AAE9B,8FAA8F;AAC9F,MAAM,QAAQ,GAAG,UAAU,CAAA;AAE3B,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;AAEhF;8EAC8E;AAC9E,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,YAAY,GAAG,EAAE,CAAA;IACrB,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAA;QAC/G,IAAI,IAAI,KAAK,aAAa,IAAI,YAAY,KAAK,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,OAAO,CAAA;;YACpF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACzB,YAAY,GAAG,IAAI,CAAA;IACrB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,IAAc,EAAE,IAAY;IAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AACrC,CAAC;AAED,mFAAmF;AACnF,SAAS,MAAM,CAAC,IAAY,EAAE,QAA4B;IACxD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;IACtE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAA;AACtD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,OAAe;IACrD,IAAI,OAAO,CAAC,MAAM,GAAG,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACrF,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,CAAA;IACvG,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAA;IACxG,MAAM,OAAO,GAAgB,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAgB,EAAE,CAAA;IAC7B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACvC,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IACD,OAAO;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;QACzC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;KACtC,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAwB;IAC9C,MAAM,GAAG,GAAc,EAAE,CAAA;IACzB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,GAAG,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,GAAG,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACpC,KAAK,IAAI,CAAC,CAAA;YACV,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAc,EAAE,CAAA;QAC7B,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1C,KAAK,IAAI,CAAC,CAAA;QACZ,CAAC;QACD,MAAM,KAAK,GAAc,EAAE,CAAA;QAC3B,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxC,KAAK,IAAI,CAAC,CAAA;QACZ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;YACpE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,OAAsB,EAAE,OAAe,EAAE,QAA4B;IACtF,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IACrF,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,gBAAgB,IAAI,QAAQ,CAAC,MAAM,GAAG,gBAAgB;QACtF,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,CAAA;IACrE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC/C,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC5D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CACnG,CAAC,CAAA;IACF,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,IAAI,GAAc,EAAE,CAAA;IAC1B,IAAI,YAAgC,CAAA;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;;YACjE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;QACpC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;YAAE,KAAK,IAAI,CAAC,CAAA;aAC7B,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC3B,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,OAAe;IAC5D,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAClD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;IACtC,IAAI,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACzB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,IAAI,CAAA;QACb,KAAK,KAAK;YACR,OAAO,KAAK,IAAI,EAAE,CAAA;QACpB,KAAK,KAAK;YACR,OAAO,KAAK,IAAI,EAAE,CAAA;QACpB,KAAK,KAAK;YACR,OAAO,KAAK,IAAI,EAAE,CAAA;IACtB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,MAA4B,EAAE,KAAY;IAC7D,IAAI,YAAY,GAAG,IAAI,CAAA;IACvB,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3B,GAAG,IAAI,KAAK,CAAC,IAAI,CAAA;YACjB,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,GAAG,IAAI,IAAI,CAAA;gBACX,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClC,CAAC;YACD,YAAY,GAAG,KAAK,CAAA;QACtB,CAAC;QACD,IAAI,KAAK,KAAK,EAAE;YAAE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,GAAY,EAAE,KAAY;IACrD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC3C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QACtC,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;QACjD,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;QACjD,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;IACjD,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,IAAwB,EAAE,KAAY;IACpE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,GAAG,CAAA;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAA;IACjB,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,KAAK,GAAG,CAAC,GAAW,EAAQ,EAAE;QAClC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,OAAM;QAC3B,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;QACrE,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAA;QAC3F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3F,QAAQ,GAAG,CAAC,CAAC,CAAA;QACb,OAAO,GAAG,EAAE,CAAA;IACd,CAAC,CAAA;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QACpB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACrD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,QAAQ,GAAG,CAAC,CAAA;gBACZ,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAA;YACxB,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACpC,KAAK,CAAC,CAAC,CAAC,CAAA;gBACR,QAAQ,GAAG,CAAC,CAAA;gBACZ,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAA;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,CAAC,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,4EAA4E;AAC5E,SAAS,eAAe,CAAC,eAAuB,EAAE,KAAY;IAC5D,OAAO,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,eAAe,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,OAAe,EAAE,KAAY;IACzE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAA;IACjE,IAAI,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC,CAAA;IACvE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;AACzC,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,mBAAmB,CAAC,IAAwB,EAAE,KAAY,EAAE,KAAa;IACvF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;IACpC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QACpB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAClG,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1,33 +1,3 @@
1
- /**
2
- * Main-screen renderer.
3
- *
4
- * The terminal owns native scrollback. This renderer owns only the current
5
- * screen and a logical boundary for rows already frozen above it. Routine
6
- * updates treat native history as append-only, and so does a transcript epoch:
7
- * replacing the document replays the new frame into a fresh index space and
8
- * leaves the earlier output above, where the terminal keeps it.
9
- *
10
- * Finalized rows cross the boundary by being painted at the top of the screen
11
- * immediately before a newline scrolls them into history. Pending rows remain
12
- * in the mutable screen tail. A terminal height change is the one exception:
13
- * the terminal itself can move visible rows across the scrollback boundary, so
14
- * the renderer adopts that new physical boundary instead of emitting the rows
15
- * again.
16
- *
17
- * reset() repairs the visible screen without replaying history. A logical
18
- * conversation replacement must call startEpoch() so the replacement frame is
19
- * laid out from a clean index space rather than diffed against rows that
20
- * described a different document.
21
- *
22
- * Nothing here erases native scrollback. It holds the reader's shell output
23
- * from before this process started, and a routine replacement has no business
24
- * destroying it; the seam between the two documents is content, and the
25
- * transcript renders it.
26
- *
27
- * The terminal provider owns input modes, including mouse tracking; the
28
- * renderer wraps every paint in one DEC 2026 synchronized write.
29
- * @module @agi-fans/dsh-tui
30
- */
31
1
  import { type Frame, type RenderSink } from './renderer.ts';
32
2
  export interface MainScreenRendererOptions {
33
3
  /** Terminal height in rows. */
@@ -100,6 +70,10 @@ export declare class MainScreenRenderer {
100
70
  startEpoch(options?: EpochOptions): void;
101
71
  /** Put the cursor below the UI before terminal ownership is released. */
102
72
  finish(): void;
103
- /** Render a frame, appending only finalized rows during a stable geometry epoch. */
104
- render(frame: Frame): void;
73
+ /** Canonical physical rows, including viewport-only prompt headers. */
74
+ viewport(): readonly string[];
75
+ /** Physical transcript rows only; chrome, sticky labels and alternate overlays have no source. */
76
+ documentRowAt(row: number): number | undefined;
77
+ /** Render canonical content, then decorate the viewport without changing history. */
78
+ render(frame: Frame, decorate?: (rows: readonly string[]) => readonly string[]): void;
105
79
  }
@@ -28,6 +28,7 @@
28
28
  * renderer wraps every paint in one DEC 2026 synchronized write.
29
29
  * @module @agi-fans/dsh-tui
30
30
  */
31
+ import { deleteImage, imageSequence } from "./terminal-images.js";
31
32
  import { sanitizeDisplayLine } from "./renderer.js";
32
33
  import { visibleWidth } from "./width.js";
33
34
  const DISABLE_AUTOWRAP = '\x1b[?7l';
@@ -175,6 +176,9 @@ export function mapBlockSpan(input) {
175
176
  export class MainScreenRenderer {
176
177
  #sink;
177
178
  #synchronized;
179
+ #image;
180
+ #imageId = Math.floor(Math.random() * 0x7ffffffe) + 1;
181
+ #imageChanged = false;
178
182
  #alternateScreenOverlays;
179
183
  #width;
180
184
  #height;
@@ -215,6 +219,7 @@ export class MainScreenRenderer {
215
219
  */
216
220
  /** Exact visible rows expected on the physical screen. */
217
221
  #screen;
222
+ #decoratedRows;
218
223
  #transient = false;
219
224
  #altActive = false;
220
225
  #altScreen;
@@ -391,7 +396,10 @@ export class MainScreenRenderer {
391
396
  /** Put the cursor below the UI before terminal ownership is released. */
392
397
  finish() {
393
398
  const targetRow = Math.max(0, this.#height - 1);
394
- let out = '';
399
+ let out = this.#image?.protocol === 'kitty' ? deleteImage(this.#imageId) : '';
400
+ this.#image = undefined;
401
+ out += this.#decoratedRows === undefined ? '' : this.#paintDiff(this.#screen, this.#decoratedRows);
402
+ this.#decoratedRows = undefined;
395
403
  if (this.#altActive) {
396
404
  out += EXIT_ALT_SCREEN;
397
405
  this.#altActive = false;
@@ -406,14 +414,36 @@ export class MainScreenRenderer {
406
414
  this.#cursorCol = 0;
407
415
  this.#cursorVisible = true;
408
416
  }
409
- /** Render a frame, appending only finalized rows during a stable geometry epoch. */
410
- render(frame) {
417
+ /** Canonical physical rows, including viewport-only prompt headers. */
418
+ viewport() { return [...(this.#altActive ? this.#altScreen : this.#screen)]; }
419
+ /** Physical transcript rows only; chrome, sticky labels and alternate overlays have no source. */
420
+ documentRowAt(row) {
421
+ return this.#altActive || !this.#screenSourceKnown || this.#screenSource === null || !Number.isInteger(row) || row < 0
422
+ ? undefined : this.#screenRowSource[row];
423
+ }
424
+ /** Render canonical content, then decorate the viewport without changing history. */
425
+ render(frame, decorate) {
426
+ // Remove the previous selection before any canonical rows can cross into history.
427
+ // A resize invalidates its physical coordinates; repaint the new viewport instead.
428
+ const hadDecoration = this.#decoratedRows !== undefined;
429
+ const resizedDecoration = hadDecoration && this.#resize !== undefined;
430
+ const undecorate = hadDecoration && !resizedDecoration
431
+ ? this.#paintDiff(this.#screen, this.#decoratedRows) : '';
432
+ this.#decoratedRows = undefined;
411
433
  // The event slot is per-frame. A frame that prepares no move must not inherit the last
412
434
  // one's record: the confirmation steps are written against "the move this frame made",
413
435
  // and a leftover slot would let them check against rows a previous frame moved. A move
414
436
  // that still needs confirming lives in the pending queue, which is what the retry reads —
415
437
  // that lifecycle is explicit and not a side effect of this field.
416
438
  this.#pendingEvent = undefined;
439
+ const graphic = frame.transientSurface === 'scroll' || (frame.liveStart ?? 0) !== 0 ? undefined : frame.image;
440
+ const oldGraphic = this.#image;
441
+ this.#imageChanged = oldGraphic?.image !== graphic?.image || oldGraphic?.protocol !== graphic?.protocol
442
+ || oldGraphic?.row !== graphic?.row || oldGraphic?.column !== graphic?.column
443
+ || oldGraphic?.columns !== graphic?.columns || oldGraphic?.rows !== graphic?.rows || this.#resize !== undefined
444
+ || (graphic !== undefined && (this.#reanchor || !this.#altActive));
445
+ const removeGraphic = this.#imageChanged && oldGraphic?.protocol === 'kitty' ? deleteImage(this.#imageId) : '';
446
+ this.#image = graphic;
417
447
  const next = frame.lines.map(line => sanitizeDisplayLine(String(line)));
418
448
  const liveStart = Math.max(0, Math.min(frame.liveStart ?? 0, next.length));
419
449
  const livePinned = frame.livePinned !== false;
@@ -440,7 +470,7 @@ export class MainScreenRenderer {
440
470
  // one that painted this one. An alternate frame may still apply a normal resize event;
441
471
  // what it must not do is confirm main-screen sources from overlay text.
442
472
  const drawsAlternate = liveStart === 0
443
- && this.#alternateScreenOverlays
473
+ && (this.#alternateScreenOverlays || graphic !== undefined)
444
474
  && frame.transientSurface !== 'scroll';
445
475
  // Fixed and applied once, after the target buffer is known and before the queue is read, so
446
476
  // this frame's own move is part of its own comparison. The draw paths receive the result
@@ -578,7 +608,16 @@ export class MainScreenRenderer {
578
608
  this.#exitOwnedByCaller = false;
579
609
  // One packaging for the whole frame: the reverse prefix and the body are wrapped together
580
610
  // rather than the body being wrapped on its own and the prefix left outside it.
581
- const frameBytes = restoreBytes + paint;
611
+ const viewport = this.#altActive ? this.#altScreen : this.#screen;
612
+ const decorated = decorate?.(viewport) ?? viewport;
613
+ const decoration = this.#paintDiff(decorated, viewport);
614
+ if (decoration !== '')
615
+ this.#decoratedRows = decorated;
616
+ const repaint = resizedDecoration ? this.#writeRun(viewport, 0, this.#height - 1) : '';
617
+ const restoreCursor = undecorate !== '' || decoration !== '' || repaint !== ''
618
+ ? csi(this.#cursorRow, this.#cursorCol) : '';
619
+ const graphics = graphic !== undefined && this.#imageChanged ? imageSequence(graphic, this.#imageId) + csi(this.#cursorRow, this.#cursorCol) : '';
620
+ const frameBytes = removeGraphic + undecorate + restoreBytes + paint + repaint + decoration + restoreCursor + graphics;
582
621
  if (frameBytes !== '')
583
622
  this.#sink.write(this.#wrap(frameBytes));
584
623
  }
@@ -591,10 +630,10 @@ export class MainScreenRenderer {
591
630
  // Browsing history is not an overlay: the alternate buffer would hide the
592
631
  // terminal's own scrollback, which is exactly what the user is scrolling
593
632
  // through, so a scroll frame repaints the main screen instead.
594
- if (this.#alternateScreenOverlays && surface !== 'scroll') {
633
+ if ((this.#alternateScreenOverlays || frame.image !== undefined) && surface !== 'scroll') {
595
634
  // A transition present here is the overlay's own: the main screen's is parked
596
635
  // on `#mainResizeRecord`, so a restore never re-arms this clear.
597
- const clear = !this.#altActive || transitionForAlt !== undefined;
636
+ const clear = !this.#altActive || transitionForAlt !== undefined || this.#imageChanged;
598
637
  let body = this.#altActive ? '' : ENTER_ALT_SCREEN;
599
638
  body += this.#paintScreen(target.rows, clear ? this.#blankScreen() : this.#altScreen, clear);
600
639
  const targetRow = this.#screenRow(cursor.row, target, next.length);
@@ -720,13 +759,18 @@ export class MainScreenRenderer {
720
759
  }
721
760
  #paintFollow(next, liveStart, livePinned, cursor, cursorVisible, frame) {
722
761
  const transcript = frame.transcript;
723
- const exitAlt = this.#altActive && !this.#exitOwnedByCaller ? EXIT_ALT_SCREEN : '';
724
- if (this.#altActive) {
762
+ const leavingAlt = this.#altActive;
763
+ const exitAlt = leavingAlt && !this.#exitOwnedByCaller ? EXIT_ALT_SCREEN : '';
764
+ if (leavingAlt) {
725
765
  this.#altActive = false;
726
766
  this.#altScreen = this.#blankScreen();
727
767
  }
728
768
  const viewStart = Math.max(0, next.length - this.#height);
729
769
  const candidatePhysical = livePinned ? Math.min(liveStart, viewStart) : viewStart;
770
+ // A fold can start exactly at the frozen boundary: its unchanged prefix
771
+ // remains in history, but now fits in the live viewport again.
772
+ const reshaped = this.#reflowFrom !== undefined && (this.#reflowFrom < this.#physical
773
+ || (this.#reflowFrom === this.#physical && candidatePhysical < this.#physical));
730
774
  let effectiveStart = viewStart;
731
775
  let target = this.#target(next, effectiveStart, 'bottom');
732
776
  let body = '';
@@ -768,7 +812,6 @@ export class MainScreenRenderer {
768
812
  // shape against itself and skip the rows between the stale boundary and
769
813
  // the real one — rows that had never been shown and never committed.
770
814
  // So the mapping happens here, and this frame counts as the reflow.
771
- const reshaped = this.#reflowFrom !== undefined && this.#reflowFrom < this.#physical;
772
815
  // The move's physical effect on history happens **once**, before the branches
773
816
  // decide anything, and whichever branch this frame then takes works from the
774
817
  // same history. Applying it inside one branch meant a frame that took another
@@ -910,7 +953,7 @@ export class MainScreenRenderer {
910
953
  // leave two records for one move and two chances to confirm it.
911
954
  this.#resize = undefined;
912
955
  }
913
- else if (this.#reflowFrom !== undefined && this.#reflowFrom < this.#physical) {
956
+ else if (reshaped) {
914
957
  body = this.#paintScreen(target.rows, this.#screen, true);
915
958
  // Preserve unchanged frozen rows in their new index space. A shrink may
916
959
  // bring them onto screen; repainting them does not make them unfrozen.
@@ -998,7 +1041,9 @@ export class MainScreenRenderer {
998
1041
  if (!this.#frozenViewport && candidatePhysical < this.#physical)
999
1042
  effectiveStart = Math.max(this.#physical, viewStart);
1000
1043
  target = this.#target(next, effectiveStart, 'bottom');
1001
- body = this.#paintScreen(target.rows, this.#screen, false);
1044
+ // The hidden normal buffer may no longer match the last painted snapshot.
1045
+ // Restore the live viewport explicitly, even when its logical rows are unchanged.
1046
+ body = this.#paintScreen(target.rows, this.#screen, leavingAlt);
1002
1047
  }
1003
1048
  this.#transient = false;
1004
1049
  const header = this.#paintStickyHeader(frame, target);
@@ -1077,7 +1122,7 @@ export class MainScreenRenderer {
1077
1122
  ...next.slice(viewStart, viewStart + this.#height),
1078
1123
  ];
1079
1124
  this.#noteFlushed(next, ranges.flatMap(([from, to]) => Array.from({ length: Math.max(0, to - from) }, (_, i) => from + i)));
1080
- let out = CLEAR_SCREEN;
1125
+ let out = this.#clearViewport();
1081
1126
  if (rows.length < this.#height)
1082
1127
  out += csi(this.#height - rows.length, 0);
1083
1128
  for (let i = 0; i < rows.length; i += 1) {
@@ -1094,7 +1139,7 @@ export class MainScreenRenderer {
1094
1139
  ...next.slice(viewStart, viewStart + this.#height),
1095
1140
  ];
1096
1141
  this.#noteFlushed(next, Array.from({ length: Math.max(0, committedEnd - start) }, (_, i) => start + i));
1097
- let out = clearScreen ? CLEAR_SCREEN : csi(0, 0);
1142
+ let out = clearScreen ? this.#clearViewport() : csi(0, 0);
1098
1143
  if (rows.length < this.#height)
1099
1144
  out += csi(this.#height - rows.length, 0);
1100
1145
  for (let i = 0; i < rows.length; i += 1) {
@@ -1105,8 +1150,16 @@ export class MainScreenRenderer {
1105
1150
  }
1106
1151
  return out;
1107
1152
  }
1153
+ /** ED2 can append the entire screen to tmux history (scroll-on-clear). */
1154
+ #clearViewport() {
1155
+ // The initial clear may preserve pre-existing shell output, and alternate
1156
+ // buffers have no scrollback. Later main-screen clears are strictly local.
1157
+ if (!this.#hasFrame || this.#altActive)
1158
+ return CLEAR_SCREEN;
1159
+ return Array.from({ length: this.#height }, (_, row) => csi(row, 0) + CLEAR_LINE).join('') + csi(0, 0);
1160
+ }
1108
1161
  #paintScreen(next, old, clear) {
1109
- return (clear ? CLEAR_SCREEN : '') + this.#paintDiff(next, clear ? this.#blankScreen() : old);
1162
+ return (clear ? this.#clearViewport() : '') + this.#paintDiff(next, clear ? this.#blankScreen() : old);
1110
1163
  }
1111
1164
  #paintDiff(next, old) {
1112
1165
  let out = '';