antri_cli 1.57.4 → 1.57.6
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 +71 -2
- package/assets/architecture_diagram.jpeg +0 -0
- package/assets/architecture_diagram.jpg +0 -0
- package/assets/architecture_diagram.png +0 -0
- package/dist/cli/prompt.d.ts.map +1 -1
- package/dist/cli/prompt.js +8 -1
- package/dist/cli/prompt.js.map +1 -1
- package/dist/cli/promptToolkit.d.ts.map +1 -1
- package/dist/cli/promptToolkit.js +2 -0
- package/dist/cli/promptToolkit.js.map +1 -1
- package/dist/cli/shortcuts.d.ts.map +1 -1
- package/dist/cli/shortcuts.js +15 -0
- package/dist/cli/shortcuts.js.map +1 -1
- package/dist/core/agent.d.ts +1 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +57 -16
- package/dist/core/agent.js.map +1 -1
- package/dist/core/artifactManager.d.ts +2 -2
- package/dist/core/artifactManager.d.ts.map +1 -1
- package/dist/core/artifactManager.js +59 -4
- package/dist/core/artifactManager.js.map +1 -1
- package/dist/core/config.d.ts +6 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +61 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/debugger.d.ts +39 -0
- package/dist/core/debugger.d.ts.map +1 -1
- package/dist/core/debugger.js +324 -21
- package/dist/core/debugger.js.map +1 -1
- package/dist/core/fixer.d.ts +22 -0
- package/dist/core/fixer.d.ts.map +1 -0
- package/dist/core/fixer.js +208 -0
- package/dist/core/fixer.js.map +1 -0
- package/dist/core/updater.d.ts +1 -1
- package/dist/core/updater.js +1 -1
- package/dist/desktop/public/app.js +98 -53
- package/dist/desktop/public/index.html +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/core/debugger.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import os from 'os';
|
|
1
4
|
import chalk from 'chalk';
|
|
2
5
|
import { createProvider } from '../providers/index.js';
|
|
6
|
+
import { configManager } from './config.js';
|
|
3
7
|
import { log } from '../utils/logger.js';
|
|
4
8
|
export class SelfDebugger {
|
|
5
9
|
/**
|
|
@@ -26,34 +30,313 @@ export class SelfDebugger {
|
|
|
26
30
|
console.log(chalk.hex('#38bdf8')(`💡 [Self-Debugger] Root cause: ${diagnosis.rootCause}`));
|
|
27
31
|
console.log(chalk.hex('#818cf8')(`🔧 [Self-Debugger] Applying patch: ${diagnosis.fixSummary}`));
|
|
28
32
|
currentArgs = diagnosis.patchArgs;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
try {
|
|
34
|
+
// Re-execute with patched arguments
|
|
35
|
+
const retryResult = await executeFn(toolCall.function.name, currentArgs, toolCall.id);
|
|
36
|
+
if (!retryResult.error) {
|
|
37
|
+
log.success(`✨ [Self-Debugger] Successfully self-healed '${toolCall.function.name}' on attempt ${attempts}!`);
|
|
38
|
+
return {
|
|
39
|
+
repaired: true,
|
|
40
|
+
attempts,
|
|
41
|
+
rootCause: diagnosis.rootCause,
|
|
42
|
+
repairedArgs: currentArgs,
|
|
43
|
+
repairedResult: retryResult,
|
|
44
|
+
fixSummary: diagnosis.fixSummary,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
lastError = retryResult.output;
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
lastError = err.message || 'Execution exception';
|
|
41
51
|
}
|
|
42
|
-
lastError = retryResult.output;
|
|
43
52
|
}
|
|
53
|
+
// Gracefully handle unresolvable tool errors without crashing ANTRI
|
|
54
|
+
const finalDiagnosis = `Unable to automatically heal tool '${toolCall.function.name}' after ${attempts} attempts: ${lastError.slice(0, 200)}`;
|
|
55
|
+
log.warn(`⚠️ [Self-Debugger] ${finalDiagnosis}`);
|
|
44
56
|
return {
|
|
45
57
|
repaired: false,
|
|
46
58
|
attempts,
|
|
47
|
-
rootCause:
|
|
48
|
-
fixSummary: 'Manual inspection
|
|
59
|
+
rootCause: finalDiagnosis,
|
|
60
|
+
fixSummary: 'Manual inspection recommended',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Diagnoses internal errors, network failures, or API crashes blocking ANTRI
|
|
65
|
+
*/
|
|
66
|
+
static diagnoseAntriError(error, config) {
|
|
67
|
+
const rawMessage = typeof error === 'string' ? error : (error?.message || error?.toString() || 'Unknown error');
|
|
68
|
+
const lower = rawMessage.toLowerCase();
|
|
69
|
+
// 1. Authentication & API Key Errors
|
|
70
|
+
if (lower.includes('401') || lower.includes('unauthorized') || lower.includes('invalid api key') || lower.includes('incorrect api key') || lower.includes('api_key_invalid')) {
|
|
71
|
+
const activeStatus = configManager.hasActiveApiKey(config.provider);
|
|
72
|
+
return {
|
|
73
|
+
isError: true,
|
|
74
|
+
blockingBug: `Invalid or missing API key for active provider '${config.provider}'`,
|
|
75
|
+
component: 'provider',
|
|
76
|
+
technicalDetails: rawMessage,
|
|
77
|
+
recommendedFix: `Set a valid API key with '/key ${config.provider} <your-api-key>' or switch provider with '/provider'.`,
|
|
78
|
+
quickActions: [
|
|
79
|
+
{ label: 'Set API Key', command: `/key ${config.provider} <your-key>` },
|
|
80
|
+
{ label: 'Switch Provider', command: '/provider' },
|
|
81
|
+
],
|
|
82
|
+
autoHealed: false,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// 2. Rate Limits & Quotas (429)
|
|
86
|
+
if (lower.includes('429') || lower.includes('rate limit') || lower.includes('quota') || lower.includes('tokens per minute') || lower.includes('resource_exhausted')) {
|
|
87
|
+
return {
|
|
88
|
+
isError: true,
|
|
89
|
+
blockingBug: `API rate limit or quota exceeded on provider '${config.provider}'`,
|
|
90
|
+
component: 'provider',
|
|
91
|
+
technicalDetails: rawMessage,
|
|
92
|
+
recommendedFix: `Wait a moment before retrying, switch to a lighter model with '/models', or choose another provider with '/provider'.`,
|
|
93
|
+
quickActions: [
|
|
94
|
+
{ label: 'Pick Different Model', command: '/models' },
|
|
95
|
+
{ label: 'Switch Provider', command: '/provider' },
|
|
96
|
+
],
|
|
97
|
+
autoHealed: false,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// 3. Model Not Found / Unsupported (404)
|
|
101
|
+
if (lower.includes('404') || lower.includes('model not found') || lower.includes('not found') || lower.includes('model_not_found') || lower.includes('does not exist')) {
|
|
102
|
+
return {
|
|
103
|
+
isError: true,
|
|
104
|
+
blockingBug: `Model '${config.model}' was not found or is unsupported by '${config.provider}'`,
|
|
105
|
+
component: 'provider',
|
|
106
|
+
technicalDetails: rawMessage,
|
|
107
|
+
recommendedFix: `Select a verified model for ${config.provider} by typing '/models' or '/model'.`,
|
|
108
|
+
quickActions: [
|
|
109
|
+
{ label: 'Select Verified Model', command: '/models' },
|
|
110
|
+
],
|
|
111
|
+
autoHealed: false,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
// 4. Network & Connection Failures
|
|
115
|
+
if (lower.includes('econnrefused') || lower.includes('enotfound') || lower.includes('etimedout') || lower.includes('fetch failed') || lower.includes('network error') || lower.includes('socket hang up')) {
|
|
116
|
+
return {
|
|
117
|
+
isError: true,
|
|
118
|
+
blockingBug: `Network connection failed while communicating with '${config.provider}'`,
|
|
119
|
+
component: 'network',
|
|
120
|
+
technicalDetails: rawMessage,
|
|
121
|
+
recommendedFix: `Check your internet connection, proxy settings, or local Ollama server status (if using Ollama).`,
|
|
122
|
+
quickActions: [
|
|
123
|
+
{ label: 'Run Self-Healing Health Check', command: '/selfheal' },
|
|
124
|
+
],
|
|
125
|
+
autoHealed: false,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// 5. Session / JSON Storage Corruption
|
|
129
|
+
if (lower.includes('unexpected token') || lower.includes('json parse') || lower.includes('is not valid json') || lower.includes('syntaxerror: json')) {
|
|
130
|
+
return {
|
|
131
|
+
isError: true,
|
|
132
|
+
blockingBug: `Corrupted session or profile JSON data detected`,
|
|
133
|
+
component: 'session',
|
|
134
|
+
technicalDetails: rawMessage,
|
|
135
|
+
recommendedFix: `Type '/new' to start a clean chat session or '/selfheal' to auto-repair corrupted local data files.`,
|
|
136
|
+
quickActions: [
|
|
137
|
+
{ label: 'Start Clean Session', command: '/new' },
|
|
138
|
+
{ label: 'Auto-Repair Storage', command: '/selfheal' },
|
|
139
|
+
],
|
|
140
|
+
autoHealed: false,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
// 6. Max Tool Recursion Depth Guard
|
|
144
|
+
if (lower.includes('max agent tool iteration depth reached') || lower.includes('recursion')) {
|
|
145
|
+
return {
|
|
146
|
+
isError: true,
|
|
147
|
+
blockingBug: `Agent safety loop limit reached (max 6 consecutive tool calls)`,
|
|
148
|
+
component: 'tool',
|
|
149
|
+
technicalDetails: rawMessage,
|
|
150
|
+
recommendedFix: `Break your request down into smaller steps or switch to '/plan' mode for structured execution.`,
|
|
151
|
+
quickActions: [
|
|
152
|
+
{ label: 'Switch to Plan Mode', command: '/plan' },
|
|
153
|
+
],
|
|
154
|
+
autoHealed: false,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
// 7. File System & Permissions
|
|
158
|
+
if (lower.includes('eacces') || lower.includes('eperm') || lower.includes('operation not permitted') || lower.includes('ebusy') || lower.includes('locked')) {
|
|
159
|
+
return {
|
|
160
|
+
isError: true,
|
|
161
|
+
blockingBug: `File system permission or file lock restriction encountered`,
|
|
162
|
+
component: 'filesystem',
|
|
163
|
+
technicalDetails: rawMessage,
|
|
164
|
+
recommendedFix: `Ensure ANTRI has write permissions in the workspace directory and that files are not locked by other processes.`,
|
|
165
|
+
autoHealed: false,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// Default Runtime Diagnosis
|
|
169
|
+
return {
|
|
170
|
+
isError: true,
|
|
171
|
+
blockingBug: `Unexpected internal runtime issue: ${rawMessage.slice(0, 160)}`,
|
|
172
|
+
component: 'runtime',
|
|
173
|
+
technicalDetails: rawMessage,
|
|
174
|
+
recommendedFix: `Check parameters, review recent changes, or type '/selfheal' to run automated environment diagnostics.`,
|
|
175
|
+
quickActions: [
|
|
176
|
+
{ label: 'Run Self-Heal Diagnostics', command: '/selfheal' },
|
|
177
|
+
{ label: 'Start New Session', command: '/new' },
|
|
178
|
+
],
|
|
179
|
+
autoHealed: false,
|
|
49
180
|
};
|
|
50
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Robust ANTRI Error Boundary: Diagnoses blocking bugs, attempts auto-healing,
|
|
184
|
+
* renders diagnostic report, and cleanly returns to message loop without crashing.
|
|
185
|
+
*/
|
|
186
|
+
static async handleAntriError(error, config, suppressLog = false) {
|
|
187
|
+
const diagnosis = this.diagnoseAntriError(error, config);
|
|
188
|
+
// 1. Attempt Auto-Healing Strategies
|
|
189
|
+
// Auto-Healing Strategy A: Corrupted session storage repair
|
|
190
|
+
if (diagnosis.component === 'session') {
|
|
191
|
+
try {
|
|
192
|
+
const { sessionManager } = await import('./sessionManager.js');
|
|
193
|
+
sessionManager.createSession('Recovered Session');
|
|
194
|
+
diagnosis.autoHealed = true;
|
|
195
|
+
diagnosis.healedMessage = 'Auto-repaired session state and initialized fresh context.';
|
|
196
|
+
}
|
|
197
|
+
catch { }
|
|
198
|
+
}
|
|
199
|
+
// Auto-Healing Strategy B: Auto-fallback provider check
|
|
200
|
+
if (diagnosis.component === 'provider' && !diagnosis.autoHealed) {
|
|
201
|
+
const candidates = [
|
|
202
|
+
{ provider: 'cerebras', model: 'gpt-oss-120b' },
|
|
203
|
+
{ provider: 'gemini', model: 'gemini-2.5-flash' },
|
|
204
|
+
{ provider: 'openai', model: 'gpt-4o' },
|
|
205
|
+
{ provider: 'deepseek', model: 'deepseek-v4-flash-(latest)' },
|
|
206
|
+
{ provider: 'anthropic', model: 'claude-3-7-sonnet-20250219' },
|
|
207
|
+
];
|
|
208
|
+
for (const cand of candidates) {
|
|
209
|
+
if (cand.provider !== config.provider) {
|
|
210
|
+
const status = configManager.hasActiveApiKey(cand.provider);
|
|
211
|
+
if (status.configured) {
|
|
212
|
+
diagnosis.recommendedFix += ` (Detected ready API key for '${cand.provider}'. Switch with '/provider ${cand.provider}')`;
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// 2. Render Diagnostic Report to user if not fully healed
|
|
219
|
+
if (!suppressLog) {
|
|
220
|
+
this.renderDiagnosticReport(diagnosis);
|
|
221
|
+
}
|
|
222
|
+
const fallbackResponse = `⚠️ [ANTRI Self-Debugger] Diagnosed issue: ${diagnosis.blockingBug}. ${diagnosis.recommendedFix}`;
|
|
223
|
+
return {
|
|
224
|
+
healed: diagnosis.autoHealed,
|
|
225
|
+
diagnosis,
|
|
226
|
+
fallbackResponse,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Formats and prints a clean diagnostic box in the terminal
|
|
231
|
+
*/
|
|
232
|
+
static renderDiagnosticReport(diagnosis) {
|
|
233
|
+
console.log();
|
|
234
|
+
const border = chalk.hex('#f43f5e')('─'.repeat(70));
|
|
235
|
+
console.log(chalk.bold.hex('#f43f5e')('┌─ 🛠️ ANTRI SELF-DEBUGGER · BLOCKING BUG DIAGNOSED ───────────────────┐'));
|
|
236
|
+
console.log(` ${chalk.bold.white('🚨 Blocking Issue:')} ${chalk.hex('#fca5a5')(diagnosis.blockingBug)}`);
|
|
237
|
+
console.log(` ${chalk.bold.white('📦 Component:')} ${chalk.hex('#38bdf8')(diagnosis.component.toUpperCase())}`);
|
|
238
|
+
if (diagnosis.technicalDetails && diagnosis.technicalDetails !== diagnosis.blockingBug) {
|
|
239
|
+
console.log(` ${chalk.bold.white('🔍 Tech Details:')} ${chalk.hex('#94a3b8')(diagnosis.technicalDetails.slice(0, 180))}`);
|
|
240
|
+
}
|
|
241
|
+
console.log(` ${chalk.bold.white('💡 Recommended Fix:')} ${chalk.hex('#86efac')(diagnosis.recommendedFix)}`);
|
|
242
|
+
if (diagnosis.quickActions && diagnosis.quickActions.length > 0) {
|
|
243
|
+
console.log(` ${chalk.bold.white('⚡ Quick Actions:')}`);
|
|
244
|
+
for (const action of diagnosis.quickActions) {
|
|
245
|
+
console.log(` • ${chalk.cyan(action.command || action.label)} - ${chalk.hex('#cbd5e1')(action.label)}`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
console.log(chalk.bold.hex('#f43f5e')('└──────────────────────────────────────────────────────────────────────┘'));
|
|
249
|
+
console.log(chalk.hex('#94a3b8')('✨ Returning to message page. You can continue typing below:'));
|
|
250
|
+
console.log();
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Full ANTRI Health & Self-Healing Doctor
|
|
254
|
+
*/
|
|
255
|
+
static async runSelfDoctor(config) {
|
|
256
|
+
console.log(chalk.bold.hex('#c084fc')('\n🩺 ANTRI System Health & Self-Healing Diagnostics'));
|
|
257
|
+
console.log(chalk.hex('#334155')('═'.repeat(65)));
|
|
258
|
+
const issues = [];
|
|
259
|
+
let repairedCount = 0;
|
|
260
|
+
// 1. Check Global Directories
|
|
261
|
+
const globalDir = path.join(os.homedir(), '.antri');
|
|
262
|
+
if (!fs.existsSync(globalDir)) {
|
|
263
|
+
try {
|
|
264
|
+
fs.mkdirSync(globalDir, { recursive: true });
|
|
265
|
+
repairedCount++;
|
|
266
|
+
console.log(chalk.green(' ✔ Created global configuration directory (~/.antri)'));
|
|
267
|
+
}
|
|
268
|
+
catch (err) {
|
|
269
|
+
issues.push(`Cannot create ~/.antri: ${err.message}`);
|
|
270
|
+
console.log(chalk.red(` ✖ Global directory error: ${err.message}`));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
console.log(chalk.green(' ✔ Global configuration directory exists (~/.antri)'));
|
|
275
|
+
}
|
|
276
|
+
// 2. Check Auth Status
|
|
277
|
+
const { AuthManager } = await import('../cloud/auth.js');
|
|
278
|
+
const currentUser = AuthManager.getCurrentUser();
|
|
279
|
+
if (currentUser) {
|
|
280
|
+
console.log(chalk.green(` ✔ Authenticated User: ${currentUser.email} (${currentUser.userId})`));
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
console.log(chalk.yellow(' ℹ Account: Not logged in. (Run "/login <email>" to sync profiles & enable "antri fix")'));
|
|
284
|
+
}
|
|
285
|
+
// 3. Check Active Provider & API Key
|
|
286
|
+
const keyStatus = configManager.hasActiveApiKey(config.provider);
|
|
287
|
+
if (keyStatus.configured) {
|
|
288
|
+
console.log(chalk.green(` ✔ AI Provider '${config.provider}' configured with active API key`));
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
issues.push(`No active API key configured for provider '${config.provider}'`);
|
|
292
|
+
console.log(chalk.red(` ✖ AI Provider '${config.provider}' is missing API key (${keyStatus.envVar})`));
|
|
293
|
+
}
|
|
294
|
+
// 4. Check Session Storage Integrity
|
|
295
|
+
const sessionDir = path.join(globalDir, 'sessions');
|
|
296
|
+
if (!fs.existsSync(sessionDir)) {
|
|
297
|
+
try {
|
|
298
|
+
fs.mkdirSync(sessionDir, { recursive: true });
|
|
299
|
+
repairedCount++;
|
|
300
|
+
}
|
|
301
|
+
catch (_) { }
|
|
302
|
+
}
|
|
303
|
+
console.log(chalk.green(' ✔ Chat session storage integrity verified'));
|
|
304
|
+
// 5. Check Workspace Write Permissions
|
|
305
|
+
try {
|
|
306
|
+
const testFile = path.join(config.workingDir, '.antri_health_test.tmp');
|
|
307
|
+
fs.writeFileSync(testFile, 'ok', 'utf-8');
|
|
308
|
+
fs.unlinkSync(testFile);
|
|
309
|
+
console.log(chalk.green(` ✔ Workspace write permissions verified (${config.workingDir})`));
|
|
310
|
+
}
|
|
311
|
+
catch (err) {
|
|
312
|
+
issues.push(`Workspace permission denied: ${err.message}`);
|
|
313
|
+
console.log(chalk.red(` ✖ Workspace permission error: ${err.message}`));
|
|
314
|
+
}
|
|
315
|
+
console.log(chalk.hex('#334155')('═'.repeat(65)));
|
|
316
|
+
const healthy = issues.length === 0;
|
|
317
|
+
if (healthy) {
|
|
318
|
+
console.log(chalk.bold.green(`\n✨ ANTRI is 100% Healthy and Ready! ${repairedCount > 0 ? `(Auto-healed ${repairedCount} item(s))` : ''}\n`));
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
console.log(chalk.bold.hex('#f59e0b')(`\n⚠️ Diagnosed ${issues.length} issue(s) that may require your attention:\n`));
|
|
322
|
+
for (const issue of issues) {
|
|
323
|
+
console.log(chalk.hex('#fca5a5')(` • ${issue}`));
|
|
324
|
+
}
|
|
325
|
+
console.log(chalk.hex('#94a3b8')('\nTip: Use /connect, /key, or /login to resolve configuration issues.\n'));
|
|
326
|
+
}
|
|
327
|
+
return { healthy, issues, repairedCount };
|
|
328
|
+
}
|
|
51
329
|
/**
|
|
52
330
|
* Runs diagnostic reasoning to pinpoint failure cause and generate fixed parameters
|
|
53
331
|
*/
|
|
54
332
|
static async diagnoseRootCause(toolName, args, errorMessage, config) {
|
|
55
|
-
const
|
|
56
|
-
|
|
333
|
+
const keyStatus = configManager.hasActiveApiKey(config.provider);
|
|
334
|
+
if (!keyStatus.configured && config.provider !== 'mock') {
|
|
335
|
+
return this.heuristicPatch(toolName, args, errorMessage);
|
|
336
|
+
}
|
|
337
|
+
try {
|
|
338
|
+
const provider = createProvider(config);
|
|
339
|
+
const prompt = `You are the Autonomous Self-Debugger for an AI coding agent.
|
|
57
340
|
A tool execution failed with an error.
|
|
58
341
|
|
|
59
342
|
Tool: "${toolName}"
|
|
@@ -73,7 +356,6 @@ Respond in this exact JSON format:
|
|
|
73
356
|
"fixSummary": "<1-sentence explanation of the fix applied>",
|
|
74
357
|
"patchArgs": { ...corrected arguments object... }
|
|
75
358
|
}`;
|
|
76
|
-
try {
|
|
77
359
|
const response = await provider.sendMessageStream([{ role: 'user', content: prompt }], [], { onToken: () => { } });
|
|
78
360
|
const jsonMatch = response.match(/\{[\s\S]*\}/);
|
|
79
361
|
if (jsonMatch) {
|
|
@@ -86,7 +368,10 @@ Respond in this exact JSON format:
|
|
|
86
368
|
}
|
|
87
369
|
}
|
|
88
370
|
catch { }
|
|
89
|
-
|
|
371
|
+
return this.heuristicPatch(toolName, args, errorMessage);
|
|
372
|
+
}
|
|
373
|
+
static heuristicPatch(toolName, args, errorMessage) {
|
|
374
|
+
// Windows vs Linux shell commands
|
|
90
375
|
if (toolName === 'run_command' && args.command) {
|
|
91
376
|
if (args.command.startsWith('ls') && process.platform === 'win32') {
|
|
92
377
|
return {
|
|
@@ -95,10 +380,28 @@ Respond in this exact JSON format:
|
|
|
95
380
|
patchArgs: { command: 'dir' },
|
|
96
381
|
};
|
|
97
382
|
}
|
|
383
|
+
if (args.command.startsWith('cat ') && process.platform === 'win32') {
|
|
384
|
+
return {
|
|
385
|
+
rootCause: "'cat' command replaced with 'type' for Windows shell",
|
|
386
|
+
fixSummary: "Changed 'cat' to 'type'",
|
|
387
|
+
patchArgs: { command: args.command.replace(/^cat\s+/, 'type ') },
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
// Path normalization heuristics
|
|
392
|
+
if (args.file_path && typeof args.file_path === 'string') {
|
|
393
|
+
const normalized = path.normalize(args.file_path);
|
|
394
|
+
if (normalized !== args.file_path) {
|
|
395
|
+
return {
|
|
396
|
+
rootCause: 'Unnormalized file path with mixed separators',
|
|
397
|
+
fixSummary: 'Normalized file path separators',
|
|
398
|
+
patchArgs: { ...args, file_path: normalized },
|
|
399
|
+
};
|
|
400
|
+
}
|
|
98
401
|
}
|
|
99
402
|
return {
|
|
100
|
-
rootCause: 'Unresolved error',
|
|
101
|
-
fixSummary: '
|
|
403
|
+
rootCause: errorMessage.slice(0, 120) || 'Unresolved tool error',
|
|
404
|
+
fixSummary: 'Manual inspection required',
|
|
102
405
|
};
|
|
103
406
|
}
|
|
104
407
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/core/debugger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/core/debugger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAsBzC,MAAM,OAAO,YAAY;IACvB;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACpC,QAAkB,EAClB,YAAwB,EACxB,MAAmB,EACnB,SAA2F,EAC3F,UAAU,GAAG,CAAC;QAEd,GAAG,CAAC,IAAI,CAAC,oDAAoD,QAAQ,CAAC,QAAQ,CAAC,IAAI,qCAAqC,CAAC,CAAC;QAE1H,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,WAAW,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC;QACpC,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,OAAO,QAAQ,GAAG,UAAU,EAAE,CAAC;YAC7B,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,+BAA+B,QAAQ,IAAI,UAAU,2BAA2B,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;YAEhJ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAEvG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;gBACzB,MAAM;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kCAAkC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,sCAAsC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAEhG,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC;YAElC,IAAI,CAAC;gBACH,oCAAoC;gBACpC,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAEtF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;oBACvB,GAAG,CAAC,OAAO,CAAC,+CAA+C,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAgB,QAAQ,GAAG,CAAC,CAAC;oBAC9G,OAAO;wBACL,QAAQ,EAAE,IAAI;wBACd,QAAQ;wBACR,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,YAAY,EAAE,WAAW;wBACzB,cAAc,EAAE,WAAW;wBAC3B,UAAU,EAAE,SAAS,CAAC,UAAU;qBACjC,CAAC;gBACJ,CAAC;gBAED,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;YACjC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC;YACnD,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,MAAM,cAAc,GAAG,sCAAsC,QAAQ,CAAC,QAAQ,CAAC,IAAI,WAAW,QAAQ,cAAc,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC9I,GAAG,CAAC,IAAI,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;QAEjD,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,QAAQ;YACR,SAAS,EAAE,cAAc;YACzB,UAAU,EAAE,+BAA+B;SAC5C,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,kBAAkB,CAAC,KAAU,EAAE,MAAmB;QAC9D,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAI,eAAe,CAAC,CAAC;QAChH,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAEvC,qCAAqC;QACrC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7K,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,mDAAmD,MAAM,CAAC,QAAQ,GAAG;gBAClF,SAAS,EAAE,UAAU;gBACrB,gBAAgB,EAAE,UAAU;gBAC5B,cAAc,EAAE,kCAAkC,MAAM,CAAC,QAAQ,uDAAuD;gBACxH,YAAY,EAAE;oBACZ,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,MAAM,CAAC,QAAQ,aAAa,EAAE;oBACvE,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE;iBACnD;gBACD,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACpK,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,iDAAiD,MAAM,CAAC,QAAQ,GAAG;gBAChF,SAAS,EAAE,UAAU;gBACrB,gBAAgB,EAAE,UAAU;gBAC5B,cAAc,EAAE,uHAAuH;gBACvI,YAAY,EAAE;oBACZ,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,SAAS,EAAE;oBACrD,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE;iBACnD;gBACD,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,CAAC;QAED,yCAAyC;QACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvK,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,UAAU,MAAM,CAAC,KAAK,yCAAyC,MAAM,CAAC,QAAQ,GAAG;gBAC9F,SAAS,EAAE,UAAU;gBACrB,gBAAgB,EAAE,UAAU;gBAC5B,cAAc,EAAE,+BAA+B,MAAM,CAAC,QAAQ,mCAAmC;gBACjG,YAAY,EAAE;oBACZ,EAAE,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,SAAS,EAAE;iBACvD;gBACD,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1M,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,uDAAuD,MAAM,CAAC,QAAQ,GAAG;gBACtF,SAAS,EAAE,SAAS;gBACpB,gBAAgB,EAAE,UAAU;gBAC5B,cAAc,EAAE,kGAAkG;gBAClH,YAAY,EAAE;oBACZ,EAAE,KAAK,EAAE,+BAA+B,EAAE,OAAO,EAAE,WAAW,EAAE;iBACjE;gBACD,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACrJ,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,iDAAiD;gBAC9D,SAAS,EAAE,SAAS;gBACpB,gBAAgB,EAAE,UAAU;gBAC5B,cAAc,EAAE,qGAAqG;gBACrH,YAAY,EAAE;oBACZ,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE;oBACjD,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,WAAW,EAAE;iBACvD;gBACD,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,wCAAwC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5F,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,gEAAgE;gBAC7E,SAAS,EAAE,MAAM;gBACjB,gBAAgB,EAAE,UAAU;gBAC5B,cAAc,EAAE,gGAAgG;gBAChH,YAAY,EAAE;oBACZ,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,EAAE;iBACnD;gBACD,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5J,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,6DAA6D;gBAC1E,SAAS,EAAE,YAAY;gBACvB,gBAAgB,EAAE,UAAU;gBAC5B,cAAc,EAAE,iHAAiH;gBACjI,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,sCAAsC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YAC7E,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,UAAU;YAC5B,cAAc,EAAE,wGAAwG;YACxH,YAAY,EAAE;gBACZ,EAAE,KAAK,EAAE,2BAA2B,EAAE,OAAO,EAAE,WAAW,EAAE;gBAC5D,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE;aAChD;YACD,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAClC,KAAU,EACV,MAAmB,EACnB,WAAW,GAAG,KAAK;QAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEzD,qCAAqC;QACrC,4DAA4D;QAC5D,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC/D,cAAc,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;gBAClD,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC5B,SAAS,CAAC,aAAa,GAAG,4DAA4D,CAAC;YACzF,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,wDAAwD;QACxD,IAAI,SAAS,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YAChE,MAAM,UAAU,GAA4C;gBAC1D,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE;gBAC/C,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBACjD,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACvC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,4BAA4B,EAAE;gBAC7D,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,4BAA4B,EAAE;aAC/D,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACtC,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;wBACtB,SAAS,CAAC,cAAc,IAAI,iCAAiC,IAAI,CAAC,QAAQ,6BAA6B,IAAI,CAAC,QAAQ,IAAI,CAAC;wBACzH,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,gBAAgB,GAAG,6CAA6C,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,cAAc,EAAE,CAAC;QAC3H,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,UAAU;YAC5B,SAAS;YACT,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,sBAAsB,CAAC,SAAyB;QAC5D,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,2EAA2E,CAAC,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QACvH,IAAI,SAAS,CAAC,gBAAgB,IAAI,SAAS,CAAC,gBAAgB,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAChI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAE9G,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACzD,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,0EAA0E,CAAC,CAAC,CAAC;QACnH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAmB;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAElD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,8BAA8B;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,aAAa,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC;YACpF,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,uBAAuB;QACvB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,WAAW,CAAC,KAAK,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0FAA0F,CAAC,CAAC,CAAC;QACxH,CAAC;QAED,qCAAqC;QACrC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,QAAQ,kCAAkC,CAAC,CAAC,CAAC;QAClG,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,8CAA8C,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,QAAQ,yBAAyB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1G,CAAC;QAED,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,aAAa,EAAE,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;QAExE,uCAAuC;QACvC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;YACxE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,wCAAwC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,aAAa,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/I,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,MAAM,CAAC,MAAM,8CAA8C,CAAC,CAAC,CAAC;YACtH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,yEAAyE,CAAC,CAAC,CAAC;QAC/G,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,iBAAiB,CACpC,QAAgB,EAChB,IAAyB,EACzB,YAAoB,EACpB,MAAmB;QAEnB,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG;;;SAGZ,QAAQ;kBACC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;;;EAG7C,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;;;;;;;;;;;;EAY3B,CAAC;YAEG,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAC/C,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EACnC,EAAE,EACF,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CACtB,CAAC;YAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,OAAO;oBACL,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,kCAAkC;oBACjE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,sBAAsB;oBACvD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;iBACpC,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC;IAEO,MAAM,CAAC,cAAc,CAC3B,QAAgB,EAChB,IAAyB,EACzB,YAAoB;QAEpB,kCAAkC;QAClC,IAAI,QAAQ,KAAK,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAClE,OAAO;oBACL,SAAS,EAAE,0CAA0C;oBACrD,UAAU,EAAE,uBAAuB;oBACnC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;iBAC9B,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACpE,OAAO;oBACL,SAAS,EAAE,sDAAsD;oBACjE,UAAU,EAAE,yBAAyB;oBACrC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;iBACjE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,UAAU,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClC,OAAO;oBACL,SAAS,EAAE,8CAA8C;oBACzD,UAAU,EAAE,iCAAiC;oBAC7C,SAAS,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE;iBAC9C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,uBAAuB;YAChE,UAAU,EAAE,4BAA4B;SACzC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface FixResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
fixed: boolean;
|
|
4
|
+
verified: boolean;
|
|
5
|
+
reason?: string;
|
|
6
|
+
message?: string;
|
|
7
|
+
diagnosedIssue?: string;
|
|
8
|
+
commandRun?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class ProjectBugFixer {
|
|
11
|
+
/**
|
|
12
|
+
* Main entrypoint for `antri fix`
|
|
13
|
+
*/
|
|
14
|
+
static runFix(userTarget?: string, customWorkingDir?: string): Promise<FixResult>;
|
|
15
|
+
/**
|
|
16
|
+
* Scans project manifests to determine best verification command (npm test, tsc, pytest, etc.)
|
|
17
|
+
*/
|
|
18
|
+
private static detectAndRunDiagnostics;
|
|
19
|
+
private static executeCheckCommand;
|
|
20
|
+
private static buildFixPrompt;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=fixer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixer.d.ts","sourceRoot":"","sources":["../../src/core/fixer.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,eAAe;IAC1B;;OAEG;WACiB,MAAM,CACxB,UAAU,CAAC,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,SAAS,CAAC;IAqHrB;;OAEG;mBACkB,uBAAuB;mBA6CvB,mBAAmB;IAiBxC,OAAO,CAAC,MAAM,CAAC,cAAc;CAyB9B"}
|