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.
Files changed (383) hide show
  1. package/.claude/agents/qe-coverage-analyzer.md +8 -0
  2. package/.claude/agents/qe-flaky-test-hunter.md +9 -1
  3. package/.claude/agents/qe-quality-analyzer.md +405 -0
  4. package/.claude/agents/qe-test-generator.md +7 -0
  5. package/.claude/agents/reasoning/agent.md +816 -0
  6. package/.claude/agents/reasoning/goal-planner.md +73 -0
  7. package/.claude/settings.json +21 -20
  8. package/.claude/skills/README.md +124 -0
  9. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  10. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  11. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  12. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  13. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  14. package/.claude/skills/agentic-quality-engineering/SKILL.md +604 -0
  15. package/.claude/skills/api-testing-patterns/SKILL.md +686 -0
  16. package/.claude/skills/bug-reporting-excellence/SKILL.md +632 -0
  17. package/.claude/skills/code-review-quality/SKILL.md +683 -0
  18. package/.claude/skills/consultancy-practices/SKILL.md +540 -0
  19. package/.claude/skills/context-driven-testing/SKILL.md +466 -0
  20. package/.claude/skills/exploratory-testing-advanced/SKILL.md +676 -0
  21. package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
  22. package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
  23. package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
  24. package/.claude/skills/github-code-review/SKILL.md +1140 -0
  25. package/.claude/skills/github-multi-repo/SKILL.md +874 -0
  26. package/.claude/skills/github-project-management/SKILL.md +1277 -0
  27. package/.claude/skills/github-release-management/SKILL.md +1081 -0
  28. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
  29. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
  30. package/.claude/skills/holistic-testing-pact/SKILL.md +225 -0
  31. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  32. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  33. package/.claude/skills/performance-analysis/SKILL.md +563 -0
  34. package/.claude/skills/performance-testing/SKILL.md +662 -0
  35. package/.claude/skills/quality-metrics/SKILL.md +592 -0
  36. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  37. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  38. package/.claude/skills/refactoring-patterns/SKILL.md +778 -0
  39. package/.claude/skills/risk-based-testing/SKILL.md +721 -0
  40. package/.claude/skills/security-testing/SKILL.md +651 -0
  41. package/.claude/skills/skill-builder/SKILL.md +910 -0
  42. package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
  43. package/.claude/skills/stream-chain/SKILL.md +563 -0
  44. package/.claude/skills/swarm-advanced/SKILL.md +973 -0
  45. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  46. package/.claude/skills/tdd-london-chicago/SKILL.md +567 -0
  47. package/.claude/skills/technical-writing/SKILL.md +235 -0
  48. package/.claude/skills/test-automation-strategy/SKILL.md +842 -0
  49. package/.claude/skills/verification-quality/SKILL.md +649 -0
  50. package/.claude/skills/xp-practices/SKILL.md +671 -0
  51. package/.claude/statusline-command.sh +176 -0
  52. package/CHANGELOG.md +645 -1
  53. package/CONTRIBUTING.md +51 -0
  54. package/README.md +758 -162
  55. package/bin/aqe +90 -938
  56. package/config/improvement-loop.config.ts +323 -0
  57. package/config/neural-agent.config.ts +197 -0
  58. package/dist/adapters/MemoryStoreAdapter.d.ts +16 -16
  59. package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
  60. package/dist/adapters/MemoryStoreAdapter.js +22 -16
  61. package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
  62. package/dist/agents/BaseAgent.d.ts +69 -0
  63. package/dist/agents/BaseAgent.d.ts.map +1 -1
  64. package/dist/agents/BaseAgent.js +382 -1
  65. package/dist/agents/BaseAgent.js.map +1 -1
  66. package/dist/agents/CoverageAnalyzerAgent.d.ts +69 -3
  67. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  68. package/dist/agents/CoverageAnalyzerAgent.js +418 -51
  69. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  70. package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
  71. package/dist/agents/DeploymentReadinessAgent.js +13 -13
  72. package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
  73. package/dist/agents/FlakyTestHunterAgent.d.ts +76 -4
  74. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  75. package/dist/agents/FlakyTestHunterAgent.js +375 -13
  76. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  77. package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
  78. package/dist/agents/FleetCommanderAgent.js +2 -2
  79. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  80. package/dist/agents/LearningAgent.d.ts +84 -0
  81. package/dist/agents/LearningAgent.d.ts.map +1 -0
  82. package/dist/agents/LearningAgent.js +197 -0
  83. package/dist/agents/LearningAgent.js.map +1 -0
  84. package/dist/agents/NeuralAgentExtension.d.ts +117 -0
  85. package/dist/agents/NeuralAgentExtension.d.ts.map +1 -0
  86. package/dist/agents/NeuralAgentExtension.js +288 -0
  87. package/dist/agents/NeuralAgentExtension.js.map +1 -0
  88. package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
  89. package/dist/agents/PerformanceTesterAgent.js +4 -3
  90. package/dist/agents/PerformanceTesterAgent.js.map +1 -1
  91. package/dist/agents/ProductionIntelligenceAgent.js +7 -7
  92. package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
  93. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
  94. package/dist/agents/QualityAnalyzerAgent.js +2 -2
  95. package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
  96. package/dist/agents/QualityGateAgent.js +5 -5
  97. package/dist/agents/QualityGateAgent.js.map +1 -1
  98. package/dist/agents/RegressionRiskAnalyzerAgent.js +7 -7
  99. package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
  100. package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
  101. package/dist/agents/RequirementsValidatorAgent.js +1 -1
  102. package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
  103. package/dist/agents/SecurityScannerAgent.js +6 -6
  104. package/dist/agents/SecurityScannerAgent.js.map +1 -1
  105. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  106. package/dist/agents/TestExecutorAgent.js +1 -3
  107. package/dist/agents/TestExecutorAgent.js.map +1 -1
  108. package/dist/agents/TestGeneratorAgent.d.ts +53 -2
  109. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  110. package/dist/agents/TestGeneratorAgent.js +372 -31
  111. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  112. package/dist/agents/mixins/NeuralCapableMixin.d.ts +130 -0
  113. package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +1 -0
  114. package/dist/agents/mixins/NeuralCapableMixin.js +358 -0
  115. package/dist/agents/mixins/NeuralCapableMixin.js.map +1 -0
  116. package/dist/agents/mixins/QUICCapableMixin.d.ts +34 -0
  117. package/dist/agents/mixins/QUICCapableMixin.d.ts.map +1 -0
  118. package/dist/agents/mixins/QUICCapableMixin.js +346 -0
  119. package/dist/agents/mixins/QUICCapableMixin.js.map +1 -0
  120. package/dist/cli/commands/agent/index.d.ts +5 -0
  121. package/dist/cli/commands/agent/index.d.ts.map +1 -1
  122. package/dist/cli/commands/agent/index.js +11 -6
  123. package/dist/cli/commands/agent/index.js.map +1 -1
  124. package/dist/cli/commands/agent/kill.d.ts +13 -0
  125. package/dist/cli/commands/agent/kill.d.ts.map +1 -0
  126. package/dist/cli/commands/agent/kill.js +65 -0
  127. package/dist/cli/commands/agent/kill.js.map +1 -0
  128. package/dist/cli/commands/agent/list.d.ts +19 -0
  129. package/dist/cli/commands/agent/list.d.ts.map +1 -0
  130. package/dist/cli/commands/agent/list.js +92 -0
  131. package/dist/cli/commands/agent/list.js.map +1 -0
  132. package/dist/cli/commands/agent/logs.d.ts +14 -0
  133. package/dist/cli/commands/agent/logs.d.ts.map +1 -0
  134. package/dist/cli/commands/agent/logs.js +77 -0
  135. package/dist/cli/commands/agent/logs.js.map +1 -0
  136. package/dist/cli/commands/agent/metrics.d.ts +21 -0
  137. package/dist/cli/commands/agent/metrics.d.ts.map +1 -0
  138. package/dist/cli/commands/agent/metrics.js +87 -0
  139. package/dist/cli/commands/agent/metrics.js.map +1 -0
  140. package/dist/cli/commands/agent/spawn.d.ts +28 -0
  141. package/dist/cli/commands/agent/spawn.d.ts.map +1 -0
  142. package/dist/cli/commands/agent/spawn.js +83 -0
  143. package/dist/cli/commands/agent/spawn.js.map +1 -0
  144. package/dist/cli/commands/improve/index.d.ts +70 -0
  145. package/dist/cli/commands/improve/index.d.ts.map +1 -0
  146. package/dist/cli/commands/improve/index.js +530 -0
  147. package/dist/cli/commands/improve/index.js.map +1 -0
  148. package/dist/cli/commands/init.d.ts +57 -0
  149. package/dist/cli/commands/init.d.ts.map +1 -1
  150. package/dist/cli/commands/init.js +1127 -42
  151. package/dist/cli/commands/init.js.map +1 -1
  152. package/dist/cli/commands/learn/index.d.ts +68 -0
  153. package/dist/cli/commands/learn/index.d.ts.map +1 -0
  154. package/dist/cli/commands/learn/index.js +431 -0
  155. package/dist/cli/commands/learn/index.js.map +1 -0
  156. package/dist/cli/commands/patterns/index.d.ts +75 -0
  157. package/dist/cli/commands/patterns/index.d.ts.map +1 -0
  158. package/dist/cli/commands/patterns/index.js +502 -0
  159. package/dist/cli/commands/patterns/index.js.map +1 -0
  160. package/dist/cli/commands/skills/index.d.ts +51 -0
  161. package/dist/cli/commands/skills/index.d.ts.map +1 -0
  162. package/dist/cli/commands/skills/index.js +364 -0
  163. package/dist/cli/commands/skills/index.js.map +1 -0
  164. package/dist/cli/index.js +458 -8
  165. package/dist/cli/index.js.map +1 -1
  166. package/dist/core/EventBus.d.ts +38 -0
  167. package/dist/core/EventBus.d.ts.map +1 -1
  168. package/dist/core/EventBus.js +176 -31
  169. package/dist/core/EventBus.js.map +1 -1
  170. package/dist/core/FleetManager.d.ts +35 -1
  171. package/dist/core/FleetManager.d.ts.map +1 -1
  172. package/dist/core/FleetManager.js +121 -45
  173. package/dist/core/FleetManager.js.map +1 -1
  174. package/dist/core/MemoryManager.d.ts +19 -1
  175. package/dist/core/MemoryManager.d.ts.map +1 -1
  176. package/dist/core/MemoryManager.js +25 -1
  177. package/dist/core/MemoryManager.js.map +1 -1
  178. package/dist/core/embeddings/EmbeddingCache.d.ts +134 -0
  179. package/dist/core/embeddings/EmbeddingCache.d.ts.map +1 -0
  180. package/dist/core/embeddings/EmbeddingCache.js +239 -0
  181. package/dist/core/embeddings/EmbeddingCache.js.map +1 -0
  182. package/dist/core/embeddings/EmbeddingGenerator.d.ts +224 -0
  183. package/dist/core/embeddings/EmbeddingGenerator.d.ts.map +1 -0
  184. package/dist/core/embeddings/EmbeddingGenerator.js +459 -0
  185. package/dist/core/embeddings/EmbeddingGenerator.js.map +1 -0
  186. package/dist/core/embeddings/index.d.ts +15 -0
  187. package/dist/core/embeddings/index.d.ts.map +1 -0
  188. package/dist/core/embeddings/index.js +22 -0
  189. package/dist/core/embeddings/index.js.map +1 -0
  190. package/dist/core/memory/AgentDBIntegration.d.ts +35 -0
  191. package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -0
  192. package/dist/core/memory/AgentDBIntegration.js +75 -0
  193. package/dist/core/memory/AgentDBIntegration.js.map +1 -0
  194. package/dist/core/memory/AgentDBManager.d.ts +200 -0
  195. package/dist/core/memory/AgentDBManager.d.ts.map +1 -0
  196. package/dist/core/memory/AgentDBManager.js +263 -0
  197. package/dist/core/memory/AgentDBManager.js.map +1 -0
  198. package/dist/core/memory/AgentDBService.d.ts +160 -0
  199. package/dist/core/memory/AgentDBService.d.ts.map +1 -0
  200. package/dist/core/memory/AgentDBService.js +450 -0
  201. package/dist/core/memory/AgentDBService.js.map +1 -0
  202. package/dist/core/memory/RealAgentDBAdapter.d.ts +51 -0
  203. package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -0
  204. package/dist/core/memory/RealAgentDBAdapter.js +230 -0
  205. package/dist/core/memory/RealAgentDBAdapter.js.map +1 -0
  206. package/dist/core/memory/ReasoningBankAdapter.d.ts +58 -0
  207. package/dist/core/memory/ReasoningBankAdapter.d.ts.map +1 -0
  208. package/dist/core/memory/ReasoningBankAdapter.js +80 -0
  209. package/dist/core/memory/ReasoningBankAdapter.js.map +1 -0
  210. package/dist/core/memory/SwarmMemoryManager.d.ts +79 -2
  211. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  212. package/dist/core/memory/SwarmMemoryManager.js +243 -52
  213. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  214. package/dist/core/memory/index.d.ts +4 -0
  215. package/dist/core/memory/index.d.ts.map +1 -1
  216. package/dist/core/memory/index.js +9 -1
  217. package/dist/core/memory/index.js.map +1 -1
  218. package/dist/core/neural/NeuralTrainer.d.ts +137 -0
  219. package/dist/core/neural/NeuralTrainer.d.ts.map +1 -0
  220. package/dist/core/neural/NeuralTrainer.js +543 -0
  221. package/dist/core/neural/NeuralTrainer.js.map +1 -0
  222. package/dist/core/neural/index.d.ts +8 -0
  223. package/dist/core/neural/index.d.ts.map +1 -0
  224. package/dist/core/neural/index.js +24 -0
  225. package/dist/core/neural/index.js.map +1 -0
  226. package/dist/core/neural/types.d.ts +216 -0
  227. package/dist/core/neural/types.d.ts.map +1 -0
  228. package/dist/core/neural/types.js +8 -0
  229. package/dist/core/neural/types.js.map +1 -0
  230. package/dist/core/security/CertificateValidator.d.ts +130 -0
  231. package/dist/core/security/CertificateValidator.d.ts.map +1 -0
  232. package/dist/core/security/CertificateValidator.js +376 -0
  233. package/dist/core/security/CertificateValidator.js.map +1 -0
  234. package/dist/core/transport/QUICTransport.d.ts +62 -0
  235. package/dist/core/transport/QUICTransport.d.ts.map +1 -0
  236. package/dist/core/transport/QUICTransport.js +381 -0
  237. package/dist/core/transport/QUICTransport.js.map +1 -0
  238. package/dist/core/transport/SecureQUICTransport.d.ts +71 -0
  239. package/dist/core/transport/SecureQUICTransport.d.ts.map +1 -0
  240. package/dist/core/transport/SecureQUICTransport.js +253 -0
  241. package/dist/core/transport/SecureQUICTransport.js.map +1 -0
  242. package/dist/index.d.ts +10 -0
  243. package/dist/index.d.ts.map +1 -1
  244. package/dist/index.js +10 -0
  245. package/dist/index.js.map +1 -1
  246. package/dist/learning/AdvancedFeatureExtractor.d.ts +123 -0
  247. package/dist/learning/AdvancedFeatureExtractor.d.ts.map +1 -0
  248. package/dist/learning/AdvancedFeatureExtractor.js +423 -0
  249. package/dist/learning/AdvancedFeatureExtractor.js.map +1 -0
  250. package/dist/learning/FlakyFixRecommendations.d.ts +40 -0
  251. package/dist/learning/FlakyFixRecommendations.d.ts.map +1 -0
  252. package/dist/learning/FlakyFixRecommendations.js +247 -0
  253. package/dist/learning/FlakyFixRecommendations.js.map +1 -0
  254. package/dist/learning/FlakyPredictionModel.d.ts +67 -0
  255. package/dist/learning/FlakyPredictionModel.d.ts.map +1 -0
  256. package/dist/learning/FlakyPredictionModel.js +336 -0
  257. package/dist/learning/FlakyPredictionModel.js.map +1 -0
  258. package/dist/learning/FlakyTestDetector.d.ts +55 -0
  259. package/dist/learning/FlakyTestDetector.d.ts.map +1 -0
  260. package/dist/learning/FlakyTestDetector.js +237 -0
  261. package/dist/learning/FlakyTestDetector.js.map +1 -0
  262. package/dist/learning/ImprovementLoop.d.ts +133 -0
  263. package/dist/learning/ImprovementLoop.d.ts.map +1 -0
  264. package/dist/learning/ImprovementLoop.js +412 -0
  265. package/dist/learning/ImprovementLoop.js.map +1 -0
  266. package/dist/learning/ImprovementWorker.d.ts +83 -0
  267. package/dist/learning/ImprovementWorker.d.ts.map +1 -0
  268. package/dist/learning/ImprovementWorker.js +164 -0
  269. package/dist/learning/ImprovementWorker.js.map +1 -0
  270. package/dist/learning/LearningEngine.d.ts +144 -0
  271. package/dist/learning/LearningEngine.d.ts.map +1 -0
  272. package/dist/learning/LearningEngine.js +531 -0
  273. package/dist/learning/LearningEngine.js.map +1 -0
  274. package/dist/learning/NeuralPatternMatcher.d.ts +184 -0
  275. package/dist/learning/NeuralPatternMatcher.d.ts.map +1 -0
  276. package/dist/learning/NeuralPatternMatcher.js +702 -0
  277. package/dist/learning/NeuralPatternMatcher.js.map +1 -0
  278. package/dist/learning/NeuralTrainer.d.ts +209 -0
  279. package/dist/learning/NeuralTrainer.d.ts.map +1 -0
  280. package/dist/learning/NeuralTrainer.js +478 -0
  281. package/dist/learning/NeuralTrainer.js.map +1 -0
  282. package/dist/learning/PerformanceTracker.d.ts +118 -0
  283. package/dist/learning/PerformanceTracker.d.ts.map +1 -0
  284. package/dist/learning/PerformanceTracker.js +376 -0
  285. package/dist/learning/PerformanceTracker.js.map +1 -0
  286. package/dist/learning/StatisticalAnalysis.d.ts +47 -0
  287. package/dist/learning/StatisticalAnalysis.d.ts.map +1 -0
  288. package/dist/learning/StatisticalAnalysis.js +170 -0
  289. package/dist/learning/StatisticalAnalysis.js.map +1 -0
  290. package/dist/learning/SwarmIntegration.d.ts +107 -0
  291. package/dist/learning/SwarmIntegration.d.ts.map +1 -0
  292. package/dist/learning/SwarmIntegration.js +191 -0
  293. package/dist/learning/SwarmIntegration.js.map +1 -0
  294. package/dist/learning/index.d.ts +16 -0
  295. package/dist/learning/index.d.ts.map +1 -0
  296. package/dist/learning/index.js +32 -0
  297. package/dist/learning/index.js.map +1 -0
  298. package/dist/learning/types.d.ts +289 -0
  299. package/dist/learning/types.d.ts.map +1 -0
  300. package/dist/learning/types.js +25 -0
  301. package/dist/learning/types.js.map +1 -0
  302. package/dist/mcp/MCPToolRegistry.d.ts +34 -0
  303. package/dist/mcp/MCPToolRegistry.d.ts.map +1 -0
  304. package/dist/mcp/MCPToolRegistry.js +48 -0
  305. package/dist/mcp/MCPToolRegistry.js.map +1 -0
  306. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts +175 -0
  307. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -0
  308. package/dist/mcp/handlers/phase2/Phase2Tools.js +693 -0
  309. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -0
  310. package/dist/mcp/server.d.ts +4 -4
  311. package/dist/mcp/server.d.ts.map +1 -1
  312. package/dist/mcp/server.js +94 -0
  313. package/dist/mcp/server.js.map +1 -1
  314. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  315. package/dist/mcp/services/AgentRegistry.js +7 -1
  316. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  317. package/dist/mcp/tools.d.ts +15 -0
  318. package/dist/mcp/tools.d.ts.map +1 -1
  319. package/dist/mcp/tools.js +17 -1
  320. package/dist/mcp/tools.js.map +1 -1
  321. package/dist/reasoning/CodeSignatureGenerator.d.ts +98 -0
  322. package/dist/reasoning/CodeSignatureGenerator.d.ts.map +1 -0
  323. package/dist/reasoning/CodeSignatureGenerator.js +427 -0
  324. package/dist/reasoning/CodeSignatureGenerator.js.map +1 -0
  325. package/dist/reasoning/PatternClassifier.d.ts +98 -0
  326. package/dist/reasoning/PatternClassifier.d.ts.map +1 -0
  327. package/dist/reasoning/PatternClassifier.js +345 -0
  328. package/dist/reasoning/PatternClassifier.js.map +1 -0
  329. package/dist/reasoning/PatternExtractor.d.ts +131 -0
  330. package/dist/reasoning/PatternExtractor.d.ts.map +1 -0
  331. package/dist/reasoning/PatternExtractor.js +539 -0
  332. package/dist/reasoning/PatternExtractor.js.map +1 -0
  333. package/dist/reasoning/PatternMemoryIntegration.d.ts +102 -0
  334. package/dist/reasoning/PatternMemoryIntegration.d.ts.map +1 -0
  335. package/dist/reasoning/PatternMemoryIntegration.js +336 -0
  336. package/dist/reasoning/PatternMemoryIntegration.js.map +1 -0
  337. package/dist/reasoning/QEReasoningBank.d.ts +121 -0
  338. package/dist/reasoning/QEReasoningBank.d.ts.map +1 -0
  339. package/dist/reasoning/QEReasoningBank.js +235 -0
  340. package/dist/reasoning/QEReasoningBank.js.map +1 -0
  341. package/dist/reasoning/TestTemplateCreator.d.ts +95 -0
  342. package/dist/reasoning/TestTemplateCreator.d.ts.map +1 -0
  343. package/dist/reasoning/TestTemplateCreator.js +535 -0
  344. package/dist/reasoning/TestTemplateCreator.js.map +1 -0
  345. package/dist/reasoning/index.d.ts +10 -0
  346. package/dist/reasoning/index.d.ts.map +1 -0
  347. package/dist/reasoning/index.js +31 -0
  348. package/dist/reasoning/index.js.map +1 -0
  349. package/dist/reasoning/types.d.ts +717 -0
  350. package/dist/reasoning/types.d.ts.map +1 -0
  351. package/dist/reasoning/types.js +57 -0
  352. package/dist/reasoning/types.js.map +1 -0
  353. package/dist/transport/QUICTransport.d.ts +340 -0
  354. package/dist/transport/QUICTransport.d.ts.map +1 -0
  355. package/dist/transport/QUICTransport.js +814 -0
  356. package/dist/transport/QUICTransport.js.map +1 -0
  357. package/dist/transport/UDPTransport.d.ts +348 -0
  358. package/dist/transport/UDPTransport.d.ts.map +1 -0
  359. package/dist/transport/UDPTransport.js +820 -0
  360. package/dist/transport/UDPTransport.js.map +1 -0
  361. package/dist/types/errors.d.ts +1 -1
  362. package/dist/types/index.d.ts +41 -0
  363. package/dist/types/index.d.ts.map +1 -1
  364. package/dist/types/index.js +2 -0
  365. package/dist/types/index.js.map +1 -1
  366. package/dist/types/pattern.types.d.ts +364 -0
  367. package/dist/types/pattern.types.d.ts.map +1 -0
  368. package/dist/types/pattern.types.js +60 -0
  369. package/dist/types/pattern.types.js.map +1 -0
  370. package/dist/types/quic.d.ts +339 -0
  371. package/dist/types/quic.d.ts.map +1 -0
  372. package/dist/types/quic.js +48 -0
  373. package/dist/types/quic.js.map +1 -0
  374. package/dist/utils/Config.js +1 -1
  375. package/dist/utils/Config.js.map +1 -1
  376. package/dist/utils/Database.d.ts +14 -0
  377. package/dist/utils/Database.d.ts.map +1 -1
  378. package/dist/utils/Database.js +51 -4
  379. package/dist/utils/Database.js.map +1 -1
  380. package/dist/utils/Logger.d.ts.map +1 -1
  381. package/dist/utils/Logger.js +111 -26
  382. package/dist/utils/Logger.js.map +1 -1
  383. package/package.json +54 -9
