@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.
- package/LICENSE +1 -1
- package/README.md +407 -53
- package/cordis.patch.yml +14 -0
- package/lib/agent/present.js +1 -1
- package/lib/agent/present.js.map +1 -1
- package/lib/agent/projections.d.ts +22 -6
- package/lib/agent/projections.d.ts.map +1 -1
- package/lib/agent/projections.js +21 -10
- package/lib/agent/projections.js.map +1 -1
- package/lib/agent/prompt-history.d.ts +89 -0
- package/lib/agent/prompt-history.d.ts.map +1 -0
- package/lib/agent/prompt-history.js +382 -0
- package/lib/agent/prompt-history.js.map +1 -0
- package/lib/agent/status.d.ts +6 -0
- package/lib/agent/status.d.ts.map +1 -1
- package/lib/agent/status.js +1 -0
- package/lib/agent/status.js.map +1 -1
- package/lib/cards.d.ts +83 -13
- package/lib/cards.d.ts.map +1 -1
- package/lib/cards.js +96 -28
- package/lib/cards.js.map +1 -1
- package/lib/export.d.ts +3 -3
- package/lib/export.d.ts.map +1 -1
- package/lib/export.js +23 -13
- package/lib/export.js.map +1 -1
- package/lib/fold-cursor.d.ts +12 -5
- package/lib/fold-cursor.d.ts.map +1 -1
- package/lib/fold-cursor.js +16 -5
- package/lib/fold-cursor.js.map +1 -1
- package/lib/gates.d.ts.map +1 -1
- package/lib/gates.js +42 -9
- package/lib/gates.js.map +1 -1
- package/lib/herdr/client.d.ts +57 -0
- package/lib/herdr/client.d.ts.map +1 -0
- package/lib/herdr/client.js +218 -0
- package/lib/herdr/client.js.map +1 -0
- package/lib/herdr/constants.d.ts +93 -0
- package/lib/herdr/constants.d.ts.map +1 -0
- package/lib/herdr/constants.js +79 -0
- package/lib/herdr/constants.js.map +1 -0
- package/lib/herdr/reporter.d.ts +60 -0
- package/lib/herdr/reporter.d.ts.map +1 -0
- package/lib/herdr/reporter.js +217 -0
- package/lib/herdr/reporter.js.map +1 -0
- package/lib/herdr/state.d.ts +57 -0
- package/lib/herdr/state.d.ts.map +1 -0
- package/lib/herdr/state.js +62 -0
- package/lib/herdr/state.js.map +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +700 -81
- package/lib/index.js.map +1 -1
- package/lib/injection.d.ts +9 -0
- package/lib/injection.d.ts.map +1 -0
- package/lib/injection.js +128 -0
- package/lib/injection.js.map +1 -0
- package/lib/input/actions.d.ts +19 -2
- package/lib/input/actions.d.ts.map +1 -1
- package/lib/input/actions.js +60 -11
- package/lib/input/actions.js.map +1 -1
- package/lib/input/cancel.d.ts +55 -0
- package/lib/input/cancel.d.ts.map +1 -0
- package/lib/input/cancel.js +47 -0
- package/lib/input/cancel.js.map +1 -0
- package/lib/input/completion.d.ts +5 -2
- package/lib/input/completion.d.ts.map +1 -1
- package/lib/input/completion.js +79 -4
- package/lib/input/completion.js.map +1 -1
- package/lib/input/file-search.d.ts +105 -0
- package/lib/input/file-search.d.ts.map +1 -0
- package/lib/input/file-search.js +665 -0
- package/lib/input/file-search.js.map +1 -0
- package/lib/input/fuzzy.d.ts +42 -0
- package/lib/input/fuzzy.d.ts.map +1 -0
- package/lib/input/fuzzy.js +289 -0
- package/lib/input/fuzzy.js.map +1 -0
- package/lib/input/ghost.d.ts +46 -0
- package/lib/input/ghost.d.ts.map +1 -0
- package/lib/input/ghost.js +58 -0
- package/lib/input/ghost.js.map +1 -0
- package/lib/input/keymap.d.ts +3 -1
- package/lib/input/keymap.d.ts.map +1 -1
- package/lib/input/keymap.js +16 -3
- package/lib/input/keymap.js.map +1 -1
- package/lib/input/match.d.ts +12 -4
- package/lib/input/match.d.ts.map +1 -1
- package/lib/input/match.js +50 -51
- package/lib/input/match.js.map +1 -1
- package/lib/input/submission.d.ts +34 -1
- package/lib/input/submission.d.ts.map +1 -1
- package/lib/input/submission.js +33 -5
- package/lib/input/submission.js.map +1 -1
- package/lib/keys-command.d.ts +19 -3
- package/lib/keys-command.d.ts.map +1 -1
- package/lib/keys-command.js +34 -31
- package/lib/keys-command.js.map +1 -1
- package/lib/settings-notice.d.ts +5 -0
- package/lib/settings-notice.d.ts.map +1 -1
- package/lib/settings-notice.js +9 -7
- package/lib/settings-notice.js.map +1 -1
- package/lib/stash/lock.d.ts +72 -0
- package/lib/stash/lock.d.ts.map +1 -0
- package/lib/stash/lock.js +374 -0
- package/lib/stash/lock.js.map +1 -0
- package/lib/stash/paths.d.ts +22 -0
- package/lib/stash/paths.d.ts.map +1 -0
- package/lib/stash/paths.js +84 -0
- package/lib/stash/paths.js.map +1 -0
- package/lib/stash/private-fs.d.ts +61 -0
- package/lib/stash/private-fs.d.ts.map +1 -0
- package/lib/stash/private-fs.js +379 -0
- package/lib/stash/private-fs.js.map +1 -0
- package/lib/stash/schema.d.ts +56 -0
- package/lib/stash/schema.d.ts.map +1 -0
- package/lib/stash/schema.js +108 -0
- package/lib/stash/schema.js.map +1 -0
- package/lib/stash/store.d.ts +92 -0
- package/lib/stash/store.d.ts.map +1 -0
- package/lib/stash/store.js +262 -0
- package/lib/stash/store.js.map +1 -0
- package/lib/stash.d.ts +122 -0
- package/lib/stash.d.ts.map +1 -0
- package/lib/stash.js +353 -0
- package/lib/stash.js.map +1 -0
- package/lib/terminal/external-editor.d.ts +93 -0
- package/lib/terminal/external-editor.d.ts.map +1 -0
- package/lib/terminal/external-editor.js +263 -0
- package/lib/terminal/external-editor.js.map +1 -0
- package/lib/terminal/host-writes.d.ts +39 -0
- package/lib/terminal/host-writes.d.ts.map +1 -0
- package/lib/terminal/host-writes.js +136 -0
- package/lib/terminal/host-writes.js.map +1 -0
- package/lib/terminal/signals.d.ts +25 -0
- package/lib/terminal/signals.d.ts.map +1 -0
- package/lib/terminal/signals.js +39 -0
- package/lib/terminal/signals.js.map +1 -0
- package/lib/terminal/warning-screen.d.ts +19 -1
- package/lib/terminal/warning-screen.d.ts.map +1 -1
- package/lib/terminal/warning-screen.js +37 -1
- package/lib/terminal/warning-screen.js.map +1 -1
- package/lib/terminal-text.d.ts +72 -0
- package/lib/terminal-text.d.ts.map +1 -0
- package/lib/terminal-text.js +603 -0
- package/lib/terminal-text.js.map +1 -0
- package/lib/text.d.ts +45 -6
- package/lib/text.d.ts.map +1 -1
- package/lib/text.js +106 -46
- package/lib/text.js.map +1 -1
- package/lib/theme-command.d.ts +7 -4
- package/lib/theme-command.d.ts.map +1 -1
- package/lib/theme-command.js +32 -12
- package/lib/theme-command.js.map +1 -1
- package/lib/theme-files.d.ts +110 -0
- package/lib/theme-files.d.ts.map +1 -0
- package/lib/theme-files.js +352 -0
- package/lib/theme-files.js.map +1 -0
- package/lib/theme-schema.d.ts +121 -0
- package/lib/theme-schema.d.ts.map +1 -0
- package/lib/theme-schema.js +87 -0
- package/lib/theme-schema.js.map +1 -0
- package/lib/theme-settings.d.ts +72 -10
- package/lib/theme-settings.d.ts.map +1 -1
- package/lib/theme-settings.js +162 -45
- package/lib/theme-settings.js.map +1 -1
- package/lib/theme-tokens.d.ts +39 -7
- package/lib/theme-tokens.d.ts.map +1 -1
- package/lib/theme-tokens.js +104 -13
- package/lib/theme-tokens.js.map +1 -1
- package/lib/theme.d.ts +24 -2
- package/lib/theme.d.ts.map +1 -1
- package/lib/theme.js +49 -6
- package/lib/theme.js.map +1 -1
- package/lib/todo-guard.d.ts +116 -0
- package/lib/todo-guard.d.ts.map +1 -0
- package/lib/todo-guard.js +259 -0
- package/lib/todo-guard.js.map +1 -0
- package/lib/tool-display.d.ts +57 -0
- package/lib/tool-display.d.ts.map +1 -0
- package/lib/tool-display.js +51 -0
- package/lib/tool-display.js.map +1 -0
- package/lib/transcript.d.ts +28 -0
- package/lib/transcript.d.ts.map +1 -1
- package/lib/transcript.js +126 -37
- package/lib/transcript.js.map +1 -1
- package/lib/ui/diff.d.ts +49 -0
- package/lib/ui/diff.d.ts.map +1 -0
- package/lib/ui/diff.js +208 -0
- package/lib/ui/diff.js.map +1 -0
- package/lib/ui/dock.d.ts.map +1 -1
- package/lib/ui/dock.js +9 -6
- package/lib/ui/dock.js.map +1 -1
- package/lib/ui/editor.d.ts +41 -1
- package/lib/ui/editor.d.ts.map +1 -1
- package/lib/ui/editor.js +100 -4
- package/lib/ui/editor.js.map +1 -1
- package/lib/ui/frame.d.ts +16 -5
- package/lib/ui/frame.d.ts.map +1 -1
- package/lib/ui/frame.js +32 -13
- package/lib/ui/frame.js.map +1 -1
- package/lib/ui/history-picker.d.ts +15 -0
- package/lib/ui/history-picker.d.ts.map +1 -0
- package/lib/ui/history-picker.js +26 -0
- package/lib/ui/history-picker.js.map +1 -0
- package/lib/ui/keymap-picker.d.ts +16 -0
- package/lib/ui/keymap-picker.d.ts.map +1 -0
- package/lib/ui/keymap-picker.js +41 -0
- package/lib/ui/keymap-picker.js.map +1 -0
- package/lib/ui/layout.d.ts +33 -0
- package/lib/ui/layout.d.ts.map +1 -0
- package/lib/ui/layout.js +33 -0
- package/lib/ui/layout.js.map +1 -0
- package/lib/ui/markdown.d.ts +25 -3
- package/lib/ui/markdown.d.ts.map +1 -1
- package/lib/ui/markdown.js +12 -8
- package/lib/ui/markdown.js.map +1 -1
- package/lib/ui/picker-card.d.ts +42 -0
- package/lib/ui/picker-card.d.ts.map +1 -0
- package/lib/ui/picker-card.js +148 -0
- package/lib/ui/picker-card.js.map +1 -0
- package/lib/ui/picker.d.ts +50 -2
- package/lib/ui/picker.d.ts.map +1 -1
- package/lib/ui/picker.js +66 -7
- package/lib/ui/picker.js.map +1 -1
- package/lib/ui/prompt.d.ts +12 -2
- package/lib/ui/prompt.d.ts.map +1 -1
- package/lib/ui/prompt.js +25 -2
- package/lib/ui/prompt.js.map +1 -1
- package/lib/ui/rows.d.ts +8 -6
- package/lib/ui/rows.d.ts.map +1 -1
- package/lib/ui/rows.js +10 -18
- package/lib/ui/rows.js.map +1 -1
- package/lib/ui/stash-picker.d.ts +43 -0
- package/lib/ui/stash-picker.d.ts.map +1 -0
- package/lib/ui/stash-picker.js +78 -0
- package/lib/ui/stash-picker.js.map +1 -0
- package/lib/ui/status.d.ts +2 -0
- package/lib/ui/status.d.ts.map +1 -1
- package/lib/ui/status.js +25 -16
- package/lib/ui/status.js.map +1 -1
- package/lib/ui/theme-picker.d.ts +18 -0
- package/lib/ui/theme-picker.d.ts.map +1 -0
- package/lib/ui/theme-picker.js +68 -0
- package/lib/ui/theme-picker.js.map +1 -0
- package/lib/ui/view.d.ts +146 -22
- package/lib/ui/view.d.ts.map +1 -1
- package/lib/ui/view.js +461 -154
- package/lib/ui/view.js.map +1 -1
- package/lib/work.d.ts +3 -1
- package/lib/work.d.ts.map +1 -1
- package/lib/work.js +9 -1
- package/lib/work.js.map +1 -1
- package/package.json +7 -1
- package/themes/deepseek-blue.yaml +183 -0
- package/themes/violet-orbit.yaml +178 -0
package/lib/theme-tokens.js
CHANGED
|
@@ -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 = '#
|
|
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':
|
|
228
|
-
'transcript.reasoning.body':
|
|
229
|
-
'transcript.reasoning.hint':
|
|
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
|
|
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
|
|
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 {
|
|
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
|
package/lib/theme-tokens.js.map
CHANGED
|
@@ -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
|
|
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
|
-
/**
|
|
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
|
package/lib/theme.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
/**
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
/**
|
|
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":"AAAA,OAAO,EAAE,eAAe,EAA8D,MAAM,wBAAwB,CAAA;AACpH,OAAO,EAAE,gBAAgB,EAAmB,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAqC,MAAM,mBAAmB,CAAA;
|
|
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":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAIxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAsC,MAAM,wBAAwB,CAAA;AAElG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAE1C;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,IAAI,mBAAmB,CAAA;AAEpC,gGAAgG;AAChG,eAAO,MAAM,MAAM,UAAY,CAAA;AAE/B,+EAA+E;AAC/E,eAAO,MAAM,eAAe,eAAe,CAAA;AAe3C,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAA;AAEV,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B;AAED,+EAA+E;AAC/E,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,eAAe,CAKpC,CAAA;AAUF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAO7F;AAED,2EAA2E;AAC3E,KAAK,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAA;AAE/D,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAA;AAMtE,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,CAY1G;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAK/D;AASD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAA;AAEpC,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;gBAE9B,MAAM,EAAE,eAAe;IAEpD,4DAA4D;IAC5D,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAkB5C,+EAA+E;IAC/E,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,GAAG,YAAY,GAAG,SAAS;IA0BhF,OAAO,CAAC,WAAW;CAQpB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,GAAG,gBAAgB,CAMlG;AAuDD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,IAAI,CAyB/E"}
|