@chances-ai/tui 14.0.0 → 16.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/api-key-prompt.d.ts +8 -15
- package/dist/api-key-prompt.d.ts.map +1 -1
- package/dist/api-key-prompt.js +18 -30
- package/dist/api-key-prompt.js.map +1 -1
- package/dist/app.d.ts +5 -8
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +167 -100
- package/dist/app.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/modal.d.ts +3 -2
- package/dist/modal.d.ts.map +1 -1
- package/dist/modal.js +3 -2
- package/dist/modal.js.map +1 -1
- package/dist/model-picker.d.ts +7 -39
- package/dist/model-picker.d.ts.map +1 -1
- package/dist/model-picker.js +14 -67
- package/dist/model-picker.js.map +1 -1
- package/dist/select-multi.d.ts +36 -0
- package/dist/select-multi.d.ts.map +1 -0
- package/dist/select-multi.js +104 -0
- package/dist/select-multi.js.map +1 -0
- package/dist/select.d.ts +63 -0
- package/dist/select.d.ts.map +1 -0
- package/dist/select.js +122 -0
- package/dist/select.js.map +1 -0
- package/dist/session-picker.d.ts +7 -15
- package/dist/session-picker.d.ts.map +1 -1
- package/dist/session-picker.js +14 -42
- package/dist/session-picker.js.map +1 -1
- package/dist/slash-typeahead.d.ts +34 -0
- package/dist/slash-typeahead.d.ts.map +1 -0
- package/dist/slash-typeahead.js +78 -0
- package/dist/slash-typeahead.js.map +1 -0
- package/dist/user-question.d.ts +26 -0
- package/dist/user-question.d.ts.map +1 -0
- package/dist/user-question.js +140 -0
- package/dist/user-question.js.map +1 -0
- package/dist/view-model.d.ts +9 -2
- package/dist/view-model.d.ts.map +1 -1
- package/dist/view-model.js +41 -13
- package/dist/view-model.js.map +1 -1
- package/package.json +6 -5
package/dist/api-key-prompt.d.ts
CHANGED
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
import { type JSX } from "react";
|
|
2
|
-
import type { PickerKey } from "./model-picker.js";
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
resolved?: string | null;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Single-line masked input for credentials. Characters are stored verbatim
|
|
14
|
-
* but rendered as `•`. Enter submits, Esc cancels, empty-Enter cancels.
|
|
3
|
+
* (5.10 A4) Single-line masked credential input — now on the input bus rather
|
|
4
|
+
* than its own `useInput`. It owns the modal `Modal` context (masks chat) and
|
|
5
|
+
* registers `modal:accept` (Enter) / `modal:cancel` (Esc) plus a text sink for
|
|
6
|
+
* editing. Enter on empty cancels (distinguishes "gave up" from a real key);
|
|
7
|
+
* `ctrl+c` is the bus's non-stoppable force-exit, so it can never pollute the
|
|
8
|
+
* credential (the old reducer needed an explicit guard for this).
|
|
15
9
|
*
|
|
16
|
-
*
|
|
17
|
-
* that's a `/provider add`
|
|
18
|
-
* don't want to make from the TUI layer.
|
|
10
|
+
* Characters are stored verbatim but rendered as `•`. No clipboard-paste
|
|
11
|
+
* detection or provider validation — that's a `/provider add` concern.
|
|
19
12
|
*/
|
|
20
13
|
export declare function ApiKeyPrompt({ provider, onSubmit, }: {
|
|
21
14
|
provider: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key-prompt.d.ts","sourceRoot":"","sources":["../src/api-key-prompt.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"api-key-prompt.d.ts","sourceRoot":"","sources":["../src/api-key-prompt.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAI3C;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACxC,GAAG,GAAG,CAAC,OAAO,CAwBd"}
|
package/dist/api-key-prompt.js
CHANGED
|
@@ -1,42 +1,30 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
3
|
import { useState } from "react";
|
|
4
|
+
import { useKeybinding, useKeybindingContext, useTextInput } from "@chances-ai/ink-ext";
|
|
4
5
|
import { useTheme } from "./theme-context.js";
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return { value, resolved: null };
|
|
13
|
-
if (key.return)
|
|
14
|
-
return { value, resolved: value.length > 0 ? value : null };
|
|
15
|
-
if (key.backspace || key.delete)
|
|
16
|
-
return { value: value.slice(0, -1) };
|
|
17
|
-
if (char && !key.ctrl && !key.meta)
|
|
18
|
-
return { value: value + char };
|
|
19
|
-
return { value };
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Single-line masked input for credentials. Characters are stored verbatim
|
|
23
|
-
* but rendered as `•`. Enter submits, Esc cancels, empty-Enter cancels.
|
|
7
|
+
* (5.10 A4) Single-line masked credential input — now on the input bus rather
|
|
8
|
+
* than its own `useInput`. It owns the modal `Modal` context (masks chat) and
|
|
9
|
+
* registers `modal:accept` (Enter) / `modal:cancel` (Esc) plus a text sink for
|
|
10
|
+
* editing. Enter on empty cancels (distinguishes "gave up" from a real key);
|
|
11
|
+
* `ctrl+c` is the bus's non-stoppable force-exit, so it can never pollute the
|
|
12
|
+
* credential (the old reducer needed an explicit guard for this).
|
|
24
13
|
*
|
|
25
|
-
*
|
|
26
|
-
* that's a `/provider add`
|
|
27
|
-
* don't want to make from the TUI layer.
|
|
14
|
+
* Characters are stored verbatim but rendered as `•`. No clipboard-paste
|
|
15
|
+
* detection or provider validation — that's a `/provider add` concern.
|
|
28
16
|
*/
|
|
29
17
|
export function ApiKeyPrompt({ provider, onSubmit, }) {
|
|
30
18
|
const { theme } = useTheme();
|
|
31
19
|
const [value, setValue] = useState("");
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
setValue(
|
|
20
|
+
useKeybindingContext("Modal", true);
|
|
21
|
+
useKeybinding("modal:cancel", () => onSubmit(null), { context: "Modal" });
|
|
22
|
+
useKeybinding("modal:accept", () => onSubmit(value.length > 0 ? value : null), { context: "Modal" });
|
|
23
|
+
useTextInput("Modal", (char, key) => {
|
|
24
|
+
if (key.backspace || key.delete)
|
|
25
|
+
setValue((v) => v.slice(0, -1));
|
|
26
|
+
else if (char && !key.ctrl && !key.meta)
|
|
27
|
+
setValue((v) => v + char);
|
|
40
28
|
});
|
|
41
29
|
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.warning, paddingX: 1, children: [_jsxs(Text, { color: theme.warning, children: ["API key for ", provider, " \u00B7 Enter \u00B7 Esc to cancel"] }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { children: "\u203A " }), _jsx(Text, { color: theme.success, children: "•".repeat(value.length) })] }), _jsx(Text, { dimColor: true, children: "(input is masked; the key is written to ~/.config/chances/auth.json with 0600 perms)" })] }));
|
|
42
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key-prompt.js","sourceRoot":"","sources":["../src/api-key-prompt.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"api-key-prompt.js","sourceRoot":"","sources":["../src/api-key-prompt.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAY,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAQ,GAIT;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,aAAa,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,aAAa,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACrG,YAAY,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClC,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM;YAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,aACrF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,OAAO,6BAAe,QAAQ,0CAAgC,EACjF,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,aACf,KAAC,IAAI,0BAAU,EACf,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,OAAO,YAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAQ,IACzD,EACN,KAAC,IAAI,IAAC,QAAQ,2GAEP,IACH,CACP,CAAC;AACJ,CAAC"}
|
package/dist/app.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { type JSX } from "react";
|
|
2
|
+
import { type SlashSuggestion } from "./slash-typeahead.js";
|
|
3
|
+
export { suggestSlashCommands } from "./slash-typeahead.js";
|
|
4
|
+
export type { SlashSuggestion } from "./slash-typeahead.js";
|
|
2
5
|
import type { ThemeSetting } from "./theme.js";
|
|
3
6
|
import { type ChatViewModel } from "./view-model.js";
|
|
4
7
|
import type { ModalController } from "./modal.js";
|
|
5
|
-
export interface SlashSuggestion {
|
|
6
|
-
name: string;
|
|
7
|
-
description: string;
|
|
8
|
-
}
|
|
9
8
|
/** (5.4) An MCP resource the user can reference with `@<server>:<uri>`. */
|
|
10
9
|
export interface ResourceSuggestion {
|
|
11
10
|
/** `<server>:<uri>` — the text inserted after `@`. */
|
|
@@ -30,11 +29,9 @@ export interface ChatAppProps {
|
|
|
30
29
|
/** (5.9) Syntax-highlight code/diffs (`config.tui.syntaxHighlight`). Default true. */
|
|
31
30
|
syntaxHighlight?: boolean;
|
|
32
31
|
}
|
|
33
|
-
/** Pure helper for picking the suggestions to show for a partial input. */
|
|
34
|
-
export declare function suggestSlashCommands(input: string, available: SlashSuggestion[]): SlashSuggestion[];
|
|
35
32
|
/** (5.4) Pure helper for `@<server>:<uri>` mention autocomplete. */
|
|
36
33
|
export declare function suggestResourceMentions(input: string, available: ResourceSuggestion[]): ResourceSuggestion[];
|
|
37
|
-
/** Public entry: wraps the chat in the theme provider
|
|
38
|
-
* one
|
|
34
|
+
/** Public entry: wraps the chat in the theme provider + the single input bus so
|
|
35
|
+
* every component reads one palette and one keymap. */
|
|
39
36
|
export declare function ChatApp(props: ChatAppProps): JSX.Element;
|
|
40
37
|
//# 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,EAA6C,KAAK,GAAG,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AACA,OAAO,EAA6C,KAAK,GAAG,EAAkB,MAAM,OAAO,CAAC;AAS5F,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5E,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,iBAAiB,CAAC;AAC7E,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;;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,wEAAwE;IACxE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,sFAAsF;IACtF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;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"}
|
package/dist/app.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Static, Text, useApp
|
|
2
|
+
import { Box, Static, Text, useApp } from "ink";
|
|
3
3
|
import { useEffect, useState, useSyncExternalStore } from "react";
|
|
4
|
+
import { KeybindingProvider, useKeybinding, useKeybindingContext, usePasteInput, useTextInput, } from "@chances-ai/ink-ext";
|
|
5
|
+
import { SlashTypeahead } from "./slash-typeahead.js";
|
|
6
|
+
// Re-exported for backward compat: `suggestSlashCommands`/`SlashSuggestion` moved
|
|
7
|
+
// to slash-typeahead.tsx (5.10 A3) but several call sites + tests import them here.
|
|
8
|
+
export { suggestSlashCommands } from "./slash-typeahead.js";
|
|
4
9
|
import { looksLikeDiff } from "./diff-model.js";
|
|
5
10
|
import { DiffView } from "./diff-view.js";
|
|
6
11
|
import { Markdown } from "./markdown.js";
|
|
@@ -8,6 +13,7 @@ import { Progress } from "./progress.js";
|
|
|
8
13
|
import { ToolMessage } from "./tool-message.js";
|
|
9
14
|
import { useTheme, ThemeProvider } from "./theme-context.js";
|
|
10
15
|
import { extractDiff } from "./view-model.js";
|
|
16
|
+
import { QuestionView } from "./user-question.js";
|
|
11
17
|
/** (5.3 / 5.9) Footer presentation per approval mode: glyph + theme role.
|
|
12
18
|
* `default` is a dim discoverability hint; the rest are colored badges. */
|
|
13
19
|
const MODE_DISPLAY = {
|
|
@@ -35,15 +41,6 @@ function LineView({ line, rich, width }) {
|
|
|
35
41
|
return _jsx(Text, { dimColor: true, children: line.text });
|
|
36
42
|
}
|
|
37
43
|
}
|
|
38
|
-
/** Pure helper for picking the suggestions to show for a partial input. */
|
|
39
|
-
export function suggestSlashCommands(input, available) {
|
|
40
|
-
if (!input.startsWith("/"))
|
|
41
|
-
return [];
|
|
42
|
-
const partial = input.slice(1).toLowerCase();
|
|
43
|
-
if (partial === "")
|
|
44
|
-
return available.slice(0, 5);
|
|
45
|
-
return available.filter((c) => c.name.toLowerCase().startsWith(partial)).slice(0, 5);
|
|
46
|
-
}
|
|
47
44
|
/** (5.4) Pure helper for `@<server>:<uri>` mention autocomplete. */
|
|
48
45
|
export function suggestResourceMentions(input, available) {
|
|
49
46
|
if (input.startsWith("/"))
|
|
@@ -56,120 +53,196 @@ export function suggestResourceMentions(input, available) {
|
|
|
56
53
|
return available.slice(0, 5);
|
|
57
54
|
return available.filter((r) => r.ref.toLowerCase().startsWith(partial)).slice(0, 5);
|
|
58
55
|
}
|
|
59
|
-
/** Public entry: wraps the chat in the theme provider
|
|
60
|
-
* one
|
|
56
|
+
/** Public entry: wraps the chat in the theme provider + the single input bus so
|
|
57
|
+
* every component reads one palette and one keymap. */
|
|
61
58
|
export function ChatApp(props) {
|
|
62
|
-
return (_jsx(ThemeProvider, { setting: props.themeSetting, syntaxHighlight: props.syntaxHighlight, children: _jsx(
|
|
59
|
+
return (_jsx(ThemeProvider, { setting: props.themeSetting, syntaxHighlight: props.syntaxHighlight, children: _jsx(ChatBusWrapper, { ...props }) }));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* (5.10 A1/A4 migration) Owns the modal slot + the single root input bus, which
|
|
63
|
+
* is now the ONLY Ink input consumer in the tree — every picker (Model/Session
|
|
64
|
+
* via `Select`, ApiKey via the `Modal` context) registers on the bus instead of
|
|
65
|
+
* opening its own `useInput`. A picker masks chat structurally by pushing its
|
|
66
|
+
* modal context (`Select`/`Modal`), so the old `if (modalNode) return` gate is
|
|
67
|
+
* no longer needed. Permission / yolo overlays run through `Confirmation`.
|
|
68
|
+
*/
|
|
69
|
+
function ChatBusWrapper(props) {
|
|
70
|
+
const { exit } = useApp();
|
|
71
|
+
const [modalNode, setModalNode] = useState(null);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
if (!props.modal)
|
|
74
|
+
return;
|
|
75
|
+
return props.modal.attach((node) => setModalNode(node));
|
|
76
|
+
}, [props.modal]);
|
|
77
|
+
return (_jsx(KeybindingProvider, { onForceExit: () => exit(), children: _jsx(ChatInner, { ...props, modalNode: modalNode }) }));
|
|
63
78
|
}
|
|
64
|
-
function ChatInner({ vm, onSubmit, onSlash,
|
|
79
|
+
function ChatInner({ vm, onSubmit, onSlash, availableSlashCommands, availableResources, modalNode, }) {
|
|
65
80
|
useSyncExternalStore(vm.subscribe, vm.getSnapshot, vm.getSnapshot);
|
|
66
81
|
const { theme, glyphs } = useTheme();
|
|
67
82
|
const [input, setInput] = useState("");
|
|
68
|
-
const [modalNode, setModalNode] = useState(null);
|
|
69
83
|
// (5.3) Non-null while the "no, and tell the model" feedback field is open.
|
|
70
84
|
const [feedback, setFeedback] = useState(null);
|
|
85
|
+
// (5.10b) Cursor over the 4 permission options for ↑↓ navigation. The y/a/n/d +
|
|
86
|
+
// 1/2/3 shortcuts still select directly and bypass it.
|
|
87
|
+
const [permCursor, setPermCursor] = useState(0);
|
|
71
88
|
const { exit } = useApp();
|
|
72
|
-
useEffect(() => {
|
|
73
|
-
if (!modal)
|
|
74
|
-
return;
|
|
75
|
-
return modal.attach((node) => setModalNode(node));
|
|
76
|
-
}, [modal]);
|
|
77
89
|
// (5.3 codex R2 SHOULD-FIX #4) Drop half-typed feedback when the prompt changes.
|
|
78
90
|
useEffect(() => {
|
|
79
91
|
setFeedback(null);
|
|
92
|
+
setPermCursor(0);
|
|
80
93
|
}, [vm.pending]);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
94
|
+
// (5.10 A1) The permission prompt + yolo confirm both live in the modal
|
|
95
|
+
// `Confirmation` context: while either is up it masks `Chat`, so the chat
|
|
96
|
+
// input below receives nothing — the old `if (vm.pending) … return` guards,
|
|
97
|
+
// now structural. v15 keeps the v14 char keys (y/a/n/d + 1/2/3); the Select
|
|
98
|
+
// migration of this prompt is v16.
|
|
99
|
+
// (5.10b) A question pending drives QuestionView's own Select/Modal contexts —
|
|
100
|
+
// it must NOT also light up the Confirmation (y/a/n/d) context.
|
|
101
|
+
const confirmActive = (vm.pending !== null && vm.pending.req.kind !== "question") || vm.yoloConfirmPending;
|
|
102
|
+
// Run a `/command` line: clear the draft, echo it, dispatch via the host.
|
|
103
|
+
// Shared by chat:submit (typed "/foo args") and SlashTypeahead's Enter
|
|
104
|
+
// (executes the SELECTED command, no args — the menu only shows pre-space).
|
|
105
|
+
const runSlash = (line) => {
|
|
106
|
+
setInput("");
|
|
107
|
+
vm.pushUser(line);
|
|
108
|
+
if (onSlash)
|
|
109
|
+
void onSlash(line);
|
|
110
|
+
else
|
|
111
|
+
vm.pushError(`Unknown command: ${line}`);
|
|
112
|
+
};
|
|
113
|
+
// -- Chat context (base) --
|
|
114
|
+
useKeybinding("chat:submit", () => {
|
|
115
|
+
const prompt = input.trim();
|
|
116
|
+
if (prompt === "/exit" || prompt === "/quit") {
|
|
117
|
+
exit();
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
// (5.8 codex R2) Block submission while a turn streams; keep the draft.
|
|
121
|
+
if (vm.busy)
|
|
84
122
|
return;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
123
|
+
if (prompt.startsWith("/")) {
|
|
124
|
+
runSlash(prompt);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
setInput("");
|
|
128
|
+
if (prompt) {
|
|
129
|
+
vm.pushUser(prompt);
|
|
130
|
+
void onSubmit(prompt);
|
|
131
|
+
}
|
|
132
|
+
}, { context: "Chat" });
|
|
133
|
+
// (5.3) Shift+Tab cycles approval modes; not while a turn streams (cycling
|
|
134
|
+
// would commit a status line and split the in-progress assistant message).
|
|
135
|
+
useKeybinding("chat:cycleApprovalMode", () => {
|
|
136
|
+
if (!vm.busy)
|
|
137
|
+
vm.cycleApprovalMode();
|
|
138
|
+
}, { context: "Chat" });
|
|
139
|
+
useTextInput("Chat", (char, key) => {
|
|
140
|
+
// meta+m is the Windows fallback for Shift+Tab (no `shift+tab` token there).
|
|
141
|
+
if (key.meta && char === "m") {
|
|
142
|
+
if (!vm.busy)
|
|
90
143
|
vm.cycleApprovalMode();
|
|
91
144
|
return;
|
|
92
145
|
}
|
|
93
|
-
|
|
146
|
+
if (key.backspace || key.delete) {
|
|
147
|
+
setInput((s) => s.slice(0, -1));
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (char && !key.ctrl && !key.meta)
|
|
151
|
+
setInput((s) => s + char);
|
|
152
|
+
});
|
|
153
|
+
// (5.10b) A bracketed paste into Chat keeps its newlines as a multi-line draft
|
|
154
|
+
// (no premature submit — the v15 known gap). Single-line sinks strip newlines.
|
|
155
|
+
usePasteInput("Chat", (text) => {
|
|
156
|
+
if (!vm.busy)
|
|
157
|
+
setInput((s) => s + text);
|
|
158
|
+
});
|
|
159
|
+
// -- Confirmation context (permission prompt + yolo confirm) --
|
|
160
|
+
useKeybindingContext("Confirmation", confirmActive);
|
|
161
|
+
useTextInput("Confirmation", (char, key) => {
|
|
94
162
|
if (vm.yoloConfirmPending) {
|
|
95
163
|
if (char === "y")
|
|
96
164
|
vm.resolveYoloConfirm(true);
|
|
97
|
-
else if (char === "n"
|
|
165
|
+
else if (char === "n")
|
|
98
166
|
vm.resolveYoloConfirm(false);
|
|
99
167
|
return;
|
|
100
168
|
}
|
|
101
|
-
if (vm.pending)
|
|
102
|
-
// (5.3) Feedback-capture sub-mode: typing builds the deny note.
|
|
103
|
-
if (feedback !== null) {
|
|
104
|
-
if (key.return) {
|
|
105
|
-
const note = feedback.trim();
|
|
106
|
-
setFeedback(null);
|
|
107
|
-
vm.resolvePermission({ allow: false, feedback: note || undefined });
|
|
108
|
-
}
|
|
109
|
-
else if (key.escape) {
|
|
110
|
-
setFeedback(null);
|
|
111
|
-
}
|
|
112
|
-
else if (key.backspace || key.delete) {
|
|
113
|
-
setFeedback((s) => (s ?? "").slice(0, -1));
|
|
114
|
-
}
|
|
115
|
-
else if (char && !key.ctrl && !key.meta) {
|
|
116
|
-
setFeedback((s) => (s ?? "") + char);
|
|
117
|
-
}
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
// (5.9) 4-way prompt as a numbered list: number OR letter selects the
|
|
121
|
-
// SAME v13 decision (look-only reskin — no Select navigation yet, v15).
|
|
122
|
-
if (char === "y" || char === "1")
|
|
123
|
-
vm.resolvePermission({ allow: true });
|
|
124
|
-
else if (char === "a" || char === "2")
|
|
125
|
-
vm.resolvePermission({ allow: true, remember: true });
|
|
126
|
-
else if (char === "n" || char === "3")
|
|
127
|
-
vm.resolvePermission({ allow: false });
|
|
128
|
-
else if (char === "d")
|
|
129
|
-
setFeedback("");
|
|
130
|
-
else if (key.escape)
|
|
131
|
-
vm.resolvePermission({ allow: false });
|
|
169
|
+
if (vm.pending === null)
|
|
132
170
|
return;
|
|
133
|
-
|
|
134
|
-
if (
|
|
135
|
-
|
|
171
|
+
// (5.3) Feedback-capture sub-mode: typing builds the deny note.
|
|
172
|
+
if (feedback !== null) {
|
|
173
|
+
if (key.backspace || key.delete)
|
|
174
|
+
setFeedback((s) => (s ?? "").slice(0, -1));
|
|
175
|
+
else if (char && !key.ctrl && !key.meta)
|
|
176
|
+
setFeedback((s) => (s ?? "") + char);
|
|
136
177
|
return;
|
|
137
178
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
else
|
|
153
|
-
vm.pushError(`Unknown command: ${prompt}`);
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
if (prompt) {
|
|
157
|
-
vm.pushUser(prompt);
|
|
158
|
-
void onSubmit(prompt);
|
|
159
|
-
}
|
|
179
|
+
// (5.9) 4-way prompt: number OR letter selects the same decision.
|
|
180
|
+
if (char === "y" || char === "1")
|
|
181
|
+
vm.resolvePermission({ allow: true });
|
|
182
|
+
else if (char === "a" || char === "2")
|
|
183
|
+
vm.resolvePermission({ allow: true, remember: true });
|
|
184
|
+
else if (char === "n" || char === "3")
|
|
185
|
+
vm.resolvePermission({ allow: false });
|
|
186
|
+
else if (char === "d")
|
|
187
|
+
setFeedback("");
|
|
188
|
+
}, { active: confirmActive });
|
|
189
|
+
useKeybinding("confirm:cancel", // escape
|
|
190
|
+
() => {
|
|
191
|
+
if (vm.yoloConfirmPending) {
|
|
192
|
+
vm.resolveYoloConfirm(false);
|
|
160
193
|
return;
|
|
161
194
|
}
|
|
162
|
-
if (
|
|
163
|
-
|
|
195
|
+
if (vm.pending === null)
|
|
196
|
+
return;
|
|
197
|
+
if (feedback !== null)
|
|
198
|
+
setFeedback(null);
|
|
199
|
+
else
|
|
200
|
+
vm.resolvePermission({ allow: false });
|
|
201
|
+
}, { context: "Confirmation", active: confirmActive });
|
|
202
|
+
// (5.10b) ↑↓ move the highlighted permission option; Enter selects it. The
|
|
203
|
+
// shortcuts (y/a/n/d, 1/2/3) still select directly via the text handler above.
|
|
204
|
+
const choosePermission = (cursor) => {
|
|
205
|
+
if (cursor === 0)
|
|
206
|
+
vm.resolvePermission({ allow: true });
|
|
207
|
+
else if (cursor === 1)
|
|
208
|
+
vm.resolvePermission({ allow: true, remember: true });
|
|
209
|
+
else if (cursor === 2)
|
|
210
|
+
vm.resolvePermission({ allow: false });
|
|
211
|
+
else
|
|
212
|
+
setFeedback(""); // cursor 3 → deny-with-feedback
|
|
213
|
+
};
|
|
214
|
+
const permNavigable = vm.pending !== null && !vm.yoloConfirmPending && feedback === null;
|
|
215
|
+
useKeybinding("confirm:previous", () => {
|
|
216
|
+
if (permNavigable)
|
|
217
|
+
setPermCursor((c) => Math.max(0, c - 1));
|
|
218
|
+
}, { context: "Confirmation", active: confirmActive });
|
|
219
|
+
useKeybinding("confirm:next", () => {
|
|
220
|
+
if (permNavigable)
|
|
221
|
+
setPermCursor((c) => Math.min(3, c + 1));
|
|
222
|
+
}, { context: "Confirmation", active: confirmActive });
|
|
223
|
+
useKeybinding("confirm:accept", // return: send the feedback note, or select the highlighted option
|
|
224
|
+
() => {
|
|
225
|
+
if (vm.pending === null)
|
|
226
|
+
return;
|
|
227
|
+
if (feedback !== null) {
|
|
228
|
+
const note = feedback.trim();
|
|
229
|
+
setFeedback(null);
|
|
230
|
+
vm.resolvePermission({ allow: false, feedback: note || undefined });
|
|
164
231
|
return;
|
|
165
232
|
}
|
|
166
|
-
if (
|
|
167
|
-
|
|
168
|
-
});
|
|
233
|
+
if (!vm.yoloConfirmPending)
|
|
234
|
+
choosePermission(permCursor);
|
|
235
|
+
}, { context: "Confirmation", active: confirmActive });
|
|
169
236
|
const liveAssistant = vm.liveLines().find((l) => l.kind === "assistant");
|
|
170
237
|
const tokens = liveAssistant ? Math.round(liveAssistant.text.length / 4) : 0;
|
|
171
238
|
const showInput = !modalNode && !vm.yoloConfirmPending && !vm.pending;
|
|
172
|
-
|
|
239
|
+
// (5.10b) The permission dialog only renders the authorization variant; the
|
|
240
|
+
// question variant (B2) renders via QuestionView. Narrow here so `.summary`
|
|
241
|
+
// is typed (the pending slot now carries a discriminated union).
|
|
242
|
+
const pend = vm.pending;
|
|
243
|
+
const authReq = pend && pend.req.kind !== "question" ? pend.req : null;
|
|
244
|
+
const questionReq = pend && pend.req.kind === "question" ? pend.req : null;
|
|
245
|
+
return (_jsxs(_Fragment, { children: [_jsx(Static, { items: vm.committedLines(), children: (line, i) => _jsx(LineView, { line: line, rich: true }, i) }, vm.clearGeneration), _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, showInput ? (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { marginTop: vm.busy ? 0 : 1, children: [_jsxs(Text, { color: vm.busy ? undefined : theme.accent, dimColor: vm.busy, children: [glyphs.prompt, " "] }), _jsx(Text, { children: input })] }), _jsx(SlashTypeahead, { input: input, available: availableSlashCommands ?? [], busy: vm.busy, onComplete: setInput, onExecute: runSlash }), _jsx(MentionAutocomplete, { input: input, available: availableResources ?? [] }), _jsx(ModeBadge, { mode: vm.approvalMode, theme: theme, glyphs: glyphs, busy: vm.busy })] })) : null] })] }));
|
|
173
246
|
}
|
|
174
247
|
function YoloConfirm({ theme }) {
|
|
175
248
|
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" })] }));
|
|
@@ -177,12 +250,12 @@ function YoloConfirm({ theme }) {
|
|
|
177
250
|
/** (5.9) Top-rule-only permission dialog with an embedded structured diff (for
|
|
178
251
|
* write/edit) and a `❯`-marked numbered option list. Same v13 keys (y/a/n/d +
|
|
179
252
|
* 1/2/3) — this is a visual reskin, not the v15 Select interaction. */
|
|
180
|
-
function PermissionDialog({ name, summary, feedback, theme, glyphs, }) {
|
|
253
|
+
function PermissionDialog({ name, summary, feedback, cursor, theme, glyphs, }) {
|
|
181
254
|
const diff = looksLikeDiff(summary) ? extractDiff(summary) : null;
|
|
182
255
|
// The summary's first line is the human title (e.g. "overwrite path"); the
|
|
183
256
|
// diff (if any) renders structured below, so don't repeat it as raw text.
|
|
184
257
|
const titleLine = summary.split("\n")[0] ?? summary;
|
|
185
|
-
return (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.permission, children: "─".repeat(40) }), _jsxs(Text, { color: theme.permission, bold: true, children: ["Approve ", name, "?"] }), _jsx(Text, { children: titleLine }), diff ? _jsx(DiffView, { diff: diff, anchored: name === "write" }) : null, feedback !== null ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "tell the model what to do instead:" }), _jsxs(Box, { children: [_jsxs(Text, { color: theme.accent, children: [glyphs.prompt, " "] }), _jsx(Text, { children: feedback }), _jsx(Text, { dimColor: true, children: "\u258C" })] }), _jsx(Text, { dimColor: true, children: "[enter] send \u00B7 [esc] back" })] })) : (
|
|
258
|
+
return (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.permission, children: "─".repeat(40) }), _jsxs(Text, { color: theme.permission, bold: true, children: ["Approve ", name, "?"] }), _jsx(Text, { children: titleLine }), diff ? _jsx(DiffView, { diff: diff, anchored: name === "write" }) : null, feedback !== null ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "tell the model what to do instead:" }), _jsxs(Box, { children: [_jsxs(Text, { color: theme.accent, children: [glyphs.prompt, " "] }), _jsx(Text, { children: feedback }), _jsx(Text, { dimColor: true, children: "\u258C" })] }), _jsx(Text, { dimColor: true, children: "[enter] send \u00B7 [esc] back" })] })) : (_jsx(Box, { flexDirection: "column", marginTop: 1, children: ["1 Yes", "2 Yes, don't ask again", "3 No (esc)", "d No, and tell the model what to do"].map((label, i) => (_jsxs(Text, { color: i === cursor ? theme.permission : undefined, children: [i === cursor ? `${glyphs.prompt} ` : " ", label] }, label))) }))] }));
|
|
186
259
|
}
|
|
187
260
|
/** (5.3 / 5.9) Footer approval-mode indicator — a single dim line. */
|
|
188
261
|
function ModeBadge({ mode, theme, glyphs, busy, }) {
|
|
@@ -193,12 +266,6 @@ function ModeBadge({ mode, theme, glyphs, busy, }) {
|
|
|
193
266
|
}
|
|
194
267
|
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] })] }));
|
|
195
268
|
}
|
|
196
|
-
function SlashAutocomplete({ input, available, }) {
|
|
197
|
-
const matches = suggestSlashCommands(input, available);
|
|
198
|
-
if (matches.length === 0)
|
|
199
|
-
return null;
|
|
200
|
-
return (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: matches.map((m) => (_jsxs(Text, { dimColor: true, children: ["/", m.name, " \u2014 ", m.description] }, m.name))) }));
|
|
201
|
-
}
|
|
202
269
|
/** (5.4) Ghost-text hints for `@<server>:<uri>` resource mentions. */
|
|
203
270
|
function MentionAutocomplete({ input, available, }) {
|
|
204
271
|
const matches = suggestResourceMentions(input, available);
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAA4B,MAAM,OAAO,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAiC,MAAM,iBAAiB,CAAC;AAG7E;4EAC4E;AAC5E,MAAM,YAAY,GAAgJ;IAChK,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;IAClE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;IAChF,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IAChE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;CAChE,CAAC;AAEF;;;oBAGoB;AACpB,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAiD;IACpF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACrC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,CACL,KAAC,WAAW,IACV,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EACzB,UAAU,EAAE,IAAI,CAAC,IAAI,EACrB,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;QACJ,KAAK,WAAW;YACd,OAAO,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,CAAC,CAAC,CAAC,KAAC,IAAI,cAAE,IAAI,CAAC,IAAI,GAAQ,CAAC;QACzE,KAAK,MAAM;YACT,OAAO,CACL,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,MAAC,IAAI,IAAC,eAAe,EAAE,KAAK,CAAC,aAAa,kBAAI,IAAI,CAAC,IAAI,SAAS,GAC5D,CACP,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,wBAAK,IAAI,CAAC,IAAI,IAAQ,CAAC;QACxD;YACE,OAAO,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,CAAC,IAAI,GAAQ,CAAC;IAC7C,CAAC;AACH,CAAC;AAiCD,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,SAA4B;IAE5B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,SAA+B;IAE/B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;4BAC4B;AAC5B,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,OAAO,CACL,KAAC,aAAa,IAAC,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,YAChF,KAAC,SAAS,OAAK,KAAK,GAAI,GACV,CACjB,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,EAAE,EACF,QAAQ,EACR,OAAO,EACP,KAAK,EACL,sBAAsB,EACtB,kBAAkB,GACL;IACb,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY,IAAI,CAAC,CAAC;IAC5D,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,iFAAiF;IACjF,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjB,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACrB,4DAA4D;QAC5D,IAAI,SAAS;YAAE,OAAO;QAEtB,0EAA0E;QAC1E,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACzD,yEAAyE;YACzE,2CAA2C;YAC3C,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,kBAAkB,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,GAAG;gBAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;iBACzC,IAAI,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM;gBAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACf,gEAAgE;YAChE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC7B,WAAW,CAAC,IAAI,CAAC,CAAC;oBAClB,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;gBACtE,CAAC;qBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACtB,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;qBAAM,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACvC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,CAAC;qBAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC1C,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBACvC,CAAC;gBACD,OAAO;YACT,CAAC;YACD,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBACnE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxF,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;iBACzE,IAAI,IAAI,KAAK,GAAG;gBAAE,WAAW,CAAC,EAAE,CAAC,CAAC;iBAClC,IAAI,GAAG,CAAC,MAAM;gBAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC7C,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,wEAAwE;YACxE,IAAI,EAAE,CAAC,IAAI;gBAAE,OAAO;YACpB,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpB,IAAI,OAAO;oBAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;;oBAC7B,EAAE,CAAC,SAAS,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpB,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,kBAAkB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;IAEtE,OAAO,CACL,8BAGE,KAAC,MAAM,IAA0B,KAAK,EAAE,EAAE,CAAC,cAAc,EAAE,YACxD,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,QAAQ,IAAS,IAAI,EAAE,IAAI,EAAE,IAAI,UAAnB,CAAC,CAAqB,IADxC,EAAE,CAAC,eAAe,CAEtB,EACT,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAExB,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/B,KAAC,QAAQ,IAAmB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,IAApC,QAAQ,CAAC,EAAE,CAA6B,CACxD,CAAC,EACD,SAAS,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAAG,SAAS,GAAO,CAAC,CAAC,CAAC,IAAI,EACvD,CAAC,SAAS,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,EAC1E,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,kBAAkB,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CACpD,KAAC,gBAAgB,IACf,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EACzB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAC/B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GACd,CACH,CAAC,CAAC,CAAC,IAAI,EAGP,EAAE,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,MAAM,QAAC,MAAM,EAAE,MAAM,GAAI,CAAC,CAAC,CAAC,IAAI,EACjE,SAAS,CAAC,CAAC,CAAC,CACX,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAC7B,MAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,aAC/D,MAAM,CAAC,MAAM,EAAE,GAAG,IACd,EACP,KAAC,IAAI,cAAE,KAAK,GAAQ,IAChB,EACN,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,IAAI,EAAE,GAAI,EAC5E,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,IAAI,EAAE,GAAI,EAC1E,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAI,IAC7E,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,IACL,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,KAAK,EAAmD;IAC7E,OAAO,CACL,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAQ,EACjD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,wCAA2B,EACnD,KAAC,IAAI,8FAAmF,EACxF,KAAC,IAAI,IAAC,QAAQ,uDAAmC,IAC7C,CACP,CAAC;AACJ,CAAC;AAED;;wEAEwE;AACxE,SAAS,gBAAgB,CAAC,EACxB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,KAAK,EACL,MAAM,GAOP;IACC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAEpD,OAAO,CACL,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,YAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAQ,EACtD,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,+BACxB,IAAI,SACR,EACP,KAAC,IAAI,cAAE,SAAS,GAAQ,EACvB,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,EAClE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CACnB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,QAAQ,yDAA0C,EACxD,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,aAAG,MAAM,CAAC,MAAM,SAAS,EAClD,KAAC,IAAI,cAAE,QAAQ,GAAQ,EACvB,KAAC,IAAI,IAAC,QAAQ,6BAAS,IACnB,EACN,KAAC,IAAI,IAAC,QAAQ,qDAAiC,IAC3C,CACP,CAAC,CAAC,CAAC,CACF,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aAGtC,MAAC,IAAI,eACH,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,aAAG,MAAM,CAAC,MAAM,SAAS,aACjD,EACP,KAAC,IAAI,0CAAoC,EACzC,KAAC,IAAI,8BAAmB,EACxB,KAAC,IAAI,uDAA4C,IAC7C,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,SAAS,SAAS,CAAC,EACjB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,IAAI,GAML;IACC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC3D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CACL,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YAChB,MAAC,IAAI,IAAC,QAAQ,6DACsB,IAAI,IACjC,GACH,CACP,CAAC;IACJ,CAAC;IACD,OAAO,CACL,MAAC,GAAG,IAAC,UAAU,EAAE,CAAC,aAChB,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aACvB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAG,CAAC,CAAC,KAAK,IACtB,EACP,MAAC,IAAI,IAAC,QAAQ,yDAA0B,IAAI,IAAQ,IAChD,CACP,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,SAAS,GAIV;IACC,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,MAAC,IAAI,IAAc,QAAQ,wBACvB,CAAC,CAAC,IAAI,cAAK,CAAC,CAAC,WAAW,KADjB,CAAC,CAAC,IAAI,CAEV,CACR,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,SAAS,mBAAmB,CAAC,EAC3B,KAAK,EACL,SAAS,GAIV;IACC,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,MAAC,IAAI,IAAa,QAAQ,wBACtB,CAAC,CAAC,GAAG,EACN,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAFpB,CAAC,CAAC,GAAG,CAGT,CACR,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,10 +3,12 @@ import type { ModalController } from "./modal.js";
|
|
|
3
3
|
export { ChatViewModel } from "./view-model.js";
|
|
4
4
|
export type { Line, LineKind } from "./view-model.js";
|
|
5
5
|
export { ChatApp, suggestSlashCommands, suggestResourceMentions, type SlashSuggestion, type ResourceSuggestion, } from "./app.js";
|
|
6
|
+
export { SlashTypeahead } from "./slash-typeahead.js";
|
|
6
7
|
export { ModalController, type OpenModal } from "./modal.js";
|
|
7
8
|
export { ModelPicker, type PickableModel } from "./model-picker.js";
|
|
8
9
|
export { SessionPicker, type PickableSession } from "./session-picker.js";
|
|
9
10
|
export { ApiKeyPrompt } from "./api-key-prompt.js";
|
|
11
|
+
export { Select, type SelectOption, type SelectProps, filterOptions, moveCursor, pageCursor, visibleWindow, clampCursor, } from "./select.js";
|
|
10
12
|
export { ThemeProvider, useTheme } from "./theme-context.js";
|
|
11
13
|
export { resolveTheme, type Theme, type ThemeSetting, GLYPHS } from "./theme.js";
|
|
12
14
|
export { Markdown } from "./markdown.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,aAAa,CAAC;IAClB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,aAAa,EACjB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAC3C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACzC,KAAK,CAAC,EAAE,eAAe,EACvB,sBAAsB,CAAC,EAAE,OAAO,UAAU,EAAE,eAAe,EAAE,EAC7D,kBAAkB,CAAC,EAAE,OAAO,UAAU,EAAE,kBAAkB,EAAE,EAC5D,OAAO,CAAC,EAAE,iBAAiB,GAC1B,UAAU,CAqBZ"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,aAAa,EACb,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,aAAa,CAAC;IAClB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,aAAa,EACjB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAC3C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACzC,KAAK,CAAC,EAAE,eAAe,EACvB,sBAAsB,CAAC,EAAE,OAAO,UAAU,EAAE,eAAe,EAAE,EAC7D,kBAAkB,CAAC,EAAE,OAAO,UAAU,EAAE,kBAAkB,EAAE,EAC5D,OAAO,CAAC,EAAE,iBAAiB,GAC1B,UAAU,CAqBZ"}
|
package/dist/index.js
CHANGED
|
@@ -4,10 +4,13 @@ import { ChatApp } from "./app.js";
|
|
|
4
4
|
import { ChatViewModel } from "./view-model.js";
|
|
5
5
|
export { ChatViewModel } from "./view-model.js";
|
|
6
6
|
export { ChatApp, suggestSlashCommands, suggestResourceMentions, } from "./app.js";
|
|
7
|
+
export { SlashTypeahead } from "./slash-typeahead.js";
|
|
7
8
|
export { ModalController } from "./modal.js";
|
|
8
9
|
export { ModelPicker } from "./model-picker.js";
|
|
9
10
|
export { SessionPicker } from "./session-picker.js";
|
|
10
11
|
export { ApiKeyPrompt } from "./api-key-prompt.js";
|
|
12
|
+
// (5.10 A2) The generic single-select primitive + its pure helpers.
|
|
13
|
+
export { Select, filterOptions, moveCursor, pageCursor, visibleWindow, clampCursor, } from "./select.js";
|
|
11
14
|
// (5.9) Visual-language surface — exported for reuse + focused testing.
|
|
12
15
|
export { ThemeProvider, useTheme } from "./theme-context.js";
|
|
13
16
|
export { resolveTheme, GLYPHS } from "./theme.js";
|