centaurus-cli 2.4.0 → 2.5.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/README.md +151 -1
- package/dist/cli-adapter.d.ts +41 -2
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +407 -79
- package/dist/cli-adapter.js.map +1 -1
- package/dist/config/types.d.ts +23 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +20 -0
- package/dist/config/types.js.map +1 -1
- package/dist/context/__tests__/command-detector.test.d.ts +14 -0
- package/dist/context/__tests__/command-detector.test.d.ts.map +1 -0
- package/dist/context/__tests__/command-detector.test.js +318 -0
- package/dist/context/__tests__/command-detector.test.js.map +1 -0
- package/dist/context/__tests__/context-manager.test.d.ts +16 -0
- package/dist/context/__tests__/context-manager.test.d.ts.map +1 -0
- package/dist/context/__tests__/context-manager.test.js +375 -0
- package/dist/context/__tests__/context-manager.test.js.map +1 -0
- package/dist/context/__tests__/error-handling.test.d.ts +15 -0
- package/dist/context/__tests__/error-handling.test.d.ts.map +1 -0
- package/dist/context/__tests__/error-handling.test.js +447 -0
- package/dist/context/__tests__/error-handling.test.js.map +1 -0
- package/dist/context/command-detector.d.ts +50 -0
- package/dist/context/command-detector.d.ts.map +1 -0
- package/dist/context/command-detector.js +72 -0
- package/dist/context/command-detector.js.map +1 -0
- package/dist/context/context-manager.d.ts +144 -0
- package/dist/context/context-manager.d.ts.map +1 -0
- package/dist/context/context-manager.js +487 -0
- package/dist/context/context-manager.js.map +1 -0
- package/dist/context/handlers/__tests__/docker-handler.test.d.ts +13 -0
- package/dist/context/handlers/__tests__/docker-handler.test.d.ts.map +1 -0
- package/dist/context/handlers/__tests__/docker-handler.test.js +285 -0
- package/dist/context/handlers/__tests__/docker-handler.test.js.map +1 -0
- package/dist/context/handlers/__tests__/ssh-handler.test.d.ts +13 -0
- package/dist/context/handlers/__tests__/ssh-handler.test.d.ts.map +1 -0
- package/dist/context/handlers/__tests__/ssh-handler.test.js +251 -0
- package/dist/context/handlers/__tests__/ssh-handler.test.js.map +1 -0
- package/dist/context/handlers/__tests__/wsl-handler.test.d.ts +7 -0
- package/dist/context/handlers/__tests__/wsl-handler.test.d.ts.map +1 -0
- package/dist/context/handlers/__tests__/wsl-handler.test.js +331 -0
- package/dist/context/handlers/__tests__/wsl-handler.test.js.map +1 -0
- package/dist/context/handlers/docker-handler.d.ts +111 -0
- package/dist/context/handlers/docker-handler.d.ts.map +1 -0
- package/dist/context/handlers/docker-handler.js +439 -0
- package/dist/context/handlers/docker-handler.js.map +1 -0
- package/dist/context/handlers/ssh-handler.d.ts +120 -0
- package/dist/context/handlers/ssh-handler.d.ts.map +1 -0
- package/dist/context/handlers/ssh-handler.js +523 -0
- package/dist/context/handlers/ssh-handler.js.map +1 -0
- package/dist/context/handlers/wsl-handler.d.ts +128 -0
- package/dist/context/handlers/wsl-handler.d.ts.map +1 -0
- package/dist/context/handlers/wsl-handler.js +590 -0
- package/dist/context/handlers/wsl-handler.js.map +1 -0
- package/dist/context/index.d.ts +8 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +7 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/subshell-handler.d.ts +130 -0
- package/dist/context/subshell-handler.d.ts.map +1 -0
- package/dist/context/subshell-handler.js +5 -0
- package/dist/context/subshell-handler.js.map +1 -0
- package/dist/context/types.d.ts +70 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +34 -0
- package/dist/context/types.js.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/services/__tests__/ai-context-injector.test.d.ts +15 -0
- package/dist/services/__tests__/ai-context-injector.test.d.ts.map +1 -0
- package/dist/services/__tests__/ai-context-injector.test.js +326 -0
- package/dist/services/__tests__/ai-context-injector.test.js.map +1 -0
- package/dist/services/ai-context-injector.d.ts +41 -0
- package/dist/services/ai-context-injector.d.ts.map +1 -0
- package/dist/services/ai-context-injector.js +97 -0
- package/dist/services/ai-context-injector.js.map +1 -0
- package/dist/services/ai-service-client.d.ts +4 -1
- package/dist/services/ai-service-client.d.ts.map +1 -1
- package/dist/services/ai-service-client.js +5 -1
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/src/context/types.js +27 -0
- package/dist/src/services/ai-context-injector.js +96 -0
- package/dist/src/services/ai-service-client.js +270 -0
- package/dist/src/services/api-client.js +349 -0
- package/dist/src/tools/types.js +1 -0
- package/dist/src/types/index.js +1 -0
- package/dist/test/context/types.js +27 -0
- package/dist/test/services/__tests__/ai-context-injector.test.js +325 -0
- package/dist/test/services/ai-context-injector.js +96 -0
- package/dist/test/services/ai-service-client.js +270 -0
- package/dist/test/services/api-client.js +349 -0
- package/dist/test/tools/types.js +1 -0
- package/dist/test/types/index.js +1 -0
- package/dist/test-ai-context-injector.js +97 -0
- package/dist/test-ssh-handler.d.ts +8 -0
- package/dist/test-ssh-handler.d.ts.map +1 -0
- package/dist/test-ssh-handler.js +198 -0
- package/dist/test-ssh-handler.js.map +1 -0
- package/dist/tools/command.d.ts.map +1 -1
- package/dist/tools/command.js +123 -46
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/file-ops.d.ts.map +1 -1
- package/dist/tools/file-ops.js +115 -48
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/tools/types.d.ts +1 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +41 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/components/App.d.ts +3 -0
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +213 -46
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/Breadcrumbs.d.ts +12 -0
- package/dist/ui/components/Breadcrumbs.d.ts.map +1 -0
- package/dist/ui/components/Breadcrumbs.js +62 -0
- package/dist/ui/components/Breadcrumbs.js.map +1 -0
- package/dist/ui/components/CodeBlock.js +1 -1
- package/dist/ui/components/CodeBlock.js.map +1 -1
- package/dist/ui/components/DiffViewer.js +1 -1
- package/dist/ui/components/DiffViewer.js.map +1 -1
- package/dist/ui/components/FileViewerScreen.d.ts +14 -0
- package/dist/ui/components/FileViewerScreen.d.ts.map +1 -0
- package/dist/ui/components/FileViewerScreen.js +74 -0
- package/dist/ui/components/FileViewerScreen.js.map +1 -0
- package/dist/ui/components/InputBox.d.ts +2 -0
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +85 -41
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/MessageDisplay.js +3 -28
- package/dist/ui/components/MessageDisplay.js.map +1 -1
- package/dist/ui/components/PasswordPrompt.d.ts +9 -0
- package/dist/ui/components/PasswordPrompt.d.ts.map +1 -0
- package/dist/ui/components/PasswordPrompt.js +20 -0
- package/dist/ui/components/PasswordPrompt.js.map +1 -0
- package/dist/ui/components/StatusBar.d.ts +2 -0
- package/dist/ui/components/StatusBar.d.ts.map +1 -1
- package/dist/ui/components/StatusBar.js +36 -1
- package/dist/ui/components/StatusBar.js.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +13 -24
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/ui/components/VersionUpdatePrompt.d.ts +10 -0
- package/dist/ui/components/VersionUpdatePrompt.d.ts.map +1 -0
- package/dist/ui/components/VersionUpdatePrompt.js +41 -0
- package/dist/ui/components/VersionUpdatePrompt.js.map +1 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +38 -10
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/version-checker.d.ts +14 -0
- package/dist/utils/version-checker.d.ts.map +1 -0
- package/dist/utils/version-checker.js +63 -0
- package/dist/utils/version-checker.js.map +1 -0
- package/package.json +71 -69
package/dist/tools/command.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as shellUtils from '../utils/shell.js';
|
|
2
1
|
import * as fs from 'fs';
|
|
3
2
|
import * as path from 'path';
|
|
4
3
|
export const executeCommandTool = {
|
|
@@ -18,29 +17,91 @@ export const executeCommandTool = {
|
|
|
18
17
|
},
|
|
19
18
|
async execute(args, context) {
|
|
20
19
|
const { command } = args;
|
|
20
|
+
const contextManager = context.contextManager;
|
|
21
|
+
const currentContext = contextManager.getCurrentContext();
|
|
21
22
|
// Special handling for cd command - change the actual working directory
|
|
22
23
|
const cdMatch = command.match(/^cd\s+(.+)$/);
|
|
23
24
|
if (cdMatch) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
if (currentContext.type === 'local') {
|
|
26
|
+
const targetDir = cdMatch[1].trim();
|
|
27
|
+
const newCwd = path.resolve(context.cwd, targetDir);
|
|
28
|
+
if (!fs.existsSync(newCwd)) {
|
|
29
|
+
throw new Error(`Directory not found: ${targetDir}`);
|
|
30
|
+
}
|
|
31
|
+
if (!fs.statSync(newCwd).isDirectory()) {
|
|
32
|
+
throw new Error(`Not a directory: ${targetDir}`);
|
|
33
|
+
}
|
|
34
|
+
contextManager.updateWorkingDirectory(newCwd);
|
|
35
|
+
return `Changed directory to: ${newCwd}`;
|
|
28
36
|
}
|
|
29
|
-
|
|
30
|
-
|
|
37
|
+
else {
|
|
38
|
+
// Execute cd in subshell
|
|
39
|
+
const result = await contextManager.executeCommand(command);
|
|
40
|
+
if (result.exitCode === 0) {
|
|
41
|
+
return `Changed directory to: ${currentContext.metadata.workingDirectory}`;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
throw new Error(result.stderr || 'Failed to change directory');
|
|
45
|
+
}
|
|
31
46
|
}
|
|
32
|
-
|
|
33
|
-
|
|
47
|
+
}
|
|
48
|
+
// Check for long-running commands
|
|
49
|
+
const longRunningPatterns = [
|
|
50
|
+
/npm\s+run\s+dev/,
|
|
51
|
+
/npm\s+run\s+start/,
|
|
52
|
+
/npm\s+start/,
|
|
53
|
+
/yarn\s+dev/,
|
|
54
|
+
/yarn\s+start/,
|
|
55
|
+
/pnpm\s+dev/,
|
|
56
|
+
/pnpm\s+start/,
|
|
57
|
+
/python\s+-m\s+http\.server/,
|
|
58
|
+
/python3\s+-m\s+http\.server/,
|
|
59
|
+
/php\s+-S/,
|
|
60
|
+
/ruby\s+-run\s+-e\s+httpd/,
|
|
61
|
+
/serve\s+/,
|
|
62
|
+
/http-server/,
|
|
63
|
+
/webpack\s+--watch/,
|
|
64
|
+
/webpack-dev-server/,
|
|
65
|
+
/vite(?:\s+(?!build)|\s*$)/,
|
|
66
|
+
/next\s+dev/,
|
|
67
|
+
/gatsby\s+develop/,
|
|
68
|
+
/rails\s+server/,
|
|
69
|
+
/rails\s+s\b/,
|
|
70
|
+
/django\s+runserver/,
|
|
71
|
+
/manage\.py\s+runserver/,
|
|
72
|
+
/flask\s+run/,
|
|
73
|
+
/nodemon/,
|
|
74
|
+
/ng\s+serve/,
|
|
75
|
+
/ember\s+serve/,
|
|
76
|
+
/hugo\s+server/,
|
|
77
|
+
/jekyll\s+serve/,
|
|
78
|
+
/docker\s+run.*-d/,
|
|
79
|
+
/docker-compose\s+up/,
|
|
80
|
+
/tail\s+-f/,
|
|
81
|
+
/watch\s+/,
|
|
82
|
+
/less\s+/,
|
|
83
|
+
/more\s+/,
|
|
84
|
+
/vim\s+/,
|
|
85
|
+
/vi\s+/,
|
|
86
|
+
/nano\s+/,
|
|
87
|
+
/emacs\s+/,
|
|
88
|
+
];
|
|
89
|
+
const isLongRunning = longRunningPatterns.some((pattern) => pattern.test(command));
|
|
90
|
+
if (isLongRunning) {
|
|
91
|
+
throw new Error(`This command appears to be a long-running process (like a development server or file watcher). ` +
|
|
92
|
+
`Long-running commands cannot be executed through the AI assistant as they would block execution. ` +
|
|
93
|
+
`Please run this command manually in your terminal:\n\n${command}\n\n` +
|
|
94
|
+
`The AI can help you with other tasks while your server is running.`);
|
|
34
95
|
}
|
|
35
96
|
// Check for risky commands
|
|
36
97
|
const riskyPatterns = [/rm\s+-rf/, /del\s+\/s/, /format/, /dd\s+if=/];
|
|
37
98
|
const isRisky = riskyPatterns.some((pattern) => pattern.test(command));
|
|
38
|
-
const approved = await context.requireApproval(`Execute command: ${command}`, isRisky, undefined, 'execute_command', { command });
|
|
99
|
+
const approved = await context.requireApproval(`Execute command: ${command}${currentContext.type !== 'local' ? ` (in ${currentContext.type} environment)` : ''}`, isRisky, undefined, 'execute_command', { command });
|
|
39
100
|
if (!approved) {
|
|
40
|
-
throw new Error('
|
|
101
|
+
throw new Error('Operation cancelled by user.');
|
|
41
102
|
}
|
|
42
|
-
//
|
|
43
|
-
const result = await
|
|
103
|
+
// Execute command through Context Manager
|
|
104
|
+
const result = await contextManager.executeCommand(command);
|
|
44
105
|
let output = '';
|
|
45
106
|
if (result.stdout && result.stdout.trim()) {
|
|
46
107
|
output += `STDOUT:\n${result.stdout}\n\n`;
|
|
@@ -57,6 +118,9 @@ export const executeCommandTool = {
|
|
|
57
118
|
else {
|
|
58
119
|
output += `Exit Code: ${result.exitCode} (Failed)`;
|
|
59
120
|
}
|
|
121
|
+
if (currentContext.type !== 'local') {
|
|
122
|
+
output += `\n\nExecuted in ${currentContext.type} environment`;
|
|
123
|
+
}
|
|
60
124
|
return output;
|
|
61
125
|
},
|
|
62
126
|
};
|
|
@@ -85,47 +149,60 @@ export const grepSearchTool = {
|
|
|
85
149
|
},
|
|
86
150
|
async execute(args, context) {
|
|
87
151
|
const { pattern, directory = '.', file_pattern } = args;
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
function searchInFile(filePath) {
|
|
95
|
-
try {
|
|
96
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
97
|
-
const lines = content.split('\n');
|
|
98
|
-
lines.forEach((line, index) => {
|
|
99
|
-
if (regex.test(line)) {
|
|
100
|
-
results.push(`${filePath}:${index + 1}: ${line.trim()}`);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
152
|
+
const contextManager = context.contextManager;
|
|
153
|
+
const currentContext = contextManager.getCurrentContext();
|
|
154
|
+
if (currentContext.type === 'local') {
|
|
155
|
+
const searchDir = path.resolve(context.cwd, directory);
|
|
156
|
+
if (!fs.existsSync(searchDir)) {
|
|
157
|
+
throw new Error(`Directory not found: ${directory}`);
|
|
103
158
|
}
|
|
104
|
-
|
|
105
|
-
|
|
159
|
+
const results = [];
|
|
160
|
+
const regex = new RegExp(pattern, 'gi');
|
|
161
|
+
function searchInFile(filePath) {
|
|
162
|
+
try {
|
|
163
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
164
|
+
const lines = content.split('\n');
|
|
165
|
+
lines.forEach((line, index) => {
|
|
166
|
+
if (regex.test(line)) {
|
|
167
|
+
results.push(`${filePath}:${index + 1}: ${line.trim()}`);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
// Skip files that can't be read
|
|
173
|
+
}
|
|
106
174
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
175
|
+
function walkDirectory(dir) {
|
|
176
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
177
|
+
for (const entry of entries) {
|
|
178
|
+
const fullPath = path.join(dir, entry.name);
|
|
179
|
+
if (entry.isDirectory()) {
|
|
180
|
+
if (!entry.name.startsWith('.') && entry.name !== 'node_modules') {
|
|
181
|
+
walkDirectory(fullPath);
|
|
182
|
+
}
|
|
115
183
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
184
|
+
else if (entry.isFile()) {
|
|
185
|
+
if (!file_pattern || entry.name.match(file_pattern)) {
|
|
186
|
+
searchInFile(fullPath);
|
|
187
|
+
}
|
|
120
188
|
}
|
|
121
189
|
}
|
|
122
190
|
}
|
|
191
|
+
walkDirectory(searchDir);
|
|
192
|
+
if (results.length === 0) {
|
|
193
|
+
return `No matches found for pattern: ${pattern}`;
|
|
194
|
+
}
|
|
195
|
+
return `Found ${results.length} matches:\n\n${results.slice(0, 50).join('\n')}${results.length > 50 ? '\n\n... and ' + (results.length - 50) + ' more matches' : ''}`;
|
|
123
196
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
197
|
+
else {
|
|
198
|
+
// Search in subshell
|
|
199
|
+
const searchResults = await contextManager.searchFiles(pattern, directory);
|
|
200
|
+
if (searchResults.length === 0) {
|
|
201
|
+
return `No matches found for pattern: ${pattern} (${currentContext.type} environment)`;
|
|
202
|
+
}
|
|
203
|
+
const results = searchResults.map(result => `${result.file}:${result.line}: ${result.content.trim()}`);
|
|
204
|
+
return `Found ${results.length} matches (${currentContext.type} environment):\n\n${results.slice(0, 50).join('\n')}${results.length > 50 ? '\n\n... and ' + (results.length - 50) + ' more matches' : ''}`;
|
|
127
205
|
}
|
|
128
|
-
return `Found ${results.length} matches:\n\n${results.slice(0, 50).join('\n')}${results.length > 50 ? '\n\n... and ' + (results.length - 50) + ' more matches' : ''}`;
|
|
129
206
|
},
|
|
130
207
|
};
|
|
131
208
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/tools/command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/tools/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-ops.d.ts","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"file-ops.d.ts","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKlC,eAAO,MAAM,YAAY,EAAE,IAyD1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,IA4G3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IA4F1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,IAgD/B,CAAC"}
|
package/dist/tools/file-ops.js
CHANGED
|
@@ -27,13 +27,32 @@ export const readFileTool = {
|
|
|
27
27
|
},
|
|
28
28
|
async execute(args, context) {
|
|
29
29
|
const { file_path, start_line, end_line } = args;
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
const contextManager = context.contextManager;
|
|
31
|
+
const currentContext = contextManager.getCurrentContext();
|
|
32
|
+
// Use Context Manager for file operations
|
|
33
|
+
if (currentContext.type === 'local') {
|
|
34
|
+
const fullPath = path.resolve(context.cwd, file_path);
|
|
35
|
+
if (!fs.existsSync(fullPath)) {
|
|
36
|
+
throw new Error(`File not found: ${file_path}`);
|
|
37
|
+
}
|
|
38
|
+
const content = fileUtils.readFile(fullPath, start_line, end_line);
|
|
39
|
+
const lineCount = content.split('\n').length;
|
|
40
|
+
return `File: ${file_path}\nLines: ${lineCount}\n\n${content}`;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Read from subshell
|
|
44
|
+
const content = await contextManager.readFile(file_path);
|
|
45
|
+
// Apply line range if specified
|
|
46
|
+
let finalContent = content;
|
|
47
|
+
if (start_line !== undefined || end_line !== undefined) {
|
|
48
|
+
const lines = content.split('\n');
|
|
49
|
+
const start = start_line ? start_line - 1 : 0;
|
|
50
|
+
const end = end_line ? end_line : lines.length;
|
|
51
|
+
finalContent = lines.slice(start, end).join('\n');
|
|
52
|
+
}
|
|
53
|
+
const lineCount = finalContent.split('\n').length;
|
|
54
|
+
return `File: ${file_path}\nLines: ${lineCount}\n\n${finalContent}`;
|
|
33
55
|
}
|
|
34
|
-
const content = fileUtils.readFile(fullPath, start_line, end_line);
|
|
35
|
-
const lineCount = content.split('\n').length;
|
|
36
|
-
return `File: ${file_path}\nLines: ${lineCount}\n\n${content}`;
|
|
37
56
|
},
|
|
38
57
|
};
|
|
39
58
|
export const writeFileTool = {
|
|
@@ -57,44 +76,65 @@ export const writeFileTool = {
|
|
|
57
76
|
},
|
|
58
77
|
async execute(args, context) {
|
|
59
78
|
const { file_path, content } = args;
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
if (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
79
|
+
const contextManager = context.contextManager;
|
|
80
|
+
const currentContext = contextManager.getCurrentContext();
|
|
81
|
+
if (currentContext.type === 'local') {
|
|
82
|
+
const fullPath = path.resolve(context.cwd, file_path);
|
|
83
|
+
// Ask for approval if file exists
|
|
84
|
+
if (fs.existsSync(fullPath)) {
|
|
85
|
+
// Show preview of new content for overwrite
|
|
86
|
+
const language = file_path.split('.').pop() || 'text';
|
|
87
|
+
const result = await context.requireApproval(`File ${file_path} already exists. Overwrite it?`, true, {
|
|
88
|
+
type: 'code',
|
|
89
|
+
content,
|
|
90
|
+
language
|
|
91
|
+
}, 'write_file', { file_path, operation: 'overwrite' });
|
|
92
|
+
if (typeof result === 'object' && 'feedback' in result) {
|
|
93
|
+
// User provided feedback - throw special error with feedback
|
|
94
|
+
throw new Error(`USER_FEEDBACK: ${result.feedback}`);
|
|
95
|
+
}
|
|
96
|
+
if (!result) {
|
|
97
|
+
throw new Error('Operation cancelled by user.');
|
|
98
|
+
}
|
|
73
99
|
}
|
|
74
|
-
|
|
75
|
-
|
|
100
|
+
else {
|
|
101
|
+
// Ask for approval to create new file with diff format (all lines as additions)
|
|
102
|
+
// Generate a diff showing all new lines with + prefix
|
|
103
|
+
const lines = content.split('\n');
|
|
104
|
+
const diffLines = lines.map(line => `+${line}`);
|
|
105
|
+
const diffContent = `--- /dev/null\n+++ ${file_path}\n@@ -0,0 +1,${lines.length} @@\n${diffLines.join('\n')}`;
|
|
106
|
+
const result = await context.requireApproval(`Create new file ${file_path}?`, false, {
|
|
107
|
+
type: 'diff',
|
|
108
|
+
content: diffContent
|
|
109
|
+
}, 'write_file', { file_path, operation: 'create' });
|
|
110
|
+
if (typeof result === 'object' && 'feedback' in result) {
|
|
111
|
+
// User provided feedback - throw special error with feedback
|
|
112
|
+
throw new Error(`USER_FEEDBACK: ${result.feedback}`);
|
|
113
|
+
}
|
|
114
|
+
if (!result) {
|
|
115
|
+
throw new Error('Operation cancelled by user.');
|
|
116
|
+
}
|
|
76
117
|
}
|
|
118
|
+
fileUtils.writeFile(fullPath, content);
|
|
119
|
+
return `Successfully wrote ${content.length} characters to ${file_path}`;
|
|
77
120
|
}
|
|
78
121
|
else {
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
content: diffContent
|
|
87
|
-
}, 'write_file', { file_path, operation: 'create' });
|
|
122
|
+
// Write to subshell - always ask for approval
|
|
123
|
+
const language = file_path.split('.').pop() || 'text';
|
|
124
|
+
const result = await context.requireApproval(`Write file ${file_path} in ${currentContext.type} environment?`, true, {
|
|
125
|
+
type: 'code',
|
|
126
|
+
content,
|
|
127
|
+
language
|
|
128
|
+
}, 'write_file', { file_path, operation: 'write_remote' });
|
|
88
129
|
if (typeof result === 'object' && 'feedback' in result) {
|
|
89
|
-
// User provided feedback - throw special error with feedback
|
|
90
130
|
throw new Error(`USER_FEEDBACK: ${result.feedback}`);
|
|
91
131
|
}
|
|
92
132
|
if (!result) {
|
|
93
133
|
throw new Error('Operation cancelled by user.');
|
|
94
134
|
}
|
|
135
|
+
await contextManager.writeFile(file_path, content);
|
|
136
|
+
return `Successfully wrote ${content.length} characters to ${file_path} in ${currentContext.type} environment`;
|
|
95
137
|
}
|
|
96
|
-
fileUtils.writeFile(fullPath, content);
|
|
97
|
-
return `Successfully wrote ${content.length} characters to ${file_path}`;
|
|
98
138
|
},
|
|
99
139
|
};
|
|
100
140
|
export const editFileTool = {
|
|
@@ -122,12 +162,20 @@ export const editFileTool = {
|
|
|
122
162
|
},
|
|
123
163
|
async execute(args, context) {
|
|
124
164
|
const { file_path, search_pattern, replacement } = args;
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
throw new Error(`File not found: ${file_path}`);
|
|
128
|
-
}
|
|
165
|
+
const contextManager = context.contextManager;
|
|
166
|
+
const currentContext = contextManager.getCurrentContext();
|
|
129
167
|
// Read the current content
|
|
130
|
-
|
|
168
|
+
let oldContent;
|
|
169
|
+
if (currentContext.type === 'local') {
|
|
170
|
+
const fullPath = path.resolve(context.cwd, file_path);
|
|
171
|
+
if (!fs.existsSync(fullPath)) {
|
|
172
|
+
throw new Error(`File not found: ${file_path}`);
|
|
173
|
+
}
|
|
174
|
+
oldContent = fs.readFileSync(fullPath, 'utf-8');
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
oldContent = await contextManager.readFile(file_path);
|
|
178
|
+
}
|
|
131
179
|
// Check if pattern exists
|
|
132
180
|
if (!oldContent.includes(search_pattern)) {
|
|
133
181
|
throw new Error(`Pattern not found in file: ${search_pattern.substring(0, 100)}`);
|
|
@@ -142,7 +190,7 @@ export const editFileTool = {
|
|
|
142
190
|
// Build unified diff text for preview
|
|
143
191
|
const patch = Diff.createTwoFilesPatch(file_path, file_path, oldContent, newContent, '', '');
|
|
144
192
|
// Ask for approval with diff preview
|
|
145
|
-
const approved = await context.requireApproval(`Apply these changes to ${file_path}?`, false, {
|
|
193
|
+
const approved = await context.requireApproval(`Apply these changes to ${file_path}${currentContext.type !== 'local' ? ` in ${currentContext.type} environment` : ''}?`, false, {
|
|
146
194
|
type: 'diff',
|
|
147
195
|
content: patch
|
|
148
196
|
}, 'edit_file', { file_path });
|
|
@@ -150,8 +198,14 @@ export const editFileTool = {
|
|
|
150
198
|
throw new Error('Operation cancelled by user.');
|
|
151
199
|
}
|
|
152
200
|
// Apply the changes
|
|
153
|
-
|
|
154
|
-
|
|
201
|
+
if (currentContext.type === 'local') {
|
|
202
|
+
const fullPath = path.resolve(context.cwd, file_path);
|
|
203
|
+
fs.writeFileSync(fullPath, newContent, 'utf-8');
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
await contextManager.writeFile(file_path, newContent);
|
|
207
|
+
}
|
|
208
|
+
return `Successfully replaced pattern in ${file_path}${currentContext.type !== 'local' ? ` (${currentContext.type} environment)` : ''}`;
|
|
155
209
|
},
|
|
156
210
|
};
|
|
157
211
|
export const listDirectoryTool = {
|
|
@@ -175,15 +229,28 @@ export const listDirectoryTool = {
|
|
|
175
229
|
},
|
|
176
230
|
async execute(args, context) {
|
|
177
231
|
const { directory_path, recursive = false } = args;
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
232
|
+
const contextManager = context.contextManager;
|
|
233
|
+
const currentContext = contextManager.getCurrentContext();
|
|
234
|
+
if (currentContext.type === 'local') {
|
|
235
|
+
const fullPath = path.resolve(context.cwd, directory_path);
|
|
236
|
+
if (!fs.existsSync(fullPath)) {
|
|
237
|
+
throw new Error(`Directory not found: ${directory_path}`);
|
|
238
|
+
}
|
|
239
|
+
if (!fs.statSync(fullPath).isDirectory()) {
|
|
240
|
+
throw new Error(`Path is not a directory: ${directory_path}`);
|
|
241
|
+
}
|
|
242
|
+
const contents = fileUtils.listDirectory(fullPath, recursive);
|
|
243
|
+
return `Directory: ${directory_path}\nTotal items: ${contents.length}\n\n${contents.join('\n')}`;
|
|
181
244
|
}
|
|
182
|
-
|
|
183
|
-
|
|
245
|
+
else {
|
|
246
|
+
// List directory in subshell
|
|
247
|
+
const entries = await contextManager.listDirectory(directory_path);
|
|
248
|
+
const contents = entries.map(entry => {
|
|
249
|
+
const type = entry.type === 'directory' ? '[DIR]' : '[FILE]';
|
|
250
|
+
return `${type} ${entry.name}`;
|
|
251
|
+
});
|
|
252
|
+
return `Directory: ${directory_path} (${currentContext.type} environment)\nTotal items: ${contents.length}\n\n${contents.join('\n')}`;
|
|
184
253
|
}
|
|
185
|
-
const contents = fileUtils.listDirectory(fullPath, recursive);
|
|
186
|
-
return `Directory: ${directory_path}\nTotal items: ${contents.length}\n\n${contents.join('\n')}`;
|
|
187
254
|
},
|
|
188
255
|
};
|
|
189
256
|
//# sourceMappingURL=file-ops.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-ops.js","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"file-ops.js","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,CACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EACvE,aAAa,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,EAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACnC,OAAO,CAAC,OAAO,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IACvE,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEzG,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,GAAG,CAAC;IACpB,eAAe,EAAE,CACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EACvE,aAAa,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,EAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACnC,OAAO,CAAC,OAAO,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IACvE,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEzG,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;CACvB"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment context for system prompt generation
|
|
3
|
+
* Sent to backend to inject environment-specific instructions
|
|
4
|
+
*/
|
|
5
|
+
export interface EnvironmentContext {
|
|
6
|
+
os: 'windows' | 'macos' | 'linux';
|
|
7
|
+
platform: string;
|
|
8
|
+
shell: string;
|
|
9
|
+
cwd: string;
|
|
10
|
+
homeDir: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Mode types for different CLI operation modes
|
|
14
|
+
*/
|
|
15
|
+
export type CLIMode = 'default' | 'plan' | 'command';
|
|
16
|
+
/**
|
|
17
|
+
* System prompt options for backend prompt generation
|
|
18
|
+
*/
|
|
19
|
+
export interface SystemPromptOptions {
|
|
20
|
+
includeEnvironmentContext?: boolean;
|
|
21
|
+
environmentContext?: EnvironmentContext;
|
|
22
|
+
mode?: CLIMode;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Completion detection result
|
|
26
|
+
*/
|
|
27
|
+
export interface CompletionDetectionResult {
|
|
28
|
+
isComplete: boolean;
|
|
29
|
+
hasMarker: boolean;
|
|
30
|
+
hasStrongPhrase: boolean;
|
|
31
|
+
shouldContinue: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Agentic loop statistics
|
|
35
|
+
*/
|
|
36
|
+
export interface AgenticLoopStats {
|
|
37
|
+
totalTurns: number;
|
|
38
|
+
totalToolCalls: number;
|
|
39
|
+
completionMethod: 'marker' | 'strong_phrase' | 'no_tools' | 'max_turns' | 'user_stop';
|
|
40
|
+
duration: number;
|
|
41
|
+
}
|
|
1
42
|
export interface ToolExecution {
|
|
2
43
|
toolName: string;
|
|
3
44
|
status: 'executing' | 'completed' | 'error';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,aAAa,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,CAAC;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,QAAQ,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IACtF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,aAAa,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,CAAC;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { SubshellContext } from '../../context/types.js';
|
|
2
3
|
interface AppProps {
|
|
3
4
|
onMessage: (message: string) => Promise<void>;
|
|
4
5
|
initialModel: string;
|
|
@@ -45,6 +46,8 @@ interface AppProps {
|
|
|
45
46
|
onCommandModeChange: (callback: (commandMode: boolean) => void) => void;
|
|
46
47
|
onToggleCommandMode: () => void;
|
|
47
48
|
onCwdChange: (callback: (cwd: string) => void) => void;
|
|
49
|
+
onSubshellContextChange: (callback: (context: SubshellContext) => void) => void;
|
|
50
|
+
onPasswordRequest: (callback: (message: string) => Promise<string>) => void;
|
|
48
51
|
}
|
|
49
52
|
export declare const App: React.FC<AppProps>;
|
|
50
53
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/components/App.tsx"],"names":[],"mappings":"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"}
|