erosolar-cli 1.7.373 → 1.7.379

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 (99) hide show
  1. package/dist/capabilities/agentSpawningCapability.d.ts.map +1 -1
  2. package/dist/capabilities/agentSpawningCapability.js +29 -1
  3. package/dist/capabilities/agentSpawningCapability.js.map +1 -1
  4. package/dist/contracts/agent-schemas.json +105 -0
  5. package/dist/core/alphaZeroModular.d.ts +186 -0
  6. package/dist/core/alphaZeroModular.d.ts.map +1 -0
  7. package/dist/core/alphaZeroModular.js +755 -0
  8. package/dist/core/alphaZeroModular.js.map +1 -0
  9. package/dist/core/alphaZeroOrchestrator.d.ts +140 -0
  10. package/dist/core/alphaZeroOrchestrator.d.ts.map +1 -0
  11. package/dist/core/alphaZeroOrchestrator.js +418 -0
  12. package/dist/core/alphaZeroOrchestrator.js.map +1 -0
  13. package/dist/core/checkpoint.d.ts +76 -0
  14. package/dist/core/checkpoint.d.ts.map +1 -0
  15. package/dist/core/checkpoint.js +278 -0
  16. package/dist/core/checkpoint.js.map +1 -0
  17. package/dist/core/claudeCodeFeatures.d.ts +64 -0
  18. package/dist/core/claudeCodeFeatures.d.ts.map +1 -0
  19. package/dist/core/claudeCodeFeatures.js +163 -0
  20. package/dist/core/claudeCodeFeatures.js.map +1 -0
  21. package/dist/core/costTracker.d.ts +87 -0
  22. package/dist/core/costTracker.d.ts.map +1 -0
  23. package/dist/core/costTracker.js +285 -0
  24. package/dist/core/costTracker.js.map +1 -0
  25. package/dist/core/failureRecovery.d.ts +122 -0
  26. package/dist/core/failureRecovery.d.ts.map +1 -0
  27. package/dist/core/failureRecovery.js +477 -0
  28. package/dist/core/failureRecovery.js.map +1 -0
  29. package/dist/core/intelligentTestFlows.d.ts +126 -0
  30. package/dist/core/intelligentTestFlows.d.ts.map +1 -0
  31. package/dist/core/intelligentTestFlows.js +678 -0
  32. package/dist/core/intelligentTestFlows.js.map +1 -0
  33. package/dist/core/learningPersistence.d.ts +145 -0
  34. package/dist/core/learningPersistence.d.ts.map +1 -0
  35. package/dist/core/learningPersistence.js +477 -0
  36. package/dist/core/learningPersistence.js.map +1 -0
  37. package/dist/core/memorySystem.d.ts +67 -0
  38. package/dist/core/memorySystem.d.ts.map +1 -0
  39. package/dist/core/memorySystem.js +334 -0
  40. package/dist/core/memorySystem.js.map +1 -0
  41. package/dist/core/outputStyles.d.ts +48 -0
  42. package/dist/core/outputStyles.d.ts.map +1 -0
  43. package/dist/core/outputStyles.js +270 -0
  44. package/dist/core/outputStyles.js.map +1 -0
  45. package/dist/core/selfEvolution.d.ts +155 -0
  46. package/dist/core/selfEvolution.d.ts.map +1 -0
  47. package/dist/core/selfEvolution.js +1000 -0
  48. package/dist/core/selfEvolution.js.map +1 -0
  49. package/dist/core/selfImprovement.d.ts +141 -0
  50. package/dist/core/selfImprovement.d.ts.map +1 -0
  51. package/dist/core/selfImprovement.js +700 -0
  52. package/dist/core/selfImprovement.js.map +1 -0
  53. package/dist/core/updateManager.d.ts +62 -0
  54. package/dist/core/updateManager.d.ts.map +1 -0
  55. package/dist/core/updateManager.js +266 -0
  56. package/dist/core/updateManager.js.map +1 -0
  57. package/dist/shell/interactiveShell.d.ts +67 -0
  58. package/dist/shell/interactiveShell.d.ts.map +1 -1
  59. package/dist/shell/interactiveShell.js +1546 -3
  60. package/dist/shell/interactiveShell.js.map +1 -1
  61. package/dist/shell/keyboardShortcuts.d.ts +53 -0
  62. package/dist/shell/keyboardShortcuts.d.ts.map +1 -0
  63. package/dist/shell/keyboardShortcuts.js +163 -0
  64. package/dist/shell/keyboardShortcuts.js.map +1 -0
  65. package/dist/shell/terminalInput.d.ts +51 -1
  66. package/dist/shell/terminalInput.d.ts.map +1 -1
  67. package/dist/shell/terminalInput.js +223 -12
  68. package/dist/shell/terminalInput.js.map +1 -1
  69. package/dist/shell/terminalInputAdapter.d.ts +7 -1
  70. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  71. package/dist/shell/terminalInputAdapter.js +7 -0
  72. package/dist/shell/terminalInputAdapter.js.map +1 -1
  73. package/dist/shell/vimMode.d.ts +66 -0
  74. package/dist/shell/vimMode.d.ts.map +1 -0
  75. package/dist/shell/vimMode.js +434 -0
  76. package/dist/shell/vimMode.js.map +1 -0
  77. package/dist/subagents/parallelAgentManager.d.ts +99 -0
  78. package/dist/subagents/parallelAgentManager.d.ts.map +1 -0
  79. package/dist/subagents/parallelAgentManager.js +249 -0
  80. package/dist/subagents/parallelAgentManager.js.map +1 -0
  81. package/dist/subagents/taskRunner.d.ts +6 -1
  82. package/dist/subagents/taskRunner.d.ts.map +1 -1
  83. package/dist/subagents/taskRunner.js +57 -2
  84. package/dist/subagents/taskRunner.js.map +1 -1
  85. package/dist/tools/planningTools.d.ts +9 -0
  86. package/dist/tools/planningTools.d.ts.map +1 -1
  87. package/dist/tools/planningTools.js +90 -0
  88. package/dist/tools/planningTools.js.map +1 -1
  89. package/dist/ui/display.d.ts +5 -0
  90. package/dist/ui/display.d.ts.map +1 -1
  91. package/dist/ui/display.js +14 -0
  92. package/dist/ui/display.js.map +1 -1
  93. package/dist/ui/shortcutsHelp.d.ts.map +1 -1
  94. package/dist/ui/shortcutsHelp.js +43 -12
  95. package/dist/ui/shortcutsHelp.js.map +1 -1
  96. package/dist/ui/unified/layout.d.ts.map +1 -1
  97. package/dist/ui/unified/layout.js +9 -9
  98. package/dist/ui/unified/layout.js.map +1 -1
  99. package/package.json +1 -1
