agentic-qe 1.0.5 → 1.2.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/.claude/agents/qe-coverage-analyzer.md +8 -0
- package/.claude/agents/qe-flaky-test-hunter.md +9 -1
- package/.claude/agents/qe-quality-analyzer.md +405 -0
- package/.claude/agents/qe-test-generator.md +7 -0
- package/.claude/agents/reasoning/agent.md +816 -0
- package/.claude/agents/reasoning/goal-planner.md +73 -0
- package/.claude/settings.json +21 -20
- package/.claude/skills/README.md +124 -0
- package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
- package/.claude/skills/agentdb-learning/SKILL.md +545 -0
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
- package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
- package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
- package/.claude/skills/agentic-quality-engineering/SKILL.md +604 -0
- package/.claude/skills/api-testing-patterns/SKILL.md +686 -0
- package/.claude/skills/bug-reporting-excellence/SKILL.md +632 -0
- package/.claude/skills/code-review-quality/SKILL.md +683 -0
- package/.claude/skills/consultancy-practices/SKILL.md +540 -0
- package/.claude/skills/context-driven-testing/SKILL.md +466 -0
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +676 -0
- package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
- package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
- package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
- package/.claude/skills/github-code-review/SKILL.md +1140 -0
- package/.claude/skills/github-multi-repo/SKILL.md +874 -0
- package/.claude/skills/github-project-management/SKILL.md +1277 -0
- package/.claude/skills/github-release-management/SKILL.md +1081 -0
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
- package/.claude/skills/holistic-testing-pact/SKILL.md +225 -0
- package/.claude/skills/hooks-automation/SKILL.md +1201 -0
- package/.claude/skills/pair-programming/SKILL.md +1202 -0
- package/.claude/skills/performance-analysis/SKILL.md +563 -0
- package/.claude/skills/performance-testing/SKILL.md +662 -0
- package/.claude/skills/quality-metrics/SKILL.md +592 -0
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
- package/.claude/skills/refactoring-patterns/SKILL.md +778 -0
- package/.claude/skills/risk-based-testing/SKILL.md +721 -0
- package/.claude/skills/security-testing/SKILL.md +651 -0
- package/.claude/skills/skill-builder/SKILL.md +910 -0
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
- package/.claude/skills/stream-chain/SKILL.md +563 -0
- package/.claude/skills/swarm-advanced/SKILL.md +973 -0
- package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
- package/.claude/skills/tdd-london-chicago/SKILL.md +567 -0
- package/.claude/skills/technical-writing/SKILL.md +235 -0
- package/.claude/skills/test-automation-strategy/SKILL.md +842 -0
- package/.claude/skills/verification-quality/SKILL.md +649 -0
- package/.claude/skills/xp-practices/SKILL.md +671 -0
- package/.claude/statusline-command.sh +176 -0
- package/CHANGELOG.md +645 -1
- package/CONTRIBUTING.md +51 -0
- package/README.md +758 -162
- package/bin/aqe +90 -938
- package/config/improvement-loop.config.ts +323 -0
- package/config/neural-agent.config.ts +197 -0
- package/dist/adapters/MemoryStoreAdapter.d.ts +16 -16
- package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
- package/dist/adapters/MemoryStoreAdapter.js +22 -16
- package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
- package/dist/agents/BaseAgent.d.ts +69 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +382 -1
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +69 -3
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +418 -51
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.js +13 -13
- package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +76 -4
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +375 -13
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +2 -2
- package/dist/agents/FleetCommanderAgent.js.map +1 -1
- package/dist/agents/LearningAgent.d.ts +84 -0
- package/dist/agents/LearningAgent.d.ts.map +1 -0
- package/dist/agents/LearningAgent.js +197 -0
- package/dist/agents/LearningAgent.js.map +1 -0
- package/dist/agents/NeuralAgentExtension.d.ts +117 -0
- package/dist/agents/NeuralAgentExtension.d.ts.map +1 -0
- package/dist/agents/NeuralAgentExtension.js +288 -0
- package/dist/agents/NeuralAgentExtension.js.map +1 -0
- package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
- package/dist/agents/PerformanceTesterAgent.js +4 -3
- package/dist/agents/PerformanceTesterAgent.js.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.js +7 -7
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js +2 -2
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.js +5 -5
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.js +7 -7
- package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.js +1 -1
- package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
- package/dist/agents/SecurityScannerAgent.js +6 -6
- package/dist/agents/SecurityScannerAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +1 -3
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +53 -2
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +372 -31
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/mixins/NeuralCapableMixin.d.ts +130 -0
- package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +1 -0
- package/dist/agents/mixins/NeuralCapableMixin.js +358 -0
- package/dist/agents/mixins/NeuralCapableMixin.js.map +1 -0
- package/dist/agents/mixins/QUICCapableMixin.d.ts +34 -0
- package/dist/agents/mixins/QUICCapableMixin.d.ts.map +1 -0
- package/dist/agents/mixins/QUICCapableMixin.js +346 -0
- package/dist/agents/mixins/QUICCapableMixin.js.map +1 -0
- package/dist/cli/commands/agent/index.d.ts +5 -0
- package/dist/cli/commands/agent/index.d.ts.map +1 -1
- package/dist/cli/commands/agent/index.js +11 -6
- package/dist/cli/commands/agent/index.js.map +1 -1
- package/dist/cli/commands/agent/kill.d.ts +13 -0
- package/dist/cli/commands/agent/kill.d.ts.map +1 -0
- package/dist/cli/commands/agent/kill.js +65 -0
- package/dist/cli/commands/agent/kill.js.map +1 -0
- package/dist/cli/commands/agent/list.d.ts +19 -0
- package/dist/cli/commands/agent/list.d.ts.map +1 -0
- package/dist/cli/commands/agent/list.js +92 -0
- package/dist/cli/commands/agent/list.js.map +1 -0
- package/dist/cli/commands/agent/logs.d.ts +14 -0
- package/dist/cli/commands/agent/logs.d.ts.map +1 -0
- package/dist/cli/commands/agent/logs.js +77 -0
- package/dist/cli/commands/agent/logs.js.map +1 -0
- package/dist/cli/commands/agent/metrics.d.ts +21 -0
- package/dist/cli/commands/agent/metrics.d.ts.map +1 -0
- package/dist/cli/commands/agent/metrics.js +87 -0
- package/dist/cli/commands/agent/metrics.js.map +1 -0
- package/dist/cli/commands/agent/spawn.d.ts +28 -0
- package/dist/cli/commands/agent/spawn.d.ts.map +1 -0
- package/dist/cli/commands/agent/spawn.js +83 -0
- package/dist/cli/commands/agent/spawn.js.map +1 -0
- package/dist/cli/commands/improve/index.d.ts +70 -0
- package/dist/cli/commands/improve/index.d.ts.map +1 -0
- package/dist/cli/commands/improve/index.js +530 -0
- package/dist/cli/commands/improve/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +57 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +1127 -42
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learn/index.d.ts +68 -0
- package/dist/cli/commands/learn/index.d.ts.map +1 -0
- package/dist/cli/commands/learn/index.js +431 -0
- package/dist/cli/commands/learn/index.js.map +1 -0
- package/dist/cli/commands/patterns/index.d.ts +75 -0
- package/dist/cli/commands/patterns/index.d.ts.map +1 -0
- package/dist/cli/commands/patterns/index.js +502 -0
- package/dist/cli/commands/patterns/index.js.map +1 -0
- package/dist/cli/commands/skills/index.d.ts +51 -0
- package/dist/cli/commands/skills/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/index.js +364 -0
- package/dist/cli/commands/skills/index.js.map +1 -0
- package/dist/cli/index.js +458 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/core/EventBus.d.ts +38 -0
- package/dist/core/EventBus.d.ts.map +1 -1
- package/dist/core/EventBus.js +176 -31
- package/dist/core/EventBus.js.map +1 -1
- package/dist/core/FleetManager.d.ts +35 -1
- package/dist/core/FleetManager.d.ts.map +1 -1
- package/dist/core/FleetManager.js +121 -45
- package/dist/core/FleetManager.js.map +1 -1
- package/dist/core/MemoryManager.d.ts +19 -1
- package/dist/core/MemoryManager.d.ts.map +1 -1
- package/dist/core/MemoryManager.js +25 -1
- package/dist/core/MemoryManager.js.map +1 -1
- package/dist/core/embeddings/EmbeddingCache.d.ts +134 -0
- package/dist/core/embeddings/EmbeddingCache.d.ts.map +1 -0
- package/dist/core/embeddings/EmbeddingCache.js +239 -0
- package/dist/core/embeddings/EmbeddingCache.js.map +1 -0
- package/dist/core/embeddings/EmbeddingGenerator.d.ts +224 -0
- package/dist/core/embeddings/EmbeddingGenerator.d.ts.map +1 -0
- package/dist/core/embeddings/EmbeddingGenerator.js +459 -0
- package/dist/core/embeddings/EmbeddingGenerator.js.map +1 -0
- package/dist/core/embeddings/index.d.ts +15 -0
- package/dist/core/embeddings/index.d.ts.map +1 -0
- package/dist/core/embeddings/index.js +22 -0
- package/dist/core/embeddings/index.js.map +1 -0
- package/dist/core/memory/AgentDBIntegration.d.ts +35 -0
- package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -0
- package/dist/core/memory/AgentDBIntegration.js +75 -0
- package/dist/core/memory/AgentDBIntegration.js.map +1 -0
- package/dist/core/memory/AgentDBManager.d.ts +200 -0
- package/dist/core/memory/AgentDBManager.d.ts.map +1 -0
- package/dist/core/memory/AgentDBManager.js +263 -0
- package/dist/core/memory/AgentDBManager.js.map +1 -0
- package/dist/core/memory/AgentDBService.d.ts +160 -0
- package/dist/core/memory/AgentDBService.d.ts.map +1 -0
- package/dist/core/memory/AgentDBService.js +450 -0
- package/dist/core/memory/AgentDBService.js.map +1 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts +51 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -0
- package/dist/core/memory/RealAgentDBAdapter.js +230 -0
- package/dist/core/memory/RealAgentDBAdapter.js.map +1 -0
- package/dist/core/memory/ReasoningBankAdapter.d.ts +58 -0
- package/dist/core/memory/ReasoningBankAdapter.d.ts.map +1 -0
- package/dist/core/memory/ReasoningBankAdapter.js +80 -0
- package/dist/core/memory/ReasoningBankAdapter.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +79 -2
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +243 -52
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts +4 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +9 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/neural/NeuralTrainer.d.ts +137 -0
- package/dist/core/neural/NeuralTrainer.d.ts.map +1 -0
- package/dist/core/neural/NeuralTrainer.js +543 -0
- package/dist/core/neural/NeuralTrainer.js.map +1 -0
- package/dist/core/neural/index.d.ts +8 -0
- package/dist/core/neural/index.d.ts.map +1 -0
- package/dist/core/neural/index.js +24 -0
- package/dist/core/neural/index.js.map +1 -0
- package/dist/core/neural/types.d.ts +216 -0
- package/dist/core/neural/types.d.ts.map +1 -0
- package/dist/core/neural/types.js +8 -0
- package/dist/core/neural/types.js.map +1 -0
- package/dist/core/security/CertificateValidator.d.ts +130 -0
- package/dist/core/security/CertificateValidator.d.ts.map +1 -0
- package/dist/core/security/CertificateValidator.js +376 -0
- package/dist/core/security/CertificateValidator.js.map +1 -0
- package/dist/core/transport/QUICTransport.d.ts +62 -0
- package/dist/core/transport/QUICTransport.d.ts.map +1 -0
- package/dist/core/transport/QUICTransport.js +381 -0
- package/dist/core/transport/QUICTransport.js.map +1 -0
- package/dist/core/transport/SecureQUICTransport.d.ts +71 -0
- package/dist/core/transport/SecureQUICTransport.d.ts.map +1 -0
- package/dist/core/transport/SecureQUICTransport.js +253 -0
- package/dist/core/transport/SecureQUICTransport.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/learning/AdvancedFeatureExtractor.d.ts +123 -0
- package/dist/learning/AdvancedFeatureExtractor.d.ts.map +1 -0
- package/dist/learning/AdvancedFeatureExtractor.js +423 -0
- package/dist/learning/AdvancedFeatureExtractor.js.map +1 -0
- package/dist/learning/FlakyFixRecommendations.d.ts +40 -0
- package/dist/learning/FlakyFixRecommendations.d.ts.map +1 -0
- package/dist/learning/FlakyFixRecommendations.js +247 -0
- package/dist/learning/FlakyFixRecommendations.js.map +1 -0
- package/dist/learning/FlakyPredictionModel.d.ts +67 -0
- package/dist/learning/FlakyPredictionModel.d.ts.map +1 -0
- package/dist/learning/FlakyPredictionModel.js +336 -0
- package/dist/learning/FlakyPredictionModel.js.map +1 -0
- package/dist/learning/FlakyTestDetector.d.ts +55 -0
- package/dist/learning/FlakyTestDetector.d.ts.map +1 -0
- package/dist/learning/FlakyTestDetector.js +237 -0
- package/dist/learning/FlakyTestDetector.js.map +1 -0
- package/dist/learning/ImprovementLoop.d.ts +133 -0
- package/dist/learning/ImprovementLoop.d.ts.map +1 -0
- package/dist/learning/ImprovementLoop.js +412 -0
- package/dist/learning/ImprovementLoop.js.map +1 -0
- package/dist/learning/ImprovementWorker.d.ts +83 -0
- package/dist/learning/ImprovementWorker.d.ts.map +1 -0
- package/dist/learning/ImprovementWorker.js +164 -0
- package/dist/learning/ImprovementWorker.js.map +1 -0
- package/dist/learning/LearningEngine.d.ts +144 -0
- package/dist/learning/LearningEngine.d.ts.map +1 -0
- package/dist/learning/LearningEngine.js +531 -0
- package/dist/learning/LearningEngine.js.map +1 -0
- package/dist/learning/NeuralPatternMatcher.d.ts +184 -0
- package/dist/learning/NeuralPatternMatcher.d.ts.map +1 -0
- package/dist/learning/NeuralPatternMatcher.js +702 -0
- package/dist/learning/NeuralPatternMatcher.js.map +1 -0
- package/dist/learning/NeuralTrainer.d.ts +209 -0
- package/dist/learning/NeuralTrainer.d.ts.map +1 -0
- package/dist/learning/NeuralTrainer.js +478 -0
- package/dist/learning/NeuralTrainer.js.map +1 -0
- package/dist/learning/PerformanceTracker.d.ts +118 -0
- package/dist/learning/PerformanceTracker.d.ts.map +1 -0
- package/dist/learning/PerformanceTracker.js +376 -0
- package/dist/learning/PerformanceTracker.js.map +1 -0
- package/dist/learning/StatisticalAnalysis.d.ts +47 -0
- package/dist/learning/StatisticalAnalysis.d.ts.map +1 -0
- package/dist/learning/StatisticalAnalysis.js +170 -0
- package/dist/learning/StatisticalAnalysis.js.map +1 -0
- package/dist/learning/SwarmIntegration.d.ts +107 -0
- package/dist/learning/SwarmIntegration.d.ts.map +1 -0
- package/dist/learning/SwarmIntegration.js +191 -0
- package/dist/learning/SwarmIntegration.js.map +1 -0
- package/dist/learning/index.d.ts +16 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +32 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/types.d.ts +289 -0
- package/dist/learning/types.d.ts.map +1 -0
- package/dist/learning/types.js +25 -0
- package/dist/learning/types.js.map +1 -0
- package/dist/mcp/MCPToolRegistry.d.ts +34 -0
- package/dist/mcp/MCPToolRegistry.d.ts.map +1 -0
- package/dist/mcp/MCPToolRegistry.js +48 -0
- package/dist/mcp/MCPToolRegistry.js.map +1 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts +175 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.js +693 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -4
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +94 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +7 -1
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/mcp/tools.d.ts +15 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +17 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/reasoning/CodeSignatureGenerator.d.ts +98 -0
- package/dist/reasoning/CodeSignatureGenerator.d.ts.map +1 -0
- package/dist/reasoning/CodeSignatureGenerator.js +427 -0
- package/dist/reasoning/CodeSignatureGenerator.js.map +1 -0
- package/dist/reasoning/PatternClassifier.d.ts +98 -0
- package/dist/reasoning/PatternClassifier.d.ts.map +1 -0
- package/dist/reasoning/PatternClassifier.js +345 -0
- package/dist/reasoning/PatternClassifier.js.map +1 -0
- package/dist/reasoning/PatternExtractor.d.ts +131 -0
- package/dist/reasoning/PatternExtractor.d.ts.map +1 -0
- package/dist/reasoning/PatternExtractor.js +539 -0
- package/dist/reasoning/PatternExtractor.js.map +1 -0
- package/dist/reasoning/PatternMemoryIntegration.d.ts +102 -0
- package/dist/reasoning/PatternMemoryIntegration.d.ts.map +1 -0
- package/dist/reasoning/PatternMemoryIntegration.js +336 -0
- package/dist/reasoning/PatternMemoryIntegration.js.map +1 -0
- package/dist/reasoning/QEReasoningBank.d.ts +121 -0
- package/dist/reasoning/QEReasoningBank.d.ts.map +1 -0
- package/dist/reasoning/QEReasoningBank.js +235 -0
- package/dist/reasoning/QEReasoningBank.js.map +1 -0
- package/dist/reasoning/TestTemplateCreator.d.ts +95 -0
- package/dist/reasoning/TestTemplateCreator.d.ts.map +1 -0
- package/dist/reasoning/TestTemplateCreator.js +535 -0
- package/dist/reasoning/TestTemplateCreator.js.map +1 -0
- package/dist/reasoning/index.d.ts +10 -0
- package/dist/reasoning/index.d.ts.map +1 -0
- package/dist/reasoning/index.js +31 -0
- package/dist/reasoning/index.js.map +1 -0
- package/dist/reasoning/types.d.ts +717 -0
- package/dist/reasoning/types.d.ts.map +1 -0
- package/dist/reasoning/types.js +57 -0
- package/dist/reasoning/types.js.map +1 -0
- package/dist/transport/QUICTransport.d.ts +340 -0
- package/dist/transport/QUICTransport.d.ts.map +1 -0
- package/dist/transport/QUICTransport.js +814 -0
- package/dist/transport/QUICTransport.js.map +1 -0
- package/dist/transport/UDPTransport.d.ts +348 -0
- package/dist/transport/UDPTransport.d.ts.map +1 -0
- package/dist/transport/UDPTransport.js +820 -0
- package/dist/transport/UDPTransport.js.map +1 -0
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/index.d.ts +41 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/pattern.types.d.ts +364 -0
- package/dist/types/pattern.types.d.ts.map +1 -0
- package/dist/types/pattern.types.js +60 -0
- package/dist/types/pattern.types.js.map +1 -0
- package/dist/types/quic.d.ts +339 -0
- package/dist/types/quic.d.ts.map +1 -0
- package/dist/types/quic.js +48 -0
- package/dist/types/quic.js.map +1 -0
- package/dist/utils/Config.js +1 -1
- package/dist/utils/Config.js.map +1 -1
- package/dist/utils/Database.d.ts +14 -0
- package/dist/utils/Database.d.ts.map +1 -1
- package/dist/utils/Database.js +51 -4
- package/dist/utils/Database.js.map +1 -1
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +111 -26
- package/dist/utils/Logger.js.map +1 -1
- package/package.json +54 -9
package/dist/core/EventBus.js
CHANGED
|
@@ -11,11 +11,35 @@ const events_1 = require("events");
|
|
|
11
11
|
const uuid_1 = require("uuid");
|
|
12
12
|
const Logger_1 = require("../utils/Logger");
|
|
13
13
|
class EventBus extends events_1.EventEmitter {
|
|
14
|
+
/**
|
|
15
|
+
* Get singleton instance
|
|
16
|
+
*/
|
|
17
|
+
static getInstance() {
|
|
18
|
+
if (!EventBus.instance) {
|
|
19
|
+
EventBus.instance = new EventBus();
|
|
20
|
+
}
|
|
21
|
+
return EventBus.instance;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Reset instance (for testing)
|
|
25
|
+
*/
|
|
26
|
+
static resetInstance() {
|
|
27
|
+
if (EventBus.instance) {
|
|
28
|
+
EventBus.instance.removeAllListeners();
|
|
29
|
+
EventBus.instance.customListeners.clear();
|
|
30
|
+
EventBus.instance.listenerOptions.clear();
|
|
31
|
+
// Note: WeakMap doesn't have clear() method, but will be garbage collected
|
|
32
|
+
EventBus.instance = null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
14
35
|
constructor() {
|
|
15
36
|
super();
|
|
16
37
|
this.isInitialized = false;
|
|
17
38
|
this.logger = Logger_1.Logger.getInstance();
|
|
18
39
|
this.events = new Map();
|
|
40
|
+
this.customListeners = new Map();
|
|
41
|
+
this.listenerRefs = new WeakMap();
|
|
42
|
+
this.listenerOptions = new Map();
|
|
19
43
|
this.setMaxListeners(1000); // Support many agents
|
|
20
44
|
}
|
|
21
45
|
/**
|
|
@@ -31,6 +55,122 @@ class EventBus extends events_1.EventEmitter {
|
|
|
31
55
|
this.isInitialized = true;
|
|
32
56
|
this.logger.info('EventBus initialized successfully');
|
|
33
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Close the event bus and cleanup resources
|
|
60
|
+
*/
|
|
61
|
+
async close() {
|
|
62
|
+
if (!this.isInitialized) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.logger.info('Closing EventBus');
|
|
66
|
+
// Remove all listeners
|
|
67
|
+
this.removeAllListeners();
|
|
68
|
+
// Clear all custom listeners and maps
|
|
69
|
+
this.customListeners.clear();
|
|
70
|
+
this.listenerOptions.clear();
|
|
71
|
+
// Note: WeakMap entries will be garbage collected automatically
|
|
72
|
+
// Clear events map
|
|
73
|
+
this.events.clear();
|
|
74
|
+
this.isInitialized = false;
|
|
75
|
+
this.logger.info('EventBus closed successfully');
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Subscribe to an event with automatic cleanup
|
|
79
|
+
* Returns an unsubscribe function for memory leak prevention
|
|
80
|
+
*/
|
|
81
|
+
subscribe(event, handler, options) {
|
|
82
|
+
if (!this.customListeners.has(event)) {
|
|
83
|
+
this.customListeners.set(event, new Set());
|
|
84
|
+
}
|
|
85
|
+
this.customListeners.get(event).add(handler);
|
|
86
|
+
this.listenerRefs.set(handler, event);
|
|
87
|
+
// Create wrapper function if options are provided
|
|
88
|
+
let wrappedHandler = handler;
|
|
89
|
+
if (options) {
|
|
90
|
+
this.listenerOptions.set(handler, options);
|
|
91
|
+
wrappedHandler = (data) => {
|
|
92
|
+
// Apply filter
|
|
93
|
+
if (options.filter && !options.filter(data)) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// Apply transformation
|
|
97
|
+
let processedData = data;
|
|
98
|
+
if (options.transform) {
|
|
99
|
+
processedData = options.transform(data);
|
|
100
|
+
}
|
|
101
|
+
handler(processedData);
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
// Register with EventEmitter
|
|
105
|
+
this.on(event, wrappedHandler);
|
|
106
|
+
// Return cleanup function
|
|
107
|
+
return () => this.unsubscribe(event, handler);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Unsubscribe from an event with proper cleanup
|
|
111
|
+
*/
|
|
112
|
+
unsubscribe(event, handler) {
|
|
113
|
+
const handlers = this.customListeners.get(event);
|
|
114
|
+
if (handlers) {
|
|
115
|
+
handlers.delete(handler);
|
|
116
|
+
// Clear empty event sets to prevent accumulation
|
|
117
|
+
if (handlers.size === 0) {
|
|
118
|
+
this.customListeners.delete(event);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Clean up WeakMap reference (will be garbage collected)
|
|
122
|
+
this.listenerRefs.delete(handler);
|
|
123
|
+
// Clean up options
|
|
124
|
+
this.listenerOptions.delete(handler);
|
|
125
|
+
// Remove from EventEmitter
|
|
126
|
+
this.off(event, handler);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Override emit to support wildcard listeners
|
|
130
|
+
*/
|
|
131
|
+
emit(event, data) {
|
|
132
|
+
// Handle wildcard listeners (but not for wildcard events themselves)
|
|
133
|
+
const wildcardPattern = event.split(':')[0] + ':*';
|
|
134
|
+
const allPattern = '*';
|
|
135
|
+
// Only emit wildcard patterns if this is not already a wildcard event
|
|
136
|
+
if (event !== '*' && event !== wildcardPattern) {
|
|
137
|
+
// Emit wildcard patterns first
|
|
138
|
+
if (wildcardPattern !== event + ':*') {
|
|
139
|
+
super.emit(wildcardPattern, data);
|
|
140
|
+
}
|
|
141
|
+
super.emit(allPattern, data);
|
|
142
|
+
}
|
|
143
|
+
// Call parent emit
|
|
144
|
+
return super.emit(event, data);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Async emit that waits for all listeners to complete
|
|
148
|
+
*/
|
|
149
|
+
async emitAsync(event, data) {
|
|
150
|
+
const listeners = this.listeners(event);
|
|
151
|
+
const promises = [];
|
|
152
|
+
const logger = this.logger;
|
|
153
|
+
for (const listener of listeners) {
|
|
154
|
+
try {
|
|
155
|
+
const result = listener(data);
|
|
156
|
+
if (result instanceof Promise) {
|
|
157
|
+
promises.push(result.catch(error => {
|
|
158
|
+
if (logger) {
|
|
159
|
+
logger.error(`Async listener error for ${event}:`, error);
|
|
160
|
+
}
|
|
161
|
+
this.emit('error', { error, event, data });
|
|
162
|
+
}));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
if (logger) {
|
|
167
|
+
logger.error(`Error in async listener for ${event}:`, error);
|
|
168
|
+
}
|
|
169
|
+
this.emit('error', { error, event, data });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
await Promise.all(promises);
|
|
173
|
+
}
|
|
34
174
|
/**
|
|
35
175
|
* Emit a fleet event
|
|
36
176
|
*/
|
|
@@ -46,19 +186,23 @@ class EventBus extends events_1.EventEmitter {
|
|
|
46
186
|
};
|
|
47
187
|
// Store event
|
|
48
188
|
this.events.set(event.id, event);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
189
|
+
const eventData = {
|
|
190
|
+
eventId: event.id,
|
|
191
|
+
source,
|
|
192
|
+
target,
|
|
193
|
+
data,
|
|
194
|
+
timestamp: event.timestamp
|
|
195
|
+
};
|
|
196
|
+
// Emit to each listener individually with error handling
|
|
197
|
+
const listeners = this.listeners(type);
|
|
198
|
+
for (const listener of listeners) {
|
|
199
|
+
try {
|
|
200
|
+
listener(eventData);
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
// Log listener errors but continue with other listeners
|
|
204
|
+
this.logger.error(`Error in event listener for ${type}:`, error);
|
|
205
|
+
}
|
|
62
206
|
}
|
|
63
207
|
// Log the event
|
|
64
208
|
this.logger.debug(`Event emitted: ${type} from ${source}`, {
|
|
@@ -86,35 +230,36 @@ class EventBus extends events_1.EventEmitter {
|
|
|
86
230
|
this.logger.info('Fleet stopped', eventData.data);
|
|
87
231
|
});
|
|
88
232
|
// Agent lifecycle events
|
|
89
|
-
this.on('agent:spawned', (
|
|
90
|
-
this.logger.info(`Agent spawned: ${data.agentId} (${data.type})`);
|
|
233
|
+
this.on('agent:spawned', (eventData) => {
|
|
234
|
+
this.logger.info(`Agent spawned: ${eventData.data.agentId} (${eventData.data.type})`);
|
|
91
235
|
});
|
|
92
|
-
this.on('agent:started', (
|
|
93
|
-
this.logger.info(`Agent started: ${data.agentId}`);
|
|
236
|
+
this.on('agent:started', (eventData) => {
|
|
237
|
+
this.logger.info(`Agent started: ${eventData.data.agentId}`);
|
|
94
238
|
});
|
|
95
|
-
this.on('agent:stopped', (
|
|
96
|
-
this.logger.info(`Agent stopped: ${data.agentId}`);
|
|
239
|
+
this.on('agent:stopped', (eventData) => {
|
|
240
|
+
this.logger.info(`Agent stopped: ${eventData.data.agentId}`);
|
|
97
241
|
});
|
|
98
|
-
this.on('agent:error', (
|
|
99
|
-
this.logger.error(`Agent error: ${data.agentId}`, data.error);
|
|
242
|
+
this.on('agent:error', (eventData) => {
|
|
243
|
+
this.logger.error(`Agent error: ${eventData.data.agentId}`, eventData.data.error);
|
|
100
244
|
});
|
|
101
245
|
// Task lifecycle events
|
|
102
|
-
this.on('task:submitted', (
|
|
103
|
-
this.logger.info(`Task submitted: ${data.taskId}`);
|
|
246
|
+
this.on('task:submitted', (eventData) => {
|
|
247
|
+
this.logger.info(`Task submitted: ${eventData.data.taskId}`);
|
|
104
248
|
});
|
|
105
|
-
this.on('task:assigned', (
|
|
106
|
-
this.logger.info(`Task assigned: ${data.taskId} -> ${data.agentId}`);
|
|
249
|
+
this.on('task:assigned', (eventData) => {
|
|
250
|
+
this.logger.info(`Task assigned: ${eventData.data.taskId} -> ${eventData.data.agentId}`);
|
|
107
251
|
});
|
|
108
|
-
this.on('task:started', (
|
|
109
|
-
this.logger.info(`Task started: ${data.taskId} by ${data.agentId}`);
|
|
252
|
+
this.on('task:started', (eventData) => {
|
|
253
|
+
this.logger.info(`Task started: ${eventData.data.taskId} by ${eventData.data.agentId}`);
|
|
110
254
|
});
|
|
111
|
-
this.on('task:completed', (
|
|
112
|
-
this.logger.info(`Task completed: ${data.taskId} by ${data.agentId} in ${data.executionTime}ms`);
|
|
255
|
+
this.on('task:completed', (eventData) => {
|
|
256
|
+
this.logger.info(`Task completed: ${eventData.data.taskId} by ${eventData.data.agentId} in ${eventData.data.executionTime}ms`);
|
|
113
257
|
});
|
|
114
|
-
this.on('task:failed', (
|
|
115
|
-
this.logger.error(`Task failed: ${data.taskId} by ${data.agentId}`, data.error);
|
|
258
|
+
this.on('task:failed', (eventData) => {
|
|
259
|
+
this.logger.error(`Task failed: ${eventData.data.taskId} by ${eventData.data.agentId}`, eventData.data.error);
|
|
116
260
|
});
|
|
117
261
|
}
|
|
118
262
|
}
|
|
119
263
|
exports.EventBus = EventBus;
|
|
264
|
+
EventBus.instance = null;
|
|
120
265
|
//# sourceMappingURL=EventBus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventBus.js","sourceRoot":"","sources":["../../src/core/EventBus.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAAsC;AACtC,+BAAoC;AACpC,4CAAyC;
|
|
1
|
+
{"version":3,"file":"EventBus.js","sourceRoot":"","sources":["../../src/core/EventBus.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,18 @@
|
|
|
17
17
|
* ]
|
|
18
18
|
* };
|
|
19
19
|
*
|
|
20
|
+
* // Production usage (dependencies created automatically)
|
|
20
21
|
* const fleet = new FleetManager(config);
|
|
21
22
|
* await fleet.initialize();
|
|
22
23
|
* await fleet.start();
|
|
23
24
|
*
|
|
25
|
+
* // Test usage with dependency injection
|
|
26
|
+
* const testFleet = new FleetManager(config, {
|
|
27
|
+
* database: mockDatabase,
|
|
28
|
+
* eventBus: mockEventBus,
|
|
29
|
+
* logger: mockLogger
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
24
32
|
* // Submit tasks
|
|
25
33
|
* const task = new Task('test-generation', 'Generate API tests', {
|
|
26
34
|
* targetFiles: ['./src/api/*.ts']
|
|
@@ -37,6 +45,9 @@
|
|
|
37
45
|
import { EventEmitter } from 'events';
|
|
38
46
|
import { Agent } from './Agent';
|
|
39
47
|
import { Task } from './Task';
|
|
48
|
+
import { EventBus } from './EventBus';
|
|
49
|
+
import { Database } from '../utils/Database';
|
|
50
|
+
import { Logger } from '../utils/Logger';
|
|
40
51
|
import { FleetConfig } from '../utils/Config';
|
|
41
52
|
/**
|
|
42
53
|
* Status information about the fleet
|
|
@@ -61,6 +72,18 @@ export interface FleetStatus {
|
|
|
61
72
|
/** Current operational status of the fleet */
|
|
62
73
|
status: 'initializing' | 'running' | 'paused' | 'stopping' | 'stopped';
|
|
63
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Optional dependencies that can be injected for testing
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
79
|
+
export interface FleetManagerDependencies {
|
|
80
|
+
/** Database instance (optional, creates new instance if not provided) */
|
|
81
|
+
database?: Database;
|
|
82
|
+
/** EventBus instance (optional, creates new instance if not provided) */
|
|
83
|
+
eventBus?: EventBus;
|
|
84
|
+
/** Logger instance (optional, uses Logger.getInstance() if not provided) */
|
|
85
|
+
logger?: Logger;
|
|
86
|
+
}
|
|
64
87
|
export declare class FleetManager extends EventEmitter {
|
|
65
88
|
private readonly id;
|
|
66
89
|
private readonly agents;
|
|
@@ -69,9 +92,15 @@ export declare class FleetManager extends EventEmitter {
|
|
|
69
92
|
private readonly database;
|
|
70
93
|
private readonly logger;
|
|
71
94
|
private readonly config;
|
|
95
|
+
private readonly memoryManager;
|
|
72
96
|
private startTime;
|
|
73
97
|
private status;
|
|
74
|
-
constructor(config: FleetConfig);
|
|
98
|
+
constructor(config: FleetConfig, dependencies?: FleetManagerDependencies);
|
|
99
|
+
/**
|
|
100
|
+
* Create fallback console-based logger for test environment
|
|
101
|
+
* @private
|
|
102
|
+
*/
|
|
103
|
+
private createFallbackLogger;
|
|
75
104
|
/**
|
|
76
105
|
* Initialize the fleet manager and its components
|
|
77
106
|
*
|
|
@@ -115,6 +144,7 @@ export declare class FleetManager extends EventEmitter {
|
|
|
115
144
|
* - Stops accepting new tasks
|
|
116
145
|
* - Waits for running tasks to complete
|
|
117
146
|
* - Stops all agents
|
|
147
|
+
* - Shuts down memory manager (clears intervals)
|
|
118
148
|
* - Closes database connections
|
|
119
149
|
*
|
|
120
150
|
* @returns A promise that resolves when shutdown is complete
|
|
@@ -202,6 +232,10 @@ export declare class FleetManager extends EventEmitter {
|
|
|
202
232
|
* Get all tasks
|
|
203
233
|
*/
|
|
204
234
|
getAllTasks(): Task[];
|
|
235
|
+
/**
|
|
236
|
+
* Get memory store for agent initialization
|
|
237
|
+
*/
|
|
238
|
+
private getMemoryStore;
|
|
205
239
|
/**
|
|
206
240
|
* Find an available agent for a specific task type
|
|
207
241
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FleetManager.d.ts","sourceRoot":"","sources":["../../src/core/FleetManager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"FleetManager.d.ts","sourceRoot":"","sources":["../../src/core/FleetManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,10 +18,18 @@
|
|
|
18
18
|
* ]
|
|
19
19
|
* };
|
|
20
20
|
*
|
|
21
|
+
* // Production usage (dependencies created automatically)
|
|
21
22
|
* const fleet = new FleetManager(config);
|
|
22
23
|
* await fleet.initialize();
|
|
23
24
|
* await fleet.start();
|
|
24
25
|
*
|
|
26
|
+
* // Test usage with dependency injection
|
|
27
|
+
* const testFleet = new FleetManager(config, {
|
|
28
|
+
* database: mockDatabase,
|
|
29
|
+
* eventBus: mockEventBus,
|
|
30
|
+
* logger: mockLogger
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
25
33
|
* // Submit tasks
|
|
26
34
|
* const task = new Task('test-generation', 'Generate API tests', {
|
|
27
35
|
* targetFiles: ['./src/api/*.ts']
|
|
@@ -35,39 +43,6 @@
|
|
|
35
43
|
*
|
|
36
44
|
* @public
|
|
37
45
|
*/
|
|
38
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
39
|
-
if (k2 === undefined) k2 = k;
|
|
40
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
41
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
42
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
43
|
-
}
|
|
44
|
-
Object.defineProperty(o, k2, desc);
|
|
45
|
-
}) : (function(o, m, k, k2) {
|
|
46
|
-
if (k2 === undefined) k2 = k;
|
|
47
|
-
o[k2] = m[k];
|
|
48
|
-
}));
|
|
49
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
50
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
51
|
-
}) : function(o, v) {
|
|
52
|
-
o["default"] = v;
|
|
53
|
-
});
|
|
54
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
55
|
-
var ownKeys = function(o) {
|
|
56
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
57
|
-
var ar = [];
|
|
58
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
59
|
-
return ar;
|
|
60
|
-
};
|
|
61
|
-
return ownKeys(o);
|
|
62
|
-
};
|
|
63
|
-
return function (mod) {
|
|
64
|
-
if (mod && mod.__esModule) return mod;
|
|
65
|
-
var result = {};
|
|
66
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
67
|
-
__setModuleDefault(result, mod);
|
|
68
|
-
return result;
|
|
69
|
-
};
|
|
70
|
-
})();
|
|
71
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
72
47
|
exports.FleetManager = void 0;
|
|
73
48
|
const events_1 = require("events");
|
|
@@ -77,20 +52,76 @@ const Task_1 = require("./Task");
|
|
|
77
52
|
const EventBus_1 = require("./EventBus");
|
|
78
53
|
const Database_1 = require("../utils/Database");
|
|
79
54
|
const Logger_1 = require("../utils/Logger");
|
|
55
|
+
const agents_1 = require("../agents");
|
|
56
|
+
const MemoryManager_1 = require("./MemoryManager");
|
|
80
57
|
class FleetManager extends events_1.EventEmitter {
|
|
81
|
-
constructor(config) {
|
|
58
|
+
constructor(config, dependencies) {
|
|
82
59
|
super();
|
|
83
60
|
this.startTime = null;
|
|
84
61
|
this.status = 'initializing';
|
|
85
62
|
this.id = (0, uuid_1.v4)();
|
|
86
63
|
this.agents = new Map();
|
|
87
64
|
this.tasks = new Map();
|
|
88
|
-
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
65
|
+
// Dependency injection: Use provided dependencies or create new instances
|
|
66
|
+
this.eventBus = dependencies?.eventBus || new EventBus_1.EventBus();
|
|
67
|
+
this.database = dependencies?.database || new Database_1.Database();
|
|
68
|
+
// Initialize logger: Use injected logger or get singleton instance with fallback
|
|
69
|
+
if (dependencies?.logger) {
|
|
70
|
+
this.logger = dependencies.logger;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
try {
|
|
74
|
+
const loggerInstance = Logger_1.Logger.getInstance();
|
|
75
|
+
if (!loggerInstance) {
|
|
76
|
+
// Fallback to console logger for test environment
|
|
77
|
+
this.logger = this.createFallbackLogger();
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
this.logger = loggerInstance;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
// If Logger.getInstance() throws, use fallback
|
|
85
|
+
this.logger = this.createFallbackLogger();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
91
88
|
this.config = config;
|
|
89
|
+
this.memoryManager = new MemoryManager_1.MemoryManager(this.database);
|
|
92
90
|
this.setupEventHandlers();
|
|
93
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Create fallback console-based logger for test environment
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
createFallbackLogger() {
|
|
97
|
+
return {
|
|
98
|
+
info: (msg, meta) => {
|
|
99
|
+
if (process.env.NODE_ENV !== 'test') {
|
|
100
|
+
console.log(`[INFO] ${msg}`, meta || '');
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
warn: (msg, meta) => {
|
|
104
|
+
if (process.env.NODE_ENV !== 'test') {
|
|
105
|
+
console.warn(`[WARN] ${msg}`, meta || '');
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
error: (msg, meta) => {
|
|
109
|
+
if (process.env.NODE_ENV !== 'test') {
|
|
110
|
+
console.error(`[ERROR] ${msg}`, meta || '');
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
debug: (msg, meta) => {
|
|
114
|
+
if (process.env.NODE_ENV !== 'test') {
|
|
115
|
+
console.debug(`[DEBUG] ${msg}`, meta || '');
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
log: (level, msg, meta) => {
|
|
119
|
+
if (process.env.NODE_ENV !== 'test') {
|
|
120
|
+
console.log(`[${level}] ${msg}`, meta || '');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
94
125
|
/**
|
|
95
126
|
* Initialize the fleet manager and its components
|
|
96
127
|
*
|
|
@@ -118,6 +149,8 @@ class FleetManager extends events_1.EventEmitter {
|
|
|
118
149
|
await this.database.initialize();
|
|
119
150
|
// Initialize event bus
|
|
120
151
|
await this.eventBus.initialize();
|
|
152
|
+
// Initialize memory manager
|
|
153
|
+
await this.memoryManager.initialize();
|
|
121
154
|
// Create initial agent pool
|
|
122
155
|
await this.createInitialAgents();
|
|
123
156
|
this.status = 'running';
|
|
@@ -161,6 +194,7 @@ class FleetManager extends events_1.EventEmitter {
|
|
|
161
194
|
* - Stops accepting new tasks
|
|
162
195
|
* - Waits for running tasks to complete
|
|
163
196
|
* - Stops all agents
|
|
197
|
+
* - Shuts down memory manager (clears intervals)
|
|
164
198
|
* - Closes database connections
|
|
165
199
|
*
|
|
166
200
|
* @returns A promise that resolves when shutdown is complete
|
|
@@ -174,6 +208,9 @@ class FleetManager extends events_1.EventEmitter {
|
|
|
174
208
|
// Stop all agents gracefully
|
|
175
209
|
const stopPromises = Array.from(this.agents.values()).map(agent => agent.stop());
|
|
176
210
|
await Promise.all(stopPromises);
|
|
211
|
+
// CRITICAL FIX: Shutdown memory manager to clear cleanup interval
|
|
212
|
+
// This prevents memory leaks and hanging processes
|
|
213
|
+
await this.memoryManager.shutdown();
|
|
177
214
|
// Close database connection
|
|
178
215
|
await this.database.close();
|
|
179
216
|
this.status = 'stopped';
|
|
@@ -201,14 +238,47 @@ class FleetManager extends events_1.EventEmitter {
|
|
|
201
238
|
*/
|
|
202
239
|
async spawnAgent(type, config = {}) {
|
|
203
240
|
const agentId = (0, uuid_1.v4)();
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
241
|
+
try {
|
|
242
|
+
// Ensure config has required dependencies
|
|
243
|
+
const agentConfig = {
|
|
244
|
+
memoryStore: config.memoryStore || this.getMemoryStore(),
|
|
245
|
+
context: config.context || { id: agentId, type, status: 'initializing' },
|
|
246
|
+
...config
|
|
247
|
+
};
|
|
248
|
+
// Create agent using static import (enables proper mocking in tests)
|
|
249
|
+
const agent = await (0, agents_1.createAgent)(type, agentId, agentConfig, this.eventBus);
|
|
250
|
+
// Validate agent was created successfully
|
|
251
|
+
if (!agent) {
|
|
252
|
+
throw new Error(`Failed to create agent of type: ${type}. Agent factory returned null/undefined.`);
|
|
253
|
+
}
|
|
254
|
+
// Validate agent has initialize method
|
|
255
|
+
if (typeof agent.initialize !== 'function') {
|
|
256
|
+
throw new Error(`Agent of type ${type} does not have initialize() method. ` +
|
|
257
|
+
`Agent class must extend BaseAgent and implement initialize().`);
|
|
258
|
+
}
|
|
259
|
+
// Register agent before initialization (allows initialization hooks to access fleet)
|
|
260
|
+
this.agents.set(agentId, agent);
|
|
261
|
+
// Initialize the agent with error handling
|
|
262
|
+
try {
|
|
263
|
+
await agent.initialize();
|
|
264
|
+
}
|
|
265
|
+
catch (initError) {
|
|
266
|
+
// Remove agent from registry if initialization fails
|
|
267
|
+
this.agents.delete(agentId);
|
|
268
|
+
throw new Error(`Failed to initialize agent ${type} (${agentId}): ${initError instanceof Error ? initError.message : String(initError)}`);
|
|
269
|
+
}
|
|
270
|
+
this.logger.info(`Agent spawned: ${type} (${agentId})`);
|
|
271
|
+
this.emit('agent:spawned', { agentId, type });
|
|
272
|
+
return agent;
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
// Enhanced error reporting
|
|
276
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
277
|
+
this.logger.error(`Failed to spawn agent ${type}:`, errorMessage);
|
|
278
|
+
// Re-throw with context
|
|
279
|
+
throw new Error(`Agent spawning failed for type '${type}': ${errorMessage}. ` +
|
|
280
|
+
`Ensure agent type is registered and properly implements BaseAgent interface.`);
|
|
281
|
+
}
|
|
212
282
|
}
|
|
213
283
|
/**
|
|
214
284
|
* Remove an agent from the fleet
|
|
@@ -318,6 +388,12 @@ class FleetManager extends events_1.EventEmitter {
|
|
|
318
388
|
getAllTasks() {
|
|
319
389
|
return Array.from(this.tasks.values());
|
|
320
390
|
}
|
|
391
|
+
/**
|
|
392
|
+
* Get memory store for agent initialization
|
|
393
|
+
*/
|
|
394
|
+
getMemoryStore() {
|
|
395
|
+
return this.memoryManager;
|
|
396
|
+
}
|
|
321
397
|
/**
|
|
322
398
|
* Find an available agent for a specific task type
|
|
323
399
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FleetManager.js","sourceRoot":"","sources":["../../src/core/FleetManager.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"FleetManager.js","sourceRoot":"","sources":["../../src/core/FleetManager.ts"],"names":[],"mappings":"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"}
|