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
@@ -1,5 +1,5 @@
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.15.13");process.exit(0)}
2
- import{S as v,b as g}from"./chunk-WOCGL4QP.js";import"./chunk-ZAKQLAHT.js";v();import{Command as p}from"commander";import n from"chalk";import{createRequire as m}from"node:module";import{platform as y,arch as b}from"node:os";var N=[{packageName:"better-sqlite3",role:"SQLite storage (required \u2014 memory.db, patterns, audit)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"web-tree-sitter",role:"Tree-sitter WASM parser runtime (required \u2014 code intelligence)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"hnswlib-node",role:"Canonical HNSW vector index (default since ADR-090)",fallback:"ProgressiveHnswBackend (JS) \u2014 correct but slower on large codebases",affectsFlags:["useNativeHNSW"],required:!1},{packageName:"@ruvector/rvf-node",role:"Persistent HNSW pattern store + RVF brain export format",fallback:"SQLite-backed HNSW + JSONL brain export",affectsFlags:["useRVFPatternStore"],required:!1},{packageName:"@ruvector/solver",role:"Async native weighted PageRank on the pattern citation graph",fallback:"TypeScript power iteration \u2014 O(iterations \xD7 (nodes + edges)); no hard size limit",affectsFlags:["useSublinearSolver"],required:!1,availability:"unpublished"},{packageName:"@ruvector/attention",role:"Flash Attention with SIMD acceleration",fallback:"Plain attention \u2014 2.5\u20137\xD7 slower on large sequences",affectsFlags:["useQEFlashAttention"],required:!1},{packageName:"@ruvector/gnn",role:"GraphMAE native acceleration",fallback:"TypeScript GraphMAE \u2014 correct but slower",affectsFlags:["useGraphMAEEmbeddings"],required:!1}];function E(){let e=m(import.meta.url);return o=>{try{return e(o),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a:new Error(String(a))}}}}function R(e,o){return e.map(a=>{let i=o(a.packageName);if(i.ok)return{...a,status:"loaded"};if(a.availability==="unpublished")return{...a,status:"unavailable",loadError:i.error.message};let s=S(i.error),t=a.required?"required-missing":"missing";return{...a,status:t,loadError:i.error.message}})}function S(e){return e.code==="MODULE_NOT_FOUND"}var k={RUVECTOR_USE_RVF_PATTERN_STORE:"useRVFPatternStore",RUVECTOR_USE_SUBLINEAR_SOLVER:"useSublinearSolver",RUVECTOR_USE_NATIVE_HNSW:"useNativeHNSW",RUVECTOR_USE_GNN_INDEX:"useQEGNNIndex",RUVECTOR_USE_FLASH_ATTENTION:"useQEFlashAttention",RUVECTOR_USE_GRAPH_MAE_EMBEDDINGS:"useGraphMAEEmbeddings"};function h(e){let o=[];for(let[a,i]of Object.entries(k)){let s=e[a];s!==void 0&&o.push({envVar:a,value:s,flagName:i})}return o}function q(e){let o=[],a=new Map(e.natives.map(r=>[r.packageName,r]));for(let r of e.natives)r.status==="required-missing"&&o.push({severity:"error",message:`Required dependency missing: ${r.packageName} \u2014 ${r.role}`,action:`npm install ${r.packageName}`});for(let r of e.natives)r.status==="missing"&&!r.required&&o.push({severity:"warn",message:`Optional native missing: ${r.packageName} \u2014 falls back to ${r.fallback}`,action:`npm install ${r.packageName}`});for(let r of e.natives)r.status==="unavailable"&&o.push({severity:"info",message:`Optional native unavailable on npm: ${r.packageName} \u2014 using ${r.fallback}. No install action is currently available.`});let i={...e.flags};for(let r of e.envOverrides){let d=e.natives.filter(u=>u.affectsFlags.includes(r.flagName)),l=d.some(u=>u.status==="loaded"),c=d.find(u=>u.status==="missing");if((r.value==="true"||r.value==="1")&&d.length>0&&!l){let u=d.map(f=>f.packageName).join(", ");o.push({severity:"warn",message:`${r.envVar}=${r.value} requests flag ${r.flagName}=true, but required native(s) not loaded: ${u}. The flag will silently fall back.`,action:c?`npm install ${c.packageName}`:void 0})}}let s=e.natives.filter(r=>!r.required&&r.status==="missing"),t=e.natives.filter(r=>!r.required&&r.status==="unavailable");return s.length===0&&t.length===0&&e.natives.every(r=>r.status!=="required-missing")&&o.push({severity:"info",message:"All recommended native bindings are loaded \u2014 no action required."}),o}function O(e){let o=R(N,e.probe),a=h(e.env),i=q({natives:o,flags:e.flags,envOverrides:a}),s=o.filter(l=>!l.required&&l.status==="loaded").length,t=o.filter(l=>!l.required&&l.status==="missing").length,r=o.filter(l=>!l.required&&l.status==="unavailable").length,d=o.filter(l=>l.required).every(l=>l.status==="loaded");return{aqeVersion:e.aqeVersion,platform:{os:y(),arch:b(),node:process.version},natives:o,flags:e.flags,envOverrides:a,recommendations:i,summary:{requiredOk:d,optionalMissingCount:t,optionalLoadedCount:s,optionalUnavailableCount:r}}}function $(e,o){return e.summary.requiredOk?o&&e.summary.optionalMissingCount>0?1:0:2}function A(e){let o=[],a=(t="")=>o.push(t);a(""),a(n.bold.blue(" aqe upgrade \u2014 native binding report")),a(n.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),a(""),a(` AQE: ${n.cyan(e.aqeVersion)}`),a(` Platform: ${n.cyan(`${e.platform.os} ${e.platform.arch}`)}`),a(` Node: ${n.cyan(e.platform.node)}`),a(""),a(n.blue(" Native bindings:"));for(let t of e.natives){let r=F(t.status);a(` ${r} ${n.bold(t.packageName.padEnd(28))} ${n.gray(t.role)}`),t.status!=="loaded"&&t.loadError&&a(` ${n.gray(t.loadError.split(`
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.15.15");process.exit(0)}
2
+ import{S as v,b as g}from"./chunk-6YVMX2TC.js";import"./chunk-XH4JMX5O.js";v();import{Command as p}from"commander";import n from"chalk";import{createRequire as m}from"node:module";import{platform as y,arch as b}from"node:os";var N=[{packageName:"better-sqlite3",role:"SQLite storage (required \u2014 memory.db, patterns, audit)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"web-tree-sitter",role:"Tree-sitter WASM parser runtime (required \u2014 code intelligence)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"hnswlib-node",role:"Canonical HNSW vector index (default since ADR-090)",fallback:"ProgressiveHnswBackend (JS) \u2014 correct but slower on large codebases",affectsFlags:["useNativeHNSW"],required:!1},{packageName:"@ruvector/rvf-node",role:"Persistent HNSW pattern store + RVF brain export format",fallback:"SQLite-backed HNSW + JSONL brain export",affectsFlags:["useRVFPatternStore"],required:!1},{packageName:"@ruvector/solver",role:"Async native weighted PageRank on the pattern citation graph",fallback:"TypeScript power iteration \u2014 O(iterations \xD7 (nodes + edges)); no hard size limit",affectsFlags:["useSublinearSolver"],required:!1,availability:"unpublished"},{packageName:"@ruvector/attention",role:"Flash Attention with SIMD acceleration",fallback:"Plain attention \u2014 2.5\u20137\xD7 slower on large sequences",affectsFlags:["useQEFlashAttention"],required:!1},{packageName:"@ruvector/gnn",role:"GraphMAE native acceleration",fallback:"TypeScript GraphMAE \u2014 correct but slower",affectsFlags:["useGraphMAEEmbeddings"],required:!1}];function E(){let e=m(import.meta.url);return o=>{try{return e(o),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a:new Error(String(a))}}}}function R(e,o){return e.map(a=>{let i=o(a.packageName);if(i.ok)return{...a,status:"loaded"};if(a.availability==="unpublished")return{...a,status:"unavailable",loadError:i.error.message};let s=S(i.error),t=a.required?"required-missing":"missing";return{...a,status:t,loadError:i.error.message}})}function S(e){return e.code==="MODULE_NOT_FOUND"}var k={RUVECTOR_USE_RVF_PATTERN_STORE:"useRVFPatternStore",RUVECTOR_USE_SUBLINEAR_SOLVER:"useSublinearSolver",RUVECTOR_USE_NATIVE_HNSW:"useNativeHNSW",RUVECTOR_USE_GNN_INDEX:"useQEGNNIndex",RUVECTOR_USE_FLASH_ATTENTION:"useQEFlashAttention",RUVECTOR_USE_GRAPH_MAE_EMBEDDINGS:"useGraphMAEEmbeddings"};function h(e){let o=[];for(let[a,i]of Object.entries(k)){let s=e[a];s!==void 0&&o.push({envVar:a,value:s,flagName:i})}return o}function q(e){let o=[],a=new Map(e.natives.map(r=>[r.packageName,r]));for(let r of e.natives)r.status==="required-missing"&&o.push({severity:"error",message:`Required dependency missing: ${r.packageName} \u2014 ${r.role}`,action:`npm install ${r.packageName}`});for(let r of e.natives)r.status==="missing"&&!r.required&&o.push({severity:"warn",message:`Optional native missing: ${r.packageName} \u2014 falls back to ${r.fallback}`,action:`npm install ${r.packageName}`});for(let r of e.natives)r.status==="unavailable"&&o.push({severity:"info",message:`Optional native unavailable on npm: ${r.packageName} \u2014 using ${r.fallback}. No install action is currently available.`});let i={...e.flags};for(let r of e.envOverrides){let d=e.natives.filter(u=>u.affectsFlags.includes(r.flagName)),l=d.some(u=>u.status==="loaded"),c=d.find(u=>u.status==="missing");if((r.value==="true"||r.value==="1")&&d.length>0&&!l){let u=d.map(f=>f.packageName).join(", ");o.push({severity:"warn",message:`${r.envVar}=${r.value} requests flag ${r.flagName}=true, but required native(s) not loaded: ${u}. The flag will silently fall back.`,action:c?`npm install ${c.packageName}`:void 0})}}let s=e.natives.filter(r=>!r.required&&r.status==="missing"),t=e.natives.filter(r=>!r.required&&r.status==="unavailable");return s.length===0&&t.length===0&&e.natives.every(r=>r.status!=="required-missing")&&o.push({severity:"info",message:"All recommended native bindings are loaded \u2014 no action required."}),o}function O(e){let o=R(N,e.probe),a=h(e.env),i=q({natives:o,flags:e.flags,envOverrides:a}),s=o.filter(l=>!l.required&&l.status==="loaded").length,t=o.filter(l=>!l.required&&l.status==="missing").length,r=o.filter(l=>!l.required&&l.status==="unavailable").length,d=o.filter(l=>l.required).every(l=>l.status==="loaded");return{aqeVersion:e.aqeVersion,platform:{os:y(),arch:b(),node:process.version},natives:o,flags:e.flags,envOverrides:a,recommendations:i,summary:{requiredOk:d,optionalMissingCount:t,optionalLoadedCount:s,optionalUnavailableCount:r}}}function $(e,o){return e.summary.requiredOk?o&&e.summary.optionalMissingCount>0?1:0:2}function A(e){let o=[],a=(t="")=>o.push(t);a(""),a(n.bold.blue(" aqe upgrade \u2014 native binding report")),a(n.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),a(""),a(` AQE: ${n.cyan(e.aqeVersion)}`),a(` Platform: ${n.cyan(`${e.platform.os} ${e.platform.arch}`)}`),a(` Node: ${n.cyan(e.platform.node)}`),a(""),a(n.blue(" Native bindings:"));for(let t of e.natives){let r=F(t.status);a(` ${r} ${n.bold(t.packageName.padEnd(28))} ${n.gray(t.role)}`),t.status!=="loaded"&&t.loadError&&a(` ${n.gray(t.loadError.split(`
3
3
  `)[0])}`)}a(""),a(n.blue(" Flag state (after env overrides):"));let i=Object.entries(e.flags);for(let[t,r]of i){let d=r?n.green("on "):n.yellow("off");a(` ${d} ${t}`)}if(e.envOverrides.length>0){a(""),a(n.blue(" Env overrides in effect:"));for(let t of e.envOverrides)a(` ${n.cyan(t.envVar)}=${n.cyan(t.value)} ${n.gray(`\u2192 ${t.flagName}`)}`)}if(a(""),a(n.blue(" Recommendations:")),e.recommendations.length===0)a(n.gray(" (none)"));else for(let t of e.recommendations){let r=C(t.severity);a(` ${r} ${t.message}`),t.action&&a(` ${n.gray("\u2192")} ${n.cyan(t.action)}`)}a("");let s=e.summary.requiredOk?n.green("OK"):n.red("FAIL");return a(` Summary: required ${s} optional loaded ${n.cyan(e.summary.optionalLoadedCount)} / ${n.cyan(e.summary.optionalLoadedCount+e.summary.optionalMissingCount+e.summary.optionalUnavailableCount)} (${n.cyan(e.summary.optionalUnavailableCount)} unavailable)`),a(""),o.join(`
4
4
  `)}function F(e){switch(e){case"loaded":return n.green("\u2713");case"missing":return n.yellow("\u2026");case"unavailable":return n.gray("\u2013");case"required-missing":return n.red("\u2717")}}function C(e){switch(e){case"info":return n.green("\u2713");case"warn":return n.yellow("!");case"error":return n.red("\u2717")}}function M(e){return new p("upgrade").description("Detect optional native bindings and recommend install / flag changes (read-only)").option("--json","Emit the report as JSON to stdout",!1).option("--strict","Exit non-zero if any recommended optional native is missing",!1).action(async a=>{let i=V(),s=g(),t=O({aqeVersion:i,probe:E(),env:process.env,flags:{useRVFPatternStore:s.useRVFPatternStore,useSublinearSolver:s.useSublinearSolver,useNativeHNSW:s.useNativeHNSW,useGraphMAEEmbeddings:s.useGraphMAEEmbeddings,useQEFlashAttention:s.useQEFlashAttention}});a.json?process.stdout.write(JSON.stringify(t,null,2)+`
5
5
  `):process.stdout.write(A(t)),await e($(t,a.strict===!0))})}function V(){try{return m(import.meta.url)("../../../package.json").version??"unknown"}catch{return"unknown"}}export{N as NATIVE_CATALOG,q as buildRecommendations,O as buildReport,E as createDefaultLoadProbe,M as createUpgradeCommand,R as detectNatives,$ as exitCodeFor,h as readEnvOverrides,A as renderReportHuman};
@@ -1,5 +1,5 @@
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.15.13");process.exit(0)}
2
- import{e as V}from"./chunk-VU5TBX2V.js";import"./chunk-ARJW4I2O.js";import{a as P}from"./chunk-CCMKSHAT.js";import"./chunk-5ZGM3RMH.js";import"./chunk-TCBBNUBP.js";import"./chunk-H4GG2NLO.js";import"./chunk-YSZ5OE3Z.js";import"./chunk-SSU73QAX.js";import"./chunk-QPNG5ZN2.js";import"./chunk-PHP5UBT4.js";import"./chunk-P7A4NKTZ.js";import"./chunk-3Y7TJFHU.js";import"./chunk-7CMTY45A.js";import{b as v,d as F}from"./chunk-VTOBUZL6.js";import"./chunk-KDNJ4F3P.js";import"./chunk-JRRXCODW.js";import"./chunk-XNBOGCF3.js";import"./chunk-KV4T4MXK.js";import"./chunk-TWDW32W2.js";import"./chunk-AQSVJNEH.js";import"./chunk-OCAEXYFA.js";import"./chunk-DVGRPK7A.js";import"./chunk-TOQWL2ZF.js";import"./chunk-UT2VZ33P.js";import"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-WOCGL4QP.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import"./chunk-DNDL7SOS.js";import"./chunk-3Y2ROSCL.js";import"./chunk-WO274FRI.js";import"./chunk-ZAKQLAHT.js";F();import{Command as M}from"commander";import{readFileSync as A,writeFileSync as S,existsSync as C,readdirSync as O,statSync as B}from"fs";import{join as b,resolve as j,basename as I}from"path";import e from"chalk";function R(i){let n=j(i);if(!C(n))throw new Error(`Input path not found: ${n}`);if(B(n).isDirectory()){let r=[],t=O(n).filter(o=>o.endsWith(".json")).map(o=>b(n,o));for(let o of t)try{let u=v(A(o,"utf-8"));if($(u))r.push(u);else if(Array.isArray(u))for(let d of u)$(d)&&r.push(d)}catch{console.warn(e.yellow(`Warning: Could not parse ${I(o)}`))}return r}else{let r=v(A(n,"utf-8"));if($(r))return[r];if(Array.isArray(r))return r.filter($);throw new Error("Invalid input format. Expected ParallelValidationRunResult or array of results.")}}function $(i){return typeof i=="object"&&i!==null&&"runId"in i&&"model"in i&&"outcomes"in i&&Array.isArray(i.outcomes)}function D(){return P({storeQEPattern:async()=>{},searchQEPatterns:async()=>({success:!0,value:[]}),addFact:async()=>({success:!0,value:void 0}),query:async()=>({success:!0,value:{results:[],confidence:0}}),getStats:()=>({totalPatterns:0,totalFacts:0,indexHealth:1,lastCompaction:new Date})})}function T(){let i=process.cwd(),n=[b(i,".claude/skills/trust-tier-manifest.json"),b(i,".claude/skills/skills-manifest.json")];for(let g of n)if(C(g))return g;return b(i,".claude/skills/trust-tier-manifest.json")}function L(i,n,g){let r=g.format||"markdown";if(r==="markdown"||r==="both"){let t=n.generateMarkdownReport(i);if(g.output){let o=r==="both"?g.output.replace(/\.\w+$/,".md"):g.output;S(o,t),console.log(e.green(`Markdown report written to: ${o}`))}else console.log(`
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.15.15");process.exit(0)}
2
+ import{e as V}from"./chunk-ZIPAB5J6.js";import"./chunk-PYPS65P7.js";import{a as P}from"./chunk-GQABPCQE.js";import"./chunk-J3FP5UGL.js";import"./chunk-UUBIQR6A.js";import"./chunk-TDQWTSBS.js";import"./chunk-2IIXCEMS.js";import"./chunk-O6EWL5DQ.js";import"./chunk-EKP2SC77.js";import"./chunk-BBRROA3Z.js";import"./chunk-LTQVUAPH.js";import"./chunk-T66PPF4D.js";import"./chunk-337Z52QM.js";import{b as v,d as F}from"./chunk-XWIAZG3C.js";import"./chunk-5G4UFTV4.js";import"./chunk-DEKR3CTS.js";import"./chunk-4X3SWKBA.js";import"./chunk-W62OOK7A.js";import"./chunk-GCHYOPRZ.js";import"./chunk-DKX4GNRU.js";import"./chunk-PXATBHWN.js";import"./chunk-5I7357KS.js";import"./chunk-G242G224.js";import"./chunk-3HVFIITW.js";import"./chunk-BQ47GQPK.js";import"./chunk-ZWBGYJ7K.js";import"./chunk-UJABDXST.js";import"./chunk-6YVMX2TC.js";import"./chunk-SZAZQZWI.js";import"./chunk-MPFPWJTH.js";import"./chunk-FOOW4JVS.js";import"./chunk-HL2ANKN3.js";import"./chunk-BZULJMGH.js";import"./chunk-XH4JMX5O.js";F();import{Command as M}from"commander";import{readFileSync as A,writeFileSync as S,existsSync as C,readdirSync as O,statSync as B}from"fs";import{join as b,resolve as j,basename as I}from"path";import e from"chalk";function R(i){let n=j(i);if(!C(n))throw new Error(`Input path not found: ${n}`);if(B(n).isDirectory()){let r=[],t=O(n).filter(o=>o.endsWith(".json")).map(o=>b(n,o));for(let o of t)try{let u=v(A(o,"utf-8"));if($(u))r.push(u);else if(Array.isArray(u))for(let d of u)$(d)&&r.push(d)}catch{console.warn(e.yellow(`Warning: Could not parse ${I(o)}`))}return r}else{let r=v(A(n,"utf-8"));if($(r))return[r];if(Array.isArray(r))return r.filter($);throw new Error("Invalid input format. Expected ParallelValidationRunResult or array of results.")}}function $(i){return typeof i=="object"&&i!==null&&"runId"in i&&"model"in i&&"outcomes"in i&&Array.isArray(i.outcomes)}function D(){return P({storeQEPattern:async()=>{},searchQEPatterns:async()=>({success:!0,value:[]}),addFact:async()=>({success:!0,value:void 0}),query:async()=>({success:!0,value:{results:[],confidence:0}}),getStats:()=>({totalPatterns:0,totalFacts:0,indexHealth:1,lastCompaction:new Date})})}function T(){let i=process.cwd(),n=[b(i,".claude/skills/trust-tier-manifest.json"),b(i,".claude/skills/skills-manifest.json")];for(let g of n)if(C(g))return g;return b(i,".claude/skills/trust-tier-manifest.json")}function L(i,n,g){let r=g.format||"markdown";if(r==="markdown"||r==="both"){let t=n.generateMarkdownReport(i);if(g.output){let o=r==="both"?g.output.replace(/\.\w+$/,".md"):g.output;S(o,t),console.log(e.green(`Markdown report written to: ${o}`))}else console.log(`
3
3
  `+t)}if(r==="json"||r==="both"){let t=n.generateJsonReport(i);if(g.output){let o=r==="both"?g.output.replace(/\.\w+$/,".json"):g.output;S(o,t),console.log(e.green(`JSON report written to: ${o}`))}else console.log(`
4
4
  `+t)}}function W(i,n,g){let r=new M("skill").description("Skill validation and reporting (ADR-056)");return r.command("report").description("Generate aggregated report from validation results").requiredOption("-i, --input <path>","Input file or directory containing validation results").option("-o, --output <path>","Output file path (default: stdout)").option("-f, --format <format>","Output format: markdown, json, or both","markdown").option("-b, --baseline <path>","Baseline directory for regression detection").option("--detect-regressions","Enable regression detection against historical data").option("--update-manifest","Update trust tier manifest with new pass rates").option("-t, --threshold <number>","Regression threshold (0-1)",parseFloat).option("-v, --verbose","Verbose output").action(async t=>{try{t.verbose&&(console.log(e.blue(`
5
5
  Validation Result Aggregator`)),console.log(e.gray(`ADR-056 Phase 5
@@ -1,5 +1,5 @@
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.15.13");process.exit(0)}
2
- import{a as i,b as k,c as d,d as p}from"./chunk-VU5TBX2V.js";import"./chunk-ARJW4I2O.js";import{a as v}from"./chunk-F3YS57NF.js";import{a as h}from"./chunk-CCMKSHAT.js";import"./chunk-CE7B5LU7.js";import"./chunk-5ZGM3RMH.js";import"./chunk-CT6SAVXQ.js";import"./chunk-UDQSYWVF.js";import"./chunk-YBQH2VOP.js";import"./chunk-TSQC2KKZ.js";import"./chunk-SYV2V3PL.js";import"./chunk-E7CLYGS7.js";import"./chunk-5VMAV6T6.js";import"./chunk-TCBBNUBP.js";import"./chunk-H4GG2NLO.js";import"./chunk-YSZ5OE3Z.js";import"./chunk-SSU73QAX.js";import"./chunk-QPNG5ZN2.js";import"./chunk-PHP5UBT4.js";import"./chunk-P7A4NKTZ.js";import"./chunk-VRVMIPTM.js";import"./chunk-4OVC4RIL.js";import"./chunk-UTRV7T2N.js";import"./chunk-3Y7TJFHU.js";import"./chunk-7CMTY45A.js";import"./chunk-VTOBUZL6.js";import"./chunk-KDNJ4F3P.js";import"./chunk-JRRXCODW.js";import"./chunk-XNBOGCF3.js";import"./chunk-KV4T4MXK.js";import"./chunk-TWDW32W2.js";import"./chunk-AQSVJNEH.js";import"./chunk-OCAEXYFA.js";import"./chunk-WKGTGOYS.js";import"./chunk-DVGRPK7A.js";import"./chunk-H4H2YSFH.js";import"./chunk-NURIILUB.js";import"./chunk-TOQWL2ZF.js";import"./chunk-UT2VZ33P.js";import"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-WOCGL4QP.js";import"./chunk-W2QWSQVE.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import"./chunk-IC3TQEOA.js";import"./chunk-HD7YIFOI.js";import"./chunk-DNDL7SOS.js";import"./chunk-3Y2ROSCL.js";import"./chunk-WO274FRI.js";import"./chunk-ZAKQLAHT.js";import{Command as x}from"commander";import o from"chalk";function j(e,t,n){let c=new x("validate").description("Validation commands for skills and agents");return c.command("swarm").description("Validate skills in parallel using Claude Flow swarms (ADR-056)").option("-s, --skills <skills>",'Comma-separated list of skills to validate, or "all" for P0 skills',"all").option("-m, --models <models>","Comma-separated list of models to validate against",p.join(",")).option("-t, --topology <topology>","Swarm topology: hierarchical or mesh","hierarchical").option("--max-concurrent <number>","Maximum concurrent skill validations",String(i.maxConcurrentSkills)).option("--max-models <number>","Maximum concurrent models per skill",String(i.maxConcurrentModels)).option("--timeout <ms>","Timeout per validation in milliseconds",String(i.timeout)).option("--no-retry","Disable retries on failure").option("-v, --verbose","Show detailed output").option("--json","Output results as JSON").action(async l=>{if(await n())try{console.log(o.blue(`
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.15.15");process.exit(0)}
2
+ import{a as i,b as k,c as d,d as p}from"./chunk-ZIPAB5J6.js";import"./chunk-PYPS65P7.js";import{a as v}from"./chunk-2LUTPMBO.js";import{a as h}from"./chunk-GQABPCQE.js";import"./chunk-RDMRY7CT.js";import"./chunk-J3FP5UGL.js";import"./chunk-W5ZJG2OU.js";import"./chunk-MIA447GY.js";import"./chunk-QRKTBSZT.js";import"./chunk-RBKUU7WF.js";import"./chunk-Q6I4SIUU.js";import"./chunk-KCQNFBBR.js";import"./chunk-ZYJB6FML.js";import"./chunk-UUBIQR6A.js";import"./chunk-TDQWTSBS.js";import"./chunk-2IIXCEMS.js";import"./chunk-O6EWL5DQ.js";import"./chunk-EKP2SC77.js";import"./chunk-BBRROA3Z.js";import"./chunk-LTQVUAPH.js";import"./chunk-YUS6TWAL.js";import"./chunk-AP2W7Z3A.js";import"./chunk-BP5T3OEV.js";import"./chunk-T66PPF4D.js";import"./chunk-337Z52QM.js";import"./chunk-XWIAZG3C.js";import"./chunk-5G4UFTV4.js";import"./chunk-DEKR3CTS.js";import"./chunk-4X3SWKBA.js";import"./chunk-W62OOK7A.js";import"./chunk-GCHYOPRZ.js";import"./chunk-DKX4GNRU.js";import"./chunk-PXATBHWN.js";import"./chunk-6NBRMD25.js";import"./chunk-5I7357KS.js";import"./chunk-QFGYH6HD.js";import"./chunk-LJMYRTJ7.js";import"./chunk-G242G224.js";import"./chunk-3HVFIITW.js";import"./chunk-BQ47GQPK.js";import"./chunk-ZWBGYJ7K.js";import"./chunk-UJABDXST.js";import"./chunk-6YVMX2TC.js";import"./chunk-DURD37JZ.js";import"./chunk-SZAZQZWI.js";import"./chunk-MPFPWJTH.js";import"./chunk-AOKKUB5F.js";import"./chunk-T4GE7MPI.js";import"./chunk-FOOW4JVS.js";import"./chunk-HL2ANKN3.js";import"./chunk-BZULJMGH.js";import"./chunk-XH4JMX5O.js";import{Command as x}from"commander";import o from"chalk";function j(e,t,n){let c=new x("validate").description("Validation commands for skills and agents");return c.command("swarm").description("Validate skills in parallel using Claude Flow swarms (ADR-056)").option("-s, --skills <skills>",'Comma-separated list of skills to validate, or "all" for P0 skills',"all").option("-m, --models <models>","Comma-separated list of models to validate against",p.join(",")).option("-t, --topology <topology>","Swarm topology: hierarchical or mesh","hierarchical").option("--max-concurrent <number>","Maximum concurrent skill validations",String(i.maxConcurrentSkills)).option("--max-models <number>","Maximum concurrent models per skill",String(i.maxConcurrentModels)).option("--timeout <ms>","Timeout per validation in milliseconds",String(i.timeout)).option("--no-retry","Disable retries on failure").option("-v, --verbose","Show detailed output").option("--json","Output results as JSON").action(async l=>{if(await n())try{console.log(o.blue(`
3
3
  Swarm Skill Validation
4
4
  `));let r=l.skills==="all"?[...d]:l.skills.split(",").map(y=>y.trim()),u=l.models.split(",").map(y=>y.trim()),g=P(l.topology),a={topology:g,maxConcurrentSkills:parseInt(l.maxConcurrent,10)||i.maxConcurrentSkills,maxConcurrentModels:parseInt(l.maxModels,10)||i.maxConcurrentModels,timeout:parseInt(l.timeout,10)||i.timeout,continueOnFailure:!0,retry:l.retry!==!1?i.retry:void 0};l.verbose&&(console.log(o.gray("Configuration:")),console.log(o.gray(` Topology: ${a.topology}`)),console.log(o.gray(` Skills: ${r.length}`)),console.log(o.gray(` Models: ${u.length}`)),console.log(o.gray(` Max Concurrent Skills: ${a.maxConcurrentSkills}`)),console.log(o.gray(` Max Concurrent Models: ${a.maxConcurrentModels}`)),console.log(o.gray(` Timeout: ${a.timeout}ms`)),console.log(o.gray(` Retry: ${a.retry?"enabled":"disabled"}`)),console.log("")),console.log(o.cyan(` Skills: ${r.join(", ")}`)),console.log(o.cyan(` Models: ${u.join(", ")}`)),console.log(o.cyan(` Topology: ${g}`)),console.log("");let m=await R(e),f=h(m),C=k(a,f),$=Date.now();console.log(o.yellow(` Starting parallel validation...
5
5
  `));let b=await C.validateSkillsParallel(r,u),s=C.getSummary(b),w=Date.now()-$;l.json?T(s):D(s,l.verbose),console.log(o.blue(`
@@ -0,0 +1,2 @@
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.15.15");process.exit(0)}
2
+ import{a}from"./chunk-FTRSS64D.js";import"./chunk-XIVVTYM2.js";import"./chunk-DUKE27HC.js";import"./chunk-6LE362LZ.js";import"./chunk-T66PPF4D.js";import"./chunk-337Z52QM.js";import"./chunk-XWIAZG3C.js";import"./chunk-5G4UFTV4.js";import"./chunk-DEKR3CTS.js";import"./chunk-4X3SWKBA.js";import"./chunk-W62OOK7A.js";import"./chunk-GCHYOPRZ.js";import"./chunk-DKX4GNRU.js";import"./chunk-PXATBHWN.js";import"./chunk-5I7357KS.js";import"./chunk-QFGYH6HD.js";import"./chunk-G242G224.js";import"./chunk-3HVFIITW.js";import"./chunk-BQ47GQPK.js";import"./chunk-ZWBGYJ7K.js";import"./chunk-UJABDXST.js";import"./chunk-6YVMX2TC.js";import"./chunk-SZAZQZWI.js";import"./chunk-MPFPWJTH.js";import"./chunk-FOOW4JVS.js";import"./chunk-HL2ANKN3.js";import"./chunk-BZULJMGH.js";import"./chunk-XH4JMX5O.js";export{a as VisualSecurityTool};
@@ -1,2 +1,2 @@
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.15.13");process.exit(0)}
2
- import"./chunk-ZAKQLAHT.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("web-tree-sitter"),i=e,{RuvectorLayer:n,TensorCompress:a,differentiableSearch:c,hierarchicalForward:s,getCompressionLevel:l,init:p,FlashAttention:m,DotProductAttention:u,MultiHeadAttention:d,HyperbolicAttention:A,LinearAttention:f,MoEAttention:h,SonaEngine:_,pipeline:b}=e||{};export{u as DotProductAttention,m as FlashAttention,A as HyperbolicAttention,f as LinearAttention,h as MoEAttention,d as MultiHeadAttention,n as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,l as getCompressionLevel,s as hierarchicalForward,p as init,b as pipeline};
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.15.15");process.exit(0)}
2
+ import"./chunk-XH4JMX5O.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("web-tree-sitter"),i=e,{RuvectorLayer:n,TensorCompress:a,differentiableSearch:c,hierarchicalForward:s,getCompressionLevel:l,init:p,FlashAttention:m,DotProductAttention:u,MultiHeadAttention:d,HyperbolicAttention:A,LinearAttention:f,MoEAttention:h,SonaEngine:_,pipeline:b}=e||{};export{u as DotProductAttention,m as FlashAttention,A as HyperbolicAttention,f as LinearAttention,h as MoEAttention,d as MultiHeadAttention,n as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,l as getCompressionLevel,s as hierarchicalForward,p as init,b as pipeline};
@@ -1,5 +1,5 @@
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.15.13");process.exit(0)}
2
- import{b as u}from"./chunk-FZ76G4QJ.js";import{a as f,e as d}from"./chunk-3Y2ROSCL.js";import"./chunk-ZAKQLAHT.js";d();import{existsSync as i,mkdirSync as h,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;options;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.options=e,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf",{memoryBackend:this.options.memoryBackend}),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||h(o,{recursive:!0}),i(r)&&this.overwrite){let m=this.mergeExistingConfig(r,t.content);a(r,m)}else a(r,t.content);e.mcpConfigured=!0}let s=this.generator.generateBehavioralRules("windsurf"),n=p(this.projectRoot,s.path);if(e.rulesPath=n,!i(n)||this.overwrite){if(i(n)&&this.overwrite){let o=this.mergeExistingRules(n,s.content);a(n,o)}else a(n,s.content);e.rulesInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Windsurf installation failed: ${f(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(g(e,"utf-8")),s=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,s.mcpServers),JSON.stringify(r,null,2)+`
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.15.15");process.exit(0)}
2
+ import{b as u}from"./chunk-JCQGJGGZ.js";import{a as f,e as d}from"./chunk-HL2ANKN3.js";import"./chunk-XH4JMX5O.js";d();import{existsSync as i,mkdirSync as h,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;options;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.options=e,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf",{memoryBackend:this.options.memoryBackend}),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||h(o,{recursive:!0}),i(r)&&this.overwrite){let m=this.mergeExistingConfig(r,t.content);a(r,m)}else a(r,t.content);e.mcpConfigured=!0}let s=this.generator.generateBehavioralRules("windsurf"),n=p(this.projectRoot,s.path);if(e.rulesPath=n,!i(n)||this.overwrite){if(i(n)&&this.overwrite){let o=this.mergeExistingRules(n,s.content);a(n,o)}else a(n,s.content);e.rulesInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Windsurf installation failed: ${f(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(g(e,"utf-8")),s=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,s.mcpServers),JSON.stringify(r,null,2)+`
3
3
  `}catch{return t}}mergeExistingRules(e,t){try{let r=g(e,"utf-8");return r.includes("Agentic QE")||r.includes("fleet_init")?r:r.trimEnd()+`
4
4
 
5
5
  ---
@@ -0,0 +1,2 @@
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.15.15");process.exit(0)}
2
+ import{a,b,c,d,e,f,g}from"./chunk-QRKTBSZT.js";import"./chunk-3HVFIITW.js";import"./chunk-BQ47GQPK.js";import"./chunk-ZWBGYJ7K.js";import"./chunk-UJABDXST.js";import"./chunk-6YVMX2TC.js";import"./chunk-XH4JMX5O.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
@@ -0,0 +1,2 @@
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.15.15");process.exit(0)}
2
+ import{a as h,b as i,c as j,d as k}from"./chunk-TODNOP7C.js";import"./chunk-2ZFLULL4.js";import{a,b,c,d,e,f,g}from"./chunk-ERN56H6S.js";import"./chunk-T66PPF4D.js";import"./chunk-337Z52QM.js";import"./chunk-XWIAZG3C.js";import"./chunk-5G4UFTV4.js";import"./chunk-DEKR3CTS.js";import"./chunk-4X3SWKBA.js";import"./chunk-W62OOK7A.js";import"./chunk-GCHYOPRZ.js";import"./chunk-DKX4GNRU.js";import"./chunk-PXATBHWN.js";import"./chunk-5I7357KS.js";import"./chunk-G242G224.js";import"./chunk-3HVFIITW.js";import"./chunk-BQ47GQPK.js";import"./chunk-ZWBGYJ7K.js";import"./chunk-UJABDXST.js";import"./chunk-6YVMX2TC.js";import"./chunk-SZAZQZWI.js";import"./chunk-MPFPWJTH.js";import"./chunk-FOOW4JVS.js";import"./chunk-HL2ANKN3.js";import"./chunk-BZULJMGH.js";import"./chunk-XH4JMX5O.js";export{g as CHAIN_REANCHOR_ACTION,a as GENESIS_PREV_HASH,h as WitnessChain,k as _resetWitnessChainForTests,j as createWitnessChain,i as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256,f as signaturePayload};
@@ -1,2 +1,2 @@
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.15.13");process.exit(0)}
2
- import{a as E}from"./chunk-TWJTK4CC.js";import"./chunk-GHM6MQNK.js";import{b as R,c as b,e as A,h as y,k as C}from"./chunk-XEAEYC6Y.js";import"./chunk-3Y7TJFHU.js";import"./chunk-7CMTY45A.js";import"./chunk-VTOBUZL6.js";import"./chunk-KDNJ4F3P.js";import"./chunk-JRRXCODW.js";import"./chunk-XNBOGCF3.js";import"./chunk-KV4T4MXK.js";import"./chunk-TWDW32W2.js";import"./chunk-AQSVJNEH.js";import"./chunk-OCAEXYFA.js";import"./chunk-DVGRPK7A.js";import"./chunk-TOQWL2ZF.js";import"./chunk-UT2VZ33P.js";import"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-WOCGL4QP.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import{d as g,e as _}from"./chunk-DNDL7SOS.js";import"./chunk-3Y2ROSCL.js";import"./chunk-WO274FRI.js";import"./chunk-ZAKQLAHT.js";_();import{existsSync as v}from"node:fs";import{basename as I}from"node:path";var w={includeArchive:!0};function l(e){let r=n=>C(e,n)?e.prepare(`SELECT COUNT(*) AS n FROM ${n}`).get().n:0;return{live:r("witness_chain"),archive:r("witness_chain_archive")}}function O(e){return{status:e.status,entriesChecked:e.entriesChecked,forks:e.forks.length,unacknowledgedForks:e.forks.length-e.acknowledgedForks.length,...e.tamperedAt!==void 0?{tamperedAt:e.tamperedAt}:{},...e.tamperReason?{tamperReason:e.tamperReason}:{}}}function $(e){return e.forkDetails.filter(r=>!r.acknowledged).map(({id:r,parentId:n,prevHash:s,actionHash:c})=>({id:r,parentId:n,prevHash:s,actionHash:c}))}function x(e,r){let n=new Set,s=e.prepare("SELECT prev_hash FROM witness_chain UNION ALL SELECT prev_hash FROM witness_chain_archive").pluck().iterate();for(let t of s)n.add(t);let c=[],a=new Set;for(let t of["witness_chain","witness_chain_archive"]){let f=e.prepare(`SELECT * FROM ${t} ORDER BY id ASC`).iterate();for(let o of f){if(o.id===r||a.has(o.id))continue;a.add(o.id);let i=A(o);!n.has(b(i))&&!n.has(R(i))&&c.push({id:o.id,hash:y(o)})}}return c.sort((t,f)=>t.id-f.id)}function S(e){return`Refusing to repair: tampering detected at id=${e.tamperedAt} (${e.tamperReason}). Only accidental forks can be re-anchored; restore from a backup and investigate.`}function M(e){let r=`${e}.bak-${Math.floor(Date.now()/1e3)}`;if(!v(r))return r;let n=1;for(;v(`${r}-${n}`);)n++;return`${r}-${n}`}function W(e,r){let n=M(e),s=g(e,{readonly:!0,fileMustExist:!0});try{s.prepare("VACUUM INTO ?").run(n)}finally{s.close()}let c=g(n,{readonly:!0,fileMustExist:!0});try{let a=c.pragma("integrity_check",{simple:!0});if(a!=="ok")throw new Error(`backup integrity_check failed: ${String(a)}`);let t=l(c);if(t.live!==r.live||t.archive!==r.archive)throw new Error(`backup holds ${JSON.stringify(t)} witness rows, expected ${JSON.stringify(r)}`)}finally{c.close()}return n}async function L(e,r){let n=r.dryRun===!0,s=new E(e,r.keyManager??void 0);await s.initialize();let c=l(e),a=s.verify(w),t={dryRun:n,before:O(a),rowsBefore:c,rowsAfter:c};if(a.tampered)return{...t,action:"refused",message:S(a),forksAcknowledged:[]};let f=$(a);if(f.length===0){let d=a.forks.length>0?`Nothing to repair: all ${a.forks.length} fork(s) are already re-anchored.`:"Nothing to repair: the audit chain has no forks.";return{...t,action:"none",message:d,forksAcknowledged:[]}}if(n)return{...t,action:"would-reanchor",forksAcknowledged:f.map(d=>d.id),message:`Dry run: would back up the database and append a CHAIN_REANCHOR entry acknowledging ${f.length} fork(s). Nothing was written.`};let o,i=e.transaction(()=>{let d=l(e),p=s.verify(w);if(p.tampered)return{kind:"refused",check:p};let h=$(p);if(h.length===0)return{kind:"noop"};o=W(r.dbPath,d);let m=e.prepare("SELECT * FROM witness_chain ORDER BY id DESC LIMIT 1").get(),T=s.append("CHAIN_REANCHOR",{reason:"fork-repair",issue:"https://github.com/proffesor-for-testing/agentic-qe/issues/753",note:"Acknowledges accidental forks from pre-3.14.5 concurrent appends; no rows were changed.",forkCount:h.length,forks:h,pins:x(e,m.id),verifiedTipId:m.id,verifiedTipHash:y(m),entriesChecked:p.entriesChecked,rows:d,backup:I(o)},r.actor??"aqe-audit-repair"),k=l(e);if(k.live!==d.live+1||k.archive!==d.archive)throw new Error(`row-count check failed: before ${JSON.stringify(d)}, after ${JSON.stringify(k)}`);return{kind:"reanchored",entry:T,forks:h,txAfter:k}}).immediate();if(i.kind==="refused")return{...t,action:"refused",message:S(i.check),forksAcknowledged:[]};if(i.kind==="noop")return{...t,action:"none",message:"Nothing to repair (another process re-anchored first).",forksAcknowledged:[]};let u=s.verify(w),N=u.valid&&!u.tampered;return{...t,action:"reanchored",after:O(u),rowsAfter:i.txAfter,forksAcknowledged:i.forks.map(d=>d.id),reanchorId:i.entry.id,backupPath:o,message:N?`Re-anchored ${i.forks.length} fork(s) with CHAIN_REANCHOR id=${i.entry.id}; chain now ${u.status}. Backup: ${o}`:`Appended CHAIN_REANCHOR id=${i.entry.id}, but the chain still verifies as ${u.status}. Backup: ${o}`}}export{L as repairWitnessChainForks};
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.15.15");process.exit(0)}
2
+ import{a as E}from"./chunk-TODNOP7C.js";import"./chunk-2ZFLULL4.js";import{b as R,c as b,e as A,h as y,k as C}from"./chunk-ERN56H6S.js";import"./chunk-T66PPF4D.js";import"./chunk-337Z52QM.js";import"./chunk-XWIAZG3C.js";import"./chunk-5G4UFTV4.js";import"./chunk-DEKR3CTS.js";import"./chunk-4X3SWKBA.js";import"./chunk-W62OOK7A.js";import"./chunk-GCHYOPRZ.js";import"./chunk-DKX4GNRU.js";import"./chunk-PXATBHWN.js";import"./chunk-5I7357KS.js";import"./chunk-G242G224.js";import"./chunk-3HVFIITW.js";import"./chunk-BQ47GQPK.js";import"./chunk-ZWBGYJ7K.js";import"./chunk-UJABDXST.js";import"./chunk-6YVMX2TC.js";import"./chunk-SZAZQZWI.js";import"./chunk-MPFPWJTH.js";import{d as g,e as _}from"./chunk-FOOW4JVS.js";import"./chunk-HL2ANKN3.js";import"./chunk-BZULJMGH.js";import"./chunk-XH4JMX5O.js";_();import{existsSync as v}from"node:fs";import{basename as I}from"node:path";var w={includeArchive:!0};function l(e){let r=n=>C(e,n)?e.prepare(`SELECT COUNT(*) AS n FROM ${n}`).get().n:0;return{live:r("witness_chain"),archive:r("witness_chain_archive")}}function O(e){return{status:e.status,entriesChecked:e.entriesChecked,forks:e.forks.length,unacknowledgedForks:e.forks.length-e.acknowledgedForks.length,...e.tamperedAt!==void 0?{tamperedAt:e.tamperedAt}:{},...e.tamperReason?{tamperReason:e.tamperReason}:{}}}function $(e){return e.forkDetails.filter(r=>!r.acknowledged).map(({id:r,parentId:n,prevHash:s,actionHash:c})=>({id:r,parentId:n,prevHash:s,actionHash:c}))}function x(e,r){let n=new Set,s=e.prepare("SELECT prev_hash FROM witness_chain UNION ALL SELECT prev_hash FROM witness_chain_archive").pluck().iterate();for(let t of s)n.add(t);let c=[],a=new Set;for(let t of["witness_chain","witness_chain_archive"]){let f=e.prepare(`SELECT * FROM ${t} ORDER BY id ASC`).iterate();for(let o of f){if(o.id===r||a.has(o.id))continue;a.add(o.id);let i=A(o);!n.has(b(i))&&!n.has(R(i))&&c.push({id:o.id,hash:y(o)})}}return c.sort((t,f)=>t.id-f.id)}function S(e){return`Refusing to repair: tampering detected at id=${e.tamperedAt} (${e.tamperReason}). Only accidental forks can be re-anchored; restore from a backup and investigate.`}function M(e){let r=`${e}.bak-${Math.floor(Date.now()/1e3)}`;if(!v(r))return r;let n=1;for(;v(`${r}-${n}`);)n++;return`${r}-${n}`}function W(e,r){let n=M(e),s=g(e,{readonly:!0,fileMustExist:!0});try{s.prepare("VACUUM INTO ?").run(n)}finally{s.close()}let c=g(n,{readonly:!0,fileMustExist:!0});try{let a=c.pragma("integrity_check",{simple:!0});if(a!=="ok")throw new Error(`backup integrity_check failed: ${String(a)}`);let t=l(c);if(t.live!==r.live||t.archive!==r.archive)throw new Error(`backup holds ${JSON.stringify(t)} witness rows, expected ${JSON.stringify(r)}`)}finally{c.close()}return n}async function L(e,r){let n=r.dryRun===!0,s=new E(e,r.keyManager??void 0);await s.initialize();let c=l(e),a=s.verify(w),t={dryRun:n,before:O(a),rowsBefore:c,rowsAfter:c};if(a.tampered)return{...t,action:"refused",message:S(a),forksAcknowledged:[]};let f=$(a);if(f.length===0){let d=a.forks.length>0?`Nothing to repair: all ${a.forks.length} fork(s) are already re-anchored.`:"Nothing to repair: the audit chain has no forks.";return{...t,action:"none",message:d,forksAcknowledged:[]}}if(n)return{...t,action:"would-reanchor",forksAcknowledged:f.map(d=>d.id),message:`Dry run: would back up the database and append a CHAIN_REANCHOR entry acknowledging ${f.length} fork(s). Nothing was written.`};let o,i=e.transaction(()=>{let d=l(e),p=s.verify(w);if(p.tampered)return{kind:"refused",check:p};let h=$(p);if(h.length===0)return{kind:"noop"};o=W(r.dbPath,d);let m=e.prepare("SELECT * FROM witness_chain ORDER BY id DESC LIMIT 1").get(),T=s.append("CHAIN_REANCHOR",{reason:"fork-repair",issue:"https://github.com/proffesor-for-testing/agentic-qe/issues/753",note:"Acknowledges accidental forks from pre-3.14.5 concurrent appends; no rows were changed.",forkCount:h.length,forks:h,pins:x(e,m.id),verifiedTipId:m.id,verifiedTipHash:y(m),entriesChecked:p.entriesChecked,rows:d,backup:I(o)},r.actor??"aqe-audit-repair"),k=l(e);if(k.live!==d.live+1||k.archive!==d.archive)throw new Error(`row-count check failed: before ${JSON.stringify(d)}, after ${JSON.stringify(k)}`);return{kind:"reanchored",entry:T,forks:h,txAfter:k}}).immediate();if(i.kind==="refused")return{...t,action:"refused",message:S(i.check),forksAcknowledged:[]};if(i.kind==="noop")return{...t,action:"none",message:"Nothing to repair (another process re-anchored first).",forksAcknowledged:[]};let u=s.verify(w),N=u.valid&&!u.tampered;return{...t,action:"reanchored",after:O(u),rowsAfter:i.txAfter,forksAcknowledged:i.forks.map(d=>d.id),reanchorId:i.entry.id,backupPath:o,message:N?`Re-anchored ${i.forks.length} fork(s) with CHAIN_REANCHOR id=${i.entry.id}; chain now ${u.status}. Backup: ${o}`:`Appended CHAIN_REANCHOR id=${i.entry.id}, but the chain still verifies as ${u.status}. Backup: ${o}`}}export{L as repairWitnessChainForks};
@@ -1,2 +1,2 @@
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.15.13");process.exit(0)}
2
- import{g as a,h as b,i as c,j as d,k as e}from"./chunk-XEAEYC6Y.js";import"./chunk-ZAKQLAHT.js";export{a as CHAIN_REANCHOR_ACTION,c as WitnessChainVerifier,b as ownHash,e as tableExists,d as verifyWitnessChain};
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.15.15");process.exit(0)}
2
+ import{g as a,h as b,i as c,j as d,k as e}from"./chunk-ERN56H6S.js";import"./chunk-XH4JMX5O.js";export{a as CHAIN_REANCHOR_ACTION,c as WitnessChainVerifier,b as ownHash,e as tableExists,d as verifyWitnessChain};
@@ -1,2 +1,2 @@
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.15.13");process.exit(0)}
2
- import{a,b,c}from"./chunk-GHM6MQNK.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import"./chunk-ZAKQLAHT.js";export{a as WitnessKeyManager,c as _resetDefaultWitnessKeyManagerForTests,b as getDefaultWitnessKeyManager};
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.15.15");process.exit(0)}
2
+ import{a,b,c}from"./chunk-2ZFLULL4.js";import"./chunk-SZAZQZWI.js";import"./chunk-MPFPWJTH.js";import"./chunk-XH4JMX5O.js";export{a as WitnessKeyManager,c as _resetDefaultWitnessKeyManagerForTests,b as getDefaultWitnessKeyManager};
@@ -1,5 +1,5 @@
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.15.13");process.exit(0)}
2
- import{b as $}from"./chunk-G77ERMUD.js";import"./chunk-E56B6IDX.js";import{a as k,b as W,c as b,g as C}from"./chunk-NU3W5WFT.js";import"./chunk-5MDERQH3.js";import{c as v}from"./chunk-VTOBUZL6.js";import"./chunk-NURIILUB.js";import"./chunk-3Y2ROSCL.js";import"./chunk-ZAKQLAHT.js";import{Command as D}from"commander";import o from"chalk";function O(f,i){let h=f.indexOf("=");return h>0&&(i[f.substring(0,h)]=f.substring(h+1)),i}function V(f,i,h){let m=new D("workflow").description("Manage QE workflows and pipelines (ADR-041)");return m.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(n,t)=>{if(!await h())return;let c=(await import("path")).resolve(n);try{console.log(o.blue(`
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.15.15");process.exit(0)}
2
+ import{b as $}from"./chunk-GV2QE5TO.js";import"./chunk-AHMWD6JG.js";import{a as k,b as W,c as b,g as C}from"./chunk-7XB3FCKM.js";import"./chunk-L32JNNKL.js";import{c as v}from"./chunk-XWIAZG3C.js";import"./chunk-LJMYRTJ7.js";import"./chunk-HL2ANKN3.js";import"./chunk-XH4JMX5O.js";import{Command as D}from"commander";import o from"chalk";function O(f,i){let h=f.indexOf("=");return h>0&&(i[f.substring(0,h)]=f.substring(h+1)),i}function V(f,i,h){let m=new D("workflow").description("Manage QE workflows and pipelines (ADR-041)");return m.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(n,t)=>{if(!await h())return;let c=(await import("path")).resolve(n);try{console.log(o.blue(`
3
3
  Running workflow from: ${n}
4
4
  `));let l=k(c);if(!l.success||!l.workflow){console.log(o.red("Failed to parse pipeline:"));for(let d of l.errors)console.log(o.red(` ${d}`));await i(1)}let u={...v(t.params,"params")};if(l.pipeline){for(let d of l.pipeline.stages)if(d.params)for(let[y,p]of Object.entries(d.params))u[y]=p}if(!f.workflowOrchestrator.getWorkflow(l.workflow.id)){let d=f.workflowOrchestrator.registerWorkflow(l.workflow);d.success||(console.log(o.red(`Failed to register workflow: ${d.error.message}`)),await i(1))}let g=await f.workflowOrchestrator.executeWorkflow(l.workflow.id,u);if(!g.success){console.log(o.red(`Failed to start workflow: ${g.error.message}`)),await i(1);return}let a=g.value;if(console.log(o.cyan(` Execution ID: ${a}`)),console.log(o.gray(` Workflow: ${l.workflow.name}`)),console.log(o.gray(` Stages: ${l.workflow.steps.length}`)),console.log(""),t.watch){console.log(o.blue(`Workflow Progress:
5
5
  `));let d,y=Date.now();for(;;){let w=f.workflowOrchestrator.getWorkflowStatus(a);if(!w)break;if(!d||d.progress!==w.progress||d.status!==w.status||JSON.stringify(d.currentSteps)!==JSON.stringify(w.currentSteps)){process.stdout.write("\r\x1B[K");let S="\u2588".repeat(Math.floor(w.progress/5))+"\u2591".repeat(20-Math.floor(w.progress/5)),R=w.status==="completed"?o.green:w.status==="failed"?o.red:w.status==="running"?o.yellow:o.gray;console.log(` [${S}] ${w.progress}% - ${R(w.status)}`),w.currentSteps.length>0&&t.verbose&&console.log(o.gray(` Running: ${w.currentSteps.join(", ")}`)),d=w}if(w.status==="completed"||w.status==="failed"||w.status==="cancelled")break;await new Promise(S=>setTimeout(S,500))}let p=f.workflowOrchestrator.getWorkflowStatus(a);if(p){console.log("");let w=p.duration||Date.now()-y;p.status==="completed"?(console.log(o.green("Workflow completed successfully")),console.log(o.gray(` Duration: ${$(w)}`)),console.log(o.gray(` Completed: ${p.completedSteps.length} stages`)),p.skippedSteps.length>0&&console.log(o.yellow(` Skipped: ${p.skippedSteps.length} stages`))):p.status==="failed"?(console.log(o.red("Workflow failed")),console.log(o.red(` Error: ${p.error}`)),console.log(o.gray(` Failed stages: ${p.failedSteps.join(", ")}`))):console.log(o.yellow(`Workflow ${p.status}`))}console.log(""),await i(p?.status==="completed"?0:1);return}else console.log(o.green("Workflow execution started")),console.log(o.gray(` Use 'aqe workflow status ${a}' to check progress`));console.log(""),await i(0)}catch(l){console.error(o.red(`
@@ -35,10 +35,10 @@ Workflow cancelled: ${n}
35
35
  `)):console.log(o.red(`
36
36
  Failed to cancel workflow: ${t.error.message}
37
37
  `)),await i(t.success?0:1)}catch(t){console.error(o.red(`
38
- Failed to cancel workflow:`),t),await i(1)}}),m.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:n}=await import("./browser-workflow-G6IASEAP.js"),e=await new n().invoke({});if(e.success&&e.data){console.log(o.blue(`
38
+ Failed to cancel workflow:`),t),await i(1)}}),m.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:n}=await import("./browser-workflow-WLZGR6SB.js"),e=await new n().invoke({});if(e.success&&e.data){console.log(o.blue(`
39
39
  Browser Workflow Templates:
40
40
  `));for(let c of e.data.availableTemplates)console.log(` ${o.cyan(c)}`);console.log("")}else console.log(o.red(`Failed: ${e.error||"Unknown error"}`));await i(0)}catch(n){console.error(o.red(`
41
- Failed:`),n),await i(1)}}),m.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",O,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(n,t)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-G6IASEAP.js"),{writeOutput:c,toJSON:l}=await import("./ci-output-JTCLLNOQ.js"),s=new e,u={variables:t.var||{}};if(t.yaml)u.workflowYaml=t.yaml;else if(n)if(n.endsWith(".yaml")||n.endsWith(".yml")){let g=await import("fs"),d=(await import("path")).resolve(n);g.existsSync(d)||(console.log(o.red(`
41
+ Failed:`),n),await i(1)}}),m.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",O,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(n,t)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-WLZGR6SB.js"),{writeOutput:c,toJSON:l}=await import("./ci-output-BL6KWOHW.js"),s=new e,u={variables:t.var||{}};if(t.yaml)u.workflowYaml=t.yaml;else if(n)if(n.endsWith(".yaml")||n.endsWith(".yml")){let g=await import("fs"),d=(await import("path")).resolve(n);g.existsSync(d)||(console.log(o.red(`
42
42
  File not found: ${d}
43
43
  `)),await i(1)),u.workflowYaml=g.readFileSync(d,"utf-8")}else u.templateName=n;else console.log(o.red(`
44
44
  Provide a template name or --yaml. Use "workflow browser-list" to see templates.
@@ -0,0 +1,2 @@
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.15.15");process.exit(0)}
2
+ import{a,b,d as c,e as d}from"./chunk-6RBTS3NF.js";import"./chunk-XHHWABJV.js";import"./chunk-T66PPF4D.js";import"./chunk-337Z52QM.js";import"./chunk-XWIAZG3C.js";import"./chunk-5G4UFTV4.js";import"./chunk-DEKR3CTS.js";import"./chunk-4X3SWKBA.js";import"./chunk-W62OOK7A.js";import"./chunk-GCHYOPRZ.js";import"./chunk-DKX4GNRU.js";import"./chunk-PXATBHWN.js";import"./chunk-5I7357KS.js";import"./chunk-QFGYH6HD.js";import"./chunk-LJMYRTJ7.js";import"./chunk-G242G224.js";import"./chunk-3HVFIITW.js";import"./chunk-BQ47GQPK.js";import"./chunk-ZWBGYJ7K.js";import"./chunk-UJABDXST.js";import"./chunk-6YVMX2TC.js";import"./chunk-SZAZQZWI.js";import"./chunk-MPFPWJTH.js";import"./chunk-FOOW4JVS.js";import"./chunk-HL2ANKN3.js";import"./chunk-BZULJMGH.js";import"./chunk-XH4JMX5O.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};
@@ -1,2 +1,2 @@
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.15.13");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-HZ5NXFXH.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-YQFLQE53.js";import"./chunk-3Y7TJFHU.js";import"./chunk-7CMTY45A.js";import"./chunk-VTOBUZL6.js";import"./chunk-KDNJ4F3P.js";import"./chunk-JRRXCODW.js";import"./chunk-XNBOGCF3.js";import"./chunk-KV4T4MXK.js";import"./chunk-TWDW32W2.js";import"./chunk-AQSVJNEH.js";import"./chunk-OCAEXYFA.js";import"./chunk-DVGRPK7A.js";import"./chunk-TOQWL2ZF.js";import"./chunk-UT2VZ33P.js";import"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-WOCGL4QP.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import"./chunk-DNDL7SOS.js";import"./chunk-3Y2ROSCL.js";import"./chunk-WO274FRI.js";import"./chunk-ZAKQLAHT.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
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.15.15");process.exit(0)}
2
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-BLL2XU7A.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-UAQZI6N4.js";import"./chunk-T66PPF4D.js";import"./chunk-337Z52QM.js";import"./chunk-XWIAZG3C.js";import"./chunk-5G4UFTV4.js";import"./chunk-DEKR3CTS.js";import"./chunk-4X3SWKBA.js";import"./chunk-W62OOK7A.js";import"./chunk-GCHYOPRZ.js";import"./chunk-DKX4GNRU.js";import"./chunk-PXATBHWN.js";import"./chunk-5I7357KS.js";import"./chunk-G242G224.js";import"./chunk-3HVFIITW.js";import"./chunk-BQ47GQPK.js";import"./chunk-ZWBGYJ7K.js";import"./chunk-UJABDXST.js";import"./chunk-6YVMX2TC.js";import"./chunk-SZAZQZWI.js";import"./chunk-MPFPWJTH.js";import"./chunk-FOOW4JVS.js";import"./chunk-HL2ANKN3.js";import"./chunk-BZULJMGH.js";import"./chunk-XH4JMX5O.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
@@ -9,6 +9,7 @@ import { runCoverageAnalysisWizard } from '../wizards/coverage-wizard.js';
9
9
  import { writeOutput, toJSON, coverageToMarkdown } from '../utils/ci-output.js';
10
10
  import * as path from 'path';
11
11
  import { EXIT_UNMEASURED, coverageExitCode, coverageJson, evaluateCliCoverage, } from '../utils/coverage-verdict.js';
12
+ import { describeExcludedEntries } from '../../coordination/handlers/coverage-evidence.js';
12
13
  // #1012 / #1010: resolution and verdict are shared with `aqe ci` (and built on
13
14
  // the same functions as MCP); re-exported here for existing importers.
14
15
  export { EXIT_UNMEASURED, resolveCliCoverageData } from '../utils/coverage-verdict.js';
@@ -132,6 +133,11 @@ missing coverage evidence.`)
132
133
  if (coverageData.unmeasuredFiles?.length) {
133
134
  console.log(chalk.yellow(` ${coverageData.unmeasuredFiles.length} file(s) not in the coverage report — UNMEASURED, excluded from the figures\n`));
134
135
  }
136
+ // #1219: report entries that are not project files are named, not counted.
137
+ if (outcome.kind === 'measured') {
138
+ for (const note of describeExcludedEntries(outcome.evidence))
139
+ console.log(chalk.yellow(` ${note}\n`));
140
+ }
135
141
  }
136
142
  else {
137
143
  console.log(chalk.yellow(' No coverage report found — showing a heuristic STATIC ESTIMATE (UNMEASURED)'));
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `aqe learning prune` (#1239)
3
+ *
4
+ * Bounds the learning tables on demand. A dry run by default: it prints the
5
+ * row counts each step would change and writes nothing. `--apply` makes the
6
+ * changes, after a verified backup of memory.db unless `--no-backup`.
7
+ *
8
+ * The two default steps (failed dream cycles, outcome concepts) also run
9
+ * after every committed dream. The other two drop data that may still be of
10
+ * use, so they run only when asked for here.
11
+ */
12
+ import { Command } from 'commander';
13
+ export declare function registerPruneCommand(learning: Command): void;
14
+ //# sourceMappingURL=learning-prune.d.ts.map
@@ -0,0 +1,105 @@
1
+ /**
2
+ * `aqe learning prune` (#1239)
3
+ *
4
+ * Bounds the learning tables on demand. A dry run by default: it prints the
5
+ * row counts each step would change and writes nothing. `--apply` makes the
6
+ * changes, after a verified backup of memory.db unless `--no-backup`.
7
+ *
8
+ * The two default steps (failed dream cycles, outcome concepts) also run
9
+ * after every committed dream. The other two drop data that may still be of
10
+ * use, so they run only when asked for here.
11
+ */
12
+ import path from 'node:path';
13
+ import { randomUUID } from 'node:crypto';
14
+ import { existsSync } from 'node:fs';
15
+ import chalk from 'chalk';
16
+ import { openDatabase } from '../../shared/safe-db.js';
17
+ import { backupLearningDatabase } from './learning-snapshot.js';
18
+ import { getDbPath, printError, printJson } from './learning-helpers.js';
19
+ import { DEFAULT_FAILED_DREAM_CYCLE_RETENTION_DAYS, DEFAULT_OUTCOME_CONCEPT_CAP, MIN_OUTCOME_CONCEPT_CAP, capOutcomeConcepts, compactConsolidatedExperiences, describeRetention, pruneFailedDreamCycles, pruneRoutingOutcomes, } from '../../learning/learning-retention.js';
20
+ function wholeNumber(flag, raw, min) {
21
+ if (!/^\d+$/.test(raw) || Number(raw) < min) {
22
+ throw new Error(`${flag} must be a whole number >= ${min}, got "${raw}"`);
23
+ }
24
+ return Number(raw);
25
+ }
26
+ export function registerPruneCommand(learning) {
27
+ learning
28
+ .command('prune')
29
+ .description('Bound learning-table growth (dry run unless --apply)')
30
+ .option('--dry-run', 'Print the row counts that would change; write nothing (default)')
31
+ .option('--apply', 'Make the changes (backs up memory.db first)')
32
+ .option('--no-backup', 'With --apply: skip the backup')
33
+ .option('--failed-dream-cycles-days <n>', 'Remove failed/interrupted dream cycles older than n days', String(DEFAULT_FAILED_DREAM_CYCLE_RETENTION_DAYS))
34
+ .option('--outcome-concepts-max <n>', 'Keep the newest n outcome concept nodes', String(DEFAULT_OUTCOME_CONCEPT_CAP))
35
+ .option('--compact-experiences', 'Opt-in: clear result_json and embedding of archived/merged experiences')
36
+ .option('--routing-outcomes-older-than <days>', 'Opt-in: remove routing outcomes older than this')
37
+ .option('--json', 'Output as JSON')
38
+ .addHelpText('after', `
39
+ Examples:
40
+ aqe learning prune # dry run of the default steps
41
+ aqe learning prune --compact-experiences # dry run, including compaction
42
+ aqe learning prune --compact-experiences --apply # back up, then compact
43
+
44
+ Rows deleted inside the file are reused by SQLite; run VACUUM to shrink the file itself.`)
45
+ .action(async (options) => {
46
+ try {
47
+ if (options.apply && options.dryRun)
48
+ throw new Error('--apply and --dry-run cannot be combined');
49
+ const dryRun = !options.apply;
50
+ const failedDays = wholeNumber('--failed-dream-cycles-days', options.failedDreamCyclesDays, 1);
51
+ const outcomeMax = wholeNumber('--outcome-concepts-max', options.outcomeConceptsMax, MIN_OUTCOME_CONCEPT_CAP);
52
+ const routingDays = options.routingOutcomesOlderThan === undefined
53
+ ? undefined
54
+ : wholeNumber('--routing-outcomes-older-than', options.routingOutcomesOlderThan, 1);
55
+ const dbPath = getDbPath();
56
+ if (!existsSync(dbPath))
57
+ throw new Error(`No learning database found at: ${dbPath}`);
58
+ let backupPath;
59
+ if (!dryRun && options.backup) {
60
+ const stamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 23);
61
+ const output = path.join(path.dirname(dbPath), 'backups', `pre-prune-${stamp}-${randomUUID()}.db`);
62
+ backupPath = (await backupLearningDatabase(dbPath, output, { verify: true })).backupPath;
63
+ }
64
+ const db = openDatabase(dbPath, { readonly: dryRun, fileMustExist: true });
65
+ const results = [];
66
+ try {
67
+ results.push(pruneFailedDreamCycles(db, { retentionDays: failedDays, dryRun }));
68
+ results.push(capOutcomeConcepts(db, { maxNodes: outcomeMax, dryRun }));
69
+ if (options.compactExperiences)
70
+ results.push(compactConsolidatedExperiences(db, { dryRun }));
71
+ if (routingDays !== undefined) {
72
+ results.push(pruneRoutingOutcomes(db, { olderThanDays: routingDays, dryRun }));
73
+ }
74
+ }
75
+ finally {
76
+ db.close();
77
+ }
78
+ if (options.json) {
79
+ printJson({ dryRun, dbPath, backupPath, steps: results });
80
+ return;
81
+ }
82
+ console.log(chalk.bold(`\nLearning prune${dryRun ? ' (dry run, nothing written)' : ''}\n`));
83
+ console.log(` Database: ${dbPath}`);
84
+ if (backupPath)
85
+ console.log(` Backup: ${backupPath}`);
86
+ for (const step of results) {
87
+ const extra = step.payloadBytes !== undefined
88
+ ? `, ${(step.payloadBytes / (1024 * 1024)).toFixed(1)} MB of payload`
89
+ : '';
90
+ console.log(` ${describeRetention(step)}${extra}`);
91
+ }
92
+ if (dryRun)
93
+ console.log(chalk.gray('\n Re-run with --apply to make these changes.'));
94
+ if (!options.compactExperiences || routingDays === undefined) {
95
+ console.log(chalk.gray(' Opt-in steps: --compact-experiences, --routing-outcomes-older-than <days>.'));
96
+ }
97
+ console.log('');
98
+ }
99
+ catch (error) {
100
+ printError(`prune failed: ${error instanceof Error ? error.message : String(error)}`);
101
+ process.exitCode = 1;
102
+ }
103
+ });
104
+ }
105
+ //# sourceMappingURL=learning-prune.js.map
@@ -22,6 +22,8 @@ import { createLearningMetricsTracker, } from '../../learning/metrics-tracker.js
22
22
  import { createRegretTracker, } from '../../learning/regret-tracker.js';
23
23
  import { openDatabase } from '../../shared/safe-db.js';
24
24
  import { backupLearningDatabase, restoreLearningDatabase } from './learning-snapshot.js';
25
+ import { registerPruneCommand } from './learning-prune.js';
26
+ import { describeDreamRetention } from '../../learning/learning-retention.js';
25
27
  import { createSQLitePatternStore } from '../../learning/sqlite-persistence.js';
26
28
  import { getActiveEmbeddingSpaceIdentity } from '../../learning/real-embeddings.js';
27
29
  import { inspectEmbeddingSpaceRows } from '../../learning/embedding-space.js';
@@ -75,6 +77,7 @@ Examples:
75
77
  registerRepairCommand(learning);
76
78
  registerHealthCommand(learning);
77
79
  registerLoopHealthCommand(learning);
80
+ registerPruneCommand(learning);
78
81
  return learning;
79
82
  }
80
83
  // ============================================================================
@@ -1244,6 +1247,9 @@ function registerDreamCommand(learning) {
1244
1247
  conceptsProcessed: result.cycle.conceptsProcessed, associationsFound: result.cycle.associationsFound,
1245
1248
  insightsGenerated: result.cycle.insightsGenerated, activationStats: result.activationStats,
1246
1249
  patternsCreated: result.patternsCreated,
1250
+ retention: result.retention
1251
+ ? { enabled: result.retention.enabled, steps: describeDreamRetention(result.retention) }
1252
+ : undefined,
1247
1253
  insights: result.insights.map(i => ({ id: i.id, type: i.type, description: i.description, noveltyScore: i.noveltyScore, confidenceScore: i.confidenceScore, actionable: i.actionable })),
1248
1254
  });
1249
1255
  }
@@ -1255,6 +1261,9 @@ function registerDreamCommand(learning) {
1255
1261
  console.log(` Concepts: ${result.cycle.conceptsProcessed}`);
1256
1262
  console.log(` Associations: ${result.cycle.associationsFound}`);
1257
1263
  console.log(` Insights: ${result.cycle.insightsGenerated}`);
1264
+ for (const line of result.retention ? describeDreamRetention(result.retention) : []) {
1265
+ console.log(` Retention: ${line}`);
1266
+ }
1258
1267
  if (result.activationStats) {
1259
1268
  console.log(chalk.bold('\n Activation Stats:'));
1260
1269
  console.log(` Iterations: ${result.activationStats.totalIterations}`);
@@ -107,13 +107,24 @@ export class BrainHandler {
107
107
  console.log(` RVF Size: ${chalk.cyan(formatBytes(rvf.fileSizeBytes))}`);
108
108
  console.log(` Segments: ${chalk.cyan(rvf.totalSegments)}`);
109
109
  }
110
+ const skippedVectors = manifest.stats
111
+ .skippedCacheRows?.vectors;
112
+ if (skippedVectors) {
113
+ console.log(` Skipped: ${chalk.gray(`${skippedVectors} code-index vectors (regenerable: aqe code index <path>)`)}`);
114
+ }
110
115
  console.log(` Checksum: ${chalk.gray(manifest.checksum)}`);
111
116
  console.log(` Output: ${chalk.cyan(path.resolve(options.output))}`);
112
117
  console.log('');
113
118
  await this.cleanupAndExit(0);
114
119
  }
115
120
  catch (error) {
116
- console.error(chalk.red('\n Brain export failed:'), error);
121
+ if (error?.code === 'RVF_KERNEL_TOO_LARGE') {
122
+ // Expected condition, not a crash: the message names the size and the fix.
123
+ console.error(chalk.red('\n Brain export failed:'), error.message);
124
+ }
125
+ else {
126
+ console.error(chalk.red('\n Brain export failed:'), error);
127
+ }
117
128
  await this.cleanupAndExit(1);
118
129
  }
119
130
  }
@@ -23,7 +23,7 @@ import chalk from 'chalk';
23
23
  import { walkSourceFiles } from './file-discovery.js';
24
24
  import { buildCoverageData, summarizeCoverage } from './coverage-data.js';
25
25
  import { describeNoData, reconcileRecommendations, resolveExistingCoverage, thresholdVerdict, } from '../../coordination/handlers/coverage-target.js';
26
- import { describeEvidence } from '../../coordination/handlers/coverage-evidence.js';
26
+ import { describeEvidence, describeExcludedEntries } from '../../coordination/handlers/coverage-evidence.js';
27
27
  /** `aqe coverage` exit code when no coverage measurement exists for the target (#995). */
28
28
  export const EXIT_UNMEASURED = 3;
29
29
  /** Provenance labels, the same vocabulary as MCP `coverage_analyze_sublinear`. */
@@ -157,6 +157,15 @@ export function coverageExitCode(outcome, threshold) {
157
157
  return 1;
158
158
  }
159
159
  }
160
+ /** The JSON `warning`: the evidence gaps, then the report entries left out (#1219). */
161
+ function coverageWarning(insufficient, excludedNotes) {
162
+ if (insufficient.length === 0 && excludedNotes.length === 0)
163
+ return {};
164
+ const gaps = insufficient.length > 0 ? `INSUFFICIENT EVIDENCE: ${insufficient.join('; ')}` : '';
165
+ if (excludedNotes.length === 0)
166
+ return { warning: gaps };
167
+ return { warning: [gaps && gaps.replace(/\.?$/, '.'), ...excludedNotes].filter(Boolean).join(' ') };
168
+ }
160
169
  /** The `-F json` document for an outcome (same shape in every case). */
161
170
  export function coverageJson(outcome, threshold, target) {
162
171
  const nulls = { line: null, branch: null, function: null, statement: null };
@@ -176,8 +185,10 @@ export function coverageJson(outcome, threshold, target) {
176
185
  ...(outcome.data.unmeasuredFiles?.length ? { unmeasuredFiles: outcome.data.unmeasuredFiles } : {}),
177
186
  ...(outcome.evidence ? { evidenceStatus: outcome.evidence.status } : {}),
178
187
  ...(outcome.evidence?.stale ? { staleReport: outcome.evidence.stale } : {}),
179
- ...(outcome.insufficientEvidence.length > 0
180
- ? { warning: `INSUFFICIENT EVIDENCE: ${outcome.insufficientEvidence.join('; ')}` } : {}),
188
+ // #1219: report entries that are not project files, left out of the figures.
189
+ ...(outcome.evidence?.conflictingFiles ? { conflictingFiles: outcome.evidence.conflictingFiles } : {}),
190
+ ...(outcome.evidence?.excludedEntries ? { excludedReportEntries: outcome.evidence.excludedEntries } : {}),
191
+ ...coverageWarning(outcome.insufficientEvidence, describeExcludedEntries(outcome.evidence)),
181
192
  };
182
193
  case 'estimate':
183
194
  return {
@@ -79,6 +79,13 @@ export declare class CompactionPipeline {
79
79
  * Triggers Tier 4 reactive compaction immediately.
80
80
  */
81
81
  handleOverflow(trigger?: 'status_413' | 'context_overflow'): Promise<Tier4Result>;
82
+ /** Get the active conversation history (a copy) as the next tier would see it. */
83
+ getConversationHistory(): ConversationMessage[];
84
+ /**
85
+ * Set the budget to the token estimate of the retained history (#1249), so
86
+ * it describes what is actually kept rather than a tier's reported saving.
87
+ */
88
+ private reconcileBudget;
82
89
  /** Get compaction statistics for the session_cache_stats tool. */
83
90
  getStats(): {
84
91
  conversationMessages: number;
@@ -120,10 +120,22 @@ export class CompactionPipeline {
120
120
  tierResults.push(t2);
121
121
  tiersExecuted.push(2);
122
122
  totalTokensSaved += t2.tokensSaved;
123
- // Replace conversation history with preserved messages
123
+ // #1249: keep the Tier-2 summary in history ahead of the preserved
124
+ // tail. It used to be dropped, so the summarized messages had no
125
+ // representation left and Tier 3 saw only the tail.
124
126
  if (t2.removedMessageCount > 0) {
125
- this.conversationHistory = [...t2.preservedMessages];
126
- this.budget.releaseTokens(t2.tokensSaved);
127
+ const summaryMessage = t2.summary
128
+ ? [{
129
+ role: 'assistant',
130
+ content: t2.summary,
131
+ timestamp: Date.now(),
132
+ estimatedTokens: t2.summaryTokens,
133
+ id: t2.summaryItem?.id,
134
+ provenance: t2.summaryItem,
135
+ }]
136
+ : [];
137
+ this.conversationHistory = [...summaryMessage, ...t2.preservedMessages];
138
+ this.reconcileBudget();
127
139
  }
128
140
  }
129
141
  if (maxTier >= 3 && this.budget.shouldAutoCompact()) {
@@ -142,7 +154,7 @@ export class CompactionPipeline {
142
154
  id: t3.summaryItem?.id,
143
155
  provenance: t3.summaryItem,
144
156
  }];
145
- this.budget.releaseTokens(t3.tokensSaved);
157
+ this.reconcileBudget();
146
158
  }
147
159
  }
148
160
  if (maxTier >= 4 && this.budget.isBlocking()) {
@@ -153,7 +165,7 @@ export class CompactionPipeline {
153
165
  totalTokensSaved += t4.tokensSaved;
154
166
  if (t4.droppedCount > 0) {
155
167
  this.conversationHistory = [...t4.survivingMessages];
156
- this.budget.releaseTokens(t4.tokensSaved);
168
+ this.reconcileBudget();
157
169
  }
158
170
  }
159
171
  }
@@ -175,10 +187,22 @@ export class CompactionPipeline {
175
187
  const result = this.tier4.compact(this.conversationHistory, trigger);
176
188
  if (result.droppedCount > 0) {
177
189
  this.conversationHistory = [...result.survivingMessages];
178
- this.budget.releaseTokens(result.tokensSaved);
190
+ this.reconcileBudget();
179
191
  }
180
192
  return result;
181
193
  }
194
+ /** Get the active conversation history (a copy) as the next tier would see it. */
195
+ getConversationHistory() {
196
+ return [...this.conversationHistory];
197
+ }
198
+ /**
199
+ * Set the budget to the token estimate of the retained history (#1249), so
200
+ * it describes what is actually kept rather than a tier's reported saving.
201
+ */
202
+ reconcileBudget() {
203
+ const retained = this.conversationHistory.reduce((sum, m) => sum + (m.estimatedTokens ?? estimateTokensPadded(m.content)), 0);
204
+ this.budget.setUsedTokens(retained);
205
+ }
182
206
  /** Get compaction statistics for the session_cache_stats tool. */
183
207
  getStats() {
184
208
  return {