@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
|
@@ -57,9 +57,19 @@ function parseBlocks(content) {
|
|
|
57
57
|
i++;
|
|
58
58
|
continue;
|
|
59
59
|
}
|
|
60
|
-
// List item
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
// List item (unordered)
|
|
61
|
+
const ulMatch = line.match(/^(\s*)[-*+]\s(.*)$/);
|
|
62
|
+
if (ulMatch) {
|
|
63
|
+
const depth = Math.floor(ulMatch[1].length / 2);
|
|
64
|
+
blocks.push({ type: "list", content: line, listOrdered: false, listText: ulMatch[2], listDepth: depth });
|
|
65
|
+
i++;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
// List item (ordered)
|
|
69
|
+
const olMatch = line.match(/^(\s*)(\d+)\.\s(.*)$/);
|
|
70
|
+
if (olMatch) {
|
|
71
|
+
const depth = Math.floor(olMatch[1].length / 2);
|
|
72
|
+
blocks.push({ type: "list", content: line, listOrdered: true, listNumber: olMatch[2], listText: olMatch[3], listDepth: depth });
|
|
63
73
|
i++;
|
|
64
74
|
continue;
|
|
65
75
|
}
|
|
@@ -131,7 +141,7 @@ function InlineText({ text }) {
|
|
|
131
141
|
parts.push(_jsx(Text, { dimColor: true, children: match[3] }, key++));
|
|
132
142
|
}
|
|
133
143
|
else if (match[4]) {
|
|
134
|
-
parts.push(_jsxs(Text, { color: "white", children: [" ", match[4], " "] }, key++));
|
|
144
|
+
parts.push(_jsxs(Text, { color: "white", backgroundColor: "#1a1a1a", children: [" ", match[4], " "] }, key++));
|
|
135
145
|
}
|
|
136
146
|
lastIndex = match.index + match[0].length;
|
|
137
147
|
}
|
|
@@ -199,16 +209,34 @@ function TableBlock({ rows, aligns, width }) {
|
|
|
199
209
|
}
|
|
200
210
|
function renderBlock(block, idx, width) {
|
|
201
211
|
switch (block.type) {
|
|
202
|
-
case "header":
|
|
203
|
-
|
|
212
|
+
case "header": {
|
|
213
|
+
const level = block.level || 1;
|
|
214
|
+
if (level === 1) {
|
|
215
|
+
return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: _jsx(Text, { bold: true, color: "white", children: block.content }) }, idx));
|
|
216
|
+
}
|
|
217
|
+
else if (level === 2) {
|
|
218
|
+
return (_jsx(Box, { marginBottom: 0, children: _jsx(Text, { bold: true, color: "white", children: block.content }) }, idx));
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
return (_jsx(Box, { marginBottom: 0, children: _jsx(Text, { bold: true, dimColor: true, children: block.content }) }, idx));
|
|
222
|
+
}
|
|
223
|
+
}
|
|
204
224
|
case "code": {
|
|
205
225
|
const maxW = Math.max(10, width - 6);
|
|
206
|
-
return (_jsxs(Box, { flexDirection: "column", marginLeft: 2, marginBottom: 0, children: [block.language && (_jsx(Text, { dimColor: true, children: block.language })), block.content.split("\n").map((line, i) => (_jsxs(Text, { dimColor: true, children:
|
|
226
|
+
return (_jsxs(Box, { flexDirection: "column", marginLeft: 2, marginBottom: 0, children: [block.language && (_jsx(Text, { dimColor: true, children: block.language })), block.content.split("\n").map((line, i) => (_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "│ " }), _jsx(Text, { color: "white", children: line.length > maxW ? line.slice(0, maxW - 1) + "…" : line })] }, i)))] }, idx));
|
|
207
227
|
}
|
|
208
228
|
case "table":
|
|
209
229
|
return (_jsx(Box, { children: _jsx(TableBlock, { rows: block.tableRows || [], aligns: block.tableAligns || [], width: width }) }, idx));
|
|
210
|
-
case "list":
|
|
211
|
-
|
|
230
|
+
case "list": {
|
|
231
|
+
const depth = block.listDepth || 0;
|
|
232
|
+
const indent = " " + " ".repeat(depth);
|
|
233
|
+
if (block.listOrdered) {
|
|
234
|
+
return (_jsxs(Box, { children: [_jsxs(Text, { children: [indent, _jsxs(Text, { dimColor: true, children: [block.listNumber, "."] }), " "] }), _jsx(InlineText, { text: block.listText || "" })] }, idx));
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
return (_jsxs(Box, { children: [_jsxs(Text, { children: [indent, _jsx(Text, { dimColor: true, children: "─" }), " "] }), _jsx(InlineText, { text: block.listText || "" })] }, idx));
|
|
238
|
+
}
|
|
239
|
+
}
|
|
212
240
|
case "blank":
|
|
213
241
|
return _jsx(Box, { height: 1 }, idx);
|
|
214
242
|
case "paragraph":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownRenderer.js","sourceRoot":"","sources":["../../../src/tui/components/MarkdownRenderer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MarkdownRenderer.js","sourceRoot":"","sources":["../../../src/tui/components/MarkdownRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MessageBubble.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MessageBubble.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA8FD,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4IxC"}
|
|
@@ -1,8 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text } from "ink";
|
|
3
3
|
import { TOKENS } from "../lib/tokens.js";
|
|
4
4
|
import { Spinner } from "./Spinner.js";
|
|
5
5
|
import { MarkdownRenderer } from "./MarkdownRenderer.js";
|
|
6
|
+
const BANNER_TITLE_PREFIX = "YUAN v";
|
|
7
|
+
const BANNER_SUBTITLE = "Autonomous Coding Agent";
|
|
8
|
+
const FOX_PIXEL_PALETTE = {
|
|
9
|
+
".": null,
|
|
10
|
+
"S": "#dbeafe",
|
|
11
|
+
"W": "#f8fafc",
|
|
12
|
+
"G": "#e5e7eb",
|
|
13
|
+
"N": "#111827",
|
|
14
|
+
};
|
|
15
|
+
const FOX_PIXEL_SPRITE = [
|
|
16
|
+
"..SWWWS.",
|
|
17
|
+
".SWWWWWS",
|
|
18
|
+
"SWWNNWWS",
|
|
19
|
+
"SWWWWWW.",
|
|
20
|
+
".SWWWWW.",
|
|
21
|
+
"..SWWW..",
|
|
22
|
+
"..SWW...",
|
|
23
|
+
"...S....",
|
|
24
|
+
];
|
|
25
|
+
function truncateArgs(args, maxLen) {
|
|
26
|
+
if (!args)
|
|
27
|
+
return "";
|
|
28
|
+
return args.length > maxLen ? args.slice(0, maxLen) + "…" : args;
|
|
29
|
+
}
|
|
30
|
+
function PixelFoxSprite() {
|
|
31
|
+
return (_jsx(Box, { flexDirection: "column", children: FOX_PIXEL_SPRITE.map((row, rowIndex) => (_jsx(Box, { children: row.split("").map((cell, colIndex) => {
|
|
32
|
+
const color = FOX_PIXEL_PALETTE[cell] ?? null;
|
|
33
|
+
if (!color) {
|
|
34
|
+
return (_jsx(Text, { children: " " }, `fox-px-${rowIndex}-${colIndex}`));
|
|
35
|
+
}
|
|
36
|
+
return (_jsx(Text, { color: color, children: "██" }, `fox-px-${rowIndex}-${colIndex}`));
|
|
37
|
+
}) }, `fox-row-${rowIndex}`))) }));
|
|
38
|
+
}
|
|
6
39
|
function ToolCallLine({ tc, isLast }) {
|
|
7
40
|
const connector = isLast ? TOKENS.tree.last : TOKENS.tree.branch;
|
|
8
41
|
const icon = tc.status === "running" ? null :
|
|
@@ -12,10 +45,14 @@ function ToolCallLine({ tc, isLast }) {
|
|
|
12
45
|
tc.status === "error" ? "red" :
|
|
13
46
|
undefined;
|
|
14
47
|
const duration = tc.duration != null ? ` (${tc.duration.toFixed(1)}s)` : "";
|
|
15
|
-
|
|
48
|
+
const argsTruncated = truncateArgs(tc.argsSummary, 40);
|
|
49
|
+
return (_jsx(Box, { paddingLeft: 2, children: tc.status === "running" ? (_jsxs(_Fragment, { children: [_jsxs(Text, { dimColor: true, children: [TOKENS.brand.prefix, " "] }), _jsx(Text, { bold: true, children: tc.toolName }), argsTruncated ? _jsxs(Text, { dimColor: true, children: ["(", argsTruncated, ")"] }) : null, _jsx(Text, { children: " " }), _jsx(Spinner, {})] })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { dimColor: true, children: [connector, " "] }), _jsx(Text, { color: iconColor, children: icon }), _jsxs(Text, { color: "white", children: [" ", tc.toolName] }), argsTruncated ? _jsxs(Text, { dimColor: true, children: [" ", argsTruncated] }) : null, _jsx(Text, { dimColor: true, children: duration })] })) }));
|
|
16
50
|
}
|
|
17
51
|
export function MessageBubble({ message, width, isLatest, }) {
|
|
18
52
|
const msg = message;
|
|
53
|
+
const isBannerMessage = msg.role === "system" &&
|
|
54
|
+
msg.content.includes(BANNER_TITLE_PREFIX) &&
|
|
55
|
+
msg.content.includes(BANNER_SUBTITLE);
|
|
19
56
|
switch (msg.role) {
|
|
20
57
|
case "user": {
|
|
21
58
|
// Wrap long text into lines, pad each line to same width for uniform bg
|
|
@@ -38,10 +75,11 @@ export function MessageBubble({ message, width, isLatest, }) {
|
|
|
38
75
|
// Find the longest line for uniform padding
|
|
39
76
|
const longestLine = Math.max(...lines.map((l) => l.length), 1);
|
|
40
77
|
const paddedLines = lines.map((l) => ` ${l.padEnd(longestLine)} `);
|
|
41
|
-
|
|
78
|
+
const horizontal = "─".repeat(longestLine + 2);
|
|
79
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, alignItems: "flex-end", children: [_jsx(Text, { dimColor: true, children: `┌${horizontal}┐` }), paddedLines.map((line, i) => (_jsx(Text, { backgroundColor: "#1e1e1e", color: "white", children: `│${line}│` }, i))), _jsx(Text, { dimColor: true, children: `└${horizontal}┘` })] }));
|
|
42
80
|
}
|
|
43
81
|
case "assistant":
|
|
44
|
-
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { children: msg.isStreaming ? (_jsx(Spinner, { label: TOKENS.brand.name })) : (_jsxs(Text, { bold: true, color: "white", children: [
|
|
82
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { children: msg.isStreaming ? (_jsx(Spinner, { label: TOKENS.brand.name })) : (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: TOKENS.brand.prefix }), _jsxs(Text, { bold: true, color: "white", children: [" ", TOKENS.brand.name] })] })) }), msg.content && (_jsx(Box, { paddingLeft: 3, marginTop: 0, children: _jsx(MarkdownRenderer, { content: msg.content, width: width - 6 }) })), msg.isStreaming && isLatest && (_jsx(Box, { paddingLeft: 3, children: _jsx(Text, { dimColor: true, children: "\u2588" }) })), msg.toolCalls && msg.toolCalls.length > 0 && (_jsx(Box, { flexDirection: "column", marginTop: 0, children: msg.toolCalls.map((tc, i) => (_jsx(ToolCallLine, { tc: tc, isLast: i === msg.toolCalls.length - 1 }, tc.id))) }))] }));
|
|
45
83
|
case "tool": {
|
|
46
84
|
const icon = msg.toolSuccess ? "✓" : "✗";
|
|
47
85
|
const iconColor = msg.toolSuccess ? "green" : "red";
|
|
@@ -51,7 +89,15 @@ export function MessageBubble({ message, width, isLatest, }) {
|
|
|
51
89
|
return (_jsxs(Box, { paddingLeft: 2, children: [_jsxs(Text, { dimColor: true, children: [TOKENS.tree.last, " "] }), _jsx(Text, { color: iconColor, children: icon }), _jsxs(Text, { dimColor: true, children: [" ", msg.toolName, duration] })] }));
|
|
52
90
|
}
|
|
53
91
|
case "system":
|
|
54
|
-
|
|
92
|
+
if (isBannerMessage) {
|
|
93
|
+
const lines = msg.content.split("\n");
|
|
94
|
+
const title = lines.find((line) => line.startsWith(BANNER_TITLE_PREFIX)) ?? "";
|
|
95
|
+
const subtitle = lines.find((line) => line.includes(BANNER_SUBTITLE)) ?? "";
|
|
96
|
+
const help = lines.find((line) => line.includes("Type /help")) ?? "";
|
|
97
|
+
const site = lines.find((line) => line.includes("yuaone.com")) ?? "";
|
|
98
|
+
return (_jsxs(Box, { flexDirection: "row", alignItems: "flex-start", marginBottom: 1, paddingLeft: 1, children: [_jsx(Box, { marginRight: 2, children: _jsx(PixelFoxSprite, {}) }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, color: "white", children: title }), _jsx(Text, { color: "#cbd5e1", children: subtitle }), _jsx(Box, { height: 1 }), _jsx(Text, { dimColor: true, children: help }), _jsx(Text, { dimColor: true, children: site })] })] }));
|
|
99
|
+
}
|
|
100
|
+
return (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { dimColor: true, children: msg.content }) }));
|
|
55
101
|
default:
|
|
56
102
|
return _jsx(Box, {});
|
|
57
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBubble.js","sourceRoot":"","sources":["../../../src/tui/components/MessageBubble.tsx"],"names":[],"mappings":";AASA,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,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageBubble.js","sourceRoot":"","sources":["../../../src/tui/components/MessageBubble.tsx"],"names":[],"mappings":";AASA,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,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQzD,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AACrC,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAElD,MAAM,iBAAiB,GAAkC;IACvD,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACvB,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;CACX,CAAC;AAEF,SAAS,YAAY,CAAC,IAAwB,EAAE,MAAc;IAC5D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CACvC,KAAC,GAAG,cACD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;gBAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CACL,KAAC,IAAI,cACF,IAAI,IADI,UAAU,QAAQ,IAAI,QAAQ,EAAE,CAEpC,CACR,CAAC;gBACJ,CAAC;gBAED,OAAO,CACL,KAAC,IAAI,IAEH,KAAK,EAAE,KAAK,YAEX,IAAI,IAHA,UAAU,QAAQ,IAAI,QAAQ,EAAE,CAIhC,CACR,CAAC;YACJ,CAAC,CAAC,IApBM,WAAW,QAAQ,EAAE,CAqBzB,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AACD,SAAS,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAwC;IACxE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACjE,MAAM,IAAI,GACR,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/B,GAAG,CAAC;IACN,MAAM,SAAS,GACb,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACnC,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC/B,SAAS,CAAC;IACZ,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAEvD,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,YAChB,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CACzB,8BACE,MAAC,IAAI,IAAC,QAAQ,mBAAE,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,EAC5C,KAAC,IAAI,IAAC,IAAI,kBAAE,EAAE,CAAC,QAAQ,GAAQ,EAC9B,aAAa,CAAC,CAAC,CAAC,MAAC,IAAI,IAAC,QAAQ,wBAAG,aAAa,SAAS,CAAC,CAAC,CAAC,IAAI,EAC/D,KAAC,IAAI,oBAAS,EACd,KAAC,OAAO,KAAG,IACV,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,MAAC,IAAI,IAAC,QAAQ,mBAAE,SAAS,SAAS,EAClC,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,YAAG,IAAI,GAAQ,EACrC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,kBAAG,EAAE,CAAC,QAAQ,IAAQ,EACxC,aAAa,CAAC,CAAC,CAAC,MAAC,IAAI,IAAC,QAAQ,yBAAI,aAAa,IAAQ,CAAC,CAAC,CAAC,IAAI,EAC/D,KAAC,IAAI,IAAC,QAAQ,kBAAE,QAAQ,GAAQ,IAC/B,CACJ,GACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,QAAQ,GACW;IACnB,MAAM,GAAG,GAAG,OAAO,CAAC;IACpB,MAAM,eAAe,GACnB,GAAG,CAAC,IAAI,KAAK,QAAQ;QACrB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACzC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAExC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,wEAAwE;YACxE,MAAM,eAAe,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,sBAAsB;YACzD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,EAAE,CAAC;oBAC3D,IAAI,WAAW;wBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzC,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9D,CAAC;YACH,CAAC;YACD,IAAI,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzC,4CAA4C;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC9C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAC,UAAU,aAChE,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,UAAU,GAAG,GAAQ,EACxC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,IAAI,IAAS,eAAe,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,YAAE,IAAI,IAAI,GAAG,IAAvD,CAAC,CAA8D,CAC3E,CAAC,EACF,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,UAAU,GAAG,GAAQ,IACrC,CACP,CAAC;QACJ,CAAC;QAED,KAAK,WAAW;YACd,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,GAAG,cACD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CACjB,KAAC,OAAO,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,GAAI,CACtC,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,IAAI,IAAC,QAAQ,kBAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAQ,EAC3C,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,kBAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAQ,IACnD,CACJ,GACG,EACL,GAAG,CAAC,OAAO,IAAI,CACd,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,YAC/B,KAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,GAAI,GACxD,CACP,EACA,GAAG,CAAC,WAAW,IAAI,QAAQ,IAAI,CAC9B,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,YACjB,KAAC,IAAI,IAAC,QAAQ,6BAAS,GACnB,CACP,EACA,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5C,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,YAAY,IAEX,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,CAAC,KAAK,GAAG,CAAC,SAAU,CAAC,MAAM,GAAG,CAAC,IAFlC,EAAE,CAAC,EAAE,CAGV,CACH,CAAC,GACE,CACP,IACG,CACP,CAAC;QAEJ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACzC,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc;gBACjC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBACjD,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAE,CAAC,aACjB,MAAC,IAAI,IAAC,QAAQ,mBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,EACzC,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,YAAG,IAAI,GAAQ,EACrC,MAAC,IAAI,IAAC,QAAQ,mBACX,GAAG,EACH,GAAG,CAAC,QAAQ,EAAE,QAAQ,IAClB,IACH,CACP,CAAC;QACJ,CAAC;QAED,KAAK,QAAQ;YACX,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,KAAK,GACT,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnE,MAAM,QAAQ,GACZ,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7D,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE1D,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,KAAK,EACnB,UAAU,EAAC,YAAY,EACvB,YAAY,EAAE,CAAC,EACf,WAAW,EAAE,CAAC,aAEd,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,YACjB,KAAC,cAAc,KAAG,GACd,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,YACrB,KAAK,GACD,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAE,QAAQ,GAAQ,EAEvC,KAAC,GAAG,IAAC,MAAM,EAAE,CAAC,GAAI,EAElB,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAQ,EAC5B,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAQ,IACxB,IACF,CACP,CAAC;YACJ,CAAC;YAED,OAAO,CACL,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,QAAQ,kBAAE,GAAG,CAAC,OAAO,GAAQ,GAC/B,CACP,CAAC;QAEJ;YACE,OAAO,KAAC,GAAG,KAAG,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Uses MessageBubble for individual message rendering.
|
|
4
4
|
* Supports PageUp/PageDown scroll, auto-pins to bottom on new content.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Anti-overlap strategy: estimate each message's line count and only
|
|
7
|
+
* render enough messages to fill the container height. This prevents
|
|
8
|
+
* Ink's unreliable overflow="hidden" from causing messages to bleed
|
|
9
|
+
* into adjacent components.
|
|
10
10
|
*/
|
|
11
11
|
import React from "react";
|
|
12
12
|
import type { TUIMessage } from "../types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MessageList.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MessageList.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAA4C,MAAM,OAAO,CAAC;AAMjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgCD,eAAO,MAAM,WAAW,8CAgGtB,CAAC"}
|
|
@@ -4,10 +4,10 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
* Uses MessageBubble for individual message rendering.
|
|
5
5
|
* Supports PageUp/PageDown scroll, auto-pins to bottom on new content.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* Anti-overlap strategy: estimate each message's line count and only
|
|
8
|
+
* render enough messages to fill the container height. This prevents
|
|
9
|
+
* Ink's unreliable overflow="hidden" from causing messages to bleed
|
|
10
|
+
* into adjacent components.
|
|
11
11
|
*/
|
|
12
12
|
import { memo, useState, useEffect, useRef } from "react";
|
|
13
13
|
import { Box, Text, useInput } from "ink";
|
|
@@ -15,13 +15,37 @@ import { useTerminalSize } from "../hooks/useTerminalSize.js";
|
|
|
15
15
|
import { MessageBubble } from "./MessageBubble.js";
|
|
16
16
|
import { Spinner } from "./Spinner.js";
|
|
17
17
|
import { TOKENS } from "../lib/tokens.js";
|
|
18
|
+
/**
|
|
19
|
+
* Estimate how many terminal lines a message will occupy.
|
|
20
|
+
* Conservative (overestimates) to guarantee no overflow.
|
|
21
|
+
*/
|
|
22
|
+
function estimateLines(msg, columns) {
|
|
23
|
+
const contentWidth = Math.max(20, columns - 8); // padding/indentation
|
|
24
|
+
const textLen = msg.content?.length ?? 0;
|
|
25
|
+
const contentLines = textLen === 0 ? 0 : Math.ceil(textLen / contentWidth);
|
|
26
|
+
switch (msg.role) {
|
|
27
|
+
case "user":
|
|
28
|
+
// Bubble: word-wrapped lines + 1 marginBottom
|
|
29
|
+
return Math.max(1, contentLines) + 1;
|
|
30
|
+
case "assistant": {
|
|
31
|
+
// Header(1) + content lines + tool calls + marginBottom(1)
|
|
32
|
+
const toolLines = msg.toolCalls?.length ?? 0;
|
|
33
|
+
return 1 + Math.max(0, contentLines) + toolLines + 1;
|
|
34
|
+
}
|
|
35
|
+
case "tool":
|
|
36
|
+
return 1;
|
|
37
|
+
case "system": {
|
|
38
|
+
// System messages can be multi-line (newlines in content)
|
|
39
|
+
const newlines = (msg.content?.match(/\n/g) ?? []).length;
|
|
40
|
+
return Math.max(1, newlines + 1);
|
|
41
|
+
}
|
|
42
|
+
default:
|
|
43
|
+
return 1;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
18
46
|
export const MessageList = memo(function MessageList({ messages, isThinking, maxHeight, }) {
|
|
19
47
|
const { columns, rows } = useTerminalSize();
|
|
20
48
|
const height = maxHeight ?? rows - 4;
|
|
21
|
-
// How many messages to render from the end.
|
|
22
|
-
// We show a generous window and let Ink clip via overflow="hidden" + flex-end.
|
|
23
|
-
// This avoids the old problem of guessing "3 lines per message".
|
|
24
|
-
const MAX_RENDER_MSGS = Math.max(10, Math.floor(height / 2));
|
|
25
49
|
// Pinned = auto-scroll mode (show newest). false = user browsing history.
|
|
26
50
|
const [pinned, setPinned] = useState(true);
|
|
27
51
|
// Manual offset from the end (0 = latest, positive = scrolled up)
|
|
@@ -49,12 +73,22 @@ export const MessageList = memo(function MessageList({ messages, isThinking, max
|
|
|
49
73
|
});
|
|
50
74
|
}
|
|
51
75
|
});
|
|
52
|
-
// Compute visible slice —
|
|
76
|
+
// Compute visible slice — fit messages within height budget
|
|
53
77
|
const endIdx = Math.max(0, messages.length - scrollBack);
|
|
54
|
-
|
|
78
|
+
// Walk backwards from endIdx, accumulating estimated lines until we hit the height budget
|
|
79
|
+
const reservedLines = 2; // scroll indicators + thinking
|
|
80
|
+
let budget = height - reservedLines;
|
|
81
|
+
let startIdx = endIdx;
|
|
82
|
+
for (let i = endIdx - 1; i >= 0 && budget > 0; i--) {
|
|
83
|
+
const lines = estimateLines(messages[i], columns);
|
|
84
|
+
if (budget - lines < 0 && startIdx < endIdx)
|
|
85
|
+
break; // don't add if it overflows (unless it's the first)
|
|
86
|
+
budget -= lines;
|
|
87
|
+
startIdx = i;
|
|
88
|
+
}
|
|
55
89
|
const visibleMessages = messages.slice(startIdx, endIdx);
|
|
56
90
|
const hasAbove = startIdx > 0;
|
|
57
91
|
const hasBelow = scrollBack > 0;
|
|
58
|
-
return (_jsxs(Box, { flexDirection: "column", height: height, overflow: "hidden", justifyContent: "flex-end", children: [hasAbove && (_jsx(Box, { justifyContent: "center", flexShrink: 0, children: _jsxs(Text, { dimColor: true, children: ["
|
|
92
|
+
return (_jsxs(Box, { flexDirection: "column", height: height, overflow: "hidden", justifyContent: "flex-end", children: [hasAbove && (_jsx(Box, { justifyContent: "center", flexShrink: 0, children: _jsxs(Text, { dimColor: true, children: ["--- ", startIdx, " more (PgUp) ---"] }) })), visibleMessages.length === 0 && !isThinking && (_jsx(Box, { justifyContent: "center", flexGrow: 1, children: _jsx(Text, { dimColor: true, children: "Type a message to start..." }) })), visibleMessages.map((msg, i) => (_jsx(MessageBubble, { message: msg, width: columns, isLatest: startIdx + i === messages.length - 1 }, msg.id))), isThinking && !messages.some((m) => m.isStreaming) && (_jsxs(Box, { marginTop: 0, flexShrink: 0, children: [_jsx(Text, { children: " " }), _jsx(Spinner, { label: `${TOKENS.brand.name} ·····` })] })), hasBelow && (_jsx(Box, { justifyContent: "center", flexShrink: 0, children: _jsxs(Text, { dimColor: true, children: ["--- ", scrollBack, " more (PgDn) ---"] }) }))] }));
|
|
59
93
|
});
|
|
60
94
|
//# sourceMappingURL=MessageList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../../src/tui/components/MessageList.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;AAEH,OAAc,EAAE,IAAI,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../../src/tui/components/MessageList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlashMenu.d.ts","sourceRoot":"","sources":["../../../src/tui/components/SlashMenu.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,aAAa,EACb,MAAM,EACN,KAAK,GACN,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"SlashMenu.d.ts","sourceRoot":"","sources":["../../../src/tui/components/SlashMenu.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,aAAa,EACb,MAAM,EACN,KAAK,GACN,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAmE3C"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text } from "ink";
|
|
3
|
-
import { TOKENS } from "../lib/tokens.js";
|
|
4
3
|
export function SlashMenu({ commands, selectedIndex, isOpen, width, }) {
|
|
5
4
|
if (!isOpen || commands.length === 0)
|
|
6
5
|
return null;
|
|
7
6
|
const maxVisible = 8;
|
|
8
|
-
const
|
|
7
|
+
const menuWidth = width;
|
|
8
|
+
const nameWidth = Math.min(22, Math.max(16, Math.floor(menuWidth * 0.24)));
|
|
9
|
+
const descWidth = Math.max(12, menuWidth - nameWidth - 6);
|
|
9
10
|
// Sliding window: keep selectedIndex within the visible range
|
|
10
11
|
let windowStart = 0;
|
|
11
12
|
if (commands.length > maxVisible) {
|
|
@@ -16,16 +17,16 @@ export function SlashMenu({ commands, selectedIndex, isOpen, width, }) {
|
|
|
16
17
|
const visible = commands.slice(windowStart, windowEnd);
|
|
17
18
|
const hasAbove = windowStart > 0;
|
|
18
19
|
const hasBelow = windowEnd < commands.length;
|
|
19
|
-
return (_jsxs(Box, { flexDirection: "column", width:
|
|
20
|
+
return (_jsxs(Box, { flexDirection: "column", width: menuWidth, paddingLeft: 1, children: [hasAbove && (_jsx(Box, { marginBottom: 0, children: _jsx(Text, { dimColor: true, children: ` ↑ ${windowStart} more` }) })), visible.map((cmd, i) => {
|
|
20
21
|
const actualIdx = windowStart + i;
|
|
21
22
|
const isSelected = actualIdx === selectedIndex;
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
const name = cmd.name.length > nameWidth
|
|
24
|
+
? cmd.name.slice(0, nameWidth - 1) + "…"
|
|
25
|
+
: cmd.name.padEnd(nameWidth);
|
|
25
26
|
const desc = cmd.description.length > descWidth
|
|
26
27
|
? cmd.description.slice(0, descWidth - 1) + "…"
|
|
27
28
|
: cmd.description;
|
|
28
|
-
return (
|
|
29
|
-
}), hasBelow && (_jsx(Box, { children:
|
|
29
|
+
return (_jsx(Box, { paddingLeft: 1, children: isSelected ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: "cyan", children: "\u203A " }), _jsx(Text, { bold: true, color: "cyan", children: name }), _jsxs(Text, { color: "white", children: [" ", desc] })] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: " " }), _jsx(Text, { color: "white", children: name }), _jsxs(Text, { dimColor: true, children: [" ", desc] })] })) }, cmd.name));
|
|
30
|
+
}), hasBelow && (_jsx(Box, { marginTop: 0, children: _jsx(Text, { dimColor: true, children: ` ↓ ${commands.length - windowEnd} more` }) }))] }));
|
|
30
31
|
}
|
|
31
32
|
//# sourceMappingURL=SlashMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlashMenu.js","sourceRoot":"","sources":["../../../src/tui/components/SlashMenu.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"SlashMenu.js","sourceRoot":"","sources":["../../../src/tui/components/SlashMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,12 @@ export interface StatusBarProps {
|
|
|
8
8
|
provider: string;
|
|
9
9
|
tokensPerSec?: number;
|
|
10
10
|
isRunning?: boolean;
|
|
11
|
+
inputTokens?: number;
|
|
12
|
+
outputTokens?: number;
|
|
13
|
+
updateAvailable?: {
|
|
14
|
+
current: string;
|
|
15
|
+
latest: string;
|
|
16
|
+
} | null;
|
|
11
17
|
}
|
|
12
|
-
export declare function StatusBar({ version, model, provider, tokensPerSec, isRunning, }: StatusBarProps): React.JSX.Element;
|
|
18
|
+
export declare function StatusBar({ version, model, provider, tokensPerSec, isRunning, inputTokens, outputTokens, updateAvailable, }: StatusBarProps): React.JSX.Element;
|
|
13
19
|
//# sourceMappingURL=StatusBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI,CAAC;CACV;AAED,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAe,EACf,YAAgB,EAChB,eAAsB,GACvB,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkCpC"}
|
|
@@ -2,14 +2,24 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Box, Text } from "ink";
|
|
3
3
|
import { useTerminalSize } from "../hooks/useTerminalSize.js";
|
|
4
4
|
import { TOKENS } from "../lib/tokens.js";
|
|
5
|
-
export function StatusBar({ version, model, provider, tokensPerSec, isRunning, }) {
|
|
5
|
+
export function StatusBar({ version, model, provider, tokensPerSec, isRunning, inputTokens = 0, outputTokens = 0, updateAvailable = null, }) {
|
|
6
6
|
const { columns, tier } = useTerminalSize();
|
|
7
7
|
const left = `${TOKENS.brand.prefix} YUAN v${version}`;
|
|
8
8
|
const status = isRunning ? "●" : "○";
|
|
9
9
|
const tps = tokensPerSec != null ? `${tokensPerSec} tok/s` : "";
|
|
10
|
+
const total = inputTokens + outputTokens;
|
|
11
|
+
const meterWidth = 10;
|
|
12
|
+
const filled = Math.min(meterWidth, Math.floor(total / 100));
|
|
13
|
+
const meter = "█".repeat(filled) + "░".repeat(Math.max(0, meterWidth - filled));
|
|
14
|
+
const tokenInfo = total > 0
|
|
15
|
+
? `▲${inputTokens} ▼${outputTokens} ${meter}`
|
|
16
|
+
: "";
|
|
17
|
+
const updateLabel = updateAvailable
|
|
18
|
+
? ` ↑ ${updateAvailable.current}→${updateAvailable.latest}`
|
|
19
|
+
: "";
|
|
10
20
|
const right = tier === "compact"
|
|
11
|
-
? `${status} ${model}`
|
|
12
|
-
: `${provider}/${model} ${status} ${tps}`;
|
|
13
|
-
return (_jsxs(Box, { width: columns, justifyContent: "space-between", children: [_jsx(Text, { dimColor: true, children: left }), _jsx(Text, { dimColor:
|
|
21
|
+
? `${status} ${model}${updateLabel}`
|
|
22
|
+
: `${provider}/${model} ${tokenInfo} ${status} ${tps}${updateLabel}`;
|
|
23
|
+
return (_jsxs(Box, { width: columns, justifyContent: "space-between", children: [_jsx(Text, { dimColor: true, children: left }), _jsx(Text, { dimColor: !updateAvailable, color: updateAvailable ? "yellow" : undefined, children: right })] }));
|
|
14
24
|
}
|
|
15
25
|
//# sourceMappingURL=StatusBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAgB1C,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,GAAG,CAAC,EACf,YAAY,GAAG,CAAC,EAChB,eAAe,GAAG,IAAI,GACP;IACf,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC;IAE5C,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,OAAO,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,MAAM,GAAG,GAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,KAAK,GAAG,WAAW,GAAG,YAAY,CAAC;IAEzC,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GACT,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;IAEpE,MAAM,SAAS,GACb,KAAK,GAAG,CAAC;QACP,CAAC,CAAC,IAAI,WAAW,KAAK,YAAY,IAAI,KAAK,EAAE;QAC7C,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,WAAW,GAAG,eAAe;QACjC,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE;QAC3D,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,KAAK,GACT,IAAI,KAAK,SAAS;QAChB,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,WAAW,EAAE;QACpC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,IAAI,SAAS,IAAI,MAAM,IAAI,GAAG,GAAG,WAAW,EAAE,CAAC;IAEzE,OAAO,CACL,MAAC,GAAG,IAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAC,eAAe,aACjD,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAQ,EAC5B,KAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,YAC5E,KAAK,GACD,IACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* AgentIndicator — dynamic CLI agent status indicator
|
|
3
3
|
*/
|
|
4
4
|
import React from "react";
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import type { AgentStatus } from "../types.js";
|
|
6
|
+
export interface AgentIndicatorProps {
|
|
7
|
+
status: AgentStatus;
|
|
8
|
+
toolName?: string | null;
|
|
7
9
|
}
|
|
8
|
-
export declare function
|
|
10
|
+
export declare function AgentIndicator({ status, toolName, }: AgentIndicatorProps): React.JSX.Element;
|
|
9
11
|
//# sourceMappingURL=ThinkingDots.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThinkingDots.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ThinkingDots.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ThinkingDots.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ThinkingDots.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAaD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,QAAQ,GACT,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA2CzC"}
|
|
@@ -1,19 +1,48 @@
|
|
|
1
1
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* AgentIndicator — dynamic CLI agent status indicator
|
|
4
4
|
*/
|
|
5
5
|
import { useState, useEffect } from "react";
|
|
6
6
|
import { Text } from "ink";
|
|
7
7
|
import { TOKENS } from "../lib/tokens.js";
|
|
8
|
-
|
|
8
|
+
const STATUS_LABEL = {
|
|
9
|
+
idle: "idle",
|
|
10
|
+
thinking: "thinking",
|
|
11
|
+
streaming: "writing",
|
|
12
|
+
tool_running: "running tool",
|
|
13
|
+
awaiting_approval: "awaiting approval",
|
|
14
|
+
error: "error",
|
|
15
|
+
completed: "done",
|
|
16
|
+
interrupted: "interrupted",
|
|
17
|
+
};
|
|
18
|
+
export function AgentIndicator({ status, toolName, }) {
|
|
9
19
|
const { frames, interval } = TOKENS.dots;
|
|
10
20
|
const [frame, setFrame] = useState(0);
|
|
11
21
|
useEffect(() => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
if (status === "thinking" ||
|
|
23
|
+
status === "streaming" ||
|
|
24
|
+
status === "tool_running") {
|
|
25
|
+
const timer = setInterval(() => {
|
|
26
|
+
setFrame((f) => (f + 1) % frames.length);
|
|
27
|
+
}, interval);
|
|
28
|
+
return () => clearInterval(timer);
|
|
29
|
+
}
|
|
30
|
+
}, [status, frames.length, interval]);
|
|
31
|
+
const label = status === "tool_running" && toolName
|
|
32
|
+
? `tool: ${toolName}`
|
|
33
|
+
: STATUS_LABEL[status];
|
|
34
|
+
const spinner = status === "thinking" ||
|
|
35
|
+
status === "streaming" ||
|
|
36
|
+
status === "tool_running"
|
|
37
|
+
? ` ${frames[frame]}`
|
|
38
|
+
: "";
|
|
39
|
+
let color = "gray";
|
|
40
|
+
if (status === "completed")
|
|
41
|
+
color = "green";
|
|
42
|
+
if (status === "error")
|
|
43
|
+
color = "red";
|
|
44
|
+
if (status === "awaiting_approval")
|
|
45
|
+
color = "yellow";
|
|
46
|
+
return (_jsxs(Text, { color: color, dimColor: status === "thinking", children: [label, spinner] }));
|
|
18
47
|
}
|
|
19
48
|
//# sourceMappingURL=ThinkingDots.js.map
|