agentic-qe 2.3.5 → 2.5.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 (326) hide show
  1. package/.claude/agents/qe-a11y-ally.md +751 -0
  2. package/.claude/agents/qx-partner.md +120 -4
  3. package/.claude/skills/testability-scoring/SKILL.md +107 -6
  4. package/CHANGELOG.md +133 -0
  5. package/README.md +7 -6
  6. package/dist/agents/AccessibilityAllyAgent.d.ts +168 -0
  7. package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -0
  8. package/dist/agents/AccessibilityAllyAgent.js +462 -0
  9. package/dist/agents/AccessibilityAllyAgent.js.map +1 -0
  10. package/dist/agents/BaseAgent.d.ts +56 -49
  11. package/dist/agents/BaseAgent.d.ts.map +1 -1
  12. package/dist/agents/BaseAgent.js +208 -604
  13. package/dist/agents/BaseAgent.js.map +1 -1
  14. package/dist/agents/FlakyTestHunterAgent.d.ts +2 -2
  15. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  16. package/dist/agents/FlakyTestHunterAgent.js +8 -104
  17. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  18. package/dist/agents/SONAIntegration.d.ts +109 -0
  19. package/dist/agents/SONAIntegration.d.ts.map +1 -0
  20. package/dist/agents/SONAIntegration.js +167 -0
  21. package/dist/agents/SONAIntegration.js.map +1 -0
  22. package/dist/agents/TestExecutorAgent.d.ts +1 -1
  23. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  24. package/dist/agents/TestExecutorAgent.js +4 -46
  25. package/dist/agents/TestExecutorAgent.js.map +1 -1
  26. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  27. package/dist/agents/TestGeneratorAgent.js +15 -35
  28. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  29. package/dist/agents/adapters/CoordinatorAdapter.d.ts +47 -0
  30. package/dist/agents/adapters/CoordinatorAdapter.d.ts.map +1 -0
  31. package/dist/agents/adapters/CoordinatorAdapter.js +266 -0
  32. package/dist/agents/adapters/CoordinatorAdapter.js.map +1 -0
  33. package/dist/agents/adapters/LearningEngineAdapter.d.ts +45 -0
  34. package/dist/agents/adapters/LearningEngineAdapter.d.ts.map +1 -0
  35. package/dist/agents/adapters/LearningEngineAdapter.js +279 -0
  36. package/dist/agents/adapters/LearningEngineAdapter.js.map +1 -0
  37. package/dist/agents/adapters/LifecycleManagerAdapter.d.ts +45 -0
  38. package/dist/agents/adapters/LifecycleManagerAdapter.d.ts.map +1 -0
  39. package/dist/agents/adapters/LifecycleManagerAdapter.js +128 -0
  40. package/dist/agents/adapters/LifecycleManagerAdapter.js.map +1 -0
  41. package/dist/agents/adapters/MemoryServiceAdapter.d.ts +96 -0
  42. package/dist/agents/adapters/MemoryServiceAdapter.d.ts.map +1 -0
  43. package/dist/agents/adapters/MemoryServiceAdapter.js +266 -0
  44. package/dist/agents/adapters/MemoryServiceAdapter.js.map +1 -0
  45. package/dist/agents/adapters/index.d.ts +14 -0
  46. package/dist/agents/adapters/index.d.ts.map +1 -0
  47. package/dist/agents/adapters/index.js +25 -0
  48. package/dist/agents/adapters/index.js.map +1 -0
  49. package/dist/agents/index.d.ts +3 -0
  50. package/dist/agents/index.d.ts.map +1 -1
  51. package/dist/agents/index.js +93 -2
  52. package/dist/agents/index.js.map +1 -1
  53. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  54. package/dist/agents/lifecycle/AgentLifecycleManager.js +12 -6
  55. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  56. package/dist/cli/init/agents.js +1 -1
  57. package/dist/cli/init/claude-config.js +2 -2
  58. package/dist/cli/init/database-init.js +1 -1
  59. package/dist/core/cache/BinaryCacheBuilder.d.ts +84 -0
  60. package/dist/core/cache/BinaryCacheBuilder.d.ts.map +1 -0
  61. package/dist/core/cache/BinaryCacheBuilder.js +225 -0
  62. package/dist/core/cache/BinaryCacheBuilder.js.map +1 -0
  63. package/dist/core/cache/BinaryCacheImpl.d.ts +161 -0
  64. package/dist/core/cache/BinaryCacheImpl.d.ts.map +1 -0
  65. package/dist/core/cache/BinaryCacheImpl.js +685 -0
  66. package/dist/core/cache/BinaryCacheImpl.js.map +1 -0
  67. package/dist/core/cache/BinaryCacheManager.d.ts +142 -0
  68. package/dist/core/cache/BinaryCacheManager.d.ts.map +1 -0
  69. package/dist/core/cache/BinaryCacheManager.js +354 -0
  70. package/dist/core/cache/BinaryCacheManager.js.map +1 -0
  71. package/dist/core/cache/BinaryCacheReader.d.ts +129 -0
  72. package/dist/core/cache/BinaryCacheReader.d.ts.map +1 -0
  73. package/dist/core/cache/BinaryCacheReader.js +243 -0
  74. package/dist/core/cache/BinaryCacheReader.js.map +1 -0
  75. package/dist/core/cache/BinaryMetadataCache.d.ts +777 -0
  76. package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -0
  77. package/dist/core/cache/BinaryMetadataCache.js +204 -0
  78. package/dist/core/cache/BinaryMetadataCache.js.map +1 -0
  79. package/dist/core/cache/CacheInvalidator.d.ts +103 -0
  80. package/dist/core/cache/CacheInvalidator.d.ts.map +1 -0
  81. package/dist/core/cache/CacheInvalidator.js +152 -0
  82. package/dist/core/cache/CacheInvalidator.js.map +1 -0
  83. package/dist/core/cache/CacheValidator.d.ts +69 -0
  84. package/dist/core/cache/CacheValidator.d.ts.map +1 -0
  85. package/dist/core/cache/CacheValidator.js +189 -0
  86. package/dist/core/cache/CacheValidator.js.map +1 -0
  87. package/dist/core/cache/MessagePackSerializer.d.ts +163 -0
  88. package/dist/core/cache/MessagePackSerializer.d.ts.map +1 -0
  89. package/dist/core/cache/MessagePackSerializer.js +274 -0
  90. package/dist/core/cache/MessagePackSerializer.js.map +1 -0
  91. package/dist/core/cache/index.d.ts +59 -0
  92. package/dist/core/cache/index.d.ts.map +1 -0
  93. package/dist/core/cache/index.js +111 -0
  94. package/dist/core/cache/index.js.map +1 -0
  95. package/dist/core/index.d.ts +2 -0
  96. package/dist/core/index.d.ts.map +1 -1
  97. package/dist/core/index.js +18 -0
  98. package/dist/core/index.js.map +1 -1
  99. package/dist/core/memory/AgentDBService.d.ts +30 -4
  100. package/dist/core/memory/AgentDBService.d.ts.map +1 -1
  101. package/dist/core/memory/AgentDBService.js +122 -12
  102. package/dist/core/memory/AgentDBService.js.map +1 -1
  103. package/dist/core/memory/CachedHNSWVectorMemory.d.ts +153 -0
  104. package/dist/core/memory/CachedHNSWVectorMemory.d.ts.map +1 -0
  105. package/dist/core/memory/CachedHNSWVectorMemory.js +329 -0
  106. package/dist/core/memory/CachedHNSWVectorMemory.js.map +1 -0
  107. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  108. package/dist/core/memory/PatternStoreFactory.d.ts +28 -0
  109. package/dist/core/memory/PatternStoreFactory.d.ts.map +1 -1
  110. package/dist/core/memory/PatternStoreFactory.js +68 -3
  111. package/dist/core/memory/PatternStoreFactory.js.map +1 -1
  112. package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
  113. package/dist/core/memory/RuVectorPatternStore.js +8 -2
  114. package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
  115. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +50 -0
  116. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -1
  117. package/dist/core/memory/UnifiedMemoryCoordinator.js +206 -0
  118. package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -1
  119. package/dist/core/memory/index.d.ts +2 -0
  120. package/dist/core/memory/index.d.ts.map +1 -1
  121. package/dist/core/memory/index.js +8 -1
  122. package/dist/core/memory/index.js.map +1 -1
  123. package/dist/core/optimization/RecursiveOptimizer.d.ts +233 -0
  124. package/dist/core/optimization/RecursiveOptimizer.d.ts.map +1 -0
  125. package/dist/core/optimization/RecursiveOptimizer.js +509 -0
  126. package/dist/core/optimization/RecursiveOptimizer.js.map +1 -0
  127. package/dist/core/platform/FileOperations.d.ts +124 -0
  128. package/dist/core/platform/FileOperations.d.ts.map +1 -0
  129. package/dist/core/platform/FileOperations.js +371 -0
  130. package/dist/core/platform/FileOperations.js.map +1 -0
  131. package/dist/core/platform/PlatformDetector.d.ts +53 -0
  132. package/dist/core/platform/PlatformDetector.d.ts.map +1 -0
  133. package/dist/core/platform/PlatformDetector.js +251 -0
  134. package/dist/core/platform/PlatformDetector.js.map +1 -0
  135. package/dist/core/platform/index.d.ts +12 -0
  136. package/dist/core/platform/index.d.ts.map +1 -0
  137. package/dist/core/platform/index.js +28 -0
  138. package/dist/core/platform/index.js.map +1 -0
  139. package/dist/core/strategies/AcceleratedLearningStrategy.d.ts +74 -0
  140. package/dist/core/strategies/AcceleratedLearningStrategy.d.ts.map +1 -0
  141. package/dist/core/strategies/AcceleratedLearningStrategy.js +200 -0
  142. package/dist/core/strategies/AcceleratedLearningStrategy.js.map +1 -0
  143. package/dist/core/strategies/AgentCoordinationStrategy.d.ts +157 -0
  144. package/dist/core/strategies/AgentCoordinationStrategy.d.ts.map +1 -0
  145. package/dist/core/strategies/AgentCoordinationStrategy.js +12 -0
  146. package/dist/core/strategies/AgentCoordinationStrategy.js.map +1 -0
  147. package/dist/core/strategies/AgentLearningStrategy.d.ts +200 -0
  148. package/dist/core/strategies/AgentLearningStrategy.d.ts.map +1 -0
  149. package/dist/core/strategies/AgentLearningStrategy.js +13 -0
  150. package/dist/core/strategies/AgentLearningStrategy.js.map +1 -0
  151. package/dist/core/strategies/AgentLifecycleStrategy.d.ts +116 -0
  152. package/dist/core/strategies/AgentLifecycleStrategy.d.ts.map +1 -0
  153. package/dist/core/strategies/AgentLifecycleStrategy.js +12 -0
  154. package/dist/core/strategies/AgentLifecycleStrategy.js.map +1 -0
  155. package/dist/core/strategies/AgentMemoryStrategy.d.ts +154 -0
  156. package/dist/core/strategies/AgentMemoryStrategy.d.ts.map +1 -0
  157. package/dist/core/strategies/AgentMemoryStrategy.js +13 -0
  158. package/dist/core/strategies/AgentMemoryStrategy.js.map +1 -0
  159. package/dist/core/strategies/DefaultCoordinationStrategy.d.ts +105 -0
  160. package/dist/core/strategies/DefaultCoordinationStrategy.d.ts.map +1 -0
  161. package/dist/core/strategies/DefaultCoordinationStrategy.js +332 -0
  162. package/dist/core/strategies/DefaultCoordinationStrategy.js.map +1 -0
  163. package/dist/core/strategies/DefaultLearningStrategy.d.ts +120 -0
  164. package/dist/core/strategies/DefaultLearningStrategy.d.ts.map +1 -0
  165. package/dist/core/strategies/DefaultLearningStrategy.js +365 -0
  166. package/dist/core/strategies/DefaultLearningStrategy.js.map +1 -0
  167. package/dist/core/strategies/DefaultLifecycleStrategy.d.ts +129 -0
  168. package/dist/core/strategies/DefaultLifecycleStrategy.d.ts.map +1 -0
  169. package/dist/core/strategies/DefaultLifecycleStrategy.js +297 -0
  170. package/dist/core/strategies/DefaultLifecycleStrategy.js.map +1 -0
  171. package/dist/core/strategies/DefaultMemoryStrategy.d.ts +91 -0
  172. package/dist/core/strategies/DefaultMemoryStrategy.d.ts.map +1 -0
  173. package/dist/core/strategies/DefaultMemoryStrategy.js +257 -0
  174. package/dist/core/strategies/DefaultMemoryStrategy.js.map +1 -0
  175. package/dist/core/strategies/DistributedMemoryStrategy.d.ts +85 -0
  176. package/dist/core/strategies/DistributedMemoryStrategy.d.ts.map +1 -0
  177. package/dist/core/strategies/DistributedMemoryStrategy.js +126 -0
  178. package/dist/core/strategies/DistributedMemoryStrategy.js.map +1 -0
  179. package/dist/core/strategies/SONALearningStrategy.d.ts +115 -0
  180. package/dist/core/strategies/SONALearningStrategy.d.ts.map +1 -0
  181. package/dist/core/strategies/SONALearningStrategy.js +656 -0
  182. package/dist/core/strategies/SONALearningStrategy.js.map +1 -0
  183. package/dist/core/strategies/TRMLearningStrategy.d.ts +162 -0
  184. package/dist/core/strategies/TRMLearningStrategy.d.ts.map +1 -0
  185. package/dist/core/strategies/TRMLearningStrategy.js +670 -0
  186. package/dist/core/strategies/TRMLearningStrategy.js.map +1 -0
  187. package/dist/core/strategies/index.d.ts +104 -0
  188. package/dist/core/strategies/index.d.ts.map +1 -0
  189. package/dist/core/strategies/index.js +68 -0
  190. package/dist/core/strategies/index.js.map +1 -0
  191. package/dist/learning/PerformanceOptimizer.js +2 -2
  192. package/dist/learning/PerformanceOptimizer.js.map +1 -1
  193. package/dist/learning/SONAFeedbackLoop.d.ts +168 -0
  194. package/dist/learning/SONAFeedbackLoop.d.ts.map +1 -0
  195. package/dist/learning/SONAFeedbackLoop.js +344 -0
  196. package/dist/learning/SONAFeedbackLoop.js.map +1 -0
  197. package/dist/learning/baselines/BaselineCollector.d.ts +1 -1
  198. package/dist/learning/baselines/BaselineCollector.js +1 -1
  199. package/dist/learning/baselines/StandardTaskSuite.d.ts +1 -1
  200. package/dist/learning/baselines/StandardTaskSuite.js +1 -1
  201. package/dist/learning/index.d.ts +2 -0
  202. package/dist/learning/index.d.ts.map +1 -1
  203. package/dist/learning/index.js +6 -1
  204. package/dist/learning/index.js.map +1 -1
  205. package/dist/mcp/handlers/base-handler.d.ts +28 -1
  206. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  207. package/dist/mcp/handlers/base-handler.js +41 -0
  208. package/dist/mcp/handlers/base-handler.js.map +1 -1
  209. package/dist/mcp/server-instructions.d.ts +1 -1
  210. package/dist/mcp/server-instructions.js +1 -1
  211. package/dist/mcp/server.d.ts.map +1 -1
  212. package/dist/mcp/server.js +23 -16
  213. package/dist/mcp/server.js.map +1 -1
  214. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  215. package/dist/mcp/services/AgentRegistry.js +6 -1
  216. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  217. package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts +114 -0
  218. package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts.map +1 -0
  219. package/dist/mcp/tools/qe/accessibility/accname-computation.js +566 -0
  220. package/dist/mcp/tools/qe/accessibility/accname-computation.js.map +1 -0
  221. package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts +103 -0
  222. package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts.map +1 -0
  223. package/dist/mcp/tools/qe/accessibility/apg-patterns.js +1028 -0
  224. package/dist/mcp/tools/qe/accessibility/apg-patterns.js.map +1 -0
  225. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts +48 -0
  226. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts.map +1 -0
  227. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js +565 -0
  228. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js.map +1 -0
  229. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts +117 -0
  230. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts.map +1 -0
  231. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js +571 -0
  232. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js.map +1 -0
  233. package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts +23 -0
  234. package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts.map +1 -0
  235. package/dist/mcp/tools/qe/accessibility/html-report-generator.js +1152 -0
  236. package/dist/mcp/tools/qe/accessibility/html-report-generator.js.map +1 -0
  237. package/dist/mcp/tools/qe/accessibility/index.d.ts +22 -0
  238. package/dist/mcp/tools/qe/accessibility/index.d.ts.map +1 -0
  239. package/dist/mcp/tools/qe/accessibility/index.js +38 -0
  240. package/dist/mcp/tools/qe/accessibility/index.js.map +1 -0
  241. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts +18 -0
  242. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts.map +1 -0
  243. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js +549 -0
  244. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js.map +1 -0
  245. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts +139 -0
  246. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts.map +1 -0
  247. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js +1300 -0
  248. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js.map +1 -0
  249. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts +138 -0
  250. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts.map +1 -0
  251. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js +1326 -0
  252. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js.map +1 -0
  253. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts +50 -0
  254. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts.map +1 -0
  255. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js +469 -0
  256. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js.map +1 -0
  257. package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts +193 -0
  258. package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts.map +1 -0
  259. package/dist/mcp/tools/qe/accessibility/webvtt-generator.js +511 -0
  260. package/dist/mcp/tools/qe/accessibility/webvtt-generator.js.map +1 -0
  261. package/dist/mcp/tools.d.ts +1 -0
  262. package/dist/mcp/tools.d.ts.map +1 -1
  263. package/dist/mcp/tools.js +61 -0
  264. package/dist/mcp/tools.js.map +1 -1
  265. package/dist/output/AIActionSuggester.d.ts +98 -0
  266. package/dist/output/AIActionSuggester.d.ts.map +1 -0
  267. package/dist/output/AIActionSuggester.js +499 -0
  268. package/dist/output/AIActionSuggester.js.map +1 -0
  269. package/dist/output/CLIOutputHelper.d.ts +169 -0
  270. package/dist/output/CLIOutputHelper.d.ts.map +1 -0
  271. package/dist/output/CLIOutputHelper.js +320 -0
  272. package/dist/output/CLIOutputHelper.js.map +1 -0
  273. package/dist/output/OutputFormatter.d.ts +764 -0
  274. package/dist/output/OutputFormatter.d.ts.map +1 -0
  275. package/dist/output/OutputFormatter.js +125 -0
  276. package/dist/output/OutputFormatter.js.map +1 -0
  277. package/dist/output/OutputFormatterImpl.d.ts +131 -0
  278. package/dist/output/OutputFormatterImpl.d.ts.map +1 -0
  279. package/dist/output/OutputFormatterImpl.js +556 -0
  280. package/dist/output/OutputFormatterImpl.js.map +1 -0
  281. package/dist/output/examples.d.ts +38 -0
  282. package/dist/output/examples.d.ts.map +1 -0
  283. package/dist/output/examples.js +503 -0
  284. package/dist/output/examples.js.map +1 -0
  285. package/dist/output/index.d.ts +16 -0
  286. package/dist/output/index.d.ts.map +1 -0
  287. package/dist/output/index.js +58 -0
  288. package/dist/output/index.js.map +1 -0
  289. package/dist/providers/HybridRouter.d.ts +34 -3
  290. package/dist/providers/HybridRouter.d.ts.map +1 -1
  291. package/dist/providers/HybridRouter.js +69 -4
  292. package/dist/providers/HybridRouter.js.map +1 -1
  293. package/dist/providers/LLMProviderFactory.d.ts +68 -1
  294. package/dist/providers/LLMProviderFactory.d.ts.map +1 -1
  295. package/dist/providers/LLMProviderFactory.js +173 -6
  296. package/dist/providers/LLMProviderFactory.js.map +1 -1
  297. package/dist/providers/OpenRouterProvider.d.ts +150 -0
  298. package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
  299. package/dist/providers/OpenRouterProvider.js +545 -0
  300. package/dist/providers/OpenRouterProvider.js.map +1 -0
  301. package/dist/providers/RuvllmProvider.d.ts +130 -16
  302. package/dist/providers/RuvllmProvider.d.ts.map +1 -1
  303. package/dist/providers/RuvllmProvider.js +399 -83
  304. package/dist/providers/RuvllmProvider.js.map +1 -1
  305. package/dist/providers/index.d.ts +33 -4
  306. package/dist/providers/index.d.ts.map +1 -1
  307. package/dist/providers/index.js +72 -21
  308. package/dist/providers/index.js.map +1 -1
  309. package/dist/telemetry/instrumentation/agent.d.ts +1 -1
  310. package/dist/telemetry/instrumentation/agent.js +1 -1
  311. package/dist/telemetry/instrumentation/index.d.ts +1 -1
  312. package/dist/telemetry/instrumentation/index.js +1 -1
  313. package/dist/types/index.d.ts +2 -1
  314. package/dist/types/index.d.ts.map +1 -1
  315. package/dist/types/index.js +2 -0
  316. package/dist/types/index.js.map +1 -1
  317. package/dist/types/ruvllm.d.ts +97 -0
  318. package/dist/types/ruvllm.d.ts.map +1 -0
  319. package/dist/types/ruvllm.js +46 -0
  320. package/dist/types/ruvllm.js.map +1 -0
  321. package/dist/utils/ruvllm-loader.d.ts +94 -0
  322. package/dist/utils/ruvllm-loader.d.ts.map +1 -0
  323. package/dist/utils/ruvllm-loader.js +87 -0
  324. package/dist/utils/ruvllm-loader.js.map +1 -0
  325. package/docs/reference/agents.md +36 -1
  326. package/package.json +7 -2
