@aiwayds/dsh-tui-pi 0.9.4 → 0.10.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/lib/agents.js +52 -52
- package/lib/agents.js.map +1 -1
- package/lib/login.js +15 -11
- package/lib/login.js.map +1 -1
- package/lib/panels.d.ts +46 -12
- package/lib/panels.js +119 -38
- package/lib/panels.js.map +1 -1
- package/lib/selectors.d.ts +7 -6
- package/lib/selectors.js +105 -78
- package/lib/selectors.js.map +1 -1
- package/lib/sessions.d.ts +2 -2
- package/lib/sessions.js +26 -16
- package/lib/sessions.js.map +1 -1
- package/lib/settings.js +28 -20
- package/lib/settings.js.map +1 -1
- package/lib/skills.d.ts +9 -11
- package/lib/skills.js +10 -13
- package/lib/skills.js.map +1 -1
- package/lib/subagent-viewer.d.ts +3 -3
- package/lib/subagent-viewer.js +54 -46
- package/lib/subagent-viewer.js.map +1 -1
- package/lib/text.d.ts +2 -0
- package/lib/text.js +1 -1
- package/lib/text.js.map +1 -1
- package/package.json +1 -1
package/lib/selectors.js
CHANGED
|
@@ -1,20 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* TUI overlays
|
|
3
|
-
* reasoning effort picker
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* TUI overlays for the pickers — the `/model` picker (two-stage), the
|
|
3
|
+
* reasoning effort picker, the `/theme` preference picker, the `/permission`
|
|
4
|
+
* preset picker and the skill picker. Every picker is the same FW table:
|
|
5
|
+
* `●` title, uppercase header row, the ─┼─ rule under it, `│`-separated
|
|
6
|
+
* aligned columns — one visual language across every slash-command panel.
|
|
6
7
|
*/
|
|
7
|
-
import { SelectList } from '@earendil-works/pi-tui';
|
|
8
8
|
import { wrapFramedOverlay } from "./frame.js";
|
|
9
9
|
import { permissionItems } from "./permission.js";
|
|
10
|
+
import { fitColumnWidth, TablePanel } from "./panels.js";
|
|
10
11
|
/** First row of the effort picker: explicitly no effort override. */
|
|
11
|
-
const
|
|
12
|
+
const DEFAULT_EFFORT_ROW = {
|
|
12
13
|
value: 'default',
|
|
13
14
|
label: '(provider default)',
|
|
14
15
|
description: 'adapter default behavior — clears the effort override',
|
|
15
16
|
};
|
|
17
|
+
/** The standard framed-overlay mount every picker here uses. */
|
|
18
|
+
function mountPicker(tui, theme, panel) {
|
|
19
|
+
// The framed overlay adds 4 rows (borders + spacers) on top of the table
|
|
20
|
+
// (title + header + rule + rows + footer); the 75% cap keeps the bottom
|
|
21
|
+
// border intact on small terminals.
|
|
22
|
+
return tui.showOverlay(wrapFramedOverlay(theme, panel), { width: '80%', maxHeight: '75%' });
|
|
23
|
+
}
|
|
24
|
+
/** Columns of a label + description table: fitted label column, flex description. */
|
|
25
|
+
function labelDescriptionColumns(title, labels, cap = 28) {
|
|
26
|
+
return [
|
|
27
|
+
{ key: 'label', title, width: fitColumnWidth(title, labels, cap) },
|
|
28
|
+
{ key: 'description', title: 'Description', flex: true },
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
/** renderCell for a `{ value, label, description }` row keyed by column. */
|
|
32
|
+
function itemCell(row, column) {
|
|
33
|
+
return column.key === 'description' ? row.description ?? '' : row.label;
|
|
34
|
+
}
|
|
16
35
|
/**
|
|
17
|
-
* Run the reasoning effort
|
|
36
|
+
* Run the reasoning effort table overlay over the given efforts. Resolves
|
|
18
37
|
* with the chosen effort (`'default'` meaning no override), or `undefined`
|
|
19
38
|
* when cancelled. The row matching `selectedEffort` is preselected when
|
|
20
39
|
* present. `afterShow` runs once the overlay is up (used by the two-stage
|
|
@@ -22,33 +41,34 @@ const DEFAULT_EFFORT_ITEM = {
|
|
|
22
41
|
* focus returns to `restoreFocus` on close.
|
|
23
42
|
*/
|
|
24
43
|
export function openEffortPicker(tui, theme, efforts, selectedEffort, restoreFocus, afterShow) {
|
|
25
|
-
const
|
|
26
|
-
|
|
44
|
+
const rows = [
|
|
45
|
+
DEFAULT_EFFORT_ROW,
|
|
27
46
|
...efforts.map(effort => ({
|
|
28
47
|
value: effort.id,
|
|
29
48
|
label: effort.name,
|
|
30
|
-
|
|
49
|
+
description: effort.description ?? '',
|
|
31
50
|
})),
|
|
32
51
|
];
|
|
33
52
|
return new Promise(resolve => {
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
53
|
+
const preselect = selectedEffort === undefined
|
|
54
|
+
? undefined
|
|
55
|
+
: rows.findIndex(row => row.value === selectedEffort);
|
|
56
|
+
const list = new TablePanel(theme, {
|
|
57
|
+
title: '● Reasoning effort',
|
|
58
|
+
columns: labelDescriptionColumns('Effort', rows.map(row => row.label), 24),
|
|
59
|
+
rows,
|
|
60
|
+
renderCell: itemCell,
|
|
61
|
+
preselect: preselect !== undefined && preselect >= 0 ? preselect : undefined,
|
|
62
|
+
onSelect: row => finish(row.value),
|
|
63
|
+
onCancel: () => finish(undefined),
|
|
64
|
+
});
|
|
65
|
+
const overlay = mountPicker(tui, theme, list);
|
|
44
66
|
afterShow?.();
|
|
45
|
-
|
|
67
|
+
function finish(effort) {
|
|
46
68
|
overlay.hide();
|
|
47
69
|
restoreFocus();
|
|
48
70
|
resolve(effort === undefined ? undefined : { effort });
|
|
49
|
-
}
|
|
50
|
-
list.onSelect = item => finish(item.value);
|
|
51
|
-
list.onCancel = () => finish(undefined);
|
|
71
|
+
}
|
|
52
72
|
});
|
|
53
73
|
}
|
|
54
74
|
/**
|
|
@@ -77,7 +97,7 @@ export async function pickEffort(ctx, tui, theme, current, restoreFocus) {
|
|
|
77
97
|
return { kind: 'effort', effort: picked.effort };
|
|
78
98
|
}
|
|
79
99
|
/** Theme preference rows of the picker, matching the settings schema vocabulary. */
|
|
80
|
-
const
|
|
100
|
+
const THEME_ROWS = [
|
|
81
101
|
{ value: 'auto', label: 'auto (terminal detection)', description: 'follow the terminal light/dark signal' },
|
|
82
102
|
{ value: 'light', label: 'light', description: 'GitHub light palette' },
|
|
83
103
|
{ value: 'dark', label: 'dark', description: 'GitHub dark palette' },
|
|
@@ -89,19 +109,21 @@ const THEME_ITEMS = [
|
|
|
89
109
|
*/
|
|
90
110
|
export function pickTheme(tui, theme, current, restoreFocus) {
|
|
91
111
|
return new Promise(resolve => {
|
|
92
|
-
const list = new
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
112
|
+
const list = new TablePanel(theme, {
|
|
113
|
+
title: '● Theme',
|
|
114
|
+
columns: labelDescriptionColumns('Theme', THEME_ROWS.map(row => row.label)),
|
|
115
|
+
rows: THEME_ROWS,
|
|
116
|
+
renderCell: itemCell,
|
|
117
|
+
preselect: THEME_ROWS.findIndex(row => row.value === current),
|
|
118
|
+
onSelect: row => finish(row.value),
|
|
119
|
+
onCancel: () => finish(undefined),
|
|
120
|
+
});
|
|
121
|
+
const overlay = mountPicker(tui, theme, list);
|
|
122
|
+
function finish(picked) {
|
|
99
123
|
overlay.hide();
|
|
100
124
|
restoreFocus();
|
|
101
125
|
resolve(picked);
|
|
102
|
-
}
|
|
103
|
-
list.onSelect = item => finish(item.value);
|
|
104
|
-
list.onCancel = () => finish(undefined);
|
|
126
|
+
}
|
|
105
127
|
});
|
|
106
128
|
}
|
|
107
129
|
/**
|
|
@@ -117,16 +139,20 @@ export function pickPermission(ctx, tui, theme, current, restoreFocus) {
|
|
|
117
139
|
return Promise.resolve(undefined);
|
|
118
140
|
const items = permissionItems(presets, current);
|
|
119
141
|
return new Promise((resolve, reject) => {
|
|
120
|
-
const list = new
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
142
|
+
const list = new TablePanel(theme, {
|
|
143
|
+
title: '● Permission preset',
|
|
144
|
+
columns: labelDescriptionColumns('Preset', items.map(item => item.label)),
|
|
145
|
+
rows: items,
|
|
146
|
+
renderCell: itemCell,
|
|
147
|
+
preselect: current === undefined
|
|
148
|
+
? undefined
|
|
149
|
+
: Math.max(0, items.findIndex(item => item.value === current)),
|
|
150
|
+
onSelect: item => finish(item.value),
|
|
151
|
+
onCancel: () => finish(undefined),
|
|
152
|
+
});
|
|
127
153
|
let overlay;
|
|
128
154
|
try {
|
|
129
|
-
overlay = tui
|
|
155
|
+
overlay = mountPicker(tui, theme, list);
|
|
130
156
|
}
|
|
131
157
|
catch (error) {
|
|
132
158
|
// Never strand the keyboard on a half-mounted picker: the rejection
|
|
@@ -136,13 +162,11 @@ export function pickPermission(ctx, tui, theme, current, restoreFocus) {
|
|
|
136
162
|
reject(error);
|
|
137
163
|
return;
|
|
138
164
|
}
|
|
139
|
-
|
|
165
|
+
function finish(picked) {
|
|
140
166
|
overlay.hide();
|
|
141
167
|
restoreFocus();
|
|
142
168
|
resolve(picked);
|
|
143
|
-
}
|
|
144
|
-
list.onSelect = item => finish(item.value);
|
|
145
|
-
list.onCancel = () => finish(undefined);
|
|
169
|
+
}
|
|
146
170
|
});
|
|
147
171
|
}
|
|
148
172
|
/**
|
|
@@ -167,26 +191,29 @@ export async function pickModel(ctx, tui, theme, current, restoreFocus) {
|
|
|
167
191
|
}));
|
|
168
192
|
if (models.length === 0)
|
|
169
193
|
return undefined;
|
|
170
|
-
const key = (m) => `${m.provider}/${m.id}`;
|
|
171
|
-
const items = models.map(model => ({
|
|
172
|
-
value: key(model),
|
|
173
|
-
label: model.name === '' ? model.id : model.name,
|
|
174
|
-
description: model.provider,
|
|
175
|
-
}));
|
|
176
194
|
return new Promise(resolve => {
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
195
|
+
const columns = [
|
|
196
|
+
{ key: 'model', title: 'Model', flex: true },
|
|
197
|
+
{ key: 'provider', title: 'Provider', width: fitColumnWidth('Provider', models.map(model => model.provider), 18) },
|
|
198
|
+
];
|
|
199
|
+
const list = new TablePanel(theme, {
|
|
200
|
+
title: '● Model',
|
|
201
|
+
columns,
|
|
202
|
+
rows: models,
|
|
203
|
+
renderCell: (model, column) => (column.key === 'provider' ? model.provider : model.name === '' ? model.id : model.name),
|
|
204
|
+
preselect: Math.max(0, models.findIndex(model => model.provider === current?.provider && model.id === current?.model)),
|
|
205
|
+
onSelect: model => settle(model),
|
|
206
|
+
onCancel: () => settle(undefined),
|
|
207
|
+
});
|
|
208
|
+
const overlay = mountPicker(tui, theme, list);
|
|
209
|
+
// Enter settles stage 1 once; while the model info resolves (stage 2 not
|
|
210
|
+
// up yet), a stray Esc or a second Enter must not run two concurrent
|
|
211
|
+
// stage-2s — settle guards itself.
|
|
212
|
+
let settled = false;
|
|
213
|
+
const settle = (picked) => {
|
|
214
|
+
if (settled)
|
|
215
|
+
return;
|
|
216
|
+
settled = true;
|
|
190
217
|
if (picked === undefined) {
|
|
191
218
|
overlay.hide();
|
|
192
219
|
restoreFocus();
|
|
@@ -255,10 +282,6 @@ export async function pickModel(ctx, tui, theme, current, restoreFocus) {
|
|
|
255
282
|
}
|
|
256
283
|
resolve({ provider: picked.provider, model: picked.id, reasoningEffort: chosen.effort });
|
|
257
284
|
};
|
|
258
|
-
list.onSelect = item => {
|
|
259
|
-
finish(models.find(model => key(model) === item.value));
|
|
260
|
-
};
|
|
261
|
-
list.onCancel = () => finish(undefined);
|
|
262
285
|
});
|
|
263
286
|
}
|
|
264
287
|
/**
|
|
@@ -284,29 +307,33 @@ export async function pickSkill(ctx, tui, theme, agent, restoreFocus) {
|
|
|
284
307
|
}
|
|
285
308
|
if (userSkills.length === 0)
|
|
286
309
|
return undefined;
|
|
287
|
-
const
|
|
310
|
+
const rows = userSkills.map(skill => ({
|
|
288
311
|
value: skill.name,
|
|
289
312
|
label: skill.name,
|
|
290
313
|
description: skill.description === '' ? undefined : skill.description,
|
|
291
314
|
}));
|
|
292
315
|
return new Promise(resolve => {
|
|
293
|
-
const list = new
|
|
294
|
-
|
|
316
|
+
const list = new TablePanel(theme, {
|
|
317
|
+
title: '● Skill',
|
|
318
|
+
columns: labelDescriptionColumns('Skill', rows.map(row => row.label)),
|
|
319
|
+
rows,
|
|
320
|
+
renderCell: itemCell,
|
|
321
|
+
onSelect: row => finish(row.value),
|
|
322
|
+
onCancel: () => finish(undefined),
|
|
323
|
+
});
|
|
295
324
|
let overlay;
|
|
296
325
|
try {
|
|
297
|
-
overlay = tui
|
|
326
|
+
overlay = mountPicker(tui, theme, list);
|
|
298
327
|
}
|
|
299
328
|
catch (error) {
|
|
300
329
|
restoreFocus();
|
|
301
330
|
throw error;
|
|
302
331
|
}
|
|
303
|
-
|
|
332
|
+
function finish(picked) {
|
|
304
333
|
overlay.hide();
|
|
305
334
|
restoreFocus();
|
|
306
335
|
resolve(picked);
|
|
307
|
-
}
|
|
308
|
-
list.onSelect = item => finish(item.value);
|
|
309
|
-
list.onCancel = () => finish(undefined);
|
|
336
|
+
}
|
|
310
337
|
});
|
|
311
338
|
}
|
|
312
339
|
//# sourceMappingURL=selectors.js.map
|
package/lib/selectors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.js","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selectors.js","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
|
package/lib/sessions.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Session TUI overlays: the `/session` info panel and the `/resume`
|
|
3
3
|
* persisted-session picker — terminal counterparts of the web surface's
|
|
4
|
-
* session management.
|
|
5
|
-
*
|
|
4
|
+
* session management. The picker is the FW table (TablePanel in a framed
|
|
5
|
+
* overlay + `restoreFocus` on close); the info panel is a one-shot
|
|
6
6
|
* read-only component in the style of settings' ReadOnlyViewer.
|
|
7
7
|
*/
|
|
8
8
|
import type { Context } from '@deepseek-ai/cordis';
|
package/lib/sessions.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Session TUI overlays: the `/session` info panel and the `/resume`
|
|
3
3
|
* persisted-session picker — terminal counterparts of the web surface's
|
|
4
|
-
* session management.
|
|
5
|
-
*
|
|
4
|
+
* session management. The picker is the FW table (TablePanel in a framed
|
|
5
|
+
* overlay + `restoreFocus` on close); the info panel is a one-shot
|
|
6
6
|
* read-only component in the style of settings' ReadOnlyViewer.
|
|
7
7
|
*/
|
|
8
|
-
import { getKeybindings
|
|
8
|
+
import { getKeybindings } from '@earendil-works/pi-tui';
|
|
9
9
|
import { basename } from 'node:path';
|
|
10
10
|
import { wrapFramedOverlay } from "./frame.js";
|
|
11
|
+
import { fitColumnWidth, TablePanel } from "./panels.js";
|
|
11
12
|
import { ansiFg, BOLD, RESET } from "./theme/index.js";
|
|
12
13
|
import { clipToWidth, visibleWidth } from "./text.js";
|
|
13
14
|
/** Label column width for the key-value rows (longest: "cache read/write"). */
|
|
@@ -236,33 +237,42 @@ export async function pickPersistedSession(ctx, tui, theme, excludeSessionId, re
|
|
|
236
237
|
// rows are distinguishable at a glance; older ones fall back to the header
|
|
237
238
|
// label (cwd + short id).
|
|
238
239
|
const previews = await loadSessionPreviews(persistence, candidates.slice(0, PREVIEW_SESSION_CAP).map(header => header.id));
|
|
239
|
-
const
|
|
240
|
+
const rows = candidates.map(header => {
|
|
240
241
|
const id = String(header.id);
|
|
241
242
|
const preview = previews.get(id);
|
|
242
243
|
return {
|
|
243
244
|
value: id,
|
|
244
|
-
|
|
245
|
-
|
|
245
|
+
header,
|
|
246
|
+
session: preview ?? `${basename(header.cwd ?? '?')} · ${clipToWidth(id, 8)}`,
|
|
247
|
+
when: new Date(header.createdAt).toLocaleString(),
|
|
248
|
+
dir: header.cwd ?? 'no cwd',
|
|
246
249
|
};
|
|
247
250
|
});
|
|
248
251
|
return new Promise(resolve => {
|
|
249
|
-
//
|
|
250
|
-
//
|
|
251
|
-
const
|
|
252
|
-
|
|
252
|
+
// The FW picker table: flex preview column, then fitted WHEN/DIR columns
|
|
253
|
+
// (previews are often CJK, so the flex column carries them).
|
|
254
|
+
const columns = [
|
|
255
|
+
{ key: 'session', title: 'Session', flex: true },
|
|
256
|
+
{ key: 'when', title: 'When', width: fitColumnWidth('When', rows.map(row => row.when), 26) },
|
|
257
|
+
{ key: 'dir', title: 'Dir', width: fitColumnWidth('Dir', rows.map(row => row.dir), 28) },
|
|
258
|
+
];
|
|
259
|
+
const list = new TablePanel(theme, {
|
|
260
|
+
title: '● Resume session',
|
|
261
|
+
columns,
|
|
262
|
+
rows,
|
|
263
|
+
renderCell: (row, column) => row[column.key],
|
|
264
|
+
onSelect: row => finish(row.header),
|
|
265
|
+
onCancel: () => finish(undefined),
|
|
266
|
+
});
|
|
253
267
|
// Framed overlay: 13 list rows + 4 frame rows fit inside 75% of 24 rows.
|
|
254
268
|
const overlay = tui.showOverlay(wrapFramedOverlay(theme, list), { width: '80%', maxHeight: '75%' });
|
|
255
|
-
|
|
269
|
+
function finish(picked) {
|
|
256
270
|
overlay.hide();
|
|
257
271
|
restoreFocus();
|
|
258
272
|
resolve(picked === undefined
|
|
259
273
|
? { kind: 'cancelled' }
|
|
260
274
|
: { kind: 'picked', id: picked.id, header: picked });
|
|
261
|
-
}
|
|
262
|
-
list.onSelect = item => {
|
|
263
|
-
finish(candidates.find(header => String(header.id) === item.value));
|
|
264
|
-
};
|
|
265
|
-
list.onCancel = () => finish(undefined);
|
|
275
|
+
}
|
|
266
276
|
});
|
|
267
277
|
}
|
|
268
278
|
//# sourceMappingURL=sessions.js.map
|
package/lib/sessions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
|
package/lib/settings.js
CHANGED
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
import { getPath, nodeAtPath, rehydrateSchema } from "./schema-model.js";
|
|
37
37
|
import { settingsNamespace } from '@deepseek-ai/dsh-settings';
|
|
38
38
|
import { getKeybindings, Input, matchesKey, } from '@earendil-works/pi-tui';
|
|
39
|
-
import { panelThemeFns, SettingsListPanel, ViewerPanel, } from "./panels.js";
|
|
39
|
+
import { columnWidths, MARKER_W, padCell, panelThemeFns, SettingsListPanel, TABLE_SEP, tableHeaderLine, tableRuleLine, ViewerPanel, } from "./panels.js";
|
|
40
40
|
import { ansiFg, BOLD, RESET } from "./theme/index.js";
|
|
41
41
|
import { clipToWidth, visibleWidth } from "./text.js";
|
|
42
42
|
import { wrapFramedOverlay } from "./frame.js";
|
|
43
43
|
import { catalogEntry, deriveKeyRef, directoryProviderEntries, providerProfileFor, providerRowView, unconfiguredCatalogEntries, } from "./provider-catalog.js";
|
|
44
|
-
import { applySkillFrontmatter,
|
|
44
|
+
import { applySkillFrontmatter, clampScrollOffset, clampSkillCursor, filterSkillRows, isPrintableInput, readSkillToggle, skillDisableUpdates, skillEnableUpdates, skillEnabled, skillJumpCursor, skillPanelRowLine, skillToggleEnabled, } from "./skills.js";
|
|
45
45
|
/**
|
|
46
46
|
* Static namespace→category mapping, mirroring the web settings page's
|
|
47
47
|
* client-side slot structure (see the module header): the data plane carries
|
|
@@ -443,10 +443,10 @@ class SkillsPanel {
|
|
|
443
443
|
filterQuery = '';
|
|
444
444
|
/** The overlay renders at `maxHeight` of terminal rows; FramedOverlay adds
|
|
445
445
|
* 4 chrome rows (top border + spacer + bottom spacer + border); the child
|
|
446
|
-
* adds
|
|
447
|
-
* spacer + footer). */
|
|
446
|
+
* adds 7 rows around the skill list (title + spacer + header + rule above,
|
|
447
|
+
* description + spacer + footer below). */
|
|
448
448
|
static FRAME_OVERHEAD = 4;
|
|
449
|
-
static TAIL_ROWS =
|
|
449
|
+
static TAIL_ROWS = 7;
|
|
450
450
|
constructor(tui, theme, onToggle, onExit) {
|
|
451
451
|
this.tui = tui;
|
|
452
452
|
this.theme = theme;
|
|
@@ -492,29 +492,37 @@ class SkillsPanel {
|
|
|
492
492
|
}
|
|
493
493
|
// Calculate how many skill rows fit. The overlay is capped at 80% of
|
|
494
494
|
// terminal rows (SettingsBrowser's maxHeight); FramedOverlay adds 4 chrome
|
|
495
|
-
// rows; the child
|
|
496
|
-
// spacer + footer) after the skill list.
|
|
495
|
+
// rows; the child adds TAIL_ROWS around the skill list (see the constant).
|
|
497
496
|
const maxVisibleRows = this.maxVisibleRows();
|
|
498
497
|
// Ensure the cursor is in the visible window.
|
|
499
498
|
this.scrollToCursor(maxVisibleRows, filtered.length);
|
|
500
499
|
const visibleRows = filtered.slice(this.scrollOffset, this.scrollOffset + maxVisibleRows);
|
|
501
|
-
//
|
|
502
|
-
|
|
500
|
+
// The FW table: ON icon column │ SKILL name (flex). No index column, no
|
|
501
|
+
// state text — ●/○ carries the toggle state, colored on unselected rows.
|
|
502
|
+
const columns = [
|
|
503
|
+
{ key: 'on', title: 'On', width: 2 },
|
|
504
|
+
{ key: 'name', title: 'Skill', flex: true },
|
|
505
|
+
];
|
|
506
|
+
const widths = columnWidths(wrap - MARKER_W, columns);
|
|
507
|
+
lines.push(fns.subtle(clipToWidth(tableHeaderLine(columns, widths), wrap)));
|
|
508
|
+
lines.push(fns.subtle(clipToWidth(tableRuleLine(widths), wrap)));
|
|
509
|
+
// Fixed-width prefix before the separator: marker(2) + icon(2) = 4.
|
|
510
|
+
const prefixCols = 2 + 2;
|
|
503
511
|
for (let vi = 0; vi < visibleRows.length; vi++) {
|
|
504
512
|
const i = this.scrollOffset + vi;
|
|
505
513
|
const row = filtered[i];
|
|
506
514
|
const selected = i === this.cursor;
|
|
507
|
-
// One plain-text row (marker+
|
|
508
|
-
//
|
|
509
|
-
// fixed
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
515
|
+
// One plain-text row (marker + on-icon + separator + padded name),
|
|
516
|
+
// clipped once to width, then colored per fixed-width segment — the
|
|
517
|
+
// prefix is fixed width so slicing the clipped line is column-exact.
|
|
518
|
+
const plain = clipToWidth(skillPanelRowLine(selected, row.enabled, padCell(row.name, widths[1])), width);
|
|
519
|
+
if (selected) {
|
|
520
|
+
lines.push(fns.accent(BOLD + plain + RESET));
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
lines.push(fns[row.enabled ? 'success' : 'subtle'](plain.slice(0, prefixCols))
|
|
524
|
+
+ fns.muted(plain.slice(prefixCols)));
|
|
525
|
+
}
|
|
518
526
|
}
|
|
519
527
|
const sel = filtered[this.cursor];
|
|
520
528
|
if (sel !== undefined && sel.description !== '') {
|