agentic-qe 3.10.1 → 3.10.2

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 (325) hide show
  1. package/.claude/hooks/README.txt +17 -0
  2. package/.claude/hooks/aqe-hook.cjs +98 -0
  3. package/.claude/hooks/cross-phase-memory.yaml +296 -0
  4. package/.claude/hooks/post-task-sync.sh +113 -0
  5. package/.claude/hooks/v3-domain-workers.json +121 -0
  6. package/.claude/skills/skills-manifest.json +1 -1
  7. package/CHANGELOG.md +76 -0
  8. package/dist/cli/bundle.js +5 -5
  9. package/dist/cli/chunks/adapter-CR6J5C76.js +2 -0
  10. package/dist/cli/chunks/{agent-booster-wasm-FZLWOPSX.js → agent-booster-wasm-DHSIPFTH.js} +2 -2
  11. package/dist/cli/chunks/{agent-handler-KAGRVCKS.js → agent-handler-FPQVHGGT.js} +2 -2
  12. package/dist/cli/chunks/{agent-memory-branch-JJKFEXQW.js → agent-memory-branch-OLOF5ZHV.js} +2 -2
  13. package/dist/cli/chunks/aqe-learning-engine-2MNTHMB6.js +2 -0
  14. package/dist/cli/chunks/{audit-DN5SY4JJ.js → audit-ALRYPHGP.js} +2 -2
  15. package/dist/cli/chunks/base-AOQNGMTL.js +2 -0
  16. package/dist/cli/chunks/{hnswlib-node-YX6OOBN6.js → better-sqlite3-5BT5FO64.js} +2 -2
  17. package/dist/cli/chunks/{brain-handler-O7MP5BGY.js → brain-handler-ROZUHCOT.js} +3 -3
  18. package/dist/cli/chunks/{branch-enumerator-ZPTN5J6V.js → branch-enumerator-VK7G4NKJ.js} +2 -2
  19. package/dist/cli/chunks/{browser-PAZE2JSD.js → browser-Q2S75M2F.js} +2 -2
  20. package/dist/cli/chunks/browser-workflow-UJ4A2ZXO.js +2 -0
  21. package/dist/cli/chunks/{chunk-WDTCCPK4.js → chunk-2244IFZA.js} +1 -1
  22. package/dist/cli/chunks/{chunk-WPNZSL4S.js → chunk-22D6VBPD.js} +1 -1
  23. package/dist/cli/chunks/{chunk-2KTRRSKD.js → chunk-24LUQICS.js} +2 -2
  24. package/dist/cli/chunks/{chunk-IHDUWPFY.js → chunk-2EDWGHDA.js} +2 -2
  25. package/dist/cli/chunks/{chunk-TP77PNN6.js → chunk-2JDLQWSV.js} +2 -2
  26. package/dist/cli/chunks/{chunk-GTGONWGX.js → chunk-2OH3ALYB.js} +1 -1
  27. package/dist/cli/chunks/{chunk-WMG5F6R6.js → chunk-3RHHKYUR.js} +2 -2
  28. package/dist/cli/chunks/{chunk-6E7GI2UB.js → chunk-3Z4FHA2E.js} +1 -1
  29. package/dist/cli/chunks/{chunk-JLKHPIQF.js → chunk-4BXGVM2C.js} +1 -1
  30. package/dist/cli/chunks/{chunk-6D57DWQ6.js → chunk-4F3ZTXHP.js} +2 -2
  31. package/dist/cli/chunks/{chunk-3YOPJ7DY.js → chunk-4GTDW2XL.js} +2 -2
  32. package/dist/cli/chunks/{chunk-W2DT3CDE.js → chunk-5HB54RUS.js} +2 -2
  33. package/dist/cli/chunks/{chunk-LF7URN2X.js → chunk-5PL7WTCU.js} +2 -2
  34. package/dist/cli/chunks/{chunk-Y357YFLF.js → chunk-5PRFFHFV.js} +2 -2
  35. package/dist/cli/chunks/{chunk-GXJ4BCGC.js → chunk-5QHSLWLP.js} +2 -2
  36. package/dist/cli/chunks/{chunk-TL5F2S3Z.js → chunk-5WJ3FWL4.js} +2 -2
  37. package/dist/cli/chunks/{chunk-ZTMWJQTZ.js → chunk-6KSCXPPL.js} +2 -2
  38. package/dist/cli/chunks/{chunk-SQBB2DC6.js → chunk-6NZHEM4V.js} +1 -1
  39. package/dist/cli/chunks/{chunk-EUJHHXE6.js → chunk-6ZFHIKQG.js} +2 -2
  40. package/dist/cli/chunks/{chunk-YPOTBXPU.js → chunk-7DKYCVJI.js} +2 -2
  41. package/dist/cli/chunks/{chunk-DQIS6J77.js → chunk-7IVQ6OVR.js} +2 -2
  42. package/dist/cli/chunks/{chunk-DMIYWPQQ.js → chunk-7IZ2OPC2.js} +2 -2
  43. package/dist/cli/chunks/{chunk-VOIWDPIU.js → chunk-7QRMARM7.js} +2 -2
  44. package/dist/cli/chunks/{chunk-KEC5FBAW.js → chunk-7SJX4CFK.js} +1 -1
  45. package/dist/cli/chunks/{chunk-2S4XHK26.js → chunk-7SWD3D6Y.js} +2 -2
  46. package/dist/cli/chunks/{chunk-RRLQFFCO.js → chunk-7V5UHLNY.js} +2 -2
  47. package/dist/cli/chunks/{chunk-G3BQU3Q6.js → chunk-7Z46RDDV.js} +2 -2
  48. package/dist/cli/chunks/{chunk-TNVYKYTO.js → chunk-A5RMQG4N.js} +3 -3
  49. package/dist/cli/chunks/{chunk-PXFQSVA2.js → chunk-AH7FXNFE.js} +3 -3
  50. package/dist/cli/chunks/{chunk-K22TPWOJ.js → chunk-AIUSZC6K.js} +2 -2
  51. package/dist/cli/chunks/{chunk-IK6AJX3C.js → chunk-AOI67HA3.js} +1 -1
  52. package/dist/cli/chunks/{chunk-6VQ5MFJ6.js → chunk-AV7KYE5P.js} +7 -7
  53. package/dist/cli/chunks/{chunk-GTRXZJNX.js → chunk-AWFIEGR3.js} +2 -2
  54. package/dist/cli/chunks/{chunk-6A2NIR2E.js → chunk-BQCSCAUC.js} +2 -2
  55. package/dist/cli/chunks/{chunk-NQZYUH6S.js → chunk-C2M74HCN.js} +1 -1
  56. package/dist/cli/chunks/{chunk-5EU2VQK3.js → chunk-CIRPP7RQ.js} +2 -2
  57. package/dist/cli/chunks/{chunk-Q5VHBI4U.js → chunk-CMACGG4Z.js} +1 -1
  58. package/dist/cli/chunks/{chunk-YGRTMAWB.js → chunk-CTDLI2ON.js} +1 -1
  59. package/dist/cli/chunks/{chunk-P7T5Y735.js → chunk-CV2SBMBW.js} +2 -2
  60. package/dist/cli/chunks/{chunk-UDFLR7GR.js → chunk-DMQPO43S.js} +1 -1
  61. package/dist/cli/chunks/{chunk-XKOKMS5A.js → chunk-DRWGK3YO.js} +2 -2
  62. package/dist/cli/chunks/{chunk-EBQ6YKP2.js → chunk-DZZEHPSJ.js} +2 -2
  63. package/dist/cli/chunks/{chunk-7SQD2TTQ.js → chunk-EA7ZSN3V.js} +1 -1
  64. package/dist/cli/chunks/{chunk-KKNBYXYA.js → chunk-EQBEGDTG.js} +1 -1
  65. package/dist/cli/chunks/{chunk-2UN4DOBJ.js → chunk-ETN5563K.js} +2 -2
  66. package/dist/cli/chunks/{chunk-BECU52UY.js → chunk-EVCOCGVJ.js} +3 -3
  67. package/dist/cli/chunks/{chunk-OC3OJWLB.js → chunk-FO43SQXP.js} +2 -2
  68. package/dist/cli/chunks/{chunk-CKECJH2A.js → chunk-FO73PZVU.js} +2 -2
  69. package/dist/cli/chunks/{chunk-Y2DPXMOR.js → chunk-FPAW77XV.js} +1 -1
  70. package/dist/cli/chunks/{chunk-UDVX34ZG.js → chunk-FY3CUPNN.js} +20 -17
  71. package/dist/cli/chunks/{chunk-EIROAH6N.js → chunk-G5U6Q42D.js} +2 -2
  72. package/dist/cli/chunks/{chunk-VKRMVTWU.js → chunk-HA63NBFK.js} +9 -9
  73. package/dist/cli/chunks/{chunk-2ETDES5W.js → chunk-HHCYSAH3.js} +2 -2
  74. package/dist/cli/chunks/{chunk-57NJQV57.js → chunk-HJME6G5M.js} +1 -1
  75. package/dist/cli/chunks/{chunk-BN7ERYXI.js → chunk-HJORBNXW.js} +1 -1
  76. package/dist/cli/chunks/{chunk-5KFCH7RH.js → chunk-HO37VP4O.js} +1 -1
  77. package/dist/cli/chunks/{chunk-622MIAOR.js → chunk-I677W5BT.js} +3 -3
  78. package/dist/cli/chunks/chunk-IAZEDWRX.js +2 -0
  79. package/dist/cli/chunks/{chunk-KRXKU54J.js → chunk-IICTTDAA.js} +2 -2
  80. package/dist/cli/chunks/{chunk-BGBSYF3K.js → chunk-JF53LRBL.js} +2 -2
  81. package/dist/cli/chunks/{chunk-RPL6K623.js → chunk-KB5L5TTF.js} +3 -3
  82. package/dist/cli/chunks/{chunk-Q24OJX44.js → chunk-L7VIX22Y.js} +2 -2
  83. package/dist/cli/chunks/{chunk-TFNLXAK5.js → chunk-LQTWPSYL.js} +1 -1
  84. package/dist/cli/chunks/{chunk-ECPB7IAH.js → chunk-LZCBSFAU.js} +4 -4
  85. package/dist/cli/chunks/{chunk-G5DTENO3.js → chunk-MCOFJHSJ.js} +2 -2
  86. package/dist/cli/chunks/{chunk-XRK7FBTY.js → chunk-MCZHKXB4.js} +2 -2
  87. package/dist/cli/chunks/{chunk-H44WD7QX.js → chunk-MEY43PIQ.js} +2 -2
  88. package/dist/cli/chunks/{chunk-WL2J6ECN.js → chunk-MMIQ5DMA.js} +2 -2
  89. package/dist/cli/chunks/{chunk-PUXDXIUE.js → chunk-MNUTRAUV.js} +1 -1
  90. package/dist/cli/chunks/{chunk-KCTH5MHE.js → chunk-MNV3E5KY.js} +2 -2
  91. package/dist/cli/chunks/{chunk-EO4B5GS4.js → chunk-MYWQTCS4.js} +1 -1
  92. package/dist/cli/chunks/{chunk-32R7EA7B.js → chunk-NZO4WUSO.js} +3 -3
  93. package/dist/cli/chunks/{chunk-NOCYYXK4.js → chunk-OIEQF7PG.js} +2 -2
  94. package/dist/cli/chunks/{chunk-IPRDHKSI.js → chunk-OIRZJCZY.js} +2 -2
  95. package/dist/cli/chunks/{chunk-ELZ67OHQ.js → chunk-ON4D4TJ4.js} +2 -2
  96. package/dist/cli/chunks/chunk-OPFN5LFT.js +95 -0
  97. package/dist/cli/chunks/{chunk-4AWJ5PE4.js → chunk-ORF2UKQH.js} +1 -1
  98. package/dist/cli/chunks/{chunk-6LRCMFLV.js → chunk-OWQ6HEYI.js} +2 -2
  99. package/dist/cli/chunks/{chunk-GRG3OP34.js → chunk-OXCEUR5F.js} +2 -2
  100. package/dist/cli/chunks/{chunk-SLNGJW4G.js → chunk-PEK6NGVJ.js} +1 -1
  101. package/dist/cli/chunks/{chunk-5ZCVMR5E.js → chunk-PIZYRPMT.js} +2 -2
  102. package/dist/cli/chunks/{chunk-K4T3RDCB.js → chunk-PXTDEO65.js} +2 -2
  103. package/dist/cli/chunks/{chunk-GRYXNWPF.js → chunk-PYIHZXCI.js} +12 -12
  104. package/dist/cli/chunks/{chunk-HRDGN3OK.js → chunk-QBRHKTFT.js} +1 -1
  105. package/dist/cli/chunks/{chunk-COZDJLIL.js → chunk-QEPFXY6G.js} +1 -1
  106. package/dist/cli/chunks/{chunk-HPNEZ7YN.js → chunk-QJ2EHLJ2.js} +1 -1
  107. package/dist/cli/chunks/{chunk-GMKGLZJU.js → chunk-QQNCSEZG.js} +2 -2
  108. package/dist/cli/chunks/{chunk-CR4ERDS2.js → chunk-QSE67XJO.js} +2 -2
  109. package/dist/cli/chunks/{chunk-7CKVAYP3.js → chunk-R2O6OKT2.js} +1 -1
  110. package/dist/cli/chunks/{chunk-OVENSL64.js → chunk-RLXTBL3H.js} +8 -8
  111. package/dist/cli/chunks/{chunk-PW6MOFXG.js → chunk-RNREAOY4.js} +2 -2
  112. package/dist/cli/chunks/{chunk-YYWIA5FX.js → chunk-S3OZ7XSY.js} +1 -1
  113. package/dist/cli/chunks/{chunk-KZJXVIAW.js → chunk-S3ZO7JXS.js} +2 -2
  114. package/dist/cli/chunks/{chunk-ZEMXMDD3.js → chunk-SJH3HYNC.js} +2 -2
  115. package/dist/cli/chunks/{chunk-5OTYBWRL.js → chunk-STEGWLH5.js} +2 -2
  116. package/dist/cli/chunks/{chunk-F3OVFA6W.js → chunk-SVYTN2GT.js} +2 -2
  117. package/dist/cli/chunks/{chunk-QNW335PD.js → chunk-SW4OKUTC.js} +2 -2
  118. package/dist/cli/chunks/{chunk-WS4XVJHI.js → chunk-THRTUW4Z.js} +1 -1
  119. package/dist/cli/chunks/{chunk-NPSBMDVU.js → chunk-TJKDATEU.js} +2 -2
  120. package/dist/cli/chunks/{chunk-H22MMMYY.js → chunk-U3EUH6LX.js} +2 -2
  121. package/dist/cli/chunks/{chunk-FJSR2U65.js → chunk-UUFOHMUG.js} +2 -2
  122. package/dist/cli/chunks/{chunk-RWYW573C.js → chunk-UVU7XLJY.js} +3 -3
  123. package/dist/cli/chunks/{chunk-BF7MUYWC.js → chunk-UWXH2UQK.js} +2 -2
  124. package/dist/cli/chunks/{chunk-UU2Q6XWF.js → chunk-UYYBPWU3.js} +1 -1
  125. package/dist/cli/chunks/{chunk-AUVC3DDB.js → chunk-VSUTI4G6.js} +2 -2
  126. package/dist/cli/chunks/{chunk-25QGPRWN.js → chunk-WDMPJ2M2.js} +2 -2
  127. package/dist/cli/chunks/{chunk-MVGVD6LS.js → chunk-WNR2KAUH.js} +2 -2
  128. package/dist/cli/chunks/{chunk-NDCPEXDN.js → chunk-WSVUSIAZ.js} +2 -2
  129. package/dist/cli/chunks/{chunk-T3UXMPXX.js → chunk-WZJUMJ2S.js} +1 -1
  130. package/dist/cli/chunks/{chunk-TX7SNQKL.js → chunk-X2VAOIUY.js} +1 -1
  131. package/dist/cli/chunks/{chunk-DVOH75S4.js → chunk-XDSA7YUQ.js} +1 -1
  132. package/dist/cli/chunks/{chunk-TNGGVMPQ.js → chunk-XDU624HU.js} +1 -1
  133. package/dist/cli/chunks/{chunk-6ZRMQXVL.js → chunk-XGBAHAGC.js} +2 -2
  134. package/dist/cli/chunks/{chunk-IITKJCPK.js → chunk-XMJTTF5N.js} +2 -2
  135. package/dist/cli/chunks/{chunk-2TDWCXZ6.js → chunk-XPCNUX2U.js} +2 -2
  136. package/dist/cli/chunks/{chunk-W6ZF2CPN.js → chunk-XRJECWZE.js} +1 -1
  137. package/dist/cli/chunks/{chunk-MQYTW2IN.js → chunk-XTCUN36Z.js} +2 -2
  138. package/dist/cli/chunks/{chunk-7MSYTHZM.js → chunk-Y63MBMOV.js} +2 -2
  139. package/dist/cli/chunks/{chunk-6QFONVEE.js → chunk-YACT5WFC.js} +2 -2
  140. package/dist/cli/chunks/{chunk-PLRSKAFZ.js → chunk-YI6GNRQM.js} +2 -2
  141. package/dist/cli/chunks/chunk-YNNOY3XN.js +62 -0
  142. package/dist/cli/chunks/{chunk-XGUQYVJR.js → chunk-YWZHMXTO.js} +2 -2
  143. package/dist/cli/chunks/{chunk-OQP5OFRR.js → chunk-ZDHMZPSL.js} +1 -1
  144. package/dist/cli/chunks/{chunk-NRLT44YB.js → chunk-ZGNZJJFF.js} +1 -1
  145. package/dist/cli/chunks/{chunk-ELUERFGA.js → chunk-ZK2BH23O.js} +2 -2
  146. package/dist/cli/chunks/{chunk-AABKTWXC.js → chunk-ZQUXNG5X.js} +2 -2
  147. package/dist/cli/chunks/{chunk-WQEZKAUR.js → chunk-ZXTO4C7R.js} +2 -2
  148. package/dist/cli/chunks/{ci-EHRUN7O6.js → ci-PYCRCL7G.js} +2 -2
  149. package/dist/cli/chunks/{ci-output-EXDXVXKB.js → ci-output-EKQQFE2D.js} +2 -2
  150. package/dist/cli/chunks/{circuit-breaker-LM4QRAAL.js → circuit-breaker-RH3Q2MJO.js} +2 -2
  151. package/dist/cli/chunks/{claude-flow-setup-ZHUCZVW7.js → claude-flow-setup-DUDXB4VV.js} +2 -2
  152. package/dist/cli/chunks/client-RDPWGOSA.js +2 -0
  153. package/dist/cli/chunks/{cline-installer-WMFLQOW2.js → cline-installer-3Q4WIWUG.js} +2 -2
  154. package/dist/cli/chunks/{code-L7KRLU5E.js → code-E4Q6DGOO.js} +2 -2
  155. package/dist/cli/chunks/{code-index-extractor-FTMUYQC6.js → code-index-extractor-2PCISUOW.js} +2 -2
  156. package/dist/cli/chunks/{codex-installer-B3F6WI3Z.js → codex-installer-YNNNOLJ6.js} +2 -2
  157. package/dist/cli/chunks/{completions-3JZQRNB6.js → completions-2F7TUFBD.js} +2 -2
  158. package/dist/cli/chunks/{complexity-analyzer-LB2FFEKX.js → complexity-analyzer-2B6MHO7W.js} +2 -2
  159. package/dist/cli/chunks/{continuedev-installer-WH6IMV7R.js → continuedev-installer-ENOKRU5M.js} +2 -2
  160. package/dist/cli/chunks/{copilot-installer-NOIEOFJM.js → copilot-installer-6YD2KM5F.js} +2 -2
  161. package/dist/cli/chunks/{cost-tracker-IKX2VYSA.js → cost-tracker-FCH4QOEA.js} +2 -2
  162. package/dist/cli/chunks/{coverage-TD37CYSY.js → coverage-JTOXZE3T.js} +3 -3
  163. package/dist/cli/chunks/cross-domain-router-4K5ZVZEZ.js +2 -0
  164. package/dist/cli/chunks/{cursor-installer-4NSVGRM5.js → cursor-installer-QZFBUGLQ.js} +2 -2
  165. package/dist/cli/chunks/{daemon-LYDV7NRW.js → daemon-K4QFB5FQ.js} +3 -3
  166. package/dist/cli/chunks/{daemon-UWEBUIDT.js → daemon-M422U3ZA.js} +4 -4
  167. package/dist/cli/chunks/{dag-attention-scheduler-NECJGCHC.js → dag-attention-scheduler-BXAAW33V.js} +2 -2
  168. package/dist/cli/chunks/{detect-4XGC7ILO.js → detect-UGSWIOAD.js} +2 -2
  169. package/dist/cli/chunks/{dist-node-GGJDXRKJ.js → dist-node-FN3HX3OK.js} +2 -2
  170. package/dist/cli/chunks/{domain-handler-UOFONAUT.js → domain-handler-7PP7VYA7.js} +2 -2
  171. package/dist/cli/chunks/{domain-transfer-6JLNOYPA.js → domain-transfer-XZM44W7I.js} +2 -2
  172. package/dist/cli/chunks/dream-RPNWM7VS.js +2 -0
  173. package/dist/cli/chunks/{embed-and-insert-pattern-ZM75DQ4J.js → embed-and-insert-pattern-JZVERJ5L.js} +2 -2
  174. package/dist/cli/chunks/{eval-CYZJTHEB.js → eval-466NFF2D.js} +2 -2
  175. package/dist/cli/chunks/{experience-capture-middleware-RBOJLDUB.js → experience-capture-middleware-I7IQCC7V.js} +3 -3
  176. package/dist/cli/chunks/{fast-paths-S5BWZR3L.js → fast-paths-34OICNZA.js} +2 -2
  177. package/dist/cli/chunks/{feature-flags-6E7H3NYP.js → feature-flags-6UBIVTAD.js} +2 -2
  178. package/dist/cli/chunks/{feature-flags-DUNQPDU3.js → feature-flags-X5WBBWSO.js} +2 -2
  179. package/dist/cli/chunks/{file-discovery-PFFKDGYG.js → file-discovery-NLMDBWXX.js} +2 -2
  180. package/dist/cli/chunks/{fleet-RCDZZFXN.js → fleet-W7CYCHDI.js} +3 -3
  181. package/dist/cli/chunks/{gnn-wrapper-5AG3WDWF.js → gnn-wrapper-K4VTAG5X.js} +2 -2
  182. package/dist/cli/chunks/{heartbeat-handler-O2KAEX4Y.js → heartbeat-handler-ZGKF2Z6T.js} +4 -4
  183. package/dist/cli/chunks/heartbeat-scheduler-JBCXMMZO.js +2 -0
  184. package/dist/cli/chunks/hnsw-adapter-3SC2HZIG.js +2 -0
  185. package/dist/cli/chunks/hnsw-index-FQORAR6K.js +2 -0
  186. package/dist/cli/chunks/{hnsw-legacy-bridge-C7FG6YGW.js → hnsw-legacy-bridge-ELDRLKK5.js} +2 -2
  187. package/dist/cli/chunks/{better-sqlite3-XGPW4HK5.js → hnswlib-node-ZGSUMHDC.js} +2 -2
  188. package/dist/cli/chunks/{hooks-FUHNE2P7.js → hooks-T4CBINAV.js} +13 -13
  189. package/dist/cli/chunks/hybrid-router-6CBFDXPR.js +2 -0
  190. package/dist/cli/chunks/{hypergraph-engine-LQRYBNPV.js → hypergraph-engine-UWFW3XP5.js} +2 -2
  191. package/dist/cli/chunks/{hypergraph-handler-AFFNLZVD.js → hypergraph-handler-PK2BI46K.js} +3 -3
  192. package/dist/cli/chunks/impact-analyzer-SOEFVZWG.js +2 -0
  193. package/dist/cli/chunks/{init-handler-BQ6IDBX4.js → init-handler-HNG6KJOU.js} +6 -6
  194. package/dist/cli/chunks/init-wizard-3E4IU5M4.js +2 -0
  195. package/dist/cli/chunks/kernel-GFZP4G5J.js +2 -0
  196. package/dist/cli/chunks/{kilocode-installer-KS72HUSG.js → kilocode-installer-25V7FEJ4.js} +2 -2
  197. package/dist/cli/chunks/{kiro-installer-2ZEFLGRX.js → kiro-installer-7RMTTCQB.js} +2 -2
  198. package/dist/cli/chunks/knowledge-graph-BKRKBU26.js +2 -0
  199. package/dist/cli/chunks/{learning-GGHGJ6B6.js → learning-XQC2MG2R.js} +3 -3
  200. package/dist/cli/chunks/{llm-router-LP6K5BJF.js → llm-router-6KTTONH4.js} +4 -4
  201. package/dist/cli/chunks/llm-router-service-KE4IGZPP.js +2 -0
  202. package/dist/cli/chunks/{load-2MLKXOT2.js → load-BV64P3AL.js} +2 -2
  203. package/dist/cli/chunks/load-test-VSYJV2AO.js +2 -0
  204. package/dist/cli/chunks/{mcp-CDJBJG5H.js → mcp-U5ZN77TA.js} +2 -2
  205. package/dist/cli/chunks/{memory-4LAX7JZS.js → memory-WB5BNBK7.js} +5 -5
  206. package/dist/cli/chunks/memory-backend-B72RGHRF.js +2 -0
  207. package/dist/cli/chunks/{memory-handlers-OBAFR4WV.js → memory-handlers-NWCH7AUO.js} +2 -2
  208. package/dist/cli/chunks/{multi-model-executor-SLJV73HE.js → multi-model-executor-3X3W3UTY.js} +2 -2
  209. package/dist/cli/chunks/{opencode-installer-M76SONWV.js → opencode-installer-TTTMG7ZZ.js} +2 -2
  210. package/dist/cli/chunks/{orchestrator-TJPUDJMP.js → orchestrator-BLCGSHMZ.js} +18 -18
  211. package/dist/cli/chunks/{pipeline-2PVNFT6J.js → pipeline-DZPGMRG7.js} +2 -2
  212. package/dist/cli/chunks/{platform-KCSEDKEE.js → platform-EVMZAUNV.js} +2 -2
  213. package/dist/cli/chunks/{plugin-QX47QF5U.js → plugin-OR55K4HT.js} +2 -2
  214. package/dist/cli/chunks/{prime-radiant-advanced-wasm-L6VWL7VR.js → prime-radiant-advanced-wasm-4ODV27HD.js} +2 -2
  215. package/dist/cli/chunks/protocol-executor-V3F37FPO.js +2 -0
  216. package/dist/cli/chunks/{protocol-handler-WDNJDEUE.js → protocol-handler-ZOTI5PID.js} +2 -2
  217. package/dist/cli/chunks/{prove-3B75DA3S.js → prove-DIMBYJ7V.js} +2 -2
  218. package/dist/cli/chunks/provider-manager-2PN72TT6.js +2 -0
  219. package/dist/cli/chunks/qe-reasoning-bank-P665QNIR.js +2 -0
  220. package/dist/cli/chunks/{quality-UGASS5WM.js → quality-7MX4VL6M.js} +2 -2
  221. package/dist/cli/chunks/queen-coordinator-XD4F7BGB.js +2 -0
  222. package/dist/cli/chunks/{real-embeddings-COBP2LHS.js → real-embeddings-YPUHWRN2.js} +2 -2
  223. package/dist/cli/chunks/{roocode-installer-TOZ4VLFT.js → roocode-installer-WG5AU4QM.js} +2 -2
  224. package/dist/cli/chunks/router-4SSNWDJC.js +2 -0
  225. package/dist/cli/chunks/routing-feedback-O2JSIBW6.js +2 -0
  226. package/dist/cli/chunks/{routing-handler-5TDVSILX.js → routing-handler-LZB4MN2K.js} +2 -2
  227. package/dist/cli/chunks/{ruvector-commands-AM63KWQN.js → ruvector-commands-YE4ADBMC.js} +2 -2
  228. package/dist/cli/chunks/{rvf-dual-writer-UANIFE2M.js → rvf-dual-writer-QS5ATW4C.js} +2 -2
  229. package/dist/cli/chunks/{rvf-migration-adapter-LNPYWAPI.js → rvf-migration-adapter-YIGKSBD3.js} +2 -2
  230. package/dist/cli/chunks/{rvf-migration-coordinator-U47L63DQ.js → rvf-migration-coordinator-2NDCWP7F.js} +2 -2
  231. package/dist/cli/chunks/rvf-native-adapter-WIUHYXRB.js +2 -0
  232. package/dist/cli/chunks/safe-db-WL5Y7ZNS.js +2 -0
  233. package/dist/cli/chunks/schedule-U7QDGU5A.js +2 -0
  234. package/dist/cli/chunks/scheduler-LXKGQYXA.js +2 -0
  235. package/dist/cli/chunks/{security-KDQ2AH7G.js → security-HT4SUT24.js} +3 -3
  236. package/dist/cli/chunks/{shared-rvf-adapter-5MAGLLYJ.js → shared-rvf-adapter-4IZOJL33.js} +2 -2
  237. package/dist/cli/chunks/{shared-rvf-dual-writer-GF2OPPM5.js → shared-rvf-dual-writer-ZKFO7CBY.js} +2 -2
  238. package/dist/cli/chunks/sqlite-persistence-4KFO3SEB.js +2 -0
  239. package/dist/cli/chunks/{status-handler-XZKEL7LO.js → status-handler-AMEMKBI4.js} +2 -2
  240. package/dist/cli/chunks/{structural-health-27QKWW25.js → structural-health-RBADRLC3.js} +2 -2
  241. package/dist/cli/chunks/{sync-V3HGPEJT.js → sync-ARDDLQBS.js} +2 -2
  242. package/dist/cli/chunks/{sync-INNKS6UK.js → sync-PCB23M4K.js} +2 -2
  243. package/dist/cli/chunks/{task-handler-LDUVOM6G.js → task-handler-J26FSCH5.js} +2 -2
  244. package/dist/cli/chunks/{task-handlers-HTCPV7OO.js → task-handlers-AQRLR6BL.js} +3 -3
  245. package/dist/cli/chunks/{test-PCUVGVJL.js → test-YXWSIOSB.js} +4 -4
  246. package/dist/cli/chunks/{test-scheduling-GYVXWCAA.js → test-scheduling-XY532GI4.js} +3 -3
  247. package/dist/cli/chunks/{token-bootstrap-MJ2ANC4P.js → token-bootstrap-KL2QIQ36.js} +2 -2
  248. package/dist/cli/chunks/{token-usage-ZREHROTF.js → token-usage-2MJVE4DT.js} +2 -2
  249. package/dist/cli/chunks/{transformers-6B3FWFYL.js → transformers-QSNTOD2Z.js} +2 -2
  250. package/dist/cli/chunks/{tree-sitter-wasm-parser-JVV234MN.js → tree-sitter-wasm-parser-QJOKHOIW.js} +2 -2
  251. package/dist/cli/chunks/{types-MVZTJI2F.js → types-RNKRSYMO.js} +2 -2
  252. package/dist/cli/chunks/unified-memory-7AS4LIEF.js +2 -0
  253. package/dist/cli/chunks/unified-memory-hnsw-GREESNJX.js +2 -0
  254. package/dist/cli/chunks/unified-persistence-BPJOMZOA.js +2 -0
  255. package/dist/cli/chunks/{upgrade-MKTFEILD.js → upgrade-EKJHIFWP.js} +2 -2
  256. package/dist/cli/chunks/{validate-IABGALSW.js → validate-KS4T7LWC.js} +2 -2
  257. package/dist/cli/chunks/{validate-swarm-RHF53RF6.js → validate-swarm-SKKWRP2H.js} +2 -2
  258. package/dist/cli/chunks/{vibium-RAKW6FMF.js → vibium-FLUQO4IF.js} +2 -2
  259. package/dist/cli/chunks/visual-security-BW662FHQ.js +2 -0
  260. package/dist/cli/chunks/{web-tree-sitter-PYK7F4JZ.js → web-tree-sitter-UMC63DWD.js} +2 -2
  261. package/dist/cli/chunks/{windsurf-installer-S3U2HWZ4.js → windsurf-installer-V3FQGJIQ.js} +2 -2
  262. package/dist/cli/chunks/{witness-chain-435NKQLB.js → witness-chain-GE74TLSO.js} +2 -2
  263. package/dist/cli/chunks/witness-chain-OXVDLNVT.js +2 -0
  264. package/dist/cli/chunks/{workflow-5UHJCZ6J.js → workflow-4YZ2RPWA.js} +4 -4
  265. package/dist/cli/chunks/workflow-orchestrator-KKNR46XV.js +2 -0
  266. package/dist/cli/chunks/{wrappers-RD3NCMLK.js → wrappers-37NLMKPE.js} +2 -2
  267. package/dist/cli/commands/hooks-handlers/command-hooks.js +1 -1
  268. package/dist/cli/commands/hooks-handlers/routing-hooks.js +1 -1
  269. package/dist/cli/commands/hooks-handlers/task-hooks.js +1 -1
  270. package/dist/init/init-wizard-hooks.js +271 -271
  271. package/dist/init/phases/07-hooks.d.ts +7 -0
  272. package/dist/init/phases/07-hooks.js +132 -96
  273. package/dist/learning/agent-routing.d.ts +19 -0
  274. package/dist/learning/agent-routing.js +27 -1
  275. package/dist/learning/dream/dream-scheduler.d.ts +11 -36
  276. package/dist/learning/dream/dream-scheduler.js +44 -0
  277. package/dist/learning/experience-consolidation.d.ts +16 -0
  278. package/dist/learning/experience-consolidation.js +55 -11
  279. package/dist/learning/pattern-lifecycle.d.ts +21 -0
  280. package/dist/learning/pattern-lifecycle.js +70 -6
  281. package/dist/mcp/bundle.js +352 -349
  282. package/dist/mcp/protocol-server.js +13 -14
  283. package/dist/mcp/transport/stdio.d.ts +20 -0
  284. package/dist/mcp/transport/stdio.js +35 -2
  285. package/dist/shared/utils/rabitq.d.ts +133 -0
  286. package/dist/shared/utils/rabitq.js +201 -0
  287. package/package.json +8 -2
  288. package/dist/cli/chunks/adapter-3JS2CN7C.js +0 -2
  289. package/dist/cli/chunks/aqe-learning-engine-Q4GFNGU6.js +0 -2
  290. package/dist/cli/chunks/base-Q3MAL22Y.js +0 -2
  291. package/dist/cli/chunks/browser-workflow-JX3M2UWG.js +0 -2
  292. package/dist/cli/chunks/chunk-IJ4BUSJN.js +0 -95
  293. package/dist/cli/chunks/chunk-VPCE5CIT.js +0 -2
  294. package/dist/cli/chunks/chunk-WO7KYT3X.js +0 -62
  295. package/dist/cli/chunks/client-PA3UJIHH.js +0 -2
  296. package/dist/cli/chunks/cross-domain-router-BVJRP2ZX.js +0 -2
  297. package/dist/cli/chunks/dream-BXZUEIW2.js +0 -2
  298. package/dist/cli/chunks/heartbeat-scheduler-LEKAWFJF.js +0 -2
  299. package/dist/cli/chunks/hnsw-adapter-2TCEG5M2.js +0 -2
  300. package/dist/cli/chunks/hnsw-index-VDPUTEES.js +0 -2
  301. package/dist/cli/chunks/hybrid-router-2EMDIYIG.js +0 -2
  302. package/dist/cli/chunks/impact-analyzer-HFD6CPWC.js +0 -2
  303. package/dist/cli/chunks/init-wizard-552QIVRC.js +0 -2
  304. package/dist/cli/chunks/kernel-5DN6O6EE.js +0 -2
  305. package/dist/cli/chunks/knowledge-graph-76Y77MB6.js +0 -2
  306. package/dist/cli/chunks/llm-router-service-4O6GCEFH.js +0 -2
  307. package/dist/cli/chunks/load-test-FCI2IWRJ.js +0 -2
  308. package/dist/cli/chunks/memory-backend-MKNCBNDE.js +0 -2
  309. package/dist/cli/chunks/protocol-executor-IA7WNT23.js +0 -2
  310. package/dist/cli/chunks/provider-manager-3K5KB5A6.js +0 -2
  311. package/dist/cli/chunks/qe-reasoning-bank-V5Z3BBYY.js +0 -2
  312. package/dist/cli/chunks/queen-coordinator-QOMPA27Z.js +0 -2
  313. package/dist/cli/chunks/router-P5RZUPC4.js +0 -2
  314. package/dist/cli/chunks/routing-feedback-3PS3OZQC.js +0 -2
  315. package/dist/cli/chunks/rvf-native-adapter-TT7OJPKM.js +0 -2
  316. package/dist/cli/chunks/safe-db-PEW7VBAE.js +0 -2
  317. package/dist/cli/chunks/schedule-QHOTHBQE.js +0 -2
  318. package/dist/cli/chunks/scheduler-KXJBYTRT.js +0 -2
  319. package/dist/cli/chunks/sqlite-persistence-TPXJK34J.js +0 -2
  320. package/dist/cli/chunks/unified-memory-ROS2NKR5.js +0 -2
  321. package/dist/cli/chunks/unified-memory-hnsw-FLEUF3XO.js +0 -2
  322. package/dist/cli/chunks/unified-persistence-QC5L7UNQ.js +0 -2
  323. package/dist/cli/chunks/visual-security-NLIOUQCR.js +0 -2
  324. package/dist/cli/chunks/witness-chain-U7X6JX5J.js +0 -2
  325. package/dist/cli/chunks/workflow-orchestrator-APE6BAXH.js +0 -2
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * ADR-039: Integrated with connection pooling, load balancing, and performance monitoring
7
7
  */
