@agi-fans/dsh-tui 0.4.0 → 0.5.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 (242) hide show
  1. package/README.md +43 -7
  2. package/lib/CHANGELOG.md +33 -1
  3. package/lib/{box.d.ts → chrome/box.d.ts} +2 -0
  4. package/lib/{box.js → chrome/box.js} +26 -16
  5. package/lib/chrome/box.js.map +1 -0
  6. package/lib/chrome/command-output.js.map +1 -0
  7. package/lib/chrome/diff-render.d.ts +39 -0
  8. package/lib/chrome/diff-render.js +274 -0
  9. package/lib/chrome/diff-render.js.map +1 -0
  10. package/lib/chrome/markdown.d.ts +17 -0
  11. package/lib/chrome/markdown.js +537 -0
  12. package/lib/chrome/markdown.js.map +1 -0
  13. package/lib/chrome/path-mentions.js.map +1 -0
  14. package/lib/chrome/relative-time.js.map +1 -0
  15. package/lib/chrome/renderer.js.map +1 -0
  16. package/lib/chrome/status-config.d.ts +70 -0
  17. package/lib/chrome/status-config.js +147 -0
  18. package/lib/chrome/status-config.js.map +1 -0
  19. package/lib/{status-line.d.ts → chrome/status-line.d.ts} +20 -2
  20. package/lib/{status-line.js → chrome/status-line.js} +175 -113
  21. package/lib/chrome/status-line.js.map +1 -0
  22. package/lib/chrome/style.js.map +1 -0
  23. package/lib/{theme.d.ts → chrome/theme.d.ts} +5 -3
  24. package/lib/chrome/theme.js +708 -0
  25. package/lib/chrome/theme.js.map +1 -0
  26. package/lib/{tool-renderers.js → chrome/tool-renderers.js} +25 -20
  27. package/lib/chrome/tool-renderers.js.map +1 -0
  28. package/lib/chrome/tools-list.js.map +1 -0
  29. package/lib/{welcome-tips.js → chrome/welcome-tips.js} +4 -2
  30. package/lib/chrome/welcome-tips.js.map +1 -0
  31. package/lib/chrome/width.js.map +1 -0
  32. package/lib/{command-auth.js → commands/auth.js} +2 -2
  33. package/lib/commands/auth.js.map +1 -0
  34. package/lib/{command-export.js → commands/export.js} +3 -3
  35. package/lib/commands/export.js.map +1 -0
  36. package/lib/{command-integrations.js → commands/integrations.js} +2 -2
  37. package/lib/commands/integrations.js.map +1 -0
  38. package/lib/{command-loop.d.ts → commands/loop.d.ts} +1 -1
  39. package/lib/{command-loop.js → commands/loop.js} +2 -2
  40. package/lib/commands/loop.js.map +1 -0
  41. package/lib/{command-model.js → commands/model.js} +2 -2
  42. package/lib/commands/model.js.map +1 -0
  43. package/lib/{command-permission.js → commands/permission.js} +13 -8
  44. package/lib/commands/permission.js.map +1 -0
  45. package/lib/{command-registration.js → commands/registration.js} +1 -1
  46. package/lib/commands/registration.js.map +1 -0
  47. package/lib/commands/session-configuration.d.ts +5 -0
  48. package/lib/commands/session-configuration.js +108 -0
  49. package/lib/commands/session-configuration.js.map +1 -0
  50. package/lib/{command-session.js → commands/session.js} +10 -7
  51. package/lib/commands/session.js.map +1 -0
  52. package/lib/{command-steer.js → commands/steer.js} +2 -2
  53. package/lib/commands/steer.js.map +1 -0
  54. package/lib/definition.d.ts +6 -1
  55. package/lib/definition.js.map +1 -1
  56. package/lib/index.d.ts +1 -1
  57. package/lib/index.js +1 -1
  58. package/lib/index.js.map +1 -1
  59. package/lib/input/clipboard.js.map +1 -0
  60. package/lib/input/editor.js.map +1 -0
  61. package/lib/input/external-editor.js.map +1 -0
  62. package/lib/{image-paste.d.ts → input/image-paste.d.ts} +1 -1
  63. package/lib/input/image-paste.js.map +1 -0
  64. package/lib/input/keybindings-config.js.map +1 -0
  65. package/lib/input/keys.js.map +1 -0
  66. package/lib/runtime/agent-profile.d.ts +10 -0
  67. package/lib/runtime/agent-profile.js +9 -0
  68. package/lib/runtime/agent-profile.js.map +1 -0
  69. package/lib/{human-interaction.js → runtime/human-interaction.js} +1 -1
  70. package/lib/runtime/human-interaction.js.map +1 -0
  71. package/lib/{provider-local.d.ts → runtime/provider-local.d.ts} +9 -9
  72. package/lib/{provider-local.js → runtime/provider-local.js} +30 -26
  73. package/lib/runtime/provider-local.js.map +1 -0
  74. package/lib/runtime/runner.js.map +1 -0
  75. package/lib/{session-runtime.d.ts → runtime/session-runtime.d.ts} +2 -2
  76. package/lib/{session-runtime.js → runtime/session-runtime.js} +3 -3
  77. package/lib/runtime/session-runtime.js.map +1 -0
  78. package/lib/{startup-notices.js → runtime/startup-notices.js} +6 -6
  79. package/lib/runtime/startup-notices.js.map +1 -0
  80. package/lib/{tool-presentation.d.ts → runtime/tool-presentation.d.ts} +1 -1
  81. package/lib/runtime/tool-presentation.js.map +1 -0
  82. package/lib/{interaction-adapter.d.ts → session/interaction-adapter.d.ts} +1 -1
  83. package/lib/session/interaction-adapter.js.map +1 -0
  84. package/lib/{package-metadata.js → session/package-metadata.js} +1 -1
  85. package/lib/session/package-metadata.js.map +1 -0
  86. package/lib/session/project-context.js.map +1 -0
  87. package/lib/session/project-file-search.js.map +1 -0
  88. package/lib/session/release-notes.js.map +1 -0
  89. package/lib/session/session-configuration.d.ts +25 -0
  90. package/lib/session/session-configuration.js +46 -0
  91. package/lib/session/session-configuration.js.map +1 -0
  92. package/lib/{session-controller.d.ts → session/session-controller.d.ts} +13 -2
  93. package/lib/{session-controller.js → session/session-controller.js} +181 -11
  94. package/lib/session/session-controller.js.map +1 -0
  95. package/lib/{tui-settings.d.ts → session/tui-settings.d.ts} +2 -2
  96. package/lib/session/tui-settings.js +42 -0
  97. package/lib/session/tui-settings.js.map +1 -0
  98. package/lib/session/update-check.js.map +1 -0
  99. package/lib/{autocomplete.d.ts → views/autocomplete.d.ts} +1 -1
  100. package/lib/{autocomplete.js → views/autocomplete.js} +2 -2
  101. package/lib/views/autocomplete.js.map +1 -0
  102. package/lib/{copy-selector.d.ts → views/copy-selector.d.ts} +2 -2
  103. package/lib/{copy-selector.js → views/copy-selector.js} +2 -2
  104. package/lib/views/copy-selector.js.map +1 -0
  105. package/lib/views/copy-targets.js.map +1 -0
  106. package/lib/{event-views.d.ts → views/event-views.d.ts} +8 -8
  107. package/lib/{event-views.js → views/event-views.js} +64 -25
  108. package/lib/views/event-views.js.map +1 -0
  109. package/lib/{history-search.d.ts → views/history-search.d.ts} +2 -2
  110. package/lib/{history-search.js → views/history-search.js} +3 -3
  111. package/lib/views/history-search.js.map +1 -0
  112. package/lib/views/history-store.js.map +1 -0
  113. package/lib/{hotkeys.d.ts → views/hotkeys.d.ts} +1 -1
  114. package/lib/{hotkeys.js → views/hotkeys.js} +1 -1
  115. package/lib/views/hotkeys.js.map +1 -0
  116. package/lib/{path-complete.d.ts → views/path-complete.d.ts} +2 -2
  117. package/lib/{path-complete.js → views/path-complete.js} +1 -1
  118. package/lib/views/path-complete.js.map +1 -0
  119. package/lib/{prompt-selector.d.ts → views/prompt-selector.d.ts} +2 -2
  120. package/lib/{prompt-selector.js → views/prompt-selector.js} +4 -4
  121. package/lib/views/prompt-selector.js.map +1 -0
  122. package/lib/{settings-list.d.ts → views/settings-list.d.ts} +11 -6
  123. package/lib/{settings-list.js → views/settings-list.js} +217 -85
  124. package/lib/views/settings-list.js.map +1 -0
  125. package/lib/views/transcript-export.js.map +1 -0
  126. package/package.json +64 -54
  127. package/lib/autocomplete.js.map +0 -1
  128. package/lib/box.js.map +0 -1
  129. package/lib/clipboard.js.map +0 -1
  130. package/lib/command-auth.js.map +0 -1
  131. package/lib/command-export.js.map +0 -1
  132. package/lib/command-integrations.js.map +0 -1
  133. package/lib/command-loop.js.map +0 -1
  134. package/lib/command-model.js.map +0 -1
  135. package/lib/command-output.js.map +0 -1
  136. package/lib/command-permission.js.map +0 -1
  137. package/lib/command-registration.js.map +0 -1
  138. package/lib/command-session.js.map +0 -1
  139. package/lib/command-steer.js.map +0 -1
  140. package/lib/copy-selector.js.map +0 -1
  141. package/lib/copy-targets.js.map +0 -1
  142. package/lib/editor.js.map +0 -1
  143. package/lib/event-views.js.map +0 -1
  144. package/lib/external-editor.js.map +0 -1
  145. package/lib/history-search.js.map +0 -1
  146. package/lib/history-store.js.map +0 -1
  147. package/lib/hotkeys.js.map +0 -1
  148. package/lib/human-interaction.js.map +0 -1
  149. package/lib/image-paste.js.map +0 -1
  150. package/lib/interaction-adapter.js.map +0 -1
  151. package/lib/keybindings-config.js.map +0 -1
  152. package/lib/keys.js.map +0 -1
  153. package/lib/markdown.d.ts +0 -13
  154. package/lib/markdown.js +0 -453
  155. package/lib/markdown.js.map +0 -1
  156. package/lib/package-metadata.js.map +0 -1
  157. package/lib/path-complete.js.map +0 -1
  158. package/lib/path-mentions.js.map +0 -1
  159. package/lib/project-context.js.map +0 -1
  160. package/lib/project-file-search.js.map +0 -1
  161. package/lib/prompt-selector.js.map +0 -1
  162. package/lib/provider-local.js.map +0 -1
  163. package/lib/relative-time.js.map +0 -1
  164. package/lib/release-notes.js.map +0 -1
  165. package/lib/renderer.js.map +0 -1
  166. package/lib/runner.js.map +0 -1
  167. package/lib/session-controller.js.map +0 -1
  168. package/lib/session-runtime.js.map +0 -1
  169. package/lib/settings-list.js.map +0 -1
  170. package/lib/startup-notices.js.map +0 -1
  171. package/lib/status-config.d.ts +0 -32
  172. package/lib/status-config.js +0 -52
  173. package/lib/status-config.js.map +0 -1
  174. package/lib/status-line.js.map +0 -1
  175. package/lib/style.js.map +0 -1
  176. package/lib/theme.js +0 -317
  177. package/lib/theme.js.map +0 -1
  178. package/lib/tool-presentation.js.map +0 -1
  179. package/lib/tool-renderers.js.map +0 -1
  180. package/lib/tools-list.js.map +0 -1
  181. package/lib/transcript-export.js.map +0 -1
  182. package/lib/tui-settings.js +0 -26
  183. package/lib/tui-settings.js.map +0 -1
  184. package/lib/update-check.js.map +0 -1
  185. package/lib/welcome-tips.js.map +0 -1
  186. package/lib/width.js.map +0 -1
  187. /package/lib/{command-output.d.ts → chrome/command-output.d.ts} +0 -0
  188. /package/lib/{command-output.js → chrome/command-output.js} +0 -0
  189. /package/lib/{path-mentions.d.ts → chrome/path-mentions.d.ts} +0 -0
  190. /package/lib/{path-mentions.js → chrome/path-mentions.js} +0 -0
  191. /package/lib/{relative-time.d.ts → chrome/relative-time.d.ts} +0 -0
  192. /package/lib/{relative-time.js → chrome/relative-time.js} +0 -0
  193. /package/lib/{renderer.d.ts → chrome/renderer.d.ts} +0 -0
  194. /package/lib/{renderer.js → chrome/renderer.js} +0 -0
  195. /package/lib/{style.d.ts → chrome/style.d.ts} +0 -0
  196. /package/lib/{style.js → chrome/style.js} +0 -0
  197. /package/lib/{tool-renderers.d.ts → chrome/tool-renderers.d.ts} +0 -0
  198. /package/lib/{tools-list.d.ts → chrome/tools-list.d.ts} +0 -0
  199. /package/lib/{tools-list.js → chrome/tools-list.js} +0 -0
  200. /package/lib/{welcome-tips.d.ts → chrome/welcome-tips.d.ts} +0 -0
  201. /package/lib/{width.d.ts → chrome/width.d.ts} +0 -0
  202. /package/lib/{width.js → chrome/width.js} +0 -0
  203. /package/lib/{command-auth.d.ts → commands/auth.d.ts} +0 -0
  204. /package/lib/{command-export.d.ts → commands/export.d.ts} +0 -0
  205. /package/lib/{command-integrations.d.ts → commands/integrations.d.ts} +0 -0
  206. /package/lib/{command-model.d.ts → commands/model.d.ts} +0 -0
  207. /package/lib/{command-permission.d.ts → commands/permission.d.ts} +0 -0
  208. /package/lib/{command-registration.d.ts → commands/registration.d.ts} +0 -0
  209. /package/lib/{command-session.d.ts → commands/session.d.ts} +0 -0
  210. /package/lib/{command-steer.d.ts → commands/steer.d.ts} +0 -0
  211. /package/lib/{clipboard.d.ts → input/clipboard.d.ts} +0 -0
  212. /package/lib/{clipboard.js → input/clipboard.js} +0 -0
  213. /package/lib/{editor.d.ts → input/editor.d.ts} +0 -0
  214. /package/lib/{editor.js → input/editor.js} +0 -0
  215. /package/lib/{external-editor.d.ts → input/external-editor.d.ts} +0 -0
  216. /package/lib/{external-editor.js → input/external-editor.js} +0 -0
  217. /package/lib/{image-paste.js → input/image-paste.js} +0 -0
  218. /package/lib/{keybindings-config.d.ts → input/keybindings-config.d.ts} +0 -0
  219. /package/lib/{keybindings-config.js → input/keybindings-config.js} +0 -0
  220. /package/lib/{keys.d.ts → input/keys.d.ts} +0 -0
  221. /package/lib/{keys.js → input/keys.js} +0 -0
  222. /package/lib/{human-interaction.d.ts → runtime/human-interaction.d.ts} +0 -0
  223. /package/lib/{runner.d.ts → runtime/runner.d.ts} +0 -0
  224. /package/lib/{runner.js → runtime/runner.js} +0 -0
  225. /package/lib/{startup-notices.d.ts → runtime/startup-notices.d.ts} +0 -0
  226. /package/lib/{tool-presentation.js → runtime/tool-presentation.js} +0 -0
  227. /package/lib/{interaction-adapter.js → session/interaction-adapter.js} +0 -0
  228. /package/lib/{package-metadata.d.ts → session/package-metadata.d.ts} +0 -0
  229. /package/lib/{project-context.d.ts → session/project-context.d.ts} +0 -0
  230. /package/lib/{project-context.js → session/project-context.js} +0 -0
  231. /package/lib/{project-file-search.d.ts → session/project-file-search.d.ts} +0 -0
  232. /package/lib/{project-file-search.js → session/project-file-search.js} +0 -0
  233. /package/lib/{release-notes.d.ts → session/release-notes.d.ts} +0 -0
  234. /package/lib/{release-notes.js → session/release-notes.js} +0 -0
  235. /package/lib/{update-check.d.ts → session/update-check.d.ts} +0 -0
  236. /package/lib/{update-check.js → session/update-check.js} +0 -0
  237. /package/lib/{copy-targets.d.ts → views/copy-targets.d.ts} +0 -0
  238. /package/lib/{copy-targets.js → views/copy-targets.js} +0 -0
  239. /package/lib/{history-store.d.ts → views/history-store.d.ts} +0 -0
  240. /package/lib/{history-store.js → views/history-store.js} +0 -0
  241. /package/lib/{transcript-export.d.ts → views/transcript-export.d.ts} +0 -0
  242. /package/lib/{transcript-export.js → views/transcript-export.js} +0 -0
