erosolar-cli 1.7.355 → 1.7.356

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 (330) hide show
  1. package/README.md +148 -24
  2. package/dist/alpha-zero/agentWrapper.d.ts +84 -0
  3. package/dist/alpha-zero/agentWrapper.d.ts.map +1 -0
  4. package/dist/alpha-zero/agentWrapper.js +171 -0
  5. package/dist/alpha-zero/agentWrapper.js.map +1 -0
  6. package/dist/alpha-zero/codeEvaluator.d.ts +25 -0
  7. package/dist/alpha-zero/codeEvaluator.d.ts.map +1 -0
  8. package/dist/alpha-zero/codeEvaluator.js +273 -0
  9. package/dist/alpha-zero/codeEvaluator.js.map +1 -0
  10. package/dist/alpha-zero/competitiveRunner.d.ts +66 -0
  11. package/dist/alpha-zero/competitiveRunner.d.ts.map +1 -0
  12. package/dist/alpha-zero/competitiveRunner.js +224 -0
  13. package/dist/alpha-zero/competitiveRunner.js.map +1 -0
  14. package/dist/alpha-zero/index.d.ts +67 -0
  15. package/dist/alpha-zero/index.d.ts.map +1 -0
  16. package/dist/alpha-zero/index.js +99 -0
  17. package/dist/alpha-zero/index.js.map +1 -0
  18. package/dist/alpha-zero/introspection.d.ts +128 -0
  19. package/dist/alpha-zero/introspection.d.ts.map +1 -0
  20. package/dist/alpha-zero/introspection.js +300 -0
  21. package/dist/alpha-zero/introspection.js.map +1 -0
  22. package/dist/alpha-zero/metricsTracker.d.ts +71 -0
  23. package/dist/alpha-zero/metricsTracker.d.ts.map +1 -0
  24. package/dist/{core → alpha-zero}/metricsTracker.js +5 -2
  25. package/dist/alpha-zero/metricsTracker.js.map +1 -0
  26. package/dist/alpha-zero/security/core.d.ts +125 -0
  27. package/dist/alpha-zero/security/core.d.ts.map +1 -0
  28. package/dist/alpha-zero/security/core.js +271 -0
  29. package/dist/alpha-zero/security/core.js.map +1 -0
  30. package/dist/alpha-zero/security/google.d.ts +125 -0
  31. package/dist/alpha-zero/security/google.d.ts.map +1 -0
  32. package/dist/alpha-zero/security/google.js +311 -0
  33. package/dist/alpha-zero/security/google.js.map +1 -0
  34. package/dist/alpha-zero/security/googleLoader.d.ts +17 -0
  35. package/dist/alpha-zero/security/googleLoader.d.ts.map +1 -0
  36. package/dist/alpha-zero/security/googleLoader.js +41 -0
  37. package/dist/alpha-zero/security/googleLoader.js.map +1 -0
  38. package/dist/alpha-zero/security/index.d.ts +29 -0
  39. package/dist/alpha-zero/security/index.d.ts.map +1 -0
  40. package/dist/alpha-zero/security/index.js +32 -0
  41. package/dist/alpha-zero/security/index.js.map +1 -0
  42. package/dist/alpha-zero/security/simulation.d.ts +124 -0
  43. package/dist/alpha-zero/security/simulation.d.ts.map +1 -0
  44. package/dist/alpha-zero/security/simulation.js +277 -0
  45. package/dist/alpha-zero/security/simulation.js.map +1 -0
  46. package/dist/alpha-zero/selfModification.d.ts +109 -0
  47. package/dist/alpha-zero/selfModification.d.ts.map +1 -0
  48. package/dist/alpha-zero/selfModification.js +233 -0
  49. package/dist/alpha-zero/selfModification.js.map +1 -0
  50. package/dist/alpha-zero/types.d.ts +170 -0
  51. package/dist/alpha-zero/types.d.ts.map +1 -0
  52. package/dist/alpha-zero/types.js +31 -0
  53. package/dist/alpha-zero/types.js.map +1 -0
  54. package/dist/bin/erosolar.js +21 -5
  55. package/dist/bin/erosolar.js.map +1 -1
  56. package/dist/capabilities/agentSpawningCapability.d.ts.map +1 -1
  57. package/dist/capabilities/agentSpawningCapability.js +31 -56
  58. package/dist/capabilities/agentSpawningCapability.js.map +1 -1
  59. package/dist/capabilities/securityTestingCapability.d.ts +13 -0
  60. package/dist/capabilities/securityTestingCapability.d.ts.map +1 -0
  61. package/dist/capabilities/securityTestingCapability.js +25 -0
  62. package/dist/capabilities/securityTestingCapability.js.map +1 -0
  63. package/dist/contracts/agent-schemas.json +15 -0
  64. package/dist/contracts/tools.schema.json +9 -0
  65. package/dist/core/agent.d.ts +2 -2
  66. package/dist/core/agent.d.ts.map +1 -1
  67. package/dist/core/agent.js.map +1 -1
  68. package/dist/core/aiFlowOptimizer.d.ts +26 -0
  69. package/dist/core/aiFlowOptimizer.d.ts.map +1 -0
  70. package/dist/core/aiFlowOptimizer.js +31 -0
  71. package/dist/core/aiFlowOptimizer.js.map +1 -0
  72. package/dist/core/aiOptimizationEngine.d.ts +158 -0
  73. package/dist/core/aiOptimizationEngine.d.ts.map +1 -0
  74. package/dist/core/aiOptimizationEngine.js +428 -0
  75. package/dist/core/aiOptimizationEngine.js.map +1 -0
  76. package/dist/core/aiOptimizationIntegration.d.ts +93 -0
  77. package/dist/core/aiOptimizationIntegration.d.ts.map +1 -0
  78. package/dist/core/aiOptimizationIntegration.js +250 -0
  79. package/dist/core/aiOptimizationIntegration.js.map +1 -0
  80. package/dist/core/customCommands.d.ts +0 -1
  81. package/dist/core/customCommands.d.ts.map +1 -1
  82. package/dist/core/customCommands.js +0 -3
  83. package/dist/core/customCommands.js.map +1 -1
  84. package/dist/core/enhancedErrorRecovery.d.ts +100 -0
  85. package/dist/core/enhancedErrorRecovery.d.ts.map +1 -0
  86. package/dist/core/enhancedErrorRecovery.js +345 -0
  87. package/dist/core/enhancedErrorRecovery.js.map +1 -0
  88. package/dist/core/hooksSystem.d.ts +65 -0
  89. package/dist/core/hooksSystem.d.ts.map +1 -0
  90. package/dist/core/hooksSystem.js +273 -0
  91. package/dist/core/hooksSystem.js.map +1 -0
  92. package/dist/core/memorySystem.d.ts +48 -0
  93. package/dist/core/memorySystem.d.ts.map +1 -0
  94. package/dist/core/memorySystem.js +271 -0
  95. package/dist/core/memorySystem.js.map +1 -0
  96. package/dist/core/sessionStore.d.ts +0 -2
  97. package/dist/core/sessionStore.d.ts.map +1 -1
  98. package/dist/core/sessionStore.js +0 -1
  99. package/dist/core/sessionStore.js.map +1 -1
  100. package/dist/core/toolPreconditions.d.ts.map +1 -1
  101. package/dist/core/toolPreconditions.js +14 -0
  102. package/dist/core/toolPreconditions.js.map +1 -1
  103. package/dist/core/toolRuntime.d.ts +1 -22
  104. package/dist/core/toolRuntime.d.ts.map +1 -1
  105. package/dist/core/toolRuntime.js +5 -0
  106. package/dist/core/toolRuntime.js.map +1 -1
  107. package/dist/core/toolValidation.d.ts.map +1 -1
  108. package/dist/core/toolValidation.js +3 -14
  109. package/dist/core/toolValidation.js.map +1 -1
  110. package/dist/core/unified/errors.d.ts +189 -0
  111. package/dist/core/unified/errors.d.ts.map +1 -0
  112. package/dist/core/unified/errors.js +497 -0
  113. package/dist/core/unified/errors.js.map +1 -0
  114. package/dist/core/unified/index.d.ts +19 -0
  115. package/dist/core/unified/index.d.ts.map +1 -0
  116. package/dist/core/unified/index.js +68 -0
  117. package/dist/core/unified/index.js.map +1 -0
  118. package/dist/core/unified/schema.d.ts +101 -0
  119. package/dist/core/unified/schema.d.ts.map +1 -0
  120. package/dist/core/unified/schema.js +350 -0
  121. package/dist/core/unified/schema.js.map +1 -0
  122. package/dist/core/unified/toolRuntime.d.ts +179 -0
  123. package/dist/core/unified/toolRuntime.d.ts.map +1 -0
  124. package/dist/core/unified/toolRuntime.js +517 -0
  125. package/dist/core/unified/toolRuntime.js.map +1 -0
  126. package/dist/core/unified/tools.d.ts +127 -0
  127. package/dist/core/unified/tools.d.ts.map +1 -0
  128. package/dist/core/unified/tools.js +1333 -0
  129. package/dist/core/unified/tools.js.map +1 -0
  130. package/dist/core/unified/types.d.ts +352 -0
  131. package/dist/core/unified/types.d.ts.map +1 -0
  132. package/dist/core/unified/types.js +12 -0
  133. package/dist/core/unified/types.js.map +1 -0
  134. package/dist/core/unified/version.d.ts +209 -0
  135. package/dist/core/unified/version.d.ts.map +1 -0
  136. package/dist/core/unified/version.js +454 -0
  137. package/dist/core/unified/version.js.map +1 -0
  138. package/dist/core/validationRunner.d.ts +3 -1
  139. package/dist/core/validationRunner.d.ts.map +1 -1
  140. package/dist/core/validationRunner.js.map +1 -1
  141. package/dist/headless/headlessApp.d.ts.map +1 -1
  142. package/dist/headless/headlessApp.js +0 -21
  143. package/dist/headless/headlessApp.js.map +1 -1
  144. package/dist/mcp/sseClient.d.ts.map +1 -1
  145. package/dist/mcp/sseClient.js +18 -9
  146. package/dist/mcp/sseClient.js.map +1 -1
  147. package/dist/plugins/tools/build/buildPlugin.d.ts +6 -0
  148. package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -1
  149. package/dist/plugins/tools/build/buildPlugin.js +10 -4
  150. package/dist/plugins/tools/build/buildPlugin.js.map +1 -1
  151. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  152. package/dist/plugins/tools/nodeDefaults.js +2 -0
  153. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  154. package/dist/plugins/tools/security/securityPlugin.d.ts +3 -0
  155. package/dist/plugins/tools/security/securityPlugin.d.ts.map +1 -0
  156. package/dist/plugins/tools/security/securityPlugin.js +12 -0
  157. package/dist/plugins/tools/security/securityPlugin.js.map +1 -0
  158. package/dist/runtime/agentSession.d.ts +2 -2
  159. package/dist/runtime/agentSession.d.ts.map +1 -1
  160. package/dist/runtime/agentSession.js +2 -2
  161. package/dist/runtime/agentSession.js.map +1 -1
  162. package/dist/security/active-stack-security.d.ts +112 -0
  163. package/dist/security/active-stack-security.d.ts.map +1 -0
  164. package/dist/security/active-stack-security.js +296 -0
  165. package/dist/security/active-stack-security.js.map +1 -0
  166. package/dist/security/advanced-persistence-research.d.ts +92 -0
  167. package/dist/security/advanced-persistence-research.d.ts.map +1 -0
  168. package/dist/security/advanced-persistence-research.js +195 -0
  169. package/dist/security/advanced-persistence-research.js.map +1 -0
  170. package/dist/security/advanced-targeting.d.ts +119 -0
  171. package/dist/security/advanced-targeting.d.ts.map +1 -0
  172. package/dist/security/advanced-targeting.js +233 -0
  173. package/dist/security/advanced-targeting.js.map +1 -0
  174. package/dist/security/assessment/vulnerabilityAssessment.d.ts +104 -0
  175. package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +1 -0
  176. package/dist/security/assessment/vulnerabilityAssessment.js +315 -0
  177. package/dist/security/assessment/vulnerabilityAssessment.js.map +1 -0
  178. package/dist/security/authorization/securityAuthorization.d.ts +88 -0
  179. package/dist/security/authorization/securityAuthorization.d.ts.map +1 -0
  180. package/dist/security/authorization/securityAuthorization.js +172 -0
  181. package/dist/security/authorization/securityAuthorization.js.map +1 -0
  182. package/dist/security/comprehensive-targeting.d.ts +85 -0
  183. package/dist/security/comprehensive-targeting.d.ts.map +1 -0
  184. package/dist/security/comprehensive-targeting.js +438 -0
  185. package/dist/security/comprehensive-targeting.js.map +1 -0
  186. package/dist/security/global-security-integration.d.ts +91 -0
  187. package/dist/security/global-security-integration.d.ts.map +1 -0
  188. package/dist/security/global-security-integration.js +218 -0
  189. package/dist/security/global-security-integration.js.map +1 -0
  190. package/dist/security/index.d.ts +38 -0
  191. package/dist/security/index.d.ts.map +1 -0
  192. package/dist/security/index.js +47 -0
  193. package/dist/security/index.js.map +1 -0
  194. package/dist/security/persistence-analyzer.d.ts +56 -0
  195. package/dist/security/persistence-analyzer.d.ts.map +1 -0
  196. package/dist/security/persistence-analyzer.js +187 -0
  197. package/dist/security/persistence-analyzer.js.map +1 -0
  198. package/dist/security/persistence-cli.d.ts +36 -0
  199. package/dist/security/persistence-cli.d.ts.map +1 -0
  200. package/dist/security/persistence-cli.js +160 -0
  201. package/dist/security/persistence-cli.js.map +1 -0
  202. package/dist/security/persistence-research.d.ts +92 -0
  203. package/dist/security/persistence-research.d.ts.map +1 -0
  204. package/dist/security/persistence-research.js +364 -0
  205. package/dist/security/persistence-research.js.map +1 -0
  206. package/dist/security/research/persistenceResearch.d.ts +97 -0
  207. package/dist/security/research/persistenceResearch.d.ts.map +1 -0
  208. package/dist/security/research/persistenceResearch.js +282 -0
  209. package/dist/security/research/persistenceResearch.js.map +1 -0
  210. package/dist/security/security-integration.d.ts +74 -0
  211. package/dist/security/security-integration.d.ts.map +1 -0
  212. package/dist/security/security-integration.js +137 -0
  213. package/dist/security/security-integration.js.map +1 -0
  214. package/dist/security/security-testing-framework.d.ts +112 -0
  215. package/dist/security/security-testing-framework.d.ts.map +1 -0
  216. package/dist/security/security-testing-framework.js +364 -0
  217. package/dist/security/security-testing-framework.js.map +1 -0
  218. package/dist/security/simulation/attackSimulation.d.ts +93 -0
  219. package/dist/security/simulation/attackSimulation.d.ts.map +1 -0
  220. package/dist/security/simulation/attackSimulation.js +341 -0
  221. package/dist/security/simulation/attackSimulation.js.map +1 -0
  222. package/dist/security/strategic-operations.d.ts +100 -0
  223. package/dist/security/strategic-operations.d.ts.map +1 -0
  224. package/dist/security/strategic-operations.js +276 -0
  225. package/dist/security/strategic-operations.js.map +1 -0
  226. package/dist/security/tool-security-wrapper.d.ts +58 -0
  227. package/dist/security/tool-security-wrapper.d.ts.map +1 -0
  228. package/dist/security/tool-security-wrapper.js +156 -0
  229. package/dist/security/tool-security-wrapper.js.map +1 -0
  230. package/dist/shell/claudeCodeStreamHandler.d.ts +145 -0
  231. package/dist/shell/claudeCodeStreamHandler.d.ts.map +1 -0
  232. package/dist/shell/claudeCodeStreamHandler.js +322 -0
  233. package/dist/shell/claudeCodeStreamHandler.js.map +1 -0
  234. package/dist/shell/inputQueueManager.d.ts +144 -0
  235. package/dist/shell/inputQueueManager.d.ts.map +1 -0
  236. package/dist/shell/inputQueueManager.js +290 -0
  237. package/dist/shell/inputQueueManager.js.map +1 -0
  238. package/dist/shell/interactiveShell.d.ts +7 -43
  239. package/dist/shell/interactiveShell.d.ts.map +1 -1
  240. package/dist/shell/interactiveShell.js +166 -418
  241. package/dist/shell/interactiveShell.js.map +1 -1
  242. package/dist/shell/metricsTracker.d.ts +60 -0
  243. package/dist/shell/metricsTracker.d.ts.map +1 -0
  244. package/dist/shell/metricsTracker.js +119 -0
  245. package/dist/shell/metricsTracker.js.map +1 -0
  246. package/dist/shell/shellApp.d.ts +0 -2
  247. package/dist/shell/shellApp.d.ts.map +1 -1
  248. package/dist/shell/shellApp.js +9 -82
  249. package/dist/shell/shellApp.js.map +1 -1
  250. package/dist/shell/streamingOutputManager.d.ts +115 -0
  251. package/dist/shell/streamingOutputManager.d.ts.map +1 -0
  252. package/dist/shell/streamingOutputManager.js +225 -0
  253. package/dist/shell/streamingOutputManager.js.map +1 -0
  254. package/dist/shell/systemPrompt.d.ts.map +1 -1
  255. package/dist/shell/systemPrompt.js +4 -1
  256. package/dist/shell/systemPrompt.js.map +1 -1
  257. package/dist/shell/terminalInput.d.ts +124 -258
  258. package/dist/shell/terminalInput.d.ts.map +1 -1
  259. package/dist/shell/terminalInput.js +608 -1010
  260. package/dist/shell/terminalInput.js.map +1 -1
  261. package/dist/shell/terminalInputAdapter.d.ts +24 -106
  262. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  263. package/dist/shell/terminalInputAdapter.js +30 -140
  264. package/dist/shell/terminalInputAdapter.js.map +1 -1
  265. package/dist/subagents/taskRunner.d.ts +1 -7
  266. package/dist/subagents/taskRunner.d.ts.map +1 -1
  267. package/dist/subagents/taskRunner.js +47 -180
  268. package/dist/subagents/taskRunner.js.map +1 -1
  269. package/dist/tools/learnTools.js +4 -127
  270. package/dist/tools/learnTools.js.map +1 -1
  271. package/dist/tools/securityTools.d.ts +22 -0
  272. package/dist/tools/securityTools.d.ts.map +1 -0
  273. package/dist/tools/securityTools.js +448 -0
  274. package/dist/tools/securityTools.js.map +1 -0
  275. package/dist/ui/ShellUIAdapter.d.ts +1 -7
  276. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  277. package/dist/ui/ShellUIAdapter.js +18 -42
  278. package/dist/ui/ShellUIAdapter.js.map +1 -1
  279. package/dist/ui/display.d.ts +45 -24
  280. package/dist/ui/display.d.ts.map +1 -1
  281. package/dist/ui/display.js +274 -148
  282. package/dist/ui/display.js.map +1 -1
  283. package/dist/ui/persistentPrompt.d.ts +50 -0
  284. package/dist/ui/persistentPrompt.d.ts.map +1 -0
  285. package/dist/ui/persistentPrompt.js +92 -0
  286. package/dist/ui/persistentPrompt.js.map +1 -0
  287. package/dist/ui/terminalUISchema.d.ts +195 -0
  288. package/dist/ui/terminalUISchema.d.ts.map +1 -0
  289. package/dist/ui/terminalUISchema.js +113 -0
  290. package/dist/ui/terminalUISchema.js.map +1 -0
  291. package/dist/ui/theme.d.ts.map +1 -1
  292. package/dist/ui/theme.js +8 -6
  293. package/dist/ui/theme.js.map +1 -1
  294. package/dist/ui/toolDisplay.d.ts +158 -0
  295. package/dist/ui/toolDisplay.d.ts.map +1 -1
  296. package/dist/ui/toolDisplay.js +348 -0
  297. package/dist/ui/toolDisplay.js.map +1 -1
  298. package/dist/ui/unified/layout.d.ts +0 -20
  299. package/dist/ui/unified/layout.d.ts.map +1 -1
  300. package/dist/ui/unified/layout.js +216 -105
  301. package/dist/ui/unified/layout.js.map +1 -1
  302. package/package.json +4 -4
  303. package/scripts/deploy-security-capabilities.js +178 -0
  304. package/dist/core/hooks.d.ts +0 -113
  305. package/dist/core/hooks.d.ts.map +0 -1
  306. package/dist/core/hooks.js +0 -267
  307. package/dist/core/hooks.js.map +0 -1
  308. package/dist/core/metricsTracker.d.ts +0 -122
  309. package/dist/core/metricsTracker.d.ts.map +0 -1
  310. package/dist/core/metricsTracker.js.map +0 -1
  311. package/dist/core/securityAssessment.d.ts +0 -91
  312. package/dist/core/securityAssessment.d.ts.map +0 -1
  313. package/dist/core/securityAssessment.js +0 -580
  314. package/dist/core/securityAssessment.js.map +0 -1
  315. package/dist/core/verification.d.ts +0 -137
  316. package/dist/core/verification.d.ts.map +0 -1
  317. package/dist/core/verification.js +0 -323
  318. package/dist/core/verification.js.map +0 -1
  319. package/dist/subagents/agentConfig.d.ts +0 -27
  320. package/dist/subagents/agentConfig.d.ts.map +0 -1
  321. package/dist/subagents/agentConfig.js +0 -89
  322. package/dist/subagents/agentConfig.js.map +0 -1
  323. package/dist/subagents/agentRegistry.d.ts +0 -33
  324. package/dist/subagents/agentRegistry.d.ts.map +0 -1
  325. package/dist/subagents/agentRegistry.js +0 -162
  326. package/dist/subagents/agentRegistry.js.map +0 -1
  327. package/dist/utils/frontmatter.d.ts +0 -10
  328. package/dist/utils/frontmatter.d.ts.map +0 -1
  329. package/dist/utils/frontmatter.js +0 -78
  330. package/dist/utils/frontmatter.js.map +0 -1
