agentic-qe 3.2.2 → 3.3.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 (381) hide show
  1. package/.claude/agents/v3/qe-accessibility-auditor.md +90 -0
  2. package/.claude/helpers/github-safe.js +10 -10
  3. package/README.md +43 -5
  4. package/package.json +4 -2
  5. package/scripts/cloud-db-config.json +37 -0
  6. package/scripts/cloud-db-connect.sh +37 -0
  7. package/scripts/cloud-db-tunnel.sh +23 -0
  8. package/v3/CHANGELOG.md +165 -0
  9. package/v3/README.md +59 -1
  10. package/v3/assets/agents/v3/qe-accessibility-auditor.md +90 -0
  11. package/v3/dist/adapters/claude-flow/index.d.ts +54 -0
  12. package/v3/dist/adapters/claude-flow/index.d.ts.map +1 -0
  13. package/v3/dist/adapters/claude-flow/index.js +79 -0
  14. package/v3/dist/adapters/claude-flow/index.js.map +1 -0
  15. package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts +70 -0
  16. package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts.map +1 -0
  17. package/v3/dist/adapters/claude-flow/model-router-bridge.js +203 -0
  18. package/v3/dist/adapters/claude-flow/model-router-bridge.js.map +1 -0
  19. package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts +73 -0
  20. package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts.map +1 -0
  21. package/v3/dist/adapters/claude-flow/pretrain-bridge.js +276 -0
  22. package/v3/dist/adapters/claude-flow/pretrain-bridge.js.map +1 -0
  23. package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts +70 -0
  24. package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts.map +1 -0
  25. package/v3/dist/adapters/claude-flow/trajectory-bridge.js +205 -0
  26. package/v3/dist/adapters/claude-flow/trajectory-bridge.js.map +1 -0
  27. package/v3/dist/adapters/claude-flow/types.d.ts +99 -0
  28. package/v3/dist/adapters/claude-flow/types.d.ts.map +1 -0
  29. package/v3/dist/adapters/claude-flow/types.js +6 -0
  30. package/v3/dist/adapters/claude-flow/types.js.map +1 -0
  31. package/v3/dist/causal-discovery/causal-graph.d.ts +80 -1
  32. package/v3/dist/causal-discovery/causal-graph.d.ts.map +1 -1
  33. package/v3/dist/causal-discovery/causal-graph.js +111 -1
  34. package/v3/dist/causal-discovery/causal-graph.js.map +1 -1
  35. package/v3/dist/cli/bundle.js +12486 -5503
  36. package/v3/dist/cli/commands/claude-flow-setup.d.ts +82 -0
  37. package/v3/dist/cli/commands/claude-flow-setup.d.ts.map +1 -0
  38. package/v3/dist/cli/commands/claude-flow-setup.js +334 -0
  39. package/v3/dist/cli/commands/claude-flow-setup.js.map +1 -0
  40. package/v3/dist/cli/commands/hooks.d.ts +2 -0
  41. package/v3/dist/cli/commands/hooks.d.ts.map +1 -1
  42. package/v3/dist/cli/commands/hooks.js +13 -2
  43. package/v3/dist/cli/commands/hooks.js.map +1 -1
  44. package/v3/dist/cli/commands/init.d.ts +19 -0
  45. package/v3/dist/cli/commands/init.d.ts.map +1 -0
  46. package/v3/dist/cli/commands/init.js +345 -0
  47. package/v3/dist/cli/commands/init.js.map +1 -0
  48. package/v3/dist/cli/index.js +110 -2
  49. package/v3/dist/cli/index.js.map +1 -1
  50. package/v3/dist/coordination/cross-domain-router.d.ts.map +1 -1
  51. package/v3/dist/coordination/cross-domain-router.js +2 -0
  52. package/v3/dist/coordination/cross-domain-router.js.map +1 -1
  53. package/v3/dist/coordination/mincut/interfaces.d.ts +8 -2
  54. package/v3/dist/coordination/mincut/interfaces.d.ts.map +1 -1
  55. package/v3/dist/coordination/mincut/interfaces.js.map +1 -1
  56. package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts +5 -0
  57. package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts.map +1 -1
  58. package/v3/dist/coordination/mincut/mincut-health-monitor.js +22 -4
  59. package/v3/dist/coordination/mincut/mincut-health-monitor.js.map +1 -1
  60. package/v3/dist/coordination/mincut/queen-integration.d.ts +4 -0
  61. package/v3/dist/coordination/mincut/queen-integration.d.ts.map +1 -1
  62. package/v3/dist/coordination/mincut/queen-integration.js +14 -1
  63. package/v3/dist/coordination/mincut/queen-integration.js.map +1 -1
  64. package/v3/dist/coordination/queen-coordinator.d.ts +5 -0
  65. package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
  66. package/v3/dist/coordination/queen-coordinator.js +45 -7
  67. package/v3/dist/coordination/queen-coordinator.js.map +1 -1
  68. package/v3/dist/domains/learning-optimization/coordinator.d.ts +5 -0
  69. package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
  70. package/v3/dist/domains/learning-optimization/coordinator.js +79 -0
  71. package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
  72. package/v3/dist/domains/security-compliance/services/semgrep-integration.d.ts.map +1 -1
  73. package/v3/dist/domains/security-compliance/services/semgrep-integration.js +16 -12
  74. package/v3/dist/domains/security-compliance/services/semgrep-integration.js.map +1 -1
  75. package/v3/dist/domains/test-execution/services/e2e-runner.d.ts +1 -0
  76. package/v3/dist/domains/test-execution/services/e2e-runner.d.ts.map +1 -1
  77. package/v3/dist/domains/test-execution/services/e2e-runner.js +9 -12
  78. package/v3/dist/domains/test-execution/services/e2e-runner.js.map +1 -1
  79. package/v3/dist/domains/test-generation/coherence-gate.d.ts +245 -0
  80. package/v3/dist/domains/test-generation/coherence-gate.d.ts.map +1 -0
  81. package/v3/dist/domains/test-generation/coherence-gate.js +454 -0
  82. package/v3/dist/domains/test-generation/coherence-gate.js.map +1 -0
  83. package/v3/dist/domains/test-generation/coordinator.d.ts +32 -1
  84. package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
  85. package/v3/dist/domains/test-generation/coordinator.js +70 -1
  86. package/v3/dist/domains/test-generation/coordinator.js.map +1 -1
  87. package/v3/dist/domains/test-generation/index.d.ts +1 -0
  88. package/v3/dist/domains/test-generation/index.d.ts.map +1 -1
  89. package/v3/dist/domains/test-generation/index.js +4 -0
  90. package/v3/dist/domains/test-generation/index.js.map +1 -1
  91. package/v3/dist/domains/test-generation/services/index.d.ts +1 -0
  92. package/v3/dist/domains/test-generation/services/index.d.ts.map +1 -1
  93. package/v3/dist/domains/test-generation/services/index.js +2 -0
  94. package/v3/dist/domains/test-generation/services/index.js.map +1 -1
  95. package/v3/dist/domains/visual-accessibility/index.d.ts +2 -1
  96. package/v3/dist/domains/visual-accessibility/index.d.ts.map +1 -1
  97. package/v3/dist/domains/visual-accessibility/index.js +1 -0
  98. package/v3/dist/domains/visual-accessibility/index.js.map +1 -1
  99. package/v3/dist/domains/visual-accessibility/interfaces.d.ts +131 -0
  100. package/v3/dist/domains/visual-accessibility/interfaces.d.ts.map +1 -1
  101. package/v3/dist/domains/visual-accessibility/plugin.d.ts +26 -0
  102. package/v3/dist/domains/visual-accessibility/plugin.d.ts.map +1 -1
  103. package/v3/dist/domains/visual-accessibility/plugin.js +151 -0
  104. package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -1
  105. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +42 -1
  106. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.d.ts.map +1 -1
  107. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js +69 -0
  108. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js.map +1 -1
  109. package/v3/dist/domains/visual-accessibility/services/eu-compliance.d.ts +138 -0
  110. package/v3/dist/domains/visual-accessibility/services/eu-compliance.d.ts.map +1 -0
  111. package/v3/dist/domains/visual-accessibility/services/eu-compliance.js +830 -0
  112. package/v3/dist/domains/visual-accessibility/services/eu-compliance.js.map +1 -0
  113. package/v3/dist/domains/visual-accessibility/services/index.d.ts +1 -0
  114. package/v3/dist/domains/visual-accessibility/services/index.d.ts.map +1 -1
  115. package/v3/dist/domains/visual-accessibility/services/index.js +1 -0
  116. package/v3/dist/domains/visual-accessibility/services/index.js.map +1 -1
  117. package/v3/dist/init/enhancements/claude-flow-adapter.d.ts +84 -0
  118. package/v3/dist/init/enhancements/claude-flow-adapter.d.ts.map +1 -0
  119. package/v3/dist/init/enhancements/claude-flow-adapter.js +250 -0
  120. package/v3/dist/init/enhancements/claude-flow-adapter.js.map +1 -0
  121. package/v3/dist/init/enhancements/detector.d.ts +10 -0
  122. package/v3/dist/init/enhancements/detector.d.ts.map +1 -0
  123. package/v3/dist/init/enhancements/detector.js +87 -0
  124. package/v3/dist/init/enhancements/detector.js.map +1 -0
  125. package/v3/dist/init/enhancements/index.d.ts +13 -0
  126. package/v3/dist/init/enhancements/index.d.ts.map +1 -0
  127. package/v3/dist/init/enhancements/index.js +25 -0
  128. package/v3/dist/init/enhancements/index.js.map +1 -0
  129. package/v3/dist/init/enhancements/types.d.ts +93 -0
  130. package/v3/dist/init/enhancements/types.d.ts.map +1 -0
  131. package/v3/dist/init/enhancements/types.js +6 -0
  132. package/v3/dist/init/enhancements/types.js.map +1 -0
  133. package/v3/dist/init/index.d.ts +8 -0
  134. package/v3/dist/init/index.d.ts.map +1 -1
  135. package/v3/dist/init/index.js +4 -0
  136. package/v3/dist/init/index.js.map +1 -1
  137. package/v3/dist/init/migration/config-migrator.d.ts +31 -0
  138. package/v3/dist/init/migration/config-migrator.d.ts.map +1 -0
  139. package/v3/dist/init/migration/config-migrator.js +133 -0
  140. package/v3/dist/init/migration/config-migrator.js.map +1 -0
  141. package/v3/dist/init/migration/data-migrator.d.ts +72 -0
  142. package/v3/dist/init/migration/data-migrator.d.ts.map +1 -0
  143. package/v3/dist/init/migration/data-migrator.js +233 -0
  144. package/v3/dist/init/migration/data-migrator.js.map +1 -0
  145. package/v3/dist/init/migration/detector.d.ts +44 -0
  146. package/v3/dist/init/migration/detector.d.ts.map +1 -0
  147. package/v3/dist/init/migration/detector.js +106 -0
  148. package/v3/dist/init/migration/detector.js.map +1 -0
  149. package/v3/dist/init/migration/index.d.ts +8 -0
  150. package/v3/dist/init/migration/index.d.ts.map +1 -0
  151. package/v3/dist/init/migration/index.js +8 -0
  152. package/v3/dist/init/migration/index.js.map +1 -0
  153. package/v3/dist/init/orchestrator.d.ts +68 -0
  154. package/v3/dist/init/orchestrator.d.ts.map +1 -0
  155. package/v3/dist/init/orchestrator.js +239 -0
  156. package/v3/dist/init/orchestrator.js.map +1 -0
  157. package/v3/dist/init/phases/01-detection.d.ts +30 -0
  158. package/v3/dist/init/phases/01-detection.d.ts.map +1 -0
  159. package/v3/dist/init/phases/01-detection.js +143 -0
  160. package/v3/dist/init/phases/01-detection.js.map +1 -0
  161. package/v3/dist/init/phases/02-analysis.d.ts +18 -0
  162. package/v3/dist/init/phases/02-analysis.d.ts.map +1 -0
  163. package/v3/dist/init/phases/02-analysis.js +28 -0
  164. package/v3/dist/init/phases/02-analysis.js.map +1 -0
  165. package/v3/dist/init/phases/03-configuration.d.ts +26 -0
  166. package/v3/dist/init/phases/03-configuration.d.ts.map +1 -0
  167. package/v3/dist/init/phases/03-configuration.js +98 -0
  168. package/v3/dist/init/phases/03-configuration.js.map +1 -0
  169. package/v3/dist/init/phases/04-database.d.ts +22 -0
  170. package/v3/dist/init/phases/04-database.d.ts.map +1 -0
  171. package/v3/dist/init/phases/04-database.js +88 -0
  172. package/v3/dist/init/phases/04-database.js.map +1 -0
  173. package/v3/dist/init/phases/05-learning.d.ts +28 -0
  174. package/v3/dist/init/phases/05-learning.d.ts.map +1 -0
  175. package/v3/dist/init/phases/05-learning.js +98 -0
  176. package/v3/dist/init/phases/05-learning.js.map +1 -0
  177. package/v3/dist/init/phases/06-code-intelligence.d.ts +33 -0
  178. package/v3/dist/init/phases/06-code-intelligence.d.ts.map +1 -0
  179. package/v3/dist/init/phases/06-code-intelligence.js +115 -0
  180. package/v3/dist/init/phases/06-code-intelligence.js.map +1 -0
  181. package/v3/dist/init/phases/07-hooks.d.ts +27 -0
  182. package/v3/dist/init/phases/07-hooks.d.ts.map +1 -0
  183. package/v3/dist/init/phases/07-hooks.js +209 -0
  184. package/v3/dist/init/phases/07-hooks.js.map +1 -0
  185. package/v3/dist/init/phases/08-mcp.d.ts +22 -0
  186. package/v3/dist/init/phases/08-mcp.d.ts.map +1 -0
  187. package/v3/dist/init/phases/08-mcp.js +62 -0
  188. package/v3/dist/init/phases/08-mcp.js.map +1 -0
  189. package/v3/dist/init/phases/09-assets.d.ts +23 -0
  190. package/v3/dist/init/phases/09-assets.d.ts.map +1 -0
  191. package/v3/dist/init/phases/09-assets.js +82 -0
  192. package/v3/dist/init/phases/09-assets.js.map +1 -0
  193. package/v3/dist/init/phases/10-workers.d.ts +23 -0
  194. package/v3/dist/init/phases/10-workers.d.ts.map +1 -0
  195. package/v3/dist/init/phases/10-workers.js +111 -0
  196. package/v3/dist/init/phases/10-workers.js.map +1 -0
  197. package/v3/dist/init/phases/11-claude-md.d.ts +26 -0
  198. package/v3/dist/init/phases/11-claude-md.d.ts.map +1 -0
  199. package/v3/dist/init/phases/11-claude-md.js +121 -0
  200. package/v3/dist/init/phases/11-claude-md.js.map +1 -0
  201. package/v3/dist/init/phases/12-verification.d.ts +38 -0
  202. package/v3/dist/init/phases/12-verification.d.ts.map +1 -0
  203. package/v3/dist/init/phases/12-verification.js +187 -0
  204. package/v3/dist/init/phases/12-verification.js.map +1 -0
  205. package/v3/dist/init/phases/index.d.ts +46 -0
  206. package/v3/dist/init/phases/index.d.ts.map +1 -0
  207. package/v3/dist/init/phases/index.js +64 -0
  208. package/v3/dist/init/phases/index.js.map +1 -0
  209. package/v3/dist/init/phases/phase-interface.d.ts +193 -0
  210. package/v3/dist/init/phases/phase-interface.d.ts.map +1 -0
  211. package/v3/dist/init/phases/phase-interface.js +119 -0
  212. package/v3/dist/init/phases/phase-interface.js.map +1 -0
  213. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +9 -3
  214. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts.map +1 -1
  215. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +103 -26
  216. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js.map +1 -1
  217. package/v3/dist/integrations/coherence/coherence-service.d.ts +323 -0
  218. package/v3/dist/integrations/coherence/coherence-service.d.ts.map +1 -0
  219. package/v3/dist/integrations/coherence/coherence-service.js +799 -0
  220. package/v3/dist/integrations/coherence/coherence-service.js.map +1 -0
  221. package/v3/dist/integrations/coherence/engines/category-adapter.d.ts +170 -0
  222. package/v3/dist/integrations/coherence/engines/category-adapter.d.ts.map +1 -0
  223. package/v3/dist/integrations/coherence/engines/category-adapter.js +403 -0
  224. package/v3/dist/integrations/coherence/engines/category-adapter.js.map +1 -0
  225. package/v3/dist/integrations/coherence/engines/causal-adapter.d.ts +159 -0
  226. package/v3/dist/integrations/coherence/engines/causal-adapter.d.ts.map +1 -0
  227. package/v3/dist/integrations/coherence/engines/causal-adapter.js +348 -0
  228. package/v3/dist/integrations/coherence/engines/causal-adapter.js.map +1 -0
  229. package/v3/dist/integrations/coherence/engines/cohomology-adapter.d.ts +174 -0
  230. package/v3/dist/integrations/coherence/engines/cohomology-adapter.d.ts.map +1 -0
  231. package/v3/dist/integrations/coherence/engines/cohomology-adapter.js +401 -0
  232. package/v3/dist/integrations/coherence/engines/cohomology-adapter.js.map +1 -0
  233. package/v3/dist/integrations/coherence/engines/homotopy-adapter.d.ts +201 -0
  234. package/v3/dist/integrations/coherence/engines/homotopy-adapter.d.ts.map +1 -0
  235. package/v3/dist/integrations/coherence/engines/homotopy-adapter.js +324 -0
  236. package/v3/dist/integrations/coherence/engines/homotopy-adapter.js.map +1 -0
  237. package/v3/dist/integrations/coherence/engines/index.d.ts +20 -0
  238. package/v3/dist/integrations/coherence/engines/index.d.ts.map +1 -0
  239. package/v3/dist/integrations/coherence/engines/index.js +26 -0
  240. package/v3/dist/integrations/coherence/engines/index.js.map +1 -0
  241. package/v3/dist/integrations/coherence/engines/spectral-adapter.d.ts +193 -0
  242. package/v3/dist/integrations/coherence/engines/spectral-adapter.d.ts.map +1 -0
  243. package/v3/dist/integrations/coherence/engines/spectral-adapter.js +476 -0
  244. package/v3/dist/integrations/coherence/engines/spectral-adapter.js.map +1 -0
  245. package/v3/dist/integrations/coherence/engines/witness-adapter.d.ts +175 -0
  246. package/v3/dist/integrations/coherence/engines/witness-adapter.d.ts.map +1 -0
  247. package/v3/dist/integrations/coherence/engines/witness-adapter.js +377 -0
  248. package/v3/dist/integrations/coherence/engines/witness-adapter.js.map +1 -0
  249. package/v3/dist/integrations/coherence/index.d.ts +84 -0
  250. package/v3/dist/integrations/coherence/index.d.ts.map +1 -0
  251. package/v3/dist/integrations/coherence/index.js +114 -0
  252. package/v3/dist/integrations/coherence/index.js.map +1 -0
  253. package/v3/dist/integrations/coherence/threshold-tuner.d.ts +396 -0
  254. package/v3/dist/integrations/coherence/threshold-tuner.d.ts.map +1 -0
  255. package/v3/dist/integrations/coherence/threshold-tuner.js +538 -0
  256. package/v3/dist/integrations/coherence/threshold-tuner.js.map +1 -0
  257. package/v3/dist/integrations/coherence/types.d.ts +879 -0
  258. package/v3/dist/integrations/coherence/types.d.ts.map +1 -0
  259. package/v3/dist/integrations/coherence/types.js +134 -0
  260. package/v3/dist/integrations/coherence/types.js.map +1 -0
  261. package/v3/dist/integrations/coherence/wasm-loader.d.ts +351 -0
  262. package/v3/dist/integrations/coherence/wasm-loader.d.ts.map +1 -0
  263. package/v3/dist/integrations/coherence/wasm-loader.js +842 -0
  264. package/v3/dist/integrations/coherence/wasm-loader.js.map +1 -0
  265. package/v3/dist/integrations/embeddings/base/EmbeddingGenerator.d.ts.map +1 -1
  266. package/v3/dist/integrations/embeddings/base/EmbeddingGenerator.js +1 -0
  267. package/v3/dist/integrations/embeddings/base/EmbeddingGenerator.js.map +1 -1
  268. package/v3/dist/integrations/embeddings/base/types.d.ts +1 -1
  269. package/v3/dist/integrations/embeddings/base/types.d.ts.map +1 -1
  270. package/v3/dist/integrations/embeddings/cache/EmbeddingCache.d.ts.map +1 -1
  271. package/v3/dist/integrations/embeddings/cache/EmbeddingCache.js +1 -0
  272. package/v3/dist/integrations/embeddings/cache/EmbeddingCache.js.map +1 -1
  273. package/v3/dist/integrations/embeddings/index/HNSWIndex.d.ts.map +1 -1
  274. package/v3/dist/integrations/embeddings/index/HNSWIndex.js +4 -1
  275. package/v3/dist/integrations/embeddings/index/HNSWIndex.js.map +1 -1
  276. package/v3/dist/kernel/interfaces.d.ts +8 -1
  277. package/v3/dist/kernel/interfaces.d.ts.map +1 -1
  278. package/v3/dist/learning/aqe-learning-engine.d.ts +272 -0
  279. package/v3/dist/learning/aqe-learning-engine.d.ts.map +1 -0
  280. package/v3/dist/learning/aqe-learning-engine.js +708 -0
  281. package/v3/dist/learning/aqe-learning-engine.js.map +1 -0
  282. package/v3/dist/learning/causal-verifier.d.ts +244 -0
  283. package/v3/dist/learning/causal-verifier.d.ts.map +1 -0
  284. package/v3/dist/learning/causal-verifier.js +300 -0
  285. package/v3/dist/learning/causal-verifier.js.map +1 -0
  286. package/v3/dist/learning/experience-capture.d.ts +266 -0
  287. package/v3/dist/learning/experience-capture.d.ts.map +1 -0
  288. package/v3/dist/learning/experience-capture.js +647 -0
  289. package/v3/dist/learning/experience-capture.js.map +1 -0
  290. package/v3/dist/learning/index.d.ts +8 -0
  291. package/v3/dist/learning/index.d.ts.map +1 -1
  292. package/v3/dist/learning/index.js +16 -0
  293. package/v3/dist/learning/index.js.map +1 -1
  294. package/v3/dist/learning/memory-auditor.d.ts +235 -0
  295. package/v3/dist/learning/memory-auditor.d.ts.map +1 -0
  296. package/v3/dist/learning/memory-auditor.js +478 -0
  297. package/v3/dist/learning/memory-auditor.js.map +1 -0
  298. package/v3/dist/learning/pattern-store.d.ts.map +1 -1
  299. package/v3/dist/learning/pattern-store.js +27 -6
  300. package/v3/dist/learning/pattern-store.js.map +1 -1
  301. package/v3/dist/learning/qe-patterns.d.ts +15 -1
  302. package/v3/dist/learning/qe-patterns.d.ts.map +1 -1
  303. package/v3/dist/learning/qe-patterns.js +26 -5
  304. package/v3/dist/learning/qe-patterns.js.map +1 -1
  305. package/v3/dist/learning/qe-reasoning-bank.d.ts +38 -2
  306. package/v3/dist/learning/qe-reasoning-bank.d.ts.map +1 -1
  307. package/v3/dist/learning/qe-reasoning-bank.js +86 -4
  308. package/v3/dist/learning/qe-reasoning-bank.js.map +1 -1
  309. package/v3/dist/learning/real-qe-reasoning-bank.d.ts +32 -2
  310. package/v3/dist/learning/real-qe-reasoning-bank.d.ts.map +1 -1
  311. package/v3/dist/learning/real-qe-reasoning-bank.js +61 -6
  312. package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
  313. package/v3/dist/learning/token-tracker.d.ts.map +1 -1
  314. package/v3/dist/learning/token-tracker.js +5 -2
  315. package/v3/dist/learning/token-tracker.js.map +1 -1
  316. package/v3/dist/mcp/bundle.js +6698 -303
  317. package/v3/dist/mcp/tools/coherence/audit.d.ts +107 -0
  318. package/v3/dist/mcp/tools/coherence/audit.d.ts.map +1 -0
  319. package/v3/dist/mcp/tools/coherence/audit.js +236 -0
  320. package/v3/dist/mcp/tools/coherence/audit.js.map +1 -0
  321. package/v3/dist/mcp/tools/coherence/check.d.ts +106 -0
  322. package/v3/dist/mcp/tools/coherence/check.d.ts.map +1 -0
  323. package/v3/dist/mcp/tools/coherence/check.js +205 -0
  324. package/v3/dist/mcp/tools/coherence/check.js.map +1 -0
  325. package/v3/dist/mcp/tools/coherence/collapse.d.ts +123 -0
  326. package/v3/dist/mcp/tools/coherence/collapse.d.ts.map +1 -0
  327. package/v3/dist/mcp/tools/coherence/collapse.js +279 -0
  328. package/v3/dist/mcp/tools/coherence/collapse.js.map +1 -0
  329. package/v3/dist/mcp/tools/coherence/consensus.d.ts +100 -0
  330. package/v3/dist/mcp/tools/coherence/consensus.d.ts.map +1 -0
  331. package/v3/dist/mcp/tools/coherence/consensus.js +201 -0
  332. package/v3/dist/mcp/tools/coherence/consensus.js.map +1 -0
  333. package/v3/dist/mcp/tools/coherence/index.d.ts +31 -0
  334. package/v3/dist/mcp/tools/coherence/index.d.ts.map +1 -0
  335. package/v3/dist/mcp/tools/coherence/index.js +42 -0
  336. package/v3/dist/mcp/tools/coherence/index.js.map +1 -0
  337. package/v3/dist/mcp/tools/contract-testing/validate.d.ts +1 -1
  338. package/v3/dist/mcp/tools/contract-testing/validate.d.ts.map +1 -1
  339. package/v3/dist/mcp/tools/contract-testing/validate.js +66 -0
  340. package/v3/dist/mcp/tools/contract-testing/validate.js.map +1 -1
  341. package/v3/dist/mcp/tools/index.d.ts +6 -1
  342. package/v3/dist/mcp/tools/index.d.ts.map +1 -1
  343. package/v3/dist/mcp/tools/index.js +9 -1
  344. package/v3/dist/mcp/tools/index.js.map +1 -1
  345. package/v3/dist/mcp/tools/mincut/index.d.ts +1 -1
  346. package/v3/dist/mcp/tools/mincut/index.d.ts.map +1 -1
  347. package/v3/dist/mcp/tools/mincut/index.js.map +1 -1
  348. package/v3/dist/mcp/tools/registry.d.ts +4 -0
  349. package/v3/dist/mcp/tools/registry.d.ts.map +1 -1
  350. package/v3/dist/mcp/tools/registry.js +5 -0
  351. package/v3/dist/mcp/tools/registry.js.map +1 -1
  352. package/v3/dist/mcp/types.d.ts +1 -1
  353. package/v3/dist/mcp/types.d.ts.map +1 -1
  354. package/v3/dist/shared/utils/safe-expression-evaluator.d.ts +61 -0
  355. package/v3/dist/shared/utils/safe-expression-evaluator.d.ts.map +1 -0
  356. package/v3/dist/shared/utils/safe-expression-evaluator.js +365 -0
  357. package/v3/dist/shared/utils/safe-expression-evaluator.js.map +1 -0
  358. package/v3/dist/strange-loop/belief-reconciler.d.ts +357 -0
  359. package/v3/dist/strange-loop/belief-reconciler.d.ts.map +1 -0
  360. package/v3/dist/strange-loop/belief-reconciler.js +696 -0
  361. package/v3/dist/strange-loop/belief-reconciler.js.map +1 -0
  362. package/v3/dist/strange-loop/index.d.ts +1 -0
  363. package/v3/dist/strange-loop/index.d.ts.map +1 -1
  364. package/v3/dist/strange-loop/index.js +2 -0
  365. package/v3/dist/strange-loop/index.js.map +1 -1
  366. package/v3/dist/strange-loop/strange-loop.d.ts +177 -5
  367. package/v3/dist/strange-loop/strange-loop.d.ts.map +1 -1
  368. package/v3/dist/strange-loop/strange-loop.js +452 -9
  369. package/v3/dist/strange-loop/strange-loop.js.map +1 -1
  370. package/v3/dist/strange-loop/types.d.ts +205 -1
  371. package/v3/dist/strange-loop/types.d.ts.map +1 -1
  372. package/v3/dist/strange-loop/types.js +5 -0
  373. package/v3/dist/strange-loop/types.js.map +1 -1
  374. package/v3/dist/test-scheduling/executors/vitest-executor.d.ts.map +1 -1
  375. package/v3/dist/test-scheduling/executors/vitest-executor.js +7 -2
  376. package/v3/dist/test-scheduling/executors/vitest-executor.js.map +1 -1
  377. package/v3/dist/workflows/browser/workflow-loader.d.ts +1 -0
  378. package/v3/dist/workflows/browser/workflow-loader.d.ts.map +1 -1
  379. package/v3/dist/workflows/browser/workflow-loader.js +11 -16
  380. package/v3/dist/workflows/browser/workflow-loader.js.map +1 -1
  381. package/v3/package.json +5 -1
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Phase Interface - Modular Init System
3
+ * ADR-025: Enhanced Init with Self-Configuration
4
+ *
5
+ * Defines the contract for init phases that can be composed
6
+ * into a pipeline for flexible initialization.
7
+ */
8
+ import type { ProjectAnalysis, AQEInitConfig } from '../types.js';
9
+ /**
10
+ * Result of running an init phase
11
+ */
12
+ export interface PhaseResult<T = unknown> {
13
+ /** Whether the phase succeeded */
14
+ success: boolean;
15
+ /** Phase output data */
16
+ data?: T;
17
+ /** Error if phase failed */
18
+ error?: Error;
19
+ /** Execution duration in milliseconds */
20
+ durationMs: number;
21
+ /** Optional message for logging */
22
+ message?: string;
23
+ /** Whether to skip subsequent phases */
24
+ skipRemaining?: boolean;
25
+ }
26
+ /**
27
+ * Enhancement availability status
28
+ */
29
+ export interface EnhancementStatus {
30
+ claudeFlow: boolean;
31
+ claudeFlowVersion?: string;
32
+ ruvector: boolean;
33
+ ruvectorVersion?: string;
34
+ }
35
+ /**
36
+ * Context passed through init phases
37
+ */
38
+ export interface InitContext {
39
+ /** Project root directory */
40
+ projectRoot: string;
41
+ /** CLI options passed to init */
42
+ options: InitOptions;
43
+ /** Configuration being built up through phases */
44
+ config: Partial<AQEInitConfig>;
45
+ /** Project analysis result (set by analysis phase) */
46
+ analysis?: ProjectAnalysis;
47
+ /** Available enhancements detected */
48
+ enhancements: EnhancementStatus;
49
+ /** Results from completed phases */
50
+ results: Map<string, PhaseResult>;
51
+ /** V2 detection result (if applicable) */
52
+ v2Detection?: V2DetectionResult;
53
+ /** Shared services for phases */
54
+ services: {
55
+ /** Log a message */
56
+ log: (message: string) => void;
57
+ /** Log a warning */
58
+ warn: (message: string) => void;
59
+ /** Log an error */
60
+ error: (message: string) => void;
61
+ };
62
+ }
63
+ /**
64
+ * Options passed to aqe init command
65
+ */
66
+ export interface InitOptions {
67
+ /** Skip wizard and use auto-configuration */
68
+ autoMode?: boolean;
69
+ /** Skip pattern loading */
70
+ skipPatterns?: boolean;
71
+ /** Minimal configuration (no skills, patterns, workers) */
72
+ minimal?: boolean;
73
+ /** Automatically migrate from v2 if detected */
74
+ autoMigrate?: boolean;
75
+ /** Install n8n workflow testing platform */
76
+ withN8n?: boolean;
77
+ /** N8n API configuration */
78
+ n8nApiConfig?: {
79
+ baseUrl?: string;
80
+ apiKey?: string;
81
+ };
82
+ /** Custom wizard answers */
83
+ wizardAnswers?: Record<string, unknown>;
84
+ }
85
+ /**
86
+ * V2 installation detection result
87
+ */
88
+ export interface V2DetectionResult {
89
+ detected: boolean;
90
+ memoryDbPath?: string;
91
+ configPath?: string;
92
+ agentsPath?: string;
93
+ hasMemoryDb: boolean;
94
+ hasConfig: boolean;
95
+ hasAgents: boolean;
96
+ version?: string;
97
+ }
98
+ /**
99
+ * Init phase interface
100
+ * Each phase is a self-contained unit of initialization logic
101
+ */
102
+ export interface InitPhase<TResult = unknown> {
103
+ /** Unique phase name (used as key in results map) */
104
+ readonly name: string;
105
+ /** Human-readable description */
106
+ readonly description: string;
107
+ /** Execution order (lower runs first) */
108
+ readonly order: number;
109
+ /** If true, failure stops the entire init process */
110
+ readonly critical: boolean;
111
+ /** Phase names that must complete before this phase */
112
+ readonly requiresPhases?: readonly string[];
113
+ /** Enhancement names that this phase uses (optional) */
114
+ readonly requiresEnhancements?: readonly string[];
115
+ /**
116
+ * Determine if this phase should run
117
+ * @param context Current init context
118
+ * @returns true if phase should execute
119
+ */
120
+ shouldRun(context: InitContext): Promise<boolean>;
121
+ /**
122
+ * Execute the phase
123
+ * @param context Current init context
124
+ * @returns Phase result with data or error
125
+ */
126
+ execute(context: InitContext): Promise<PhaseResult<TResult>>;
127
+ /**
128
+ * Optional rollback if phase fails and cleanup is needed
129
+ * @param context Current init context
130
+ */
131
+ rollback?(context: InitContext): Promise<void>;
132
+ }
133
+ /**
134
+ * Base class for init phases with common functionality
135
+ */
136
+ export declare abstract class BasePhase<TResult = unknown> implements InitPhase<TResult> {
137
+ abstract readonly name: string;
138
+ abstract readonly description: string;
139
+ abstract readonly order: number;
140
+ abstract readonly critical: boolean;
141
+ readonly requiresPhases?: readonly string[];
142
+ readonly requiresEnhancements?: readonly string[];
143
+ /**
144
+ * Default shouldRun - always returns true
145
+ * Override in subclass for conditional execution
146
+ */
147
+ shouldRun(_context: InitContext): Promise<boolean>;
148
+ /**
149
+ * Execute with timing wrapper
150
+ */
151
+ execute(context: InitContext): Promise<PhaseResult<TResult>>;
152
+ /**
153
+ * Implement phase logic here
154
+ * @param context Init context
155
+ * @returns Phase result data
156
+ */
157
+ protected abstract run(context: InitContext): Promise<TResult>;
158
+ /**
159
+ * Check if required phases have completed successfully
160
+ */
161
+ protected checkDependencies(context: InitContext): boolean;
162
+ /**
163
+ * Check if required enhancements are available
164
+ */
165
+ protected checkEnhancements(context: InitContext): boolean;
166
+ }
167
+ /**
168
+ * Phase registry for managing available phases
169
+ */
170
+ export declare class PhaseRegistry {
171
+ private phases;
172
+ /**
173
+ * Register a phase
174
+ */
175
+ register(phase: InitPhase): void;
176
+ /**
177
+ * Get a phase by name
178
+ */
179
+ get(name: string): InitPhase | undefined;
180
+ /**
181
+ * Get all phases sorted by order
182
+ */
183
+ getOrdered(): InitPhase[];
184
+ /**
185
+ * Check if a phase is registered
186
+ */
187
+ has(name: string): boolean;
188
+ }
189
+ /**
190
+ * Create a new phase registry with default phases
191
+ */
192
+ export declare function createPhaseRegistry(): PhaseRegistry;
193
+ //# sourceMappingURL=phase-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-interface.d.ts","sourceRoot":"","sources":["../../../src/init/phases/phase-interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Phase Interface - Modular Init System
3
+ * ADR-025: Enhanced Init with Self-Configuration
4
+ *
5
+ * Defines the contract for init phases that can be composed
6
+ * into a pipeline for flexible initialization.
7
+ */
8
+ /**
9
+ * Base class for init phases with common functionality
10
+ */
11
+ export class BasePhase {
12
+ requiresPhases;
13
+ requiresEnhancements;
14
+ /**
15
+ * Default shouldRun - always returns true
16
+ * Override in subclass for conditional execution
17
+ */
18
+ async shouldRun(_context) {
19
+ return true;
20
+ }
21
+ /**
22
+ * Execute with timing wrapper
23
+ */
24
+ async execute(context) {
25
+ const startTime = Date.now();
26
+ try {
27
+ const data = await this.run(context);
28
+ return {
29
+ success: true,
30
+ data,
31
+ durationMs: Date.now() - startTime,
32
+ message: `${this.description} completed`,
33
+ };
34
+ }
35
+ catch (error) {
36
+ return {
37
+ success: false,
38
+ error: error instanceof Error ? error : new Error(String(error)),
39
+ durationMs: Date.now() - startTime,
40
+ message: `${this.description} failed: ${error instanceof Error ? error.message : String(error)}`,
41
+ };
42
+ }
43
+ }
44
+ /**
45
+ * Check if required phases have completed successfully
46
+ */
47
+ checkDependencies(context) {
48
+ if (!this.requiresPhases?.length)
49
+ return true;
50
+ for (const phaseName of this.requiresPhases) {
51
+ const result = context.results.get(phaseName);
52
+ if (!result?.success) {
53
+ context.services.warn(`Phase ${this.name} requires ${phaseName} which has not completed`);
54
+ return false;
55
+ }
56
+ }
57
+ return true;
58
+ }
59
+ /**
60
+ * Check if required enhancements are available
61
+ */
62
+ checkEnhancements(context) {
63
+ if (!this.requiresEnhancements?.length)
64
+ return true;
65
+ for (const enhancement of this.requiresEnhancements) {
66
+ const available = enhancement === 'claudeFlow'
67
+ ? context.enhancements.claudeFlow
68
+ : enhancement === 'ruvector'
69
+ ? context.enhancements.ruvector
70
+ : false;
71
+ if (!available) {
72
+ context.services.warn(`Phase ${this.name} requires ${enhancement} which is not available`);
73
+ return false;
74
+ }
75
+ }
76
+ return true;
77
+ }
78
+ }
79
+ /**
80
+ * Phase registry for managing available phases
81
+ */
82
+ export class PhaseRegistry {
83
+ phases = new Map();
84
+ /**
85
+ * Register a phase
86
+ */
87
+ register(phase) {
88
+ if (this.phases.has(phase.name)) {
89
+ throw new Error(`Phase ${phase.name} is already registered`);
90
+ }
91
+ this.phases.set(phase.name, phase);
92
+ }
93
+ /**
94
+ * Get a phase by name
95
+ */
96
+ get(name) {
97
+ return this.phases.get(name);
98
+ }
99
+ /**
100
+ * Get all phases sorted by order
101
+ */
102
+ getOrdered() {
103
+ return Array.from(this.phases.values())
104
+ .sort((a, b) => a.order - b.order);
105
+ }
106
+ /**
107
+ * Check if a phase is registered
108
+ */
109
+ has(name) {
110
+ return this.phases.has(name);
111
+ }
112
+ }
113
+ /**
114
+ * Create a new phase registry with default phases
115
+ */
116
+ export function createPhaseRegistry() {
117
+ return new PhaseRegistry();
118
+ }
119
+ //# sourceMappingURL=phase-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-interface.js","sourceRoot":"","sources":["../../../src/init/phases/phase-interface.ts"],"names":[],"mappings":"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"}
@@ -112,7 +112,10 @@ export declare class ExperienceReplay {
112
112
  private db;
113
113
  private prepared;
114
114
  private initialized;
115
- private embeddingIndex;
115
+ private hnswIndex;
116
+ private idToExperienceId;
117
+ private experienceIdToHnswId;
118
+ private nextHnswId;
116
119
  private recentExperiences;
117
120
  private stats;
118
121
  constructor(config?: Partial<ExperienceReplayConfig>);
@@ -129,7 +132,8 @@ export declare class ExperienceReplay {
129
132
  */
130
133
  private prepareStatements;
131
134
  /**
132
- * Load embeddings into memory index for fast similarity search
135
+ * Load embeddings into HNSW index for O(log n) similarity search
136
+ * Performance: 150x-12,500x faster than linear scan
133
137
  */
134
138
  private loadEmbeddingIndex;
135
139
  /**
@@ -150,7 +154,8 @@ export declare class ExperienceReplay {
150
154
  */
151
155
  getGuidance(task: string, domain?: QEDomain): Promise<ExperienceGuidance | null>;
152
156
  /**
153
- * Find experiences similar to a task
157
+ * Find experiences similar to a task using HNSW index
158
+ * Performance: O(log n) instead of O(n) - 150x-12,500x faster for large collections
154
159
  */
155
160
  findSimilarExperiences(task: string, domain?: QEDomain, limit?: number): Promise<Array<{
156
161
  experience: Experience;
@@ -181,6 +186,7 @@ export declare class ExperienceReplay {
181
186
  totalTokensSaved: number;
182
187
  avgSimilarityOnRetrieval: number;
183
188
  embeddingIndexSize: number;
189
+ hnswIndexSize: number;
184
190
  recentBufferSize: number;
185
191
  };
186
192
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"experience-replay.d.ts","sourceRoot":"","sources":["../../../../src/integrations/agentic-flow/reasoning-bank/experience-replay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"experience-replay.d.ts","sourceRoot":"","sources":["../../../../src/integrations/agentic-flow/reasoning-bank/experience-replay.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,9 @@
14
14
  */
15
15
  import { v4 as uuidv4 } from 'uuid';
16
16
  import { getUnifiedMemory } from '../../../kernel/unified-memory.js';
17
- import { computeRealEmbedding, cosineSimilarity, } from '../../../learning/real-embeddings.js';
17
+ import { computeRealEmbedding, } from '../../../learning/real-embeddings.js';
18
18
  import { CircularBuffer } from '../../../shared/utils/circular-buffer.js';
19
+ import { HNSWEmbeddingIndex } from '../../embeddings/index/HNSWIndex.js';
19
20
  const DEFAULT_CONFIG = {
20
21
  minQualityThreshold: 0.6,
21
22
  maxExperiencesPerDomain: 500,
@@ -53,8 +54,12 @@ export class ExperienceReplay {
53
54
  db = null;
54
55
  prepared = new Map();
55
56
  initialized = false;
56
- // In-memory HNSW-like index for fast similarity search
57
- embeddingIndex = new Map();
57
+ // Real HNSW index for O(log n) similarity search (150x-12,500x faster than linear scan)
58
+ hnswIndex;
59
+ // Mapping from HNSW numeric IDs to experience string IDs
60
+ idToExperienceId = new Map();
61
+ experienceIdToHnswId = new Map();
62
+ nextHnswId = 0;
58
63
  // Recent experiences buffer
59
64
  recentExperiences;
60
65
  // Statistics
@@ -68,6 +73,14 @@ export class ExperienceReplay {
68
73
  constructor(config = {}) {
69
74
  this.config = { ...DEFAULT_CONFIG, ...config };
70
75
  this.recentExperiences = new CircularBuffer(100);
76
+ // Initialize real HNSW index with optimal parameters for experience search
77
+ this.hnswIndex = new HNSWEmbeddingIndex({
78
+ dimension: 384, // all-MiniLM-L6-v2 dimension
79
+ M: 16, // Connectivity parameter (higher = more accurate, more memory)
80
+ efConstruction: 200, // Construction time accuracy (higher = better index quality)
81
+ efSearch: 100, // Search time accuracy (higher = more accurate, slower)
82
+ metric: 'cosine',
83
+ });
71
84
  }
72
85
  /**
73
86
  * Initialize with SQLite persistence
@@ -179,21 +192,41 @@ export class ExperienceReplay {
179
192
  `));
180
193
  }
181
194
  /**
182
- * Load embeddings into memory index for fast similarity search
195
+ * Load embeddings into HNSW index for O(log n) similarity search
196
+ * Performance: 150x-12,500x faster than linear scan
183
197
  */
184
198
  async loadEmbeddingIndex() {
185
199
  const stmt = this.prepared.get('getAllEmbeddings');
186
200
  if (!stmt)
187
201
  return;
188
202
  const rows = stmt.all();
189
- this.embeddingIndex.clear();
203
+ // Clear existing mappings
204
+ this.idToExperienceId.clear();
205
+ this.experienceIdToHnswId.clear();
206
+ this.hnswIndex.clearIndex('experiences');
207
+ this.nextHnswId = 0;
208
+ // Build HNSW index with all embeddings
190
209
  for (const row of rows) {
191
210
  if (row.embedding && row.embedding_dimension) {
192
211
  const embedding = this.bufferToFloatArray(row.embedding, row.embedding_dimension);
193
- this.embeddingIndex.set(row.id, { id: row.id, embedding });
212
+ const hnswId = this.nextHnswId++;
213
+ // Create IEmbedding for HNSW index
214
+ const iEmbedding = {
215
+ vector: embedding,
216
+ dimension: 384,
217
+ namespace: 'experiences',
218
+ text: row.id, // Use ID as text identifier
219
+ timestamp: Date.now(),
220
+ quantization: 'none',
221
+ metadata: {},
222
+ };
223
+ this.hnswIndex.addEmbedding(iEmbedding, hnswId);
224
+ // Track ID mappings
225
+ this.idToExperienceId.set(hnswId, row.id);
226
+ this.experienceIdToHnswId.set(row.id, hnswId);
194
227
  }
195
228
  }
196
- console.log(`[ExperienceReplay] Loaded ${this.embeddingIndex.size} embeddings into index`);
229
+ console.log(`[ExperienceReplay] Loaded ${this.idToExperienceId.size} embeddings into HNSW index`);
197
230
  }
198
231
  /**
199
232
  * Store a successful trajectory as a reusable experience
@@ -241,9 +274,21 @@ export class ExperienceReplay {
241
274
  const embeddingBuffer = embedding ? this.floatArrayToBuffer(embedding) : null;
242
275
  insertStmt.run(id, trajectory.id, trajectory.task, domain, strategy, JSON.stringify(keyActions), trajectory.metrics.efficiencyScore, embeddingBuffer, embedding?.length ?? null, JSON.stringify(trajectory.metrics), JSON.stringify(tags));
243
276
  }
244
- // Update embedding index
277
+ // Add to HNSW index for fast similarity search
245
278
  if (embedding) {
246
- this.embeddingIndex.set(id, { id, embedding });
279
+ const hnswId = this.nextHnswId++;
280
+ const iEmbedding = {
281
+ vector: embedding,
282
+ dimension: 384,
283
+ namespace: 'experiences',
284
+ text: id, // Use ID as text identifier
285
+ timestamp: Date.now(),
286
+ quantization: 'none',
287
+ metadata: {},
288
+ };
289
+ this.hnswIndex.addEmbedding(iEmbedding, hnswId);
290
+ this.idToExperienceId.set(hnswId, id);
291
+ this.experienceIdToHnswId.set(id, hnswId);
247
292
  }
248
293
  // Add to recent buffer
249
294
  this.recentExperiences.push(experience);
@@ -316,29 +361,52 @@ export class ExperienceReplay {
316
361
  };
317
362
  }
318
363
  /**
319
- * Find experiences similar to a task
364
+ * Find experiences similar to a task using HNSW index
365
+ * Performance: O(log n) instead of O(n) - 150x-12,500x faster for large collections
320
366
  */
321
367
  async findSimilarExperiences(task, domain, limit) {
322
368
  this.ensureInitialized();
323
369
  const k = limit ?? this.config.topK;
370
+ // Check if index is empty
371
+ if (this.idToExperienceId.size === 0) {
372
+ return [];
373
+ }
324
374
  // Generate embedding for the task
325
375
  const taskEmbedding = await computeRealEmbedding(task, this.config.embedding);
326
- // Search embedding index
327
- const scored = [];
328
- for (const [id, entry] of this.embeddingIndex.entries()) {
329
- const similarity = cosineSimilarity(taskEmbedding, entry.embedding);
330
- if (similarity >= this.config.similarityThreshold) {
331
- scored.push({ id, similarity });
332
- }
333
- }
334
- // Sort by similarity
335
- scored.sort((a, b) => b.similarity - a.similarity);
336
- // Get top K and load full experiences
376
+ // Create query embedding for HNSW search
377
+ const queryEmbedding = {
378
+ vector: taskEmbedding,
379
+ dimension: 384,
380
+ namespace: 'experiences',
381
+ text: task, // Query text
382
+ timestamp: Date.now(),
383
+ quantization: 'none',
384
+ metadata: {},
385
+ };
386
+ // Use HNSW O(log n) search instead of linear scan
387
+ // Request more results to account for domain filtering and similarity threshold
388
+ const searchLimit = domain ? k * 4 : k * 2;
389
+ const hnswResults = this.hnswIndex.search(queryEmbedding, {
390
+ limit: searchLimit,
391
+ namespace: 'experiences',
392
+ });
393
+ // Convert HNSW results to experiences
337
394
  const results = [];
338
395
  const getStmt = this.prepared.get('getExperience');
339
- for (const { id, similarity } of scored.slice(0, k * 2)) {
396
+ for (const { id: hnswId, distance } of hnswResults) {
397
+ // Convert HNSW distance to similarity (cosine distance to similarity)
398
+ // For cosine metric: similarity = 1 - distance (hnswlib returns distance in [0, 2])
399
+ const similarity = 1 - distance;
400
+ // Apply similarity threshold
401
+ if (similarity < this.config.similarityThreshold) {
402
+ continue;
403
+ }
404
+ // Map HNSW ID back to experience ID
405
+ const experienceId = this.idToExperienceId.get(hnswId);
406
+ if (!experienceId)
407
+ continue;
340
408
  if (getStmt) {
341
- const row = getStmt.get(id);
409
+ const row = getStmt.get(experienceId);
342
410
  if (row) {
343
411
  // Filter by domain if specified
344
412
  if (domain && row.domain !== domain)
@@ -416,7 +484,13 @@ export class ExperienceReplay {
416
484
  for (const { id } of toRemove) {
417
485
  if (deleteStmt) {
418
486
  deleteStmt.run(id);
419
- this.embeddingIndex.delete(id);
487
+ // Note: HNSW doesn't support deletion, but we remove from ID mappings
488
+ // The orphaned entry will be ignored during search
489
+ const hnswId = this.experienceIdToHnswId.get(id);
490
+ if (hnswId !== undefined) {
491
+ this.idToExperienceId.delete(hnswId);
492
+ this.experienceIdToHnswId.delete(id);
493
+ }
420
494
  removed++;
421
495
  }
422
496
  if (domainCount - removed <= this.config.maxExperiencesPerDomain)
@@ -434,7 +508,8 @@ export class ExperienceReplay {
434
508
  getStats() {
435
509
  return {
436
510
  ...this.stats,
437
- embeddingIndexSize: this.embeddingIndex.size,
511
+ embeddingIndexSize: this.idToExperienceId.size, // For backward compatibility
512
+ hnswIndexSize: this.hnswIndex.getSize('experiences'),
438
513
  recentBufferSize: this.recentExperiences.length,
439
514
  };
440
515
  }
@@ -442,7 +517,9 @@ export class ExperienceReplay {
442
517
  * Dispose and cleanup
443
518
  */
444
519
  async dispose() {
445
- this.embeddingIndex.clear();
520
+ this.hnswIndex.clearIndex('experiences');
521
+ this.idToExperienceId.clear();
522
+ this.experienceIdToHnswId.clear();
446
523
  this.recentExperiences.clear();
447
524
  this.prepared.clear();
448
525
  this.db = null;