@agi-cli/web-sdk 0.1.110 → 0.1.111
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/components/messages/renderers/BashRenderer.d.ts.map +1 -1
- package/dist/components/messages/renderers/BashRenderer.js +29 -26
- package/dist/components/messages/renderers/BashRenderer.js.map +1 -1
- package/dist/components/messages/renderers/GitStatusRenderer.d.ts.map +1 -1
- package/dist/components/messages/renderers/GitStatusRenderer.js +7 -3
- package/dist/components/messages/renderers/GitStatusRenderer.js.map +1 -1
- package/dist/components/messages/renderers/ListRenderer.d.ts.map +1 -1
- package/dist/components/messages/renderers/ListRenderer.js +9 -4
- package/dist/components/messages/renderers/ListRenderer.js.map +1 -1
- package/dist/components/messages/renderers/SearchRenderer.d.ts.map +1 -1
- package/dist/components/messages/renderers/SearchRenderer.js +10 -26
- package/dist/components/messages/renderers/SearchRenderer.js.map +1 -1
- package/dist/components/messages/renderers/TreeRenderer.d.ts.map +1 -1
- package/dist/components/messages/renderers/TreeRenderer.js +7 -3
- package/dist/components/messages/renderers/TreeRenderer.js.map +1 -1
- package/dist/components/messages/renderers/shared/CopyButton.d.ts +7 -0
- package/dist/components/messages/renderers/shared/CopyButton.d.ts.map +1 -0
- package/dist/components/messages/renderers/shared/CopyButton.js +17 -0
- package/dist/components/messages/renderers/shared/CopyButton.js.map +1 -0
- package/dist/components/messages/renderers/shared/ToolContentBox.d.ts +13 -0
- package/dist/components/messages/renderers/shared/ToolContentBox.d.ts.map +1 -0
- package/dist/components/messages/renderers/shared/ToolContentBox.js +9 -0
- package/dist/components/messages/renderers/shared/ToolContentBox.js.map +1 -0
- package/dist/components/messages/renderers/shared/ToolHeader.d.ts +29 -0
- package/dist/components/messages/renderers/shared/ToolHeader.d.ts.map +1 -0
- package/dist/components/messages/renderers/shared/ToolHeader.js +69 -0
- package/dist/components/messages/renderers/shared/ToolHeader.js.map +1 -0
- package/dist/components/messages/renderers/shared/index.d.ts +4 -0
- package/dist/components/messages/renderers/shared/index.d.ts.map +1 -0
- package/dist/components/messages/renderers/shared/index.js +4 -0
- package/dist/components/messages/renderers/shared/index.js.map +1 -0
- package/dist/components/messages/renderers/types.d.ts +26 -1
- package/dist/components/messages/renderers/types.d.ts.map +1 -1
- package/dist/components/messages/renderers/utils.d.ts +15 -0
- package/dist/components/messages/renderers/utils.d.ts.map +1 -1
- package/dist/components/messages/renderers/utils.js +42 -0
- package/dist/components/messages/renderers/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BashRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/BashRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"BashRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/BashRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAY7C,wBAAgB,YAAY,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CAiKf"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Terminal } from 'lucide-react';
|
|
3
3
|
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
|
|
4
4
|
import { prism, vscDarkPlus, } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
5
5
|
import { formatDuration } from './utils';
|
|
6
6
|
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
7
|
+
import { ToolHeader, ToolHeaderSeparator, ToolHeaderMeta, ToolHeaderSuccess, ToolHeaderError, ToolContentBox, } from './shared';
|
|
7
8
|
export function BashRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, }) {
|
|
8
9
|
const result = contentJson.result || {};
|
|
9
10
|
const args = contentJson.args || {};
|
|
10
|
-
// Check for tool execution error (ok: false)
|
|
11
11
|
const hasToolError = typeof result === 'object' && 'ok' in result && result.ok === false;
|
|
12
12
|
const errorMessage = hasToolError && 'error' in result && typeof result.error === 'string'
|
|
13
13
|
? result.error
|
|
@@ -19,33 +19,36 @@ export function BashRenderer({ contentJson, toolDurationMs, isExpanded, onToggle
|
|
|
19
19
|
const stderr = String(result.stderr || '');
|
|
20
20
|
const exitCode = Number(result.exitCode ?? 0);
|
|
21
21
|
const cmd = String(args.cmd || '');
|
|
22
|
+
const cwd = args.cwd ? String(args.cwd) : undefined;
|
|
22
23
|
const timeStr = formatDuration(toolDurationMs);
|
|
23
24
|
const syntaxTheme = document?.documentElement.classList.contains('dark')
|
|
24
25
|
? vscDarkPlus
|
|
25
26
|
: prism;
|
|
26
27
|
const hasOutput = stdout.length > 0 || stderr.length > 0;
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
28
|
+
const isError = hasToolError || exitCode !== 0;
|
|
29
|
+
const hasStderr = stderr.length > 0;
|
|
30
|
+
const combinedOutput = stdout + (stdout && stderr ? '\n' : '') + stderr;
|
|
31
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "bash", isExpanded: isExpanded, onToggle: onToggle, isError: isError, colorVariant: "default", canExpand: true, children: [_jsx(ToolHeaderSeparator, {}), _jsx("span", { className: "text-foreground/70 min-w-0 truncate", title: cmd, children: cmd }), !hasToolError && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), exitCode === 0 ? (_jsxs(ToolHeaderSuccess, { children: ["exit ", exitCode] })) : (_jsxs(ToolHeaderError, { children: ["exit ", exitCode] })), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] })), hasToolError && _jsxs(ToolHeaderMeta, { children: ["\u00B7 ", timeStr] })] }), isExpanded && hasToolError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasToolError && (_jsxs("div", { className: "mt-2 ml-5 flex flex-col gap-2 max-w-full", children: [_jsx(ToolContentBox, { title: "command", icon: _jsx(Terminal, { className: "h-3 w-3" }), subtitle: cwd && cwd !== '.' ? `in ${cwd}` : undefined, copyText: cmd, maxHeight: "", children: _jsx("div", { className: "px-3 py-2 font-mono text-xs bg-muted/10 break-all", children: cmd }) }), hasOutput && (_jsx(_Fragment, { children: exitCode === 0 ? (_jsx(ToolContentBox, { title: "output", copyText: combinedOutput, maxHeight: "max-h-80", children: _jsx(SyntaxHighlighter, { language: "bash", style: syntaxTheme, customStyle: {
|
|
32
|
+
margin: 0,
|
|
33
|
+
padding: '0.75rem',
|
|
34
|
+
fontSize: '0.75rem',
|
|
35
|
+
lineHeight: '1.5',
|
|
36
|
+
background: 'transparent',
|
|
37
|
+
maxWidth: '100%',
|
|
38
|
+
}, wrapLines: true, wrapLongLines: true, children: combinedOutput }) })) : (_jsxs(_Fragment, { children: [stdout && (_jsx(ToolContentBox, { title: "stdout", copyText: stdout, maxHeight: "max-h-40", children: _jsx(SyntaxHighlighter, { language: "bash", style: syntaxTheme, customStyle: {
|
|
39
|
+
margin: 0,
|
|
40
|
+
padding: '0.75rem',
|
|
41
|
+
fontSize: '0.75rem',
|
|
42
|
+
lineHeight: '1.5',
|
|
43
|
+
background: 'transparent',
|
|
44
|
+
maxWidth: '100%',
|
|
45
|
+
}, wrapLines: true, wrapLongLines: true, children: stdout }) })), hasStderr && (_jsx(ToolContentBox, { title: "stderr", copyText: stderr, variant: "error", maxHeight: "max-h-40", children: _jsx(SyntaxHighlighter, { language: "bash", style: syntaxTheme, customStyle: {
|
|
46
|
+
margin: 0,
|
|
47
|
+
padding: '0.75rem',
|
|
48
|
+
fontSize: '0.75rem',
|
|
49
|
+
lineHeight: '1.5',
|
|
50
|
+
background: 'transparent',
|
|
51
|
+
maxWidth: '100%',
|
|
52
|
+
}, wrapLines: true, wrapLongLines: true, children: stderr }) }))] })) }))] }))] }));
|
|
50
53
|
}
|
|
51
54
|
//# sourceMappingURL=BashRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BashRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/BashRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"BashRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/BashRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitStatusRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/GitStatusRenderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GitStatusRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/GitStatusRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAkD7C,wBAAgB,iBAAiB,CAAC,EACjC,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CAgFf"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { formatDuration, isToolError, getErrorMessage } from './utils';
|
|
3
|
+
import { ToolHeader, ToolHeaderSeparator, ToolHeaderMeta } from './shared';
|
|
4
|
+
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
4
5
|
function parseStatusLine(line) {
|
|
5
6
|
if (!line || line.length < 3)
|
|
6
7
|
return null;
|
|
@@ -44,6 +45,8 @@ function getStatusColor(type) {
|
|
|
44
45
|
}
|
|
45
46
|
export function GitStatusRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, }) {
|
|
46
47
|
const result = contentJson.result || {};
|
|
48
|
+
const hasError = isToolError(result);
|
|
49
|
+
const errorMessage = getErrorMessage(result);
|
|
47
50
|
const staged = Number(result.staged || 0);
|
|
48
51
|
const unstaged = Number(result.unstaged || 0);
|
|
49
52
|
const raw = (result.raw || []);
|
|
@@ -51,6 +54,7 @@ export function GitStatusRenderer({ contentJson, toolDurationMs, isExpanded, onT
|
|
|
51
54
|
const timeStr = formatDuration(toolDurationMs);
|
|
52
55
|
const statusLines = raw.map(parseStatusLine).filter(Boolean);
|
|
53
56
|
const hasChanges = staged > 0 || unstaged > 0;
|
|
54
|
-
|
|
57
|
+
const canExpand = statusLines.length > 0 || hasError || !!summary;
|
|
58
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "git status", isExpanded: isExpanded, onToggle: onToggle, isError: hasError, colorVariant: "blue", canExpand: canExpand, children: [_jsx(ToolHeaderSeparator, {}), hasChanges ? (_jsxs(_Fragment, { children: [staged > 0 && (_jsxs("span", { className: "text-emerald-600 dark:text-emerald-400 flex-shrink-0", children: [staged, " staged"] })), unstaged > 0 && (_jsxs("span", { className: "text-amber-600 dark:text-amber-400 flex-shrink-0", children: [unstaged, " unstaged"] }))] })) : (_jsx("span", { className: "text-muted-foreground/60 flex-shrink-0", children: "clean" })), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage })), isExpanded && !hasError && (statusLines.length > 0 || summary) && (_jsx("div", { className: "mt-2 ml-5", children: statusLines.length > 0 ? (_jsx("div", { className: "bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto", children: _jsx("div", { className: "divide-y divide-border/50", children: statusLines.map((line, i) => (_jsxs("div", { className: "flex items-center gap-2 px-3 py-1.5 font-mono hover:bg-muted/20", children: [_jsx("span", { className: `font-semibold w-6 flex-shrink-0 ${getStatusColor(line.type)}`, children: getStatusIcon(line.status) }), _jsx("span", { className: "text-foreground/80 break-all", children: line.file })] }, `${line.file}-${i}`))) }) })) : (summary && (_jsx("div", { className: "bg-card/60 border border-border rounded-lg p-3 text-muted-foreground", children: summary }))) }))] }));
|
|
55
59
|
}
|
|
56
60
|
//# sourceMappingURL=GitStatusRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitStatusRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/GitStatusRenderer.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"GitStatusRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/GitStatusRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ListRenderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ListRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ListRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAU7C,wBAAgB,YAAY,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CAuDf"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { ChevronDown, ChevronRight } from 'lucide-react';
|
|
3
2
|
import { File, Folder } from 'lucide-react';
|
|
4
|
-
import { formatDuration } from './utils';
|
|
3
|
+
import { formatDuration, isToolError, getErrorMessage } from './utils';
|
|
4
|
+
import { ToolHeader, ToolHeaderSeparator, ToolHeaderDetail, ToolHeaderMeta, } from './shared';
|
|
5
|
+
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
5
6
|
export function ListRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, }) {
|
|
6
7
|
const result = contentJson.result || {};
|
|
8
|
+
const hasError = isToolError(result);
|
|
9
|
+
const errorMessage = getErrorMessage(result);
|
|
7
10
|
const entries = result.entries || [];
|
|
8
11
|
const timeStr = formatDuration(toolDurationMs);
|
|
9
|
-
|
|
12
|
+
const canExpand = entries.length > 0 || hasError;
|
|
13
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "ls", isExpanded: isExpanded, onToggle: onToggle, isError: hasError, colorVariant: "cyan", canExpand: canExpand, children: [_jsx(ToolHeaderSeparator, {}), _jsxs(ToolHeaderDetail, { children: [entries.length, " ", entries.length === 1 ? 'entry' : 'entries'] }), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage })), isExpanded && !hasError && entries.length > 0 && (_jsx("div", { className: "mt-2 ml-5 space-y-0.5 max-h-96 overflow-y-auto", children: entries.map((entry, i) => {
|
|
10
14
|
const e = entry;
|
|
11
|
-
|
|
15
|
+
const isDir = e.type === 'dir' || e.isDirectory;
|
|
16
|
+
return (_jsxs("div", { className: "flex items-center gap-1.5 text-xs font-mono text-foreground/80", children: [isDir ? (_jsx(Folder, { className: "h-3 w-3 text-blue-500" })) : (_jsx(File, { className: "h-3 w-3 text-muted-foreground" })), _jsx("span", { children: e.name })] }, `${e.name}-${i}`));
|
|
12
17
|
}) }))] }));
|
|
13
18
|
}
|
|
14
19
|
//# sourceMappingURL=ListRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ListRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ListRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ListRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EACN,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,YAAY,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACO;IACf,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAI,MAAM,CAAC,OAA0B,IAAI,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC;IAEjD,OAAO,CACN,eAAK,SAAS,EAAC,SAAS,aACvB,MAAC,UAAU,IACV,QAAQ,EAAC,IAAI,EACb,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,EACjB,YAAY,EAAC,MAAM,EACnB,SAAS,EAAE,SAAS,aAEpB,KAAC,mBAAmB,KAAG,EACvB,MAAC,gBAAgB,eACf,OAAO,CAAC,MAAM,OAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAC1C,EACnB,KAAC,mBAAmB,KAAG,EACvB,KAAC,cAAc,cAAE,OAAO,GAAkB,IAC9B,EACZ,UAAU,IAAI,QAAQ,IAAI,YAAY,IAAI,CAC1C,KAAC,gBAAgB,IAAC,KAAK,EAAE,YAAY,GAAI,CACzC,EACA,UAAU,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACjD,cAAK,SAAS,EAAC,gDAAgD,YAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACzB,MAAM,CAAC,GAAG,KAIT,CAAC;oBACF,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,WAAW,CAAC;oBAChD,OAAO,CACN,eAEC,SAAS,EAAC,gEAAgE,aAEzE,KAAK,CAAC,CAAC,CAAC,CACR,KAAC,MAAM,IAAC,SAAS,EAAC,uBAAuB,GAAG,CAC5C,CAAC,CAAC,CAAC,CACH,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,GAAG,CAClD,EACD,yBAAO,CAAC,CAAC,IAAI,GAAQ,KARhB,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAShB,CACN,CAAC;gBACH,CAAC,CAAC,GACG,CACN,IACI,CACN,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/SearchRenderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SearchRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/SearchRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAU7C,wBAAgB,cAAc,CAAC,EAC9B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CAuGf"}
|
|
@@ -1,32 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { formatDuration } from './utils';
|
|
2
|
+
import { formatDuration, isToolError, getErrorMessage } from './utils';
|
|
4
3
|
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
4
|
+
import { ToolHeader, ToolHeaderSeparator, ToolHeaderDetail, ToolHeaderMeta, } from './shared';
|
|
5
5
|
export function SearchRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, }) {
|
|
6
6
|
const result = contentJson.result || {};
|
|
7
7
|
const matches = result.matches || [];
|
|
8
8
|
const files = result.files || [];
|
|
9
9
|
const timeStr = formatDuration(toolDurationMs);
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
result.ok === false) ||
|
|
16
|
-
(result && 'error' in result);
|
|
17
|
-
const errorMessage = typeof contentJson.error === 'string'
|
|
18
|
-
? contentJson.error
|
|
19
|
-
: result &&
|
|
20
|
-
typeof result === 'object' &&
|
|
21
|
-
'error' in result &&
|
|
22
|
-
typeof result.error === 'string'
|
|
23
|
-
? result.error
|
|
24
|
-
: null;
|
|
25
|
-
const errorStack = result &&
|
|
26
|
-
typeof result === 'object' &&
|
|
27
|
-
'stack' in result &&
|
|
28
|
-
typeof result.stack === 'string'
|
|
29
|
-
? result.stack
|
|
10
|
+
const hasError = isToolError(result) || !!contentJson.error;
|
|
11
|
+
const errorMessage = getErrorMessage(result) ||
|
|
12
|
+
(typeof contentJson.error === 'string' ? contentJson.error : null);
|
|
13
|
+
const errorStack = result && typeof result === 'object' && 'stack' in result
|
|
14
|
+
? String(result.stack)
|
|
30
15
|
: undefined;
|
|
31
16
|
// Determine what to show - matches for grep/ripgrep, files for glob
|
|
32
17
|
const itemCount = matches.length > 0 ? matches.length : files.length;
|
|
@@ -50,11 +35,10 @@ export function SearchRenderer({ contentJson, toolDurationMs, isExpanded, onTogg
|
|
|
50
35
|
}
|
|
51
36
|
return '';
|
|
52
37
|
})();
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
: 'text-amber-700 dark:text-amber-300 hover:text-amber-600 dark:hover:text-amber-200'}`, children: [isExpanded ? (_jsx(ChevronDown, { className: "h-3 w-3" })) : (_jsx(ChevronRight, { className: "h-3 w-3" })), hasError && (_jsx(AlertCircle, { className: "h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400" })), _jsxs("span", { className: "font-medium", children: ["search", hasError ? ' error' : ''] }), searchTerm && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground/70", children: "\u00B7" }), _jsxs("span", { className: "font-mono text-foreground/90 text-[11px]", children: ["\"", searchTerm.length > 30
|
|
38
|
+
const canExpand = itemCount > 0 || hasError;
|
|
39
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "search", isExpanded: isExpanded, onToggle: onToggle, isError: hasError, colorVariant: "amber", canExpand: canExpand, children: [searchTerm && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), _jsxs("span", { className: "font-mono text-foreground/90 text-[11px]", children: ["\"", searchTerm.length > 30
|
|
56
40
|
? `${searchTerm.slice(0, 30)}…`
|
|
57
|
-
: searchTerm, "\""] })] })), _jsx(
|
|
41
|
+
: searchTerm, "\""] })] })), _jsx(ToolHeaderSeparator, {}), _jsxs(ToolHeaderDetail, { children: [itemCount, " ", itemLabel] }), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasError && matches.length > 0 && (_jsx("div", { className: "mt-2 ml-5 space-y-1 max-h-96 overflow-y-auto", children: matches.map((match, i) => {
|
|
58
42
|
const m = match;
|
|
59
43
|
return (_jsxs("div", { className: "text-xs font-mono bg-card/60 border border-border rounded px-2 py-1", children: [_jsxs("div", { className: "text-blue-600 dark:text-blue-400 truncate", children: [m.file, ":", m.line] }), _jsx("div", { className: "text-foreground/80 truncate", children: m.text })] }, `${m.file}-${m.line}-${i}`));
|
|
60
44
|
}) })), isExpanded && !hasError && files.length > 0 && matches.length === 0 && (_jsx("div", { className: "mt-2 ml-5 space-y-0.5 max-h-96 overflow-y-auto", children: files.map((file) => (_jsx("div", { className: "text-xs font-mono text-foreground/70 truncate", children: String(file) }, String(file)))) }))] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/SearchRenderer.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SearchRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/SearchRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TreeRenderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TreeRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TreeRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAU7C,wBAAgB,YAAY,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CAwDf"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { ChevronDown, ChevronRight } from 'lucide-react';
|
|
3
2
|
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
|
|
4
3
|
import { prism, vscDarkPlus, } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
5
|
-
import { formatDuration } from './utils';
|
|
4
|
+
import { formatDuration, isToolError, getErrorMessage } from './utils';
|
|
5
|
+
import { ToolHeader, ToolHeaderSeparator, ToolHeaderDetail, ToolHeaderMeta, } from './shared';
|
|
6
|
+
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
6
7
|
export function TreeRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, }) {
|
|
7
8
|
const result = contentJson.result || {};
|
|
9
|
+
const hasError = isToolError(result);
|
|
10
|
+
const errorMessage = getErrorMessage(result);
|
|
8
11
|
const tree = String(result.tree || '');
|
|
9
12
|
const lines = tree.split('\n').length;
|
|
10
13
|
const timeStr = formatDuration(toolDurationMs);
|
|
11
14
|
const syntaxTheme = document?.documentElement.classList.contains('dark')
|
|
12
15
|
? vscDarkPlus
|
|
13
16
|
: prism;
|
|
14
|
-
|
|
17
|
+
const canExpand = tree.length > 0 || hasError;
|
|
18
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "tree", isExpanded: isExpanded, onToggle: onToggle, isError: hasError, colorVariant: "cyan", canExpand: canExpand, children: [_jsx(ToolHeaderSeparator, {}), _jsxs(ToolHeaderDetail, { children: [lines, " ", lines === 1 ? 'line' : 'lines'] }), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage })), isExpanded && !hasError && tree && (_jsx("div", { className: "mt-2 ml-5 bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto max-w-full", children: _jsx("div", { className: "overflow-x-auto max-w-full", children: _jsx(SyntaxHighlighter, { language: "bash", style: syntaxTheme, customStyle: {
|
|
15
19
|
margin: 0,
|
|
16
20
|
padding: '0.75rem',
|
|
17
21
|
fontSize: '0.75rem',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TreeRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TreeRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TreeRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACN,KAAK,EACL,WAAW,GACX,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EACN,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,YAAY,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACO;IACf,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvE,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,KAAK,CAAC;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC;IAE9C,OAAO,CACN,eAAK,SAAS,EAAC,SAAS,aACvB,MAAC,UAAU,IACV,QAAQ,EAAC,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,EACjB,YAAY,EAAC,MAAM,EACnB,SAAS,EAAE,SAAS,aAEpB,KAAC,mBAAmB,KAAG,EACvB,MAAC,gBAAgB,eACf,KAAK,OAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IACrB,EACnB,KAAC,mBAAmB,KAAG,EACvB,KAAC,cAAc,cAAE,OAAO,GAAkB,IAC9B,EACZ,UAAU,IAAI,QAAQ,IAAI,YAAY,IAAI,CAC1C,KAAC,gBAAgB,IAAC,KAAK,EAAE,YAAY,GAAI,CACzC,EACA,UAAU,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,CACnC,cAAK,SAAS,EAAC,0GAA0G,YACxH,cAAK,SAAS,EAAC,4BAA4B,YAC1C,KAAC,iBAAiB,IACjB,QAAQ,EAAC,MAAM,EACf,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE;4BACZ,MAAM,EAAE,CAAC;4BACT,OAAO,EAAE,SAAS;4BAClB,QAAQ,EAAE,SAAS;4BACnB,UAAU,EAAE,KAAK;4BACjB,UAAU,EAAE,aAAa;4BACzB,QAAQ,EAAE,MAAM;yBAChB,EACD,SAAS,QACT,aAAa,kBAEZ,IAAI,GACc,GACf,GACD,CACN,IACI,CACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/renderers/shared/CopyButton.tsx"],"names":[],"mappings":"AAGA,UAAU,eAAe;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAc,EAAE,EAAE,eAAe,2CA0BnE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Copy, Check } from 'lucide-react';
|
|
4
|
+
export function CopyButton({ text, className = '' }) {
|
|
5
|
+
const [copied, setCopied] = useState(false);
|
|
6
|
+
const handleCopy = async (e) => {
|
|
7
|
+
e.stopPropagation();
|
|
8
|
+
try {
|
|
9
|
+
await navigator.clipboard.writeText(text);
|
|
10
|
+
setCopied(true);
|
|
11
|
+
setTimeout(() => setCopied(false), 2000);
|
|
12
|
+
}
|
|
13
|
+
catch { }
|
|
14
|
+
};
|
|
15
|
+
return (_jsx("button", { type: "button", onClick: handleCopy, className: `p-1 rounded hover:bg-muted/50 text-muted-foreground hover:text-foreground transition-colors ${className}`, title: "Copy", children: copied ? (_jsx(Check, { className: "h-3 w-3 text-emerald-500" })) : (_jsx(Copy, { className: "h-3 w-3" })) }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=CopyButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyButton.js","sourceRoot":"","sources":["../../../../../src/components/messages/renderers/shared/CopyButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAO3C,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAmB;IACnE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAG,KAAK,EAAE,CAAmB,EAAE,EAAE;QAChD,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC;YACJ,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACN,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,+FAA+F,SAAS,EAAE,EACrH,KAAK,EAAC,MAAM,YAEX,MAAM,CAAC,CAAC,CAAC,CACT,KAAC,KAAK,IAAC,SAAS,EAAC,0BAA0B,GAAG,CAC9C,CAAC,CAAC,CAAC,CACH,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,CAC5B,GACO,CACT,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
interface ToolContentBoxProps {
|
|
3
|
+
title: string;
|
|
4
|
+
icon?: ReactNode;
|
|
5
|
+
subtitle?: string;
|
|
6
|
+
copyText?: string;
|
|
7
|
+
variant?: 'default' | 'error';
|
|
8
|
+
maxHeight?: string;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export declare function ToolContentBox({ title, icon, subtitle, copyText, variant, maxHeight, children, }: ToolContentBoxProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ToolContentBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolContentBox.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/renderers/shared/ToolContentBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,mBAAmB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC9B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAmB,EACnB,SAAsB,EACtB,QAAQ,GACR,EAAE,mBAAmB,2CA4BrB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CopyButton } from './CopyButton';
|
|
3
|
+
export function ToolContentBox({ title, icon, subtitle, copyText, variant = 'default', maxHeight = 'max-h-80', children, }) {
|
|
4
|
+
const isError = variant === 'error';
|
|
5
|
+
return (_jsxs("div", { className: `bg-card/60 border rounded-lg overflow-hidden flex flex-col ${maxHeight} ${isError ? 'border-red-500/50' : 'border-border'}`, children: [_jsxs("div", { className: `flex items-center justify-between gap-2 text-xs px-3 py-1.5 border-b border-border sticky top-0 ${isError
|
|
6
|
+
? 'text-red-600 dark:text-red-400 bg-red-500/10'
|
|
7
|
+
: 'text-muted-foreground bg-muted/30'}`, children: [_jsxs("div", { className: "flex items-center gap-2", children: [icon, _jsx("span", { children: title }), subtitle && (_jsx("span", { className: "text-muted-foreground/60", children: subtitle }))] }), copyText && _jsx(CopyButton, { text: copyText })] }), _jsx("div", { className: "overflow-auto flex-1", children: children })] }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ToolContentBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolContentBox.js","sourceRoot":"","sources":["../../../../../src/components/messages/renderers/shared/ToolContentBox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY1C,MAAM,UAAU,cAAc,CAAC,EAC9B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,SAAS,GAAG,UAAU,EACtB,QAAQ,GACa;IACrB,MAAM,OAAO,GAAG,OAAO,KAAK,OAAO,CAAC;IAEpC,OAAO,CACN,eACC,SAAS,EAAE,8DAA8D,SAAS,IACjF,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eACjC,EAAE,aAEF,eACC,SAAS,EAAE,mGACV,OAAO;oBACN,CAAC,CAAC,8CAA8C;oBAChD,CAAC,CAAC,mCACJ,EAAE,aAEF,eAAK,SAAS,EAAC,yBAAyB,aACtC,IAAI,EACL,yBAAO,KAAK,GAAQ,EACnB,QAAQ,IAAI,CACZ,eAAM,SAAS,EAAC,0BAA0B,YAAE,QAAQ,GAAQ,CAC5D,IACI,EACL,QAAQ,IAAI,KAAC,UAAU,IAAC,IAAI,EAAE,QAAQ,GAAI,IACtC,EACN,cAAK,SAAS,EAAC,sBAAsB,YAAE,QAAQ,GAAO,IACjD,CACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
type ColorVariant = 'default' | 'blue' | 'emerald' | 'purple' | 'cyan' | 'amber' | 'red';
|
|
3
|
+
interface ToolHeaderProps {
|
|
4
|
+
toolName: string;
|
|
5
|
+
isExpanded: boolean;
|
|
6
|
+
onToggle: () => void;
|
|
7
|
+
isError?: boolean;
|
|
8
|
+
colorVariant?: ColorVariant;
|
|
9
|
+
canExpand?: boolean;
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare function ToolHeader({ toolName, isExpanded, onToggle, isError, colorVariant, canExpand, children, }: ToolHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function ToolHeaderSeparator(): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function ToolHeaderDetail({ children, className, }: {
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
className?: string;
|
|
17
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function ToolHeaderMeta({ children, className, }: {
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
className?: string;
|
|
21
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function ToolHeaderSuccess({ children }: {
|
|
23
|
+
children: ReactNode;
|
|
24
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare function ToolHeaderError({ children }: {
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=ToolHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolHeader.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/renderers/shared/ToolHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,KAAK,YAAY,GACd,SAAS,GACT,MAAM,GACN,SAAS,GACT,QAAQ,GACR,MAAM,GACN,OAAO,GACP,KAAK,CAAC;AAkDT,UAAU,eAAe;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EAC1B,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAe,EACf,YAAwB,EACxB,SAAgB,EAChB,QAAQ,GACR,EAAE,eAAe,2CA+BjB;AAED,wBAAgB,mBAAmB,4CAElC;AAED,wBAAgB,gBAAgB,CAAC,EAChC,QAAQ,EACR,SAAc,GACd,EAAE;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,2CAEA;AAED,wBAAgB,cAAc,CAAC,EAC9B,QAAQ,EACR,SAAc,GACd,EAAE;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,2CAQA;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAMtE;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAMpE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronDown, ChevronRight, AlertCircle } from 'lucide-react';
|
|
3
|
+
const colorClasses = {
|
|
4
|
+
default: {
|
|
5
|
+
normal: 'text-muted-foreground',
|
|
6
|
+
hover: 'hover:text-foreground',
|
|
7
|
+
error: 'text-red-700 dark:text-red-300',
|
|
8
|
+
errorHover: 'hover:text-red-600 dark:hover:text-red-200',
|
|
9
|
+
},
|
|
10
|
+
blue: {
|
|
11
|
+
normal: 'text-blue-700 dark:text-blue-300',
|
|
12
|
+
hover: 'hover:text-blue-600 dark:hover:text-blue-200',
|
|
13
|
+
error: 'text-red-700 dark:text-red-300',
|
|
14
|
+
errorHover: 'hover:text-red-600 dark:hover:text-red-200',
|
|
15
|
+
},
|
|
16
|
+
emerald: {
|
|
17
|
+
normal: 'text-emerald-700 dark:text-emerald-300',
|
|
18
|
+
hover: 'hover:text-emerald-600 dark:hover:text-emerald-200',
|
|
19
|
+
error: 'text-red-700 dark:text-red-300',
|
|
20
|
+
errorHover: 'hover:text-red-600 dark:hover:text-red-200',
|
|
21
|
+
},
|
|
22
|
+
purple: {
|
|
23
|
+
normal: 'text-purple-700 dark:text-purple-300',
|
|
24
|
+
hover: 'hover:text-purple-600 dark:hover:text-purple-200',
|
|
25
|
+
error: 'text-red-700 dark:text-red-300',
|
|
26
|
+
errorHover: 'hover:text-red-600 dark:hover:text-red-200',
|
|
27
|
+
},
|
|
28
|
+
cyan: {
|
|
29
|
+
normal: 'text-cyan-700 dark:text-cyan-300',
|
|
30
|
+
hover: 'hover:text-cyan-600 dark:hover:text-cyan-200',
|
|
31
|
+
error: 'text-red-700 dark:text-red-300',
|
|
32
|
+
errorHover: 'hover:text-red-600 dark:hover:text-red-200',
|
|
33
|
+
},
|
|
34
|
+
amber: {
|
|
35
|
+
normal: 'text-amber-700 dark:text-amber-300',
|
|
36
|
+
hover: 'hover:text-amber-600 dark:hover:text-amber-200',
|
|
37
|
+
error: 'text-red-700 dark:text-red-300',
|
|
38
|
+
errorHover: 'hover:text-red-600 dark:hover:text-red-200',
|
|
39
|
+
},
|
|
40
|
+
red: {
|
|
41
|
+
normal: 'text-red-700 dark:text-red-300',
|
|
42
|
+
hover: 'hover:text-red-600 dark:hover:text-red-200',
|
|
43
|
+
error: 'text-red-700 dark:text-red-300',
|
|
44
|
+
errorHover: 'hover:text-red-600 dark:hover:text-red-200',
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
export function ToolHeader({ toolName, isExpanded, onToggle, isError = false, colorVariant = 'default', canExpand = true, children, }) {
|
|
48
|
+
const colors = colorClasses[colorVariant];
|
|
49
|
+
const colorClass = isError
|
|
50
|
+
? `${colors.error} ${colors.errorHover}`
|
|
51
|
+
: `${colors.normal} ${colors.hover}`;
|
|
52
|
+
return (_jsxs("button", { type: "button", onClick: () => canExpand && onToggle(), className: `flex items-center gap-2 transition-colors w-full min-w-0 ${colorClass}`, children: [canExpand ? (isExpanded ? (_jsx(ChevronDown, { className: "h-3 w-3 flex-shrink-0" })) : (_jsx(ChevronRight, { className: "h-3 w-3 flex-shrink-0" }))) : (_jsx("div", { className: "w-3 flex-shrink-0" })), isError && (_jsx(AlertCircle, { className: "h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400" })), _jsxs("span", { className: "font-medium flex-shrink-0", children: [toolName, isError ? ' error' : ''] }), children] }));
|
|
53
|
+
}
|
|
54
|
+
export function ToolHeaderSeparator() {
|
|
55
|
+
return _jsx("span", { className: "text-muted-foreground/70 flex-shrink-0", children: "\u00B7" });
|
|
56
|
+
}
|
|
57
|
+
export function ToolHeaderDetail({ children, className = '', }) {
|
|
58
|
+
return _jsx("span", { className: `text-foreground/70 ${className}`, children: children });
|
|
59
|
+
}
|
|
60
|
+
export function ToolHeaderMeta({ children, className = '', }) {
|
|
61
|
+
return (_jsx("span", { className: `text-muted-foreground/80 flex-shrink-0 whitespace-nowrap ${className}`, children: children }));
|
|
62
|
+
}
|
|
63
|
+
export function ToolHeaderSuccess({ children }) {
|
|
64
|
+
return (_jsx("span", { className: "text-emerald-600 dark:text-emerald-400 flex-shrink-0", children: children }));
|
|
65
|
+
}
|
|
66
|
+
export function ToolHeaderError({ children }) {
|
|
67
|
+
return (_jsx("span", { className: "text-red-600 dark:text-red-400 flex-shrink-0", children: children }));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=ToolHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolHeader.js","sourceRoot":"","sources":["../../../../../src/components/messages/renderers/shared/ToolHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/renderers/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACN,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,eAAe,GACf,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/messages/renderers/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACN,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,eAAe,GACf,MAAM,cAAc,CAAC"}
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
export type ToolErrorType = 'validation' | 'not_found' | 'permission' | 'execution' | 'timeout' | 'unsupported';
|
|
2
|
+
export interface ToolErrorResponse {
|
|
3
|
+
ok: false;
|
|
4
|
+
error: string;
|
|
5
|
+
errorType?: ToolErrorType;
|
|
6
|
+
details?: {
|
|
7
|
+
parameter?: string;
|
|
8
|
+
value?: unknown;
|
|
9
|
+
constraint?: string;
|
|
10
|
+
suggestion?: string;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
};
|
|
13
|
+
stack?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ToolSuccessResponse {
|
|
16
|
+
ok: true;
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
export type ToolResponse = ToolSuccessResponse | ToolErrorResponse;
|
|
1
20
|
export interface ToolCallArgs {
|
|
2
21
|
text?: string;
|
|
3
22
|
message?: string;
|
|
@@ -14,9 +33,10 @@ export interface ToolCallArgs {
|
|
|
14
33
|
}
|
|
15
34
|
export interface ToolResultData {
|
|
16
35
|
done?: boolean;
|
|
36
|
+
ok?: boolean;
|
|
37
|
+
error?: string;
|
|
17
38
|
text?: string;
|
|
18
39
|
result?: string | Record<string, unknown>;
|
|
19
|
-
ok?: boolean;
|
|
20
40
|
message?: string;
|
|
21
41
|
pct?: number;
|
|
22
42
|
stage?: string;
|
|
@@ -41,6 +61,11 @@ export interface ToolResultData {
|
|
|
41
61
|
files?: unknown[];
|
|
42
62
|
cwd?: string;
|
|
43
63
|
output?: string;
|
|
64
|
+
errorType?: ToolErrorType;
|
|
65
|
+
details?: {
|
|
66
|
+
suggestion?: string;
|
|
67
|
+
[key: string]: unknown;
|
|
68
|
+
};
|
|
44
69
|
diff?: string;
|
|
45
70
|
summary?: string;
|
|
46
71
|
changes?: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,19 @@
|
|
|
8
8
|
* formatDuration(5678) // "5.7s"
|
|
9
9
|
*/
|
|
10
10
|
export declare function formatDuration(ms: number | undefined): string;
|
|
11
|
+
/**
|
|
12
|
+
* Check if a tool result is an error response.
|
|
13
|
+
* Handles both the new ok: false pattern and legacy error patterns.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isToolError(result: unknown): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Extract the error message from a tool result.
|
|
18
|
+
* Checks multiple common fields: error, stderr, message, detail, details, reason.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getErrorMessage(result: unknown): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* Extract error details from a tool result.
|
|
23
|
+
* Returns the details object if present and valid.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getErrorDetails(result: unknown): Record<string, unknown> | null;
|
|
11
26
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM7D"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM7D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAIpD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAa9D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,OAAO,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAOhC"}
|
|
@@ -15,4 +15,46 @@ export function formatDuration(ms) {
|
|
|
15
15
|
}
|
|
16
16
|
return `${ms}ms`;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Check if a tool result is an error response.
|
|
20
|
+
* Handles both the new ok: false pattern and legacy error patterns.
|
|
21
|
+
*/
|
|
22
|
+
export function isToolError(result) {
|
|
23
|
+
if (!result || typeof result !== 'object')
|
|
24
|
+
return false;
|
|
25
|
+
const obj = result;
|
|
26
|
+
return obj.ok === false || 'error' in obj || obj.success === false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Extract the error message from a tool result.
|
|
30
|
+
* Checks multiple common fields: error, stderr, message, detail, details, reason.
|
|
31
|
+
*/
|
|
32
|
+
export function getErrorMessage(result) {
|
|
33
|
+
if (!result || typeof result !== 'object')
|
|
34
|
+
return null;
|
|
35
|
+
const obj = result;
|
|
36
|
+
const keys = ['error', 'stderr', 'message', 'detail', 'details', 'reason'];
|
|
37
|
+
for (const key of keys) {
|
|
38
|
+
const value = obj[key];
|
|
39
|
+
if (typeof value === 'string') {
|
|
40
|
+
const trimmed = value.trim();
|
|
41
|
+
if (trimmed.length)
|
|
42
|
+
return trimmed;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Extract error details from a tool result.
|
|
49
|
+
* Returns the details object if present and valid.
|
|
50
|
+
*/
|
|
51
|
+
export function getErrorDetails(result) {
|
|
52
|
+
if (!result || typeof result !== 'object')
|
|
53
|
+
return null;
|
|
54
|
+
const obj = result;
|
|
55
|
+
if (obj.details && typeof obj.details === 'object') {
|
|
56
|
+
return obj.details;
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
18
60
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,EAAsB;IACpD,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACnB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,EAAE,IAAI,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,EAAsB;IACpD,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACnB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,EAAE,IAAI,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAe;IAC1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,OAAO,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAe;IAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEvD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,OAAO,CAAC;QACpC,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC9B,MAAe;IAEf,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,GAAG,CAAC,OAAkC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agi-cli/web-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.111",
|
|
4
4
|
"description": "Reusable React components, hooks, and utilities for building AGI CLI web interfaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"directory": "packages/web-sdk"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@agi-cli/api": "0.1.
|
|
61
|
+
"@agi-cli/api": "0.1.111",
|
|
62
62
|
"@xterm/addon-fit": "^0.10.0",
|
|
63
63
|
"@xterm/addon-unicode11": "^0.8.0",
|
|
64
64
|
"@xterm/xterm": "^5.5.0",
|