@@ -0,0 +1,154 @@
1
+ /**
2
+ * AgentMemoryStrategy - Strategy interface for agent memory operations
3
+ *
4
+ * Handles storage, retrieval, and persistence of agent memory.
5
+ * Supports both local and shared (cross-agent) memory.
6
+ * Part of Phase 2 (B1.3b) layered architecture refactoring.
7
+ *
8
+ * @module core/strategies/AgentMemoryStrategy
9
+ * @version 1.0.0
10
+ */
11
+ import type { QEAgentType } from '../../types';
12
+ /**
13
+ * Memory storage options
14
+ */
15
+ export interface MemoryOptions {
16
+ /** Time-to-live in milliseconds (0 = never expires) */
17
+ ttl?: number;
18
+ /** Namespace for grouping related entries */
19
+ namespace?: string;
20
+ /** Persist to disk (vs memory-only) */
21
+ persist?: boolean;
22
+ /** Priority for cache eviction */
23
+ priority?: 'low' | 'normal' | 'high' | 'critical';
24
+ /** Custom metadata */
25
+ metadata?: Record<string, unknown>;
26
+ }
27
+ /**
28
+ * Memory entry for bulk operations
29
+ */
30
+ export interface MemoryEntry {
31
+ key: string;
32
+ value: unknown;
33
+ options?: MemoryOptions;
34
+ }
35
+ /**
36
+ * Memory query options
37
+ */
38
+ export interface MemoryQueryOptions {
39
+ /** Filter by namespace */
40
+ namespace?: string;
41
+ /** Filter by key pattern (glob) */
42
+ pattern?: string;
43
+ /** Maximum results */
44
+ limit?: number;
45
+ /** Include metadata in results */
46
+ includeMetadata?: boolean;
47
+ }
48
+ /**
49
+ * Memory statistics
50
+ */
51
+ export interface MemoryStats {
52
+ totalEntries: number;
53
+ totalSize: number;
54
+ hitRate: number;
55
+ missRate: number;
56
+ evictionCount: number;
57
+ lastCleanup: Date;
58
+ }
59
+ /**
60
+ * AgentMemoryStrategy interface
61
+ *
62
+ * Implementations:
63
+ * - DefaultMemoryStrategy: SQLite-backed storage
64
+ * - CachedMemoryStrategy: Binary cache layer (Phase 1)
65
+ * - DistributedMemoryStrategy: S3/Redis backend (Phase 4)
66
+ */
67
+ export interface AgentMemoryStrategy {
68
+ /**
69
+ * Store a value in agent memory
70
+ * @param key - Unique key for the value
71
+ * @param value - Value to store (will be serialized)
72
+ * @param options - Storage options
73
+ */
74
+ store(key: string, value: unknown, options?: MemoryOptions): Promise<void>;
75
+ /**
76
+ * Retrieve a value from agent memory
77
+ * @param key - Key to retrieve
78
+ * @returns Stored value or undefined if not found
79
+ */
80
+ retrieve<T = unknown>(key: string): Promise<T | undefined>;
81
+ /**
82
+ * Delete a value from agent memory
83
+ * @param key - Key to delete
84
+ * @returns True if deleted, false if not found
85
+ */
86
+ delete(key: string): Promise<boolean>;
87
+ /**
88
+ * Check if a key exists
89
+ * @param key - Key to check
90
+ */
91
+ exists(key: string): Promise<boolean>;
92
+ /**
93
+ * Store a value in shared memory (accessible by other agents)
94
+ * @param agentType - Agent type namespace
95
+ * @param key - Key within the namespace
96
+ * @param value - Value to store
97
+ * @param options - Storage options
98
+ */
99
+ storeShared(agentType: QEAgentType, key: string, value: unknown, options?: MemoryOptions): Promise<void>;
100
+ /**
101
+ * Retrieve a value from another agent's shared memory
102
+ * @param agentType - Target agent type
103
+ * @param key - Key to retrieve
104
+ */
105
+ retrieveShared<T = unknown>(agentType: QEAgentType, key: string): Promise<T | undefined>;
106
+ /**
107
+ * Store multiple entries atomically
108
+ * @param entries - Entries to store
109
+ */
110
+ bulkStore(entries: MemoryEntry[]): Promise<void>;
111
+ /**
112
+ * Retrieve multiple values
113
+ * @param keys - Keys to retrieve
114
+ * @returns Map of key to value (missing keys omitted)
115
+ */
116
+ bulkRetrieve<T = unknown>(keys: string[]): Promise<Map<string, T>>;
117
+ /**
118
+ * Delete multiple keys
119
+ * @param keys - Keys to delete
120
+ * @returns Number of deleted entries
121
+ */
122
+ bulkDelete(keys: string[]): Promise<number>;
123
+ /**
124
+ * Query memory entries
125
+ * @param options - Query options
126
+ */
127
+ query<T = unknown>(options: MemoryQueryOptions): Promise<MemoryEntry[]>;
128
+ /**
129
+ * List all keys matching a pattern
130
+ * @param pattern - Glob pattern (e.g., "cache/*")
131
+ */
132
+ listKeys(pattern?: string): Promise<string[]>;
133
+ /**
134
+ * Initialize the memory strategy
135
+ */
136
+ initialize(): Promise<void>;
137
+ /**
138
+ * Close connections and cleanup
139
+ */
140
+ close(): Promise<void>;
141
+ /**
142
+ * Clear all agent memory (use with caution)
143
+ */
144
+ clear(): Promise<void>;
145
+ /**
146
+ * Get memory statistics
147
+ */
148
+ getStats(): Promise<MemoryStats>;
149
+ }
150
+ /**
151
+ * Factory function type for creating memory strategies
152
+ */
153
+ export type MemoryStrategyFactory = (config?: Record<string, unknown>) => AgentMemoryStrategy;
154
+ //# sourceMappingURL=AgentMemoryStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentMemoryStrategy.d.ts","sourceRoot":"","sources":["../../../src/core/strategies/AgentMemoryStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * AgentMemoryStrategy - Strategy interface for agent memory operations
4
+ *
5
+ * Handles storage, retrieval, and persistence of agent memory.
6
+ * Supports both local and shared (cross-agent) memory.
7
+ * Part of Phase 2 (B1.3b) layered architecture refactoring.
8
+ *
9
+ * @module core/strategies/AgentMemoryStrategy
10
+ * @version 1.0.0
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ //# sourceMappingURL=AgentMemoryStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentMemoryStrategy.js","sourceRoot":"","sources":["../../../src/core/strategies/AgentMemoryStrategy.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * DefaultCoordinationStrategy - Standard agent coordination implementation
3
+ *
4
+ * Wraps EventEmitter for backward compatibility.
5
+ * Provides event emission, message passing, and basic coordination.
6
+ *
7
+ * @module core/strategies/DefaultCoordinationStrategy
8
+ * @version 1.0.0
9
+ */
10
+ import type { EventEmitter } from 'events';
11
+ import type { AgentId, QEEvent } from '../../types';
12
+ import type { AgentCoordinationStrategy, AgentMessage, MessageHandler, SwarmMembership, CoordinationMetrics, CoordinationEventHandler } from './AgentCoordinationStrategy';
13
+ /**
14
+ * DefaultCoordinationStrategy - EventEmitter-based coordination
15
+ */
16
+ export declare class DefaultCoordinationStrategy implements AgentCoordinationStrategy {
17
+ private eventBus?;
18
+ private agentId?;
19
+ private messageHandlers;
20
+ private swarmMembership;
21
+ private metrics;
22
+ private eventSubscriptions;
23
+ private latencySum;
24
+ private latencyCount;
25
+ /**
26
+ * Initialize the coordination strategy
27
+ */
28
+ initialize(eventBus: EventEmitter, agentId: AgentId): void;
29
+ /**
30
+ * Emit an event to the event bus
31
+ */
32
+ emit(event: QEEvent): void;
33
+ /**
34
+ * Subscribe to events of a specific type
35
+ */
36
+ on<T = unknown>(eventType: string, handler: CoordinationEventHandler<T>): void;
37
+ /**
38
+ * Unsubscribe from events
39
+ */
40
+ off<T = unknown>(eventType: string, handler: CoordinationEventHandler<T>): void;
41
+ /**
42
+ * Subscribe to a single event occurrence
43
+ */
44
+ once<T = unknown>(eventType: string, handler: CoordinationEventHandler<T>): void;
45
+ /**
46
+ * Broadcast a message to all agents
47
+ */
48
+ broadcast(message: AgentMessage): Promise<void>;
49
+ /**
50
+ * Send a message to a specific agent
51
+ */
52
+ send(targetAgent: AgentId, message: AgentMessage): Promise<void>;
53
+ /**
54
+ * Subscribe to messages
55
+ */
56
+ onMessage(handler: MessageHandler): void;
57
+ /**
58
+ * Unsubscribe from messages
59
+ */
60
+ offMessage(handler: MessageHandler): void;
61
+ /**
62
+ * Request-response pattern
63
+ */
64
+ request<T = unknown>(targetAgent: AgentId, message: AgentMessage, timeout?: number): Promise<T>;
65
+ /**
66
+ * Join a swarm
67
+ */
68
+ joinSwarm(swarmId: string, role?: 'coordinator' | 'worker'): Promise<void>;
69
+ /**
70
+ * Leave the current swarm
71
+ */
72
+ leaveSwarm(): Promise<void>;
73
+ /**
74
+ * Get current swarm membership
75
+ */
76
+ getSwarmMembership(): SwarmMembership | null;
77
+ /**
78
+ * Discover peers in the swarm
79
+ */
80
+ discoverPeers(): Promise<AgentId[]>;
81
+ /**
82
+ * Shutdown coordination
83
+ */
84
+ shutdown(): Promise<void>;
85
+ /**
86
+ * Get coordination metrics
87
+ */
88
+ getMetrics(): CoordinationMetrics;
89
+ /**
90
+ * Check if coordination is healthy
91
+ */
92
+ isHealthy(): boolean;
93
+ /**
94
+ * Emit a simple event (not a full QEEvent)
95
+ */
96
+ private emitSimple;
97
+ private setupMessageListener;
98
+ private generateMessageId;
99
+ private updateLatency;
100
+ }
101
+ /**
102
+ * Factory function for creating coordination strategies
103
+ */
104
+ export declare function createCoordinationStrategy(): AgentCoordinationStrategy;
105
+ //# sourceMappingURL=DefaultCoordinationStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultCoordinationStrategy.d.ts","sourceRoot":"","sources":["../../../src/core/strategies/DefaultCoordinationStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EACV,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AAGrC;;GAEG;AACH,qBAAa,2BAA4B,YAAW,yBAAyB;IAC3E,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,eAAe,CAAgC;IAGvD,OAAO,CAAC,OAAO,CAQb;IAEF,OAAO,CAAC,kBAAkB,CAAyD;IACnF,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IAEzB;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ1D;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAqB1B;;OAEG;IACH,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI;IAqB9E;;OAEG;IACH,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI;IAe/E;;OAEG;IACH,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI;IAahF;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrD;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBtE;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIxC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIzC;;OAEG;IACG,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,YAAY,EACrB,OAAO,SAAQ,GACd,OAAO,CAAC,CAAC,CAAC;IA4Bb;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAAa,GAAG,QAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1F;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAI5C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAKzC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB/B;;OAEG;IACH,UAAU,IAAI,mBAAmB;IAIjC;;OAEG;IACH,SAAS,IAAI,OAAO;IAMpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;CAKtB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,yBAAyB,CAEtE"}
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ /**
3
+ * DefaultCoordinationStrategy - Standard agent coordination implementation
4
+ *
5
+ * Wraps EventEmitter for backward compatibility.
6
+ * Provides event emission, message passing, and basic coordination.
7
+ *
8
+ * @module core/strategies/DefaultCoordinationStrategy
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DefaultCoordinationStrategy = void 0;
13
+ exports.createCoordinationStrategy = createCoordinationStrategy;
14
+ const SecureRandom_1 = require("../../utils/SecureRandom");
15
+ /**
16
+ * DefaultCoordinationStrategy - EventEmitter-based coordination
17
+ */
18
+ class DefaultCoordinationStrategy {
19
+ constructor() {
20
+ this.messageHandlers = new Set();
21
+ this.swarmMembership = null;
22
+ // Metrics
23
+ this.metrics = {
24
+ eventsEmitted: 0,
25
+ eventsReceived: 0,
26
+ messagesSent: 0,
27
+ messagesReceived: 0,
28
+ broadcastsSent: 0,
29
+ averageLatency: 0,
30
+ activeSubscriptions: 0,
31
+ };
32
+ this.eventSubscriptions = new Map();
33
+ this.latencySum = 0;
34
+ this.latencyCount = 0;
35
+ }
36
+ /**
37
+ * Initialize the coordination strategy
38
+ */
39
+ initialize(eventBus, agentId) {
40
+ this.eventBus = eventBus;
41
+ this.agentId = agentId;
42
+ // Subscribe to messages targeted at this agent
43
+ this.setupMessageListener();
44
+ }
45
+ /**
46
+ * Emit an event to the event bus
47
+ */
48
+ emit(event) {
49
+ if (!this.eventBus) {
50
+ throw new Error('Coordination strategy not initialized');
51
+ }
52
+ const enrichedEvent = {
53
+ id: event.id ?? SecureRandom_1.SecureRandom.generateId(16),
54
+ type: event.type,
55
+ source: event.source ?? this.agentId,
56
+ target: event.target,
57
+ data: event.data,
58
+ timestamp: event.timestamp ?? new Date(),
59
+ priority: event.priority ?? 'medium',
60
+ scope: event.scope ?? 'local',
61
+ category: event.category,
62
+ };
63
+ this.eventBus.emit(event.type, enrichedEvent);
64
+ this.metrics.eventsEmitted++;
65
+ }
66
+ /**
67
+ * Subscribe to events of a specific type
68
+ */
69
+ on(eventType, handler) {
70
+ if (!this.eventBus) {
71
+ throw new Error('Coordination strategy not initialized');
72
+ }
73
+ // Track subscriptions
74
+ if (!this.eventSubscriptions.has(eventType)) {
75
+ this.eventSubscriptions.set(eventType, new Set());
76
+ }
77
+ this.eventSubscriptions.get(eventType).add(handler);
78
+ // Wrap handler to track metrics
79
+ const wrappedHandler = (event) => {
80
+ this.metrics.eventsReceived++;
81
+ handler(event);
82
+ };
83
+ this.eventBus.on(eventType, wrappedHandler);
84
+ this.metrics.activeSubscriptions++;
85
+ }
86
+ /**
87
+ * Unsubscribe from events
88
+ */
89
+ off(eventType, handler) {
90
+ if (!this.eventBus)
91
+ return;
92
+ const handlers = this.eventSubscriptions.get(eventType);
93
+ if (handlers) {
94
+ handlers.delete(handler);
95
+ if (handlers.size === 0) {
96
+ this.eventSubscriptions.delete(eventType);
97
+ }
98
+ }
99
+ this.eventBus.off(eventType, handler);
100
+ this.metrics.activeSubscriptions = Math.max(0, this.metrics.activeSubscriptions - 1);
101
+ }
102
+ /**
103
+ * Subscribe to a single event occurrence
104
+ */
105
+ once(eventType, handler) {
106
+ if (!this.eventBus) {
107
+ throw new Error('Coordination strategy not initialized');
108
+ }
109
+ const wrappedHandler = (event) => {
110
+ this.metrics.eventsReceived++;
111
+ handler(event);
112
+ };
113
+ this.eventBus.once(eventType, wrappedHandler);
114
+ }
115
+ /**
116
+ * Broadcast a message to all agents
117
+ */
118
+ async broadcast(message) {
119
+ if (!this.eventBus) {
120
+ throw new Error('Coordination strategy not initialized');
121
+ }
122
+ const enrichedMessage = {
123
+ ...message,
124
+ id: message.id ?? this.generateMessageId(),
125
+ sender: message.sender ?? this.agentId,
126
+ timestamp: message.timestamp ?? new Date(),
127
+ };
128
+ this.eventBus.emit('agent:broadcast', enrichedMessage);
129
+ this.metrics.broadcastsSent++;
130
+ this.metrics.messagesSent++;
131
+ }
132
+ /**
133
+ * Send a message to a specific agent
134
+ */
135
+ async send(targetAgent, message) {
136
+ if (!this.eventBus) {
137
+ throw new Error('Coordination strategy not initialized');
138
+ }
139
+ const startTime = performance.now();
140
+ const enrichedMessage = {
141
+ ...message,
142
+ id: message.id ?? this.generateMessageId(),
143
+ sender: message.sender ?? this.agentId,
144
+ target: targetAgent,
145
+ timestamp: message.timestamp ?? new Date(),
146
+ };
147
+ // Emit to specific agent channel
148
+ this.eventBus.emit(`agent:message:${targetAgent.id}`, enrichedMessage);
149
+ this.metrics.messagesSent++;
150
+ // Update latency metrics
151
+ const latency = performance.now() - startTime;
152
+ this.updateLatency(latency);
153
+ }
154
+ /**
155
+ * Subscribe to messages
156
+ */
157
+ onMessage(handler) {
158
+ this.messageHandlers.add(handler);
159
+ }
160
+ /**
161
+ * Unsubscribe from messages
162
+ */
163
+ offMessage(handler) {
164
+ this.messageHandlers.delete(handler);
165
+ }
166
+ /**
167
+ * Request-response pattern
168
+ */
169
+ async request(targetAgent, message, timeout = 30000) {
170
+ if (!this.eventBus) {
171
+ throw new Error('Coordination strategy not initialized');
172
+ }
173
+ const correlationId = this.generateMessageId();
174
+ return new Promise((resolve, reject) => {
175
+ const timeoutId = setTimeout(() => {
176
+ this.eventBus.off(`agent:response:${correlationId}`, responseHandler);
177
+ reject(new Error(`Request timeout after ${timeout}ms`));
178
+ }, timeout);
179
+ const responseHandler = (response) => {
180
+ clearTimeout(timeoutId);
181
+ resolve(response.data);
182
+ };
183
+ this.eventBus.once(`agent:response:${correlationId}`, responseHandler);
184
+ // Send request with correlation ID
185
+ this.send(targetAgent, {
186
+ ...message,
187
+ correlationId,
188
+ });
189
+ });
190
+ }
191
+ /**
192
+ * Join a swarm
193
+ */
194
+ async joinSwarm(swarmId, role = 'worker') {
195
+ this.swarmMembership = {
196
+ swarmId,
197
+ role,
198
+ joinedAt: new Date(),
199
+ topology: 'mesh',
200
+ peers: [],
201
+ };
202
+ // Emit swarm join event
203
+ this.emitSimple('swarm:join', {
204
+ agentId: this.agentId,
205
+ swarmId,
206
+ role,
207
+ });
208
+ }
209
+ /**
210
+ * Leave the current swarm
211
+ */
212
+ async leaveSwarm() {
213
+ if (this.swarmMembership) {
214
+ this.emitSimple('swarm:leave', {
215
+ agentId: this.agentId,
216
+ swarmId: this.swarmMembership.swarmId,
217
+ });
218
+ this.swarmMembership = null;
219
+ }
220
+ }
221
+ /**
222
+ * Get current swarm membership
223
+ */
224
+ getSwarmMembership() {
225
+ return this.swarmMembership;
226
+ }
227
+ /**
228
+ * Discover peers in the swarm
229
+ */
230
+ async discoverPeers() {
231
+ // In default implementation, peers are tracked via events
232
+ return this.swarmMembership?.peers ?? [];
233
+ }
234
+ /**
235
+ * Shutdown coordination
236
+ */
237
+ async shutdown() {
238
+ // Leave swarm if member
239
+ if (this.swarmMembership) {
240
+ await this.leaveSwarm();
241
+ }
242
+ // Clear all subscriptions
243
+ for (const [eventType, handlers] of this.eventSubscriptions) {
244
+ for (const handler of handlers) {
245
+ this.eventBus?.off(eventType, handler);
246
+ }
247
+ }
248
+ this.eventSubscriptions.clear();
249
+ // Clear message handlers
250
+ this.messageHandlers.clear();
251
+ this.eventBus = undefined;
252
+ this.agentId = undefined;
253
+ }
254
+ /**
255
+ * Get coordination metrics
256
+ */
257
+ getMetrics() {
258
+ return { ...this.metrics };
259
+ }
260
+ /**
261
+ * Check if coordination is healthy
262
+ */
263
+ isHealthy() {
264
+ return this.eventBus !== undefined && this.agentId !== undefined;
265
+ }
266
+ // === Private Helpers ===
267
+ /**
268
+ * Emit a simple event (not a full QEEvent)
269
+ */
270
+ emitSimple(type, data) {
271
+ if (!this.eventBus)
272
+ return;
273
+ const event = {
274
+ id: SecureRandom_1.SecureRandom.generateId(16),
275
+ type,
276
+ source: this.agentId,
277
+ data,
278
+ timestamp: new Date(),
279
+ priority: 'medium',
280
+ scope: 'local',
281
+ };
282
+ this.eventBus.emit(type, event);
283
+ this.metrics.eventsEmitted++;
284
+ }
285
+ setupMessageListener() {
286
+ if (!this.eventBus || !this.agentId)
287
+ return;
288
+ // Listen for direct messages
289
+ this.eventBus.on(`agent:message:${this.agentId.id}`, (message) => {
290
+ this.metrics.messagesReceived++;
291
+ for (const handler of this.messageHandlers) {
292
+ try {
293
+ handler(message);
294
+ }
295
+ catch (error) {
296
+ console.error('[DefaultCoordinationStrategy] Message handler error:', error);
297
+ }
298
+ }
299
+ });
300
+ // Listen for broadcasts
301
+ this.eventBus.on('agent:broadcast', (message) => {
302
+ // Don't process own broadcasts
303
+ if (message.sender?.id === this.agentId?.id)
304
+ return;
305
+ this.metrics.messagesReceived++;
306
+ for (const handler of this.messageHandlers) {
307
+ try {
308
+ handler(message);
309
+ }
310
+ catch (error) {
311
+ console.error('[DefaultCoordinationStrategy] Broadcast handler error:', error);
312
+ }
313
+ }
314
+ });
315
+ }
316
+ generateMessageId() {
317
+ return `msg-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
318
+ }
319
+ updateLatency(latency) {
320
+ this.latencySum += latency;
321
+ this.latencyCount++;
322
+ this.metrics.averageLatency = this.latencySum / this.latencyCount;
323
+ }
324
+ }
325
+ exports.DefaultCoordinationStrategy = DefaultCoordinationStrategy;
326
+ /**
327
+ * Factory function for creating coordination strategies
328
+ */
329
+ function createCoordinationStrategy() {
330
+ return new DefaultCoordinationStrategy();
331
+ }
332
+ //# sourceMappingURL=DefaultCoordinationStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultCoordinationStrategy.js","sourceRoot":"","sources":["../../../src/core/strategies/DefaultCoordinationStrategy.ts"],"names":[],"mappings":"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"}