@aiwayds/dsh-tui-pi 0.18.1 → 0.19.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 +12 -11
- package/README.zh.md +7 -3
- package/lib/ask-user.d.ts +90 -15
- package/lib/ask-user.js +283 -46
- package/lib/ask-user.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
pi-style terminal UI for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh) — a plugin suite that turns dsh into a pi-like coding agent experience.
|
|
4
4
|
|
|
5
|
-
**Compatibility:** dsh `0.1.
|
|
6
|
-
|
|
7
|
-
`
|
|
8
|
-
form
|
|
9
|
-
|
|
5
|
+
**Compatibility:** tested against dsh `0.1.1-rc.2`. Slash-command execution goes
|
|
6
|
+
through an `executeCommand()` compat shim (`src/commands.ts`) that probes the
|
|
7
|
+
arity of `dsh-commands`' `execute()` at runtime — supporting both the pre-rc.8
|
|
8
|
+
3-arg form `(agent, line, signal)` and the current 4-arg form
|
|
9
|
+
`(agent, line, images, signal)`, unchanged since `0.1.0-rc.8`. Verified by unit
|
|
10
|
+
tests plus a live tmux e2e smoke.
|
|
10
11
|
|
|
11
12
|
> 中文说明: [README.zh.md](README.zh.md)
|
|
12
13
|
|
|
13
14
|
## Screenshot
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
https://github.com/user-attachments/assets/6a7e00bb-1fd0-4bc5-9070-457f1e9fa54d
|
|
16
17
|
|
|
17
|
-
A live terminal recording of a session — todos, running
|
|
18
|
-
panels and the powerline footer in action.
|
|
19
|
-
asciinema](https://asciinema.org/a/BE212ZO8x1zEZyZn))
|
|
18
|
+
A live terminal recording of a session (MP4, 1.5× speed) — todos, running
|
|
19
|
+
subagents, think/tool panels and the powerline footer in action.
|
|
20
|
+
([Interactive playback on asciinema](https://asciinema.org/a/BE212ZO8x1zEZyZn))
|
|
20
21
|
|
|
21
22
|
### Layout overview
|
|
22
23
|
|
|
@@ -389,7 +390,7 @@ dsh --profile tui # or: dsh-tui-pi (bin shim)
|
|
|
389
390
|
```sh
|
|
390
391
|
pnpm check # tsc --noEmit
|
|
391
392
|
pnpm build # emit lib/
|
|
392
|
-
pnpm test # unit tests, node --test against lib/ (
|
|
393
|
+
pnpm test # unit tests, node --test against lib/ (677 tests, pretest builds)
|
|
393
394
|
```
|
|
394
395
|
|
|
395
396
|
Local type-checking symlinks `node_modules/@deepseek-ai/*` to the installed
|
|
@@ -424,7 +425,7 @@ src/
|
|
|
424
425
|
ask-user.ts Ask User Question overlay: pure state reducers +
|
|
425
426
|
framed overlay UI + ctx.userQuestions provider
|
|
426
427
|
theme/ GitHub light/dark palettes + terminal detection
|
|
427
|
-
test/*.test.mjs unit tests (
|
|
428
|
+
test/*.test.mjs unit tests (677 across 40 files)
|
|
428
429
|
```
|
|
429
430
|
|
|
430
431
|
---
|
package/README.zh.md
CHANGED
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh) 的 pi 风格终端 UI 插件 —— 把 dsh 变成 pi 风格的编码代理体验。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**兼容性**:针对 dsh `0.1.1-rc.2` 测试。斜杠命令执行经过 `executeCommand()`
|
|
6
|
+
兼容 shim(`src/commands.ts`),在运行时探测 `dsh-commands` `execute()` 的参数
|
|
7
|
+
个数——同时支持 rc.8 之前的 3 参形式 `(agent, line, signal)` 与当前的 4 参形式
|
|
8
|
+
`(agent, line, images, signal)`(自 `0.1.0-rc.8` 起未再变化)。经单元测试 +
|
|
9
|
+
tmux 真机冒烟验证。
|
|
6
10
|
|
|
7
11
|
> English version: [README.md](README.md)
|
|
8
12
|
|
|
9
13
|
## 截图
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
https://github.com/user-attachments/assets/6a7e00bb-1fd0-4bc5-9070-457f1e9fa54d
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
真实会话的终端录制(MP4,1.5× 速度)——Todos、运行中的 subagent、思考/工具面板和 powerline footer 一览。([asciinema 交互播放](https://asciinema.org/a/BE212ZO8x1zEZyZn))
|
|
14
18
|
|
|
15
19
|
### 布局总览
|
|
16
20
|
|
package/lib/ask-user.d.ts
CHANGED
|
@@ -7,16 +7,27 @@
|
|
|
7
7
|
* `AskUserQuestionAnswer` envelope back to `dsh-tool-ask-user` as a normal
|
|
8
8
|
* tool result.
|
|
9
9
|
*
|
|
10
|
-
* Layout — one framed overlay, all questions flattened
|
|
10
|
+
* Layout — one framed overlay, all questions flattened (numbered rows, a
|
|
11
|
+
* divider between each question block and its options, and a scroll window
|
|
12
|
+
* so the cursor row is always visible even when the overlay is height-capped):
|
|
11
13
|
*
|
|
12
|
-
* ●
|
|
13
|
-
* Where should we deploy?
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
14
|
+
* ● Questions (2)
|
|
15
|
+
* Fruit Where should we deploy? (header — not selectable)
|
|
16
|
+
* ───────────────────────────── (divider)
|
|
17
|
+
* ▸ 1. staging (cursor marker + per-question number)
|
|
18
|
+
* 2. production
|
|
19
|
+
* red and round (option description, own muted line)
|
|
20
|
+
* 3. Type something. (sentinel row — inline input)
|
|
21
|
+
* Vehicle Pick a vehicle ··· (continues vertically)
|
|
22
|
+
* ⏎ Confirm answers (when ≥ 2 questions, or any multiSelect)
|
|
23
|
+
*
|
|
24
|
+
* The body renders through a scroll window sized from the live terminal
|
|
25
|
+
* height (`askUserMaxVisibleForRows`; falls back to `ASK_USER_MAX_VISIBLE`
|
|
26
|
+
* when the terminal row count is unknown):
|
|
27
|
+
* pi-tui hard-clips overlay tails at `maxHeight`, so without an inner window
|
|
28
|
+
* the last options fall off-screen while the cursor can still reach them
|
|
29
|
+
* ("unselectable" bug). The window slides with the cursor and the footer
|
|
30
|
+
* gains a `(n/m)` position readout while content overflows.
|
|
20
31
|
*
|
|
21
32
|
* Single-question single-select overlay: Enter on an option (or committing a
|
|
22
33
|
* filled sentinel) submits immediately. A multiSelect question — even a lone
|
|
@@ -61,6 +72,26 @@ export declare const SENTINEL_LABEL = "Type something.";
|
|
|
61
72
|
export declare const DECLINE_MESSAGE = "User declined to answer questions.";
|
|
62
73
|
/** Transient hint when Enter lands on an incomplete confirm/submit row. */
|
|
63
74
|
export declare const INCOMPLETE_HINT = "Answer every question first";
|
|
75
|
+
/**
|
|
76
|
+
* Fallback visible body-line cap for the questions/review panes, used only
|
|
77
|
+
* when the terminal row count is unknown (fake TUIs in tests, exotic
|
|
78
|
+
* terminals). Derived for a 24-row terminal (the e2e matrix floor): 80%
|
|
79
|
+
* maxHeight = 19 framed lines − 2 frame borders = 17 content lines, and
|
|
80
|
+
* title(1) + table chrome(3) + 9 body lines + bottom rule + blank + footer
|
|
81
|
+
* = 16, leaving one line of headroom for a hint. The live path derives the
|
|
82
|
+
* window from the real terminal height via `askUserMaxVisibleForRows`.
|
|
83
|
+
*/
|
|
84
|
+
export declare const ASK_USER_MAX_VISIBLE = 9;
|
|
85
|
+
/**
|
|
86
|
+
* Derive the scroll-window size from the terminal height so the window grows
|
|
87
|
+
* with the terminal instead of pinning to the conservative 24-row budget:
|
|
88
|
+
* pi-tui hard-clips the framed overlay at its resolved maxHeight, so body
|
|
89
|
+
* lines beyond `budget − ASK_USER_VIEW_OVERHEAD` would be invisible anyway.
|
|
90
|
+
* At the 24-row e2e floor this yields exactly ASK_USER_MAX_VISIBLE (9);
|
|
91
|
+
* larger terminals scale up proportionally. Without a usable row count it
|
|
92
|
+
* degrades to ASK_USER_MAX_VISIBLE.
|
|
93
|
+
*/
|
|
94
|
+
export declare function askUserMaxVisibleForRows(termRows: number | undefined, maxHeight?: AskUserPanelDeps['maxHeight']): number;
|
|
64
95
|
/** A row in the multi-question view. */
|
|
65
96
|
export interface FlatRow {
|
|
66
97
|
kind: 'question-header' | 'option' | 'sentinel' | 'confirm';
|
|
@@ -80,7 +111,14 @@ export interface PendingAnswer {
|
|
|
80
111
|
/** Free-text answer from the sentinel path. Optional — set only when the user typed. */
|
|
81
112
|
custom?: string;
|
|
82
113
|
}
|
|
83
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Whole-state of one AskUser overlay. All setters are pure reducers — with
|
|
116
|
+
* ONE deliberate exception: the render pass writes the clamped scroll offset
|
|
117
|
+
* back into `questionsScroll`/`reviewScroll` (see `clampScrollWindow`). The
|
|
118
|
+
* clamp depends on the rendered body height, which only exists at render
|
|
119
|
+
* time; persisting it here makes navigation slide smoothly instead of
|
|
120
|
+
* snapping, and direct render calls simply start from offset 0.
|
|
121
|
+
*/
|
|
84
122
|
export interface AskUserState {
|
|
85
123
|
questions: readonly AskUserQuestionItem[];
|
|
86
124
|
/** Per-question pending answer. */
|
|
@@ -101,6 +139,10 @@ export interface AskUserState {
|
|
|
101
139
|
cancelHint: boolean;
|
|
102
140
|
/** Transient "you can't do that yet" hint (e.g. Enter on an incomplete confirm row). Cleared by any navigation. */
|
|
103
141
|
attentionHint: string | null;
|
|
142
|
+
/** Questions-pane scroll offset in rendered body lines (clamped by the render pass, see `clampScrollWindow`). */
|
|
143
|
+
questionsScroll: number;
|
|
144
|
+
/** Review-pane scroll offset in rendered rows (same mechanism). */
|
|
145
|
+
reviewScroll: number;
|
|
104
146
|
}
|
|
105
147
|
/** Initial state for a `questions` payload — defaults: cursor on Q0/option-0, no edit, no Esc history. */
|
|
106
148
|
export declare function initialState(questions: readonly AskUserQuestionItem[]): AskUserState;
|
|
@@ -112,7 +154,14 @@ export declare function setCustomAnswer(state: AskUserState, questionIndex: numb
|
|
|
112
154
|
export declare function patchCustomInput(state: AskUserState, questionIndex: number, mutator: (current: string) => string): AskUserState;
|
|
113
155
|
/** Enter inline-edit mode for a question (sentinel row got pressed). */
|
|
114
156
|
export declare function enterCustomEdit(state: AskUserState, questionIndex: number): AskUserState;
|
|
115
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Leave inline-edit mode; commit when `commit === true` and the buffer is
|
|
159
|
+
* non-empty. Intentionally NEVER triggers auto-submit on its own: submission
|
|
160
|
+
* decisions live exclusively with the callers (`commitCustomAnswer` after an
|
|
161
|
+
* Enter commit, plain navigation after the ↑↓ arrow-exit path), so exiting
|
|
162
|
+
* the editor — especially via arrow keys mid-multi-question flow — can never
|
|
163
|
+
* settle the overlay as a side effect.
|
|
164
|
+
*/
|
|
116
165
|
export declare function exitCustomEdit(state: AskUserState, commit: boolean): AskUserState;
|
|
117
166
|
/**
|
|
118
167
|
* Double-Esc state machine: 1st press arms; 2nd within the window fires
|
|
@@ -134,6 +183,32 @@ export declare function buildRowList(questions: readonly AskUserQuestionItem[],
|
|
|
134
183
|
export declare function nextSelectableIndex(rows: readonly FlatRow[], from: number, direction: 1 | -1): number;
|
|
135
184
|
/** True when every question has at least one selected option or a non-empty custom answer. */
|
|
136
185
|
export declare function allQuestionsAnswered(state: AskUserState): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Fold newlines (and the whitespace around them) into single spaces so a
|
|
188
|
+
* label can never break a table row into two rendered lines. Width clipping
|
|
189
|
+
* still happens later via `clipToWidth`.
|
|
190
|
+
*/
|
|
191
|
+
export declare function foldText(text: string): string;
|
|
192
|
+
/**
|
|
193
|
+
* The scroll offset that keeps `cursor` inside `[offset, offset + visibleRows)`
|
|
194
|
+
* for a body of `length` rendered lines — same contract as skills.ts's
|
|
195
|
+
* `clampScrollOffset`, kept local so ask-user scrolling is self-contained.
|
|
196
|
+
* Pure; an empty body or non-positive window pins to 0.
|
|
197
|
+
*/
|
|
198
|
+
export declare function clampScrollWindow(cursor: number, visibleRows: number, length: number, currentOffset: number): number;
|
|
199
|
+
/**
|
|
200
|
+
* 1-based per-question number of the selectable row at `index`: options count
|
|
201
|
+
* `1..N` inside their question and the sentinel continues after them (`N+1`).
|
|
202
|
+
* Header rows and the confirm pseudo-row are unnumbered (null). Pure so both
|
|
203
|
+
* the renderer and tests share one numbering vocabulary.
|
|
204
|
+
*/
|
|
205
|
+
export declare function rowNumber(rows: readonly FlatRow[], index: number): number | null;
|
|
206
|
+
/**
|
|
207
|
+
* Inverse of `rowNumber` for the digit quick-pick: the index of the `n`-th
|
|
208
|
+
* numbered row belonging to question `qi`, or -1 when out of range. Rows are
|
|
209
|
+
* scanned in display order, so options come before the question's sentinel.
|
|
210
|
+
*/
|
|
211
|
+
export declare function rowIndexForNumber(rows: readonly FlatRow[], qi: number, n: number): number;
|
|
137
212
|
/**
|
|
138
213
|
* Whether the overlay needs an explicit `⏎ Confirm answers` row: any
|
|
139
214
|
* multi-question layout, plus a lone multiSelect question — multiSelect can
|
|
@@ -153,10 +228,10 @@ export declare function canAutoSubmit(state: AskUserState): boolean;
|
|
|
153
228
|
* later question is already answered (caller keeps the current cursor).
|
|
154
229
|
*/
|
|
155
230
|
export declare function nextUnansweredRow(rows: readonly FlatRow[], perQuestion: readonly PendingAnswer[], answeredQi: number): number;
|
|
156
|
-
/** Render the questions pane as a flat table line list. */
|
|
157
|
-
export declare function renderQuestionsView(theme: TuiTheme, state: AskUserState, width: number): string[];
|
|
158
|
-
/** Render the review page for multi-question overlays. */
|
|
159
|
-
export declare function renderReviewView(theme: TuiTheme, state: AskUserState, width: number): string[];
|
|
231
|
+
/** Render the questions pane as a flat table line list behind a scroll window. */
|
|
232
|
+
export declare function renderQuestionsView(theme: TuiTheme, state: AskUserState, width: number, maxVisible?: number): string[];
|
|
233
|
+
/** Render the review page for multi-question overlays (scroll-windowed). */
|
|
234
|
+
export declare function renderReviewView(theme: TuiTheme, state: AskUserState, width: number, maxVisible?: number): string[];
|
|
160
235
|
/** Options for assembling the panel + provider function. */
|
|
161
236
|
export interface AskUserPanelDeps {
|
|
162
237
|
tui: TUI;
|
package/lib/ask-user.js
CHANGED
|
@@ -7,16 +7,27 @@
|
|
|
7
7
|
* `AskUserQuestionAnswer` envelope back to `dsh-tool-ask-user` as a normal
|
|
8
8
|
* tool result.
|
|
9
9
|
*
|
|
10
|
-
* Layout — one framed overlay, all questions flattened
|
|
10
|
+
* Layout — one framed overlay, all questions flattened (numbered rows, a
|
|
11
|
+
* divider between each question block and its options, and a scroll window
|
|
12
|
+
* so the cursor row is always visible even when the overlay is height-capped):
|
|
11
13
|
*
|
|
12
|
-
* ●
|
|
13
|
-
* Where should we deploy?
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
14
|
+
* ● Questions (2)
|
|
15
|
+
* Fruit Where should we deploy? (header — not selectable)
|
|
16
|
+
* ───────────────────────────── (divider)
|
|
17
|
+
* ▸ 1. staging (cursor marker + per-question number)
|
|
18
|
+
* 2. production
|
|
19
|
+
* red and round (option description, own muted line)
|
|
20
|
+
* 3. Type something. (sentinel row — inline input)
|
|
21
|
+
* Vehicle Pick a vehicle ··· (continues vertically)
|
|
22
|
+
* ⏎ Confirm answers (when ≥ 2 questions, or any multiSelect)
|
|
23
|
+
*
|
|
24
|
+
* The body renders through a scroll window sized from the live terminal
|
|
25
|
+
* height (`askUserMaxVisibleForRows`; falls back to `ASK_USER_MAX_VISIBLE`
|
|
26
|
+
* when the terminal row count is unknown):
|
|
27
|
+
* pi-tui hard-clips overlay tails at `maxHeight`, so without an inner window
|
|
28
|
+
* the last options fall off-screen while the cursor can still reach them
|
|
29
|
+
* ("unselectable" bug). The window slides with the cursor and the footer
|
|
30
|
+
* gains a `(n/m)` position readout while content overflows.
|
|
20
31
|
*
|
|
21
32
|
* Single-question single-select overlay: Enter on an option (or committing a
|
|
22
33
|
* filled sentinel) submits immediately. A multiSelect question — even a lone
|
|
@@ -65,13 +76,66 @@ export const DECLINE_MESSAGE = 'User declined to answer questions.';
|
|
|
65
76
|
export const INCOMPLETE_HINT = 'Answer every question first';
|
|
66
77
|
/** Mark left of a question a custom input wrote text into. */
|
|
67
78
|
const CUSTOM_MARK = '✎ ';
|
|
79
|
+
/**
|
|
80
|
+
* Fallback visible body-line cap for the questions/review panes, used only
|
|
81
|
+
* when the terminal row count is unknown (fake TUIs in tests, exotic
|
|
82
|
+
* terminals). Derived for a 24-row terminal (the e2e matrix floor): 80%
|
|
83
|
+
* maxHeight = 19 framed lines − 2 frame borders = 17 content lines, and
|
|
84
|
+
* title(1) + table chrome(3) + 9 body lines + bottom rule + blank + footer
|
|
85
|
+
* = 16, leaving one line of headroom for a hint. The live path derives the
|
|
86
|
+
* window from the real terminal height via `askUserMaxVisibleForRows`.
|
|
87
|
+
*/
|
|
88
|
+
export const ASK_USER_MAX_VISIBLE = 9;
|
|
89
|
+
/**
|
|
90
|
+
* Framed-line overhead around the scroll-window body: 2 frame borders +
|
|
91
|
+
* title(1) + table chrome rules/header(3) + bottom rule(1) + blank(1) +
|
|
92
|
+
* footer(1) = 9 fixed lines, plus 1 line of headroom for a transient hint.
|
|
93
|
+
*/
|
|
94
|
+
const ASK_USER_VIEW_OVERHEAD = 10;
|
|
95
|
+
/**
|
|
96
|
+
* Mirror of pi-tui's overlay size resolution (`parseSizeValue`, tui.js):
|
|
97
|
+
* numbers pass through floored, `"N%"` floors to N% of the terminal height,
|
|
98
|
+
* anything else is unusable → undefined (caller falls back).
|
|
99
|
+
*/
|
|
100
|
+
function overlayMaxHeightRows(maxHeight, termRows) {
|
|
101
|
+
if (typeof maxHeight === 'number')
|
|
102
|
+
return Math.floor(maxHeight);
|
|
103
|
+
if (termRows === undefined || !Number.isFinite(termRows) || termRows <= 0)
|
|
104
|
+
return undefined;
|
|
105
|
+
if (typeof maxHeight === 'string') {
|
|
106
|
+
const match = maxHeight.match(/^(\d+(?:\.\d+)?)%$/);
|
|
107
|
+
if (match !== null)
|
|
108
|
+
return Math.floor((termRows * parseFloat(match[1])) / 100);
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
return Math.floor(termRows * 0.8);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Derive the scroll-window size from the terminal height so the window grows
|
|
115
|
+
* with the terminal instead of pinning to the conservative 24-row budget:
|
|
116
|
+
* pi-tui hard-clips the framed overlay at its resolved maxHeight, so body
|
|
117
|
+
* lines beyond `budget − ASK_USER_VIEW_OVERHEAD` would be invisible anyway.
|
|
118
|
+
* At the 24-row e2e floor this yields exactly ASK_USER_MAX_VISIBLE (9);
|
|
119
|
+
* larger terminals scale up proportionally. Without a usable row count it
|
|
120
|
+
* degrades to ASK_USER_MAX_VISIBLE.
|
|
121
|
+
*/
|
|
122
|
+
export function askUserMaxVisibleForRows(termRows, maxHeight = '80%') {
|
|
123
|
+
const budget = overlayMaxHeightRows(maxHeight, termRows);
|
|
124
|
+
if (budget === undefined)
|
|
125
|
+
return ASK_USER_MAX_VISIBLE;
|
|
126
|
+
return Math.max(1, budget - ASK_USER_VIEW_OVERHEAD);
|
|
127
|
+
}
|
|
68
128
|
// ---------------------------------------- pure functions (testable) --
|
|
69
129
|
/** Initial state for a `questions` payload — defaults: cursor on Q0/option-0, no edit, no Esc history. */
|
|
70
130
|
export function initialState(questions) {
|
|
131
|
+
// Snap the starting cursor onto the first SELECTABLE row: index 0 is the
|
|
132
|
+
// question header (unselectable), and a cursor parked there would render
|
|
133
|
+
// no ▸ marker at all and ignore Enter/digits.
|
|
134
|
+
const rows = buildRowList(questions, questions.map(() => ({ selected: [] })));
|
|
71
135
|
return {
|
|
72
136
|
questions,
|
|
73
137
|
perQuestion: questions.map(() => ({ selected: [] })),
|
|
74
|
-
cursorIndex: 0,
|
|
138
|
+
cursorIndex: nextSelectableIndex(rows, 0, 1),
|
|
75
139
|
customInputs: questions.map(() => null),
|
|
76
140
|
customEditingFor: null,
|
|
77
141
|
phase: 'questions',
|
|
@@ -79,6 +143,8 @@ export function initialState(questions) {
|
|
|
79
143
|
lastEscAt: null,
|
|
80
144
|
cancelHint: false,
|
|
81
145
|
attentionHint: null,
|
|
146
|
+
questionsScroll: 0,
|
|
147
|
+
reviewScroll: 0,
|
|
82
148
|
};
|
|
83
149
|
}
|
|
84
150
|
/** Toggle/add an option. Single-select replaces; multi-select toggles membership. */
|
|
@@ -125,7 +191,14 @@ export function enterCustomEdit(state, questionIndex) {
|
|
|
125
191
|
customInputs[questionIndex] = '';
|
|
126
192
|
return { ...state, customEditingFor: questionIndex, customInputs, cancelHint: false };
|
|
127
193
|
}
|
|
128
|
-
/**
|
|
194
|
+
/**
|
|
195
|
+
* Leave inline-edit mode; commit when `commit === true` and the buffer is
|
|
196
|
+
* non-empty. Intentionally NEVER triggers auto-submit on its own: submission
|
|
197
|
+
* decisions live exclusively with the callers (`commitCustomAnswer` after an
|
|
198
|
+
* Enter commit, plain navigation after the ↑↓ arrow-exit path), so exiting
|
|
199
|
+
* the editor — especially via arrow keys mid-multi-question flow — can never
|
|
200
|
+
* settle the overlay as a side effect.
|
|
201
|
+
*/
|
|
129
202
|
export function exitCustomEdit(state, commit) {
|
|
130
203
|
if (state.customEditingFor === null)
|
|
131
204
|
return state;
|
|
@@ -240,6 +313,66 @@ export function nextSelectableIndex(rows, from, direction) {
|
|
|
240
313
|
export function allQuestionsAnswered(state) {
|
|
241
314
|
return state.perQuestion.every(answer => answer.selected.length > 0 || (answer.custom !== undefined && answer.custom.trim() !== ''));
|
|
242
315
|
}
|
|
316
|
+
/**
|
|
317
|
+
* Fold newlines (and the whitespace around them) into single spaces so a
|
|
318
|
+
* label can never break a table row into two rendered lines. Width clipping
|
|
319
|
+
* still happens later via `clipToWidth`.
|
|
320
|
+
*/
|
|
321
|
+
export function foldText(text) {
|
|
322
|
+
return text.replace(/\s*[\r\n]+\s*/g, ' ');
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* The scroll offset that keeps `cursor` inside `[offset, offset + visibleRows)`
|
|
326
|
+
* for a body of `length` rendered lines — same contract as skills.ts's
|
|
327
|
+
* `clampScrollOffset`, kept local so ask-user scrolling is self-contained.
|
|
328
|
+
* Pure; an empty body or non-positive window pins to 0.
|
|
329
|
+
*/
|
|
330
|
+
export function clampScrollWindow(cursor, visibleRows, length, currentOffset) {
|
|
331
|
+
if (length <= 0 || visibleRows <= 0)
|
|
332
|
+
return 0;
|
|
333
|
+
if (cursor < currentOffset)
|
|
334
|
+
return cursor;
|
|
335
|
+
if (cursor >= currentOffset + visibleRows)
|
|
336
|
+
return cursor - visibleRows + 1;
|
|
337
|
+
return currentOffset;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* 1-based per-question number of the selectable row at `index`: options count
|
|
341
|
+
* `1..N` inside their question and the sentinel continues after them (`N+1`).
|
|
342
|
+
* Header rows and the confirm pseudo-row are unnumbered (null). Pure so both
|
|
343
|
+
* the renderer and tests share one numbering vocabulary.
|
|
344
|
+
*/
|
|
345
|
+
export function rowNumber(rows, index) {
|
|
346
|
+
const row = rows[index];
|
|
347
|
+
if (row === undefined || !row.selectable || row.kind === 'confirm')
|
|
348
|
+
return null;
|
|
349
|
+
let n = 0;
|
|
350
|
+
for (let i = 0; i <= index; i++) {
|
|
351
|
+
const r = rows[i];
|
|
352
|
+
if (r !== undefined && r.selectable && r.kind !== 'confirm' && r.questionIndex === row.questionIndex)
|
|
353
|
+
n++;
|
|
354
|
+
}
|
|
355
|
+
return n;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Inverse of `rowNumber` for the digit quick-pick: the index of the `n`-th
|
|
359
|
+
* numbered row belonging to question `qi`, or -1 when out of range. Rows are
|
|
360
|
+
* scanned in display order, so options come before the question's sentinel.
|
|
361
|
+
*/
|
|
362
|
+
export function rowIndexForNumber(rows, qi, n) {
|
|
363
|
+
if (!Number.isInteger(n) || n < 1)
|
|
364
|
+
return -1;
|
|
365
|
+
let seen = 0;
|
|
366
|
+
for (let i = 0; i < rows.length; i++) {
|
|
367
|
+
const row = rows[i];
|
|
368
|
+
if (row === undefined || !row.selectable || row.kind === 'confirm' || row.questionIndex !== qi)
|
|
369
|
+
continue;
|
|
370
|
+
seen++;
|
|
371
|
+
if (seen === n)
|
|
372
|
+
return i;
|
|
373
|
+
}
|
|
374
|
+
return -1;
|
|
375
|
+
}
|
|
243
376
|
/**
|
|
244
377
|
* Whether the overlay needs an explicit `⏎ Confirm answers` row: any
|
|
245
378
|
* multi-question layout, plus a lone multiSelect question — multiSelect can
|
|
@@ -310,8 +443,8 @@ function rowStatusText(kind, state, row, isMulti) {
|
|
|
310
443
|
return allQuestionsAnswered(state) ? '[✓]' : '[—]';
|
|
311
444
|
return '';
|
|
312
445
|
}
|
|
313
|
-
/** Render the questions pane as a flat table line list. */
|
|
314
|
-
export function renderQuestionsView(theme, state, width) {
|
|
446
|
+
/** Render the questions pane as a flat table line list behind a scroll window. */
|
|
447
|
+
export function renderQuestionsView(theme, state, width, maxVisible = ASK_USER_MAX_VISIBLE) {
|
|
315
448
|
const fns = panelThemeFns(theme);
|
|
316
449
|
const wrap = Math.max(2, width - 2);
|
|
317
450
|
const title = state.questions.length === 1
|
|
@@ -325,65 +458,111 @@ export function renderQuestionsView(theme, state, width) {
|
|
|
325
458
|
}
|
|
326
459
|
const columns = QUESTIONS_COLUMNS();
|
|
327
460
|
const widths = columnWidths(wrap - MARKER_W, columns);
|
|
461
|
+
// Global position among SELECTABLE rows (headers are never counted), so the
|
|
462
|
+
// questions pane and the review page share one (n/m) vocabulary and neither
|
|
463
|
+
// clashes with the per-question numbering printed on the rows themselves.
|
|
464
|
+
let selectableTotal = 0;
|
|
465
|
+
let cursorRank = 0;
|
|
466
|
+
rows.forEach((row, i) => {
|
|
467
|
+
if (!row.selectable)
|
|
468
|
+
return;
|
|
469
|
+
selectableTotal += 1;
|
|
470
|
+
if (i <= state.cursorIndex)
|
|
471
|
+
cursorRank = selectableTotal;
|
|
472
|
+
});
|
|
328
473
|
lines.push(fns.subtle(clipToWidth(tableRuleLine(widths, '┬'), wrap)));
|
|
329
474
|
lines.push(fns.subtle(clipToWidth(tableHeaderLine(columns, widths), wrap)));
|
|
330
475
|
lines.push(fns.subtle(clipToWidth(tableRuleLine(widths, '┼'), wrap)));
|
|
476
|
+
// Body lines are collected first because the scroll window slices rendered
|
|
477
|
+
// LINES: option descriptions and header details make line count ≠ row count.
|
|
478
|
+
const visible = Math.max(1, maxVisible);
|
|
479
|
+
const body = [];
|
|
480
|
+
let cursorLine = -1;
|
|
331
481
|
for (let i = 0; i < rows.length; i++) {
|
|
332
482
|
const row = rows[i];
|
|
333
483
|
if (row === undefined)
|
|
334
484
|
continue;
|
|
335
485
|
if (row.kind === 'question-header') {
|
|
336
486
|
// Header rows: full-width title, skip the table columns.
|
|
337
|
-
const text = `${row.label} ${row.description ?? ''}`;
|
|
338
|
-
|
|
339
|
-
|
|
487
|
+
const text = `${foldText(row.label)} ${foldText(row.description ?? '')}`;
|
|
488
|
+
// Clip the plain text FIRST, then wrap it in BOLD — clipToWidth counts
|
|
489
|
+
// SGR fragments as visible columns, so clipping an already-styled
|
|
490
|
+
// string can truncate mid-escape and leak raw ANSI.
|
|
491
|
+
const padded = BOLD + clipToWidth(text, wrap) + RESET;
|
|
492
|
+
body.push(fns.accent(padded));
|
|
340
493
|
// Upstream `detail` is supporting context (mandatory when the question
|
|
341
494
|
// declares an intent) — render it muted below the header, never inside
|
|
342
495
|
// option labels.
|
|
343
496
|
if (row.detail !== undefined && row.detail !== '') {
|
|
344
|
-
|
|
497
|
+
body.push(fns.muted(clipToWidth(foldText(row.detail), wrap)));
|
|
345
498
|
}
|
|
499
|
+
// Visual divider between a question's text and its option list.
|
|
500
|
+
body.push(fns.muted(clipToWidth('─'.repeat(wrap), wrap)));
|
|
346
501
|
continue;
|
|
347
502
|
}
|
|
348
503
|
const isMulti = row.questionIndex >= 0
|
|
349
504
|
? state.questions[row.questionIndex]?.multiSelect === true
|
|
350
505
|
: false;
|
|
351
506
|
const selected = i === state.cursorIndex && state.customEditingFor === null;
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
507
|
+
// The actively edited sentinel anchors the scroll window even though the
|
|
508
|
+
// ▸ marker leaves it while editing (selected requires customEditingFor
|
|
509
|
+
// === null). Without this, a digit quick-pick straight onto an
|
|
510
|
+
// out-of-window sentinel opened the editor with cursorLine still -1, the
|
|
511
|
+
// window froze on the previous offset and the edit line was invisible.
|
|
512
|
+
const editingAnchor = !selected && row.kind === 'sentinel'
|
|
513
|
+
&& state.customEditingFor === row.questionIndex;
|
|
514
|
+
let displayLabel = foldText(row.label);
|
|
359
515
|
if (row.kind === 'sentinel' && state.customEditingFor === row.questionIndex) {
|
|
360
516
|
displayLabel = `${state.customInputs[row.questionIndex] ?? ''}_`;
|
|
361
517
|
}
|
|
518
|
+
// Per-question numbering on every numbered row: options 1..N, sentinel N+1;
|
|
519
|
+
// the confirm pseudo-row keeps its fixed ⏎ symbol instead.
|
|
520
|
+
const number = rowNumber(rows, i);
|
|
521
|
+
const prefix = number !== null ? `${number}. ` : '';
|
|
362
522
|
const status = rowStatusText(row.kind, state, row, isMulti);
|
|
363
|
-
const labelCell = padCell(clipToWidth(displayLabel, widths[0]), widths[0]);
|
|
523
|
+
const labelCell = padCell(clipToWidth(prefix + displayLabel, widths[0]), widths[0]);
|
|
364
524
|
const statusCell = padCell(clipToWidth(status, widths[1]), widths[1]);
|
|
365
525
|
const plain = `${rowMarker(selected)}${labelCell}${TABLE_SEP}${statusCell}`;
|
|
366
526
|
const line = clipToWidth(plain, wrap);
|
|
367
|
-
if (selected) {
|
|
368
|
-
|
|
527
|
+
if (selected || editingAnchor) {
|
|
528
|
+
cursorLine = body.length;
|
|
529
|
+
body.push(fns.accent(BOLD + line + RESET));
|
|
369
530
|
}
|
|
370
531
|
else if (row.kind === 'option'
|
|
371
532
|
&& (state.perQuestion[row.questionIndex]?.selected.includes(state.questions[row.questionIndex]?.options?.[row.optionIndex ?? -1]?.label ?? '') ?? false)) {
|
|
372
|
-
|
|
533
|
+
body.push(fns.success(line));
|
|
373
534
|
}
|
|
374
535
|
else if (row.kind === 'sentinel'
|
|
375
536
|
&& (state.perQuestion[row.questionIndex]?.custom !== undefined
|
|
376
537
|
&& state.perQuestion[row.questionIndex]?.custom !== '')) {
|
|
377
|
-
|
|
538
|
+
body.push(fns.success(line));
|
|
378
539
|
}
|
|
379
540
|
else {
|
|
380
|
-
|
|
541
|
+
body.push(fns.muted(line));
|
|
542
|
+
}
|
|
543
|
+
// Option descriptions get their own muted line under the label (two-line
|
|
544
|
+
// header/detail pattern) — no more concatenation + hard clipping.
|
|
545
|
+
if (row.kind === 'option') {
|
|
546
|
+
const description = state.questions[row.questionIndex]?.options?.[row.optionIndex ?? -1]?.description;
|
|
547
|
+
if (description !== undefined && description !== '') {
|
|
548
|
+
const indent = MARKER_W + `${number}. `.length;
|
|
549
|
+
body.push(fns.muted(clipToWidth(`${' '.repeat(indent)}${foldText(description)}`, wrap)));
|
|
550
|
+
}
|
|
381
551
|
}
|
|
382
552
|
}
|
|
553
|
+
// Scroll window (skills-manager scrollToCursor pattern): clamp the persisted
|
|
554
|
+
// offset so the cursor line always sits inside the visible slice. Written
|
|
555
|
+
// back into the panel-owned state so navigation slides smoothly instead of
|
|
556
|
+
// snapping; direct render calls simply start from offset 0.
|
|
557
|
+
const prevOffset = Math.max(0, state.questionsScroll);
|
|
558
|
+
const offset = clampScrollWindow(cursorLine < 0 ? prevOffset : cursorLine, visible, body.length, prevOffset);
|
|
559
|
+
state.questionsScroll = offset;
|
|
560
|
+
lines.push(...body.slice(offset, offset + visible));
|
|
561
|
+
const overflow = body.length > visible;
|
|
383
562
|
lines.push(fns.subtle(clipToWidth(tableRuleLine(widths, '┴'), wrap)));
|
|
384
|
-
return finalizeQuestionsView(fns, wrap, lines, state);
|
|
563
|
+
return finalizeQuestionsView(fns, wrap, lines, state, overflow ? ` (${cursorRank}/${selectableTotal})` : '');
|
|
385
564
|
}
|
|
386
|
-
function finalizeQuestionsView(fns, wrap, lines, state) {
|
|
565
|
+
function finalizeQuestionsView(fns, wrap, lines, state, scrollInfo = '') {
|
|
387
566
|
if (state.attentionHint !== null) {
|
|
388
567
|
lines.push(fns.attention(clipToWidth(state.attentionHint, wrap)));
|
|
389
568
|
}
|
|
@@ -392,14 +571,16 @@ function finalizeQuestionsView(fns, wrap, lines, state) {
|
|
|
392
571
|
}
|
|
393
572
|
lines.push('');
|
|
394
573
|
const footer = state.customEditingFor !== null
|
|
395
|
-
? 'Type free text · Enter keep · Esc abandon edit'
|
|
396
|
-
: `↑↓ navigate · Enter ${needsConfirmRow(state.questions) ? 'toggle / confirm' : 'select'} · Esc decline`;
|
|
397
|
-
|
|
574
|
+
? 'Type free text · Enter keep · ↑↓ move · Esc abandon edit'
|
|
575
|
+
: `↑↓ navigate · Enter ${needsConfirmRow(state.questions) ? 'toggle / confirm' : 'select'} · 1-9 pick · Esc decline`;
|
|
576
|
+
// The (n/m) readout goes FIRST so narrow terminals clip the hint, never
|
|
577
|
+
// the scroll info.
|
|
578
|
+
lines.push(fns.subtle(clipToWidth(scrollInfo + footer, wrap)));
|
|
398
579
|
return lines;
|
|
399
580
|
}
|
|
400
581
|
// -------------------------------------------------- render: review phase --
|
|
401
|
-
/** Render the review page for multi-question overlays. */
|
|
402
|
-
export function renderReviewView(theme, state, width) {
|
|
582
|
+
/** Render the review page for multi-question overlays (scroll-windowed). */
|
|
583
|
+
export function renderReviewView(theme, state, width, maxVisible = ASK_USER_MAX_VISIBLE) {
|
|
403
584
|
const fns = panelThemeFns(theme);
|
|
404
585
|
const wrap = Math.max(2, width - 2);
|
|
405
586
|
const lines = [fns.accent(BOLD + clipToWidth('● Review answers', wrap) + RESET)];
|
|
@@ -416,16 +597,19 @@ export function renderReviewView(theme, state, width) {
|
|
|
416
597
|
lines.push(fns.subtle(clipToWidth(tableRuleLine(widths, '┬'), wrap)));
|
|
417
598
|
lines.push(fns.subtle(clipToWidth(tableHeaderLine(columns, widths), wrap)));
|
|
418
599
|
lines.push(fns.subtle(clipToWidth(tableRuleLine(widths, '┼'), wrap)));
|
|
600
|
+
// Review rows render one line each, so the window slices rows directly.
|
|
601
|
+
const visible = Math.max(1, maxVisible);
|
|
602
|
+
const body = [];
|
|
419
603
|
state.questions.forEach((question, qi) => {
|
|
420
604
|
const answer = state.perQuestion[qi];
|
|
421
|
-
const left = `${question.header ?? `Q${qi + 1}`} ${question.question}`;
|
|
605
|
+
const left = `${question.header ?? `Q${qi + 1}`} ${foldText(question.question)}`;
|
|
422
606
|
const right = formatAnswerForReview(answer);
|
|
423
607
|
const selected = qi === state.reviewIndex;
|
|
424
608
|
const leftCell = padCell(clipToWidth(left, widths[0]), widths[0]);
|
|
425
609
|
const rightCell = padCell(clipToWidth(right, widths[1]), widths[1]);
|
|
426
610
|
const plain = `${rowMarker(selected)}${leftCell}${TABLE_SEP}${rightCell}`;
|
|
427
611
|
const line = clipToWidth(plain, wrap);
|
|
428
|
-
|
|
612
|
+
body.push(selected ? fns.accent(BOLD + line + RESET) : fns.muted(line));
|
|
429
613
|
});
|
|
430
614
|
// Submit row (review pane).
|
|
431
615
|
{
|
|
@@ -434,24 +618,32 @@ export function renderReviewView(theme, state, width) {
|
|
|
434
618
|
const rightCell = padCell(clipToWidth(allQuestionsAnswered(state) ? '✓ ready' : '— incomplete', widths[1]), widths[1]);
|
|
435
619
|
const plain = `${rowMarker(selected)}${leftCell}${TABLE_SEP}${rightCell}`;
|
|
436
620
|
const line = clipToWidth(plain, wrap);
|
|
437
|
-
|
|
621
|
+
body.push(selected ? fns.accent(BOLD + line + RESET) : fns.muted(line));
|
|
438
622
|
}
|
|
623
|
+
const prevOffset = Math.max(0, state.reviewScroll);
|
|
624
|
+
const offset = clampScrollWindow(state.reviewIndex, visible, body.length, prevOffset);
|
|
625
|
+
state.reviewScroll = offset;
|
|
626
|
+
lines.push(...body.slice(offset, offset + visible));
|
|
439
627
|
lines.push(fns.subtle(clipToWidth(tableRuleLine(widths, '┴'), wrap)));
|
|
440
628
|
if (state.attentionHint !== null) {
|
|
441
629
|
lines.push(fns.attention(clipToWidth(state.attentionHint, wrap)));
|
|
442
630
|
}
|
|
443
631
|
lines.push('');
|
|
444
|
-
|
|
632
|
+
const footer = '↑↓ select · Enter return to edit / submit';
|
|
633
|
+
const scrollInfo = body.length > visible ? ` (${state.reviewIndex + 1}/${body.length})` : '';
|
|
634
|
+
lines.push(fns.subtle(clipToWidth(scrollInfo + footer, wrap)));
|
|
445
635
|
return lines;
|
|
446
636
|
}
|
|
447
637
|
function formatAnswerForReview(answer) {
|
|
448
638
|
if (answer === undefined)
|
|
449
639
|
return '';
|
|
640
|
+
// Fold newlines exactly like the questions pane (foldText): an answer cell
|
|
641
|
+
// renders as ONE table row, and a bare \n inside it would split the row.
|
|
450
642
|
if (answer.custom !== undefined && answer.custom !== '')
|
|
451
|
-
return `${CUSTOM_MARK}${answer.custom}
|
|
643
|
+
return foldText(`${CUSTOM_MARK}${answer.custom}`);
|
|
452
644
|
if (answer.selected.length === 0)
|
|
453
645
|
return '(no answer)';
|
|
454
|
-
return answer.selected.join(', ');
|
|
646
|
+
return foldText(answer.selected.join(', '));
|
|
455
647
|
}
|
|
456
648
|
/**
|
|
457
649
|
* Open the AskUser overlay for one set of questions.
|
|
@@ -488,9 +680,15 @@ export function openAskUserPanel(deps, questions, signal) {
|
|
|
488
680
|
invalidate() { },
|
|
489
681
|
render(width) {
|
|
490
682
|
const theme = deps.theme();
|
|
683
|
+
// Terminal-height-adaptive scroll window: pi-tui exposes the live
|
|
684
|
+
// terminal through `TUI.terminal` (same seam skills-manager reads for
|
|
685
|
+
// its own overlay budget), so grow the window with real rows instead
|
|
686
|
+
// of pinning to the 24-row fallback. Fake TUIs without a `terminal`
|
|
687
|
+
// degrade to ASK_USER_MAX_VISIBLE.
|
|
688
|
+
const maxVisible = askUserMaxVisibleForRows(deps.tui.terminal?.rows, deps.maxHeight ?? '80%');
|
|
491
689
|
if (state.phase === 'review')
|
|
492
|
-
return renderReviewView(theme, state, width);
|
|
493
|
-
return renderQuestionsView(theme, state, width);
|
|
690
|
+
return renderReviewView(theme, state, width, maxVisible);
|
|
691
|
+
return renderQuestionsView(theme, state, width, maxVisible);
|
|
494
692
|
},
|
|
495
693
|
handleInput(data) {
|
|
496
694
|
if (settled)
|
|
@@ -512,6 +710,13 @@ export function openAskUserPanel(deps, questions, signal) {
|
|
|
512
710
|
handleConfirm(state);
|
|
513
711
|
return;
|
|
514
712
|
}
|
|
713
|
+
// Digit quick-pick: jump the cursor to the numbered row and activate
|
|
714
|
+
// it (same path as Enter — toggles an option / opens the sentinel
|
|
715
|
+
// edit). Only outside inline editing; digits feed the buffer there.
|
|
716
|
+
if (data.length === 1 && data >= '1' && data <= '9') {
|
|
717
|
+
handleDigitSelect(state, Number(data));
|
|
718
|
+
return;
|
|
719
|
+
}
|
|
515
720
|
if (kb.matches(data, 'tui.select.cancel')) {
|
|
516
721
|
const now = clock();
|
|
517
722
|
const prevState = { ...state };
|
|
@@ -551,9 +756,34 @@ export function openAskUserPanel(deps, questions, signal) {
|
|
|
551
756
|
return;
|
|
552
757
|
}
|
|
553
758
|
const rows = buildRowList(s.questions, s.perQuestion);
|
|
554
|
-
|
|
759
|
+
// nextSelectableIndex scans from `from + direction`, so it must receive
|
|
760
|
+
// the raw cursor — passing cursor+direction double-stepped every press
|
|
761
|
+
// (masked for years by the initial cursor parking on the header row).
|
|
762
|
+
const next = nextSelectableIndex(rows, s.cursorIndex, direction);
|
|
555
763
|
Object.assign(s, { cursorIndex: next, cancelHint: false, attentionHint: null });
|
|
556
764
|
}
|
|
765
|
+
/**
|
|
766
|
+
* Digit quick-pick: move the cursor onto the `digit`-th numbered row of
|
|
767
|
+
* the question the cursor currently sits in, then run the normal confirm
|
|
768
|
+
* path (toggle / open sentinel edit). Out-of-range digits and presses on
|
|
769
|
+
* the confirm row are ignored — there is no question to target.
|
|
770
|
+
*/
|
|
771
|
+
function handleDigitSelect(s, digit) {
|
|
772
|
+
// Digits only mean quick-pick while the questions pane is up; in the
|
|
773
|
+
// review phase they must be a no-op instead of relying on incidental
|
|
774
|
+
// cursor invariants.
|
|
775
|
+
if (s.phase !== 'questions')
|
|
776
|
+
return;
|
|
777
|
+
const rows = buildRowList(s.questions, s.perQuestion);
|
|
778
|
+
const anchor = rows[s.cursorIndex];
|
|
779
|
+
if (anchor === undefined || anchor.kind === 'confirm' || anchor.questionIndex < 0)
|
|
780
|
+
return;
|
|
781
|
+
const target = rowIndexForNumber(rows, anchor.questionIndex, digit);
|
|
782
|
+
if (target < 0)
|
|
783
|
+
return;
|
|
784
|
+
s.cursorIndex = target;
|
|
785
|
+
handleConfirm(s);
|
|
786
|
+
}
|
|
557
787
|
function handleConfirm(s) {
|
|
558
788
|
if (s.phase === 'review') {
|
|
559
789
|
if (s.reviewIndex < s.questions.length) {
|
|
@@ -626,6 +856,13 @@ export function openAskUserPanel(deps, questions, signal) {
|
|
|
626
856
|
Object.assign(s, exitCustomEdit(s, false));
|
|
627
857
|
return;
|
|
628
858
|
}
|
|
859
|
+
// ↑↓ never get swallowed by the edit: leave the editor first (committing
|
|
860
|
+
// a non-empty buffer — the "Enter keep" semantics), then navigate.
|
|
861
|
+
if (kb.matches(data, 'tui.select.up') || kb.matches(data, 'tui.select.down')) {
|
|
862
|
+
Object.assign(s, exitCustomEdit(s, true));
|
|
863
|
+
moveCursor(s, kb.matches(data, 'tui.select.up') ? -1 : 1);
|
|
864
|
+
return;
|
|
865
|
+
}
|
|
629
866
|
if (data === '\x7f' || matchesKey(data, 'backspace')) {
|
|
630
867
|
const next = s.customInputs.slice();
|
|
631
868
|
next[qi] = (next[qi] ?? '').slice(0, -1);
|
package/lib/ask-user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../src/ask-user.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../src/ask-user.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiwayds/dsh-tui-pi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "pi-style terminal UI for DeepSeek Harness (dsh) — pi-tui look & feel, dsh slash commands, GitHub light/dark themes, powerline footer",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|