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 @@
1
+ {"version":3,"file":"ImprovementWorker.js","sourceRoot":"","sources":["../../src/learning/ImprovementWorker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * LearningEngine - Phase 2 (Milestone 2.2)
3
+ *
4
+ * Implements reinforcement learning for agent performance improvement.
5
+ * Uses Q-learning algorithm to optimize task execution strategies.
6
+ */
7
+ import { SwarmMemoryManager } from '../core/memory/SwarmMemoryManager';
8
+ import { LearningConfig, TaskState, LearningFeedback, LearningOutcome, LearnedPattern, FailurePattern, StrategyRecommendation } from './types';
9
+ /**
10
+ * LearningEngine - Reinforcement learning for agents
11
+ */
12
+ export declare class LearningEngine {
13
+ private readonly logger;
14
+ private readonly memoryStore;
15
+ private readonly agentId;
16
+ private config;
17
+ private qTable;
18
+ private experiences;
19
+ private patterns;
20
+ private failurePatterns;
21
+ private taskCount;
22
+ constructor(agentId: string, memoryStore: SwarmMemoryManager, config?: Partial<LearningConfig>);
23
+ /**
24
+ * Initialize the learning engine
25
+ */
26
+ initialize(): Promise<void>;
27
+ /**
28
+ * Learn from a task execution
29
+ */
30
+ learnFromExecution(task: any, result: any, feedback?: LearningFeedback): Promise<LearningOutcome>;
31
+ /**
32
+ * Recommend best strategy for a given state
33
+ */
34
+ recommendStrategy(state: TaskState): Promise<StrategyRecommendation>;
35
+ /**
36
+ * Get learned patterns
37
+ */
38
+ getPatterns(): LearnedPattern[];
39
+ /**
40
+ * Get failure patterns
41
+ */
42
+ getFailurePatterns(): FailurePattern[];
43
+ /**
44
+ * Extract features from state for learning
45
+ */
46
+ private extractFeatures;
47
+ /**
48
+ * Encode state to string key for Q-table
49
+ */
50
+ private encodeState;
51
+ /**
52
+ * Encode action to string key
53
+ */
54
+ private encodeAction;
55
+ /**
56
+ * Extract experience from task execution
57
+ */
58
+ private extractExperience;
59
+ /**
60
+ * Calculate reward from execution result and feedback
61
+ */
62
+ private calculateReward;
63
+ /**
64
+ * Update Q-table with new experience (Q-learning algorithm)
65
+ */
66
+ private updateQTable;
67
+ /**
68
+ * Perform batch update on experiences
69
+ */
70
+ private performBatchUpdate;
71
+ /**
72
+ * Update learned patterns
73
+ */
74
+ private updatePatterns;
75
+ /**
76
+ * Detect failure patterns
77
+ */
78
+ private detectFailurePattern;
79
+ /**
80
+ * Calculate improvement over time
81
+ */
82
+ private calculateImprovement;
83
+ /**
84
+ * Create learning outcome
85
+ */
86
+ private createOutcome;
87
+ /**
88
+ * Estimate task complexity
89
+ */
90
+ private estimateComplexity;
91
+ /**
92
+ * Convert Q-value to confidence score
93
+ */
94
+ private valueToConfidence;
95
+ /**
96
+ * Decay exploration rate
97
+ */
98
+ private decayExploration;
99
+ /**
100
+ * Save learning state to memory
101
+ */
102
+ private saveState;
103
+ /**
104
+ * Load learning state from memory
105
+ */
106
+ private loadState;
107
+ /**
108
+ * Serialize Q-table for storage
109
+ */
110
+ private serializeQTable;
111
+ /**
112
+ * Deserialize Q-table from storage
113
+ */
114
+ private deserializeQTable;
115
+ /**
116
+ * Calculate state size in bytes
117
+ */
118
+ private calculateStateSize;
119
+ /**
120
+ * Get current performance metrics
121
+ */
122
+ private getCurrentPerformance;
123
+ /**
124
+ * Emit learning event
125
+ */
126
+ private emitLearningEvent;
127
+ /**
128
+ * Get current exploration rate
129
+ */
130
+ getExplorationRate(): number;
131
+ /**
132
+ * Get total experiences
133
+ */
134
+ getTotalExperiences(): number;
135
+ /**
136
+ * Enable/disable learning
137
+ */
138
+ setEnabled(enabled: boolean): void;
139
+ /**
140
+ * Check if learning is enabled
141
+ */
142
+ isEnabled(): boolean;
143
+ }
144
+ //# sourceMappingURL=LearningEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningEngine.d.ts","sourceRoot":"","sources":["../../src/learning/LearningEngine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EACL,cAAc,EAEd,SAAS,EAET,gBAAgB,EAChB,eAAe,EACf,cAAc,EAEd,cAAc,EACd,sBAAsB,EAEvB,MAAM,SAAS,CAAC;AAiBjB;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,SAAS,CAAS;gBAGxB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,kBAAkB,EAC/B,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAatC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBjC;;OAEG;IACG,kBAAkB,CACtB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,GAAG,EACX,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,eAAe,CAAC;IAqD3B;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoD1E;;OAEG;IACH,WAAW,IAAI,cAAc,EAAE;IAK/B;;OAEG;IACH,kBAAkB,IAAI,cAAc,EAAE;IAKtC;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;YACW,YAAY;IA4B1B;;OAEG;YACW,kBAAkB;IAgBhC;;OAEG;YACW,cAAc;IAoC5B;;OAEG;YACW,oBAAoB;IAoBlC;;OAEG;YACW,oBAAoB;IAwBlC;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;YACW,SAAS;IA6BvB;;OAEG;YACW,SAAS;IAmBvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;YACW,qBAAqB;IAiBnC;;OAEG;YACW,iBAAiB;IAiB/B;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
@@ -0,0 +1,531 @@
1
+ "use strict";
2
+ /**
3
+ * LearningEngine - Phase 2 (Milestone 2.2)
4
+ *
5
+ * Implements reinforcement learning for agent performance improvement.
6
+ * Uses Q-learning algorithm to optimize task execution strategies.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LearningEngine = void 0;
10
+ const uuid_1 = require("uuid");
11
+ const Logger_1 = require("../utils/Logger");
12
+ /**
13
+ * Default learning configuration
14
+ */
15
+ const DEFAULT_CONFIG = {
16
+ enabled: true,
17
+ learningRate: 0.1,
18
+ discountFactor: 0.95,
19
+ explorationRate: 0.3,
20
+ explorationDecay: 0.995,
21
+ minExplorationRate: 0.01,
22
+ maxMemorySize: 100 * 1024 * 1024, // 100MB
23
+ batchSize: 32,
24
+ updateFrequency: 10
25
+ };
26
+ /**
27
+ * LearningEngine - Reinforcement learning for agents
28
+ */
29
+ class LearningEngine {
30
+ constructor(agentId, memoryStore, config = {}) {
31
+ this.logger = Logger_1.Logger.getInstance();
32
+ this.agentId = agentId;
33
+ this.memoryStore = memoryStore;
34
+ this.config = { ...DEFAULT_CONFIG, ...config };
35
+ this.qTable = new Map();
36
+ this.experiences = [];
37
+ this.patterns = new Map();
38
+ this.failurePatterns = new Map();
39
+ this.taskCount = 0;
40
+ }
41
+ /**
42
+ * Initialize the learning engine
43
+ */
44
+ async initialize() {
45
+ this.logger.info(`Initializing LearningEngine for agent ${this.agentId}`);
46
+ // Load previous learning state if exists
47
+ await this.loadState();
48
+ // Store config in memory
49
+ await this.memoryStore.store(`phase2/learning/${this.agentId}/config`, this.config, { partition: 'learning' });
50
+ this.logger.info('LearningEngine initialized successfully');
51
+ }
52
+ /**
53
+ * Learn from a task execution
54
+ */
55
+ async learnFromExecution(task, result, feedback) {
56
+ if (!this.config.enabled) {
57
+ return this.createOutcome(false, 0, 0);
58
+ }
59
+ // Extract experience from task execution
60
+ const experience = this.extractExperience(task, result, feedback);
61
+ this.experiences.push(experience);
62
+ // Calculate reward
63
+ const reward = this.calculateReward(result, feedback);
64
+ experience.reward = reward;
65
+ // Update Q-table
66
+ await this.updateQTable(experience);
67
+ // Update patterns
68
+ await this.updatePatterns(experience);
69
+ // Detect failure patterns
70
+ if (!result.success) {
71
+ await this.detectFailurePattern(experience);
72
+ }
73
+ // Increment task count
74
+ this.taskCount++;
75
+ // Periodic model update
76
+ if (this.taskCount % this.config.updateFrequency === 0) {
77
+ await this.performBatchUpdate();
78
+ }
79
+ // Decay exploration rate
80
+ this.decayExploration();
81
+ // Calculate improvement
82
+ const improvement = await this.calculateImprovement();
83
+ // Emit learning event
84
+ await this.emitLearningEvent('training', {
85
+ experience,
86
+ reward,
87
+ improvement
88
+ });
89
+ // Save state periodically
90
+ if (this.taskCount % 50 === 0) {
91
+ await this.saveState();
92
+ }
93
+ return improvement;
94
+ }
95
+ /**
96
+ * Recommend best strategy for a given state
97
+ */
98
+ async recommendStrategy(state) {
99
+ const stateKey = this.encodeState(state);
100
+ // Get Q-values for all actions in this state
101
+ const actionValues = this.qTable.get(stateKey) || new Map();
102
+ if (actionValues.size === 0) {
103
+ // No learned strategies yet, return default
104
+ return {
105
+ strategy: 'default',
106
+ confidence: 0.5,
107
+ expectedImprovement: 0,
108
+ reasoning: 'No learned strategies available yet',
109
+ alternatives: []
110
+ };
111
+ }
112
+ // Find best action
113
+ let bestAction = '';
114
+ let bestValue = -Infinity;
115
+ const alternatives = [];
116
+ for (const [action, value] of actionValues.entries()) {
117
+ if (value > bestValue) {
118
+ if (bestAction) {
119
+ alternatives.push({
120
+ strategy: bestAction,
121
+ confidence: this.valueToConfidence(bestValue)
122
+ });
123
+ }
124
+ bestValue = value;
125
+ bestAction = action;
126
+ }
127
+ else {
128
+ alternatives.push({
129
+ strategy: action,
130
+ confidence: this.valueToConfidence(value)
131
+ });
132
+ }
133
+ }
134
+ // Sort alternatives by confidence
135
+ alternatives.sort((a, b) => b.confidence - a.confidence);
136
+ return {
137
+ strategy: bestAction,
138
+ confidence: this.valueToConfidence(bestValue),
139
+ expectedImprovement: Math.max(0, bestValue * 100),
140
+ reasoning: `Learned from ${this.experiences.length} experiences`,
141
+ alternatives: alternatives.slice(0, 3)
142
+ };
143
+ }
144
+ /**
145
+ * Get learned patterns
146
+ */
147
+ getPatterns() {
148
+ return Array.from(this.patterns.values())
149
+ .sort((a, b) => b.confidence - a.confidence);
150
+ }
151
+ /**
152
+ * Get failure patterns
153
+ */
154
+ getFailurePatterns() {
155
+ return Array.from(this.failurePatterns.values())
156
+ .sort((a, b) => b.frequency - a.frequency);
157
+ }
158
+ /**
159
+ * Extract features from state for learning
160
+ */
161
+ extractFeatures(state) {
162
+ return [
163
+ state.taskComplexity,
164
+ state.requiredCapabilities.length / 10, // normalize
165
+ state.previousAttempts / 5, // normalize
166
+ state.availableResources,
167
+ state.timeConstraint ? Math.min(state.timeConstraint / 300000, 1) : 1 // normalize to 5 min
168
+ ];
169
+ }
170
+ /**
171
+ * Encode state to string key for Q-table
172
+ */
173
+ encodeState(state) {
174
+ const features = this.extractFeatures(state);
175
+ return features.map(f => Math.round(f * 10) / 10).join(',');
176
+ }
177
+ /**
178
+ * Encode action to string key
179
+ */
180
+ encodeAction(action) {
181
+ return `${action.strategy}:${action.parallelization.toFixed(1)}:${action.retryPolicy}`;
182
+ }
183
+ /**
184
+ * Extract experience from task execution
185
+ */
186
+ extractExperience(task, result, feedback) {
187
+ const state = {
188
+ taskComplexity: this.estimateComplexity(task),
189
+ requiredCapabilities: task.requirements?.capabilities || [],
190
+ contextFeatures: task.context || {},
191
+ previousAttempts: task.previousAttempts || 0,
192
+ availableResources: 0.8, // TODO: get from system
193
+ timeConstraint: task.timeout
194
+ };
195
+ const action = {
196
+ strategy: result.strategy || 'default',
197
+ toolsUsed: result.toolsUsed || [],
198
+ parallelization: result.parallelization || 0.5,
199
+ retryPolicy: result.retryPolicy || 'exponential',
200
+ resourceAllocation: result.resourceAllocation || 0.5
201
+ };
202
+ // Next state (after execution)
203
+ const nextState = {
204
+ ...state,
205
+ previousAttempts: state.previousAttempts + 1,
206
+ availableResources: state.availableResources * 0.9 // resource consumption
207
+ };
208
+ return {
209
+ taskId: task.id || (0, uuid_1.v4)(),
210
+ taskType: task.type,
211
+ state,
212
+ action,
213
+ reward: 0, // will be calculated
214
+ nextState,
215
+ timestamp: new Date(),
216
+ agentId: this.agentId
217
+ };
218
+ }
219
+ /**
220
+ * Calculate reward from execution result and feedback
221
+ */
222
+ calculateReward(result, feedback) {
223
+ let reward = 0;
224
+ // Success/failure (primary component)
225
+ reward += result.success ? 1.0 : -1.0;
226
+ // Execution time (faster is better)
227
+ if (result.executionTime) {
228
+ const timeFactor = Math.max(0, 1 - result.executionTime / 30000); // 30 sec baseline
229
+ reward += timeFactor * 0.5;
230
+ }
231
+ // Error rate penalty
232
+ if (result.errors) {
233
+ reward -= result.errors.length * 0.1;
234
+ }
235
+ // User feedback
236
+ if (feedback) {
237
+ reward += (feedback.rating - 0.5) * 2; // -1 to +1
238
+ reward -= feedback.issues.length * 0.2;
239
+ }
240
+ // Coverage/quality bonus (for test generation)
241
+ if (result.coverage) {
242
+ reward += (result.coverage - 0.8) * 2; // bonus above 80%
243
+ }
244
+ return Math.max(-2, Math.min(2, reward)); // clamp to [-2, 2]
245
+ }
246
+ /**
247
+ * Update Q-table with new experience (Q-learning algorithm)
248
+ */
249
+ async updateQTable(experience) {
250
+ const stateKey = this.encodeState(experience.state);
251
+ const actionKey = this.encodeAction(experience.action);
252
+ const nextStateKey = this.encodeState(experience.nextState);
253
+ // Get or create state-action map
254
+ if (!this.qTable.has(stateKey)) {
255
+ this.qTable.set(stateKey, new Map());
256
+ }
257
+ const stateActions = this.qTable.get(stateKey);
258
+ // Get current Q-value
259
+ const currentQ = stateActions.get(actionKey) || 0;
260
+ // Get max Q-value for next state
261
+ const nextStateActions = this.qTable.get(nextStateKey) || new Map();
262
+ const maxNextQ = nextStateActions.size > 0
263
+ ? Math.max(...Array.from(nextStateActions.values()))
264
+ : 0;
265
+ // Q-learning update: Q(s,a) = Q(s,a) + α * [r + γ * max(Q(s',a')) - Q(s,a)]
266
+ const newQ = currentQ + this.config.learningRate * (experience.reward + this.config.discountFactor * maxNextQ - currentQ);
267
+ stateActions.set(actionKey, newQ);
268
+ }
269
+ /**
270
+ * Perform batch update on experiences
271
+ */
272
+ async performBatchUpdate() {
273
+ if (this.experiences.length < this.config.batchSize) {
274
+ return;
275
+ }
276
+ // Sample recent experiences
277
+ const batch = this.experiences.slice(-this.config.batchSize);
278
+ // Re-train on batch
279
+ for (const experience of batch) {
280
+ await this.updateQTable(experience);
281
+ }
282
+ this.logger.info(`Performed batch update on ${batch.length} experiences`);
283
+ }
284
+ /**
285
+ * Update learned patterns
286
+ */
287
+ async updatePatterns(experience) {
288
+ const patternKey = `${experience.taskType}:${experience.action.strategy}`;
289
+ if (this.patterns.has(patternKey)) {
290
+ const pattern = this.patterns.get(patternKey);
291
+ pattern.usageCount++;
292
+ pattern.lastUsedAt = new Date();
293
+ // Update success rate
294
+ if (experience.reward > 0) {
295
+ pattern.successRate = (pattern.successRate * (pattern.usageCount - 1) + 1) / pattern.usageCount;
296
+ }
297
+ else {
298
+ pattern.successRate = (pattern.successRate * (pattern.usageCount - 1)) / pattern.usageCount;
299
+ }
300
+ // Update confidence
301
+ pattern.confidence = Math.min(0.95, pattern.confidence + 0.01);
302
+ }
303
+ else {
304
+ // Create new pattern
305
+ const pattern = {
306
+ id: (0, uuid_1.v4)(),
307
+ pattern: patternKey,
308
+ confidence: 0.5,
309
+ successRate: experience.reward > 0 ? 1.0 : 0.0,
310
+ usageCount: 1,
311
+ contexts: [experience.taskType],
312
+ createdAt: new Date(),
313
+ lastUsedAt: new Date()
314
+ };
315
+ this.patterns.set(patternKey, pattern);
316
+ // Emit pattern discovered event
317
+ await this.emitLearningEvent('pattern_discovered', pattern);
318
+ }
319
+ }
320
+ /**
321
+ * Detect failure patterns
322
+ */
323
+ async detectFailurePattern(experience) {
324
+ const patternKey = `${experience.taskType}:failure`;
325
+ if (this.failurePatterns.has(patternKey)) {
326
+ const pattern = this.failurePatterns.get(patternKey);
327
+ pattern.frequency++;
328
+ pattern.confidence = Math.min(0.95, pattern.frequency / this.experiences.length);
329
+ }
330
+ else {
331
+ const pattern = {
332
+ id: (0, uuid_1.v4)(),
333
+ pattern: patternKey,
334
+ frequency: 1,
335
+ contexts: [experience.taskType],
336
+ confidence: 0.1,
337
+ identifiedAt: new Date()
338
+ };
339
+ this.failurePatterns.set(patternKey, pattern);
340
+ }
341
+ }
342
+ /**
343
+ * Calculate improvement over time
344
+ */
345
+ async calculateImprovement() {
346
+ if (this.experiences.length < 10) {
347
+ return this.createOutcome(false, 0, 0);
348
+ }
349
+ // Compare recent performance vs baseline
350
+ const recentExperiences = this.experiences.slice(-20);
351
+ const baselineExperiences = this.experiences.slice(0, 20);
352
+ const recentAvgReward = recentExperiences.reduce((sum, e) => sum + e.reward, 0) / recentExperiences.length;
353
+ const baselineAvgReward = baselineExperiences.reduce((sum, e) => sum + e.reward, 0) / baselineExperiences.length;
354
+ const improvementRate = baselineAvgReward !== 0
355
+ ? ((recentAvgReward - baselineAvgReward) / Math.abs(baselineAvgReward)) * 100
356
+ : 0;
357
+ return this.createOutcome(improvementRate > 0, baselineAvgReward, recentAvgReward, improvementRate);
358
+ }
359
+ /**
360
+ * Create learning outcome
361
+ */
362
+ createOutcome(improved, previous, current, rate = 0) {
363
+ return {
364
+ improved,
365
+ previousPerformance: previous,
366
+ newPerformance: current,
367
+ improvementRate: rate,
368
+ confidence: Math.min(0.95, this.experiences.length / 100),
369
+ patterns: this.getPatterns().slice(0, 5),
370
+ timestamp: new Date()
371
+ };
372
+ }
373
+ /**
374
+ * Estimate task complexity
375
+ */
376
+ estimateComplexity(task) {
377
+ let complexity = 0.5; // baseline
378
+ if (task.requirements?.capabilities) {
379
+ complexity += task.requirements.capabilities.length * 0.1;
380
+ }
381
+ if (task.previousAttempts) {
382
+ complexity += task.previousAttempts * 0.1;
383
+ }
384
+ return Math.min(1.0, complexity);
385
+ }
386
+ /**
387
+ * Convert Q-value to confidence score
388
+ */
389
+ valueToConfidence(value) {
390
+ return Math.max(0, Math.min(1, (value + 2) / 4)); // map [-2, 2] to [0, 1]
391
+ }
392
+ /**
393
+ * Decay exploration rate
394
+ */
395
+ decayExploration() {
396
+ this.config.explorationRate = Math.max(this.config.minExplorationRate, this.config.explorationRate * this.config.explorationDecay);
397
+ }
398
+ /**
399
+ * Save learning state to memory
400
+ */
401
+ async saveState() {
402
+ const state = {
403
+ agentId: this.agentId,
404
+ qTable: this.serializeQTable(),
405
+ experiences: this.experiences.slice(-1000), // keep last 1000
406
+ patterns: this.getPatterns(),
407
+ config: this.config,
408
+ performance: await this.getCurrentPerformance(),
409
+ version: '1.0.0',
410
+ lastUpdated: new Date(),
411
+ size: this.calculateStateSize()
412
+ };
413
+ // Check size limit
414
+ if (state.size > this.config.maxMemorySize) {
415
+ this.logger.warn(`Learning state exceeds max size (${state.size} bytes), pruning...`);
416
+ state.experiences = state.experiences.slice(-500);
417
+ state.size = this.calculateStateSize();
418
+ }
419
+ await this.memoryStore.store(`phase2/learning/${this.agentId}/state`, state, { partition: 'learning' });
420
+ this.logger.info(`Saved learning state (${state.size} bytes, ${state.experiences.length} experiences)`);
421
+ }
422
+ /**
423
+ * Load learning state from memory
424
+ */
425
+ async loadState() {
426
+ try {
427
+ const state = await this.memoryStore.retrieve(`phase2/learning/${this.agentId}/state`, { partition: 'learning' });
428
+ if (state) {
429
+ this.deserializeQTable(state.qTable);
430
+ this.experiences = state.experiences;
431
+ this.patterns = new Map(state.patterns.map(p => [p.pattern, p]));
432
+ this.taskCount = state.experiences.length;
433
+ this.logger.info(`Loaded learning state: ${state.experiences.length} experiences`);
434
+ }
435
+ }
436
+ catch (error) {
437
+ this.logger.warn('No previous learning state found, starting fresh');
438
+ }
439
+ }
440
+ /**
441
+ * Serialize Q-table for storage
442
+ */
443
+ serializeQTable() {
444
+ const serialized = {};
445
+ for (const [state, actions] of this.qTable.entries()) {
446
+ serialized[state] = Object.fromEntries(actions.entries());
447
+ }
448
+ return serialized;
449
+ }
450
+ /**
451
+ * Deserialize Q-table from storage
452
+ */
453
+ deserializeQTable(data) {
454
+ this.qTable.clear();
455
+ for (const [state, actions] of Object.entries(data)) {
456
+ this.qTable.set(state, new Map(Object.entries(actions)));
457
+ }
458
+ }
459
+ /**
460
+ * Calculate state size in bytes
461
+ */
462
+ calculateStateSize() {
463
+ return JSON.stringify({
464
+ qTable: this.serializeQTable(),
465
+ experiences: this.experiences,
466
+ patterns: this.getPatterns()
467
+ }).length;
468
+ }
469
+ /**
470
+ * Get current performance metrics
471
+ */
472
+ async getCurrentPerformance() {
473
+ const recentExperiences = this.experiences.slice(-100);
474
+ if (recentExperiences.length === 0) {
475
+ return {
476
+ avgReward: 0,
477
+ successRate: 0,
478
+ totalExperiences: 0
479
+ };
480
+ }
481
+ return {
482
+ avgReward: recentExperiences.reduce((sum, e) => sum + e.reward, 0) / recentExperiences.length,
483
+ successRate: recentExperiences.filter(e => e.reward > 0).length / recentExperiences.length,
484
+ totalExperiences: this.experiences.length
485
+ };
486
+ }
487
+ /**
488
+ * Emit learning event
489
+ */
490
+ async emitLearningEvent(type, data) {
491
+ const event = {
492
+ id: (0, uuid_1.v4)(),
493
+ type: type,
494
+ agentId: this.agentId,
495
+ data,
496
+ timestamp: new Date()
497
+ };
498
+ await this.memoryStore.storeEvent({
499
+ type: `learning:${type}`,
500
+ payload: event,
501
+ source: this.agentId,
502
+ timestamp: Date.now()
503
+ });
504
+ }
505
+ /**
506
+ * Get current exploration rate
507
+ */
508
+ getExplorationRate() {
509
+ return this.config.explorationRate;
510
+ }
511
+ /**
512
+ * Get total experiences
513
+ */
514
+ getTotalExperiences() {
515
+ return this.experiences.length;
516
+ }
517
+ /**
518
+ * Enable/disable learning
519
+ */
520
+ setEnabled(enabled) {
521
+ this.config.enabled = enabled;
522
+ }
523
+ /**
524
+ * Check if learning is enabled
525
+ */
526
+ isEnabled() {
527
+ return this.config.enabled;
528
+ }
529
+ }
530
+ exports.LearningEngine = LearningEngine;
531
+ //# sourceMappingURL=LearningEngine.js.map