@sagmans/dsh-tui 0.3.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 (253) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +407 -53
  3. package/cordis.patch.yml +14 -0
  4. package/lib/agent/present.js +1 -1
  5. package/lib/agent/present.js.map +1 -1
  6. package/lib/agent/projections.d.ts +22 -6
  7. package/lib/agent/projections.d.ts.map +1 -1
  8. package/lib/agent/projections.js +21 -10
  9. package/lib/agent/projections.js.map +1 -1
  10. package/lib/agent/prompt-history.d.ts +89 -0
  11. package/lib/agent/prompt-history.d.ts.map +1 -0
  12. package/lib/agent/prompt-history.js +382 -0
  13. package/lib/agent/prompt-history.js.map +1 -0
  14. package/lib/agent/status.d.ts +6 -0
  15. package/lib/agent/status.d.ts.map +1 -1
  16. package/lib/agent/status.js +1 -0
  17. package/lib/agent/status.js.map +1 -1
  18. package/lib/cards.d.ts +83 -13
  19. package/lib/cards.d.ts.map +1 -1
  20. package/lib/cards.js +96 -28
  21. package/lib/cards.js.map +1 -1
  22. package/lib/export.d.ts +3 -3
  23. package/lib/export.d.ts.map +1 -1
  24. package/lib/export.js +23 -13
  25. package/lib/export.js.map +1 -1
  26. package/lib/fold-cursor.d.ts +12 -5
  27. package/lib/fold-cursor.d.ts.map +1 -1
  28. package/lib/fold-cursor.js +16 -5
  29. package/lib/fold-cursor.js.map +1 -1
  30. package/lib/gates.d.ts.map +1 -1
  31. package/lib/gates.js +42 -9
  32. package/lib/gates.js.map +1 -1
  33. package/lib/herdr/client.d.ts +57 -0
  34. package/lib/herdr/client.d.ts.map +1 -0
  35. package/lib/herdr/client.js +218 -0
  36. package/lib/herdr/client.js.map +1 -0
  37. package/lib/herdr/constants.d.ts +93 -0
  38. package/lib/herdr/constants.d.ts.map +1 -0
  39. package/lib/herdr/constants.js +79 -0
  40. package/lib/herdr/constants.js.map +1 -0
  41. package/lib/herdr/reporter.d.ts +60 -0
  42. package/lib/herdr/reporter.d.ts.map +1 -0
  43. package/lib/herdr/reporter.js +217 -0
  44. package/lib/herdr/reporter.js.map +1 -0
  45. package/lib/herdr/state.d.ts +57 -0
  46. package/lib/herdr/state.d.ts.map +1 -0
  47. package/lib/herdr/state.js +62 -0
  48. package/lib/herdr/state.js.map +1 -0
  49. package/lib/index.d.ts.map +1 -1
  50. package/lib/index.js +700 -81
  51. package/lib/index.js.map +1 -1
  52. package/lib/injection.d.ts +9 -0
  53. package/lib/injection.d.ts.map +1 -0
  54. package/lib/injection.js +128 -0
  55. package/lib/injection.js.map +1 -0
  56. package/lib/input/actions.d.ts +19 -2
  57. package/lib/input/actions.d.ts.map +1 -1
  58. package/lib/input/actions.js +60 -11
  59. package/lib/input/actions.js.map +1 -1
  60. package/lib/input/cancel.d.ts +55 -0
  61. package/lib/input/cancel.d.ts.map +1 -0
  62. package/lib/input/cancel.js +47 -0
  63. package/lib/input/cancel.js.map +1 -0
  64. package/lib/input/completion.d.ts +5 -2
  65. package/lib/input/completion.d.ts.map +1 -1
  66. package/lib/input/completion.js +79 -4
  67. package/lib/input/completion.js.map +1 -1
  68. package/lib/input/file-search.d.ts +105 -0
  69. package/lib/input/file-search.d.ts.map +1 -0
  70. package/lib/input/file-search.js +665 -0
  71. package/lib/input/file-search.js.map +1 -0
  72. package/lib/input/fuzzy.d.ts +42 -0
  73. package/lib/input/fuzzy.d.ts.map +1 -0
  74. package/lib/input/fuzzy.js +289 -0
  75. package/lib/input/fuzzy.js.map +1 -0
  76. package/lib/input/ghost.d.ts +46 -0
  77. package/lib/input/ghost.d.ts.map +1 -0
  78. package/lib/input/ghost.js +58 -0
  79. package/lib/input/ghost.js.map +1 -0
  80. package/lib/input/keymap.d.ts +3 -1
  81. package/lib/input/keymap.d.ts.map +1 -1
  82. package/lib/input/keymap.js +16 -3
  83. package/lib/input/keymap.js.map +1 -1
  84. package/lib/input/match.d.ts +12 -4
  85. package/lib/input/match.d.ts.map +1 -1
  86. package/lib/input/match.js +50 -51
  87. package/lib/input/match.js.map +1 -1
  88. package/lib/input/submission.d.ts +34 -1
  89. package/lib/input/submission.d.ts.map +1 -1
  90. package/lib/input/submission.js +33 -5
  91. package/lib/input/submission.js.map +1 -1
  92. package/lib/keys-command.d.ts +19 -3
  93. package/lib/keys-command.d.ts.map +1 -1
  94. package/lib/keys-command.js +34 -31
  95. package/lib/keys-command.js.map +1 -1
  96. package/lib/settings-notice.d.ts +5 -0
  97. package/lib/settings-notice.d.ts.map +1 -1
  98. package/lib/settings-notice.js +9 -7
  99. package/lib/settings-notice.js.map +1 -1
  100. package/lib/stash/lock.d.ts +72 -0
  101. package/lib/stash/lock.d.ts.map +1 -0
  102. package/lib/stash/lock.js +374 -0
  103. package/lib/stash/lock.js.map +1 -0
  104. package/lib/stash/paths.d.ts +22 -0
  105. package/lib/stash/paths.d.ts.map +1 -0
  106. package/lib/stash/paths.js +84 -0
  107. package/lib/stash/paths.js.map +1 -0
  108. package/lib/stash/private-fs.d.ts +61 -0
  109. package/lib/stash/private-fs.d.ts.map +1 -0
  110. package/lib/stash/private-fs.js +379 -0
  111. package/lib/stash/private-fs.js.map +1 -0
  112. package/lib/stash/schema.d.ts +56 -0
  113. package/lib/stash/schema.d.ts.map +1 -0
  114. package/lib/stash/schema.js +108 -0
  115. package/lib/stash/schema.js.map +1 -0
  116. package/lib/stash/store.d.ts +92 -0
  117. package/lib/stash/store.d.ts.map +1 -0
  118. package/lib/stash/store.js +262 -0
  119. package/lib/stash/store.js.map +1 -0
  120. package/lib/stash.d.ts +122 -0
  121. package/lib/stash.d.ts.map +1 -0
  122. package/lib/stash.js +353 -0
  123. package/lib/stash.js.map +1 -0
  124. package/lib/terminal/external-editor.d.ts +93 -0
  125. package/lib/terminal/external-editor.d.ts.map +1 -0
  126. package/lib/terminal/external-editor.js +263 -0
  127. package/lib/terminal/external-editor.js.map +1 -0
  128. package/lib/terminal/host-writes.d.ts +39 -0
  129. package/lib/terminal/host-writes.d.ts.map +1 -0
  130. package/lib/terminal/host-writes.js +136 -0
  131. package/lib/terminal/host-writes.js.map +1 -0
  132. package/lib/terminal/signals.d.ts +25 -0
  133. package/lib/terminal/signals.d.ts.map +1 -0
  134. package/lib/terminal/signals.js +39 -0
  135. package/lib/terminal/signals.js.map +1 -0
  136. package/lib/terminal/warning-screen.d.ts +19 -1
  137. package/lib/terminal/warning-screen.d.ts.map +1 -1
  138. package/lib/terminal/warning-screen.js +37 -1
  139. package/lib/terminal/warning-screen.js.map +1 -1
  140. package/lib/terminal-text.d.ts +72 -0
  141. package/lib/terminal-text.d.ts.map +1 -0
  142. package/lib/terminal-text.js +603 -0
  143. package/lib/terminal-text.js.map +1 -0
  144. package/lib/text.d.ts +45 -6
  145. package/lib/text.d.ts.map +1 -1
  146. package/lib/text.js +106 -46
  147. package/lib/text.js.map +1 -1
  148. package/lib/theme-command.d.ts +7 -4
  149. package/lib/theme-command.d.ts.map +1 -1
  150. package/lib/theme-command.js +32 -12
  151. package/lib/theme-command.js.map +1 -1
  152. package/lib/theme-files.d.ts +110 -0
  153. package/lib/theme-files.d.ts.map +1 -0
  154. package/lib/theme-files.js +352 -0
  155. package/lib/theme-files.js.map +1 -0
  156. package/lib/theme-schema.d.ts +121 -0
  157. package/lib/theme-schema.d.ts.map +1 -0
  158. package/lib/theme-schema.js +87 -0
  159. package/lib/theme-schema.js.map +1 -0
  160. package/lib/theme-settings.d.ts +72 -10
  161. package/lib/theme-settings.d.ts.map +1 -1
  162. package/lib/theme-settings.js +162 -45
  163. package/lib/theme-settings.js.map +1 -1
  164. package/lib/theme-tokens.d.ts +39 -7
  165. package/lib/theme-tokens.d.ts.map +1 -1
  166. package/lib/theme-tokens.js +104 -13
  167. package/lib/theme-tokens.js.map +1 -1
  168. package/lib/theme.d.ts +24 -2
  169. package/lib/theme.d.ts.map +1 -1
  170. package/lib/theme.js +49 -6
  171. package/lib/theme.js.map +1 -1
  172. package/lib/todo-guard.d.ts +116 -0
  173. package/lib/todo-guard.d.ts.map +1 -0
  174. package/lib/todo-guard.js +259 -0
  175. package/lib/todo-guard.js.map +1 -0
  176. package/lib/tool-display.d.ts +57 -0
  177. package/lib/tool-display.d.ts.map +1 -0
  178. package/lib/tool-display.js +51 -0
  179. package/lib/tool-display.js.map +1 -0
  180. package/lib/transcript.d.ts +28 -0
  181. package/lib/transcript.d.ts.map +1 -1
  182. package/lib/transcript.js +126 -37
  183. package/lib/transcript.js.map +1 -1
  184. package/lib/ui/diff.d.ts +49 -0
  185. package/lib/ui/diff.d.ts.map +1 -0
  186. package/lib/ui/diff.js +208 -0
  187. package/lib/ui/diff.js.map +1 -0
  188. package/lib/ui/dock.d.ts.map +1 -1
  189. package/lib/ui/dock.js +9 -6
  190. package/lib/ui/dock.js.map +1 -1
  191. package/lib/ui/editor.d.ts +41 -1
  192. package/lib/ui/editor.d.ts.map +1 -1
  193. package/lib/ui/editor.js +100 -4
  194. package/lib/ui/editor.js.map +1 -1
  195. package/lib/ui/frame.d.ts +16 -5
  196. package/lib/ui/frame.d.ts.map +1 -1
  197. package/lib/ui/frame.js +32 -13
  198. package/lib/ui/frame.js.map +1 -1
  199. package/lib/ui/history-picker.d.ts +15 -0
  200. package/lib/ui/history-picker.d.ts.map +1 -0
  201. package/lib/ui/history-picker.js +26 -0
  202. package/lib/ui/history-picker.js.map +1 -0
  203. package/lib/ui/keymap-picker.d.ts +16 -0
  204. package/lib/ui/keymap-picker.d.ts.map +1 -0
  205. package/lib/ui/keymap-picker.js +41 -0
  206. package/lib/ui/keymap-picker.js.map +1 -0
  207. package/lib/ui/layout.d.ts +33 -0
  208. package/lib/ui/layout.d.ts.map +1 -0
  209. package/lib/ui/layout.js +33 -0
  210. package/lib/ui/layout.js.map +1 -0
  211. package/lib/ui/markdown.d.ts +25 -3
  212. package/lib/ui/markdown.d.ts.map +1 -1
  213. package/lib/ui/markdown.js +12 -8
  214. package/lib/ui/markdown.js.map +1 -1
  215. package/lib/ui/picker-card.d.ts +42 -0
  216. package/lib/ui/picker-card.d.ts.map +1 -0
  217. package/lib/ui/picker-card.js +148 -0
  218. package/lib/ui/picker-card.js.map +1 -0
  219. package/lib/ui/picker.d.ts +50 -2
  220. package/lib/ui/picker.d.ts.map +1 -1
  221. package/lib/ui/picker.js +66 -7
  222. package/lib/ui/picker.js.map +1 -1
  223. package/lib/ui/prompt.d.ts +12 -2
  224. package/lib/ui/prompt.d.ts.map +1 -1
  225. package/lib/ui/prompt.js +25 -2
  226. package/lib/ui/prompt.js.map +1 -1
  227. package/lib/ui/rows.d.ts +8 -6
  228. package/lib/ui/rows.d.ts.map +1 -1
  229. package/lib/ui/rows.js +10 -18
  230. package/lib/ui/rows.js.map +1 -1
  231. package/lib/ui/stash-picker.d.ts +43 -0
  232. package/lib/ui/stash-picker.d.ts.map +1 -0
  233. package/lib/ui/stash-picker.js +78 -0
  234. package/lib/ui/stash-picker.js.map +1 -0
  235. package/lib/ui/status.d.ts +2 -0
  236. package/lib/ui/status.d.ts.map +1 -1
  237. package/lib/ui/status.js +25 -16
  238. package/lib/ui/status.js.map +1 -1
  239. package/lib/ui/theme-picker.d.ts +18 -0
  240. package/lib/ui/theme-picker.d.ts.map +1 -0
  241. package/lib/ui/theme-picker.js +68 -0
  242. package/lib/ui/theme-picker.js.map +1 -0
  243. package/lib/ui/view.d.ts +146 -22
  244. package/lib/ui/view.d.ts.map +1 -1
  245. package/lib/ui/view.js +461 -154
  246. package/lib/ui/view.js.map +1 -1
  247. package/lib/work.d.ts +3 -1
  248. package/lib/work.d.ts.map +1 -1
  249. package/lib/work.js +9 -1
  250. package/lib/work.js.map +1 -1
  251. package/package.json +7 -1
  252. package/themes/deepseek-blue.yaml +183 -0
  253. package/themes/violet-orbit.yaml +178 -0
