agentic-qe 3.9.5 → 3.9.6

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 (283) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/dist/cli/bundle.js +5 -5
  4. package/dist/cli/chunks/adapter-XV7RUOO7.js +2 -0
  5. package/dist/cli/chunks/{agent-booster-wasm-AW36VJXL.js → agent-booster-wasm-ID2COJCQ.js} +2 -2
  6. package/dist/cli/chunks/{agent-handler-AQFW2CMW.js → agent-handler-EWK6FHKU.js} +2 -2
  7. package/dist/cli/chunks/{agent-memory-branch-VA6A47U5.js → agent-memory-branch-BDKB7HER.js} +2 -2
  8. package/dist/cli/chunks/aqe-learning-engine-Q5CC43GW.js +2 -0
  9. package/dist/cli/chunks/{audit-WVJHTVUU.js → audit-EB62PPY4.js} +2 -2
  10. package/dist/cli/chunks/base-UL4PX45P.js +2 -0
  11. package/dist/cli/chunks/{better-sqlite3-HCMGVEDO.js → better-sqlite3-C4HK6YT3.js} +2 -2
  12. package/dist/cli/chunks/{brain-handler-JZISBH2W.js → brain-handler-QLIHJDGD.js} +3 -3
  13. package/dist/cli/chunks/{branch-enumerator-3TQXIETD.js → branch-enumerator-HWWHSETZ.js} +2 -2
  14. package/dist/cli/chunks/{browser-4GZXU4YT.js → browser-PEMYUQ6B.js} +2 -2
  15. package/dist/cli/chunks/browser-workflow-K77KPDRF.js +2 -0
  16. package/dist/cli/chunks/{chunk-PVLOT5BL.js → chunk-2DGTT6D2.js} +2 -2
  17. package/dist/cli/chunks/{chunk-GFXAKQ77.js → chunk-2FTTRGRS.js} +2 -2
  18. package/dist/cli/chunks/{chunk-OPOTKH42.js → chunk-3BAC7NLV.js} +3 -3
  19. package/dist/cli/chunks/{chunk-W73AYMDP.js → chunk-3TAJSNCZ.js} +1 -1
  20. package/dist/cli/chunks/{chunk-NGP3DRFU.js → chunk-3U3NUFII.js} +1 -1
  21. package/dist/cli/chunks/{chunk-TRO45ZLC.js → chunk-3VBPPW7H.js} +1 -1
  22. package/dist/cli/chunks/{chunk-KUDPFLL4.js → chunk-3WQ7MLAJ.js} +4 -4
  23. package/dist/cli/chunks/{chunk-45WEXMKC.js → chunk-46442R6Q.js} +2 -2
  24. package/dist/cli/chunks/{chunk-NDWWN2YC.js → chunk-4H3YCKAI.js} +4 -4
  25. package/dist/cli/chunks/{chunk-73LG5ELL.js → chunk-4NYVSHN3.js} +2 -2
  26. package/dist/cli/chunks/{chunk-PGFHFPDP.js → chunk-5A5ECZCN.js} +2 -2
  27. package/dist/cli/chunks/{chunk-WIZOYPFT.js → chunk-5AXU6KCI.js} +2 -2
  28. package/dist/cli/chunks/{chunk-4QGNSNQL.js → chunk-5CKG46BM.js} +2 -2
  29. package/dist/cli/chunks/{chunk-MBXSHGDD.js → chunk-64SU2UFL.js} +2 -2
  30. package/dist/cli/chunks/{chunk-GFZRXQWH.js → chunk-67WBMX7K.js} +1 -1
  31. package/dist/cli/chunks/{chunk-6AMXWB6Y.js → chunk-6T6TPZCK.js} +2 -2
  32. package/dist/cli/chunks/{chunk-DPEX4UOC.js → chunk-6X6NWAVQ.js} +1 -1
  33. package/dist/cli/chunks/{chunk-ALX5RJSR.js → chunk-775KESYW.js} +2 -2
  34. package/dist/cli/chunks/{chunk-ZD2FS4Q7.js → chunk-7B3IZBNN.js} +2 -2
  35. package/dist/cli/chunks/{chunk-BYD54ZUF.js → chunk-7B46Q5OU.js} +2 -2
  36. package/dist/cli/chunks/{chunk-OTOQXMP6.js → chunk-7CSZCRSS.js} +3 -3
  37. package/dist/cli/chunks/{chunk-DSOEKRQL.js → chunk-7EDVNITA.js} +2 -2
  38. package/dist/cli/chunks/{chunk-XG2JAIQT.js → chunk-7MD7PQYH.js} +1 -1
  39. package/dist/cli/chunks/{chunk-ERV3OVUG.js → chunk-AFOGTLSY.js} +2 -2
  40. package/dist/cli/chunks/{chunk-WV7K5A7J.js → chunk-AJX44TJ7.js} +2 -2
  41. package/dist/cli/chunks/{chunk-UO2R7ZN3.js → chunk-AMLREU5W.js} +2 -2
  42. package/dist/cli/chunks/{chunk-QHMDETCU.js → chunk-ARRJKSDK.js} +1 -1
  43. package/dist/cli/chunks/{chunk-OQCEI7Q4.js → chunk-BHOJLQLF.js} +2 -2
  44. package/dist/cli/chunks/{chunk-Y6XYH7EV.js → chunk-BKCIW3O2.js} +2 -2
  45. package/dist/cli/chunks/{chunk-KWIDDPKG.js → chunk-C723FDLL.js} +2 -2
  46. package/dist/cli/chunks/{chunk-X6J7VYVD.js → chunk-CJ6GN5QT.js} +2 -2
  47. package/dist/cli/chunks/{chunk-J4SEGMXL.js → chunk-CLVHHUZB.js} +2 -2
  48. package/dist/cli/chunks/{chunk-CQT3IEEX.js → chunk-CQNNNR53.js} +2 -2
  49. package/dist/cli/chunks/{chunk-YDBMYTOV.js → chunk-CU3LGMOK.js} +2 -2
  50. package/dist/cli/chunks/{chunk-IMCYFQWF.js → chunk-DAWI2HRN.js} +2 -2
  51. package/dist/cli/chunks/{chunk-ZFCRDCHW.js → chunk-E5J3GKCP.js} +2 -2
  52. package/dist/cli/chunks/{chunk-UPFCV7MX.js → chunk-EJSRKZ5M.js} +2 -2
  53. package/dist/cli/chunks/{chunk-HA4COQ66.js → chunk-EMKI4ZV5.js} +2 -2
  54. package/dist/cli/chunks/{chunk-7JQOOPA2.js → chunk-ESFKNND3.js} +2 -2
  55. package/dist/cli/chunks/{chunk-KQ7VBUO4.js → chunk-EVRJS6CN.js} +2 -2
  56. package/dist/cli/chunks/{chunk-S4F3CNSP.js → chunk-FZ77DJFC.js} +2 -2
  57. package/dist/cli/chunks/{chunk-WTGUS7DD.js → chunk-G3VIZON2.js} +2 -2
  58. package/dist/cli/chunks/{chunk-NNNH36RU.js → chunk-GXVUDSYW.js} +2 -2
  59. package/dist/cli/chunks/{chunk-QPW2O5TR.js → chunk-H3KGRTY2.js} +9 -9
  60. package/dist/cli/chunks/{chunk-4FPCCKNQ.js → chunk-H4J456F2.js} +1 -1
  61. package/dist/cli/chunks/{chunk-GSTDQLXR.js → chunk-H5OYJKPR.js} +2 -2
  62. package/dist/cli/chunks/{chunk-4EOSDCDM.js → chunk-H7OP3RI2.js} +1 -1
  63. package/dist/cli/chunks/{chunk-ZP237D7K.js → chunk-HUPIHL55.js} +2 -2
  64. package/dist/cli/chunks/{chunk-FDFJHGRZ.js → chunk-HZSYBKRI.js} +2 -2
  65. package/dist/cli/chunks/{chunk-MRTDOSHR.js → chunk-JB3G5ZLL.js} +2 -2
  66. package/dist/cli/chunks/{chunk-YQTPEQO6.js → chunk-JDGUTBC3.js} +2 -2
  67. package/dist/cli/chunks/{chunk-ITIYGUIL.js → chunk-JEF3S4ER.js} +2 -2
  68. package/dist/cli/chunks/{chunk-LLXBL36X.js → chunk-JRPYXCDT.js} +1 -1
  69. package/dist/cli/chunks/{chunk-55EAFHVH.js → chunk-K52WNOTU.js} +3 -3
  70. package/dist/cli/chunks/{chunk-YZ3WB4TN.js → chunk-K5RE6ODJ.js} +2 -2
  71. package/dist/cli/chunks/{chunk-ZWS7J73Q.js → chunk-K6XC52U3.js} +1 -1
  72. package/dist/cli/chunks/{chunk-DFOANC7Z.js → chunk-KI4W6CVC.js} +1 -1
  73. package/dist/cli/chunks/{chunk-ZJWDWM6B.js → chunk-KIEXP4F3.js} +3 -3
  74. package/dist/cli/chunks/{chunk-3VNEMHOO.js → chunk-L6HQVZQL.js} +1 -1
  75. package/dist/cli/chunks/{chunk-EPH2GZQM.js → chunk-LFTQYU65.js} +2 -2
  76. package/dist/cli/chunks/{chunk-I27OTSC7.js → chunk-LSFJKCAQ.js} +2 -2
  77. package/dist/cli/chunks/{chunk-IMGRYCAT.js → chunk-LZ5LS4LF.js} +1 -1
  78. package/dist/cli/chunks/chunk-MA7OLK56.js +2 -0
  79. package/dist/cli/chunks/{chunk-6QKGLIIY.js → chunk-MAZWSPEQ.js} +2 -2
  80. package/dist/cli/chunks/{chunk-E55RROAP.js → chunk-MRDXDXPW.js} +1 -1
  81. package/dist/cli/chunks/{chunk-CNGRXBKO.js → chunk-MROCXAXJ.js} +2 -2
  82. package/dist/cli/chunks/{chunk-T4KMG3GJ.js → chunk-MV52OH7P.js} +1 -1
  83. package/dist/cli/chunks/{chunk-3UE5GART.js → chunk-MX3ORXM3.js} +2 -2
  84. package/dist/cli/chunks/{chunk-GHFXURNS.js → chunk-N5CEEWWJ.js} +1 -1
  85. package/dist/cli/chunks/{chunk-YHSIUFFY.js → chunk-NA5ZOZIF.js} +2 -2
  86. package/dist/cli/chunks/{chunk-53J3R7PZ.js → chunk-NOK2ICQT.js} +2 -2
  87. package/dist/cli/chunks/{chunk-6VB4VZCR.js → chunk-NPNGSE7X.js} +2 -2
  88. package/dist/cli/chunks/{chunk-2XJRSIM5.js → chunk-NSRIYP76.js} +2 -2
  89. package/dist/cli/chunks/{chunk-3KYKE7B6.js → chunk-O65ZAUG3.js} +1 -1
  90. package/dist/cli/chunks/{chunk-REXMKRR2.js → chunk-P4X6YTOY.js} +8 -8
  91. package/dist/cli/chunks/{chunk-673PL3DG.js → chunk-PKD6LEQZ.js} +1 -1
  92. package/dist/cli/chunks/{chunk-G7XBTBM7.js → chunk-QBQ52YUU.js} +2 -2
  93. package/dist/cli/chunks/{chunk-6FM5DJHR.js → chunk-QE255FHS.js} +4 -4
  94. package/dist/cli/chunks/{chunk-YHKJYBWK.js → chunk-QGEZJKVO.js} +1 -1
  95. package/dist/cli/chunks/{chunk-NHIQ5HP3.js → chunk-QWVILMUX.js} +2 -2
  96. package/dist/cli/chunks/{chunk-BQUN2NB4.js → chunk-QYGI32T4.js} +3 -3
  97. package/dist/cli/chunks/{chunk-VKT4STAE.js → chunk-RD5N2722.js} +2 -2
  98. package/dist/cli/chunks/{chunk-KCQ2GFRN.js → chunk-RZLRPLRC.js} +2 -2
  99. package/dist/cli/chunks/{chunk-HT5EZYPZ.js → chunk-SQCNABS4.js} +2 -2
  100. package/dist/cli/chunks/chunk-SYYGXU7I.js +2 -0
  101. package/dist/cli/chunks/{chunk-IHXDXFUX.js → chunk-T4L6MHRW.js} +1 -1
  102. package/dist/cli/chunks/{chunk-74YG34UH.js → chunk-TG7PATSN.js} +2 -2
  103. package/dist/cli/chunks/{chunk-6QR7GSNJ.js → chunk-TPXS5KEC.js} +2 -2
  104. package/dist/cli/chunks/{chunk-YGZBS4RW.js → chunk-TSZ6VMCF.js} +2 -2
  105. package/dist/cli/chunks/{chunk-MO3IIM7L.js → chunk-UB53OWSL.js} +1 -1
  106. package/dist/cli/chunks/{chunk-3QH67ZYC.js → chunk-V2IUGAJ7.js} +2 -2
  107. package/dist/cli/chunks/{chunk-JUBICWL2.js → chunk-V3D6AA2P.js} +1 -1
  108. package/dist/cli/chunks/{chunk-3UFAEGSS.js → chunk-VJKIPTA2.js} +1 -1
  109. package/dist/cli/chunks/{chunk-LPVQ6QCW.js → chunk-VMDSTKVR.js} +2 -2
  110. package/dist/cli/chunks/{chunk-35DP6LX6.js → chunk-WFWVSI2W.js} +2 -2
  111. package/dist/cli/chunks/{chunk-BNYHBEDE.js → chunk-WOR67NKR.js} +2 -2
  112. package/dist/cli/chunks/{chunk-N66G743A.js → chunk-WQ76RMU3.js} +3 -3
  113. package/dist/cli/chunks/{chunk-TRPCOY3C.js → chunk-XKU2LJIM.js} +1 -1
  114. package/dist/cli/chunks/{chunk-CGYTM7AB.js → chunk-XOTBE543.js} +2 -2
  115. package/dist/cli/chunks/{chunk-PTAUZ3XL.js → chunk-XQAZHVHD.js} +1 -1
  116. package/dist/cli/chunks/{chunk-TUMXWCB7.js → chunk-Y2BEI3DL.js} +3 -3
  117. package/dist/cli/chunks/{chunk-5NBYV7FL.js → chunk-Y65KKN4T.js} +1 -1
  118. package/dist/cli/chunks/{chunk-3DGO7NJK.js → chunk-YI54PU4P.js} +1 -1
  119. package/dist/cli/chunks/{chunk-JYJXVTUP.js → chunk-YOLOT7MX.js} +2 -2
  120. package/dist/cli/chunks/{chunk-TSA5MUTQ.js → chunk-YQ7X6LKA.js} +2 -2
  121. package/dist/cli/chunks/{chunk-I4HGIQC2.js → chunk-YV34KLBV.js} +2 -2
  122. package/dist/cli/chunks/{chunk-CGYOMD6X.js → chunk-YWWQRNKI.js} +1 -1
  123. package/dist/cli/chunks/{chunk-TRRJP27A.js → chunk-Z4UUJUZO.js} +1 -1
  124. package/dist/cli/chunks/{chunk-MYIDAWGQ.js → chunk-Z5IOTEQI.js} +2 -2
  125. package/dist/cli/chunks/{chunk-BM7VSJTE.js → chunk-ZV6CCRP2.js} +2 -2
  126. package/dist/cli/chunks/{ci-3ATT6NMC.js → ci-6L22RUNC.js} +2 -2
  127. package/dist/cli/chunks/{ci-output-2JR3J753.js → ci-output-C2PAMUXM.js} +2 -2
  128. package/dist/cli/chunks/{claude-flow-setup-SG2BSEED.js → claude-flow-setup-S3HHSSIM.js} +2 -2
  129. package/dist/cli/chunks/client-KXLRKXSG.js +2 -0
  130. package/dist/cli/chunks/{cline-installer-A26SXDX6.js → cline-installer-YIXOIHBL.js} +2 -2
  131. package/dist/cli/chunks/{code-WIXKPGAQ.js → code-QVFF72Z4.js} +2 -2
  132. package/dist/cli/chunks/{code-index-extractor-W2NO6MR3.js → code-index-extractor-BRNK2X4M.js} +2 -2
  133. package/dist/cli/chunks/{codex-installer-VBSJHXI4.js → codex-installer-TLRH3SG7.js} +2 -2
  134. package/dist/cli/chunks/{completions-JFXIUS2V.js → completions-A46MED6L.js} +2 -2
  135. package/dist/cli/chunks/{complexity-analyzer-GPO4ZAIZ.js → complexity-analyzer-FJSG676O.js} +2 -2
  136. package/dist/cli/chunks/{continuedev-installer-OULSFVLB.js → continuedev-installer-7HHND63H.js} +2 -2
  137. package/dist/cli/chunks/{copilot-installer-QS7EG5DW.js → copilot-installer-UQ4IEG4H.js} +2 -2
  138. package/dist/cli/chunks/{cost-tracker-D7LNB633.js → cost-tracker-R6FXO2MO.js} +2 -2
  139. package/dist/cli/chunks/{coverage-YUQ4MQYK.js → coverage-3AGGT36D.js} +3 -3
  140. package/dist/cli/chunks/cross-domain-router-I2WPLKVN.js +2 -0
  141. package/dist/cli/chunks/{cursor-installer-UOZGHZHD.js → cursor-installer-7PABDYDI.js} +2 -2
  142. package/dist/cli/chunks/{daemon-27TMWDPY.js → daemon-YTCKYJB4.js} +3 -3
  143. package/dist/cli/chunks/{dag-attention-scheduler-PVAFQBDL.js → dag-attention-scheduler-LZZ4O2PT.js} +2 -2
  144. package/dist/cli/chunks/{detect-FUKMZ37Y.js → detect-OBCGJIYW.js} +2 -2
  145. package/dist/cli/chunks/{domain-handler-SP3QB5VN.js → domain-handler-5PHN6YQM.js} +2 -2
  146. package/dist/cli/chunks/{domain-transfer-A2WL6HEJ.js → domain-transfer-K6YSBC2L.js} +2 -2
  147. package/dist/cli/chunks/dream-BH35JQRS.js +2 -0
  148. package/dist/cli/chunks/esm-node-VI5DSKCM.js +2 -0
  149. package/dist/cli/chunks/{eval-6MIZUXEO.js → eval-UAAFW3YU.js} +2 -2
  150. package/dist/cli/chunks/{fast-paths-XT542LOU.js → fast-paths-7IFG4BYW.js} +2 -2
  151. package/dist/cli/chunks/{feature-flags-WBF5B6WE.js → feature-flags-AEO5C73R.js} +2 -2
  152. package/dist/cli/chunks/{feature-flags-NWACCWCB.js → feature-flags-TVJAGLLH.js} +2 -2
  153. package/dist/cli/chunks/{file-discovery-GKCJFWTD.js → file-discovery-STTTDBN3.js} +2 -2
  154. package/dist/cli/chunks/{fleet-V2MKGNMG.js → fleet-L6RVZQ2B.js} +3 -3
  155. package/dist/cli/chunks/{gnn-wrapper-HUUMTTSV.js → gnn-wrapper-W4QHVBUD.js} +2 -2
  156. package/dist/cli/chunks/{heartbeat-handler-UY3TCEN7.js → heartbeat-handler-3KZOB7MZ.js} +4 -4
  157. package/dist/cli/chunks/{heartbeat-scheduler-YWXPSCH2.js → heartbeat-scheduler-IR57JOZR.js} +2 -2
  158. package/dist/cli/chunks/hnsw-adapter-2SFTC2VH.js +2 -0
  159. package/dist/cli/chunks/hnsw-index-OBEYJRMU.js +2 -0
  160. package/dist/cli/chunks/{hnsw-legacy-bridge-IYYYSRK5.js → hnsw-legacy-bridge-5BYAJDVC.js} +2 -2
  161. package/dist/cli/chunks/{hnswlib-node-WDWAE74R.js → hnswlib-node-MUXAWCUE.js} +2 -2
  162. package/dist/cli/chunks/{hooks-DTBJK6LL.js → hooks-QT4NVEDG.js} +6 -6
  163. package/dist/cli/chunks/{hypergraph-engine-K47IBQNO.js → hypergraph-engine-MLLU5WQB.js} +2 -2
  164. package/dist/cli/chunks/{hypergraph-handler-2NDPG2N4.js → hypergraph-handler-LJWRQ2WW.js} +3 -3
  165. package/dist/cli/chunks/impact-analyzer-C5SKESHG.js +2 -0
  166. package/dist/cli/chunks/{init-handler-VRZS6KO2.js → init-handler-MKAZHZJS.js} +6 -6
  167. package/dist/cli/chunks/init-wizard-DV34KMTN.js +2 -0
  168. package/dist/cli/chunks/kernel-3HL4J5WJ.js +2 -0
  169. package/dist/cli/chunks/{kilocode-installer-XZAHWQEA.js → kilocode-installer-5MAYAROV.js} +2 -2
  170. package/dist/cli/chunks/{kiro-installer-53C7DXEF.js → kiro-installer-3JJ7TSXH.js} +2 -2
  171. package/dist/cli/chunks/knowledge-graph-XPFESDWZ.js +2 -0
  172. package/dist/cli/chunks/{learning-XYW2EEVX.js → learning-G7MWQMRY.js} +3 -3
  173. package/dist/cli/chunks/{llm-router-64SKMJ7B.js → llm-router-HYK5VS4A.js} +2 -2
  174. package/dist/cli/chunks/{load-HVL4O7EY.js → load-YVN3F5ZP.js} +2 -2
  175. package/dist/cli/chunks/load-test-EF3BRFGO.js +2 -0
  176. package/dist/cli/chunks/{mcp-4H2NJ3EO.js → mcp-I43GRN5E.js} +2 -2
  177. package/dist/cli/chunks/{memory-2CD4BAJK.js → memory-TMKTUI37.js} +5 -5
  178. package/dist/cli/chunks/memory-backend-FJDNXX6N.js +2 -0
  179. package/dist/cli/chunks/{memory-handlers-XRYZBE5I.js → memory-handlers-YFJOLCGN.js} +2 -2
  180. package/dist/cli/chunks/{opencode-installer-I23QAZC6.js → opencode-installer-KYDQUOAW.js} +2 -2
  181. package/dist/cli/chunks/{orchestrator-7BL6R54P.js → orchestrator-C6XRSC6Z.js} +25 -22
  182. package/dist/cli/chunks/{pipeline-7UN7LP6B.js → pipeline-IULH5B62.js} +2 -2
  183. package/dist/cli/chunks/{platform-P44YUHPK.js → platform-CACMGVB3.js} +2 -2
  184. package/dist/cli/chunks/{plugin-YWYR7FKS.js → plugin-6VSTK54C.js} +2 -2
  185. package/dist/cli/chunks/{prime-radiant-advanced-wasm-A7CDGUK6.js → prime-radiant-advanced-wasm-UA6FGPKX.js} +2 -2
  186. package/dist/cli/chunks/protocol-executor-OFL7H2VR.js +2 -0
  187. package/dist/cli/chunks/{protocol-handler-BM7RLC4Z.js → protocol-handler-UYJISQUT.js} +2 -2
  188. package/dist/cli/chunks/{prove-UVBYODRV.js → prove-H7PAIHGE.js} +2 -2
  189. package/dist/cli/chunks/qe-reasoning-bank-4NWLHIEM.js +2 -0
  190. package/dist/cli/chunks/{quality-4L42LN5Q.js → quality-NT3N4UDM.js} +2 -2
  191. package/dist/cli/chunks/queen-coordinator-I7YDKGZD.js +2 -0
  192. package/dist/cli/chunks/{real-embeddings-4CYZTWHT.js → real-embeddings-K46PTHOR.js} +2 -2
  193. package/dist/cli/chunks/{roocode-installer-UOSJS7KT.js → roocode-installer-K47KSTXW.js} +2 -2
  194. package/dist/cli/chunks/router-LNGYBIC4.js +2 -0
  195. package/dist/cli/chunks/routing-feedback-4RFHNTYV.js +2 -0
  196. package/dist/cli/chunks/{routing-handler-43G4D5UP.js → routing-handler-5RXV3FRV.js} +2 -2
  197. package/dist/cli/chunks/ruvector-commands-V46KRNUZ.js +8 -0
  198. package/dist/cli/chunks/{rvf-dual-writer-USU2IWO7.js → rvf-dual-writer-YX5K3XO7.js} +2 -2
  199. package/dist/cli/chunks/{rvf-migration-adapter-DZMYVJJY.js → rvf-migration-adapter-SURDRXWQ.js} +2 -2
  200. package/dist/cli/chunks/{rvf-migration-coordinator-AZ5JDT33.js → rvf-migration-coordinator-FMUHUWTB.js} +2 -2
  201. package/dist/cli/chunks/rvf-native-adapter-7REIX6DO.js +2 -0
  202. package/dist/cli/chunks/safe-db-SVN2BQFW.js +2 -0
  203. package/dist/cli/chunks/schedule-S6Z3DNRK.js +2 -0
  204. package/dist/cli/chunks/scheduler-BE5RHB4R.js +2 -0
  205. package/dist/cli/chunks/{security-RXG4H3UK.js → security-ENEWXTNE.js} +3 -3
  206. package/dist/cli/chunks/shared-rvf-adapter-PNVIYEDK.js +2 -0
  207. package/dist/cli/chunks/{shared-rvf-dual-writer-2PUFIGX5.js → shared-rvf-dual-writer-KJ67FATL.js} +2 -2
  208. package/dist/cli/chunks/sqlite-persistence-XBTALZ2S.js +2 -0
  209. package/dist/cli/chunks/{status-handler-SXQKG6VP.js → status-handler-CEMWQKE6.js} +2 -2
  210. package/dist/cli/chunks/{structural-health-LPXOOMG3.js → structural-health-B4VGYG4F.js} +2 -2
  211. package/dist/cli/chunks/{sync-5NX7GQQY.js → sync-P7PLECMB.js} +2 -2
  212. package/dist/cli/chunks/{task-handler-Y4KVNCOI.js → task-handler-YGKMS5E2.js} +2 -2
  213. package/dist/cli/chunks/{task-handlers-CG27Z3CP.js → task-handlers-LKTBRIPS.js} +2 -2
  214. package/dist/cli/chunks/{test-PWVTWOWS.js → test-ZWWGVM5X.js} +4 -4
  215. package/dist/cli/chunks/{test-scheduling-5S5EBVE7.js → test-scheduling-HTFVIWWL.js} +3 -3
  216. package/dist/cli/chunks/{token-bootstrap-QMPUKGQC.js → token-bootstrap-7VYNREQH.js} +2 -2
  217. package/dist/cli/chunks/{token-usage-OZNRTJLE.js → token-usage-D67GP7FV.js} +2 -2
  218. package/dist/cli/chunks/{transformers-DRPOBWCW.js → transformers-CI3CZC2C.js} +2 -2
  219. package/dist/cli/chunks/{tree-sitter-wasm-parser-VLX6HQW2.js → tree-sitter-wasm-parser-BMRWIP7P.js} +2 -2
  220. package/dist/cli/chunks/{types-TUF6HUPE.js → types-SAPPKMCS.js} +2 -2
  221. package/dist/cli/chunks/unified-memory-OYIJOZ2E.js +2 -0
  222. package/dist/cli/chunks/unified-memory-hnsw-JRWF6EEB.js +2 -0
  223. package/dist/cli/chunks/unified-persistence-OOUATKAN.js +2 -0
  224. package/dist/cli/chunks/{validate-H7QFV2CI.js → validate-UZL2Y3GR.js} +2 -2
  225. package/dist/cli/chunks/{validate-swarm-BGH6YM4S.js → validate-swarm-ILNS64DZ.js} +2 -2
  226. package/dist/cli/chunks/{vibium-DQOGR2PH.js → vibium-CJMPXUAU.js} +2 -2
  227. package/dist/cli/chunks/visual-security-77T3APRH.js +2 -0
  228. package/dist/cli/chunks/{web-tree-sitter-TOI4XJIL.js → web-tree-sitter-HO5UYPPH.js} +2 -2
  229. package/dist/cli/chunks/{windsurf-installer-EUMBFA42.js → windsurf-installer-TEXMCEBB.js} +2 -2
  230. package/dist/cli/chunks/witness-chain-QIARNA6D.js +2 -0
  231. package/dist/cli/chunks/{witness-chain-MWPUR4Q2.js → witness-chain-TF35D7QS.js} +2 -2
  232. package/dist/cli/chunks/{workflow-V5HI3AQR.js → workflow-APRDB3SB.js} +4 -4
  233. package/dist/cli/chunks/workflow-orchestrator-IRZVM4MZ.js +2 -0
  234. package/dist/cli/chunks/{wrappers-VOU4IVAQ.js → wrappers-VGV5RU5Q.js} +2 -2
  235. package/dist/cli/commands/ruvector-commands.js +5 -2
  236. package/dist/cli/index.js +5 -4
  237. package/dist/init/phases/04-database.js +19 -0
  238. package/dist/init/phases/06-code-intelligence.js +9 -6
  239. package/dist/init/phases/10-workers.js +2 -0
  240. package/dist/integrations/ruvector/feature-flags.d.ts +27 -5
  241. package/dist/integrations/ruvector/feature-flags.js +15 -2
  242. package/dist/kernel/hnsw-adapter.js +1 -1
  243. package/dist/kernel/native-hnsw-backend.d.ts +100 -37
  244. package/dist/kernel/native-hnsw-backend.js +207 -192
  245. package/dist/kernel/unified-memory.js +15 -10
  246. package/dist/mcp/bundle.js +189 -189
  247. package/package.json +1 -1
  248. package/dist/cli/chunks/adapter-HOBCL2VF.js +0 -2
  249. package/dist/cli/chunks/aqe-learning-engine-77FVV2ZJ.js +0 -2
  250. package/dist/cli/chunks/base-2IXMPGJV.js +0 -2
  251. package/dist/cli/chunks/browser-workflow-AQYKV2NE.js +0 -2
  252. package/dist/cli/chunks/chunk-PMFZHFCB.js +0 -2
  253. package/dist/cli/chunks/chunk-Z2GK7COI.js +0 -2
  254. package/dist/cli/chunks/client-3CA57H5P.js +0 -2
  255. package/dist/cli/chunks/cross-domain-router-GECFIALH.js +0 -2
  256. package/dist/cli/chunks/dream-CJ4MKM5G.js +0 -2
  257. package/dist/cli/chunks/esm-node-X7U3YS4M.js +0 -2
  258. package/dist/cli/chunks/hnsw-adapter-LJGOH772.js +0 -2
  259. package/dist/cli/chunks/hnsw-index-V6SST2MB.js +0 -2
  260. package/dist/cli/chunks/impact-analyzer-MTOVFD3O.js +0 -2
  261. package/dist/cli/chunks/init-wizard-IH6PSRJY.js +0 -2
  262. package/dist/cli/chunks/kernel-3MC7WV5G.js +0 -2
  263. package/dist/cli/chunks/knowledge-graph-HLUQJ2GI.js +0 -2
  264. package/dist/cli/chunks/load-test-VVVME7GZ.js +0 -2
  265. package/dist/cli/chunks/memory-backend-O3U2QDU3.js +0 -2
  266. package/dist/cli/chunks/protocol-executor-HLNTSRYC.js +0 -2
  267. package/dist/cli/chunks/qe-reasoning-bank-JK5CK4D4.js +0 -2
  268. package/dist/cli/chunks/queen-coordinator-FLF6XYLX.js +0 -2
  269. package/dist/cli/chunks/router-DUFZW3WQ.js +0 -2
  270. package/dist/cli/chunks/routing-feedback-6U76TI6X.js +0 -2
  271. package/dist/cli/chunks/ruvector-commands-H7A7LG6Q.js +0 -8
  272. package/dist/cli/chunks/rvf-native-adapter-4UD7SUMB.js +0 -2
  273. package/dist/cli/chunks/safe-db-32Q5RXHR.js +0 -2
  274. package/dist/cli/chunks/schedule-ZHCM3L6H.js +0 -2
  275. package/dist/cli/chunks/scheduler-HBSSLDOD.js +0 -2
  276. package/dist/cli/chunks/shared-rvf-adapter-PLZVKKW7.js +0 -2
  277. package/dist/cli/chunks/sqlite-persistence-YUZMB44Y.js +0 -2
  278. package/dist/cli/chunks/unified-memory-3D4VDY4G.js +0 -2
  279. package/dist/cli/chunks/unified-memory-hnsw-AAQ5IA6M.js +0 -2
  280. package/dist/cli/chunks/unified-persistence-PY7MVJTL.js +0 -2
  281. package/dist/cli/chunks/visual-security-ZBNB7LEG.js +0 -2
  282. package/dist/cli/chunks/witness-chain-CS76OJFL.js +0 -2
  283. package/dist/cli/chunks/workflow-orchestrator-FS4HGYI7.js +0 -2
