mindweave 3.2.8 → 3.3.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/dist/cli/App.js +293 -19
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/altScreen.js +6 -0
- package/dist/cli/altScreen.js.map +1 -1
- package/dist/cli/blockHeights.js +3 -0
- package/dist/cli/blockHeights.js.map +1 -1
- package/dist/cli/chatAnchor.js +17 -0
- package/dist/cli/chatAnchor.js.map +1 -1
- package/dist/cli/components/BlockView.js +10 -1
- package/dist/cli/components/BlockView.js.map +1 -1
- package/dist/cli/components/KeyManager.js +63 -7
- package/dist/cli/components/KeyManager.js.map +1 -1
- package/dist/cli/components/Picker.js +31 -5
- package/dist/cli/components/Picker.js.map +1 -1
- package/dist/cli/components/PromptInput.js +41 -9
- package/dist/cli/components/PromptInput.js.map +1 -1
- package/dist/cli/components/ToolLine.js +6 -0
- package/dist/cli/components/ToolLine.js.map +1 -1
- package/dist/cli/components/WorkGroup.js +27 -10
- package/dist/cli/components/WorkGroup.js.map +1 -1
- package/dist/cli/framebuffer/writer.js +29 -6
- package/dist/cli/framebuffer/writer.js.map +1 -1
- package/dist/cli/help.js +1 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/messageQueue.js +7 -2
- package/dist/cli/messageQueue.js.map +1 -1
- package/dist/cli/pickerSearch.js +59 -0
- package/dist/cli/pickerSearch.js.map +1 -0
- package/dist/cli/selectionGrow.js +86 -3
- package/dist/cli/selectionGrow.js.map +1 -1
- package/dist/cli/toolDisplay.js +20 -5
- package/dist/cli/toolDisplay.js.map +1 -1
- package/dist/cli/transcript.js +24 -7
- package/dist/cli/transcript.js.map +1 -1
- package/dist/cli/wheelStep.js +2 -2
- package/dist/cli/workLines.js +26 -7
- package/dist/cli/workLines.js.map +1 -1
- package/dist/core/turnRunner.js +7 -1
- package/dist/core/turnRunner.js.map +1 -1
- package/dist/dynamo/engine.js +8 -4
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/dynamo/prompt.js +9 -0
- package/dist/dynamo/prompt.js.map +1 -1
- package/dist/memory/compaction.js +15 -3
- package/dist/memory/compaction.js.map +1 -1
- package/dist/memory/localCommand.js +138 -0
- package/dist/memory/localCommand.js.map +1 -0
- package/dist/memory/store.js +4 -1
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/tools/detail.js +2 -0
- package/dist/tools/detail.js.map +1 -1
- package/dist/tools/rebuildDetail.js +49 -1
- package/dist/tools/rebuildDetail.js.map +1 -1
- package/dist/tools/runCommand.js +8 -4
- package/dist/tools/runCommand.js.map +1 -1
- package/dist/tools/untrusted.js +7 -0
- package/dist/tools/untrusted.js.map +1 -1
- package/dist/tools/userCommand.js +52 -0
- package/dist/tools/userCommand.js.map +1 -0
- package/dist/tools/viewImage.js +14 -2
- package/dist/tools/viewImage.js.map +1 -1
- package/dist/tools/webSearch.js +42 -20
- package/dist/tools/webSearch.js.map +1 -1
- package/package.json +3 -3
package/dist/cli/altScreen.js
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
import * as nodeFs from "node:fs";
|
|
23
23
|
import { SHOW_CURSOR, TERMINAL_RESTORE } from "./terminalRestore.js";
|
|
24
24
|
import { caretToOutputEnd } from "./exitCursor.js";
|
|
25
|
+
import { setFramebufferClosed } from "./framebuffer/writer.js";
|
|
25
26
|
const ENTER = "\x1b[?1049h";
|
|
26
27
|
const HIDE_CURSOR = "\x1b[?25l";
|
|
27
28
|
/**
|
|
@@ -128,6 +129,9 @@ export function enterAltScreen(options = {}) {
|
|
|
128
129
|
export function exitAltScreen() {
|
|
129
130
|
if (!guarded && !active)
|
|
130
131
|
return;
|
|
132
|
+
// The full-screen shell is the one that owns a buffer of its own; once it is left, anything
|
|
133
|
+
// still drawn would land in the user's terminal (see setFramebufferClosed).
|
|
134
|
+
const leftOwnScreen = active;
|
|
131
135
|
guarded = false;
|
|
132
136
|
active = false;
|
|
133
137
|
// writeSync, NOT process.stdout.write, because every caller of this is on its way out.
|
|
@@ -149,5 +153,7 @@ export function exitAltScreen() {
|
|
|
149
153
|
catch {
|
|
150
154
|
// A closed or redirected stdout. Nothing to restore and nothing to report.
|
|
151
155
|
}
|
|
156
|
+
if (leftOwnScreen)
|
|
157
|
+
setFramebufferClosed(true);
|
|
152
158
|
}
|
|
153
159
|
//# sourceMappingURL=altScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"altScreen.js","sourceRoot":"","sources":["../../src/cli/altScreen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,uFAAuF;AACvF,uFAAuF;AACvF,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"altScreen.js","sourceRoot":"","sources":["../../src/cli/altScreen.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/blockHeights.js
CHANGED
|
@@ -101,6 +101,9 @@ export function estimateHeight(block, columns) {
|
|
|
101
101
|
case "notice":
|
|
102
102
|
rows = textRows(block.title, columns) + textRows(block.body, columns);
|
|
103
103
|
break;
|
|
104
|
+
case "help":
|
|
105
|
+
rows = 1 + textRows(block.text, columns);
|
|
106
|
+
break;
|
|
104
107
|
case "tool":
|
|
105
108
|
rows = 1 + (block.expanded && block.full ? textRows(block.full, columns) : Math.min(textRows(block.detail, columns), DETAIL_GUESS_CAP));
|
|
106
109
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockHeights.js","sourceRoot":"","sources":["../../src/cli/blockHeights.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blockHeights.js","sourceRoot":"","sources":["../../src/cli/blockHeights.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/chatAnchor.js
CHANGED
|
@@ -81,6 +81,23 @@ export function growScroll(scrollUp, prevHeight, height) {
|
|
|
81
81
|
return scrollUp;
|
|
82
82
|
return scrollUp + (height - prevHeight);
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Where the reader should sit after the VIEWPORT changed height: the footer grew (a menu
|
|
86
|
+
* opened, the input took another line) or shrank, and the chat gave up or got back rows.
|
|
87
|
+
*
|
|
88
|
+
* The first frame after such a change is laid out with the old viewport height still in
|
|
89
|
+
* the scroll arithmetic, so it holds the TOP of the window where it was and clips the
|
|
90
|
+
* bottom. The measured height arrives a frame later, and the arithmetic (which holds the
|
|
91
|
+
* newest line a fixed distance from the bottom) then moved the window by the whole
|
|
92
|
+
* difference: the reader saw the text jump and settle. Moving `scrollUp` by the same
|
|
93
|
+
* amount in the same update leaves both frames showing the same rows. Pinned to the newest
|
|
94
|
+
* is left alone: that view is aligned to the bottom by the layout and has nothing to hold.
|
|
95
|
+
*/
|
|
96
|
+
export function viewportScroll(scrollUp, prevRows, rows) {
|
|
97
|
+
if (scrollUp <= 0 || prevRows === rows)
|
|
98
|
+
return scrollUp;
|
|
99
|
+
return Math.max(0, scrollUp + (prevRows - rows));
|
|
100
|
+
}
|
|
84
101
|
/**
|
|
85
102
|
* Where the reader should sit after the transcript re-wraps at a new width.
|
|
86
103
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatAnchor.js","sourceRoot":"","sources":["../../src/cli/chatAnchor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chatAnchor.js","sourceRoot":"","sources":["../../src/cli/chatAnchor.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
14
14
|
*/
|
|
15
15
|
import { memo } from "react";
|
|
16
16
|
import { Box, Text } from "ink";
|
|
17
|
+
import { registerExpandable } from "../expandHits.js";
|
|
17
18
|
import { renderMarkdown } from "../markdown.js";
|
|
18
19
|
import { wrapAnsi, visibleWidth } from "../wrap.js";
|
|
19
20
|
import { BAD, USER_BG, USER_FG } from "../theme.js";
|
|
20
21
|
import { compactionLines } from "../compaction.js";
|
|
21
22
|
import { ToolLine } from "./ToolLine.js";
|
|
22
|
-
import { WorkGroup } from "./WorkGroup.js";
|
|
23
|
+
import { WorkGroup, shadeRows } from "./WorkGroup.js";
|
|
23
24
|
import { SubagentView } from "./SubagentView.js";
|
|
24
25
|
/**
|
|
25
26
|
* Text pre-wrapped to `width`, one <Text> row per line — see the file header.
|
|
@@ -96,6 +97,14 @@ function BlockViewInner({ block, columns, tightTop, hovered, hoveredItem }) {
|
|
|
96
97
|
const railWidth = Math.max(8, columns - 4);
|
|
97
98
|
return (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { children: "●" }) }), _jsx(Text, { bold: true, children: block.title })] }), block.body.split("\n").flatMap((line, i) => wrapAnsi(line, railWidth).map((row, j) => (_jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Text, { dimColor: true, children: " │ " }), _jsx(Box, { width: railWidth, children: _jsx(Text, { wrap: "truncate-end", children: row }) })] }, `${i}-${j}`))))] }));
|
|
98
99
|
}
|
|
100
|
+
case "help": {
|
|
101
|
+
// Mindweave's own text, not part of the conversation, so it is set apart from it: a row in
|
|
102
|
+
// the same style as the folded ones, with the text on the shaded band under it. It is not
|
|
103
|
+
// folded, it is asked for; a click anywhere on it takes it away and the conversation is
|
|
104
|
+
// as it was.
|
|
105
|
+
const rows = shadeRows(block.text.split("\n"), columns - 4);
|
|
106
|
+
return (_jsxs(Box, { ref: (node) => registerExpandable(block.id, node), marginTop: tightTop ? 0 : 1, flexDirection: "column", width: columns, children: [_jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { children: "●" }) }), _jsx(Text, { bold: true, dimColor: !hovered, children: "Commands and shortcuts" }), _jsx(Text, { dimColor: true, children: " click to close" }), _jsx(Text, { dimColor: !hovered, bold: hovered, children: " ▾" })] }), rows.map((r, j) => (_jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Text, { children: " " }), _jsxs(Text, { backgroundColor: USER_BG, color: USER_FG, children: [" ", r.kind !== undefined ? _jsx(Text, { dimColor: true, children: r.kind }) : null, r.text, " ".repeat(r.pad), " "] })] }, j)))] }));
|
|
107
|
+
}
|
|
99
108
|
case "compaction": {
|
|
100
109
|
// The bars are pre-composed as plain rows (compaction.ts) so the layout is
|
|
101
110
|
// testable without a terminal. Each row is printed verbatim and truncated, never
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockView.js","sourceRoot":"","sources":["../../../src/cli/components/BlockView.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"BlockView.js","sourceRoot":"","sources":["../../../src/cli/components/BlockView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
15
15
|
*/
|
|
16
16
|
import { Box, Text, useInput } from "ink";
|
|
17
17
|
import TextInput from "ink-text-input";
|
|
18
|
-
import { useState } from "react";
|
|
18
|
+
import { useLayoutEffect, useState } from "react";
|
|
19
|
+
import { matchesWords, wordsOf } from "../commandArgs.js";
|
|
19
20
|
import { stripMouse } from "../mouse.js";
|
|
21
|
+
import { setPickerSearchActive, setPickerSearchText } from "../pickerSearch.js";
|
|
20
22
|
import { ACTION_ACTIVATE, ACTION_BACK, ACTION_EDIT, ACTION_REMOVE, ACTION_SHOW, actionsFor, countLabel, } from "../keyManager.js";
|
|
21
23
|
import { MiniTabPanel as Panel, MiniTabRow as Row, miniTabPosition as position, miniTabWindowStart as windowStart, MINITAB_WINDOW as WINDOW } from "./minitabs.js";
|
|
22
24
|
import { ACCENT, GOOD, WARN } from "../theme.js";
|
|
@@ -44,6 +46,9 @@ export function KeyManager({ providers, keysOf, nextSlot, reveal, width, onActiv
|
|
|
44
46
|
return { kind: "providers" };
|
|
45
47
|
});
|
|
46
48
|
const [sel, setSel] = useState(0);
|
|
49
|
+
// The words typed to find a provider. They are drawn in the input box (see pickerSearch.ts),
|
|
50
|
+
// and only the provider list is a search: the screens under it are not.
|
|
51
|
+
const [query, setQuery] = useState("");
|
|
47
52
|
const [value, setValue] = useState("");
|
|
48
53
|
const [shown, setShown] = useState(null);
|
|
49
54
|
const keys = mode.kind === "keys" || mode.kind === "actions" ? keysOf(mode.provider) : [];
|
|
@@ -51,8 +56,22 @@ export function KeyManager({ providers, keysOf, nextSlot, reveal, width, onActiv
|
|
|
51
56
|
// "Add a new key" is one more row after the keys, and it is there however many there
|
|
52
57
|
// already are — that is what makes adding a second, or a fifth, obvious.
|
|
53
58
|
const canAdd = mode.kind === "keys" ? nextSlot(mode.provider) !== null : false;
|
|
59
|
+
// The providers that match what was typed, by name, by how many keys they hold, or by id.
|
|
60
|
+
const found = (() => {
|
|
61
|
+
const words = wordsOf(query);
|
|
62
|
+
return words.length === 0 ? providers : providers.filter((p) => matchesWords(words, p.label, countLabel(p.count), p.id));
|
|
63
|
+
})();
|
|
64
|
+
const searching = mode.kind === "providers";
|
|
65
|
+
useLayoutEffect(() => {
|
|
66
|
+
setPickerSearchActive(searching);
|
|
67
|
+
setPickerSearchText(searching ? query : "");
|
|
68
|
+
}, [searching, query]);
|
|
69
|
+
useLayoutEffect(() => () => {
|
|
70
|
+
setPickerSearchText("");
|
|
71
|
+
setPickerSearchActive(true);
|
|
72
|
+
}, []);
|
|
54
73
|
const count = mode.kind === "providers"
|
|
55
|
-
?
|
|
74
|
+
? found.length
|
|
56
75
|
: mode.kind === "keys"
|
|
57
76
|
? keys.length + (canAdd ? 1 : 0)
|
|
58
77
|
: mode.kind === "actions"
|
|
@@ -69,7 +88,25 @@ export function KeyManager({ providers, keysOf, nextSlot, reveal, width, onActiv
|
|
|
69
88
|
else
|
|
70
89
|
setMode({ kind: "keys", provider: mode.provider });
|
|
71
90
|
}
|
|
72
|
-
useInput((
|
|
91
|
+
useInput((raw, key) => {
|
|
92
|
+
// Wheel reports arrive as typed text once reporting is on; they are not keystrokes.
|
|
93
|
+
const input = stripMouse(raw);
|
|
94
|
+
if (input === "" && raw !== "")
|
|
95
|
+
return;
|
|
96
|
+
// On the provider list, Esc takes the search away first and only then goes back, and
|
|
97
|
+
// Backspace edits it. With nothing typed both do what they always did.
|
|
98
|
+
if (mode.kind === "providers" && query) {
|
|
99
|
+
if (key.escape) {
|
|
100
|
+
setQuery("");
|
|
101
|
+
setSel(0);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (key.backspace || key.delete) {
|
|
105
|
+
setQuery((q) => q.slice(0, -1));
|
|
106
|
+
setSel(0);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
73
110
|
if (key.escape)
|
|
74
111
|
return back();
|
|
75
112
|
// Backspace and Delete step back exactly as Escape does. Deleting what you just chose
|
|
@@ -78,7 +115,21 @@ export function KeyManager({ providers, keysOf, nextSlot, reveal, width, onActiv
|
|
|
78
115
|
// list is empty stepping back is the only thing left to do.
|
|
79
116
|
if ((key.backspace || key.delete) && mode.kind !== "enter")
|
|
80
117
|
return back();
|
|
81
|
-
if (mode.kind === "enter"
|
|
118
|
+
if (mode.kind === "enter")
|
|
119
|
+
return;
|
|
120
|
+
// Typing on the provider list is a search. A single digit with nothing typed yet is
|
|
121
|
+
// still the shortcut for that row, as it was; once there are words, digits are part of them.
|
|
122
|
+
if (mode.kind === "providers" && !key.upArrow && !key.downArrow && !key.return) {
|
|
123
|
+
const n = Number.parseInt(input, 10);
|
|
124
|
+
if (!query && Number.isInteger(n) && n >= 1 && n <= Math.min(9, count))
|
|
125
|
+
return commit(n - 1);
|
|
126
|
+
if (input && !key.ctrl && !key.meta && !key.tab && !/[\u0000-\u001f]/.test(input)) {
|
|
127
|
+
setQuery((q) => q + input);
|
|
128
|
+
setSel(0);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (count === 0)
|
|
82
133
|
return;
|
|
83
134
|
if (key.upArrow)
|
|
84
135
|
setSel((s) => (s - 1 + count) % count);
|
|
@@ -96,10 +147,11 @@ export function KeyManager({ providers, keysOf, nextSlot, reveal, width, onActiv
|
|
|
96
147
|
function commit(index) {
|
|
97
148
|
setShown(null);
|
|
98
149
|
if (mode.kind === "providers") {
|
|
99
|
-
const provider =
|
|
150
|
+
const provider = found[index];
|
|
100
151
|
if (!provider)
|
|
101
152
|
return;
|
|
102
153
|
setSel(0);
|
|
154
|
+
setQuery("");
|
|
103
155
|
// A provider with no keys goes straight to the field: there is no list to show, and
|
|
104
156
|
// one more press to reach the only thing you could have wanted is a press wasted.
|
|
105
157
|
const slot = nextSlot(provider);
|
|
@@ -159,7 +211,11 @@ export function KeyManager({ providers, keysOf, nextSlot, reveal, width, onActiv
|
|
|
159
211
|
const addRow = canAdd && start + win > keys.length;
|
|
160
212
|
return (_jsxs(Panel, { title: `${mode.provider.label} · ${countLabel(keys.length)}`, counter: position(sel, count, win), rows: Math.min(win, keys.length - start) + (addRow ? 1 : 0), maxRows: maxRows, width: width, hint: "\u2191/\u2193 \u00B7 Enter to choose \u00B7 Esc or \u232B back", children: [keys.slice(start, start + win).map((r, i) => (_jsx(Row, { on: start + i === sel, n: start + i + 1, numWidth: String(keys.length + 1).length, left: `key ${r.slot}`, mid: r.hint, right: r.active ? "● active" : "", rightColor: r.active ? GOOD : undefined, width: width }, r.slot))), addRow ? _jsx(Row, { on: sel === keys.length, n: keys.length + 1, numWidth: String(keys.length + 1).length, left: "Add a new key", width: width }) : null] }));
|
|
161
213
|
}
|
|
162
|
-
const start = windowStart(sel,
|
|
163
|
-
return (_jsx(Panel, { title: "Keys", counter: position(sel,
|
|
214
|
+
const start = windowStart(sel, found.length, win);
|
|
215
|
+
return (_jsx(Panel, { title: "Keys", counter: position(sel, found.length, win), rows: Math.min(win, found.length - start), maxRows: maxRows, width: width, hint: query
|
|
216
|
+
? found.length === 0
|
|
217
|
+
? "nothing matches · ⌫ edit · Esc clears the search"
|
|
218
|
+
: "↑/↓ · Enter to choose · ⌫ edit · Esc clears the search"
|
|
219
|
+
: "type to search · ↑/↓ · Enter to choose · Esc or ⌫ close", children: found.slice(start, start + win).map((p, i) => (_jsx(Row, { on: start + i === sel, n: start + i + 1, numWidth: String(found.length).length, left: p.label, right: countLabel(p.count), rightColor: p.count > 0 ? GOOD : undefined, width: width }, p.id))) }));
|
|
164
220
|
}
|
|
165
221
|
//# sourceMappingURL=KeyManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyManager.js","sourceRoot":"","sources":["../../../src/cli/components/KeyManager.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KeyManager.js","sourceRoot":"","sources":["../../../src/cli/components/KeyManager.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,11 +13,12 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
13
13
|
* `active` so exactly one input owner is live at a time (the prompt is disabled
|
|
14
14
|
* while a picker is open).
|
|
15
15
|
*/
|
|
16
|
-
import { useMemo, useState } from "react";
|
|
16
|
+
import { useLayoutEffect, useMemo, useState } from "react";
|
|
17
17
|
import { Box, Text, useInput } from "ink";
|
|
18
18
|
import { clipRows } from "../wrap.js";
|
|
19
19
|
import { matchesWords, wordsOf } from "../commandArgs.js";
|
|
20
20
|
import { stripMouse } from "../mouse.js";
|
|
21
|
+
import { setPickerSearchText } from "../pickerSearch.js";
|
|
21
22
|
import { ACCENT } from "../theme.js";
|
|
22
23
|
const MAX_VISIBLE = 10;
|
|
23
24
|
/**
|
|
@@ -36,7 +37,7 @@ const MAX_VISIBLE = 10;
|
|
|
36
37
|
*/
|
|
37
38
|
const MAX_TITLE_ROWS = 6;
|
|
38
39
|
const MAX_NOTE_ROWS = 4;
|
|
39
|
-
export function Picker({ title, items, onSelect, onCancel, width, active = true, initialIndex = 0, maxTitleRows = MAX_TITLE_ROWS, note, maxNoteRows = MAX_NOTE_ROWS, describeSelection = false, rightAlignDescription = false, maxRows = MAX_VISIBLE, initialFilter = "", }) {
|
|
40
|
+
export function Picker({ title, items, onSelect, onCancel, width, active = true, initialIndex = 0, maxTitleRows = MAX_TITLE_ROWS, note, maxNoteRows = MAX_NOTE_ROWS, describeSelection = false, rightAlignDescription = false, maxRows = MAX_VISIBLE, initialFilter = "", searchBox = false, }) {
|
|
40
41
|
// Same window size as the command menu (App clamps maxRows to a safe ceiling), so the
|
|
41
42
|
// picker box and the command box are the SAME fixed height.
|
|
42
43
|
const visible = Math.max(1, maxRows);
|
|
@@ -49,6 +50,17 @@ export function Picker({ title, items, onSelect, onCancel, width, active = true,
|
|
|
49
50
|
}, [items, filter]);
|
|
50
51
|
const [sel, setSel] = useState(initialFilter ? 0 : Math.min(Math.max(0, initialIndex), Math.max(0, items.length - 1)));
|
|
51
52
|
const count = matching.length;
|
|
53
|
+
// What is typed here is drawn by the input box when this picker is a search (see
|
|
54
|
+
// pickerSearch.ts). Set before the frame is painted so the box never shows the old words.
|
|
55
|
+
useLayoutEffect(() => {
|
|
56
|
+
if (searchBox)
|
|
57
|
+
setPickerSearchText(filter);
|
|
58
|
+
}, [searchBox, filter]);
|
|
59
|
+
// And put away with the picker, so the next one starts from nothing.
|
|
60
|
+
useLayoutEffect(() => () => {
|
|
61
|
+
if (searchBox)
|
|
62
|
+
setPickerSearchText("");
|
|
63
|
+
}, [searchBox]);
|
|
52
64
|
useInput((raw, key) => {
|
|
53
65
|
// With wheel reporting on, a scroll arrives as bytes like `[<65;43;30M` that Ink
|
|
54
66
|
// hands over as typed text, and the filter filled up with them. A chunk that was
|
|
@@ -65,8 +77,16 @@ export function Picker({ title, items, onSelect, onCancel, width, active = true,
|
|
|
65
77
|
if (picked !== undefined)
|
|
66
78
|
onSelect(picked);
|
|
67
79
|
}
|
|
68
|
-
else if (key.escape)
|
|
69
|
-
|
|
80
|
+
else if (key.escape) {
|
|
81
|
+
// A search is left in two steps: the first Esc takes the words away and shows the whole
|
|
82
|
+
// list, the second closes. Anything else closes at once, as it always did.
|
|
83
|
+
if (searchBox && filter) {
|
|
84
|
+
setFilter("");
|
|
85
|
+
setSel(0);
|
|
86
|
+
}
|
|
87
|
+
else
|
|
88
|
+
onCancel();
|
|
89
|
+
}
|
|
70
90
|
else if (key.backspace || key.delete) {
|
|
71
91
|
// Backspace edits the filter while there is one. With none, it closes: the input
|
|
72
92
|
// line above is empty, so a delete is the natural "take it back" — the same
|
|
@@ -136,7 +156,13 @@ export function Picker({ title, items, onSelect, onCancel, width, active = true,
|
|
|
136
156
|
return (_jsxs(Box, { width: rowWidth, flexShrink: 0, children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsxs(Text, { color: activeRow ? ACCENT : undefined, bold: activeRow, wrap: "truncate-end", children: [activeRow ? "› " : " ", item.label] }) }), _jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: " " + item.description }) })] }, idx));
|
|
137
157
|
}
|
|
138
158
|
return (_jsxs(Box, { width: rowWidth, flexShrink: 0, children: [_jsxs(Text, { color: activeRow ? ACCENT : undefined, bold: activeRow, children: [activeRow ? "› " : " ", item.label.padEnd(labelWidth)] }), item.description && !describeSelection ? (_jsx(Box, { width: descWidth, children: _jsx(Text, { dimColor: true, wrap: "truncate-end", children: " " + item.description }) })) : null] }, idx));
|
|
139
|
-
}), noteGap ? (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) })) : null, noteRows.map((line, i) => (_jsx(Box, { width: rowWidth, flexShrink: 0, children: _jsx(Text, { dimColor: true, wrap: "truncate-end", children: line }) }, `n${i}`))), Array.from({ length: pad }).map((_, i) => (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) }, `pad${i}`))), _jsx(Box, { flexShrink: 0, children:
|
|
159
|
+
}), noteGap ? (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) })) : null, noteRows.map((line, i) => (_jsx(Box, { width: rowWidth, flexShrink: 0, children: _jsx(Text, { dimColor: true, wrap: "truncate-end", children: line }) }, `n${i}`))), Array.from({ length: pad }).map((_, i) => (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) }, `pad${i}`))), _jsx(Box, { flexShrink: 0, children: searchBox ? (
|
|
160
|
+
// The words are in the input box; this row only says what the keys do.
|
|
161
|
+
_jsx(Text, { dimColor: true, children: filter
|
|
162
|
+
? count === 0
|
|
163
|
+
? "nothing matches · ⌫ edit · Esc clears the search"
|
|
164
|
+
: "↑/↓ move · Enter select · ⌫ edit · Esc clears the search"
|
|
165
|
+
: "type to search · ↑/↓ move · Enter select · Esc back" })) : filter ? (
|
|
140
166
|
// The filter lives on the hint row, which always exists, so typing never changes
|
|
141
167
|
// the box's height.
|
|
142
168
|
_jsx(Box, { width: rowWidth, children: _jsxs(Text, { wrap: "truncate-start", children: [_jsx(Text, { color: ACCENT, children: filter }), _jsx(Text, { dimColor: true, children: count === 0 ? " · no matches · ⌫ edit · Esc back" : " · ↑/↓ move · Enter select · ⌫ edit · Esc back" })] }) })) : (_jsx(Text, { dimColor: true, children: items.length > visible ? "type to filter · ↑/↓ move · Enter select · Esc back" : "↑/↓ move · Enter select · Esc or ⌫ back" })) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../../src/cli/components/Picker.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../../src/cli/components/Picker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -22,9 +22,11 @@ import { cleanInputText } from "../inputText.js";
|
|
|
22
22
|
import { latestScreen } from "../framebuffer/overlay.js";
|
|
23
23
|
import { feedPasteChunk, initPasteState } from "../pasteAssembler.js";
|
|
24
24
|
import { stripMouse } from "../mouse.js";
|
|
25
|
+
import { usePickerSearchActive, usePickerSearchText } from "../pickerSearch.js";
|
|
25
26
|
import { killToLineEnd, wordEnd, wordStart } from "../wordEdit.js";
|
|
26
27
|
import { declareCaret } from "../caretPark.js";
|
|
27
|
-
import {
|
|
28
|
+
import { isUserCommandText } from "../../memory/localCommand.js";
|
|
29
|
+
import { ACCENT, WARN } from "../theme.js";
|
|
28
30
|
/** The widest the command-name column gets; a longer name is cut with an ellipsis instead of wrapping onto the next row. */
|
|
29
31
|
const NAME_COLUMN_MAX = 18;
|
|
30
32
|
/** The completions a command menu offers for what is typed (pure). */
|
|
@@ -62,6 +64,9 @@ const PASTE_COALESCE_MS = 30;
|
|
|
62
64
|
const PASTE_CHUNK_MIN = 40;
|
|
63
65
|
// The longest single line still read as typing followed by Enter when it arrives in one chunk.
|
|
64
66
|
const TYPED_THEN_ENTER_MAX = 2000;
|
|
67
|
+
/** How long a held box (see `opening`) waits before it says it is loading. Long enough that
|
|
68
|
+
* the usual instant open never shows it. */
|
|
69
|
+
const SLOW_OPEN_MS = 700;
|
|
65
70
|
const INITIAL = { value: "", cursor: 0, histIdx: null, selected: 0, draft: "", range: null };
|
|
66
71
|
/** The selected span as a safe, ordered pair inside the buffer, or null if there is none. */
|
|
67
72
|
function span(s) {
|
|
@@ -183,7 +188,7 @@ const DEFAULT_MAX_SUGGESTIONS = 6;
|
|
|
183
188
|
/** Rows the text area may grow to before it scrolls instead. Enough for a real
|
|
184
189
|
* paragraph; small enough that the chat above it is never squeezed away. */
|
|
185
190
|
const DEFAULT_MAX_INPUT_ROWS = 8;
|
|
186
|
-
export function PromptInput({ onSubmit, disabled = false, placeholder = "", width, history = [], completions = [], pathComplete, onLargePaste, onDroppedPaths, registerCaretClick, registerTextSelect, maxMenuRows = DEFAULT_MAX_SUGGESTIONS, onMenuChange, placeCursor = false, menuAbove = false, settleKey = 0, onQueuePop, maxInputRows = DEFAULT_MAX_INPUT_ROWS, overlay, opening = false, fill, }) {
|
|
191
|
+
export function PromptInput({ onSubmit, disabled = false, placeholder = "", width, history = [], completions = [], pathComplete, onLargePaste, onDroppedPaths, registerCaretClick, registerTextSelect, maxMenuRows = DEFAULT_MAX_SUGGESTIONS, onMenuChange, placeCursor = false, menuAbove = false, settleKey = 0, onQueuePop, maxInputRows = DEFAULT_MAX_INPUT_ROWS, overlay, opening = false, searchPlaceholder, fill, }) {
|
|
187
192
|
const [state, rawDispatch] = useReducer(reduce, INITIAL);
|
|
188
193
|
// The buffer as it is NOW, not as it was at the last render. Ink renders on a timer, so a
|
|
189
194
|
// key that arrives a few milliseconds after the one before it runs against the committed
|
|
@@ -641,6 +646,33 @@ export function PromptInput({ onSubmit, disabled = false, placeholder = "", widt
|
|
|
641
646
|
// own, so the rows are no longer holding anything up, and keeping them would leave a
|
|
642
647
|
// band of blank above the prompt for the rest of the session.
|
|
643
648
|
const boxRows = overlay || menu || opening ? menuBoxRows + 1 : 0;
|
|
649
|
+
// What the command list was showing when the command was submitted. Submitting clears
|
|
650
|
+
// the input, which closes the list, so a box held open for a surface that is still on its
|
|
651
|
+
// way would otherwise be an empty one for as long as the work takes. It keeps showing the
|
|
652
|
+
// list instead, and only its contents change when the surface arrives.
|
|
653
|
+
const lastMenu = useRef(null);
|
|
654
|
+
if (menu)
|
|
655
|
+
lastMenu.current = { menu, sel };
|
|
656
|
+
else if (!opening)
|
|
657
|
+
lastMenu.current = null;
|
|
658
|
+
// A command that waits on something slow (a model list from a server that is not
|
|
659
|
+
// answering) would look like an Enter that did nothing. Past this, the held list says so.
|
|
660
|
+
const [slowOpen, setSlowOpen] = useState(false);
|
|
661
|
+
useEffect(() => {
|
|
662
|
+
if (!opening) {
|
|
663
|
+
setSlowOpen(false);
|
|
664
|
+
return;
|
|
665
|
+
}
|
|
666
|
+
const t = setTimeout(() => setSlowOpen(true), SLOW_OPEN_MS);
|
|
667
|
+
return () => clearTimeout(t);
|
|
668
|
+
}, [opening]);
|
|
669
|
+
// The box is the search field while the open surface is a search: it shows the picker's words.
|
|
670
|
+
const searchText = usePickerSearchText();
|
|
671
|
+
const searchActive = usePickerSearchActive();
|
|
672
|
+
const searching = !!overlay && searchPlaceholder !== undefined && searchActive;
|
|
673
|
+
// A line that starts with `!` is a command for the shell, not a message: the box says so by taking
|
|
674
|
+
// another colour (amber, which neither the ordinary box nor a search uses) for as long as it does.
|
|
675
|
+
const shellMode = !overlay && isUserCommandText(value);
|
|
644
676
|
const holdRef = useRef(0);
|
|
645
677
|
const heldAt = useRef(settleKey);
|
|
646
678
|
if (heldAt.current !== settleKey) {
|
|
@@ -653,11 +685,11 @@ export function PromptInput({ onSubmit, disabled = false, placeholder = "", widt
|
|
|
653
685
|
const holdPad = menuAbove ? Math.max(0, holdRef.current - boxRows) : 0;
|
|
654
686
|
const menuBox = overlay || menu || opening ? (_jsx(Box, { flexDirection: "column", width: width, height: menuBoxRows, flexShrink: 0, ...(menuAbove ? { marginBottom: 1 } : { borderStyle: "single", borderColor: "gray", paddingX: 1, marginTop: 1 }), overflow: "hidden", children: overlay ? (overlay) : menu ? (_jsx(SuggestionMenu, { matches: menu.items, selected: sel, width: width, mode: menu.mode, maxRows: maxMenuRows, bare: menuAbove })) : (
|
|
655
687
|
// `opening`: a command that opens a surface here was submitted, and the surface
|
|
656
|
-
// is a moment away. The frame is held open
|
|
657
|
-
// from the command list to what it opens is a change of
|
|
658
|
-
// that never leaves the screen.
|
|
659
|
-
_jsx(Box, { flexDirection: "column", height: menuBoxRows - 2 })) })) : null;
|
|
660
|
-
return (_jsxs(Box, { flexDirection: "column", width: width, flexShrink: 0, children: [holdPad > 0 ? _jsx(Box, { flexShrink: 0, height: holdPad }) : null, menuAbove ? menuBox : null, _jsx(Box, { flexDirection: "column", width: width, flexShrink: 0, borderStyle: "single", borderColor: "gray", paddingX: 1, children: _jsx(Field, { value: value, cursor: cursor, active: !disabled && !overlay, placeholder: overlay ? "" : placeholder, width: fieldWidth, maxRows: maxInputRows, placeCursor: placeCursor }) }), menuAbove ? null : menuBox] }));
|
|
688
|
+
// is a moment away. The frame is held open, still showing the list it came from,
|
|
689
|
+
// so the transition from the command list to what it opens is a change of
|
|
690
|
+
// CONTENT inside one box that never leaves the screen.
|
|
691
|
+
_jsx(Box, { flexDirection: "column", height: menuBoxRows - 2, children: slowOpen ? (_jsx(Text, { dimColor: true, children: "Loading\u2026" })) : lastMenu.current ? (_jsx(SuggestionMenu, { matches: lastMenu.current.menu.items, selected: lastMenu.current.sel, width: width, mode: lastMenu.current.menu.mode, maxRows: maxMenuRows, bare: menuAbove })) : null })) })) : null;
|
|
692
|
+
return (_jsxs(Box, { flexDirection: "column", width: width, flexShrink: 0, children: [holdPad > 0 ? _jsx(Box, { flexShrink: 0, height: holdPad }) : null, menuAbove ? menuBox : null, _jsx(Box, { flexDirection: "column", width: width, flexShrink: 0, borderStyle: "single", borderColor: searching ? ACCENT : shellMode ? WARN : "gray", paddingX: 1, children: _jsx(Field, { markColor: shellMode ? WARN : ACCENT, value: searching ? searchText : value, cursor: searching ? searchText.length : cursor, active: searching || (!disabled && !overlay), placeholder: searching ? searchPlaceholder : overlay ? "" : placeholder, width: fieldWidth, maxRows: maxInputRows, placeCursor: placeCursor }) }), menuAbove ? null : menuBox] }));
|
|
661
693
|
}
|
|
662
694
|
/** The `@token` ending at the cursor (back to the nearest whitespace), or null.
|
|
663
695
|
* Used to drive the file-path picker while typing a `@mention`. */
|
|
@@ -736,7 +768,7 @@ function SuggestionMenu({ matches, selected, width, mode, maxRows, bare = false,
|
|
|
736
768
|
* the tip vanished and the box looked cut in half. The wrapping and the cursor maths
|
|
737
769
|
* live in inputView.ts, where they are unit-tested.
|
|
738
770
|
*/
|
|
739
|
-
function Field({ value, cursor, active, placeholder, width, maxRows, placeCursor, }) {
|
|
771
|
+
function Field({ value, cursor, active, placeholder, width, maxRows, placeCursor, markColor = ACCENT, }) {
|
|
740
772
|
// ---- NO EARLY RETURN ABOVE THIS BLOCK ----
|
|
741
773
|
// Every hook here runs before the empty-value branch below returns. A hook underneath
|
|
742
774
|
// an early return runs a different number of times on the two renders either side of
|
|
@@ -805,6 +837,6 @@ function Field({ value, cursor, active, placeholder, width, maxRows, placeCursor
|
|
|
805
837
|
// typed — so the box would hide exactly the letter being written, and only once a line
|
|
806
838
|
// was full. The reserved column is never wasted: the caret is always somewhere.
|
|
807
839
|
const view = inputView(value, cursor, Math.max(1, width - 1), maxRows);
|
|
808
|
-
return (_jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [view.hiddenAbove > 0 ? (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: ` ↑ ${view.hiddenAbove} more line${view.hiddenAbove === 1 ? "" : "s"}` }) })) : null, view.rows.map((row, i) => (_jsxs(Box, { flexShrink: 0, children: [_jsx(Text, { bold: true, color:
|
|
840
|
+
return (_jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [view.hiddenAbove > 0 ? (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: ` ↑ ${view.hiddenAbove} more line${view.hiddenAbove === 1 ? "" : "s"}` }) })) : null, view.rows.map((row, i) => (_jsxs(Box, { flexShrink: 0, children: [_jsx(Text, { bold: true, color: markColor, children: i === 0 && view.hiddenAbove === 0 ? "> " : " " }), _jsx(Box, { width: width, overflow: "hidden", ref: active && i === view.cursorRow ? caretRowRef : undefined, children: _jsx(Text, { wrap: "truncate-end", children: row.text }) })] }, i))), view.hiddenBelow > 0 ? (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: ` ↓ ${view.hiddenBelow} more line${view.hiddenBelow === 1 ? "" : "s"}` }) })) : null] }));
|
|
809
841
|
}
|
|
810
842
|
//# sourceMappingURL=PromptInput.js.map
|