8
- import { createStdioTransport, JSON_RPC_ERRORS, } from './transport';
8
+ import { createStdioTransport, JSON_RPC_ERRORS, isJsonRpcCodedError, McpError, } from './transport';
9
9
  import { createToolRegistry } from './tool-registry';
10
10
  import { MiddlewareChain } from './middleware/middleware-chain';
11
11
  import { createMicrocompactMiddleware } from './middleware/microcompact';
@@ -156,7 +156,15 @@ export class MCPProtocolServer {
156
156
  return await this.handleRequest(request);
157
157
  }
158
158
  catch (err) {
159
- // Last-resort safety net: catch anything that escapes handleToolsCall
159
+ // Errors that carry a JSON-RPC `code` (e.g. METHOD_NOT_FOUND for an
160
+ // unknown tool/method — thrown as McpError or a legacy plain
161
+ // `{ code, message }` object) are real protocol errors: re-throw so the
162
+ // transport serializes them as a proper JSON-RPC error response with the
163
+ // correct code/message, instead of flattening to "[object Object]".
164
+ if (isJsonRpcCodedError(err)) {
165
+ throw err;
166
+ }
167
+ // Last-resort safety net: catch anything else that escapes handleToolsCall
160
168
  // to prevent MCP connection from being killed (-32000)
161
169
  const message = err instanceof Error ? err.message : String(err);
162
170
  console.error(`[MCP] Unhandled error in request handler: ${message}`);
@@ -307,10 +315,7 @@ export class MCPProtocolServer {
307
315
  return { pong: true };
308
316
  // Unknown method
309
317
  default:
310
- throw {
311
- code: JSON_RPC_ERRORS.METHOD_NOT_FOUND,
312
- message: `Unknown method: ${method}`,
313
- };
318
+ throw new McpError(JSON_RPC_ERRORS.METHOD_NOT_FOUND, `Unknown method: ${method}`);
314
319
  }
315
320
  }
