@yuaone/cli 0.4.1 → 0.4.3
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/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +20 -5
- package/dist/interactive.js.map +1 -1
- package/dist/progress-renderer.d.ts +5 -0
- package/dist/progress-renderer.d.ts.map +1 -1
- package/dist/progress-renderer.js +73 -4
- package/dist/progress-renderer.js.map +1 -1
- package/dist/session.d.ts +4 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +32 -5
- package/dist/session.js.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +83 -21
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/agent-bridge.d.ts +1 -0
- package/dist/tui/agent-bridge.d.ts.map +1 -1
- package/dist/tui/agent-bridge.js +41 -4
- package/dist/tui/agent-bridge.js.map +1 -1
- package/dist/tui/components/ApprovalPrompt.d.ts +18 -0
- package/dist/tui/components/ApprovalPrompt.d.ts.map +1 -0
- package/dist/tui/components/ApprovalPrompt.js +64 -0
- package/dist/tui/components/ApprovalPrompt.js.map +1 -0
- package/dist/tui/components/FooterBar.d.ts.map +1 -1
- package/dist/tui/components/FooterBar.js +1 -1
- package/dist/tui/components/FooterBar.js.map +1 -1
- package/dist/tui/components/InputBox.d.ts.map +1 -1
- package/dist/tui/components/InputBox.js +41 -4
- package/dist/tui/components/InputBox.js.map +1 -1
- package/dist/tui/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/tui/components/MarkdownRenderer.js +37 -9
- package/dist/tui/components/MarkdownRenderer.js.map +1 -1
- package/dist/tui/components/MessageBubble.d.ts.map +1 -1
- package/dist/tui/components/MessageBubble.js +51 -5
- package/dist/tui/components/MessageBubble.js.map +1 -1
- package/dist/tui/components/MessageList.d.ts +4 -4
- package/dist/tui/components/MessageList.d.ts.map +1 -1
- package/dist/tui/components/MessageList.js +45 -11
- package/dist/tui/components/MessageList.js.map +1 -1
- package/dist/tui/components/SlashMenu.d.ts.map +1 -1
- package/dist/tui/components/SlashMenu.js +10 -9
- package/dist/tui/components/SlashMenu.js.map +1 -1
- package/dist/tui/components/StatusBar.d.ts +7 -1
- package/dist/tui/components/StatusBar.d.ts.map +1 -1
- package/dist/tui/components/StatusBar.js +14 -4
- package/dist/tui/components/StatusBar.js.map +1 -1
- package/dist/tui/components/ThinkingDots.d.ts +6 -4
- package/dist/tui/components/ThinkingDots.d.ts.map +1 -1
- package/dist/tui/components/ThinkingDots.js +37 -8
- package/dist/tui/components/ThinkingDots.js.map +1 -1
- package/dist/tui/components/ToolCallTree.d.ts +5 -1
- package/dist/tui/components/ToolCallTree.d.ts.map +1 -1
- package/dist/tui/components/ToolCallTree.js +35 -3
- package/dist/tui/components/ToolCallTree.js.map +1 -1
- package/dist/tui/components/WelcomeBanner.d.ts +11 -0
- package/dist/tui/components/WelcomeBanner.d.ts.map +1 -0
- package/dist/tui/components/WelcomeBanner.js +6 -0
- package/dist/tui/components/WelcomeBanner.js.map +1 -0
- package/dist/tui/hooks/useAgentStream.d.ts +1 -7
- package/dist/tui/hooks/useAgentStream.d.ts.map +1 -1
- package/dist/tui/hooks/useAgentStream.js +124 -26
- package/dist/tui/hooks/useAgentStream.js.map +1 -1
- package/dist/tui/lib/update-checker.d.ts.map +1 -1
- package/dist/tui/lib/update-checker.js +9 -7
- package/dist/tui/lib/update-checker.js.map +1 -1
- package/dist/tui/types.d.ts +15 -0
- package/dist/tui/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThinkingDots.js","sourceRoot":"","sources":["../../../src/tui/components/ThinkingDots.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ThinkingDots.js","sourceRoot":"","sources":["../../../src/tui/components/ThinkingDots.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ1C,MAAM,YAAY,GAAgC;IAChD,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,cAAc;IAC5B,iBAAiB,EAAE,mBAAmB;IACtC,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAC7B,MAAM,EACN,QAAQ,GACY;IACpB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,IACE,MAAM,KAAK,UAAU;YACrB,MAAM,KAAK,WAAW;YACtB,MAAM,KAAK,cAAc,EACzB,CAAC;YACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC7B,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC,EAAE,QAAQ,CAAC,CAAC;YAEb,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtC,MAAM,KAAK,GACT,MAAM,KAAK,cAAc,IAAI,QAAQ;QACnC,CAAC,CAAC,SAAS,QAAQ,EAAE;QACrB,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAE3B,MAAM,OAAO,GACX,MAAM,KAAK,UAAU;QACrB,MAAM,KAAK,WAAW;QACtB,MAAM,KAAK,cAAc;QACvB,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;QACrB,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,KAAK,GAAwC,MAAM,CAAC;IAExD,IAAI,MAAM,KAAK,WAAW;QAAE,KAAK,GAAG,OAAO,CAAC;IAC5C,IAAI,MAAM,KAAK,OAAO;QAAE,KAAK,GAAG,KAAK,CAAC;IACtC,IAAI,MAAM,KAAK,mBAAmB;QAAE,KAAK,GAAG,QAAQ,CAAC;IAErD,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,UAAU,aAChD,KAAK,EACL,OAAO,IACH,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
* Shows status indicators, durations, and expandable results.
|
|
4
4
|
*/
|
|
5
5
|
import React from "react";
|
|
6
|
-
import type { TUIToolCall } from "../types.js";
|
|
6
|
+
import type { TUIToolCall, ReasoningNode } from "../types.js";
|
|
7
7
|
export interface ToolCallTreeProps {
|
|
8
8
|
toolCalls: TUIToolCall[];
|
|
9
9
|
width: number;
|
|
10
10
|
}
|
|
11
11
|
export declare function ToolCallTree({ toolCalls, width, }: ToolCallTreeProps): React.JSX.Element;
|
|
12
|
+
export declare function ReasoningTreeView({ node, depth, }: {
|
|
13
|
+
node: ReasoningNode;
|
|
14
|
+
depth?: number;
|
|
15
|
+
}): React.JSX.Element;
|
|
12
16
|
//# sourceMappingURL=ToolCallTree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolCallTree.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ToolCallTree.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AAOrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolCallTree.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ToolCallTree.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AAOrD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI9D,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAoGD,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,KAAK,GACN,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0CvC;AAiBD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,KAAS,GACV,EAAE;IACD,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkBpB"}
|
|
@@ -30,16 +30,48 @@ function ToolCallNode({ tc, isLast, width, }) {
|
|
|
30
30
|
statusEl = _jsx(Text, { color: color, children: icon });
|
|
31
31
|
}
|
|
32
32
|
// Duration
|
|
33
|
-
|
|
33
|
+
let durationStr = "";
|
|
34
|
+
if (tc.duration != null) {
|
|
35
|
+
durationStr = ` ${tc.duration.toFixed(2)}s`;
|
|
36
|
+
}
|
|
34
37
|
// Truncate args summary based on available width
|
|
35
38
|
const { tier } = useTerminalSize();
|
|
36
39
|
const maxArgWidth = tier === "compact" ? 20 : width - 30;
|
|
37
40
|
const args = tc.argsSummary
|
|
38
41
|
? truncate(tc.argsSummary, maxArgWidth)
|
|
39
42
|
: "";
|
|
40
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsxs(Text, { dimColor: true, children: [connector, " "] }), _jsx(Text, { bold: true, children: tc.toolName }), args && _jsxs(Text, { dimColor: true, children: ["
|
|
43
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsxs(Text, { dimColor: true, children: [connector, " "] }), _jsx(Text, { bold: true, children: tc.toolName }), args && _jsxs(Text, { dimColor: true, children: ["(", args, ")"] })] }), _jsxs(Box, { paddingLeft: 2, children: [_jsxs(Text, { dimColor: true, children: [continuation, " "] }), statusEl, _jsx(Text, { dimColor: true, children: durationStr })] }), tc.result && tc.result.lineCount > 0 && (_jsxs(Box, { paddingLeft: 2, children: [_jsx(Text, { dimColor: true, children: continuation }), _jsx(Box, { flexDirection: "column", marginLeft: 1, children: tc.result.kind === "diff" && tc.result.diff ? (_jsx(CollapsibleSection, { isExpanded: isExpanded, onToggle: toggleExpand, collapsedSummary: `${tc.result.diff.additions + tc.result.diff.deletions} changes`, children: _jsx(DiffView, { diff: tc.result.diff, width: width - 6 }) })) : tc.result.kind === "bash_output" ? (_jsx(CollapsibleSection, { isExpanded: isExpanded, onToggle: toggleExpand, collapsedSummary: `${tc.result.lineCount} lines of output`, children: _jsx(BashOutput, { command: tc.toolName, output: tc.result.content, width: width - 6 }) })) : tc.result.lineCount > 10 ? (_jsx(CollapsibleSection, { isExpanded: isExpanded, onToggle: toggleExpand, collapsedSummary: `${tc.result.lineCount} lines`, children: _jsx(Text, { dimColor: true, children: tc.result.content }) })) : (_jsx(Text, { dimColor: true, children: tc.result.content })) })] }))] }));
|
|
41
44
|
}
|
|
42
45
|
export function ToolCallTree({ toolCalls, width, }) {
|
|
43
|
-
|
|
46
|
+
const batches = groupBatches(toolCalls);
|
|
47
|
+
return (_jsx(Box, { flexDirection: "column", children: batches.map((batch, batchIndex) => {
|
|
48
|
+
const isParallel = batch.length > 1;
|
|
49
|
+
if (isParallel) {
|
|
50
|
+
const batchRunning = batch.some((tc) => tc.status === "running");
|
|
51
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: batchRunning ? "running tools..." : "tool batch." }), _jsx(Text, { children: " " }), batchRunning ? _jsx(Spinner, {}) : _jsx(Text, { dimColor: true, children: "done." })] }), batch.map((tc, i) => (_jsx(ToolCallNode, { tc: tc, isLast: i === batch.length - 1, width: width }, tc.id)))] }, `batch-${batchIndex}`));
|
|
52
|
+
}
|
|
53
|
+
const tc = batch[0];
|
|
54
|
+
if (!tc)
|
|
55
|
+
return null;
|
|
56
|
+
return (_jsx(ToolCallNode, { tc: tc, isLast: batchIndex === batches.length - 1, width: width }, tc.id));
|
|
57
|
+
}) }));
|
|
58
|
+
}
|
|
59
|
+
function groupBatches(toolCalls) {
|
|
60
|
+
const map = new Map();
|
|
61
|
+
for (const tc of toolCalls) {
|
|
62
|
+
const key = tc.batchId ?? tc.id;
|
|
63
|
+
if (!map.has(key))
|
|
64
|
+
map.set(key, []);
|
|
65
|
+
map.get(key).push(tc);
|
|
66
|
+
}
|
|
67
|
+
return Array.from(map.values()).sort((a, b) => {
|
|
68
|
+
const aStart = a[0]?.startedAt ?? 0;
|
|
69
|
+
const bStart = b[0]?.startedAt ?? 0;
|
|
70
|
+
return aStart - bStart;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
export function ReasoningTreeView({ node, depth = 0, }) {
|
|
74
|
+
const prefix = depth === 0 ? "" : " ".repeat(depth - 1) + "├─ ";
|
|
75
|
+
return (_jsxs(Box, { flexDirection: "column", children: [depth > 0 && (_jsxs(Text, { children: [prefix, _jsx(Text, { bold: true, children: node.label }), node.text && _jsxs(Text, { dimColor: true, children: [" ", node.text] })] })), node.children.map((child) => (_jsx(ReasoningTreeView, { node: child, depth: depth + 1 }, child.id)))] }));
|
|
44
76
|
}
|
|
45
77
|
//# sourceMappingURL=ToolCallTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolCallTree.js","sourceRoot":"","sources":["../../../src/tui/components/ToolCallTree.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AAEH,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAO9D,SAAS,YAAY,CAAC,EACpB,EAAE,EACF,MAAM,EACN,KAAK,GAKN;IACC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACjE,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAEtD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,cAAc;IACd,IAAI,QAA2B,CAAC;IAChC,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,QAAQ,GAAG,KAAC,OAAO,KAAG,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACjD,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QACxD,QAAQ,GAAG,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,YAAG,IAAI,GAAQ,CAAC;IAC/C,CAAC;IAED,WAAW;IACX,
|
|
1
|
+
{"version":3,"file":"ToolCallTree.js","sourceRoot":"","sources":["../../../src/tui/components/ToolCallTree.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WelcomeBanner — fixed top banner with mascot and version info.
|
|
3
|
+
* Rendered above the message list, never scrolls.
|
|
4
|
+
* Styled like Claude Code's pig banner: dim gray mascot + info beside it.
|
|
5
|
+
*/
|
|
6
|
+
import React from "react";
|
|
7
|
+
export interface WelcomeBannerProps {
|
|
8
|
+
version: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function WelcomeBanner({ version }: WelcomeBannerProps): React.JSX.Element;
|
|
11
|
+
//# sourceMappingURL=WelcomeBanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WelcomeBanner.d.ts","sourceRoot":"","sources":["../../../src/tui/components/WelcomeBanner.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsBhF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
export function WelcomeBanner({ version }) {
|
|
4
|
+
return (_jsxs(Box, { flexDirection: "row", marginBottom: 1, flexShrink: 0, paddingLeft: 2, children: [_jsxs(Box, { flexDirection: "column", marginRight: 3, children: [_jsx(Text, { dimColor: true, children: " /\\_/\\" }), _jsx(Text, { dimColor: true, children: " ( o.o )" }), _jsx(Text, { dimColor: true, children: " > w <" }), _jsx(Text, { dimColor: true, children: " /| |\\" }), _jsx(Text, { dimColor: true, children: "(_| |_)" })] }), _jsxs(Box, { flexDirection: "column", justifyContent: "center", children: [_jsx(Text, { bold: true, color: "white", children: "YUAN " }), _jsxs(Text, { dimColor: true, children: ["v", version, " Autonomous Coding Agent"] }), _jsx(Text, { dimColor: true, children: " " }), _jsx(Text, { dimColor: true, children: "Type /help for commands" }), _jsx(Text, { dimColor: true, children: "yuaone.com" })] })] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=WelcomeBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WelcomeBanner.js","sourceRoot":"","sources":["../../../src/tui/components/WelcomeBanner.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAMhC,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAsB;IAC3D,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,aAErE,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,aACxC,KAAC,IAAI,IAAC,QAAQ,kBAAE,WAAW,GAAQ,EACnC,KAAC,IAAI,IAAC,QAAQ,kBAAE,UAAU,GAAQ,EAClC,KAAC,IAAI,IAAC,QAAQ,kBAAE,SAAS,GAAQ,EACjC,KAAC,IAAI,IAAC,QAAQ,kBAAE,WAAW,GAAQ,EACnC,KAAC,IAAI,IAAC,QAAQ,kBAAE,WAAW,GAAQ,IAC/B,EAGN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,cAAc,EAAC,QAAQ,aACjD,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,sBAAa,EACrC,MAAC,IAAI,IAAC,QAAQ,wBAAG,OAAO,iCAAiC,EACzD,KAAC,IAAI,IAAC,QAAQ,wBAAS,EACvB,KAAC,IAAI,IAAC,QAAQ,8CAA+B,EAC7C,KAAC,IAAI,IAAC,QAAQ,iCAAkB,IAC5B,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* useAgentStream — bridges AgentLoop events to TUI React state.
|
|
3
3
|
* Converts agent events into TUIMessage updates, tracks streaming state,
|
|
4
|
-
* real-time elapsed timer, and status indicator metadata.
|
|
4
|
+
* real-time elapsed timer, reasoning stream, and status indicator metadata.
|
|
5
5
|
*/
|
|
6
6
|
import type { AgentStreamState } from "../types.js";
|
|
7
7
|
export interface UseAgentStreamReturn {
|
|
8
8
|
state: AgentStreamState;
|
|
9
|
-
/** Process an incoming agent event */
|
|
10
9
|
handleEvent: (event: AgentEventLike) => void;
|
|
11
|
-
/** Add a user message */
|
|
12
10
|
addUserMessage: (content: string) => void;
|
|
13
|
-
/** Add a system message (for slash commands, etc.) */
|
|
14
11
|
addSystemMessage: (content: string) => void;
|
|
15
|
-
/** Mark agent as started */
|
|
16
12
|
startAgent: () => void;
|
|
17
|
-
/** Interrupt and reset to idle */
|
|
18
13
|
interrupt: () => void;
|
|
19
|
-
/** Clear all messages */
|
|
20
14
|
clearMessages: () => void;
|
|
21
15
|
}
|
|
22
16
|
/** Minimal agent event shape (matches @yuaone/core AgentEvent) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentStream.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useAgentStream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"useAgentStream.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useAgentStream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAGV,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,cAAc,IAAI,oBAAoB,CA6drD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* useAgentStream — bridges AgentLoop events to TUI React state.
|
|
3
3
|
* Converts agent events into TUIMessage updates, tracks streaming state,
|
|
4
|
-
* real-time elapsed timer, and status indicator metadata.
|
|
4
|
+
* real-time elapsed timer, reasoning stream, and status indicator metadata.
|
|
5
5
|
*/
|
|
6
6
|
import { useState, useCallback, useRef, useEffect } from "react";
|
|
7
7
|
export function useAgentStream() {
|
|
@@ -10,19 +10,20 @@ export function useAgentStream() {
|
|
|
10
10
|
const [streamBuffer, setStreamBuffer] = useState("");
|
|
11
11
|
const [tokensPerSecond, setTokensPerSecond] = useState(0);
|
|
12
12
|
const [totalTokensUsed, setTotalTokensUsed] = useState(0);
|
|
13
|
-
// Indicator state
|
|
14
13
|
const [elapsedMs, setElapsedMs] = useState(0);
|
|
15
14
|
const [lastElapsedMs, setLastElapsedMs] = useState(null);
|
|
16
15
|
const [currentToolName, setCurrentToolName] = useState(null);
|
|
17
16
|
const [currentToolArgs, setCurrentToolArgs] = useState(null);
|
|
18
17
|
const [lastError, setLastError] = useState(null);
|
|
19
18
|
const [filesChangedCount, setFilesChangedCount] = useState(0);
|
|
19
|
+
const [reasoningTree, setReasoningTree] = useState(undefined);
|
|
20
20
|
const currentMsgIdRef = useRef(null);
|
|
21
21
|
const tokenWindowRef = useRef([]);
|
|
22
|
-
|
|
22
|
+
const currentThinkingMsgIdRef = useRef(null);
|
|
23
|
+
const activeToolBatchIdRef = useRef(null);
|
|
24
|
+
const lastToolCallAtRef = useRef(0);
|
|
23
25
|
const startTimeRef = useRef(null);
|
|
24
26
|
const timerRef = useRef(null);
|
|
25
|
-
// Start the real-time elapsed timer
|
|
26
27
|
const startTimer = useCallback(() => {
|
|
27
28
|
startTimeRef.current = Date.now();
|
|
28
29
|
setElapsedMs(0);
|
|
@@ -32,9 +33,8 @@ export function useAgentStream() {
|
|
|
32
33
|
if (startTimeRef.current) {
|
|
33
34
|
setElapsedMs(Date.now() - startTimeRef.current);
|
|
34
35
|
}
|
|
35
|
-
}, 1000);
|
|
36
|
+
}, 1000);
|
|
36
37
|
}, []);
|
|
37
|
-
// Stop the timer and freeze elapsed time
|
|
38
38
|
const stopTimer = useCallback(() => {
|
|
39
39
|
if (timerRef.current) {
|
|
40
40
|
clearInterval(timerRef.current);
|
|
@@ -47,7 +47,6 @@ export function useAgentStream() {
|
|
|
47
47
|
startTimeRef.current = null;
|
|
48
48
|
}
|
|
49
49
|
}, []);
|
|
50
|
-
// Cleanup timer on unmount
|
|
51
50
|
useEffect(() => {
|
|
52
51
|
return () => {
|
|
53
52
|
if (timerRef.current)
|
|
@@ -60,10 +59,9 @@ export function useAgentStream() {
|
|
|
60
59
|
return;
|
|
61
60
|
setMessages((prev) => prev.map((m) => (m.id === id ? updater(m) : m)));
|
|
62
61
|
}, []);
|
|
63
|
-
// 스트리밍 텍스트 배치 버퍼 — 1토큰마다 re-render 하지 않고 모아서 flush
|
|
64
62
|
const pendingTextRef = useRef("");
|
|
65
63
|
const flushTimerRef = useRef(null);
|
|
66
|
-
const FLUSH_INTERVAL = 120;
|
|
64
|
+
const FLUSH_INTERVAL = 120;
|
|
67
65
|
const flushPendingText = useCallback(() => {
|
|
68
66
|
if (flushTimerRef.current) {
|
|
69
67
|
clearTimeout(flushTimerRef.current);
|
|
@@ -78,7 +76,41 @@ export function useAgentStream() {
|
|
|
78
76
|
content: msg.content + text,
|
|
79
77
|
}));
|
|
80
78
|
}, [updateCurrentMessage]);
|
|
81
|
-
|
|
79
|
+
const appendThinkingLines = useCallback((raw) => {
|
|
80
|
+
const lines = raw
|
|
81
|
+
.split("\n")
|
|
82
|
+
.map((line) => line.trim())
|
|
83
|
+
.filter(Boolean)
|
|
84
|
+
.map((line) => (line.startsWith("· ") ? line : `· ${line}`));
|
|
85
|
+
if (lines.length === 0)
|
|
86
|
+
return;
|
|
87
|
+
const nextBlock = lines.join("\n");
|
|
88
|
+
const currentId = currentThinkingMsgIdRef.current;
|
|
89
|
+
if (!currentId) {
|
|
90
|
+
const id = `thinking-${Date.now()}`;
|
|
91
|
+
currentThinkingMsgIdRef.current = id;
|
|
92
|
+
const msg = {
|
|
93
|
+
id,
|
|
94
|
+
role: "system",
|
|
95
|
+
content: nextBlock,
|
|
96
|
+
timestamp: Date.now(),
|
|
97
|
+
};
|
|
98
|
+
setMessages((prev) => [...prev, msg]);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
setMessages((prev) => prev.map((m) => {
|
|
102
|
+
if (m.id !== currentId)
|
|
103
|
+
return m;
|
|
104
|
+
const existing = new Set(m.content.split("\n"));
|
|
105
|
+
const deduped = lines.filter((line) => !existing.has(line));
|
|
106
|
+
if (deduped.length === 0)
|
|
107
|
+
return m;
|
|
108
|
+
return {
|
|
109
|
+
...m,
|
|
110
|
+
content: `${m.content}\n${deduped.join("\n")}`,
|
|
111
|
+
};
|
|
112
|
+
}));
|
|
113
|
+
}, []);
|
|
82
114
|
useEffect(() => {
|
|
83
115
|
return () => {
|
|
84
116
|
if (flushTimerRef.current)
|
|
@@ -110,6 +142,11 @@ export function useAgentStream() {
|
|
|
110
142
|
setCurrentToolArgs(null);
|
|
111
143
|
setLastError(null);
|
|
112
144
|
setFilesChangedCount(0);
|
|
145
|
+
setTokensPerSecond(0);
|
|
146
|
+
tokenWindowRef.current = [];
|
|
147
|
+
currentThinkingMsgIdRef.current = null;
|
|
148
|
+
activeToolBatchIdRef.current = null;
|
|
149
|
+
lastToolCallAtRef.current = 0;
|
|
113
150
|
startTimer();
|
|
114
151
|
const msgId = `assistant-${Date.now()}`;
|
|
115
152
|
currentMsgIdRef.current = msgId;
|
|
@@ -125,41 +162,60 @@ export function useAgentStream() {
|
|
|
125
162
|
}, [startTimer]);
|
|
126
163
|
const handleEvent = useCallback((event) => {
|
|
127
164
|
switch (event.kind) {
|
|
128
|
-
case "agent:
|
|
165
|
+
case "agent:reasoning_delta": {
|
|
166
|
+
appendThinkingLines(String(event.text ?? ""));
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
case "agent:thinking": {
|
|
129
170
|
setStatus("thinking");
|
|
130
171
|
setCurrentToolName(null);
|
|
131
172
|
setCurrentToolArgs(null);
|
|
173
|
+
appendThinkingLines(String(event.content ?? ""));
|
|
132
174
|
break;
|
|
175
|
+
}
|
|
133
176
|
case "agent:text_delta": {
|
|
134
177
|
const text = event.text;
|
|
135
178
|
setStreamBuffer((prev) => prev + text);
|
|
136
179
|
setStatus("streaming");
|
|
137
180
|
setCurrentToolName(null);
|
|
138
181
|
setCurrentToolArgs(null);
|
|
139
|
-
// 배치 버퍼에 축적 → 디바운스로 한번에 flush (문단 단위 렌더링)
|
|
140
182
|
pendingTextRef.current += text;
|
|
141
183
|
if (flushTimerRef.current)
|
|
142
184
|
clearTimeout(flushTimerRef.current);
|
|
143
185
|
flushTimerRef.current = setTimeout(flushPendingText, FLUSH_INTERVAL);
|
|
144
186
|
break;
|
|
145
187
|
}
|
|
188
|
+
case "agent:reasoning_timeline": {
|
|
189
|
+
setReasoningTree(event.tree);
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
146
192
|
case "agent:tool_call": {
|
|
147
193
|
setStatus("tool_running");
|
|
148
194
|
const toolName = event.tool;
|
|
149
195
|
const args = summarizeArgs(event.input);
|
|
150
196
|
setCurrentToolName(toolName);
|
|
151
197
|
setCurrentToolArgs(args);
|
|
152
|
-
|
|
198
|
+
const now = Date.now();
|
|
199
|
+
const shouldReuseBatch = activeToolBatchIdRef.current !== null &&
|
|
200
|
+
now - lastToolCallAtRef.current <= 180;
|
|
201
|
+
const batchId = shouldReuseBatch
|
|
202
|
+
? activeToolBatchIdRef.current
|
|
203
|
+
: `batch-${now}`;
|
|
204
|
+
activeToolBatchIdRef.current = batchId;
|
|
205
|
+
lastToolCallAtRef.current = now;
|
|
153
206
|
const tl = toolName.toLowerCase();
|
|
154
207
|
if (tl.includes("write") || tl.includes("edit")) {
|
|
155
208
|
setFilesChangedCount((prev) => prev + 1);
|
|
156
209
|
}
|
|
157
210
|
const tc = {
|
|
158
211
|
id: `tc-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`,
|
|
212
|
+
callId: typeof event.callId === "string" ? event.callId : undefined,
|
|
159
213
|
toolName,
|
|
160
214
|
argsSummary: args,
|
|
161
215
|
status: "running",
|
|
162
216
|
isExpanded: false,
|
|
217
|
+
startedAt: now,
|
|
218
|
+
batchId,
|
|
163
219
|
};
|
|
164
220
|
updateCurrentMessage((msg) => ({
|
|
165
221
|
...msg,
|
|
@@ -167,21 +223,38 @@ export function useAgentStream() {
|
|
|
167
223
|
}));
|
|
168
224
|
break;
|
|
169
225
|
}
|
|
226
|
+
case "agent:tool_batch": {
|
|
227
|
+
activeToolBatchIdRef.current =
|
|
228
|
+
typeof event.batchId === "string" ? event.batchId : null;
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
170
231
|
case "agent:tool_result": {
|
|
171
232
|
const toolName = event.tool;
|
|
172
233
|
const output = event.output;
|
|
173
234
|
const durationMs = event.durationMs;
|
|
174
|
-
// Clear current tool indicator (back to streaming/thinking)
|
|
175
235
|
setCurrentToolName(null);
|
|
176
236
|
setCurrentToolArgs(null);
|
|
237
|
+
let hasRunningTool = false;
|
|
177
238
|
updateCurrentMessage((msg) => {
|
|
178
239
|
const toolCalls = [...(msg.toolCalls ?? [])];
|
|
179
240
|
for (let i = toolCalls.length - 1; i >= 0; i--) {
|
|
180
|
-
|
|
241
|
+
const call = toolCalls[i];
|
|
242
|
+
if (!call)
|
|
243
|
+
continue;
|
|
244
|
+
if (call.toolName === toolName && call.status === "running") {
|
|
245
|
+
const completedAt = Date.now();
|
|
246
|
+
let duration;
|
|
247
|
+
if (durationMs) {
|
|
248
|
+
duration = durationMs / 1000;
|
|
249
|
+
}
|
|
250
|
+
else if (call.startedAt) {
|
|
251
|
+
duration = (completedAt - call.startedAt) / 1000;
|
|
252
|
+
}
|
|
181
253
|
toolCalls[i] = {
|
|
182
|
-
...
|
|
254
|
+
...call,
|
|
183
255
|
status: "success",
|
|
184
|
-
|
|
256
|
+
completedAt,
|
|
257
|
+
duration,
|
|
185
258
|
result: {
|
|
186
259
|
kind: detectResultKind(toolName, output),
|
|
187
260
|
content: output,
|
|
@@ -191,8 +264,11 @@ export function useAgentStream() {
|
|
|
191
264
|
break;
|
|
192
265
|
}
|
|
193
266
|
}
|
|
267
|
+
hasRunningTool = toolCalls.some((call) => call.status === "running");
|
|
194
268
|
return { ...msg, toolCalls };
|
|
195
269
|
});
|
|
270
|
+
if (!hasRunningTool)
|
|
271
|
+
activeToolBatchIdRef.current = null;
|
|
196
272
|
break;
|
|
197
273
|
}
|
|
198
274
|
case "agent:error": {
|
|
@@ -208,14 +284,14 @@ export function useAgentStream() {
|
|
|
208
284
|
isStreaming: false,
|
|
209
285
|
}));
|
|
210
286
|
currentMsgIdRef.current = null;
|
|
211
|
-
|
|
287
|
+
currentThinkingMsgIdRef.current = null;
|
|
288
|
+
activeToolBatchIdRef.current = null;
|
|
212
289
|
setTimeout(() => {
|
|
213
290
|
setStatus("idle");
|
|
214
291
|
}, 3000);
|
|
215
292
|
break;
|
|
216
293
|
}
|
|
217
294
|
case "agent:completed": {
|
|
218
|
-
// 남은 버퍼 텍스트 즉시 flush
|
|
219
295
|
flushPendingText();
|
|
220
296
|
stopTimer();
|
|
221
297
|
setStatus("completed");
|
|
@@ -229,7 +305,8 @@ export function useAgentStream() {
|
|
|
229
305
|
}));
|
|
230
306
|
setStreamBuffer("");
|
|
231
307
|
currentMsgIdRef.current = null;
|
|
232
|
-
|
|
308
|
+
currentThinkingMsgIdRef.current = null;
|
|
309
|
+
activeToolBatchIdRef.current = null;
|
|
233
310
|
setTimeout(() => {
|
|
234
311
|
setStatus("idle");
|
|
235
312
|
}, 3000);
|
|
@@ -240,7 +317,6 @@ export function useAgentStream() {
|
|
|
240
317
|
const output = event.output;
|
|
241
318
|
const total = input + output;
|
|
242
319
|
setTotalTokensUsed((prev) => prev + total);
|
|
243
|
-
// Rolling 3-second window for tokens/sec
|
|
244
320
|
const now = Date.now();
|
|
245
321
|
tokenWindowRef.current.push({ time: now, tokens: total });
|
|
246
322
|
tokenWindowRef.current = tokenWindowRef.current.filter((e) => now - e.time < 3000);
|
|
@@ -249,15 +325,25 @@ export function useAgentStream() {
|
|
|
249
325
|
setTokensPerSecond(Math.round((windowTokens / windowMs) * 1000));
|
|
250
326
|
break;
|
|
251
327
|
}
|
|
252
|
-
case "agent:approval_needed":
|
|
328
|
+
case "agent:approval_needed": {
|
|
253
329
|
setStatus("awaiting_approval");
|
|
330
|
+
const action = event.action;
|
|
331
|
+
if (action?.tool) {
|
|
332
|
+
setCurrentToolName(action.tool);
|
|
333
|
+
}
|
|
334
|
+
const args = summarizeArgs(action?.input);
|
|
335
|
+
if (args) {
|
|
336
|
+
setCurrentToolArgs(args);
|
|
337
|
+
}
|
|
338
|
+
// DO NOT append system message
|
|
339
|
+
// approval will be rendered by ApprovalPrompt UI
|
|
254
340
|
break;
|
|
341
|
+
}
|
|
255
342
|
default:
|
|
256
343
|
break;
|
|
257
344
|
}
|
|
258
|
-
}, [updateCurrentMessage, flushPendingText, stopTimer]);
|
|
345
|
+
}, [appendThinkingLines, updateCurrentMessage, flushPendingText, stopTimer]);
|
|
259
346
|
const interrupt = useCallback(() => {
|
|
260
|
-
// 남은 버퍼 flush 후 중단
|
|
261
347
|
flushPendingText();
|
|
262
348
|
stopTimer();
|
|
263
349
|
setStatus("interrupted");
|
|
@@ -269,6 +355,8 @@ export function useAgentStream() {
|
|
|
269
355
|
content: msg.content + "\n\n[Interrupted]",
|
|
270
356
|
}));
|
|
271
357
|
currentMsgIdRef.current = null;
|
|
358
|
+
currentThinkingMsgIdRef.current = null;
|
|
359
|
+
activeToolBatchIdRef.current = null;
|
|
272
360
|
const sysMsg = {
|
|
273
361
|
id: `sys-${Date.now()}`,
|
|
274
362
|
role: "system",
|
|
@@ -276,7 +364,6 @@ export function useAgentStream() {
|
|
|
276
364
|
timestamp: Date.now(),
|
|
277
365
|
};
|
|
278
366
|
setMessages((prev) => [...prev, sysMsg]);
|
|
279
|
-
// 2초 후 idle로 전환
|
|
280
367
|
setTimeout(() => {
|
|
281
368
|
setStatus("idle");
|
|
282
369
|
}, 2000);
|
|
@@ -301,6 +388,8 @@ export function useAgentStream() {
|
|
|
301
388
|
setCurrentToolArgs(null);
|
|
302
389
|
setLastError(null);
|
|
303
390
|
setFilesChangedCount(0);
|
|
391
|
+
currentThinkingMsgIdRef.current = null;
|
|
392
|
+
activeToolBatchIdRef.current = null;
|
|
304
393
|
currentMsgIdRef.current = null;
|
|
305
394
|
}, []);
|
|
306
395
|
const state = {
|
|
@@ -315,8 +404,17 @@ export function useAgentStream() {
|
|
|
315
404
|
currentToolArgs,
|
|
316
405
|
lastError,
|
|
317
406
|
filesChangedCount,
|
|
407
|
+
reasoningTree,
|
|
408
|
+
};
|
|
409
|
+
return {
|
|
410
|
+
state,
|
|
411
|
+
handleEvent,
|
|
412
|
+
addUserMessage,
|
|
413
|
+
addSystemMessage,
|
|
414
|
+
startAgent,
|
|
415
|
+
interrupt,
|
|
416
|
+
clearMessages,
|
|
318
417
|
};
|
|
319
|
-
return { state, handleEvent, addUserMessage, addSystemMessage, startAgent, interrupt, clearMessages };
|
|
320
418
|
}
|
|
321
419
|
function summarizeArgs(input) {
|
|
322
420
|
if (!input || typeof input !== "object")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentStream.js","sourceRoot":"","sources":["../../../src/tui/hooks/useAgentStream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAgentStream.js","sourceRoot":"","sources":["../../../src/tui/hooks/useAgentStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../../src/tui/lib/update-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACzC;AAMD,yBAAyB;AACzB,wBAAgB,YAAY,IAAI,YAAY,CAU3C;AAED,yBAAyB;AACzB,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAQzD;
|
|
1
|
+
{"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../../src/tui/lib/update-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACzC;AAMD,yBAAyB;AACzB,wBAAgB,YAAY,IAAI,YAAY,CAU3C;AAED,yBAAyB;AACzB,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAQzD;AAyCD,+CAA+C;AAC/C,wBAAsB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAwCvF;AAED,mDAAmD;AACnD,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAuBtD"}
|
|
@@ -40,7 +40,7 @@ export function saveSettings(settings) {
|
|
|
40
40
|
/** Fetch latest version from npm registry (non-blocking) */
|
|
41
41
|
function fetchLatestVersion() {
|
|
42
42
|
return new Promise((resolve) => {
|
|
43
|
-
const url = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
43
|
+
const url = `https://registry.npmjs.org/${encodeURIComponent(PACKAGE_NAME)}/latest`;
|
|
44
44
|
const req = https.get(url, { timeout: 5000 }, (res) => {
|
|
45
45
|
let data = "";
|
|
46
46
|
res.on("data", (chunk) => { data += chunk; });
|
|
@@ -63,12 +63,14 @@ function fetchLatestVersion() {
|
|
|
63
63
|
}
|
|
64
64
|
/** Compare semver versions. Returns true if b > a */
|
|
65
65
|
function isNewer(a, b) {
|
|
66
|
-
const pa = a.split(".").map(
|
|
67
|
-
const pb = b.split(".").map(
|
|
68
|
-
for (let i = 0; i <
|
|
69
|
-
|
|
66
|
+
const pa = a.split(".").map(n => parseInt(n, 10));
|
|
67
|
+
const pb = b.split(".").map(n => parseInt(n, 10));
|
|
68
|
+
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
69
|
+
const ai = pa[i] ?? 0;
|
|
70
|
+
const bi = pb[i] ?? 0;
|
|
71
|
+
if (bi > ai)
|
|
70
72
|
return true;
|
|
71
|
-
if (
|
|
73
|
+
if (bi < ai)
|
|
72
74
|
return false;
|
|
73
75
|
}
|
|
74
76
|
return false;
|
|
@@ -121,7 +123,7 @@ export async function performUpdate() {
|
|
|
121
123
|
const { execSync } = await import("node:child_process");
|
|
122
124
|
// Try pnpm global add first (handles workspace:* correctly)
|
|
123
125
|
try {
|
|
124
|
-
execSync(`pnpm
|
|
126
|
+
execSync(`pnpm install -g ${PACKAGE_NAME}@latest`, {
|
|
125
127
|
stdio: "pipe",
|
|
126
128
|
timeout: 60000,
|
|
127
129
|
});
|