@botconnector/bccli 0.4.0-beta.45 → 0.4.0-beta.47
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/{acp-QUDKQCTK.js → acp-QMD7IKKI.js} +2 -2
- package/dist/{args-HXDHQUL2.js → args-6T55MFPG.js} +4 -4
- package/dist/{chunk-7BQQYDPU.js → chunk-226R2FBX.js} +1 -1
- package/dist/{chunk-FNCDUDOB.js → chunk-3ETD6HSV.js} +31 -18
- package/dist/{chunk-W2ME7AGN.js → chunk-5D35DOMD.js} +3 -3
- package/dist/{chunk-4BQAIMAM.js → chunk-5YTZXUGU.js} +4 -4
- package/dist/{chunk-NJ5YDSSP.js → chunk-DAFJ7VOQ.js} +1 -1
- package/dist/{chunk-ERXWNEVU.js → chunk-EC67VAZX.js} +68 -12
- package/dist/{chunk-O33VFLLL.js → chunk-FNECQ433.js} +2 -2
- package/dist/{chunk-IA35YV5K.js → chunk-HBR62GF2.js} +1 -1
- package/dist/{chunk-JZ5XPSIA.js → chunk-JRUQQRP6.js} +5 -4
- package/dist/{chunk-X5ZJGTWY.js → chunk-KVXONGYT.js} +4 -4
- package/dist/{chunk-IU7PB6US.js → chunk-QGTAINBU.js} +6 -6
- package/dist/{chunk-JKRSZHDV.js → chunk-R72DRWZ6.js} +1 -1
- package/dist/{chunk-Q7DFEWE7.js → chunk-SJTJHATK.js} +2 -2
- package/dist/{chunk-VQ4FJ7R2.js → chunk-SVGARF5B.js} +3 -3
- package/dist/{chunk-FNGFR7R6.js → chunk-TSZFE2RV.js} +2 -1
- package/dist/{chunk-F4XYLKG5.js → chunk-Y7F5CZ4D.js} +1 -1
- package/dist/{chunk-RFSNTLOW.js → chunk-YGITX6JU.js} +1 -1
- package/dist/cli.js +37 -37
- package/dist/{completion-5OLAKCX7.js → completion-QO5B6N4R.js} +1 -1
- package/dist/{config-LSB274W4.js → config-67RNJLDR.js} +3 -3
- package/dist/{config-2PLBQKNC.js → config-TBRDIB7O.js} +2 -2
- package/dist/{ghBotCli-MB7KATUU.js → ghBotCli-4SXXJQGT.js} +13 -13
- package/dist/{integrationCli-L7OLA3DG.js → integrationCli-KTHSQC4Y.js} +2 -2
- package/dist/{login-4CIXDZZ7.js → login-7T6M25XB.js} +3 -3
- package/dist/{mcpCli-SAJTQGI7.js → mcpCli-7RR5N7SX.js} +5 -5
- package/dist/{modelsCli-L6VODTVW.js → modelsCli-GDE5RVD4.js} +6 -6
- package/dist/{oauthLogin-6TP475PO.js → oauthLogin-ZVKAVGJH.js} +1 -1
- package/dist/{pluginsCli-LE2IDSST.js → pluginsCli-UKMRWPVT.js} +2 -2
- package/dist/{prCli-PQJDEF7H.js → prCli-26OUBDFO.js} +1 -1
- package/dist/providerCli-QVYG6PFQ.js +15 -0
- package/dist/sdk.js +93 -22
- package/dist/{serve-QAVMAYEU.js → serve-PAXJYBVI.js} +3 -3
- package/dist/{serve-ZBCAEE72.js → serve-SEGKQ5DM.js} +14 -14
- package/dist/session-GDPYDGOX.js +12 -0
- package/dist/setup-HRZW73ZW.js +24 -0
- package/dist/{statsCli-AJG3IJTX.js → statsCli-ZHURTHK7.js} +1 -1
- package/dist/{transferCli-HNJMZYLV.js → transferCli-PQCFSIVT.js} +4 -4
- package/dist/{ui-ORZ5ZNIC.js → ui-52SWT2AL.js} +139 -44
- package/dist/{update-REYFMT5X.js → update-URVV6UXT.js} +2 -2
- package/package.json +1 -1
- package/dist/providerCli-SEAZ5OLH.js +0 -15
- package/dist/session-3I64N64B.js +0 -12
- package/dist/setup-N3PMYREM.js +0 -24
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
CATALOG,
|
|
4
4
|
fillTemplate
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-FNECQ433.js";
|
|
6
6
|
import {
|
|
7
7
|
MAX_VERIFY_ROUNDS,
|
|
8
8
|
runVerify,
|
|
9
9
|
toolLabel,
|
|
10
10
|
verifyFollowup,
|
|
11
11
|
worktreeListText
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-SVGARF5B.js";
|
|
13
13
|
import {
|
|
14
14
|
BUILTIN_AGENTS,
|
|
15
15
|
appendMemory,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
renderBackgroundTasks,
|
|
22
22
|
runHooks,
|
|
23
23
|
validateGlobPattern
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-DAFJ7VOQ.js";
|
|
25
25
|
import "./chunk-PSO7R5AD.js";
|
|
26
26
|
import {
|
|
27
27
|
nextMode
|
|
@@ -30,39 +30,39 @@ import {
|
|
|
30
30
|
hasKey,
|
|
31
31
|
providerName,
|
|
32
32
|
writeGlobalConfig
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-Y7F5CZ4D.js";
|
|
34
34
|
import {
|
|
35
35
|
Session
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-HBR62GF2.js";
|
|
37
37
|
import {
|
|
38
38
|
contentText
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-EC67VAZX.js";
|
|
40
40
|
import {
|
|
41
41
|
REASONING_LEVELS,
|
|
42
42
|
assertReasoningSupported,
|
|
43
43
|
parseReasoningLevel,
|
|
44
44
|
supportedReasoningLevels
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-YGITX6JU.js";
|
|
46
46
|
import {
|
|
47
47
|
addGlobalServer,
|
|
48
48
|
globalMcpPath,
|
|
49
49
|
readMcpFile,
|
|
50
50
|
removeGlobalServer
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-SJTJHATK.js";
|
|
52
52
|
import {
|
|
53
53
|
ACCENT,
|
|
54
54
|
PRESETS,
|
|
55
55
|
color,
|
|
56
56
|
matchKeybind,
|
|
57
57
|
removeCredential
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-TSZFE2RV.js";
|
|
59
59
|
import {
|
|
60
60
|
getLanguage,
|
|
61
61
|
locale,
|
|
62
62
|
parseLang,
|
|
63
63
|
setLanguage,
|
|
64
64
|
t
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-JRUQQRP6.js";
|
|
66
66
|
|
|
67
67
|
// src/ui/index.tsx
|
|
68
68
|
import { render } from "ink";
|
|
@@ -72,7 +72,7 @@ import { execFile as execFile3 } from "child_process";
|
|
|
72
72
|
import { existsSync as existsSync2, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
73
73
|
import { homedir, tmpdir } from "os";
|
|
74
74
|
import { dirname, join as join3, relative, resolve } from "path";
|
|
75
|
-
import { Box as Box13, Static, Text as Text16, useApp, useInput as useInput9 } from "ink";
|
|
75
|
+
import { Box as Box13, Static, Text as Text16, measureElement, useApp, useInput as useInput9, useStdin, useStdout as useStdout2 } from "ink";
|
|
76
76
|
import { useCallback, useEffect as useEffect3, useRef, useState as useState8 } from "react";
|
|
77
77
|
|
|
78
78
|
// src/commands.ts
|
|
@@ -782,11 +782,66 @@ function EditableText({ state, mask = false, showCursor = true }) {
|
|
|
782
782
|
// src/ui/focusReport.ts
|
|
783
783
|
var isFocusReport = (input) => input === "[I" || input === "[O";
|
|
784
784
|
|
|
785
|
+
// src/ui/thinkingMouse.ts
|
|
786
|
+
function parseMousePress(value) {
|
|
787
|
+
const start = value.indexOf("\x1B[<");
|
|
788
|
+
if (start < 0) return void 0;
|
|
789
|
+
const match = /^<(\d+);(\d+);(\d+)M/.exec(value.slice(start + 2));
|
|
790
|
+
if (!match) return void 0;
|
|
791
|
+
const button = Number(match[1]);
|
|
792
|
+
if (button !== 0) return void 0;
|
|
793
|
+
const x = Number(match[2]);
|
|
794
|
+
const y = Number(match[3]);
|
|
795
|
+
if (x < 1 || y < 1) return void 0;
|
|
796
|
+
return { x, y };
|
|
797
|
+
}
|
|
798
|
+
function parseCursorPosition(value) {
|
|
799
|
+
const start = value.indexOf("\x1B[");
|
|
800
|
+
if (start < 0) return void 0;
|
|
801
|
+
const match = /^(\d+);(\d+)R/.exec(value.slice(start + 2));
|
|
802
|
+
if (!match) return void 0;
|
|
803
|
+
const row = Number(match[1]);
|
|
804
|
+
const col = Number(match[2]);
|
|
805
|
+
if (row < 1 || col < 1) return void 0;
|
|
806
|
+
return { row, col };
|
|
807
|
+
}
|
|
808
|
+
function clickedThinking(click, cursorRow, rootHeight, target) {
|
|
809
|
+
if (!rootHeight || !target.width || !target.height) return false;
|
|
810
|
+
const origin = cursorRow - rootHeight + 1;
|
|
811
|
+
const row = origin + target.y;
|
|
812
|
+
const col = target.x + 1;
|
|
813
|
+
return (click.y === row || click.y === row - 1) && click.x >= col && click.x < col + Math.min(target.width, 46);
|
|
814
|
+
}
|
|
815
|
+
function isMouseControlInput(input) {
|
|
816
|
+
return /^\[<(?:\d+;){2}\d+[mM]$/.test(input) || /^\[(?:\d+;)\d+R$/.test(input);
|
|
817
|
+
}
|
|
818
|
+
function parseThinkingReports(value) {
|
|
819
|
+
const events = [];
|
|
820
|
+
let offset = 0;
|
|
821
|
+
while (true) {
|
|
822
|
+
const start = value.indexOf("\x1B[", offset);
|
|
823
|
+
if (start < 0) break;
|
|
824
|
+
const finish = /[a-zA-Z~]/.exec(value.slice(start + 2));
|
|
825
|
+
if (!finish) return { events, rest: value.slice(start) };
|
|
826
|
+
const end = start + 2 + finish.index + 1;
|
|
827
|
+
const raw = value.slice(start, end);
|
|
828
|
+
const press = parseMousePress(raw);
|
|
829
|
+
const cursor = parseCursorPosition(raw);
|
|
830
|
+
if (press) events.push({ type: "mouse", press });
|
|
831
|
+
else if (cursor) events.push({ type: "cursor", cursor });
|
|
832
|
+
offset = end;
|
|
833
|
+
}
|
|
834
|
+
const remaining = value.lastIndexOf("\x1B[");
|
|
835
|
+
if (remaining >= offset) return { events, rest: value.slice(remaining) };
|
|
836
|
+
return { events, rest: value.endsWith("\x1B") ? "\x1B" : "" };
|
|
837
|
+
}
|
|
838
|
+
|
|
785
839
|
// src/ui/LinePrompt.tsx
|
|
786
840
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
787
841
|
function LinePrompt({ label, mask, onSubmit, onCancel }) {
|
|
788
842
|
const [line, setLine] = useState({ value: "", cursor: 0 });
|
|
789
843
|
useInput((input, key) => {
|
|
844
|
+
if (isMouseControlInput(input)) return;
|
|
790
845
|
if (key.return) onSubmit(line.value.trim());
|
|
791
846
|
else if (key.escape) onCancel();
|
|
792
847
|
else if (applyEditKey(line, input, key)) setLine((current) => applyEditKey(current, input, key) ?? current);
|
|
@@ -1080,6 +1135,7 @@ function PromptInput({ disabled, history, cwd, onSubmit, extraCommands, injected
|
|
|
1080
1135
|
};
|
|
1081
1136
|
useInput6(
|
|
1082
1137
|
(input, key) => {
|
|
1138
|
+
if (isMouseControlInput(input)) return;
|
|
1083
1139
|
if (suggestions.length) {
|
|
1084
1140
|
if (key.upArrow) {
|
|
1085
1141
|
setSelected(Math.max(0, highlighted - 1));
|
|
@@ -1494,7 +1550,14 @@ function App({ runtime, initialPrompt, version }) {
|
|
|
1494
1550
|
const [listPicker, setListPicker] = useState8(null);
|
|
1495
1551
|
const [planAsk, setPlanAsk] = useState8(null);
|
|
1496
1552
|
const [queued, setQueued] = useState8([]);
|
|
1497
|
-
const [showThinking, setShowThinking] = useState8(
|
|
1553
|
+
const [showThinking, setShowThinking] = useState8(runtime.config.thinkingVisible === true);
|
|
1554
|
+
const showThinkingRef = useRef(showThinking);
|
|
1555
|
+
const [lastThinking, setLastThinking] = useState8("");
|
|
1556
|
+
const hasThinking = !!lastThinking.trim();
|
|
1557
|
+
const { stdin } = useStdin();
|
|
1558
|
+
const { stdout } = useStdout2();
|
|
1559
|
+
const liveRootRef = useRef(null);
|
|
1560
|
+
const thinkingTargetRef = useRef(null);
|
|
1498
1561
|
const [injected, setInjected] = useState8();
|
|
1499
1562
|
useEffect3(() => runtime.todos.subscribe(setTodos), [runtime]);
|
|
1500
1563
|
const extraCommands = [
|
|
@@ -1514,6 +1577,7 @@ function App({ runtime, initialPrompt, version }) {
|
|
|
1514
1577
|
if ((event.tool === "edit" || event.tool === "write") && !event.isError) editedInTurn.current = true;
|
|
1515
1578
|
}
|
|
1516
1579
|
if (event.type === "usage") setTokens(event.inputTokens + event.outputTokens);
|
|
1580
|
+
if (event.type === "thinking" && event.delta) setLastThinking((prev) => prev + event.delta);
|
|
1517
1581
|
if (event.type === "budgetExceeded") {
|
|
1518
1582
|
notice(
|
|
1519
1583
|
t("Budget exceeded ({kind}): {used} of {limit}. Further model calls are blocked; raise usageCap in ~/.bccli/config.json.", {
|
|
@@ -1541,6 +1605,7 @@ function App({ runtime, initialPrompt, version }) {
|
|
|
1541
1605
|
async (text) => {
|
|
1542
1606
|
setTranscript((t2) => ({ ...t2, done: [...t2.done, entry({ kind: "user", text })] }));
|
|
1543
1607
|
setBusy(true);
|
|
1608
|
+
setLastThinking("");
|
|
1544
1609
|
setStartedAt(Date.now());
|
|
1545
1610
|
editedInTurn.current = false;
|
|
1546
1611
|
controller.current = new AbortController();
|
|
@@ -1587,6 +1652,7 @@ function App({ runtime, initialPrompt, version }) {
|
|
|
1587
1652
|
case "clear":
|
|
1588
1653
|
runtime.agent.clear();
|
|
1589
1654
|
setTokens(0);
|
|
1655
|
+
setLastThinking("");
|
|
1590
1656
|
notice(t("Conversation cleared."));
|
|
1591
1657
|
return;
|
|
1592
1658
|
case "cost": {
|
|
@@ -1681,6 +1747,7 @@ function App({ runtime, initialPrompt, version }) {
|
|
|
1681
1747
|
case "new":
|
|
1682
1748
|
runtime.newSession();
|
|
1683
1749
|
setTokens(0);
|
|
1750
|
+
setLastThinking("");
|
|
1684
1751
|
notice(t("New session started. The previous session stays saved (/resume)."));
|
|
1685
1752
|
return;
|
|
1686
1753
|
case "session":
|
|
@@ -1713,6 +1780,7 @@ function App({ runtime, initialPrompt, version }) {
|
|
|
1713
1780
|
if (!chosen) return;
|
|
1714
1781
|
runtime.resume(chosen.session);
|
|
1715
1782
|
setTokens(0);
|
|
1783
|
+
setLastThinking("");
|
|
1716
1784
|
const chat = runtime.agent.messages.map((m) => m.role === "user" && Array.isArray(m.content) ? { ...m, content: contentText(m.content) } : m).filter(
|
|
1717
1785
|
(m) => (m.role === "user" || m.role === "assistant") && typeof m.content === "string" && !!m.content.trim()
|
|
1718
1786
|
);
|
|
@@ -2043,6 +2111,44 @@ ARGUMENTS: ${slash.args}`);
|
|
|
2043
2111
|
submit(initialPrompt);
|
|
2044
2112
|
}
|
|
2045
2113
|
}, [initialPrompt, submit]);
|
|
2114
|
+
const toggleThinking = useCallback(() => {
|
|
2115
|
+
const next = !showThinkingRef.current;
|
|
2116
|
+
showThinkingRef.current = next;
|
|
2117
|
+
setShowThinking(next);
|
|
2118
|
+
try {
|
|
2119
|
+
writeGlobalConfig({ thinkingVisible: next }, runtime.env);
|
|
2120
|
+
} catch (error) {
|
|
2121
|
+
notice(t("Could not save thinking visibility: {error}", { error: error.message }), "warn");
|
|
2122
|
+
}
|
|
2123
|
+
}, [runtime, notice]);
|
|
2124
|
+
useEffect3(() => {
|
|
2125
|
+
if (!busy && !hasThinking || pending || !stdin.isTTY || !stdout.isTTY || !thinkingTargetRef.current) return;
|
|
2126
|
+
let click;
|
|
2127
|
+
let mouseBuffer = "";
|
|
2128
|
+
const onData = (data) => {
|
|
2129
|
+
mouseBuffer += String(data);
|
|
2130
|
+
const reports = parseThinkingReports(mouseBuffer);
|
|
2131
|
+
mouseBuffer = reports.rest.slice(-80);
|
|
2132
|
+
for (const report of reports.events) {
|
|
2133
|
+
if (report.type === "mouse") {
|
|
2134
|
+
click = report.press;
|
|
2135
|
+
stdout.write("\x1B[6n");
|
|
2136
|
+
} else if (click && liveRootRef.current && thinkingTargetRef.current) {
|
|
2137
|
+
const current = click;
|
|
2138
|
+
click = void 0;
|
|
2139
|
+
const root = measureElement(liveRootRef.current);
|
|
2140
|
+
const target = measureElement(thinkingTargetRef.current);
|
|
2141
|
+
if (clickedThinking(current, report.cursor.row, root.height, target)) toggleThinking();
|
|
2142
|
+
}
|
|
2143
|
+
}
|
|
2144
|
+
};
|
|
2145
|
+
stdin.on("data", onData);
|
|
2146
|
+
stdout.write("\x1B[?1000h\x1B[?1006h");
|
|
2147
|
+
return () => {
|
|
2148
|
+
stdin.off("data", onData);
|
|
2149
|
+
stdout.write("\x1B[?1000l\x1B[?1006l");
|
|
2150
|
+
};
|
|
2151
|
+
}, [busy, pending, stdin, stdout, toggleThinking, hasThinking]);
|
|
2046
2152
|
useInput9((input, key) => {
|
|
2047
2153
|
if (key.tab && key.shift) {
|
|
2048
2154
|
const next = nextMode(runtime.agent.permissions.mode);
|
|
@@ -2066,22 +2172,7 @@ ARGUMENTS: ${slash.args}`);
|
|
|
2066
2172
|
}
|
|
2067
2173
|
})();
|
|
2068
2174
|
} else if (matchKeybind(runtime.config.keybinds.thinking, input, key)) {
|
|
2069
|
-
|
|
2070
|
-
const next = !showThinking;
|
|
2071
|
-
const toggled = next ? t("Thinking shown ({bind} to hide).", { bind }) : t("Thinking hidden ({bind} to show).", { bind });
|
|
2072
|
-
setShowThinking(next);
|
|
2073
|
-
setTranscript((t2) => {
|
|
2074
|
-
const last = [...t2.done, ...t2.live].findLast((e) => e.kind === "thinking");
|
|
2075
|
-
const reprint = next && last?.kind === "thinking" && t2.done.includes(last);
|
|
2076
|
-
return {
|
|
2077
|
-
...t2,
|
|
2078
|
-
done: [
|
|
2079
|
-
...t2.done,
|
|
2080
|
-
...reprint ? [entry({ kind: "thinking", text: last.text, open: true })] : [],
|
|
2081
|
-
entry({ kind: "notice", text: toggled, tone: "info" })
|
|
2082
|
-
]
|
|
2083
|
-
};
|
|
2084
|
-
});
|
|
2175
|
+
toggleThinking();
|
|
2085
2176
|
} else if (matchKeybind(runtime.config.keybinds.toolOutput, input, key) && lastTool.current) {
|
|
2086
2177
|
const t2 = lastTool.current;
|
|
2087
2178
|
notice(`\u23BF ${t2.tool} ${t2.target}
|
|
@@ -2165,28 +2256,32 @@ ${t2.output}`);
|
|
|
2165
2256
|
/* @__PURE__ */ jsx16(Text16, { color: color(ACCENT), children: "\u25CF " }),
|
|
2166
2257
|
/* @__PURE__ */ jsx16(Markdown, { text: e.text.replace(/^\s+/, "") })
|
|
2167
2258
|
] }, e.id);
|
|
2168
|
-
case "thinking":
|
|
2169
|
-
|
|
2170
|
-
if (!text) return null;
|
|
2171
|
-
if (!(e.open ?? showThinking)) {
|
|
2172
|
-
const lines = text.split("\n").length;
|
|
2173
|
-
return /* @__PURE__ */ jsx16(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { dimColor: true, children: t("\u273B Thinking \xB7 {n} lines \xB7 {bind} to show", { n: lines, bind: runtime.config.keybinds.thinking.spec }) }) }, e.id);
|
|
2174
|
-
}
|
|
2175
|
-
return /* @__PURE__ */ jsxs12(Box13, { marginTop: 1, flexDirection: "column", children: [
|
|
2176
|
-
/* @__PURE__ */ jsx16(Text16, { dimColor: true, children: t("\u273B Thinking ({bind} to hide)", { bind: runtime.config.keybinds.thinking.spec }) }),
|
|
2177
|
-
/* @__PURE__ */ jsx16(Box13, { paddingLeft: 2, children: /* @__PURE__ */ jsx16(Text16, { dimColor: true, italic: true, children: text }) })
|
|
2178
|
-
] }, e.id);
|
|
2179
|
-
}
|
|
2259
|
+
case "thinking":
|
|
2260
|
+
return null;
|
|
2180
2261
|
case "tool":
|
|
2181
2262
|
return /* @__PURE__ */ jsx16(ToolBlock, { tool: e.tool, target: e.target, output: e.output, display: e.display, isError: e.isError, done: e.done, sub: e.sub, moreBind: runtime.config.keybinds.toolOutput.spec }, e.id);
|
|
2182
2263
|
case "notice":
|
|
2183
2264
|
return /* @__PURE__ */ jsx16(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { color: e.tone === "error" ? color("red") : e.tone === "warn" ? color("yellow") : void 0, dimColor: e.tone === "info", children: e.text }) }, e.id);
|
|
2184
2265
|
}
|
|
2185
2266
|
};
|
|
2186
|
-
return /* @__PURE__ */ jsxs12(Box13, { flexDirection: "column", children: [
|
|
2267
|
+
return /* @__PURE__ */ jsxs12(Box13, { ref: liveRootRef, flexDirection: "column", children: [
|
|
2187
2268
|
/* @__PURE__ */ jsx16(Static, { items: transcript.done, children: renderEntry }),
|
|
2188
2269
|
transcript.live.map(renderEntry),
|
|
2189
|
-
busy && !pending && !planAsk ? /* @__PURE__ */
|
|
2270
|
+
busy && !pending && !planAsk || !busy && hasThinking ? /* @__PURE__ */ jsxs12(Box13, { ref: thinkingTargetRef, marginTop: 1, flexDirection: "column", children: [
|
|
2271
|
+
/* @__PURE__ */ jsxs12(Box13, { flexDirection: "row", children: [
|
|
2272
|
+
busy ? /* @__PURE__ */ jsx16(Spinner, { label: cancelling ? t("Cancelling") : t("Thinking"), startedAt }) : /* @__PURE__ */ jsx16(Text16, { dimColor: true, children: t("\u273B Thinking") }),
|
|
2273
|
+
/* @__PURE__ */ jsxs12(Text16, { dimColor: true, children: [
|
|
2274
|
+
" \xB7 ",
|
|
2275
|
+
runtime.config.keybinds.thinking.spec,
|
|
2276
|
+
" \xB7 ",
|
|
2277
|
+
t("click to toggle")
|
|
2278
|
+
] })
|
|
2279
|
+
] }),
|
|
2280
|
+
showThinking ? /* @__PURE__ */ jsxs12(Box13, { flexDirection: "column", paddingLeft: 2, children: [
|
|
2281
|
+
/* @__PURE__ */ jsx16(Text16, { dimColor: true, children: t("Model: {model} \xB7 reasoning: {level}", { model: runtime.modelRef, level: reasoning }) }),
|
|
2282
|
+
lastThinking.trim() ? /* @__PURE__ */ jsx16(Text16, { dimColor: true, italic: true, children: lastThinking.trim() }) : /* @__PURE__ */ jsx16(Text16, { dimColor: true, children: t("No reasoning summary received yet; tool activity remains visible above.") })
|
|
2283
|
+
] }) : null
|
|
2284
|
+
] }) : null,
|
|
2190
2285
|
pending ? /* @__PURE__ */ jsx16(PermissionPrompt, { request: pending.request, onAnswer: answer }, pending.id) : null,
|
|
2191
2286
|
picker ? /* @__PURE__ */ jsx16(
|
|
2192
2287
|
ModelPicker,
|
|
@@ -2239,7 +2334,7 @@ ${t2.output}`);
|
|
|
2239
2334
|
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
2240
2335
|
async function startInteractive(rt, opts) {
|
|
2241
2336
|
if (opts.resume) {
|
|
2242
|
-
const { Session: Session2 } = await import("./session-
|
|
2337
|
+
const { Session: Session2 } = await import("./session-GDPYDGOX.js");
|
|
2243
2338
|
const list = Session2.list(rt.home, rt.cwd).slice(0, 20);
|
|
2244
2339
|
if (!list.length) console.log(t("No sessions in this folder yet; starting a new one."));
|
|
2245
2340
|
else {
|
|
@@ -2254,7 +2349,7 @@ async function startInteractive(rt, opts) {
|
|
|
2254
2349
|
if (chosen) rt.resume(chosen.session);
|
|
2255
2350
|
}
|
|
2256
2351
|
}
|
|
2257
|
-
const { serversToStart, setProjectTrust } = await import("./config-
|
|
2352
|
+
const { serversToStart, setProjectTrust } = await import("./config-67RNJLDR.js");
|
|
2258
2353
|
const plan = serversToStart(rt.home, rt.cwd);
|
|
2259
2354
|
if (plan.needTrust.length) {
|
|
2260
2355
|
const { createInterface } = await import("readline/promises");
|
package/package.json
CHANGED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
addProviderKey,
|
|
4
|
-
runProviderCommand
|
|
5
|
-
} from "./chunk-X5ZJGTWY.js";
|
|
6
|
-
import "./chunk-4BQAIMAM.js";
|
|
7
|
-
import "./chunk-F4XYLKG5.js";
|
|
8
|
-
import "./chunk-ERXWNEVU.js";
|
|
9
|
-
import "./chunk-RFSNTLOW.js";
|
|
10
|
-
import "./chunk-FNGFR7R6.js";
|
|
11
|
-
import "./chunk-JZ5XPSIA.js";
|
|
12
|
-
export {
|
|
13
|
-
addProviderKey,
|
|
14
|
-
runProviderCommand
|
|
15
|
-
};
|
package/dist/session-3I64N64B.js
DELETED
package/dist/setup-N3PMYREM.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
createRuntime,
|
|
4
|
-
lunaPtcAutoEnabled
|
|
5
|
-
} from "./chunk-FNCDUDOB.js";
|
|
6
|
-
import "./chunk-QZKLZELZ.js";
|
|
7
|
-
import "./chunk-NJ5YDSSP.js";
|
|
8
|
-
import "./chunk-JKRSZHDV.js";
|
|
9
|
-
import "./chunk-PSO7R5AD.js";
|
|
10
|
-
import "./chunk-GAFJEQTJ.js";
|
|
11
|
-
import "./chunk-X5ZJGTWY.js";
|
|
12
|
-
import "./chunk-4BQAIMAM.js";
|
|
13
|
-
import "./chunk-F4XYLKG5.js";
|
|
14
|
-
import "./chunk-7F3IWBPQ.js";
|
|
15
|
-
import "./chunk-IA35YV5K.js";
|
|
16
|
-
import "./chunk-ERXWNEVU.js";
|
|
17
|
-
import "./chunk-RFSNTLOW.js";
|
|
18
|
-
import "./chunk-Q7DFEWE7.js";
|
|
19
|
-
import "./chunk-FNGFR7R6.js";
|
|
20
|
-
import "./chunk-JZ5XPSIA.js";
|
|
21
|
-
export {
|
|
22
|
-
createRuntime,
|
|
23
|
-
lunaPtcAutoEnabled
|
|
24
|
-
};
|