@chances-ai/tui 24.2.0 → 25.0.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/app.d.ts +22 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +107 -42
- package/dist/app.js.map +1 -1
- package/dist/editor/file-search.d.ts +18 -0
- package/dist/editor/file-search.d.ts.map +1 -0
- package/dist/editor/file-search.js +78 -0
- package/dist/editor/file-search.js.map +1 -0
- package/dist/editor/prompt-editor.d.ts +35 -0
- package/dist/editor/prompt-editor.d.ts.map +1 -0
- package/dist/editor/prompt-editor.js +153 -0
- package/dist/editor/prompt-editor.js.map +1 -0
- package/dist/editor/unified-autocomplete.d.ts +42 -0
- package/dist/editor/unified-autocomplete.d.ts.map +1 -0
- package/dist/editor/unified-autocomplete.js +141 -0
- package/dist/editor/unified-autocomplete.js.map +1 -0
- package/dist/index.d.ts +14 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/ink-ext/keys.d.ts +4 -2
- package/dist/ink-ext/keys.d.ts.map +1 -1
- package/dist/ink-ext/keys.js +47 -5
- package/dist/ink-ext/keys.js.map +1 -1
- package/dist/ink-ext/types.d.ts +1 -1
- package/dist/ink-ext/types.d.ts.map +1 -1
- package/dist/ink-ext/types.js.map +1 -1
- package/dist/keybindings/defaults.d.ts +24 -0
- package/dist/keybindings/defaults.d.ts.map +1 -0
- package/dist/keybindings/defaults.js +21 -0
- package/dist/keybindings/defaults.js.map +1 -0
- package/dist/keybindings/index.d.ts +9 -0
- package/dist/keybindings/index.d.ts.map +1 -0
- package/dist/keybindings/index.js +9 -0
- package/dist/keybindings/index.js.map +1 -0
- package/dist/keybindings/merge.d.ts +25 -0
- package/dist/keybindings/merge.d.ts.map +1 -0
- package/dist/keybindings/merge.js +98 -0
- package/dist/keybindings/merge.js.map +1 -0
- package/dist/keybindings/schema.d.ts +17 -0
- package/dist/keybindings/schema.d.ts.map +1 -0
- package/dist/keybindings/schema.js +16 -0
- package/dist/keybindings/schema.js.map +1 -0
- package/dist/pager.d.ts +19 -0
- package/dist/pager.d.ts.map +1 -0
- package/dist/pager.js +83 -0
- package/dist/pager.js.map +1 -0
- package/dist/slash-typeahead.d.ts +8 -24
- package/dist/slash-typeahead.d.ts.map +1 -1
- package/dist/slash-typeahead.js +8 -67
- package/dist/slash-typeahead.js.map +1 -1
- package/package.json +7 -5
package/dist/app.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type JSX } from "react";
|
|
2
|
-
import { type
|
|
2
|
+
import { type AgentSuggestion } from "./editor/unified-autocomplete.js";
|
|
3
|
+
import type { SlashSuggestion } from "./slash-typeahead.js";
|
|
3
4
|
export { suggestSlashCommands } from "./slash-typeahead.js";
|
|
4
5
|
export type { SlashSuggestion } from "./slash-typeahead.js";
|
|
5
6
|
import type { ThemeSetting } from "./theme.js";
|
|
@@ -27,14 +28,34 @@ export interface ChatAppProps {
|
|
|
27
28
|
availableSlashCommands?: SlashSuggestion[];
|
|
28
29
|
/** (5.4) Snapshot of MCP resources for `@<server>:<uri>` autocomplete. */
|
|
29
30
|
availableResources?: ResourceSuggestion[];
|
|
31
|
+
/** (7.4) Snapshot of agent definitions for `@<agent>` autocomplete. */
|
|
32
|
+
availableAgents?: AgentSuggestion[];
|
|
30
33
|
/** (5.9) Color palette selection (`config.tui.theme`). Default dark. */
|
|
31
34
|
themeSetting?: ThemeSetting;
|
|
32
35
|
/** (5.9) Syntax-highlight code/diffs (`config.tui.syntaxHighlight`). Default true. */
|
|
33
36
|
syntaxHighlight?: boolean;
|
|
37
|
+
/** (7.4) Raw key rebindings from `config.tui.keybindings`. Merged over the
|
|
38
|
+
* defaults (fail-soft) into the ink-ext bindings + the editor keymap. */
|
|
39
|
+
keybindings?: Record<string, Record<string, string | null>>;
|
|
40
|
+
/** (7.4) Active model's context window (tokens). A function is re-read on every
|
|
41
|
+
* render so the gauge stays correct after a `/model` switch (R2-S2). When unset
|
|
42
|
+
* the footer shows just the absolute token count. */
|
|
43
|
+
contextWindow?: number | (() => number | undefined);
|
|
44
|
+
/** (7.4) Workspace root for `@file` completion (R2-S1). Falls back to cwd. */
|
|
45
|
+
workspaceRoot?: string;
|
|
46
|
+
/** (7.4 §G1) Run a `!`-prefixed line as a local shell command. When provided,
|
|
47
|
+
* bash mode is live: the footer indicates it and Enter routes here instead of
|
|
48
|
+
* the model (claude-code parity). When absent, `!` carries no special meaning
|
|
49
|
+
* (no footer, submits as a normal prompt) — never a footer that lies. */
|
|
50
|
+
onBashCommand?: (command: string) => void | Promise<void>;
|
|
34
51
|
}
|
|
35
52
|
/** (5.4) Pure helper for `@<server>:<uri>` mention autocomplete. */
|
|
36
53
|
export declare function suggestResourceMentions(input: string, available: ResourceSuggestion[]): ResourceSuggestion[];
|
|
37
54
|
/** Public entry: wraps the chat in the theme provider + the single input bus so
|
|
38
55
|
* every component reads one palette and one keymap. */
|
|
39
56
|
export declare function ChatApp(props: ChatAppProps): JSX.Element;
|
|
57
|
+
/** (7.4) Footer context gauge — real input-token usage from `usage:turn`. With a
|
|
58
|
+
* known context `window` it draws a `used/window (pct)` bar; otherwise just the
|
|
59
|
+
* absolute count. `formatContextGauge` is the pure, tested core. */
|
|
60
|
+
export declare function formatContextGauge(used: number, window?: number): string;
|
|
40
61
|
//# sourceMappingURL=app.d.ts.map
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AACA,OAAO,EAA8D,KAAK,GAAG,EAAkB,MAAM,OAAO,CAAC;AAW7G,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAE7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAO5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAe,KAAK,aAAa,EAAa,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA8ClD,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,aAAa,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,6EAA6E;IAC7E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C;qFACiF;IACjF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;qEAEiE;IACjE,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,kFAAkF;IAClF,sBAAsB,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3C,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC1C,uEAAuE;IACvE,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,wEAAwE;IACxE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,sFAAsF;IACtF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;8EAC0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5D;;0DAEsD;IACtD,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;IACpD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;8EAG0E;IAC1E,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,oEAAoE;AACpE,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,kBAAkB,EAAE,GAC9B,kBAAkB,EAAE,CAOtB;AAED;wDACwD;AACxD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAMxD;AA4cD;;qEAEqE;AACrE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxE"}
|
package/dist/app.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Static, Text, useApp } from "ink";
|
|
3
|
-
import { useEffect, useState, useSyncExternalStore } from "react";
|
|
4
|
-
import { KeybindingProvider, useKeybinding, useKeybindingContext,
|
|
5
|
-
import {
|
|
3
|
+
import { useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
4
|
+
import { KeybindingProvider, useKeybinding, useKeybindingContext, useTextInput, } from "./ink-ext/index.js";
|
|
5
|
+
import { mergeKeymaps } from "./keybindings/index.js";
|
|
6
|
+
import { parseInputMode } from "@chances-ai/ui-core";
|
|
7
|
+
import { PromptEditor } from "./editor/prompt-editor.js";
|
|
8
|
+
import { TranscriptPager } from "./pager.js";
|
|
9
|
+
import { UnifiedAutocomplete } from "./editor/unified-autocomplete.js";
|
|
6
10
|
// Re-exported for backward compat: `suggestSlashCommands`/`SlashSuggestion` moved
|
|
7
11
|
// to slash-typeahead.tsx (5.10 A3) but several call sites + tests import them here.
|
|
8
12
|
export { suggestSlashCommands } from "./slash-typeahead.js";
|
|
9
|
-
import { looksLikeDiff } from "@chances-ai/ui-core";
|
|
13
|
+
import { looksLikeDiff, formatTokenCount } from "@chances-ai/ui-core";
|
|
10
14
|
import { DiffView } from "./diff-view.js";
|
|
11
15
|
import { Markdown } from "./markdown.js";
|
|
12
16
|
import { Progress } from "./progress.js";
|
|
@@ -74,14 +78,39 @@ function ChatBusWrapper(props) {
|
|
|
74
78
|
return;
|
|
75
79
|
return props.modal.attach((node) => setModalNode(node));
|
|
76
80
|
}, [props.modal]);
|
|
77
|
-
|
|
81
|
+
// (7.4) Merge keybindings.json over the defaults ONCE (config is static per
|
|
82
|
+
// session; the registry's bindings are mount-time). Feeds the input bus +
|
|
83
|
+
// the editor keymap; fail-soft warnings surface as a chat error line.
|
|
84
|
+
const merged = useMemo(() => mergeKeymaps(props.keybindings, { platform: typeof process !== "undefined" ? process.platform : undefined }), [props.keybindings]);
|
|
85
|
+
return (_jsx(KeybindingProvider, { onForceExit: () => exit(), bindings: merged.bindings, children: _jsx(ChatInner, { ...props, modalNode: modalNode, editorKeymap: merged.editorKeymap, keymapWarnings: merged.warnings }) }));
|
|
78
86
|
}
|
|
79
|
-
function ChatInner({ vm, onSubmit, onSlash, onInterrupt, availableSlashCommands, availableResources, modalNode, }) {
|
|
87
|
+
function ChatInner({ vm, onSubmit, onSlash, onInterrupt, availableSlashCommands, availableResources, availableAgents, contextWindow, workspaceRoot, onBashCommand, modalNode, editorKeymap, keymapWarnings, }) {
|
|
80
88
|
useSyncExternalStore(vm.subscribe, vm.getSnapshot, vm.getSnapshot);
|
|
81
89
|
const { theme, glyphs } = useTheme();
|
|
82
|
-
|
|
90
|
+
// (7.4) The editor owns the draft (cursor/kill-ring/undo); `draft` mirrors its
|
|
91
|
+
// text so the slash/@ autocomplete can filter, and `editorRef` lets a completion
|
|
92
|
+
// or a submit push text back into the editor.
|
|
93
|
+
const editorRef = useRef(null);
|
|
94
|
+
const [draft, setDraft] = useState("");
|
|
95
|
+
// Surface any keybindings.json warnings once, as a chat error line.
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
for (const w of keymapWarnings)
|
|
98
|
+
vm.pushError(`keybindings: ${w}`);
|
|
99
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
100
|
+
}, []);
|
|
83
101
|
// (5.3) Non-null while the "no, and tell the model" feedback field is open.
|
|
84
102
|
const [feedback, setFeedback] = useState(null);
|
|
103
|
+
// (§G4) Full-screen transcript pager (ctrl+o). When open it owns the screen.
|
|
104
|
+
const [pagerOpen, setPagerOpen] = useState(false);
|
|
105
|
+
// (§G1 codex R3) A `!`-command runs async without flipping vm.busy; this guards
|
|
106
|
+
// against a model prompt (or another `!`) submitted mid-command, which would
|
|
107
|
+
// otherwise lose / misattribute the command's pending context.
|
|
108
|
+
const bashInFlightRef = useRef(false);
|
|
109
|
+
// (§G4 codex R3 MUST) While the pager is open we FREEZE the <Static> item list:
|
|
110
|
+
// Ink would otherwise print lines committed during paging into the (hidden) alt
|
|
111
|
+
// buffer and mark them done, so they'd vanish on `?1049l`. Freezing means those
|
|
112
|
+
// lines stay un-printed and replay to the main screen the moment the pager closes.
|
|
113
|
+
const frozenStaticRef = useRef(null);
|
|
85
114
|
// (5.10b) Cursor over the 4 permission options for ↑↓ navigation. The y/a/n/d +
|
|
86
115
|
// 1/2/3 shortcuts still select directly and bypass it.
|
|
87
116
|
const [permCursor, setPermCursor] = useState(0);
|
|
@@ -100,36 +129,63 @@ function ChatInner({ vm, onSubmit, onSlash, onInterrupt, availableSlashCommands,
|
|
|
100
129
|
// it must NOT also light up the Confirmation (y/a/n/d) context.
|
|
101
130
|
const confirmActive = (vm.pending !== null && vm.pending.req.kind !== "question") || vm.yoloConfirmPending;
|
|
102
131
|
// Run a `/command` line: clear the draft, echo it, dispatch via the host.
|
|
103
|
-
// Shared by
|
|
132
|
+
// Shared by the editor's submit (typed "/foo args") and SlashTypeahead's Enter
|
|
104
133
|
// (executes the SELECTED command, no args — the menu only shows pre-space).
|
|
105
134
|
const runSlash = (line) => {
|
|
106
|
-
|
|
135
|
+
editorRef.current?.setText("");
|
|
136
|
+
setDraft("");
|
|
107
137
|
vm.pushUser(line);
|
|
108
138
|
if (onSlash)
|
|
109
139
|
void onSlash(line);
|
|
110
140
|
else
|
|
111
141
|
vm.pushError(`Unknown command: ${line}`);
|
|
112
142
|
};
|
|
113
|
-
//
|
|
114
|
-
|
|
115
|
-
|
|
143
|
+
// (7.4) The editor's submit effect routes here (formerly the `chat:submit`
|
|
144
|
+
// binding — now `return` falls to the editor's text sink, R1-M4). The editor
|
|
145
|
+
// already kept the draft on a busy submit; we just route /exit, slash + the
|
|
146
|
+
// streaming guard.
|
|
147
|
+
const handleEditorSubmit = (raw) => {
|
|
148
|
+
// (§G1) Bash mode: a `!`-prefixed line runs as a local shell command via the
|
|
149
|
+
// host, not the model — but only when the host wired an executor (else `!`
|
|
150
|
+
// is just text, so the footer never lied). Gated on `busy` like a normal
|
|
151
|
+
// submit: committing the command/output to the transcript mid-stream would
|
|
152
|
+
// split the in-flight assistant message.
|
|
153
|
+
if (onBashCommand) {
|
|
154
|
+
const parsed = parseInputMode(raw);
|
|
155
|
+
if (parsed.mode === "bash") {
|
|
156
|
+
if (vm.busy || bashInFlightRef.current)
|
|
157
|
+
return;
|
|
158
|
+
editorRef.current?.setText("");
|
|
159
|
+
setDraft("");
|
|
160
|
+
if (parsed.value) {
|
|
161
|
+
bashInFlightRef.current = true;
|
|
162
|
+
void Promise.resolve(onBashCommand(parsed.value)).finally(() => {
|
|
163
|
+
bashInFlightRef.current = false;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const prompt = raw.trim();
|
|
116
170
|
if (prompt === "/exit" || prompt === "/quit") {
|
|
117
171
|
exit();
|
|
118
172
|
return;
|
|
119
173
|
}
|
|
120
|
-
// (5.8 codex R2) Block submission while a turn streams
|
|
121
|
-
|
|
174
|
+
// (5.8 codex R2 / §G1 R3) Block submission while a turn streams OR a local
|
|
175
|
+
// `!`-command is still running (its output context isn't ready yet).
|
|
176
|
+
if (vm.busy || bashInFlightRef.current)
|
|
122
177
|
return;
|
|
123
178
|
if (prompt.startsWith("/")) {
|
|
124
179
|
runSlash(prompt);
|
|
125
180
|
return;
|
|
126
181
|
}
|
|
127
|
-
|
|
182
|
+
editorRef.current?.setText("");
|
|
183
|
+
setDraft("");
|
|
128
184
|
if (prompt) {
|
|
129
185
|
vm.pushUser(prompt);
|
|
130
186
|
void onSubmit(prompt);
|
|
131
187
|
}
|
|
132
|
-
}
|
|
188
|
+
};
|
|
133
189
|
// (5.3 / v22) Shift+Tab cycles approval modes. Works WHILE a turn streams now:
|
|
134
190
|
// the cycle no longer commits a transcript line (the persistent footer mode
|
|
135
191
|
// badge is the indicator), so it can't split the in-progress assistant message
|
|
@@ -141,25 +197,11 @@ function ChatInner({ vm, onSubmit, onSlash, onInterrupt, availableSlashCommands,
|
|
|
141
197
|
if (vm.busy)
|
|
142
198
|
onInterrupt?.();
|
|
143
199
|
}, { context: "Chat" });
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
if (key.backspace || key.delete) {
|
|
151
|
-
setInput((s) => s.slice(0, -1));
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
if (char && !key.ctrl && !key.meta)
|
|
155
|
-
setInput((s) => s + char);
|
|
156
|
-
});
|
|
157
|
-
// (5.10b) A bracketed paste into Chat keeps its newlines as a multi-line draft
|
|
158
|
-
// (no premature submit — the v15 known gap). Single-line sinks strip newlines.
|
|
159
|
-
usePasteInput("Chat", (text) => {
|
|
160
|
-
if (!vm.busy)
|
|
161
|
-
setInput((s) => s + text);
|
|
162
|
-
});
|
|
200
|
+
// (§G4) Open the full-screen transcript pager (ctrl+o by default).
|
|
201
|
+
useKeybinding("chat:openPager", () => setPagerOpen(true), { context: "Chat", active: !pagerOpen });
|
|
202
|
+
// (7.4) The Chat text sink + paste now belong to <PromptEditor> (multi-line
|
|
203
|
+
// editing, Emacs keys, cursor). meta+m → cycleApprovalMode is a real binding
|
|
204
|
+
// (platformDefaults), no longer a text-sink special case (R1-M2).
|
|
163
205
|
// -- Confirmation context (permission prompt + yolo confirm) --
|
|
164
206
|
useKeybindingContext("Confirmation", confirmActive);
|
|
165
207
|
useTextInput("Confirmation", (char, key) => {
|
|
@@ -246,7 +288,22 @@ function ChatInner({ vm, onSubmit, onSlash, onInterrupt, availableSlashCommands,
|
|
|
246
288
|
const pend = vm.pending;
|
|
247
289
|
const authReq = pend && pend.req.kind !== "question" ? pend.req : null;
|
|
248
290
|
const questionReq = pend && pend.req.kind === "question" ? pend.req : null;
|
|
249
|
-
|
|
291
|
+
// (§G4) Freeze the Static list while paging (see frozenStaticRef). On open we
|
|
292
|
+
// snapshot once; on close we hand back the live list so Static flushes the
|
|
293
|
+
// delta (lines committed during paging) to the restored main screen.
|
|
294
|
+
let staticItems;
|
|
295
|
+
if (pagerOpen) {
|
|
296
|
+
frozenStaticRef.current ??= vm.committedLines();
|
|
297
|
+
staticItems = frozenStaticRef.current;
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
frozenStaticRef.current = null;
|
|
301
|
+
staticItems = vm.committedLines();
|
|
302
|
+
}
|
|
303
|
+
return (_jsxs(_Fragment, { children: [_jsx(Static, { items: staticItems, children: (line, i) => _jsx(LineView, { line: line, rich: true }, i) }, vm.clearGeneration), pagerOpen ? (_jsx(TranscriptPager, { lines: vm.lines, onClose: () => setPagerOpen(false) })) : (_jsxs(Box, { flexDirection: "column", children: [vm.liveLines().map((line, i) => (_jsx(LineView, { line: line, rich: false }, `live-${i}`))), modalNode ? _jsx(Box, { marginTop: 1, children: modalNode }) : null, !modalNode && vm.yoloConfirmPending ? _jsx(YoloConfirm, { theme: theme }) : null, !modalNode && !vm.yoloConfirmPending && authReq ? (_jsx(PermissionDialog, { name: authReq.name, summary: authReq.summary, feedback: feedback, cursor: permCursor, theme: theme, glyphs: glyphs })) : null, !modalNode && questionReq ? (_jsx(QuestionView, { questions: questionReq.questions, onSubmit: (d) => vm.resolveQuestion(d), onCancel: () => vm.resolveQuestion({ kind: "question", answers: {}, declined: true }) })) : null, vm.busy && showInput ? _jsx(Progress, { active: true, tokens: tokens }) : null, _jsxs(Box, { flexDirection: "column", marginTop: showInput && !vm.busy ? 1 : 0, children: [_jsx(PromptEditor, { ref: editorRef, active: showInput, keymap: editorKeymap, busy: vm.busy, onChange: setDraft, onEnter: handleEditorSubmit }), showInput ? (_jsxs(_Fragment, { children: [_jsx(UnifiedAutocomplete, { input: draft, busy: vm.busy, slashCommands: availableSlashCommands ?? [], resources: availableResources ?? [], agents: availableAgents, root: workspaceRoot, onComplete: (t) => {
|
|
304
|
+
editorRef.current?.setText(t);
|
|
305
|
+
setDraft(t);
|
|
306
|
+
}, onExecute: runSlash }), onBashCommand && parseInputMode(draft).mode === "bash" ? (_jsxs(Box, { marginLeft: 2, children: [_jsx(Text, { color: theme.error, children: "! bash mode" }), _jsx(Text, { dimColor: true, children: " \u00B7 enter runs it locally" })] })) : null, _jsx(ModeBadge, { mode: vm.approvalMode, theme: theme, glyphs: glyphs, busy: vm.busy }), vm.lastRequestInputTokens > 0 ? (_jsx(ContextGauge, { used: vm.lastRequestInputTokens, window: typeof contextWindow === "function" ? contextWindow() : contextWindow, theme: theme })) : null] })) : null] })] }))] }));
|
|
250
307
|
}
|
|
251
308
|
function YoloConfirm({ theme }) {
|
|
252
309
|
return (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.error, children: "─".repeat(40) }), _jsx(Text, { color: theme.error, children: "\u26A0 Enter YOLO mode?" }), _jsx(Text, { children: "All tool calls will be auto-approved. Only explicit deny-rules still block." }), _jsx(Text, { dimColor: true, children: "[y] enter yolo \u00B7 [n] cancel" })] }));
|
|
@@ -270,11 +327,19 @@ function ModeBadge({ mode, theme, glyphs, busy, }) {
|
|
|
270
327
|
}
|
|
271
328
|
return (_jsxs(Box, { marginLeft: 2, children: [_jsxs(Text, { color: theme[d.role], children: [d.symbol(glyphs), " ", d.label] }), _jsxs(Text, { dimColor: true, children: [" \u00B7 shift+tab to cycle \u00B7 ", hint] })] }));
|
|
272
329
|
}
|
|
273
|
-
/** (
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
330
|
+
/** (7.4) Footer context gauge — real input-token usage from `usage:turn`. With a
|
|
331
|
+
* known context `window` it draws a `used/window (pct)` bar; otherwise just the
|
|
332
|
+
* absolute count. `formatContextGauge` is the pure, tested core. */
|
|
333
|
+
export function formatContextGauge(used, window) {
|
|
334
|
+
if (!window || window <= 0)
|
|
335
|
+
return `${formatTokenCount(used)} tokens`;
|
|
336
|
+
const pct = Math.min(100, Math.round((used / window) * 100));
|
|
337
|
+
const filled = Math.max(0, Math.min(10, Math.round((used / window) * 10)));
|
|
338
|
+
const bar = "█".repeat(filled) + "░".repeat(10 - filled);
|
|
339
|
+
return `${bar} ${formatTokenCount(used)}/${formatTokenCount(window)} (${pct}%)`;
|
|
340
|
+
}
|
|
341
|
+
function ContextGauge({ used, window, theme, }) {
|
|
342
|
+
const near = window ? used / window >= 0.85 : false;
|
|
343
|
+
return (_jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: near ? theme.error : undefined, dimColor: !near, children: formatContextGauge(used, window) }) }));
|
|
279
344
|
}
|
|
280
345
|
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (7.4 / task 04 W5) Workspace file list for `@file` completion (docs/7.4 §6.3,
|
|
3
|
+
* R1-M3): **git ls-files first** (fast, respects .gitignore), else a CAPPED
|
|
4
|
+
* native glob. Built ONCE per root + cached — never a per-keystroke rescan. The
|
|
5
|
+
* unified autocomplete ranks this cached list via the native fuzzy ranker.
|
|
6
|
+
*/
|
|
7
|
+
/** Upper bound on the indexed file list (R1-M3 — large monorepos stay usable). */
|
|
8
|
+
export declare const FILE_LIST_CAP = 20000;
|
|
9
|
+
/** `{ files, truncated }` — `truncated` when the cap/timeout clipped the list. */
|
|
10
|
+
export interface FileList {
|
|
11
|
+
files: string[];
|
|
12
|
+
truncated: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** Cached workspace file list, built once per `root`. */
|
|
15
|
+
export declare function loadWorkspaceFiles(root: string): Promise<FileList>;
|
|
16
|
+
/** Test seam: drop the cache so a fresh root re-indexes. */
|
|
17
|
+
export declare function __resetFileCacheForTest(): void;
|
|
18
|
+
//# sourceMappingURL=file-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-search.d.ts","sourceRoot":"","sources":["../../src/editor/file-search.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,kFAAkF;AAClF,eAAO,MAAM,aAAa,QAAQ,CAAC;AAInC,kFAAkF;AAClF,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAsDD,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAKlE;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (7.4 / task 04 W5) Workspace file list for `@file` completion (docs/7.4 §6.3,
|
|
3
|
+
* R1-M3): **git ls-files first** (fast, respects .gitignore), else a CAPPED
|
|
4
|
+
* native glob. Built ONCE per root + cached — never a per-keystroke rescan. The
|
|
5
|
+
* unified autocomplete ranks this cached list via the native fuzzy ranker.
|
|
6
|
+
*/
|
|
7
|
+
import { native } from "@chances-ai/native";
|
|
8
|
+
import { spawn } from "node:child_process";
|
|
9
|
+
/** Upper bound on the indexed file list (R1-M3 — large monorepos stay usable). */
|
|
10
|
+
export const FILE_LIST_CAP = 20000;
|
|
11
|
+
/** Cap the git index call so the first `@` never hangs the UI (7.4 R2-N1). */
|
|
12
|
+
const GIT_TIMEOUT_MS = 2000;
|
|
13
|
+
/** `git ls-files` over `root`, ASYNC + timeout so the first `@` never blocks the
|
|
14
|
+
* event loop (7.4 R2-N1). Resolves null when git is absent / not a repo / times
|
|
15
|
+
* out → the caller falls back to the native walker. */
|
|
16
|
+
function gitFiles(root) {
|
|
17
|
+
return new Promise((resolve) => {
|
|
18
|
+
let settled = false;
|
|
19
|
+
const done = (v) => {
|
|
20
|
+
if (!settled) {
|
|
21
|
+
settled = true;
|
|
22
|
+
resolve(v);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
try {
|
|
26
|
+
const p = spawn("git", ["-C", root, "ls-files", "--cached", "--others", "--exclude-standard"], {
|
|
27
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
28
|
+
});
|
|
29
|
+
const timer = setTimeout(() => {
|
|
30
|
+
p.kill();
|
|
31
|
+
done(null);
|
|
32
|
+
}, GIT_TIMEOUT_MS);
|
|
33
|
+
let out = "";
|
|
34
|
+
p.stdout.on("data", (d) => {
|
|
35
|
+
out += d.toString();
|
|
36
|
+
});
|
|
37
|
+
p.on("error", () => {
|
|
38
|
+
clearTimeout(timer);
|
|
39
|
+
done(null);
|
|
40
|
+
});
|
|
41
|
+
p.on("close", (code) => {
|
|
42
|
+
clearTimeout(timer);
|
|
43
|
+
done(code === 0 ? out.split("\n").filter(Boolean) : null);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
done(null);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
async function listFiles(root) {
|
|
52
|
+
const git = await gitFiles(root);
|
|
53
|
+
if (git)
|
|
54
|
+
return { files: git.slice(0, FILE_LIST_CAP), truncated: git.length > FILE_LIST_CAP };
|
|
55
|
+
try {
|
|
56
|
+
const files = await native.glob("**/*", root, { maxResults: FILE_LIST_CAP, timeoutMs: 1500 });
|
|
57
|
+
return { files, truncated: files.length >= FILE_LIST_CAP };
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return { files: [], truncated: false };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
let cache = null;
|
|
64
|
+
let cacheRoot = null;
|
|
65
|
+
/** Cached workspace file list, built once per `root`. */
|
|
66
|
+
export function loadWorkspaceFiles(root) {
|
|
67
|
+
if (cache && cacheRoot === root)
|
|
68
|
+
return cache;
|
|
69
|
+
cacheRoot = root;
|
|
70
|
+
cache = listFiles(root);
|
|
71
|
+
return cache;
|
|
72
|
+
}
|
|
73
|
+
/** Test seam: drop the cache so a fresh root re-indexes. */
|
|
74
|
+
export function __resetFileCacheForTest() {
|
|
75
|
+
cache = null;
|
|
76
|
+
cacheRoot = null;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=file-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-search.js","sourceRoot":"","sources":["../../src/editor/file-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type EditorKeymap } from "@chances-ai/ui-core";
|
|
2
|
+
/**
|
|
3
|
+
* (7.4 / task 04 W4) The multi-line prompt editor — replaces app.tsx's
|
|
4
|
+
* append-only input. Owns an `EmacsEditor` (docs/7.4 §5.1, R1-M4): the Chat
|
|
5
|
+
* **text-sink** forwards RAW key tokens (via ink-ext `keyToken`) to
|
|
6
|
+
* `editor.handle`, never pre-resolving actions, so a vim editor could drop in.
|
|
7
|
+
* Emacs editing keys live in the editor's keymap (rebindable via keybindings.json
|
|
8
|
+
* `Editor` context). Submit/cycle-mode/cancel stay ink-ext Chat actions in app.tsx.
|
|
9
|
+
*
|
|
10
|
+
* **Width contract (R1-M1, refined):** layout + render must share one MeasureFn.
|
|
11
|
+
* On stock Ink the effective render width IS `string-width` (Ink's own text
|
|
12
|
+
* layout), so the editor measures with ui-core `graphemeWidth` (= string-width)
|
|
13
|
+
* — NOT native unicode-width, which could disagree with Ink and drift the cursor.
|
|
14
|
+
* `graphemeWidth` is cluster-aware, so emoji/CJK columns stay correct.
|
|
15
|
+
*/
|
|
16
|
+
export interface PromptEditorHandle {
|
|
17
|
+
setText(text: string): void;
|
|
18
|
+
getText(): string;
|
|
19
|
+
}
|
|
20
|
+
export interface PromptEditorProps {
|
|
21
|
+
/** token → editor action (merged keybindings.json `Editor` context). */
|
|
22
|
+
keymap: EditorKeymap;
|
|
23
|
+
/** While a turn streams: submit is blocked + the prompt dims (draft kept). */
|
|
24
|
+
busy: boolean;
|
|
25
|
+
/** When false (a modal/permission/yolo overlay is up) the editor keeps its
|
|
26
|
+
* draft but registers no input + renders nothing — so the draft survives a
|
|
27
|
+
* transient overlay (e.g. shift+tab → yolo confirm) and keys reach the overlay. */
|
|
28
|
+
active: boolean;
|
|
29
|
+
/** Fires on every text change (parent mirrors it for slash/@ autocomplete). */
|
|
30
|
+
onChange: (text: string) => void;
|
|
31
|
+
/** Fires when the user presses Enter to submit (parent routes /exit, slash, …). */
|
|
32
|
+
onEnter: (text: string) => void;
|
|
33
|
+
}
|
|
34
|
+
export declare const PromptEditor: import("react").ForwardRefExoticComponent<PromptEditorProps & import("react").RefAttributes<PromptEditorHandle>>;
|
|
35
|
+
//# sourceMappingURL=prompt-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-editor.d.ts","sourceRoot":"","sources":["../../src/editor/prompt-editor.tsx"],"names":[],"mappings":"AAQA,OAAO,EAKL,KAAK,YAAY,EAGlB,MAAM,qBAAqB,CAAC;AAuC7B;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,IAAI,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,MAAM,EAAE,YAAY,CAAC;IACrB,8EAA8E;IAC9E,IAAI,EAAE,OAAO,CAAC;IACd;;wFAEoF;IACpF,MAAM,EAAE,OAAO,CAAC;IAChB,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,mFAAmF;IACnF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAyED,eAAO,MAAM,YAAY,kHAuFvB,CAAC"}
|