agentic-qe 3.15.13 → 3.15.15

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 (426) hide show
  1. package/.claude/agents/v3/templates/qx-report-template.html +1 -1
  2. package/.claude/helpers/brain-checkpoint.cjs +124 -5
  3. package/.claude/skills/skills-manifest.json +1 -1
  4. package/CHANGELOG.md +124 -0
  5. package/assets/agents/v3/templates/qx-report-template.html +1 -1
  6. package/assets/skills/skills-manifest.json +1 -1
  7. package/dist/cli/bundle.js +6 -6
  8. package/dist/cli/chunks/adapter-QU6INSKP.js +2 -0
  9. package/dist/cli/chunks/agent-booster-wasm-EUF4XVUC.js +2 -0
  10. package/dist/cli/chunks/{agent-handler-AOH6TV7W.js → agent-handler-MOX6PSIQ.js} +2 -2
  11. package/dist/cli/chunks/{agent-memory-branch-2P54SF5N.js → agent-memory-branch-AEXKIGDG.js} +2 -2
  12. package/dist/cli/chunks/aqe-learning-engine-PAJPENJD.js +2 -0
  13. package/dist/cli/chunks/{arena-NSVFCAF5.js → arena-IQ5ZZDRF.js} +2 -2
  14. package/dist/cli/chunks/{arena-X6MOGQHA.js → arena-M7GA3CVG.js} +4 -4
  15. package/dist/cli/chunks/{audit-27DJLQNM.js → audit-4IPBMKWB.js} +3 -3
  16. package/dist/cli/chunks/base-OTGSN6IC.js +2 -0
  17. package/dist/cli/chunks/{better-sqlite3-BU5GXILS.js → better-sqlite3-IKDKJ2IE.js} +2 -2
  18. package/dist/cli/chunks/brain-handler-5NQUDH4W.js +95 -0
  19. package/dist/cli/chunks/{branch-enumerator-5CLULOCU.js → branch-enumerator-KSXELWRC.js} +2 -2
  20. package/dist/cli/chunks/{browser-R4DMU3LN.js → browser-6LACARWE.js} +2 -2
  21. package/dist/cli/chunks/browser-workflow-WLZGR6SB.js +2 -0
  22. package/dist/cli/chunks/{chunk-LUZNKJE6.js → chunk-22UKJGGN.js} +3 -3
  23. package/dist/cli/chunks/{chunk-BLSLEVDI.js → chunk-27HE2BHC.js} +2 -2
  24. package/dist/cli/chunks/{chunk-K4CZA77U.js → chunk-2CKERSMB.js} +2 -2
  25. package/dist/cli/chunks/{chunk-YSZ5OE3Z.js → chunk-2IIXCEMS.js} +2 -2
  26. package/dist/cli/chunks/{chunk-F3YS57NF.js → chunk-2LUTPMBO.js} +2 -2
  27. package/dist/cli/chunks/{chunk-GHM6MQNK.js → chunk-2ZFLULL4.js} +2 -2
  28. package/dist/cli/chunks/{chunk-7CMTY45A.js → chunk-337Z52QM.js} +2 -2
  29. package/dist/cli/chunks/{chunk-W26B7ERY.js → chunk-3CYNZFKH.js} +1 -1
  30. package/dist/cli/chunks/chunk-3HVFIITW.js +2 -0
  31. package/dist/cli/chunks/{chunk-K3TLLJMX.js → chunk-3J3RNJNX.js} +1 -1
  32. package/dist/cli/chunks/{chunk-MAMQA43L.js → chunk-4ATQP3PR.js} +1 -1
  33. package/dist/cli/chunks/{chunk-YXRASAPI.js → chunk-4D4CWP72.js} +2 -2
  34. package/dist/cli/chunks/{chunk-GHY6Z6KO.js → chunk-4HKAD25N.js} +3 -3
  35. package/dist/cli/chunks/{chunk-XNBOGCF3.js → chunk-4X3SWKBA.js} +2 -2
  36. package/dist/cli/chunks/{chunk-IJUHSJ2U.js → chunk-5AFVEWMT.js} +2 -2
  37. package/dist/cli/chunks/{chunk-SE4VNN4I.js → chunk-5C62XMJR.js} +3 -3
  38. package/dist/cli/chunks/{chunk-KDNJ4F3P.js → chunk-5G4UFTV4.js} +2 -2
  39. package/dist/cli/chunks/{chunk-DVGRPK7A.js → chunk-5I7357KS.js} +2 -2
  40. package/dist/cli/chunks/{chunk-YZWBNBTW.js → chunk-5KA5TVPR.js} +2 -2
  41. package/dist/cli/chunks/{chunk-JGZ722G3.js → chunk-5PTAFGJT.js} +2 -2
  42. package/dist/cli/chunks/{chunk-SVLQRAMF.js → chunk-6BRQPHMZ.js} +1 -1
  43. package/dist/cli/chunks/{chunk-KDVZND5Q.js → chunk-6KCSKGVY.js} +1 -1
  44. package/dist/cli/chunks/{chunk-LWR3FV3Y.js → chunk-6LE362LZ.js} +2 -2
  45. package/dist/cli/chunks/{chunk-WKGTGOYS.js → chunk-6NBRMD25.js} +3 -3
  46. package/dist/cli/chunks/{chunk-HQZGPJYG.js → chunk-6RBTS3NF.js} +2 -2
  47. package/dist/cli/chunks/{chunk-WOCGL4QP.js → chunk-6YVMX2TC.js} +2 -2
  48. package/dist/cli/chunks/{chunk-I3C7JOXC.js → chunk-73PBAWAF.js} +2 -2
  49. package/dist/cli/chunks/{chunk-75RDHBAX.js → chunk-74YG72NQ.js} +3 -3
  50. package/dist/cli/chunks/{chunk-O6FGXMHD.js → chunk-76P32JVU.js} +1 -1
  51. package/dist/cli/chunks/{chunk-LL7LDPXS.js → chunk-7ACCBHRB.js} +1 -1
  52. package/dist/cli/chunks/{chunk-3LJ7LQMV.js → chunk-7BLZHFKD.js} +1 -1
  53. package/dist/cli/chunks/{chunk-CM4LSLKR.js → chunk-7O45RQHF.js} +2 -2
  54. package/dist/cli/chunks/{chunk-NU3W5WFT.js → chunk-7XB3FCKM.js} +2 -2
  55. package/dist/cli/chunks/{chunk-E56B6IDX.js → chunk-AHMWD6JG.js} +2 -2
  56. package/dist/cli/chunks/{chunk-G2Q66Z23.js → chunk-AJPROCDW.js} +2 -2
  57. package/dist/cli/chunks/{chunk-NW7IBHJA.js → chunk-AKZO6GGG.js} +13 -13
  58. package/dist/cli/chunks/{chunk-IC3TQEOA.js → chunk-AOKKUB5F.js} +1 -1
  59. package/dist/cli/chunks/{chunk-4OVC4RIL.js → chunk-AP2W7Z3A.js} +1 -1
  60. package/dist/cli/chunks/{chunk-PHP5UBT4.js → chunk-BBRROA3Z.js} +2 -2
  61. package/dist/cli/chunks/{chunk-5FKWCZNF.js → chunk-BDKEAGQ2.js} +2 -2
  62. package/dist/cli/chunks/{chunk-BTVEYBW2.js → chunk-BFQTLF5X.js} +2 -2
  63. package/dist/cli/chunks/{chunk-HZ5NXFXH.js → chunk-BLL2XU7A.js} +2 -2
  64. package/dist/cli/chunks/{chunk-UTRV7T2N.js → chunk-BP5T3OEV.js} +2 -2
  65. package/dist/cli/chunks/{chunk-GB6HBNH2.js → chunk-BQ47GQPK.js} +2 -2
  66. package/dist/cli/chunks/{chunk-RFNW2LGD.js → chunk-BU4UQR36.js} +2 -2
  67. package/dist/cli/chunks/{chunk-WO274FRI.js → chunk-BZULJMGH.js} +2 -2
  68. package/dist/cli/chunks/{chunk-GU5HNCWI.js → chunk-C4KLXFJP.js} +1 -1
  69. package/dist/cli/chunks/{chunk-LFJALJOA.js → chunk-C4RTAVC6.js} +2 -2
  70. package/dist/cli/chunks/{chunk-WNQS4WTS.js → chunk-C5CXL3JP.js} +2 -2
  71. package/dist/cli/chunks/{chunk-MGZ5FJUW.js → chunk-CAOUV5GZ.js} +2 -2
  72. package/dist/cli/chunks/{chunk-XPRVF4YE.js → chunk-CBK5CT6T.js} +2 -2
  73. package/dist/cli/chunks/{chunk-JRRXCODW.js → chunk-DEKR3CTS.js} +2 -2
  74. package/dist/cli/chunks/{chunk-AQSVJNEH.js → chunk-DKX4GNRU.js} +2 -2
  75. package/dist/cli/chunks/{chunk-6KATY3KS.js → chunk-DUKE27HC.js} +2 -2
  76. package/dist/cli/chunks/{chunk-W2QWSQVE.js → chunk-DURD37JZ.js} +2 -2
  77. package/dist/cli/chunks/{chunk-KCW47QR5.js → chunk-E3MRDIZF.js} +1 -1
  78. package/dist/cli/chunks/{chunk-6Z7PRBSG.js → chunk-E56PVVWC.js} +2 -2
  79. package/dist/cli/chunks/{chunk-WQL7WCIZ.js → chunk-E5G4WZ2T.js} +1 -1
  80. package/dist/cli/chunks/{chunk-PB6J6HAA.js → chunk-EBTNMQSS.js} +2 -2
  81. package/dist/cli/chunks/{chunk-KADFXPPN.js → chunk-EFUJDMNC.js} +2 -2
  82. package/dist/cli/chunks/{chunk-QPNG5ZN2.js → chunk-EKP2SC77.js} +2 -2
  83. package/dist/cli/chunks/{chunk-U2FUXDDJ.js → chunk-EMSZVUYA.js} +3 -3
  84. package/dist/cli/chunks/{chunk-XEAEYC6Y.js → chunk-ERN56H6S.js} +1 -1
  85. package/dist/cli/chunks/{chunk-DNDL7SOS.js → chunk-FOOW4JVS.js} +2 -2
  86. package/dist/cli/chunks/{chunk-HOAJUIBQ.js → chunk-FTRSS64D.js} +2 -2
  87. package/dist/cli/chunks/{chunk-TOQWL2ZF.js → chunk-G242G224.js} +2 -2
  88. package/dist/cli/chunks/{chunk-VTDFVFST.js → chunk-G6RDCCFV.js} +2 -2
  89. package/dist/cli/chunks/{chunk-TWDW32W2.js → chunk-GCHYOPRZ.js} +2 -2
  90. package/dist/cli/chunks/{chunk-MFW5HSG4.js → chunk-GGQGCT4Y.js} +2 -2
  91. package/dist/cli/chunks/{chunk-G6WDYBLQ.js → chunk-GKSMRBHU.js} +1 -1
  92. package/dist/cli/chunks/{chunk-CCMKSHAT.js → chunk-GQABPCQE.js} +2 -2
  93. package/dist/cli/chunks/{chunk-G77ERMUD.js → chunk-GV2QE5TO.js} +1 -1
  94. package/dist/cli/chunks/{chunk-756CGMEH.js → chunk-H5DER3JY.js} +1 -1
  95. package/dist/cli/chunks/{chunk-W3PPFHI5.js → chunk-HH4ED4F7.js} +52 -50
  96. package/dist/cli/chunks/{chunk-3Y2ROSCL.js → chunk-HL2ANKN3.js} +2 -2
  97. package/dist/cli/chunks/{chunk-T3PGQFDI.js → chunk-HTZSRMHW.js} +2 -2
  98. package/dist/cli/chunks/{chunk-3QZEGE67.js → chunk-IXL5ZHWJ.js} +1 -1
  99. package/dist/cli/chunks/{chunk-5ZGM3RMH.js → chunk-J3FP5UGL.js} +1 -1
  100. package/dist/cli/chunks/{chunk-FZ76G4QJ.js → chunk-JCQGJGGZ.js} +1 -1
  101. package/dist/cli/chunks/chunk-JCZCJE6X.js +86 -0
  102. package/dist/cli/chunks/{chunk-YZEXYO4W.js → chunk-JKJOB65O.js} +1 -1
  103. package/dist/cli/chunks/{chunk-A64JFBWI.js → chunk-JUDUBQHA.js} +2 -2
  104. package/dist/cli/chunks/{chunk-PIDQVU3L.js → chunk-JW74KRBC.js} +2 -2
  105. package/dist/cli/chunks/{chunk-EXGMJFAT.js → chunk-K3WZICFA.js} +1 -1
  106. package/dist/cli/chunks/{chunk-ASQYASNV.js → chunk-K3XBQC3R.js} +1 -1
  107. package/dist/cli/chunks/{chunk-E7CLYGS7.js → chunk-KCQNFBBR.js} +1 -1
  108. package/dist/cli/chunks/chunk-KJBPB7P5.js +3 -0
  109. package/dist/cli/chunks/chunk-KLTMOXIK.js +3 -0
  110. package/dist/cli/chunks/{chunk-5MDERQH3.js → chunk-L32JNNKL.js} +1 -1
  111. package/dist/cli/chunks/{chunk-32ZMWEP3.js → chunk-LB2LGEDP.js} +2 -2
  112. package/dist/cli/chunks/{chunk-42J34YG4.js → chunk-LHMQIZ6B.js} +2 -2
  113. package/dist/cli/chunks/{chunk-NURIILUB.js → chunk-LJMYRTJ7.js} +1 -1
  114. package/dist/cli/chunks/{chunk-M6AAGIG7.js → chunk-LNX74WHQ.js} +1 -1
  115. package/dist/cli/chunks/{chunk-P7A4NKTZ.js → chunk-LTQVUAPH.js} +2 -2
  116. package/dist/cli/chunks/{chunk-3YNLWPBF.js → chunk-LVABQNRF.js} +2 -2
  117. package/dist/cli/chunks/{chunk-2G7TVT6W.js → chunk-LYJHUNBK.js} +2 -2
  118. package/dist/cli/chunks/{chunk-DLD7RUZ4.js → chunk-M4CJCPCQ.js} +2 -2
  119. package/dist/cli/chunks/{chunk-Q3UDLV5Z.js → chunk-M4WMSCAE.js} +1 -1
  120. package/dist/cli/chunks/{chunk-UDQSYWVF.js → chunk-MIA447GY.js} +1 -1
  121. package/dist/cli/chunks/{chunk-RF7HWBHN.js → chunk-MPFPWJTH.js} +2 -2
  122. package/dist/cli/chunks/{chunk-BK577VL7.js → chunk-MV55NXTD.js} +2 -2
  123. package/dist/cli/chunks/{chunk-JQGMW45H.js → chunk-NQS3BWS6.js} +1 -1
  124. package/dist/cli/chunks/{chunk-BEGR4D6N.js → chunk-NWIIYHT6.js} +2 -2
  125. package/dist/cli/chunks/{chunk-SSU73QAX.js → chunk-O6EWL5DQ.js} +2 -2
  126. package/dist/cli/chunks/chunk-OBDONJQM.js +2 -0
  127. package/dist/cli/chunks/chunk-OLZH5LRT.js +141 -0
  128. package/dist/cli/chunks/{chunk-W3INMZZ6.js → chunk-OQG3UQQ7.js} +1 -1
  129. package/dist/cli/chunks/{chunk-72ASBE35.js → chunk-PFQCV6YS.js} +3 -3
  130. package/dist/cli/chunks/{chunk-7YTGHGK4.js → chunk-PS6UMZVK.js} +2 -2
  131. package/dist/cli/chunks/{chunk-OCAEXYFA.js → chunk-PXATBHWN.js} +2 -2
  132. package/dist/cli/chunks/{chunk-ARJW4I2O.js → chunk-PYPS65P7.js} +2 -2
  133. package/dist/cli/chunks/{chunk-SYV2V3PL.js → chunk-Q6I4SIUU.js} +4 -4
  134. package/dist/cli/chunks/{chunk-H4H2YSFH.js → chunk-QFGYH6HD.js} +1 -1
  135. package/dist/cli/chunks/{chunk-526QYFJU.js → chunk-QGBGSQ2E.js} +2 -2
  136. package/dist/cli/chunks/{chunk-YBQH2VOP.js → chunk-QRKTBSZT.js} +2 -2
  137. package/dist/cli/chunks/{chunk-C7JM7CD3.js → chunk-R6LHJ7ME.js} +2 -2
  138. package/dist/cli/chunks/{chunk-TSQC2KKZ.js → chunk-RBKUU7WF.js} +2 -2
  139. package/dist/cli/chunks/{chunk-CE7B5LU7.js → chunk-RDMRY7CT.js} +1 -1
  140. package/dist/cli/chunks/chunk-RIRZHOS2.js +8 -0
  141. package/dist/cli/chunks/{chunk-CRWPZT74.js → chunk-SHRI7TKJ.js} +2 -2
  142. package/dist/cli/chunks/{chunk-KWYH3FI4.js → chunk-SJCKCSN3.js} +1 -1
  143. package/dist/cli/chunks/{chunk-DFUASIKA.js → chunk-SON6ZRH3.js} +2 -2
  144. package/dist/cli/chunks/{chunk-J2ZIFFM6.js → chunk-SZAZQZWI.js} +2 -2
  145. package/dist/cli/chunks/{chunk-HD7YIFOI.js → chunk-T4GE7MPI.js} +2 -2
  146. package/dist/cli/chunks/{chunk-3Y7TJFHU.js → chunk-T66PPF4D.js} +2 -2
  147. package/dist/cli/chunks/{chunk-3RZV5DGO.js → chunk-T67R2MUN.js} +2 -2
  148. package/dist/cli/chunks/{chunk-H4GG2NLO.js → chunk-TDQWTSBS.js} +2 -2
  149. package/dist/cli/chunks/{chunk-TWJTK4CC.js → chunk-TODNOP7C.js} +2 -2
  150. package/dist/cli/chunks/{chunk-NZ3GUMB2.js → chunk-TX2CHQD7.js} +2 -2
  151. package/dist/cli/chunks/{chunk-AL6FBH3E.js → chunk-TZIHDJZD.js} +2 -2
  152. package/dist/cli/chunks/{chunk-GII6UM3F.js → chunk-U62OUXBF.js} +1 -1
  153. package/dist/cli/chunks/{chunk-YQFLQE53.js → chunk-UAQZI6N4.js} +2 -2
  154. package/dist/cli/chunks/{chunk-R7SYRCRP.js → chunk-UE2J6MA5.js} +1 -1
  155. package/dist/cli/chunks/{chunk-VRHRBAEM.js → chunk-UGYM4U44.js} +1 -1
  156. package/dist/cli/chunks/{chunk-NT4DBXSX.js → chunk-UJABDXST.js} +2 -2
  157. package/dist/cli/chunks/{chunk-OFACHK5O.js → chunk-UORB2QDU.js} +9 -9
  158. package/dist/cli/chunks/{chunk-QDEJ4CI2.js → chunk-UQPA33UK.js} +2 -2
  159. package/dist/cli/chunks/{chunk-TCBBNUBP.js → chunk-UUBIQR6A.js} +3 -3
  160. package/dist/cli/chunks/{chunk-NZD4DPSU.js → chunk-UXIY4IAI.js} +2 -2
  161. package/dist/cli/chunks/{chunk-SG3NX7QE.js → chunk-VCXI4XC4.js} +2 -2
  162. package/dist/cli/chunks/{chunk-PSFSPGUD.js → chunk-VMAM46HQ.js} +2 -2
  163. package/dist/cli/chunks/{chunk-3AN5TNGD.js → chunk-VY4U6DPO.js} +3 -3
  164. package/dist/cli/chunks/{chunk-X7N2JF2X.js → chunk-W27AJ5B4.js} +2 -2
  165. package/dist/cli/chunks/{chunk-CT6SAVXQ.js → chunk-W5ZJG2OU.js} +2 -2
  166. package/dist/cli/chunks/{chunk-KV4T4MXK.js → chunk-W62OOK7A.js} +2 -2
  167. package/dist/cli/chunks/{chunk-5K26BEYB.js → chunk-WNTA4YKE.js} +2 -2
  168. package/dist/cli/chunks/{chunk-LZYQHVD4.js → chunk-WUOOX7UG.js} +2 -2
  169. package/dist/cli/chunks/{chunk-7NA7JXNB.js → chunk-WVXJ2QIG.js} +2 -2
  170. package/dist/cli/chunks/{chunk-KB56CPU4.js → chunk-X33CWRDF.js} +2 -2
  171. package/dist/cli/chunks/{chunk-7JUC2MVZ.js → chunk-XG4F4XH4.js} +2 -2
  172. package/dist/cli/chunks/{chunk-ZAKQLAHT.js → chunk-XH4JMX5O.js} +1 -1
  173. package/dist/cli/chunks/{chunk-X2Z7F4EU.js → chunk-XHHWABJV.js} +2 -2
  174. package/dist/cli/chunks/{chunk-7PLIEBY7.js → chunk-XHLYGXYE.js} +2 -2
  175. package/dist/cli/chunks/{chunk-UXZSUMEA.js → chunk-XIVVTYM2.js} +2 -2
  176. package/dist/cli/chunks/{chunk-MVVB7C2E.js → chunk-XM6ZVFM5.js} +156 -156
  177. package/dist/cli/chunks/{chunk-VTOBUZL6.js → chunk-XWIAZG3C.js} +2 -2
  178. package/dist/cli/chunks/{chunk-CV77DMDQ.js → chunk-Y2OX6KGN.js} +2 -2
  179. package/dist/cli/chunks/{chunk-VRVMIPTM.js → chunk-YUS6TWAL.js} +2 -2
  180. package/dist/cli/chunks/{chunk-VU5TBX2V.js → chunk-ZIPAB5J6.js} +2 -2
  181. package/dist/cli/chunks/{chunk-KUAKV3IW.js → chunk-ZSOMUTNL.js} +1 -1
  182. package/dist/cli/chunks/{chunk-UOC3O6RP.js → chunk-ZWBGYJ7K.js} +2 -2
  183. package/dist/cli/chunks/{chunk-5VMAV6T6.js → chunk-ZYJB6FML.js} +1 -1
  184. package/dist/cli/chunks/{ci-ENOASTYB.js → ci-UCUJOSBW.js} +2 -2
  185. package/dist/cli/chunks/{ci-config-B26OXHQM.js → ci-config-2XILD3XG.js} +2 -2
  186. package/dist/cli/chunks/{ci-output-JTCLLNOQ.js → ci-output-BL6KWOHW.js} +2 -2
  187. package/dist/cli/chunks/{circuit-breaker-23JMFNM5.js → circuit-breaker-5XLIOXE5.js} +2 -2
  188. package/dist/cli/chunks/{claude-flow-setup-ON6L462G.js → claude-flow-setup-4IMP6ACS.js} +2 -2
  189. package/dist/cli/chunks/client-KKRNPX4F.js +2 -0
  190. package/dist/cli/chunks/{cline-installer-OWQ4D2FQ.js → cline-installer-RYLHCDK7.js} +2 -2
  191. package/dist/cli/chunks/{code-2ZRL7SEU.js → code-WY3GJXHX.js} +3 -3
  192. package/dist/cli/chunks/{code-index-extractor-JXSQVM67.js → code-index-extractor-Y4MZBZCW.js} +2 -2
  193. package/dist/cli/chunks/{codex-installer-7LXZYBSQ.js → codex-installer-SCJ3T3DX.js} +4 -4
  194. package/dist/cli/chunks/{completions-C2LR623C.js → completions-CN2DXQFU.js} +2 -2
  195. package/dist/cli/chunks/{complexity-analyzer-TGQLHCYJ.js → complexity-analyzer-7MDPPIBH.js} +2 -2
  196. package/dist/cli/chunks/{continuedev-installer-RUGD24D2.js → continuedev-installer-GCEJRK34.js} +2 -2
  197. package/dist/cli/chunks/{copilot-installer-ZLFVLEJP.js → copilot-installer-BHPDSELY.js} +2 -2
  198. package/dist/cli/chunks/core-handlers-47MPMED7.js +2 -0
  199. package/dist/cli/chunks/{cost-tracker-RT4QL745.js → cost-tracker-VO5MFWR6.js} +2 -2
  200. package/dist/cli/chunks/coverage-LYFQYNH6.js +51 -0
  201. package/dist/cli/chunks/cross-domain-router-U6MBFHEC.js +2 -0
  202. package/dist/cli/chunks/{cursor-installer-LJKLNFF6.js → cursor-installer-KP4HA7TV.js} +2 -2
  203. package/dist/cli/chunks/{daemon-BMDXCQT5.js → daemon-7RC7TS57.js} +3 -3
  204. package/dist/cli/chunks/{daemon-FBH3IRYN.js → daemon-AXLVPKVO.js} +4 -4
  205. package/dist/cli/chunks/{dag-attention-scheduler-JGDED55I.js → dag-attention-scheduler-NKA44RSR.js} +2 -2
  206. package/dist/cli/chunks/{detect-SZIHIVCJ.js → detect-CMYAJWYF.js} +2 -2
  207. package/dist/cli/chunks/{dist-node-FV3KWXQ6.js → dist-node-EN3PYEGW.js} +2 -2
  208. package/dist/cli/chunks/{domain-handler-GI5JWQOV.js → domain-handler-EXSZCX7A.js} +2 -2
  209. package/dist/cli/chunks/{domain-plugins-BUWY36TL.js → domain-plugins-HCQFSNL7.js} +2 -2
  210. package/dist/cli/chunks/{domain-transfer-GCY7W5DA.js → domain-transfer-3LGSNTPO.js} +2 -2
  211. package/dist/cli/chunks/dream-76L6EEN7.js +2 -0
  212. package/dist/cli/chunks/{embed-and-insert-pattern-GPRR3ZGD.js → embed-and-insert-pattern-B6MNHICW.js} +2 -2
  213. package/dist/cli/chunks/{eval-XPB3IGAP.js → eval-OQELIWJK.js} +2 -2
  214. package/dist/cli/chunks/{experience-capture-middleware-2E554UB3.js → experience-capture-middleware-SUFILYPW.js} +3 -3
  215. package/dist/cli/chunks/{fast-paths-ZSMWZPUC.js → fast-paths-UV4NDEWM.js} +2 -2
  216. package/dist/cli/chunks/{feature-flags-GIWVDVVC.js → feature-flags-CKTYX67J.js} +2 -2
  217. package/dist/cli/chunks/{feature-flags-N7EOGE5P.js → feature-flags-H7H33B6C.js} +2 -2
  218. package/dist/cli/chunks/file-discovery-VSFKZ3LJ.js +2 -0
  219. package/dist/cli/chunks/{fleet-HCHDOUCX.js → fleet-ZJBCAKRG.js} +3 -3
  220. package/dist/cli/chunks/{gnn-wrapper-CZNCNXXZ.js → gnn-wrapper-RUE2QZRG.js} +2 -2
  221. package/dist/cli/chunks/{heartbeat-handler-6YUIF2YQ.js → heartbeat-handler-XRV327M7.js} +4 -4
  222. package/dist/cli/chunks/heartbeat-scheduler-NIK3KKEH.js +2 -0
  223. package/dist/cli/chunks/hnsw-adapter-WJG7LUJJ.js +2 -0
  224. package/dist/cli/chunks/hnsw-index-D6PRI5HC.js +2 -0
  225. package/dist/cli/chunks/{hnsw-legacy-bridge-J3M3IK24.js → hnsw-legacy-bridge-UJID6ZZ4.js} +2 -2
  226. package/dist/cli/chunks/{hnswlib-node-ULGTGDZW.js → hnswlib-node-WS43R4AX.js} +2 -2
  227. package/dist/cli/chunks/{hooks-C4BUGYUQ.js → hooks-YZNJKXAJ.js} +10 -10
  228. package/dist/cli/chunks/hybrid-backend-RIUR3I7F.js +2 -0
  229. package/dist/cli/chunks/{hypergraph-engine-WINGVMPG.js → hypergraph-engine-XQJSIMTS.js} +2 -2
  230. package/dist/cli/chunks/{hypergraph-handler-GADMWKAU.js → hypergraph-handler-ZD2NYXMR.js} +3 -3
  231. package/dist/cli/chunks/impact-analyzer-C36YYTJ5.js +2 -0
  232. package/dist/cli/chunks/{init-guard-K2T4QWAO.js → init-guard-DSRUAVRT.js} +2 -2
  233. package/dist/cli/chunks/{init-handler-PCZTDZYI.js → init-handler-RJU5QMAP.js} +6 -6
  234. package/dist/cli/chunks/init-wizard-JCKNGIGT.js +2 -0
  235. package/dist/cli/chunks/kernel-F7ILJTYD.js +2 -0
  236. package/dist/cli/chunks/{kilocode-installer-XENXNEIU.js → kilocode-installer-BCPOCVMC.js} +2 -2
  237. package/dist/cli/chunks/{kiro-installer-3PG2TJ67.js → kiro-installer-GFCWCB2S.js} +2 -2
  238. package/dist/cli/chunks/knowledge-graph-VTXDBHB2.js +2 -0
  239. package/dist/cli/chunks/learning-FZTD72CF.js +131 -0
  240. package/dist/cli/chunks/{llm-router-RKVDEWU2.js → llm-router-GJVKGRJL.js} +4 -4
  241. package/dist/cli/chunks/llm-router-service-TNOWQINA.js +2 -0
  242. package/dist/cli/chunks/{load-ITHC564X.js → load-YKTPOYBE.js} +2 -2
  243. package/dist/cli/chunks/load-test-FPVBK2EV.js +2 -0
  244. package/dist/cli/chunks/{mcp-TCL5UW3N.js → mcp-LT6R2IKS.js} +2 -2
  245. package/dist/cli/chunks/{memory-BKDAY2N2.js → memory-4HKKOLRY.js} +5 -5
  246. package/dist/cli/chunks/memory-backend-2QE7O67A.js +2 -0
  247. package/dist/cli/chunks/{memory-handlers-WN4FXFOA.js → memory-handlers-X4CMVBXB.js} +2 -2
  248. package/dist/cli/chunks/{multi-model-executor-VHAT7ZPF.js → multi-model-executor-2YPM2WTK.js} +2 -2
  249. package/dist/cli/chunks/{opencode-installer-E3VM3EEY.js → opencode-installer-WBAJMH5K.js} +2 -2
  250. package/dist/cli/chunks/{orchestrator-BMQ6X762.js → orchestrator-5W5WVMVJ.js} +109 -25
  251. package/dist/cli/chunks/pattern-null-store-UI35ORHW.js +2 -0
  252. package/dist/cli/chunks/{pattern-usage-recorder-GOOR2BV5.js → pattern-usage-recorder-GXRMNPAZ.js} +2 -2
  253. package/dist/cli/chunks/{pipeline-5NSFQQIX.js → pipeline-2NA4DRDA.js} +2 -2
  254. package/dist/cli/chunks/{platform-SQM34J5G.js → platform-BGERNQ5V.js} +2 -2
  255. package/dist/cli/chunks/{plugin-UQJZRMZG.js → plugin-L4EPVENR.js} +2 -2
  256. package/dist/cli/chunks/{prime-radiant-advanced-wasm-WMDJOL4S.js → prime-radiant-advanced-wasm-RTQRTPTM.js} +2 -2
  257. package/dist/cli/chunks/project-root-S7WDFTMU.js +2 -0
  258. package/dist/cli/chunks/protocol-executor-OPANXQVB.js +2 -0
  259. package/dist/cli/chunks/{protocol-handler-OBDCVY6X.js → protocol-handler-SYQXM6JK.js} +2 -2
  260. package/dist/cli/chunks/{prove-XDC7I4XT.js → prove-5O7GPJCU.js} +2 -2
  261. package/dist/cli/chunks/qe-reasoning-bank-3OTF4DYQ.js +2 -0
  262. package/dist/cli/chunks/{quality-L4GQ6WX4.js → quality-KIIDHGNF.js} +2 -2
  263. package/dist/cli/chunks/{quality-gate-MJG66LKN.js → quality-gate-H65VECD3.js} +3 -3
  264. package/dist/cli/chunks/queen-coordinator-WTYH4TAN.js +2 -0
  265. package/dist/cli/chunks/{real-embeddings-HW4G2LWL.js → real-embeddings-DYIOLKQ3.js} +2 -2
  266. package/dist/cli/chunks/{ref-validation-FC7JOJ2C.js → ref-validation-CSBJOMZM.js} +2 -2
  267. package/dist/cli/chunks/{roocode-installer-KWS4CEIC.js → roocode-installer-G7OVYXEN.js} +2 -2
  268. package/dist/cli/chunks/router-DBBW4NC2.js +2 -0
  269. package/dist/cli/chunks/routing-feedback-W35QHCL4.js +2 -0
  270. package/dist/cli/chunks/{routing-handler-QF4WVB2S.js → routing-handler-ZNZPPI5Y.js} +2 -2
  271. package/dist/cli/chunks/{ruvector-commands-2MTCOUK6.js → ruvector-commands-C6IG3OY3.js} +2 -2
  272. package/dist/cli/chunks/rvf-dual-writer-X3NSL25Z.js +2 -0
  273. package/dist/cli/chunks/rvf-migration-adapter-TZR7GDOK.js +2 -0
  274. package/dist/cli/chunks/{rvf-migration-coordinator-BREJCXWN.js → rvf-migration-coordinator-4ATTHGHD.js} +2 -2
  275. package/dist/cli/chunks/rvf-native-adapter-HD25ZYV5.js +2 -0
  276. package/dist/cli/chunks/{rvf-store-integrity-KKC6HOJD.js → rvf-store-integrity-3G6LFLT3.js} +2 -2
  277. package/dist/cli/chunks/safe-db-ZS2QKANY.js +2 -0
  278. package/dist/cli/chunks/schedule-ZH6VNA32.js +2 -0
  279. package/dist/cli/chunks/scheduler-T6CD74B6.js +2 -0
  280. package/dist/cli/chunks/{security-OSAE7VAP.js → security-A3IMVLFM.js} +3 -3
  281. package/dist/cli/chunks/{shared-rvf-adapter-COUOS665.js → shared-rvf-adapter-VHWQ6US5.js} +2 -2
  282. package/dist/cli/chunks/{shared-rvf-dual-writer-YXMPZKQE.js → shared-rvf-dual-writer-JB3QS7IG.js} +2 -2
  283. package/dist/cli/chunks/sqlite-persistence-47WU5EKZ.js +2 -0
  284. package/dist/cli/chunks/{standalone-memory-E6JBMOIL.js → standalone-memory-DDNXCSBD.js} +2 -2
  285. package/dist/cli/chunks/{status-handler-AFTCIYIX.js → status-handler-2HK7XPEK.js} +2 -2
  286. package/dist/cli/chunks/{structural-health-2FROCEI4.js → structural-health-DSJVLEPV.js} +2 -2
  287. package/dist/cli/chunks/{sync-VAYTOWDC.js → sync-3MUV6S5E.js} +2 -2
  288. package/dist/cli/chunks/{sync-YIQYOFGW.js → sync-NTUR53PI.js} +2 -2
  289. package/dist/cli/chunks/{task-handler-KVQHDEX3.js → task-handler-74MZN2EO.js} +2 -2
  290. package/dist/cli/chunks/{task-handlers-MVVECQA6.js → task-handlers-VJR6EHRZ.js} +3 -3
  291. package/dist/cli/chunks/{test-5JSVTOMY.js → test-O6FK3FVF.js} +4 -4
  292. package/dist/cli/chunks/test-runner-process-2NPW3UDQ.js +2 -0
  293. package/dist/cli/chunks/{test-scheduling-HBOHVLI3.js → test-scheduling-Q6QEEOS6.js} +3 -3
  294. package/dist/cli/chunks/{token-bootstrap-5VEPTPFA.js → token-bootstrap-TTRCECLP.js} +2 -2
  295. package/dist/cli/chunks/{token-usage-TBJHDLY6.js → token-usage-YEEFWSSI.js} +2 -2
  296. package/dist/cli/chunks/{transformers-VAWYMHMZ.js → transformers-BZCHJJJT.js} +2 -2
  297. package/dist/cli/chunks/tree-sitter-wasm-parser-RZAND65G.js +2 -0
  298. package/dist/cli/chunks/{types-R5SDZU2E.js → types-4AOKZYOX.js} +2 -2
  299. package/dist/cli/chunks/unified-memory-FZ5K2C7W.js +2 -0
  300. package/dist/cli/chunks/unified-memory-hnsw-VREWX56M.js +2 -0
  301. package/dist/cli/chunks/unified-persistence-YZGMKX6B.js +2 -0
  302. package/dist/cli/chunks/{upgrade-K5PIHXRB.js → upgrade-2MWW6BT2.js} +2 -2
  303. package/dist/cli/chunks/{validate-RPTS7RYJ.js → validate-PAEV3GT5.js} +2 -2
  304. package/dist/cli/chunks/{validate-swarm-B2ZL556X.js → validate-swarm-ZIXACK5K.js} +2 -2
  305. package/dist/cli/chunks/visual-security-GXGSFBVA.js +2 -0
  306. package/dist/cli/chunks/{web-tree-sitter-K4DUJC32.js → web-tree-sitter-VLTXZFAB.js} +2 -2
  307. package/dist/cli/chunks/{windsurf-installer-OK2AJN35.js → windsurf-installer-VELMLOZF.js} +2 -2
  308. package/dist/cli/chunks/witness-chain-MRJKVCOW.js +2 -0
  309. package/dist/cli/chunks/witness-chain-WWHJKITG.js +2 -0
  310. package/dist/cli/chunks/{witness-chain-repair-L6Y5RFXR.js → witness-chain-repair-5SAXPETG.js} +2 -2
  311. package/dist/cli/chunks/{witness-chain-verifier-N4CW7FZX.js → witness-chain-verifier-MIDWD4JS.js} +2 -2
  312. package/dist/cli/chunks/{witness-key-manager-TDNPS3WD.js → witness-key-manager-OSVCWOB2.js} +2 -2
  313. package/dist/cli/chunks/{workflow-XRZA3YCY.js → workflow-MK7A7QCX.js} +4 -4
  314. package/dist/cli/chunks/workflow-orchestrator-SG7DV72E.js +2 -0
  315. package/dist/cli/chunks/{wrappers-5JIFWKN6.js → wrappers-5QFMCKXL.js} +2 -2
  316. package/dist/cli/commands/coverage.js +6 -0
  317. package/dist/cli/commands/learning-prune.d.ts +14 -0
  318. package/dist/cli/commands/learning-prune.js +105 -0
  319. package/dist/cli/commands/learning.js +9 -0
  320. package/dist/cli/handlers/brain-handler.js +12 -1
  321. package/dist/cli/utils/coverage-verdict.js +14 -3
  322. package/dist/context/compaction/index.d.ts +7 -0
  323. package/dist/context/compaction/index.js +30 -6
  324. package/dist/coordination/handlers/coverage-evidence.d.ts +19 -0
  325. package/dist/coordination/handlers/coverage-evidence.js +31 -2
  326. package/dist/coordination/handlers/coverage-handlers.js +5 -1
  327. package/dist/coordination/handlers/coverage-target.js +8 -1
  328. package/dist/coordination/handlers/quality-handlers.js +9 -1
  329. package/dist/coordination/result-saver-adapters.js +1 -0
  330. package/dist/coordination/result-saver.js +9 -5
  331. package/dist/domains/chaos-resilience/services/chaos-engineer.d.ts +1 -0
  332. package/dist/domains/chaos-resilience/services/chaos-engineer.js +23 -45
  333. package/dist/domains/coverage-analysis/collected-metrics.d.ts +22 -6
  334. package/dist/domains/coverage-analysis/collected-metrics.js +37 -12
  335. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +2 -0
  336. package/dist/domains/defect-intelligence/services/defect-predictor.js +3 -6
  337. package/dist/domains/quality-assessment/coverage-report-event.d.ts +8 -0
  338. package/dist/domains/quality-assessment/coverage-report-event.js +22 -1
  339. package/dist/domains/quality-assessment/interfaces.d.ts +6 -0
  340. package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +4 -0
  341. package/dist/domains/quality-assessment/services/quality-analyzer.js +63 -17
  342. package/dist/domains/test-execution/interfaces.d.ts +5 -0
  343. package/dist/domains/test-execution/services/test-executor.js +6 -0
  344. package/dist/init/init-wizard-hooks.d.ts +1 -1
  345. package/dist/init/init-wizard-hooks.js +7 -8
  346. package/dist/init/phases/07-hooks.js +90 -6
  347. package/dist/init/phases/08-mcp.js +9 -0
  348. package/dist/init/settings-merge.d.ts +13 -0
  349. package/dist/init/settings-merge.js +49 -2
  350. package/dist/integrations/agent-booster-wasm/agent_booster_wasm.js +849 -0
  351. package/dist/integrations/agent-booster-wasm/agent_booster_wasm_bg.wasm +0 -0
  352. package/dist/integrations/agent-booster-wasm/index.d.ts +8 -0
  353. package/dist/integrations/agent-booster-wasm/index.js +25 -2
  354. package/dist/integrations/agent-booster-wasm/package.json +16 -0
  355. package/dist/integrations/ruvector/brain-rvf-exporter.d.ts +25 -0
  356. package/dist/integrations/ruvector/brain-rvf-exporter.js +154 -61
  357. package/dist/learning/dream/dream-engine.d.ts +27 -3
  358. package/dist/learning/dream/dream-engine.js +97 -28
  359. package/dist/learning/dream/dream-lock-retry.d.ts +38 -0
  360. package/dist/learning/dream/dream-lock-retry.js +66 -0
  361. package/dist/learning/dream/speculative-dreamer.js +1 -1
  362. package/dist/learning/learning-retention.d.ts +103 -0
  363. package/dist/learning/learning-retention.js +213 -0
  364. package/dist/mcp/bundle.js +501 -496
  365. package/dist/mcp/handlers/domain-handler-configs.d.ts +9 -1
  366. package/dist/mcp/handlers/domain-handler-configs.js +24 -14
  367. package/dist/mcp/protocol-server.js +1 -1
  368. package/dist/mcp/tools/chaos-resilience/inject.d.ts +3 -4
  369. package/dist/mcp/tools/chaos-resilience/inject.js +11 -81
  370. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -0
  371. package/dist/mcp/tools/learning-optimization/dream.js +4 -0
  372. package/package.json +4 -2
  373. package/dist/cli/chunks/adapter-KCQDVYY2.js +0 -2
  374. package/dist/cli/chunks/agent-booster-wasm-6RRQWMNE.js +0 -2
  375. package/dist/cli/chunks/aqe-learning-engine-SAQOHSGN.js +0 -2
  376. package/dist/cli/chunks/base-WCACU3FN.js +0 -2
  377. package/dist/cli/chunks/brain-handler-GTQNHHZS.js +0 -94
  378. package/dist/cli/chunks/browser-workflow-G6IASEAP.js +0 -2
  379. package/dist/cli/chunks/chunk-C6JTLKG7.js +0 -141
  380. package/dist/cli/chunks/chunk-K65CGKLD.js +0 -8
  381. package/dist/cli/chunks/chunk-MB46UBGY.js +0 -3
  382. package/dist/cli/chunks/chunk-N4CYAKOX.js +0 -79
  383. package/dist/cli/chunks/chunk-PT4FMJPQ.js +0 -3
  384. package/dist/cli/chunks/chunk-S5AZCIZS.js +0 -2
  385. package/dist/cli/chunks/chunk-UT2VZ33P.js +0 -2
  386. package/dist/cli/chunks/client-TV3V2YZ5.js +0 -2
  387. package/dist/cli/chunks/core-handlers-PZT4OLWR.js +0 -2
  388. package/dist/cli/chunks/coverage-NV3C4IMM.js +0 -50
  389. package/dist/cli/chunks/cross-domain-router-QOFCZ7G4.js +0 -2
  390. package/dist/cli/chunks/dream-TRFBGDSQ.js +0 -2
  391. package/dist/cli/chunks/file-discovery-WCKGMSPZ.js +0 -2
  392. package/dist/cli/chunks/heartbeat-scheduler-P44A2OX3.js +0 -2
  393. package/dist/cli/chunks/hnsw-adapter-ZJQIQJKC.js +0 -2
  394. package/dist/cli/chunks/hnsw-index-HMG2GH3Z.js +0 -2
  395. package/dist/cli/chunks/hybrid-backend-B7M74PZG.js +0 -2
  396. package/dist/cli/chunks/impact-analyzer-PZYOVKQO.js +0 -2
  397. package/dist/cli/chunks/init-wizard-TZDJQK3U.js +0 -2
  398. package/dist/cli/chunks/kernel-Y6RRIOKW.js +0 -2
  399. package/dist/cli/chunks/knowledge-graph-BVD5Z66M.js +0 -2
  400. package/dist/cli/chunks/learning-6KDH7FK4.js +0 -122
  401. package/dist/cli/chunks/llm-router-service-KHCAMSUU.js +0 -2
  402. package/dist/cli/chunks/load-test-RUF7DZA5.js +0 -2
  403. package/dist/cli/chunks/memory-backend-7ZLFOVGG.js +0 -2
  404. package/dist/cli/chunks/pattern-null-store-RY6CVYHP.js +0 -2
  405. package/dist/cli/chunks/project-root-IO5KRNGL.js +0 -2
  406. package/dist/cli/chunks/protocol-executor-U2CUDWDE.js +0 -2
  407. package/dist/cli/chunks/qe-reasoning-bank-DQSSX2IP.js +0 -2
  408. package/dist/cli/chunks/queen-coordinator-6FN4BZIX.js +0 -2
  409. package/dist/cli/chunks/router-YUO3I7RU.js +0 -2
  410. package/dist/cli/chunks/routing-feedback-36SLQGJE.js +0 -2
  411. package/dist/cli/chunks/rvf-dual-writer-FRYZH3WZ.js +0 -2
  412. package/dist/cli/chunks/rvf-migration-adapter-XXNITL5I.js +0 -2
  413. package/dist/cli/chunks/rvf-native-adapter-D2WWKJIV.js +0 -2
  414. package/dist/cli/chunks/safe-db-4RRIGRXD.js +0 -2
  415. package/dist/cli/chunks/schedule-25RTO4DQ.js +0 -2
  416. package/dist/cli/chunks/scheduler-BPIOJZ5P.js +0 -2
  417. package/dist/cli/chunks/sqlite-persistence-EDF47DDX.js +0 -2
  418. package/dist/cli/chunks/test-runner-process-LEPF2OSS.js +0 -2
  419. package/dist/cli/chunks/tree-sitter-wasm-parser-TSZTCMFV.js +0 -2
  420. package/dist/cli/chunks/unified-memory-TLGSSLMI.js +0 -2
  421. package/dist/cli/chunks/unified-memory-hnsw-MSUR7ZOO.js +0 -2
  422. package/dist/cli/chunks/unified-persistence-VFFOTWK7.js +0 -2
  423. package/dist/cli/chunks/visual-security-6Q44XNLB.js +0 -2
  424. package/dist/cli/chunks/witness-chain-KDOMXDQX.js +0 -2
  425. package/dist/cli/chunks/witness-chain-N3OY2RMH.js +0 -2
  426. package/dist/cli/chunks/workflow-orchestrator-CVNNT2RJ.js +0 -2
