deepcode-ai 1.1.7 → 1.1.9
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/index.js +262 -250
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2085,32 +2085,7 @@ var DeepCodeConfigSchema = z.object({
|
|
|
2085
2085
|
blacklist: z.array(z.string()).default([])
|
|
2086
2086
|
}).strict().default({}),
|
|
2087
2087
|
lsp: z.object({
|
|
2088
|
-
servers: z.array(LspServerConfigSchema).default([
|
|
2089
|
-
{
|
|
2090
|
-
languages: ["typescript", "javascript"],
|
|
2091
|
-
command: "typescript-language-server",
|
|
2092
|
-
args: ["--stdio"],
|
|
2093
|
-
fileExtensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"]
|
|
2094
|
-
},
|
|
2095
|
-
{
|
|
2096
|
-
languages: ["python"],
|
|
2097
|
-
command: "pylsp",
|
|
2098
|
-
args: [],
|
|
2099
|
-
fileExtensions: [".py"]
|
|
2100
|
-
},
|
|
2101
|
-
{
|
|
2102
|
-
languages: ["rust"],
|
|
2103
|
-
command: "rust-analyzer",
|
|
2104
|
-
args: [],
|
|
2105
|
-
fileExtensions: [".rs"]
|
|
2106
|
-
},
|
|
2107
|
-
{
|
|
2108
|
-
languages: ["go"],
|
|
2109
|
-
command: "gopls",
|
|
2110
|
-
args: [],
|
|
2111
|
-
fileExtensions: [".go"]
|
|
2112
|
-
}
|
|
2113
|
-
])
|
|
2088
|
+
servers: z.array(LspServerConfigSchema).default([])
|
|
2114
2089
|
}).strict().default({}),
|
|
2115
2090
|
github: z.object({
|
|
2116
2091
|
token: z.string().optional(),
|
|
@@ -4480,6 +4455,9 @@ var McpManager = class {
|
|
|
4480
4455
|
}
|
|
4481
4456
|
return tools;
|
|
4482
4457
|
}
|
|
4458
|
+
get connectedCount() {
|
|
4459
|
+
return this.clients.length;
|
|
4460
|
+
}
|
|
4483
4461
|
stop() {
|
|
4484
4462
|
for (const { client } of this.clients) {
|
|
4485
4463
|
try {
|
|
@@ -7650,8 +7628,8 @@ import path32 from "path";
|
|
|
7650
7628
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7651
7629
|
import fs6 from "fs";
|
|
7652
7630
|
import path112 from "path";
|
|
7653
|
-
import { isValidElement, useCallback as useCallback22, useEffect as
|
|
7654
|
-
import { Box as Box38, Text as
|
|
7631
|
+
import { isValidElement, useCallback as useCallback22, useEffect as useEffect25, useMemo as useMemo15, useRef as useRef16, useState as useState26 } from "react";
|
|
7632
|
+
import { Box as Box38, Text as Text45, useInput as useInput4, useStdin as useStdin3 } from "ink";
|
|
7655
7633
|
import os4 from "os";
|
|
7656
7634
|
import path62 from "path";
|
|
7657
7635
|
import fs from "fs";
|
|
@@ -9571,8 +9549,8 @@ import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
|
9571
9549
|
import { Box as Box22, Text as Text25 } from "ink";
|
|
9572
9550
|
import { jsxs as jsxs21 } from "react/jsx-runtime";
|
|
9573
9551
|
import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
9574
|
-
import { Box as Box31, Text as
|
|
9575
|
-
import { useCallback as useCallback16, useState as
|
|
9552
|
+
import { Box as Box31, Text as Text38, useIsScreenReaderEnabled as useIsScreenReaderEnabled3 } from "ink";
|
|
9553
|
+
import { useCallback as useCallback16, useState as useState21 } from "react";
|
|
9576
9554
|
import { useRef as useRef7 } from "react";
|
|
9577
9555
|
import { Box as Box24, Text as Text26 } from "ink";
|
|
9578
9556
|
import { useEffect as useEffect13, useState as useState11 } from "react";
|
|
@@ -9605,45 +9583,50 @@ import { Box as Box26, Text as Text29 } from "ink";
|
|
|
9605
9583
|
import chalk2 from "chalk";
|
|
9606
9584
|
import { jsx as jsx31, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
9607
9585
|
import { Fragment as Fragment7, jsx as jsx32, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
9608
|
-
import { Box as Box28, Text as
|
|
9586
|
+
import { Box as Box28, Text as Text35 } from "ink";
|
|
9609
9587
|
import { Text as Text31 } from "ink";
|
|
9610
9588
|
import { Fragment as Fragment8, jsx as jsx33, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
9611
9589
|
import { Text as Text32 } from "ink";
|
|
9612
9590
|
import { jsx as jsx34, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
9613
9591
|
import { Text as Text33 } from "ink";
|
|
9614
9592
|
import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
9593
|
+
import { Text as Text34 } from "ink";
|
|
9594
|
+
import { jsxs as jsxs31 } from "react/jsx-runtime";
|
|
9595
|
+
import { useState as useState19, useEffect as useEffect222 } from "react";
|
|
9596
|
+
import { execFile as execFile22 } from "child_process";
|
|
9597
|
+
import os42 from "os";
|
|
9615
9598
|
import {
|
|
9616
9599
|
createContext as createContext8,
|
|
9617
9600
|
useCallback as useCallback15,
|
|
9618
9601
|
useContext as useContext9,
|
|
9619
|
-
useState as
|
|
9602
|
+
useState as useState20
|
|
9620
9603
|
} from "react";
|
|
9621
9604
|
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
9622
|
-
import { jsx as jsx37, jsxs as
|
|
9605
|
+
import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
9623
9606
|
import { useRef as useRef12 } from "react";
|
|
9624
|
-
import { Box as Box29, Text as
|
|
9625
|
-
import { jsx as jsx38, jsxs as
|
|
9626
|
-
import { Box as Box30, Text as
|
|
9627
|
-
import { jsx as jsx39, jsxs as
|
|
9628
|
-
import { jsx as jsx40, jsxs as
|
|
9629
|
-
import { Box as Box32, Text as
|
|
9630
|
-
import { jsx as jsx41, jsxs as
|
|
9607
|
+
import { Box as Box29, Text as Text36 } from "ink";
|
|
9608
|
+
import { jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
9609
|
+
import { Box as Box30, Text as Text37 } from "ink";
|
|
9610
|
+
import { jsx as jsx39, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
9611
|
+
import { jsx as jsx40, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
9612
|
+
import { Box as Box32, Text as Text39 } from "ink";
|
|
9613
|
+
import { jsx as jsx41, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
9631
9614
|
import { useCallback as useCallback17, useMemo as useMemo10, useRef as useRef13 } from "react";
|
|
9632
|
-
import { Box as Box33, Text as
|
|
9633
|
-
import { jsx as jsx42, jsxs as
|
|
9634
|
-
import { useCallback as useCallback18, useMemo as useMemo11, useState as
|
|
9635
|
-
import { Box as Box34, Text as
|
|
9636
|
-
import { Fragment as Fragment9, jsx as jsx43, jsxs as
|
|
9637
|
-
import { useCallback as useCallback19, useMemo as useMemo12, useState as
|
|
9638
|
-
import { Box as Box35, Text as
|
|
9639
|
-
import { jsx as jsx44, jsxs as
|
|
9640
|
-
import { useCallback as useCallback20, useEffect as
|
|
9641
|
-
import { Box as Box36, Text as
|
|
9642
|
-
import { jsx as jsx45, jsxs as
|
|
9643
|
-
import { useCallback as useCallback21, useEffect as
|
|
9644
|
-
import { Box as Box37, Text as
|
|
9645
|
-
import { jsx as jsx46, jsxs as
|
|
9646
|
-
import { jsx as jsx47, jsxs as
|
|
9615
|
+
import { Box as Box33, Text as Text40 } from "ink";
|
|
9616
|
+
import { jsx as jsx42, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
9617
|
+
import { useCallback as useCallback18, useMemo as useMemo11, useState as useState222 } from "react";
|
|
9618
|
+
import { Box as Box34, Text as Text41, useInput as useInput2 } from "ink";
|
|
9619
|
+
import { Fragment as Fragment9, jsx as jsx43, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
9620
|
+
import { useCallback as useCallback19, useMemo as useMemo12, useState as useState23 } from "react";
|
|
9621
|
+
import { Box as Box35, Text as Text42 } from "ink";
|
|
9622
|
+
import { jsx as jsx44, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
9623
|
+
import { useCallback as useCallback20, useEffect as useEffect23, useMemo as useMemo13, useRef as useRef14, useState as useState24 } from "react";
|
|
9624
|
+
import { Box as Box36, Text as Text43 } from "ink";
|
|
9625
|
+
import { jsx as jsx45, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
9626
|
+
import { useCallback as useCallback21, useEffect as useEffect24, useMemo as useMemo14, useRef as useRef15, useState as useState25 } from "react";
|
|
9627
|
+
import { Box as Box37, Text as Text44, useInput as useInput3 } from "ink";
|
|
9628
|
+
import { jsx as jsx46, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
9629
|
+
import { jsx as jsx47, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
9647
9630
|
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
9648
9631
|
async function createRuntime(options) {
|
|
9649
9632
|
const worktree = path9.resolve(options.cwd);
|
|
@@ -24948,12 +24931,9 @@ var parseSlashCommand = (query, commands) => {
|
|
|
24948
24931
|
let pathIndex = 0;
|
|
24949
24932
|
const canonicalPath = [];
|
|
24950
24933
|
for (const part of commandPath) {
|
|
24951
|
-
|
|
24952
|
-
|
|
24953
|
-
|
|
24954
|
-
(cmd) => cmd.altNames?.includes(part)
|
|
24955
|
-
);
|
|
24956
|
-
}
|
|
24934
|
+
const foundCommand = currentCommands.find(
|
|
24935
|
+
(cmd) => cmd.name === part || cmd.altNames?.includes(part)
|
|
24936
|
+
);
|
|
24957
24937
|
if (foundCommand) {
|
|
24958
24938
|
commandToExecute = foundCommand;
|
|
24959
24939
|
canonicalPath.push(foundCommand.name);
|
|
@@ -26878,10 +26858,35 @@ function BackgroundTasksPill() {
|
|
|
26878
26858
|
return null;
|
|
26879
26859
|
}
|
|
26880
26860
|
function MCPHealthPill() {
|
|
26881
|
-
|
|
26861
|
+
const { mcpConnected, mcpTotal } = useUIState();
|
|
26862
|
+
if (mcpTotal === 0) return null;
|
|
26863
|
+
const color = mcpConnected === mcpTotal ? theme.status.success : theme.status.warning;
|
|
26864
|
+
return /* @__PURE__ */ jsxs31(Text34, { color, children: [
|
|
26865
|
+
" MCP ",
|
|
26866
|
+
mcpConnected,
|
|
26867
|
+
"/",
|
|
26868
|
+
mcpTotal
|
|
26869
|
+
] });
|
|
26882
26870
|
}
|
|
26883
26871
|
function useStatusLine() {
|
|
26884
|
-
|
|
26872
|
+
const config = useConfig();
|
|
26873
|
+
const cwd = config.getWorkingDir();
|
|
26874
|
+
const [line, setLine] = useState19(null);
|
|
26875
|
+
useEffect222(() => {
|
|
26876
|
+
let cancelled = false;
|
|
26877
|
+
execFile22("git", ["branch", "--show-current"], { cwd }, (err, stdout) => {
|
|
26878
|
+
if (cancelled) return;
|
|
26879
|
+
const branch = err ? null : stdout.trim();
|
|
26880
|
+
if (!branch) return;
|
|
26881
|
+
const home = os42.homedir();
|
|
26882
|
+
const displayCwd = cwd.startsWith(home) ? `~${cwd.slice(home.length)}` : cwd;
|
|
26883
|
+
setLine(`${displayCwd} [${branch}]`);
|
|
26884
|
+
});
|
|
26885
|
+
return () => {
|
|
26886
|
+
cancelled = true;
|
|
26887
|
+
};
|
|
26888
|
+
}, [cwd]);
|
|
26889
|
+
return { lines: line ? [line] : [] };
|
|
26885
26890
|
}
|
|
26886
26891
|
function useConfigInitMessage(_isConfigInitialized) {
|
|
26887
26892
|
return null;
|
|
@@ -26891,8 +26896,8 @@ var VimModeProvider = ({
|
|
|
26891
26896
|
children,
|
|
26892
26897
|
initialVimEnabled = false
|
|
26893
26898
|
}) => {
|
|
26894
|
-
const [vimEnabled, setVimEnabled] =
|
|
26895
|
-
const [vimMode, setVimMode] =
|
|
26899
|
+
const [vimEnabled, setVimEnabled] = useState20(initialVimEnabled);
|
|
26900
|
+
const [vimMode, setVimMode] = useState20(
|
|
26896
26901
|
initialVimEnabled ? "NORMAL" : "INSERT"
|
|
26897
26902
|
);
|
|
26898
26903
|
const toggleVimEnabled = useCallback15(async () => {
|
|
@@ -26933,16 +26938,16 @@ var Footer = () => {
|
|
|
26933
26938
|
const debugMode = config.getDebugMode();
|
|
26934
26939
|
const contextWindowSize = config.getContentGeneratorConfig()?.contextWindowSize;
|
|
26935
26940
|
const suppressHint = statusLineLines.length > 0;
|
|
26936
|
-
const leftBottomContent = uiState.ctrlCPressedOnce ? /* @__PURE__ */ jsx37(
|
|
26941
|
+
const leftBottomContent = uiState.ctrlCPressedOnce ? /* @__PURE__ */ jsx37(Text35, { color: theme.status.warning, children: t("Press Ctrl+C again to exit.") }) : uiState.ctrlDPressedOnce ? /* @__PURE__ */ jsx37(Text35, { color: theme.status.warning, children: t("Press Ctrl+D again to exit.") }) : uiState.showEscapePrompt ? /* @__PURE__ */ jsx37(Text35, { color: theme.text.secondary, children: t("Press Esc again to clear.") }) : uiState.rewindEscPending ? /* @__PURE__ */ jsx37(Text35, { color: theme.text.secondary, children: t("Press Esc again to rewind conversation.") }) : vimEnabled && vimMode === "INSERT" ? /* @__PURE__ */ jsx37(Text35, { color: theme.text.secondary, children: "-- INSERT --" }) : uiState.shellModeActive ? /* @__PURE__ */ jsx37(ShellModeIndicator, {}) : configInitMessage ? /* @__PURE__ */ jsxs32(Text35, { color: theme.text.secondary, children: [
|
|
26937
26942
|
/* @__PURE__ */ jsx37(GeminiSpinner, {}),
|
|
26938
26943
|
" ",
|
|
26939
26944
|
configInitMessage
|
|
26940
|
-
] }) : showAutoAcceptIndicator !== void 0 && showAutoAcceptIndicator !== "default" ? /* @__PURE__ */ jsx37(AutoAcceptIndicator, { approvalMode: showAutoAcceptIndicator }) : suppressHint ? null : /* @__PURE__ */ jsx37(
|
|
26945
|
+
] }) : showAutoAcceptIndicator !== void 0 && showAutoAcceptIndicator !== "default" ? /* @__PURE__ */ jsx37(AutoAcceptIndicator, { approvalMode: showAutoAcceptIndicator }) : suppressHint ? null : /* @__PURE__ */ jsx37(Text35, { color: theme.text.secondary, children: t("? for shortcuts") });
|
|
26941
26946
|
const rightItems = [];
|
|
26942
26947
|
if (sandboxInfo) {
|
|
26943
26948
|
rightItems.push({
|
|
26944
26949
|
key: "sandbox",
|
|
26945
|
-
node: /* @__PURE__ */
|
|
26950
|
+
node: /* @__PURE__ */ jsxs32(Text35, { color: theme.status.success, children: [
|
|
26946
26951
|
"\u{1F512} ",
|
|
26947
26952
|
sandboxInfo
|
|
26948
26953
|
] })
|
|
@@ -26951,13 +26956,13 @@ var Footer = () => {
|
|
|
26951
26956
|
if (debugMode) {
|
|
26952
26957
|
rightItems.push({
|
|
26953
26958
|
key: "debug",
|
|
26954
|
-
node: /* @__PURE__ */ jsx37(
|
|
26959
|
+
node: /* @__PURE__ */ jsx37(Text35, { color: theme.status.warning, children: "Debug Mode" })
|
|
26955
26960
|
});
|
|
26956
26961
|
}
|
|
26957
26962
|
if (promptTokenCount > 0 && contextWindowSize) {
|
|
26958
26963
|
rightItems.push({
|
|
26959
26964
|
key: "context",
|
|
26960
|
-
node: /* @__PURE__ */ jsx37(
|
|
26965
|
+
node: /* @__PURE__ */ jsx37(Text35, { color: theme.text.accent, children: /* @__PURE__ */ jsx37(
|
|
26961
26966
|
ContextUsageDisplay,
|
|
26962
26967
|
{
|
|
26963
26968
|
promptTokenCount,
|
|
@@ -26967,7 +26972,7 @@ var Footer = () => {
|
|
|
26967
26972
|
) })
|
|
26968
26973
|
});
|
|
26969
26974
|
}
|
|
26970
|
-
return /* @__PURE__ */
|
|
26975
|
+
return /* @__PURE__ */ jsxs32(
|
|
26971
26976
|
Box28,
|
|
26972
26977
|
{
|
|
26973
26978
|
flexDirection: isNarrow ? "column" : "row",
|
|
@@ -26976,16 +26981,16 @@ var Footer = () => {
|
|
|
26976
26981
|
paddingX: 2,
|
|
26977
26982
|
gap: isNarrow ? 0 : 1,
|
|
26978
26983
|
children: [
|
|
26979
|
-
/* @__PURE__ */
|
|
26980
|
-
statusLineLines.length > 0 && !uiState.ctrlCPressedOnce && !uiState.ctrlDPressedOnce && statusLineLines.map((line, i) => /* @__PURE__ */ jsx37(
|
|
26981
|
-
/* @__PURE__ */
|
|
26982
|
-
/* @__PURE__ */ jsx37(
|
|
26984
|
+
/* @__PURE__ */ jsxs32(Box28, { flexDirection: "column", flexShrink: isNarrow ? 0 : 1, children: [
|
|
26985
|
+
statusLineLines.length > 0 && !uiState.ctrlCPressedOnce && !uiState.ctrlDPressedOnce && statusLineLines.map((line, i) => /* @__PURE__ */ jsx37(Text35, { dimColor: true, wrap: "truncate", children: line }, `status-line-${i}`)),
|
|
26986
|
+
/* @__PURE__ */ jsxs32(Box28, { flexDirection: "row", flexShrink: 1, children: [
|
|
26987
|
+
/* @__PURE__ */ jsx37(Text35, { wrap: "truncate", children: leftBottomContent }),
|
|
26983
26988
|
/* @__PURE__ */ jsx37(BackgroundTasksPill, {}),
|
|
26984
26989
|
/* @__PURE__ */ jsx37(MCPHealthPill, {})
|
|
26985
26990
|
] })
|
|
26986
26991
|
] }),
|
|
26987
|
-
/* @__PURE__ */ jsx37(Box28, { flexShrink: 0, gap: 1, alignItems: "flex-start", children: rightItems.map(({ key, node }, index) => /* @__PURE__ */
|
|
26988
|
-
index > 0 && /* @__PURE__ */ jsx37(
|
|
26992
|
+
/* @__PURE__ */ jsx37(Box28, { flexShrink: 0, gap: 1, alignItems: "flex-start", children: rightItems.map(({ key, node }, index) => /* @__PURE__ */ jsxs32(Box28, { alignItems: "center", children: [
|
|
26993
|
+
index > 0 && /* @__PURE__ */ jsx37(Text35, { color: theme.text.secondary, children: " | " }),
|
|
26989
26994
|
node
|
|
26990
26995
|
] }, key)) })
|
|
26991
26996
|
]
|
|
@@ -27008,17 +27013,17 @@ var QueuedMessageDisplay = ({
|
|
|
27008
27013
|
wasEmptyRef.current = false;
|
|
27009
27014
|
}
|
|
27010
27015
|
const showHint = hintSeenCountRef.current <= NUM_TIMES_QUEUE_HINT_SHOWN;
|
|
27011
|
-
return /* @__PURE__ */
|
|
27016
|
+
return /* @__PURE__ */ jsxs33(Box29, { flexDirection: "column", marginTop: 1, children: [
|
|
27012
27017
|
messageQueue.slice(0, MAX_DISPLAYED_QUEUED_MESSAGES).map((message, index) => {
|
|
27013
27018
|
const preview = message.replace(/\s+/g, " ");
|
|
27014
|
-
return /* @__PURE__ */ jsx38(Box29, { paddingLeft: 2, width: "100%", children: /* @__PURE__ */ jsx38(
|
|
27019
|
+
return /* @__PURE__ */ jsx38(Box29, { paddingLeft: 2, width: "100%", children: /* @__PURE__ */ jsx38(Text36, { dimColor: true, wrap: "truncate", children: preview }) }, index);
|
|
27015
27020
|
}),
|
|
27016
|
-
messageQueue.length > MAX_DISPLAYED_QUEUED_MESSAGES && /* @__PURE__ */ jsx38(Box29, { paddingLeft: 2, children: /* @__PURE__ */
|
|
27021
|
+
messageQueue.length > MAX_DISPLAYED_QUEUED_MESSAGES && /* @__PURE__ */ jsx38(Box29, { paddingLeft: 2, children: /* @__PURE__ */ jsxs33(Text36, { dimColor: true, children: [
|
|
27017
27022
|
"... (+",
|
|
27018
27023
|
messageQueue.length - MAX_DISPLAYED_QUEUED_MESSAGES,
|
|
27019
27024
|
" more)"
|
|
27020
27025
|
] }) }),
|
|
27021
|
-
showHint && /* @__PURE__ */ jsx38(Box29, { paddingLeft: 2, children: /* @__PURE__ */ jsx38(
|
|
27026
|
+
showHint && /* @__PURE__ */ jsx38(Box29, { paddingLeft: 2, children: /* @__PURE__ */ jsx38(Text36, { dimColor: true, italic: true, children: t("Press \u2191 to edit queued messages") }) })
|
|
27022
27027
|
] });
|
|
27023
27028
|
};
|
|
27024
27029
|
var getNewlineKey = () => process.platform === "win32" ? "ctrl+enter" : "ctrl+j";
|
|
@@ -27046,8 +27051,8 @@ var getShortcuts = () => [
|
|
|
27046
27051
|
{ key: getExternalEditorKey(), description: t("for external editor") },
|
|
27047
27052
|
{ key: "ctrl+o", description: t("to toggle compact mode") }
|
|
27048
27053
|
];
|
|
27049
|
-
var ShortcutItem = ({ shortcut }) => /* @__PURE__ */
|
|
27050
|
-
/* @__PURE__ */ jsx39(
|
|
27054
|
+
var ShortcutItem = ({ shortcut }) => /* @__PURE__ */ jsxs34(Text37, { color: theme.text.secondary, children: [
|
|
27055
|
+
/* @__PURE__ */ jsx39(Text37, { color: theme.text.accent, children: shortcut.key }),
|
|
27051
27056
|
" ",
|
|
27052
27057
|
shortcut.description
|
|
27053
27058
|
] });
|
|
@@ -27131,11 +27136,11 @@ var Composer = () => {
|
|
|
27131
27136
|
}
|
|
27132
27137
|
}
|
|
27133
27138
|
}
|
|
27134
|
-
const [showShortcuts, setShowShortcuts] =
|
|
27139
|
+
const [showShortcuts, setShowShortcuts] = useState21(false);
|
|
27135
27140
|
const handleToggleShortcuts = useCallback16(() => {
|
|
27136
27141
|
setShowShortcuts((prev) => !prev);
|
|
27137
27142
|
}, []);
|
|
27138
|
-
const [showSuggestions, setShowSuggestions] =
|
|
27143
|
+
const [showSuggestions, setShowSuggestions] = useState21(false);
|
|
27139
27144
|
const handleSuggestionsVisibilityChange = useCallback16(
|
|
27140
27145
|
(visible) => {
|
|
27141
27146
|
setShowSuggestions(visible);
|
|
@@ -27143,7 +27148,7 @@ var Composer = () => {
|
|
|
27143
27148
|
},
|
|
27144
27149
|
[uiActions]
|
|
27145
27150
|
);
|
|
27146
|
-
return /* @__PURE__ */
|
|
27151
|
+
return /* @__PURE__ */ jsxs35(Box31, { flexDirection: "column", marginTop: 1, children: [
|
|
27147
27152
|
!uiState.embeddedShellFocused && !suppressBottomLoadingIndicator && /* @__PURE__ */ jsx40(
|
|
27148
27153
|
LoadingIndicator,
|
|
27149
27154
|
{
|
|
@@ -27156,7 +27161,7 @@ var Composer = () => {
|
|
|
27156
27161
|
isReceivingContent
|
|
27157
27162
|
}
|
|
27158
27163
|
),
|
|
27159
|
-
!uiState.embeddedShellFocused && suppressBottomLoadingIndicator && /* @__PURE__ */ jsx40(Box31, { paddingLeft: 2, children: /* @__PURE__ */
|
|
27164
|
+
!uiState.embeddedShellFocused && suppressBottomLoadingIndicator && /* @__PURE__ */ jsx40(Box31, { paddingLeft: 2, children: /* @__PURE__ */ jsxs35(Text38, { color: theme.text.secondary, children: [
|
|
27160
27165
|
"(",
|
|
27161
27166
|
t("Esc to cancel"),
|
|
27162
27167
|
")"
|
|
@@ -27564,10 +27569,10 @@ var CommandDialog = ({
|
|
|
27564
27569
|
title,
|
|
27565
27570
|
lines,
|
|
27566
27571
|
footerText = "Press Esc or Enter to close."
|
|
27567
|
-
}) => /* @__PURE__ */ jsx41(Box32, { marginLeft: 2, marginRight: 2, marginTop: 1, flexDirection: "column", children: /* @__PURE__ */
|
|
27568
|
-
/* @__PURE__ */ jsx41(
|
|
27569
|
-
/* @__PURE__ */ jsx41(Box32, { marginTop: 1, flexDirection: "column", children: lines.map((line, index) => /* @__PURE__ */ jsx41(
|
|
27570
|
-
/* @__PURE__ */ jsx41(Box32, { marginTop: 1, children: /* @__PURE__ */ jsx41(
|
|
27572
|
+
}) => /* @__PURE__ */ jsx41(Box32, { marginLeft: 2, marginRight: 2, marginTop: 1, flexDirection: "column", children: /* @__PURE__ */ jsxs36(Box32, { borderStyle: "round", borderColor: theme.border.default, padding: 1, flexDirection: "column", children: [
|
|
27573
|
+
/* @__PURE__ */ jsx41(Text39, { bold: true, color: theme.text.accent, children: title }),
|
|
27574
|
+
/* @__PURE__ */ jsx41(Box32, { marginTop: 1, flexDirection: "column", children: lines.map((line, index) => /* @__PURE__ */ jsx41(Text39, { color: theme.text.primary, children: line }, index)) }),
|
|
27575
|
+
/* @__PURE__ */ jsx41(Box32, { marginTop: 1, children: /* @__PURE__ */ jsx41(Text39, { color: theme.text.secondary, children: footerText }) })
|
|
27571
27576
|
] }) });
|
|
27572
27577
|
var ThemeDialog = ({ onSelect, onClose, onPreview }) => {
|
|
27573
27578
|
const originalTheme = useRef13(themeManager.getActiveTheme().name);
|
|
@@ -27604,7 +27609,7 @@ var ThemeDialog = ({ onSelect, onClose, onPreview }) => {
|
|
|
27604
27609
|
},
|
|
27605
27610
|
[onPreview]
|
|
27606
27611
|
);
|
|
27607
|
-
return /* @__PURE__ */
|
|
27612
|
+
return /* @__PURE__ */ jsxs37(
|
|
27608
27613
|
Box33,
|
|
27609
27614
|
{
|
|
27610
27615
|
flexDirection: "column",
|
|
@@ -27614,7 +27619,7 @@ var ThemeDialog = ({ onSelect, onClose, onPreview }) => {
|
|
|
27614
27619
|
marginLeft: 2,
|
|
27615
27620
|
marginRight: 2,
|
|
27616
27621
|
children: [
|
|
27617
|
-
/* @__PURE__ */ jsx42(
|
|
27622
|
+
/* @__PURE__ */ jsx42(Text40, { bold: true, color: theme.text.accent, children: "Select theme" }),
|
|
27618
27623
|
/* @__PURE__ */ jsx42(
|
|
27619
27624
|
RadioButtonSelect,
|
|
27620
27625
|
{
|
|
@@ -27625,7 +27630,7 @@ var ThemeDialog = ({ onSelect, onClose, onPreview }) => {
|
|
|
27625
27630
|
isFocused: true
|
|
27626
27631
|
}
|
|
27627
27632
|
),
|
|
27628
|
-
/* @__PURE__ */ jsx42(
|
|
27633
|
+
/* @__PURE__ */ jsx42(Text40, { color: theme.text.secondary, children: "\u2191\u2193 navigate \xB7 Enter apply \xB7 Esc cancel" })
|
|
27629
27634
|
]
|
|
27630
27635
|
}
|
|
27631
27636
|
);
|
|
@@ -27662,12 +27667,12 @@ var ProviderDialog = ({
|
|
|
27662
27667
|
onTestProvider,
|
|
27663
27668
|
onClose
|
|
27664
27669
|
}) => {
|
|
27665
|
-
const [phase, setPhase] =
|
|
27666
|
-
const [selectedProvider, setSelectedProvider] =
|
|
27667
|
-
const [apiKeyInput, setApiKeyInput] =
|
|
27668
|
-
const [isBusy, setIsBusy] =
|
|
27669
|
-
const [status, setStatus] =
|
|
27670
|
-
const [testLatencyMs, setTestLatencyMs] =
|
|
27670
|
+
const [phase, setPhase] = useState222("providers");
|
|
27671
|
+
const [selectedProvider, setSelectedProvider] = useState222(currentProvider);
|
|
27672
|
+
const [apiKeyInput, setApiKeyInput] = useState222("");
|
|
27673
|
+
const [isBusy, setIsBusy] = useState222(false);
|
|
27674
|
+
const [status, setStatus] = useState222(null);
|
|
27675
|
+
const [testLatencyMs, setTestLatencyMs] = useState222(void 0);
|
|
27671
27676
|
const isLocal = CREDENTIAL_FREE_PROVIDERS.has(selectedProvider);
|
|
27672
27677
|
const keyIsSet = hasApiKey(selectedProvider);
|
|
27673
27678
|
const keyHint = getProviderKeyHint(selectedProvider);
|
|
@@ -27855,7 +27860,7 @@ var ProviderDialog = ({
|
|
|
27855
27860
|
);
|
|
27856
27861
|
const statusColor2 = status ? status.ok ? status.text.startsWith("\u2713") ? theme.status.success : theme.text.secondary : theme.status.error : void 0;
|
|
27857
27862
|
const footer = phase === "apiKey" ? "Enter save Ctrl+U clear Esc cancel" : phase === "providers" ? "\u2191\u2193 navigate Enter select Esc close" : "\u2191\u2193 navigate Enter confirm Esc back";
|
|
27858
|
-
return /* @__PURE__ */
|
|
27863
|
+
return /* @__PURE__ */ jsxs38(
|
|
27859
27864
|
Box34,
|
|
27860
27865
|
{
|
|
27861
27866
|
flexDirection: "column",
|
|
@@ -27867,13 +27872,13 @@ var ProviderDialog = ({
|
|
|
27867
27872
|
marginRight: 2,
|
|
27868
27873
|
minWidth: 44,
|
|
27869
27874
|
children: [
|
|
27870
|
-
/* @__PURE__ */
|
|
27871
|
-
/* @__PURE__ */ jsx43(
|
|
27872
|
-
phase !== "providers" && /* @__PURE__ */
|
|
27873
|
-
/* @__PURE__ */ jsx43(
|
|
27874
|
-
/* @__PURE__ */ jsx43(
|
|
27875
|
+
/* @__PURE__ */ jsxs38(Box34, { marginBottom: 1, gap: 1, children: [
|
|
27876
|
+
/* @__PURE__ */ jsx43(Text41, { bold: true, color: theme.text.accent, children: "Providers" }),
|
|
27877
|
+
phase !== "providers" && /* @__PURE__ */ jsxs38(Fragment9, { children: [
|
|
27878
|
+
/* @__PURE__ */ jsx43(Text41, { color: theme.text.secondary, children: "\u203A" }),
|
|
27879
|
+
/* @__PURE__ */ jsx43(Text41, { bold: true, color: theme.text.primary, children: selectedProvider })
|
|
27875
27880
|
] }),
|
|
27876
|
-
phase === "providers" && currentModel && /* @__PURE__ */
|
|
27881
|
+
phase === "providers" && currentModel && /* @__PURE__ */ jsxs38(Text41, { color: theme.text.secondary, children: [
|
|
27877
27882
|
" (",
|
|
27878
27883
|
currentModel,
|
|
27879
27884
|
")"
|
|
@@ -27889,23 +27894,23 @@ var ProviderDialog = ({
|
|
|
27889
27894
|
maxItemsToShow: 8,
|
|
27890
27895
|
renderItem: (item, { titleColor }) => {
|
|
27891
27896
|
const { icon, color, label } = getStatusMark(item.provider, item.keyIsSet);
|
|
27892
|
-
return /* @__PURE__ */
|
|
27893
|
-
/* @__PURE__ */ jsx43(
|
|
27894
|
-
/* @__PURE__ */ jsx43(
|
|
27895
|
-
/* @__PURE__ */ jsx43(
|
|
27896
|
-
item.isCurrent && /* @__PURE__ */ jsx43(
|
|
27897
|
+
return /* @__PURE__ */ jsxs38(Box34, { gap: 1, children: [
|
|
27898
|
+
/* @__PURE__ */ jsx43(Text41, { color, children: icon }),
|
|
27899
|
+
/* @__PURE__ */ jsx43(Text41, { color: titleColor, bold: item.isCurrent, children: item.provider.padEnd(12) }),
|
|
27900
|
+
/* @__PURE__ */ jsx43(Text41, { color, dimColor: !item.keyIsSet && !item.isLocal, children: label }),
|
|
27901
|
+
item.isCurrent && /* @__PURE__ */ jsx43(Text41, { color: theme.text.accent, children: "\u25B6" })
|
|
27897
27902
|
] });
|
|
27898
27903
|
}
|
|
27899
27904
|
}
|
|
27900
27905
|
),
|
|
27901
|
-
phase === "actions" && /* @__PURE__ */
|
|
27902
|
-
/* @__PURE__ */
|
|
27903
|
-
/* @__PURE__ */ jsx43(
|
|
27904
|
-
/* @__PURE__ */ jsx43(
|
|
27906
|
+
phase === "actions" && /* @__PURE__ */ jsxs38(Fragment9, { children: [
|
|
27907
|
+
/* @__PURE__ */ jsxs38(Box34, { marginBottom: 1, gap: 1, children: [
|
|
27908
|
+
/* @__PURE__ */ jsx43(Text41, { color: theme.ui.comment, children: "session" }),
|
|
27909
|
+
/* @__PURE__ */ jsx43(Text41, { color: selectedProvider === currentProvider ? theme.text.accent : theme.text.secondary, children: selectedProvider === currentProvider ? "active" : `still using ${currentProvider}` })
|
|
27905
27910
|
] }),
|
|
27906
|
-
/* @__PURE__ */
|
|
27907
|
-
/* @__PURE__ */ jsx43(
|
|
27908
|
-
isLocal ? /* @__PURE__ */ jsx43(
|
|
27911
|
+
/* @__PURE__ */ jsxs38(Box34, { marginBottom: 1, gap: 1, children: [
|
|
27912
|
+
/* @__PURE__ */ jsx43(Text41, { color: theme.ui.comment, children: "key" }),
|
|
27913
|
+
isLocal ? /* @__PURE__ */ jsx43(Text41, { color: theme.text.accent, children: "no key required" }) : keyHint ? /* @__PURE__ */ jsx43(Text41, { color: theme.text.secondary, children: keyHint }) : /* @__PURE__ */ jsx43(Text41, { color: theme.ui.comment, dimColor: true, children: "not configured" })
|
|
27909
27914
|
] }),
|
|
27910
27915
|
/* @__PURE__ */ jsx43(
|
|
27911
27916
|
BaseSelectionList,
|
|
@@ -27915,10 +27920,10 @@ var ProviderDialog = ({
|
|
|
27915
27920
|
isFocused: !isBusy,
|
|
27916
27921
|
showNumbers: false,
|
|
27917
27922
|
maxItemsToShow: 6,
|
|
27918
|
-
renderItem: (item, { titleColor }) => /* @__PURE__ */
|
|
27919
|
-
/* @__PURE__ */ jsx43(
|
|
27920
|
-
/* @__PURE__ */ jsx43(
|
|
27921
|
-
item.hint && /* @__PURE__ */
|
|
27923
|
+
renderItem: (item, { titleColor }) => /* @__PURE__ */ jsxs38(Box34, { gap: 1, children: [
|
|
27924
|
+
/* @__PURE__ */ jsx43(Text41, { color: titleColor, children: item.icon }),
|
|
27925
|
+
/* @__PURE__ */ jsx43(Text41, { color: titleColor, children: item.label }),
|
|
27926
|
+
item.hint && /* @__PURE__ */ jsxs38(Text41, { color: theme.ui.comment, dimColor: true, children: [
|
|
27922
27927
|
"(",
|
|
27923
27928
|
item.hint,
|
|
27924
27929
|
")"
|
|
@@ -27927,23 +27932,23 @@ var ProviderDialog = ({
|
|
|
27927
27932
|
}
|
|
27928
27933
|
)
|
|
27929
27934
|
] }),
|
|
27930
|
-
phase === "apiKey" && /* @__PURE__ */
|
|
27931
|
-
/* @__PURE__ */
|
|
27932
|
-
/* @__PURE__ */ jsx43(
|
|
27933
|
-
isLocal ? /* @__PURE__ */ jsx43(
|
|
27935
|
+
phase === "apiKey" && /* @__PURE__ */ jsxs38(Box34, { flexDirection: "column", gap: 1, marginBottom: 1, children: [
|
|
27936
|
+
/* @__PURE__ */ jsxs38(Box34, { gap: 1, children: [
|
|
27937
|
+
/* @__PURE__ */ jsx43(Text41, { color: theme.ui.comment, children: "current" }),
|
|
27938
|
+
isLocal ? /* @__PURE__ */ jsx43(Text41, { color: theme.text.accent, children: "no key required" }) : keyHint ? /* @__PURE__ */ jsx43(Text41, { color: theme.text.secondary, children: keyHint }) : /* @__PURE__ */ jsx43(Text41, { color: theme.ui.comment, dimColor: true, children: "not set" })
|
|
27934
27939
|
] }),
|
|
27935
|
-
/* @__PURE__ */
|
|
27936
|
-
/* @__PURE__ */ jsx43(
|
|
27937
|
-
/* @__PURE__ */ jsx43(Box34, { borderStyle: "single", borderColor: theme.border.focused, paddingX: 1, children: /* @__PURE__ */ jsx43(
|
|
27940
|
+
/* @__PURE__ */ jsxs38(Box34, { gap: 1, children: [
|
|
27941
|
+
/* @__PURE__ */ jsx43(Text41, { color: theme.ui.comment, children: "new key" }),
|
|
27942
|
+
/* @__PURE__ */ jsx43(Box34, { borderStyle: "single", borderColor: theme.border.focused, paddingX: 1, children: /* @__PURE__ */ jsx43(Text41, { color: theme.text.accent, children: apiKeyInput.length > 0 ? maskApiKeyInput(apiKeyInput.length) : /* @__PURE__ */ jsx43(Text41, { color: theme.ui.comment, dimColor: true, children: "paste or type\u2026" }) }) })
|
|
27938
27943
|
] })
|
|
27939
27944
|
] }),
|
|
27940
|
-
status && /* @__PURE__ */ jsx43(Box34, { marginTop: 1, children: /* @__PURE__ */ jsx43(
|
|
27941
|
-
phase === "actions" && testLatencyMs !== void 0 && /* @__PURE__ */
|
|
27942
|
-
/* @__PURE__ */
|
|
27945
|
+
status && /* @__PURE__ */ jsx43(Box34, { marginTop: 1, children: /* @__PURE__ */ jsx43(Text41, { color: statusColor2, children: status.text }) }),
|
|
27946
|
+
phase === "actions" && testLatencyMs !== void 0 && /* @__PURE__ */ jsxs38(Box34, { marginTop: 0, gap: 1, children: [
|
|
27947
|
+
/* @__PURE__ */ jsxs38(Text41, { color: getLatencyColor(testLatencyMs), bold: true, children: [
|
|
27943
27948
|
testLatencyMs,
|
|
27944
27949
|
"ms"
|
|
27945
27950
|
] }),
|
|
27946
|
-
/* @__PURE__ */ jsx43(
|
|
27951
|
+
/* @__PURE__ */ jsx43(Text41, { color: theme.text.secondary, children: testLatencyMs < 300 ? "excellent" : testLatencyMs < 800 ? "good" : "slow" })
|
|
27947
27952
|
] }),
|
|
27948
27953
|
/* @__PURE__ */ jsx43(
|
|
27949
27954
|
Box34,
|
|
@@ -27955,7 +27960,7 @@ var ProviderDialog = ({
|
|
|
27955
27960
|
borderLeft: false,
|
|
27956
27961
|
borderRight: false,
|
|
27957
27962
|
borderColor: theme.ui.comment,
|
|
27958
|
-
children: /* @__PURE__ */
|
|
27963
|
+
children: /* @__PURE__ */ jsxs38(Text41, { color: theme.ui.comment, dimColor: true, children: [
|
|
27959
27964
|
footer,
|
|
27960
27965
|
phase === "actions" && " Test does not change the session."
|
|
27961
27966
|
] })
|
|
@@ -27984,7 +27989,7 @@ var PermissionsDialog = ({
|
|
|
27984
27989
|
onSave,
|
|
27985
27990
|
onClose
|
|
27986
27991
|
}) => {
|
|
27987
|
-
const [modes, setModes] =
|
|
27992
|
+
const [modes, setModes] = useState23(current);
|
|
27988
27993
|
const dirty = useMemo12(
|
|
27989
27994
|
() => PERMISSION_KEYS.some((key) => modes[key] !== current[key]),
|
|
27990
27995
|
[modes, current]
|
|
@@ -28023,7 +28028,7 @@ var PermissionsDialog = ({
|
|
|
28023
28028
|
[onClose]
|
|
28024
28029
|
);
|
|
28025
28030
|
useKeypress(handleEscape, { isActive: true });
|
|
28026
|
-
return /* @__PURE__ */
|
|
28031
|
+
return /* @__PURE__ */ jsxs39(
|
|
28027
28032
|
Box35,
|
|
28028
28033
|
{
|
|
28029
28034
|
flexDirection: "column",
|
|
@@ -28033,9 +28038,9 @@ var PermissionsDialog = ({
|
|
|
28033
28038
|
marginLeft: 2,
|
|
28034
28039
|
marginRight: 2,
|
|
28035
28040
|
children: [
|
|
28036
|
-
/* @__PURE__ */ jsx44(
|
|
28041
|
+
/* @__PURE__ */ jsx44(Text42, { bold: true, color: theme.text.accent, children: "Permission policy" }),
|
|
28037
28042
|
/* @__PURE__ */ jsx44(RadioButtonSelect, { items, onSelect: handleSelect, isFocused: true, showNumbers: false }),
|
|
28038
|
-
/* @__PURE__ */ jsx44(
|
|
28043
|
+
/* @__PURE__ */ jsx44(Text42, { color: theme.text.secondary, children: "\u2191\u2193 navigate \xB7 Enter cycles allow/ask/deny \xB7 Esc cancel" })
|
|
28039
28044
|
]
|
|
28040
28045
|
}
|
|
28041
28046
|
);
|
|
@@ -28050,9 +28055,9 @@ var AuthDialog = ({
|
|
|
28050
28055
|
onPersistToken,
|
|
28051
28056
|
onClose
|
|
28052
28057
|
}) => {
|
|
28053
|
-
const [phase, setPhase] =
|
|
28054
|
-
const [deviceCode, setDeviceCode] =
|
|
28055
|
-
const [message, setMessage] =
|
|
28058
|
+
const [phase, setPhase] = useState24("menu");
|
|
28059
|
+
const [deviceCode, setDeviceCode] = useState24(null);
|
|
28060
|
+
const [message, setMessage] = useState24("");
|
|
28056
28061
|
const abortRef = useRef14(null);
|
|
28057
28062
|
const items = useMemo13(
|
|
28058
28063
|
() => [
|
|
@@ -28128,7 +28133,7 @@ var AuthDialog = ({
|
|
|
28128
28133
|
},
|
|
28129
28134
|
[clearToken, onClose, startLogin]
|
|
28130
28135
|
);
|
|
28131
|
-
|
|
28136
|
+
useEffect23(() => () => {
|
|
28132
28137
|
abortRef.current?.abort();
|
|
28133
28138
|
}, []);
|
|
28134
28139
|
const handleEscape = useCallback20(
|
|
@@ -28143,7 +28148,7 @@ var AuthDialog = ({
|
|
|
28143
28148
|
[onClose, phase]
|
|
28144
28149
|
);
|
|
28145
28150
|
useKeypress(handleEscape, { isActive: true });
|
|
28146
|
-
return /* @__PURE__ */
|
|
28151
|
+
return /* @__PURE__ */ jsxs40(
|
|
28147
28152
|
Box36,
|
|
28148
28153
|
{
|
|
28149
28154
|
flexDirection: "column",
|
|
@@ -28153,32 +28158,32 @@ var AuthDialog = ({
|
|
|
28153
28158
|
marginLeft: 2,
|
|
28154
28159
|
marginRight: 2,
|
|
28155
28160
|
children: [
|
|
28156
|
-
/* @__PURE__ */ jsx45(
|
|
28157
|
-
/* @__PURE__ */ jsx45(
|
|
28161
|
+
/* @__PURE__ */ jsx45(Text43, { bold: true, color: theme.text.accent, children: "GitHub authentication" }),
|
|
28162
|
+
/* @__PURE__ */ jsx45(Text43, { color: theme.text.secondary, children: statusSummary }),
|
|
28158
28163
|
phase === "menu" && /* @__PURE__ */ jsx45(RadioButtonSelect, { items, onSelect: handleSelect, isFocused: true, showNumbers: false }),
|
|
28159
|
-
deviceCode && phase === "running" && /* @__PURE__ */
|
|
28160
|
-
/* @__PURE__ */
|
|
28164
|
+
deviceCode && phase === "running" && /* @__PURE__ */ jsxs40(Box36, { flexDirection: "column", marginTop: 1, children: [
|
|
28165
|
+
/* @__PURE__ */ jsxs40(Text43, { children: [
|
|
28161
28166
|
"Open: ",
|
|
28162
|
-
/* @__PURE__ */ jsx45(
|
|
28167
|
+
/* @__PURE__ */ jsx45(Text43, { color: theme.text.accent, children: deviceCode.verificationUri })
|
|
28163
28168
|
] }),
|
|
28164
|
-
/* @__PURE__ */
|
|
28169
|
+
/* @__PURE__ */ jsxs40(Text43, { children: [
|
|
28165
28170
|
"Code: ",
|
|
28166
|
-
/* @__PURE__ */ jsx45(
|
|
28171
|
+
/* @__PURE__ */ jsx45(Text43, { bold: true, color: theme.text.accent, children: deviceCode.userCode })
|
|
28167
28172
|
] }),
|
|
28168
|
-
/* @__PURE__ */
|
|
28173
|
+
/* @__PURE__ */ jsxs40(Text43, { color: theme.text.secondary, children: [
|
|
28169
28174
|
"Expires in ",
|
|
28170
28175
|
Math.round(deviceCode.expiresIn / 60),
|
|
28171
28176
|
" minutes."
|
|
28172
28177
|
] })
|
|
28173
28178
|
] }),
|
|
28174
28179
|
message && /* @__PURE__ */ jsx45(
|
|
28175
|
-
|
|
28180
|
+
Text43,
|
|
28176
28181
|
{
|
|
28177
28182
|
color: phase === "error" ? theme.status.error : phase === "done" ? theme.status.success : theme.text.secondary,
|
|
28178
28183
|
children: message
|
|
28179
28184
|
}
|
|
28180
28185
|
),
|
|
28181
|
-
/* @__PURE__ */ jsx45(
|
|
28186
|
+
/* @__PURE__ */ jsx45(Text43, { color: theme.text.secondary, children: phase === "running" ? "Esc cancel login" : phase === "menu" ? "\u2191\u2193 navigate \xB7 Enter select \xB7 Esc close" : "Esc close" })
|
|
28182
28187
|
]
|
|
28183
28188
|
}
|
|
28184
28189
|
);
|
|
@@ -28224,13 +28229,13 @@ var ModelDialog = ({
|
|
|
28224
28229
|
onSelectModel,
|
|
28225
28230
|
onClose
|
|
28226
28231
|
}) => {
|
|
28227
|
-
const [loadState, setLoadState] =
|
|
28228
|
-
const [models, setModels] =
|
|
28229
|
-
const [errorMsg, setErrorMsg] =
|
|
28230
|
-
const [search, setSearch] =
|
|
28231
|
-
const [activeSelIndex, setActiveSelIndex] =
|
|
28232
|
+
const [loadState, setLoadState] = useState25("loading");
|
|
28233
|
+
const [models, setModels] = useState25([]);
|
|
28234
|
+
const [errorMsg, setErrorMsg] = useState25("");
|
|
28235
|
+
const [search, setSearch] = useState25("");
|
|
28236
|
+
const [activeSelIndex, setActiveSelIndex] = useState25(0);
|
|
28232
28237
|
const abortRef = useRef15(null);
|
|
28233
|
-
|
|
28238
|
+
useEffect24(() => {
|
|
28234
28239
|
const ctrl = new AbortController();
|
|
28235
28240
|
abortRef.current = ctrl;
|
|
28236
28241
|
onFetchModels(currentProvider, ctrl.signal).then((fetched) => {
|
|
@@ -28250,7 +28255,7 @@ var ModelDialog = ({
|
|
|
28250
28255
|
);
|
|
28251
28256
|
const selectableCount = rows.filter((r) => r.kind === "item").length;
|
|
28252
28257
|
const clampedIndex = Math.min(activeSelIndex, Math.max(0, selectableCount - 1));
|
|
28253
|
-
|
|
28258
|
+
useEffect24(() => {
|
|
28254
28259
|
setActiveSelIndex(0);
|
|
28255
28260
|
}, [search]);
|
|
28256
28261
|
const activeRowPos = useMemo14(
|
|
@@ -28305,7 +28310,7 @@ var ModelDialog = ({
|
|
|
28305
28310
|
}, { isActive: true });
|
|
28306
28311
|
const canScrollUp = scrollTop > 0;
|
|
28307
28312
|
const canScrollDown = scrollTop + MAX_VISIBLE < rows.length;
|
|
28308
|
-
return /* @__PURE__ */
|
|
28313
|
+
return /* @__PURE__ */ jsxs41(
|
|
28309
28314
|
Box37,
|
|
28310
28315
|
{
|
|
28311
28316
|
flexDirection: "column",
|
|
@@ -28317,15 +28322,15 @@ var ModelDialog = ({
|
|
|
28317
28322
|
marginRight: 1,
|
|
28318
28323
|
minWidth: 58,
|
|
28319
28324
|
children: [
|
|
28320
|
-
/* @__PURE__ */
|
|
28321
|
-
/* @__PURE__ */
|
|
28322
|
-
/* @__PURE__ */ jsx46(
|
|
28323
|
-
/* @__PURE__ */ jsx46(
|
|
28324
|
-
/* @__PURE__ */ jsx46(
|
|
28325
|
+
/* @__PURE__ */ jsxs41(Box37, { justifyContent: "space-between", marginBottom: 1, children: [
|
|
28326
|
+
/* @__PURE__ */ jsxs41(Box37, { gap: 1, children: [
|
|
28327
|
+
/* @__PURE__ */ jsx46(Text44, { bold: true, color: theme.text.primary, children: "Select model" }),
|
|
28328
|
+
/* @__PURE__ */ jsx46(Text44, { color: theme.text.secondary, children: "for" }),
|
|
28329
|
+
/* @__PURE__ */ jsx46(Text44, { color: theme.text.accent, children: currentProvider })
|
|
28325
28330
|
] }),
|
|
28326
|
-
/* @__PURE__ */ jsx46(
|
|
28331
|
+
/* @__PURE__ */ jsx46(Text44, { color: theme.ui.comment, dimColor: true, children: "esc" })
|
|
28327
28332
|
] }),
|
|
28328
|
-
/* @__PURE__ */
|
|
28333
|
+
/* @__PURE__ */ jsxs41(
|
|
28329
28334
|
Box37,
|
|
28330
28335
|
{
|
|
28331
28336
|
borderStyle: "single",
|
|
@@ -28333,57 +28338,57 @@ var ModelDialog = ({
|
|
|
28333
28338
|
paddingX: 1,
|
|
28334
28339
|
marginBottom: 1,
|
|
28335
28340
|
children: [
|
|
28336
|
-
/* @__PURE__ */ jsx46(
|
|
28337
|
-
search ? /* @__PURE__ */
|
|
28341
|
+
/* @__PURE__ */ jsx46(Text44, { color: theme.ui.comment, children: "\u2315 " }),
|
|
28342
|
+
search ? /* @__PURE__ */ jsxs41(Text44, { color: theme.text.primary, children: [
|
|
28338
28343
|
search,
|
|
28339
|
-
/* @__PURE__ */ jsx46(
|
|
28340
|
-
] }) : /* @__PURE__ */
|
|
28344
|
+
/* @__PURE__ */ jsx46(Text44, { color: theme.text.accent, children: "\u258C" })
|
|
28345
|
+
] }) : /* @__PURE__ */ jsxs41(Text44, { color: theme.ui.comment, dimColor: true, children: [
|
|
28341
28346
|
"Search",
|
|
28342
|
-
/* @__PURE__ */ jsx46(
|
|
28347
|
+
/* @__PURE__ */ jsx46(Text44, { color: theme.text.accent, children: "\u258C" })
|
|
28343
28348
|
] })
|
|
28344
28349
|
]
|
|
28345
28350
|
}
|
|
28346
28351
|
),
|
|
28347
|
-
loadState === "loading" && /* @__PURE__ */ jsx46(Box37, { marginY: 1, children: /* @__PURE__ */ jsx46(
|
|
28348
|
-
loadState === "error" && /* @__PURE__ */
|
|
28349
|
-
/* @__PURE__ */ jsx46(
|
|
28350
|
-
/* @__PURE__ */ jsx46(
|
|
28352
|
+
loadState === "loading" && /* @__PURE__ */ jsx46(Box37, { marginY: 1, children: /* @__PURE__ */ jsx46(Text44, { color: theme.text.secondary, children: "Loading models\u2026" }) }),
|
|
28353
|
+
loadState === "error" && /* @__PURE__ */ jsxs41(Box37, { flexDirection: "column", marginY: 1, children: [
|
|
28354
|
+
/* @__PURE__ */ jsx46(Text44, { color: theme.status.error, children: "\u2717 Could not load models" }),
|
|
28355
|
+
/* @__PURE__ */ jsx46(Text44, { color: theme.ui.comment, dimColor: true, children: errorMsg })
|
|
28351
28356
|
] }),
|
|
28352
|
-
loadState === "ready" && selectableCount === 0 && /* @__PURE__ */ jsx46(Box37, { marginY: 1, children: /* @__PURE__ */
|
|
28357
|
+
loadState === "ready" && selectableCount === 0 && /* @__PURE__ */ jsx46(Box37, { marginY: 1, children: /* @__PURE__ */ jsxs41(Text44, { color: theme.ui.comment, dimColor: true, children: [
|
|
28353
28358
|
'No models match "',
|
|
28354
28359
|
search,
|
|
28355
28360
|
'"'
|
|
28356
28361
|
] }) }),
|
|
28357
|
-
loadState === "ready" && selectableCount > 0 && /* @__PURE__ */
|
|
28358
|
-
canScrollUp && /* @__PURE__ */ jsx46(
|
|
28362
|
+
loadState === "ready" && selectableCount > 0 && /* @__PURE__ */ jsxs41(Box37, { flexDirection: "column", children: [
|
|
28363
|
+
canScrollUp && /* @__PURE__ */ jsx46(Text44, { color: theme.ui.comment, dimColor: true, children: " \u2191" }),
|
|
28359
28364
|
visibleRows.map((row, i) => {
|
|
28360
28365
|
if (row.kind === "header") {
|
|
28361
|
-
return /* @__PURE__ */ jsx46(Box37, { marginTop: i === 0 ? 0 : 1, children: /* @__PURE__ */ jsx46(
|
|
28366
|
+
return /* @__PURE__ */ jsx46(Box37, { marginTop: i === 0 ? 0 : 1, children: /* @__PURE__ */ jsx46(Text44, { color: theme.text.accent, bold: true, children: row.label }) }, `h${i}`);
|
|
28362
28367
|
}
|
|
28363
28368
|
const { model, selIndex } = row;
|
|
28364
28369
|
const isActive = selIndex === clampedIndex;
|
|
28365
28370
|
const isCurrent = model.id === currentModel;
|
|
28366
28371
|
const free = isFree(model);
|
|
28367
28372
|
const group = providerGroup(model);
|
|
28368
|
-
return /* @__PURE__ */
|
|
28369
|
-
/* @__PURE__ */ jsx46(
|
|
28370
|
-
/* @__PURE__ */
|
|
28373
|
+
return /* @__PURE__ */ jsxs41(Box37, { gap: 1, children: [
|
|
28374
|
+
/* @__PURE__ */ jsx46(Text44, { color: isActive ? theme.text.accent : theme.ui.comment, children: isCurrent ? "\u25CF" : isActive ? "\u203A" : " " }),
|
|
28375
|
+
/* @__PURE__ */ jsxs41(Box37, { flexGrow: 1, gap: 1, children: [
|
|
28371
28376
|
/* @__PURE__ */ jsx46(
|
|
28372
|
-
|
|
28377
|
+
Text44,
|
|
28373
28378
|
{
|
|
28374
28379
|
color: isActive ? theme.text.primary : theme.text.secondary,
|
|
28375
28380
|
bold: isActive,
|
|
28376
28381
|
children: model.name
|
|
28377
28382
|
}
|
|
28378
28383
|
),
|
|
28379
|
-
/* @__PURE__ */ jsx46(
|
|
28384
|
+
/* @__PURE__ */ jsx46(Text44, { color: theme.text.accent, dimColor: true, children: group })
|
|
28380
28385
|
] }),
|
|
28381
|
-
free && /* @__PURE__ */ jsx46(
|
|
28386
|
+
free && /* @__PURE__ */ jsx46(Text44, { color: theme.status.success, dimColor: !isActive, children: "Free" })
|
|
28382
28387
|
] }, model.id);
|
|
28383
28388
|
}),
|
|
28384
|
-
canScrollDown && /* @__PURE__ */ jsx46(
|
|
28389
|
+
canScrollDown && /* @__PURE__ */ jsx46(Text44, { color: theme.ui.comment, dimColor: true, children: " \u2193" })
|
|
28385
28390
|
] }),
|
|
28386
|
-
loadState === "ready" && /* @__PURE__ */ jsx46(Box37, { marginTop: 1, children: /* @__PURE__ */
|
|
28391
|
+
loadState === "ready" && /* @__PURE__ */ jsx46(Box37, { marginTop: 1, children: /* @__PURE__ */ jsxs41(Text44, { color: theme.ui.comment, dimColor: true, children: [
|
|
28387
28392
|
selectableCount,
|
|
28388
28393
|
" model",
|
|
28389
28394
|
selectableCount !== 1 ? "s" : "",
|
|
@@ -28399,7 +28404,7 @@ var ModelDialog = ({
|
|
|
28399
28404
|
borderLeft: false,
|
|
28400
28405
|
borderRight: false,
|
|
28401
28406
|
borderColor: theme.ui.comment,
|
|
28402
|
-
children: /* @__PURE__ */ jsx46(
|
|
28407
|
+
children: /* @__PURE__ */ jsx46(Text44, { color: theme.ui.comment, dimColor: true, children: "\u2191\u2193 navigate type to search Enter use for session Esc close" })
|
|
28403
28408
|
}
|
|
28404
28409
|
)
|
|
28405
28410
|
]
|
|
@@ -28537,50 +28542,52 @@ function resolveSlashInvocation(rawInput, commands) {
|
|
|
28537
28542
|
var AppContainer = ({ cwd, config, provider, model }) => {
|
|
28538
28543
|
const historyManager = useHistory();
|
|
28539
28544
|
const addHistoryItem = historyManager.addItem;
|
|
28540
|
-
const [initError, setInitError] =
|
|
28541
|
-
const [isInitializing, setIsInitializing] =
|
|
28542
|
-
const [isRunning, setIsRunning] =
|
|
28543
|
-
const [pendingAssistantText, setPendingAssistantText] =
|
|
28544
|
-
const [approvalQueue, setApprovalQueue] =
|
|
28545
|
-
const [providerLabel, setProviderLabel] =
|
|
28546
|
-
const [targetSource, setTargetSource] =
|
|
28547
|
-
const [currentModel, setCurrentModel] =
|
|
28548
|
-
const [agentMode, setAgentMode] =
|
|
28549
|
-
const [streamingState, setStreamingState] =
|
|
28545
|
+
const [initError, setInitError] = useState26(null);
|
|
28546
|
+
const [isInitializing, setIsInitializing] = useState26(true);
|
|
28547
|
+
const [isRunning, setIsRunning] = useState26(false);
|
|
28548
|
+
const [pendingAssistantText, setPendingAssistantText] = useState26("");
|
|
28549
|
+
const [approvalQueue, setApprovalQueue] = useState26([]);
|
|
28550
|
+
const [providerLabel, setProviderLabel] = useState26("(unconfigured)");
|
|
28551
|
+
const [targetSource, setTargetSource] = useState26("config");
|
|
28552
|
+
const [currentModel, setCurrentModel] = useState26("(unconfigured)");
|
|
28553
|
+
const [agentMode, setAgentMode] = useState26("build");
|
|
28554
|
+
const [streamingState, setStreamingState] = useState26(
|
|
28550
28555
|
"idle"
|
|
28551
28556
|
/* Idle */
|
|
28552
28557
|
);
|
|
28553
|
-
const [compactMode, setCompactMode] =
|
|
28554
|
-
const [shellModeActive, setShellModeActive] =
|
|
28555
|
-
const [showEscapePrompt, setShowEscapePrompt] =
|
|
28556
|
-
const [messageQueue, setMessageQueue] =
|
|
28557
|
-
const [historyRemountKey, setHistoryRemountKey] =
|
|
28558
|
-
const [pendingItem, setPendingItem] =
|
|
28559
|
-
const [isFeedbackDialogOpen, setIsFeedbackDialogOpen] =
|
|
28560
|
-
const [lastPromptTokenCount, setLastPromptTokenCount] =
|
|
28561
|
-
const [lastOutputTokenCount, setLastOutputTokenCount] =
|
|
28562
|
-
const [elapsedTime, setElapsedTime] =
|
|
28563
|
-
const [isReceivingContent, setIsReceivingContent] =
|
|
28564
|
-
const [iterationInfo, setIterationInfo] =
|
|
28565
|
-
const [liveToolCalls, setLiveToolCalls] =
|
|
28566
|
-
const [taskPlan, setTaskPlan] =
|
|
28567
|
-
const [taskStreams, setTaskStreams] =
|
|
28568
|
-
const [recentSlashCommandsState, setRecentSlashCommandsState] =
|
|
28569
|
-
const [activeDialog, setActiveDialog] =
|
|
28570
|
-
const [themeName, setThemeName] =
|
|
28571
|
-
const [permissionSummary, setPermissionSummary] =
|
|
28572
|
-
const [authSummary, setAuthSummary] =
|
|
28573
|
-
const [permissionModes, setPermissionModes] =
|
|
28558
|
+
const [compactMode, setCompactMode] = useState26(false);
|
|
28559
|
+
const [shellModeActive, setShellModeActive] = useState26(false);
|
|
28560
|
+
const [showEscapePrompt, setShowEscapePrompt] = useState26(false);
|
|
28561
|
+
const [messageQueue, setMessageQueue] = useState26([]);
|
|
28562
|
+
const [historyRemountKey, setHistoryRemountKey] = useState26(0);
|
|
28563
|
+
const [pendingItem, setPendingItem] = useState26(null);
|
|
28564
|
+
const [isFeedbackDialogOpen, setIsFeedbackDialogOpen] = useState26(false);
|
|
28565
|
+
const [lastPromptTokenCount, setLastPromptTokenCount] = useState26(0);
|
|
28566
|
+
const [lastOutputTokenCount, setLastOutputTokenCount] = useState26(0);
|
|
28567
|
+
const [elapsedTime, setElapsedTime] = useState26(0);
|
|
28568
|
+
const [isReceivingContent, setIsReceivingContent] = useState26(false);
|
|
28569
|
+
const [iterationInfo, setIterationInfo] = useState26(null);
|
|
28570
|
+
const [liveToolCalls, setLiveToolCalls] = useState26([]);
|
|
28571
|
+
const [taskPlan, setTaskPlan] = useState26(null);
|
|
28572
|
+
const [taskStreams, setTaskStreams] = useState26({});
|
|
28573
|
+
const [recentSlashCommandsState, setRecentSlashCommandsState] = useState26(/* @__PURE__ */ new Map());
|
|
28574
|
+
const [activeDialog, setActiveDialog] = useState26(null);
|
|
28575
|
+
const [themeName, setThemeName] = useState26("(unknown)");
|
|
28576
|
+
const [permissionSummary, setPermissionSummary] = useState26("(unknown)");
|
|
28577
|
+
const [authSummary, setAuthSummary] = useState26("(unknown)");
|
|
28578
|
+
const [permissionModes, setPermissionModes] = useState26({
|
|
28574
28579
|
read: "allow",
|
|
28575
28580
|
write: "ask",
|
|
28576
28581
|
gitLocal: "allow",
|
|
28577
28582
|
shell: "ask",
|
|
28578
28583
|
dangerous: "ask"
|
|
28579
28584
|
});
|
|
28580
|
-
const [providerConfigVersion, setProviderConfigVersion] =
|
|
28581
|
-
const [, setThemeVersion] =
|
|
28582
|
-
const [,
|
|
28583
|
-
const [
|
|
28585
|
+
const [providerConfigVersion, setProviderConfigVersion] = useState26(0);
|
|
28586
|
+
const [, setThemeVersion] = useState26(0);
|
|
28587
|
+
const [mcpConnected, setMcpConnected] = useState26(0);
|
|
28588
|
+
const [mcpTotal, setMcpTotal] = useState26(0);
|
|
28589
|
+
const [, setDrainTick] = useState26(0);
|
|
28590
|
+
const [pendingCommandConfirmation, setPendingCommandConfirmation] = useState26(null);
|
|
28584
28591
|
const runtimeRef = useRef16(null);
|
|
28585
28592
|
const sessionRef = useRef16(null);
|
|
28586
28593
|
const configAdapterRef = useRef16(null);
|
|
@@ -28761,10 +28768,10 @@ var AppContainer = ({ cwd, config, provider, model }) => {
|
|
|
28761
28768
|
}),
|
|
28762
28769
|
[configAdapter, historyManager, pendingItem, sessionCommandServices]
|
|
28763
28770
|
);
|
|
28764
|
-
|
|
28771
|
+
useEffect25(() => {
|
|
28765
28772
|
messageQueueRef.current = messageQueue;
|
|
28766
28773
|
}, [messageQueue]);
|
|
28767
|
-
|
|
28774
|
+
useEffect25(() => {
|
|
28768
28775
|
if (approvalQueue.length > 0) {
|
|
28769
28776
|
setStreamingState(
|
|
28770
28777
|
"waiting_for_confirmation"
|
|
@@ -28784,7 +28791,7 @@ var AppContainer = ({ cwd, config, provider, model }) => {
|
|
|
28784
28791
|
/* Idle */
|
|
28785
28792
|
);
|
|
28786
28793
|
}, [approvalQueue.length, isRunning]);
|
|
28787
|
-
|
|
28794
|
+
useEffect25(() => {
|
|
28788
28795
|
if (!isRunning) {
|
|
28789
28796
|
runStartedAtRef.current = null;
|
|
28790
28797
|
setElapsedTime(0);
|
|
@@ -28800,7 +28807,7 @@ var AppContainer = ({ cwd, config, provider, model }) => {
|
|
|
28800
28807
|
}, 250);
|
|
28801
28808
|
return () => clearInterval(interval);
|
|
28802
28809
|
}, [isRunning]);
|
|
28803
|
-
|
|
28810
|
+
useEffect25(() => {
|
|
28804
28811
|
let mounted = true;
|
|
28805
28812
|
const initialize = async () => {
|
|
28806
28813
|
try {
|
|
@@ -28833,6 +28840,8 @@ var AppContainer = ({ cwd, config, provider, model }) => {
|
|
|
28833
28840
|
setTargetSource(provider || model ? "cli" : "config");
|
|
28834
28841
|
setCurrentModel(session.model ?? "(unconfigured)");
|
|
28835
28842
|
setProviderLabel(formatProviderLabel(session.provider, session.model));
|
|
28843
|
+
setMcpConnected(runtime.mcp.connectedCount);
|
|
28844
|
+
setMcpTotal(runtime.config.mcpServers.length);
|
|
28836
28845
|
const unsubscribers = [];
|
|
28837
28846
|
unsubscribers.push(
|
|
28838
28847
|
runtime.events.on("approval:request", (request) => {
|
|
@@ -29538,7 +29547,7 @@ var AppContainer = ({ cwd, config, provider, model }) => {
|
|
|
29538
29547
|
);
|
|
29539
29548
|
const closeDialog = useCallback22(() => setActiveDialog(null), []);
|
|
29540
29549
|
const previewTheme = useCallback22(() => setThemeVersion((version) => version + 1), []);
|
|
29541
|
-
|
|
29550
|
+
useEffect25(() => {
|
|
29542
29551
|
if (drainingQueueRef.current || isRunning || isInitializing || Boolean(initError) || approvalQueue.length > 0 || messageQueue.length === 0) {
|
|
29543
29552
|
return;
|
|
29544
29553
|
}
|
|
@@ -29716,8 +29725,9 @@ var AppContainer = ({ cwd, config, provider, model }) => {
|
|
|
29716
29725
|
isProviderDialogOpen: activeDialog === "provider",
|
|
29717
29726
|
isPermissionsDialogOpen: activeDialog === "permissions",
|
|
29718
29727
|
isFeedbackDialogOpen,
|
|
29719
|
-
showAutoAcceptIndicator: "default"
|
|
29720
|
-
|
|
29728
|
+
showAutoAcceptIndicator: "default",
|
|
29729
|
+
mcpConnected,
|
|
29730
|
+
mcpTotal
|
|
29721
29731
|
}),
|
|
29722
29732
|
[
|
|
29723
29733
|
approvalQueue.length,
|
|
@@ -29739,6 +29749,8 @@ var AppContainer = ({ cwd, config, provider, model }) => {
|
|
|
29739
29749
|
lastOutputTokenCount,
|
|
29740
29750
|
lastPromptTokenCount,
|
|
29741
29751
|
mainAreaWidth,
|
|
29752
|
+
mcpConnected,
|
|
29753
|
+
mcpTotal,
|
|
29742
29754
|
messageQueue,
|
|
29743
29755
|
pendingCommandConfirmation,
|
|
29744
29756
|
pendingGeminiHistoryItems,
|
|
@@ -29754,37 +29766,37 @@ var AppContainer = ({ cwd, config, provider, model }) => {
|
|
|
29754
29766
|
userMessages
|
|
29755
29767
|
]
|
|
29756
29768
|
);
|
|
29757
|
-
return /* @__PURE__ */ jsx47(CompactModeProvider, { value: { compactMode }, children: /* @__PURE__ */ jsx47(ConfigContext.Provider, { value: configAdapter, children: /* @__PURE__ */ jsx47(SettingsContext.Provider, { value: loadedSettings, children: /* @__PURE__ */ jsx47(StreamingContext.Provider, { value: streamingState, children: /* @__PURE__ */ jsx47(VimModeProvider, { initialVimEnabled: loadedSettings.merged.general?.vimMode ?? false, children: /* @__PURE__ */ jsx47(KeypressProvider, { kittyProtocolEnabled: false, config: configAdapter, children: /* @__PURE__ */ jsx47(ShellFocusContext.Provider, { value: true, children: /* @__PURE__ */ jsx47(AgentViewProvider, { children: /* @__PURE__ */ jsx47(BackgroundTaskViewProvider, { children: /* @__PURE__ */ jsx47(UIStateContext.Provider, { value: uiState, children: /* @__PURE__ */ jsx47(UIActionsContext.Provider, { value: uiActions, children: /* @__PURE__ */
|
|
29758
|
-
/* @__PURE__ */
|
|
29759
|
-
/* @__PURE__ */ jsx47(
|
|
29760
|
-
/* @__PURE__ */ jsx47(
|
|
29761
|
-
/* @__PURE__ */ jsx47(
|
|
29762
|
-
/* @__PURE__ */
|
|
29769
|
+
return /* @__PURE__ */ jsx47(CompactModeProvider, { value: { compactMode }, children: /* @__PURE__ */ jsx47(ConfigContext.Provider, { value: configAdapter, children: /* @__PURE__ */ jsx47(SettingsContext.Provider, { value: loadedSettings, children: /* @__PURE__ */ jsx47(StreamingContext.Provider, { value: streamingState, children: /* @__PURE__ */ jsx47(VimModeProvider, { initialVimEnabled: loadedSettings.merged.general?.vimMode ?? false, children: /* @__PURE__ */ jsx47(KeypressProvider, { kittyProtocolEnabled: false, config: configAdapter, children: /* @__PURE__ */ jsx47(ShellFocusContext.Provider, { value: true, children: /* @__PURE__ */ jsx47(AgentViewProvider, { children: /* @__PURE__ */ jsx47(BackgroundTaskViewProvider, { children: /* @__PURE__ */ jsx47(UIStateContext.Provider, { value: uiState, children: /* @__PURE__ */ jsx47(UIActionsContext.Provider, { value: uiActions, children: /* @__PURE__ */ jsxs42(Box38, { flexDirection: "column", flexGrow: 1, children: [
|
|
29770
|
+
/* @__PURE__ */ jsxs42(Box38, { marginLeft: 2, marginRight: 2, marginTop: 1, marginBottom: 1, children: [
|
|
29771
|
+
/* @__PURE__ */ jsx47(Text45, { bold: true, color: theme.text.accent, children: "DeepCode" }),
|
|
29772
|
+
/* @__PURE__ */ jsx47(Text45, { color: theme.text.secondary, children: " Target: " }),
|
|
29773
|
+
/* @__PURE__ */ jsx47(Text45, { color: theme.text.primary, children: providerLabel }),
|
|
29774
|
+
/* @__PURE__ */ jsxs42(Text45, { color: theme.text.secondary, children: [
|
|
29763
29775
|
" (",
|
|
29764
29776
|
targetSource,
|
|
29765
29777
|
")"
|
|
29766
29778
|
] }),
|
|
29767
|
-
/* @__PURE__ */ jsx47(
|
|
29779
|
+
/* @__PURE__ */ jsx47(Text45, { color: theme.text.secondary, children: " Mode: " }),
|
|
29768
29780
|
/* @__PURE__ */ jsx47(
|
|
29769
|
-
|
|
29781
|
+
Text45,
|
|
29770
29782
|
{
|
|
29771
29783
|
bold: true,
|
|
29772
29784
|
color: agentMode === "build" ? theme.status.success : theme.status.warning,
|
|
29773
29785
|
children: agentMode.toUpperCase()
|
|
29774
29786
|
}
|
|
29775
29787
|
),
|
|
29776
|
-
/* @__PURE__ */
|
|
29788
|
+
/* @__PURE__ */ jsxs42(Text45, { color: theme.text.secondary, children: [
|
|
29777
29789
|
" ",
|
|
29778
29790
|
streamingState === "responding" ? "running" : streamingState === "waiting_for_confirmation" ? "waiting-approval" : "idle"
|
|
29779
29791
|
] }),
|
|
29780
|
-
iterationInfo && /* @__PURE__ */
|
|
29792
|
+
iterationInfo && /* @__PURE__ */ jsxs42(Text45, { color: theme.text.secondary, children: [
|
|
29781
29793
|
" ",
|
|
29782
29794
|
"iter ",
|
|
29783
29795
|
iterationInfo.round,
|
|
29784
29796
|
"/",
|
|
29785
29797
|
iterationInfo.max
|
|
29786
29798
|
] }),
|
|
29787
|
-
lastPromptTokenCount > 0 && /* @__PURE__ */
|
|
29799
|
+
lastPromptTokenCount > 0 && /* @__PURE__ */ jsxs42(Text45, { color: theme.text.secondary, children: [
|
|
29788
29800
|
" ",
|
|
29789
29801
|
"\u2191",
|
|
29790
29802
|
formatTokenCount(lastPromptTokenCount),
|
|
@@ -29792,7 +29804,7 @@ var AppContainer = ({ cwd, config, provider, model }) => {
|
|
|
29792
29804
|
formatTokenCount(lastOutputTokenCount)
|
|
29793
29805
|
] })
|
|
29794
29806
|
] }),
|
|
29795
|
-
initError ? /* @__PURE__ */ jsx47(Box38, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */
|
|
29807
|
+
initError ? /* @__PURE__ */ jsx47(Box38, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ jsxs42(Text45, { color: theme.status.error, children: [
|
|
29796
29808
|
"Failed to initialize runtime: ",
|
|
29797
29809
|
initError
|
|
29798
29810
|
] }) }) : /* @__PURE__ */ jsx47(
|
|
@@ -29979,22 +29991,22 @@ function formatAuthSummary(config) {
|
|
|
29979
29991
|
var ApprovalPrompt = ({ request }) => {
|
|
29980
29992
|
if (!request) return null;
|
|
29981
29993
|
const operationLabel = formatApprovalOperationLabel(request);
|
|
29982
|
-
return /* @__PURE__ */
|
|
29983
|
-
/* @__PURE__ */
|
|
29994
|
+
return /* @__PURE__ */ jsxs42(Box38, { flexDirection: "column", marginTop: 1, children: [
|
|
29995
|
+
/* @__PURE__ */ jsxs42(Text45, { color: theme.status.warning, children: [
|
|
29984
29996
|
"\u26A0 Allow ",
|
|
29985
29997
|
operationLabel,
|
|
29986
29998
|
"?"
|
|
29987
29999
|
] }),
|
|
29988
|
-
request.path && /* @__PURE__ */
|
|
30000
|
+
request.path && /* @__PURE__ */ jsxs42(Text45, { color: theme.text.secondary, children: [
|
|
29989
30001
|
" ",
|
|
29990
30002
|
request.path
|
|
29991
30003
|
] }),
|
|
29992
|
-
request.preview?.command && /* @__PURE__ */
|
|
30004
|
+
request.preview?.command && /* @__PURE__ */ jsxs42(Text45, { color: theme.text.secondary, children: [
|
|
29993
30005
|
" $ ",
|
|
29994
30006
|
request.preview.command,
|
|
29995
30007
|
request.preview.args?.length ? ` ${request.preview.args.join(" ")}` : ""
|
|
29996
30008
|
] }),
|
|
29997
|
-
/* @__PURE__ */ jsx47(
|
|
30009
|
+
/* @__PURE__ */ jsx47(Text45, { color: theme.text.secondary, children: " [\u21B5/y] once [s] session [a] always [n] deny" })
|
|
29998
30010
|
] });
|
|
29999
30011
|
};
|
|
30000
30012
|
function formatApprovalOperationLabel(request) {
|