agentic-qe 3.9.0 → 3.9.1

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 (411) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +32 -0
  3. package/dist/audit/witness-chain.d.ts +1 -1
  4. package/dist/cli/bundle.js +5 -5
  5. package/dist/cli/chunks/adapter-NTM4ZH3P.js +2 -0
  6. package/dist/cli/chunks/{agent-booster-wasm-PQYB7VRU.js → agent-booster-wasm-UH2J6BNA.js} +2 -2
  7. package/dist/cli/chunks/{agent-handler-QDAB5NQS.js → agent-handler-ZCBWQE3X.js} +2 -2
  8. package/dist/cli/chunks/agent-memory-branch-2BAVI7UW.js +2 -0
  9. package/dist/cli/chunks/aqe-learning-engine-RVX6MPYK.js +2 -0
  10. package/dist/cli/chunks/{audit-S7JUYYVP.js → audit-G5UIJBSQ.js} +2 -2
  11. package/dist/cli/chunks/base-7HKNQ6UP.js +2 -0
  12. package/dist/cli/chunks/better-sqlite3-YHIAPPVT.js +2 -0
  13. package/dist/cli/chunks/brain-handler-5EE3J5PR.js +68 -0
  14. package/dist/cli/chunks/{branch-enumerator-XK4V5W7L.js → branch-enumerator-OV54PID5.js} +2 -2
  15. package/dist/cli/chunks/{browser-PALA5PL3.js → browser-7RZGKOEO.js} +2 -2
  16. package/dist/cli/chunks/browser-workflow-UOFSQK7X.js +2 -0
  17. package/dist/cli/chunks/{chunk-JJO7Y4H3.js → chunk-24E47G3D.js} +3 -3
  18. package/dist/cli/chunks/{chunk-UFUVUO3J.js → chunk-35H73OPP.js} +2 -2
  19. package/dist/cli/chunks/{chunk-7R6YMLVS.js → chunk-36X2O3BL.js} +2 -2
  20. package/dist/cli/chunks/{chunk-OI5NGQO2.js → chunk-3JESHZQM.js} +2 -2
  21. package/dist/cli/chunks/{chunk-72WOAVK6.js → chunk-3VAKR43Z.js} +1 -1
  22. package/dist/cli/chunks/chunk-3WQNW6CH.js +2 -0
  23. package/dist/cli/chunks/{chunk-24FKIJNC.js → chunk-43M6Y6VF.js} +2 -2
  24. package/dist/cli/chunks/{chunk-ZDATDCYN.js → chunk-4BHOAQJH.js} +1 -1
  25. package/dist/cli/chunks/{chunk-XIBDETCS.js → chunk-4LWXZCSD.js} +2 -2
  26. package/dist/cli/chunks/{chunk-3IUNFTIF.js → chunk-4TNXEANY.js} +1 -1
  27. package/dist/cli/chunks/{chunk-RTGGL7D7.js → chunk-4XBY5JDT.js} +2 -2
  28. package/dist/cli/chunks/chunk-4XREPCBZ.js +2 -0
  29. package/dist/cli/chunks/{chunk-TLHP5EII.js → chunk-5GPTM2RV.js} +1 -1
  30. package/dist/cli/chunks/{chunk-FGA7VIFR.js → chunk-5KBQQP3X.js} +3 -3
  31. package/dist/cli/chunks/{chunk-3ZOONQG6.js → chunk-5LDBKZ6P.js} +1 -1
  32. package/dist/cli/chunks/{chunk-LNQIY6BP.js → chunk-6BSJNG2S.js} +2 -2
  33. package/dist/cli/chunks/{chunk-EHDQJQ6Y.js → chunk-6YC24TPL.js} +5 -5
  34. package/dist/cli/chunks/{chunk-YVA65UZL.js → chunk-7ATLJCSG.js} +1 -1
  35. package/dist/cli/chunks/{chunk-U5RN7YQW.js → chunk-7JQTHPCD.js} +2 -2
  36. package/dist/cli/chunks/{chunk-ESVQ6MEB.js → chunk-7YUOUVN7.js} +2 -2
  37. package/dist/cli/chunks/{chunk-YAGODYIG.js → chunk-7ZNINH6J.js} +3 -3
  38. package/dist/cli/chunks/{chunk-4VUPRTVX.js → chunk-A57BEPL7.js} +2 -2
  39. package/dist/cli/chunks/{chunk-N2NS2PHA.js → chunk-AFPMCMVX.js} +2 -2
  40. package/dist/cli/chunks/{chunk-RU5WAHB7.js → chunk-AREIP4FX.js} +2 -2
  41. package/dist/cli/chunks/{chunk-XO6PVK2P.js → chunk-B2I7BJLL.js} +2 -2
  42. package/dist/cli/chunks/{chunk-HY6PMO5W.js → chunk-BEHP3DEF.js} +2 -2
  43. package/dist/cli/chunks/{chunk-YPFOCNOE.js → chunk-C24ZDUCM.js} +1 -1
  44. package/dist/cli/chunks/{chunk-CL6POIX4.js → chunk-D4PSFWND.js} +1 -1
  45. package/dist/cli/chunks/{chunk-YR6ZZGH7.js → chunk-D55PSO5D.js} +1 -1
  46. package/dist/cli/chunks/{chunk-4YS3IJ45.js → chunk-DC3HPOOJ.js} +1 -1
  47. package/dist/cli/chunks/chunk-DMGLX76J.js +180 -0
  48. package/dist/cli/chunks/{chunk-NZ2VCPN4.js → chunk-E33KQBMW.js} +2 -2
  49. package/dist/cli/chunks/{chunk-YANUP2RO.js → chunk-EQFZQPFN.js} +1 -1
  50. package/dist/cli/chunks/{chunk-TWUWL5EJ.js → chunk-FPRL6UDF.js} +2 -2
  51. package/dist/cli/chunks/{chunk-GRUUQAR6.js → chunk-FRNB4CH2.js} +2 -2
  52. package/dist/cli/chunks/{chunk-WBQSXPBI.js → chunk-FWDKVTK4.js} +2 -2
  53. package/dist/cli/chunks/chunk-GFNUESMU.js +2 -0
  54. package/dist/cli/chunks/{chunk-JBANAPWG.js → chunk-GJW6V35N.js} +1 -1
  55. package/dist/cli/chunks/{chunk-BULKFVYX.js → chunk-GLIFZWV2.js} +1 -1
  56. package/dist/cli/chunks/{chunk-WJ3DLOXF.js → chunk-GNUUBTSX.js} +2 -2
  57. package/dist/cli/chunks/{chunk-MZOFWJTM.js → chunk-HAUXLXKZ.js} +2 -2
  58. package/dist/cli/chunks/{chunk-X3KI6JOY.js → chunk-HTXSUTWL.js} +2 -2
  59. package/dist/cli/chunks/chunk-I5WZ2NM2.js +95 -0
  60. package/dist/cli/chunks/{chunk-BLBRY5UD.js → chunk-I7TA453K.js} +2 -2
  61. package/dist/cli/chunks/{chunk-5T2ZQWKF.js → chunk-IF6GW6IY.js} +2 -2
  62. package/dist/cli/chunks/{chunk-GKNNSCLC.js → chunk-IHWSNYL2.js} +2 -2
  63. package/dist/cli/chunks/chunk-IJKYJGJL.js +2 -0
  64. package/dist/cli/chunks/{chunk-3ADGXLTM.js → chunk-IQPXANCE.js} +1 -1
  65. package/dist/cli/chunks/{chunk-VOS4NQSF.js → chunk-JCEY7RLP.js} +2 -2
  66. package/dist/cli/chunks/{chunk-WGMPEW2T.js → chunk-JSOBRKMA.js} +2 -2
  67. package/dist/cli/chunks/{chunk-GPQ57KA4.js → chunk-KIGRLIU4.js} +2 -2
  68. package/dist/cli/chunks/{chunk-IFNIIK34.js → chunk-L4H54Z27.js} +3 -3
  69. package/dist/cli/chunks/{chunk-CS2KS7LP.js → chunk-LCOEBFAB.js} +1 -1
  70. package/dist/cli/chunks/chunk-MZ54VM6A.js +2 -0
  71. package/dist/cli/chunks/{chunk-IAV2JMIX.js → chunk-NB47YT6A.js} +2 -2
  72. package/dist/cli/chunks/{chunk-B36CDR4U.js → chunk-NG3BKE7V.js} +2 -2
  73. package/dist/cli/chunks/{chunk-WIEC7VKK.js → chunk-NG4TE3OW.js} +2 -2
  74. package/dist/cli/chunks/{chunk-Y7BHKZFJ.js → chunk-O636JKJR.js} +2 -2
  75. package/dist/cli/chunks/{chunk-BTREG4IW.js → chunk-O6QQ4HLS.js} +2 -2
  76. package/dist/cli/chunks/{chunk-MDUHYUHF.js → chunk-OFNIQCGX.js} +2 -2
  77. package/dist/cli/chunks/{chunk-JXM26HEE.js → chunk-OTSJU5LH.js} +2 -2
  78. package/dist/cli/chunks/{chunk-AFLLQ5PP.js → chunk-POLFT2PQ.js} +2 -2
  79. package/dist/cli/chunks/{chunk-XLRQYLWW.js → chunk-QAYTL6KC.js} +1 -1
  80. package/dist/cli/chunks/{chunk-AKE543X2.js → chunk-QMFP5OKH.js} +2 -2
  81. package/dist/cli/chunks/{chunk-OLHKGP35.js → chunk-RAJO7VML.js} +2 -2
  82. package/dist/cli/chunks/{chunk-5SKGFSKD.js → chunk-RKIGOARX.js} +2 -2
  83. package/dist/cli/chunks/{chunk-IGJPMN4I.js → chunk-RU6Q5HOC.js} +1 -1
  84. package/dist/cli/chunks/chunk-RV6SGDET.js +2 -0
  85. package/dist/cli/chunks/chunk-RWXI7XAR.js +2 -0
  86. package/dist/cli/chunks/{chunk-3NZLZHJI.js → chunk-RXVYOXDB.js} +1 -1
  87. package/dist/cli/chunks/{chunk-7VDBAVTY.js → chunk-SGRN6JFB.js} +2 -2
  88. package/dist/cli/chunks/{chunk-BPWXXEH2.js → chunk-SVNX4UWR.js} +128 -128
  89. package/dist/cli/chunks/{chunk-B6LLWYQ6.js → chunk-TL7ABIMP.js} +2 -2
  90. package/dist/cli/chunks/{chunk-6EOS7KX2.js → chunk-TOLYWONQ.js} +2 -2
  91. package/dist/cli/chunks/{chunk-XRE2HCWG.js → chunk-TPXYS3WG.js} +1 -1
  92. package/dist/cli/chunks/chunk-U5JQGRHZ.js +2 -0
  93. package/dist/cli/chunks/{chunk-SUSEVMZT.js → chunk-UB7RGVKO.js} +1 -1
  94. package/dist/cli/chunks/{chunk-4YOMLWEK.js → chunk-UBKK7KCR.js} +1 -1
  95. package/dist/cli/chunks/chunk-UMGWGX7C.js +2 -0
  96. package/dist/cli/chunks/chunk-UN4PA4M2.js +2 -0
  97. package/dist/cli/chunks/{chunk-N4TL73TH.js → chunk-US7INRP2.js} +8 -8
  98. package/dist/cli/chunks/{chunk-LHJQD2VU.js → chunk-UWDBFPHQ.js} +68 -68
  99. package/dist/cli/chunks/{chunk-4I2IOUS4.js → chunk-UZZCWWIG.js} +1 -1
  100. package/dist/cli/chunks/{chunk-BXAXGEFC.js → chunk-V4HM4QAO.js} +5 -5
  101. package/dist/cli/chunks/{chunk-2E5NQNSU.js → chunk-V4U3CTS2.js} +11 -11
  102. package/dist/cli/chunks/{chunk-XT2V2322.js → chunk-VCCMCFDU.js} +2 -2
  103. package/dist/cli/chunks/{chunk-2BZFNEN2.js → chunk-VEWIT6VN.js} +1 -1
  104. package/dist/cli/chunks/{chunk-4VBTXZRM.js → chunk-VNYGVG4Y.js} +2 -2
  105. package/dist/cli/chunks/{chunk-BGXNSCXX.js → chunk-VO3OVD5D.js} +1 -1
  106. package/dist/cli/chunks/{chunk-6SVX4DJC.js → chunk-VY74OMGQ.js} +3 -3
  107. package/dist/cli/chunks/{chunk-HRO6OZQD.js → chunk-WDJBGXC2.js} +1 -1
  108. package/dist/cli/chunks/chunk-WDV6TN7E.js +65 -0
  109. package/dist/cli/chunks/{chunk-YW2THB5Q.js → chunk-WLXEDOG4.js} +2 -2
  110. package/dist/cli/chunks/chunk-WXXAAXNS.js +12 -0
  111. package/dist/cli/chunks/{chunk-VSVXUTJN.js → chunk-X4MZYBOU.js} +2 -2
  112. package/dist/cli/chunks/{chunk-3IHG3WOY.js → chunk-XE2YAYU5.js} +3 -3
  113. package/dist/cli/chunks/chunk-XP6XKBNW.js +2 -0
  114. package/dist/cli/chunks/{chunk-JRYGQO2W.js → chunk-XPB6ZVQY.js} +1 -1
  115. package/dist/cli/chunks/chunk-XRVUSKQV.js +1 -0
  116. package/dist/cli/chunks/{chunk-ZAPS3UGQ.js → chunk-XSITQBYB.js} +3 -3
  117. package/dist/cli/chunks/{chunk-BDIEMZ22.js → chunk-XTLA4F5Z.js} +2 -2
  118. package/dist/cli/chunks/{chunk-FEKY7T6Q.js → chunk-XU6L2VJY.js} +2 -2
  119. package/dist/cli/chunks/chunk-XUFHYPZK.js +2 -0
  120. package/dist/cli/chunks/{chunk-UQHYFOBX.js → chunk-Y2ZEDXTV.js} +2 -2
  121. package/dist/cli/chunks/{chunk-CWFB6BSA.js → chunk-YQWB4QUP.js} +4 -4
  122. package/dist/cli/chunks/chunk-YUQIXT3G.js +79 -0
  123. package/dist/cli/chunks/chunk-YYYB2JN5.js +2 -0
  124. package/dist/cli/chunks/{chunk-GAOJV3OX.js → chunk-ZEUVPLGX.js} +2 -2
  125. package/dist/cli/chunks/{chunk-KP5NUODU.js → chunk-ZSRQHJEW.js} +1 -1
  126. package/dist/cli/chunks/{ci-J374KDLI.js → ci-N4NTYAAI.js} +2 -2
  127. package/dist/cli/chunks/ci-output-XYR2PSYH.js +2 -0
  128. package/dist/cli/chunks/{claude-flow-setup-245JLJCN.js → claude-flow-setup-FX7PRBJV.js} +2 -2
  129. package/dist/cli/chunks/client-CRRENRK4.js +2 -0
  130. package/dist/cli/chunks/{cline-installer-LBA2M5N3.js → cline-installer-GTHQOK7U.js} +2 -2
  131. package/dist/cli/chunks/{code-U4N4WONM.js → code-4G6ZHVNI.js} +2 -2
  132. package/dist/cli/chunks/{code-index-extractor-A57Z6BO4.js → code-index-extractor-MKJTP5AK.js} +2 -2
  133. package/dist/cli/chunks/{codex-installer-UXMK2N4T.js → codex-installer-UGS773DT.js} +2 -2
  134. package/dist/cli/chunks/{completions-W66BSCOE.js → completions-B3BXNXAU.js} +2 -2
  135. package/dist/cli/chunks/complexity-analyzer-PMN77CUP.js +2 -0
  136. package/dist/cli/chunks/{continuedev-installer-LRFZ2SJM.js → continuedev-installer-3DYKSIP3.js} +2 -2
  137. package/dist/cli/chunks/{copilot-installer-CQ3JYBIB.js → copilot-installer-IUC5HDHD.js} +2 -2
  138. package/dist/cli/chunks/cost-tracker-GSGQ7O5T.js +2 -0
  139. package/dist/cli/chunks/{coverage-4PUEQXAY.js → coverage-PO72QC3P.js} +3 -3
  140. package/dist/cli/chunks/cross-domain-router-FSCGJG3B.js +2 -0
  141. package/dist/cli/chunks/{cursor-installer-JZEDEDHA.js → cursor-installer-FK53S3ZL.js} +2 -2
  142. package/dist/cli/chunks/{daemon-B7TWGHXQ.js → daemon-4UIQTQ73.js} +3 -3
  143. package/dist/cli/chunks/dag-attention-scheduler-ZGIMLECE.js +2 -0
  144. package/dist/cli/chunks/detect-XXHLTLL7.js +2 -0
  145. package/dist/cli/chunks/{domain-handler-FT5FLZWL.js → domain-handler-PPGFP7P4.js} +2 -2
  146. package/dist/cli/chunks/domain-transfer-Q5UAE65W.js +2 -0
  147. package/dist/cli/chunks/dream-PONKQULG.js +2 -0
  148. package/dist/cli/chunks/esm-node-XLWDJRBX.js +2 -0
  149. package/dist/cli/chunks/{eval-GHMPFGWV.js → eval-JVJKHSTQ.js} +2 -2
  150. package/dist/cli/chunks/{fast-paths-B3R647KN.js → fast-paths-3KX4ZV66.js} +2 -2
  151. package/dist/cli/chunks/feature-flags-2NOVE7DL.js +2 -0
  152. package/dist/cli/chunks/{feature-flags-DWS7ARSX.js → feature-flags-GKHHG2I2.js} +2 -2
  153. package/dist/cli/chunks/file-discovery-XFSGQNM3.js +2 -0
  154. package/dist/cli/chunks/{fleet-EKOKMOMW.js → fleet-FOIDAXLR.js} +3 -3
  155. package/dist/cli/chunks/gnn-wrapper-HPCQREKP.js +2 -0
  156. package/dist/cli/chunks/{heartbeat-handler-MBBS4IBU.js → heartbeat-handler-HTR3EFFV.js} +4 -4
  157. package/dist/cli/chunks/{heartbeat-scheduler-XDGMOT7X.js → heartbeat-scheduler-NZQWN7CH.js} +2 -2
  158. package/dist/cli/chunks/hnsw-adapter-BNA5WUAB.js +2 -0
  159. package/dist/cli/chunks/hnsw-index-RQIIAE7S.js +2 -0
  160. package/dist/cli/chunks/hnsw-legacy-bridge-H6OA3AA3.js +2 -0
  161. package/dist/cli/chunks/hnswlib-node-FF27BDMD.js +2 -0
  162. package/dist/cli/chunks/{hooks-L5VLZGEK.js → hooks-63NZQ7NH.js} +6 -6
  163. package/dist/cli/chunks/hypergraph-engine-XMSLA4XH.js +2 -0
  164. package/dist/cli/chunks/{hypergraph-handler-3HDGB5SZ.js → hypergraph-handler-ID6J6GS2.js} +3 -3
  165. package/dist/cli/chunks/impact-analyzer-FS2UNVP4.js +2 -0
  166. package/dist/cli/chunks/{init-handler-JDET6WUN.js → init-handler-CIKZGGAY.js} +6 -6
  167. package/dist/cli/chunks/init-wizard-TUU5PPY6.js +2 -0
  168. package/dist/cli/chunks/kernel-XFG42WAG.js +2 -0
  169. package/dist/cli/chunks/{kilocode-installer-GZZG5AFW.js → kilocode-installer-N7NLISYY.js} +2 -2
  170. package/dist/cli/chunks/{kiro-installer-IWNY5TKH.js → kiro-installer-U6XIPAT3.js} +2 -2
  171. package/dist/cli/chunks/knowledge-graph-XV7FPU2T.js +2 -0
  172. package/dist/cli/chunks/{learning-722ZNSZ6.js → learning-NKOF7KDJ.js} +3 -3
  173. package/dist/cli/chunks/{llm-router-DNAV746L.js → llm-router-34WHT3PH.js} +2 -2
  174. package/dist/cli/chunks/{load-Y3GCUFM4.js → load-ZW4Z3YLT.js} +2 -2
  175. package/dist/cli/chunks/load-test-F4L7RTXJ.js +2 -0
  176. package/dist/cli/chunks/{mcp-LKPIBZ3W.js → mcp-6R7SVGKO.js} +2 -2
  177. package/dist/cli/chunks/{memory-L57MLFOP.js → memory-OUYCBU4M.js} +5 -5
  178. package/dist/cli/chunks/memory-backend-DTJD2DWF.js +2 -0
  179. package/dist/cli/chunks/{memory-handlers-MDZQ7HVW.js → memory-handlers-WNXKZRNM.js} +2 -2
  180. package/dist/cli/chunks/opencode-installer-FR75GHFU.js +3 -0
  181. package/dist/cli/chunks/{orchestrator-QHSBB2UC.js → orchestrator-AK7ZMVNH.js} +5 -5
  182. package/dist/cli/chunks/{pipeline-D3QER35Z.js → pipeline-CFOPG7EM.js} +2 -2
  183. package/dist/cli/chunks/{platform-T4E7Q3RD.js → platform-NY3ULBR7.js} +2 -2
  184. package/dist/cli/chunks/{plugin-JHW2YPRC.js → plugin-LRANQYUR.js} +2 -2
  185. package/dist/cli/chunks/{prime-radiant-advanced-wasm-G7CFNNQV.js → prime-radiant-advanced-wasm-6KEIU55P.js} +2 -2
  186. package/dist/cli/chunks/protocol-executor-6W4PS2D4.js +2 -0
  187. package/dist/cli/chunks/{protocol-handler-2BQQ4HDM.js → protocol-handler-ESSZGJ7R.js} +2 -2
  188. package/dist/cli/chunks/{prove-UQ6JFT73.js → prove-EF2PPY65.js} +2 -2
  189. package/dist/cli/chunks/qe-reasoning-bank-7G3TZLEA.js +2 -0
  190. package/dist/cli/chunks/{quality-JRZYMC77.js → quality-AYBXB635.js} +2 -2
  191. package/dist/cli/chunks/queen-coordinator-NFPKGMQN.js +2 -0
  192. package/dist/cli/chunks/real-embeddings-QPBXE7MA.js +2 -0
  193. package/dist/cli/chunks/{roocode-installer-F4E2LAYR.js → roocode-installer-UF6MMBH6.js} +2 -2
  194. package/dist/cli/chunks/router-F4B7Q66G.js +2 -0
  195. package/dist/cli/chunks/routing-feedback-5CIDDW7P.js +2 -0
  196. package/dist/cli/chunks/{routing-handler-VNKFUUGB.js → routing-handler-5TVKFU7V.js} +2 -2
  197. package/dist/cli/chunks/ruvector-commands-E33VXFIA.js +8 -0
  198. package/dist/cli/chunks/rvf-dual-writer-O3AZKD24.js +2 -0
  199. package/dist/cli/chunks/rvf-migration-adapter-IKEUZ2HX.js +2 -0
  200. package/dist/cli/chunks/rvf-migration-coordinator-M4H7W4RN.js +2 -0
  201. package/dist/cli/chunks/rvf-native-adapter-UX3WAPIP.js +2 -0
  202. package/dist/cli/chunks/safe-db-QBBNXEVK.js +2 -0
  203. package/dist/cli/chunks/schedule-GFT4NN6Z.js +2 -0
  204. package/dist/cli/chunks/scheduler-CQ56T7DB.js +2 -0
  205. package/dist/cli/chunks/{security-EBEG2OPU.js → security-ZLWT7IU3.js} +3 -3
  206. package/dist/cli/chunks/shared-rvf-adapter-EXACQ2PT.js +2 -0
  207. package/dist/cli/chunks/shared-rvf-dual-writer-G43LQDIV.js +2 -0
  208. package/dist/cli/chunks/sqlite-persistence-JHSUZPAW.js +2 -0
  209. package/dist/cli/chunks/{status-handler-VZ32M4G4.js → status-handler-7P23CXUI.js} +2 -2
  210. package/dist/cli/chunks/{structural-health-K6LRCKV6.js → structural-health-SCNBNL7K.js} +2 -2
  211. package/dist/cli/chunks/{sync-MHSHNLIM.js → sync-BYZBBH65.js} +2 -2
  212. package/dist/cli/chunks/{task-handler-JNOIBZ2G.js → task-handler-DWJQXZ2K.js} +2 -2
  213. package/dist/cli/chunks/{task-handlers-P5DSUKND.js → task-handlers-35JIXVRW.js} +2 -2
  214. package/dist/cli/chunks/{test-DO22BNIL.js → test-2JSS4XW7.js} +4 -4
  215. package/dist/cli/chunks/{test-scheduling-VLRQZEFL.js → test-scheduling-TWJ5I7N3.js} +3 -3
  216. package/dist/cli/chunks/{token-bootstrap-4VJKGVMK.js → token-bootstrap-LLLNJT5V.js} +2 -2
  217. package/dist/cli/chunks/{token-usage-LG3PXRXH.js → token-usage-EQ4HM4EZ.js} +2 -2
  218. package/dist/cli/chunks/transformers-PBIR5U5S.js +2 -0
  219. package/dist/cli/chunks/{tree-sitter-wasm-parser-FT2KB66N.js → tree-sitter-wasm-parser-X3L2GXUX.js} +2 -2
  220. package/dist/cli/chunks/types-OD43K2NP.js +2 -0
  221. package/dist/cli/chunks/unified-memory-YPHONR2T.js +2 -0
  222. package/dist/cli/chunks/unified-memory-hnsw-HJS4OXWM.js +2 -0
  223. package/dist/cli/chunks/unified-persistence-EFZRO6AW.js +2 -0
  224. package/dist/cli/chunks/{validate-VQCRSVNQ.js → validate-POMLT2KU.js} +2 -2
  225. package/dist/cli/chunks/{validate-swarm-A5DHAWTP.js → validate-swarm-UOC4JGZT.js} +2 -2
  226. package/dist/cli/chunks/{vibium-RZBSL4EB.js → vibium-5JF6LAXI.js} +2 -2
  227. package/dist/cli/chunks/visual-security-7KWFLYNB.js +2 -0
  228. package/dist/cli/chunks/{web-tree-sitter-7C4NXEOF.js → web-tree-sitter-R7WR7J7B.js} +2 -2
  229. package/dist/cli/chunks/{windsurf-installer-ES3KPQG3.js → windsurf-installer-ZSPEUBKR.js} +2 -2
  230. package/dist/cli/chunks/witness-chain-CFSPCXHG.js +2 -0
  231. package/dist/cli/chunks/witness-chain-RWU6WT37.js +2 -0
  232. package/dist/cli/chunks/{workflow-JETHX4ML.js → workflow-YNQT3OW2.js} +4 -4
  233. package/dist/cli/chunks/workflow-orchestrator-Z6TAVMQP.js +2 -0
  234. package/dist/cli/chunks/{wrappers-WP5RH745.js → wrappers-BP4FODVH.js} +2 -2
  235. package/dist/cli/commands/ruvector-commands.js +14 -2
  236. package/dist/coordination/agent-memory-branch.d.ts +117 -0
  237. package/dist/coordination/agent-memory-branch.js +213 -0
  238. package/dist/coordination/agent-teams/mailbox.d.ts +43 -0
  239. package/dist/coordination/agent-teams/mailbox.js +130 -4
  240. package/dist/coordination/handlers/handler-utils.d.ts +1 -0
  241. package/dist/coordination/handlers/handler-utils.js +9 -2
  242. package/dist/coordination/handlers/quality-handlers.js +7 -1
  243. package/dist/domains/contract-testing/coordinator.js +11 -0
  244. package/dist/domains/quality-assessment/coherence/gate-controller.d.ts +20 -1
  245. package/dist/domains/quality-assessment/coherence/gate-controller.js +64 -0
  246. package/dist/domains/quality-assessment/coherence/index.d.ts +3 -3
  247. package/dist/domains/quality-assessment/coherence/index.js +2 -2
  248. package/dist/domains/quality-assessment/coherence/types.d.ts +39 -0
  249. package/dist/domains/quality-assessment/coherence/types.js +11 -0
  250. package/dist/domains/quality-assessment/coordinator.d.ts +14 -0
  251. package/dist/domains/quality-assessment/coordinator.js +92 -0
  252. package/dist/domains/test-execution/coordinator.d.ts +19 -0
  253. package/dist/domains/test-execution/coordinator.js +102 -5
  254. package/dist/domains/test-generation/coordinator.js +11 -0
  255. package/dist/domains/test-generation/interfaces.d.ts +2 -0
  256. package/dist/domains/test-generation/services/test-generator.d.ts +9 -0
  257. package/dist/domains/test-generation/services/test-generator.js +37 -0
  258. package/dist/init/agents-installer.d.ts +5 -3
  259. package/dist/init/agents-installer.js +17 -43
  260. package/dist/init/find-package-root.d.ts +22 -0
  261. package/dist/init/find-package-root.js +46 -0
  262. package/dist/init/n8n-installer.d.ts +4 -2
  263. package/dist/init/n8n-installer.js +23 -23
  264. package/dist/init/opencode-installer.d.ts +0 -5
  265. package/dist/init/opencode-installer.js +12 -39
  266. package/dist/init/skills-installer.d.ts +5 -2
  267. package/dist/init/skills-installer.js +15 -37
  268. package/dist/integrations/embeddings/index/HNSWIndex.d.ts +9 -2
  269. package/dist/integrations/embeddings/index/HNSWIndex.js +110 -35
  270. package/dist/integrations/ruvector/cognitive-routing.d.ts +67 -0
  271. package/dist/integrations/ruvector/cognitive-routing.js +208 -0
  272. package/dist/integrations/ruvector/feature-flags.d.ts +84 -0
  273. package/dist/integrations/ruvector/feature-flags.js +59 -0
  274. package/dist/integrations/ruvector/hdc-fingerprint.d.ts +76 -0
  275. package/dist/integrations/ruvector/hdc-fingerprint.js +217 -0
  276. package/dist/integrations/ruvector/hyperbolic-hnsw.d.ts +59 -0
  277. package/dist/integrations/ruvector/hyperbolic-hnsw.js +194 -0
  278. package/dist/integrations/ruvector/index.d.ts +5 -2
  279. package/dist/integrations/ruvector/index.js +13 -2
  280. package/dist/integrations/ruvector/shared-rvf-adapter.d.ts +24 -0
  281. package/dist/integrations/ruvector/shared-rvf-adapter.js +55 -0
  282. package/dist/integrations/ruvector/shared-rvf-dual-writer.d.ts +6 -0
  283. package/dist/integrations/ruvector/shared-rvf-dual-writer.js +38 -0
  284. package/dist/integrations/ruvector/sona-persistence.d.ts +8 -0
  285. package/dist/integrations/ruvector/sona-persistence.js +10 -0
  286. package/dist/integrations/ruvector/vector-delta-tracker.d.ts +96 -0
  287. package/dist/integrations/ruvector/vector-delta-tracker.js +226 -0
  288. package/dist/kernel/agent-coordinator.d.ts +75 -1
  289. package/dist/kernel/agent-coordinator.js +250 -1
  290. package/dist/kernel/hnsw-legacy-bridge.d.ts +38 -0
  291. package/dist/kernel/hnsw-legacy-bridge.js +88 -0
  292. package/dist/kernel/hnsw-shadow-validator.d.ts +91 -0
  293. package/dist/kernel/hnsw-shadow-validator.js +139 -0
  294. package/dist/kernel/index.d.ts +1 -1
  295. package/dist/kernel/index.js +1 -1
  296. package/dist/kernel/interfaces.d.ts +39 -0
  297. package/dist/kernel/kernel.d.ts +23 -0
  298. package/dist/kernel/kernel.js +106 -1
  299. package/dist/kernel/unified-memory.d.ts +1 -1
  300. package/dist/kernel/unified-memory.js +7 -3
  301. package/dist/learning/aqe-learning-engine.d.ts +65 -0
  302. package/dist/learning/aqe-learning-engine.js +134 -0
  303. package/dist/learning/dream/dream-engine.d.ts +6 -1
  304. package/dist/learning/dream/dream-engine.js +37 -2
  305. package/dist/learning/dream/dream-scheduler.d.ts +25 -0
  306. package/dist/learning/dream/dream-scheduler.js +120 -0
  307. package/dist/learning/dream/rvcow-branch-manager.d.ts +6 -3
  308. package/dist/learning/dream/rvcow-branch-manager.js +60 -5
  309. package/dist/learning/experience-capture.d.ts +3 -3
  310. package/dist/learning/hyperbolic-pattern-index.d.ts +82 -0
  311. package/dist/learning/hyperbolic-pattern-index.js +142 -0
  312. package/dist/learning/index.d.ts +3 -3
  313. package/dist/learning/index.js +1 -1
  314. package/dist/learning/metrics-tracker.d.ts +44 -0
  315. package/dist/learning/metrics-tracker.js +37 -0
  316. package/dist/learning/pattern-promotion.d.ts +3 -3
  317. package/dist/learning/pattern-store.d.ts +45 -2
  318. package/dist/learning/pattern-store.js +217 -4
  319. package/dist/learning/qe-patterns.d.ts +1 -1
  320. package/dist/learning/qe-reasoning-bank.js +1 -1
  321. package/dist/learning/rvf-pattern-migration.d.ts +50 -0
  322. package/dist/learning/rvf-pattern-migration.js +106 -0
  323. package/dist/learning/rvf-pattern-store.d.ts +66 -0
  324. package/dist/learning/rvf-pattern-store.js +447 -0
  325. package/dist/mcp/bundle.js +1894 -1804
  326. package/dist/mcp/handlers/index.d.ts +1 -0
  327. package/dist/mcp/handlers/index.js +2 -0
  328. package/dist/mcp/handlers/migration-handlers.d.ts +52 -0
  329. package/dist/mcp/handlers/migration-handlers.js +85 -0
  330. package/dist/mcp/protocol-server.d.ts +1 -0
  331. package/dist/mcp/protocol-server.js +63 -2
  332. package/dist/mcp/types.d.ts +1 -1
  333. package/dist/optimization/early-exit-token-optimizer.d.ts +7 -7
  334. package/dist/optimization/early-exit-token-optimizer.js +3 -3
  335. package/dist/persistence/rvf-consistency-validator.d.ts +85 -0
  336. package/dist/persistence/rvf-consistency-validator.js +182 -0
  337. package/dist/persistence/rvf-migration-adapter.d.ts +125 -0
  338. package/dist/persistence/rvf-migration-adapter.js +303 -0
  339. package/dist/persistence/rvf-migration-coordinator.d.ts +115 -0
  340. package/dist/persistence/rvf-migration-coordinator.js +224 -0
  341. package/dist/persistence/rvf-stage-gate.d.ts +70 -0
  342. package/dist/persistence/rvf-stage-gate.js +163 -0
  343. package/package.json +10 -10
  344. package/dist/cli/chunks/adapter-WBR5NXS3.js +0 -2
  345. package/dist/cli/chunks/aqe-learning-engine-TK4JQCGT.js +0 -2
  346. package/dist/cli/chunks/base-2WXOSMBQ.js +0 -2
  347. package/dist/cli/chunks/better-sqlite3-7KY2RDXO.js +0 -2
  348. package/dist/cli/chunks/brain-handler-PPEGDCN4.js +0 -68
  349. package/dist/cli/chunks/browser-workflow-42F7GK5T.js +0 -2
  350. package/dist/cli/chunks/chunk-263XS447.js +0 -2
  351. package/dist/cli/chunks/chunk-2I7J3O6V.js +0 -2
  352. package/dist/cli/chunks/chunk-3JPRUND5.js +0 -2
  353. package/dist/cli/chunks/chunk-3THRQEZ2.js +0 -95
  354. package/dist/cli/chunks/chunk-4B6NCELM.js +0 -2
  355. package/dist/cli/chunks/chunk-62ADTHV7.js +0 -2
  356. package/dist/cli/chunks/chunk-BR26T7ZS.js +0 -180
  357. package/dist/cli/chunks/chunk-DRT3WKQW.js +0 -2
  358. package/dist/cli/chunks/chunk-FIA6X7UL.js +0 -2
  359. package/dist/cli/chunks/chunk-J3KWWR6Z.js +0 -1
  360. package/dist/cli/chunks/chunk-JZSDOIXA.js +0 -2
  361. package/dist/cli/chunks/chunk-MV6CMOJQ.js +0 -65
  362. package/dist/cli/chunks/chunk-N5UXCLFI.js +0 -2
  363. package/dist/cli/chunks/chunk-OF4D7MYI.js +0 -2
  364. package/dist/cli/chunks/chunk-QOVHWZEP.js +0 -1
  365. package/dist/cli/chunks/chunk-RFSN6IDA.js +0 -79
  366. package/dist/cli/chunks/chunk-X5IJGWYG.js +0 -2
  367. package/dist/cli/chunks/ci-output-7JN7F6CI.js +0 -2
  368. package/dist/cli/chunks/client-MCSNSH2C.js +0 -2
  369. package/dist/cli/chunks/complexity-analyzer-AB4OZARV.js +0 -2
  370. package/dist/cli/chunks/cost-tracker-4F723RB6.js +0 -2
  371. package/dist/cli/chunks/cross-domain-router-OWR5IJ5G.js +0 -2
  372. package/dist/cli/chunks/dag-attention-scheduler-JWO6XI6A.js +0 -2
  373. package/dist/cli/chunks/detect-L6ZZHUSX.js +0 -2
  374. package/dist/cli/chunks/domain-transfer-5Y4FGJAJ.js +0 -2
  375. package/dist/cli/chunks/dream-4TDBIYED.js +0 -2
  376. package/dist/cli/chunks/esm-node-2PKHKOTS.js +0 -2
  377. package/dist/cli/chunks/feature-flags-IVQ3AL4Q.js +0 -2
  378. package/dist/cli/chunks/file-discovery-QFPA6GMV.js +0 -2
  379. package/dist/cli/chunks/gnn-wrapper-OYC55N5E.js +0 -2
  380. package/dist/cli/chunks/hnsw-index-YO7CT23I.js +0 -2
  381. package/dist/cli/chunks/hnswlib-node-56YWVXFE.js +0 -2
  382. package/dist/cli/chunks/hypergraph-engine-A4Y2ZRAG.js +0 -2
  383. package/dist/cli/chunks/impact-analyzer-UEIGXSZ4.js +0 -2
  384. package/dist/cli/chunks/init-wizard-JWZUGIPJ.js +0 -2
  385. package/dist/cli/chunks/kernel-YNDTVKIW.js +0 -2
  386. package/dist/cli/chunks/knowledge-graph-NGJKFTSN.js +0 -2
  387. package/dist/cli/chunks/load-test-GZUBXFF3.js +0 -2
  388. package/dist/cli/chunks/memory-backend-3NQIZUXE.js +0 -2
  389. package/dist/cli/chunks/opencode-installer-4HUB36H5.js +0 -3
  390. package/dist/cli/chunks/protocol-executor-SPUVRDWT.js +0 -2
  391. package/dist/cli/chunks/qe-reasoning-bank-3HBK2FVD.js +0 -2
  392. package/dist/cli/chunks/queen-coordinator-RW3NKO5A.js +0 -2
  393. package/dist/cli/chunks/real-embeddings-GK63VF35.js +0 -2
  394. package/dist/cli/chunks/router-RJGHWDQ3.js +0 -2
  395. package/dist/cli/chunks/routing-feedback-ZXBXFKX6.js +0 -2
  396. package/dist/cli/chunks/ruvector-commands-2TLNHC3A.js +0 -8
  397. package/dist/cli/chunks/rvf-dual-writer-MQW2SJLT.js +0 -2
  398. package/dist/cli/chunks/rvf-native-adapter-LKFKTMUN.js +0 -2
  399. package/dist/cli/chunks/safe-db-G22E5ROA.js +0 -2
  400. package/dist/cli/chunks/schedule-Y7VVCPYV.js +0 -2
  401. package/dist/cli/chunks/scheduler-AUQIFQB7.js +0 -2
  402. package/dist/cli/chunks/shared-rvf-dual-writer-BVSCQAFS.js +0 -2
  403. package/dist/cli/chunks/sqlite-persistence-JAVHUGGL.js +0 -2
  404. package/dist/cli/chunks/transformers-GY7SIKEU.js +0 -2
  405. package/dist/cli/chunks/types-QJGNBKP2.js +0 -2
  406. package/dist/cli/chunks/unified-memory-XYGENQUT.js +0 -2
  407. package/dist/cli/chunks/unified-memory-hnsw-MVEGQBF3.js +0 -2
  408. package/dist/cli/chunks/unified-persistence-PFRCWEUG.js +0 -2
  409. package/dist/cli/chunks/visual-security-V47BLGJM.js +0 -2
  410. package/dist/cli/chunks/witness-chain-BR63P4A7.js +0 -2
  411. package/dist/cli/chunks/workflow-orchestrator-7PZMX3JZ.js +0 -2
