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.
Files changed (195) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +265 -0
  3. package/dist/commands/base.d.ts +26 -0
  4. package/dist/commands/base.d.ts.map +1 -0
  5. package/dist/commands/base.js +3 -0
  6. package/dist/commands/base.js.map +1 -0
  7. package/dist/commands/definitions/clear.d.ts +3 -0
  8. package/dist/commands/definitions/clear.d.ts.map +1 -0
  9. package/dist/commands/definitions/clear.js +12 -0
  10. package/dist/commands/definitions/clear.js.map +1 -0
  11. package/dist/commands/definitions/help.d.ts +3 -0
  12. package/dist/commands/definitions/help.d.ts.map +1 -0
  13. package/dist/commands/definitions/help.js +28 -0
  14. package/dist/commands/definitions/help.js.map +1 -0
  15. package/dist/commands/definitions/init.d.ts +3 -0
  16. package/dist/commands/definitions/init.d.ts.map +1 -0
  17. package/dist/commands/definitions/init.js +23 -0
  18. package/dist/commands/definitions/init.js.map +1 -0
  19. package/dist/commands/definitions/login.d.ts +3 -0
  20. package/dist/commands/definitions/login.d.ts.map +1 -0
  21. package/dist/commands/definitions/login.js +8 -0
  22. package/dist/commands/definitions/login.js.map +1 -0
  23. package/dist/commands/definitions/model.d.ts +3 -0
  24. package/dist/commands/definitions/model.d.ts.map +1 -0
  25. package/dist/commands/definitions/model.js +10 -0
  26. package/dist/commands/definitions/model.js.map +1 -0
  27. package/dist/commands/definitions/reasoning.d.ts +3 -0
  28. package/dist/commands/definitions/reasoning.d.ts.map +1 -0
  29. package/dist/commands/definitions/reasoning.js +21 -0
  30. package/dist/commands/definitions/reasoning.js.map +1 -0
  31. package/dist/commands/definitions/stats.d.ts +3 -0
  32. package/dist/commands/definitions/stats.d.ts.map +1 -0
  33. package/dist/commands/definitions/stats.js +22 -0
  34. package/dist/commands/definitions/stats.js.map +1 -0
  35. package/dist/commands/index.d.ts +6 -0
  36. package/dist/commands/index.d.ts.map +1 -0
  37. package/dist/commands/index.js +38 -0
  38. package/dist/commands/index.js.map +1 -0
  39. package/dist/core/agent.d.ts +41 -0
  40. package/dist/core/agent.d.ts.map +1 -0
  41. package/dist/core/agent.js +266 -0
  42. package/dist/core/agent.js.map +1 -0
  43. package/dist/core/cli.d.ts +3 -0
  44. package/dist/core/cli.d.ts.map +1 -0
  45. package/dist/core/cli.js +48 -0
  46. package/dist/core/cli.js.map +1 -0
  47. package/dist/core/llm/factory.d.ts +12 -0
  48. package/dist/core/llm/factory.d.ts.map +1 -0
  49. package/dist/core/llm/factory.js +44 -0
  50. package/dist/core/llm/factory.js.map +1 -0
  51. package/dist/core/llm/providers/gemini.d.ts +22 -0
  52. package/dist/core/llm/providers/gemini.d.ts.map +1 -0
  53. package/dist/core/llm/providers/gemini.js +167 -0
  54. package/dist/core/llm/providers/gemini.js.map +1 -0
  55. package/dist/core/llm/providers/groq.d.ts +23 -0
  56. package/dist/core/llm/providers/groq.d.ts.map +1 -0
  57. package/dist/core/llm/providers/groq.js +96 -0
  58. package/dist/core/llm/providers/groq.js.map +1 -0
  59. package/dist/core/llm/providers/openai-compatible.d.ts +24 -0
  60. package/dist/core/llm/providers/openai-compatible.d.ts.map +1 -0
  61. package/dist/core/llm/providers/openai-compatible.js +86 -0
  62. package/dist/core/llm/providers/openai-compatible.js.map +1 -0
  63. package/dist/core/llm/types.d.ts +37 -0
  64. package/dist/core/llm/types.d.ts.map +1 -0
  65. package/dist/core/llm/types.js +2 -0
  66. package/dist/core/llm/types.js.map +1 -0
  67. package/dist/core/prompts/system.d.ts +6 -0
  68. package/dist/core/prompts/system.d.ts.map +1 -0
  69. package/dist/core/prompts/system.js +36 -0
  70. package/dist/core/prompts/system.js.map +1 -0
  71. package/dist/tests/proxy-config.test.d.ts +2 -0
  72. package/dist/tests/proxy-config.test.d.ts.map +1 -0
  73. package/dist/tests/proxy-config.test.js +169 -0
  74. package/dist/tests/proxy-config.test.js.map +1 -0
  75. package/dist/tools/tool-schemas.d.ts +36 -0
  76. package/dist/tools/tool-schemas.d.ts.map +1 -0
  77. package/dist/tools/tool-schemas.js +482 -0
  78. package/dist/tools/tool-schemas.js.map +1 -0
  79. package/dist/tools/tools.d.ts +114 -0
  80. package/dist/tools/tools.d.ts.map +1 -0
  81. package/dist/tools/tools.js +1015 -0
  82. package/dist/tools/tools.js.map +1 -0
  83. package/dist/tools/utils/edit-logic.d.ts +9 -0
  84. package/dist/tools/utils/edit-logic.d.ts.map +1 -0
  85. package/dist/tools/utils/edit-logic.js +149 -0
  86. package/dist/tools/utils/edit-logic.js.map +1 -0
  87. package/dist/tools/utils/ripgrep-runner.d.ts +15 -0
  88. package/dist/tools/utils/ripgrep-runner.d.ts.map +1 -0
  89. package/dist/tools/utils/ripgrep-runner.js +90 -0
  90. package/dist/tools/utils/ripgrep-runner.js.map +1 -0
  91. package/dist/tools/validators.d.ts +4 -0
  92. package/dist/tools/validators.d.ts.map +1 -0
  93. package/dist/tools/validators.js +18 -0
  94. package/dist/tools/validators.js.map +1 -0
  95. package/dist/ui/App.d.ts +7 -0
  96. package/dist/ui/App.d.ts.map +1 -0
  97. package/dist/ui/App.js +12 -0
  98. package/dist/ui/App.js.map +1 -0
  99. package/dist/ui/components/core/Chat.d.ts +7 -0
  100. package/dist/ui/components/core/Chat.d.ts.map +1 -0
  101. package/dist/ui/components/core/Chat.js +60 -0
  102. package/dist/ui/components/core/Chat.js.map +1 -0
  103. package/dist/ui/components/core/MessageHistory.d.ts +7 -0
  104. package/dist/ui/components/core/MessageHistory.d.ts.map +1 -0
  105. package/dist/ui/components/core/MessageHistory.js +39 -0
  106. package/dist/ui/components/core/MessageHistory.js.map +1 -0
  107. package/dist/ui/components/core/MessageInput.d.ts +10 -0
  108. package/dist/ui/components/core/MessageInput.d.ts.map +1 -0
  109. package/dist/ui/components/core/MessageInput.js +130 -0
  110. package/dist/ui/components/core/MessageInput.js.map +1 -0
  111. package/dist/ui/components/display/DiffPreview.d.ts +15 -0
  112. package/dist/ui/components/display/DiffPreview.d.ts.map +1 -0
  113. package/dist/ui/components/display/DiffPreview.js +298 -0
  114. package/dist/ui/components/display/DiffPreview.js.map +1 -0
  115. package/dist/ui/components/display/Stats.d.ts +19 -0
  116. package/dist/ui/components/display/Stats.d.ts.map +1 -0
  117. package/dist/ui/components/display/Stats.js +31 -0
  118. package/dist/ui/components/display/Stats.js.map +1 -0
  119. package/dist/ui/components/display/TokenMetrics.d.ts +11 -0
  120. package/dist/ui/components/display/TokenMetrics.d.ts.map +1 -0
  121. package/dist/ui/components/display/TokenMetrics.js +16 -0
  122. package/dist/ui/components/display/TokenMetrics.js.map +1 -0
  123. package/dist/ui/components/display/ToolHistoryItem.d.ts +7 -0
  124. package/dist/ui/components/display/ToolHistoryItem.d.ts.map +1 -0
  125. package/dist/ui/components/display/ToolHistoryItem.js +102 -0
  126. package/dist/ui/components/display/ToolHistoryItem.js.map +1 -0
  127. package/dist/ui/components/input-overlays/ErrorRetry.d.ts +8 -0
  128. package/dist/ui/components/input-overlays/ErrorRetry.d.ts.map +1 -0
  129. package/dist/ui/components/input-overlays/ErrorRetry.js +6 -0
  130. package/dist/ui/components/input-overlays/ErrorRetry.js.map +1 -0
  131. package/dist/ui/components/input-overlays/Login.d.ts +7 -0
  132. package/dist/ui/components/input-overlays/Login.d.ts.map +1 -0
  133. package/dist/ui/components/input-overlays/Login.js +32 -0
  134. package/dist/ui/components/input-overlays/Login.js.map +1 -0
  135. package/dist/ui/components/input-overlays/MaxIterationsContinue.d.ts +8 -0
  136. package/dist/ui/components/input-overlays/MaxIterationsContinue.d.ts.map +1 -0
  137. package/dist/ui/components/input-overlays/MaxIterationsContinue.js +32 -0
  138. package/dist/ui/components/input-overlays/MaxIterationsContinue.js.map +1 -0
  139. package/dist/ui/components/input-overlays/ModelSelector.d.ts +12 -0
  140. package/dist/ui/components/input-overlays/ModelSelector.d.ts.map +1 -0
  141. package/dist/ui/components/input-overlays/ModelSelector.js +114 -0
  142. package/dist/ui/components/input-overlays/ModelSelector.js.map +1 -0
  143. package/dist/ui/components/input-overlays/PendingToolApproval.d.ts +10 -0
  144. package/dist/ui/components/input-overlays/PendingToolApproval.d.ts.map +1 -0
  145. package/dist/ui/components/input-overlays/PendingToolApproval.js +51 -0
  146. package/dist/ui/components/input-overlays/PendingToolApproval.js.map +1 -0
  147. package/dist/ui/components/input-overlays/SlashCommandSuggestions.d.ts +8 -0
  148. package/dist/ui/components/input-overlays/SlashCommandSuggestions.d.ts.map +1 -0
  149. package/dist/ui/components/input-overlays/SlashCommandSuggestions.js +13 -0
  150. package/dist/ui/components/input-overlays/SlashCommandSuggestions.js.map +1 -0
  151. package/dist/ui/hooks/useAgent.d.ts +41 -0
  152. package/dist/ui/hooks/useAgent.d.ts.map +1 -0
  153. package/dist/ui/hooks/useAgent.js +205 -0
  154. package/dist/ui/hooks/useAgent.js.map +1 -0
  155. package/dist/ui/hooks/useMouseScroll.d.ts +3 -0
  156. package/dist/ui/hooks/useMouseScroll.d.ts.map +1 -0
  157. package/dist/ui/hooks/useMouseScroll.js +32 -0
  158. package/dist/ui/hooks/useMouseScroll.js.map +1 -0
  159. package/dist/ui/hooks/useSessionStats.d.ts +20 -0
  160. package/dist/ui/hooks/useSessionStats.d.ts.map +1 -0
  161. package/dist/ui/hooks/useSessionStats.js +36 -0
  162. package/dist/ui/hooks/useSessionStats.js.map +1 -0
  163. package/dist/ui/hooks/useTokenMetrics.d.ts +21 -0
  164. package/dist/ui/hooks/useTokenMetrics.d.ts.map +1 -0
  165. package/dist/ui/hooks/useTokenMetrics.js +102 -0
  166. package/dist/ui/hooks/useTokenMetrics.js.map +1 -0
  167. package/dist/ui/utils/CodeColorizer.d.ts +5 -0
  168. package/dist/ui/utils/CodeColorizer.d.ts.map +1 -0
  169. package/dist/ui/utils/CodeColorizer.js +47 -0
  170. package/dist/ui/utils/CodeColorizer.js.map +1 -0
  171. package/dist/utils/constants.d.ts +8 -0
  172. package/dist/utils/constants.d.ts.map +1 -0
  173. package/dist/utils/constants.js +104 -0
  174. package/dist/utils/constants.js.map +1 -0
  175. package/dist/utils/context.d.ts +36 -0
  176. package/dist/utils/context.d.ts.map +1 -0
  177. package/dist/utils/context.js +239 -0
  178. package/dist/utils/context.js.map +1 -0
  179. package/dist/utils/file-ops.d.ts +21 -0
  180. package/dist/utils/file-ops.d.ts.map +1 -0
  181. package/dist/utils/file-ops.js +125 -0
  182. package/dist/utils/file-ops.js.map +1 -0
  183. package/dist/utils/local-settings.d.ts +18 -0
  184. package/dist/utils/local-settings.d.ts.map +1 -0
  185. package/dist/utils/local-settings.js +176 -0
  186. package/dist/utils/local-settings.js.map +1 -0
  187. package/dist/utils/markdown.d.ts +13 -0
  188. package/dist/utils/markdown.d.ts.map +1 -0
  189. package/dist/utils/markdown.js +122 -0
  190. package/dist/utils/markdown.js.map +1 -0
  191. package/dist/utils/proxy-config.d.ts +25 -0
  192. package/dist/utils/proxy-config.d.ts.map +1 -0
  193. package/dist/utils/proxy-config.js +145 -0
  194. package/dist/utils/proxy-config.js.map +1 -0
  195. 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,7 @@
1
+ interface LoginProps {
2
+ onSubmit: (apiKey: string) => void;
3
+ onCancel: () => void;
4
+ }
5
+ export default function Login({ onSubmit, onCancel }: LoginProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=Login.d.ts.map
@@ -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":"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"}
@@ -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"}