agent-sory 1.0.0
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/LICENSE +21 -0
- package/README.md +265 -0
- package/dist/commands/base.d.ts +26 -0
- package/dist/commands/base.d.ts.map +1 -0
- package/dist/commands/base.js +3 -0
- package/dist/commands/base.js.map +1 -0
- package/dist/commands/definitions/clear.d.ts +3 -0
- package/dist/commands/definitions/clear.d.ts.map +1 -0
- package/dist/commands/definitions/clear.js +12 -0
- package/dist/commands/definitions/clear.js.map +1 -0
- package/dist/commands/definitions/help.d.ts +3 -0
- package/dist/commands/definitions/help.d.ts.map +1 -0
- package/dist/commands/definitions/help.js +28 -0
- package/dist/commands/definitions/help.js.map +1 -0
- package/dist/commands/definitions/init.d.ts +3 -0
- package/dist/commands/definitions/init.d.ts.map +1 -0
- package/dist/commands/definitions/init.js +23 -0
- package/dist/commands/definitions/init.js.map +1 -0
- package/dist/commands/definitions/login.d.ts +3 -0
- package/dist/commands/definitions/login.d.ts.map +1 -0
- package/dist/commands/definitions/login.js +8 -0
- package/dist/commands/definitions/login.js.map +1 -0
- package/dist/commands/definitions/model.d.ts +3 -0
- package/dist/commands/definitions/model.d.ts.map +1 -0
- package/dist/commands/definitions/model.js +10 -0
- package/dist/commands/definitions/model.js.map +1 -0
- package/dist/commands/definitions/reasoning.d.ts +3 -0
- package/dist/commands/definitions/reasoning.d.ts.map +1 -0
- package/dist/commands/definitions/reasoning.js +21 -0
- package/dist/commands/definitions/reasoning.js.map +1 -0
- package/dist/commands/definitions/stats.d.ts +3 -0
- package/dist/commands/definitions/stats.d.ts.map +1 -0
- package/dist/commands/definitions/stats.js +22 -0
- package/dist/commands/definitions/stats.js.map +1 -0
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +38 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/core/agent.d.ts +41 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +266 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/cli.d.ts +3 -0
- package/dist/core/cli.d.ts.map +1 -0
- package/dist/core/cli.js +48 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/llm/factory.d.ts +12 -0
- package/dist/core/llm/factory.d.ts.map +1 -0
- package/dist/core/llm/factory.js +44 -0
- package/dist/core/llm/factory.js.map +1 -0
- package/dist/core/llm/providers/gemini.d.ts +22 -0
- package/dist/core/llm/providers/gemini.d.ts.map +1 -0
- package/dist/core/llm/providers/gemini.js +167 -0
- package/dist/core/llm/providers/gemini.js.map +1 -0
- package/dist/core/llm/providers/groq.d.ts +23 -0
- package/dist/core/llm/providers/groq.d.ts.map +1 -0
- package/dist/core/llm/providers/groq.js +96 -0
- package/dist/core/llm/providers/groq.js.map +1 -0
- package/dist/core/llm/providers/openai-compatible.d.ts +24 -0
- package/dist/core/llm/providers/openai-compatible.d.ts.map +1 -0
- package/dist/core/llm/providers/openai-compatible.js +86 -0
- package/dist/core/llm/providers/openai-compatible.js.map +1 -0
- package/dist/core/llm/types.d.ts +37 -0
- package/dist/core/llm/types.d.ts.map +1 -0
- package/dist/core/llm/types.js +2 -0
- package/dist/core/llm/types.js.map +1 -0
- package/dist/core/prompts/system.d.ts +6 -0
- package/dist/core/prompts/system.d.ts.map +1 -0
- package/dist/core/prompts/system.js +36 -0
- package/dist/core/prompts/system.js.map +1 -0
- package/dist/tests/proxy-config.test.d.ts +2 -0
- package/dist/tests/proxy-config.test.d.ts.map +1 -0
- package/dist/tests/proxy-config.test.js +169 -0
- package/dist/tests/proxy-config.test.js.map +1 -0
- package/dist/tools/tool-schemas.d.ts +36 -0
- package/dist/tools/tool-schemas.d.ts.map +1 -0
- package/dist/tools/tool-schemas.js +482 -0
- package/dist/tools/tool-schemas.js.map +1 -0
- package/dist/tools/tools.d.ts +114 -0
- package/dist/tools/tools.d.ts.map +1 -0
- package/dist/tools/tools.js +1015 -0
- package/dist/tools/tools.js.map +1 -0
- package/dist/tools/utils/edit-logic.d.ts +9 -0
- package/dist/tools/utils/edit-logic.d.ts.map +1 -0
- package/dist/tools/utils/edit-logic.js +149 -0
- package/dist/tools/utils/edit-logic.js.map +1 -0
- package/dist/tools/utils/ripgrep-runner.d.ts +15 -0
- package/dist/tools/utils/ripgrep-runner.d.ts.map +1 -0
- package/dist/tools/utils/ripgrep-runner.js +90 -0
- package/dist/tools/utils/ripgrep-runner.js.map +1 -0
- package/dist/tools/validators.d.ts +4 -0
- package/dist/tools/validators.d.ts.map +1 -0
- package/dist/tools/validators.js +18 -0
- package/dist/tools/validators.js.map +1 -0
- package/dist/ui/App.d.ts +7 -0
- package/dist/ui/App.d.ts.map +1 -0
- package/dist/ui/App.js +12 -0
- package/dist/ui/App.js.map +1 -0
- package/dist/ui/components/core/Chat.d.ts +7 -0
- package/dist/ui/components/core/Chat.d.ts.map +1 -0
- package/dist/ui/components/core/Chat.js +60 -0
- package/dist/ui/components/core/Chat.js.map +1 -0
- package/dist/ui/components/core/MessageHistory.d.ts +7 -0
- package/dist/ui/components/core/MessageHistory.d.ts.map +1 -0
- package/dist/ui/components/core/MessageHistory.js +39 -0
- package/dist/ui/components/core/MessageHistory.js.map +1 -0
- package/dist/ui/components/core/MessageInput.d.ts +10 -0
- package/dist/ui/components/core/MessageInput.d.ts.map +1 -0
- package/dist/ui/components/core/MessageInput.js +130 -0
- package/dist/ui/components/core/MessageInput.js.map +1 -0
- package/dist/ui/components/display/DiffPreview.d.ts +15 -0
- package/dist/ui/components/display/DiffPreview.d.ts.map +1 -0
- package/dist/ui/components/display/DiffPreview.js +298 -0
- package/dist/ui/components/display/DiffPreview.js.map +1 -0
- package/dist/ui/components/display/Stats.d.ts +19 -0
- package/dist/ui/components/display/Stats.d.ts.map +1 -0
- package/dist/ui/components/display/Stats.js +31 -0
- package/dist/ui/components/display/Stats.js.map +1 -0
- package/dist/ui/components/display/TokenMetrics.d.ts +11 -0
- package/dist/ui/components/display/TokenMetrics.d.ts.map +1 -0
- package/dist/ui/components/display/TokenMetrics.js +16 -0
- package/dist/ui/components/display/TokenMetrics.js.map +1 -0
- package/dist/ui/components/display/ToolHistoryItem.d.ts +7 -0
- package/dist/ui/components/display/ToolHistoryItem.d.ts.map +1 -0
- package/dist/ui/components/display/ToolHistoryItem.js +102 -0
- package/dist/ui/components/display/ToolHistoryItem.js.map +1 -0
- package/dist/ui/components/input-overlays/ErrorRetry.d.ts +8 -0
- package/dist/ui/components/input-overlays/ErrorRetry.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/ErrorRetry.js +6 -0
- package/dist/ui/components/input-overlays/ErrorRetry.js.map +1 -0
- package/dist/ui/components/input-overlays/Login.d.ts +7 -0
- package/dist/ui/components/input-overlays/Login.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/Login.js +32 -0
- package/dist/ui/components/input-overlays/Login.js.map +1 -0
- package/dist/ui/components/input-overlays/MaxIterationsContinue.d.ts +8 -0
- package/dist/ui/components/input-overlays/MaxIterationsContinue.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/MaxIterationsContinue.js +32 -0
- package/dist/ui/components/input-overlays/MaxIterationsContinue.js.map +1 -0
- package/dist/ui/components/input-overlays/ModelSelector.d.ts +12 -0
- package/dist/ui/components/input-overlays/ModelSelector.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/ModelSelector.js +114 -0
- package/dist/ui/components/input-overlays/ModelSelector.js.map +1 -0
- package/dist/ui/components/input-overlays/PendingToolApproval.d.ts +10 -0
- package/dist/ui/components/input-overlays/PendingToolApproval.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/PendingToolApproval.js +51 -0
- package/dist/ui/components/input-overlays/PendingToolApproval.js.map +1 -0
- package/dist/ui/components/input-overlays/SlashCommandSuggestions.d.ts +8 -0
- package/dist/ui/components/input-overlays/SlashCommandSuggestions.d.ts.map +1 -0
- package/dist/ui/components/input-overlays/SlashCommandSuggestions.js +13 -0
- package/dist/ui/components/input-overlays/SlashCommandSuggestions.js.map +1 -0
- package/dist/ui/hooks/useAgent.d.ts +41 -0
- package/dist/ui/hooks/useAgent.d.ts.map +1 -0
- package/dist/ui/hooks/useAgent.js +205 -0
- package/dist/ui/hooks/useAgent.js.map +1 -0
- package/dist/ui/hooks/useMouseScroll.d.ts +3 -0
- package/dist/ui/hooks/useMouseScroll.d.ts.map +1 -0
- package/dist/ui/hooks/useMouseScroll.js +32 -0
- package/dist/ui/hooks/useMouseScroll.js.map +1 -0
- package/dist/ui/hooks/useSessionStats.d.ts +20 -0
- package/dist/ui/hooks/useSessionStats.d.ts.map +1 -0
- package/dist/ui/hooks/useSessionStats.js +36 -0
- package/dist/ui/hooks/useSessionStats.js.map +1 -0
- package/dist/ui/hooks/useTokenMetrics.d.ts +21 -0
- package/dist/ui/hooks/useTokenMetrics.d.ts.map +1 -0
- package/dist/ui/hooks/useTokenMetrics.js +102 -0
- package/dist/ui/hooks/useTokenMetrics.js.map +1 -0
- package/dist/ui/utils/CodeColorizer.d.ts +5 -0
- package/dist/ui/utils/CodeColorizer.d.ts.map +1 -0
- package/dist/ui/utils/CodeColorizer.js +47 -0
- package/dist/ui/utils/CodeColorizer.js.map +1 -0
- package/dist/utils/constants.d.ts +8 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +104 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/context.d.ts +36 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +239 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/file-ops.d.ts +21 -0
- package/dist/utils/file-ops.d.ts.map +1 -0
- package/dist/utils/file-ops.js +125 -0
- package/dist/utils/file-ops.js.map +1 -0
- package/dist/utils/local-settings.d.ts +18 -0
- package/dist/utils/local-settings.d.ts.map +1 -0
- package/dist/utils/local-settings.js +176 -0
- package/dist/utils/local-settings.js.map +1 -0
- package/dist/utils/markdown.d.ts +13 -0
- package/dist/utils/markdown.d.ts.map +1 -0
- package/dist/utils/markdown.js +122 -0
- package/dist/utils/markdown.js.map +1 -0
- package/dist/utils/proxy-config.d.ts +25 -0
- package/dist/utils/proxy-config.d.ts.map +1 -0
- package/dist/utils/proxy-config.js +145 -0
- package/dist/utils/proxy-config.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import DiffPreview from './DiffPreview.js';
|
|
4
|
+
import { formatToolParams } from '../../../tools/tools.js';
|
|
5
|
+
export default function ToolHistoryItem({ execution }) {
|
|
6
|
+
const { name, args, status, result } = execution;
|
|
7
|
+
const getStatusIcon = () => {
|
|
8
|
+
switch (status) {
|
|
9
|
+
case 'completed':
|
|
10
|
+
return '🟢';
|
|
11
|
+
case 'failed':
|
|
12
|
+
return '🔴';
|
|
13
|
+
case 'canceled':
|
|
14
|
+
return '🚫';
|
|
15
|
+
default:
|
|
16
|
+
return '?';
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const getStatusColor = () => {
|
|
20
|
+
switch (status) {
|
|
21
|
+
case 'completed':
|
|
22
|
+
return 'green';
|
|
23
|
+
case 'failed':
|
|
24
|
+
return 'red';
|
|
25
|
+
case 'canceled':
|
|
26
|
+
return 'gray';
|
|
27
|
+
default:
|
|
28
|
+
return 'white';
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const shouldShowDiff = (toolName) => {
|
|
32
|
+
return ['create_file', 'edit_file'].includes(toolName);
|
|
33
|
+
};
|
|
34
|
+
const renderResult = (toolName, result) => {
|
|
35
|
+
const content = result.content;
|
|
36
|
+
// Handle execute_command output format
|
|
37
|
+
if (typeof content === 'string' && content.includes('stdout:') && content.includes('stderr:')) {
|
|
38
|
+
const lines = content.split('\n');
|
|
39
|
+
let stdoutLines = [];
|
|
40
|
+
let stderrLines = [];
|
|
41
|
+
let currentSection = '';
|
|
42
|
+
for (const line of lines) {
|
|
43
|
+
if (line.startsWith('stdout:')) {
|
|
44
|
+
currentSection = 'stdout';
|
|
45
|
+
const stdoutContent = line.substring(7).trim();
|
|
46
|
+
if (stdoutContent)
|
|
47
|
+
stdoutLines.push(stdoutContent);
|
|
48
|
+
}
|
|
49
|
+
else if (line.startsWith('stderr:')) {
|
|
50
|
+
currentSection = 'stderr';
|
|
51
|
+
const stderrContent = line.substring(7).trim();
|
|
52
|
+
if (stderrContent)
|
|
53
|
+
stderrLines.push(stderrContent);
|
|
54
|
+
}
|
|
55
|
+
else if (currentSection === 'stdout') {
|
|
56
|
+
stdoutLines.push(line);
|
|
57
|
+
}
|
|
58
|
+
else if (currentSection === 'stderr') {
|
|
59
|
+
stderrLines.push(line);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return (_jsxs(_Fragment, { children: [stdoutLines.length > 0 && stdoutLines.some(line => line.trim()) && (_jsx(Text, { color: "white", children: stdoutLines.join('\n').trimEnd() })), stderrLines.length > 0 && stderrLines.some(line => line.trim()) && (_jsx(Text, { color: "yellow", children: stderrLines.join('\n').trimEnd() }))] }));
|
|
63
|
+
}
|
|
64
|
+
// Handle directory tree output for list_files
|
|
65
|
+
if (toolName === 'list_files') {
|
|
66
|
+
return (_jsx(Text, { color: "cyan", children: typeof content === 'string' ? content : JSON.stringify(content, null, 2) }));
|
|
67
|
+
}
|
|
68
|
+
// Handle file content for read_file; don't show content
|
|
69
|
+
if (toolName === 'read_file') {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
// Handle file content for search_files; don't show content
|
|
73
|
+
if (toolName === 'search_files') {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
// Handle read_many_files output format
|
|
77
|
+
if (toolName === 'read_many_files' && Array.isArray(content)) {
|
|
78
|
+
return (_jsx(Box, { flexDirection: "column", marginTop: 1, children: content.map((file, index) => (_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: file.success ? "green" : "red", children: file.success ? "✓" : "✗" }), _jsx(Text, { color: "cyan", children: file.filePath }), file.error && _jsxs(Text, { color: "red", dimColor: true, children: ["(", file.error, ")"] })] }, index))) }));
|
|
79
|
+
}
|
|
80
|
+
// Handle google_web_search output format
|
|
81
|
+
if (toolName === 'google_web_search' && Array.isArray(content)) {
|
|
82
|
+
if (content.length === 0)
|
|
83
|
+
return _jsx(Text, { italic: true, dimColor: true, children: "Aucun r\u00E9sultat pertinent trouv\u00E9." });
|
|
84
|
+
return (_jsx(Box, { flexDirection: "column", marginTop: 1, children: content.map((res, index) => (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: "blue", children: "\uD83C\uDF10" }), _jsx(Text, { bold: true, color: "white", wrap: "truncate-end", children: res.title })] }), _jsx(Box, { paddingLeft: 3, children: _jsx(Text, { color: "gray", dimColor: true, wrap: "truncate-end", children: res.url }) })] }, index))) }));
|
|
85
|
+
}
|
|
86
|
+
// Default handling with truncation for long content
|
|
87
|
+
let displayContent = typeof content === 'string' ? content : JSON.stringify(content, null, 2);
|
|
88
|
+
const lines = displayContent.split('\n');
|
|
89
|
+
const MAX_LINES = 15;
|
|
90
|
+
const isTruncated = lines.length > MAX_LINES;
|
|
91
|
+
if (isTruncated) {
|
|
92
|
+
displayContent = lines.slice(0, MAX_LINES).join('\n');
|
|
93
|
+
}
|
|
94
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "white", children: displayContent }), isTruncated && (_jsxs(Text, { color: "yellow", dimColor: true, italic: true, children: ["... (", lines.length - MAX_LINES, " more lines hidden) ..."] }))] }));
|
|
95
|
+
};
|
|
96
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: getStatusColor(), paddingX: 1, children: [_jsxs(Box, { gap: 1, children: [_jsxs(Text, { color: getStatusColor(), children: [getStatusIcon(), " ", _jsx(Text, { bold: true, children: name })] }), (name === 'read_file' || name === 'create_file' || name === 'edit_file' || name === 'delete_file') && args.file_path && (_jsx(Text, { color: "cyan", italic: true, children: args.file_path })), name === 'list_files' && args.directory && (_jsx(Text, { color: "cyan", italic: true, children: args.directory })), name === 'execute_command' && args.command && (_jsxs(Text, { color: "yellow", wrap: "truncate-end", dimColor: true, children: ["(", args.command.substring(0, 30), "...)"] }))] }), (name === 'create_tasks' || name === 'update_tasks') && result?.content?.tasks ? (_jsx(Box, { flexDirection: "column", children: result.content.tasks.map((task, index) => {
|
|
97
|
+
const statusSymbol = task.status === 'pending' ? '☐' : (task.status === 'in_progress' ? '🔄' : '✓');
|
|
98
|
+
const isCompleted = task.status === 'completed';
|
|
99
|
+
return (_jsxs(Text, { color: isCompleted ? 'green' : 'white', children: [statusSymbol, " ", task.description] }, task.id || index));
|
|
100
|
+
}) })) : formatToolParams(name, args, { includePrefix: false, separator: ': ' }) ? (_jsx(Box, { children: _jsx(Text, { color: "gray", children: formatToolParams(name, args, { includePrefix: false, separator: ': ' }) }) })) : null, shouldShowDiff(name) && status === 'completed' && (_jsx(Box, { children: _jsx(DiffPreview, { toolName: name, toolArgs: args, isHistorical: true }) })), status === 'completed' && result && (_jsx(Box, { children: result.success ? (_jsxs(Box, { flexDirection: "column", children: [result.content && !(name === 'create_tasks' || name === 'update_tasks') && (_jsx(Box, { flexDirection: "column", children: renderResult(name, result) })), result.message && !result.content && !(name === 'create_tasks' || name === 'update_tasks') && (_jsx(Text, { color: "gray", children: result.message }))] })) : (_jsxs(Text, { color: "red", children: ["Tool failed: ", result.error || 'Unknown error'] })) })), status === 'failed' && (_jsx(Box, { children: _jsxs(Text, { color: "red", children: ["Tool execution failed", result?.error && (_jsxs(Text, { color: "gray", children: [' ', "(", result.error, ")"] }))] }) })), status === 'canceled' && (_jsx(Box, { children: _jsx(Text, { color: "gray", children: "Tool execution canceled by user" }) }))] }));
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=ToolHistoryItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolHistoryItem.js","sourceRoot":"","sources":["../../../../src/ui/components/display/ToolHistoryItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface ErrorRetryProps {
|
|
2
|
+
error: string;
|
|
3
|
+
onRetry: () => void;
|
|
4
|
+
onCancel: () => void;
|
|
5
|
+
}
|
|
6
|
+
export default function ErrorRetry({ error, onRetry, onCancel }: ErrorRetryProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=ErrorRetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorRetry.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/ErrorRetry.tsx"],"names":[],"mappings":"AAGA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAqC/E"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
export default function ErrorRetry({ error, onRetry, onCancel }) {
|
|
4
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "red", paddingX: 1, paddingY: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "red", bold: true, children: "\u274C An error occurred:" }) }), _jsx(Box, { marginBottom: 2, flexWrap: "wrap", children: _jsx(Text, { color: "red", children: error }) }), _jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Box, { children: [_jsx(Text, { color: "green", bold: true, children: "[R]etry" }), _jsx(Text, { color: "gray", children: " - Try the request again" })] }), _jsxs(Box, { children: [_jsx(Text, { color: "red", bold: true, children: "[C]ancel" }), _jsx(Text, { color: "gray", children: " - Stop and return to input" })] })] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", dimColor: true, children: "Press R to retry or C to cancel" }) })] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=ErrorRetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorRetry.js","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/ErrorRetry.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAmB;IAC9E,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,aACxF,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI,gDAEf,GACH,EAEN,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAC,MAAM,YACnC,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,YACd,KAAK,GACD,GACH,EAEN,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,aACjC,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,8BAEjB,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,yCAAgC,IAC9C,EACN,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI,+BAEf,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,4CAAmC,IACjD,IACF,EAEN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,sDAEpB,GACH,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Login.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/Login.tsx"],"names":[],"mappings":"AAGA,UAAU,UAAU;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,UAAU,2CAsD/D"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
export default function Login({ onSubmit, onCancel }) {
|
|
5
|
+
const [apiKey, setApiKey] = useState('');
|
|
6
|
+
useInput((input, key) => {
|
|
7
|
+
if (key.return) {
|
|
8
|
+
if (apiKey.trim()) {
|
|
9
|
+
onSubmit(apiKey.trim());
|
|
10
|
+
}
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (key.escape) {
|
|
14
|
+
onCancel();
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (key.backspace || key.delete) {
|
|
18
|
+
setApiKey(prev => prev.slice(0, -1));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (key.ctrl && input === 'c') {
|
|
22
|
+
onCancel();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Regular character input
|
|
26
|
+
if (input && !key.meta && !key.ctrl) {
|
|
27
|
+
setApiKey(prev => prev + input);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "cyan", bold: true, children: "Login with AI Provider API Key" }) }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "gray", children: "Enter your API key to continue." }) }), _jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: "API Key: " }), _jsxs(Text, { children: ['*'.repeat(Math.min(apiKey.length, 20)), apiKey.length > 20 && '...'] }), _jsx(Text, { backgroundColor: "cyan", color: "cyan", children: "\u258C" })] })] }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=Login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Login.js","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/Login.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAa,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAO1C,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAc;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEzC,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,QAAQ,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,qDAAsC,GACzD,EAEN,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,gDAEX,GACH,EAEN,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,0BAAiB,EACnC,MAAC,IAAI,eACF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EACvC,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,KAAK,IACvB,EACP,KAAC,IAAI,IAAC,eAAe,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,uBAAS,IAC9C,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface MaxIterationsContinueProps {
|
|
2
|
+
maxIterations: number;
|
|
3
|
+
onContinue: () => void;
|
|
4
|
+
onStop: () => void;
|
|
5
|
+
}
|
|
6
|
+
export default function MaxIterationsContinue({ maxIterations, onContinue, onStop }: MaxIterationsContinueProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=MaxIterationsContinue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxIterationsContinue.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/MaxIterationsContinue.tsx"],"names":[],"mappings":"AAGA,UAAU,0BAA0B;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,aAAa,EACb,UAAU,EACV,MAAM,EACP,EAAE,0BAA0B,2CA8D5B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
export default function MaxIterationsContinue({ maxIterations, onContinue, onStop }) {
|
|
5
|
+
const [selectedOption, setSelectedOption] = useState(0);
|
|
6
|
+
// Reset selection when component mounts
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
setSelectedOption(0);
|
|
9
|
+
}, [maxIterations]);
|
|
10
|
+
// Handle input
|
|
11
|
+
useInput((input, key) => {
|
|
12
|
+
if (key.upArrow) {
|
|
13
|
+
setSelectedOption(prev => Math.max(0, prev - 1));
|
|
14
|
+
}
|
|
15
|
+
else if (key.downArrow) {
|
|
16
|
+
setSelectedOption(prev => Math.min(1, prev + 1));
|
|
17
|
+
}
|
|
18
|
+
else if (key.return) {
|
|
19
|
+
if (selectedOption === 0) {
|
|
20
|
+
onContinue();
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
onStop();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (key.escape) {
|
|
27
|
+
onStop();
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "yellow", bold: true, children: "Max Iterations Reached" }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: "gray", children: ["The model has been iterating for a while now (", maxIterations, " iterations). It may be stuck in a loop or working on a complex task."] }) }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "yellow", children: "Continue processing?" }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { color: selectedOption === 0 ? "black" : "green", backgroundColor: selectedOption === 0 ? "rgb(124, 214, 114)" : undefined, children: [selectedOption === 0 ? _jsx(Text, { bold: true, children: ">" }) : " ", " Yes, continue"] }) }), _jsx(Box, { children: _jsxs(Text, { color: selectedOption === 1 ? "black" : "red", backgroundColor: selectedOption === 1 ? "rgb(214, 114, 114)" : undefined, children: [selectedOption === 1 ? _jsx(Text, { bold: true, children: ">" }) : " ", " No, stop here (esc)"] }) })] })] })] }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=MaxIterationsContinue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxIterationsContinue.js","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/MaxIterationsContinue.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAQ1C,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,aAAa,EACb,UAAU,EACV,MAAM,EACqB;IAC3B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExD,wCAAwC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,eAAe;IACf,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACzB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;gBACzB,UAAU,EAAE,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAEzB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,6CAA8B,GACnD,EAGN,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,+DAC+B,aAAa,6EAEvD,GACH,EAGN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,qCAA4B,EAEhD,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAC/C,eAAe,EAAE,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,aAC3E,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,kBAAE,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,sBACjD,GACH,EAEN,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAC7C,eAAe,EAAE,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,aAC3E,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,kBAAE,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,4BACjD,GACH,IACF,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ModelSelectorProps {
|
|
2
|
+
onSubmit: (model: string) => void;
|
|
3
|
+
onCancel: () => void;
|
|
4
|
+
currentModel?: string;
|
|
5
|
+
hasApiKey: (provider: string) => boolean;
|
|
6
|
+
setApiKey: (key: string, provider: string) => void;
|
|
7
|
+
setActiveProvider: (provider: string) => void;
|
|
8
|
+
activeProvider: string;
|
|
9
|
+
}
|
|
10
|
+
export default function ModelSelector({ onSubmit, onCancel, currentModel, hasApiKey, setApiKey, setActiveProvider, activeProvider }: ModelSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ModelSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelSelector.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/ModelSelector.tsx"],"names":[],"mappings":"AAIA,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,MAAM,CAAC;CACxB;AA0CD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,cAAc,EACf,EAAE,kBAAkB,2CAoKpB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
import { PROVIDERS } from '../../../utils/constants.js';
|
|
5
|
+
// Simple text input component for API key entry
|
|
6
|
+
function SimpleInput({ value, onChange, onSubmit, onCancel, placeholder }) {
|
|
7
|
+
useInput((input, key) => {
|
|
8
|
+
if (key.return) {
|
|
9
|
+
onSubmit(value);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (key.escape) {
|
|
13
|
+
onCancel();
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (key.backspace || key.delete) {
|
|
17
|
+
onChange(value.slice(0, -1));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (input && !key.ctrl && !key.meta) {
|
|
21
|
+
onChange(value + input);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return (_jsxs(Box, { children: [_jsxs(Text, { color: "cyan", children: ['>', " "] }), _jsx(Text, { children: value || _jsx(Text, { color: "gray", children: placeholder }) })] }));
|
|
25
|
+
}
|
|
26
|
+
export default function ModelSelector({ onSubmit, onCancel, currentModel, hasApiKey, setApiKey, setActiveProvider, activeProvider }) {
|
|
27
|
+
const [step, setStep] = useState('PROVIDER');
|
|
28
|
+
const [selectedProviderId, setSelectedProviderId] = useState(activeProvider || 'groq');
|
|
29
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
30
|
+
const [apiKeyInput, setApiKeyInput] = useState('');
|
|
31
|
+
// Reset selection index when step changes
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (step === 'PROVIDER') {
|
|
34
|
+
const idx = PROVIDERS.findIndex(p => p.id === selectedProviderId);
|
|
35
|
+
setSelectedIndex(idx >= 0 ? idx : 0);
|
|
36
|
+
}
|
|
37
|
+
else if (step === 'MODEL') {
|
|
38
|
+
// Find current model in the selected provider's list
|
|
39
|
+
const provider = PROVIDERS.find(p => p.id === selectedProviderId);
|
|
40
|
+
if (provider) {
|
|
41
|
+
const idx = provider.models.findIndex(m => m === currentModel);
|
|
42
|
+
setSelectedIndex(idx >= 0 ? idx : 0);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}, [step, selectedProviderId, currentModel]);
|
|
46
|
+
useInput((input, key) => {
|
|
47
|
+
if (step === 'KEY')
|
|
48
|
+
return; // Handled by SimpleInput
|
|
49
|
+
if (key.escape) {
|
|
50
|
+
if (step === 'MODEL') {
|
|
51
|
+
setStep('PROVIDER'); // Go back to provider selection
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
onCancel();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (key.return) {
|
|
58
|
+
if (step === 'PROVIDER') {
|
|
59
|
+
const provider = PROVIDERS[selectedIndex];
|
|
60
|
+
setSelectedProviderId(provider.id);
|
|
61
|
+
// Check if we need a key
|
|
62
|
+
if (hasApiKey(provider.id)) {
|
|
63
|
+
setActiveProvider(provider.id);
|
|
64
|
+
setStep('MODEL');
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
setStep('KEY');
|
|
68
|
+
}
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (step === 'MODEL') {
|
|
72
|
+
const provider = PROVIDERS.find(p => p.id === selectedProviderId);
|
|
73
|
+
if (provider) {
|
|
74
|
+
const model = provider.models[selectedIndex];
|
|
75
|
+
onSubmit(model);
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (key.upArrow) {
|
|
81
|
+
setSelectedIndex(prev => Math.max(0, prev - 1));
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (key.downArrow) {
|
|
85
|
+
const max = step === 'PROVIDER'
|
|
86
|
+
? PROVIDERS.length - 1
|
|
87
|
+
: (PROVIDERS.find(p => p.id === selectedProviderId)?.models.length || 0) - 1;
|
|
88
|
+
setSelectedIndex(prev => Math.min(max, prev + 1));
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
const handleKeySubmit = (key) => {
|
|
93
|
+
if (key.trim().length > 0) {
|
|
94
|
+
setApiKey(key.trim(), selectedProviderId);
|
|
95
|
+
setActiveProvider(selectedProviderId);
|
|
96
|
+
setStep('MODEL');
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
if (step === 'KEY') {
|
|
100
|
+
const providerName = PROVIDERS.find(p => p.id === selectedProviderId)?.name;
|
|
101
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "yellow", bold: true, children: "Authentication Required" }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Enter API Key for ", _jsx(Text, { bold: true, color: "cyan", children: providerName }), ":"] }) }), _jsx(SimpleInput, { value: apiKeyInput, onChange: setApiKeyInput, onSubmit: handleKeySubmit, onCancel: () => setStep('PROVIDER'), placeholder: "sk-..." }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", dimColor: true, children: "Press Enter to save, Esc to go back" }) })] }));
|
|
102
|
+
}
|
|
103
|
+
if (step === 'MODEL') {
|
|
104
|
+
const provider = PROVIDERS.find(p => p.id === selectedProviderId);
|
|
105
|
+
const models = provider?.models || [];
|
|
106
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: "cyan", bold: true, children: ["Select Model (", provider?.name, ")"] }) }), _jsx(Box, { flexDirection: "column", marginBottom: 1, children: models.map((model, index) => (_jsx(Box, { marginBottom: 0, children: _jsxs(Text, { color: index === selectedIndex ? 'black' : 'white', backgroundColor: index === selectedIndex ? 'cyan' : undefined, bold: index === selectedIndex, children: [index === selectedIndex ? _jsx(Text, { bold: true, children: ">" }) : " ", " ", "", model, model === currentModel ? ' (current)' : ''] }) }, model))) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", dimColor: true, children: "Esc to change provider" }) })] }));
|
|
107
|
+
}
|
|
108
|
+
// Default: PROVIDER Selection
|
|
109
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "magenta", bold: true, children: "Select AI Provider" }) }), _jsx(Box, { flexDirection: "column", marginBottom: 1, children: PROVIDERS.map((provider, index) => {
|
|
110
|
+
const isConfigured = hasApiKey(provider.id);
|
|
111
|
+
return (_jsx(Box, { marginBottom: 0, children: _jsxs(Text, { color: index === selectedIndex ? 'black' : 'white', backgroundColor: index === selectedIndex ? 'magenta' : undefined, bold: index === selectedIndex, children: [index === selectedIndex ? _jsx(Text, { bold: true, children: ">" }) : " ", " ", "", provider.name, !isConfigured && _jsx(Text, { color: index === selectedIndex ? 'black' : 'yellow', dimColor: true, children: " (Login Required)" }), isConfigured && provider.id === activeProvider && _jsx(Text, { dimColor: true, children: " (Active)" })] }) }, provider.id));
|
|
112
|
+
}) })] }));
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=ModelSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelSelector.js","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/ModelSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface PendingToolApprovalProps {
|
|
2
|
+
toolName: string;
|
|
3
|
+
toolArgs: Record<string, any>;
|
|
4
|
+
onApprove: () => void;
|
|
5
|
+
onReject: () => void;
|
|
6
|
+
onApproveWithAutoSession?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export default function PendingToolApproval({ toolName, toolArgs, onApprove, onReject, onApproveWithAutoSession }: PendingToolApprovalProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=PendingToolApproval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingToolApproval.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/PendingToolApproval.tsx"],"names":[],"mappings":"AAMA,UAAU,wBAAwB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,wBAAwB,EACzB,EAAE,wBAAwB,2CA0G1B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
import DiffPreview from '../display/DiffPreview.js';
|
|
5
|
+
import { formatToolParams } from '../../../tools/tools.js';
|
|
6
|
+
import { DANGEROUS_TOOLS } from '../../../tools/tool-schemas.js';
|
|
7
|
+
export default function PendingToolApproval({ toolName, toolArgs, onApprove, onReject, onApproveWithAutoSession }) {
|
|
8
|
+
const [selectedApprovalOption, setSelectedApprovalOption] = useState(0);
|
|
9
|
+
// Reset selection when component mounts
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
setSelectedApprovalOption(0);
|
|
12
|
+
}, [toolName, toolArgs]);
|
|
13
|
+
// Handle approval input
|
|
14
|
+
useInput((input, key) => {
|
|
15
|
+
const isDangerous = DANGEROUS_TOOLS.includes(toolName);
|
|
16
|
+
const maxOptions = isDangerous ? 1 : 2; // Dangerous tools only have Yes/No, others have Yes/Auto/No
|
|
17
|
+
if (key.upArrow) {
|
|
18
|
+
setSelectedApprovalOption(prev => Math.max(0, prev - 1));
|
|
19
|
+
}
|
|
20
|
+
else if (key.downArrow) {
|
|
21
|
+
setSelectedApprovalOption(prev => Math.min(maxOptions, prev + 1));
|
|
22
|
+
}
|
|
23
|
+
else if (key.return) {
|
|
24
|
+
if (selectedApprovalOption === 0) {
|
|
25
|
+
onApprove();
|
|
26
|
+
}
|
|
27
|
+
else if (selectedApprovalOption === 1 && !isDangerous) {
|
|
28
|
+
// Middle option: "Yes, and don't ask again this session"
|
|
29
|
+
onApproveWithAutoSession?.();
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// Last option: "No"
|
|
33
|
+
onReject();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const getFilename = () => {
|
|
38
|
+
const filePath = toolArgs?.file_path || toolArgs?.source_path;
|
|
39
|
+
if (!filePath)
|
|
40
|
+
return null;
|
|
41
|
+
return filePath.split('/').pop() || filePath;
|
|
42
|
+
};
|
|
43
|
+
const filename = getFilename();
|
|
44
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { color: "yellow", children: ["\uD83D\uDFE1 ", _jsx(Text, { bold: true, children: toolName })] }) }), (() => {
|
|
45
|
+
const keyParams = formatToolParams(toolName, toolArgs, { includePrefix: false, separator: ': ' });
|
|
46
|
+
return keyParams ? (_jsx(Box, { children: _jsx(Text, { color: "gray", dimColor: true, children: keyParams }) })) : null;
|
|
47
|
+
})(), (toolName === 'create_file' || toolName === 'edit_file') && (_jsx(Box, { borderStyle: "round", borderColor: "yellow", paddingX: 1, children: _jsx(DiffPreview, { toolName: toolName, toolArgs: toolArgs }) })), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "yellow", children: filename
|
|
48
|
+
? _jsxs(_Fragment, { children: ["Approve this edit to ", _jsx(Text, { bold: true, children: filename }), "?"] })
|
|
49
|
+
: 'Approve this tool call?' }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { color: selectedApprovalOption === 0 ? "black" : "green", backgroundColor: selectedApprovalOption === 0 ? "rgb(124, 214, 114)" : undefined, children: [selectedApprovalOption === 0 ? _jsx(Text, { bold: true, children: ">" }) : " ", " Yes"] }) }), !DANGEROUS_TOOLS.includes(toolName) && (_jsx(Box, { children: _jsxs(Text, { color: selectedApprovalOption === 1 ? "black" : "blue", backgroundColor: selectedApprovalOption === 1 ? "rgb(114, 159, 214)" : undefined, children: [selectedApprovalOption === 1 ? _jsx(Text, { bold: true, children: ">" }) : " ", " Yes, and don't ask again this session"] }) })), _jsx(Box, { children: _jsxs(Text, { color: selectedApprovalOption === (DANGEROUS_TOOLS.includes(toolName) ? 1 : 2) ? "black" : "red", backgroundColor: selectedApprovalOption === (DANGEROUS_TOOLS.includes(toolName) ? 1 : 2) ? "rgb(214, 114, 114)" : undefined, children: [selectedApprovalOption === (DANGEROUS_TOOLS.includes(toolName) ? 1 : 2) ? _jsx(Text, { bold: true, children: ">" }) : " ", " No, tell Sory what to do differently (esc)"] }) })] })] })] }));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=PendingToolApproval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingToolApproval.js","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/PendingToolApproval.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAUjE,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,wBAAwB,EACC;IACzB,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExE,wCAAwC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,yBAAyB,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEzB,wBAAwB;IACxB,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4DAA4D;QAEpG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACzB,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,sBAAsB,KAAK,CAAC,EAAE,CAAC;gBACjC,SAAS,EAAE,CAAC;YACd,CAAC;iBAAM,IAAI,sBAAsB,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxD,yDAAyD;gBACzD,wBAAwB,EAAE,EAAE,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,oBAAoB;gBACpB,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,MAAM,QAAQ,GAAG,QAAQ,EAAE,SAAS,IAAI,QAAQ,EAAE,WAAW,CAAC;QAC9D,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAEzB,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,8BACf,KAAC,IAAI,IAAC,IAAI,kBAAE,QAAQ,GAAQ,IAC1B,GACH,EAGL,CAAC,GAAG,EAAE;gBACL,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClG,OAAO,SAAS,CAAC,CAAC,CAAC,CACjB,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,kBACxB,SAAS,GACL,GACH,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;YACX,CAAC,CAAC,EAAE,EAGH,CAAC,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,WAAW,CAAC,IAAI,CAC3D,KAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,YACvD,KAAC,WAAW,IACV,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,GACE,CACP,EAGD,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YACjB,QAAQ;4BACP,CAAC,CAAC,uDAAuB,KAAC,IAAI,IAAC,IAAI,kBAAE,QAAQ,GAAQ,SAAI;4BACzD,CAAC,CAAC,yBAAyB,GAExB,EAEP,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EACvD,eAAe,EAAE,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,aACnF,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,kBAAE,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,YACzD,GACH,EAGL,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CACtC,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EACtD,eAAe,EAAE,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,aACnF,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,kBAAE,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,8CACzD,GACH,CACP,EAED,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,sBAAsB,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAChG,eAAe,EAAE,sBAAsB,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,aAC9H,sBAAsB,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,kBAAE,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,mDACpG,GACH,IACF,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface SlashCommandSuggestionsProps {
|
|
2
|
+
input: string;
|
|
3
|
+
selectedIndex: number;
|
|
4
|
+
onSelect: (command: string) => void;
|
|
5
|
+
}
|
|
6
|
+
export default function SlashCommandSuggestions({ input, selectedIndex }: SlashCommandSuggestionsProps): import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=SlashCommandSuggestions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlashCommandSuggestions.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/SlashCommandSuggestions.tsx"],"names":[],"mappings":"AAIA,UAAU,4BAA4B;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,KAAK,EACL,aAAa,EACd,EAAE,4BAA4B,kDAyB9B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import { getAvailableCommands } from '../../../commands/index.js';
|
|
4
|
+
export default function SlashCommandSuggestions({ input, selectedIndex }) {
|
|
5
|
+
const searchTerm = input.slice(1).toLowerCase();
|
|
6
|
+
const allCommands = getAvailableCommands();
|
|
7
|
+
const filteredCommands = allCommands.filter(cmd => cmd.command.toLowerCase().includes(searchTerm));
|
|
8
|
+
if (filteredCommands.length === 0) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: filteredCommands.map((cmd, index) => (_jsx(Box, { children: _jsxs(Text, { color: index === selectedIndex ? "black" : "white", backgroundColor: index === selectedIndex ? "cyan" : undefined, children: ["/", cmd.command, " - ", cmd.description] }) }, cmd.command))) }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=SlashCommandSuggestions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlashCommandSuggestions.js","sourceRoot":"","sources":["../../../../src/ui/components/input-overlays/SlashCommandSuggestions.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAmB,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAQnF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,KAAK,EACL,aAAa,EACgB;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAChD,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC/C,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,KAAC,GAAG,cACF,MAAC,IAAI,IACH,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAClD,eAAe,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,kBAE3D,GAAG,CAAC,OAAO,SAAK,GAAG,CAAC,WAAW,IAC5B,IANC,GAAG,CAAC,OAAO,CAOf,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Agent } from '../../core/agent.js';
|
|
2
|
+
export interface ChatMessage {
|
|
3
|
+
id: string;
|
|
4
|
+
role: 'user' | 'assistant' | 'system' | 'tool' | 'tool_execution';
|
|
5
|
+
content: string;
|
|
6
|
+
reasoning?: string;
|
|
7
|
+
timestamp: Date;
|
|
8
|
+
toolExecution?: ToolExecution;
|
|
9
|
+
type?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ToolExecution {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
args: Record<string, any>;
|
|
15
|
+
status: 'pending' | 'approved' | 'executing' | 'completed' | 'failed' | 'canceled';
|
|
16
|
+
result?: any;
|
|
17
|
+
needsApproval?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function useAgent(agent: Agent, onStartRequest?: () => void, onAddApiTokens?: (usage: any) => void, onPauseRequest?: () => void, onResumeRequest?: () => void, onCompleteRequest?: () => void): {
|
|
20
|
+
messages: ChatMessage[];
|
|
21
|
+
liveMessage: ChatMessage | null;
|
|
22
|
+
userMessageHistory: string[];
|
|
23
|
+
isProcessing: boolean;
|
|
24
|
+
currentToolExecution: ToolExecution | null;
|
|
25
|
+
pendingApproval: any;
|
|
26
|
+
pendingMaxIterations: any;
|
|
27
|
+
pendingError: any;
|
|
28
|
+
sessionAutoApprove: boolean;
|
|
29
|
+
showReasoning: boolean;
|
|
30
|
+
clearKey: number;
|
|
31
|
+
sendMessage: (userInput: string) => Promise<void>;
|
|
32
|
+
clearHistory: () => void;
|
|
33
|
+
setApiKey: (k: string, p?: string) => void;
|
|
34
|
+
hasApiKey: (p: string) => boolean;
|
|
35
|
+
getActiveProvider: () => string;
|
|
36
|
+
setActiveProvider: (p: string) => void;
|
|
37
|
+
toggleAutoApprove: () => void;
|
|
38
|
+
toggleReasoning: () => void;
|
|
39
|
+
addMessage: (message: Omit<ChatMessage, "id" | "timestamp">) => string;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=useAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgent.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAO1C,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,gBAAgB,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,EACH,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,GACX,QAAQ,GACR,UAAU,CAAC;IACd,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,QAAQ,CACvB,KAAK,EAAE,KAAK,EACZ,cAAc,CAAC,EAAE,MAAM,IAAI,EAC3B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,EACrC,cAAc,CAAC,EAAE,MAAM,IAAI,EAC3B,eAAe,CAAC,EAAE,MAAM,IAAI,EAC5B,iBAAiB,CAAC,EAAE,MAAM,IAAI;;;;;;;;;;;;6BA8BX,MAAM;;mBA+IpB,MAAM,MAAM,MAAM;mBAsBP,MAAM;;2BAEE,MAAM;;;0BAjLnB,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC;EA8LhD"}
|