@dexto/tui 1.7.2 → 1.8.1
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/agent-backend.cjs +16 -2
- package/dist/agent-backend.d.ts +5 -2
- package/dist/agent-backend.d.ts.map +1 -1
- package/dist/agent-backend.js +15 -2
- package/dist/agent-backend.test.cjs +28 -2
- package/dist/agent-backend.test.js +28 -2
- package/dist/components/ApprovalPrompt.cjs +6 -5
- package/dist/components/ApprovalPrompt.d.ts +1 -1
- package/dist/components/ApprovalPrompt.d.ts.map +1 -1
- package/dist/components/ApprovalPrompt.js +6 -5
- package/dist/components/Footer.cjs +3 -2
- package/dist/components/Footer.d.ts.map +1 -1
- package/dist/components/Footer.js +2 -5
- package/dist/components/TextBufferInput.cjs +14 -1
- package/dist/components/TextBufferInput.d.ts +5 -1
- package/dist/components/TextBufferInput.d.ts.map +1 -1
- package/dist/components/TextBufferInput.js +14 -1
- package/dist/components/chat/QueuedMessagesDisplay.cjs +17 -8
- package/dist/components/chat/QueuedMessagesDisplay.d.ts +7 -1
- package/dist/components/chat/QueuedMessagesDisplay.d.ts.map +1 -1
- package/dist/components/chat/QueuedMessagesDisplay.js +16 -8
- package/dist/components/input/InputArea.cjs +4 -0
- package/dist/components/input/InputArea.d.ts +5 -1
- package/dist/components/input/InputArea.d.ts.map +1 -1
- package/dist/components/input/InputArea.js +4 -0
- package/dist/components/modes/AlternateBufferCLI.cjs +20 -1
- package/dist/components/modes/AlternateBufferCLI.d.ts.map +1 -1
- package/dist/components/modes/AlternateBufferCLI.js +21 -2
- package/dist/components/modes/StaticCLI.cjs +20 -1
- package/dist/components/modes/StaticCLI.d.ts.map +1 -1
- package/dist/components/modes/StaticCLI.js +21 -2
- package/dist/components/overlays/ApiKeyInput.d.ts +1 -1
- package/dist/components/overlays/ApiKeyInput.d.ts.map +1 -1
- package/dist/components/overlays/CustomModelWizard.d.ts.map +1 -1
- package/dist/components/overlays/LoginOverlay.cjs +2 -10
- package/dist/components/overlays/LoginOverlay.d.ts.map +1 -1
- package/dist/components/overlays/LoginOverlay.js +3 -11
- package/dist/components/overlays/ModelSelectorRefactored.cjs +4 -3
- package/dist/components/overlays/ModelSelectorRefactored.d.ts +1 -1
- package/dist/components/overlays/ModelSelectorRefactored.d.ts.map +1 -1
- package/dist/components/overlays/ModelSelectorRefactored.js +1 -2
- package/dist/components/overlays/ReasoningOverlay.cjs +3 -3
- package/dist/components/overlays/ReasoningOverlay.js +1 -1
- package/dist/components/overlays/custom-model-wizard/provider-config.cjs +4 -3
- package/dist/components/overlays/custom-model-wizard/provider-config.d.ts.map +1 -1
- package/dist/components/overlays/custom-model-wizard/provider-config.js +2 -4
- package/dist/containers/InputContainer.cjs +121 -20
- package/dist/containers/InputContainer.d.ts +6 -2
- package/dist/containers/InputContainer.d.ts.map +1 -1
- package/dist/containers/InputContainer.js +120 -19
- package/dist/containers/OverlayContainer.cjs +6 -5
- package/dist/containers/OverlayContainer.d.ts.map +1 -1
- package/dist/containers/OverlayContainer.js +2 -7
- package/dist/hooks/useAgentEvents.cjs +29 -6
- package/dist/hooks/useAgentEvents.d.ts +3 -2
- package/dist/hooks/useAgentEvents.d.ts.map +1 -1
- package/dist/hooks/useAgentEvents.js +29 -9
- package/dist/hooks/useCLIState.cjs +12 -5
- package/dist/hooks/useCLIState.d.ts +2 -0
- package/dist/hooks/useCLIState.d.ts.map +1 -1
- package/dist/hooks/useCLIState.js +12 -5
- package/dist/hooks/useInputOrchestrator.cjs +15 -14
- package/dist/hooks/useInputOrchestrator.d.ts +6 -6
- package/dist/hooks/useInputOrchestrator.d.ts.map +1 -1
- package/dist/hooks/useInputOrchestrator.js +15 -14
- package/dist/host/index.cjs +6 -6
- package/dist/host/index.d.ts +9 -18
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +5 -5
- package/dist/host/index.test.cjs +47 -0
- package/dist/host/index.test.d.ts +2 -0
- package/dist/host/index.test.d.ts.map +1 -0
- package/dist/host/index.test.js +50 -0
- package/dist/index.d.cts +11 -15
- package/dist/interactive-commands/command-parser.cjs +1 -0
- package/dist/interactive-commands/command-parser.d.ts.map +1 -1
- package/dist/interactive-commands/command-parser.js +1 -0
- package/dist/interactive-commands/commands.cjs +3 -0
- package/dist/interactive-commands/commands.d.ts.map +1 -1
- package/dist/interactive-commands/commands.js +3 -0
- package/dist/interactive-commands/commands.test.cjs +42 -0
- package/dist/interactive-commands/commands.test.js +42 -0
- package/dist/interactive-commands/prompt-commands.cjs +4 -66
- package/dist/interactive-commands/prompt-commands.d.ts +1 -2
- package/dist/interactive-commands/prompt-commands.d.ts.map +1 -1
- package/dist/interactive-commands/prompt-commands.js +4 -66
- package/dist/interactive-commands/skill-commands.cjs +73 -0
- package/dist/interactive-commands/skill-commands.d.ts +9 -0
- package/dist/interactive-commands/skill-commands.d.ts.map +1 -0
- package/dist/interactive-commands/skill-commands.js +49 -0
- package/dist/services/processStream.cjs +23 -4
- package/dist/services/processStream.d.ts +3 -1
- package/dist/services/processStream.d.ts.map +1 -1
- package/dist/services/processStream.js +23 -4
- package/dist/services/processStream.test.cjs +52 -2
- package/dist/services/processStream.test.js +52 -2
- package/dist/state/initialState.cjs +2 -1
- package/dist/state/initialState.d.ts.map +1 -1
- package/dist/state/initialState.js +2 -1
- package/dist/state/reducer.cjs +10 -5
- package/dist/state/reducer.d.ts.map +1 -1
- package/dist/state/reducer.js +10 -5
- package/dist/state/types.d.ts +4 -1
- package/dist/state/types.d.ts.map +1 -1
- package/dist/utils/chatgpt-rate-limit.cjs +4 -4
- package/dist/utils/chatgpt-rate-limit.d.ts.map +1 -1
- package/dist/utils/chatgpt-rate-limit.js +1 -1
- package/dist/utils/llm-provider-display.d.ts +1 -1
- package/dist/utils/llm-provider-display.d.ts.map +1 -1
- package/dist/utils/messageFormatting.cjs +0 -23
- package/dist/utils/messageFormatting.d.ts +0 -13
- package/dist/utils/messageFormatting.d.ts.map +1 -1
- package/dist/utils/messageFormatting.js +0 -21
- package/dist/utils/queuedComposerContent.cjs +148 -0
- package/dist/utils/queuedComposerContent.d.ts +17 -0
- package/dist/utils/queuedComposerContent.d.ts.map +1 -0
- package/dist/utils/queuedComposerContent.js +123 -0
- package/dist/utils/queuedComposerContent.test.cjs +176 -0
- package/dist/utils/queuedComposerContent.test.d.ts +2 -0
- package/dist/utils/queuedComposerContent.test.d.ts.map +1 -0
- package/dist/utils/queuedComposerContent.test.js +175 -0
- package/package.json +5 -4
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text } from "ink";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import { previewQueuedContent } from "../../utils/queuedComposerContent.js";
|
|
4
|
+
const isMac = process.platform === "darwin";
|
|
5
|
+
const QUEUE_EDIT_SHORTCUTS = {
|
|
6
|
+
currentTurn: isMac ? "\u2325 + \u2191 edit" : "Alt + \u2191 edit",
|
|
7
|
+
followUp: "\u2191 edit"
|
|
8
|
+
};
|
|
7
9
|
function truncateText(text, maxLength = 60) {
|
|
8
10
|
const singleLine = text.replace(/\n/g, " ").trim();
|
|
9
11
|
if (singleLine.length <= maxLength) {
|
|
@@ -11,7 +13,11 @@ function truncateText(text, maxLength = 60) {
|
|
|
11
13
|
}
|
|
12
14
|
return singleLine.slice(0, maxLength - 3) + "...";
|
|
13
15
|
}
|
|
14
|
-
function QueuedMessagesDisplay({
|
|
16
|
+
function QueuedMessagesDisplay({
|
|
17
|
+
messages,
|
|
18
|
+
label = "queued",
|
|
19
|
+
hint = "\u2191 to edit"
|
|
20
|
+
}) {
|
|
15
21
|
if (messages.length === 0) return null;
|
|
16
22
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [
|
|
17
23
|
/* @__PURE__ */ jsxs(Box, { children: [
|
|
@@ -19,17 +25,19 @@ function QueuedMessagesDisplay({ messages }) {
|
|
|
19
25
|
messages.length,
|
|
20
26
|
" message",
|
|
21
27
|
messages.length !== 1 ? "s" : "",
|
|
22
|
-
"
|
|
28
|
+
" ",
|
|
29
|
+
label
|
|
23
30
|
] }),
|
|
24
31
|
/* @__PURE__ */ jsx(Text, { color: "gray", children: " \u2022 " }),
|
|
25
|
-
/* @__PURE__ */ jsx(Text, { color: "gray", children:
|
|
32
|
+
/* @__PURE__ */ jsx(Text, { color: "gray", children: hint })
|
|
26
33
|
] }),
|
|
27
34
|
messages.map((message, index) => /* @__PURE__ */ jsxs(Box, { flexDirection: "row", children: [
|
|
28
35
|
/* @__PURE__ */ jsx(Text, { color: "gray", children: index === messages.length - 1 ? "\u21B3 " : "\u2502 " }),
|
|
29
|
-
/* @__PURE__ */ jsx(Text, { color: "gray", italic: true, children: truncateText(
|
|
36
|
+
/* @__PURE__ */ jsx(Text, { color: "gray", italic: true, children: truncateText(previewQueuedContent(message.content)) })
|
|
30
37
|
] }, message.id))
|
|
31
38
|
] });
|
|
32
39
|
}
|
|
33
40
|
export {
|
|
41
|
+
QUEUE_EDIT_SHORTCUTS,
|
|
34
42
|
QueuedMessagesDisplay
|
|
35
43
|
};
|
|
@@ -27,10 +27,12 @@ var import_TextBufferInput = require("../TextBufferInput.js");
|
|
|
27
27
|
function InputArea({
|
|
28
28
|
buffer,
|
|
29
29
|
onSubmit,
|
|
30
|
+
onQueueSubmit,
|
|
30
31
|
isDisabled,
|
|
31
32
|
isActive,
|
|
32
33
|
placeholder,
|
|
33
34
|
onHistoryNavigate,
|
|
35
|
+
onCurrentTurnEdit,
|
|
34
36
|
onTriggerOverlay,
|
|
35
37
|
onKeyboardScroll,
|
|
36
38
|
imageCount,
|
|
@@ -49,10 +51,12 @@ function InputArea({
|
|
|
49
51
|
{
|
|
50
52
|
buffer,
|
|
51
53
|
onSubmit,
|
|
54
|
+
onQueueSubmit,
|
|
52
55
|
placeholder,
|
|
53
56
|
isDisabled,
|
|
54
57
|
isActive,
|
|
55
58
|
onHistoryNavigate,
|
|
59
|
+
onCurrentTurnEdit,
|
|
56
60
|
onTriggerOverlay,
|
|
57
61
|
onKeyboardScroll,
|
|
58
62
|
imageCount,
|
|
@@ -11,6 +11,8 @@ interface InputAreaProps {
|
|
|
11
11
|
buffer: TextBuffer;
|
|
12
12
|
/** Called when user submits */
|
|
13
13
|
onSubmit: (value: string) => void;
|
|
14
|
+
/** Called when user queues a follow-up while processing */
|
|
15
|
+
onQueueSubmit?: ((value: string) => void) | undefined;
|
|
14
16
|
/** Whether input is currently disabled */
|
|
15
17
|
isDisabled: boolean;
|
|
16
18
|
/** Whether input should handle keypresses */
|
|
@@ -19,6 +21,8 @@ interface InputAreaProps {
|
|
|
19
21
|
placeholder?: string | undefined;
|
|
20
22
|
/** History navigation callback */
|
|
21
23
|
onHistoryNavigate?: ((direction: 'up' | 'down') => void) | undefined;
|
|
24
|
+
/** Edit latest current-turn input callback */
|
|
25
|
+
onCurrentTurnEdit?: (() => boolean) | undefined;
|
|
22
26
|
/** Overlay trigger callback */
|
|
23
27
|
onTriggerOverlay?: ((trigger: OverlayTrigger) => void) | undefined;
|
|
24
28
|
/** Keyboard scroll callback (for alternate buffer mode) */
|
|
@@ -44,5 +48,5 @@ interface InputAreaProps {
|
|
|
44
48
|
/** Cycle reasoning variant (only when the main input is active). */
|
|
45
49
|
onCycleReasoningVariant?: (() => void) | undefined;
|
|
46
50
|
}
|
|
47
|
-
export declare function InputArea({ buffer, onSubmit, isDisabled, isActive, placeholder, onHistoryNavigate, onTriggerOverlay, onKeyboardScroll, imageCount, onImagePaste, images, onImageRemove, pastedBlocks, onPasteBlock, onPasteBlockUpdate, onPasteBlockRemove, highlightQuery, onCycleReasoningVariant, }: InputAreaProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
export declare function InputArea({ buffer, onSubmit, onQueueSubmit, isDisabled, isActive, placeholder, onHistoryNavigate, onCurrentTurnEdit, onTriggerOverlay, onKeyboardScroll, imageCount, onImagePaste, images, onImageRemove, pastedBlocks, onPasteBlock, onPasteBlockUpdate, onPasteBlockRemove, highlightQuery, onCycleReasoningVariant, }: InputAreaProps): import("react/jsx-runtime").JSX.Element;
|
|
48
52
|
//# sourceMappingURL=InputArea.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputArea.d.ts","sourceRoot":"","sources":["../../../src/components/input/InputArea.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEtE,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,UAAU,cAAc;IACpB,oCAAoC;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,0CAA0C;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrE,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnE,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpE,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,iEAAiE;IACjE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACpC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD,wDAAwD;IACxD,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IACzC,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5F,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACtD;AAED,wBAAgB,SAAS,CAAC,EACtB,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,MAAM,EACN,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,uBAAuB,GAC1B,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"InputArea.d.ts","sourceRoot":"","sources":["../../../src/components/input/InputArea.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEtE,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,UAAU,cAAc;IACpB,oCAAoC;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,0CAA0C;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrE,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,CAAC;IAChD,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnE,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpE,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,iEAAiE;IACjE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACpC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD,wDAAwD;IACxD,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IACzC,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5F,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACtD;AAED,wBAAgB,SAAS,CAAC,EACtB,MAAM,EACN,QAAQ,EACR,aAAa,EACb,UAAU,EACV,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,MAAM,EACN,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,uBAAuB,GAC1B,EAAE,cAAc,2CA2BhB"}
|
|
@@ -4,10 +4,12 @@ import { TextBufferInput } from "../TextBufferInput.js";
|
|
|
4
4
|
function InputArea({
|
|
5
5
|
buffer,
|
|
6
6
|
onSubmit,
|
|
7
|
+
onQueueSubmit,
|
|
7
8
|
isDisabled,
|
|
8
9
|
isActive,
|
|
9
10
|
placeholder,
|
|
10
11
|
onHistoryNavigate,
|
|
12
|
+
onCurrentTurnEdit,
|
|
11
13
|
onTriggerOverlay,
|
|
12
14
|
onKeyboardScroll,
|
|
13
15
|
imageCount,
|
|
@@ -26,10 +28,12 @@ function InputArea({
|
|
|
26
28
|
{
|
|
27
29
|
buffer,
|
|
28
30
|
onSubmit,
|
|
31
|
+
onQueueSubmit,
|
|
29
32
|
placeholder,
|
|
30
33
|
isDisabled,
|
|
31
34
|
isActive,
|
|
32
35
|
onHistoryNavigate,
|
|
36
|
+
onCurrentTurnEdit,
|
|
33
37
|
onTriggerOverlay,
|
|
34
38
|
onKeyboardScroll,
|
|
35
39
|
imageCount,
|
|
@@ -65,6 +65,8 @@ function AlternateBufferCLI({
|
|
|
65
65
|
setPendingMessages,
|
|
66
66
|
dequeuedBuffer,
|
|
67
67
|
setDequeuedBuffer,
|
|
68
|
+
steerMessages,
|
|
69
|
+
setSteerMessages,
|
|
68
70
|
queuedMessages,
|
|
69
71
|
setQueuedMessages,
|
|
70
72
|
todos,
|
|
@@ -275,7 +277,22 @@ function AlternateBufferCLI({
|
|
|
275
277
|
}
|
|
276
278
|
),
|
|
277
279
|
selectionHintVisible && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "yellowBright", children: "\u{1F4A1} Tip: Hold Option (\u2325) and click to select text, or press Ctrl+S to toggle copy mode" }) }),
|
|
278
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
280
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
281
|
+
import_QueuedMessagesDisplay.QueuedMessagesDisplay,
|
|
282
|
+
{
|
|
283
|
+
messages: steerMessages,
|
|
284
|
+
label: "current-turn input",
|
|
285
|
+
hint: import_QueuedMessagesDisplay.QUEUE_EDIT_SHORTCUTS.currentTurn
|
|
286
|
+
}
|
|
287
|
+
),
|
|
288
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
289
|
+
import_QueuedMessagesDisplay.QueuedMessagesDisplay,
|
|
290
|
+
{
|
|
291
|
+
messages: queuedMessages,
|
|
292
|
+
label: "queued follow-up",
|
|
293
|
+
hint: import_QueuedMessagesDisplay.QUEUE_EDIT_SHORTCUTS.followUp
|
|
294
|
+
}
|
|
295
|
+
)
|
|
279
296
|
] }),
|
|
280
297
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
281
298
|
import_InputContainer.InputContainer,
|
|
@@ -287,6 +304,7 @@ function AlternateBufferCLI({
|
|
|
287
304
|
session,
|
|
288
305
|
initialPrompt,
|
|
289
306
|
approval,
|
|
307
|
+
steerMessages,
|
|
290
308
|
queuedMessages,
|
|
291
309
|
setInput,
|
|
292
310
|
setUi,
|
|
@@ -294,6 +312,7 @@ function AlternateBufferCLI({
|
|
|
294
312
|
setMessages,
|
|
295
313
|
setPendingMessages,
|
|
296
314
|
setDequeuedBuffer,
|
|
315
|
+
setSteerMessages,
|
|
297
316
|
setQueuedMessages,
|
|
298
317
|
setApproval,
|
|
299
318
|
setApprovalQueue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlternateBufferCLI.d.ts","sourceRoot":"","sources":["../../../src/components/modes/AlternateBufferCLI.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA+BjE,UAAU,uBAAuB;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,EAC/B,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,wBAAgC,EAChC,kBAAkB,EAClB,YAAmB,GACtB,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"AlternateBufferCLI.d.ts","sourceRoot":"","sources":["../../../src/components/modes/AlternateBufferCLI.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA+BjE,UAAU,uBAAuB;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,EAC/B,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,wBAAgC,EAChC,kBAAkB,EAClB,YAAmB,GACtB,EAAE,uBAAuB,2CA+XzB"}
|
|
@@ -7,7 +7,7 @@ import { useGitBranch } from "../../hooks/useGitBranch.js";
|
|
|
7
7
|
import { useScrollable } from "../../contexts/index.js";
|
|
8
8
|
import { Header } from "../chat/Header.js";
|
|
9
9
|
import { MessageItem } from "../chat/MessageItem.js";
|
|
10
|
-
import { QueuedMessagesDisplay } from "../chat/QueuedMessagesDisplay.js";
|
|
10
|
+
import { QUEUE_EDIT_SHORTCUTS, QueuedMessagesDisplay } from "../chat/QueuedMessagesDisplay.js";
|
|
11
11
|
import { StatusBar } from "../StatusBar.js";
|
|
12
12
|
import { HistorySearchBar } from "../HistorySearchBar.js";
|
|
13
13
|
import { Footer } from "../Footer.js";
|
|
@@ -45,6 +45,8 @@ function AlternateBufferCLI({
|
|
|
45
45
|
setPendingMessages,
|
|
46
46
|
dequeuedBuffer,
|
|
47
47
|
setDequeuedBuffer,
|
|
48
|
+
steerMessages,
|
|
49
|
+
setSteerMessages,
|
|
48
50
|
queuedMessages,
|
|
49
51
|
setQueuedMessages,
|
|
50
52
|
todos,
|
|
@@ -255,7 +257,22 @@ function AlternateBufferCLI({
|
|
|
255
257
|
}
|
|
256
258
|
),
|
|
257
259
|
selectionHintVisible && /* @__PURE__ */ jsx(Box, { paddingX: 1, children: /* @__PURE__ */ jsx(Text, { color: "yellowBright", children: "\u{1F4A1} Tip: Hold Option (\u2325) and click to select text, or press Ctrl+S to toggle copy mode" }) }),
|
|
258
|
-
/* @__PURE__ */ jsx(
|
|
260
|
+
/* @__PURE__ */ jsx(
|
|
261
|
+
QueuedMessagesDisplay,
|
|
262
|
+
{
|
|
263
|
+
messages: steerMessages,
|
|
264
|
+
label: "current-turn input",
|
|
265
|
+
hint: QUEUE_EDIT_SHORTCUTS.currentTurn
|
|
266
|
+
}
|
|
267
|
+
),
|
|
268
|
+
/* @__PURE__ */ jsx(
|
|
269
|
+
QueuedMessagesDisplay,
|
|
270
|
+
{
|
|
271
|
+
messages: queuedMessages,
|
|
272
|
+
label: "queued follow-up",
|
|
273
|
+
hint: QUEUE_EDIT_SHORTCUTS.followUp
|
|
274
|
+
}
|
|
275
|
+
)
|
|
259
276
|
] }),
|
|
260
277
|
/* @__PURE__ */ jsx(
|
|
261
278
|
InputContainer,
|
|
@@ -267,6 +284,7 @@ function AlternateBufferCLI({
|
|
|
267
284
|
session,
|
|
268
285
|
initialPrompt,
|
|
269
286
|
approval,
|
|
287
|
+
steerMessages,
|
|
270
288
|
queuedMessages,
|
|
271
289
|
setInput,
|
|
272
290
|
setUi,
|
|
@@ -274,6 +292,7 @@ function AlternateBufferCLI({
|
|
|
274
292
|
setMessages,
|
|
275
293
|
setPendingMessages,
|
|
276
294
|
setDequeuedBuffer,
|
|
295
|
+
setSteerMessages,
|
|
277
296
|
setQueuedMessages,
|
|
278
297
|
setApproval,
|
|
279
298
|
setApprovalQueue,
|
|
@@ -55,6 +55,8 @@ function StaticCLI({
|
|
|
55
55
|
setPendingMessages,
|
|
56
56
|
dequeuedBuffer,
|
|
57
57
|
setDequeuedBuffer,
|
|
58
|
+
steerMessages,
|
|
59
|
+
setSteerMessages,
|
|
58
60
|
queuedMessages,
|
|
59
61
|
setQueuedMessages,
|
|
60
62
|
todos,
|
|
@@ -217,7 +219,22 @@ function StaticCLI({
|
|
|
217
219
|
isProcessing: ui.isProcessing
|
|
218
220
|
}
|
|
219
221
|
),
|
|
220
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
222
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
223
|
+
import_QueuedMessagesDisplay.QueuedMessagesDisplay,
|
|
224
|
+
{
|
|
225
|
+
messages: steerMessages,
|
|
226
|
+
label: "current-turn input",
|
|
227
|
+
hint: import_QueuedMessagesDisplay.QUEUE_EDIT_SHORTCUTS.currentTurn
|
|
228
|
+
}
|
|
229
|
+
),
|
|
230
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
231
|
+
import_QueuedMessagesDisplay.QueuedMessagesDisplay,
|
|
232
|
+
{
|
|
233
|
+
messages: queuedMessages,
|
|
234
|
+
label: "queued follow-up",
|
|
235
|
+
hint: import_QueuedMessagesDisplay.QUEUE_EDIT_SHORTCUTS.followUp
|
|
236
|
+
}
|
|
237
|
+
)
|
|
221
238
|
] });
|
|
222
239
|
})(),
|
|
223
240
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -230,6 +247,7 @@ function StaticCLI({
|
|
|
230
247
|
session,
|
|
231
248
|
initialPrompt,
|
|
232
249
|
approval,
|
|
250
|
+
steerMessages,
|
|
233
251
|
queuedMessages,
|
|
234
252
|
setInput,
|
|
235
253
|
setUi,
|
|
@@ -237,6 +255,7 @@ function StaticCLI({
|
|
|
237
255
|
setMessages,
|
|
238
256
|
setPendingMessages,
|
|
239
257
|
setDequeuedBuffer,
|
|
258
|
+
setSteerMessages,
|
|
240
259
|
setQueuedMessages,
|
|
241
260
|
setApproval,
|
|
242
261
|
setApprovalQueue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticCLI.d.ts","sourceRoot":"","sources":["../../../src/components/modes/StaticCLI.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAsBxD,UAAU,cAAc;IACpB,KAAK,EAAE,eAAe,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,SAAS,CAAC,EACtB,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,wBAAgC,EAChC,YAAmB,GACtB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"StaticCLI.d.ts","sourceRoot":"","sources":["../../../src/components/modes/StaticCLI.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAsBxD,UAAU,cAAc;IACpB,KAAK,EAAE,eAAe,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,SAAS,CAAC,EACtB,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,wBAAgC,EAChC,YAAmB,GACtB,EAAE,cAAc,2CAyShB"}
|
|
@@ -7,7 +7,7 @@ import { useTerminalSize } from "../../hooks/useTerminalSize.js";
|
|
|
7
7
|
import { useGitBranch } from "../../hooks/useGitBranch.js";
|
|
8
8
|
import { Header } from "../chat/Header.js";
|
|
9
9
|
import { MessageItem } from "../chat/MessageItem.js";
|
|
10
|
-
import { QueuedMessagesDisplay } from "../chat/QueuedMessagesDisplay.js";
|
|
10
|
+
import { QUEUE_EDIT_SHORTCUTS, QueuedMessagesDisplay } from "../chat/QueuedMessagesDisplay.js";
|
|
11
11
|
import { StatusBar } from "../StatusBar.js";
|
|
12
12
|
import { HistorySearchBar } from "../HistorySearchBar.js";
|
|
13
13
|
import { Footer } from "../Footer.js";
|
|
@@ -32,6 +32,8 @@ function StaticCLI({
|
|
|
32
32
|
setPendingMessages,
|
|
33
33
|
dequeuedBuffer,
|
|
34
34
|
setDequeuedBuffer,
|
|
35
|
+
steerMessages,
|
|
36
|
+
setSteerMessages,
|
|
35
37
|
queuedMessages,
|
|
36
38
|
setQueuedMessages,
|
|
37
39
|
todos,
|
|
@@ -194,7 +196,22 @@ function StaticCLI({
|
|
|
194
196
|
isProcessing: ui.isProcessing
|
|
195
197
|
}
|
|
196
198
|
),
|
|
197
|
-
/* @__PURE__ */ jsx(
|
|
199
|
+
/* @__PURE__ */ jsx(
|
|
200
|
+
QueuedMessagesDisplay,
|
|
201
|
+
{
|
|
202
|
+
messages: steerMessages,
|
|
203
|
+
label: "current-turn input",
|
|
204
|
+
hint: QUEUE_EDIT_SHORTCUTS.currentTurn
|
|
205
|
+
}
|
|
206
|
+
),
|
|
207
|
+
/* @__PURE__ */ jsx(
|
|
208
|
+
QueuedMessagesDisplay,
|
|
209
|
+
{
|
|
210
|
+
messages: queuedMessages,
|
|
211
|
+
label: "queued follow-up",
|
|
212
|
+
hint: QUEUE_EDIT_SHORTCUTS.followUp
|
|
213
|
+
}
|
|
214
|
+
)
|
|
198
215
|
] });
|
|
199
216
|
})(),
|
|
200
217
|
/* @__PURE__ */ jsx(
|
|
@@ -207,6 +224,7 @@ function StaticCLI({
|
|
|
207
224
|
session,
|
|
208
225
|
initialPrompt,
|
|
209
226
|
approval,
|
|
227
|
+
steerMessages,
|
|
210
228
|
queuedMessages,
|
|
211
229
|
setInput,
|
|
212
230
|
setUi,
|
|
@@ -214,6 +232,7 @@ function StaticCLI({
|
|
|
214
232
|
setMessages,
|
|
215
233
|
setPendingMessages,
|
|
216
234
|
setDequeuedBuffer,
|
|
235
|
+
setSteerMessages,
|
|
217
236
|
setQueuedMessages,
|
|
218
237
|
setApproval,
|
|
219
238
|
setApprovalQueue,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import type { Key } from '../../hooks/useInputOrchestrator.js';
|
|
7
|
-
import type { LLMProvider } from '@dexto/
|
|
7
|
+
import type { LLMProvider } from '@dexto/llm';
|
|
8
8
|
export interface ApiKeyInputProps {
|
|
9
9
|
isVisible: boolean;
|
|
10
10
|
provider: LLMProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiKeyInput.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/ApiKeyInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA4E,MAAM,OAAO,CAAC;AAEjG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ApiKeyInput.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/ApiKeyInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA4E,MAAM,OAAO,CAAC;AAEjG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAS9C,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AAED;;;GAGG;AACH,QAAA,MAAM,WAAW,4FA+Jf,CAAC;AAEH,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomModelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/CustomModelWizard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAGH,KAAK,WAAW,EAMnB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"CustomModelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/CustomModelWizard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAGH,KAAK,WAAW,EAMnB,MAAM,yBAAyB,CAAC;AAqBjC,UAAU,sBAAsB;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uEAAuE;IACvE,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AAED;;;GAGG;AACH,QAAA,MAAM,iBAAiB,wGA4YtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -38,12 +38,6 @@ const LoginOverlay = (0, import_react.forwardRef)(function LoginOverlay2({ isVis
|
|
|
38
38
|
if (!isActiveRef.current) return;
|
|
39
39
|
setStatus(message);
|
|
40
40
|
}, []);
|
|
41
|
-
const handleProvisionStatus = (0, import_react.useCallback)(
|
|
42
|
-
(provisionStatus) => {
|
|
43
|
-
safeSetStatus(provisionStatus.message);
|
|
44
|
-
},
|
|
45
|
-
[safeSetStatus]
|
|
46
|
-
);
|
|
47
41
|
const cancelInFlight = (0, import_react.useCallback)(() => {
|
|
48
42
|
abortControllerRef.current?.abort(new Error("Authentication cancelled"));
|
|
49
43
|
abortControllerRef.current = null;
|
|
@@ -81,9 +75,7 @@ const LoginOverlay = (0, import_react.forwardRef)(function LoginOverlay2({ isVis
|
|
|
81
75
|
if (!result || !isActiveRef.current || abortController.signal.aborted) return;
|
|
82
76
|
setStep("finalizing");
|
|
83
77
|
safeSetStatus("Finalizing login...");
|
|
84
|
-
const persisted = await (0, import_host.
|
|
85
|
-
onProvisionStatus: handleProvisionStatus
|
|
86
|
-
});
|
|
78
|
+
const persisted = await (0, import_host.persistDeviceApiKeyLoginResult)(result);
|
|
87
79
|
if (!isActiveRef.current || abortController.signal.aborted) return;
|
|
88
80
|
onDone({
|
|
89
81
|
outcome: "success",
|
|
@@ -102,7 +94,7 @@ const LoginOverlay = (0, import_react.forwardRef)(function LoginOverlay2({ isVis
|
|
|
102
94
|
} finally {
|
|
103
95
|
abortControllerRef.current = null;
|
|
104
96
|
}
|
|
105
|
-
}, [cancelInFlight,
|
|
97
|
+
}, [cancelInFlight, onDone, runDeviceLogin, safeSetStatus]);
|
|
106
98
|
(0, import_react.useEffect)(() => {
|
|
107
99
|
if (!isVisible) return;
|
|
108
100
|
isActiveRef.current = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/LoginOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"LoginOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/LoginOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAS/D,MAAM,MAAM,mBAAmB,GACzB;IACI,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;CAC3B,GACD;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,GACxB;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AAUD,QAAA,MAAM,YAAY,8FA0NhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -11,7 +11,7 @@ import { Box, Text } from "ink";
|
|
|
11
11
|
import {
|
|
12
12
|
loadAuth,
|
|
13
13
|
performDeviceCodeLogin,
|
|
14
|
-
|
|
14
|
+
persistDeviceApiKeyLoginResult
|
|
15
15
|
} from "../../host/index.js";
|
|
16
16
|
const LoginOverlay = forwardRef(function LoginOverlay2({ isVisible, onDone }, ref) {
|
|
17
17
|
const [step, setStep] = useState("checking");
|
|
@@ -26,12 +26,6 @@ const LoginOverlay = forwardRef(function LoginOverlay2({ isVisible, onDone }, re
|
|
|
26
26
|
if (!isActiveRef.current) return;
|
|
27
27
|
setStatus(message);
|
|
28
28
|
}, []);
|
|
29
|
-
const handleProvisionStatus = useCallback(
|
|
30
|
-
(provisionStatus) => {
|
|
31
|
-
safeSetStatus(provisionStatus.message);
|
|
32
|
-
},
|
|
33
|
-
[safeSetStatus]
|
|
34
|
-
);
|
|
35
29
|
const cancelInFlight = useCallback(() => {
|
|
36
30
|
abortControllerRef.current?.abort(new Error("Authentication cancelled"));
|
|
37
31
|
abortControllerRef.current = null;
|
|
@@ -69,9 +63,7 @@ const LoginOverlay = forwardRef(function LoginOverlay2({ isVisible, onDone }, re
|
|
|
69
63
|
if (!result || !isActiveRef.current || abortController.signal.aborted) return;
|
|
70
64
|
setStep("finalizing");
|
|
71
65
|
safeSetStatus("Finalizing login...");
|
|
72
|
-
const persisted = await
|
|
73
|
-
onProvisionStatus: handleProvisionStatus
|
|
74
|
-
});
|
|
66
|
+
const persisted = await persistDeviceApiKeyLoginResult(result);
|
|
75
67
|
if (!isActiveRef.current || abortController.signal.aborted) return;
|
|
76
68
|
onDone({
|
|
77
69
|
outcome: "success",
|
|
@@ -90,7 +82,7 @@ const LoginOverlay = forwardRef(function LoginOverlay2({ isVisible, onDone }, re
|
|
|
90
82
|
} finally {
|
|
91
83
|
abortControllerRef.current = null;
|
|
92
84
|
}
|
|
93
|
-
}, [cancelInFlight,
|
|
85
|
+
}, [cancelInFlight, onDone, runDeviceLogin, safeSetStatus]);
|
|
94
86
|
useEffect(() => {
|
|
95
87
|
if (!isVisible) return;
|
|
96
88
|
isActiveRef.current = true;
|
|
@@ -25,6 +25,7 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
25
25
|
var import_react = require("react");
|
|
26
26
|
var import_ink = require("ink");
|
|
27
27
|
var import_useTerminalSize = require("../../hooks/useTerminalSize.js");
|
|
28
|
+
var import_llm = require("@dexto/llm");
|
|
28
29
|
var import_core = require("@dexto/core");
|
|
29
30
|
var import_agent_management = require("@dexto/agent-management");
|
|
30
31
|
var import_llm_provider_display = require("../../utils/llm-provider-display.js");
|
|
@@ -368,7 +369,7 @@ const ModelSelector = (0, import_react.forwardRef)(function ModelSelector2({
|
|
|
368
369
|
const [refreshVersion, setRefreshVersion] = (0, import_react.useState)(0);
|
|
369
370
|
const reasoningVariantOptions = (0, import_react.useMemo)(() => {
|
|
370
371
|
if (!pendingReasoningModel) return [];
|
|
371
|
-
const support = (0,
|
|
372
|
+
const support = (0, import_llm.getReasoningProfile)(
|
|
372
373
|
pendingReasoningModel.provider,
|
|
373
374
|
pendingReasoningModel.name
|
|
374
375
|
);
|
|
@@ -584,7 +585,7 @@ const ModelSelector = (0, import_react.forwardRef)(function ModelSelector2({
|
|
|
584
585
|
const releaseDate = resolveReleaseDate("openai", configured.model) ?? resolveReleaseDate("openrouter", configured.model);
|
|
585
586
|
addChatGPTCodexModel({
|
|
586
587
|
model: configured.model,
|
|
587
|
-
displayName: (0,
|
|
588
|
+
displayName: (0, import_llm.getModelDisplayName)(configured.model, "openai"),
|
|
588
589
|
isDefault: defaultConfig ? matchesConfiguredModel(
|
|
589
590
|
{
|
|
590
591
|
provider: "openai-compatible",
|
|
@@ -897,7 +898,7 @@ const ModelSelector = (0, import_react.forwardRef)(function ModelSelector2({
|
|
|
897
898
|
}
|
|
898
899
|
};
|
|
899
900
|
const beginReasoningVariantSelection = (item, settingDefault) => {
|
|
900
|
-
const support = (0,
|
|
901
|
+
const support = (0, import_llm.getReasoningProfile)(item.provider, item.name);
|
|
901
902
|
if (!support.capable) {
|
|
902
903
|
return false;
|
|
903
904
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - Custom models support (add/edit/delete via arrow navigation)
|
|
6
6
|
*/
|
|
7
7
|
import type { Key } from '../../hooks/useInputOrchestrator.js';
|
|
8
|
-
import type { LLMProvider, ReasoningVariant } from '@dexto/
|
|
8
|
+
import type { LLMProvider, ReasoningVariant } from '@dexto/llm';
|
|
9
9
|
import { type CustomModel } from '@dexto/agent-management';
|
|
10
10
|
import type { TuiAgentBackend } from '../../agent-backend.js';
|
|
11
11
|
interface ModelSelectorProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSelectorRefactored.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/ModelSelectorRefactored.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelSelectorRefactored.d.ts","sourceRoot":"","sources":["../../../src/components/overlays/ModelSelectorRefactored.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAahE,OAAO,EASH,KAAK,WAAW,EAEnB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA2S9D,UAAU,kBAAkB;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,CACX,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,gBAAgB,KAClC,IAAI,CAAC;IACV,iBAAiB,EAAE,CACf,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,gBAAgB,KAClC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,iBAAiB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AAgJD;;GAEG;AACH,QAAA,MAAM,aAAa,oHAy2CjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
} from "react";
|
|
11
11
|
import { Box, Text } from "ink";
|
|
12
12
|
import { useTerminalSize } from "../../hooks/useTerminalSize.js";
|
|
13
|
+
import { getModelDisplayName, getReasoningProfile } from "@dexto/llm";
|
|
13
14
|
import {
|
|
14
15
|
CodexAppServerClient,
|
|
15
16
|
createCodexBaseURL,
|
|
@@ -17,9 +18,7 @@ import {
|
|
|
17
18
|
DEFAULT_OLLAMA_URL,
|
|
18
19
|
getLocalModelById,
|
|
19
20
|
getCuratedModelRefsForProviders,
|
|
20
|
-
getModelDisplayName,
|
|
21
21
|
getOpenRouterModelCacheInfo,
|
|
22
|
-
getReasoningProfile,
|
|
23
22
|
parseCodexBaseURL,
|
|
24
23
|
refreshOpenRouterModelCache
|
|
25
24
|
} from "@dexto/core";
|
|
@@ -34,7 +34,7 @@ module.exports = __toCommonJS(ReasoningOverlay_exports);
|
|
|
34
34
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
35
|
var import_react = __toESM(require("react"), 1);
|
|
36
36
|
var import_ink = require("ink");
|
|
37
|
-
var
|
|
37
|
+
var import_llm = require("@dexto/llm");
|
|
38
38
|
var import_llm_provider_display = require("../../utils/llm-provider-display.js");
|
|
39
39
|
const ReasoningOverlay = import_react.default.forwardRef(
|
|
40
40
|
function ReasoningOverlay2({
|
|
@@ -55,7 +55,7 @@ const ReasoningOverlay = import_react.default.forwardRef(
|
|
|
55
55
|
const llmConfig = agent.getCurrentLLMConfig(sessionId || void 0);
|
|
56
56
|
const provider = llmConfig.provider;
|
|
57
57
|
const model = llmConfig.model;
|
|
58
|
-
const support = (0,
|
|
58
|
+
const support = (0, import_llm.getReasoningProfile)(provider, model);
|
|
59
59
|
const currentVariant = llmConfig.reasoning?.variant ?? support.defaultVariant ?? "default";
|
|
60
60
|
const currentBudgetTokens = llmConfig.reasoning?.budgetTokens;
|
|
61
61
|
const menuItems = (0, import_react.useMemo)(() => {
|
|
@@ -216,7 +216,7 @@ const ReasoningOverlay = import_react.default.forwardRef(
|
|
|
216
216
|
);
|
|
217
217
|
if (!isVisible) return null;
|
|
218
218
|
const providerLabel = (0, import_llm_provider_display.getLLMProviderDisplayName)(provider, llmConfig.baseURL);
|
|
219
|
-
const modelLabel = (0,
|
|
219
|
+
const modelLabel = (0, import_llm.getModelDisplayName)(model);
|
|
220
220
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
221
221
|
import_ink.Box,
|
|
222
222
|
{
|
|
@@ -8,7 +8,7 @@ import React, {
|
|
|
8
8
|
useState
|
|
9
9
|
} from "react";
|
|
10
10
|
import { Box, Text } from "ink";
|
|
11
|
-
import { getModelDisplayName, getReasoningProfile } from "@dexto/
|
|
11
|
+
import { getModelDisplayName, getReasoningProfile } from "@dexto/llm";
|
|
12
12
|
import { getLLMProviderDisplayName } from "../../utils/llm-provider-display.js";
|
|
13
13
|
const ReasoningOverlay = React.forwardRef(
|
|
14
14
|
function ReasoningOverlay2({
|
|
@@ -38,6 +38,7 @@ __export(provider_config_exports, {
|
|
|
38
38
|
});
|
|
39
39
|
module.exports = __toCommonJS(provider_config_exports);
|
|
40
40
|
var import_agent_management = require("@dexto/agent-management");
|
|
41
|
+
var import_llm = require("@dexto/llm");
|
|
41
42
|
var import_core = require("@dexto/core");
|
|
42
43
|
var import_types = require("./types.js");
|
|
43
44
|
var fs = __toESM(require("fs"), 1);
|
|
@@ -69,7 +70,7 @@ const REASONING_PRESET_STEP = {
|
|
|
69
70
|
required: false,
|
|
70
71
|
condition: (values) => {
|
|
71
72
|
const modelName = values.name || "";
|
|
72
|
-
return (0,
|
|
73
|
+
return (0, import_llm.isReasoningCapableModel)(modelName);
|
|
73
74
|
}
|
|
74
75
|
};
|
|
75
76
|
function parseReasoningVariant(value) {
|
|
@@ -79,9 +80,9 @@ function parseReasoningVariant(value) {
|
|
|
79
80
|
function resolveReasoningOverride(provider, modelName, rawVariant) {
|
|
80
81
|
const variant = parseReasoningVariant(rawVariant);
|
|
81
82
|
if (!variant) return void 0;
|
|
82
|
-
const profile = (0,
|
|
83
|
+
const profile = (0, import_llm.getReasoningProfile)(provider, modelName);
|
|
83
84
|
if (!profile.capable) return void 0;
|
|
84
|
-
if (!(0,
|
|
85
|
+
if (!(0, import_llm.supportsReasoningVariant)(profile, variant)) return void 0;
|
|
85
86
|
if (variant === profile.defaultVariant) return void 0;
|
|
86
87
|
return { variant };
|
|
87
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../../../../src/components/overlays/custom-model-wizard/provider-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAe,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../../../../src/components/overlays/custom-model-wizard/provider-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAe,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAShF,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAyE7D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,mBAAmB,EAAE,cAAc,CA2cxE,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,cAAc,CAE/E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAGtE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,mBAAmB,EAAE,CAW7D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAIrF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAEzE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACpC,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { CUSTOM_MODEL_PROVIDERS, isDextoAuthEnabled } from "@dexto/agent-management";
|
|
2
2
|
import {
|
|
3
|
-
lookupOpenRouterModel,
|
|
4
|
-
refreshOpenRouterModelCache,
|
|
5
|
-
getLocalModelById,
|
|
6
3
|
isReasoningCapableModel,
|
|
7
4
|
getReasoningProfile,
|
|
8
5
|
supportsReasoningVariant
|
|
9
|
-
} from "@dexto/
|
|
6
|
+
} from "@dexto/llm";
|
|
7
|
+
import { lookupOpenRouterModel, refreshOpenRouterModelCache, getLocalModelById } from "@dexto/core";
|
|
10
8
|
import { validators } from "./types.js";
|
|
11
9
|
import * as fs from "fs";
|
|
12
10
|
import * as os from "os";
|