agentic-qe 2.6.5 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +112 -0
- package/README.md +1 -1
- package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -1
- package/dist/agents/AccessibilityAllyAgent.js +1 -1
- package/dist/agents/AccessibilityAllyAgent.js.map +1 -1
- package/dist/agents/ApiContractValidatorAgent.d.ts +83 -56
- package/dist/agents/ApiContractValidatorAgent.d.ts.map +1 -1
- package/dist/agents/ApiContractValidatorAgent.js +97 -46
- package/dist/agents/ApiContractValidatorAgent.js.map +1 -1
- package/dist/agents/BaseAgent.d.ts +64 -13
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +5 -4
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CodeComplexityAnalyzerAgent.d.ts +18 -12
- package/dist/agents/CodeComplexityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CodeComplexityAnalyzerAgent.js +25 -24
- package/dist/agents/CodeComplexityAnalyzerAgent.js.map +1 -1
- package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/CodeIntelligenceAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +201 -41
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +165 -4
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.d.ts +49 -13
- package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.js +30 -30
- package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +56 -18
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +45 -46
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts +199 -14
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +270 -34
- package/dist/agents/FleetCommanderAgent.js.map +1 -1
- package/dist/agents/LearningAgent.d.ts +29 -7
- package/dist/agents/LearningAgent.d.ts.map +1 -1
- package/dist/agents/LearningAgent.js +6 -4
- package/dist/agents/LearningAgent.js.map +1 -1
- package/dist/agents/NeuralAgentExtension.d.ts +46 -2
- package/dist/agents/NeuralAgentExtension.d.ts.map +1 -1
- package/dist/agents/NeuralAgentExtension.js +13 -11
- package/dist/agents/NeuralAgentExtension.js.map +1 -1
- package/dist/agents/PerformanceTesterAgent.d.ts +177 -14
- package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
- package/dist/agents/PerformanceTesterAgent.js +73 -10
- package/dist/agents/PerformanceTesterAgent.js.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.d.ts +117 -15
- package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.js +76 -63
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
- package/dist/agents/QXPartnerAgent.d.ts.map +1 -1
- package/dist/agents/QXPartnerAgent.js +40 -30
- package/dist/agents/QXPartnerAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts +113 -6
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js +30 -25
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.d.ts +125 -4
- package/dist/agents/QualityGateAgent.d.ts.map +1 -1
- package/dist/agents/QualityGateAgent.js +13 -15
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts +32 -13
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.js +49 -30
- package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.d.ts +6 -13
- package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.js +34 -27
- package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
- package/dist/agents/SecurityScannerAgent.d.ts +86 -14
- package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
- package/dist/agents/SecurityScannerAgent.js +53 -38
- package/dist/agents/SecurityScannerAgent.js.map +1 -1
- package/dist/agents/TestDataArchitectAgent.d.ts +140 -57
- package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
- package/dist/agents/TestDataArchitectAgent.js +93 -54
- package/dist/agents/TestDataArchitectAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts +43 -18
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +31 -23
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +71 -23
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +116 -58
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/adapters/LearningEngineAdapter.d.ts.map +1 -1
- package/dist/agents/adapters/LearningEngineAdapter.js.map +1 -1
- package/dist/agents/adapters/MemoryServiceAdapter.d.ts.map +1 -1
- package/dist/agents/adapters/MemoryServiceAdapter.js +10 -6
- package/dist/agents/adapters/MemoryServiceAdapter.js.map +1 -1
- package/dist/agents/index.d.ts +36 -5
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/n8n/N8nBaseAgent.d.ts.map +1 -1
- package/dist/agents/n8n/N8nBaseAgent.js +2 -1
- package/dist/agents/n8n/N8nBaseAgent.js.map +1 -1
- package/dist/cli/commands/analyze.d.ts.map +1 -1
- package/dist/cli/commands/analyze.js +221 -66
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/fleet/backup.d.ts +4 -4
- package/dist/cli/commands/fleet/backup.d.ts.map +1 -1
- package/dist/cli/commands/fleet/backup.js +4 -4
- package/dist/cli/commands/fleet/backup.js.map +1 -1
- package/dist/cli/commands/fleet/health.d.ts +131 -1
- package/dist/cli/commands/fleet/health.d.ts.map +1 -1
- package/dist/cli/commands/fleet/health.js +204 -138
- package/dist/cli/commands/fleet/health.js.map +1 -1
- package/dist/cli/commands/fleet/metrics.d.ts.map +1 -1
- package/dist/cli/commands/fleet/metrics.js +1 -1
- package/dist/cli/commands/fleet/metrics.js.map +1 -1
- package/dist/cli/commands/fleet/monitor.d.ts.map +1 -1
- package/dist/cli/commands/fleet/monitor.js +2 -1
- package/dist/cli/commands/fleet/monitor.js.map +1 -1
- package/dist/cli/commands/fleet/restart.d.ts.map +1 -1
- package/dist/cli/commands/fleet/restart.js +1 -1
- package/dist/cli/commands/fleet/restart.js.map +1 -1
- package/dist/cli/commands/fleet/shutdown.d.ts.map +1 -1
- package/dist/cli/commands/fleet/shutdown.js.map +1 -1
- package/dist/cli/commands/fleet/status.d.ts.map +1 -1
- package/dist/cli/commands/fleet/status.js +1 -1
- package/dist/cli/commands/fleet/status.js.map +1 -1
- package/dist/cli/commands/fleet/topology.d.ts.map +1 -1
- package/dist/cli/commands/fleet/topology.js +9 -8
- package/dist/cli/commands/fleet/topology.js.map +1 -1
- package/dist/cli/commands/fleet.d.ts +8 -0
- package/dist/cli/commands/fleet.d.ts.map +1 -1
- package/dist/cli/commands/fleet.js +55 -21
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/commands/improve/index.d.ts +2 -2
- package/dist/cli/commands/improve/index.d.ts.map +1 -1
- package/dist/cli/commands/improve/index.js +76 -38
- package/dist/cli/commands/improve/index.js.map +1 -1
- package/dist/cli/commands/kg/mincut.d.ts +50 -0
- package/dist/cli/commands/kg/mincut.d.ts.map +1 -0
- package/dist/cli/commands/kg/mincut.js +372 -0
- package/dist/cli/commands/kg/mincut.js.map +1 -0
- package/dist/cli/commands/learn/index.d.ts.map +1 -1
- package/dist/cli/commands/learn/index.js +57 -19
- package/dist/cli/commands/learn/index.js.map +1 -1
- package/dist/cli/commands/memory/index.d.ts +23 -4
- package/dist/cli/commands/memory/index.d.ts.map +1 -1
- package/dist/cli/commands/memory/index.js.map +1 -1
- package/dist/cli/commands/memory/stats.js +1 -1
- package/dist/cli/commands/memory/stats.js.map +1 -1
- package/dist/cli/commands/memory/vacuum.js +3 -3
- package/dist/cli/commands/memory/vacuum.js.map +1 -1
- package/dist/cli/commands/patterns/extract.d.ts.map +1 -1
- package/dist/cli/commands/patterns/extract.js +4 -3
- package/dist/cli/commands/patterns/extract.js.map +1 -1
- package/dist/cli/commands/patterns/index-new.d.ts +10 -1
- package/dist/cli/commands/patterns/index-new.d.ts.map +1 -1
- package/dist/cli/commands/patterns/index-new.js.map +1 -1
- package/dist/cli/commands/patterns/index.d.ts +2 -2
- package/dist/cli/commands/patterns/index.d.ts.map +1 -1
- package/dist/cli/commands/patterns/index.js +105 -19
- package/dist/cli/commands/patterns/index.js.map +1 -1
- package/dist/cli/commands/patterns/list.d.ts.map +1 -1
- package/dist/cli/commands/patterns/list.js +2 -1
- package/dist/cli/commands/patterns/list.js.map +1 -1
- package/dist/cli/commands/patterns/search.d.ts.map +1 -1
- package/dist/cli/commands/patterns/search.js +2 -1
- package/dist/cli/commands/patterns/search.js.map +1 -1
- package/dist/cli/commands/patterns/show.d.ts.map +1 -1
- package/dist/cli/commands/patterns/show.js +7 -6
- package/dist/cli/commands/patterns/show.js.map +1 -1
- package/dist/cli/commands/patterns/stats.d.ts.map +1 -1
- package/dist/cli/commands/patterns/stats.js +5 -4
- package/dist/cli/commands/patterns/stats.js.map +1 -1
- package/dist/cli/commands/quality/baseline.d.ts.map +1 -1
- package/dist/cli/commands/quality/baseline.js +2 -2
- package/dist/cli/commands/quality/baseline.js.map +1 -1
- package/dist/cli/commands/quality/compare.d.ts.map +1 -1
- package/dist/cli/commands/quality/compare.js +1 -1
- package/dist/cli/commands/quality/compare.js.map +1 -1
- package/dist/cli/commands/quality/trends.d.ts.map +1 -1
- package/dist/cli/commands/quality/trends.js.map +1 -1
- package/dist/cli/commands/routing/index.d.ts.map +1 -1
- package/dist/cli/commands/routing/index.js +90 -35
- package/dist/cli/commands/routing/index.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +59 -33
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/workflow/cancel.d.ts +14 -7
- package/dist/cli/commands/workflow/cancel.d.ts.map +1 -1
- package/dist/cli/commands/workflow/cancel.js +23 -6
- package/dist/cli/commands/workflow/cancel.js.map +1 -1
- package/dist/cli/commands/workflow/list.d.ts.map +1 -1
- package/dist/cli/commands/workflow/list.js +46 -9
- package/dist/cli/commands/workflow/list.js.map +1 -1
- package/dist/cli/commands/workflow/pause.d.ts +1 -1
- package/dist/cli/commands/workflow/pause.d.ts.map +1 -1
- package/dist/cli/commands/workflow/pause.js +21 -4
- package/dist/cli/commands/workflow/pause.js.map +1 -1
- package/dist/cli/index.js +91 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/claude-config.js +2 -2
- package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.d.ts +148 -0
- package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.js +393 -0
- package/dist/code-intelligence/analysis/mincut/CircularDependencyDetector.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/GraphAdapter.d.ts +169 -0
- package/dist/code-intelligence/analysis/mincut/GraphAdapter.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/GraphAdapter.js +335 -0
- package/dist/code-intelligence/analysis/mincut/GraphAdapter.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/JsMinCut.d.ts +55 -0
- package/dist/code-intelligence/analysis/mincut/JsMinCut.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/JsMinCut.js +265 -0
- package/dist/code-intelligence/analysis/mincut/JsMinCut.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.d.ts +92 -0
- package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.js +200 -0
- package/dist/code-intelligence/analysis/mincut/MinCutAnalyzer.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.d.ts +157 -0
- package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.js +434 -0
- package/dist/code-intelligence/analysis/mincut/ModuleCouplingAnalyzer.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/index.d.ts +12 -0
- package/dist/code-intelligence/analysis/mincut/index.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/index.js +20 -0
- package/dist/code-intelligence/analysis/mincut/index.js.map +1 -0
- package/dist/code-intelligence/analysis/mincut/types.d.ts +145 -0
- package/dist/code-intelligence/analysis/mincut/types.d.ts.map +1 -0
- package/dist/code-intelligence/analysis/mincut/types.js +16 -0
- package/dist/code-intelligence/analysis/mincut/types.js.map +1 -0
- package/dist/code-intelligence/chunking/ASTChunker.d.ts +1 -1
- package/dist/code-intelligence/chunking/ASTChunker.d.ts.map +1 -1
- package/dist/code-intelligence/chunking/ASTChunker.js +4 -4
- package/dist/code-intelligence/chunking/ASTChunker.js.map +1 -1
- package/dist/code-intelligence/graph/GraphBuilder.d.ts +120 -0
- package/dist/code-intelligence/graph/GraphBuilder.d.ts.map +1 -1
- package/dist/code-intelligence/graph/GraphBuilder.js +517 -0
- package/dist/code-intelligence/graph/GraphBuilder.js.map +1 -1
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts.map +1 -1
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js +3 -3
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js.map +1 -1
- package/dist/code-intelligence/parser/{TreeSitterParser.d.ts → WebTreeSitterParser.d.ts} +45 -10
- package/dist/code-intelligence/parser/WebTreeSitterParser.d.ts.map +1 -0
- package/dist/code-intelligence/parser/{TreeSitterParser.js → WebTreeSitterParser.js} +147 -54
- package/dist/code-intelligence/parser/WebTreeSitterParser.js.map +1 -0
- package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts +12 -10
- package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/BaseExtractor.js +7 -3
- package/dist/code-intelligence/parser/extractors/BaseExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/GoExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/GoExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/PythonExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/PythonExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/RustExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/RustExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts +7 -5
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts.map +1 -1
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js +2 -2
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js.map +1 -1
- package/dist/code-intelligence/parser/index.d.ts +7 -1
- package/dist/code-intelligence/parser/index.d.ts.map +1 -1
- package/dist/code-intelligence/parser/index.js +11 -3
- package/dist/code-intelligence/parser/index.js.map +1 -1
- package/dist/code-intelligence/service/CodeIntelligenceService.d.ts.map +1 -1
- package/dist/code-intelligence/service/CodeIntelligenceService.js +7 -5
- package/dist/code-intelligence/service/CodeIntelligenceService.js.map +1 -1
- package/dist/core/ArtifactWorkflow.d.ts.map +1 -1
- package/dist/core/ArtifactWorkflow.js +130 -43
- package/dist/core/ArtifactWorkflow.js.map +1 -1
- package/dist/core/MemoryManager.d.ts +5 -5
- package/dist/core/MemoryManager.d.ts.map +1 -1
- package/dist/core/MemoryManager.js +4 -3
- package/dist/core/MemoryManager.js.map +1 -1
- package/dist/core/PatternDatabaseAdapter.d.ts +1 -1
- package/dist/core/PatternDatabaseAdapter.d.ts.map +1 -1
- package/dist/core/PatternDatabaseAdapter.js +12 -12
- package/dist/core/PatternDatabaseAdapter.js.map +1 -1
- package/dist/core/coordination/BlackboardCoordination.d.ts +2 -2
- package/dist/core/coordination/BlackboardCoordination.d.ts.map +1 -1
- package/dist/core/coordination/ConsensusGating.d.ts.map +1 -1
- package/dist/core/coordination/ConsensusGating.js +50 -9
- package/dist/core/coordination/ConsensusGating.js.map +1 -1
- package/dist/core/coordination/GOAPCoordination.d.ts +1 -1
- package/dist/core/coordination/GOAPCoordination.d.ts.map +1 -1
- package/dist/core/coordination/GOAPCoordination.js +70 -8
- package/dist/core/coordination/GOAPCoordination.js.map +1 -1
- package/dist/core/coordination/OODACoordination.d.ts +10 -10
- package/dist/core/coordination/OODACoordination.d.ts.map +1 -1
- package/dist/core/coordination/OODACoordination.js +48 -9
- package/dist/core/coordination/OODACoordination.js.map +1 -1
- package/dist/core/hooks/RollbackManager.d.ts +2 -2
- package/dist/core/hooks/RollbackManager.d.ts.map +1 -1
- package/dist/core/hooks/RollbackManager.js +41 -4
- package/dist/core/hooks/RollbackManager.js.map +1 -1
- package/dist/core/hooks/VerificationHookManager.d.ts +8 -8
- package/dist/core/hooks/VerificationHookManager.d.ts.map +1 -1
- package/dist/core/hooks/VerificationHookManager.js +12 -2
- package/dist/core/hooks/VerificationHookManager.js.map +1 -1
- package/dist/core/hooks/checkers/ConfigurationChecker.d.ts +1 -1
- package/dist/core/hooks/checkers/ConfigurationChecker.d.ts.map +1 -1
- package/dist/core/hooks/checkers/ConfigurationChecker.js.map +1 -1
- package/dist/core/hooks/validators/OutputValidator.d.ts +2 -2
- package/dist/core/hooks/validators/OutputValidator.d.ts.map +1 -1
- package/dist/core/hooks/validators/QualityValidator.d.ts +1 -1
- package/dist/core/hooks/validators/QualityValidator.d.ts.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/SwarmMemoryManager.d.ts +143 -37
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +28 -25
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/VersionHistory.d.ts +5 -5
- package/dist/core/memory/VersionHistory.d.ts.map +1 -1
- package/dist/core/memory/VersionHistory.js +37 -4
- package/dist/core/memory/VersionHistory.js.map +1 -1
- package/dist/core/neural/NeuralTrainer.d.ts +12 -0
- package/dist/core/neural/NeuralTrainer.d.ts.map +1 -1
- package/dist/core/neural/NeuralTrainer.js +162 -18
- package/dist/core/neural/NeuralTrainer.js.map +1 -1
- package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -1
- package/dist/core/optimization/SwarmOptimizer.js +198 -26
- package/dist/core/optimization/SwarmOptimizer.js.map +1 -1
- package/dist/core/orchestration/WorkflowOrchestrator.d.ts +5 -1
- package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -1
- package/dist/core/orchestration/WorkflowOrchestrator.js +58 -12
- package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -1
- package/dist/core/orchestration/types.d.ts +8 -8
- package/dist/core/orchestration/types.d.ts.map +1 -1
- package/dist/core/routing/AdaptiveModelRouter.d.ts +3 -3
- package/dist/core/routing/AdaptiveModelRouter.d.ts.map +1 -1
- package/dist/core/routing/AdaptiveModelRouter.js.map +1 -1
- package/dist/core/routing/CostTracker.d.ts +10 -2
- package/dist/core/routing/CostTracker.d.ts.map +1 -1
- package/dist/core/routing/CostTracker.js +36 -4
- package/dist/core/routing/CostTracker.js.map +1 -1
- package/dist/core/routing/FleetManagerIntegration.d.ts +1 -1
- package/dist/core/routing/types.d.ts +41 -4
- package/dist/core/routing/types.d.ts.map +1 -1
- package/dist/core/strategies/DefaultMemoryStrategy.d.ts.map +1 -1
- package/dist/core/strategies/DefaultMemoryStrategy.js +33 -1
- package/dist/core/strategies/DefaultMemoryStrategy.js.map +1 -1
- package/dist/coverage/CriticalPathDetector.d.ts +240 -0
- package/dist/coverage/CriticalPathDetector.d.ts.map +1 -0
- package/dist/coverage/CriticalPathDetector.js +388 -0
- package/dist/coverage/CriticalPathDetector.js.map +1 -0
- package/dist/coverage/index.d.ts +13 -0
- package/dist/coverage/index.d.ts.map +1 -0
- package/dist/coverage/index.js +16 -0
- package/dist/coverage/index.js.map +1 -0
- package/dist/fleet/topology/SPOFMonitor.d.ts +181 -0
- package/dist/fleet/topology/SPOFMonitor.d.ts.map +1 -0
- package/dist/fleet/topology/SPOFMonitor.js +286 -0
- package/dist/fleet/topology/SPOFMonitor.js.map +1 -0
- package/dist/fleet/topology/TopologyMinCutAnalyzer.d.ts +87 -0
- package/dist/fleet/topology/TopologyMinCutAnalyzer.d.ts.map +1 -0
- package/dist/fleet/topology/TopologyMinCutAnalyzer.js +472 -0
- package/dist/fleet/topology/TopologyMinCutAnalyzer.js.map +1 -0
- package/dist/fleet/topology/index.d.ts +13 -0
- package/dist/fleet/topology/index.d.ts.map +1 -0
- package/dist/fleet/topology/index.js +20 -0
- package/dist/fleet/topology/index.js.map +1 -0
- package/dist/fleet/topology/types.d.ts +139 -0
- package/dist/fleet/topology/types.d.ts.map +1 -0
- package/dist/fleet/topology/types.js +19 -0
- package/dist/fleet/topology/types.js.map +1 -0
- package/dist/learning/ImprovementLoop.d.ts +4 -4
- package/dist/learning/ImprovementLoop.d.ts.map +1 -1
- package/dist/learning/ImprovementLoop.js +108 -9
- package/dist/learning/ImprovementLoop.js.map +1 -1
- package/dist/learning/LearningEngine.d.ts +2 -2
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +72 -30
- package/dist/learning/LearningEngine.js.map +1 -1
- package/dist/learning/PerformanceTracker.d.ts.map +1 -1
- package/dist/learning/PerformanceTracker.js +40 -4
- package/dist/learning/PerformanceTracker.js.map +1 -1
- package/dist/learning/TransferLearningManager.d.ts +1 -1
- package/dist/learning/TransferLearningManager.d.ts.map +1 -1
- package/dist/learning/TransferLearningManager.js +143 -9
- package/dist/learning/TransferLearningManager.js.map +1 -1
- package/dist/learning/metrics/AlertManager.d.ts.map +1 -1
- package/dist/learning/metrics/AlertManager.js +20 -9
- package/dist/learning/metrics/AlertManager.js.map +1 -1
- package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -1
- package/dist/learning/metrics/LearningMetrics.js +21 -21
- package/dist/learning/metrics/LearningMetrics.js.map +1 -1
- package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -1
- package/dist/learning/metrics/MetricsCollector.js +20 -7
- package/dist/learning/metrics/MetricsCollector.js.map +1 -1
- package/dist/learning/metrics/MetricsStore.js +6 -6
- package/dist/learning/metrics/MetricsStore.js.map +1 -1
- package/dist/mcp/handlers/base-handler.d.ts +8 -8
- package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
- package/dist/mcp/handlers/base-handler.js +5 -4
- package/dist/mcp/handlers/base-handler.js.map +1 -1
- package/dist/mcp/handlers/coordination/event-emit.d.ts +2 -2
- package/dist/mcp/handlers/coordination/event-emit.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/event-emit.js.map +1 -1
- package/dist/mcp/handlers/coordination/event-subscribe.d.ts +2 -2
- package/dist/mcp/handlers/coordination/event-subscribe.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/event-subscribe.js +2 -1
- package/dist/mcp/handlers/coordination/event-subscribe.js.map +1 -1
- package/dist/mcp/handlers/coordination/task-status.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/task-status.js +40 -18
- package/dist/mcp/handlers/coordination/task-status.js.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-checkpoint.d.ts +5 -5
- package/dist/mcp/handlers/coordination/workflow-checkpoint.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-checkpoint.js +64 -16
- package/dist/mcp/handlers/coordination/workflow-checkpoint.js.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-create.d.ts +3 -3
- package/dist/mcp/handlers/coordination/workflow-create.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-execute.d.ts +3 -3
- package/dist/mcp/handlers/coordination/workflow-execute.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-execute.js +2 -2
- package/dist/mcp/handlers/coordination/workflow-execute.js.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-resume.d.ts +2 -2
- package/dist/mcp/handlers/coordination/workflow-resume.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-resume.js +26 -6
- package/dist/mcp/handlers/coordination/workflow-resume.js.map +1 -1
- package/dist/mcp/handlers/learning/learning-query.d.ts.map +1 -1
- package/dist/mcp/handlers/learning/learning-query.js +1 -1
- package/dist/mcp/handlers/learning/learning-query.js.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts +5 -4
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.js +6 -4
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +247 -31
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js +3 -3
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.d.ts +3 -3
- package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.js +3 -2
- package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
- package/dist/mcp/handlers/test/generate-integration-tests.d.ts +15 -3
- package/dist/mcp/handlers/test/generate-integration-tests.d.ts.map +1 -1
- package/dist/mcp/handlers/test/generate-integration-tests.js +5 -5
- package/dist/mcp/handlers/test/generate-integration-tests.js.map +1 -1
- package/dist/mcp/handlers/test/generate-unit-tests.js.map +1 -1
- package/dist/mcp/handlers/test/test-coverage-detailed.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-coverage-detailed.js +1 -1
- package/dist/mcp/handlers/test/test-coverage-detailed.js.map +1 -1
- package/dist/mcp/handlers/test/test-execute-parallel.d.ts +34 -3
- package/dist/mcp/handlers/test/test-execute-parallel.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-execute-parallel.js +128 -11
- package/dist/mcp/handlers/test/test-execute-parallel.js.map +1 -1
- package/dist/mcp/handlers/test/test-optimize-sublinear.d.ts +8 -1
- package/dist/mcp/handlers/test/test-optimize-sublinear.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-optimize-sublinear.js +1 -1
- package/dist/mcp/handlers/test/test-optimize-sublinear.js.map +1 -1
- package/dist/mcp/handlers/test/test-report-comprehensive.d.ts +14 -2
- package/dist/mcp/handlers/test/test-report-comprehensive.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-report-comprehensive.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +2 -2
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +2 -2
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +11 -10
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts +2 -6
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts.map +1 -1
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js.map +1 -1
- package/dist/reasoning/CodeSignatureGenerator.d.ts +37 -1
- package/dist/reasoning/CodeSignatureGenerator.d.ts.map +1 -1
- package/dist/reasoning/CodeSignatureGenerator.js +113 -53
- package/dist/reasoning/CodeSignatureGenerator.js.map +1 -1
- package/dist/reasoning/PatternExtractor.d.ts +91 -10
- package/dist/reasoning/PatternExtractor.d.ts.map +1 -1
- package/dist/reasoning/PatternExtractor.js +104 -26
- package/dist/reasoning/PatternExtractor.js.map +1 -1
- package/dist/test/partition/MinCutPartitioner.d.ts +97 -0
- package/dist/test/partition/MinCutPartitioner.d.ts.map +1 -0
- package/dist/test/partition/MinCutPartitioner.js +459 -0
- package/dist/test/partition/MinCutPartitioner.js.map +1 -0
- package/dist/test/partition/RealTestExecutor.d.ts +86 -0
- package/dist/test/partition/RealTestExecutor.d.ts.map +1 -0
- package/dist/test/partition/RealTestExecutor.js +279 -0
- package/dist/test/partition/RealTestExecutor.js.map +1 -0
- package/dist/test/partition/TestDependencyAnalyzer.d.ts +75 -0
- package/dist/test/partition/TestDependencyAnalyzer.d.ts.map +1 -0
- package/dist/test/partition/TestDependencyAnalyzer.js +297 -0
- package/dist/test/partition/TestDependencyAnalyzer.js.map +1 -0
- package/dist/test/partition/index.d.ts +10 -0
- package/dist/test/partition/index.d.ts.map +1 -0
- package/dist/test/partition/index.js +26 -0
- package/dist/test/partition/index.js.map +1 -0
- package/dist/test/partition/types.d.ts +120 -0
- package/dist/test/partition/types.d.ts.map +1 -0
- package/dist/test/partition/types.js +21 -0
- package/dist/test/partition/types.js.map +1 -0
- package/dist/types/hook.types.d.ts +628 -70
- package/dist/types/hook.types.d.ts.map +1 -1
- package/dist/utils/Config.d.ts +1 -1
- package/dist/utils/Config.d.ts.map +1 -1
- package/dist/utils/Database.d.ts +187 -44
- package/dist/utils/Database.d.ts.map +1 -1
- package/dist/utils/Database.js +24 -15
- package/dist/utils/Database.js.map +1 -1
- package/dist/utils/FakerDataGenerator.d.ts +28 -4
- package/dist/utils/FakerDataGenerator.d.ts.map +1 -1
- package/dist/utils/FakerDataGenerator.js +2 -2
- package/dist/utils/FakerDataGenerator.js.map +1 -1
- package/dist/utils/Logger.d.ts +6 -6
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +5 -5
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/SecureValidation.d.ts +4 -4
- package/dist/utils/SecureValidation.d.ts.map +1 -1
- package/dist/utils/SecureValidation.js.map +1 -1
- package/dist/utils/SeededRandom.d.ts +297 -0
- package/dist/utils/SeededRandom.d.ts.map +1 -0
- package/dist/utils/SeededRandom.js +389 -0
- package/dist/utils/SeededRandom.js.map +1 -0
- package/dist/utils/TestFrameworkExecutor.d.ts.map +1 -1
- package/dist/utils/TestFrameworkExecutor.js +3 -3
- package/dist/utils/TestFrameworkExecutor.js.map +1 -1
- package/dist/utils/batch-operations.d.ts +2 -2
- package/dist/utils/batch-operations.d.ts.map +1 -1
- package/dist/utils/batch-operations.js.map +1 -1
- package/dist/utils/filtering.d.ts +1 -1
- package/dist/utils/filtering.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +4 -7
- package/dist/code-intelligence/parser/TreeSitterParser.d.ts.map +0 -1
- package/dist/code-intelligence/parser/TreeSitterParser.js.map +0 -1
|
@@ -6,40 +6,182 @@
|
|
|
6
6
|
* Implements sublinear algorithms from SPARC Phase 2 Section 3 with continuous
|
|
7
7
|
* improvement through reinforcement learning and performance tracking.
|
|
8
8
|
*/
|
|
9
|
-
import { TestSuite, CoverageReport, QETask } from '../types';
|
|
9
|
+
import { TestSuite, CoverageReport, SublinearMatrix, QETask } from '../types';
|
|
10
10
|
import { BaseAgent, BaseAgentConfig } from './BaseAgent';
|
|
11
11
|
export interface CoverageAnalyzerConfig extends BaseAgentConfig {
|
|
12
12
|
enablePatterns?: boolean;
|
|
13
|
+
enableCriticalPathAnalysis?: boolean;
|
|
13
14
|
targetImprovement?: number;
|
|
14
15
|
improvementPeriodDays?: number;
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Represents a function within a code file
|
|
19
|
+
*/
|
|
20
|
+
export interface CodeFunction {
|
|
21
|
+
name: string;
|
|
22
|
+
startLine: number;
|
|
23
|
+
endLine: number;
|
|
24
|
+
complexity: number;
|
|
25
|
+
coverage?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Represents a source code file
|
|
29
|
+
*/
|
|
30
|
+
export interface CodeFile {
|
|
31
|
+
path: string;
|
|
32
|
+
content: string;
|
|
33
|
+
language: string;
|
|
34
|
+
functions: CodeFunction[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Represents a coverage point in the codebase
|
|
38
|
+
*/
|
|
39
|
+
export interface CoveragePoint {
|
|
40
|
+
id: string;
|
|
41
|
+
file: string;
|
|
42
|
+
line: number;
|
|
43
|
+
type: 'statement' | 'branch' | 'function';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Represents the codebase being analyzed
|
|
47
|
+
*/
|
|
48
|
+
export interface CodeBase {
|
|
49
|
+
files: CodeFile[];
|
|
50
|
+
coveragePoints: CoveragePoint[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Optimization goals for coverage analysis
|
|
54
|
+
*/
|
|
55
|
+
export interface OptimizationGoals {
|
|
56
|
+
minimizeTestCount: boolean;
|
|
57
|
+
maximizeCoverage: boolean;
|
|
58
|
+
balanceEfficiency: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Execution trace for realtime gap detection
|
|
62
|
+
*/
|
|
63
|
+
export interface ExecutionTrace {
|
|
64
|
+
traceId: string;
|
|
65
|
+
entries: Array<{
|
|
66
|
+
timestamp: number;
|
|
67
|
+
file: string;
|
|
68
|
+
line: number;
|
|
69
|
+
function?: string;
|
|
70
|
+
}>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Execution graph built from trace
|
|
74
|
+
*/
|
|
75
|
+
export interface ExecutionGraph {
|
|
76
|
+
nodes: Array<{
|
|
77
|
+
id: string;
|
|
78
|
+
type: string;
|
|
79
|
+
file: string;
|
|
80
|
+
line: number;
|
|
81
|
+
}>;
|
|
82
|
+
edges: Array<{
|
|
83
|
+
source: string;
|
|
84
|
+
target: string;
|
|
85
|
+
weight: number;
|
|
86
|
+
}>;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Gap type literals for coverage gaps
|
|
90
|
+
*/
|
|
91
|
+
export type CoverageGapType = 'line' | 'function' | 'branch';
|
|
92
|
+
/**
|
|
93
|
+
* Gap prediction from analysis
|
|
94
|
+
*/
|
|
95
|
+
export interface GapPrediction {
|
|
96
|
+
location: string;
|
|
97
|
+
gapType: CoverageGapType;
|
|
98
|
+
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
99
|
+
context?: string;
|
|
100
|
+
gap?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Coverage map for gap detection
|
|
104
|
+
*/
|
|
105
|
+
export interface CoverageMap {
|
|
106
|
+
[fileId: string]: {
|
|
107
|
+
covered: number[];
|
|
108
|
+
uncovered: number[];
|
|
109
|
+
partial: number[];
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Performance metrics for coverage status
|
|
114
|
+
*/
|
|
115
|
+
export interface CoveragePerformanceMetrics {
|
|
116
|
+
optimizationsCompleted: number;
|
|
117
|
+
averageOptimizationTime: number;
|
|
118
|
+
lastOptimizationRatio: number;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Learning metrics for coverage status
|
|
122
|
+
*/
|
|
123
|
+
export interface CoverageLearningMetrics {
|
|
124
|
+
enabled: boolean;
|
|
125
|
+
totalExperiences: number;
|
|
126
|
+
explorationRate: number;
|
|
127
|
+
snapshotCount: number;
|
|
128
|
+
hasBaseline: boolean;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* RuVector cache status
|
|
132
|
+
*/
|
|
133
|
+
export interface RuVectorStatus {
|
|
134
|
+
enabled: boolean;
|
|
135
|
+
cacheHitRate: number;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Complete coverage status result
|
|
139
|
+
*/
|
|
140
|
+
export interface CoverageStatusResult {
|
|
141
|
+
performance: CoveragePerformanceMetrics;
|
|
142
|
+
learning?: CoverageLearningMetrics;
|
|
143
|
+
ruvector: RuVectorStatus;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Capture stats for experience capture
|
|
147
|
+
*/
|
|
148
|
+
export interface ExperienceCaptureStats {
|
|
149
|
+
totalCaptured: number;
|
|
150
|
+
totalFlushed: number;
|
|
151
|
+
bufferSize: number;
|
|
152
|
+
lastFlush: Date | null;
|
|
153
|
+
byAgentType: Record<string, number>;
|
|
154
|
+
byTaskType: Record<string, number>;
|
|
155
|
+
successRate: number;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Enhanced learning status result
|
|
159
|
+
*/
|
|
160
|
+
export interface EnhancedLearningStatusResult {
|
|
161
|
+
learningEngine: {
|
|
162
|
+
enabled: boolean;
|
|
163
|
+
totalExperiences: number;
|
|
164
|
+
explorationRate: number;
|
|
165
|
+
patterns: number;
|
|
166
|
+
} | null;
|
|
167
|
+
experienceCapture: ExperienceCaptureStats | null;
|
|
168
|
+
cachedPatterns: number;
|
|
169
|
+
confidenceBoost: number;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Parameters for sublinear optimization
|
|
173
|
+
*/
|
|
174
|
+
export interface SublinearOptimizationParams {
|
|
175
|
+
matrix: SublinearMatrix;
|
|
176
|
+
vector: number[];
|
|
177
|
+
jl_distortion: number;
|
|
178
|
+
sparsification_eps: number;
|
|
179
|
+
}
|
|
16
180
|
export interface CoverageAnalysisRequest {
|
|
17
181
|
testSuite: TestSuite;
|
|
18
|
-
codeBase:
|
|
19
|
-
files: Array<{
|
|
20
|
-
path: string;
|
|
21
|
-
content: string;
|
|
22
|
-
language: string;
|
|
23
|
-
functions: Array<{
|
|
24
|
-
name: string;
|
|
25
|
-
startLine: number;
|
|
26
|
-
endLine: number;
|
|
27
|
-
complexity: number;
|
|
28
|
-
}>;
|
|
29
|
-
}>;
|
|
30
|
-
coveragePoints: Array<{
|
|
31
|
-
id: string;
|
|
32
|
-
file: string;
|
|
33
|
-
line: number;
|
|
34
|
-
type: 'statement' | 'branch' | 'function';
|
|
35
|
-
}>;
|
|
36
|
-
};
|
|
182
|
+
codeBase: CodeBase;
|
|
37
183
|
targetCoverage: number;
|
|
38
|
-
optimizationGoals:
|
|
39
|
-
minimizeTestCount: boolean;
|
|
40
|
-
maximizeCoverage: boolean;
|
|
41
|
-
balanceEfficiency: boolean;
|
|
42
|
-
};
|
|
184
|
+
optimizationGoals: OptimizationGoals;
|
|
43
185
|
}
|
|
44
186
|
export interface CoverageOptimizationResult {
|
|
45
187
|
optimizedSuite: TestSuite;
|
|
@@ -75,24 +217,18 @@ export declare class CoverageAnalyzerAgent extends BaseAgent {
|
|
|
75
217
|
private experienceCapture?;
|
|
76
218
|
private cachedPatterns;
|
|
77
219
|
private agentDB?;
|
|
220
|
+
private criticalPathDetector?;
|
|
78
221
|
private coverageConfig;
|
|
79
222
|
private coverageLogger;
|
|
80
223
|
constructor(config: CoverageAnalyzerConfig);
|
|
81
224
|
protected initializeComponents(): Promise<void>;
|
|
82
|
-
protected performTask(task: QETask): Promise<
|
|
225
|
+
protected performTask(task: QETask): Promise<CoverageOptimizationResult>;
|
|
83
226
|
protected loadKnowledge(): Promise<void>;
|
|
84
227
|
protected cleanup(): Promise<void>;
|
|
85
228
|
/**
|
|
86
229
|
* Get coverage-specific status including optimization metrics
|
|
87
230
|
*/
|
|
88
|
-
getCoverageStatus():
|
|
89
|
-
performance: any;
|
|
90
|
-
learning?: any;
|
|
91
|
-
ruvector: {
|
|
92
|
-
enabled: boolean;
|
|
93
|
-
cacheHitRate: number;
|
|
94
|
-
};
|
|
95
|
-
};
|
|
231
|
+
getCoverageStatus(): CoverageStatusResult;
|
|
96
232
|
private getAgentIdStr;
|
|
97
233
|
/**
|
|
98
234
|
* Optimize coverage using sublinear algorithms with learning enhancement
|
|
@@ -144,7 +280,7 @@ export declare class CoverageAnalyzerAgent extends BaseAgent {
|
|
|
144
280
|
* Based on SPARC Phase 2 Subroutine: CalculateOptimalDimension
|
|
145
281
|
*/
|
|
146
282
|
private calculateOptimalDimension;
|
|
147
|
-
detectCoverageGapsRealtime(executionTrace:
|
|
283
|
+
detectCoverageGapsRealtime(executionTrace: ExecutionTrace, coverageMap: CoverageMap): Promise<CoverageOptimizationResult['gaps']>;
|
|
148
284
|
private generateCoverageReport;
|
|
149
285
|
private analyzTestCoverage;
|
|
150
286
|
private calculateCoverage;
|
|
@@ -189,11 +325,35 @@ export declare class CoverageAnalyzerAgent extends BaseAgent {
|
|
|
189
325
|
/**
|
|
190
326
|
* Get learning status including Nightly-Learner integration
|
|
191
327
|
*/
|
|
192
|
-
getEnhancedLearningStatus(): Promise<
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
328
|
+
getEnhancedLearningStatus(): Promise<EnhancedLearningStatusResult>;
|
|
329
|
+
/**
|
|
330
|
+
* Enhance coverage gaps with MinCut critical path analysis
|
|
331
|
+
* Uses graph-theoretic analysis to identify bottleneck code paths
|
|
332
|
+
*/
|
|
333
|
+
private enhanceGapsWithCriticalPaths;
|
|
334
|
+
/**
|
|
335
|
+
* Build coverage graph from codebase for MinCut analysis
|
|
336
|
+
*/
|
|
337
|
+
private buildCoverageGraph;
|
|
338
|
+
/**
|
|
339
|
+
* Estimate file coverage based on function coverages
|
|
340
|
+
*/
|
|
341
|
+
private estimateFileCoverage;
|
|
342
|
+
/**
|
|
343
|
+
* Estimate file complexity based on functions
|
|
344
|
+
*/
|
|
345
|
+
private estimateFileComplexity;
|
|
346
|
+
/**
|
|
347
|
+
* Find which function contains a given line
|
|
348
|
+
*/
|
|
349
|
+
private findFunctionForLine;
|
|
350
|
+
/**
|
|
351
|
+
* Get critical path analysis summary for status reporting
|
|
352
|
+
*/
|
|
353
|
+
getCriticalPathStatus(): {
|
|
354
|
+
enabled: boolean;
|
|
355
|
+
lastAnalysisNodes?: number;
|
|
356
|
+
lastAnalysisPaths?: number;
|
|
357
|
+
};
|
|
198
358
|
}
|
|
199
359
|
//# sourceMappingURL=CoverageAnalyzerAgent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoverageAnalyzerAgent.d.ts","sourceRoot":"","sources":["../../src/agents/CoverageAnalyzerAgent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAIL,SAAS,EAET,cAAc,
|
|
1
|
+
{"version":3,"file":"CoverageAnalyzerAgent.d.ts","sourceRoot":"","sources":["../../src/agents/CoverageAnalyzerAgent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAIL,SAAS,EAET,cAAc,EACd,eAAe,EAGf,MAAM,EACP,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA+DzD,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,KAAK,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,0BAA0B,CAAC;IACxC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI,CAAC;IACT,iBAAiB,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAMD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE;QACZ,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,EAAE,KAAK,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;QACrC,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;QACjD,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,eAAe,CAAC,EAAE;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAMD,qBAAa,qBAAsB,SAAQ,SAAS;IAElD,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAc;IAGjC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAkB;IACxC,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAG9C,OAAO,CAAC,cAAc,CAA2E;IAGjG,OAAO,CAAC,OAAO,CAAC,CAAW;IAG3B,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IAGpD,OAAO,CAAC,cAAc,CAKpB;IAGF,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,EAAE,sBAAsB;cAsC1B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;cA2BrC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;cAK9D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;cAM9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBxC;;OAEG;IACH,iBAAiB,IAAI,oBAAoB;IA2BzC,OAAO,CAAC,aAAa;IAarB;;;OAGG;YACW,yBAAyB;IAkJvC;;OAEG;YACW,8BAA8B;IA4D5C;;;OAGG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoF/E;;OAEG;YACW,aAAa;IA6E3B;;;OAGG;YACW,gBAAgB;IA6E9B;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,eAAe;IAO7B;;OAEG;YACW,uBAAuB;IAYrC;;OAEG;YACW,kBAAkB;IAYhC;;OAEG;IACH,OAAO,CAAC,yBAAyB;YAmBnB,mBAAmB;YAwCnB,8BAA8B;IAe5C;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAkB3B,0BAA0B,CAAC,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAiCzH,sBAAsB;YA0DtB,kBAAkB;YAsBlB,iBAAiB;YAYjB,0BAA0B;YAa1B,wBAAwB;YAkBxB,oBAAoB;YAOpB,oBAAoB;YASpB,wBAAwB;IAetC,OAAO,CAAC,cAAc;YAKR,yBAAyB;YAQzB,6BAA6B;YAQ7B,4BAA4B;YAO5B,mBAAmB;YAInB,qBAAqB;YAIrB,WAAW;IAQzB;;;OAGG;YACW,uBAAuB;YAkCvB,yBAAyB;IAIvC;;;OAGG;YACW,+BAA+B;IAsC7C;;;OAGG;YACW,iCAAiC;IA8C/C;;;OAGG;IACI,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IA4B/D;;;OAGG;YACW,4BAA4B;IA0D1C;;OAEG;IACU,yBAAyB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAsB/E;;;OAGG;YACW,4BAA4B;IA0B1C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8D1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,qBAAqB,IAAI;QACvB,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;CAKF"}
|
|
@@ -15,6 +15,7 @@ const ImprovementLoop_1 = require("../learning/ImprovementLoop");
|
|
|
15
15
|
const QEReasoningBank_1 = require("../reasoning/QEReasoningBank");
|
|
16
16
|
const Logger_1 = require("../utils/Logger");
|
|
17
17
|
const ExperienceCapture_1 = require("../learning/capture/ExperienceCapture");
|
|
18
|
+
const CriticalPathDetector_js_1 = require("../coverage/CriticalPathDetector.js");
|
|
18
19
|
// ============================================================================
|
|
19
20
|
// Main Agent Class - Now extends BaseAgent for RuVector integration
|
|
20
21
|
// ============================================================================
|
|
@@ -26,6 +27,7 @@ class CoverageAnalyzerAgent extends BaseAgent_1.BaseAgent {
|
|
|
26
27
|
this.coverageLogger = Logger_1.Logger.getInstance();
|
|
27
28
|
this.coverageConfig = {
|
|
28
29
|
enablePatterns: config.enablePatterns !== false,
|
|
30
|
+
enableCriticalPathAnalysis: config.enableCriticalPathAnalysis !== false,
|
|
29
31
|
targetImprovement: config.targetImprovement || 0.20,
|
|
30
32
|
improvementPeriodDays: config.improvementPeriodDays || 30,
|
|
31
33
|
};
|
|
@@ -33,6 +35,16 @@ class CoverageAnalyzerAgent extends BaseAgent_1.BaseAgent {
|
|
|
33
35
|
this.sublinearCore = new SublinearOptimizer();
|
|
34
36
|
this.coverageEngine = new CoverageEngine();
|
|
35
37
|
this.gapDetector = new GapDetector();
|
|
38
|
+
// Initialize MinCut-based critical path detector
|
|
39
|
+
if (this.coverageConfig.enableCriticalPathAnalysis) {
|
|
40
|
+
this.criticalPathDetector = new CriticalPathDetector_js_1.CriticalPathDetector({
|
|
41
|
+
criticalityThreshold: 0.2,
|
|
42
|
+
maxCriticalPaths: 10,
|
|
43
|
+
coverageGapThreshold: 80,
|
|
44
|
+
timeout: 10000,
|
|
45
|
+
});
|
|
46
|
+
this.coverageLogger?.info('[CoverageAnalyzer] MinCut critical path analysis enabled');
|
|
47
|
+
}
|
|
36
48
|
// Initialize reasoning bank if patterns enabled
|
|
37
49
|
if (this.coverageConfig.enablePatterns) {
|
|
38
50
|
this.reasoningBank = new QEReasoningBank_1.QEReasoningBank();
|
|
@@ -232,6 +244,25 @@ class CoverageAnalyzerAgent extends BaseAgent_1.BaseAgent {
|
|
|
232
244
|
}
|
|
233
245
|
}
|
|
234
246
|
}
|
|
247
|
+
// Enhance gaps with MinCut critical path analysis
|
|
248
|
+
if (this.criticalPathDetector && gaps.length > 0) {
|
|
249
|
+
try {
|
|
250
|
+
const criticalPathGaps = await this.enhanceGapsWithCriticalPaths(gaps, codeBase);
|
|
251
|
+
if (criticalPathGaps.length > 0) {
|
|
252
|
+
// Merge criticality scores into existing gaps
|
|
253
|
+
const criticalityMap = new Map(criticalPathGaps.map(g => [g.nodeId, g.criticality]));
|
|
254
|
+
for (const gap of gaps) {
|
|
255
|
+
const criticality = criticalityMap.get(gap.location) || 0;
|
|
256
|
+
// Boost likelihood based on criticality
|
|
257
|
+
gap.likelihood = Math.min(1, gap.likelihood + (criticality * 0.3));
|
|
258
|
+
}
|
|
259
|
+
this.coverageLogger?.debug(`[CoverageAnalyzer] MinCut enhanced ${gaps.length} gaps with critical path data`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
this.coverageLogger?.warn('[CoverageAnalyzer] Critical path analysis failed, using fallback', error);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
235
266
|
// Sort by likelihood * severity
|
|
236
267
|
gaps.sort((a, b) => {
|
|
237
268
|
const severityWeight = { critical: 4, high: 3, medium: 2, low: 1 };
|
|
@@ -697,7 +728,7 @@ class CoverageAnalyzerAgent extends BaseAgent_1.BaseAgent {
|
|
|
697
728
|
generatedAt: new Date(),
|
|
698
729
|
coverageTarget: 85,
|
|
699
730
|
framework: originalSuite.metadata.framework,
|
|
700
|
-
estimatedDuration: selectedTests.reduce((total, test) => total + test.estimatedDuration
|
|
731
|
+
estimatedDuration: selectedTests.reduce((total, test) => total + (test.estimatedDuration ?? 1000), 0)
|
|
701
732
|
}
|
|
702
733
|
};
|
|
703
734
|
}
|
|
@@ -755,7 +786,7 @@ class CoverageAnalyzerAgent extends BaseAgent_1.BaseAgent {
|
|
|
755
786
|
async generateTestSuggestions(prediction) {
|
|
756
787
|
// Try LLM-enhanced suggestions if available
|
|
757
788
|
const llm = this.getAgentLLM();
|
|
758
|
-
if (llm && prediction
|
|
789
|
+
if (llm && prediction.gap) {
|
|
759
790
|
try {
|
|
760
791
|
const prompt = `Suggest 3 specific test cases to cover this gap:
|
|
761
792
|
Gap: ${prediction.gap}
|
|
@@ -793,7 +824,7 @@ Return a JSON array of test names only, e.g., ["test-case-1", "test-case-2", "te
|
|
|
793
824
|
async generateFunctionTestSuggestions(func) {
|
|
794
825
|
// Try LLM-enhanced suggestions if available
|
|
795
826
|
const llm = this.getAgentLLM();
|
|
796
|
-
if (llm && func
|
|
827
|
+
if (llm && func.name) {
|
|
797
828
|
try {
|
|
798
829
|
const prompt = `For the function "${func.name}", suggest 3 test cases covering:
|
|
799
830
|
1. Boundary/edge cases
|
|
@@ -851,10 +882,12 @@ Return a JSON array of descriptive test names only.`;
|
|
|
851
882
|
// Merge with existing patterns
|
|
852
883
|
for (const p of coveragePatterns) {
|
|
853
884
|
if (!this.cachedPatterns.find(cp => cp.pattern === p.pattern)) {
|
|
885
|
+
const metadata = p.metadata;
|
|
886
|
+
const successRate = typeof metadata?.success_rate === 'number' ? metadata.success_rate : 0.5;
|
|
854
887
|
this.cachedPatterns.push({
|
|
855
888
|
pattern: p.pattern,
|
|
856
889
|
confidence: p.confidence,
|
|
857
|
-
successRate
|
|
890
|
+
successRate
|
|
858
891
|
});
|
|
859
892
|
}
|
|
860
893
|
}
|
|
@@ -957,6 +990,134 @@ Return a JSON array of descriptive test names only.`;
|
|
|
957
990
|
confidenceBoost: this.getConfidenceBoostFromPatterns('coverage-optimization')
|
|
958
991
|
};
|
|
959
992
|
}
|
|
993
|
+
// ============================================================================
|
|
994
|
+
// MinCut Critical Path Integration
|
|
995
|
+
// ============================================================================
|
|
996
|
+
/**
|
|
997
|
+
* Enhance coverage gaps with MinCut critical path analysis
|
|
998
|
+
* Uses graph-theoretic analysis to identify bottleneck code paths
|
|
999
|
+
*/
|
|
1000
|
+
async enhanceGapsWithCriticalPaths(gaps, codeBase) {
|
|
1001
|
+
if (!this.criticalPathDetector) {
|
|
1002
|
+
return [];
|
|
1003
|
+
}
|
|
1004
|
+
// Build coverage graph from codebase
|
|
1005
|
+
const coverageGraph = this.buildCoverageGraph(codeBase, gaps);
|
|
1006
|
+
if (coverageGraph.nodes.length === 0) {
|
|
1007
|
+
return [];
|
|
1008
|
+
}
|
|
1009
|
+
// Run critical path detection
|
|
1010
|
+
const result = await this.criticalPathDetector.detectCriticalPaths(coverageGraph);
|
|
1011
|
+
this.coverageLogger?.debug(`[CoverageAnalyzer] Critical path analysis: ${result.criticalPaths.length} paths, ` +
|
|
1012
|
+
`${result.bottlenecks.length} bottlenecks, ${result.computationTimeMs}ms`);
|
|
1013
|
+
return result.prioritizedGaps;
|
|
1014
|
+
}
|
|
1015
|
+
/**
|
|
1016
|
+
* Build coverage graph from codebase for MinCut analysis
|
|
1017
|
+
*/
|
|
1018
|
+
buildCoverageGraph(codeBase, gaps) {
|
|
1019
|
+
const nodes = [];
|
|
1020
|
+
const edges = [];
|
|
1021
|
+
const gapLocations = new Set(gaps.map(g => g.location));
|
|
1022
|
+
// Build nodes from files and functions
|
|
1023
|
+
for (const file of codeBase.files || []) {
|
|
1024
|
+
// Add file as a node
|
|
1025
|
+
const fileCoverage = this.estimateFileCoverage(file);
|
|
1026
|
+
nodes.push({
|
|
1027
|
+
id: file.path,
|
|
1028
|
+
label: file.path.split('/').pop() || file.path,
|
|
1029
|
+
type: 'file',
|
|
1030
|
+
coverage: fileCoverage,
|
|
1031
|
+
lines: file.content?.split('\n').length || 100,
|
|
1032
|
+
complexity: this.estimateFileComplexity(file),
|
|
1033
|
+
});
|
|
1034
|
+
// Add functions as nodes
|
|
1035
|
+
for (const func of file.functions || []) {
|
|
1036
|
+
const funcId = `${file.path}:${func.name}`;
|
|
1037
|
+
const isGap = gapLocations.has(funcId);
|
|
1038
|
+
nodes.push({
|
|
1039
|
+
id: funcId,
|
|
1040
|
+
label: func.name,
|
|
1041
|
+
type: func.name === 'constructor' ? 'method' : 'function',
|
|
1042
|
+
coverage: isGap ? (gaps.find(g => g.location === funcId)?.likelihood || 0.5) * 100 : 85,
|
|
1043
|
+
lines: func.endLine - func.startLine + 1,
|
|
1044
|
+
complexity: func.complexity || 5,
|
|
1045
|
+
});
|
|
1046
|
+
// Add edge from file to function
|
|
1047
|
+
edges.push({
|
|
1048
|
+
source: file.path,
|
|
1049
|
+
target: funcId,
|
|
1050
|
+
weight: func.complexity || 1,
|
|
1051
|
+
type: 'calls',
|
|
1052
|
+
});
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
// Add inter-function dependencies based on coverage points
|
|
1056
|
+
for (const point of codeBase.coveragePoints || []) {
|
|
1057
|
+
const sourceFunc = this.findFunctionForLine(codeBase, point.file, point.line);
|
|
1058
|
+
if (sourceFunc) {
|
|
1059
|
+
const sourceId = `${point.file}:${sourceFunc}`;
|
|
1060
|
+
const targetNode = nodes.find(n => n.id === point.file);
|
|
1061
|
+
if (targetNode && nodes.some(n => n.id === sourceId)) {
|
|
1062
|
+
edges.push({
|
|
1063
|
+
source: sourceId,
|
|
1064
|
+
target: point.file,
|
|
1065
|
+
weight: 1,
|
|
1066
|
+
type: 'uses',
|
|
1067
|
+
});
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
return { nodes, edges };
|
|
1072
|
+
}
|
|
1073
|
+
/**
|
|
1074
|
+
* Estimate file coverage based on function coverages
|
|
1075
|
+
*/
|
|
1076
|
+
estimateFileCoverage(file) {
|
|
1077
|
+
if (!file.functions || file.functions.length === 0) {
|
|
1078
|
+
return 50; // Default
|
|
1079
|
+
}
|
|
1080
|
+
// Average complexity-weighted coverage
|
|
1081
|
+
let totalWeight = 0;
|
|
1082
|
+
let weightedCoverage = 0;
|
|
1083
|
+
for (const func of file.functions) {
|
|
1084
|
+
const weight = func.complexity || 1;
|
|
1085
|
+
totalWeight += weight;
|
|
1086
|
+
weightedCoverage += weight * (func.coverage ?? 50);
|
|
1087
|
+
}
|
|
1088
|
+
return totalWeight > 0 ? weightedCoverage / totalWeight : 50;
|
|
1089
|
+
}
|
|
1090
|
+
/**
|
|
1091
|
+
* Estimate file complexity based on functions
|
|
1092
|
+
*/
|
|
1093
|
+
estimateFileComplexity(file) {
|
|
1094
|
+
if (!file.functions || file.functions.length === 0) {
|
|
1095
|
+
return 5;
|
|
1096
|
+
}
|
|
1097
|
+
return Math.max(...file.functions.map((f) => f.complexity || 5));
|
|
1098
|
+
}
|
|
1099
|
+
/**
|
|
1100
|
+
* Find which function contains a given line
|
|
1101
|
+
*/
|
|
1102
|
+
findFunctionForLine(codeBase, filePath, line) {
|
|
1103
|
+
const file = codeBase.files?.find((f) => f.path === filePath);
|
|
1104
|
+
if (!file)
|
|
1105
|
+
return null;
|
|
1106
|
+
for (const func of file.functions || []) {
|
|
1107
|
+
if (line >= func.startLine && line <= func.endLine) {
|
|
1108
|
+
return func.name;
|
|
1109
|
+
}
|
|
1110
|
+
}
|
|
1111
|
+
return null;
|
|
1112
|
+
}
|
|
1113
|
+
/**
|
|
1114
|
+
* Get critical path analysis summary for status reporting
|
|
1115
|
+
*/
|
|
1116
|
+
getCriticalPathStatus() {
|
|
1117
|
+
return {
|
|
1118
|
+
enabled: !!this.criticalPathDetector,
|
|
1119
|
+
};
|
|
1120
|
+
}
|
|
960
1121
|
}
|
|
961
1122
|
exports.CoverageAnalyzerAgent = CoverageAnalyzerAgent;
|
|
962
1123
|
// ============================================================================
|