@@ -0,0 +1,537 @@
1
+ /**
2
+ * GFM markdown → terminal lines. marked lexes the source; this module paints
3
+ * tokens with the TUI theme and wraps to display columns.
4
+ * @module @agi-fans/dsh-tui
5
+ */
6
+ import { Lexer, Marked } from 'marked';
7
+ import { BOX } from "./theme.js";
8
+ import { padToWidth, visibleWidth, wrapText } from "./width.js";
9
+ const MATH_SYMBOLS = {
10
+ alpha: 'α', beta: 'β', gamma: 'γ', delta: 'δ', theta: 'θ', lambda: 'λ', mu: 'μ',
11
+ pi: 'π', sigma: 'σ', phi: 'φ', omega: 'ω', times: '×', cdot: '·', le: '≤', ge: '≥',
12
+ neq: '≠', approx: '≈', infty: '∞', sum: '∑', int: '∫', sqrt: '√', to: '→',
13
+ };
14
+ const SUPERSCRIPT = {
15
+ '0': '⁰', '1': '¹', '2': '²', '3': '³', '4': '⁴', '5': '⁵', '6': '⁶', '7': '⁷', '8': '⁸', '9': '⁹', '+': '⁺', '-': '⁻',
16
+ };
17
+ function isMathToken(token) {
18
+ return token.type === 'math';
19
+ }
20
+ function inlineMathSpanEnd(text, open) {
21
+ const after = text[open + 1];
22
+ if (after === undefined || after === ' ' || after === '\t' || after === '\n' || after === '$' || after === '(' || after === '{') {
23
+ return -1;
24
+ }
25
+ for (let index = open + 1; index < text.length; index += 1) {
26
+ const char = text[index];
27
+ if (char === '\\') {
28
+ index += 1;
29
+ continue;
30
+ }
31
+ if (char === '\n')
32
+ return -1;
33
+ if (char !== '$')
34
+ continue;
35
+ const prev = text[index - 1];
36
+ if (prev === ' ' || prev === '\t')
37
+ return -1;
38
+ const next = text[index + 1];
39
+ if (next !== undefined && next >= '0' && next <= '9')
40
+ continue;
41
+ return text.slice(open + 1, index).trim().length > 0 ? index : -1;
42
+ }
43
+ return -1;
44
+ }
45
+ function mathStartIndex(src) {
46
+ let best = src.indexOf('$');
47
+ const paren = src.indexOf('\\(');
48
+ if (paren !== -1 && (best === -1 || paren < best))
49
+ best = paren;
50
+ const bracket = src.indexOf('\\[');
51
+ if (bracket !== -1 && (best === -1 || bracket < best))
52
+ best = bracket;
53
+ return best === -1 ? undefined : best;
54
+ }
55
+ const mathBlock = {
56
+ name: 'mathBlock',
57
+ level: 'block',
58
+ start(src) {
59
+ const index = src.indexOf('$$');
60
+ return index === -1 ? undefined : index;
61
+ },
62
+ tokenizer(src) {
63
+ const match = /^\$\$[ \t]*\n?([\s\S]*?)\n?\$\$[ \t]*(?:\n+|$)/u.exec(src);
64
+ if (match === null || (match[1] ?? '').trim() === '')
65
+ return undefined;
66
+ return { type: 'math', raw: match[0], text: (match[1] ?? '').trim(), display: true };
67
+ },
68
+ };
69
+ const mathInline = {
70
+ name: 'math',
71
+ level: 'inline',
72
+ start(src) {
73
+ return mathStartIndex(src);
74
+ },
75
+ tokenizer(src) {
76
+ if (src.startsWith('$$')) {
77
+ const end = src.indexOf('$$', 2);
78
+ if (end !== -1 && src.slice(2, end).trim() !== '') {
79
+ return { type: 'math', raw: src.slice(0, end + 2), text: src.slice(2, end).trim(), display: true };
80
+ }
81
+ return undefined;
82
+ }
83
+ if (src.startsWith('\\(')) {
84
+ const end = src.indexOf('\\)', 2);
85
+ if (end !== -1 && src.slice(2, end).trim() !== '') {
86
+ return { type: 'math', raw: src.slice(0, end + 2), text: src.slice(2, end).trim() };
87
+ }
88
+ return undefined;
89
+ }
90
+ if (src.startsWith('\\[')) {
91
+ const end = src.indexOf('\\]', 2);
92
+ if (end !== -1 && src.slice(2, end).trim() !== '') {
93
+ return { type: 'math', raw: src.slice(0, end + 2), text: src.slice(2, end).trim(), display: true };
94
+ }
95
+ return undefined;
96
+ }
97
+ if (!src.startsWith('$'))
98
+ return undefined;
99
+ if (src[1] === '(' || src[1] === '{')
100
+ return undefined;
101
+ const end = inlineMathSpanEnd(src, 0);
102
+ if (end === -1)
103
+ return undefined;
104
+ return { type: 'math', raw: src.slice(0, end + 1), text: src.slice(1, end) };
105
+ },
106
+ };
107
+ const parser = new Marked();
108
+ parser.use({ gfm: true, breaks: false, extensions: [mathBlock, mathInline] });
109
+ function normalizeHtml(source) {
110
+ return source
111
+ .replace(/<br\s*\/?>/giu, ' \n')
112
+ .replace(/<\/(?:p|div|li|h[1-6]|tr)>/giu, '\n\n')
113
+ .replace(/<li(?:\s[^>]*)?>/giu, '- ')
114
+ .replace(/<\/?(?:a|b|blockquote|code|details|div|em|h[1-6]|i|ol|p|pre|span|strong|summary|table|tbody|td|th|thead|tr|u|ul)(?:\s[^>]*)?>/giu, '')
115
+ .replaceAll('&lt;', '<').replaceAll('&gt;', '>').replaceAll('&amp;', '&')
116
+ .replaceAll('&quot;', '"').replaceAll('&#39;', "'").replaceAll('&nbsp;', ' ');
117
+ }
118
+ function prepare(source) {
119
+ return normalizeHtml(source).replaceAll('\r\n', '\n').replaceAll('\r', '\n');
120
+ }
121
+ function openBase(theme, style) {
122
+ if (!theme.colors || style === undefined)
123
+ return '';
124
+ return (style.italic === true ? '\x1b[3m' : '')
125
+ + (style.color === undefined ? '' : theme.getFgAnsi(style.color));
126
+ }
127
+ /** Keep thinking traces on one dark ink so headings, code, and links do not light up. */
128
+ function ink(style, color) {
129
+ return style?.color === 'thinkingText' ? 'thinkingText' : color;
130
+ }
131
+ /** Paint one unstyled run so a later 39m cannot leak default ink. */
132
+ function paintBase(theme, text, style) {
133
+ if (text === '' || style === undefined || !theme.colors)
134
+ return text;
135
+ let out = text;
136
+ if (style.color !== undefined)
137
+ out = theme.fg(style.color, out);
138
+ if (style.italic === true)
139
+ out = theme.italic(out);
140
+ return out;
141
+ }
142
+ function paintFg(theme, color, text, style) {
143
+ if (!theme.colors)
144
+ return text;
145
+ return theme.getFgAnsi(color) + text + '\x1b[39m' + openBase(theme, style);
146
+ }
147
+ function paintBold(theme, text, style) {
148
+ if (!theme.colors)
149
+ return text;
150
+ return `\x1b[1m${text}\x1b[22m` + openBase(theme, style);
151
+ }
152
+ function paintItalic(theme, text, style) {
153
+ if (!theme.colors)
154
+ return text;
155
+ return `\x1b[3m${text}\x1b[23m` + openBase(theme, style);
156
+ }
157
+ function paintStrike(theme, text, style) {
158
+ if (!theme.colors)
159
+ return text;
160
+ return `\x1b[9m${text}\x1b[29m` + openBase(theme, style);
161
+ }
162
+ function isProseCodespan(text) {
163
+ const words = text.trim().split(/\s+/u).filter(Boolean);
164
+ return words.length >= 4 || (words.length >= 2 && /[,;]/.test(text));
165
+ }
166
+ function renderMath(value, theme, style) {
167
+ const normalized = value
168
+ .replace(/\\([A-Za-z]+)/gu, (whole, name) => MATH_SYMBOLS[name] ?? whole)
169
+ .replace(/\^\{?([0-9+-]+)\}?/gu, (_whole, body) => [...body].map(char => SUPERSCRIPT[char] ?? char).join(''))
170
+ .replace(/_\{([^}]+)\}/gu, '₍$1₎');
171
+ return paintFg(theme, ink(style, 'mdCode'), normalized, style);
172
+ }
173
+ function highlightCode(row, language, theme, style) {
174
+ if (!theme.colors || language === '')
175
+ return paintFg(theme, ink(style, 'mdCodeBlock'), row, style);
176
+ const supported = /^(?:js|jsx|ts|tsx|javascript|typescript|json|python|py|bash|sh|shell|rust|go|java|css|html)$/u.test(language);
177
+ if (!supported)
178
+ return paintFg(theme, ink(style, 'mdCodeBlock'), row, style);
179
+ return row.split(/(\s+|\b)/u).map(token => {
180
+ if (/^(?:const|let|var|function|class|interface|type|return|if|else|for|while|async|await|import|export|from|def|fn|struct|package|func|true|false|null|undefined)$/u.test(token)) {
181
+ return paintFg(theme, ink(style, 'mdKeyword'), token, style);
182
+ }
183
+ if (/^(?:\d+(?:\.\d+)?|"[^"]*"|'[^']*')$/u.test(token)) {
184
+ return paintFg(theme, ink(style, 'mdCodeBlock'), token, style);
185
+ }
186
+ return paintBase(theme, token, style);
187
+ }).join('');
188
+ }
189
+ function mermaidEndpoint(raw) {
190
+ const text = raw.trim();
191
+ const labeled = /^(?:[\w.-]*)\[([^\]]+)\]$/u.exec(text)
192
+ ?? /^(?:[\w.-]*)\(([^)]+)\)$/u.exec(text)
193
+ ?? /^(?:[\w.-]*)\{([^}]+)\}$/u.exec(text);
194
+ if (labeled?.[1] !== undefined)
195
+ return labeled[1];
196
+ return text.replace(/[\[\](){}]/gu, '').trim();
197
+ }
198
+ function renderMermaid(rows, theme, width, style) {
199
+ const output = [];
200
+ for (const raw of rows) {
201
+ const row = raw.trim();
202
+ if (row === '' || /^(?:graph|flowchart|sequenceDiagram)\b/u.test(row))
203
+ continue;
204
+ const sequence = /^([^:]+?)-+>>?([^:]+):\s*(.+)$/u.exec(row);
205
+ const edge = /^(.+?)-+(?:>|\|[^|]*\|)(.+)$/u.exec(row);
206
+ const text = sequence
207
+ ? `${mermaidEndpoint(sequence[1] ?? '')} → ${mermaidEndpoint(sequence[2] ?? '')}: ${sequence[3]?.trim() ?? ''}`
208
+ : edge
209
+ ? `${mermaidEndpoint(edge[1] ?? '')} → ${mermaidEndpoint(edge[2] ?? '')}`
210
+ : row;
211
+ output.push(...wrapStyled(' ' + paintFg(theme, ink(style, 'mdCodeBlock'), text, style), width));
212
+ }
213
+ return output.length > 0 ? output : [theme.fg(ink(style, 'dim'), ' (empty Mermaid diagram)')];
214
+ }
215
+ function wrapStyled(text, width) {
216
+ return wrapText(text, Math.max(1, width));
217
+ }
218
+ function safeHref(href) {
219
+ return href.replaceAll('\x1b', '').replaceAll('\x07', '');
220
+ }
221
+ function hyperlink(label, href, theme) {
222
+ const target = safeHref(href);
223
+ if (!theme.colors || target === '')
224
+ return label;
225
+ return `\x1b]8;;${target}\x07${label}\x1b]8;;\x07`;
226
+ }
227
+ function paintLink(label, href, theme, style) {
228
+ const target = href.startsWith('www.') ? 'https://' + href : href;
229
+ const styled = theme.fg(ink(style, 'mdLink'), theme.underline(label));
230
+ const clickable = hyperlink(styled, target, theme);
231
+ if (label === href || label === target)
232
+ return clickable;
233
+ const url = hyperlink(theme.fg(ink(style, 'mdLinkUrl'), '(' + href + ')'), target, theme);
234
+ return clickable + ' ' + url;
235
+ }
236
+ function flattenText(text) {
237
+ return text.replace(/\n+/gu, ' ');
238
+ }
239
+ function renderInlineTokens(tokens, theme, style) {
240
+ if (tokens === undefined)
241
+ return '';
242
+ let out = '';
243
+ for (const token of tokens) {
244
+ if (isMathToken(token)) {
245
+ out += renderMath(token.text, theme, style);
246
+ continue;
247
+ }
248
+ switch (token.type) {
249
+ case 'escape':
250
+ out += paintBase(theme, token.text, style);
251
+ break;
252
+ case 'text':
253
+ out += token.tokens === undefined
254
+ ? paintBase(theme, flattenText(token.text), style)
255
+ : renderInlineTokens(token.tokens, theme, style);
256
+ break;
257
+ case 'strong':
258
+ out += paintBold(theme, renderInlineTokens(token.tokens, theme, style), style);
259
+ break;
260
+ case 'em':
261
+ out += paintItalic(theme, renderInlineTokens(token.tokens, theme, style), style);
262
+ break;
263
+ case 'del':
264
+ out += paintStrike(theme, renderInlineTokens(token.tokens, theme, style), style);
265
+ break;
266
+ case 'codespan':
267
+ out += paintFg(theme, ink(style, isProseCodespan(token.text) ? 'muted' : 'mdCode'), token.text, style);
268
+ break;
269
+ case 'link':
270
+ out += paintLink(renderInlineTokens(token.tokens, theme, style) || token.text, token.href, theme, style) + openBase(theme, style);
271
+ break;
272
+ case 'image':
273
+ out += paintLink(renderInlineTokens(token.tokens, theme, style) || token.text || 'image', token.href, theme, style) + openBase(theme, style);
274
+ break;
275
+ case 'br':
276
+ out += '\n';
277
+ break;
278
+ default:
279
+ if ('tokens' in token && token.tokens !== undefined)
280
+ out += renderInlineTokens(token.tokens, theme, style);
281
+ else if ('text' in token && typeof token.text === 'string')
282
+ out += paintBase(theme, flattenText(token.text), style);
283
+ }
284
+ }
285
+ return out;
286
+ }
287
+ /** Inline markdown: code, links, strike, bold, italic, math. */
288
+ export function renderInline(text, theme, style) {
289
+ return renderInlineTokens(Lexer.lexInline(prepare(text), parser.defaults), theme, style);
290
+ }
291
+ function withStyle(theme, style, line) {
292
+ if (style === undefined || line === '')
293
+ return line;
294
+ return openBase(theme, style) + line;
295
+ }
296
+ function withStyledLines(theme, style, lines) {
297
+ if (style === undefined)
298
+ return [...lines];
299
+ return lines.map(line => withStyle(theme, style, line));
300
+ }
301
+ function flowLines(token, theme, width, style) {
302
+ if (token.type === 'paragraph' || token.type === 'text' || token.type === 'heading') {
303
+ const inner = token.tokens === undefined
304
+ ? paintBase(theme, flattenText('text' in token ? String(token.text ?? '') : ''), style)
305
+ : renderInlineTokens(token.tokens, theme, style);
306
+ return wrapStyled(inner, width);
307
+ }
308
+ return renderBlock(token, theme, width, 0, style);
309
+ }
310
+ function renderTable(token, theme, width) {
311
+ const header = token.header.map(cell => theme.bold(renderInlineTokens(cell.tokens, theme)));
312
+ const rows = token.rows.map(row => row.map(cell => renderInlineTokens(cell.tokens, theme)));
313
+ const cols = header.length;
314
+ if (cols === 0)
315
+ return [];
316
+ const borderOverhead = 3 * cols + 1;
317
+ const available = width - borderOverhead;
318
+ if (available < cols) {
319
+ const raw = [
320
+ '| ' + token.header.map(cell => cell.text).join(' | ') + ' |',
321
+ ...token.rows.map(row => '| ' + row.map(cell => cell.text).join(' | ') + ' |'),
322
+ ];
323
+ return raw.flatMap(line => wrapStyled(theme.fg('dim', line), width));
324
+ }
325
+ const natural = Array.from({ length: cols }, (_, i) => {
326
+ let max = visibleWidth(header[i] ?? '');
327
+ for (const row of rows)
328
+ max = Math.max(max, visibleWidth(row[i] ?? ''));
329
+ return Math.max(1, max);
330
+ });
331
+ const longestWord = (text) => Math.min(30, Math.max(1, ...text.split(/\s+/u).filter(Boolean).map(word => visibleWidth(word))));
332
+ let minimums = Array.from({ length: cols }, (_, i) => {
333
+ let max = longestWord(header[i] ?? '');
334
+ for (const row of rows)
335
+ max = Math.max(max, longestWord(row[i] ?? ''));
336
+ return max;
337
+ });
338
+ let minimumTotal = minimums.reduce((total, value) => total + value, 0);
339
+ if (minimumTotal > available) {
340
+ const remaining = available - cols;
341
+ const weight = minimums.reduce((total, value) => total + Math.max(0, value - 1), 0);
342
+ minimums = minimums.map(value => 1 + (weight > 0
343
+ ? Math.floor((Math.max(0, value - 1) / weight) * remaining)
344
+ : 0));
345
+ let leftover = available - minimums.reduce((total, value) => total + value, 0);
346
+ for (let i = 0; leftover > 0 && i < cols; i += 1, leftover -= 1) {
347
+ minimums[i] = (minimums[i] ?? 1) + 1;
348
+ }
349
+ minimumTotal = minimums.reduce((total, value) => total + value, 0);
350
+ }
351
+ const totalNatural = natural.reduce((total, value) => total + value, 0);
352
+ let widths = natural.map((value, i) => Math.max(value, minimums[i] ?? 1));
353
+ if (totalNatural > available) {
354
+ const growth = natural.map((value, i) => Math.max(0, value - (minimums[i] ?? 1)));
355
+ const totalGrowth = growth.reduce((total, value) => total + value, 0);
356
+ const extra = Math.max(0, available - minimumTotal);
357
+ widths = minimums.map((value, i) => value + (totalGrowth > 0
358
+ ? Math.floor(((growth[i] ?? 0) / totalGrowth) * extra)
359
+ : 0));
360
+ let leftover = available - widths.reduce((total, value) => total + value, 0);
361
+ while (leftover > 0) {
362
+ let grew = false;
363
+ for (let i = 0; i < cols && leftover > 0; i += 1) {
364
+ if ((widths[i] ?? 1) >= (natural[i] ?? 1))
365
+ continue;
366
+ widths[i] = (widths[i] ?? 1) + 1;
367
+ leftover -= 1;
368
+ grew = true;
369
+ }
370
+ if (!grew)
371
+ break;
372
+ }
373
+ }
374
+ const h = BOX.horizontal;
375
+ const v = theme.fg('borderMuted', BOX.vertical);
376
+ const join = (left, fill, mid, right) => theme.fg('borderMuted', left + h + fill.join(h + mid + h) + h + right);
377
+ const wrapCell = (text, col) => wrapText(text, widths[col] ?? 1);
378
+ const paintRow = (cells, emphasize) => {
379
+ const height = Math.max(1, ...cells.map(parts => parts.length));
380
+ const out = [];
381
+ for (let row = 0; row < height; row += 1) {
382
+ const parts = cells.map((parts, i) => {
383
+ const text = parts[row] ?? '';
384
+ const padded = padToWidth(text, widths[i] ?? 1);
385
+ return emphasize ? theme.bold(padded) : padded;
386
+ });
387
+ out.push(v + ' ' + parts.join(' ' + v + ' ') + ' ' + v);
388
+ }
389
+ return out;
390
+ };
391
+ const fills = widths.map(w => h.repeat(w));
392
+ const lines = [
393
+ join(BOX.topLeft, fills, BOX.teeDown, BOX.topRight),
394
+ ...paintRow(header.map((cell, i) => wrapCell(cell, i)), true),
395
+ join(BOX.teeRight, fills, BOX.cross, BOX.teeLeft),
396
+ ];
397
+ for (let rowIndex = 0; rowIndex < rows.length; rowIndex += 1) {
398
+ const row = rows[rowIndex] ?? [];
399
+ lines.push(...paintRow(row.map((cell, i) => wrapCell(cell, i)), false));
400
+ if (rowIndex < rows.length - 1) {
401
+ lines.push(join(BOX.teeRight, fills, BOX.cross, BOX.teeLeft));
402
+ }
403
+ }
404
+ lines.push(join(BOX.bottomLeft, fills, BOX.teeUp, BOX.bottomRight));
405
+ return lines;
406
+ }
407
+ function renderCode(token, theme, width, style) {
408
+ const lang = (token.lang ?? '').trim();
409
+ const rows = token.text.split('\n');
410
+ const fence = ink(style, 'mdCodeBlockBorder');
411
+ const lines = [...wrapStyled(theme.fg(fence, ' ```' + lang), width)];
412
+ if (lang.toLowerCase() === 'mermaid') {
413
+ lines.push(...renderMermaid(rows, theme, width, style));
414
+ }
415
+ else {
416
+ for (const row of rows) {
417
+ const body = row === '' ? '' : highlightCode(row, lang.toLowerCase(), theme, style);
418
+ lines.push(...wrapStyled(body === '' ? ' ' : ' ' + body, width));
419
+ }
420
+ }
421
+ lines.push(...wrapStyled(theme.fg(fence, ' ```'), width));
422
+ return lines;
423
+ }
424
+ function renderList(token, theme, width, level, style) {
425
+ const lines = [];
426
+ let number = typeof token.start === 'number' && token.start > 0 ? token.start : 1;
427
+ for (const item of token.items) {
428
+ const bullet = style?.color === 'thinkingText' ? 'thinkingText' : 'mdListBullet';
429
+ const marker = item.task === true
430
+ ? theme.fg(bullet, item.checked === true ? '☑ ' : '☐ ')
431
+ : token.ordered
432
+ ? theme.fg(bullet, `${number}. `)
433
+ : theme.fg(bullet, '• ');
434
+ number += 1;
435
+ lines.push(...renderListItem(item, marker, theme, width, level, style));
436
+ }
437
+ return lines;
438
+ }
439
+ function renderListItem(item, marker, theme, width, level, style) {
440
+ const pad = ' '.repeat(level);
441
+ const markerWidth = visibleWidth(pad + marker);
442
+ const hang = ' '.repeat(markerWidth);
443
+ const innerWidth = Math.max(1, width - markerWidth);
444
+ const lines = [];
445
+ let first = true;
446
+ for (const child of item.tokens) {
447
+ if (child.type === 'space') {
448
+ if (lines.length > 0)
449
+ lines.push('');
450
+ continue;
451
+ }
452
+ if (child.type === 'list') {
453
+ lines.push(...renderList(child, theme, width, level + 1, style));
454
+ first = false;
455
+ continue;
456
+ }
457
+ const content = withStyledLines(theme, style, flowLines(child, theme, innerWidth, style));
458
+ if (first) {
459
+ lines.push(pad + marker + (content[0] ?? ''));
460
+ for (const line of content.slice(1))
461
+ lines.push(hang + line);
462
+ first = false;
463
+ }
464
+ else {
465
+ for (const line of content)
466
+ lines.push(hang + line);
467
+ }
468
+ }
469
+ if (first)
470
+ lines.push(pad + marker.trimEnd());
471
+ return lines;
472
+ }
473
+ function renderBlockquote(token, theme, width, style) {
474
+ const inner = renderTokens(token.tokens, theme, Math.max(1, width - 2), 0, style);
475
+ return inner.map(line => theme.fg('borderMuted', '│ ') + line);
476
+ }
477
+ function renderBlock(token, theme, width, listLevel, style) {
478
+ if (isMathToken(token)) {
479
+ return wrapStyled(' ' + renderMath(token.text, theme, style), width);
480
+ }
481
+ switch (token.type) {
482
+ case 'space':
483
+ return [''];
484
+ case 'hr':
485
+ return [theme.fg('borderMuted', '─'.repeat(Math.max(1, width)))];
486
+ case 'heading':
487
+ return wrapStyled(theme.bold(theme.fg(style?.color === 'thinkingText' ? 'thinkingText' : 'mdHeading', renderInlineTokens(token.tokens, theme, style))), width);
488
+ case 'paragraph':
489
+ case 'text':
490
+ return flowLines(token, theme, width, style);
491
+ case 'blockquote':
492
+ return renderBlockquote(token, theme, width, style);
493
+ case 'list':
494
+ return renderList(token, theme, width, listLevel, style);
495
+ case 'code':
496
+ return renderCode(token, theme, width, style);
497
+ case 'table':
498
+ return renderTable(token, theme, width);
499
+ case 'html':
500
+ {
501
+ const stripped = normalizeHtml(token.text).trim();
502
+ return stripped === '' ? [] : wrapStyled(renderInline(stripped, theme, style), width);
503
+ }
504
+ case 'def':
505
+ return [];
506
+ default:
507
+ if ('tokens' in token && token.tokens !== undefined)
508
+ return renderTokens(token.tokens, theme, width, listLevel, style);
509
+ if ('text' in token && typeof token.text === 'string') {
510
+ return wrapStyled(paintBase(theme, flattenText(token.text), style), width);
511
+ }
512
+ return [];
513
+ }
514
+ }
515
+ function renderTokens(tokens, theme, width, listLevel, style) {
516
+ const lines = [];
517
+ for (const token of tokens) {
518
+ const chunk = renderBlock(token, theme, width, listLevel, style);
519
+ if (chunk.length === 0)
520
+ continue;
521
+ lines.push(...withStyledLines(theme, style, chunk));
522
+ }
523
+ return lines;
524
+ }
525
+ /**
526
+ * Render markdown to display lines already wrapped to `width`.
527
+ */
528
+ export function renderMarkdown(source, theme, width, style) {
529
+ const tokens = parser.lexer(prepare(source));
530
+ const lines = renderTokens(tokens, theme, width, 0, style);
531
+ while (lines.length > 0 && lines[lines.length - 1] === '')
532
+ lines.pop();
533
+ while (lines[0] === '')
534
+ lines.shift();
535
+ return lines;
536
+ }
537
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/chrome/markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-mentions.js","sourceRoot":"","sources":["../../src/chrome/path-mentions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relative-time.js","sourceRoot":"","sources":["../../src/chrome/relative-time.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACnE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,CAAA;IACjE,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,UAAU,CAAA;IAClC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;IACtC,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,OAAO,CAAA;AACxE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/chrome/renderer.ts"],"names":[],"mappings":"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"}