@@ -14,14 +14,27 @@
14
14
  // Default Configuration
15
15
  // ============================================================================
16
16
  /**
17
- * Default feature flags - all enabled by default
17
+ * Default feature flags all enabled by default.
18
+ *
19
+ * useNativeHNSW history:
20
+ * - v3.9.5: flipped to false after the @ruvector/router native binding
21
+ * was found to deadlock on certain inputs (futex contention inside the
22
+ * Rust-side HNSW). The JS ProgressiveHnswBackend was the safe default.
23
+ * - issue #399 (April 2026): empirical verification revealed four bugs in
24
+ * @ruvector/router 0.1.28 — broken HNSW search (recall ~0% on textbook
25
+ * fixtures), CWD pollution via vectors.db, process-wide singleton lock,
26
+ * and unreleased file lock on dispose. NativeHnswBackend was rewritten
27
+ * to wrap hnswlib-node (the canonical Hnswlib reference implementation
28
+ * by Yury Malkov) which fixes all four bugs and gives users with large
29
+ * codebases real sublinear HNSW search. Default flipped back to true.
30
+ * See ADR-090.
18
31
  */
19
32
  const DEFAULT_FEATURE_FLAGS = {
20
33
  useQESONA: true,
21
34
  useQEFlashAttention: true,
22
35
  useQEGNNIndex: true,
23
36
  logMigrationMetrics: true,
24
- useNativeHNSW: false,
37
+ useNativeHNSW: true,
25
38
  useTemporalCompression: true,
26
39
  useMetadataFiltering: true,
27
40
  useDeterministicDither: true,
@@ -199,7 +199,7 @@ export class HnswAdapter {
199
199
  if (this.backend instanceof ProgressiveHnswBackend) {
200
200
  return this.backend.isRuvectorAvailable();
201
201
  }
202
- // NativeHnswBackend uses @ruvector/router VectorDb
202
+ // NativeHnswBackend wraps hnswlib-node HierarchicalNSW (post #399 / ADR-090)
203
203
  if (this.backend instanceof NativeHnswBackend) {
204
204
  return this.backend.isNativeAvailable();
205
205
  }
@@ -1,22 +1,49 @@
1
1
  /**
2
- * Native HNSW Backend via @ruvector/router VectorDb
2
+ * Native HNSW Backend via hnswlib-node
3
3
  *
4
- * Provides a high-performance HNSW index backed by the Rust-based
5
- * @ruvector/router library. This backend implements the same
6
- * IHnswIndexProvider interface as ProgressiveHnswBackend but delegates
7
- * vector storage and search to native code for lower latency and
8
- * higher throughput.
4
+ * Provides a high-performance HNSW index backed by hnswlib-node, the
5
+ * canonical Node.js binding for the C++ Hnswlib reference implementation
6
+ * (Yury Malkov's HNSW library, the same code Pinecone, Weaviate, Qdrant
7
+ * and chromadb-default-embed are built on top of).
9
8
  *
10
- * When @ruvector/router is unavailable (e.g., unsupported platform,
11
- * missing binary), construction throws NativeHnswUnavailableError so the
12
- * caller (HnswAdapter factory) can fall back to the JS backend.
9
+ * This backend implements the same IHnswIndexProvider interface as
10
+ * ProgressiveHnswBackend but delegates vector storage and search to
11
+ * native code for sublinear search latency on large indexes.
13
12
  *
14
- * @see ADR-081: Native HNSW NAPI Integration
13
+ * History issue #399 (April 2026):
14
+ * This backend previously wrapped @ruvector/router's VectorDb. Empirical
15
+ * verification (scripts/diagnose-issue-399*.mjs) found four serious bugs
16
+ * in @ruvector/router 0.1.28:
17
+ *
18
+ * 1. HNSW search returned essentially random results — recall@10 ≈ 0%
19
+ * on textbook unit-Gaussian random vectors at default M/efC/efS,
20
+ * could not find self-vectors. Pumping efSearch to N≈index-size
21
+ * restored correctness but defeated HNSW's purpose.
22
+ * 2. The VectorDb constructor unconditionally created a `vectors.db`
23
+ * redb file in the current working directory (NOT in .agentic-qe/),
24
+ * violating the unified memory architecture and polluting users'
25
+ * project roots with multi-MB persistence files they never asked for.
26
+ * 3. The redb file held a process-wide exclusive lock — only ONE
27
+ * VectorDb instance could exist per process. Subsequent constructors
28
+ * threw "Database already open. Cannot acquire lock."
29
+ * 4. NAPI dispose did not synchronously release the redb lock, so the
30
+ * lock outlived our dispose() call and caused the v3.9.5 futex
31
+ * deadlock when the indexer tried to recreate after reset.
32
+ *
33
+ * Comparison test on 1000 vector self-query (linux-arm64, M=16, efC=200,
34
+ * efS=100, cosine):
35
+ * - @ruvector/router 0.1.28: recall@10 = 10%, top-1 = wrong vector
36
+ * - hnswlib-node 3.0.0: recall@10 = 100%, top-1 = id 42 ✓
37
+ *
38
+ * The migration to hnswlib-node fixes all four bugs in one swap.
39
+ *
40
+ * @see ADR-090: hnswlib-node migration
41
+ * @see https://github.com/proffesor-for-testing/agentic-qe/issues/399
15
42
  * @module kernel/native-hnsw-backend
16
43
  */
17
44
  import type { IHnswIndexProvider, SearchResult, HnswConfig } from './hnsw-index-provider.js';
18
45
  /**
19
- * Thrown when @ruvector/router native binary is not available.
46
+ * Thrown when hnswlib-node native binary is not available.
20
47
  * The HnswAdapter factory catches this to fall back to the JS backend.
21
48
  */
22
49
  export declare class NativeHnswUnavailableError extends Error {
@@ -31,6 +58,17 @@ export declare function resetNativeModuleLoader(): void;
31
58
  * Check if the native module is available without throwing.
32
59
  */
33
60
  export declare function isNativeModuleAvailable(): boolean;
61
+ /**
62
+ * Performance metrics for a NativeHnswBackend instance.
63
+ *
64
+ * Note on legacy fields: `fallbackSearchCount`, `bruteForceSearchCount`,
65
+ * `fallbackRate`, and `allSearchesBruteForce` are retained for backward
66
+ * compatibility with consumers that referenced them during the
67
+ * @ruvector/router era. Under hnswlib-node there is no native→brute-force
68
+ * fallback path (the library always returns correct results), so these
69
+ * fields will always be 0/false. They will be removed in a future major
70
+ * version.
71
+ */
34
72
  export interface NativeHnswMetrics {
35
73
  totalSearches: number;
36
74
  totalAdds: number;
@@ -38,40 +76,61 @@ export interface NativeHnswMetrics {
38
76
  avgSearchLatencyMs: number;
39
77
  maxSearchLatencyMs: number;
40
78
  lastSearchLatencyMs: number;
79
+ /** Always 0 under hnswlib-node — kept for backward compatibility. */
41
80
  fallbackSearchCount: number;
81
+ /** Always 0 under hnswlib-node — kept for backward compatibility. */
42
82
  bruteForceSearchCount: number;
83
+ /** Equals totalSearches under hnswlib-node (every search is native). */
43
84
  nativeSearchCount: number;
85
+ /** Always 0 under hnswlib-node. */
44
86
  fallbackRate: number;
87
+ /** Always false under hnswlib-node. */
45
88
  allSearchesBruteForce: boolean;
46
89
  }
47
90
  /**
48
- * Native HNSW backend using @ruvector/router VectorDb.
91
+ * Native HNSW backend using hnswlib-node HierarchicalNSW.
49
92
  *
50
93
  * Provides the same IHnswIndexProvider interface as ProgressiveHnswBackend
51
- * but delegates all vector operations to a Rust-based HNSW implementation
52
- * for improved performance.
94
+ * but delegates all vector operations to the C++ Hnswlib reference
95
+ * implementation for sublinear search latency at scale.
53
96
  *
54
- * Note: @ruvector/router VectorDb uses string IDs while IHnswIndexProvider
55
- * uses numeric IDs. Conversion is done via String(id) and Number(id).
56
- * VectorDb search returns distance scores (lower = closer) which are
57
- * converted to similarity scores (higher = closer) for consistency.
97
+ * Key differences from the previous @ruvector/router-backed implementation:
98
+ * - No local vectorStore mirror hnswlib-node returns correct distances
99
+ * directly, so re-scoring is unnecessary.
100
+ * - No process-wide singleton lock multiple instances coexist.
101
+ * - No vectors.db pollution — persistence is opt-in via writeIndex().
102
+ * - resizeIndex() doubling on overflow — grows past initial maxElements.
58
103
  */
59
104
  export declare class NativeHnswBackend implements IHnswIndexProvider {
60
105
  private readonly config;
61
- private nativeDb;
106
+ private nativeIndex;
107
+ private currentMaxElements;
108
+ /** Tracks live ids so size() and remove() can correctly distinguish soft-deleted slots. */
109
+ private readonly liveIds;
110
+ /** Optional metadata mirror — only stored when callers attach metadata. */
62
111
  private readonly metadataStore;
63
- private readonly vectorStore;
64
- private readonly normStore;
65
- private operationLock;
66
- private highFallbackWarningEmitted;
67
112
  private _metrics;
68
113
  /**
69
114
  * Create a NativeHnswBackend.
70
115
  *
71
116
  * @param config - HNSW configuration overrides
72
- * @throws {NativeHnswUnavailableError} If @ruvector/router is not available
117
+ * @throws {NativeHnswUnavailableError} If hnswlib-node is not available
73
118
  */
74
119
  constructor(config?: Partial<HnswConfig>);
120
+ /**
121
+ * Build a fresh HierarchicalNSW with the configured parameters.
122
+ *
123
+ * Used both at construction time and on `clear()` to guarantee a clean
124
+ * graph. hnswlib-node's `markDelete` is a soft tombstone — it leaves the
125
+ * graph node in place and only hides it from search. Across many cycles
126
+ * of `clear() → re-add` (which happens during long test runs that share
127
+ * the singleton HnswAdapter registry), the tombstoned slots can interact
128
+ * pathologically with `addPoint(label, replaceDeleted=true)` and produce
129
+ * duplicate-label results from `searchKnn`. Recreating the underlying
130
+ * index on `clear()` is the only way to guarantee O(1) clean state
131
+ * regardless of how the wrapper is used over time.
132
+ */
133
+ private createFreshIndex;
75
134
  add(id: number, vector: Float32Array, metadata?: Record<string, unknown>): void;
76
135
  search(query: Float32Array, k: number): SearchResult[];
77
136
  remove(id: number): boolean;
@@ -92,18 +151,27 @@ export declare class NativeHnswBackend implements IHnswIndexProvider {
92
151
  getConfig(): Readonly<HnswConfig>;
93
152
  /**
94
153
  * Clear all vectors from the index.
95
- * Deletes all entries from the native VectorDb.
154
+ *
155
+ * Recreates the underlying HierarchicalNSW from scratch rather than
156
+ * `markDelete`-ing each label. The tombstone-only approach leaks state
157
+ * across `clear() → re-add` cycles (the C++ graph keeps every deleted
158
+ * slot, and `addPoint(label, replaceDeleted=true)` can produce
159
+ * duplicate-label results from `searchKnn` after many cycles). A fresh
160
+ * index is the only guarantee of O(1) clean state and is what callers
161
+ * who use `clear()` actually expect.
96
162
  */
97
163
  clear(): void;
98
164
  /**
99
- * Dispose of the native VectorDb handle so NAPI garbage collection can
100
- * reclaim the underlying Rust-side index. After dispose(), this backend
101
- * instance must not be used. The HnswAdapter registry is expected to
102
- * drop its reference as part of `HnswAdapter.close(name)`.
165
+ * Dispose of the native index handle.
103
166
  *
104
- * This is the load-bearing fix for the v3.9.1 regression where
105
- * `resetUnifiedMemory()` would null the UnifiedMemoryManager but leave
106
- * a stale NativeHnswBackend alive in the HnswAdapter registry.
167
+ * hnswlib-node holds the C++ index in JS-managed memory; setting the
168
+ * reference to null lets V8 GC reclaim it on the next collection cycle.
169
+ * Unlike the previous @ruvector/router VectorDb, there is no file lock
170
+ * to release and no synchronous teardown required.
171
+ *
172
+ * After dispose(), this backend instance must not be used. The
173
+ * HnswAdapter registry is expected to drop its reference as part of
174
+ * `HnswAdapter.close(name)`.
107
175
  */
108
176
  dispose(): void;
109
177
  /**
@@ -112,10 +180,5 @@ export declare class NativeHnswBackend implements IHnswIndexProvider {
112
180
  isNativeAvailable(): boolean;
113
181
  private normalizeVector;
114
182
  private updateSearchMetrics;
115
- /**
116
- * Brute-force fallback search over locally stored vectors.
117
- * Used when native search throws an unexpected error.
118
- */
119
- private bruteForceSearch;
120
183
  }
121
184
  //# sourceMappingURL=native-hnsw-backend.d.ts.map