@sagmans/dsh-tui 0.1.2 → 0.2.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/README.md +82 -8
- package/cordis.patch.yml +4 -2
- package/lib/agent/host.d.ts +14 -0
- package/lib/agent/host.d.ts.map +1 -1
- package/lib/agent/host.js +20 -4
- package/lib/agent/host.js.map +1 -1
- package/lib/agent/model.d.ts +24 -0
- package/lib/agent/model.d.ts.map +1 -1
- package/lib/agent/model.js +46 -1
- package/lib/agent/model.js.map +1 -1
- package/lib/agent/present.d.ts +7 -1
- package/lib/agent/present.d.ts.map +1 -1
- package/lib/agent/present.js +33 -4
- package/lib/agent/present.js.map +1 -1
- package/lib/agent/presets.d.ts +7 -1
- package/lib/agent/presets.d.ts.map +1 -1
- package/lib/agent/presets.js +7 -3
- package/lib/agent/presets.js.map +1 -1
- package/lib/cards.d.ts +127 -7
- package/lib/cards.d.ts.map +1 -1
- package/lib/cards.js +380 -52
- package/lib/cards.js.map +1 -1
- package/lib/export.d.ts +5 -4
- package/lib/export.d.ts.map +1 -1
- package/lib/export.js +62 -13
- package/lib/export.js.map +1 -1
- package/lib/fold-cursor.d.ts +23 -0
- package/lib/fold-cursor.d.ts.map +1 -0
- package/lib/fold-cursor.js +31 -0
- package/lib/fold-cursor.js.map +1 -0
- package/lib/index.d.ts +7 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +310 -32
- package/lib/index.js.map +1 -1
- package/lib/input/submission.d.ts +3 -1
- package/lib/input/submission.d.ts.map +1 -1
- package/lib/input/submission.js +5 -2
- package/lib/input/submission.js.map +1 -1
- package/lib/terminal/warning-screen.d.ts +8 -0
- package/lib/terminal/warning-screen.d.ts.map +1 -0
- package/lib/terminal/warning-screen.js +66 -0
- package/lib/terminal/warning-screen.js.map +1 -0
- package/lib/theme-capability.d.ts +36 -0
- package/lib/theme-capability.d.ts.map +1 -0
- package/lib/theme-capability.js +190 -0
- package/lib/theme-capability.js.map +1 -0
- package/lib/theme-command.d.ts +10 -0
- package/lib/theme-command.d.ts.map +1 -0
- package/lib/theme-command.js +61 -0
- package/lib/theme-command.js.map +1 -0
- package/lib/theme-settings.d.ts +161 -0
- package/lib/theme-settings.d.ts.map +1 -0
- package/lib/theme-settings.js +166 -0
- package/lib/theme-settings.js.map +1 -0
- package/lib/theme-tokens.d.ts +110 -0
- package/lib/theme-tokens.d.ts.map +1 -0
- package/lib/theme-tokens.js +401 -0
- package/lib/theme-tokens.js.map +1 -0
- package/lib/theme.d.ts +32 -35
- package/lib/theme.d.ts.map +1 -1
- package/lib/theme.js +112 -63
- package/lib/theme.js.map +1 -1
- package/lib/tokens.d.ts +15 -0
- package/lib/tokens.d.ts.map +1 -0
- package/lib/tokens.js +29 -0
- package/lib/tokens.js.map +1 -0
- package/lib/transcript.d.ts +26 -1
- package/lib/transcript.d.ts.map +1 -1
- package/lib/transcript.js +153 -25
- package/lib/transcript.js.map +1 -1
- package/lib/ui/dock.d.ts.map +1 -1
- package/lib/ui/dock.js +67 -28
- package/lib/ui/dock.js.map +1 -1
- package/lib/ui/editor.d.ts +34 -0
- package/lib/ui/editor.d.ts.map +1 -0
- package/lib/ui/editor.js +98 -0
- package/lib/ui/editor.js.map +1 -0
- package/lib/ui/markdown.d.ts +8 -0
- package/lib/ui/markdown.d.ts.map +1 -1
- package/lib/ui/markdown.js +12 -0
- package/lib/ui/markdown.js.map +1 -1
- package/lib/ui/picker.d.ts +37 -0
- package/lib/ui/picker.d.ts.map +1 -1
- package/lib/ui/picker.js +53 -0
- package/lib/ui/picker.js.map +1 -1
- package/lib/ui/status.d.ts +3 -1
- package/lib/ui/status.d.ts.map +1 -1
- package/lib/ui/status.js +76 -24
- package/lib/ui/status.js.map +1 -1
- package/lib/ui/view.d.ts +43 -0
- package/lib/ui/view.d.ts.map +1 -1
- package/lib/ui/view.js +254 -54
- package/lib/ui/view.js.map +1 -1
- package/package.json +3 -1
package/lib/ui/view.js
CHANGED
|
@@ -1,10 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { cardDetailRows } from "../cards.js";
|
|
1
|
+
import { visibleWidth, wrapTextWithAnsi } from '@earendil-works/pi-tui';
|
|
2
|
+
import { cardDetailRows, shellFoldHint, shellRetentionHint } from "../cards.js";
|
|
3
3
|
import { displayText } from "../text.js";
|
|
4
|
+
import { CARD_ROW_TOKEN } from "../theme-tokens.js";
|
|
4
5
|
import { RowCache } from "./rows.js";
|
|
5
6
|
const DETAIL_INDENT = ' ';
|
|
6
7
|
const OPTION_INDENT = ' ';
|
|
7
|
-
|
|
8
|
+
/** A nested call is a signpost under its card, so it sits one step shallower than that card's detail. */
|
|
9
|
+
const SUBCALL_INDENT = ' ';
|
|
10
|
+
/** The mark a cursor falls back to when the reader has not set one, so no literal lives in a template. */
|
|
11
|
+
const CURSOR_MARK = '❯';
|
|
12
|
+
const APPROVAL_MARK = '⚠';
|
|
13
|
+
const QUESTION_MARK = '?';
|
|
14
|
+
const CHECKBOX_ON = '[x]';
|
|
15
|
+
const CHECKBOX_OFF = '[ ]';
|
|
16
|
+
/** A row that a card's kind does not map draws as generic detail. */
|
|
17
|
+
const FALLBACK_ROW_TOKEN = 'tool.detail';
|
|
18
|
+
/** An unselected row has no cursor, and a blank column is not a value to configure. */
|
|
19
|
+
const NO_CURSOR = ' ';
|
|
20
|
+
/** The words an opened card uses when retention, not the fold, dropped rows. */
|
|
21
|
+
const CARD_HINT_RETAINED = 'more lines not shown';
|
|
22
|
+
/** The key a folded reasoning row names, so a hidden thought stays reachable. */
|
|
23
|
+
const REASONING_FOLD_HINT = 'shift+tab';
|
|
24
|
+
/** What separates a card's header from its measured facts, and the facts from each other. */
|
|
25
|
+
const STAT_LEAD = ' ';
|
|
26
|
+
const STAT_SEPARATOR = ' · ';
|
|
27
|
+
/** The symbol that says what a fact counts; a size needs none. */
|
|
28
|
+
const STAT_SYMBOL = {
|
|
29
|
+
added: '+',
|
|
30
|
+
changed: '~',
|
|
31
|
+
removed: '-',
|
|
32
|
+
size: '',
|
|
33
|
+
};
|
|
34
|
+
/** Which colour draws each fact, so added, changed, and removed never share one. */
|
|
35
|
+
const STAT_TOKEN = {
|
|
36
|
+
added: 'tool.stat.added',
|
|
37
|
+
changed: 'tool.stat.changed',
|
|
38
|
+
removed: 'tool.stat.removed',
|
|
39
|
+
size: 'tool.stat.size',
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* The state a reader gets before opening anything, and the view's own fallback.
|
|
43
|
+
*
|
|
44
|
+
* Cards and thoughts start folded because either can be long enough to push the
|
|
45
|
+
* answer off the screen. A program's calls are the opposite case: one clipped
|
|
46
|
+
* line each, under a header that already names them, so folding them costs a
|
|
47
|
+
* reader the very thing the card stands for.
|
|
48
|
+
*/
|
|
49
|
+
export const DEFAULT_VIEW_STATE = { expandCards: false, expandReasoning: false, expandSubCalls: true };
|
|
8
50
|
export class TranscriptView {
|
|
9
51
|
model;
|
|
10
52
|
theme;
|
|
@@ -19,7 +61,7 @@ export class TranscriptView {
|
|
|
19
61
|
this.rows = options.rows ?? new RowCache();
|
|
20
62
|
}
|
|
21
63
|
get viewState() {
|
|
22
|
-
return this.options.state?.() ??
|
|
64
|
+
return this.options.state?.() ?? DEFAULT_VIEW_STATE;
|
|
23
65
|
}
|
|
24
66
|
/** The cache's own account of the work it avoided; a test reads this. */
|
|
25
67
|
rowStats() {
|
|
@@ -36,95 +78,240 @@ export class TranscriptView {
|
|
|
36
78
|
const indent = ' '.repeat(lead);
|
|
37
79
|
const wrapped = wrapTextWithAnsi(displayText(text), Math.max(1, width - lead));
|
|
38
80
|
wrapped.forEach((line, index) => {
|
|
39
|
-
lines.push(style(
|
|
81
|
+
lines.push(style(this.theme.cut(`${index === 0 ? prefix : indent}${line}`, width, '')));
|
|
40
82
|
});
|
|
41
83
|
}
|
|
42
|
-
/**
|
|
43
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Wrap one already-styled block under a prefix.
|
|
86
|
+
*
|
|
87
|
+
* A card header mixes tokens — title, argument, stats — in a single string, so
|
|
88
|
+
* it cannot go through {@link pushWrapped}, which escapes and restyles plain
|
|
89
|
+
* text. Its width still has to fold at the screen edge rather than be cut,
|
|
90
|
+
* because the argument is the part a reader scans for and a silently dropped
|
|
91
|
+
* command is worse than a taller card.
|
|
92
|
+
*/
|
|
93
|
+
pushStyledWrapped(lines, content, width, prefix) {
|
|
44
94
|
const lead = visibleWidth(prefix);
|
|
45
95
|
const indent = ' '.repeat(lead);
|
|
46
|
-
const
|
|
47
|
-
|
|
96
|
+
const wrapped = wrapTextWithAnsi(content, Math.max(1, width - lead));
|
|
97
|
+
wrapped.forEach((line, index) => {
|
|
98
|
+
lines.push(this.theme.cut(`${index === 0 ? prefix : indent}${line}`, width, ''));
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/** Render assistant text as markdown: the model writes structure, the reader reads it. */
|
|
102
|
+
pushMarkdown(lines, text, width) {
|
|
103
|
+
const rendered = this.markdown.render(displayText(text), Math.max(1, width));
|
|
104
|
+
rendered.forEach(line => {
|
|
48
105
|
// The renderer pads to its width for background styling we do not use.
|
|
49
106
|
const trimmed = line.replace(/[ \t]+$/u, '');
|
|
50
|
-
// A blank markdown line stays blank:
|
|
51
|
-
// spaces in the frame for a row that shows nothing.
|
|
107
|
+
// A blank markdown line stays blank: it shows nothing, so it holds nothing.
|
|
52
108
|
if (trimmed === '') {
|
|
53
109
|
lines.push('');
|
|
54
110
|
return;
|
|
55
111
|
}
|
|
56
|
-
lines.push(
|
|
112
|
+
lines.push(this.theme.cut(trimmed, width, '…'));
|
|
57
113
|
});
|
|
58
114
|
}
|
|
59
115
|
pushReasoning(lines, entry, width) {
|
|
60
|
-
|
|
116
|
+
if (!this.theme.visible('transcript.reasoning.summary'))
|
|
117
|
+
return;
|
|
118
|
+
const glyph = this.theme.glyph('transcript.reasoning.summary');
|
|
119
|
+
const lead = glyph === '' ? '' : `${glyph} `;
|
|
120
|
+
// A folded row carries the key that opens it, because a count with no way to
|
|
121
|
+
// reach the text reads the same as the text never having arrived. The key
|
|
122
|
+
// rides the row rather than a line of its own, so naming the hidden body
|
|
123
|
+
// costs no vertical space.
|
|
124
|
+
const suffix = !this.viewState.expandReasoning && entry.body !== '' && this.theme.visible('transcript.reasoning.hint')
|
|
125
|
+
? ` (${REASONING_FOLD_HINT})`
|
|
126
|
+
: '';
|
|
127
|
+
// The key is kept whole: the summary is the part that gives up room.
|
|
128
|
+
const room = Math.max(1, width - visibleWidth(suffix));
|
|
129
|
+
const summary = this.theme.style('transcript.reasoning.summary', this.theme.cut(`${lead}${displayText(entry.summary)}`, room, ''));
|
|
130
|
+
lines.push(suffix === '' ? summary : `${summary}${this.theme.style('transcript.reasoning.hint', suffix)}`);
|
|
61
131
|
if (!this.viewState.expandReasoning)
|
|
62
132
|
return;
|
|
133
|
+
if (!this.theme.visible('transcript.reasoning.body'))
|
|
134
|
+
return;
|
|
63
135
|
for (const line of entry.body.split('\n')) {
|
|
64
|
-
this.pushWrapped(lines, line, width, DETAIL_INDENT, this.theme.
|
|
136
|
+
this.pushWrapped(lines, line, width, DETAIL_INDENT, text => this.theme.style('transcript.reasoning.body', text));
|
|
65
137
|
}
|
|
66
138
|
}
|
|
67
139
|
pushCard(lines, card, width) {
|
|
68
140
|
const expanded = this.viewState.expandCards;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
141
|
+
// A card whose kind declares its call IS a command keeps its output tail
|
|
142
|
+
// while folded: that output is the answer the reader asked for, so it
|
|
143
|
+
// outranks the one-line rule every other card follows. Its command is drawn
|
|
144
|
+
// outside the fold entirely, because what ran is never a detail.
|
|
145
|
+
const preview = expanded
|
|
146
|
+
? { expanded: true }
|
|
147
|
+
: { expanded: false, preview: card.kind === 'terminal' ? 'shellTail' : 'title' };
|
|
148
|
+
const { lines: detail, hidden } = cardDetailRows(card, preview);
|
|
149
|
+
const titleToken = card.failed ? 'tool.failed.title' : 'tool.title';
|
|
150
|
+
const glyphToken = card.failed ? 'tool.failed.glyph' : 'tool.glyph';
|
|
151
|
+
const { lead, body } = this.renderHead(card, titleToken, glyphToken);
|
|
152
|
+
// A header that folds keeps the argument and its stats; a terminal command
|
|
153
|
+
// can be longer than the screen, so it wraps under its own indent.
|
|
154
|
+
if (body !== '')
|
|
155
|
+
this.pushStyledWrapped(lines, body, width, lead);
|
|
156
|
+
if (this.viewState.expandSubCalls)
|
|
157
|
+
this.pushSubCalls(lines, card, width);
|
|
158
|
+
if (card.kind === 'terminal' && card.argument !== undefined && card.argument !== '' && this.theme.visible('tool.args')) {
|
|
159
|
+
this.pushStyledWrapped(lines, this.theme.style('tool.args', displayText(card.argument)), width, DETAIL_INDENT);
|
|
160
|
+
}
|
|
72
161
|
for (const row of detail) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
162
|
+
// The row says what it is, so the renderer never guesses from the text:
|
|
163
|
+
// a diff line beginning with "+" is an addition because the presenter
|
|
164
|
+
// said so, not because of its first character.
|
|
165
|
+
const drawn = row.parts
|
|
166
|
+
.map(part => {
|
|
167
|
+
const token = CARD_ROW_TOKEN[card.kind]?.[part.class] ?? FALLBACK_ROW_TOKEN;
|
|
168
|
+
return this.theme.visible(token) ? this.theme.style(token, displayText(part.text)) : '';
|
|
169
|
+
})
|
|
170
|
+
.join('');
|
|
171
|
+
// A row whose every part is hidden draws nothing, and nothing must not
|
|
172
|
+
// cost a line: the indent would read as an empty row the card does not have.
|
|
173
|
+
if (drawn === '')
|
|
174
|
+
continue;
|
|
175
|
+
lines.push(this.theme.cut(`${DETAIL_INDENT}${drawn}`, width, ''));
|
|
176
|
+
}
|
|
177
|
+
// The pill is not output, so it draws after the preview window rather than
|
|
178
|
+
// inside it: a run bounded to its tail still reports how it ended.
|
|
179
|
+
if (card.kind === 'terminal' && card.status !== undefined && this.theme.visible('tool.terminal.status')) {
|
|
180
|
+
lines.push(this.theme.cut(`${DETAIL_INDENT}${this.theme.style('tool.terminal.status', displayText(card.status))}`, width, ''));
|
|
181
|
+
}
|
|
182
|
+
if (hidden <= 0 || !this.theme.visible('tool.hint'))
|
|
183
|
+
return;
|
|
184
|
+
// A shell card's rows are kept from the end, so a hidden count always names
|
|
185
|
+
// the rows *before* what is on screen and the hint has to say so; every
|
|
186
|
+
// other card keeps its head, where a neutral count is enough. A folded shell
|
|
187
|
+
// card is bounded by its preview window, an opened one by retention, so the
|
|
188
|
+
// opened hint promises no more than memory kept.
|
|
189
|
+
const hint = card.kind === 'terminal'
|
|
190
|
+
? preview.expanded ? shellRetentionHint(hidden) : shellFoldHint(hidden)
|
|
191
|
+
: preview.expanded ? `${hidden} ${CARD_HINT_RETAINED}` : undefined;
|
|
192
|
+
if (hint === undefined)
|
|
193
|
+
return;
|
|
194
|
+
lines.push(this.theme.style('tool.hint', this.theme.cut(`${DETAIL_INDENT}${hint}`, width, '')));
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* The calls one card dispatched, one entry each.
|
|
198
|
+
*
|
|
199
|
+
* A nested call is a signpost rather than a card of its own, so it keeps one
|
|
200
|
+
* entry per call; a long argument still wraps under that entry rather than
|
|
201
|
+
* being cut, because the argument is the part a reader scans for and a
|
|
202
|
+
* silently shortened path reads as the one that ran.
|
|
203
|
+
*/
|
|
204
|
+
pushSubCalls(lines, card, width) {
|
|
205
|
+
const subCalls = card.subCalls ?? [];
|
|
206
|
+
for (const call of subCalls) {
|
|
207
|
+
const titleToken = call.failed ? 'tool.failed.title' : 'tool.subcall.title';
|
|
208
|
+
const title = this.theme.visible(titleToken) ? this.theme.style(titleToken, displayText(call.title)) : '';
|
|
209
|
+
const argument = call.argument === undefined || !this.theme.visible('tool.subcall.args')
|
|
210
|
+
? ''
|
|
211
|
+
: ` ${this.theme.style('tool.subcall.args', displayText(call.argument))}`;
|
|
212
|
+
const drawn = `${title}${argument}`;
|
|
213
|
+
// A row whose every part is hidden draws nothing, and nothing must not
|
|
214
|
+
// cost a line the card does not have.
|
|
215
|
+
if (drawn === '')
|
|
216
|
+
continue;
|
|
217
|
+
this.pushStyledWrapped(lines, drawn, width, SUBCALL_INDENT);
|
|
77
218
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
lines.push(this.theme.
|
|
219
|
+
const hidden = (card.subCallsTotal ?? subCalls.length) - subCalls.length;
|
|
220
|
+
if (hidden > 0 && this.theme.visible('tool.hint')) {
|
|
221
|
+
lines.push(this.theme.style('tool.hint', this.theme.cut(`${SUBCALL_INDENT}… ${hidden} more calls`, width, '')));
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* A card's header: its label, its argument, and its measured facts.
|
|
226
|
+
*
|
|
227
|
+
* The glyph is returned apart from the body so a wrapped continuation can
|
|
228
|
+
* align under the label rather than under the mark. A terminal's argument is
|
|
229
|
+
* left out because it needs a row of its own — it is the one argument that can
|
|
230
|
+
* be a whole command rather than a word.
|
|
231
|
+
*/
|
|
232
|
+
renderHead(card, titleToken, glyphToken) {
|
|
233
|
+
const glyph = this.theme.visible(titleToken) ? this.theme.glyph(glyphToken) : '';
|
|
234
|
+
const lead = glyph === '' ? '' : `${glyph} `;
|
|
235
|
+
let body = this.theme.visible(titleToken) ? this.theme.style(titleToken, displayText(card.title)) : '';
|
|
236
|
+
if (card.kind !== 'terminal' && card.argument !== undefined && card.argument !== '' && this.theme.visible('tool.args')) {
|
|
237
|
+
body += `${body === '' ? '' : ' '}${this.theme.style('tool.args', displayText(card.argument))}`;
|
|
81
238
|
}
|
|
239
|
+
return { lead, body: body + this.renderStats(card.stats) };
|
|
240
|
+
}
|
|
241
|
+
/** The measured facts, each in its own colour, or nothing when none is visible. */
|
|
242
|
+
renderStats(stats) {
|
|
243
|
+
if (stats === undefined || stats.length === 0)
|
|
244
|
+
return '';
|
|
245
|
+
const drawn = stats
|
|
246
|
+
.filter(stat => this.theme.visible(STAT_TOKEN[stat.kind]))
|
|
247
|
+
.map(stat => this.theme.style(STAT_TOKEN[stat.kind], `${STAT_SYMBOL[stat.kind]}${displayText(stat.text)}`));
|
|
248
|
+
if (drawn.length === 0)
|
|
249
|
+
return '';
|
|
250
|
+
return `${STAT_LEAD}${drawn.join(this.theme.style('tool.stat.separator', STAT_SEPARATOR))}`;
|
|
82
251
|
}
|
|
83
252
|
pushPicker(lines, picker, width) {
|
|
84
253
|
lines.push('');
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
254
|
+
if (this.theme.visible('picker.title')) {
|
|
255
|
+
const glyph = this.theme.glyph('picker.glyph');
|
|
256
|
+
const lead = glyph === '' ? '' : `${glyph} `;
|
|
257
|
+
lines.push(this.theme.style('picker.title', this.theme.cut(`${lead}${displayText(picker.title)}`, width, '')));
|
|
258
|
+
}
|
|
259
|
+
if (picker.note !== undefined && this.theme.visible('picker.note')) {
|
|
260
|
+
this.pushWrapped(lines, picker.note, width, DETAIL_INDENT, text => this.theme.style('picker.note', text));
|
|
88
261
|
}
|
|
89
|
-
if (picker.filter !== '') {
|
|
90
|
-
lines.push(this.theme.
|
|
262
|
+
if (picker.filter !== '' && this.theme.visible('picker.filter')) {
|
|
263
|
+
lines.push(this.theme.style('picker.filter', this.theme.cut(`${DETAIL_INDENT}filter: ${displayText(picker.filter)}`, width, '')));
|
|
91
264
|
}
|
|
92
|
-
if (picker.above > 0) {
|
|
93
|
-
lines.push(this.theme.
|
|
265
|
+
if (picker.above > 0 && this.theme.visible('picker.scrollNewer')) {
|
|
266
|
+
lines.push(this.theme.style('picker.scrollNewer', this.theme.cut(`${OPTION_INDENT}… ${picker.above} newer`, width, '')));
|
|
94
267
|
}
|
|
95
268
|
for (const row of picker.rows) {
|
|
96
|
-
const
|
|
269
|
+
const token = row.current ? 'picker.rowCurrent' : 'picker.row';
|
|
270
|
+
if (!this.theme.visible(token))
|
|
271
|
+
continue;
|
|
272
|
+
const cursor = row.current ? this.theme.glyph('picker.cursor') || CURSOR_MARK : NO_CURSOR;
|
|
97
273
|
const text = row.description === undefined
|
|
98
274
|
? `${cursor} ${row.label}`
|
|
99
275
|
: `${cursor} ${row.label} — ${row.description}`;
|
|
100
|
-
|
|
101
|
-
lines.push(style(truncateToWidth(`${OPTION_INDENT}${displayText(text)}`, width, '')));
|
|
276
|
+
lines.push(this.theme.style(token, this.theme.cut(`${OPTION_INDENT}${displayText(text)}`, width, '')));
|
|
102
277
|
}
|
|
103
|
-
if (picker.below > 0) {
|
|
104
|
-
lines.push(this.theme.
|
|
278
|
+
if (picker.below > 0 && this.theme.visible('picker.scrollOlder')) {
|
|
279
|
+
lines.push(this.theme.style('picker.scrollOlder', this.theme.cut(`${OPTION_INDENT}… ${picker.below} older`, width, '')));
|
|
280
|
+
}
|
|
281
|
+
if (this.theme.visible('picker.hint')) {
|
|
282
|
+
lines.push(this.theme.style('picker.hint', this.theme.cut(`${OPTION_INDENT}${displayText(picker.hint)}`, width, '')));
|
|
105
283
|
}
|
|
106
|
-
lines.push(this.theme.dim(truncateToWidth(`${OPTION_INDENT}${displayText(picker.hint)}`, width, '')));
|
|
107
284
|
}
|
|
108
285
|
pushGate(lines, gate, width) {
|
|
109
286
|
lines.push('');
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
287
|
+
if (this.theme.visible('gate.title')) {
|
|
288
|
+
const glyphToken = gate.kind === 'approval' ? 'gate.glyphApproval' : 'gate.glyphQuestion';
|
|
289
|
+
const glyph = this.theme.glyph(glyphToken) || (gate.kind === 'approval' ? APPROVAL_MARK : QUESTION_MARK);
|
|
290
|
+
lines.push(this.theme.style('gate.title', this.theme.cut(`${glyph} ${displayText(gate.title)}`, width, '')));
|
|
291
|
+
}
|
|
292
|
+
if (this.theme.visible('gate.detail')) {
|
|
293
|
+
for (const detail of gate.detail) {
|
|
294
|
+
this.pushWrapped(lines, detail, width, DETAIL_INDENT, text => this.theme.style('gate.detail', text));
|
|
295
|
+
}
|
|
113
296
|
}
|
|
114
297
|
gate.options.forEach((option, position) => {
|
|
115
|
-
const
|
|
116
|
-
|
|
298
|
+
const token = option.current ? 'gate.optionCurrent' : 'gate.option';
|
|
299
|
+
if (!this.theme.visible(token))
|
|
300
|
+
return;
|
|
301
|
+
const box = option.selected ? CHECKBOX_ON : CHECKBOX_OFF;
|
|
302
|
+
const cursor = option.current ? this.theme.glyph('gate.cursor') || CURSOR_MARK : NO_CURSOR;
|
|
117
303
|
const label = displayText(option.label);
|
|
118
304
|
const text = option.description === undefined
|
|
119
305
|
? `${cursor} ${box} ${position + 1}. ${label}`
|
|
120
306
|
: `${cursor} ${box} ${position + 1}. ${label} — ${displayText(option.description)}`;
|
|
121
|
-
|
|
122
|
-
lines.push(style(truncateToWidth(`${OPTION_INDENT}${text}`, width, '')));
|
|
307
|
+
lines.push(this.theme.style(token, this.theme.cut(`${OPTION_INDENT}${text}`, width, '')));
|
|
123
308
|
});
|
|
124
|
-
|
|
309
|
+
if (this.theme.visible('gate.hint')) {
|
|
310
|
+
lines.push(this.theme.style('gate.hint', this.theme.cut(`${OPTION_INDENT}${displayText(gate.hint)}`, width, '')));
|
|
311
|
+
}
|
|
125
312
|
}
|
|
126
313
|
/** The rows one transcript entry becomes. */
|
|
127
|
-
renderEntry(entry, lines, width
|
|
314
|
+
renderEntry(entry, lines, width) {
|
|
128
315
|
switch (entry.kind) {
|
|
129
316
|
case 'tool':
|
|
130
317
|
this.pushCard(lines, entry.card, width);
|
|
@@ -133,25 +320,38 @@ export class TranscriptView {
|
|
|
133
320
|
this.pushReasoning(lines, entry, width);
|
|
134
321
|
return;
|
|
135
322
|
case 'assistant':
|
|
136
|
-
this.pushMarkdown(lines, entry.text, width
|
|
323
|
+
this.pushMarkdown(lines, entry.text, width);
|
|
137
324
|
return;
|
|
138
325
|
case 'user':
|
|
139
|
-
this.
|
|
326
|
+
if (!this.theme.visible('transcript.user'))
|
|
327
|
+
return;
|
|
328
|
+
this.pushWrapped(lines, entry.text, width, this.elementLead('transcript.user'), text => this.theme.style('transcript.user', text));
|
|
140
329
|
return;
|
|
141
330
|
case 'notice':
|
|
142
|
-
|
|
331
|
+
if (!this.theme.visible('transcript.notice'))
|
|
332
|
+
return;
|
|
333
|
+
this.pushWrapped(lines, entry.text, width, this.elementLead('transcript.notice'), text => this.theme.style('transcript.notice', text));
|
|
143
334
|
return;
|
|
144
335
|
case 'marker':
|
|
145
|
-
|
|
336
|
+
if (!this.theme.visible('transcript.marker'))
|
|
337
|
+
return;
|
|
338
|
+
this.pushWrapped(lines, entry.text, width, this.elementLead('transcript.marker'), text => this.theme.style('transcript.marker', text));
|
|
146
339
|
return;
|
|
147
340
|
}
|
|
148
341
|
}
|
|
342
|
+
/** The mark and the space that introduce an element, empty when it has none. */
|
|
343
|
+
elementLead(token) {
|
|
344
|
+
const glyph = this.theme.visible(token) ? this.theme.glyph(token) : '';
|
|
345
|
+
return glyph === '' ? '' : `${glyph} `;
|
|
346
|
+
}
|
|
149
347
|
render(width) {
|
|
150
348
|
if (width <= 0)
|
|
151
349
|
return [];
|
|
152
|
-
const { glyphs } = this.theme;
|
|
153
350
|
const state = this.viewState;
|
|
154
|
-
|
|
351
|
+
// The revision is part of the key: rows drawn under an older theme table
|
|
352
|
+
// must miss, or a settings change would restyle only the rows that happened
|
|
353
|
+
// to be redrawn for another reason.
|
|
354
|
+
const tag = `${width}|${state.expandCards ? 'c' : '-'}${state.expandReasoning ? 'r' : '-'}${state.expandSubCalls ? 'p' : '-'}|${this.theme.revision}`;
|
|
155
355
|
const lines = [];
|
|
156
356
|
const settled = this.model.settledCount();
|
|
157
357
|
const entries = this.model.entries();
|
|
@@ -159,7 +359,7 @@ export class TranscriptView {
|
|
|
159
359
|
// The in-flight rows change on every frame, so caching them would only
|
|
160
360
|
// fill the cache with objects nobody will ask for again.
|
|
161
361
|
if (index >= settled) {
|
|
162
|
-
this.renderEntry(entry, lines, width
|
|
362
|
+
this.renderEntry(entry, lines, width);
|
|
163
363
|
continue;
|
|
164
364
|
}
|
|
165
365
|
const cached = this.rows.lookup(entry, tag);
|
|
@@ -168,7 +368,7 @@ export class TranscriptView {
|
|
|
168
368
|
continue;
|
|
169
369
|
}
|
|
170
370
|
const rendered = [];
|
|
171
|
-
this.renderEntry(entry, rendered, width
|
|
371
|
+
this.renderEntry(entry, rendered, width);
|
|
172
372
|
this.rows.store(entry, tag, rendered);
|
|
173
373
|
lines.push(...rendered);
|
|
174
374
|
}
|
package/lib/ui/view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/ui/view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/ui/view.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sagmans/dsh-tui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Terminal (CLI TUI) surface for DeepSeek Harness: interactive dsh in a terminal, no browser required",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
"@deepseek-ai/dsh-agent-presets": "0.1.5-rc.1",
|
|
74
74
|
"@deepseek-ai/dsh-code-runtime-worker-thread": "0.1.5-rc.1",
|
|
75
75
|
"@deepseek-ai/dsh-cordis-host-runner": "0.1.5-rc.1",
|
|
76
|
+
"@deepseek-ai/schemastery": "3.18.2",
|
|
76
77
|
"@earendil-works/pi-tui": "0.85.1",
|
|
77
78
|
"commander": "^15.0.0"
|
|
78
79
|
},
|
|
@@ -98,6 +99,7 @@
|
|
|
98
99
|
"@deepseek-ai/dsh-commands": "0.1.5-rc.1",
|
|
99
100
|
"@deepseek-ai/dsh-llm": "0.1.5-rc.1",
|
|
100
101
|
"@deepseek-ai/dsh-session": "0.1.5-rc.1",
|
|
102
|
+
"@deepseek-ai/dsh-settings": "0.1.5-rc.1",
|
|
101
103
|
"@deepseek-ai/dsh-tools": "0.1.5-rc.1",
|
|
102
104
|
"@deepseek-ai/dsh-user-approval": "0.1.5-rc.1",
|
|
103
105
|
"@deepseek-ai/dsh-user-questions": "0.1.5-rc.1",
|