316
321
  async handleNotification(notification) {
@@ -333,10 +338,7 @@ export class MCPProtocolServer {
333
338
  // ============================================================================
334
339
  async handleInitialize(params) {
335
340
  if (this.initialized) {
336
- throw {
337
- code: JSON_RPC_ERRORS.INVALID_REQUEST,
338
- message: 'Server already initialized',
339
- };
341
+ throw new McpError(JSON_RPC_ERRORS.INVALID_REQUEST, 'Server already initialized');
340
342
  }
341
343
  // Store client info
342
344
  if (params.clientInfo) {
@@ -371,10 +373,7 @@ export class MCPProtocolServer {
371
373
  const { name, arguments: args = {} } = params;
372
374
  const tool = this.tools.get(name);
373
375
  if (!tool) {
374
- throw {
375
- code: JSON_RPC_ERRORS.METHOD_NOT_FOUND,
376
- message: `Unknown tool: ${name}`,
377
- };
376
+ throw new McpError(JSON_RPC_ERRORS.METHOD_NOT_FOUND, `Unknown tool: ${name}`);
378
377
  }
379
378
  // ADR-039: Track tool invocation with performance monitoring
380
379
  const startTime = performance.now();
@@ -43,6 +43,26 @@ export declare const JSON_RPC_ERRORS: {
43
43
  readonly INTERNAL_ERROR: -32603;
44
44
  readonly SERVER_ERROR: -32000;
45
45
  };
46
+ /**
47
+ * Error subclass that carries a JSON-RPC error `code` so it can be surfaced as a
48
+ * proper JSON-RPC error response (instead of being flattened to "[object Object]").
49
+ * Mirrors the OAuthProviderError pattern used in the security layer.
50
+ */
51
+ export declare class McpError extends Error {
52
+ readonly code: number;
53
+ readonly data?: unknown | undefined;
54
+ constructor(code: number, message: string, data?: unknown | undefined);
55
+ }
56
+ /**
57
+ * Type guard for any thrown value that carries a JSON-RPC `code` + `message`.
58
+ * Accepts both the McpError subclass and legacy plain `{ code, message }` objects
59
+ * so existing throw sites continue to map to the right JSON-RPC error code.
60
+ */
61
+ export declare function isJsonRpcCodedError(err: unknown): err is {
62
+ code: number;
63
+ message: string;
64
+ data?: unknown;
65
+ };
46
66
  export declare class StdioTransport {
47
67
  private readonly inputStream;
48
68
  private readonly outputStream;
@@ -16,6 +16,32 @@ export const JSON_RPC_ERRORS = {
16
16
  INTERNAL_ERROR: -32603,
17
17
  SERVER_ERROR: -32000,
18
18
  };
19
+ /**
20
+ * Error subclass that carries a JSON-RPC error `code` so it can be surfaced as a
21
+ * proper JSON-RPC error response (instead of being flattened to "[object Object]").
22
+ * Mirrors the OAuthProviderError pattern used in the security layer.
23
+ */
24
+ export class McpError extends Error {
25
+ code;
26
+ data;
27
+ constructor(code, message, data) {
28
+ super(message);
29
+ this.code = code;
30
+ this.data = data;
31
+ this.name = 'McpError';
32
+ }
33
+ }
34
+ /**
35
+ * Type guard for any thrown value that carries a JSON-RPC `code` + `message`.
36
+ * Accepts both the McpError subclass and legacy plain `{ code, message }` objects
37
+ * so existing throw sites continue to map to the right JSON-RPC error code.
38
+ */
39
+ export function isJsonRpcCodedError(err) {
40
+ return (typeof err === 'object' &&
41
+ err !== null &&
42
+ typeof err.code === 'number' &&
43
+ typeof err.message === 'string');
44
+ }
19
45
  // ============================================================================
20
46
  // Stdio Transport Implementation
21
47
  // ============================================================================
@@ -205,8 +231,15 @@ export class StdioTransport {
205
231
  });
206
232
  }
207
233
  catch (err) {
208
- const error = err;
209
- await this.sendError(request.id, JSON_RPC_ERRORS.INTERNAL_ERROR, error.message || 'Internal error');
234
+ // Honor a JSON-RPC `code` carried by the thrown value (McpError or a legacy
235
+ // plain `{ code, message }` object); otherwise fall back to INTERNAL_ERROR.
236
+ if (isJsonRpcCodedError(err)) {
237
+ await this.sendError(request.id, err.code, err.message, err.data);
238
+ }
239
+ else {
240
+ const error = err;
241
+ await this.sendError(request.id, JSON_RPC_ERRORS.INTERNAL_ERROR, error.message || 'Internal error');
242
+ }
210
243
  }
211
244
  }
212
245
  async handleNotification(notification) {
@@ -0,0 +1,133 @@
1
+ /**
2
+ * RaBitQ-style 1-bit sign signatures for fast vector retrieval.
3
+ *
4
+ * Ports ruflo's perf-M4 optimization: sign-random-projection + Hamming popcount
5
+ * as a cheap prefilter ahead of exact cosine reranking.
6
+ *
7
+ * ## Why this works
8
+ *
9
+ * For unit-normalized embeddings, the sign of each coordinate is a valid
10
+ * Locality-Sensitive Hash (LSH) for cosine similarity: the probability that two
11
+ * vectors agree on the sign of a random projection is `1 - theta/pi`, where
12
+ * `theta` is the angle between them (Charikar 2002, "SimHash"). The AQE
13
+ * canonical embedding dimension is 384 (patterns.rvf dim=384); the coordinate
14
+ * basis itself acts as the random projection family, so `bit_i = (vec[i] >= 0)`
15
+ * yields a Hamming distance that is monotonically related to cosine angle.
16
+ *
17
+ * We therefore use Hamming distance over packed 1-bit signatures as a *cheap*
18
+ * ranking proxy to shrink the candidate pool, then run *exact* cosine on the
19
+ * survivors. With a large enough rerank pool the final top-k is identical to a
20
+ * full exact scan — only the work is reduced.
21
+ *
22
+ * ## Memory
23
+ *
24
+ * A 384-dim Float32 vector costs 1536 bytes. Its sign signature costs 48 bytes
25
+ * (12 × uint32). That is a 32× index-memory reduction for the prefilter stage.
26
+ *
27
+ * Self-contained: no I/O, no side effects, pure functions + one ranking helper.
28
+ *
29
+ * @module shared/utils/rabitq
30
+ */
31
+ /** AQE canonical embedding dimension (patterns.rvf dim=384). */
32
+ export declare const SIGNATURE_DIM = 384;
33
+ /**
34
+ * Bytes per signature for the canonical 384-dim embedding:
35
+ * ceil(384 / 32) = 12 words × 4 bytes = 48 bytes.
36
+ * (vs 384 × 4 = 1536 bytes for the raw Float32 vector → 32× reduction.)
37
+ */
38
+ export declare const SIGNATURE_BYTES: number;
39
+ /**
40
+ * Build a 1-bit sign signature from a vector.
41
+ *
42
+ * `bit_i = (vec[i] >= 0)`. Bits are packed LSB-first into Uint32 words:
43
+ * coordinate `i` lives in word `i >> 5` at bit `i & 31`.
44
+ *
45
+ * For a 384-dim input this returns 12 words (48 bytes). Inputs of other
46
+ * dimensions are supported (signature length = ceil(dim / 32) words).
47
+ *
48
+ * @param vec Embedding vector (assumed unit-normalized for the LSH guarantee,
49
+ * but the function works on any real vector).
50
+ * @returns Packed sign bits as a Uint32Array.
51
+ */
52
+ export declare function signSignature(vec: number[] | Float32Array): Uint32Array;
53
+ /**
54
+ * Hamming distance between two packed signatures: popcount(a XOR b) summed
55
+ * over all words.
56
+ *
57
+ * @throws If the two signatures have different word lengths.
58
+ */
59
+ export declare function hammingDistance(a: Uint32Array, b: Uint32Array): number;
60
+ /**
61
+ * Hamming similarity in [0, 1]: `1 - hammingDistance / bits`.
62
+ *
63
+ * This is a monotonic proxy for cosine similarity (higher = closer). `bits`
64
+ * should be the true embedding dimension (e.g. 384), not `words × 32`, so that
65
+ * trailing padding bits — which are always 0 in both signatures and never
66
+ * contribute to the distance — don't deflate the normalization.
67
+ */
68
+ export declare function hammingSimilarity(a: Uint32Array, b: Uint32Array, bits: number): number;
69
+ /** A retrieval candidate. `signature` is optional and lazily built if absent. */
70
+ export interface RaBitQCandidate {
71
+ id: string;
72
+ vector: number[] | Float32Array;
73
+ /** Precomputed sign signature; built on demand from `vector` if omitted. */
74
+ signature?: Uint32Array;
75
+ }
76
+ /** A scored result. `score` is the exact cosine similarity (or Hamming proxy). */
77
+ export interface RaBitQResult {
78
+ id: string;
79
+ score: number;
80
+ }
81
+ /** Tuning knobs for {@link topKBySignature}. */
82
+ export interface TopKOptions {
83
+ /**
84
+ * Below this candidate count, skip RaBitQ entirely and do an exact cosine
85
+ * top-k. RaBitQ's signature-build + Hamming-scan overhead is not worth it for
86
+ * small N. Default 100 (matches ruflo's gate).
87
+ */
88
+ gateN?: number;
89
+ /**
90
+ * How many Hamming-ranked candidates to feed into the exact rerank.
91
+ *
92
+ * Larger pool → higher recall, more exact-cosine work. **Default is
93
+ * recall-aware**: `max(4 × k, ceil(0.4 × N))`.
94
+ *
95
+ * IMPORTANT — empirically measured tradeoff (384-dim, see
96
+ * scripts/benchmark-rabitq.ts): a 1-bit sign signature is a *coarse*
97
+ * quantization, so a small fixed pool (e.g. `4 × k = 40`) does NOT preserve
98
+ * recall@10 at scale — at N=1000 it captures only ~70-85% of the true top-10,
99
+ * and worse at N=5000. To keep recall@10 ≥ ~0.95 the pool must be a sizeable
100
+ * fraction of N (~40% empirically), which limits the achievable speedup.
101
+ * Callers that can tolerate lower recall may pass a smaller pool for more
102
+ * speed; callers that need exact output should not use RaBitQ at all.
103
+ */
104
+ rerankPool?: number;
105
+ /**
106
+ * If true (default), run full cosineSimilarity on the Hamming-top pool and
107
+ * return the true top-k by cosine. If false, return the Hamming-only ranking
108
+ * (faster, approximate).
109
+ */
110
+ exactRerank?: boolean;
111
+ }
112
+ /**
113
+ * Retrieve the top-k candidates for a query using a RaBitQ Hamming prefilter
114
+ * followed by an exact cosine rerank.
115
+ *
116
+ * Behavior:
117
+ * - `candidates.length < gateN` → plain exact cosine top-k (gate; RaBitQ
118
+ * overhead not worth it for small N).
119
+ * - otherwise → build/reuse sign signatures, rank ALL candidates by Hamming
120
+ * distance (cheap), take the top `rerankPool`, then:
121
+ * - `exactRerank=true` (default): run FULL cosine on just that pool and
122
+ * return the true top-k. Output equals an exact scan whenever the true
123
+ * top-k all fall within the Hamming top-`rerankPool` — recall is
124
+ * preserved by the rerank, only speed changes.
125
+ * - `exactRerank=false`: return the Hamming-only top-k (approximate).
126
+ *
127
+ * @param query Query vector (same dimension as candidate vectors).
128
+ * @param candidates Candidate set.
129
+ * @param k Number of results to return.
130
+ * @param opts Tuning knobs (see {@link TopKOptions}).
131
+ */
132
+ export declare function topKBySignature(query: number[] | Float32Array, candidates: RaBitQCandidate[], k: number, opts?: TopKOptions): RaBitQResult[];
133
+ //# sourceMappingURL=rabitq.d.ts.map
@@ -0,0 +1,201 @@
1
+ /**
2
+ * RaBitQ-style 1-bit sign signatures for fast vector retrieval.
3
+ *
4
+ * Ports ruflo's perf-M4 optimization: sign-random-projection + Hamming popcount
5
+ * as a cheap prefilter ahead of exact cosine reranking.
6
+ *
7
+ * ## Why this works
8
+ *
9
+ * For unit-normalized embeddings, the sign of each coordinate is a valid
10
+ * Locality-Sensitive Hash (LSH) for cosine similarity: the probability that two
11
+ * vectors agree on the sign of a random projection is `1 - theta/pi`, where
12
+ * `theta` is the angle between them (Charikar 2002, "SimHash"). The AQE
13
+ * canonical embedding dimension is 384 (patterns.rvf dim=384); the coordinate
14
+ * basis itself acts as the random projection family, so `bit_i = (vec[i] >= 0)`
15
+ * yields a Hamming distance that is monotonically related to cosine angle.
16
+ *
17
+ * We therefore use Hamming distance over packed 1-bit signatures as a *cheap*
18
+ * ranking proxy to shrink the candidate pool, then run *exact* cosine on the
19
+ * survivors. With a large enough rerank pool the final top-k is identical to a
20
+ * full exact scan — only the work is reduced.
21
+ *
22
+ * ## Memory
23
+ *
24
+ * A 384-dim Float32 vector costs 1536 bytes. Its sign signature costs 48 bytes
25
+ * (12 × uint32). That is a 32× index-memory reduction for the prefilter stage.
26
+ *
27
+ * Self-contained: no I/O, no side effects, pure functions + one ranking helper.
28
+ *
29
+ * @module shared/utils/rabitq
30
+ */
31
+ import { cosineSimilarity } from './vector-math.js';
32
+ // ============================================================================
33
+ // Constants
34
+ // ============================================================================
35
+ /** Bits packed per Uint32 word. */
36
+ const BITS_PER_WORD = 32;
37
+ /** AQE canonical embedding dimension (patterns.rvf dim=384). */
38
+ export const SIGNATURE_DIM = 384;
39
+ /**
40
+ * Bytes per signature for the canonical 384-dim embedding:
41
+ * ceil(384 / 32) = 12 words × 4 bytes = 48 bytes.
42
+ * (vs 384 × 4 = 1536 bytes for the raw Float32 vector → 32× reduction.)
43
+ */
44
+ export const SIGNATURE_BYTES = Math.ceil(SIGNATURE_DIM / BITS_PER_WORD) * 4; // 48
45
+ // ============================================================================
46
+ // Popcount (Brian-Kernighan)
47
+ // ============================================================================
48
+ /**
49
+ * Population count (number of set bits) of a 32-bit word.
50
+ *
51
+ * Uses the SWAR (SIMD-within-a-register) bit-twiddle which is branchless and
52
+ * faster than a per-byte table lookup for 32-bit words. The hdc-fingerprint
53
+ * module uses a 256-entry per-byte table + Brian-Kernighan for its Uint8Array
54
+ * vectors; here we operate on Uint32 words, so the SWAR variant is the natural
55
+ * fit and avoids importing/splitting words into bytes.
56
+ */
57
+ function popcount32(n) {
58
+ // Force unsigned 32-bit semantics.
59
+ n = n >>> 0;
60
+ n = n - ((n >>> 1) & 0x55555555);
61
+ n = (n & 0x33333333) + ((n >>> 2) & 0x33333333);
62
+ n = (n + (n >>> 4)) & 0x0f0f0f0f;
63
+ return (Math.imul(n, 0x01010101) >>> 24) & 0xff;
64
+ }
65
+ // ============================================================================
66
+ // Signature construction
67
+ // ============================================================================
68
+ /**
69
+ * Build a 1-bit sign signature from a vector.
70
+ *
71
+ * `bit_i = (vec[i] >= 0)`. Bits are packed LSB-first into Uint32 words:
72
+ * coordinate `i` lives in word `i >> 5` at bit `i & 31`.
73
+ *
74
+ * For a 384-dim input this returns 12 words (48 bytes). Inputs of other
75
+ * dimensions are supported (signature length = ceil(dim / 32) words).
76
+ *
77
+ * @param vec Embedding vector (assumed unit-normalized for the LSH guarantee,
78
+ * but the function works on any real vector).
79
+ * @returns Packed sign bits as a Uint32Array.
80
+ */
81
+ export function signSignature(vec) {
82
+ const dim = vec.length;
83
+ const words = Math.ceil(dim / BITS_PER_WORD);
84
+ const sig = new Uint32Array(words);
85
+ for (let i = 0; i < dim; i++) {
86
+ if (vec[i] >= 0) {
87
+ sig[i >> 5] |= 1 << (i & 31);
88
+ }
89
+ }
90
+ return sig;
91
+ }
92
+ // ============================================================================
93
+ // Hamming distance / similarity
94
+ // ============================================================================
95
+ /**
96
+ * Hamming distance between two packed signatures: popcount(a XOR b) summed
97
+ * over all words.
98
+ *
99
+ * @throws If the two signatures have different word lengths.
100
+ */
101
+ export function hammingDistance(a, b) {
102
+ if (a.length !== b.length) {
103
+ throw new Error(`Signature length mismatch: ${a.length} vs ${b.length} words`);
104
+ }
105
+ let dist = 0;
106
+ for (let i = 0; i < a.length; i++) {
107
+ dist += popcount32((a[i] ^ b[i]) >>> 0);
108
+ }
109
+ return dist;
110
+ }
111
+ /**
112
+ * Hamming similarity in [0, 1]: `1 - hammingDistance / bits`.
113
+ *
114
+ * This is a monotonic proxy for cosine similarity (higher = closer). `bits`
115
+ * should be the true embedding dimension (e.g. 384), not `words × 32`, so that
116
+ * trailing padding bits — which are always 0 in both signatures and never
117
+ * contribute to the distance — don't deflate the normalization.
118
+ */
119
+ export function hammingSimilarity(a, b, bits) {
120
+ if (bits <= 0)
121
+ return 0;
122
+ return 1 - hammingDistance(a, b) / bits;
123
+ }
124
+ /**
125
+ * Exact cosine top-k over all candidates. Shared by the small-N gate and the
126
+ * rerank stage.
127
+ */
128
+ function exactTopK(query, candidates, k) {
129
+ const scored = new Array(candidates.length);
130
+ for (let i = 0; i < candidates.length; i++) {
131
+ scored[i] = {
132
+ id: candidates[i].id,
133
+ score: cosineSimilarity(query, candidates[i].vector),
134
+ };
135
+ }
136
+ scored.sort((a, b) => b.score - a.score);
137
+ return scored.slice(0, k);
138
+ }
139
+ /**
140
+ * Retrieve the top-k candidates for a query using a RaBitQ Hamming prefilter
141
+ * followed by an exact cosine rerank.
142
+ *
143
+ * Behavior:
144
+ * - `candidates.length < gateN` → plain exact cosine top-k (gate; RaBitQ
145
+ * overhead not worth it for small N).
146
+ * - otherwise → build/reuse sign signatures, rank ALL candidates by Hamming
147
+ * distance (cheap), take the top `rerankPool`, then:
148
+ * - `exactRerank=true` (default): run FULL cosine on just that pool and
149
+ * return the true top-k. Output equals an exact scan whenever the true
150
+ * top-k all fall within the Hamming top-`rerankPool` — recall is
151
+ * preserved by the rerank, only speed changes.
152
+ * - `exactRerank=false`: return the Hamming-only top-k (approximate).
153
+ *
154
+ * @param query Query vector (same dimension as candidate vectors).
155
+ * @param candidates Candidate set.
156
+ * @param k Number of results to return.
157
+ * @param opts Tuning knobs (see {@link TopKOptions}).
158
+ */
159
+ export function topKBySignature(query, candidates, k, opts = {}) {
160
+ const gateN = opts.gateN ?? 100;
161
+ const exactRerank = opts.exactRerank ?? true;
162
+ const n = candidates.length;
163
+ if (n === 0 || k <= 0)
164
+ return [];
165
+ // Recall-aware default pool: a 1-bit signature in high dimensions is coarse,
166
+ // so the pool must scale with N to keep recall high (see rerankPool docs).
167
+ const rerankPool = opts.rerankPool ?? Math.max(4 * k, Math.ceil(0.4 * n));
168
+ // Small-N gate: exact cosine, skip signature machinery entirely.
169
+ if (n < gateN) {
170
+ return exactTopK(query, candidates, Math.min(k, n));
171
+ }
172
+ const bits = query.length;
173
+ const querySig = signSignature(query);
174
+ // Rank ALL candidates by Hamming distance (cheap popcount scan).
175
+ const hammingRanked = new Array(n);
176
+ for (let i = 0; i < n; i++) {
177
+ const cand = candidates[i];
178
+ const sig = cand.signature ?? signSignature(cand.vector);
179
+ hammingRanked[i] = { idx: i, dist: hammingDistance(querySig, sig) };
180
+ }
181
+ // Ascending distance = descending similarity.
182
+ hammingRanked.sort((a, b) => a.dist - b.dist);
183
+ const poolSize = Math.min(rerankPool, n);
184
+ if (!exactRerank) {
185
+ // Hamming-only ranking: return the top-k by Hamming proxy similarity.
186
+ const topK = Math.min(k, n);
187
+ const out = new Array(topK);
188
+ for (let i = 0; i < topK; i++) {
189
+ const { idx, dist } = hammingRanked[i];
190
+ out[i] = { id: candidates[idx].id, score: 1 - dist / bits };
191
+ }
192
+ return out;
193
+ }
194
+ // Exact rerank: full cosine over the Hamming-top pool, return true top-k.
195
+ const pool = new Array(poolSize);
196
+ for (let i = 0; i < poolSize; i++) {
197
+ pool[i] = candidates[hammingRanked[i].idx];
198
+ }
199
+ return exactTopK(query, pool, Math.min(k, poolSize));
200
+ }
201
+ //# sourceMappingURL=rabitq.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-qe",
3
- "version": "3.10.1",
3
+ "version": "3.10.2",
4
4
  "description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -68,7 +68,8 @@
68
68
  "test:mcp:integration": "npm test -- --run tests/integration/mcp/",
69
69
  "test:integration:fast": "NODE_OPTIONS='--max-old-space-size=2048 --expose-gc' vitest run tests/integration/mcp/fleet-init-wires-daemon.test.ts tests/integration/workers/workers-reach-domains.test.ts tests/integration/learning/coordinator-roundtrip.test.ts tests/integration/bridge/bridge-end-to-end.test.ts",
70
70
  "test:integration": "NODE_OPTIONS='--max-old-space-size=4096 --expose-gc' vitest run tests/integration/ --exclude='**/browser/**' --exclude='**/browser-integration/**' --exclude='**/*.e2e.test.ts'",
71
- "mcp:validate": "echo 'MCP validation: All tools registered in MCP server' && exit 0",
71
+ "mcp:validate": "node scripts/smoke-mcp-protocol.mjs",
72
+ "mcp:parity": "node scripts/audit-mcp-tool-parity.mjs",
72
73
  "mcp:report": "echo 'MCP Report: uses vitest for test reporting' && exit 0",
73
74
  "test:code-intelligence": "npm test -- --run tests/unit/domains/code-intelligence/ tests/unit/coordination/mincut/",
74
75
  "verify:counts": "node -e \"const fs=require('fs'),g=require('glob'),p=require('path');const src=g.globSync('src/**/*.ts',{ignore:'src/**/*.test.ts'});const tests=g.globSync('tests/**/*.test.ts');const agents=g.globSync('.claude/agents/v3/qe-*.md');const skills=g.globSync('.claude/skills/**/*.md');const ok=src.length>500&&tests.length>300;const r={status:ok?'pass':'fail',srcFiles:src.length,testFiles:tests.length,agents:agents.length,skills:skills.length};fs.mkdirSync('reports',{recursive:true});fs.writeFileSync(p.join('reports','verification-counts.json'),JSON.stringify(r,null,2));console.log('Counts:',JSON.stringify(r));if(!ok)process.exit(1)\"",
@@ -85,6 +86,10 @@
85
86
  "performance:gate": "npx tsx src/performance/run-gates.ts",
86
87
  "test:integration:browser": "VIBIUM_REAL_TESTS=true vitest run tests/integrations/vibium/vibium-real.test.ts",
87
88
  "benchmark:token-reduction": "vitest bench tests/benchmarks/code-intelligence-token-reduction.bench.ts",
89
+ "benchmark:self-learning": "tsx scripts/benchmark-self-learning.ts",
90
+ "benchmark:rabitq": "tsx scripts/benchmark-rabitq.ts",
91
+ "plugin:smoke": "bash plugins/agentic-qe-fleet/scripts/smoke.sh",
92
+ "pretrain:history": "tsx scripts/pretrain-from-history.ts",
88
93
  "dev": "node dist/cli/bundle.js",
89
94
  "start": "node dist/cli/bundle.js",
90
95
  "typecheck": "tsc --noEmit",
@@ -256,6 +261,7 @@
256
261
  ".claude/skills",
257
262
  ".claude/commands",
258
263
  ".claude/helpers",
264
+ ".claude/hooks",
259
265
  ".opencode/agents",
260
266
  ".opencode/skills",
261
267
  ".opencode/tools",
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
- import{a,b,c}from"./chunk-32R7EA7B.js";import"./chunk-GTRXZJNX.js";import"./chunk-BN7ERYXI.js";import"./chunk-QNW335PD.js";import"./chunk-2TDWCXZ6.js";import"./chunk-4AWJ5PE4.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
- import{a,b,c,d,e,f}from"./chunk-BECU52UY.js";import"./chunk-G3BQU3Q6.js";import"./chunk-6VQ5MFJ6.js";import"./chunk-TFNLXAK5.js";import"./chunk-ECPB7IAH.js";import"./chunk-LF7URN2X.js";import"./chunk-UDFLR7GR.js";import"./chunk-WS4XVJHI.js";import"./chunk-NRLT44YB.js";import"./chunk-YPOTBXPU.js";import"./chunk-AUVC3DDB.js";import"./chunk-NPSBMDVU.js";import"./chunk-F3OVFA6W.js";import"./chunk-PXFQSVA2.js";import"./chunk-Q24OJX44.js";import"./chunk-GXJ4BCGC.js";import"./chunk-QNW335PD.js";import"./chunk-P7T5Y735.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-Y2DPXMOR.js";import"./chunk-2TDWCXZ6.js";import"./chunk-IK6AJX3C.js";import"./chunk-XRK7FBTY.js";import"./chunk-PLRSKAFZ.js";import"./chunk-GRG3OP34.js";import"./chunk-XKOKMS5A.js";import"./chunk-2ETDES5W.js";import"./chunk-MVGVD6LS.js";import"./chunk-25QGPRWN.js";import"./chunk-KRXKU54J.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j}from"./chunk-BF7MUYWC.js";import"./chunk-EIROAH6N.js";import"./chunk-Q24OJX44.js";import"./chunk-GXJ4BCGC.js";import"./chunk-QNW335PD.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-2TDWCXZ6.js";import"./chunk-IK6AJX3C.js";import"./chunk-XRK7FBTY.js";import"./chunk-PLRSKAFZ.js";import"./chunk-GRG3OP34.js";import"./chunk-XKOKMS5A.js";import"./chunk-2ETDES5W.js";import"./chunk-MVGVD6LS.js";import"./chunk-25QGPRWN.js";import"./chunk-KRXKU54J.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{j as MCPToolBase,i as defaultToolLogger,h as getLLMRouter,d as getMemoryBackend,f as getSharedLLMRouter,b as getSharedMemoryBackend,a as registerRvfResetFn,g as resetSharedLLMRouter,c as resetSharedMemoryBackend,e as setSharedLLMRouter};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
- import{a}from"./chunk-6D57DWQ6.js";import"./chunk-BF7MUYWC.js";import"./chunk-EIROAH6N.js";import"./chunk-Q24OJX44.js";import"./chunk-GXJ4BCGC.js";import"./chunk-QNW335PD.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-2TDWCXZ6.js";import"./chunk-IK6AJX3C.js";import"./chunk-XRK7FBTY.js";import"./chunk-PLRSKAFZ.js";import"./chunk-GRG3OP34.js";import"./chunk-XKOKMS5A.js";import"./chunk-2ETDES5W.js";import"./chunk-MVGVD6LS.js";import"./chunk-25QGPRWN.js";import"./chunk-KRXKU54J.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{a as BrowserWorkflowTool};