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
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TopologyMinCutAnalyzer
|
|
4
|
+
*
|
|
5
|
+
* Analyzes fleet topology using min-cut algorithms for:
|
|
6
|
+
* - Single Point of Failure (SPOF) detection
|
|
7
|
+
* - Topology resilience scoring
|
|
8
|
+
* - Connectivity analysis
|
|
9
|
+
* - Optimization recommendations
|
|
10
|
+
*
|
|
11
|
+
* Uses the code-intelligence MinCutAnalyzer internally.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.TopologyMinCutAnalyzer = void 0;
|
|
15
|
+
const index_js_1 = require("../../code-intelligence/analysis/mincut/index.js");
|
|
16
|
+
const Logger_js_1 = require("../../utils/Logger.js");
|
|
17
|
+
const types_js_1 = require("./types.js");
|
|
18
|
+
const logger = Logger_js_1.Logger.getInstance();
|
|
19
|
+
/**
|
|
20
|
+
* Analyzes fleet topology for vulnerabilities and resilience
|
|
21
|
+
*/
|
|
22
|
+
class TopologyMinCutAnalyzer {
|
|
23
|
+
constructor(config = {}) {
|
|
24
|
+
this.config = { ...types_js_1.DEFAULT_TOPOLOGY_ANALYSIS_CONFIG, ...config };
|
|
25
|
+
this.minCutAnalyzer = new index_js_1.MinCutAnalyzer({
|
|
26
|
+
algorithm: 'auto',
|
|
27
|
+
timeout: this.config.timeout,
|
|
28
|
+
maxNodes: 500, // Fleet size limit
|
|
29
|
+
});
|
|
30
|
+
logger.info('TopologyMinCutAnalyzer initialized', { config: this.config });
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Analyze fleet topology for resilience and SPOFs
|
|
34
|
+
*
|
|
35
|
+
* @param topology - Fleet topology to analyze
|
|
36
|
+
* @returns Comprehensive resilience analysis result
|
|
37
|
+
*/
|
|
38
|
+
async analyzeResilience(topology) {
|
|
39
|
+
const startTime = performance.now();
|
|
40
|
+
// Convert topology to min-cut graph format
|
|
41
|
+
const graph = this.topologyToGraph(topology);
|
|
42
|
+
// Detect all SPOFs
|
|
43
|
+
const spofs = await this.detectSpofs(topology, graph);
|
|
44
|
+
// Calculate min-cut value
|
|
45
|
+
let minCutValue = Infinity;
|
|
46
|
+
let vulnerablePartitions = [];
|
|
47
|
+
if (graph.nodes.length >= 2 && graph.edges.length > 0) {
|
|
48
|
+
try {
|
|
49
|
+
const minCutResult = await this.minCutAnalyzer.computeMinCut(graph);
|
|
50
|
+
minCutValue = minCutResult.cutValue;
|
|
51
|
+
vulnerablePartitions = [minCutResult.partition1, minCutResult.partition2];
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
logger.warn('Min-cut computation failed', { error });
|
|
55
|
+
minCutValue = 0;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Calculate resilience score
|
|
59
|
+
const score = this.calculateResilienceScore(topology, spofs, minCutValue);
|
|
60
|
+
// Get critical SPOFs
|
|
61
|
+
const criticalSpofs = spofs.filter(s => s.severity === 'critical');
|
|
62
|
+
// Generate recommendations
|
|
63
|
+
const recommendations = this.generateRecommendations(topology, spofs, minCutValue);
|
|
64
|
+
// Calculate grade
|
|
65
|
+
const grade = this.calculateGrade(score, criticalSpofs.length);
|
|
66
|
+
// Calculate average path redundancy
|
|
67
|
+
const avgPathRedundancy = this.calculatePathRedundancy(topology);
|
|
68
|
+
const computationTimeMs = performance.now() - startTime;
|
|
69
|
+
return {
|
|
70
|
+
score,
|
|
71
|
+
minCutValue,
|
|
72
|
+
avgPathRedundancy,
|
|
73
|
+
spofs,
|
|
74
|
+
criticalSpofs,
|
|
75
|
+
vulnerablePartitions,
|
|
76
|
+
grade,
|
|
77
|
+
recommendations,
|
|
78
|
+
computationTimeMs,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Detect Single Points of Failure in the topology
|
|
83
|
+
*
|
|
84
|
+
* A SPOF is a node whose removal disconnects part of the graph.
|
|
85
|
+
*
|
|
86
|
+
* @param topology - Fleet topology
|
|
87
|
+
* @param graph - Graph representation (optional, will be computed if not provided)
|
|
88
|
+
* @returns Array of SPOF results
|
|
89
|
+
*/
|
|
90
|
+
async detectSpofs(topology, graph) {
|
|
91
|
+
const graphInput = graph || this.topologyToGraph(topology);
|
|
92
|
+
const spofs = [];
|
|
93
|
+
const totalNodes = topology.nodes.length;
|
|
94
|
+
// For each node, check if removing it disconnects the graph
|
|
95
|
+
for (const node of topology.nodes) {
|
|
96
|
+
// Skip if not analyzing all SPOFs and node is not a coordinator
|
|
97
|
+
if (!this.config.analyzeAllSpofs && node.role !== 'coordinator') {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
// Create graph without this node
|
|
101
|
+
const reducedGraph = this.removeNodeFromGraph(graphInput, node.id);
|
|
102
|
+
// Skip if graph becomes too small
|
|
103
|
+
if (reducedGraph.nodes.length < 2) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
// Check connectivity by computing min-cut
|
|
107
|
+
const isConnected = await this.isGraphConnected(reducedGraph);
|
|
108
|
+
if (!isConnected) {
|
|
109
|
+
// This node is a SPOF - find affected agents
|
|
110
|
+
const components = this.findConnectedComponents(reducedGraph);
|
|
111
|
+
const largestComponent = components.reduce((a, b) => (a.length > b.length ? a : b), []);
|
|
112
|
+
const disconnectedAgents = topology.nodes
|
|
113
|
+
.filter(n => n.id !== node.id && !largestComponent.includes(n.id))
|
|
114
|
+
.map(n => n.id);
|
|
115
|
+
const affectedAgents = disconnectedAgents.length;
|
|
116
|
+
const impactPercentage = (affectedAgents / totalNodes) * 100;
|
|
117
|
+
// Determine severity
|
|
118
|
+
const severity = this.determineSPOFSeverity(node, affectedAgents, totalNodes);
|
|
119
|
+
spofs.push({
|
|
120
|
+
agentId: node.id,
|
|
121
|
+
agentType: node.type,
|
|
122
|
+
severity,
|
|
123
|
+
affectedAgents,
|
|
124
|
+
impactPercentage,
|
|
125
|
+
disconnectedAgents,
|
|
126
|
+
recommendations: this.generateSPOFRecommendations(node, affectedAgents),
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Sort by severity and impact
|
|
131
|
+
return spofs.sort((a, b) => {
|
|
132
|
+
const severityOrder = { critical: 4, high: 3, medium: 2, low: 1 };
|
|
133
|
+
const severityDiff = severityOrder[b.severity] - severityOrder[a.severity];
|
|
134
|
+
if (severityDiff !== 0)
|
|
135
|
+
return severityDiff;
|
|
136
|
+
return b.affectedAgents - a.affectedAgents;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get topology optimization suggestions
|
|
141
|
+
*
|
|
142
|
+
* @param topology - Current fleet topology
|
|
143
|
+
* @param resilienceResult - Optional pre-computed resilience result
|
|
144
|
+
* @returns Array of optimization suggestions
|
|
145
|
+
*/
|
|
146
|
+
async suggestOptimizations(topology, resilienceResult) {
|
|
147
|
+
const result = resilienceResult || await this.analyzeResilience(topology);
|
|
148
|
+
const optimizations = [];
|
|
149
|
+
// Add redundant connections for critical SPOFs
|
|
150
|
+
for (const spof of result.criticalSpofs) {
|
|
151
|
+
const spofNode = topology.nodes.find(n => n.id === spof.agentId);
|
|
152
|
+
if (!spofNode)
|
|
153
|
+
continue;
|
|
154
|
+
// Find potential backup coordinators
|
|
155
|
+
const potentialBackups = topology.nodes.filter(n => n.id !== spof.agentId &&
|
|
156
|
+
n.role !== 'observer' &&
|
|
157
|
+
n.status === 'active' &&
|
|
158
|
+
!spof.disconnectedAgents.includes(n.id));
|
|
159
|
+
if (potentialBackups.length > 0) {
|
|
160
|
+
const backup = potentialBackups[0];
|
|
161
|
+
// Suggest adding direct connections from disconnected agents to backup
|
|
162
|
+
for (const disconnectedId of spof.disconnectedAgents.slice(0, 3)) {
|
|
163
|
+
optimizations.push({
|
|
164
|
+
type: 'add-edge',
|
|
165
|
+
description: `Add backup connection from ${disconnectedId} to ${backup.id} to prevent ${spof.agentId} from being a SPOF`,
|
|
166
|
+
expectedImprovement: 0.15,
|
|
167
|
+
effort: 'low',
|
|
168
|
+
priority: 'critical',
|
|
169
|
+
implementation: {
|
|
170
|
+
sourceId: disconnectedId,
|
|
171
|
+
targetId: backup.id,
|
|
172
|
+
connectionType: 'coordination',
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Suggest mesh connections for hierarchical topologies with low resilience
|
|
179
|
+
if (topology.mode === 'hierarchical' && result.score < 0.5) {
|
|
180
|
+
optimizations.push({
|
|
181
|
+
type: 'restructure',
|
|
182
|
+
description: 'Consider switching to hybrid topology for better resilience',
|
|
183
|
+
expectedImprovement: 0.25,
|
|
184
|
+
effort: 'high',
|
|
185
|
+
priority: 'high',
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
// Suggest adding backup coordinators if only one exists
|
|
189
|
+
const coordinators = topology.nodes.filter(n => n.role === 'coordinator');
|
|
190
|
+
if (coordinators.length === 1) {
|
|
191
|
+
optimizations.push({
|
|
192
|
+
type: 'add-node',
|
|
193
|
+
description: 'Add a backup coordinator to eliminate single coordinator SPOF',
|
|
194
|
+
expectedImprovement: 0.3,
|
|
195
|
+
effort: 'medium',
|
|
196
|
+
priority: 'critical',
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
// Sort by priority and expected improvement
|
|
200
|
+
return optimizations.sort((a, b) => {
|
|
201
|
+
const priorityOrder = { critical: 4, high: 3, medium: 2, low: 1 };
|
|
202
|
+
const priorityDiff = priorityOrder[b.priority] - priorityOrder[a.priority];
|
|
203
|
+
if (priorityDiff !== 0)
|
|
204
|
+
return priorityDiff;
|
|
205
|
+
return b.expectedImprovement - a.expectedImprovement;
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Convert fleet topology to min-cut graph format
|
|
210
|
+
*/
|
|
211
|
+
topologyToGraph(topology) {
|
|
212
|
+
const nodes = topology.nodes
|
|
213
|
+
.filter(n => n.status !== 'failed')
|
|
214
|
+
.map(n => ({
|
|
215
|
+
id: n.id,
|
|
216
|
+
label: `${n.type}:${n.role}`,
|
|
217
|
+
properties: {
|
|
218
|
+
type: n.type,
|
|
219
|
+
role: n.role,
|
|
220
|
+
status: n.status,
|
|
221
|
+
priority: n.priority,
|
|
222
|
+
},
|
|
223
|
+
}));
|
|
224
|
+
const nodeIds = new Set(nodes.map(n => n.id));
|
|
225
|
+
const edges = topology.edges
|
|
226
|
+
.filter(e => nodeIds.has(e.sourceId) &&
|
|
227
|
+
nodeIds.has(e.targetId) &&
|
|
228
|
+
this.config.connectionTypes.includes(e.connectionType))
|
|
229
|
+
.map(e => ({
|
|
230
|
+
source: e.sourceId,
|
|
231
|
+
target: e.targetId,
|
|
232
|
+
weight: e.weight,
|
|
233
|
+
}));
|
|
234
|
+
// For bidirectional edges, add reverse direction
|
|
235
|
+
const bidirectionalEdges = [];
|
|
236
|
+
for (const e of topology.edges) {
|
|
237
|
+
if (e.bidirectional &&
|
|
238
|
+
nodeIds.has(e.sourceId) &&
|
|
239
|
+
nodeIds.has(e.targetId)) {
|
|
240
|
+
bidirectionalEdges.push({
|
|
241
|
+
source: e.targetId,
|
|
242
|
+
target: e.sourceId,
|
|
243
|
+
weight: e.weight,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
nodes,
|
|
249
|
+
edges: [...edges, ...bidirectionalEdges],
|
|
250
|
+
directed: false, // Min-cut works on undirected graphs
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Remove a node from the graph
|
|
255
|
+
*/
|
|
256
|
+
removeNodeFromGraph(graph, nodeId) {
|
|
257
|
+
return {
|
|
258
|
+
nodes: graph.nodes.filter(n => n.id !== nodeId),
|
|
259
|
+
edges: graph.edges.filter(e => e.source !== nodeId && e.target !== nodeId),
|
|
260
|
+
directed: graph.directed,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Check if graph is connected using BFS
|
|
265
|
+
*/
|
|
266
|
+
async isGraphConnected(graph) {
|
|
267
|
+
if (graph.nodes.length === 0)
|
|
268
|
+
return true;
|
|
269
|
+
if (graph.nodes.length === 1)
|
|
270
|
+
return true;
|
|
271
|
+
// Build adjacency list
|
|
272
|
+
const adj = new Map();
|
|
273
|
+
for (const node of graph.nodes) {
|
|
274
|
+
adj.set(node.id, new Set());
|
|
275
|
+
}
|
|
276
|
+
for (const edge of graph.edges) {
|
|
277
|
+
adj.get(edge.source)?.add(edge.target);
|
|
278
|
+
adj.get(edge.target)?.add(edge.source);
|
|
279
|
+
}
|
|
280
|
+
// BFS from first node
|
|
281
|
+
const visited = new Set();
|
|
282
|
+
const queue = [graph.nodes[0].id];
|
|
283
|
+
visited.add(graph.nodes[0].id);
|
|
284
|
+
while (queue.length > 0) {
|
|
285
|
+
const current = queue.shift();
|
|
286
|
+
const neighbors = adj.get(current) || new Set();
|
|
287
|
+
for (const neighbor of neighbors) {
|
|
288
|
+
if (!visited.has(neighbor)) {
|
|
289
|
+
visited.add(neighbor);
|
|
290
|
+
queue.push(neighbor);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return visited.size === graph.nodes.length;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Find connected components in the graph
|
|
298
|
+
*/
|
|
299
|
+
findConnectedComponents(graph) {
|
|
300
|
+
const components = [];
|
|
301
|
+
const visited = new Set();
|
|
302
|
+
// Build adjacency list
|
|
303
|
+
const adj = new Map();
|
|
304
|
+
for (const node of graph.nodes) {
|
|
305
|
+
adj.set(node.id, new Set());
|
|
306
|
+
}
|
|
307
|
+
for (const edge of graph.edges) {
|
|
308
|
+
adj.get(edge.source)?.add(edge.target);
|
|
309
|
+
adj.get(edge.target)?.add(edge.source);
|
|
310
|
+
}
|
|
311
|
+
for (const node of graph.nodes) {
|
|
312
|
+
if (visited.has(node.id))
|
|
313
|
+
continue;
|
|
314
|
+
const component = [];
|
|
315
|
+
const queue = [node.id];
|
|
316
|
+
visited.add(node.id);
|
|
317
|
+
while (queue.length > 0) {
|
|
318
|
+
const current = queue.shift();
|
|
319
|
+
component.push(current);
|
|
320
|
+
const neighbors = adj.get(current) || new Set();
|
|
321
|
+
for (const neighbor of neighbors) {
|
|
322
|
+
if (!visited.has(neighbor)) {
|
|
323
|
+
visited.add(neighbor);
|
|
324
|
+
queue.push(neighbor);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
components.push(component);
|
|
329
|
+
}
|
|
330
|
+
return components;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Calculate resilience score (0-1)
|
|
334
|
+
*/
|
|
335
|
+
calculateResilienceScore(topology, spofs, minCutValue) {
|
|
336
|
+
const n = topology.nodes.length;
|
|
337
|
+
if (n === 0)
|
|
338
|
+
return 1;
|
|
339
|
+
if (n === 1)
|
|
340
|
+
return 1;
|
|
341
|
+
// Factors that contribute to resilience:
|
|
342
|
+
// 1. Min-cut value relative to node count (edge connectivity)
|
|
343
|
+
const edgeConnectivity = Math.min(minCutValue / n, 1);
|
|
344
|
+
// 2. Inverse of SPOF count
|
|
345
|
+
const criticalSpofs = spofs.filter(s => s.severity === 'critical').length;
|
|
346
|
+
const spofPenalty = Math.max(0, 1 - criticalSpofs * 0.2);
|
|
347
|
+
// 3. Average SPOF impact
|
|
348
|
+
const avgImpact = spofs.length > 0
|
|
349
|
+
? spofs.reduce((sum, s) => sum + s.impactPercentage, 0) / spofs.length / 100
|
|
350
|
+
: 0;
|
|
351
|
+
const impactScore = 1 - avgImpact;
|
|
352
|
+
// 4. Coordinator redundancy
|
|
353
|
+
const coordinators = topology.nodes.filter(n => n.role === 'coordinator');
|
|
354
|
+
const coordinatorRedundancy = Math.min(coordinators.length / 2, 1);
|
|
355
|
+
// Weighted average
|
|
356
|
+
const score = edgeConnectivity * 0.3 +
|
|
357
|
+
spofPenalty * 0.3 +
|
|
358
|
+
impactScore * 0.2 +
|
|
359
|
+
coordinatorRedundancy * 0.2;
|
|
360
|
+
return Math.max(0, Math.min(1, score));
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Calculate average path redundancy
|
|
364
|
+
*/
|
|
365
|
+
calculatePathRedundancy(topology) {
|
|
366
|
+
const n = topology.nodes.length;
|
|
367
|
+
if (n < 2)
|
|
368
|
+
return 1;
|
|
369
|
+
// Count edges per node (degree)
|
|
370
|
+
const degrees = new Map();
|
|
371
|
+
for (const node of topology.nodes) {
|
|
372
|
+
degrees.set(node.id, 0);
|
|
373
|
+
}
|
|
374
|
+
for (const edge of topology.edges) {
|
|
375
|
+
degrees.set(edge.sourceId, (degrees.get(edge.sourceId) || 0) + 1);
|
|
376
|
+
if (edge.bidirectional) {
|
|
377
|
+
degrees.set(edge.targetId, (degrees.get(edge.targetId) || 0) + 1);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
// Average degree
|
|
381
|
+
const totalDegree = Array.from(degrees.values()).reduce((a, b) => a + b, 0);
|
|
382
|
+
const avgDegree = totalDegree / n;
|
|
383
|
+
// Path redundancy approximation: avg degree / 2 (for undirected)
|
|
384
|
+
return avgDegree / 2;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Determine SPOF severity
|
|
388
|
+
*/
|
|
389
|
+
determineSPOFSeverity(node, affectedAgents, totalNodes) {
|
|
390
|
+
const impactRatio = affectedAgents / totalNodes;
|
|
391
|
+
// Coordinators have higher severity
|
|
392
|
+
const isCoordinator = node.role === 'coordinator';
|
|
393
|
+
const isCriticalPriority = node.priority === 'critical';
|
|
394
|
+
if (impactRatio > 0.5 || (isCoordinator && impactRatio > 0.3)) {
|
|
395
|
+
return 'critical';
|
|
396
|
+
}
|
|
397
|
+
if (impactRatio > 0.3 || (isCoordinator && impactRatio > 0.1)) {
|
|
398
|
+
return 'high';
|
|
399
|
+
}
|
|
400
|
+
if (impactRatio > 0.1 || isCriticalPriority) {
|
|
401
|
+
return 'medium';
|
|
402
|
+
}
|
|
403
|
+
return 'low';
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Generate recommendations for overall topology
|
|
407
|
+
*/
|
|
408
|
+
generateRecommendations(topology, spofs, minCutValue) {
|
|
409
|
+
const recommendations = [];
|
|
410
|
+
// Critical SPOF recommendations
|
|
411
|
+
const criticalSpofs = spofs.filter(s => s.severity === 'critical');
|
|
412
|
+
if (criticalSpofs.length > 0) {
|
|
413
|
+
recommendations.push(`CRITICAL: ${criticalSpofs.length} critical SPOF(s) detected. ` +
|
|
414
|
+
`Add redundant connections to mitigate: ${criticalSpofs.map(s => s.agentId).join(', ')}`);
|
|
415
|
+
}
|
|
416
|
+
// Low min-cut value
|
|
417
|
+
if (minCutValue < 2 && topology.nodes.length > 3) {
|
|
418
|
+
recommendations.push('Edge connectivity is low. Consider adding cross-connections between agent clusters.');
|
|
419
|
+
}
|
|
420
|
+
// Single coordinator
|
|
421
|
+
const coordinators = topology.nodes.filter(n => n.role === 'coordinator');
|
|
422
|
+
if (coordinators.length === 1) {
|
|
423
|
+
recommendations.push('Only one coordinator exists. Add a backup coordinator for fault tolerance.');
|
|
424
|
+
}
|
|
425
|
+
// Hierarchical topology with many agents
|
|
426
|
+
if (topology.mode === 'hierarchical' && topology.nodes.length > 20) {
|
|
427
|
+
recommendations.push('Hierarchical topology with >20 agents may have scalability issues. ' +
|
|
428
|
+
'Consider hybrid or mesh topology.');
|
|
429
|
+
}
|
|
430
|
+
// High number of workers per coordinator
|
|
431
|
+
const workers = topology.nodes.filter(n => n.role === 'worker');
|
|
432
|
+
if (coordinators.length > 0 && workers.length / coordinators.length > 15) {
|
|
433
|
+
recommendations.push(`High worker-to-coordinator ratio (${(workers.length / coordinators.length).toFixed(1)}:1). ` +
|
|
434
|
+
'Consider adding more coordinators.');
|
|
435
|
+
}
|
|
436
|
+
return recommendations;
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Generate recommendations for specific SPOF
|
|
440
|
+
*/
|
|
441
|
+
generateSPOFRecommendations(node, affectedAgents) {
|
|
442
|
+
const recommendations = [];
|
|
443
|
+
if (node.role === 'coordinator') {
|
|
444
|
+
recommendations.push('Add a backup coordinator that can take over if this one fails.');
|
|
445
|
+
recommendations.push('Implement leader election protocol for automatic failover.');
|
|
446
|
+
}
|
|
447
|
+
if (affectedAgents > 5) {
|
|
448
|
+
recommendations.push(`Add direct connections from affected agents to alternative coordinators.`);
|
|
449
|
+
}
|
|
450
|
+
recommendations.push(`Consider implementing heartbeat monitoring for ${node.id} with automatic recovery.`);
|
|
451
|
+
return recommendations;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Calculate topology grade (A-F)
|
|
455
|
+
*/
|
|
456
|
+
calculateGrade(score, criticalSpofs) {
|
|
457
|
+
if (criticalSpofs > 0) {
|
|
458
|
+
return criticalSpofs >= 3 ? 'F' : 'D';
|
|
459
|
+
}
|
|
460
|
+
if (score >= 0.9)
|
|
461
|
+
return 'A';
|
|
462
|
+
if (score >= 0.75)
|
|
463
|
+
return 'B';
|
|
464
|
+
if (score >= 0.6)
|
|
465
|
+
return 'C';
|
|
466
|
+
if (score >= 0.4)
|
|
467
|
+
return 'D';
|
|
468
|
+
return 'F';
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
exports.TopologyMinCutAnalyzer = TopologyMinCutAnalyzer;
|
|
472
|
+
//# sourceMappingURL=TopologyMinCutAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TopologyMinCutAnalyzer.js","sourceRoot":"","sources":["../../../src/fleet/topology/TopologyMinCutAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fleet Topology Module
|
|
3
|
+
*
|
|
4
|
+
* Provides fleet topology analysis using min-cut algorithms for:
|
|
5
|
+
* - Single Point of Failure (SPOF) detection
|
|
6
|
+
* - Resilience scoring
|
|
7
|
+
* - Topology optimization suggestions
|
|
8
|
+
* - Real-time SPOF monitoring
|
|
9
|
+
*/
|
|
10
|
+
export { TopologyMinCutAnalyzer } from './TopologyMinCutAnalyzer.js';
|
|
11
|
+
export { SPOFMonitor, SPOFMonitorConfig, DEFAULT_SPOF_MONITOR_CONFIG, SPOFMonitorEvents, } from './SPOFMonitor.js';
|
|
12
|
+
export { TopologyMode, TopologyNode, TopologyEdge, FleetTopology, SPOFResult, ResilienceResult, TopologyAnalysisConfig, DEFAULT_TOPOLOGY_ANALYSIS_CONFIG, TopologyOptimization, } from './types.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fleet/topology/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gCAAgC,EAChC,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Fleet Topology Module
|
|
4
|
+
*
|
|
5
|
+
* Provides fleet topology analysis using min-cut algorithms for:
|
|
6
|
+
* - Single Point of Failure (SPOF) detection
|
|
7
|
+
* - Resilience scoring
|
|
8
|
+
* - Topology optimization suggestions
|
|
9
|
+
* - Real-time SPOF monitoring
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DEFAULT_TOPOLOGY_ANALYSIS_CONFIG = exports.DEFAULT_SPOF_MONITOR_CONFIG = exports.SPOFMonitor = exports.TopologyMinCutAnalyzer = void 0;
|
|
13
|
+
var TopologyMinCutAnalyzer_js_1 = require("./TopologyMinCutAnalyzer.js");
|
|
14
|
+
Object.defineProperty(exports, "TopologyMinCutAnalyzer", { enumerable: true, get: function () { return TopologyMinCutAnalyzer_js_1.TopologyMinCutAnalyzer; } });
|
|
15
|
+
var SPOFMonitor_js_1 = require("./SPOFMonitor.js");
|
|
16
|
+
Object.defineProperty(exports, "SPOFMonitor", { enumerable: true, get: function () { return SPOFMonitor_js_1.SPOFMonitor; } });
|
|
17
|
+
Object.defineProperty(exports, "DEFAULT_SPOF_MONITOR_CONFIG", { enumerable: true, get: function () { return SPOFMonitor_js_1.DEFAULT_SPOF_MONITOR_CONFIG; } });
|
|
18
|
+
var types_js_1 = require("./types.js");
|
|
19
|
+
Object.defineProperty(exports, "DEFAULT_TOPOLOGY_ANALYSIS_CONFIG", { enumerable: true, get: function () { return types_js_1.DEFAULT_TOPOLOGY_ANALYSIS_CONFIG; } });
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fleet/topology/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA;AAC/B,mDAK0B;AAJxB,6GAAA,WAAW,OAAA;AAEX,6HAAA,2BAA2B,OAAA;AAG7B,uCAUoB;AAFlB,4HAAA,gCAAgC,OAAA"}
|