@agi-cli/web-sdk 0.1.139 → 0.1.141
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/chat/ChatInputContainer.js +2 -2
- package/dist/components/chat/ChatInputContainer.js.map +1 -1
- package/dist/components/chat/UnifiedModelSelector.js +5 -4
- package/dist/components/chat/UnifiedModelSelector.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/messages/AssistantMessageGroup.d.ts.map +1 -1
- package/dist/components/messages/AssistantMessageGroup.js +63 -5
- package/dist/components/messages/AssistantMessageGroup.js.map +1 -1
- package/dist/components/messages/MessagePartItem.d.ts +4 -0
- package/dist/components/messages/MessagePartItem.d.ts.map +1 -1
- package/dist/components/messages/MessagePartItem.js +32 -5
- package/dist/components/messages/MessagePartItem.js.map +1 -1
- package/dist/components/messages/MessageThreadContainer.d.ts.map +1 -1
- package/dist/components/messages/MessageThreadContainer.js +3 -0
- package/dist/components/messages/MessageThreadContainer.js.map +1 -1
- package/dist/components/messages/ToolApprovalCard.d.ts +11 -0
- package/dist/components/messages/ToolApprovalCard.d.ts.map +1 -0
- package/dist/components/messages/ToolApprovalCard.js +139 -0
- package/dist/components/messages/ToolApprovalCard.js.map +1 -0
- package/dist/components/messages/renderers/DiffView.d.ts.map +1 -1
- package/dist/components/messages/renderers/DiffView.js +20 -0
- package/dist/components/messages/renderers/DiffView.js.map +1 -1
- package/dist/components/sessions/LeanHeader.d.ts.map +1 -1
- package/dist/components/sessions/LeanHeader.js +5 -14
- package/dist/components/sessions/LeanHeader.js.map +1 -1
- package/dist/components/sessions/SessionHeader.d.ts.map +1 -1
- package/dist/components/sessions/SessionHeader.js +6 -14
- package/dist/components/sessions/SessionHeader.js.map +1 -1
- package/dist/components/settings/SettingsSidebar.d.ts.map +1 -1
- package/dist/components/settings/SettingsSidebar.js +7 -1
- package/dist/components/settings/SettingsSidebar.js.map +1 -1
- package/dist/components/ui/ToolApprovalDialog.d.ts +7 -0
- package/dist/components/ui/ToolApprovalDialog.d.ts.map +1 -0
- package/dist/components/ui/ToolApprovalDialog.js +57 -0
- package/dist/components/ui/ToolApprovalDialog.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useConfig.d.ts +3 -0
- package/dist/hooks/useConfig.d.ts.map +1 -1
- package/dist/hooks/useConfig.js.map +1 -1
- package/dist/hooks/useSessionStream.d.ts.map +1 -1
- package/dist/hooks/useSessionStream.js +50 -2
- package/dist/hooks/useSessionStream.js.map +1 -1
- package/dist/hooks/useToolApprovalShortcuts.d.ts +11 -0
- package/dist/hooks/useToolApprovalShortcuts.d.ts.map +1 -0
- package/dist/hooks/useToolApprovalShortcuts.js +88 -0
- package/dist/hooks/useToolApprovalShortcuts.js.map +1 -0
- package/dist/lib/api-client.d.ts +18 -0
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +21 -0
- package/dist/lib/api-client.js.map +1 -1
- package/dist/stores/index.d.ts +1 -0
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/index.js +1 -0
- package/dist/stores/index.js.map +1 -1
- package/dist/stores/toolApprovalStore.d.ts +18 -0
- package/dist/stores/toolApprovalStore.d.ts.map +1 -0
- package/dist/stores/toolApprovalStore.js +16 -0
- package/dist/stores/toolApprovalStore.js.map +1 -0
- package/dist/types/api.d.ts +2 -2
- package/dist/types/api.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useState } from 'react';
|
|
3
|
+
import { Shield, Check, X } from 'lucide-react';
|
|
4
|
+
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
|
|
5
|
+
import { prism, vscDarkPlus, } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
6
|
+
import { DiffView } from './renderers/DiffView';
|
|
7
|
+
function getLanguageFromPath(path) {
|
|
8
|
+
const ext = path.split('.').pop()?.toLowerCase();
|
|
9
|
+
const langMap = {
|
|
10
|
+
js: 'javascript',
|
|
11
|
+
jsx: 'jsx',
|
|
12
|
+
ts: 'typescript',
|
|
13
|
+
tsx: 'tsx',
|
|
14
|
+
py: 'python',
|
|
15
|
+
rb: 'ruby',
|
|
16
|
+
go: 'go',
|
|
17
|
+
rs: 'rust',
|
|
18
|
+
java: 'java',
|
|
19
|
+
c: 'c',
|
|
20
|
+
cpp: 'cpp',
|
|
21
|
+
h: 'c',
|
|
22
|
+
hpp: 'cpp',
|
|
23
|
+
cs: 'csharp',
|
|
24
|
+
php: 'php',
|
|
25
|
+
sh: 'bash',
|
|
26
|
+
bash: 'bash',
|
|
27
|
+
zsh: 'bash',
|
|
28
|
+
sql: 'sql',
|
|
29
|
+
json: 'json',
|
|
30
|
+
yaml: 'yaml',
|
|
31
|
+
yml: 'yaml',
|
|
32
|
+
xml: 'xml',
|
|
33
|
+
html: 'html',
|
|
34
|
+
css: 'css',
|
|
35
|
+
scss: 'scss',
|
|
36
|
+
md: 'markdown',
|
|
37
|
+
txt: 'text',
|
|
38
|
+
svelte: 'svelte',
|
|
39
|
+
};
|
|
40
|
+
return langMap[ext || ''] || 'javascript';
|
|
41
|
+
}
|
|
42
|
+
function normalizeToolTarget(toolName, args) {
|
|
43
|
+
if (!args)
|
|
44
|
+
return null;
|
|
45
|
+
const keyMap = {
|
|
46
|
+
read: ['path'],
|
|
47
|
+
write: ['path'],
|
|
48
|
+
edit: ['path'],
|
|
49
|
+
apply_patch: ['path'],
|
|
50
|
+
glob: ['pattern'],
|
|
51
|
+
grep: ['query', 'pattern'],
|
|
52
|
+
ripgrep: ['query', 'pattern'],
|
|
53
|
+
bash: ['cmd', 'command'],
|
|
54
|
+
terminal: ['command'],
|
|
55
|
+
git_commit: ['message'],
|
|
56
|
+
git_diff: ['file'],
|
|
57
|
+
tree: ['path'],
|
|
58
|
+
ls: ['path'],
|
|
59
|
+
web_search: ['query', 'url'],
|
|
60
|
+
skill: ['name'],
|
|
61
|
+
};
|
|
62
|
+
const keys = keyMap[toolName];
|
|
63
|
+
if (!keys) {
|
|
64
|
+
for (const [key, value] of Object.entries(args)) {
|
|
65
|
+
if (typeof value === 'string' && value.length > 0 && value.length < 200) {
|
|
66
|
+
return { key, value };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
for (const key of keys) {
|
|
72
|
+
const value = args[key];
|
|
73
|
+
if (typeof value === 'string' && value.length > 0) {
|
|
74
|
+
return { key, value };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
function getPrimaryCommand(args) {
|
|
80
|
+
if (!args)
|
|
81
|
+
return null;
|
|
82
|
+
const cmd = args.cmd ?? args.command;
|
|
83
|
+
if (typeof cmd === 'string' && cmd.length > 0) {
|
|
84
|
+
return cmd;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
export const ToolApprovalCard = memo(function ToolApprovalCard({ toolName, args, pendingApproval, onApprove, onReject, }) {
|
|
89
|
+
const [isProcessing, setIsProcessing] = useState(false);
|
|
90
|
+
const toolLabel = toolName.replace(/_/g, ' ');
|
|
91
|
+
const primary = normalizeToolTarget(toolName, args);
|
|
92
|
+
const command = toolName === 'bash' ? getPrimaryCommand(args) : null;
|
|
93
|
+
const approvalTarget = command || primary?.value;
|
|
94
|
+
const filePath = typeof args?.path === 'string' ? args.path : '';
|
|
95
|
+
const language = getLanguageFromPath(filePath);
|
|
96
|
+
const syntaxTheme = document?.documentElement.classList.contains('dark')
|
|
97
|
+
? vscDarkPlus
|
|
98
|
+
: prism;
|
|
99
|
+
const handleApprove = () => {
|
|
100
|
+
setIsProcessing(true);
|
|
101
|
+
onApprove(pendingApproval.callId);
|
|
102
|
+
};
|
|
103
|
+
const handleReject = () => {
|
|
104
|
+
setIsProcessing(true);
|
|
105
|
+
onReject(pendingApproval.callId);
|
|
106
|
+
};
|
|
107
|
+
const renderContent = () => {
|
|
108
|
+
if (toolName === 'apply_patch' && args?.patch) {
|
|
109
|
+
return (_jsx("div", { className: "ml-6 max-w-full overflow-hidden", children: _jsx(DiffView, { patch: String(args.patch) }) }));
|
|
110
|
+
}
|
|
111
|
+
if (toolName === 'write' && args?.content) {
|
|
112
|
+
const content = String(args.content);
|
|
113
|
+
return (_jsx("div", { className: "ml-6 max-w-full overflow-hidden", children: _jsx("div", { className: "bg-emerald-500/10 border border-emerald-500/30 rounded-lg overflow-hidden max-h-96", children: _jsx("div", { className: "overflow-x-auto overflow-y-auto max-h-96 text-xs", children: _jsx(SyntaxHighlighter, { language: language, style: syntaxTheme, customStyle: {
|
|
114
|
+
margin: 0,
|
|
115
|
+
padding: '0.75rem',
|
|
116
|
+
background: 'transparent',
|
|
117
|
+
fontSize: 'inherit',
|
|
118
|
+
}, showLineNumbers: true, lineNumberStyle: {
|
|
119
|
+
minWidth: '2.5em',
|
|
120
|
+
paddingRight: '1em',
|
|
121
|
+
color: 'var(--muted-foreground)',
|
|
122
|
+
opacity: 0.4,
|
|
123
|
+
userSelect: 'none',
|
|
124
|
+
}, children: content }) }) }) }));
|
|
125
|
+
}
|
|
126
|
+
if (toolName === 'bash' && args?.cmd) {
|
|
127
|
+
const cmd = String(args.cmd);
|
|
128
|
+
return (_jsx("div", { className: "ml-6 max-w-full overflow-hidden", children: _jsx("div", { className: "bg-card/60 border border-border rounded-lg overflow-hidden", children: _jsx("div", { className: "overflow-x-auto text-xs", children: _jsx(SyntaxHighlighter, { language: "bash", style: syntaxTheme, customStyle: {
|
|
129
|
+
margin: 0,
|
|
130
|
+
padding: '0.75rem',
|
|
131
|
+
background: 'transparent',
|
|
132
|
+
fontSize: 'inherit',
|
|
133
|
+
}, children: cmd }) }) }) }));
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
};
|
|
137
|
+
return (_jsxs("div", { className: "flex flex-col gap-2 py-1", children: [_jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [_jsx(Shield, { className: "h-4 w-4 text-amber-500 flex-shrink-0" }), _jsx("span", { className: "font-medium text-foreground text-sm", children: toolLabel }), approvalTarget && toolName !== 'bash' && (_jsx("code", { className: "text-xs font-mono text-foreground/80 bg-muted/50 px-1.5 py-0.5 rounded truncate max-w-xs", children: approvalTarget })), _jsx("span", { className: "text-amber-600 dark:text-amber-400 font-medium text-sm", children: "requires approval" })] }), renderContent(), _jsxs("div", { className: "flex items-center gap-2 ml-6", children: [_jsxs("button", { type: "button", onClick: handleReject, disabled: isProcessing, title: "Reject (N or Esc)", className: "flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-border bg-background hover:bg-muted transition-colors disabled:opacity-50", children: [_jsx(X, { className: "w-3 h-3" }), "Reject", _jsx("kbd", { className: "ml-1 text-[10px] text-muted-foreground opacity-70", children: "N" })] }), _jsxs("button", { type: "button", onClick: handleApprove, disabled: isProcessing, title: "Approve (Y)", className: "flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-amber-600 text-white hover:bg-amber-700 transition-colors disabled:opacity-50", children: [_jsx(Check, { className: "w-3 h-3" }), isProcessing ? 'Approving...' : 'Approve', !isProcessing && (_jsx("kbd", { className: "ml-1 text-[10px] opacity-70", children: "Y" }))] })] })] }));
|
|
138
|
+
});
|
|
139
|
+
//# sourceMappingURL=ToolApprovalCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolApprovalCard.js","sourceRoot":"","sources":["../../../src/components/messages/ToolApprovalCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiffView.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/DiffView.tsx"],"names":[],"mappings":"AAMA,UAAU,aAAa;IACtB,KAAK,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"DiffView.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/DiffView.tsx"],"names":[],"mappings":"AAMA,UAAU,aAAa;IACtB,KAAK,EAAE,MAAM,CAAC;CACd;AAgKD,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,aAAa,2CAuHhD"}
|
|
@@ -45,6 +45,16 @@ function parseDiff(patch) {
|
|
|
45
45
|
let filePath = '';
|
|
46
46
|
for (const line of lines) {
|
|
47
47
|
// Extract file path from diff headers
|
|
48
|
+
// Also enter hunk mode for enveloped format
|
|
49
|
+
if (line.startsWith('*** Update File:') ||
|
|
50
|
+
line.startsWith('*** Add File:')) {
|
|
51
|
+
const match = line.match(/\*\*\* (?:Update|Add) File: (.+)/);
|
|
52
|
+
if (match)
|
|
53
|
+
filePath = match[1];
|
|
54
|
+
inHunk = true;
|
|
55
|
+
newLineNum = 1;
|
|
56
|
+
oldLineNum = 1;
|
|
57
|
+
}
|
|
48
58
|
if (line.startsWith('+++') || line.startsWith('*** Update File:')) {
|
|
49
59
|
const match = line.match(/\+\+\+ b\/(.+)/) || line.match(/\*\*\* Update File: (.+)/);
|
|
50
60
|
if (match)
|
|
@@ -64,6 +74,16 @@ function parseDiff(patch) {
|
|
|
64
74
|
});
|
|
65
75
|
continue;
|
|
66
76
|
}
|
|
77
|
+
// Handle enveloped format @@ comment lines (not standard hunk headers)
|
|
78
|
+
if (line.startsWith('@@') && !line.match(/^@@ -\d+/)) {
|
|
79
|
+
inHunk = true;
|
|
80
|
+
result.push({
|
|
81
|
+
content: line,
|
|
82
|
+
codeContent: line,
|
|
83
|
+
type: 'header',
|
|
84
|
+
});
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
67
87
|
// Check if it's a diff metadata line
|
|
68
88
|
if (line.startsWith('***') ||
|
|
69
89
|
line.startsWith('diff ') ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiffView.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/DiffView.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DiffView.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/DiffView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeanHeader.d.ts","sourceRoot":"","sources":["../../../src/components/sessions/LeanHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAe/C,UAAU,eAAe;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,UAAU,CAAC,EAC1B,OAAO,EACP,SAAS,EACT,YAAY,EACZ,mBAAmB,GACnB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"LeanHeader.d.ts","sourceRoot":"","sources":["../../../src/components/sessions/LeanHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAe/C,UAAU,eAAe;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,UAAU,CAAC,EAC1B,OAAO,EACP,SAAS,EACT,YAAY,EACZ,mBAAmB,GACnB,EAAE,eAAe,2CAwIjB"}
|
|
@@ -1,25 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { estimateModelCostUsd } from '@agi-cli/sdk/browser';
|
|
4
|
-
import {
|
|
4
|
+
import { DollarSign, MessageSquare, GitBranch, ArrowUpRight, Share2, ExternalLink, RefreshCw, } from 'lucide-react';
|
|
5
5
|
import { StopButton } from '../chat/StopButton';
|
|
6
6
|
import { useParentSession } from '../../hooks/useBranch';
|
|
7
7
|
import { useShareStatus } from '../../hooks/useShareStatus';
|
|
8
|
+
import { ProviderLogo } from '../common/ProviderLogo';
|
|
8
9
|
export function LeanHeader({ session, isVisible, isGenerating, onNavigateToSession, }) {
|
|
9
10
|
const { data: parentData } = useParentSession(session.sessionType === 'branch' ? session.id : undefined);
|
|
10
11
|
const { data: shareStatus } = useShareStatus(session.id);
|
|
11
|
-
const totalTokens = useMemo(() => {
|
|
12
|
-
const input = session.totalInputTokens || 0;
|
|
13
|
-
const output = session.totalOutputTokens || 0;
|
|
14
|
-
const cached = session.totalCachedTokens || 0;
|
|
15
|
-
const cacheCreation = session.totalCacheCreationTokens || 0;
|
|
16
|
-
return input + output + cached + cacheCreation;
|
|
17
|
-
}, [
|
|
18
|
-
session.totalInputTokens,
|
|
19
|
-
session.totalOutputTokens,
|
|
20
|
-
session.totalCachedTokens,
|
|
21
|
-
session.totalCacheCreationTokens,
|
|
22
|
-
]);
|
|
23
12
|
const estimatedCost = useMemo(() => {
|
|
24
13
|
const inputTokens = session.totalInputTokens || 0;
|
|
25
14
|
const outputTokens = session.totalOutputTokens || 0;
|
|
@@ -46,11 +35,13 @@ export function LeanHeader({ session, isVisible, isGenerating, onNavigateToSessi
|
|
|
46
35
|
return `${(num / 1000).toFixed(1)}K`;
|
|
47
36
|
return num.toString();
|
|
48
37
|
};
|
|
38
|
+
const inputTokens = session.totalInputTokens || 0;
|
|
39
|
+
const outputTokens = session.totalOutputTokens || 0;
|
|
49
40
|
const isBranch = session.sessionType === 'branch';
|
|
50
41
|
const parentSession = parentData?.parent;
|
|
51
42
|
return (_jsx("div", { className: `absolute top-0 left-0 right-0 h-14 border-b border-border bg-background/95 backdrop-blur-sm z-10 transition-transform duration-200 ${isVisible ? 'translate-y-0' : '-translate-y-full'}`, children: _jsxs("div", { className: "h-full px-6 flex items-center justify-between gap-4 text-sm", children: [_jsxs("div", { className: "flex-1 min-w-0 flex items-center gap-2 text-muted-foreground", children: [isBranch ? (_jsx(GitBranch, { className: "w-4 h-4 flex-shrink-0 text-violet-500" })) : (_jsx(MessageSquare, { className: "w-4 h-4 flex-shrink-0" })), _jsx("span", { className: "text-foreground font-medium truncate", children: session.title || 'Untitled Session' }), shareStatus?.shared && (_jsxs("a", { href: shareStatus.url, target: "_blank", rel: "noopener noreferrer", className: "flex items-center gap-1 px-1.5 py-0.5 rounded bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 transition-colors text-xs font-medium flex-shrink-0", children: [_jsx(Share2, { className: "h-3 w-3" }), shareStatus.pendingMessages &&
|
|
52
43
|
shareStatus.pendingMessages > 0 ? (_jsxs("span", { className: "flex items-center gap-0.5 text-amber-600 dark:text-amber-400", children: [_jsx(RefreshCw, { className: "h-2.5 w-2.5" }), shareStatus.pendingMessages] })) : (_jsx(ExternalLink, { className: "h-2.5 w-2.5 opacity-60" }))] })), isBranch && parentSession && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground hidden sm:inline", children: "from" }), _jsxs("button", { type: "button", onClick: () => onNavigateToSession?.(parentSession.id), className: "text-primary hover:underline flex items-center gap-0.5 truncate max-w-32", title: parentSession.title ||
|
|
53
44
|
`Session ${parentSession.id.slice(0, 8)}`, children: [_jsx("span", { className: "truncate", children: parentSession.title ||
|
|
54
|
-
`Session ${parentSession.id.slice(0, 8)}` }), _jsx(ArrowUpRight, { className: "h-3 w-3 flex-shrink-0" })] })] }))] }), _jsxs("div", { className: "flex-shrink-0 flex items-center gap-5 text-muted-foreground", children: [isGenerating && _jsx(StopButton, { sessionId: session.id }), _jsxs("div", { className: "flex items-center gap-
|
|
45
|
+
`Session ${parentSession.id.slice(0, 8)}` }), _jsx(ArrowUpRight, { className: "h-3 w-3 flex-shrink-0" })] })] }))] }), _jsxs("div", { className: "flex-shrink-0 flex items-center gap-5 text-muted-foreground", children: [isGenerating && _jsx(StopButton, { sessionId: session.id }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { className: "text-xs opacity-70", children: "in" }), _jsx("span", { className: "text-foreground font-medium", children: formatCompactNumber(inputTokens) })] }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { className: "text-xs opacity-70", children: "out" }), _jsx("span", { className: "text-foreground font-medium", children: formatCompactNumber(outputTokens) })] })] }), estimatedCost > 0 && (_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(DollarSign, { className: "w-4 h-4" }), _jsx("span", { className: "text-foreground font-medium", children: estimatedCost.toFixed(4) })] })), _jsxs("div", { className: "hidden sm:flex items-center gap-2", children: [_jsx(ProviderLogo, { provider: session.provider, size: 16 }), _jsx("span", { className: "font-medium text-foreground truncate max-w-40", children: session.model })] })] })] }) }));
|
|
55
46
|
}
|
|
56
47
|
//# sourceMappingURL=LeanHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeanHeader.js","sourceRoot":"","sources":["../../../src/components/sessions/LeanHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAmB,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACN,
|
|
1
|
+
{"version":3,"file":"LeanHeader.js","sourceRoot":"","sources":["../../../src/components/sessions/LeanHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionHeader.d.ts","sourceRoot":"","sources":["../../../src/components/sessions/SessionHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAc/C,UAAU,kBAAkB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,aAAa,CAAC,EAC7B,OAAO,EACP,mBAAmB,GACnB,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"SessionHeader.d.ts","sourceRoot":"","sources":["../../../src/components/sessions/SessionHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAc/C,UAAU,kBAAkB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,aAAa,CAAC,EAC7B,OAAO,EACP,mBAAmB,GACnB,EAAE,kBAAkB,2CA0KpB"}
|
|
@@ -1,24 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { estimateModelCostUsd } from '@agi-cli/sdk/browser';
|
|
4
|
-
import { Clock, DollarSign,
|
|
4
|
+
import { Clock, DollarSign, GitBranch, ArrowUpRight, Share2, ExternalLink, RefreshCw, } from 'lucide-react';
|
|
5
5
|
import { useParentSession } from '../../hooks/useBranch';
|
|
6
6
|
import { useShareStatus } from '../../hooks/useShareStatus';
|
|
7
|
+
import { ProviderLogo } from '../common/ProviderLogo';
|
|
7
8
|
export function SessionHeader({ session, onNavigateToSession, }) {
|
|
8
9
|
const { data: parentData } = useParentSession(session.sessionType === 'branch' ? session.id : undefined);
|
|
9
10
|
const { data: shareStatus } = useShareStatus(session.id);
|
|
10
|
-
const totalTokens = useMemo(() => {
|
|
11
|
-
const input = session.totalInputTokens || 0;
|
|
12
|
-
const output = session.totalOutputTokens || 0;
|
|
13
|
-
const cached = session.totalCachedTokens || 0;
|
|
14
|
-
const cacheCreation = session.totalCacheCreationTokens || 0;
|
|
15
|
-
return input + output + cached + cacheCreation;
|
|
16
|
-
}, [
|
|
17
|
-
session.totalInputTokens,
|
|
18
|
-
session.totalOutputTokens,
|
|
19
|
-
session.totalCachedTokens,
|
|
20
|
-
session.totalCacheCreationTokens,
|
|
21
|
-
]);
|
|
22
11
|
const estimatedCost = useMemo(() => {
|
|
23
12
|
const inputTokens = session.totalInputTokens || 0;
|
|
24
13
|
const outputTokens = session.totalOutputTokens || 0;
|
|
@@ -58,10 +47,13 @@ export function SessionHeader({ session, onNavigateToSession, }) {
|
|
|
58
47
|
return `${(num / 1000).toFixed(1)}K`;
|
|
59
48
|
return num.toString();
|
|
60
49
|
};
|
|
50
|
+
const inputTokens = session.totalInputTokens || 0;
|
|
51
|
+
const outputTokens = session.totalOutputTokens || 0;
|
|
52
|
+
const cachedTokens = session.totalCachedTokens || 0;
|
|
61
53
|
const isBranch = session.sessionType === 'branch';
|
|
62
54
|
const parentSession = parentData?.parent;
|
|
63
55
|
return (_jsx("div", { className: "border-b border-border bg-background/95 backdrop-blur-sm", children: _jsxs("div", { className: "max-w-3xl mx-auto px-6 py-6", children: [isBranch && (_jsxs("div", { className: "flex items-center gap-2 mb-3 text-sm", children: [_jsx(GitBranch, { className: "h-4 w-4 text-violet-500" }), _jsx("span", { className: "text-violet-600 dark:text-violet-400 font-medium", children: "Branch" }), parentSession && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground", children: "from" }), _jsxs("button", { type: "button", onClick: () => onNavigateToSession?.(parentSession.id), className: "text-primary hover:underline flex items-center gap-1", children: [parentSession.title ||
|
|
64
56
|
`Session ${parentSession.id.slice(0, 8)}`, _jsx(ArrowUpRight, { className: "h-3 w-3" })] })] })), !parentSession && session.parentSessionId && (_jsx("span", { className: "text-muted-foreground italic text-xs", children: "(parent deleted)" }))] })), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("h1", { className: "text-2xl font-semibold text-foreground leading-tight truncate", children: session.title || 'Untitled Session' }), shareStatus?.shared && (_jsxs("a", { href: shareStatus.url, target: "_blank", rel: "noopener noreferrer", className: "flex items-center gap-1.5 px-2 py-1 rounded-md bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 transition-colors text-xs font-medium flex-shrink-0", children: [_jsx(Share2, { className: "h-3 w-3" }), _jsx("span", { children: "Shared" }), shareStatus.pendingMessages &&
|
|
65
|
-
shareStatus.pendingMessages > 0 ? (_jsxs("span", { className: "flex items-center gap-0.5 text-amber-600 dark:text-amber-400", children: [_jsx(RefreshCw, { className: "h-2.5 w-2.5" }), shareStatus.pendingMessages] })) : (_jsx(ExternalLink, { className: "h-2.5 w-2.5 opacity-60" }))] }))] }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-5 gap-y-2 mt-4 text-sm text-muted-foreground", children: [_jsxs("div", { className: "flex items-center gap-
|
|
57
|
+
shareStatus.pendingMessages > 0 ? (_jsxs("span", { className: "flex items-center gap-0.5 text-amber-600 dark:text-amber-400", children: [_jsx(RefreshCw, { className: "h-2.5 w-2.5" }), shareStatus.pendingMessages] })) : (_jsx(ExternalLink, { className: "h-2.5 w-2.5 opacity-60" }))] }))] }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-5 gap-y-2 mt-4 text-sm text-muted-foreground", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "flex items-center gap-1.5", title: `${formatNumber(inputTokens)} input tokens`, children: [_jsx("span", { className: "text-xs opacity-70", children: "in" }), _jsx("span", { className: "font-medium text-foreground", children: formatCompactNumber(inputTokens) })] }), _jsxs("div", { className: "flex items-center gap-1.5", title: `${formatNumber(outputTokens)} output tokens`, children: [_jsx("span", { className: "text-xs opacity-70", children: "out" }), _jsx("span", { className: "font-medium text-foreground", children: formatCompactNumber(outputTokens) })] }), cachedTokens > 0 && (_jsxs("div", { className: "flex items-center gap-1.5", title: `${formatNumber(cachedTokens)} cached tokens`, children: [_jsx("span", { className: "text-xs opacity-70", children: "cached" }), _jsx("span", { className: "font-medium text-foreground", children: formatCompactNumber(cachedTokens) })] }))] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Clock, { className: "w-4 h-4" }), _jsx("span", { className: "font-medium text-foreground", children: formatDuration(session.totalToolTimeMs) })] }), estimatedCost > 0 && (_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(DollarSign, { className: "w-4 h-4" }), _jsx("span", { className: "font-medium text-foreground", children: estimatedCost.toFixed(4) })] })), _jsxs("div", { className: "flex items-center gap-2 ml-auto", children: [_jsx(ProviderLogo, { provider: session.provider, size: 18 }), _jsx("span", { className: "font-medium text-foreground truncate max-w-48", children: session.model })] })] })] }) }));
|
|
66
58
|
}
|
|
67
59
|
//# sourceMappingURL=SessionHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionHeader.js","sourceRoot":"","sources":["../../../src/components/sessions/SessionHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAmB,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACN,KAAK,EACL,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"SessionHeader.js","sourceRoot":"","sources":["../../../src/components/sessions/SessionHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/settings/SettingsSidebar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SettingsSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/settings/SettingsSidebar.tsx"],"names":[],"mappings":"AA+JA,eAAO,MAAM,eAAe,8CAmN1B,CAAC"}
|
|
@@ -92,6 +92,12 @@ export const SettingsSidebar = memo(function SettingsSidebar() {
|
|
|
92
92
|
return '—';
|
|
93
93
|
return `${balance.toFixed(2)} USDC`;
|
|
94
94
|
};
|
|
95
|
-
return (_jsxs("div", { className: "w-80 border-l border-border bg-background flex flex-col h-full", children: [_jsxs("div", { className: "h-14 border-b border-border px-4 flex items-center justify-between shrink-0", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Settings, { className: "w-4 h-4" }), _jsx("span", { className: "font-medium", children: "Settings" })] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: collapseSidebar, children: _jsx(ChevronRight, { className: "w-4 h-4" }) })] }), _jsxs("div", { className: "flex-1 overflow-y-auto", children: [_jsxs(SettingsSection, { title: "Default Model", icon: _jsx(Cpu, { className: "w-4 h-4 text-muted-foreground" }), children: [_jsx(SelectRow, { label: "Provider", value: config?.defaults?.provider ?? '', options: providerOptions, onChange: handleProviderChange, disabled: updateDefaults.isPending }), _jsx(SelectRow, { label: "Model", value: config?.defaults?.model ?? '', options: modelOptions, onChange: handleModelChange, disabled: updateDefaults.isPending }), _jsx(SelectRow, { label: "Agent", value: config?.defaults?.agent ?? '', options: agentOptions, onChange: handleAgentChange, disabled: updateDefaults.isPending })] }), _jsxs(SettingsSection, { title: "Preferences", icon: _jsx(User, { className: "w-4 h-4 text-muted-foreground" }), children: [_jsx(ToggleRow, { label: "Vim Mode", checked: preferences.vimMode, onChange: (checked) => updatePreferences({ vimMode: checked }) }), _jsx(ToggleRow, { label: "Show Reasoning", checked: preferences.reasoningEnabled, onChange: (checked) => updatePreferences({ reasoningEnabled: checked }) })
|
|
95
|
+
return (_jsxs("div", { className: "w-80 border-l border-border bg-background flex flex-col h-full", children: [_jsxs("div", { className: "h-14 border-b border-border px-4 flex items-center justify-between shrink-0", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Settings, { className: "w-4 h-4" }), _jsx("span", { className: "font-medium", children: "Settings" })] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: collapseSidebar, children: _jsx(ChevronRight, { className: "w-4 h-4" }) })] }), _jsxs("div", { className: "flex-1 overflow-y-auto", children: [_jsxs(SettingsSection, { title: "Default Model", icon: _jsx(Cpu, { className: "w-4 h-4 text-muted-foreground" }), children: [_jsx(SelectRow, { label: "Provider", value: config?.defaults?.provider ?? '', options: providerOptions, onChange: handleProviderChange, disabled: updateDefaults.isPending }), _jsx(SelectRow, { label: "Model", value: config?.defaults?.model ?? '', options: modelOptions, onChange: handleModelChange, disabled: updateDefaults.isPending }), _jsx(SelectRow, { label: "Agent", value: config?.defaults?.agent ?? '', options: agentOptions, onChange: handleAgentChange, disabled: updateDefaults.isPending })] }), _jsxs(SettingsSection, { title: "Preferences", icon: _jsx(User, { className: "w-4 h-4 text-muted-foreground" }), children: [_jsx(ToggleRow, { label: "Vim Mode", checked: preferences.vimMode, onChange: (checked) => updatePreferences({ vimMode: checked }) }), _jsx(ToggleRow, { label: "Show Reasoning", checked: preferences.reasoningEnabled, onChange: (checked) => updatePreferences({ reasoningEnabled: checked }) }), _jsx(SelectRow, { label: "Tool Approval", value: config?.defaults?.toolApproval ?? 'auto', options: [
|
|
96
|
+
{ id: 'auto', label: 'Auto (no approval)' },
|
|
97
|
+
{ id: 'dangerous', label: 'Dangerous only' },
|
|
98
|
+
{ id: 'all', label: 'All tools' },
|
|
99
|
+
], onChange: (value) => updateDefaults.mutate({
|
|
100
|
+
toolApproval: value,
|
|
101
|
+
}), disabled: updateDefaults.isPending })] }), config?.providers?.includes('solforge') && (_jsxs(SettingsSection, { title: "Solforge Wallet", icon: _jsx(Wallet, { className: "w-4 h-4 text-muted-foreground" }), action: _jsx("button", { type: "button", onClick: refreshSolforgeBalance, disabled: solforgeLoading, className: "p-1 hover:bg-muted rounded transition-colors disabled:opacity-50", title: "Refresh balances", children: _jsx(RefreshCw, { className: `w-3.5 h-3.5 text-muted-foreground ${solforgeLoading ? 'animate-spin' : ''}` }) }), children: [solforgeWallet && (_jsx("div", { className: "flex justify-center pb-3", children: _jsx("div", { className: "p-2 bg-white rounded-lg", children: _jsx(QRCodeSVG, { value: solforgeWallet, size: 120, level: "M", includeMargin: false }) }) })), _jsx(SettingRow, { label: "Address", value: truncateWallet(solforgeWallet) }), _jsx(SettingRow, { label: "Balance", value: formatBalance(solforgeBalance) }), _jsx(SettingRow, { label: "USDC", value: formatUsdcBalance(solforgeUsdcBalance) })] })), _jsx(SettingsSection, { title: "Providers", icon: _jsx(Zap, { className: "w-4 h-4 text-muted-foreground" }), children: _jsx("div", { className: "flex flex-wrap gap-2", children: config?.providers?.map((provider) => (_jsx("span", { className: "px-2 py-1 text-xs bg-muted rounded-md font-mono", children: provider }, provider))) ?? _jsx("span", { className: "text-muted-foreground text-sm", children: "None" }) }) })] })] }));
|
|
96
102
|
});
|
|
97
103
|
//# sourceMappingURL=SettingsSidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsSidebar.js","sourceRoot":"","sources":["../../../src/components/settings/SettingsSidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EACN,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,GAAG,EACH,GAAG,EACH,IAAI,EACJ,WAAW,
|
|
1
|
+
{"version":3,"file":"SettingsSidebar.js","sourceRoot":"","sources":["../../../src/components/settings/SettingsSidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface ToolApprovalDialogProps {
|
|
2
|
+
baseUrl: string;
|
|
3
|
+
sessionId: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function ToolApprovalDialog({ baseUrl, sessionId, }: ToolApprovalDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=ToolApprovalDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolApprovalDialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ToolApprovalDialog.tsx"],"names":[],"mappings":"AAcA,UAAU,uBAAuB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,EAClC,OAAO,EACP,SAAS,GACT,EAAE,uBAAuB,2CAkGzB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useState } from 'react';
|
|
3
|
+
import { useToolApprovalStore } from '../../stores/toolApprovalStore';
|
|
4
|
+
import { Shield, Check, X, Terminal, FileEdit, GitCommit } from 'lucide-react';
|
|
5
|
+
const TOOL_ICONS = {
|
|
6
|
+
bash: Terminal,
|
|
7
|
+
write: FileEdit,
|
|
8
|
+
apply_patch: FileEdit,
|
|
9
|
+
edit: FileEdit,
|
|
10
|
+
terminal: Terminal,
|
|
11
|
+
git_commit: GitCommit,
|
|
12
|
+
git_push: GitCommit,
|
|
13
|
+
};
|
|
14
|
+
export function ToolApprovalDialog({ baseUrl, sessionId, }) {
|
|
15
|
+
const { pendingApprovals, removePendingApproval } = useToolApprovalStore();
|
|
16
|
+
const [processingId, setProcessingId] = useState(null);
|
|
17
|
+
const handleApproval = useCallback(async (callId, approved) => {
|
|
18
|
+
setProcessingId(callId);
|
|
19
|
+
try {
|
|
20
|
+
const response = await fetch(`${baseUrl}/v1/sessions/${sessionId}/approval`, {
|
|
21
|
+
method: 'POST',
|
|
22
|
+
headers: { 'Content-Type': 'application/json' },
|
|
23
|
+
body: JSON.stringify({ callId, approved }),
|
|
24
|
+
});
|
|
25
|
+
if (response.ok) {
|
|
26
|
+
removePendingApproval(callId);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error('Failed to send approval:', error);
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
setProcessingId(null);
|
|
34
|
+
}
|
|
35
|
+
}, [baseUrl, sessionId, removePendingApproval]);
|
|
36
|
+
if (pendingApprovals.length === 0)
|
|
37
|
+
return null;
|
|
38
|
+
const formatArgs = (args) => {
|
|
39
|
+
if (!args)
|
|
40
|
+
return '';
|
|
41
|
+
if (typeof args === 'string')
|
|
42
|
+
return args;
|
|
43
|
+
try {
|
|
44
|
+
const str = JSON.stringify(args, null, 2);
|
|
45
|
+
return str.length > 200 ? `${str.slice(0, 200)}...` : str;
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return String(args);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
return (_jsx("div", { className: "fixed bottom-4 right-4 z-50 flex flex-col gap-2 max-w-md", children: pendingApprovals.map((approval) => {
|
|
52
|
+
const Icon = TOOL_ICONS[approval.toolName] || Shield;
|
|
53
|
+
const isProcessing = processingId === approval.callId;
|
|
54
|
+
return (_jsxs("div", { className: "bg-background border border-border rounded-lg shadow-lg p-4 animate-in slide-in-from-right-2", children: [_jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: "p-2 bg-warning/10 rounded-lg", children: _jsx(Icon, { className: "w-5 h-5 text-warning" }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("h3", { className: "font-semibold text-sm flex items-center gap-2", children: [_jsx(Shield, { className: "w-4 h-4 text-warning" }), "Tool Approval Required"] }), _jsx("p", { className: "text-sm text-muted-foreground mt-1", children: _jsx("code", { className: "px-1.5 py-0.5 bg-muted rounded text-xs font-mono", children: approval.toolName }) }), approval.args && (_jsx("pre", { className: "mt-2 p-2 bg-muted rounded text-xs font-mono overflow-x-auto max-h-24 overflow-y-auto", children: formatArgs(approval.args) }))] })] }), _jsxs("div", { className: "flex items-center justify-end gap-2 mt-3", children: [_jsxs("button", { type: "button", onClick: () => handleApproval(approval.callId, false), disabled: isProcessing, className: "flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded transition-colors hover:bg-muted disabled:opacity-50", children: [_jsx(X, { className: "w-4 h-4" }), "Reject"] }), _jsxs("button", { type: "button", onClick: () => handleApproval(approval.callId, true), disabled: isProcessing, className: "flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded transition-colors bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50", children: [_jsx(Check, { className: "w-4 h-4" }), isProcessing ? 'Approving...' : 'Approve'] })] })] }, approval.callId));
|
|
55
|
+
}) }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=ToolApprovalDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolApprovalDialog.js","sourceRoot":"","sources":["../../../src/components/ui/ToolApprovalDialog.tsx"],"names":[],"mappings":"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"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
|
package/dist/hooks/index.js
CHANGED
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
|
|
@@ -5,6 +5,7 @@ export declare function useConfig(): import("@tanstack/react-query").UseQueryRes
|
|
|
5
5
|
agent: string;
|
|
6
6
|
provider: string;
|
|
7
7
|
model: string;
|
|
8
|
+
toolApproval?: "auto" | "dangerous" | "all";
|
|
8
9
|
};
|
|
9
10
|
}, Error>;
|
|
10
11
|
export declare function useModels(provider?: string): import("@tanstack/react-query").UseQueryResult<{
|
|
@@ -22,11 +23,13 @@ export declare function useUpdateDefaults(): import("@tanstack/react-query").Use
|
|
|
22
23
|
agent: string;
|
|
23
24
|
provider: string;
|
|
24
25
|
model: string;
|
|
26
|
+
toolApproval?: "auto" | "dangerous" | "all";
|
|
25
27
|
};
|
|
26
28
|
}, Error, {
|
|
27
29
|
agent?: string;
|
|
28
30
|
provider?: string;
|
|
29
31
|
model?: string;
|
|
32
|
+
toolApproval?: "auto" | "dangerous" | "all";
|
|
30
33
|
scope?: "global" | "local";
|
|
31
34
|
}, unknown>;
|
|
32
35
|
//# sourceMappingURL=useConfig.d.ts.map
|