@@ -0,0 +1,345 @@
1
+ /**
2
+ * Enhanced Error Recovery System
3
+ *
4
+ * Provides intelligent error recovery with:
5
+ * - Multi-strategy error handling
6
+ * - Context-aware recovery actions
7
+ * - Progressive escalation
8
+ * - Learning from past recoveries
9
+ * - Integration with AI optimization engine
10
+ *
11
+ * @license MIT
12
+ * @author Bo Shang
13
+ */
14
+ import { AIOptimizationEngine } from './aiOptimizationEngine.js';
15
+ export var RecoveryLevel;
16
+ (function (RecoveryLevel) {
17
+ RecoveryLevel["IMMEDIATE"] = "immediate";
18
+ RecoveryLevel["ASSISTED"] = "assisted";
19
+ RecoveryLevel["ESCALATED"] = "escalated";
20
+ RecoveryLevel["MANUAL"] = "manual"; // Full manual intervention required
21
+ })(RecoveryLevel || (RecoveryLevel = {}));
22
+ export class EnhancedErrorRecovery {
23
+ optimizationEngine;
24
+ recoveryHistory = [];
25
+ learnedPatterns = new Map();
26
+ constructor(options = {}) {
27
+ this.optimizationEngine = new AIOptimizationEngine(options);
28
+ }
29
+ /**
30
+ * Analyze error and generate comprehensive recovery plan
31
+ */
32
+ analyzeError(context) {
33
+ const errorAnalysis = this.analyzeErrorType(context.error);
34
+ const recoveryLevel = this.determineRecoveryLevel(context, errorAnalysis);
35
+ const primaryAction = this.generatePrimaryRecoveryAction(context, errorAnalysis);
36
+ const alternativeActions = this.generateAlternativeActions(context, errorAnalysis);
37
+ const estimatedTime = this.estimateRecoveryTime(context, errorAnalysis);
38
+ const successProbability = this.calculateSuccessProbability(context, errorAnalysis);
39
+ const rollbackPlan = this.generateRollbackPlan(context);
40
+ const validationSteps = this.generateValidationSteps(context);
41
+ return {
42
+ level: recoveryLevel,
43
+ primaryAction,
44
+ alternativeActions,
45
+ estimatedTime,
46
+ successProbability,
47
+ rollbackPlan,
48
+ validationSteps
49
+ };
50
+ }
51
+ /**
52
+ * Execute recovery plan with monitoring and learning
53
+ */
54
+ async executeRecovery(plan, context) {
55
+ const startTime = Date.now();
56
+ let success = false;
57
+ let output = '';
58
+ let learnedPattern;
59
+ try {
60
+ // Execute primary action
61
+ if (plan.primaryAction.autoExecutable && !plan.primaryAction.requiresConfirmation) {
62
+ const result = await this.executeRecoveryAction(plan.primaryAction);
63
+ output = result.output;
64
+ success = result.success;
65
+ if (success) {
66
+ learnedPattern = this.extractPatternFromSuccess(context, plan.primaryAction);
67
+ }
68
+ }
69
+ // Record recovery attempt
70
+ const recoveryAttempt = {
71
+ timestamp: new Date(),
72
+ error: context.error,
73
+ recoveryAction: plan.primaryAction.action,
74
+ success,
75
+ durationMs: Date.now() - startTime,
76
+ learnedPattern
77
+ };
78
+ this.recoveryHistory.push(recoveryAttempt);
79
+ if (learnedPattern) {
80
+ this.learnedPatterns.set(context.errorType, learnedPattern);
81
+ }
82
+ return { success, output, learnedPattern };
83
+ }
84
+ catch (error) {
85
+ const recoveryAttempt = {
86
+ timestamp: new Date(),
87
+ error: context.error,
88
+ recoveryAction: plan.primaryAction.action,
89
+ success: false,
90
+ durationMs: Date.now() - startTime,
91
+ learnedPattern: `Failed recovery: ${error}`
92
+ };
93
+ this.recoveryHistory.push(recoveryAttempt);
94
+ return {
95
+ success: false,
96
+ output: `Recovery failed: ${error}`,
97
+ learnedPattern: `Avoid: ${plan.primaryAction.action} for ${context.errorType}`
98
+ };
99
+ }
100
+ }
101
+ /**
102
+ * Get recovery statistics and insights
103
+ */
104
+ getRecoveryInsights() {
105
+ const totalRecoveries = this.recoveryHistory.length;
106
+ const successfulRecoveries = this.recoveryHistory.filter(r => r.success).length;
107
+ const successRate = totalRecoveries > 0 ? successfulRecoveries / totalRecoveries : 0;
108
+ const averageRecoveryTime = totalRecoveries > 0
109
+ ? this.recoveryHistory.reduce((sum, r) => sum + r.durationMs, 0) / totalRecoveries
110
+ : 0;
111
+ const errorCounts = new Map();
112
+ this.recoveryHistory.forEach(r => {
113
+ errorCounts.set(r.error, (errorCounts.get(r.error) || 0) + 1);
114
+ });
115
+ const mostCommonErrors = Array.from(errorCounts.entries())
116
+ .sort((a, b) => b[1] - a[1])
117
+ .slice(0, 5)
118
+ .map(([error]) => error);
119
+ const learnedPatterns = Array.from(this.learnedPatterns.entries())
120
+ .map(([errorType, pattern]) => `${errorType}: ${pattern}`);
121
+ return {
122
+ totalRecoveries,
123
+ successRate,
124
+ averageRecoveryTime,
125
+ mostCommonErrors,
126
+ learnedPatterns
127
+ };
128
+ }
129
+ // Private implementation methods
130
+ analyzeErrorType(error) {
131
+ const errorLower = error.toLowerCase();
132
+ // Error categorization
133
+ let category = 'unknown';
134
+ let severity = 'medium';
135
+ let autoFixable = false;
136
+ const patterns = [];
137
+ // TypeScript/compilation errors
138
+ if (errorLower.includes('ts') && errorLower.includes('error')) {
139
+ category = 'compilation';
140
+ severity = 'high';
141
+ autoFixable = true;
142
+ patterns.push('typescript_error');
143
+ }
144
+ // Test failures
145
+ if (errorLower.includes('fail') && errorLower.includes('test')) {
146
+ category = 'test';
147
+ severity = 'medium';
148
+ autoFixable = false;
149
+ patterns.push('test_failure');
150
+ }
151
+ // File not found
152
+ if (errorLower.includes('file not found') || errorLower.includes('enoent')) {
153
+ category = 'file';
154
+ severity = 'medium';
155
+ autoFixable = true;
156
+ patterns.push('file_not_found');
157
+ }
158
+ // Permission errors
159
+ if (errorLower.includes('permission') || errorLower.includes('eacces')) {
160
+ category = 'permission';
161
+ severity = 'high';
162
+ autoFixable = false;
163
+ patterns.push('permission_error');
164
+ }
165
+ // Network errors
166
+ if (errorLower.includes('network') || errorLower.includes('connection')) {
167
+ category = 'network';
168
+ severity = 'medium';
169
+ autoFixable = false;
170
+ patterns.push('network_error');
171
+ }
172
+ return { category, severity, autoFixable, patterns };
173
+ }
174
+ determineRecoveryLevel(context, errorAnalysis) {
175
+ // Check if we have learned patterns for this error
176
+ if (this.learnedPatterns.has(context.errorType) && errorAnalysis.autoFixable) {
177
+ return RecoveryLevel.IMMEDIATE;
178
+ }
179
+ // Check severity and auto-fixability
180
+ if (errorAnalysis.severity === 'low' && errorAnalysis.autoFixable) {
181
+ return RecoveryLevel.IMMEDIATE;
182
+ }
183
+ if (errorAnalysis.severity === 'medium' && errorAnalysis.autoFixable) {
184
+ return RecoveryLevel.ASSISTED;
185
+ }
186
+ if (errorAnalysis.severity === 'high' || errorAnalysis.severity === 'critical') {
187
+ return RecoveryLevel.ESCALATED;
188
+ }
189
+ // Check recovery history for similar errors
190
+ const similarRecoveries = this.recoveryHistory.filter(r => r.error.includes(context.errorType) && r.success);
191
+ if (similarRecoveries.length > 0) {
192
+ return RecoveryLevel.ASSISTED;
193
+ }
194
+ return RecoveryLevel.MANUAL;
195
+ }
196
+ generatePrimaryRecoveryAction(context, errorAnalysis) {
197
+ // Use learned patterns if available
198
+ const learnedPattern = this.learnedPatterns.get(context.errorType);
199
+ if (learnedPattern) {
200
+ return this.parseLearnedPattern(learnedPattern, context);
201
+ }
202
+ // Generate based on error category
203
+ switch (errorAnalysis.category) {
204
+ case 'compilation':
205
+ return {
206
+ action: 'Run TypeScript validation to get detailed errors',
207
+ tool: 'validate_typescript',
208
+ parameters: {},
209
+ description: 'Get comprehensive TypeScript error details',
210
+ confidence: 0.9,
211
+ autoExecutable: true,
212
+ requiresConfirmation: false
213
+ };
214
+ case 'test':
215
+ return {
216
+ action: 'Run tests with detailed output',
217
+ tool: 'run_tests',
218
+ parameters: {},
219
+ description: 'Get detailed test failure information',
220
+ confidence: 0.8,
221
+ autoExecutable: true,
222
+ requiresConfirmation: false
223
+ };
224
+ case 'file':
225
+ return {
226
+ action: 'Search for similar files',
227
+ tool: 'search_files',
228
+ parameters: { pattern: '**/*' },
229
+ description: 'Find available files to understand project structure',
230
+ confidence: 0.7,
231
+ autoExecutable: true,
232
+ requiresConfirmation: false
233
+ };
234
+ case 'permission':
235
+ return {
236
+ action: 'Check file permissions',
237
+ tool: 'execute_bash',
238
+ parameters: { command: 'ls -la' },
239
+ description: 'Check file permissions and ownership',
240
+ confidence: 0.6,
241
+ autoExecutable: true,
242
+ requiresConfirmation: true
243
+ };
244
+ default:
245
+ return {
246
+ action: 'Analyze current state',
247
+ tool: 'execute_bash',
248
+ parameters: { command: 'git status && npm run type-check' },
249
+ description: 'Get comprehensive system state information',
250
+ confidence: 0.5,
251
+ autoExecutable: true,
252
+ requiresConfirmation: false
253
+ };
254
+ }
255
+ }
256
+ generateAlternativeActions(context, errorAnalysis) {
257
+ const alternatives = [];
258
+ // Add rollback alternative for destructive operations
259
+ if (context.currentState.filesModified.length > 0) {
260
+ alternatives.push({
261
+ action: 'Rollback all changes',
262
+ tool: 'execute_bash',
263
+ parameters: { command: 'git reset --hard HEAD' },
264
+ description: 'Revert all changes to last known good state',
265
+ confidence: 1.0,
266
+ autoExecutable: true,
267
+ requiresConfirmation: true
268
+ });
269
+ }
270
+ // Add validation alternative
271
+ alternatives.push({
272
+ action: 'Run comprehensive validation',
273
+ tool: 'validate_all_changes',
274
+ parameters: {},
275
+ description: 'Run full validation suite to identify all issues',
276
+ confidence: 0.8,
277
+ autoExecutable: true,
278
+ requiresConfirmation: false
279
+ });
280
+ return alternatives.slice(0, 3); // Return top 3 alternatives
281
+ }
282
+ estimateRecoveryTime(context, errorAnalysis) {
283
+ const baseTimes = {
284
+ compilation: 30,
285
+ test: 60,
286
+ file: 15,
287
+ permission: 45,
288
+ network: 120,
289
+ unknown: 30
290
+ };
291
+ return baseTimes[errorAnalysis.category];
292
+ }
293
+ calculateSuccessProbability(context, errorAnalysis) {
294
+ let probability = 0.5;
295
+ // Adjust based on error category
296
+ const categoryProbabilities = {
297
+ compilation: 0.8,
298
+ test: 0.6,
299
+ file: 0.9,
300
+ permission: 0.4,
301
+ network: 0.3,
302
+ unknown: 0.5
303
+ };
304
+ probability = categoryProbabilities[errorAnalysis.category];
305
+ // Adjust based on recovery history
306
+ const similarSuccesses = this.recoveryHistory.filter(r => r.error.includes(context.errorType) && r.success).length;
307
+ const similarFailures = this.recoveryHistory.filter(r => r.error.includes(context.errorType) && !r.success).length;
308
+ const totalSimilar = similarSuccesses + similarFailures;
309
+ if (totalSimilar > 0) {
310
+ const historicalProbability = similarSuccesses / totalSimilar;
311
+ probability = (probability + historicalProbability) / 2;
312
+ }
313
+ return probability;
314
+ }
315
+ generateRollbackPlan(context) {
316
+ const rollbackSteps = [];
317
+ if (context.currentState.filesModified.length > 0) {
318
+ rollbackSteps.push('git reset --hard HEAD');
319
+ rollbackSteps.push('Remove any untracked files if necessary');
320
+ }
321
+ return rollbackSteps;
322
+ }
323
+ generateValidationSteps(context) {
324
+ return [
325
+ 'Verify error is resolved',
326
+ 'Run TypeScript type checking',
327
+ 'Run build process',
328
+ 'Execute relevant tests',
329
+ 'Confirm system is in stable state'
330
+ ];
331
+ }
332
+ async executeRecoveryAction(action) {
333
+ // This would integrate with the actual tool execution system
334
+ // For now, return a mock implementation
335
+ return {
336
+ success: true,
337
+ output: `Executed: ${action.action}`
338
+ };
339
+ }
340
+ extractPatternFromSuccess(context, action) {
341
+ return `${context.errorType} -> ${action.action} (${action.tool})`;
342
+ }
343
+ parseLearnedPattern(pattern, context) { n; }
344
+ } // Simple pattern parsing - in practice this would be more sophisticated\n const parts = pattern.split(' -> ');\n if (parts.length === 2) {\n const [errorType, recovery] = parts;\n const [action, tool] = recovery.split(' (');\n \n return {\n action: action.trim(),\n tool: tool ? tool.replace(')', '') : undefined,\n parameters: {},\n description: `Learned recovery pattern for ${errorType}`,\n confidence: 0.9,\n autoExecutable: true,\n requiresConfirmation: false\n };\n }\n\n // Fallback to generic recovery\n return {\n action: 'Use learned recovery pattern',\n description: `Apply previously successful recovery for ${context.errorType}`,\n confidence: 0.8,\n autoExecutable: true,\n requiresConfirmation: false\n };\n }\n}
345
+ //# sourceMappingURL=enhancedErrorRecovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhancedErrorRecovery.js","sourceRoot":"","sources":["../../src/core/enhancedErrorRecovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Hooks System - Event-driven automation for tool execution
3
+ *
4
+ * Implements a Claude Code-style hooks system that runs shell commands
5
+ * in response to tool execution events:
6
+ *
7
+ * - beforeToolExecution: Runs before any tool starts
8
+ * - afterToolExecution: Runs after any tool completes
9
+ * - beforeFileEdit: Runs before a file is modified
10
+ * - afterFileEdit: Runs after a file is modified
11
+ * - beforeBashCommand: Runs before a bash command executes
12
+ * - afterBashCommand: Runs after a bash command completes
13
+ *
14
+ * Hooks are configured in EROSOLAR.md or settings.json
15
+ */
16
+ export type HookTrigger = 'beforeToolExecution' | 'afterToolExecution' | 'beforeFileEdit' | 'afterFileEdit' | 'beforeBashCommand' | 'afterBashCommand';
17
+ export interface HookDefinition {
18
+ /** When to trigger the hook */
19
+ when: HookTrigger;
20
+ /** Condition to match (tool name, file pattern, or command pattern) */
21
+ if?: string;
22
+ /** Shell commands to execute */
23
+ then: string[];
24
+ /** Optional timeout in milliseconds */
25
+ timeout?: number;
26
+ }
27
+ export interface HookContext {
28
+ /** The tool or command being executed */
29
+ tool?: string;
30
+ /** File path if applicable */
31
+ file?: string;
32
+ /** Bash command if applicable */
33
+ command?: string;
34
+ /** Working directory */
35
+ workingDir: string;
36
+ /** Additional context data */
37
+ data?: Record<string, unknown>;
38
+ }
39
+ export interface HookResult {
40
+ /** Whether the hook was triggered */
41
+ triggered: boolean;
42
+ /** Output from executed commands */
43
+ output: string[];
44
+ /** Any errors that occurred */
45
+ errors: string[];
46
+ /** Whether execution should be aborted */
47
+ abort: boolean;
48
+ }
49
+ /**
50
+ * Load hooks from EROSOLAR.md or settings.json
51
+ */
52
+ export declare function loadHooks(workingDir: string): HookDefinition[];
53
+ /**
54
+ * Run hooks for a specific trigger
55
+ */
56
+ export declare function runHooks(trigger: HookTrigger, context: HookContext, hooks?: HookDefinition[]): Promise<HookResult>;
57
+ /**
58
+ * Create a hooks runner bound to a specific working directory
59
+ */
60
+ export declare function createHooksRunner(workingDir: string): {
61
+ runBefore: (trigger: HookTrigger, context: Omit<HookContext, 'workingDir'>) => Promise<HookResult>;
62
+ runAfter: (trigger: HookTrigger, context: Omit<HookContext, 'workingDir'>) => Promise<HookResult>;
63
+ reload: () => void;
64
+ };
65
+ //# sourceMappingURL=hooksSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooksSystem.d.ts","sourceRoot":"","sources":["../../src/core/hooksSystem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,MAAM,MAAM,WAAW,GACnB,qBAAqB,GACrB,oBAAoB,GACpB,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,uEAAuE;IACvE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,0CAA0C;IAC1C,KAAK,EAAE,OAAO,CAAC;CAChB;AASD;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAG9D;AAsOD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,KAAK,CAAC,EAAE,cAAc,EAAE,GACvB,OAAO,CAAC,UAAU,CAAC,CA4BrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG;IACrD,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnG,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAClG,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAmBA"}