@@ -0,0 +1,412 @@
1
+ "use strict";
2
+ /**
3
+ * ImprovementLoop - Phase 2 (Milestone 2.2)
4
+ *
5
+ * Implements continuous improvement loop with pattern recognition,
6
+ * strategy optimization, and A/B testing framework.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ImprovementLoop = void 0;
10
+ const uuid_1 = require("uuid");
11
+ const Logger_1 = require("../utils/Logger");
12
+ /**
13
+ * ImprovementLoop - Continuous learning and optimization
14
+ */
15
+ class ImprovementLoop {
16
+ constructor(agentId, memoryStore, learningEngine, performanceTracker) {
17
+ this.isRunning = false;
18
+ this.logger = Logger_1.Logger.getInstance();
19
+ this.agentId = agentId;
20
+ this.memoryStore = memoryStore;
21
+ this.learningEngine = learningEngine;
22
+ this.performanceTracker = performanceTracker;
23
+ this.strategies = new Map();
24
+ this.activeTests = new Map();
25
+ }
26
+ /**
27
+ * Initialize the improvement loop
28
+ */
29
+ async initialize() {
30
+ this.logger.info(`Initializing ImprovementLoop for agent ${this.agentId}`);
31
+ // Load existing strategies
32
+ await this.loadStrategies();
33
+ // Register default strategies
34
+ await this.registerDefaultStrategies();
35
+ this.logger.info('ImprovementLoop initialized successfully');
36
+ }
37
+ /**
38
+ * Start the continuous improvement loop
39
+ */
40
+ async start(intervalMs = 3600000) {
41
+ if (this.isRunning) {
42
+ this.logger.warn('ImprovementLoop already running');
43
+ return;
44
+ }
45
+ this.isRunning = true;
46
+ this.logger.info(`Starting ImprovementLoop with ${intervalMs}ms interval`);
47
+ // Run immediately
48
+ await this.runImprovementCycle();
49
+ // Schedule periodic runs
50
+ this.loopInterval = setInterval(async () => {
51
+ await this.runImprovementCycle();
52
+ }, intervalMs);
53
+ }
54
+ /**
55
+ * Stop the improvement loop
56
+ */
57
+ async stop() {
58
+ if (!this.isRunning) {
59
+ return;
60
+ }
61
+ this.isRunning = false;
62
+ if (this.loopInterval) {
63
+ clearInterval(this.loopInterval);
64
+ this.loopInterval = undefined;
65
+ }
66
+ this.logger.info('ImprovementLoop stopped');
67
+ }
68
+ /**
69
+ * Run a single improvement cycle
70
+ */
71
+ async runImprovementCycle() {
72
+ this.logger.info('Running improvement cycle...');
73
+ try {
74
+ // 1. Analyze current performance
75
+ const improvement = await this.performanceTracker.calculateImprovement();
76
+ this.logger.debug(`Current improvement: ${improvement.improvementRate.toFixed(2)}%`);
77
+ // 2. Identify failure patterns
78
+ const failurePatterns = this.learningEngine.getFailurePatterns();
79
+ const failurePatternsAnalyzed = await this.analyzeFailurePatterns(failurePatterns);
80
+ this.logger.debug(`Analyzed ${failurePatternsAnalyzed} failure patterns`);
81
+ // 3. Discover optimization opportunities
82
+ const opportunities = await this.discoverOptimizations();
83
+ this.logger.debug(`Found ${opportunities.length} optimization opportunities`);
84
+ // 4. Run active A/B tests
85
+ await this.updateActiveTests();
86
+ // 5. Apply best strategies (with opt-in check)
87
+ const strategiesApplied = await this.applyBestStrategies();
88
+ this.logger.debug(`Applied ${strategiesApplied} strategies`);
89
+ // 6. Store cycle results
90
+ const cycleResults = {
91
+ timestamp: new Date(),
92
+ improvement,
93
+ failurePatterns: failurePatterns.length,
94
+ failurePatternsAnalyzed,
95
+ opportunities: opportunities.length,
96
+ activeTests: this.activeTests.size,
97
+ strategiesApplied
98
+ };
99
+ await this.storeCycleResults(cycleResults);
100
+ this.logger.info('Improvement cycle completed successfully');
101
+ return {
102
+ improvement,
103
+ failurePatternsAnalyzed,
104
+ opportunitiesFound: opportunities.length,
105
+ activeTests: this.activeTests.size,
106
+ strategiesApplied
107
+ };
108
+ }
109
+ catch (error) {
110
+ this.logger.error('Error in improvement cycle:', error);
111
+ throw error;
112
+ }
113
+ }
114
+ /**
115
+ * Create A/B test for strategy comparison
116
+ */
117
+ async createABTest(name, strategies, sampleSize = 100) {
118
+ const test = {
119
+ id: (0, uuid_1.v4)(),
120
+ name,
121
+ strategies,
122
+ sampleSize,
123
+ results: strategies.map(s => ({
124
+ strategy: s.name,
125
+ successRate: 0,
126
+ averageTime: 0,
127
+ sampleCount: 0
128
+ })),
129
+ status: 'running',
130
+ startedAt: new Date()
131
+ };
132
+ this.activeTests.set(test.id, test);
133
+ await this.memoryStore.store(`phase2/learning/${this.agentId}/abtests/${test.id}`, test, { partition: 'learning' });
134
+ this.logger.info(`Created A/B test: ${name} (${test.id})`);
135
+ return test.id;
136
+ }
137
+ /**
138
+ * Record A/B test result
139
+ */
140
+ async recordTestResult(testId, strategyName, success, executionTime) {
141
+ const test = this.activeTests.get(testId);
142
+ if (!test) {
143
+ throw new Error(`A/B test not found: ${testId}`);
144
+ }
145
+ const result = test.results.find(r => r.strategy === strategyName);
146
+ if (!result) {
147
+ throw new Error(`Strategy not found in test: ${strategyName}`);
148
+ }
149
+ // Update result statistics
150
+ result.sampleCount++;
151
+ result.successRate = ((result.successRate * (result.sampleCount - 1)) + (success ? 1 : 0)) / result.sampleCount;
152
+ result.averageTime = ((result.averageTime * (result.sampleCount - 1)) + executionTime) / result.sampleCount;
153
+ // Check if test is complete
154
+ const totalSamples = test.results.reduce((sum, r) => sum + r.sampleCount, 0);
155
+ if (totalSamples >= test.sampleSize) {
156
+ await this.completeABTest(testId);
157
+ }
158
+ else {
159
+ // Update test in memory
160
+ await this.memoryStore.store(`phase2/learning/${this.agentId}/abtests/${testId}`, test, { partition: 'learning' });
161
+ }
162
+ }
163
+ /**
164
+ * Complete A/B test and determine winner
165
+ */
166
+ async completeABTest(testId) {
167
+ const test = this.activeTests.get(testId);
168
+ if (!test) {
169
+ return;
170
+ }
171
+ // Find best performing strategy
172
+ let bestResult = test.results[0];
173
+ for (const result of test.results) {
174
+ const bestScore = bestResult.successRate * 0.7 + (1 - bestResult.averageTime / 60000) * 0.3;
175
+ const currentScore = result.successRate * 0.7 + (1 - result.averageTime / 60000) * 0.3;
176
+ if (currentScore > bestScore) {
177
+ bestResult = result;
178
+ }
179
+ }
180
+ test.winner = bestResult.strategy;
181
+ test.status = 'completed';
182
+ test.completedAt = new Date();
183
+ // Store completed test
184
+ await this.memoryStore.store(`phase2/learning/${this.agentId}/abtests/${testId}`, test, { partition: 'learning' });
185
+ // Remove from active tests
186
+ this.activeTests.delete(testId);
187
+ this.logger.info(`A/B test completed: ${test.name}, winner: ${test.winner}`);
188
+ // Apply winning strategy
189
+ await this.applyStrategy(test.winner);
190
+ }
191
+ /**
192
+ * Analyze failure patterns and suggest mitigations
193
+ */
194
+ async analyzeFailurePatterns(patterns) {
195
+ const highFrequencyPatterns = patterns.filter(p => p.frequency > 5 && p.confidence > 0.7);
196
+ let analyzedCount = 0;
197
+ for (const pattern of highFrequencyPatterns) {
198
+ // Suggest mitigation if not already present
199
+ if (!pattern.mitigation) {
200
+ const mitigation = await this.suggestMitigation(pattern);
201
+ pattern.mitigation = mitigation;
202
+ analyzedCount++;
203
+ this.logger.info(`Suggested mitigation for pattern ${pattern.pattern}: ${mitigation}`);
204
+ // Store updated pattern
205
+ await this.memoryStore.store(`phase2/learning/${this.agentId}/failure-patterns/${pattern.id}`, pattern, { partition: 'learning' });
206
+ // Emit event for monitoring
207
+ await this.memoryStore.storeEvent({
208
+ type: 'failure_pattern:analyzed',
209
+ payload: { pattern: pattern.pattern, mitigation, confidence: pattern.confidence },
210
+ source: this.agentId,
211
+ timestamp: Date.now()
212
+ });
213
+ }
214
+ }
215
+ return analyzedCount;
216
+ }
217
+ /**
218
+ * Suggest mitigation for failure pattern
219
+ */
220
+ async suggestMitigation(pattern) {
221
+ // Simple rule-based mitigation suggestions
222
+ const patternType = pattern.pattern.split(':')[0];
223
+ const mitigations = {
224
+ 'timeout': 'Increase timeout threshold or implement progress checkpointing',
225
+ 'memory': 'Implement memory pooling and garbage collection optimization',
226
+ 'validation': 'Add input validation and sanitization before processing',
227
+ 'network': 'Implement retry logic with exponential backoff',
228
+ 'parsing': 'Add robust error handling for malformed input',
229
+ 'permission': 'Implement proper permission checking before operations',
230
+ 'default': 'Add comprehensive error handling and fallback mechanisms'
231
+ };
232
+ return mitigations[patternType] || mitigations['default'];
233
+ }
234
+ /**
235
+ * Discover optimization opportunities
236
+ */
237
+ async discoverOptimizations() {
238
+ const opportunities = [];
239
+ // Get learned patterns
240
+ const patterns = this.learningEngine.getPatterns();
241
+ // Find underutilized high-confidence patterns
242
+ for (const pattern of patterns) {
243
+ if (pattern.confidence > 0.8 && pattern.usageCount < 10) {
244
+ opportunities.push({
245
+ strategy: pattern.pattern,
246
+ confidence: pattern.confidence,
247
+ expectedImprovement: pattern.successRate * 20, // estimate 20% of success rate
248
+ reasoning: `High-confidence pattern (${pattern.confidence.toFixed(2)}) with low usage`,
249
+ alternatives: []
250
+ });
251
+ }
252
+ }
253
+ return opportunities;
254
+ }
255
+ /**
256
+ * Update active A/B tests
257
+ */
258
+ async updateActiveTests() {
259
+ for (const [testId, test] of this.activeTests.entries()) {
260
+ const totalSamples = test.results.reduce((sum, r) => sum + r.sampleCount, 0);
261
+ if (totalSamples >= test.sampleSize) {
262
+ await this.completeABTest(testId);
263
+ }
264
+ }
265
+ }
266
+ /**
267
+ * Apply best strategies based on learning (opt-in with high confidence threshold)
268
+ */
269
+ async applyBestStrategies() {
270
+ // Check if auto-apply is enabled (opt-in feature)
271
+ const autoApplyEnabled = await this.isAutoApplyEnabled();
272
+ if (!autoApplyEnabled) {
273
+ this.logger.debug('Auto-apply disabled, skipping strategy application');
274
+ return 0;
275
+ }
276
+ // Only apply strategies with very high confidence (>0.9) and success rate (>0.8)
277
+ const patterns = this.learningEngine.getPatterns()
278
+ .filter(p => p.confidence > 0.9 && p.successRate > 0.8)
279
+ .slice(0, 3);
280
+ let appliedCount = 0;
281
+ for (const pattern of patterns) {
282
+ const strategyName = pattern.pattern.split(':')[1] || 'default';
283
+ try {
284
+ await this.applyStrategy(strategyName);
285
+ appliedCount++;
286
+ this.logger.info(`Auto-applied strategy: ${strategyName} (confidence: ${pattern.confidence.toFixed(2)}, success: ${pattern.successRate.toFixed(2)})`);
287
+ }
288
+ catch (error) {
289
+ this.logger.error(`Failed to apply strategy ${strategyName}:`, error);
290
+ }
291
+ }
292
+ return appliedCount;
293
+ }
294
+ /**
295
+ * Check if auto-apply is enabled (opt-in configuration)
296
+ */
297
+ async isAutoApplyEnabled() {
298
+ try {
299
+ const config = await this.memoryStore.retrieve(`phase2/learning/${this.agentId}/auto-apply-config`, { partition: 'learning' });
300
+ return config?.enabled === true;
301
+ }
302
+ catch {
303
+ // Default to disabled for safety
304
+ return false;
305
+ }
306
+ }
307
+ /**
308
+ * Enable or disable auto-apply for best strategies
309
+ */
310
+ async setAutoApply(enabled) {
311
+ await this.memoryStore.store(`phase2/learning/${this.agentId}/auto-apply-config`, { enabled, updatedAt: new Date() }, { partition: 'learning' });
312
+ this.logger.info(`Auto-apply ${enabled ? 'enabled' : 'disabled'}`);
313
+ }
314
+ /**
315
+ * Apply a strategy
316
+ */
317
+ async applyStrategy(strategyName) {
318
+ const strategy = this.strategies.get(strategyName);
319
+ if (!strategy) {
320
+ this.logger.warn(`Strategy not found: ${strategyName}`);
321
+ return;
322
+ }
323
+ strategy.usageCount++;
324
+ // Store strategy application
325
+ await this.memoryStore.storeEvent({
326
+ type: 'strategy:applied',
327
+ payload: { strategy: strategyName, config: strategy.config },
328
+ source: this.agentId,
329
+ timestamp: Date.now()
330
+ });
331
+ this.logger.info(`Applied strategy: ${strategyName}`);
332
+ }
333
+ /**
334
+ * Register default improvement strategies
335
+ */
336
+ async registerDefaultStrategies() {
337
+ const defaultStrategies = [
338
+ {
339
+ id: (0, uuid_1.v4)(),
340
+ name: 'parallel-execution',
341
+ description: 'Execute tasks in parallel when possible',
342
+ config: { parallelization: 0.8 },
343
+ usageCount: 0,
344
+ createdAt: new Date()
345
+ },
346
+ {
347
+ id: (0, uuid_1.v4)(),
348
+ name: 'adaptive-retry',
349
+ description: 'Use adaptive retry policy with exponential backoff',
350
+ config: { retryPolicy: 'exponential', maxRetries: 3 },
351
+ usageCount: 0,
352
+ createdAt: new Date()
353
+ },
354
+ {
355
+ id: (0, uuid_1.v4)(),
356
+ name: 'resource-optimization',
357
+ description: 'Optimize resource allocation based on task complexity',
358
+ config: { adaptive: true },
359
+ usageCount: 0,
360
+ createdAt: new Date()
361
+ }
362
+ ];
363
+ for (const strategy of defaultStrategies) {
364
+ this.strategies.set(strategy.name, strategy);
365
+ await this.memoryStore.store(`phase2/learning/${this.agentId}/strategies/${strategy.name}`, strategy, { partition: 'learning' });
366
+ }
367
+ this.logger.info(`Registered ${defaultStrategies.length} default strategies`);
368
+ }
369
+ /**
370
+ * Load strategies from memory
371
+ */
372
+ async loadStrategies() {
373
+ try {
374
+ const entries = await this.memoryStore.query(`phase2/learning/${this.agentId}/strategies/%`, { partition: 'learning' });
375
+ for (const entry of entries) {
376
+ const strategy = entry.value;
377
+ this.strategies.set(strategy.name, strategy);
378
+ }
379
+ this.logger.info(`Loaded ${this.strategies.size} strategies`);
380
+ }
381
+ catch (error) {
382
+ this.logger.warn('No previous strategies found');
383
+ }
384
+ }
385
+ /**
386
+ * Store cycle results
387
+ */
388
+ async storeCycleResults(results) {
389
+ await this.memoryStore.store(`phase2/learning/${this.agentId}/cycles/${results.timestamp.getTime()}`, results, { partition: 'learning', ttl: 2592000 } // 30 days
390
+ );
391
+ }
392
+ /**
393
+ * Get active A/B tests
394
+ */
395
+ getActiveTests() {
396
+ return Array.from(this.activeTests.values());
397
+ }
398
+ /**
399
+ * Get all strategies
400
+ */
401
+ getStrategies() {
402
+ return Array.from(this.strategies.values());
403
+ }
404
+ /**
405
+ * Check if loop is running
406
+ */
407
+ isActive() {
408
+ return this.isRunning;
409
+ }
410
+ }
411
+ exports.ImprovementLoop = ImprovementLoop;
412
+ //# sourceMappingURL=ImprovementLoop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImprovementLoop.js","sourceRoot":"","sources":["../../src/learning/ImprovementLoop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * ImprovementWorker - Phase 2 (Milestone 2.2)
3
+ *
4
+ * Background worker for running continuous improvement cycles
5
+ * at scheduled intervals with monitoring and error recovery.
6
+ */
7
+ import { ImprovementLoop } from './ImprovementLoop';
8
+ /**
9
+ * Worker configuration
10
+ */
11
+ export interface WorkerConfig {
12
+ intervalMs: number;
13
+ maxRetries: number;
14
+ retryDelayMs: number;
15
+ enabled: boolean;
16
+ }
17
+ /**
18
+ * Worker status
19
+ */
20
+ export interface WorkerStatus {
21
+ isRunning: boolean;
22
+ lastCycleAt?: Date;
23
+ nextCycleAt?: Date;
24
+ cyclesCompleted: number;
25
+ cyclesFailed: number;
26
+ currentCycle?: {
27
+ startedAt: Date;
28
+ status: 'running' | 'failed' | 'completed';
29
+ };
30
+ }
31
+ /**
32
+ * ImprovementWorker - Manages background improvement cycles
33
+ */
34
+ export declare class ImprovementWorker {
35
+ private readonly logger;
36
+ private readonly improvementLoop;
37
+ private config;
38
+ private status;
39
+ private intervalHandle?;
40
+ constructor(improvementLoop: ImprovementLoop, config?: Partial<WorkerConfig>);
41
+ /**
42
+ * Start the background worker
43
+ */
44
+ start(): Promise<void>;
45
+ /**
46
+ * Stop the background worker
47
+ */
48
+ stop(): Promise<void>;
49
+ /**
50
+ * Run a single cycle with retry logic
51
+ */
52
+ private runCycleWithRetry;
53
+ /**
54
+ * Get current worker status
55
+ */
56
+ getStatus(): WorkerStatus;
57
+ /**
58
+ * Update worker configuration
59
+ */
60
+ updateConfig(config: Partial<WorkerConfig>): void;
61
+ /**
62
+ * Force run a cycle immediately (manual trigger)
63
+ */
64
+ runNow(): Promise<void>;
65
+ /**
66
+ * Update next cycle time
67
+ */
68
+ private updateNextCycleTime;
69
+ /**
70
+ * Delay helper
71
+ */
72
+ private delay;
73
+ /**
74
+ * Get statistics
75
+ */
76
+ getStatistics(): {
77
+ cyclesCompleted: number;
78
+ cyclesFailed: number;
79
+ successRate: number;
80
+ uptime?: number;
81
+ };
82
+ }
83
+ //# sourceMappingURL=ImprovementWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImprovementWorker.d.ts","sourceRoot":"","sources":["../../src/learning/ImprovementWorker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE;QACb,SAAS,EAAE,IAAI,CAAC;QAChB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;KAC5C,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAGtC,eAAe,EAAE,eAAe,EAChC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAiBpC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B;;OAEG;YACW,iBAAiB;IAyC/B;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAUjD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,aAAa,IAAI;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;CAaF"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ /**
3
+ * ImprovementWorker - Phase 2 (Milestone 2.2)
4
+ *
5
+ * Background worker for running continuous improvement cycles
6
+ * at scheduled intervals with monitoring and error recovery.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ImprovementWorker = void 0;
10
+ const Logger_1 = require("../utils/Logger");
11
+ /**
12
+ * ImprovementWorker - Manages background improvement cycles
13
+ */
14
+ class ImprovementWorker {
15
+ constructor(improvementLoop, config = {}) {
16
+ this.logger = Logger_1.Logger.getInstance();
17
+ this.improvementLoop = improvementLoop;
18
+ this.config = {
19
+ intervalMs: config.intervalMs || 3600000, // 1 hour
20
+ maxRetries: config.maxRetries || 3,
21
+ retryDelayMs: config.retryDelayMs || 60000, // 1 minute
22
+ enabled: config.enabled ?? true
23
+ };
24
+ this.status = {
25
+ isRunning: false,
26
+ cyclesCompleted: 0,
27
+ cyclesFailed: 0
28
+ };
29
+ }
30
+ /**
31
+ * Start the background worker
32
+ */
33
+ async start() {
34
+ if (this.status.isRunning) {
35
+ this.logger.warn('ImprovementWorker already running');
36
+ return;
37
+ }
38
+ if (!this.config.enabled) {
39
+ this.logger.info('ImprovementWorker is disabled');
40
+ return;
41
+ }
42
+ this.status.isRunning = true;
43
+ this.logger.info(`Starting ImprovementWorker with ${this.config.intervalMs}ms interval`);
44
+ // Run first cycle immediately
45
+ await this.runCycleWithRetry();
46
+ // Schedule periodic cycles
47
+ this.intervalHandle = setInterval(async () => {
48
+ await this.runCycleWithRetry();
49
+ }, this.config.intervalMs);
50
+ this.updateNextCycleTime();
51
+ }
52
+ /**
53
+ * Stop the background worker
54
+ */
55
+ async stop() {
56
+ if (!this.status.isRunning) {
57
+ return;
58
+ }
59
+ this.status.isRunning = false;
60
+ if (this.intervalHandle) {
61
+ clearInterval(this.intervalHandle);
62
+ this.intervalHandle = undefined;
63
+ }
64
+ this.logger.info('ImprovementWorker stopped');
65
+ }
66
+ /**
67
+ * Run a single cycle with retry logic
68
+ */
69
+ async runCycleWithRetry() {
70
+ let retries = 0;
71
+ let success = false;
72
+ this.status.currentCycle = {
73
+ startedAt: new Date(),
74
+ status: 'running'
75
+ };
76
+ while (retries < this.config.maxRetries && !success) {
77
+ try {
78
+ const result = await this.improvementLoop.runImprovementCycle();
79
+ this.status.cyclesCompleted++;
80
+ this.status.lastCycleAt = new Date();
81
+ this.status.currentCycle.status = 'completed';
82
+ success = true;
83
+ this.logger.info('Improvement cycle completed', {
84
+ cyclesCompleted: this.status.cyclesCompleted,
85
+ result
86
+ });
87
+ }
88
+ catch (error) {
89
+ retries++;
90
+ this.logger.error(`Improvement cycle failed (attempt ${retries}/${this.config.maxRetries}):`, error);
91
+ if (retries < this.config.maxRetries) {
92
+ // Wait before retrying
93
+ await this.delay(this.config.retryDelayMs);
94
+ }
95
+ else {
96
+ // All retries exhausted
97
+ this.status.cyclesFailed++;
98
+ this.status.currentCycle.status = 'failed';
99
+ this.logger.error('Improvement cycle failed after all retries');
100
+ }
101
+ }
102
+ }
103
+ this.updateNextCycleTime();
104
+ }
105
+ /**
106
+ * Get current worker status
107
+ */
108
+ getStatus() {
109
+ return { ...this.status };
110
+ }
111
+ /**
112
+ * Update worker configuration
113
+ */
114
+ updateConfig(config) {
115
+ this.config = { ...this.config, ...config };
116
+ this.logger.info('Worker configuration updated', this.config);
117
+ // Restart if running and interval changed
118
+ if (this.status.isRunning && config.intervalMs) {
119
+ this.stop().then(() => this.start());
120
+ }
121
+ }
122
+ /**
123
+ * Force run a cycle immediately (manual trigger)
124
+ */
125
+ async runNow() {
126
+ this.logger.info('Manually triggering improvement cycle');
127
+ await this.runCycleWithRetry();
128
+ }
129
+ /**
130
+ * Update next cycle time
131
+ */
132
+ updateNextCycleTime() {
133
+ if (this.status.isRunning) {
134
+ const nextCycle = new Date(Date.now() + this.config.intervalMs);
135
+ this.status.nextCycleAt = nextCycle;
136
+ }
137
+ else {
138
+ this.status.nextCycleAt = undefined;
139
+ }
140
+ }
141
+ /**
142
+ * Delay helper
143
+ */
144
+ delay(ms) {
145
+ return new Promise(resolve => setTimeout(resolve, ms));
146
+ }
147
+ /**
148
+ * Get statistics
149
+ */
150
+ getStatistics() {
151
+ const total = this.status.cyclesCompleted + this.status.cyclesFailed;
152
+ const successRate = total > 0 ? this.status.cyclesCompleted / total : 0;
153
+ return {
154
+ cyclesCompleted: this.status.cyclesCompleted,
155
+ cyclesFailed: this.status.cyclesFailed,
156
+ successRate,
157
+ uptime: this.status.lastCycleAt
158
+ ? Date.now() - this.status.lastCycleAt.getTime()
159
+ : undefined
160
+ };
161
+ }
162
+ }
163
+ exports.ImprovementWorker = ImprovementWorker;
164
+ //# sourceMappingURL=ImprovementWorker.js.map