@@ -18,6 +18,13 @@ export function resetSequence() {
18
18
  * ordinary text that dimming looked like it had not been applied at all.
19
19
  */
20
20
  export const MUTED_GREY = '#8a8a8a';
21
+ /**
22
+ * The shade the reasoning signpost recedes to.
23
+ *
24
+ * The row naming a thought is a signpost, not the thought: it sits below the
25
+ * muted family so the body it introduces stays the thing being read.
26
+ */
27
+ export const FAINT_GREY = '#666666';
21
28
  /**
22
29
  * The shade a tool's argument takes.
23
30
  *
@@ -33,9 +40,30 @@ export const ARGUMENT_BLUE = '#8db3d9';
33
40
  * foreground, so telling the two apart meant reading them; a mint keeps them
34
41
  * apart at a glance without the pink cast a rose gave every prompt.
35
42
  */
36
- export const USER_PROMPT_MINT = '#27F5C8';
43
+ export const USER_PROMPT_MINT = '#27f5c8';
44
+ /**
45
+ * The band a changed run sits on inside an added line.
46
+ *
47
+ * The characters that changed are why a paired line is on screen at all, and
48
+ * they must stand out without leaving the row's own hue: a reader scanning a
49
+ * green row should not have to compare it against a second, unrelated colour to
50
+ * find what moved. An explicit dark shade rather than a palette slot, for the
51
+ * same reason the muted grey is one.
52
+ */
53
+ export const DIFF_ADDED_BAND = '#1e3d24';
54
+ /** The band a changed run sits on inside a removed line; the pair of {@link DIFF_ADDED_BAND}. */
55
+ export const DIFF_REMOVED_BAND = '#472424';
56
+ /**
57
+ * The shade the frame around an assistant reply is drawn in.
58
+ *
59
+ * A reply is boxed so one exchange reads as two objects rather than as a box and
60
+ * then a stream, and its frame must not be mistaken for the bar the reader types
61
+ * into: a warm gold sits apart from the prompt's mint and the brand-blue editor,
62
+ * without borrowing the warning amber that means a state.
63
+ */
64
+ export const ASSISTANT_FRAME_GOLD = '#d6c29a';
37
65
  /** Palette entries a token may name instead of a literal colour. */
38
- export const PALETTE_NAMES = ['default', 'muted', 'accent', 'arg', 'warn', 'added', 'removed', 'user', 'assistant'];
66
+ export const PALETTE_NAMES = ['default', 'muted', 'faint', 'accent', 'arg', 'warn', 'added', 'removed', 'user', 'assistant'];
39
67
  /** A row class a tool card can carry, so styling follows what the row means. */
40
68
  export const CARD_ROW_CLASSES = [
41
69
  'header', 'hunk', 'added', 'removed', 'line', 'lineNumber', 'path', 'match', 'truncated', 'output', 'cwd', 'status', 'source', 'url', 'detail',
@@ -50,12 +78,14 @@ export const CARD_ROW_CLASSES = [
50
78
  export const TUI_TOKENS = [
51
79
  // Transcript rows
52
80
  'transcript.user',
81
+ 'transcript.assistant.border',
53
82
  'transcript.notice',
54
83
  'transcript.marker',
55
84
  'transcript.reasoning.summary',
56
85
  'transcript.reasoning.body',
57
86
  'transcript.reasoning.hint',
58
- // A reply is markdown, so the markdown tokens are what address it.
87
+ // A reply's text is markdown, so the markdown tokens are what address it; only
88
+ // the frame drawn around the reply has an element of its own.
59
89
  // Tool cards: the generic layer
60
90
  'tool.title',
61
91
  'tool.glyph',
@@ -105,6 +135,17 @@ export const TUI_TOKENS = [
105
135
  'markdown.italic',
106
136
  'markdown.strikethrough',
107
137
  'markdown.underline',
138
+ // A fenced diff is drawn by the surface rather than by the library's plain
139
+ // code path, so each row class is addressable on its own; the two emphasis
140
+ // entries are the characters that changed inside an otherwise matching pair,
141
+ // which is what tells an edit from a wholesale replacement.
142
+ 'markdown.diff.header',
143
+ 'markdown.diff.hunk',
144
+ 'markdown.diff.context',
145
+ 'markdown.diff.added',
146
+ 'markdown.diff.removed',
147
+ 'markdown.diff.addedEmphasis',
148
+ 'markdown.diff.removedEmphasis',
108
149
  // A drawn mermaid diagram: the renderer reports what each run *is*, so every
109
150
  // role a drawing can be made of is addressable on its own.
110
151
  'markdown.diagram.border',
@@ -126,6 +167,10 @@ export const TUI_TOKENS = [
126
167
  'picker.scrollOlder',
127
168
  'picker.hint',
128
169
  'picker.cursor',
170
+ // A picker drawn as a box rather than a list at the end of the transcript:
171
+ // the frame has to read as an overlay on the rows behind it, not as one more
172
+ // element of them.
173
+ 'picker.border',
129
174
  // Gate
130
175
  'gate.title',
131
176
  'gate.glyphApproval',
@@ -160,12 +205,14 @@ export const TUI_TOKENS = [
160
205
  'status.permission',
161
206
  'status.context',
162
207
  'status.cache',
208
+ 'status.stash',
163
209
  'status.cwd',
164
210
  'status.separator',
165
211
  // Editor
166
212
  'editor.border',
167
213
  'editor.queued',
168
214
  'editor.queued.more',
215
+ 'editor.ghost',
169
216
  'editor.selectList.selectedPrefix',
170
217
  'editor.selectList.selectedText',
171
218
  'editor.selectList.description',
@@ -195,6 +242,7 @@ export const CARD_ROW_TOKEN = {
195
242
  export const DEFAULT_PALETTE = {
196
243
  default: '#d0d0d0',
197
244
  muted: MUTED_GREY,
245
+ faint: FAINT_GREY,
198
246
  accent: '#5fafd7',
199
247
  arg: ARGUMENT_BLUE,
200
248
  warn: '#d7af5f',
@@ -212,6 +260,21 @@ export const DEFAULT_PALETTE = {
212
260
  * colour is named, so carrying it would be a setting that does nothing.
213
261
  */
214
262
  const muted = { fg: 'muted' };
263
+ /**
264
+ * The reasoning row recedes past the muted family, hence its own entry.
265
+ *
266
+ * Italic is what separates the signpost from the thought it introduces; the
267
+ * darker grey is what makes the thought itself the brightest thing there.
268
+ */
269
+ const signpost = { fg: 'faint', italic: true };
270
+ /**
271
+ * A thought shares the signpost's shade but not its slant.
272
+ *
273
+ * The body is read rather than scanned, so it keeps an upright face while the
274
+ * row naming it stays italic; one shade for both is what makes a thought read
275
+ * as one element instead of two colours arguing.
276
+ */
277
+ const thought = { fg: 'faint' };
215
278
  const plain = {};
216
279
  /**
217
280
  * The shipped appearance of every token.
@@ -222,11 +285,12 @@ const plain = {};
222
285
  */
223
286
  export const DEFAULT_TOKENS = {
224
287
  'transcript.user': { fg: 'user' },
288
+ 'transcript.assistant.border': { fg: ASSISTANT_FRAME_GOLD },
225
289
  'transcript.notice': muted,
226
290
  'transcript.marker': muted,
227
- 'transcript.reasoning.summary': muted,
228
- 'transcript.reasoning.body': muted,
229
- 'transcript.reasoning.hint': muted,
291
+ 'transcript.reasoning.summary': signpost,
292
+ 'transcript.reasoning.body': thought,
293
+ 'transcript.reasoning.hint': signpost,
230
294
  'tool.title': { fg: 'warn' },
231
295
  'tool.glyph': { fg: 'warn' },
232
296
  'tool.args': { fg: 'arg' },
@@ -273,6 +337,18 @@ export const DEFAULT_TOKENS = {
273
337
  'markdown.italic': { italic: true },
274
338
  'markdown.strikethrough': { strike: true },
275
339
  'markdown.underline': { underline: true },
340
+ // A diff's scaffolding recedes the way a card's does, and its unchanged code
341
+ // keeps the plain shade a fence already had, so a reply without a diff fence
342
+ // draws exactly as it did.
343
+ 'markdown.diff.header': muted,
344
+ 'markdown.diff.hunk': muted,
345
+ 'markdown.diff.context': plain,
346
+ 'markdown.diff.added': { fg: 'added' },
347
+ 'markdown.diff.removed': { fg: 'removed' },
348
+ // The band is the emphasis and the foreground is inherited from the row, so a
349
+ // palette move carries both without the reader restating either.
350
+ 'markdown.diff.addedEmphasis': { inherit: 'markdown.diff.added', bg: DIFF_ADDED_BAND },
351
+ 'markdown.diff.removedEmphasis': { inherit: 'markdown.diff.removed', bg: DIFF_REMOVED_BAND },
276
352
  'markdown.diagram.border': muted,
277
353
  'markdown.diagram.text': plain,
278
354
  'markdown.diagram.edge': { fg: 'accent' },
@@ -289,6 +365,7 @@ export const DEFAULT_TOKENS = {
289
365
  'picker.scrollOlder': muted,
290
366
  'picker.hint': muted,
291
367
  'picker.cursor': plain,
368
+ 'picker.border': muted,
292
369
  'gate.title': { bold: true },
293
370
  'gate.glyphApproval': { bold: true },
294
371
  'gate.glyphQuestion': { bold: true },
@@ -322,6 +399,9 @@ export const DEFAULT_TOKENS = {
322
399
  'status.permission': muted,
323
400
  'status.context': muted,
324
401
  'status.cache': muted,
402
+ // Accented, unlike the facts around it: a parked draft is something the
403
+ // reader left behind and may want back, not another measurement.
404
+ 'status.stash': { fg: 'accent' },
325
405
  'status.cwd': muted,
326
406
  'status.separator': muted,
327
407
  'editor.border': muted,
@@ -329,6 +409,9 @@ export const DEFAULT_TOKENS = {
329
409
  // what makes queued text read as not-yet-sent rather than as being typed.
330
410
  'editor.queued': { dim: true, italic: true },
331
411
  'editor.queued.more': muted,
412
+ // Faint only: the ghost is a suggestion, and a named colour would drop the
413
+ // faint that makes it read as not-yet-typed.
414
+ 'editor.ghost': { dim: true },
332
415
  'editor.selectList.selectedPrefix': { fg: 'accent' },
333
416
  'editor.selectList.selectedText': { bold: true },
334
417
  'editor.selectList.description': muted,
@@ -359,25 +442,33 @@ function writtenFields(spec) {
359
442
  return written;
360
443
  }
361
444
  /**
362
- * Merge one token's default, its `inherit` target, and the reader's override.
445
+ * Merge one token's default, its `inherit` target, a theme, and the reader.
363
446
  *
364
447
  * The inherited token's fields replace this token's defaults, because that is
365
- * what "start from another token" means; the reader's own fields still win.
448
+ * what "start from another token" means. A theme sits between the two because
449
+ * it is a layer the reader chose rather than one they wrote: it moves every
450
+ * element it names, and their own fields still have the last word.
366
451
  * A path-scoped set turns a cycle into a stop, and still lets two branches
367
452
  * inherit one token rather than sharing a single visit.
368
453
  */
369
- export function mergeTokenSpec(token, overrides) {
454
+ export function mergeTokenSpec(token, overrides, themed) {
370
455
  const visiting = new Set();
371
456
  const merge = (name) => {
372
457
  if (visiting.has(name))
373
458
  return {};
374
459
  visiting.add(name);
375
460
  const own = DEFAULT_TOKENS[name];
461
+ const fromTheme = themed?.[name];
376
462
  const override = overrides.get(name);
377
- const parent = override?.inherit ?? own.inherit;
463
+ const parent = override?.inherit ?? fromTheme?.inherit ?? own.inherit;
378
464
  const inherited = parent === undefined ? {} : merge(parent);
379
465
  visiting.delete(name);
380
- return { ...withoutInherit(own), ...inherited, ...withoutInherit(writtenFields(override)) };
466
+ return {
467
+ ...withoutInherit(own),
468
+ ...inherited,
469
+ ...withoutInherit(writtenFields(fromTheme)),
470
+ ...withoutInherit(writtenFields(override)),
471
+ };
381
472
  };
382
473
  return merge(token);
383
474
  }
@@ -391,8 +482,8 @@ function colourParams(sequence) {
391
482
  * Faint is dropped once a colour is chosen: stacking it on a deliberate grey is
392
483
  * what made the old output differ per terminal.
393
484
  */
394
- export function resolveToken(token, overrides, palette, mode) {
395
- const merged = mergeTokenSpec(token, overrides);
485
+ export function resolveToken(token, overrides, palette, mode, themed) {
486
+ const merged = mergeTokenSpec(token, overrides, themed);
396
487
  if (merged.hidden === true)
397
488
  return { prefix: '', suffix: '', glyph: '', hidden: true };
398
489
  // With no colour capability the whole promise is "emit nothing", which
@@ -1 +1 @@
1
- {"version":3,"file":"theme-tokens.js","sourceRoot":"","sources":["../src/theme-tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme-tokens.js","sourceRoot":"","sources":["../src/theme-tokens.ts"],"names":[],"mappings":"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"}
package/lib/theme.d.ts CHANGED
@@ -1,7 +1,14 @@
1
1
  import { type EditorTheme, type MarkdownTheme } from '@earendil-works/pi-tui';
2
2
  import { type ColourMode } from './theme-capability.ts';
3
3
  import { type TuiToken } from './theme-tokens.ts';
4
- import type { ThemeOverrides } from './theme-settings.ts';
4
+ import { type ThemeOverrides } from './theme-settings.ts';
5
+ /** What a drawn fragment needs to know: the element it belongs to, and where it starts. */
6
+ export interface RichTextOptions {
7
+ /** The element the fragment is drawn inside, whose colour is the ground it returns to. */
8
+ readonly token?: TuiToken;
9
+ /** The column the fragment starts at, so its first tab lands on the terminal's next stop. */
10
+ readonly column?: number;
11
+ }
5
12
  /**
6
13
  * Styling the surface applies, and the editor/select themes pi-tui needs.
7
14
  *
@@ -13,6 +20,15 @@ export interface TuiTheme {
13
20
  readonly color: boolean;
14
21
  /** Draw one named element. */
15
22
  style(token: TuiToken, text: string): string;
23
+ /**
24
+ * Draw text a tool, a model, or a file wrote the way a terminal would have.
25
+ *
26
+ * Unlike {@link style}, the text is not assumed to be the surface's own: its
27
+ * sequences are read, the safe ones are drawn, and the rest are consumed. The
28
+ * named element supplies the ground a foreign reset returns to, so a tool that
29
+ * ends its colour cannot clear the colour the row was drawn in.
30
+ */
31
+ rich(raw: string, options?: RichTextOptions): string;
16
32
  /** Cut a row to a width, so no renderer has to reach for the raw helper. */
17
33
  cut(text: string, width: number, ellipsis?: string): string;
18
34
  /** The mark that introduces an element, empty unless the reader set one. */
@@ -39,6 +55,12 @@ export declare function createTheme(mode?: ColourMode, overrides?: ThemeOverride
39
55
  * replacing the one it captured.
40
56
  */
41
57
  export declare function forwardEditorTheme(source: () => EditorTheme): EditorTheme;
42
- /** The markdown counterpart of {@link forwardEditorTheme}. */
58
+ /**
59
+ * The markdown counterpart of {@link forwardEditorTheme}.
60
+ *
61
+ * The code highlighter is forwarded like every other element, so a theme swap
62
+ * reaches a fence already on screen; a source table that answers for no language
63
+ * of its own keeps the library's plain rows rather than losing its code blocks.
64
+ */
43
65
  export declare function forwardMarkdownTheme(source: () => MarkdownTheme): MarkdownTheme;
44
66
  //# sourceMappingURL=theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,aAAa,EAAwB,MAAM,wBAAwB,CAAA;AACpH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAoF,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACnI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAazD;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,8BAA8B;IAC9B,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5C,4EAA4E;IAC5E,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3D,4EAA4E;IAC5E,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC9B,0CAA0C;IAC1C,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;CACjC;AA2CD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,UAA0C,EAAE,SAAS,GAAE,cAA6B,GAAG,QAAQ,CAoChI;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,WAAW,GAAG,WAAW,CAWzE;AAED,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,aAAa,GAAG,aAAa,CAiB/E"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,aAAa,EAAwB,MAAM,wBAAwB,CAAA;AAIpH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAoF,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACnI,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAarE,2FAA2F;AAC3F,MAAM,WAAW,eAAe;IAC9B,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;IACzB,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,8BAA8B;IAC9B,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5C;;;;;;;OAOG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAAA;IACpD,4EAA4E;IAC5E,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3D,4EAA4E;IAC5E,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC9B,0CAA0C;IAC1C,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;CACjC;AAoDD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,UAA0C,EAAE,SAAS,GAAE,cAA6B,GAAG,QAAQ,CAyDhI;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,WAAW,GAAG,WAAW,CAWzE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,aAAa,GAAG,aAAa,CAkB/E"}
package/lib/theme.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import { truncateToWidth } from '@earendil-works/pi-tui';
2
+ import { codeBlockLines, plainCodeLines } from "./ui/diff.js";
3
+ import { oneRow } from "./text.js";
4
+ import { renderTerminalText } from "./terminal-text.js";
2
5
  import { detectColourMode } from "./theme-capability.js";
3
6
  import { DEFAULT_PALETTE, DEFAULT_TOKENS, resetSequence, resolveToken } from "./theme-tokens.js";
7
+ import { themeLayer } from "./theme-settings.js";
4
8
  /** What a caller gets when it has written no settings at all. */
5
9
  const NO_OVERRIDES = { palette: DEFAULT_PALETTE, tokens: new Map() };
6
10
  /**
@@ -10,9 +14,18 @@ const NO_OVERRIDES = { palette: DEFAULT_PALETTE, tokens: new Map() };
10
14
  * is how a cache learns its rows were drawn under a table that is now stale.
11
15
  */
12
16
  let themeRevision = 0;
13
- /** Style markdown through the same table as the rest of the surface. */
14
- function markdownTheme(style) {
17
+ /**
18
+ * Style markdown through the same table as the rest of the surface.
19
+ *
20
+ * A fence the surface draws itself reaches the library through its code
21
+ * highlighter, which is the one hook a markdown theme has for a block of code:
22
+ * without it a fenced diff would be drawn as one plain block, and the hook has
23
+ * to answer for every language, so the ones it does not draw come back through
24
+ * the same plain shade the library would have used.
25
+ */
26
+ function markdownTheme(style, visible) {
15
27
  return {
28
+ highlightCode: (code, lang) => codeBlockLines(code, lang, { style, visible, plain: line => style('markdown.codeBlock', line) }),
16
29
  heading: text => style('markdown.heading', text),
17
30
  link: text => style('markdown.link', text),
18
31
  linkUrl: text => style('markdown.linkUrl', text),
@@ -56,11 +69,14 @@ function editorTheme(style, visible) {
56
69
  */
57
70
  export function createTheme(mode = detectColourMode(process.env), overrides = NO_OVERRIDES) {
58
71
  const resolved = new Map();
72
+ // Looked up once: a theme is one layer of every token's answer, not a
73
+ // per-token decision, and a repaint asks for all of them.
74
+ const themed = themeLayer(overrides);
59
75
  const resolve = (token) => {
60
76
  const cached = resolved.get(token);
61
77
  if (cached !== undefined)
62
78
  return cached;
63
- const style = resolveToken(token, overrides.tokens, overrides.palette, mode);
79
+ const style = resolveToken(token, overrides.tokens, overrides.palette, mode, themed);
64
80
  resolved.set(token, style);
65
81
  return style;
66
82
  };
@@ -77,19 +93,39 @@ export function createTheme(mode = detectColourMode(process.env), overrides = NO
77
93
  * dropping them restores the contract without changing what is drawn.
78
94
  */
79
95
  const cut = (text, width, ellipsis = '') => {
80
- const truncated = truncateToWidth(text, width, ellipsis);
96
+ // A row is one row: a break that reached the cut would be written as a move
97
+ // to the next line, over whatever the frame put there.
98
+ const truncated = truncateToWidth(oneRow(text), width, ellipsis);
81
99
  return mode === 'none' ? truncated.replaceAll(resetSequence(), '') : truncated;
82
100
  };
83
101
  const visible = (token) => !resolve(token).hidden;
102
+ /**
103
+ * Drawn foreign text, with the element's own prefix as its ground.
104
+ *
105
+ * The prefix is passed as the base rather than painted around the result, so
106
+ * the ground a foreign reset restores is the same sequence the row opened
107
+ * with; a hidden element draws nothing at all rather than drawing unstyled,
108
+ * because a reader who removed an element is not asking to see it plainly.
109
+ */
110
+ const rich = (raw, options = {}) => {
111
+ const token = options.token;
112
+ if (token === undefined)
113
+ return renderTerminalText(raw, { color: mode, column: options.column });
114
+ const { prefix, suffix, hidden } = resolve(token);
115
+ if (hidden)
116
+ return '';
117
+ return `${prefix}${renderTerminalText(raw, { color: mode, base: prefix, column: options.column })}${suffix}`;
118
+ };
84
119
  return {
85
120
  revision: ++themeRevision,
86
121
  color: mode !== 'none',
87
122
  style,
123
+ rich,
88
124
  cut,
89
125
  glyph: token => resolve(token).glyph,
90
126
  visible,
91
127
  editor: editorTheme(style, visible),
92
- markdown: markdownTheme(style),
128
+ markdown: markdownTheme(style, visible),
93
129
  };
94
130
  }
95
131
  /**
@@ -111,9 +147,16 @@ export function forwardEditorTheme(source) {
111
147
  },
112
148
  };
113
149
  }
114
- /** The markdown counterpart of {@link forwardEditorTheme}. */
150
+ /**
151
+ * The markdown counterpart of {@link forwardEditorTheme}.
152
+ *
153
+ * The code highlighter is forwarded like every other element, so a theme swap
154
+ * reaches a fence already on screen; a source table that answers for no language
155
+ * of its own keeps the library's plain rows rather than losing its code blocks.
156
+ */
115
157
  export function forwardMarkdownTheme(source) {
116
158
  return {
159
+ highlightCode: (code, lang) => source().highlightCode?.(code, lang) ?? plainCodeLines(code, line => source().codeBlock(line)),
117
160
  heading: text => source().heading(text),
118
161
  link: text => source().link(text),
119
162
  linkUrl: text => source().linkUrl(text),
package/lib/theme.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import z from '@deepseek-ai/schemastery';
3
+ import type { UserMessage } from '@deepseek-ai/dsh-session';
4
+ import type { PostToolDecision } from '@deepseek-ai/dsh-tools';
5
+ import type { TodoEntry } from './work.ts';
6
+ /**
7
+ * Advisory todo discipline.
8
+ *
9
+ * The model already owns a whole-list todo tool; what it lacks is a reason to
10
+ * keep the list current over a long turn. This guard watches the harness's own
11
+ * projections and, when a plan ages past a threshold, rides the next tool
12
+ * result with a model-visible reminder — the same `additionalContexts` channel
13
+ * the repeat-tool reminder uses. It never vetoes a call and never steers a
14
+ * stopped turn, so it cannot loop; the per-turn cap bounds the one extra step
15
+ * each injected reminder costs the loop.
16
+ */
17
+ export declare const name = "tui-todo-guard";
18
+ /** The tool registry is read through the injected property, so Cordis must provide it first. */
19
+ export declare const inject: string[];
20
+ /** The tool this guard exists to keep honest, as the registry publishes it. */
21
+ export declare const TODO_WRITE_TOOL = "todo_write";
22
+ /** Defaults every deployment inherits; the bundle patch states them again for readers. */
23
+ export declare const TODO_GUARD_DEFAULTS: {
24
+ readonly staleSteps: 6;
25
+ readonly missingListSteps: 12;
26
+ readonly maxRemindersPerTurn: 3;
27
+ readonly previewItems: 5;
28
+ };
29
+ /** The knobs a deployment may tune; the whole object is validated fail-loud. */
30
+ export interface TodoGuardConfig {
31
+ /** Model steps a non-empty open list may age before a reminder. */
32
+ readonly staleSteps: number;
33
+ /** Steps in a turn before the guard suggests a first list at all. */
34
+ readonly missingListSteps: number;
35
+ /** Hard cap on reminders, and so on the extra steps they cost, per turn. */
36
+ readonly maxRemindersPerTurn: number;
37
+ /** Open items quoted in a reminder; the rest become a count. */
38
+ readonly previewItems: number;
39
+ }
40
+ /** The loader validates the row against this schema before `apply` sees it. */
41
+ export declare const Config: z<TodoGuardConfig>;
42
+ /**
43
+ * Apply defaults and validate. The loader normally fills the defaults, but a
44
+ * direct `apply` call (a test, or a composition that bypasses schemastery)
45
+ * must fail loud rather than silently guard nothing.
46
+ */
47
+ export declare function resolveTodoGuardConfig(config?: Partial<TodoGuardConfig>): TodoGuardConfig;
48
+ /** A todo still owed to the reader; the dock draws the same two states. */
49
+ type OpenTodoStatus = Exclude<TodoEntry['status'], 'completed'>;
50
+ export type OpenTodo = TodoEntry & {
51
+ readonly status: OpenTodoStatus;
52
+ };
53
+ /** The model-visible text and the source summary that labels it. */
54
+ export interface TodoReminder {
55
+ readonly text: string;
56
+ readonly summary: string;
57
+ }
58
+ /** The stale-list reminder: the plan aged, so it is now describing earlier work. */
59
+ export declare function staleReminder(open: readonly OpenTodo[], steps: number, previewItems: number): TodoReminder;
60
+ /** The reminder for a long turn that has produced no list at all. */
61
+ export declare function missingListReminder(steps: number): TodoReminder;
62
+ /**
63
+ * What one read of the `todos` projection found.
64
+ *
65
+ * `absent` is the tool's own "nothing written yet"; `unavailable` is a registry
66
+ * that cannot answer at all. The guard promises silence for the second, so the
67
+ * two must not collapse into one.
68
+ */
69
+ export type TodoListRead = {
70
+ readonly kind: 'listed';
71
+ readonly todos: readonly TodoEntry[];
72
+ } | {
73
+ readonly kind: 'absent';
74
+ } | {
75
+ readonly kind: 'unavailable';
76
+ };
77
+ /** What the guard reads about one agent before deciding whether to speak. */
78
+ export interface TodoObservation {
79
+ readonly toolName: string;
80
+ readonly hasTodoTool: boolean;
81
+ /** Plan mode suppresses the guard; `undefined` is a plan read that cannot answer. */
82
+ readonly planActive: boolean | undefined;
83
+ readonly todos: TodoListRead;
84
+ }
85
+ /**
86
+ * The decision core, free of Cordis so it can be tested directly.
87
+ *
88
+ * It counts model steps rather than tool calls: a plan ages by how much the
89
+ * agent has thought and acted since its last write, and a parallel batch of
90
+ * calls is one step, so one batch can never spend the whole reminder budget.
91
+ */
92
+ export declare class TodoGuard {
93
+ private readonly config;
94
+ private readonly counters;
95
+ constructor(config: TodoGuardConfig);
96
+ /** Follow the durable events that open a turn or a step. */
97
+ onEvent(session: object, type: string): void;
98
+ /** The reminder this tool result should carry, or undefined to stay silent. */
99
+ observe(session: object, observation: TodoObservation): TodoReminder | undefined;
100
+ private countersFor;
101
+ }
102
+ /**
103
+ * Prepend the guard's context while preserving every downstream context's own
104
+ * source, and carry it on a block as well so a denied call still reads it.
105
+ */
106
+ export declare function foldReminder(reminder: UserMessage, downstream: PostToolDecision): PostToolDecision;
107
+ /**
108
+ * Install the guard's listeners.
109
+ *
110
+ * The list and plan come from the host projections rather than a private fold,
111
+ * so this reads exactly the lifetime every other surface shows. Absent
112
+ * projections mean silence, never an error, because the guard is decoration.
113
+ */
114
+ export declare function apply(ctx: Context, config?: Partial<TodoGuardConfig>): void;
115
+ export {};
116
+ //# sourceMappingURL=todo-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-guard.d.ts","sourceRoot":"","sources":["../src/todo-guard.ts"],"names":[],"mappings":"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"}