@@ -0,0 +1,125 @@
1
+ /**
2
+ * RVF Migration Adapter (ADR-072)
3
+ *
4
+ * Extends RvfDualWriter concepts to all persistence operations (KV, Q-values,
5
+ * GOAP state). Routes reads and writes based on the rvfMigrationStage config:
6
+ *
7
+ * Stage 0: SQLite only (legacy)
8
+ * Stage 1: Hybrid (current — vectors in RVF, metadata in SQLite)
9
+ * Stage 2: Dual-write, read from SQLite (both engines receive writes)
10
+ * Stage 3: Dual-write, read from RVF (both engines receive writes)
11
+ * Stage 4: RVF primary, SQLite escape hatch
12
+ *
13
+ * Each stage is reversible by changing the config — no data is lost.
14
+ *
15
+ * @module persistence/rvf-migration-adapter
16
+ */
17
+ import type { RvfStore, RvfStatus } from '../integrations/ruvector/rvf-dual-writer.js';
18
+ export type MigrationStage = 0 | 1 | 2 | 3 | 4;
19
+ export declare const STAGE_NAMES: Record<MigrationStage, string>;
20
+ export interface MigrationAdapterConfig {
21
+ /** Current migration stage */
22
+ stage: MigrationStage;
23
+ /** Path to RVF container */
24
+ rvfPath: string;
25
+ /** Vector dimensions (default: 384) */
26
+ dimensions: number;
27
+ /** Enable fallback on RVF read failure in stage 3+ */
28
+ enableFallback: boolean;
29
+ }
30
+ export interface WriteResult {
31
+ sqliteSuccess: boolean;
32
+ rvfSuccess: boolean;
33
+ stage: MigrationStage;
34
+ fallbackUsed: boolean;
35
+ }
36
+ export interface ReadResult<T> {
37
+ data: T | null;
38
+ source: 'sqlite' | 'rvf' | 'fallback';
39
+ latencyMs: number;
40
+ stage: MigrationStage;
41
+ }
42
+ export interface MigrationMetrics {
43
+ stage: MigrationStage;
44
+ stageName: string;
45
+ totalWrites: number;
46
+ totalReads: number;
47
+ rvfWriteFailures: number;
48
+ rvfReadFailures: number;
49
+ fallbacksUsed: number;
50
+ sqliteReadLatencyAvgMs: number;
51
+ rvfReadLatencyAvgMs: number;
52
+ sqliteWriteLatencyAvgMs: number;
53
+ rvfWriteLatencyAvgMs: number;
54
+ }
55
+ interface SqliteDb {
56
+ prepare(sql: string): {
57
+ run(...params: unknown[]): {
58
+ changes: number;
59
+ };
60
+ get(...params: unknown[]): unknown;
61
+ all(...params: unknown[]): unknown[];
62
+ };
63
+ }
64
+ export declare class RvfMigrationAdapter {
65
+ private config;
66
+ private db;
67
+ private rvfStore;
68
+ private totalWrites;
69
+ private totalReads;
70
+ private rvfWriteFailures;
71
+ private rvfReadFailures;
72
+ private fallbacksUsed;
73
+ private sqliteLatencies;
74
+ private rvfLatencies;
75
+ private sqliteWriteLatencies;
76
+ private rvfWriteLatencies;
77
+ constructor(config: Partial<MigrationAdapterConfig> & {
78
+ stage: MigrationStage;
79
+ });
80
+ /** Attach a SQLite database handle */
81
+ setSqliteDb(db: SqliteDb): void;
82
+ /** Attach an RVF store */
83
+ setRvfStore(store: RvfStore): void;
84
+ /** Get current migration stage */
85
+ get stage(): MigrationStage;
86
+ /** Update migration stage (called by coordinator on promotion) */
87
+ setStage(stage: MigrationStage): void;
88
+ /**
89
+ * Write a vector to the appropriate store(s) based on migration stage.
90
+ *
91
+ * Stage 0-1: SQLite only (vectors as BLOBs or hybrid)
92
+ * Stage 2-3: Both engines receive writes
93
+ * Stage 4: RVF only, SQLite escape hatch on failure
94
+ */
95
+ write(id: string, vector: Float32Array | number[]): WriteResult;
96
+ /**
97
+ * Delete a vector from the appropriate store(s).
98
+ */
99
+ delete(id: string): WriteResult;
100
+ /**
101
+ * Search for similar vectors, routing to the appropriate engine.
102
+ *
103
+ * Stage 0-2: Read from SQLite
104
+ * Stage 3-4: Read from RVF, fallback to SQLite on error
105
+ */
106
+ search(query: Float32Array | number[], k: number): ReadResult<Array<{
107
+ id: string;
108
+ score: number;
109
+ }>>;
110
+ /** Get combined status from both engines */
111
+ status(): {
112
+ sqlite: {
113
+ vectorCount: number;
114
+ };
115
+ rvf: RvfStatus | null;
116
+ stage: MigrationStage;
117
+ };
118
+ /** Get aggregated migration metrics */
119
+ getMetrics(): MigrationMetrics;
120
+ /** Reset metrics counters */
121
+ resetMetrics(): void;
122
+ private searchSqlite;
123
+ }
124
+ export {};
125
+ //# sourceMappingURL=rvf-migration-adapter.d.ts.map
@@ -0,0 +1,303 @@
1
+ /**
2
+ * RVF Migration Adapter (ADR-072)
3
+ *
4
+ * Extends RvfDualWriter concepts to all persistence operations (KV, Q-values,
5
+ * GOAP state). Routes reads and writes based on the rvfMigrationStage config:
6
+ *
7
+ * Stage 0: SQLite only (legacy)
8
+ * Stage 1: Hybrid (current — vectors in RVF, metadata in SQLite)
9
+ * Stage 2: Dual-write, read from SQLite (both engines receive writes)
10
+ * Stage 3: Dual-write, read from RVF (both engines receive writes)
11
+ * Stage 4: RVF primary, SQLite escape hatch
12
+ *
13
+ * Each stage is reversible by changing the config — no data is lost.
14
+ *
15
+ * @module persistence/rvf-migration-adapter
16
+ */
17
+ export const STAGE_NAMES = {
18
+ 0: 'sqlite-only',
19
+ 1: 'hybrid',
20
+ 2: 'dual-write-sqlite-primary',
21
+ 3: 'dual-write-rvf-primary',
22
+ 4: 'rvf-primary',
23
+ };
24
+ // ============================================================================
25
+ // RvfMigrationAdapter
26
+ // ============================================================================
27
+ export class RvfMigrationAdapter {
28
+ config;
29
+ db = null;
30
+ rvfStore = null;
31
+ // Metrics tracking
32
+ totalWrites = 0;
33
+ totalReads = 0;
34
+ rvfWriteFailures = 0;
35
+ rvfReadFailures = 0;
36
+ fallbacksUsed = 0;
37
+ sqliteLatencies = [];
38
+ rvfLatencies = [];
39
+ sqliteWriteLatencies = [];
40
+ rvfWriteLatencies = [];
41
+ constructor(config) {
42
+ this.config = {
43
+ rvfPath: '.agentic-qe/patterns.rvf',
44
+ dimensions: 384,
45
+ enableFallback: true,
46
+ ...config,
47
+ };
48
+ }
49
+ /** Attach a SQLite database handle */
50
+ setSqliteDb(db) {
51
+ this.db = db;
52
+ }
53
+ /** Attach an RVF store */
54
+ setRvfStore(store) {
55
+ this.rvfStore = store;
56
+ }
57
+ /** Get current migration stage */
58
+ get stage() {
59
+ return this.config.stage;
60
+ }
61
+ /** Update migration stage (called by coordinator on promotion) */
62
+ setStage(stage) {
63
+ this.config = { ...this.config, stage };
64
+ }
65
+ // --------------------------------------------------------------------------
66
+ // Write Operations
67
+ // --------------------------------------------------------------------------
68
+ /**
69
+ * Write a vector to the appropriate store(s) based on migration stage.
70
+ *
71
+ * Stage 0-1: SQLite only (vectors as BLOBs or hybrid)
72
+ * Stage 2-3: Both engines receive writes
73
+ * Stage 4: RVF only, SQLite escape hatch on failure
74
+ */
75
+ write(id, vector) {
76
+ this.totalWrites++;
77
+ const result = {
78
+ sqliteSuccess: false,
79
+ rvfSuccess: false,
80
+ stage: this.config.stage,
81
+ fallbackUsed: false,
82
+ };
83
+ const shouldWriteSqlite = this.config.stage < 4;
84
+ const shouldWriteRvf = this.config.stage >= 2;
85
+ // Write to SQLite
86
+ if (shouldWriteSqlite && this.db) {
87
+ const start = performance.now();
88
+ try {
89
+ const blob = Buffer.from(vector instanceof Float32Array ? vector.buffer : new Float32Array(vector).buffer);
90
+ this.db.prepare(`
91
+ INSERT INTO qe_pattern_embeddings (pattern_id, embedding, dimension, model, created_at)
92
+ VALUES (?, ?, ?, 'all-MiniLM-L6-v2', datetime('now'))
93
+ ON CONFLICT(pattern_id) DO UPDATE SET
94
+ embedding = excluded.embedding, dimension = excluded.dimension, created_at = datetime('now')
95
+ `).run(id, blob, vector.length);
96
+ result.sqliteSuccess = true;
97
+ this.sqliteWriteLatencies.push(performance.now() - start);
98
+ }
99
+ catch (err) {
100
+ result.sqliteSuccess = false;
101
+ if (process.env.AQE_DEBUG_MIGRATION) {
102
+ console.warn('[RVF-Migration] SQLite write failed:', err.message);
103
+ }
104
+ }
105
+ }
106
+ // Write to RVF
107
+ if (shouldWriteRvf && this.rvfStore) {
108
+ const start = performance.now();
109
+ try {
110
+ this.rvfStore.ingest([{ id, vector }]);
111
+ result.rvfSuccess = true;
112
+ this.rvfWriteLatencies.push(performance.now() - start);
113
+ }
114
+ catch {
115
+ this.rvfWriteFailures++;
116
+ result.rvfSuccess = false;
117
+ }
118
+ }
119
+ // Stage 4: If RVF write failed, fall back to SQLite
120
+ if (this.config.stage === 4 && !result.rvfSuccess && this.config.enableFallback && this.db) {
121
+ try {
122
+ const blob = Buffer.from(vector instanceof Float32Array ? vector.buffer : new Float32Array(vector).buffer);
123
+ this.db.prepare(`
124
+ INSERT INTO qe_pattern_embeddings (pattern_id, embedding, dimension, model, created_at)
125
+ VALUES (?, ?, ?, 'all-MiniLM-L6-v2', datetime('now'))
126
+ ON CONFLICT(pattern_id) DO UPDATE SET
127
+ embedding = excluded.embedding, dimension = excluded.dimension, created_at = datetime('now')
128
+ `).run(id, blob, vector.length);
129
+ result.sqliteSuccess = true;
130
+ result.fallbackUsed = true;
131
+ this.fallbacksUsed++;
132
+ }
133
+ catch {
134
+ // Both engines failed
135
+ }
136
+ }
137
+ return result;
138
+ }
139
+ /**
140
+ * Delete a vector from the appropriate store(s).
141
+ */
142
+ delete(id) {
143
+ this.totalWrites++;
144
+ const result = {
145
+ sqliteSuccess: false,
146
+ rvfSuccess: false,
147
+ stage: this.config.stage,
148
+ fallbackUsed: false,
149
+ };
150
+ if (this.config.stage < 4 && this.db) {
151
+ try {
152
+ this.db.prepare('DELETE FROM qe_pattern_embeddings WHERE pattern_id = ?').run(id);
153
+ result.sqliteSuccess = true;
154
+ }
155
+ catch { /* best effort */ }
156
+ }
157
+ if (this.config.stage >= 2 && this.rvfStore) {
158
+ try {
159
+ this.rvfStore.delete([id]);
160
+ result.rvfSuccess = true;
161
+ }
162
+ catch {
163
+ this.rvfWriteFailures++;
164
+ }
165
+ }
166
+ return result;
167
+ }
168
+ // --------------------------------------------------------------------------
169
+ // Read Operations
170
+ // --------------------------------------------------------------------------
171
+ /**
172
+ * Search for similar vectors, routing to the appropriate engine.
173
+ *
174
+ * Stage 0-2: Read from SQLite
175
+ * Stage 3-4: Read from RVF, fallback to SQLite on error
176
+ */
177
+ search(query, k) {
178
+ this.totalReads++;
179
+ const useRvf = this.config.stage >= 3;
180
+ if (useRvf && this.rvfStore) {
181
+ const start = performance.now();
182
+ try {
183
+ const results = this.rvfStore.search(query, k);
184
+ const latency = performance.now() - start;
185
+ this.rvfLatencies.push(latency);
186
+ return { data: results, source: 'rvf', latencyMs: latency, stage: this.config.stage };
187
+ }
188
+ catch {
189
+ this.rvfReadFailures++;
190
+ // Fall through to SQLite if fallback enabled
191
+ if (!this.config.enableFallback) {
192
+ return { data: null, source: 'rvf', latencyMs: 0, stage: this.config.stage };
193
+ }
194
+ this.fallbacksUsed++;
195
+ }
196
+ }
197
+ // SQLite read (stages 0-2 or fallback)
198
+ const start = performance.now();
199
+ const results = this.searchSqlite(query, k);
200
+ const latency = performance.now() - start;
201
+ this.sqliteLatencies.push(latency);
202
+ return {
203
+ data: results,
204
+ source: useRvf ? 'fallback' : 'sqlite',
205
+ latencyMs: latency,
206
+ stage: this.config.stage,
207
+ };
208
+ }
209
+ // --------------------------------------------------------------------------
210
+ // Status & Metrics
211
+ // --------------------------------------------------------------------------
212
+ /** Get combined status from both engines */
213
+ status() {
214
+ let sqliteCount = 0;
215
+ if (this.db) {
216
+ try {
217
+ const row = this.db.prepare('SELECT COUNT(*) as cnt FROM qe_pattern_embeddings').get();
218
+ sqliteCount = row?.cnt ?? 0;
219
+ }
220
+ catch { /* table may not exist */ }
221
+ }
222
+ let rvfStatus = null;
223
+ if (this.rvfStore) {
224
+ try {
225
+ rvfStatus = this.rvfStore.status();
226
+ }
227
+ catch { /* best effort */ }
228
+ }
229
+ return { sqlite: { vectorCount: sqliteCount }, rvf: rvfStatus, stage: this.config.stage };
230
+ }
231
+ /** Get aggregated migration metrics */
232
+ getMetrics() {
233
+ return {
234
+ stage: this.config.stage,
235
+ stageName: STAGE_NAMES[this.config.stage],
236
+ totalWrites: this.totalWrites,
237
+ totalReads: this.totalReads,
238
+ rvfWriteFailures: this.rvfWriteFailures,
239
+ rvfReadFailures: this.rvfReadFailures,
240
+ fallbacksUsed: this.fallbacksUsed,
241
+ sqliteReadLatencyAvgMs: avg(this.sqliteLatencies),
242
+ rvfReadLatencyAvgMs: avg(this.rvfLatencies),
243
+ sqliteWriteLatencyAvgMs: avg(this.sqliteWriteLatencies),
244
+ rvfWriteLatencyAvgMs: avg(this.rvfWriteLatencies),
245
+ };
246
+ }
247
+ /** Reset metrics counters */
248
+ resetMetrics() {
249
+ this.totalWrites = 0;
250
+ this.totalReads = 0;
251
+ this.rvfWriteFailures = 0;
252
+ this.rvfReadFailures = 0;
253
+ this.fallbacksUsed = 0;
254
+ this.sqliteLatencies = [];
255
+ this.rvfLatencies = [];
256
+ this.sqliteWriteLatencies = [];
257
+ this.rvfWriteLatencies = [];
258
+ }
259
+ // --------------------------------------------------------------------------
260
+ // Private
261
+ // --------------------------------------------------------------------------
262
+ searchSqlite(query, k) {
263
+ if (!this.db)
264
+ return [];
265
+ let rows;
266
+ try {
267
+ rows = this.db.prepare('SELECT pattern_id, embedding, dimension FROM qe_pattern_embeddings').all();
268
+ }
269
+ catch {
270
+ return [];
271
+ }
272
+ const queryArr = query instanceof Float32Array ? Array.from(query) : query;
273
+ const queryMag = Math.sqrt(queryArr.reduce((s, v) => s + v * v, 0));
274
+ if (queryMag === 0)
275
+ return [];
276
+ const scored = [];
277
+ for (const row of rows) {
278
+ if (row.dimension !== queryArr.length)
279
+ continue;
280
+ const stored = new Float32Array(row.embedding.buffer, row.embedding.byteOffset, row.dimension);
281
+ let dot = 0, storedMag = 0;
282
+ for (let i = 0; i < row.dimension; i++) {
283
+ dot += queryArr[i] * stored[i];
284
+ storedMag += stored[i] * stored[i];
285
+ }
286
+ storedMag = Math.sqrt(storedMag);
287
+ if (storedMag === 0)
288
+ continue;
289
+ scored.push({ id: row.pattern_id, score: dot / (queryMag * storedMag) });
290
+ }
291
+ scored.sort((a, b) => b.score - a.score);
292
+ return scored.slice(0, k);
293
+ }
294
+ }
295
+ // ============================================================================
296
+ // Helpers
297
+ // ============================================================================
298
+ function avg(arr) {
299
+ if (arr.length === 0)
300
+ return 0;
301
+ return arr.reduce((s, v) => s + v, 0) / arr.length;
302
+ }
303
+ //# sourceMappingURL=rvf-migration-adapter.js.map
@@ -0,0 +1,115 @@
1
+ /**
2
+ * RVF Migration Coordinator (ADR-072 Phase 3)
3
+ *
4
+ * Wires together RvfMigrationAdapter, RvfConsistencyValidator, and
5
+ * RvfStageGate into a single service that can be initialized during
6
+ * kernel boot and exposed via MCP tools.
7
+ *
8
+ * Lifecycle:
9
+ * 1. Kernel calls RvfMigrationCoordinator.initialize(db)
10
+ * 2. Coordinator reads stage from feature flags, attaches SQLite + RVF handles
11
+ * 3. MCP tools call getStatus(), runConsistencyCheck(), promote()
12
+ *
13
+ * @module persistence/rvf-migration-coordinator
14
+ */
15
+ import { RvfMigrationAdapter, type MigrationStage, type MigrationMetrics } from './rvf-migration-adapter.js';
16
+ import { type ConsistencyCheckResult } from './rvf-consistency-validator.js';
17
+ import { type StageGateResult } from './rvf-stage-gate.js';
18
+ export interface MigrationStatus {
19
+ stage: MigrationStage;
20
+ stageName: string;
21
+ metrics: MigrationMetrics;
22
+ consistencyHistory: {
23
+ totalChecks: number;
24
+ rollingDivergenceRate: number;
25
+ lastCheck: ConsistencyCheckResult | null;
26
+ };
27
+ gateEvaluation: StageGateResult;
28
+ engineStatus: {
29
+ sqliteVectorCount: number;
30
+ rvfAvailable: boolean;
31
+ rvfVectorCount: number | null;
32
+ rvfDeadSpaceRatio: number | null;
33
+ };
34
+ }
35
+ export interface MigrationCoordinatorConfig {
36
+ /** Override migration stage (otherwise reads from feature flags) */
37
+ stage?: MigrationStage;
38
+ /** RVF file path */
39
+ rvfPath?: string;
40
+ /** Vector dimensions */
41
+ dimensions?: number;
42
+ }
43
+ export declare class RvfMigrationCoordinator {
44
+ private adapter;
45
+ private validator;
46
+ private gate;
47
+ private currentStage;
48
+ private initialized;
49
+ constructor(config?: MigrationCoordinatorConfig);
50
+ /**
51
+ * Attach the real SQLite database handle (from UnifiedMemoryManager).
52
+ * Called during kernel boot.
53
+ */
54
+ attachSqliteDb(db: unknown): void;
55
+ /**
56
+ * Attach the shared RVF store (from shared-rvf-adapter singleton).
57
+ * Called during kernel boot when native bindings are available.
58
+ */
59
+ attachRvfStore(store: unknown): void;
60
+ /**
61
+ * Attach a witness chain for audit trail of stage promotions.
62
+ */
63
+ attachWitnessChain(wc: unknown): void;
64
+ /**
65
+ * Full initialization: reads handles from running system.
66
+ */
67
+ initialize(): Promise<void>;
68
+ /**
69
+ * Get comprehensive migration status.
70
+ * This is the primary user-facing method — shows stage, metrics,
71
+ * consistency history, and gate evaluation at a glance.
72
+ */
73
+ getStatus(): MigrationStatus;
74
+ /**
75
+ * Run a consistency check between SQLite and RVF.
76
+ * Returns the check result with divergence details.
77
+ */
78
+ runConsistencyCheck(): ConsistencyCheckResult;
79
+ /**
80
+ * Evaluate whether promotion to the next stage is allowed.
81
+ */
82
+ evaluateGate(): StageGateResult;
83
+ /**
84
+ * Attempt to promote to the next migration stage.
85
+ *
86
+ * @param force - Skip gate checks (records forced promotion in witness chain)
87
+ * @returns Promotion result with new stage
88
+ */
89
+ promote(force?: boolean): {
90
+ promoted: boolean;
91
+ previousStage: MigrationStage;
92
+ newStage: MigrationStage;
93
+ result: StageGateResult;
94
+ };
95
+ /**
96
+ * Write a vector through the migration adapter.
97
+ * Used to verify dual-write routing at each stage.
98
+ */
99
+ write(id: string, vector: Float32Array | number[]): import("./rvf-migration-adapter.js").WriteResult;
100
+ /**
101
+ * Search through the migration adapter.
102
+ * Used to verify read routing at each stage.
103
+ */
104
+ search(query: Float32Array | number[], k: number): import("./rvf-migration-adapter.js").ReadResult<{
105
+ id: string;
106
+ score: number;
107
+ }[]>;
108
+ /**
109
+ * Get the underlying adapter (for advanced use / testing).
110
+ */
111
+ getAdapter(): RvfMigrationAdapter;
112
+ static getInstance(config?: MigrationCoordinatorConfig): RvfMigrationCoordinator;
113
+ static resetInstance(): void;
114
+ }
115
+ //# sourceMappingURL=rvf-migration-coordinator.d.ts.map