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.
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-XV7RUOO7.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-AW36VJXL.js → agent-booster-wasm-ID2COJCQ.js} +2 -2
- package/dist/cli/chunks/{agent-handler-AQFW2CMW.js → agent-handler-EWK6FHKU.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-VA6A47U5.js → agent-memory-branch-BDKB7HER.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-Q5CC43GW.js +2 -0
- package/dist/cli/chunks/{audit-WVJHTVUU.js → audit-EB62PPY4.js} +2 -2
- package/dist/cli/chunks/base-UL4PX45P.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-HCMGVEDO.js → better-sqlite3-C4HK6YT3.js} +2 -2
- package/dist/cli/chunks/{brain-handler-JZISBH2W.js → brain-handler-QLIHJDGD.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-3TQXIETD.js → branch-enumerator-HWWHSETZ.js} +2 -2
- package/dist/cli/chunks/{browser-4GZXU4YT.js → browser-PEMYUQ6B.js} +2 -2
- package/dist/cli/chunks/browser-workflow-K77KPDRF.js +2 -0
- package/dist/cli/chunks/{chunk-PVLOT5BL.js → chunk-2DGTT6D2.js} +2 -2
- package/dist/cli/chunks/{chunk-GFXAKQ77.js → chunk-2FTTRGRS.js} +2 -2
- package/dist/cli/chunks/{chunk-OPOTKH42.js → chunk-3BAC7NLV.js} +3 -3
- package/dist/cli/chunks/{chunk-W73AYMDP.js → chunk-3TAJSNCZ.js} +1 -1
- package/dist/cli/chunks/{chunk-NGP3DRFU.js → chunk-3U3NUFII.js} +1 -1
- package/dist/cli/chunks/{chunk-TRO45ZLC.js → chunk-3VBPPW7H.js} +1 -1
- package/dist/cli/chunks/{chunk-KUDPFLL4.js → chunk-3WQ7MLAJ.js} +4 -4
- package/dist/cli/chunks/{chunk-45WEXMKC.js → chunk-46442R6Q.js} +2 -2
- package/dist/cli/chunks/{chunk-NDWWN2YC.js → chunk-4H3YCKAI.js} +4 -4
- package/dist/cli/chunks/{chunk-73LG5ELL.js → chunk-4NYVSHN3.js} +2 -2
- package/dist/cli/chunks/{chunk-PGFHFPDP.js → chunk-5A5ECZCN.js} +2 -2
- package/dist/cli/chunks/{chunk-WIZOYPFT.js → chunk-5AXU6KCI.js} +2 -2
- package/dist/cli/chunks/{chunk-4QGNSNQL.js → chunk-5CKG46BM.js} +2 -2
- package/dist/cli/chunks/{chunk-MBXSHGDD.js → chunk-64SU2UFL.js} +2 -2
- package/dist/cli/chunks/{chunk-GFZRXQWH.js → chunk-67WBMX7K.js} +1 -1
- package/dist/cli/chunks/{chunk-6AMXWB6Y.js → chunk-6T6TPZCK.js} +2 -2
- package/dist/cli/chunks/{chunk-DPEX4UOC.js → chunk-6X6NWAVQ.js} +1 -1
- package/dist/cli/chunks/{chunk-ALX5RJSR.js → chunk-775KESYW.js} +2 -2
- package/dist/cli/chunks/{chunk-ZD2FS4Q7.js → chunk-7B3IZBNN.js} +2 -2
- package/dist/cli/chunks/{chunk-BYD54ZUF.js → chunk-7B46Q5OU.js} +2 -2
- package/dist/cli/chunks/{chunk-OTOQXMP6.js → chunk-7CSZCRSS.js} +3 -3
- package/dist/cli/chunks/{chunk-DSOEKRQL.js → chunk-7EDVNITA.js} +2 -2
- package/dist/cli/chunks/{chunk-XG2JAIQT.js → chunk-7MD7PQYH.js} +1 -1
- package/dist/cli/chunks/{chunk-ERV3OVUG.js → chunk-AFOGTLSY.js} +2 -2
- package/dist/cli/chunks/{chunk-WV7K5A7J.js → chunk-AJX44TJ7.js} +2 -2
- package/dist/cli/chunks/{chunk-UO2R7ZN3.js → chunk-AMLREU5W.js} +2 -2
- package/dist/cli/chunks/{chunk-QHMDETCU.js → chunk-ARRJKSDK.js} +1 -1
- package/dist/cli/chunks/{chunk-OQCEI7Q4.js → chunk-BHOJLQLF.js} +2 -2
- package/dist/cli/chunks/{chunk-Y6XYH7EV.js → chunk-BKCIW3O2.js} +2 -2
- package/dist/cli/chunks/{chunk-KWIDDPKG.js → chunk-C723FDLL.js} +2 -2
- package/dist/cli/chunks/{chunk-X6J7VYVD.js → chunk-CJ6GN5QT.js} +2 -2
- package/dist/cli/chunks/{chunk-J4SEGMXL.js → chunk-CLVHHUZB.js} +2 -2
- package/dist/cli/chunks/{chunk-CQT3IEEX.js → chunk-CQNNNR53.js} +2 -2
- package/dist/cli/chunks/{chunk-YDBMYTOV.js → chunk-CU3LGMOK.js} +2 -2
- package/dist/cli/chunks/{chunk-IMCYFQWF.js → chunk-DAWI2HRN.js} +2 -2
- package/dist/cli/chunks/{chunk-ZFCRDCHW.js → chunk-E5J3GKCP.js} +2 -2
- package/dist/cli/chunks/{chunk-UPFCV7MX.js → chunk-EJSRKZ5M.js} +2 -2
- package/dist/cli/chunks/{chunk-HA4COQ66.js → chunk-EMKI4ZV5.js} +2 -2
- package/dist/cli/chunks/{chunk-7JQOOPA2.js → chunk-ESFKNND3.js} +2 -2
- package/dist/cli/chunks/{chunk-KQ7VBUO4.js → chunk-EVRJS6CN.js} +2 -2
- package/dist/cli/chunks/{chunk-S4F3CNSP.js → chunk-FZ77DJFC.js} +2 -2
- package/dist/cli/chunks/{chunk-WTGUS7DD.js → chunk-G3VIZON2.js} +2 -2
- package/dist/cli/chunks/{chunk-NNNH36RU.js → chunk-GXVUDSYW.js} +2 -2
- package/dist/cli/chunks/{chunk-QPW2O5TR.js → chunk-H3KGRTY2.js} +9 -9
- package/dist/cli/chunks/{chunk-4FPCCKNQ.js → chunk-H4J456F2.js} +1 -1
- package/dist/cli/chunks/{chunk-GSTDQLXR.js → chunk-H5OYJKPR.js} +2 -2
- package/dist/cli/chunks/{chunk-4EOSDCDM.js → chunk-H7OP3RI2.js} +1 -1
- package/dist/cli/chunks/{chunk-ZP237D7K.js → chunk-HUPIHL55.js} +2 -2
- package/dist/cli/chunks/{chunk-FDFJHGRZ.js → chunk-HZSYBKRI.js} +2 -2
- package/dist/cli/chunks/{chunk-MRTDOSHR.js → chunk-JB3G5ZLL.js} +2 -2
- package/dist/cli/chunks/{chunk-YQTPEQO6.js → chunk-JDGUTBC3.js} +2 -2
- package/dist/cli/chunks/{chunk-ITIYGUIL.js → chunk-JEF3S4ER.js} +2 -2
- package/dist/cli/chunks/{chunk-LLXBL36X.js → chunk-JRPYXCDT.js} +1 -1
- package/dist/cli/chunks/{chunk-55EAFHVH.js → chunk-K52WNOTU.js} +3 -3
- package/dist/cli/chunks/{chunk-YZ3WB4TN.js → chunk-K5RE6ODJ.js} +2 -2
- package/dist/cli/chunks/{chunk-ZWS7J73Q.js → chunk-K6XC52U3.js} +1 -1
- package/dist/cli/chunks/{chunk-DFOANC7Z.js → chunk-KI4W6CVC.js} +1 -1
- package/dist/cli/chunks/{chunk-ZJWDWM6B.js → chunk-KIEXP4F3.js} +3 -3
- package/dist/cli/chunks/{chunk-3VNEMHOO.js → chunk-L6HQVZQL.js} +1 -1
- package/dist/cli/chunks/{chunk-EPH2GZQM.js → chunk-LFTQYU65.js} +2 -2
- package/dist/cli/chunks/{chunk-I27OTSC7.js → chunk-LSFJKCAQ.js} +2 -2
- package/dist/cli/chunks/{chunk-IMGRYCAT.js → chunk-LZ5LS4LF.js} +1 -1
- package/dist/cli/chunks/chunk-MA7OLK56.js +2 -0
- package/dist/cli/chunks/{chunk-6QKGLIIY.js → chunk-MAZWSPEQ.js} +2 -2
- package/dist/cli/chunks/{chunk-E55RROAP.js → chunk-MRDXDXPW.js} +1 -1
- package/dist/cli/chunks/{chunk-CNGRXBKO.js → chunk-MROCXAXJ.js} +2 -2
- package/dist/cli/chunks/{chunk-T4KMG3GJ.js → chunk-MV52OH7P.js} +1 -1
- package/dist/cli/chunks/{chunk-3UE5GART.js → chunk-MX3ORXM3.js} +2 -2
- package/dist/cli/chunks/{chunk-GHFXURNS.js → chunk-N5CEEWWJ.js} +1 -1
- package/dist/cli/chunks/{chunk-YHSIUFFY.js → chunk-NA5ZOZIF.js} +2 -2
- package/dist/cli/chunks/{chunk-53J3R7PZ.js → chunk-NOK2ICQT.js} +2 -2
- package/dist/cli/chunks/{chunk-6VB4VZCR.js → chunk-NPNGSE7X.js} +2 -2
- package/dist/cli/chunks/{chunk-2XJRSIM5.js → chunk-NSRIYP76.js} +2 -2
- package/dist/cli/chunks/{chunk-3KYKE7B6.js → chunk-O65ZAUG3.js} +1 -1
- package/dist/cli/chunks/{chunk-REXMKRR2.js → chunk-P4X6YTOY.js} +8 -8
- package/dist/cli/chunks/{chunk-673PL3DG.js → chunk-PKD6LEQZ.js} +1 -1
- package/dist/cli/chunks/{chunk-G7XBTBM7.js → chunk-QBQ52YUU.js} +2 -2
- package/dist/cli/chunks/{chunk-6FM5DJHR.js → chunk-QE255FHS.js} +4 -4
- package/dist/cli/chunks/{chunk-YHKJYBWK.js → chunk-QGEZJKVO.js} +1 -1
- package/dist/cli/chunks/{chunk-NHIQ5HP3.js → chunk-QWVILMUX.js} +2 -2
- package/dist/cli/chunks/{chunk-BQUN2NB4.js → chunk-QYGI32T4.js} +3 -3
- package/dist/cli/chunks/{chunk-VKT4STAE.js → chunk-RD5N2722.js} +2 -2
- package/dist/cli/chunks/{chunk-KCQ2GFRN.js → chunk-RZLRPLRC.js} +2 -2
- package/dist/cli/chunks/{chunk-HT5EZYPZ.js → chunk-SQCNABS4.js} +2 -2
- package/dist/cli/chunks/chunk-SYYGXU7I.js +2 -0
- package/dist/cli/chunks/{chunk-IHXDXFUX.js → chunk-T4L6MHRW.js} +1 -1
- package/dist/cli/chunks/{chunk-74YG34UH.js → chunk-TG7PATSN.js} +2 -2
- package/dist/cli/chunks/{chunk-6QR7GSNJ.js → chunk-TPXS5KEC.js} +2 -2
- package/dist/cli/chunks/{chunk-YGZBS4RW.js → chunk-TSZ6VMCF.js} +2 -2
- package/dist/cli/chunks/{chunk-MO3IIM7L.js → chunk-UB53OWSL.js} +1 -1
- package/dist/cli/chunks/{chunk-3QH67ZYC.js → chunk-V2IUGAJ7.js} +2 -2
- package/dist/cli/chunks/{chunk-JUBICWL2.js → chunk-V3D6AA2P.js} +1 -1
- package/dist/cli/chunks/{chunk-3UFAEGSS.js → chunk-VJKIPTA2.js} +1 -1
- package/dist/cli/chunks/{chunk-LPVQ6QCW.js → chunk-VMDSTKVR.js} +2 -2
- package/dist/cli/chunks/{chunk-35DP6LX6.js → chunk-WFWVSI2W.js} +2 -2
- package/dist/cli/chunks/{chunk-BNYHBEDE.js → chunk-WOR67NKR.js} +2 -2
- package/dist/cli/chunks/{chunk-N66G743A.js → chunk-WQ76RMU3.js} +3 -3
- package/dist/cli/chunks/{chunk-TRPCOY3C.js → chunk-XKU2LJIM.js} +1 -1
- package/dist/cli/chunks/{chunk-CGYTM7AB.js → chunk-XOTBE543.js} +2 -2
- package/dist/cli/chunks/{chunk-PTAUZ3XL.js → chunk-XQAZHVHD.js} +1 -1
- package/dist/cli/chunks/{chunk-TUMXWCB7.js → chunk-Y2BEI3DL.js} +3 -3
- package/dist/cli/chunks/{chunk-5NBYV7FL.js → chunk-Y65KKN4T.js} +1 -1
- package/dist/cli/chunks/{chunk-3DGO7NJK.js → chunk-YI54PU4P.js} +1 -1
- package/dist/cli/chunks/{chunk-JYJXVTUP.js → chunk-YOLOT7MX.js} +2 -2
- package/dist/cli/chunks/{chunk-TSA5MUTQ.js → chunk-YQ7X6LKA.js} +2 -2
- package/dist/cli/chunks/{chunk-I4HGIQC2.js → chunk-YV34KLBV.js} +2 -2
- package/dist/cli/chunks/{chunk-CGYOMD6X.js → chunk-YWWQRNKI.js} +1 -1
- package/dist/cli/chunks/{chunk-TRRJP27A.js → chunk-Z4UUJUZO.js} +1 -1
- package/dist/cli/chunks/{chunk-MYIDAWGQ.js → chunk-Z5IOTEQI.js} +2 -2
- package/dist/cli/chunks/{chunk-BM7VSJTE.js → chunk-ZV6CCRP2.js} +2 -2
- package/dist/cli/chunks/{ci-3ATT6NMC.js → ci-6L22RUNC.js} +2 -2
- package/dist/cli/chunks/{ci-output-2JR3J753.js → ci-output-C2PAMUXM.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-SG2BSEED.js → claude-flow-setup-S3HHSSIM.js} +2 -2
- package/dist/cli/chunks/client-KXLRKXSG.js +2 -0
- package/dist/cli/chunks/{cline-installer-A26SXDX6.js → cline-installer-YIXOIHBL.js} +2 -2
- package/dist/cli/chunks/{code-WIXKPGAQ.js → code-QVFF72Z4.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-W2NO6MR3.js → code-index-extractor-BRNK2X4M.js} +2 -2
- package/dist/cli/chunks/{codex-installer-VBSJHXI4.js → codex-installer-TLRH3SG7.js} +2 -2
- package/dist/cli/chunks/{completions-JFXIUS2V.js → completions-A46MED6L.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-GPO4ZAIZ.js → complexity-analyzer-FJSG676O.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-OULSFVLB.js → continuedev-installer-7HHND63H.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-QS7EG5DW.js → copilot-installer-UQ4IEG4H.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-D7LNB633.js → cost-tracker-R6FXO2MO.js} +2 -2
- package/dist/cli/chunks/{coverage-YUQ4MQYK.js → coverage-3AGGT36D.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-I2WPLKVN.js +2 -0
- package/dist/cli/chunks/{cursor-installer-UOZGHZHD.js → cursor-installer-7PABDYDI.js} +2 -2
- package/dist/cli/chunks/{daemon-27TMWDPY.js → daemon-YTCKYJB4.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-PVAFQBDL.js → dag-attention-scheduler-LZZ4O2PT.js} +2 -2
- package/dist/cli/chunks/{detect-FUKMZ37Y.js → detect-OBCGJIYW.js} +2 -2
- package/dist/cli/chunks/{domain-handler-SP3QB5VN.js → domain-handler-5PHN6YQM.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-A2WL6HEJ.js → domain-transfer-K6YSBC2L.js} +2 -2
- package/dist/cli/chunks/dream-BH35JQRS.js +2 -0
- package/dist/cli/chunks/esm-node-VI5DSKCM.js +2 -0
- package/dist/cli/chunks/{eval-6MIZUXEO.js → eval-UAAFW3YU.js} +2 -2
- package/dist/cli/chunks/{fast-paths-XT542LOU.js → fast-paths-7IFG4BYW.js} +2 -2
- package/dist/cli/chunks/{feature-flags-WBF5B6WE.js → feature-flags-AEO5C73R.js} +2 -2
- package/dist/cli/chunks/{feature-flags-NWACCWCB.js → feature-flags-TVJAGLLH.js} +2 -2
- package/dist/cli/chunks/{file-discovery-GKCJFWTD.js → file-discovery-STTTDBN3.js} +2 -2
- package/dist/cli/chunks/{fleet-V2MKGNMG.js → fleet-L6RVZQ2B.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-HUUMTTSV.js → gnn-wrapper-W4QHVBUD.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-UY3TCEN7.js → heartbeat-handler-3KZOB7MZ.js} +4 -4
- package/dist/cli/chunks/{heartbeat-scheduler-YWXPSCH2.js → heartbeat-scheduler-IR57JOZR.js} +2 -2
- package/dist/cli/chunks/hnsw-adapter-2SFTC2VH.js +2 -0
- package/dist/cli/chunks/hnsw-index-OBEYJRMU.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-IYYYSRK5.js → hnsw-legacy-bridge-5BYAJDVC.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-WDWAE74R.js → hnswlib-node-MUXAWCUE.js} +2 -2
- package/dist/cli/chunks/{hooks-DTBJK6LL.js → hooks-QT4NVEDG.js} +6 -6
- package/dist/cli/chunks/{hypergraph-engine-K47IBQNO.js → hypergraph-engine-MLLU5WQB.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-2NDPG2N4.js → hypergraph-handler-LJWRQ2WW.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-C5SKESHG.js +2 -0
- package/dist/cli/chunks/{init-handler-VRZS6KO2.js → init-handler-MKAZHZJS.js} +6 -6
- package/dist/cli/chunks/init-wizard-DV34KMTN.js +2 -0
- package/dist/cli/chunks/kernel-3HL4J5WJ.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-XZAHWQEA.js → kilocode-installer-5MAYAROV.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-53C7DXEF.js → kiro-installer-3JJ7TSXH.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-XPFESDWZ.js +2 -0
- package/dist/cli/chunks/{learning-XYW2EEVX.js → learning-G7MWQMRY.js} +3 -3
- package/dist/cli/chunks/{llm-router-64SKMJ7B.js → llm-router-HYK5VS4A.js} +2 -2
- package/dist/cli/chunks/{load-HVL4O7EY.js → load-YVN3F5ZP.js} +2 -2
- package/dist/cli/chunks/load-test-EF3BRFGO.js +2 -0
- package/dist/cli/chunks/{mcp-4H2NJ3EO.js → mcp-I43GRN5E.js} +2 -2
- package/dist/cli/chunks/{memory-2CD4BAJK.js → memory-TMKTUI37.js} +5 -5
- package/dist/cli/chunks/memory-backend-FJDNXX6N.js +2 -0
- package/dist/cli/chunks/{memory-handlers-XRYZBE5I.js → memory-handlers-YFJOLCGN.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-I23QAZC6.js → opencode-installer-KYDQUOAW.js} +2 -2
- package/dist/cli/chunks/{orchestrator-7BL6R54P.js → orchestrator-C6XRSC6Z.js} +25 -22
- package/dist/cli/chunks/{pipeline-7UN7LP6B.js → pipeline-IULH5B62.js} +2 -2
- package/dist/cli/chunks/{platform-P44YUHPK.js → platform-CACMGVB3.js} +2 -2
- package/dist/cli/chunks/{plugin-YWYR7FKS.js → plugin-6VSTK54C.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-A7CDGUK6.js → prime-radiant-advanced-wasm-UA6FGPKX.js} +2 -2
- package/dist/cli/chunks/protocol-executor-OFL7H2VR.js +2 -0
- package/dist/cli/chunks/{protocol-handler-BM7RLC4Z.js → protocol-handler-UYJISQUT.js} +2 -2
- package/dist/cli/chunks/{prove-UVBYODRV.js → prove-H7PAIHGE.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-4NWLHIEM.js +2 -0
- package/dist/cli/chunks/{quality-4L42LN5Q.js → quality-NT3N4UDM.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-I7YDKGZD.js +2 -0
- package/dist/cli/chunks/{real-embeddings-4CYZTWHT.js → real-embeddings-K46PTHOR.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-UOSJS7KT.js → roocode-installer-K47KSTXW.js} +2 -2
- package/dist/cli/chunks/router-LNGYBIC4.js +2 -0
- package/dist/cli/chunks/routing-feedback-4RFHNTYV.js +2 -0
- package/dist/cli/chunks/{routing-handler-43G4D5UP.js → routing-handler-5RXV3FRV.js} +2 -2
- package/dist/cli/chunks/ruvector-commands-V46KRNUZ.js +8 -0
- package/dist/cli/chunks/{rvf-dual-writer-USU2IWO7.js → rvf-dual-writer-YX5K3XO7.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-DZMYVJJY.js → rvf-migration-adapter-SURDRXWQ.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-AZ5JDT33.js → rvf-migration-coordinator-FMUHUWTB.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-7REIX6DO.js +2 -0
- package/dist/cli/chunks/safe-db-SVN2BQFW.js +2 -0
- package/dist/cli/chunks/schedule-S6Z3DNRK.js +2 -0
- package/dist/cli/chunks/scheduler-BE5RHB4R.js +2 -0
- package/dist/cli/chunks/{security-RXG4H3UK.js → security-ENEWXTNE.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-PNVIYEDK.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-2PUFIGX5.js → shared-rvf-dual-writer-KJ67FATL.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-XBTALZ2S.js +2 -0
- package/dist/cli/chunks/{status-handler-SXQKG6VP.js → status-handler-CEMWQKE6.js} +2 -2
- package/dist/cli/chunks/{structural-health-LPXOOMG3.js → structural-health-B4VGYG4F.js} +2 -2
- package/dist/cli/chunks/{sync-5NX7GQQY.js → sync-P7PLECMB.js} +2 -2
- package/dist/cli/chunks/{task-handler-Y4KVNCOI.js → task-handler-YGKMS5E2.js} +2 -2
- package/dist/cli/chunks/{task-handlers-CG27Z3CP.js → task-handlers-LKTBRIPS.js} +2 -2
- package/dist/cli/chunks/{test-PWVTWOWS.js → test-ZWWGVM5X.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-5S5EBVE7.js → test-scheduling-HTFVIWWL.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-QMPUKGQC.js → token-bootstrap-7VYNREQH.js} +2 -2
- package/dist/cli/chunks/{token-usage-OZNRTJLE.js → token-usage-D67GP7FV.js} +2 -2
- package/dist/cli/chunks/{transformers-DRPOBWCW.js → transformers-CI3CZC2C.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-VLX6HQW2.js → tree-sitter-wasm-parser-BMRWIP7P.js} +2 -2
- package/dist/cli/chunks/{types-TUF6HUPE.js → types-SAPPKMCS.js} +2 -2
- package/dist/cli/chunks/unified-memory-OYIJOZ2E.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-JRWF6EEB.js +2 -0
- package/dist/cli/chunks/unified-persistence-OOUATKAN.js +2 -0
- package/dist/cli/chunks/{validate-H7QFV2CI.js → validate-UZL2Y3GR.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-BGH6YM4S.js → validate-swarm-ILNS64DZ.js} +2 -2
- package/dist/cli/chunks/{vibium-DQOGR2PH.js → vibium-CJMPXUAU.js} +2 -2
- package/dist/cli/chunks/visual-security-77T3APRH.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-TOI4XJIL.js → web-tree-sitter-HO5UYPPH.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-EUMBFA42.js → windsurf-installer-TEXMCEBB.js} +2 -2
- package/dist/cli/chunks/witness-chain-QIARNA6D.js +2 -0
- package/dist/cli/chunks/{witness-chain-MWPUR4Q2.js → witness-chain-TF35D7QS.js} +2 -2
- package/dist/cli/chunks/{workflow-V5HI3AQR.js → workflow-APRDB3SB.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-IRZVM4MZ.js +2 -0
- package/dist/cli/chunks/{wrappers-VOU4IVAQ.js → wrappers-VGV5RU5Q.js} +2 -2
- package/dist/cli/commands/ruvector-commands.js +5 -2
- package/dist/cli/index.js +5 -4
- package/dist/init/phases/04-database.js +19 -0
- package/dist/init/phases/06-code-intelligence.js +9 -6
- package/dist/init/phases/10-workers.js +2 -0
- package/dist/integrations/ruvector/feature-flags.d.ts +27 -5
- package/dist/integrations/ruvector/feature-flags.js +15 -2
- package/dist/kernel/hnsw-adapter.js +1 -1
- package/dist/kernel/native-hnsw-backend.d.ts +100 -37
- package/dist/kernel/native-hnsw-backend.js +207 -192
- package/dist/kernel/unified-memory.js +15 -10
- package/dist/mcp/bundle.js +189 -189
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-HOBCL2VF.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-77FVV2ZJ.js +0 -2
- package/dist/cli/chunks/base-2IXMPGJV.js +0 -2
- package/dist/cli/chunks/browser-workflow-AQYKV2NE.js +0 -2
- package/dist/cli/chunks/chunk-PMFZHFCB.js +0 -2
- package/dist/cli/chunks/chunk-Z2GK7COI.js +0 -2
- package/dist/cli/chunks/client-3CA57H5P.js +0 -2
- package/dist/cli/chunks/cross-domain-router-GECFIALH.js +0 -2
- package/dist/cli/chunks/dream-CJ4MKM5G.js +0 -2
- package/dist/cli/chunks/esm-node-X7U3YS4M.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-LJGOH772.js +0 -2
- package/dist/cli/chunks/hnsw-index-V6SST2MB.js +0 -2
- package/dist/cli/chunks/impact-analyzer-MTOVFD3O.js +0 -2
- package/dist/cli/chunks/init-wizard-IH6PSRJY.js +0 -2
- package/dist/cli/chunks/kernel-3MC7WV5G.js +0 -2
- package/dist/cli/chunks/knowledge-graph-HLUQJ2GI.js +0 -2
- package/dist/cli/chunks/load-test-VVVME7GZ.js +0 -2
- package/dist/cli/chunks/memory-backend-O3U2QDU3.js +0 -2
- package/dist/cli/chunks/protocol-executor-HLNTSRYC.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-JK5CK4D4.js +0 -2
- package/dist/cli/chunks/queen-coordinator-FLF6XYLX.js +0 -2
- package/dist/cli/chunks/router-DUFZW3WQ.js +0 -2
- package/dist/cli/chunks/routing-feedback-6U76TI6X.js +0 -2
- package/dist/cli/chunks/ruvector-commands-H7A7LG6Q.js +0 -8
- package/dist/cli/chunks/rvf-native-adapter-4UD7SUMB.js +0 -2
- package/dist/cli/chunks/safe-db-32Q5RXHR.js +0 -2
- package/dist/cli/chunks/schedule-ZHCM3L6H.js +0 -2
- package/dist/cli/chunks/scheduler-HBSSLDOD.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-PLZVKKW7.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-YUZMB44Y.js +0 -2
- package/dist/cli/chunks/unified-memory-3D4VDY4G.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-AAQ5IA6M.js +0 -2
- package/dist/cli/chunks/unified-persistence-PY7MVJTL.js +0 -2
- package/dist/cli/chunks/visual-security-ZBNB7LEG.js +0 -2
- package/dist/cli/chunks/witness-chain-CS76OJFL.js +0 -2
- 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
|
|
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:
|
|
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
|
|
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
|
|
2
|
+
* Native HNSW Backend via hnswlib-node
|
|
3
3
|
*
|
|
4
|
-
* Provides a high-performance HNSW index backed by the
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|
|
52
|
-
* for
|
|
94
|
+
* but delegates all vector operations to the C++ Hnswlib reference
|
|
95
|
+
* implementation for sublinear search latency at scale.
|
|
53
96
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
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
|