@@ -41,6 +41,14 @@ export interface TransformOptions {
41
41
  maxChunks?: number;
42
42
  allowFallback?: boolean;
43
43
  }
44
+ /**
45
+ * Locate the wasm-bindgen glue (#1241). A relative require resolved against
46
+ * the bundle's directory (dist/mcp/ or dist/cli/chunks/), where the glue does
47
+ * not exist, so WASM never loaded from the published package. Look next to
48
+ * this module first (unbundled src/ or dist/), then in the copy the build
49
+ * places under dist/integrations/agent-booster-wasm/ in the package root.
50
+ */
51
+ export declare function resolveWasmGlue(metaUrl?: string): string | null;
44
52
  /**
45
53
  * Map file extension to Language enum
46
54
  */
@@ -8,7 +8,11 @@
8
8
  * Accuracy: 81% (13/16 test cases)
9
9
  */
10
10
  import { createRequire } from 'module';
11
+ import { existsSync } from 'fs';
12
+ import { dirname, join } from 'path';
13
+ import { fileURLToPath } from 'url';
11
14
  import { LoggerFactory } from '../../logging/index.js';
15
+ import { findPackageRoot } from '../../init/find-package-root.js';
12
16
  const logger = LoggerFactory.create('agent-booster-wasm');
13
17
  // Language constants (const object instead of enum for ESM compatibility)
