erosolar-cli 2.1.249 → 2.1.252
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/agents/general.rules.json +10 -133
- package/agents/general.rules.json.bak +278 -0
- package/agents/general.rules.json.bak2 +306 -0
- package/dist/bin/erosolar.js +9 -5
- package/dist/bin/erosolar.js.map +1 -1
- package/dist/capabilities/bidirectionalAuditCapability.d.ts +26 -0
- package/dist/capabilities/bidirectionalAuditCapability.d.ts.map +1 -0
- package/dist/capabilities/bidirectionalAuditCapability.js +44 -0
- package/dist/capabilities/bidirectionalAuditCapability.js.map +1 -0
- package/dist/capabilities/globCapability.d.ts +3 -6
- package/dist/capabilities/globCapability.d.ts.map +1 -1
- package/dist/capabilities/globCapability.js +6 -10
- package/dist/capabilities/globCapability.js.map +1 -1
- package/dist/capabilities/index.d.ts +1 -18
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +1 -18
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/orchestrationCapability.d.ts +2 -0
- package/dist/capabilities/orchestrationCapability.d.ts.map +1 -1
- package/dist/capabilities/orchestrationCapability.js +980 -2
- package/dist/capabilities/orchestrationCapability.js.map +1 -1
- package/dist/capabilities/searchCapability.d.ts +8 -2
- package/dist/capabilities/searchCapability.d.ts.map +1 -1
- package/dist/capabilities/searchCapability.js +11 -6
- package/dist/capabilities/searchCapability.js.map +1 -1
- package/dist/contracts/tools.schema.json +9 -133
- package/dist/core/aiErrorFixer.d.ts +1 -14
- package/dist/core/aiErrorFixer.d.ts.map +1 -1
- package/dist/core/aiErrorFixer.js +51 -239
- package/dist/core/aiErrorFixer.js.map +1 -1
- package/dist/core/alphaZeroEngine.d.ts +16 -256
- package/dist/core/alphaZeroEngine.d.ts.map +1 -1
- package/dist/core/alphaZeroEngine.js +22 -513
- package/dist/core/alphaZeroEngine.js.map +1 -1
- package/dist/core/completeAttackOrchestrator.d.ts +102 -0
- package/dist/core/completeAttackOrchestrator.d.ts.map +1 -0
- package/dist/core/completeAttackOrchestrator.js +293 -0
- package/dist/core/completeAttackOrchestrator.js.map +1 -0
- package/dist/core/defensiveSecurityToolkit.d.ts +373 -0
- package/dist/core/defensiveSecurityToolkit.d.ts.map +1 -0
- package/dist/core/defensiveSecurityToolkit.js +1304 -0
- package/dist/core/defensiveSecurityToolkit.js.map +1 -0
- package/dist/core/errors/errorTypes.d.ts +30 -57
- package/dist/core/errors/errorTypes.d.ts.map +1 -1
- package/dist/core/errors/errorTypes.js +51 -228
- package/dist/core/errors/errorTypes.js.map +1 -1
- package/dist/core/errors/safetyValidator.d.ts +19 -3
- package/dist/core/errors/safetyValidator.d.ts.map +1 -1
- package/dist/core/errors/safetyValidator.js +33 -71
- package/dist/core/errors/safetyValidator.js.map +1 -1
- package/dist/core/failureRecovery.d.ts +4 -100
- package/dist/core/failureRecovery.d.ts.map +1 -1
- package/dist/core/failureRecovery.js +16 -440
- package/dist/core/failureRecovery.js.map +1 -1
- package/dist/core/intelligentTargetResearcher.d.ts +142 -0
- package/dist/core/intelligentTargetResearcher.d.ts.map +1 -0
- package/dist/core/intelligentTargetResearcher.js +367 -0
- package/dist/core/intelligentTargetResearcher.js.map +1 -0
- package/dist/core/intelligentTestFlows.d.ts +26 -107
- package/dist/core/intelligentTestFlows.d.ts.map +1 -1
- package/dist/core/intelligentTestFlows.js +15 -659
- package/dist/core/intelligentTestFlows.js.map +1 -1
- package/dist/core/learningPersistence.d.ts +45 -132
- package/dist/core/learningPersistence.d.ts.map +1 -1
- package/dist/core/learningPersistence.js +32 -463
- package/dist/core/learningPersistence.js.map +1 -1
- package/dist/core/metricsTracker.d.ts +22 -139
- package/dist/core/metricsTracker.d.ts.map +1 -1
- package/dist/core/metricsTracker.js +51 -241
- package/dist/core/metricsTracker.js.map +1 -1
- package/dist/core/performanceMonitor.d.ts +15 -109
- package/dist/core/performanceMonitor.d.ts.map +1 -1
- package/dist/core/performanceMonitor.js +27 -184
- package/dist/core/performanceMonitor.js.map +1 -1
- package/dist/core/resultVerification.d.ts +6 -100
- package/dist/core/resultVerification.d.ts.map +1 -1
- package/dist/core/resultVerification.js +31 -400
- package/dist/core/resultVerification.js.map +1 -1
- package/dist/core/selfEvolution.d.ts +32 -126
- package/dist/core/selfEvolution.d.ts.map +1 -1
- package/dist/core/selfEvolution.js +24 -967
- package/dist/core/selfEvolution.js.map +1 -1
- package/dist/core/selfImprovement.d.ts +50 -109
- package/dist/core/selfImprovement.d.ts.map +1 -1
- package/dist/core/selfImprovement.js +14 -689
- package/dist/core/selfImprovement.js.map +1 -1
- package/dist/core/sourceCodeManager.d.ts +89 -0
- package/dist/core/sourceCodeManager.d.ts.map +1 -0
- package/dist/core/sourceCodeManager.js +332 -0
- package/dist/core/sourceCodeManager.js.map +1 -0
- package/dist/core/unifiedOrchestrator.d.ts +88 -0
- package/dist/core/unifiedOrchestrator.d.ts.map +1 -0
- package/dist/core/unifiedOrchestrator.js +284 -0
- package/dist/core/unifiedOrchestrator.js.map +1 -0
- package/dist/core/userDefenseOrchestrator.d.ts +202 -0
- package/dist/core/userDefenseOrchestrator.d.ts.map +1 -0
- package/dist/core/userDefenseOrchestrator.js +1006 -0
- package/dist/core/userDefenseOrchestrator.js.map +1 -0
- package/dist/plugins/index.d.ts +1 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +36 -26
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.d.ts +8 -0
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.js +17 -0
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.js.map +1 -0
- package/dist/plugins/tools/nodeDefaults.d.ts +14 -0
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
- package/dist/plugins/tools/nodeDefaults.js +17 -54
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +9 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js +18 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +97 -2
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +1001 -6
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/tools/appleExposureTools.d.ts +108 -0
- package/dist/tools/appleExposureTools.d.ts.map +1 -0
- package/dist/tools/appleExposureTools.js +850 -0
- package/dist/tools/appleExposureTools.js.map +1 -0
- package/dist/tools/bidirectionalAuditTools.d.ts +104 -0
- package/dist/tools/bidirectionalAuditTools.d.ts.map +1 -0
- package/dist/tools/bidirectionalAuditTools.js +1280 -0
- package/dist/tools/bidirectionalAuditTools.js.map +1 -0
- package/dist/tools/defensiveSecurityTools.d.ts +152 -0
- package/dist/tools/defensiveSecurityTools.d.ts.map +1 -0
- package/dist/tools/defensiveSecurityTools.js +576 -0
- package/dist/tools/defensiveSecurityTools.js.map +1 -0
- package/dist/tools/forwardAttackChainTracer.d.ts +73 -0
- package/dist/tools/forwardAttackChainTracer.d.ts.map +1 -0
- package/dist/tools/forwardAttackChainTracer.js +604 -0
- package/dist/tools/forwardAttackChainTracer.js.map +1 -0
- package/dist/tools/localExplore.d.ts +12 -199
- package/dist/tools/localExplore.d.ts.map +1 -1
- package/dist/tools/localExplore.js +18 -1352
- package/dist/tools/localExplore.js.map +1 -1
- package/dist/tools/offensiveTransparencyTools.d.ts +188 -0
- package/dist/tools/offensiveTransparencyTools.d.ts.map +1 -0
- package/dist/tools/offensiveTransparencyTools.js +890 -0
- package/dist/tools/offensiveTransparencyTools.js.map +1 -0
- package/dist/tools/planningTools.d.ts +8 -17
- package/dist/tools/planningTools.d.ts.map +1 -1
- package/dist/tools/planningTools.js +31 -141
- package/dist/tools/planningTools.js.map +1 -1
- package/dist/tools/searchTools.d.ts +9 -0
- package/dist/tools/searchTools.d.ts.map +1 -1
- package/dist/tools/searchTools.js +305 -189
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/tools/skillTools.d.ts +7 -5
- package/dist/tools/skillTools.d.ts.map +1 -1
- package/dist/tools/skillTools.js +13 -155
- package/dist/tools/skillTools.js.map +1 -1
- package/dist/tools/threatIntelligenceTools.d.ts +128 -0
- package/dist/tools/threatIntelligenceTools.d.ts.map +1 -0
- package/dist/tools/threatIntelligenceTools.js +712 -0
- package/dist/tools/threatIntelligenceTools.js.map +1 -0
- package/dist/ui/PromptController.d.ts +4 -0
- package/dist/ui/PromptController.d.ts.map +1 -1
- package/dist/ui/PromptController.js +32 -11
- package/dist/ui/PromptController.js.map +1 -1
- package/dist/ui/UnifiedUIRenderer.d.ts +20 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +235 -28
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/dist/ui/animatedStatus.d.ts +2 -0
- package/dist/ui/animatedStatus.d.ts.map +1 -1
- package/dist/ui/animatedStatus.js +36 -2
- package/dist/ui/animatedStatus.js.map +1 -1
- package/dist/ui/orchestration/StatusOrchestrator.d.ts +10 -0
- package/dist/ui/orchestration/StatusOrchestrator.d.ts.map +1 -1
- package/dist/ui/orchestration/StatusOrchestrator.js +36 -4
- package/dist/ui/orchestration/StatusOrchestrator.js.map +1 -1
- package/package.json +1 -1
- package/dist/capabilities/advancedTestGenerationCapability.d.ts +0 -17
- package/dist/capabilities/advancedTestGenerationCapability.d.ts.map +0 -1
- package/dist/capabilities/advancedTestGenerationCapability.js +0 -28
- package/dist/capabilities/advancedTestGenerationCapability.js.map +0 -1
- package/dist/capabilities/browserAutomationCapability.d.ts +0 -37
- package/dist/capabilities/browserAutomationCapability.d.ts.map +0 -1
- package/dist/capabilities/browserAutomationCapability.js +0 -49
- package/dist/capabilities/browserAutomationCapability.js.map +0 -1
- package/dist/capabilities/buildCapability.d.ts +0 -24
- package/dist/capabilities/buildCapability.d.ts.map +0 -1
- package/dist/capabilities/buildCapability.js +0 -25
- package/dist/capabilities/buildCapability.js.map +0 -1
- package/dist/capabilities/cloudCapability.d.ts +0 -13
- package/dist/capabilities/cloudCapability.d.ts.map +0 -1
- package/dist/capabilities/cloudCapability.js +0 -38
- package/dist/capabilities/cloudCapability.js.map +0 -1
- package/dist/capabilities/codeAnalysisCapability.d.ts +0 -13
- package/dist/capabilities/codeAnalysisCapability.d.ts.map +0 -1
- package/dist/capabilities/codeAnalysisCapability.js +0 -24
- package/dist/capabilities/codeAnalysisCapability.js.map +0 -1
- package/dist/capabilities/codeQualityCapability.d.ts +0 -13
- package/dist/capabilities/codeQualityCapability.d.ts.map +0 -1
- package/dist/capabilities/codeQualityCapability.js +0 -25
- package/dist/capabilities/codeQualityCapability.js.map +0 -1
- package/dist/capabilities/dependencySecurityCapability.d.ts +0 -13
- package/dist/capabilities/dependencySecurityCapability.d.ts.map +0 -1
- package/dist/capabilities/dependencySecurityCapability.js +0 -24
- package/dist/capabilities/dependencySecurityCapability.js.map +0 -1
- package/dist/capabilities/devCapability.d.ts +0 -13
- package/dist/capabilities/devCapability.d.ts.map +0 -1
- package/dist/capabilities/devCapability.js +0 -24
- package/dist/capabilities/devCapability.js.map +0 -1
- package/dist/capabilities/emailCapability.d.ts +0 -12
- package/dist/capabilities/emailCapability.d.ts.map +0 -1
- package/dist/capabilities/emailCapability.js +0 -22
- package/dist/capabilities/emailCapability.js.map +0 -1
- package/dist/capabilities/enhancedAnalysisCapability.d.ts +0 -13
- package/dist/capabilities/enhancedAnalysisCapability.d.ts.map +0 -1
- package/dist/capabilities/enhancedAnalysisCapability.js +0 -20
- package/dist/capabilities/enhancedAnalysisCapability.js.map +0 -1
- package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts +0 -17
- package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts.map +0 -1
- package/dist/capabilities/enhancedCodeIntelligenceCapability.js +0 -28
- package/dist/capabilities/enhancedCodeIntelligenceCapability.js.map +0 -1
- package/dist/capabilities/enhancedDevWorkflowCapability.d.ts +0 -17
- package/dist/capabilities/enhancedDevWorkflowCapability.d.ts.map +0 -1
- package/dist/capabilities/enhancedDevWorkflowCapability.js +0 -28
- package/dist/capabilities/enhancedDevWorkflowCapability.js.map +0 -1
- package/dist/capabilities/frontendTestingCapability.d.ts +0 -13
- package/dist/capabilities/frontendTestingCapability.d.ts.map +0 -1
- package/dist/capabilities/frontendTestingCapability.js +0 -28
- package/dist/capabilities/frontendTestingCapability.js.map +0 -1
- package/dist/capabilities/interactionCapability.d.ts +0 -12
- package/dist/capabilities/interactionCapability.d.ts.map +0 -1
- package/dist/capabilities/interactionCapability.js +0 -22
- package/dist/capabilities/interactionCapability.js.map +0 -1
- package/dist/capabilities/learnCapability.d.ts +0 -22
- package/dist/capabilities/learnCapability.d.ts.map +0 -1
- package/dist/capabilities/learnCapability.js +0 -37
- package/dist/capabilities/learnCapability.js.map +0 -1
- package/dist/capabilities/notebookCapability.d.ts +0 -17
- package/dist/capabilities/notebookCapability.d.ts.map +0 -1
- package/dist/capabilities/notebookCapability.js +0 -27
- package/dist/capabilities/notebookCapability.js.map +0 -1
- package/dist/capabilities/planningCapability.d.ts +0 -16
- package/dist/capabilities/planningCapability.d.ts.map +0 -1
- package/dist/capabilities/planningCapability.js +0 -26
- package/dist/capabilities/planningCapability.js.map +0 -1
- package/dist/capabilities/refactoringCapability.d.ts +0 -13
- package/dist/capabilities/refactoringCapability.d.ts.map +0 -1
- package/dist/capabilities/refactoringCapability.js +0 -25
- package/dist/capabilities/refactoringCapability.js.map +0 -1
- package/dist/capabilities/repoChecksCapability.d.ts +0 -10
- package/dist/capabilities/repoChecksCapability.d.ts.map +0 -1
- package/dist/capabilities/repoChecksCapability.js +0 -24
- package/dist/capabilities/repoChecksCapability.js.map +0 -1
- package/dist/capabilities/taskManagementCapability.d.ts +0 -12
- package/dist/capabilities/taskManagementCapability.d.ts.map +0 -1
- package/dist/capabilities/taskManagementCapability.js +0 -22
- package/dist/capabilities/taskManagementCapability.js.map +0 -1
- package/dist/capabilities/testingCapability.d.ts +0 -13
- package/dist/capabilities/testingCapability.d.ts.map +0 -1
- package/dist/capabilities/testingCapability.js +0 -25
- package/dist/capabilities/testingCapability.js.map +0 -1
- package/dist/capabilities/validationCapability.d.ts +0 -13
- package/dist/capabilities/validationCapability.d.ts.map +0 -1
- package/dist/capabilities/validationCapability.js +0 -24
- package/dist/capabilities/validationCapability.js.map +0 -1
- package/dist/capabilities/webCapability.d.ts +0 -12
- package/dist/capabilities/webCapability.d.ts.map +0 -1
- package/dist/capabilities/webCapability.js +0 -22
- package/dist/capabilities/webCapability.js.map +0 -1
- package/dist/core/deepBugAnalyzer.d.ts +0 -128
- package/dist/core/deepBugAnalyzer.d.ts.map +0 -1
- package/dist/core/deepBugAnalyzer.js +0 -406
- package/dist/core/deepBugAnalyzer.js.map +0 -1
- package/dist/core/hypothesisEngine.d.ts +0 -113
- package/dist/core/hypothesisEngine.d.ts.map +0 -1
- package/dist/core/hypothesisEngine.js +0 -264
- package/dist/core/hypothesisEngine.js.map +0 -1
- package/dist/core/productTestHarness.d.ts +0 -113
- package/dist/core/productTestHarness.d.ts.map +0 -1
- package/dist/core/productTestHarness.js +0 -351
- package/dist/core/productTestHarness.js.map +0 -1
- package/dist/core/validationRunner.d.ts +0 -106
- package/dist/core/validationRunner.d.ts.map +0 -1
- package/dist/core/validationRunner.js +0 -892
- package/dist/core/validationRunner.js.map +0 -1
- package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts +0 -14
- package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/browser/browserAutomationPlugin.js +0 -26
- package/dist/plugins/tools/browser/browserAutomationPlugin.js.map +0 -1
- package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts +0 -3
- package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/checks/localRepoChecksPlugin.js +0 -14
- package/dist/plugins/tools/checks/localRepoChecksPlugin.js.map +0 -1
- package/dist/plugins/tools/cloud/cloudPlugin.d.ts +0 -3
- package/dist/plugins/tools/cloud/cloudPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/cloud/cloudPlugin.js +0 -14
- package/dist/plugins/tools/cloud/cloudPlugin.js.map +0 -1
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts +0 -3
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +0 -14
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js.map +0 -1
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts +0 -3
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.js +0 -14
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.js.map +0 -1
- package/dist/plugins/tools/dependency/dependencyPlugin.d.ts +0 -3
- package/dist/plugins/tools/dependency/dependencyPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/dependency/dependencyPlugin.js +0 -12
- package/dist/plugins/tools/dependency/dependencyPlugin.js.map +0 -1
- package/dist/plugins/tools/development/devPlugin.d.ts +0 -3
- package/dist/plugins/tools/development/devPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/development/devPlugin.js +0 -14
- package/dist/plugins/tools/development/devPlugin.js.map +0 -1
- package/dist/plugins/tools/email/emailPlugin.d.ts +0 -3
- package/dist/plugins/tools/email/emailPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/email/emailPlugin.js +0 -12
- package/dist/plugins/tools/email/emailPlugin.js.map +0 -1
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.d.ts +0 -3
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.js +0 -14
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.js.map +0 -1
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.d.ts +0 -3
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.d.ts.map +0 -1
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.js +0 -12
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.js.map +0 -1
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.d.ts +0 -3
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.js +0 -12
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.js.map +0 -1
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts +0 -3
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js +0 -14
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js.map +0 -1
- package/dist/plugins/tools/interaction/interactionPlugin.d.ts +0 -3
- package/dist/plugins/tools/interaction/interactionPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/interaction/interactionPlugin.js +0 -12
- package/dist/plugins/tools/interaction/interactionPlugin.js.map +0 -1
- package/dist/plugins/tools/learn/learnPlugin.d.ts +0 -3
- package/dist/plugins/tools/learn/learnPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/learn/learnPlugin.js +0 -14
- package/dist/plugins/tools/learn/learnPlugin.js.map +0 -1
- package/dist/plugins/tools/notebook/notebookPlugin.d.ts +0 -9
- package/dist/plugins/tools/notebook/notebookPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/notebook/notebookPlugin.js +0 -15
- package/dist/plugins/tools/notebook/notebookPlugin.js.map +0 -1
- package/dist/plugins/tools/planning/planningPlugin.d.ts +0 -9
- package/dist/plugins/tools/planning/planningPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/planning/planningPlugin.js +0 -15
- package/dist/plugins/tools/planning/planningPlugin.js.map +0 -1
- package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts +0 -3
- package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/refactoring/refactoringPlugin.js +0 -12
- package/dist/plugins/tools/refactoring/refactoringPlugin.js.map +0 -1
- package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts +0 -3
- package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/taskManagement/taskManagementPlugin.js +0 -12
- package/dist/plugins/tools/taskManagement/taskManagementPlugin.js.map +0 -1
- package/dist/plugins/tools/testing/testingPlugin.d.ts +0 -3
- package/dist/plugins/tools/testing/testingPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/testing/testingPlugin.js +0 -12
- package/dist/plugins/tools/testing/testingPlugin.js.map +0 -1
- package/dist/plugins/tools/validation/validationPlugin.d.ts +0 -3
- package/dist/plugins/tools/validation/validationPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/validation/validationPlugin.js +0 -14
- package/dist/plugins/tools/validation/validationPlugin.js.map +0 -1
- package/dist/plugins/tools/web/webPlugin.d.ts +0 -3
- package/dist/plugins/tools/web/webPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/web/webPlugin.js +0 -12
- package/dist/plugins/tools/web/webPlugin.js.map +0 -1
- package/dist/tools/advancedTestGenerationTools.d.ts +0 -21
- package/dist/tools/advancedTestGenerationTools.d.ts.map +0 -1
- package/dist/tools/advancedTestGenerationTools.js +0 -304
- package/dist/tools/advancedTestGenerationTools.js.map +0 -1
- package/dist/tools/browserAutomationTools.d.ts +0 -23
- package/dist/tools/browserAutomationTools.d.ts.map +0 -1
- package/dist/tools/browserAutomationTools.js +0 -916
- package/dist/tools/browserAutomationTools.js.map +0 -1
- package/dist/tools/buildTools.d.ts +0 -9
- package/dist/tools/buildTools.d.ts.map +0 -1
- package/dist/tools/buildTools.js +0 -346
- package/dist/tools/buildTools.js.map +0 -1
- package/dist/tools/cloudTools.d.ts +0 -49
- package/dist/tools/cloudTools.d.ts.map +0 -1
- package/dist/tools/cloudTools.js +0 -1258
- package/dist/tools/cloudTools.js.map +0 -1
- package/dist/tools/codeAnalysisTools.d.ts +0 -74
- package/dist/tools/codeAnalysisTools.d.ts.map +0 -1
- package/dist/tools/codeAnalysisTools.js +0 -664
- package/dist/tools/codeAnalysisTools.js.map +0 -1
- package/dist/tools/codeGenerationTools.d.ts +0 -3
- package/dist/tools/codeGenerationTools.d.ts.map +0 -1
- package/dist/tools/codeGenerationTools.js +0 -439
- package/dist/tools/codeGenerationTools.js.map +0 -1
- package/dist/tools/codeQualityTools.d.ts +0 -3
- package/dist/tools/codeQualityTools.d.ts.map +0 -1
- package/dist/tools/codeQualityTools.js +0 -297
- package/dist/tools/codeQualityTools.js.map +0 -1
- package/dist/tools/dependencyTools.d.ts +0 -3
- package/dist/tools/dependencyTools.d.ts.map +0 -1
- package/dist/tools/dependencyTools.js +0 -284
- package/dist/tools/dependencyTools.js.map +0 -1
- package/dist/tools/devTools.d.ts +0 -10
- package/dist/tools/devTools.d.ts.map +0 -1
- package/dist/tools/devTools.js +0 -2126
- package/dist/tools/devTools.js.map +0 -1
- package/dist/tools/emailTools.d.ts +0 -21
- package/dist/tools/emailTools.d.ts.map +0 -1
- package/dist/tools/emailTools.js +0 -449
- package/dist/tools/emailTools.js.map +0 -1
- package/dist/tools/enhancedAnalysisTools.d.ts +0 -9
- package/dist/tools/enhancedAnalysisTools.d.ts.map +0 -1
- package/dist/tools/enhancedAnalysisTools.js +0 -370
- package/dist/tools/enhancedAnalysisTools.js.map +0 -1
- package/dist/tools/enhancedCodeIntelligenceTools.d.ts +0 -7
- package/dist/tools/enhancedCodeIntelligenceTools.d.ts.map +0 -1
- package/dist/tools/enhancedCodeIntelligenceTools.js +0 -540
- package/dist/tools/enhancedCodeIntelligenceTools.js.map +0 -1
- package/dist/tools/enhancedDevWorkflowTools.d.ts +0 -7
- package/dist/tools/enhancedDevWorkflowTools.d.ts.map +0 -1
- package/dist/tools/enhancedDevWorkflowTools.js +0 -432
- package/dist/tools/enhancedDevWorkflowTools.js.map +0 -1
- package/dist/tools/frontendTestingTools.d.ts +0 -35
- package/dist/tools/frontendTestingTools.d.ts.map +0 -1
- package/dist/tools/frontendTestingTools.js +0 -1258
- package/dist/tools/frontendTestingTools.js.map +0 -1
- package/dist/tools/globTools.d.ts +0 -15
- package/dist/tools/globTools.d.ts.map +0 -1
- package/dist/tools/globTools.js +0 -174
- package/dist/tools/globTools.js.map +0 -1
- package/dist/tools/grepTools.d.ts +0 -19
- package/dist/tools/grepTools.d.ts.map +0 -1
- package/dist/tools/grepTools.js +0 -411
- package/dist/tools/grepTools.js.map +0 -1
- package/dist/tools/interactionTools.d.ts +0 -6
- package/dist/tools/interactionTools.d.ts.map +0 -1
- package/dist/tools/interactionTools.js +0 -209
- package/dist/tools/interactionTools.js.map +0 -1
- package/dist/tools/learnTools.d.ts +0 -164
- package/dist/tools/learnTools.d.ts.map +0 -1
- package/dist/tools/learnTools.js +0 -2098
- package/dist/tools/learnTools.js.map +0 -1
- package/dist/tools/notebookEditTools.d.ts +0 -15
- package/dist/tools/notebookEditTools.d.ts.map +0 -1
- package/dist/tools/notebookEditTools.js +0 -197
- package/dist/tools/notebookEditTools.js.map +0 -1
- package/dist/tools/refactoringTools.d.ts +0 -3
- package/dist/tools/refactoringTools.d.ts.map +0 -1
- package/dist/tools/refactoringTools.js +0 -294
- package/dist/tools/refactoringTools.js.map +0 -1
- package/dist/tools/repoChecksTools.d.ts +0 -3
- package/dist/tools/repoChecksTools.d.ts.map +0 -1
- package/dist/tools/repoChecksTools.js +0 -276
- package/dist/tools/repoChecksTools.js.map +0 -1
- package/dist/tools/taskManagementTools.d.ts +0 -10
- package/dist/tools/taskManagementTools.d.ts.map +0 -1
- package/dist/tools/taskManagementTools.js +0 -133
- package/dist/tools/taskManagementTools.js.map +0 -1
- package/dist/tools/testingTools.d.ts +0 -3
- package/dist/tools/testingTools.d.ts.map +0 -1
- package/dist/tools/testingTools.js +0 -237
- package/dist/tools/testingTools.js.map +0 -1
- package/dist/tools/validationTools.d.ts +0 -7
- package/dist/tools/validationTools.d.ts.map +0 -1
- package/dist/tools/validationTools.js +0 -344
- package/dist/tools/validationTools.js.map +0 -1
- package/dist/tools/webTools.d.ts +0 -3
- package/dist/tools/webTools.d.ts.map +0 -1
- package/dist/tools/webTools.js +0 -502
- package/dist/tools/webTools.js.map +0 -1
|
@@ -1,700 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Self
|
|
3
|
-
*
|
|
4
|
-
* Applies AlphaZero-style learning to complex debugging, refactoring, and
|
|
5
|
-
* precision tasks to continuously improve erosolar-cli source code.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* 1. Identifies improvement opportunities from learning data
|
|
9
|
-
* 2. Applies quality-driven code changes
|
|
10
|
-
* 3. Uses git for safe versioning and rollback
|
|
11
|
-
* 4. Validates changes before committing
|
|
12
|
-
*
|
|
13
|
-
* Principal Investigator: Bo Shang
|
|
2
|
+
* Self Improvement - Minimal stub for backward compatibility
|
|
14
3
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import { join } from 'node:path';
|
|
18
|
-
import { promisify } from 'node:util';
|
|
19
|
-
import { getLearningSummary, loadFailurePatterns, loadToolPatterns, } from './learningPersistence.js';
|
|
20
|
-
import { getSourceCodeFixes, } from './failureRecovery.js';
|
|
21
|
-
const execAsync = promisify(exec);
|
|
22
|
-
// ============================================================================
|
|
23
|
-
// IMPROVEMENT DETECTION
|
|
24
|
-
// ============================================================================
|
|
25
|
-
/**
|
|
26
|
-
* Analyze learning data to identify improvement opportunities
|
|
27
|
-
*/
|
|
28
|
-
export function analyzeImprovementOpportunities(_workingDir = process.cwd()) {
|
|
29
|
-
const opportunities = [];
|
|
30
|
-
// 1. Analyze failure patterns for bug fixes
|
|
31
|
-
const failurePatterns = loadFailurePatterns();
|
|
32
|
-
for (const pattern of failurePatterns.patterns) {
|
|
33
|
-
if (pattern.occurrences >= 2) {
|
|
34
|
-
// This failure has occurred multiple times - worth fixing
|
|
35
|
-
opportunities.push({
|
|
36
|
-
type: 'bug-fix',
|
|
37
|
-
priority: pattern.occurrences >= 5 ? 'high' : 'medium',
|
|
38
|
-
description: `Fix recurring issue: ${pattern.description.slice(0, 100)}`,
|
|
39
|
-
sourceFile: 'src/core',
|
|
40
|
-
suggestedChange: pattern.avoidanceHint || 'Apply learned fix',
|
|
41
|
-
confidence: Math.min(0.95, pattern.occurrences / 10 + 0.5),
|
|
42
|
-
evidence: [`Occurred ${pattern.occurrences} times`, `Last seen: ${pattern.lastSeen}`],
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// 2. Analyze source code fixes from recovery system
|
|
47
|
-
const sourceFixes = getSourceCodeFixes();
|
|
48
|
-
for (const fix of sourceFixes) {
|
|
49
|
-
if (fix.validatedCount >= 2 && !fix.appliedToSource) {
|
|
50
|
-
opportunities.push({
|
|
51
|
-
type: 'bug-fix',
|
|
52
|
-
priority: fix.failureType === 'build' ? 'critical' : 'high',
|
|
53
|
-
description: fix.description,
|
|
54
|
-
sourceFile: fix.filePath,
|
|
55
|
-
suggestedChange: `Replace:\n${fix.originalCode.slice(0, 200)}...\nWith:\n${fix.fixedCode.slice(0, 200)}...`,
|
|
56
|
-
confidence: Math.min(0.95, fix.validatedCount / 5 + 0.6),
|
|
57
|
-
evidence: [`Validated ${fix.validatedCount} times`, `Failure type: ${fix.failureType}`],
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
// 3. Analyze tool patterns for optimization opportunities
|
|
62
|
-
const toolPatterns = loadToolPatterns();
|
|
63
|
-
for (const [taskType, patterns] of Object.entries(toolPatterns.patterns)) {
|
|
64
|
-
const inefficient = patterns.filter(p => p.successRate < 0.7 && p.occurrences >= 3);
|
|
65
|
-
if (inefficient.length > 0) {
|
|
66
|
-
opportunities.push({
|
|
67
|
-
type: 'performance',
|
|
68
|
-
priority: 'medium',
|
|
69
|
-
description: `Optimize tool handling for ${taskType} tasks`,
|
|
70
|
-
sourceFile: 'src/core/toolRuntime.ts',
|
|
71
|
-
suggestedChange: 'Add caching or improve tool selection logic',
|
|
72
|
-
confidence: 0.6,
|
|
73
|
-
evidence: inefficient.map(p => `Pattern ${p.toolSequence.join('→')} has ${Math.round(p.successRate * 100)}% success`),
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// Sort by priority and confidence
|
|
78
|
-
const priorityOrder = { critical: 0, high: 1, medium: 2, low: 3 };
|
|
79
|
-
opportunities.sort((a, b) => {
|
|
80
|
-
const priorityDiff = priorityOrder[a.priority] - priorityOrder[b.priority];
|
|
81
|
-
if (priorityDiff !== 0)
|
|
82
|
-
return priorityDiff;
|
|
83
|
-
return b.confidence - a.confidence;
|
|
84
|
-
});
|
|
85
|
-
return opportunities;
|
|
4
|
+
export function analyzeImprovementOpportunities(_workingDir) {
|
|
5
|
+
return [];
|
|
86
6
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
// ============================================================================
|
|
90
|
-
/**
|
|
91
|
-
* Check if working directory is clean
|
|
92
|
-
*/
|
|
93
|
-
function isGitClean(workingDir) {
|
|
94
|
-
try {
|
|
95
|
-
const result = execSync('git status --porcelain', { cwd: workingDir, encoding: 'utf-8' });
|
|
96
|
-
return result.trim() === '';
|
|
97
|
-
}
|
|
98
|
-
catch {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
7
|
+
export async function runSelfImprovementCycle(_workingDir, _options) {
|
|
8
|
+
return { summary: 'No improvements available (feature deprecated)', applied: 0, results: [] };
|
|
101
9
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
*/
|
|
105
|
-
function createImprovementBranch(workingDir, description) {
|
|
106
|
-
const timestamp = Date.now();
|
|
107
|
-
const safeName = description.toLowerCase().replace(/[^a-z0-9]+/g, '-').slice(0, 30);
|
|
108
|
-
const branchName = `self-improve/${safeName}-${timestamp}`;
|
|
109
|
-
execSync(`git checkout -b ${branchName}`, { cwd: workingDir, encoding: 'utf-8' });
|
|
110
|
-
return branchName;
|
|
10
|
+
export function getImprovementSummary(_workingDir) {
|
|
11
|
+
return 'No improvement data available (feature deprecated)';
|
|
111
12
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
*/
|
|
115
|
-
function commitChanges(workingDir, files, message) {
|
|
116
|
-
for (const file of files) {
|
|
117
|
-
execSync(`git add "${file}"`, { cwd: workingDir, encoding: 'utf-8' });
|
|
118
|
-
}
|
|
119
|
-
const fullMessage = `[self-improvement] ${message}
|
|
120
|
-
|
|
121
|
-
Applied by AlphaZero self-improvement system.
|
|
122
|
-
Run \`git revert HEAD\` to rollback.
|
|
123
|
-
|
|
124
|
-
🤖 Generated with erosolar-cli self-improvement`;
|
|
125
|
-
execSync(`git commit -m "${fullMessage.replace(/"/g, '\\"')}"`, { cwd: workingDir, encoding: 'utf-8' });
|
|
126
|
-
const hash = execSync('git rev-parse HEAD', { cwd: workingDir, encoding: 'utf-8' }).trim();
|
|
127
|
-
return hash;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Run validation (build and optional tests)
|
|
131
|
-
*/
|
|
132
|
-
async function validateChanges(workingDir, runTests) {
|
|
133
|
-
let buildPassed = false;
|
|
134
|
-
let testsPassed = false;
|
|
135
|
-
try {
|
|
136
|
-
await execAsync('npm run build', { cwd: workingDir });
|
|
137
|
-
buildPassed = true;
|
|
138
|
-
}
|
|
139
|
-
catch {
|
|
140
|
-
buildPassed = false;
|
|
141
|
-
return { buildPassed, testsPassed };
|
|
142
|
-
}
|
|
143
|
-
if (runTests) {
|
|
144
|
-
try {
|
|
145
|
-
await execAsync('npm test', { cwd: workingDir, timeout: 120000 });
|
|
146
|
-
testsPassed = true;
|
|
147
|
-
}
|
|
148
|
-
catch {
|
|
149
|
-
testsPassed = false;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
testsPassed = true; // Skip tests, consider passed
|
|
154
|
-
}
|
|
155
|
-
return { buildPassed, testsPassed };
|
|
13
|
+
export async function runAutonomousImprovement(_options) {
|
|
14
|
+
return { iterations: 0, totalApplied: 0, totalFailed: 0, totalRollbacks: 0, stoppedReason: 'Feature deprecated' };
|
|
156
15
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Rollback changes
|
|
159
|
-
*/
|
|
160
|
-
function rollbackChanges(workingDir, originalBranch) {
|
|
161
|
-
execSync('git checkout .', { cwd: workingDir });
|
|
162
|
-
execSync(`git checkout ${originalBranch}`, { cwd: workingDir });
|
|
163
|
-
}
|
|
164
|
-
// ============================================================================
|
|
165
|
-
// IMPROVEMENT APPLICATION
|
|
166
|
-
// ============================================================================
|
|
167
|
-
/**
|
|
168
|
-
* Apply a source code fix
|
|
169
|
-
*/
|
|
170
|
-
function applySourceFix(fix, workingDir) {
|
|
171
|
-
const fullPath = join(workingDir, fix.filePath);
|
|
172
|
-
if (!existsSync(fullPath)) {
|
|
173
|
-
return false;
|
|
174
|
-
}
|
|
175
|
-
const content = readFileSync(fullPath, 'utf-8');
|
|
176
|
-
if (!content.includes(fix.originalCode)) {
|
|
177
|
-
// Code has changed, can't apply fix
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
const newContent = content.replace(fix.originalCode, fix.fixedCode);
|
|
181
|
-
writeFileSync(fullPath, newContent);
|
|
182
|
-
return true;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Execute a self-improvement plan
|
|
186
|
-
*/
|
|
187
|
-
export async function executeImprovementPlan(plan, workingDir = process.cwd(), options = {}) {
|
|
188
|
-
const { runTests = true, autoCommit = true, dryRun = false } = options;
|
|
189
|
-
const result = {
|
|
190
|
-
success: false,
|
|
191
|
-
filesChanged: [],
|
|
192
|
-
testsRun: runTests,
|
|
193
|
-
testsPassed: false,
|
|
194
|
-
buildPassed: false,
|
|
195
|
-
};
|
|
196
|
-
if (dryRun) {
|
|
197
|
-
// Just report what would be done
|
|
198
|
-
return {
|
|
199
|
-
...result,
|
|
200
|
-
success: true,
|
|
201
|
-
filesChanged: plan.opportunities.map(o => o.sourceFile),
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
// Check git status
|
|
205
|
-
if (!isGitClean(workingDir)) {
|
|
206
|
-
result.error = 'Working directory has uncommitted changes. Please commit or stash them first.';
|
|
207
|
-
return result;
|
|
208
|
-
}
|
|
209
|
-
// Get current branch
|
|
210
|
-
const originalBranch = execSync('git rev-parse --abbrev-ref HEAD', { cwd: workingDir, encoding: 'utf-8' }).trim();
|
|
211
|
-
try {
|
|
212
|
-
// Create improvement branch
|
|
213
|
-
const branchName = createImprovementBranch(workingDir, `improve-${plan.id}`);
|
|
214
|
-
// Apply source code fixes
|
|
215
|
-
const sourceFixes = getSourceCodeFixes();
|
|
216
|
-
for (const opportunity of plan.opportunities) {
|
|
217
|
-
if (opportunity.type === 'bug-fix') {
|
|
218
|
-
const matchingFix = sourceFixes.find(f => f.filePath === opportunity.sourceFile ||
|
|
219
|
-
f.description === opportunity.description);
|
|
220
|
-
if (matchingFix) {
|
|
221
|
-
const applied = applySourceFix(matchingFix, workingDir);
|
|
222
|
-
if (applied) {
|
|
223
|
-
result.filesChanged.push(opportunity.sourceFile);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
if (result.filesChanged.length === 0) {
|
|
229
|
-
// Nothing to apply
|
|
230
|
-
rollbackChanges(workingDir, originalBranch);
|
|
231
|
-
result.error = 'No applicable changes found';
|
|
232
|
-
return result;
|
|
233
|
-
}
|
|
234
|
-
// Validate changes
|
|
235
|
-
const validation = await validateChanges(workingDir, runTests);
|
|
236
|
-
result.buildPassed = validation.buildPassed;
|
|
237
|
-
result.testsPassed = validation.testsPassed;
|
|
238
|
-
if (!validation.buildPassed) {
|
|
239
|
-
rollbackChanges(workingDir, originalBranch);
|
|
240
|
-
result.error = 'Build failed after applying changes';
|
|
241
|
-
return result;
|
|
242
|
-
}
|
|
243
|
-
if (runTests && !validation.testsPassed) {
|
|
244
|
-
rollbackChanges(workingDir, originalBranch);
|
|
245
|
-
result.error = 'Tests failed after applying changes';
|
|
246
|
-
return result;
|
|
247
|
-
}
|
|
248
|
-
// Commit changes
|
|
249
|
-
if (autoCommit) {
|
|
250
|
-
const description = plan.opportunities.map(o => o.description).join('; ').slice(0, 100);
|
|
251
|
-
result.commitHash = commitChanges(workingDir, result.filesChanged, description);
|
|
252
|
-
result.rollbackCommand = `git revert ${result.commitHash}`;
|
|
253
|
-
}
|
|
254
|
-
result.success = true;
|
|
255
|
-
// Merge back to original branch if successful
|
|
256
|
-
execSync(`git checkout ${originalBranch}`, { cwd: workingDir });
|
|
257
|
-
execSync(`git merge ${branchName}`, { cwd: workingDir });
|
|
258
|
-
return result;
|
|
259
|
-
}
|
|
260
|
-
catch (error) {
|
|
261
|
-
// Rollback on any error
|
|
262
|
-
try {
|
|
263
|
-
rollbackChanges(workingDir, originalBranch);
|
|
264
|
-
}
|
|
265
|
-
catch {
|
|
266
|
-
// Ignore rollback errors
|
|
267
|
-
}
|
|
268
|
-
result.error = error instanceof Error ? error.message : String(error);
|
|
269
|
-
return result;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
// ============================================================================
|
|
273
|
-
// SELF-IMPROVEMENT TRIGGERS
|
|
274
|
-
// ============================================================================
|
|
275
|
-
/**
|
|
276
|
-
* Trigger self-improvement for complex debugging task
|
|
277
|
-
*/
|
|
278
|
-
export async function triggerDebugImprovement(errorPattern, workingDir = process.cwd()) {
|
|
279
|
-
const opportunities = analyzeImprovementOpportunities(workingDir);
|
|
280
|
-
// Filter for relevant opportunities
|
|
281
|
-
const relevant = opportunities.filter(o => o.type === 'bug-fix' &&
|
|
282
|
-
(o.description.toLowerCase().includes(errorPattern.toLowerCase()) ||
|
|
283
|
-
o.evidence.some(e => e.toLowerCase().includes(errorPattern.toLowerCase()))));
|
|
284
|
-
if (relevant.length === 0) {
|
|
285
|
-
return null;
|
|
286
|
-
}
|
|
287
|
-
const plan = {
|
|
288
|
-
id: `debug-${Date.now()}`,
|
|
289
|
-
opportunities: relevant,
|
|
290
|
-
totalConfidence: relevant.reduce((sum, o) => sum + o.confidence, 0) / relevant.length,
|
|
291
|
-
estimatedImpact: 'Fix recurring debugging issues',
|
|
292
|
-
createdAt: new Date().toISOString(),
|
|
293
|
-
};
|
|
294
|
-
return executeImprovementPlan(plan, workingDir);
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Trigger self-improvement for refactoring task
|
|
298
|
-
*/
|
|
299
|
-
export async function triggerRefactorImprovement(targetArea, workingDir = process.cwd()) {
|
|
300
|
-
const opportunities = analyzeImprovementOpportunities(workingDir);
|
|
301
|
-
const relevant = opportunities.filter(o => o.type === 'refactor' || o.type === 'performance');
|
|
302
|
-
if (relevant.length === 0) {
|
|
303
|
-
return null;
|
|
304
|
-
}
|
|
305
|
-
const plan = {
|
|
306
|
-
id: `refactor-${Date.now()}`,
|
|
307
|
-
opportunities: relevant.slice(0, 5), // Limit to top 5
|
|
308
|
-
totalConfidence: relevant.reduce((sum, o) => sum + o.confidence, 0) / relevant.length,
|
|
309
|
-
estimatedImpact: 'Improve code quality and performance',
|
|
310
|
-
createdAt: new Date().toISOString(),
|
|
311
|
-
};
|
|
312
|
-
return executeImprovementPlan(plan, workingDir);
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* Run comprehensive self-improvement analysis
|
|
316
|
-
*/
|
|
317
|
-
export async function runSelfImprovementCycle(workingDir = process.cwd(), options = {}) {
|
|
318
|
-
const { maxChanges = 3, minConfidence = 0.7, runTests = true, autoCommit = true } = options;
|
|
319
|
-
const opportunities = analyzeImprovementOpportunities(workingDir);
|
|
320
|
-
const filtered = opportunities.filter(o => o.confidence >= minConfidence);
|
|
321
|
-
const toApply = filtered.slice(0, maxChanges);
|
|
322
|
-
const results = [];
|
|
323
|
-
for (const opportunity of toApply) {
|
|
324
|
-
const plan = {
|
|
325
|
-
id: `single-${Date.now()}`,
|
|
326
|
-
opportunities: [opportunity],
|
|
327
|
-
totalConfidence: opportunity.confidence,
|
|
328
|
-
estimatedImpact: opportunity.description,
|
|
329
|
-
createdAt: new Date().toISOString(),
|
|
330
|
-
};
|
|
331
|
-
const result = await executeImprovementPlan(plan, workingDir, { runTests, autoCommit });
|
|
332
|
-
results.push(result);
|
|
333
|
-
// Stop if any improvement fails
|
|
334
|
-
if (!result.success) {
|
|
335
|
-
break;
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
const applied = results.filter(r => r.success).length;
|
|
339
|
-
return {
|
|
340
|
-
analyzed: opportunities.length,
|
|
341
|
-
applied,
|
|
342
|
-
results,
|
|
343
|
-
summary: `Analyzed ${opportunities.length} opportunities, filtered to ${filtered.length} (confidence >= ${minConfidence}), applied ${applied}/${toApply.length}`,
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
// ============================================================================
|
|
347
|
-
// CLI INTEGRATION
|
|
348
|
-
// ============================================================================
|
|
349
|
-
/**
|
|
350
|
-
* Get a summary of improvement opportunities for display
|
|
351
|
-
*/
|
|
352
|
-
export function getImprovementSummary(workingDir = process.cwd()) {
|
|
353
|
-
const opportunities = analyzeImprovementOpportunities(workingDir);
|
|
354
|
-
const learning = getLearningSummary();
|
|
355
|
-
const lines = [];
|
|
356
|
-
lines.push('🧠 Self-Improvement Analysis');
|
|
357
|
-
lines.push('');
|
|
358
|
-
lines.push(`Learning Data:`);
|
|
359
|
-
lines.push(` - Tool patterns: ${learning.toolPatterns.totalPatterns}`);
|
|
360
|
-
lines.push(` - Failure patterns: ${learning.failurePatterns.totalPatterns}`);
|
|
361
|
-
lines.push(` - Prompt improvements: ${learning.promptImprovements.totalImprovements}`);
|
|
362
|
-
lines.push('');
|
|
363
|
-
lines.push(`Improvement Opportunities: ${opportunities.length}`);
|
|
364
|
-
if (opportunities.length > 0) {
|
|
365
|
-
lines.push('');
|
|
366
|
-
const top = opportunities.slice(0, 5);
|
|
367
|
-
for (const opp of top) {
|
|
368
|
-
const icon = opp.type === 'bug-fix' ? '🐛' : opp.type === 'refactor' ? '🔧' : '⚡';
|
|
369
|
-
lines.push(` ${icon} [${opp.priority}] ${opp.description.slice(0, 60)}...`);
|
|
370
|
-
lines.push(` Confidence: ${Math.round(opp.confidence * 100)}% | File: ${opp.sourceFile}`);
|
|
371
|
-
}
|
|
372
|
-
if (opportunities.length > 5) {
|
|
373
|
-
lines.push(` ... and ${opportunities.length - 5} more`);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
lines.push('');
|
|
377
|
-
lines.push('Commands:');
|
|
378
|
-
lines.push(' /improve analyze - Analyze improvement opportunities');
|
|
379
|
-
lines.push(' /improve apply - Apply high-confidence improvements');
|
|
380
|
-
lines.push(' /improve dry-run - Preview changes without applying');
|
|
381
|
-
lines.push(' /improve auto - Run autonomous infinite improvement (Ctrl+C to stop)');
|
|
382
|
-
return lines.join('\n');
|
|
383
|
-
}
|
|
384
|
-
// Global state for autonomous improvement
|
|
385
|
-
let autoImprovementState = {
|
|
386
|
-
isRunning: false,
|
|
387
|
-
startTime: null,
|
|
388
|
-
iteration: 0,
|
|
389
|
-
applied: 0,
|
|
390
|
-
failed: 0,
|
|
391
|
-
rollbacks: 0,
|
|
392
|
-
lastError: null,
|
|
393
|
-
safetyBranchBase: null,
|
|
394
|
-
};
|
|
395
|
-
/**
|
|
396
|
-
* Get current auto-improvement state
|
|
397
|
-
*/
|
|
398
|
-
export function getAutoImprovementState() {
|
|
399
|
-
return { ...autoImprovementState };
|
|
400
|
-
}
|
|
401
|
-
/**
|
|
402
|
-
* Request stop of autonomous improvement
|
|
403
|
-
*/
|
|
404
16
|
export function requestAutoImprovementStop() {
|
|
405
|
-
|
|
406
|
-
}
|
|
407
|
-
/**
|
|
408
|
-
* Create a safety checkpoint before autonomous improvement
|
|
409
|
-
*/
|
|
410
|
-
function createSafetyCheckpoint(workingDir) {
|
|
411
|
-
try {
|
|
412
|
-
// Ensure clean working directory
|
|
413
|
-
const status = execSync('git status --porcelain', { cwd: workingDir, encoding: 'utf-8' }).trim();
|
|
414
|
-
if (status) {
|
|
415
|
-
// Stash any uncommitted changes
|
|
416
|
-
execSync('git stash push -m "auto-improve-safety-stash"', { cwd: workingDir, encoding: 'utf-8' });
|
|
417
|
-
}
|
|
418
|
-
// Get current branch
|
|
419
|
-
const currentBranch = execSync('git rev-parse --abbrev-ref HEAD', { cwd: workingDir, encoding: 'utf-8' }).trim();
|
|
420
|
-
// Create safety tag
|
|
421
|
-
const timestamp = Date.now();
|
|
422
|
-
const safetyTag = `auto-improve-checkpoint-${timestamp}`;
|
|
423
|
-
execSync(`git tag ${safetyTag}`, { cwd: workingDir, encoding: 'utf-8' });
|
|
424
|
-
return { success: true, branch: currentBranch };
|
|
425
|
-
}
|
|
426
|
-
catch (error) {
|
|
427
|
-
return { success: false, branch: '', error: error instanceof Error ? error.message : String(error) };
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
/**
|
|
431
|
-
* Rollback to safety checkpoint
|
|
432
|
-
*/
|
|
433
|
-
function rollbackToCheckpoint(workingDir, _originalBranch) {
|
|
434
|
-
try {
|
|
435
|
-
// Find the most recent safety tag
|
|
436
|
-
const tags = execSync('git tag -l "auto-improve-checkpoint-*" --sort=-version:refname', {
|
|
437
|
-
cwd: workingDir,
|
|
438
|
-
encoding: 'utf-8',
|
|
439
|
-
}).trim().split('\n');
|
|
440
|
-
if (tags.length > 0 && tags[0]) {
|
|
441
|
-
// Hard reset to the checkpoint
|
|
442
|
-
execSync(`git reset --hard ${tags[0]}`, { cwd: workingDir, encoding: 'utf-8' });
|
|
443
|
-
// Try to restore stashed changes
|
|
444
|
-
try {
|
|
445
|
-
execSync('git stash pop', { cwd: workingDir, encoding: 'utf-8' });
|
|
446
|
-
}
|
|
447
|
-
catch {
|
|
448
|
-
// No stash to pop, that's fine
|
|
449
|
-
}
|
|
450
|
-
return { success: true };
|
|
451
|
-
}
|
|
452
|
-
return { success: false, error: 'No checkpoint found' };
|
|
453
|
-
}
|
|
454
|
-
catch (error) {
|
|
455
|
-
return { success: false, error: error instanceof Error ? error.message : String(error) };
|
|
456
|
-
}
|
|
17
|
+
// No-op stub
|
|
457
18
|
}
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
*
|
|
461
|
-
* This function runs in a loop, continuously:
|
|
462
|
-
* 1. Analyzing improvement opportunities
|
|
463
|
-
* 2. Applying the highest-confidence improvement
|
|
464
|
-
* 3. Validating with build/tests
|
|
465
|
-
* 4. Rolling back if validation fails
|
|
466
|
-
* 5. Continuing until no more improvements or stopped
|
|
467
|
-
*/
|
|
468
|
-
export async function runAutonomousImprovement(config) {
|
|
469
|
-
const { workingDir, minConfidence = 0.75, maxIterations = 100, delayBetweenMs = 2000, runTests = true, onProgress, shouldStop, } = config;
|
|
470
|
-
// Reset state
|
|
471
|
-
autoImprovementState = {
|
|
472
|
-
isRunning: true,
|
|
473
|
-
startTime: new Date().toISOString(),
|
|
474
|
-
iteration: 0,
|
|
475
|
-
applied: 0,
|
|
476
|
-
failed: 0,
|
|
477
|
-
rollbacks: 0,
|
|
478
|
-
lastError: null,
|
|
479
|
-
safetyBranchBase: null,
|
|
480
|
-
};
|
|
481
|
-
// Create safety checkpoint
|
|
482
|
-
const checkpoint = createSafetyCheckpoint(workingDir);
|
|
483
|
-
if (!checkpoint.success) {
|
|
484
|
-
onProgress?.({
|
|
485
|
-
type: 'failed',
|
|
486
|
-
message: `Failed to create safety checkpoint: ${checkpoint.error}`,
|
|
487
|
-
});
|
|
488
|
-
autoImprovementState.isRunning = false;
|
|
489
|
-
return {
|
|
490
|
-
success: false,
|
|
491
|
-
totalApplied: 0,
|
|
492
|
-
totalFailed: 0,
|
|
493
|
-
totalRollbacks: 0,
|
|
494
|
-
iterations: 0,
|
|
495
|
-
stoppedReason: 'error',
|
|
496
|
-
error: checkpoint.error,
|
|
497
|
-
};
|
|
498
|
-
}
|
|
499
|
-
autoImprovementState.safetyBranchBase = checkpoint.branch;
|
|
500
|
-
onProgress?.({
|
|
501
|
-
type: 'start',
|
|
502
|
-
message: `Starting autonomous improvement. Safety checkpoint created. Press Ctrl+C to stop.`,
|
|
503
|
-
});
|
|
504
|
-
let consecutiveFailures = 0;
|
|
505
|
-
const MAX_CONSECUTIVE_FAILURES = 3;
|
|
506
|
-
try {
|
|
507
|
-
while (autoImprovementState.isRunning && autoImprovementState.iteration < maxIterations) {
|
|
508
|
-
// Check for stop request
|
|
509
|
-
if (shouldStop?.() || !autoImprovementState.isRunning) {
|
|
510
|
-
onProgress?.({
|
|
511
|
-
type: 'complete',
|
|
512
|
-
message: 'Stopped by user request',
|
|
513
|
-
totalApplied: autoImprovementState.applied,
|
|
514
|
-
totalFailed: autoImprovementState.failed,
|
|
515
|
-
});
|
|
516
|
-
return {
|
|
517
|
-
success: true,
|
|
518
|
-
totalApplied: autoImprovementState.applied,
|
|
519
|
-
totalFailed: autoImprovementState.failed,
|
|
520
|
-
totalRollbacks: autoImprovementState.rollbacks,
|
|
521
|
-
iterations: autoImprovementState.iteration,
|
|
522
|
-
stoppedReason: 'user-stopped',
|
|
523
|
-
};
|
|
524
|
-
}
|
|
525
|
-
autoImprovementState.iteration++;
|
|
526
|
-
onProgress?.({
|
|
527
|
-
type: 'iteration',
|
|
528
|
-
iteration: autoImprovementState.iteration,
|
|
529
|
-
message: `Iteration ${autoImprovementState.iteration}: Analyzing opportunities...`,
|
|
530
|
-
});
|
|
531
|
-
// Analyze opportunities
|
|
532
|
-
const opportunities = analyzeImprovementOpportunities(workingDir);
|
|
533
|
-
const filtered = opportunities.filter(o => o.confidence >= minConfidence);
|
|
534
|
-
if (filtered.length === 0) {
|
|
535
|
-
onProgress?.({
|
|
536
|
-
type: 'no-opportunities',
|
|
537
|
-
message: `No improvements found with confidence >= ${Math.round(minConfidence * 100)}%. Stopping.`,
|
|
538
|
-
totalApplied: autoImprovementState.applied,
|
|
539
|
-
});
|
|
540
|
-
return {
|
|
541
|
-
success: true,
|
|
542
|
-
totalApplied: autoImprovementState.applied,
|
|
543
|
-
totalFailed: autoImprovementState.failed,
|
|
544
|
-
totalRollbacks: autoImprovementState.rollbacks,
|
|
545
|
-
iterations: autoImprovementState.iteration,
|
|
546
|
-
stoppedReason: 'no-opportunities',
|
|
547
|
-
};
|
|
548
|
-
}
|
|
549
|
-
// Take the highest-confidence opportunity
|
|
550
|
-
const opportunity = filtered[0];
|
|
551
|
-
onProgress?.({
|
|
552
|
-
type: 'iteration',
|
|
553
|
-
iteration: autoImprovementState.iteration,
|
|
554
|
-
message: `Found ${filtered.length} opportunities. Applying: ${opportunity.description.slice(0, 50)}...`,
|
|
555
|
-
opportunity,
|
|
556
|
-
});
|
|
557
|
-
// Create improvement plan for single opportunity
|
|
558
|
-
const plan = {
|
|
559
|
-
id: `auto-${autoImprovementState.iteration}-${Date.now()}`,
|
|
560
|
-
opportunities: [opportunity],
|
|
561
|
-
totalConfidence: opportunity.confidence,
|
|
562
|
-
estimatedImpact: opportunity.description,
|
|
563
|
-
createdAt: new Date().toISOString(),
|
|
564
|
-
};
|
|
565
|
-
// Execute the improvement
|
|
566
|
-
const result = await executeImprovementPlan(plan, workingDir, {
|
|
567
|
-
runTests,
|
|
568
|
-
autoCommit: true,
|
|
569
|
-
dryRun: false,
|
|
570
|
-
});
|
|
571
|
-
if (result.success) {
|
|
572
|
-
autoImprovementState.applied++;
|
|
573
|
-
consecutiveFailures = 0;
|
|
574
|
-
onProgress?.({
|
|
575
|
-
type: 'applied',
|
|
576
|
-
iteration: autoImprovementState.iteration,
|
|
577
|
-
message: `✅ Applied: ${opportunity.description.slice(0, 50)}`,
|
|
578
|
-
opportunity,
|
|
579
|
-
result,
|
|
580
|
-
totalApplied: autoImprovementState.applied,
|
|
581
|
-
});
|
|
582
|
-
}
|
|
583
|
-
else {
|
|
584
|
-
autoImprovementState.failed++;
|
|
585
|
-
consecutiveFailures++;
|
|
586
|
-
autoImprovementState.lastError = result.error ?? 'Unknown error';
|
|
587
|
-
onProgress?.({
|
|
588
|
-
type: 'failed',
|
|
589
|
-
iteration: autoImprovementState.iteration,
|
|
590
|
-
message: `❌ Failed: ${result.error}`,
|
|
591
|
-
opportunity,
|
|
592
|
-
result,
|
|
593
|
-
totalFailed: autoImprovementState.failed,
|
|
594
|
-
});
|
|
595
|
-
// If too many consecutive failures, stop
|
|
596
|
-
if (consecutiveFailures >= MAX_CONSECUTIVE_FAILURES) {
|
|
597
|
-
onProgress?.({
|
|
598
|
-
type: 'complete',
|
|
599
|
-
message: `Stopping after ${MAX_CONSECUTIVE_FAILURES} consecutive failures.`,
|
|
600
|
-
totalApplied: autoImprovementState.applied,
|
|
601
|
-
totalFailed: autoImprovementState.failed,
|
|
602
|
-
});
|
|
603
|
-
return {
|
|
604
|
-
success: false,
|
|
605
|
-
totalApplied: autoImprovementState.applied,
|
|
606
|
-
totalFailed: autoImprovementState.failed,
|
|
607
|
-
totalRollbacks: autoImprovementState.rollbacks,
|
|
608
|
-
iterations: autoImprovementState.iteration,
|
|
609
|
-
stoppedReason: 'error',
|
|
610
|
-
error: `Stopped after ${MAX_CONSECUTIVE_FAILURES} consecutive failures`,
|
|
611
|
-
};
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
// Delay between iterations to avoid overwhelming the system
|
|
615
|
-
await new Promise(resolve => setTimeout(resolve, delayBetweenMs));
|
|
616
|
-
}
|
|
617
|
-
// Reached max iterations
|
|
618
|
-
onProgress?.({
|
|
619
|
-
type: 'complete',
|
|
620
|
-
message: `Reached maximum iterations (${maxIterations})`,
|
|
621
|
-
totalApplied: autoImprovementState.applied,
|
|
622
|
-
totalFailed: autoImprovementState.failed,
|
|
623
|
-
});
|
|
624
|
-
return {
|
|
625
|
-
success: true,
|
|
626
|
-
totalApplied: autoImprovementState.applied,
|
|
627
|
-
totalFailed: autoImprovementState.failed,
|
|
628
|
-
totalRollbacks: autoImprovementState.rollbacks,
|
|
629
|
-
iterations: autoImprovementState.iteration,
|
|
630
|
-
stoppedReason: 'max-iterations',
|
|
631
|
-
};
|
|
632
|
-
}
|
|
633
|
-
catch (error) {
|
|
634
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
635
|
-
autoImprovementState.lastError = errorMessage;
|
|
636
|
-
onProgress?.({
|
|
637
|
-
type: 'failed',
|
|
638
|
-
message: `Fatal error: ${errorMessage}. Rolling back to checkpoint...`,
|
|
639
|
-
});
|
|
640
|
-
// Rollback on fatal error
|
|
641
|
-
const rollbackResult = rollbackToCheckpoint(workingDir, checkpoint.branch);
|
|
642
|
-
if (rollbackResult.success) {
|
|
643
|
-
autoImprovementState.rollbacks++;
|
|
644
|
-
onProgress?.({
|
|
645
|
-
type: 'rollback',
|
|
646
|
-
message: 'Successfully rolled back to safety checkpoint',
|
|
647
|
-
});
|
|
648
|
-
}
|
|
649
|
-
return {
|
|
650
|
-
success: false,
|
|
651
|
-
totalApplied: autoImprovementState.applied,
|
|
652
|
-
totalFailed: autoImprovementState.failed,
|
|
653
|
-
totalRollbacks: autoImprovementState.rollbacks,
|
|
654
|
-
iterations: autoImprovementState.iteration,
|
|
655
|
-
stoppedReason: 'error',
|
|
656
|
-
error: errorMessage,
|
|
657
|
-
};
|
|
658
|
-
}
|
|
659
|
-
finally {
|
|
660
|
-
autoImprovementState.isRunning = false;
|
|
661
|
-
}
|
|
19
|
+
export function getAutoImprovementState() {
|
|
20
|
+
return { running: false, isRunning: false, iteration: 0 };
|
|
662
21
|
}
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
*/
|
|
666
|
-
export function emergencyRollback(workingDir) {
|
|
667
|
-
try {
|
|
668
|
-
// Find the most recent safety checkpoint
|
|
669
|
-
const tags = execSync('git tag -l "auto-improve-checkpoint-*" --sort=-version:refname', {
|
|
670
|
-
cwd: workingDir,
|
|
671
|
-
encoding: 'utf-8',
|
|
672
|
-
}).trim().split('\n');
|
|
673
|
-
if (tags.length === 0 || !tags[0]) {
|
|
674
|
-
return { success: false, message: 'No safety checkpoint found' };
|
|
675
|
-
}
|
|
676
|
-
const checkpoint = tags[0];
|
|
677
|
-
// Hard reset to checkpoint
|
|
678
|
-
execSync(`git reset --hard ${checkpoint}`, { cwd: workingDir, encoding: 'utf-8' });
|
|
679
|
-
// Clean up the tag
|
|
680
|
-
execSync(`git tag -d ${checkpoint}`, { cwd: workingDir, encoding: 'utf-8' });
|
|
681
|
-
// Rebuild
|
|
682
|
-
try {
|
|
683
|
-
execSync('npm run build', { cwd: workingDir, encoding: 'utf-8' });
|
|
684
|
-
}
|
|
685
|
-
catch {
|
|
686
|
-
// Build might fail, that's okay for emergency rollback
|
|
687
|
-
}
|
|
688
|
-
return {
|
|
689
|
-
success: true,
|
|
690
|
-
message: `Rolled back to checkpoint ${checkpoint}. Run 'npm run build' to rebuild.`,
|
|
691
|
-
};
|
|
692
|
-
}
|
|
693
|
-
catch (error) {
|
|
694
|
-
return {
|
|
695
|
-
success: false,
|
|
696
|
-
message: `Rollback failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
697
|
-
};
|
|
698
|
-
}
|
|
22
|
+
export function emergencyRollback(_workingDir) {
|
|
23
|
+
return { success: true, message: 'No rollback needed (feature deprecated)' };
|
|
699
24
|
}
|
|
700
25
|
//# sourceMappingURL=selfImprovement.js.map
|