@@ -0,0 +1,477 @@
1
+ /**
2
+ * Intelligent Failure Detection and Recovery System
3
+ *
4
+ * Detects non-working solutions and applies AlphaZero-style learning to:
5
+ * 1. Identify failure patterns
6
+ * 2. Generate alternative approaches
7
+ * 3. Store successful recoveries for reuse
8
+ * 4. Optionally update source code when patterns are reliable
9
+ *
10
+ * Principal Investigator: Bo Shang
11
+ */
12
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
13
+ import { join, dirname } from 'node:path';
14
+ import { homedir } from 'node:os';
15
+ import { recordFailurePattern, addToolPattern, getFailurePatternsToAvoid, getBestToolPattern, } from './learningPersistence.js';
16
+ import { classifyTaskType, } from './alphaZeroEngine.js';
17
+ // ============================================================================
18
+ // FAILURE DETECTION
19
+ // ============================================================================
20
+ const FAILURE_INDICATORS = {
21
+ build: [
22
+ /error\s+TS\d+/i, // TypeScript errors
23
+ /SyntaxError/i, // Syntax errors
24
+ /Cannot find module/i, // Missing modules
25
+ /error:\s+/i, // Generic errors
26
+ /failed with exit code/i, // Build failures
27
+ /npm ERR!/i, // npm errors
28
+ ],
29
+ test: [
30
+ /FAIL\s+/, // Jest failures
31
+ /AssertionError/i, // Assertion failures
32
+ /Expected.*but got/i, // Value mismatches
33
+ /\d+ failing/i, // Test count failures
34
+ /Error: expect/i, // Expect errors
35
+ ],
36
+ runtime: [
37
+ /TypeError:/i,
38
+ /ReferenceError:/i,
39
+ /RangeError:/i,
40
+ /Uncaught/i,
41
+ /ENOENT/i,
42
+ /EACCES/i,
43
+ /ETIMEDOUT/i,
44
+ ],
45
+ userFeedback: [
46
+ /doesn't work/i,
47
+ /didn't work/i,
48
+ /not working/i,
49
+ /still broken/i,
50
+ /wrong/i,
51
+ /incorrect/i,
52
+ /that's not right/i,
53
+ /try again/i,
54
+ /failed/i,
55
+ ],
56
+ };
57
+ /**
58
+ * Detect failure from output/response
59
+ */
60
+ export function detectFailure(output, context) {
61
+ // Check for build failures
62
+ for (const pattern of FAILURE_INDICATORS.build) {
63
+ if (pattern.test(output)) {
64
+ return {
65
+ type: 'build',
66
+ severity: 'critical',
67
+ message: extractErrorMessage(output, pattern),
68
+ context: { pattern: pattern.source },
69
+ timestamp: new Date().toISOString(),
70
+ };
71
+ }
72
+ }
73
+ // Check for test failures
74
+ for (const pattern of FAILURE_INDICATORS.test) {
75
+ if (pattern.test(output)) {
76
+ return {
77
+ type: 'test',
78
+ severity: 'major',
79
+ message: extractErrorMessage(output, pattern),
80
+ context: { pattern: pattern.source },
81
+ timestamp: new Date().toISOString(),
82
+ };
83
+ }
84
+ }
85
+ // Check for runtime errors
86
+ for (const pattern of FAILURE_INDICATORS.runtime) {
87
+ if (pattern.test(output)) {
88
+ return {
89
+ type: 'tool',
90
+ severity: 'major',
91
+ message: extractErrorMessage(output, pattern),
92
+ context: { pattern: pattern.source },
93
+ timestamp: new Date().toISOString(),
94
+ };
95
+ }
96
+ }
97
+ // Check for user feedback indicating failure
98
+ if (context.userMessage) {
99
+ for (const pattern of FAILURE_INDICATORS.userFeedback) {
100
+ if (pattern.test(context.userMessage)) {
101
+ return {
102
+ type: 'user-feedback',
103
+ severity: 'major',
104
+ message: context.userMessage.slice(0, 200),
105
+ timestamp: new Date().toISOString(),
106
+ };
107
+ }
108
+ }
109
+ }
110
+ // Check for tool call failures
111
+ if (context.toolCalls) {
112
+ const failures = context.toolCalls.filter(t => !t.success);
113
+ if (failures.length > 0 && failures.length / context.toolCalls.length > 0.3) {
114
+ return {
115
+ type: 'tool',
116
+ severity: 'major',
117
+ message: `${failures.length}/${context.toolCalls.length} tool calls failed`,
118
+ context: { failedTools: failures.map(t => t.name) },
119
+ timestamp: new Date().toISOString(),
120
+ };
121
+ }
122
+ }
123
+ return null;
124
+ }
125
+ function extractErrorMessage(output, pattern) {
126
+ const match = output.match(pattern);
127
+ if (!match)
128
+ return 'Unknown error';
129
+ // Get the line containing the match and a few surrounding lines
130
+ const lines = output.split('\n');
131
+ for (let i = 0; i < lines.length; i++) {
132
+ if (pattern.test(lines[i])) {
133
+ const start = Math.max(0, i);
134
+ const end = Math.min(lines.length, i + 3);
135
+ return lines.slice(start, end).join('\n').slice(0, 300);
136
+ }
137
+ }
138
+ return match[0].slice(0, 200);
139
+ }
140
+ const recentActions = [];
141
+ const MAX_ACTION_HISTORY = 20;
142
+ /**
143
+ * Record an action and detect if we're in a loop
144
+ */
145
+ export function recordActionAndDetectLoop(action) {
146
+ const now = Date.now();
147
+ // Add to history
148
+ recentActions.push({ action, timestamp: now });
149
+ // Keep only recent actions
150
+ while (recentActions.length > MAX_ACTION_HISTORY) {
151
+ recentActions.shift();
152
+ }
153
+ // Detect loops: same action appearing 3+ times in last 10 actions
154
+ const recent = recentActions.slice(-10);
155
+ const actionCounts = new Map();
156
+ for (const r of recent) {
157
+ actionCounts.set(r.action, (actionCounts.get(r.action) || 0) + 1);
158
+ }
159
+ for (const [act, count] of actionCounts) {
160
+ if (count >= 3) {
161
+ return {
162
+ type: 'loop-detected',
163
+ severity: 'major',
164
+ message: `Detected repeated action: "${act}" (${count} times in last ${recent.length} actions)`,
165
+ context: { repeatedAction: act, count },
166
+ timestamp: new Date().toISOString(),
167
+ };
168
+ }
169
+ }
170
+ return null;
171
+ }
172
+ /**
173
+ * Clear action history (call after successful task completion)
174
+ */
175
+ export function clearActionHistory() {
176
+ recentActions.length = 0;
177
+ }
178
+ // ============================================================================
179
+ // RECOVERY STRATEGIES
180
+ // ============================================================================
181
+ const RECOVERY_STRATEGIES_FILE = join(homedir(), '.erosolar', 'learning', 'recovery-strategies.json');
182
+ function loadRecoveryStrategies() {
183
+ const defaultData = {
184
+ version: 1,
185
+ strategies: [],
186
+ };
187
+ try {
188
+ if (!existsSync(RECOVERY_STRATEGIES_FILE)) {
189
+ return defaultData;
190
+ }
191
+ const content = readFileSync(RECOVERY_STRATEGIES_FILE, 'utf-8');
192
+ return JSON.parse(content);
193
+ }
194
+ catch {
195
+ return defaultData;
196
+ }
197
+ }
198
+ function saveRecoveryStrategies(data) {
199
+ const dir = dirname(RECOVERY_STRATEGIES_FILE);
200
+ if (!existsSync(dir)) {
201
+ mkdirSync(dir, { recursive: true });
202
+ }
203
+ writeFileSync(RECOVERY_STRATEGIES_FILE, JSON.stringify(data, null, 2));
204
+ }
205
+ /**
206
+ * Find a recovery strategy for a failure type
207
+ */
208
+ export function findRecoveryStrategy(failure) {
209
+ const data = loadRecoveryStrategies();
210
+ // Look for matching strategy
211
+ const candidates = data.strategies.filter(s => {
212
+ if (s.failureType !== failure.type)
213
+ return false;
214
+ // Check if error pattern matches
215
+ try {
216
+ const pattern = new RegExp(s.errorPattern, 'i');
217
+ return pattern.test(failure.message);
218
+ }
219
+ catch {
220
+ return s.errorPattern.toLowerCase().includes(failure.message.toLowerCase().slice(0, 50));
221
+ }
222
+ });
223
+ if (candidates.length === 0)
224
+ return null;
225
+ // Return strategy with best success rate that has been used enough
226
+ const reliable = candidates.filter(s => s.timesUsed >= 2 && s.successRate >= 0.5);
227
+ if (reliable.length > 0) {
228
+ return reliable.sort((a, b) => b.successRate - a.successRate)[0];
229
+ }
230
+ return candidates[0];
231
+ }
232
+ /**
233
+ * Record a successful recovery strategy
234
+ */
235
+ export function recordRecoveryStrategy(failure, recoverySteps, success) {
236
+ const data = loadRecoveryStrategies();
237
+ // Create error pattern signature
238
+ const errorPattern = createErrorSignature(failure.message);
239
+ // Find existing strategy
240
+ const existing = data.strategies.find(s => s.failureType === failure.type && s.errorPattern === errorPattern);
241
+ if (existing) {
242
+ existing.timesUsed++;
243
+ existing.successRate = (existing.successRate * (existing.timesUsed - 1) + (success ? 1 : 0)) / existing.timesUsed;
244
+ if (success) {
245
+ existing.lastSuccess = new Date().toISOString();
246
+ // Merge recovery steps if different
247
+ for (const step of recoverySteps) {
248
+ if (!existing.recoverySteps.includes(step)) {
249
+ existing.recoverySteps.push(step);
250
+ }
251
+ }
252
+ }
253
+ }
254
+ else {
255
+ data.strategies.push({
256
+ id: `recovery-${Date.now()}`,
257
+ failureType: failure.type,
258
+ errorPattern,
259
+ recoverySteps,
260
+ successRate: success ? 1 : 0,
261
+ timesUsed: 1,
262
+ lastSuccess: success ? new Date().toISOString() : '',
263
+ });
264
+ }
265
+ // Keep top 100 strategies
266
+ data.strategies.sort((a, b) => b.successRate * b.timesUsed - a.successRate * a.timesUsed);
267
+ if (data.strategies.length > 100) {
268
+ data.strategies.length = 100;
269
+ }
270
+ saveRecoveryStrategies(data);
271
+ }
272
+ function createErrorSignature(message) {
273
+ // Extract key parts of error message
274
+ return message
275
+ .replace(/\d+/g, 'N') // Replace numbers
276
+ .replace(/['"`].*?['"`]/g, 'S') // Replace quoted strings
277
+ .replace(/\/\S+/g, 'P') // Replace paths
278
+ .slice(0, 100);
279
+ }
280
+ // ============================================================================
281
+ // GENERATE RECOVERY PROMPTS
282
+ // ============================================================================
283
+ /**
284
+ * Generate a prompt for recovering from failure
285
+ */
286
+ export function generateRecoveryPrompt(failure, originalApproach, taskType) {
287
+ // Check for existing recovery strategy
288
+ const strategy = findRecoveryStrategy(failure);
289
+ // Check for failure patterns to avoid
290
+ const avoidPatterns = getFailurePatternsToAvoid(taskType);
291
+ // Get best tool pattern for this task type
292
+ const bestPattern = getBestToolPattern(taskType);
293
+ let prompt = `The previous approach failed. Here's what went wrong:\n\n`;
294
+ prompt += `FAILURE TYPE: ${failure.type}\n`;
295
+ prompt += `ERROR: ${failure.message}\n\n`;
296
+ prompt += `ORIGINAL APPROACH:\n${originalApproach.slice(0, 500)}\n\n`;
297
+ if (strategy) {
298
+ prompt += `KNOWN RECOVERY STRATEGY (${Math.round(strategy.successRate * 100)}% success rate):\n`;
299
+ for (const step of strategy.recoverySteps) {
300
+ prompt += `- ${step}\n`;
301
+ }
302
+ prompt += '\n';
303
+ }
304
+ if (avoidPatterns.length > 0) {
305
+ prompt += `AVOID THESE APPROACHES (known to fail):\n`;
306
+ for (const p of avoidPatterns.slice(0, 3)) {
307
+ prompt += `- ${p.avoidanceHint}\n`;
308
+ }
309
+ prompt += '\n';
310
+ }
311
+ if (bestPattern) {
312
+ prompt += `RECOMMENDED TOOL SEQUENCE for ${taskType}:\n`;
313
+ prompt += `${bestPattern.toolSequence.join(' → ')}\n\n`;
314
+ }
315
+ prompt += `Generate an alternative approach that:\n`;
316
+ prompt += `1. Addresses the root cause of the failure\n`;
317
+ prompt += `2. Uses a different strategy than the original\n`;
318
+ prompt += `3. Avoids known failure patterns\n`;
319
+ prompt += `4. Can be verified to work\n`;
320
+ return prompt;
321
+ }
322
+ // ============================================================================
323
+ // SOURCE CODE FIX TRACKING
324
+ // ============================================================================
325
+ const SOURCE_FIXES_FILE = join(homedir(), '.erosolar', 'learning', 'source-fixes.json');
326
+ function loadSourceFixes() {
327
+ const defaultData = { version: 1, fixes: [] };
328
+ try {
329
+ if (!existsSync(SOURCE_FIXES_FILE))
330
+ return defaultData;
331
+ return JSON.parse(readFileSync(SOURCE_FIXES_FILE, 'utf-8'));
332
+ }
333
+ catch {
334
+ return defaultData;
335
+ }
336
+ }
337
+ function saveSourceFixes(data) {
338
+ const dir = dirname(SOURCE_FIXES_FILE);
339
+ if (!existsSync(dir))
340
+ mkdirSync(dir, { recursive: true });
341
+ writeFileSync(SOURCE_FIXES_FILE, JSON.stringify(data, null, 2));
342
+ }
343
+ /**
344
+ * Record a potential source code fix
345
+ */
346
+ export function recordPotentialSourceFix(filePath, description, originalCode, fixedCode, failureType) {
347
+ const data = loadSourceFixes();
348
+ // Check for similar fix
349
+ const existing = data.fixes.find(f => f.filePath === filePath && f.fixedCode === fixedCode);
350
+ if (existing) {
351
+ existing.validatedCount++;
352
+ }
353
+ else {
354
+ data.fixes.push({
355
+ id: `fix-${Date.now()}`,
356
+ filePath,
357
+ description,
358
+ originalCode: originalCode.slice(0, 1000),
359
+ fixedCode: fixedCode.slice(0, 1000),
360
+ failureType,
361
+ validatedCount: 1,
362
+ appliedToSource: false,
363
+ });
364
+ }
365
+ saveSourceFixes(data);
366
+ }
367
+ /**
368
+ * Get all source code fixes
369
+ */
370
+ export function getSourceCodeFixes() {
371
+ const data = loadSourceFixes();
372
+ return data.fixes;
373
+ }
374
+ /**
375
+ * Get validated source fixes that should be applied
376
+ */
377
+ export function getValidatedSourceFixes(minValidations = 3) {
378
+ const data = loadSourceFixes();
379
+ return data.fixes.filter(f => f.validatedCount >= minValidations && !f.appliedToSource);
380
+ }
381
+ /**
382
+ * Mark a fix as applied to source
383
+ */
384
+ export function markFixApplied(fixId) {
385
+ const data = loadSourceFixes();
386
+ const fix = data.fixes.find(f => f.id === fixId);
387
+ if (fix) {
388
+ fix.appliedToSource = true;
389
+ saveSourceFixes(data);
390
+ }
391
+ }
392
+ // ============================================================================
393
+ // APPLY LEARNED FIXES TO EROSOLAR SOURCE
394
+ // ============================================================================
395
+ /**
396
+ * Check if we should suggest applying fixes to erosolar source
397
+ */
398
+ export function suggestSourceUpdates(workingDir) {
399
+ const validatedFixes = getValidatedSourceFixes();
400
+ if (validatedFixes.length === 0) {
401
+ return {
402
+ shouldSuggest: false,
403
+ fixes: [],
404
+ reason: 'No fixes have been validated enough times yet.',
405
+ };
406
+ }
407
+ // Check if we're in the erosolar repo
408
+ const isErosolarRepo = workingDir.includes('erosolar') || existsSync(join(workingDir, 'src/shell/interactiveShell.ts'));
409
+ if (!isErosolarRepo) {
410
+ return {
411
+ shouldSuggest: false,
412
+ fixes: validatedFixes,
413
+ reason: 'Not in erosolar repository. Run /learn commit to save fixes for later.',
414
+ };
415
+ }
416
+ return {
417
+ shouldSuggest: true,
418
+ fixes: validatedFixes,
419
+ reason: `${validatedFixes.length} validated fix(es) ready to apply.`,
420
+ };
421
+ }
422
+ /**
423
+ * Generate commit message for learning-based updates
424
+ */
425
+ export function generateLearningCommitMessage(fixes) {
426
+ const types = [...new Set(fixes.map(f => f.failureType))];
427
+ const files = [...new Set(fixes.map(f => f.filePath.split('/').pop()))];
428
+ return `fix: apply AlphaZero-learned improvements
429
+
430
+ Automated fixes based on ${fixes.length} validated recovery patterns:
431
+ - Failure types addressed: ${types.join(', ')}
432
+ - Files affected: ${files.join(', ')}
433
+
434
+ These fixes were learned from repeated successful recoveries and have been
435
+ validated ${Math.min(...fixes.map(f => f.validatedCount))}+ times each.
436
+
437
+ 🤖 Auto-generated by erosolar-cli AlphaZero learning system`;
438
+ }
439
+ /**
440
+ * Main entry point for failure recovery
441
+ * Call this when a failure is detected
442
+ */
443
+ export function initiateRecovery(failure, originalApproach, toolCalls, userQuery) {
444
+ const taskType = classifyTaskType(userQuery);
445
+ // Record the failure
446
+ recordFailurePattern(taskType, toolCalls.map(t => t.name), failure.message, `Avoid this approach for ${failure.type} errors`);
447
+ // Find or generate recovery strategy
448
+ const strategy = findRecoveryStrategy(failure);
449
+ // Generate recovery prompt
450
+ const recoveryPrompt = generateRecoveryPrompt(failure, originalApproach, taskType);
451
+ return {
452
+ recoveryPrompt,
453
+ strategy,
454
+ };
455
+ }
456
+ /**
457
+ * Record successful recovery for future use
458
+ */
459
+ export function recordSuccessfulRecovery(failure, recoveryApproach, toolCalls, userQuery, qualityScore) {
460
+ const taskType = classifyTaskType(userQuery);
461
+ // Record the successful recovery strategy
462
+ const steps = toolCalls.map(t => `${t.name}: ${t.success ? 'success' : 'failed'}`);
463
+ recordRecoveryStrategy(failure, steps, true);
464
+ // Record successful tool pattern
465
+ if (toolCalls.length > 0) {
466
+ addToolPattern(taskType, {
467
+ taskType,
468
+ toolSequence: toolCalls.map(t => t.name),
469
+ successRate: 1,
470
+ avgDuration: toolCalls.reduce((sum, t) => sum + t.duration, 0),
471
+ occurrences: 1,
472
+ });
473
+ }
474
+ // Clear action history since we succeeded
475
+ clearActionHistory();
476
+ }
477
+ //# sourceMappingURL=failureRecovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failureRecovery.js","sourceRoot":"","sources":["../../src/core/failureRecovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Intelligent Test Flow Generator
3
+ *
4
+ * Creates highly complex, intelligent test flows for runtime verification:
5
+ * - Edge case detection and generation
6
+ * - State machine exploration
7
+ * - Fuzzing with smart mutations
8
+ * - Regression test generation
9
+ * - UI interaction simulation
10
+ *
11
+ * Principal Investigator: Bo Shang
12
+ */
13
+ export interface TestFlow {
14
+ id: string;
15
+ name: string;
16
+ description: string;
17
+ category: 'unit' | 'integration' | 'edge-case' | 'regression' | 'ui' | 'stress';
18
+ steps: TestStep[];
19
+ preconditions: string[];
20
+ postconditions: string[];
21
+ expectedOutcome: string;
22
+ complexity: 'simple' | 'moderate' | 'complex' | 'extreme';
23
+ priority: number;
24
+ generatedAt: string;
25
+ }
26
+ export interface TestStep {
27
+ order: number;
28
+ action: string;
29
+ input?: Record<string, unknown>;
30
+ expectedOutput?: unknown;
31
+ timeout?: number;
32
+ retries?: number;
33
+ assertions: Assertion[];
34
+ }
35
+ export interface Assertion {
36
+ type: 'equals' | 'contains' | 'matches' | 'throws' | 'resolves' | 'type' | 'truthy' | 'falsy';
37
+ target: string;
38
+ expected?: unknown;
39
+ message?: string;
40
+ }
41
+ export interface EdgeCase {
42
+ id: string;
43
+ category: string;
44
+ description: string;
45
+ input: unknown;
46
+ expectedBehavior: string;
47
+ severity: 'critical' | 'high' | 'medium' | 'low';
48
+ detected: boolean;
49
+ }
50
+ export interface TestResult {
51
+ flowId: string;
52
+ passed: boolean;
53
+ duration: number;
54
+ steps: StepResult[];
55
+ errors: string[];
56
+ coverage: number;
57
+ }
58
+ export interface StepResult {
59
+ order: number;
60
+ passed: boolean;
61
+ duration: number;
62
+ error?: string;
63
+ actualOutput?: unknown;
64
+ }
65
+ export interface BugReport {
66
+ id: string;
67
+ severity: 'critical' | 'high' | 'medium' | 'low';
68
+ type: 'crash' | 'logic' | 'ui' | 'performance' | 'security' | 'edge-case';
69
+ title: string;
70
+ description: string;
71
+ reproSteps: string[];
72
+ expectedBehavior: string;
73
+ actualBehavior: string;
74
+ stackTrace?: string;
75
+ file?: string;
76
+ line?: number;
77
+ suggestedFix?: string;
78
+ testFlow?: TestFlow;
79
+ detectedAt: string;
80
+ }
81
+ export interface UIUpdate {
82
+ component: string;
83
+ type: 'style' | 'layout' | 'behavior' | 'accessibility' | 'performance';
84
+ description: string;
85
+ before: string;
86
+ after: string;
87
+ file: string;
88
+ line?: number;
89
+ }
90
+ /**
91
+ * Generate edge cases for a given function/component
92
+ */
93
+ export declare function generateEdgeCases(targetName: string, paramTypes: Record<string, string>): EdgeCase[];
94
+ /**
95
+ * Generate intelligent test flows for a component
96
+ */
97
+ export declare function generateTestFlows(workingDir: string, targetPath: string): TestFlow[];
98
+ /**
99
+ * Analyze code for potential bugs
100
+ */
101
+ export declare function detectBugs(workingDir: string): BugReport[];
102
+ /**
103
+ * Detect needed UI updates
104
+ */
105
+ export declare function detectUIUpdates(workingDir: string): UIUpdate[];
106
+ /**
107
+ * Save test flows to disk
108
+ */
109
+ export declare function saveTestFlows(flows: TestFlow[]): void;
110
+ /**
111
+ * Load test flows from disk
112
+ */
113
+ export declare function loadTestFlows(): TestFlow[];
114
+ /**
115
+ * Save bug reports
116
+ */
117
+ export declare function saveBugReports(bugs: BugReport[]): void;
118
+ /**
119
+ * Save UI updates
120
+ */
121
+ export declare function saveUIUpdates(updates: UIUpdate[]): void;
122
+ /**
123
+ * Get comprehensive test/bug status
124
+ */
125
+ export declare function getTestFlowStatus(workingDir: string): string;
126
+ //# sourceMappingURL=intelligentTestFlows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligentTestFlows.d.ts","sourceRoot":"","sources":["../../src/core/intelligentTestFlows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,CAAC;IAChF,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC9F,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,aAAa,CAAC;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAwBD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,QAAQ,EAAE,CAqBZ;AA0ED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,QAAQ,EAAE,CA8CZ;AAqLD;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAyB1D;AAgND;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE,CA+D9D;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CASrD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,QAAQ,EAAE,CAgB1C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAStD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAMvD;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAqE5D"}