14
18
  // This pattern works consistently across tsx dev mode, node, and bundled builds
@@ -45,6 +49,21 @@ const LanguageNames = {
45
49
  let wasmModule = null;
46
50
  let wasmBooster = null;
47
51
  let loadError = null;
52
+ const GLUE_FILE = 'agent_booster_wasm.js';
53
+ /**
54
+ * Locate the wasm-bindgen glue (#1241). A relative require resolved against
55
+ * the bundle's directory (dist/mcp/ or dist/cli/chunks/), where the glue does
56
+ * not exist, so WASM never loaded from the published package. Look next to
57
+ * this module first (unbundled src/ or dist/), then in the copy the build
58
+ * places under dist/integrations/agent-booster-wasm/ in the package root.
59
+ */
60
+ export function resolveWasmGlue(metaUrl = import.meta.url) {
61
+ const candidates = [join(dirname(fileURLToPath(metaUrl)), GLUE_FILE)];
62
+ const root = findPackageRoot(metaUrl);
63
+ if (root)
64
+ candidates.push(join(root, 'dist', 'integrations', 'agent-booster-wasm', GLUE_FILE));
65
+ return candidates.find((p) => existsSync(p)) ?? null;
66
+ }
48
67
  /**
49
68
  * Load the WASM module
50
69
  */
@@ -54,9 +73,13 @@ async function loadWasm() {
54
73
  if (loadError)
55
74
  return false;
56
75
  try {
57
- // Use createRequire for ESM compatibility
76
+ const gluePath = resolveWasmGlue();
77
+ if (!gluePath) {
78
+ throw new Error(`${GLUE_FILE} not found next to the module or under dist/integrations/agent-booster-wasm/`);
79
+ }
80
+ // The glue is CommonJS (it reads the .wasm via __dirname), so load it with require.
58
81
  const require = createRequire(import.meta.url);
59
- wasmModule = require('./agent_booster_wasm.js');
82
+ wasmModule = require(gluePath);
60
83
  if (!wasmModule) {
61
84
  throw new Error('WASM module loaded but is null');
62
85
  }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "agent-booster-wasm",
3
+ "collaborators": [
4
+ "Agent Booster Team"
5
+ ],
6
+ "description": "WebAssembly bindings for agent-booster",
7
+ "version": "0.1.0",
8
+ "license": "MIT",
9
+ "files": [
10
+ "agent_booster_wasm_bg.wasm",
11
+ "agent_booster_wasm.js",
12
+ "agent_booster_wasm.d.ts"
13
+ ],
14
+ "main": "agent_booster_wasm.js",
15
+ "types": "agent_booster_wasm.d.ts"
16
+ }
@@ -19,6 +19,8 @@ export interface RvfBrainManifest {
19
19
  readonly totalRecords?: number;
20
20
  /** Per-table row counts used by the recovery-mirror richness guard. */
21
21
  readonly tableCounts?: Readonly<Record<string, number>>;
22
+ /** Regenerable cache rows left out of the kernel, per table (#1238). */
23
+ readonly skippedCacheRows?: Readonly<Record<string, number>>;
22
24
  };
23
25
  readonly domains: readonly string[];
24
26
  readonly checksum: string;
@@ -48,6 +50,8 @@ export interface RvfBrainExportOptions {
48
50
  readonly signerKeyId?: string;
49
51
  /** Explicit operator acknowledgement that a richer existing mirror may be replaced. */
50
52
  readonly allowOverwriteRicher?: boolean;
53
+ /** Kernel size ceiling in bytes. Defaults to RVF_MAX_KERNEL_BYTES; lowered only by tests. */
54
+ readonly maxKernelBytes?: number;
51
55
  }
52
56
  export interface RvfBrainImportOptions {
53
57
  readonly mergeStrategy: MergeStrategy;
@@ -59,6 +63,27 @@ export interface RvfBrainImportResult {
59
63
  readonly conflicts: number;
60
64
  readonly embeddingsRestored: number;
61
65
  }
66
+ /**
67
+ * Largest kernel image @ruvector/rvf-node accepts. One byte more and
68
+ * `embedKernel` fails with a misleading `RVF error 0x0303: FsyncFailed`
69
+ * (#1238; measured 134,217,728 B ok, 134,217,729 B fails).
70
+ */
71
+ export declare const RVF_MAX_KERNEL_BYTES: number;
72
+ /**
73
+ * Vector ids written by the code-intelligence domain (KG nodes, semantic code
74
+ * index, C4 diagrams). They are derived from source code and rebuilt by
75
+ * `aqe code index`, so they stay out of the brain kernel (#1238).
76
+ */
77
+ export declare const CODE_INDEX_VECTOR_ID_PREFIX = "code-intelligence:";
78
+ /** Thrown before any native call when the kernel would exceed the RVF limit. */
79
+ export declare class RvfKernelTooLargeError extends Error {
80
+ readonly kernelBytes: number;
81
+ readonly limitBytes: number;
82
+ readonly tableBytes: Readonly<Record<string, number>>;
83
+ readonly complete: boolean;
84
+ readonly code = "RVF_KERNEL_TOO_LARGE";
85
+ constructor(kernelBytes: number, limitBytes: number, tableBytes: Readonly<Record<string, number>>, complete: boolean);
86
+ }
62
87
  /** Export brain state to a single `.rvf` file with vector embeddings + kernel. */
63
88
  export declare function exportBrainToRvf(db: Database.Database, options: RvfBrainExportOptions, sourceDbLabel?: string): RvfBrainManifest;
64
89
  /** Import brain state from a `.rvf` file into a SQLite database. */
@@ -9,6 +9,54 @@ import { createRvfStore, openRvfStore, openRvfStoreReadonly, isRvfNativeAvailabl
9
9
  import { sha256, tableExists, queryAll, domainFilterForColumn, runImportTransaction, mergeGenericRow, remapPatternReferences, mergeAppendOnlyRow, TABLE_CONFIGS, TABLE_BLOB_COLUMNS, PK_COLUMNS, CONFIDENCE_COLUMNS, TIMESTAMP_COLUMNS, serializeRowBlobs, deserializeRowBlobs, } from './brain-shared.js';
10
10
  import { appendBrainImportWitness } from './brain-import-audit.js';
11
11
  // --- Export ---
12
+ /**
13
+ * Largest kernel image @ruvector/rvf-node accepts. One byte more and
14
+ * `embedKernel` fails with a misleading `RVF error 0x0303: FsyncFailed`
15
+ * (#1238; measured 134,217,728 B ok, 134,217,729 B fails).
16
+ */
17
+ export const RVF_MAX_KERNEL_BYTES = 128 * 1024 * 1024;
18
+ /**
19
+ * Vector ids written by the code-intelligence domain (KG nodes, semantic code
20
+ * index, C4 diagrams). They are derived from source code and rebuilt by
21
+ * `aqe code index`, so they stay out of the brain kernel (#1238).
22
+ */
23
+ export const CODE_INDEX_VECTOR_ID_PREFIX = 'code-intelligence:';
24
+ const CODE_INDEX_VECTOR_MATCH = `substr(id, 1, ${CODE_INDEX_VECTOR_ID_PREFIX.length}) = ?`;
25
+ function isCodeIndexVectorRow(tableName, row) {
26
+ if (tableName !== 'vectors')
27
+ return false;
28
+ const id = row.id;
29
+ return typeof id === 'string' && id.startsWith(CODE_INDEX_VECTOR_ID_PREFIX);
30
+ }
31
+ /** Thrown before any native call when the kernel would exceed the RVF limit. */
32
+ export class RvfKernelTooLargeError extends Error {
33
+ kernelBytes;
34
+ limitBytes;
35
+ tableBytes;
36
+ complete;
37
+ code = 'RVF_KERNEL_TOO_LARGE';
38
+ constructor(kernelBytes, limitBytes, tableBytes, complete) {
39
+ const largest = Object.entries(tableBytes)
40
+ .filter(([, bytes]) => bytes >= 1024 * 1024)
41
+ .sort((a, b) => b[1] - a[1])
42
+ .slice(0, 3)
43
+ .map(([table, bytes]) => `${table} ${formatMb(bytes)}`)
44
+ .join(', ');
45
+ super(`RVF_KERNEL_TOO_LARGE: the brain kernel needs ${complete ? '' : 'at least '}` +
46
+ `${formatMb(kernelBytes)}, over the ${formatMb(limitBytes)} limit of the native RVF writer.` +
47
+ (largest ? ` Largest tables: ${largest}.` : '') +
48
+ ' Nothing was written. ' +
49
+ `Use --format jsonl (no size limit), or reduce the largest learning tables first.`);
50
+ this.kernelBytes = kernelBytes;
51
+ this.limitBytes = limitBytes;
52
+ this.tableBytes = tableBytes;
53
+ this.complete = complete;
54
+ this.name = 'RvfKernelTooLargeError';
55
+ }
56
+ }
57
+ function formatMb(bytes) {
58
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
59
+ }
12
60
  /**
13
61
  * Sidecar suffixes that make up a complete store on disk. `''` is the store
14
62
  * itself; the adapter writes `.idmap.json` on close, and we write the manifest.
@@ -98,52 +146,93 @@ export function exportBrainToRvf(db, options, sourceDbLabel = 'memory.db') {
98
146
  const tmpPath = `${outPath}.tmp.${process.pid}`;
99
147
  sweepStaleTmpFiles(outPath);
100
148
  removeStoreFiles(tmpPath);
101
- // Create RVF container via adapter (handles idmap automatically)
102
- const rvf = createRvfStore(tmpPath, dimension);
103
- let closed = false;
104
- try {
105
- // --- Export all tables using TABLE_CONFIGS ---
106
- const allTableData = {};
107
- const domainSet = new Set();
108
- let totalRecords = 0;
109
- for (const config of TABLE_CONFIGS) {
110
- const [where, params] = config.domainColumn
111
- ? domainFilterForColumn(options.domains, config.domainColumn)
112
- : [undefined, []];
113
- let rows = queryAll(db, config.tableName, where, params);
114
- if (options.domains && options.domains.length > 0) {
115
- const manifestIds = new Set((allTableData.learning_evidence_manifests ?? []).map(row => row.id));
116
- const patternIds = new Set((allTableData.qe_patterns ?? []).map(row => row.id));
117
- if (['learning_evidence_segments', 'learning_segment_edges', 'learning_evidence_admissions'].includes(config.tableName)) {
118
- rows = rows.filter(row => manifestIds.has(row.manifest_id));
119
- }
120
- else if (config.tableName === 'pattern_manifest_lineage') {
121
- rows = rows.filter(row => {
122
- const lineage = row;
123
- return manifestIds.has(lineage.manifest_id) && patternIds.has(lineage.pattern_id);
124
- });
125
- }
126
- else if (config.tableName === 'pattern_segment_lineage') {
127
- rows = rows.filter(row => {
128
- const lineage = row;
129
- return manifestIds.has(lineage.manifest_id) && patternIds.has(lineage.pattern_id);
130
- });
131
- }
149
+ // --- Serialize all tables using TABLE_CONFIGS, before any native call ---
150
+ // Issue #1238: the native writer has a hard kernel ceiling, so each table is
151
+ // serialized once and measured as it goes. An oversized brain fails here,
152
+ // without creating a store or spending time on the rest of the tables.
153
+ const maxKernelBytes = options.maxKernelBytes ?? RVF_MAX_KERNEL_BYTES;
154
+ const allTableData = {};
155
+ const tableJson = [];
156
+ const tableBytes = {};
157
+ const tableCounts = {};
158
+ const skippedCacheRows = {};
159
+ const domainSet = new Set();
160
+ let totalRecords = 0;
161
+ let kernelBytes = 0;
162
+ for (const config of TABLE_CONFIGS) {
163
+ let [where, params] = config.domainColumn
164
+ ? domainFilterForColumn(options.domains, config.domainColumn)
165
+ : [undefined, []];
166
+ if (config.tableName === 'vectors' && tableExists(db, 'vectors')) {
167
+ const { n } = db.prepare(`SELECT COUNT(*) AS n FROM vectors WHERE ${CODE_INDEX_VECTOR_MATCH}`).get(CODE_INDEX_VECTOR_ID_PREFIX);
168
+ if (n > 0)
169
+ skippedCacheRows.vectors = n;
170
+ where = `(id IS NULL OR NOT ${CODE_INDEX_VECTOR_MATCH})`;
171
+ params = [CODE_INDEX_VECTOR_ID_PREFIX];
172
+ }
173
+ let rows = queryAll(db, config.tableName, where, params);
174
+ if (options.domains && options.domains.length > 0) {
175
+ const manifestIds = new Set((allTableData.learning_evidence_manifests ?? []).map(row => row.id));
176
+ const patternIds = new Set((allTableData.qe_patterns ?? []).map(row => row.id));
177
+ if (['learning_evidence_segments', 'learning_segment_edges', 'learning_evidence_admissions'].includes(config.tableName)) {
178
+ rows = rows.filter(row => manifestIds.has(row.manifest_id));
132
179
  }
133
- if (config.tableName === 'qe_patterns') {
134
- for (const p of rows) {
135
- if (p.qe_domain)
136
- domainSet.add(p.qe_domain);
137
- }
180
+ else if (config.tableName === 'pattern_manifest_lineage') {
181
+ rows = rows.filter(row => {
182
+ const lineage = row;
183
+ return manifestIds.has(lineage.manifest_id) && patternIds.has(lineage.pattern_id);
184
+ });
185
+ }
186
+ else if (config.tableName === 'pattern_segment_lineage') {
187
+ rows = rows.filter(row => {
188
+ const lineage = row;
189
+ return manifestIds.has(lineage.manifest_id) && patternIds.has(lineage.pattern_id);
190
+ });
138
191
  }
139
- // Serialize BLOBs to Base64 for JSON storage
140
- const blobCols = TABLE_BLOB_COLUMNS[config.tableName];
141
- if (blobCols && blobCols.length > 0) {
142
- rows = rows.map(r => serializeRowBlobs(r, blobCols));
192
+ }
193
+ if (config.tableName === 'qe_patterns') {
194
+ for (const p of rows) {
195
+ if (p.qe_domain)
196
+ domainSet.add(p.qe_domain);
143
197
  }
198
+ }
199
+ // Serialize BLOBs to Base64 for JSON storage
200
+ const blobCols = TABLE_BLOB_COLUMNS[config.tableName];
201
+ if (blobCols && blobCols.length > 0) {
202
+ rows = rows.map(r => serializeRowBlobs(r, blobCols));
203
+ }
204
+ // Only these two tables are read back (domain-filtered lineage above).
205
+ if (config.tableName === 'qe_patterns' || config.tableName === 'learning_evidence_manifests') {
144
206
  allTableData[config.tableName] = rows;
145
- totalRecords += rows.length;
146
207
  }
208
+ tableCounts[config.tableName] = rows.length;
209
+ totalRecords += rows.length;
210
+ const json = JSON.stringify(rows);
211
+ tableJson.push([config.tableName, json]);
212
+ tableBytes[config.tableName] = Buffer.byteLength(json);
213
+ kernelBytes += tableBytes[config.tableName];
214
+ if (kernelBytes > maxKernelBytes) {
215
+ throw new RvfKernelTooLargeError(kernelBytes, maxKernelBytes, tableBytes, false);
216
+ }
217
+ }
218
+ // Same bytes JSON.stringify would produce for { version, format, exportedAt,
219
+ // sourceDb, domains, tables }, assembled from the per-table JSON above.
220
+ const exportedAt = new Date().toISOString();
221
+ const domains = [...domainSet].sort();
222
+ const brainJson = `{"version":"3.0","format":"rvf","exportedAt":${JSON.stringify(exportedAt)},` +
223
+ `"sourceDb":${JSON.stringify(sourceDbLabel)},"domains":${JSON.stringify(domains)},"tables":{` +
224
+ tableJson.map(([tableName, json]) => `${JSON.stringify(tableName)}:${json}`).join(',') +
225
+ '}}';
226
+ tableJson.length = 0;
227
+ const kernelBuffer = Buffer.from(brainJson);
228
+ if (kernelBuffer.length > maxKernelBytes) {
229
+ throw new RvfKernelTooLargeError(kernelBuffer.length, maxKernelBytes, tableBytes, true);
230
+ }
231
+ const checksum = sha256(brainJson);
232
+ // Create RVF container via adapter (handles idmap automatically)
233
+ const rvf = createRvfStore(tmpPath, dimension);
234
+ let closed = false;
235
+ try {
147
236
  // --- Ingest vector embeddings into HNSW ---
148
237
  let embeddingCount = 0;
149
238
  const embeddingEntries = [];
@@ -175,17 +264,6 @@ export function exportBrainToRvf(db, options, sourceDbLabel = 'memory.db') {
175
264
  embeddingCount = result.accepted;
176
265
  }
177
266
  // --- Embed full brain data as kernel ---
178
- const brainData = {
179
- version: '3.0',
180
- format: 'rvf',
181
- exportedAt: new Date().toISOString(),
182
- sourceDb: sourceDbLabel,
183
- domains: [...domainSet].sort(),
184
- tables: allTableData,
185
- };
186
- const brainJson = JSON.stringify(brainData);
187
- const checksum = sha256(brainJson);
188
- const kernelBuffer = Buffer.from(brainJson);
189
267
  rvf.embedKernel(kernelBuffer);
190
268
  // Optional Ed25519 signing
191
269
  const signature = options.sign ? rvf.sign(kernelBuffer) ?? undefined : undefined;
@@ -199,18 +277,19 @@ export function exportBrainToRvf(db, options, sourceDbLabel = 'memory.db') {
199
277
  const manifest = {
200
278
  version: '3.0',
201
279
  format: 'rvf',
202
- exportedAt: brainData.exportedAt,
280
+ exportedAt,
203
281
  sourceDb: sourceDbLabel,
204
282
  stats: {
205
- patternCount: (allTableData['qe_patterns'] || []).length,
283
+ patternCount: tableCounts['qe_patterns'] ?? 0,
206
284
  embeddingCount,
207
- qValueCount: (allTableData['rl_q_values'] || []).length,
208
- dreamInsightCount: (allTableData['dream_insights'] || []).length,
209
- witnessChainLength: (allTableData['witness_chain'] || []).length,
285
+ qValueCount: tableCounts['rl_q_values'] ?? 0,
286
+ dreamInsightCount: tableCounts['dream_insights'] ?? 0,
287
+ witnessChainLength: tableCounts['witness_chain'] ?? 0,
210
288
  totalRecords,
211
- tableCounts: Object.fromEntries(TABLE_CONFIGS.map(({ tableName }) => [tableName, allTableData[tableName]?.length ?? 0])),
289
+ tableCounts,
290
+ ...(Object.keys(skippedCacheRows).length > 0 ? { skippedCacheRows } : {}),
212
291
  },
213
- domains: brainData.domains,
292
+ domains,
214
293
  checksum,
215
294
  rvfStatus: {
216
295
  totalVectors: status.totalVectors,
@@ -243,7 +322,9 @@ export function exportBrainToRvf(db, options, sourceDbLabel = 'memory.db') {
243
322
  if (existsSync(outPath) && !options.allowOverwriteRicher) {
244
323
  let existing;
245
324
  try {
246
- existing = brainInfoFromRvf(outPath);
325
+ // Code-index vectors are no longer exported (#1238), so an older mirror
326
+ // that still holds them is compared on the rows both exports carry.
327
+ existing = readBrainInfo(outPath, true);
247
328
  }
248
329
  catch (error) {
249
330
  if (hasReadableBrainKernel(outPath) || !isKnownUnusableRvfError(error)) {
@@ -468,6 +549,13 @@ export function importBrainFromRvf(db, rvfPath, options) {
468
549
  // --- Info ---
469
550
  /** Read brain info from an RVF file without importing. */
470
551
  export function brainInfoFromRvf(rvfPath) {
552
+ return readBrainInfo(rvfPath, false);
553
+ }
554
+ /**
555
+ * `excludeCodeIndex` drops code-index vector rows from `tableCounts`, which
556
+ * makes them comparable with the counts of a current export.
557
+ */
558
+ function readBrainInfo(rvfPath, excludeCodeIndex) {
471
559
  if (!isRvfNativeAvailable()) {
472
560
  throw new Error('@ruvector/rvf-node is not available.');
473
561
  }
@@ -499,7 +587,12 @@ export function brainInfoFromRvf(rvfPath) {
499
587
  const tableCounts = t && typeof t === 'object' && !Array.isArray(t)
500
588
  ? Object.fromEntries(Object.entries(t)
501
589
  .filter((entry) => Array.isArray(entry[1]))
502
- .map(([tableName, rows]) => [tableName, rows.length]))
590
+ .map(([tableName, rows]) => [
591
+ tableName,
592
+ excludeCodeIndex
593
+ ? rows.filter(row => !isCodeIndexVectorRow(tableName, row)).length
594
+ : rows.length,
595
+ ]))
503
596
  : undefined;
504
597
  return {
505
598
  version: '3.0',
@@ -14,11 +14,18 @@
14
14
  *
15
15
  * @module learning/dream/dream-engine
16
16
  */
17
+ /**
18
+ * #1239: how long retention waits for a locked database. better-sqlite3 waits
19
+ * synchronously, and retention is optional (the next dream retries), so it
20
+ * gives up quickly instead of using the engine's 60 s commit wait.
21
+ */
22
+ export declare const RETENTION_BUSY_TIMEOUT_MS = 1000;
17
23
  import { type ActivationConfig } from './spreading-activation.js';
18
24
  import { type InsightConfig, type DreamInsight } from './insight-generator.js';
19
25
  import { type Branch, type ValidationResult, type ValidationThresholds } from './rvcow-branch-manager.js';
20
26
  import { type ComputedDream } from './dream-commit.js';
21
27
  import type { WitnessChain } from '../../audit/witness-chain.js';
28
+ import { type DreamRetentionReport } from '../learning-retention.js';
22
29
  import type { DreamCycle, PatternImportData, FailureImportData, SuccessImportData } from './types.js';
23
30
  /**
24
31
  * Complete DreamEngine configuration
@@ -66,6 +73,12 @@ export interface DreamCycleResult {
66
73
  patternsCreated: number;
67
74
  /** #1060: how long the single commit transaction held the write lock, in ms. */
68
75
  commitDurationMs?: number;
76
+ /**
77
+ * #1239: dream retention after the commit, with row counts. Off by default
78
+ * (AQE_DREAM_RETENTION); while off, the steps are a dry run showing what
79
+ * they would remove.
80
+ */
81
+ retention?: DreamRetentionReport;
69
82
  /**
70
83
  * #1060: the uncommitted results of a `dream(…, { commit: false })` run.
71
84
  * Pass the result to DreamEngine.commitDreamResult() to write them.
@@ -199,11 +212,22 @@ export declare class DreamEngine {
199
212
  * #1060: write the results of a `dream(…, { commit: false })` run, in the
200
213
  * same single transaction a normal dream uses. Returns the commit duration
201
214
  * in ms. Throws (and writes nothing) if the engine is closed or the write
202
- * fails.
215
+ * fails. #1253: async, because a locked database is retried without
216
+ * blocking the process.
217
+ */
218
+ commitDreamResult(result: DreamCycleResult): Promise<number>;
219
+ /**
220
+ * Commit a computed dream, then record it in the witness chain (#1060) and
221
+ * run the default retention steps (#1239).
203
222
  */
204
- commitDreamResult(result: DreamCycleResult): number;
205
- /** Commit a computed dream, then record it in the witness chain (#1060). */
206
223
  private commitComputed;
224
+ /**
225
+ * #1239: after a committed dream, drop failed cycles past their retention
226
+ * window and outcome concepts beyond the cap when AQE_DREAM_RETENTION=on;
227
+ * otherwise only count what that would remove. The dream is already
228
+ * committed, so a failure here (a locked database, say) is only logged.
229
+ */
230
+ private runDefaultRetention;
207
231
  /**
208
232
  * #1060: build a synchronous handler that stops a still-running dream and
209
233
  * records its cycle as 'interrupted'. It runs from close() and from a