agentic-qe 3.15.11 → 3.15.13

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 (522) hide show
  1. package/.claude/hooks/aqe-hook.cjs +38 -2
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +267 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/cli/bundle.js +6 -6
  6. package/dist/cli/chunks/adapter-KCQDVYY2.js +2 -0
  7. package/dist/cli/chunks/{agent-booster-wasm-TIDSQ3ZK.js → agent-booster-wasm-6RRQWMNE.js} +2 -2
  8. package/dist/cli/chunks/{agent-handler-G3EPBVA7.js → agent-handler-AOH6TV7W.js} +2 -2
  9. package/dist/cli/chunks/{agent-memory-branch-ARC5C7GW.js → agent-memory-branch-2P54SF5N.js} +2 -2
  10. package/dist/cli/chunks/aqe-learning-engine-SAQOHSGN.js +2 -0
  11. package/dist/cli/chunks/{arena-K4I4QDXB.js → arena-NSVFCAF5.js} +2 -2
  12. package/dist/cli/chunks/{arena-36DTATJV.js → arena-X6MOGQHA.js} +4 -4
  13. package/dist/cli/chunks/{audit-WQSJSJZF.js → audit-27DJLQNM.js} +3 -3
  14. package/dist/cli/chunks/base-WCACU3FN.js +2 -0
  15. package/dist/cli/chunks/{better-sqlite3-BB4K67MT.js → better-sqlite3-BU5GXILS.js} +2 -2
  16. package/dist/cli/chunks/{brain-handler-CU3GOIU3.js → brain-handler-GTQNHHZS.js} +3 -3
  17. package/dist/cli/chunks/{branch-enumerator-NJQX7ZNB.js → branch-enumerator-5CLULOCU.js} +2 -2
  18. package/dist/cli/chunks/{browser-6YJF4FQW.js → browser-R4DMU3LN.js} +2 -2
  19. package/dist/cli/chunks/browser-workflow-G6IASEAP.js +2 -0
  20. package/dist/cli/chunks/{chunk-G4FAPO57.js → chunk-2G7TVT6W.js} +2 -2
  21. package/dist/cli/chunks/{chunk-HDNWSKHA.js → chunk-32ZMWEP3.js} +2 -2
  22. package/dist/cli/chunks/{chunk-FWSGPE3V.js → chunk-3AN5TNGD.js} +3 -3
  23. package/dist/cli/chunks/{chunk-X4J73KP3.js → chunk-3LJ7LQMV.js} +1 -1
  24. package/dist/cli/chunks/{chunk-3RHOPP7A.js → chunk-3QZEGE67.js} +1 -1
  25. package/dist/cli/chunks/{chunk-RBZCA7SD.js → chunk-3RZV5DGO.js} +2 -2
  26. package/dist/cli/chunks/{chunk-DDEOZPWJ.js → chunk-3Y2ROSCL.js} +2 -2
  27. package/dist/cli/chunks/{chunk-LD5CFK53.js → chunk-3Y7TJFHU.js} +2 -2
  28. package/dist/cli/chunks/{chunk-I36CRDHF.js → chunk-3YNLWPBF.js} +2 -2
  29. package/dist/cli/chunks/{chunk-ZMC543GI.js → chunk-42J34YG4.js} +2 -2
  30. package/dist/cli/chunks/{chunk-YNOCQ2SL.js → chunk-4OVC4RIL.js} +1 -1
  31. package/dist/cli/chunks/{chunk-2KFFEKSI.js → chunk-526QYFJU.js} +2 -2
  32. package/dist/cli/chunks/{chunk-LBX7M4LW.js → chunk-5FKWCZNF.js} +2 -2
  33. package/dist/cli/chunks/{chunk-OH5V5EJW.js → chunk-5K26BEYB.js} +2 -2
  34. package/dist/cli/chunks/{chunk-TCYSBC7Y.js → chunk-5MDERQH3.js} +1 -1
  35. package/dist/cli/chunks/{chunk-V5AADCBC.js → chunk-5VMAV6T6.js} +1 -1
  36. package/dist/cli/chunks/{chunk-YBBT3YYG.js → chunk-5ZGM3RMH.js} +1 -1
  37. package/dist/cli/chunks/{chunk-RTY7VSZB.js → chunk-6KATY3KS.js} +2 -2
  38. package/dist/cli/chunks/{chunk-LPU6PAJE.js → chunk-6Z7PRBSG.js} +2 -2
  39. package/dist/cli/chunks/{chunk-6NA3KZZT.js → chunk-72ASBE35.js} +7 -7
  40. package/dist/cli/chunks/{chunk-GBFUANTC.js → chunk-756CGMEH.js} +1 -1
  41. package/dist/cli/chunks/{chunk-UTTSH4NH.js → chunk-75RDHBAX.js} +3 -3
  42. package/dist/cli/chunks/{chunk-XGPTZUKQ.js → chunk-7CMTY45A.js} +2 -2
  43. package/dist/cli/chunks/{chunk-NC6K7SCQ.js → chunk-7JUC2MVZ.js} +2 -2
  44. package/dist/cli/chunks/{chunk-RTFKTKSO.js → chunk-7NA7JXNB.js} +2 -2
  45. package/dist/cli/chunks/{chunk-GWJWSLDA.js → chunk-7PLIEBY7.js} +2 -2
  46. package/dist/cli/chunks/{chunk-OURITHFV.js → chunk-7YTGHGK4.js} +2 -2
  47. package/dist/cli/chunks/{chunk-ITL3IN2E.js → chunk-A64JFBWI.js} +2 -2
  48. package/dist/cli/chunks/{chunk-OHR7C777.js → chunk-AL6FBH3E.js} +2 -2
  49. package/dist/cli/chunks/{chunk-5N25I53C.js → chunk-AQSVJNEH.js} +2 -2
  50. package/dist/cli/chunks/{chunk-FL32MTKT.js → chunk-ARJW4I2O.js} +2 -2
  51. package/dist/cli/chunks/{chunk-ZQHDA4O7.js → chunk-ASQYASNV.js} +1 -1
  52. package/dist/cli/chunks/{chunk-4HJKQIX5.js → chunk-BEGR4D6N.js} +2 -2
  53. package/dist/cli/chunks/{chunk-G77MLBDF.js → chunk-BK577VL7.js} +2 -2
  54. package/dist/cli/chunks/{chunk-NPZOBSAN.js → chunk-BLSLEVDI.js} +2 -2
  55. package/dist/cli/chunks/{chunk-R5LGV6GZ.js → chunk-BTVEYBW2.js} +2 -2
  56. package/dist/cli/chunks/{chunk-2CW7VRPH.js → chunk-C6JTLKG7.js} +5 -5
  57. package/dist/cli/chunks/{chunk-EWPUQCN4.js → chunk-C7JM7CD3.js} +2 -2
  58. package/dist/cli/chunks/{chunk-325QCVDI.js → chunk-CCMKSHAT.js} +2 -2
  59. package/dist/cli/chunks/{chunk-V7DA4HAK.js → chunk-CE7B5LU7.js} +1 -1
  60. package/dist/cli/chunks/{chunk-4RAQ7PJA.js → chunk-CM4LSLKR.js} +2 -2
  61. package/dist/cli/chunks/chunk-CRWPZT74.js +62 -0
  62. package/dist/cli/chunks/{chunk-U3LJNNVJ.js → chunk-CT6SAVXQ.js} +2 -2
  63. package/dist/cli/chunks/chunk-CV77DMDQ.js +2 -0
  64. package/dist/cli/chunks/{chunk-UMVSWQNB.js → chunk-DFUASIKA.js} +2 -2
  65. package/dist/cli/chunks/{chunk-KSE5TDM5.js → chunk-DLD7RUZ4.js} +2 -2
  66. package/dist/cli/chunks/{chunk-4MUBW4RT.js → chunk-DNDL7SOS.js} +2 -2
  67. package/dist/cli/chunks/{chunk-EJPK7OTR.js → chunk-DVGRPK7A.js} +2 -2
  68. package/dist/cli/chunks/{chunk-WCVCOT4E.js → chunk-E56B6IDX.js} +2 -2
  69. package/dist/cli/chunks/{chunk-7HEMJHPP.js → chunk-E7CLYGS7.js} +1 -1
  70. package/dist/cli/chunks/{chunk-R5GRABPQ.js → chunk-EXGMJFAT.js} +1 -1
  71. package/dist/cli/chunks/chunk-F3YS57NF.js +21 -0
  72. package/dist/cli/chunks/{chunk-I4K2HTQU.js → chunk-FZ76G4QJ.js} +1 -1
  73. package/dist/cli/chunks/{chunk-4UX35V7P.js → chunk-G2Q66Z23.js} +2 -2
  74. package/dist/cli/chunks/{chunk-KJCIMNHS.js → chunk-G6WDYBLQ.js} +1 -1
  75. package/dist/cli/chunks/{chunk-VWUZSNVC.js → chunk-G77ERMUD.js} +1 -1
  76. package/dist/cli/chunks/{chunk-FZHSG75I.js → chunk-GB6HBNH2.js} +2 -2
  77. package/dist/cli/chunks/{chunk-KDI5JOYZ.js → chunk-GHM6MQNK.js} +2 -2
  78. package/dist/cli/chunks/{chunk-H7BLYMNU.js → chunk-GHY6Z6KO.js} +5 -5
  79. package/dist/cli/chunks/{chunk-TFW7CCKS.js → chunk-GII6UM3F.js} +1 -1
  80. package/dist/cli/chunks/{chunk-DOBZPSKE.js → chunk-GU5HNCWI.js} +1 -1
  81. package/dist/cli/chunks/{chunk-AFFN6E6Q.js → chunk-H4GG2NLO.js} +2 -2
  82. package/dist/cli/chunks/{chunk-7R5HC56U.js → chunk-H4H2YSFH.js} +1 -1
  83. package/dist/cli/chunks/{chunk-J4JMCZVA.js → chunk-HD7YIFOI.js} +2 -2
  84. package/dist/cli/chunks/{chunk-5MTWCCZJ.js → chunk-HOAJUIBQ.js} +2 -2
  85. package/dist/cli/chunks/{chunk-T5KHJ3J7.js → chunk-HQZGPJYG.js} +2 -2
  86. package/dist/cli/chunks/{chunk-VEEYL2CZ.js → chunk-HZ5NXFXH.js} +2 -2
  87. package/dist/cli/chunks/{chunk-LQ4NUC6Q.js → chunk-I3C7JOXC.js} +2 -2
  88. package/dist/cli/chunks/{chunk-Z2EA7A4Z.js → chunk-IC3TQEOA.js} +1 -1
  89. package/dist/cli/chunks/{chunk-E44NNCEU.js → chunk-IJUHSJ2U.js} +2 -2
  90. package/dist/cli/chunks/{chunk-EH2S6AOR.js → chunk-J2ZIFFM6.js} +2 -2
  91. package/dist/cli/chunks/{chunk-GVKVJJQX.js → chunk-JGZ722G3.js} +2 -2
  92. package/dist/cli/chunks/{chunk-EK5GMOSO.js → chunk-JQGMW45H.js} +1 -1
  93. package/dist/cli/chunks/{chunk-XGBU3KEM.js → chunk-JRRXCODW.js} +2 -2
  94. package/dist/cli/chunks/{chunk-5WYZHDIZ.js → chunk-K3TLLJMX.js} +1 -1
  95. package/dist/cli/chunks/{chunk-LXQ3B4RY.js → chunk-K4CZA77U.js} +2 -2
  96. package/dist/cli/chunks/chunk-K65CGKLD.js +8 -0
  97. package/dist/cli/chunks/{chunk-HFFPYC4G.js → chunk-KADFXPPN.js} +2 -2
  98. package/dist/cli/chunks/{chunk-APPZATXA.js → chunk-KB56CPU4.js} +2 -2
  99. package/dist/cli/chunks/{chunk-25P77WA5.js → chunk-KCW47QR5.js} +1 -1
  100. package/dist/cli/chunks/{chunk-WM3SRRA6.js → chunk-KDNJ4F3P.js} +2 -2
  101. package/dist/cli/chunks/{chunk-5ERFHEEE.js → chunk-KDVZND5Q.js} +1 -1
  102. package/dist/cli/chunks/{chunk-YOCULVHR.js → chunk-KUAKV3IW.js} +1 -1
  103. package/dist/cli/chunks/{chunk-M5XYIQYZ.js → chunk-KV4T4MXK.js} +2 -2
  104. package/dist/cli/chunks/{chunk-MIK4RBEH.js → chunk-KWYH3FI4.js} +1 -1
  105. package/dist/cli/chunks/{chunk-UKKYMW3S.js → chunk-LFJALJOA.js} +2 -2
  106. package/dist/cli/chunks/{chunk-K7V2WZNF.js → chunk-LL7LDPXS.js} +1 -1
  107. package/dist/cli/chunks/{chunk-55CH76ZO.js → chunk-LUZNKJE6.js} +3 -3
  108. package/dist/cli/chunks/{chunk-OV5RPLKV.js → chunk-LWR3FV3Y.js} +2 -2
  109. package/dist/cli/chunks/{chunk-SMVVAVN2.js → chunk-LZYQHVD4.js} +2 -2
  110. package/dist/cli/chunks/{chunk-672XOJDG.js → chunk-M6AAGIG7.js} +1 -1
  111. package/dist/cli/chunks/{chunk-WCAVIJ64.js → chunk-MAMQA43L.js} +1 -1
  112. package/dist/cli/chunks/chunk-MB46UBGY.js +3 -0
  113. package/dist/cli/chunks/{chunk-AP3ADWDK.js → chunk-MFW5HSG4.js} +2 -2
  114. package/dist/cli/chunks/{chunk-NKTWKYHB.js → chunk-MGZ5FJUW.js} +2 -2
  115. package/dist/cli/chunks/{chunk-ERN43HOX.js → chunk-MVVB7C2E.js} +410 -410
  116. package/dist/cli/chunks/{chunk-57LNKSW7.js → chunk-N4CYAKOX.js} +2 -2
  117. package/dist/cli/chunks/chunk-NT4DBXSX.js +2 -0
  118. package/dist/cli/chunks/{chunk-BZPE3LDO.js → chunk-NU3W5WFT.js} +2 -2
  119. package/dist/cli/chunks/chunk-NURIILUB.js +2 -0
  120. package/dist/cli/chunks/{chunk-ITPGWGQS.js → chunk-NW7IBHJA.js} +4 -4
  121. package/dist/cli/chunks/{chunk-OD5D4LSZ.js → chunk-NZ3GUMB2.js} +2 -2
  122. package/dist/cli/chunks/{chunk-35M2X3C5.js → chunk-NZD4DPSU.js} +2 -2
  123. package/dist/cli/chunks/{chunk-EIDJNT5C.js → chunk-O6FGXMHD.js} +1 -1
  124. package/dist/cli/chunks/{chunk-OYJC3YON.js → chunk-OCAEXYFA.js} +2 -2
  125. package/dist/cli/chunks/{chunk-Y7B5EUIJ.js → chunk-OFACHK5O.js} +2 -2
  126. package/dist/cli/chunks/{chunk-5MNASJOH.js → chunk-P7A4NKTZ.js} +2 -2
  127. package/dist/cli/chunks/{chunk-M7XFBSIK.js → chunk-PB6J6HAA.js} +2 -2
  128. package/dist/cli/chunks/{chunk-5HQP4SLM.js → chunk-PHP5UBT4.js} +2 -2
  129. package/dist/cli/chunks/{chunk-KXS3Y2AX.js → chunk-PIDQVU3L.js} +2 -2
  130. package/dist/cli/chunks/{chunk-4UBVAJFO.js → chunk-PSFSPGUD.js} +2 -2
  131. package/dist/cli/chunks/chunk-PT4FMJPQ.js +3 -0
  132. package/dist/cli/chunks/{chunk-HDJUYAZG.js → chunk-Q3UDLV5Z.js} +1 -1
  133. package/dist/cli/chunks/{chunk-CIAL4YRY.js → chunk-QDEJ4CI2.js} +2 -2
  134. package/dist/cli/chunks/{chunk-S6IYEBAI.js → chunk-QPNG5ZN2.js} +2 -2
  135. package/dist/cli/chunks/{chunk-YPX2TV3M.js → chunk-R7SYRCRP.js} +1 -1
  136. package/dist/cli/chunks/{chunk-XNLIWQYE.js → chunk-RF7HWBHN.js} +2 -2
  137. package/dist/cli/chunks/{chunk-5YLOLACR.js → chunk-RFNW2LGD.js} +2 -2
  138. package/dist/cli/chunks/{chunk-2VLYUF7U.js → chunk-S5AZCIZS.js} +2 -2
  139. package/dist/cli/chunks/{chunk-ETVAYGCB.js → chunk-SE4VNN4I.js} +3 -3
  140. package/dist/cli/chunks/{chunk-E6PF35JZ.js → chunk-SG3NX7QE.js} +2 -2
  141. package/dist/cli/chunks/{chunk-VYTILW4R.js → chunk-SSU73QAX.js} +2 -2
  142. package/dist/cli/chunks/{chunk-ZP75ASUU.js → chunk-SVLQRAMF.js} +1 -1
  143. package/dist/cli/chunks/{chunk-JGJXXAS6.js → chunk-SYV2V3PL.js} +4 -4
  144. package/dist/cli/chunks/{chunk-4RH5I24Q.js → chunk-T3PGQFDI.js} +2 -2
  145. package/dist/cli/chunks/{chunk-O4JAKWWM.js → chunk-TCBBNUBP.js} +17 -17
  146. package/dist/cli/chunks/{chunk-QDESWOZP.js → chunk-TOQWL2ZF.js} +2 -2
  147. package/dist/cli/chunks/{chunk-NTB342NJ.js → chunk-TSQC2KKZ.js} +4 -4
  148. package/dist/cli/chunks/{chunk-NQZNMCZU.js → chunk-TWDW32W2.js} +2 -2
  149. package/dist/cli/chunks/{chunk-CO3DX2AX.js → chunk-TWJTK4CC.js} +2 -2
  150. package/dist/cli/chunks/{chunk-FUYOOKTH.js → chunk-U2FUXDDJ.js} +3 -3
  151. package/dist/cli/chunks/{chunk-XDI5X3FR.js → chunk-UDQSYWVF.js} +1 -1
  152. package/dist/cli/chunks/chunk-UOC3O6RP.js +5 -0
  153. package/dist/cli/chunks/chunk-UT2VZ33P.js +2 -0
  154. package/dist/cli/chunks/{chunk-IOZRKXR5.js → chunk-UTRV7T2N.js} +2 -2
  155. package/dist/cli/chunks/{chunk-ZMHCMJ4J.js → chunk-UXZSUMEA.js} +2 -2
  156. package/dist/cli/chunks/{chunk-G4CKPWF6.js → chunk-VRHRBAEM.js} +1 -1
  157. package/dist/cli/chunks/{chunk-AUUJBXWX.js → chunk-VRVMIPTM.js} +2 -2
  158. package/dist/cli/chunks/{chunk-IENZSO3K.js → chunk-VTDFVFST.js} +2 -2
  159. package/dist/cli/chunks/{chunk-JFLU7L3W.js → chunk-VTOBUZL6.js} +2 -2
  160. package/dist/cli/chunks/{chunk-KKYO2NKV.js → chunk-VU5TBX2V.js} +2 -2
  161. package/dist/cli/chunks/{chunk-XS2XF3YG.js → chunk-W26B7ERY.js} +1 -1
  162. package/dist/cli/chunks/{chunk-DOFREOPQ.js → chunk-W2QWSQVE.js} +2 -2
  163. package/dist/cli/chunks/{chunk-KSLLHFVY.js → chunk-W3INMZZ6.js} +1 -1
  164. package/dist/cli/chunks/{chunk-FLU5FDSC.js → chunk-W3PPFHI5.js} +59 -59
  165. package/dist/cli/chunks/chunk-WKGTGOYS.js +13 -0
  166. package/dist/cli/chunks/{chunk-4X4MWMHB.js → chunk-WNQS4WTS.js} +2 -2
  167. package/dist/cli/chunks/{chunk-XJKZ7FTR.js → chunk-WO274FRI.js} +2 -2
  168. package/dist/cli/chunks/{chunk-76SNL7GU.js → chunk-WOCGL4QP.js} +2 -2
  169. package/dist/cli/chunks/{chunk-HYXUN7BW.js → chunk-WQL7WCIZ.js} +1 -1
  170. package/dist/cli/chunks/{chunk-BTVWA35P.js → chunk-X2Z7F4EU.js} +2 -2
  171. package/dist/cli/chunks/{chunk-VBK2YAYY.js → chunk-X7N2JF2X.js} +2 -2
  172. package/dist/cli/chunks/{chunk-NT7JRHMH.js → chunk-XEAEYC6Y.js} +1 -1
  173. package/dist/cli/chunks/{chunk-G2IJFNZS.js → chunk-XNBOGCF3.js} +2 -2
  174. package/dist/cli/chunks/{chunk-LCVEEII4.js → chunk-XPRVF4YE.js} +2 -2
  175. package/dist/cli/chunks/{chunk-AMZKAJLJ.js → chunk-YBQH2VOP.js} +2 -2
  176. package/dist/cli/chunks/{chunk-JUMICXM6.js → chunk-YQFLQE53.js} +2 -2
  177. package/dist/cli/chunks/{chunk-M5RQ6U3G.js → chunk-YSZ5OE3Z.js} +2 -2
  178. package/dist/cli/chunks/{chunk-RQMCZQN2.js → chunk-YXRASAPI.js} +2 -2
  179. package/dist/cli/chunks/{chunk-X3PZCXWG.js → chunk-YZEXYO4W.js} +1 -1
  180. package/dist/cli/chunks/{chunk-TL6OFMXF.js → chunk-YZWBNBTW.js} +2 -2
  181. package/dist/cli/chunks/{chunk-CFWGGRE7.js → chunk-ZAKQLAHT.js} +1 -1
  182. package/dist/cli/chunks/ci-ENOASTYB.js +81 -0
  183. package/dist/cli/chunks/{ci-config-J665XNOX.js → ci-config-B26OXHQM.js} +2 -2
  184. package/dist/cli/chunks/{ci-output-PEQQQWVD.js → ci-output-JTCLLNOQ.js} +2 -2
  185. package/dist/cli/chunks/{circuit-breaker-HHB2JSKH.js → circuit-breaker-23JMFNM5.js} +2 -2
  186. package/dist/cli/chunks/{claude-flow-setup-JKUJRWPN.js → claude-flow-setup-ON6L462G.js} +2 -2
  187. package/dist/cli/chunks/client-TV3V2YZ5.js +2 -0
  188. package/dist/cli/chunks/{cline-installer-Y77BWTAN.js → cline-installer-OWQ4D2FQ.js} +2 -2
  189. package/dist/cli/chunks/{code-LV2HAGJY.js → code-2ZRL7SEU.js} +19 -18
  190. package/dist/cli/chunks/{code-index-extractor-4GKKSETB.js → code-index-extractor-JXSQVM67.js} +2 -2
  191. package/dist/cli/chunks/{codex-installer-WMKBYE5Y.js → codex-installer-7LXZYBSQ.js} +2 -2
  192. package/dist/cli/chunks/{completions-SBGFAOIJ.js → completions-C2LR623C.js} +2 -2
  193. package/dist/cli/chunks/{complexity-analyzer-AQHFIJXC.js → complexity-analyzer-TGQLHCYJ.js} +2 -2
  194. package/dist/cli/chunks/{continuedev-installer-26AYFS2E.js → continuedev-installer-RUGD24D2.js} +2 -2
  195. package/dist/cli/chunks/{copilot-installer-4UD3DK55.js → copilot-installer-ZLFVLEJP.js} +2 -2
  196. package/dist/cli/chunks/core-handlers-PZT4OLWR.js +2 -0
  197. package/dist/cli/chunks/{cost-tracker-TP4NZCG4.js → cost-tracker-RT4QL745.js} +2 -2
  198. package/dist/cli/chunks/{coverage-B2KIXHAI.js → coverage-NV3C4IMM.js} +11 -10
  199. package/dist/cli/chunks/cross-domain-router-QOFCZ7G4.js +2 -0
  200. package/dist/cli/chunks/{cursor-installer-AVZEQZ4W.js → cursor-installer-LJKLNFF6.js} +2 -2
  201. package/dist/cli/chunks/{daemon-XM2A7LQU.js → daemon-BMDXCQT5.js} +3 -3
  202. package/dist/cli/chunks/{daemon-P574WWBW.js → daemon-FBH3IRYN.js} +4 -4
  203. package/dist/cli/chunks/{dag-attention-scheduler-MIWOZ6ET.js → dag-attention-scheduler-JGDED55I.js} +2 -2
  204. package/dist/cli/chunks/{detect-TYR7HT23.js → detect-SZIHIVCJ.js} +2 -2
  205. package/dist/cli/chunks/{dist-node-2DGVQGLS.js → dist-node-FV3KWXQ6.js} +2 -2
  206. package/dist/cli/chunks/{domain-handler-RRA4ZOMF.js → domain-handler-GI5JWQOV.js} +2 -2
  207. package/dist/cli/chunks/{domain-plugins-IVZEZ5RB.js → domain-plugins-BUWY36TL.js} +2 -2
  208. package/dist/cli/chunks/domain-transfer-GCY7W5DA.js +2 -0
  209. package/dist/cli/chunks/dream-TRFBGDSQ.js +2 -0
  210. package/dist/cli/chunks/{embed-and-insert-pattern-VNIEOVPO.js → embed-and-insert-pattern-GPRR3ZGD.js} +2 -2
  211. package/dist/cli/chunks/{eval-QV4LVPUF.js → eval-XPB3IGAP.js} +2 -2
  212. package/dist/cli/chunks/{experience-capture-middleware-DAPKT763.js → experience-capture-middleware-2E554UB3.js} +3 -3
  213. package/dist/cli/chunks/{fast-paths-WVRFPHX7.js → fast-paths-ZSMWZPUC.js} +2 -2
  214. package/dist/cli/chunks/{feature-flags-DEFTUIYT.js → feature-flags-GIWVDVVC.js} +2 -2
  215. package/dist/cli/chunks/{feature-flags-O7ZXDDCD.js → feature-flags-N7EOGE5P.js} +2 -2
  216. package/dist/cli/chunks/file-discovery-WCKGMSPZ.js +2 -0
  217. package/dist/cli/chunks/fleet-HCHDOUCX.js +44 -0
  218. package/dist/cli/chunks/{gnn-wrapper-LS4LZJDR.js → gnn-wrapper-CZNCNXXZ.js} +2 -2
  219. package/dist/cli/chunks/{heartbeat-handler-RFTERD4K.js → heartbeat-handler-6YUIF2YQ.js} +4 -4
  220. package/dist/cli/chunks/heartbeat-scheduler-P44A2OX3.js +2 -0
  221. package/dist/cli/chunks/hnsw-adapter-ZJQIQJKC.js +2 -0
  222. package/dist/cli/chunks/hnsw-index-HMG2GH3Z.js +2 -0
  223. package/dist/cli/chunks/{hnsw-legacy-bridge-GPKGFFHY.js → hnsw-legacy-bridge-J3M3IK24.js} +2 -2
  224. package/dist/cli/chunks/{hnswlib-node-PHL3F2PR.js → hnswlib-node-ULGTGDZW.js} +2 -2
  225. package/dist/cli/chunks/{hooks-GYJ6D4QM.js → hooks-C4BUGYUQ.js} +28 -28
  226. package/dist/cli/chunks/hybrid-backend-B7M74PZG.js +2 -0
  227. package/dist/cli/chunks/{hypergraph-engine-YGEQPCKJ.js → hypergraph-engine-WINGVMPG.js} +2 -2
  228. package/dist/cli/chunks/{hypergraph-handler-ZIMM647V.js → hypergraph-handler-GADMWKAU.js} +3 -3
  229. package/dist/cli/chunks/impact-analyzer-PZYOVKQO.js +2 -0
  230. package/dist/cli/chunks/{init-guard-VOMBXJXG.js → init-guard-K2T4QWAO.js} +2 -2
  231. package/dist/cli/chunks/{init-handler-PSMUBWK5.js → init-handler-PCZTDZYI.js} +6 -6
  232. package/dist/cli/chunks/init-wizard-TZDJQK3U.js +2 -0
  233. package/dist/cli/chunks/kernel-Y6RRIOKW.js +2 -0
  234. package/dist/cli/chunks/{kilocode-installer-2YNTFBWJ.js → kilocode-installer-XENXNEIU.js} +2 -2
  235. package/dist/cli/chunks/{kiro-installer-XHJDPVAZ.js → kiro-installer-3PG2TJ67.js} +2 -2
  236. package/dist/cli/chunks/knowledge-graph-BVD5Z66M.js +2 -0
  237. package/dist/cli/chunks/{learning-GNSIDRNG.js → learning-6KDH7FK4.js} +3 -3
  238. package/dist/cli/chunks/{llm-router-LQDM7IU2.js → llm-router-RKVDEWU2.js} +4 -4
  239. package/dist/cli/chunks/llm-router-service-KHCAMSUU.js +2 -0
  240. package/dist/cli/chunks/{load-YATHI72E.js → load-ITHC564X.js} +2 -2
  241. package/dist/cli/chunks/load-test-RUF7DZA5.js +2 -0
  242. package/dist/cli/chunks/{mcp-4Y6GDLYK.js → mcp-TCL5UW3N.js} +2 -2
  243. package/dist/cli/chunks/{memory-OUW3L7H2.js → memory-BKDAY2N2.js} +5 -5
  244. package/dist/cli/chunks/memory-backend-7ZLFOVGG.js +2 -0
  245. package/dist/cli/chunks/{memory-handlers-G3LFF53U.js → memory-handlers-WN4FXFOA.js} +2 -2
  246. package/dist/cli/chunks/{multi-model-executor-UBZJXAD2.js → multi-model-executor-VHAT7ZPF.js} +2 -2
  247. package/dist/cli/chunks/{opencode-installer-AMMNWVH5.js → opencode-installer-E3VM3EEY.js} +2 -2
  248. package/dist/cli/chunks/{orchestrator-Y44WDOER.js → orchestrator-BMQ6X762.js} +58 -20
  249. package/dist/cli/chunks/pattern-null-store-RY6CVYHP.js +2 -0
  250. package/dist/cli/chunks/{pattern-usage-recorder-ESR42RME.js → pattern-usage-recorder-GOOR2BV5.js} +2 -2
  251. package/dist/cli/chunks/{pipeline-EDTS6OSC.js → pipeline-5NSFQQIX.js} +2 -2
  252. package/dist/cli/chunks/{platform-5WONJSUX.js → platform-SQM34J5G.js} +2 -2
  253. package/dist/cli/chunks/{plugin-IJXPCLD4.js → plugin-UQJZRMZG.js} +2 -2
  254. package/dist/cli/chunks/{prime-radiant-advanced-wasm-5ECKGZK6.js → prime-radiant-advanced-wasm-WMDJOL4S.js} +2 -2
  255. package/dist/cli/chunks/project-root-IO5KRNGL.js +2 -0
  256. package/dist/cli/chunks/protocol-executor-U2CUDWDE.js +2 -0
  257. package/dist/cli/chunks/{protocol-handler-DRD3GVNW.js → protocol-handler-OBDCVY6X.js} +2 -2
  258. package/dist/cli/chunks/{prove-KTGW2HMJ.js → prove-XDC7I4XT.js} +2 -2
  259. package/dist/cli/chunks/qe-reasoning-bank-DQSSX2IP.js +2 -0
  260. package/dist/cli/chunks/{quality-DV2WPRRS.js → quality-L4GQ6WX4.js} +2 -2
  261. package/dist/cli/chunks/{quality-gate-HFUAFVZC.js → quality-gate-MJG66LKN.js} +3 -3
  262. package/dist/cli/chunks/queen-coordinator-6FN4BZIX.js +2 -0
  263. package/dist/cli/chunks/real-embeddings-HW4G2LWL.js +2 -0
  264. package/dist/cli/chunks/{ref-validation-QWSKS5OY.js → ref-validation-FC7JOJ2C.js} +2 -2
  265. package/dist/cli/chunks/{roocode-installer-RBAYRCHX.js → roocode-installer-KWS4CEIC.js} +2 -2
  266. package/dist/cli/chunks/router-YUO3I7RU.js +2 -0
  267. package/dist/cli/chunks/routing-feedback-36SLQGJE.js +2 -0
  268. package/dist/cli/chunks/{routing-handler-FMPP3XKO.js → routing-handler-QF4WVB2S.js} +2 -2
  269. package/dist/cli/chunks/{ruvector-commands-KZZT4HWF.js → ruvector-commands-2MTCOUK6.js} +2 -2
  270. package/dist/cli/chunks/rvf-dual-writer-FRYZH3WZ.js +2 -0
  271. package/dist/cli/chunks/rvf-migration-adapter-XXNITL5I.js +2 -0
  272. package/dist/cli/chunks/{rvf-migration-coordinator-7CHEV35N.js → rvf-migration-coordinator-BREJCXWN.js} +2 -2
  273. package/dist/cli/chunks/rvf-native-adapter-D2WWKJIV.js +2 -0
  274. package/dist/cli/chunks/{rvf-store-integrity-Q2TH52SN.js → rvf-store-integrity-KKC6HOJD.js} +2 -2
  275. package/dist/cli/chunks/safe-db-4RRIGRXD.js +2 -0
  276. package/dist/cli/chunks/schedule-25RTO4DQ.js +2 -0
  277. package/dist/cli/chunks/scheduler-BPIOJZ5P.js +2 -0
  278. package/dist/cli/chunks/{security-CUEA3UIM.js → security-OSAE7VAP.js} +3 -3
  279. package/dist/cli/chunks/{shared-rvf-adapter-DROMBRV2.js → shared-rvf-adapter-COUOS665.js} +2 -2
  280. package/dist/cli/chunks/{shared-rvf-dual-writer-DBNABOP7.js → shared-rvf-dual-writer-YXMPZKQE.js} +2 -2
  281. package/dist/cli/chunks/sqlite-persistence-EDF47DDX.js +2 -0
  282. package/dist/cli/chunks/{standalone-memory-IAHA3M6B.js → standalone-memory-E6JBMOIL.js} +2 -2
  283. package/dist/cli/chunks/{status-handler-AFUCASTX.js → status-handler-AFTCIYIX.js} +2 -2
  284. package/dist/cli/chunks/{structural-health-AQRV6JJ6.js → structural-health-2FROCEI4.js} +2 -2
  285. package/dist/cli/chunks/{sync-XW5TLZ7M.js → sync-VAYTOWDC.js} +2 -2
  286. package/dist/cli/chunks/{sync-GX7FMJHL.js → sync-YIQYOFGW.js} +2 -2
  287. package/dist/cli/chunks/task-handler-KVQHDEX3.js +62 -0
  288. package/dist/cli/chunks/task-handlers-MVVECQA6.js +9 -0
  289. package/dist/cli/chunks/{test-D2XDJNDX.js → test-5JSVTOMY.js} +4 -4
  290. package/dist/cli/chunks/test-runner-process-LEPF2OSS.js +2 -0
  291. package/dist/cli/chunks/{test-scheduling-TS6I2PR7.js → test-scheduling-HBOHVLI3.js} +3 -3
  292. package/dist/cli/chunks/{token-bootstrap-HBBLPCZ3.js → token-bootstrap-5VEPTPFA.js} +2 -2
  293. package/dist/cli/chunks/{token-usage-3MBUX4PR.js → token-usage-TBJHDLY6.js} +2 -2
  294. package/dist/cli/chunks/{transformers-ZWMQO3L2.js → transformers-VAWYMHMZ.js} +2 -2
  295. package/dist/cli/chunks/tree-sitter-wasm-parser-TSZTCMFV.js +2 -0
  296. package/dist/cli/chunks/{types-5YEMGPSQ.js → types-R5SDZU2E.js} +2 -2
  297. package/dist/cli/chunks/unified-memory-TLGSSLMI.js +2 -0
  298. package/dist/cli/chunks/unified-memory-hnsw-MSUR7ZOO.js +2 -0
  299. package/dist/cli/chunks/unified-persistence-VFFOTWK7.js +2 -0
  300. package/dist/cli/chunks/{upgrade-2TPBKIHI.js → upgrade-K5PIHXRB.js} +2 -2
  301. package/dist/cli/chunks/{validate-XRAXXFW6.js → validate-RPTS7RYJ.js} +2 -2
  302. package/dist/cli/chunks/{validate-swarm-IYSCS3BZ.js → validate-swarm-B2ZL556X.js} +2 -2
  303. package/dist/cli/chunks/visual-security-6Q44XNLB.js +2 -0
  304. package/dist/cli/chunks/{web-tree-sitter-PZQ3ZG2P.js → web-tree-sitter-K4DUJC32.js} +2 -2
  305. package/dist/cli/chunks/{windsurf-installer-U6XWFRVT.js → windsurf-installer-OK2AJN35.js} +2 -2
  306. package/dist/cli/chunks/witness-chain-KDOMXDQX.js +2 -0
  307. package/dist/cli/chunks/witness-chain-N3OY2RMH.js +2 -0
  308. package/dist/cli/chunks/{witness-chain-repair-K7YX2AO6.js → witness-chain-repair-L6Y5RFXR.js} +2 -2
  309. package/dist/cli/chunks/{witness-chain-verifier-GUTC3W7N.js → witness-chain-verifier-N4CW7FZX.js} +2 -2
  310. package/dist/cli/chunks/{witness-key-manager-YBNKMOP6.js → witness-key-manager-TDNPS3WD.js} +2 -2
  311. package/dist/cli/chunks/{workflow-UAJUILFQ.js → workflow-XRZA3YCY.js} +4 -4
  312. package/dist/cli/chunks/workflow-orchestrator-CVNNT2RJ.js +2 -0
  313. package/dist/cli/chunks/{wrappers-AVZ3GPAL.js → wrappers-5JIFWKN6.js} +2 -2
  314. package/dist/cli/commands/ci.js +7 -0
  315. package/dist/cli/commands/code.js +6 -0
  316. package/dist/cli/commands/coverage.js +7 -1
  317. package/dist/cli/commands/fleet-run.d.ts +12 -0
  318. package/dist/cli/commands/fleet-run.js +175 -0
  319. package/dist/cli/commands/fleet.js +2 -117
  320. package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +4 -3
  321. package/dist/cli/commands/hooks-handlers/stats-hooks.js +22 -4
  322. package/dist/cli/handlers/task-handler.d.ts +5 -0
  323. package/dist/cli/handlers/task-handler.js +26 -0
  324. package/dist/cli/utils/coverage-verdict.d.ts +11 -2
  325. package/dist/cli/utils/coverage-verdict.js +26 -6
  326. package/dist/cli/utils/fleet-operation.d.ts +10 -2
  327. package/dist/cli/utils/fleet-operation.js +20 -3
  328. package/dist/cli/utils/fleet-result.d.ts +20 -4
  329. package/dist/cli/utils/fleet-result.js +32 -21
  330. package/dist/cli/utils/fleet-shard.d.ts +36 -0
  331. package/dist/cli/utils/fleet-shard.js +110 -0
  332. package/dist/coordination/handlers/code-intelligence-handlers.js +21 -1
  333. package/dist/coordination/handlers/coverage-collection.d.ts +2 -0
  334. package/dist/coordination/handlers/coverage-collection.js +2 -1
  335. package/dist/coordination/handlers/coverage-evidence.d.ts +75 -0
  336. package/dist/coordination/handlers/coverage-evidence.js +159 -0
  337. package/dist/coordination/handlers/coverage-handlers.js +16 -3
  338. package/dist/coordination/handlers/coverage-scope.d.ts +40 -0
  339. package/dist/coordination/handlers/coverage-scope.js +321 -0
  340. package/dist/coordination/handlers/coverage-target.d.ts +9 -0
  341. package/dist/coordination/handlers/coverage-target.js +15 -5
  342. package/dist/coordination/handlers/handler-types.d.ts +2 -2
  343. package/dist/coordination/handlers/handler-utils.d.ts +11 -0
  344. package/dist/coordination/handlers/handler-utils.js +22 -8
  345. package/dist/coordination/handlers/misc-handlers.js +5 -2
  346. package/dist/coordination/handlers/quality-handlers.js +2 -2
  347. package/dist/coordination/handlers/security-handlers.js +12 -2
  348. package/dist/coordination/protocols/security-audit.js +11 -1
  349. package/dist/coordination/task-executor.js +7 -2
  350. package/dist/domains/code-intelligence/coordinator-gnn.d.ts +2 -16
  351. package/dist/domains/code-intelligence/coordinator-gnn.js +1 -62
  352. package/dist/domains/code-intelligence/coordinator.d.ts +12 -6
  353. package/dist/domains/code-intelligence/coordinator.js +24 -27
  354. package/dist/domains/code-intelligence/interfaces.d.ts +9 -0
  355. package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +4 -1
  356. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +51 -5
  357. package/dist/domains/code-intelligence/services/semantic-analyzer.js +144 -78
  358. package/dist/domains/coverage-analysis/collected-metrics.d.ts +10 -0
  359. package/dist/domains/coverage-analysis/collected-metrics.js +29 -0
  360. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +11 -3
  361. package/dist/domains/coverage-analysis/services/coverage-parser.d.ts +2 -0
  362. package/dist/domains/coverage-analysis/services/coverage-parser.js +18 -2
  363. package/dist/domains/quality-assessment/coherence/gate-controller.js +16 -4
  364. package/dist/domains/quality-assessment/coherence/lambda-calculator.d.ts +8 -0
  365. package/dist/domains/quality-assessment/coherence/lambda-calculator.js +57 -14
  366. package/dist/domains/quality-assessment/coherence/types.d.ts +12 -7
  367. package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +3 -1
  368. package/dist/domains/quality-assessment/coordinator-reports.d.ts +30 -10
  369. package/dist/domains/quality-assessment/coordinator-reports.js +93 -57
  370. package/dist/domains/quality-assessment/coordinator.d.ts +14 -40
  371. package/dist/domains/quality-assessment/coordinator.js +10 -4
  372. package/dist/domains/quality-assessment/interfaces.d.ts +2 -0
  373. package/dist/domains/quality-assessment/services/coherence-gate.js +15 -2
  374. package/dist/domains/quality-assessment/services/quality-gate.js +6 -4
  375. package/dist/domains/security-compliance/index.d.ts +1 -1
  376. package/dist/domains/security-compliance/interfaces.d.ts +46 -5
  377. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +3 -3
  378. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +15 -14
  379. package/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +8 -9
  380. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +19 -44
  381. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +3 -3
  382. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +13 -9
  383. package/dist/domains/security-compliance/services/scanners/dast-requests.d.ts +54 -0
  384. package/dist/domains/security-compliance/services/scanners/dast-requests.js +125 -0
  385. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +5 -1
  386. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +125 -155
  387. package/dist/domains/security-compliance/services/scanners/index.d.ts +1 -1
  388. package/dist/domains/security-compliance/services/scanners/index.js +1 -1
  389. package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +2 -2
  390. package/dist/domains/security-compliance/services/security-auditor-dast.js +183 -212
  391. package/dist/domains/security-compliance/services/security-auditor-reports.js +5 -1
  392. package/dist/domains/security-compliance/services/security-auditor.d.ts +11 -3
  393. package/dist/domains/security-compliance/services/security-auditor.js +106 -65
  394. package/dist/domains/test-execution/coordinator.d.ts +2 -1
  395. package/dist/domains/test-execution/coordinator.js +33 -27
  396. package/dist/domains/test-execution/interfaces.d.ts +5 -0
  397. package/dist/domains/test-execution/services/test-executor.d.ts +6 -0
  398. package/dist/domains/test-execution/services/test-executor.js +16 -4
  399. package/dist/domains/visual-accessibility/coordinator.js +34 -9
  400. package/dist/domains/visual-accessibility/interfaces.d.ts +27 -0
  401. package/dist/domains/visual-accessibility/plugin.js +5 -0
  402. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts +13 -21
  403. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js +13 -297
  404. package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +13 -5
  405. package/dist/domains/visual-accessibility/services/accessibility-tester.js +96 -73
  406. package/dist/init/phases/10-workers.js +42 -4
  407. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +23 -1
  408. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +50 -15
  409. package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +7 -2
  410. package/dist/integrations/agentic-flow/reasoning-bank/index.js +8 -0
  411. package/dist/integrations/embeddings/index/HNSWIndex.js +8 -4
  412. package/dist/integrations/ruvector/transfer-coherence-stub.js +5 -10
  413. package/dist/learning/embedder-endpoint-client.d.ts +8 -0
  414. package/dist/learning/embedder-endpoint-client.js +20 -0
  415. package/dist/learning/embedder-recovery.d.ts +63 -0
  416. package/dist/learning/embedder-recovery.js +94 -0
  417. package/dist/learning/qe-reasoning-bank-types.d.ts +5 -0
  418. package/dist/learning/qe-reasoning-bank.d.ts +21 -0
  419. package/dist/learning/qe-reasoning-bank.js +54 -8
  420. package/dist/learning/real-embeddings.d.ts +23 -0
  421. package/dist/learning/real-embeddings.js +69 -2
  422. package/dist/learning/real-qe-reasoning-bank.d.ts +24 -4
  423. package/dist/learning/real-qe-reasoning-bank.js +58 -20
  424. package/dist/logging/redaction.js +142 -12
  425. package/dist/mcp/bundle.js +509 -497
  426. package/dist/mcp/daemon-mode.d.ts +126 -0
  427. package/dist/mcp/daemon-mode.js +257 -0
  428. package/dist/mcp/entry.d.ts +4 -0
  429. package/dist/mcp/entry.js +50 -2
  430. package/dist/mcp/handlers/domain-handler-configs.d.ts +8 -0
  431. package/dist/mcp/handlers/domain-handler-configs.js +14 -2
  432. package/dist/mcp/handlers/handler-factory.js +3 -0
  433. package/dist/mcp/handlers/model-route-handlers.d.ts +107 -0
  434. package/dist/mcp/handlers/model-route-handlers.js +139 -0
  435. package/dist/mcp/handlers/orchestrate-routes.d.ts +6 -1
  436. package/dist/mcp/handlers/orchestrate-routes.js +94 -3
  437. package/dist/mcp/handlers/task-handlers.d.ts +3 -242
  438. package/dist/mcp/handlers/task-handlers.js +11 -788
  439. package/dist/mcp/handlers/task-inference.d.ts +26 -0
  440. package/dist/mcp/handlers/task-inference.js +156 -0
  441. package/dist/mcp/handlers/task-learning-handlers.d.ts +92 -0
  442. package/dist/mcp/handlers/task-learning-handlers.js +230 -0
  443. package/dist/mcp/handlers/task-orchestrate-handler.d.ts +73 -0
  444. package/dist/mcp/handlers/task-orchestrate-handler.js +361 -0
  445. package/dist/mcp/protocol-server.js +15 -2
  446. package/dist/mcp/services/reasoning-bank-service.d.ts +6 -1
  447. package/dist/mcp/services/reasoning-bank-service.js +9 -0
  448. package/dist/mcp/tools/code-intelligence/analyze.js +3 -6
  449. package/dist/mcp/tools/coverage-analysis/index.d.ts +4 -0
  450. package/dist/mcp/tools/coverage-analysis/index.js +8 -2
  451. package/dist/mcp/tools/visual-accessibility/index.d.ts +7 -0
  452. package/dist/mcp/tools/visual-accessibility/index.js +29 -13
  453. package/dist/mcp/types.d.ts +14 -0
  454. package/dist/routing/advisor/redaction.js +22 -2
  455. package/dist/shared/events/domain-events.d.ts +2 -0
  456. package/dist/shared/llm/providers/response-deadline.js +16 -2
  457. package/dist/shared/metrics/code-metrics.js +21 -3
  458. package/dist/shared/parsers/typescript-parser.d.ts +6 -0
  459. package/dist/shared/parsers/typescript-parser.js +13 -1
  460. package/dist/shared/types/index.js +3 -1
  461. package/dist/strange-loop/infra-healing/infra-aware-agent-provider.js +8 -1
  462. package/package.json +3 -3
  463. package/dist/cli/chunks/adapter-V4GSGOOK.js +0 -2
  464. package/dist/cli/chunks/aqe-learning-engine-6WQTM5YR.js +0 -2
  465. package/dist/cli/chunks/base-AK7BXBX2.js +0 -2
  466. package/dist/cli/chunks/browser-workflow-VTDFBW7T.js +0 -2
  467. package/dist/cli/chunks/chunk-2DTX7YAZ.js +0 -6
  468. package/dist/cli/chunks/chunk-72ZBJD2E.js +0 -3
  469. package/dist/cli/chunks/chunk-EBPJY4DI.js +0 -3
  470. package/dist/cli/chunks/chunk-H43AFUKL.js +0 -2
  471. package/dist/cli/chunks/chunk-HJ3XNTTJ.js +0 -2
  472. package/dist/cli/chunks/chunk-IO5537OM.js +0 -2
  473. package/dist/cli/chunks/chunk-IW6WDGHM.js +0 -2
  474. package/dist/cli/chunks/chunk-K2HBNYAZ.js +0 -62
  475. package/dist/cli/chunks/chunk-LRL56ZYL.js +0 -21
  476. package/dist/cli/chunks/chunk-VLD7Z2ED.js +0 -13
  477. package/dist/cli/chunks/chunk-VO3DRK4P.js +0 -3
  478. package/dist/cli/chunks/ci-6GUFAZMJ.js +0 -81
  479. package/dist/cli/chunks/client-HL2COSFM.js +0 -2
  480. package/dist/cli/chunks/core-handlers-IX7ATLM6.js +0 -2
  481. package/dist/cli/chunks/cross-domain-router-YYKLAPJO.js +0 -2
  482. package/dist/cli/chunks/domain-transfer-DOBI67K6.js +0 -2
  483. package/dist/cli/chunks/dream-T6EP7B3F.js +0 -2
  484. package/dist/cli/chunks/file-discovery-JYMVTDMU.js +0 -2
  485. package/dist/cli/chunks/fleet-FVAUMKUT.js +0 -46
  486. package/dist/cli/chunks/heartbeat-scheduler-4N5MUJ7S.js +0 -2
  487. package/dist/cli/chunks/hnsw-adapter-ZPAJDSLR.js +0 -2
  488. package/dist/cli/chunks/hnsw-index-4CTH6RHB.js +0 -2
  489. package/dist/cli/chunks/hybrid-backend-AW6UTXQS.js +0 -2
  490. package/dist/cli/chunks/impact-analyzer-MZK3JMSV.js +0 -2
  491. package/dist/cli/chunks/init-wizard-FUC7KDVX.js +0 -2
  492. package/dist/cli/chunks/kernel-ZCPMCVMW.js +0 -2
  493. package/dist/cli/chunks/knowledge-graph-NUJKEDNF.js +0 -2
  494. package/dist/cli/chunks/llm-router-service-B2BFBQ76.js +0 -2
  495. package/dist/cli/chunks/load-test-ZHQ2MUGO.js +0 -2
  496. package/dist/cli/chunks/memory-backend-AAMQG6WH.js +0 -2
  497. package/dist/cli/chunks/pattern-null-store-RFNVA46O.js +0 -2
  498. package/dist/cli/chunks/project-root-7QL4KP5C.js +0 -2
  499. package/dist/cli/chunks/protocol-executor-2NW5BD4R.js +0 -2
  500. package/dist/cli/chunks/qe-reasoning-bank-G2JZOGKD.js +0 -2
  501. package/dist/cli/chunks/queen-coordinator-GRG5FT2A.js +0 -2
  502. package/dist/cli/chunks/real-embeddings-RQRVOKVM.js +0 -2
  503. package/dist/cli/chunks/router-LQB5SWAF.js +0 -2
  504. package/dist/cli/chunks/routing-feedback-OEEXA55N.js +0 -2
  505. package/dist/cli/chunks/rvf-dual-writer-BZK4M7BO.js +0 -2
  506. package/dist/cli/chunks/rvf-migration-adapter-EZZUJL2E.js +0 -2
  507. package/dist/cli/chunks/rvf-native-adapter-6COXTQZ3.js +0 -2
  508. package/dist/cli/chunks/safe-db-PE6G3L55.js +0 -2
  509. package/dist/cli/chunks/schedule-OLKQ6QYW.js +0 -2
  510. package/dist/cli/chunks/scheduler-LSGBDFAT.js +0 -2
  511. package/dist/cli/chunks/sqlite-persistence-HH4DNTYH.js +0 -2
  512. package/dist/cli/chunks/task-handler-TFKVUTNF.js +0 -60
  513. package/dist/cli/chunks/task-handlers-SS4ZDXNF.js +0 -9
  514. package/dist/cli/chunks/test-runner-process-PSSBNNGR.js +0 -2
  515. package/dist/cli/chunks/tree-sitter-wasm-parser-TYRQRJ2W.js +0 -2
  516. package/dist/cli/chunks/unified-memory-AGDZQ5XD.js +0 -2
  517. package/dist/cli/chunks/unified-memory-hnsw-X5TJ3JDE.js +0 -2
  518. package/dist/cli/chunks/unified-persistence-UCV7YETW.js +0 -2
  519. package/dist/cli/chunks/visual-security-ZLXRIQZV.js +0 -2
  520. package/dist/cli/chunks/witness-chain-CVIWYTD2.js +0 -2
  521. package/dist/cli/chunks/witness-chain-VBKORKOX.js +0 -2
  522. package/dist/cli/chunks/workflow-orchestrator-3ZN7MVCE.js +0 -2
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- 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.11");process.exit(0)}
3
- import{a as A,b as be,c as Se}from"./chunk-55CH76ZO.js";import{c as Te,d as _e}from"./chunk-I36CRDHF.js";import{a as ee}from"./chunk-G4CKPWF6.js";import{d as W,h as oe}from"./chunk-6NA3KZZT.js";import"./chunk-NTB342NJ.js";import{b as fe}from"./chunk-JGJXXAS6.js";import"./chunk-35M2X3C5.js";import{b as Z}from"./chunk-7HEMJHPP.js";import"./chunk-DOBZPSKE.js";import"./chunk-V5AADCBC.js";import"./chunk-CO3DX2AX.js";import"./chunk-KDI5JOYZ.js";import"./chunk-NT7JRHMH.js";import{a as ge}from"./chunk-RTY7VSZB.js";import{d as ye,e as Ee}from"./chunk-AUUJBXWX.js";import{a as he,b as ke}from"./chunk-YNOCQ2SL.js";import"./chunk-IOZRKXR5.js";import{r as M,v as U}from"./chunk-LD5CFK53.js";import"./chunk-XGPTZUKQ.js";import{b as me,d as He}from"./chunk-JFLU7L3W.js";import{a as K,b as Y,c as pe,e as Fe}from"./chunk-WM3SRRA6.js";import"./chunk-XGBU3KEM.js";import"./chunk-G2IJFNZS.js";import"./chunk-M5XYIQYZ.js";import"./chunk-NQZNMCZU.js";import"./chunk-5N25I53C.js";import"./chunk-OYJC3YON.js";import"./chunk-VLD7Z2ED.js";import"./chunk-EJPK7OTR.js";import"./chunk-7R5HC56U.js";import"./chunk-IW6WDGHM.js";import"./chunk-QDESWOZP.js";import{a as Be}from"./chunk-IO5537OM.js";import{c as ue}from"./chunk-FZHSG75I.js";import"./chunk-VO3DRK4P.js";import"./chunk-HJ3XNTTJ.js";import"./chunk-76SNL7GU.js";import"./chunk-DOFREOPQ.js";import{c as R}from"./chunk-EH2S6AOR.js";import"./chunk-XNLIWQYE.js";import"./chunk-Z2EA7A4Z.js";import"./chunk-J4JMCZVA.js";import"./chunk-4MUBW4RT.js";import"./chunk-DDEOZPWJ.js";import"./chunk-XJKZ7FTR.js";import"./chunk-CFWGGRE7.js";import{Command as kt}from"commander";import $ from"chalk";import Re from"node:path";U();import{randomUUID as B}from"crypto";import I from"chalk";var H="dream-scheduler:hook-state";async function we(r,e,t){try{let{computeRealEmbedding:n}=await import("./real-embeddings-RQRVOKVM.js"),o=await n(t.slice(0,512));r.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(o).buffer),o.length,e)}catch(n){console.error(I.dim(`[hooks] embedding persistence: ${n instanceof Error?n.message:"unknown"}`))}}async function x(r){try{let e=await r.get(H);return e||(e={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0}),e.experienceCount++,await r.set(H,e),e.experienceCount}catch{return 0}}async function G(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-AGDZQ5XD.js"),t=e();t.isInitialized()||await t.initialize();let{initializeExperienceCapture:n}=await import("./experience-capture-middleware-DAPKT763.js");await n();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}let s=`cli-${Date.now()}-${B().slice(0,8)}`,a=r.durationMs||0,c;if(r.success){let i=a>0&&a<5e3?.1:0,f=r.source.includes("post-task")?.1:r.source.includes("post-edit")?.05:0;c=Math.min(.95,.7+i+f)}else{let i=r.source.includes("post-task")?.15:r.source.includes("post-edit")?.1:0;c=Math.min(.6,.3+i)}o.prepare(`
2
+ 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)}
3
+ import{a as A,b as Se,c as we}from"./chunk-LUZNKJE6.js";import{c as _e,d as be}from"./chunk-3YNLWPBF.js";import{a as ee}from"./chunk-VRHRBAEM.js";import{d as W,h as oe}from"./chunk-72ASBE35.js";import"./chunk-TSQC2KKZ.js";import{b as he}from"./chunk-SYV2V3PL.js";import"./chunk-NZD4DPSU.js";import{b as Z}from"./chunk-E7CLYGS7.js";import"./chunk-GU5HNCWI.js";import"./chunk-5VMAV6T6.js";import"./chunk-TWJTK4CC.js";import"./chunk-GHM6MQNK.js";import"./chunk-XEAEYC6Y.js";import{a as fe}from"./chunk-6KATY3KS.js";import{d as Ee,e as Te}from"./chunk-VRVMIPTM.js";import{a as ke,b as ye}from"./chunk-4OVC4RIL.js";import"./chunk-UTRV7T2N.js";import{r as M,v as U}from"./chunk-3Y7TJFHU.js";import"./chunk-7CMTY45A.js";import{b as me,d as Fe}from"./chunk-VTOBUZL6.js";import{a as K,b as Y,c as pe,e as ze}from"./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{a as ge}from"./chunk-WKGTGOYS.js";import"./chunk-DVGRPK7A.js";import"./chunk-H4H2YSFH.js";import"./chunk-NURIILUB.js";import"./chunk-TOQWL2ZF.js";import{a as He}from"./chunk-UT2VZ33P.js";import{c as ue}from"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-WOCGL4QP.js";import"./chunk-W2QWSQVE.js";import{c as R}from"./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 yt}from"commander";import $ from"chalk";import ve from"node:path";U();import{randomUUID as B}from"crypto";import I from"chalk";var H="dream-scheduler:hook-state";async function Re(r,e,t){try{let{computeRealEmbedding:n}=await import("./real-embeddings-HW4G2LWL.js"),o=await n(t.slice(0,512));r.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(o).buffer),o.length,e)}catch(n){console.error(I.dim(`[hooks] embedding persistence: ${n instanceof Error?n.message:"unknown"}`))}}async function x(r){try{let e=await r.get(H);return e||(e={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0}),e.experienceCount++,await r.set(H,e),e.experienceCount}catch{return 0}}async function G(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-TLGSSLMI.js"),t=e();t.isInitialized()||await t.initialize();let{initializeExperienceCapture:n}=await import("./experience-capture-middleware-2E554UB3.js");await n();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}let s=`cli-${Date.now()}-${B().slice(0,8)}`,a=r.durationMs||0,c;if(r.success){let i=a>0&&a<5e3?.1:0,f=r.source.includes("post-task")?.1:r.source.includes("post-edit")?.05:0;c=Math.min(.95,.7+i+f)}else{let i=r.source.includes("post-task")?.15:r.source.includes("post-edit")?.1:0;c=Math.min(.6,.3+i)}o.prepare(`
4
4
  INSERT OR REPLACE INTO captured_experiences
5
5
  (id, task, agent, domain, success, quality, duration_ms,
6
6
  started_at, completed_at, source)
7
7
  VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), ?)
8
- `).run(s,r.task.slice(0,500),r.agent,r.domain,r.success?1:0,c,a,r.source),await we(o,s,`${r.domain}: ${r.task}`)}catch(e){console.error(I.dim(`[hooks] persistCommandExperience: ${e instanceof Error?e.message:"unknown"}`))}}async function se(r){let{getUnifiedMemory:e}=await import("./unified-memory-AGDZQ5XD.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}try{n.exec(`
8
+ `).run(s,r.task.slice(0,500),r.agent,r.domain,r.success?1:0,c,a,r.source),await Re(o,s,`${r.domain}: ${r.task}`)}catch(e){console.error(I.dim(`[hooks] persistCommandExperience: ${e instanceof Error?e.message:"unknown"}`))}}async function se(r){let{getUnifiedMemory:e}=await import("./unified-memory-TLGSSLMI.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}try{n.exec(`
9
9
  CREATE TABLE IF NOT EXISTS captured_experiences (
10
10
  id TEXT PRIMARY KEY,
11
11
  task TEXT NOT NULL,
@@ -71,7 +71,7 @@ import{a as A,b as be,c as Se}from"./chunk-55CH76ZO.js";import{c as Te,d as _e}f
71
71
  AND successful_uses >= 3
72
72
  AND success_rate >= 0.7
73
73
  AND confidence >= 0.6
74
- `);for(let b of l.selectedPatternIds){D.run(`app-${Date.now()}-${B().slice(0,8)}`,o,`${s}:pattern:${b}`,r.success?1:0,T,`[Patch 160+300] task-bridge pattern_id=${b} ts=${T}`);try{he(n,{patternId:b,success:r.success,metrics:{tokens_saved:T,source:"cli-hook-post-task",experience_id:o},feedback:`[Patch 160+300] task-bridge pattern_id=${b} ts=${T}`})}catch{}try{let j=L.get(b);j?.tier==="short-term"&&j.successful_uses>=3&&j.success_rate>=.7&&j.confidence>=.6&&C.run(b)}catch{}}g&&n.prepare("DELETE FROM kv_store WHERE namespace='task-bridge' AND key = ?").run(g.key)}}catch(g){console.error(I.dim(`[hooks] post-task bridge: ${g instanceof Error?g.message:"unknown"}`))}let u=`traj-${Date.now()}-${B().slice(0,8)}`,E=r.parentAgentId!==void 0||r.depth!==void 0?JSON.stringify({...r.parentAgentId!==void 0?{parentAgentId:r.parentAgentId}:{},...r.depth!==void 0?{depth:r.depth}:{}}):null;n.prepare(`
74
+ `);for(let b of l.selectedPatternIds){D.run(`app-${Date.now()}-${B().slice(0,8)}`,o,`${s}:pattern:${b}`,r.success?1:0,T,`[Patch 160+300] task-bridge pattern_id=${b} ts=${T}`);try{ke(n,{patternId:b,success:r.success,metrics:{tokens_saved:T,source:"cli-hook-post-task",experience_id:o},feedback:`[Patch 160+300] task-bridge pattern_id=${b} ts=${T}`})}catch{}try{let j=L.get(b);j?.tier==="short-term"&&j.successful_uses>=3&&j.success_rate>=.7&&j.confidence>=.6&&C.run(b)}catch{}}g&&n.prepare("DELETE FROM kv_store WHERE namespace='task-bridge' AND key = ?").run(g.key)}}catch(g){console.error(I.dim(`[hooks] post-task bridge: ${g instanceof Error?g.message:"unknown"}`))}let u=`traj-${Date.now()}-${B().slice(0,8)}`,E=r.parentAgentId!==void 0||r.depth!==void 0?JSON.stringify({...r.parentAgentId!==void 0?{parentAgentId:r.parentAgentId}:{},...r.depth!==void 0?{depth:r.depth}:{}}):null;n.prepare(`
75
75
  INSERT INTO qe_trajectories (id, task, agent, domain, started_at, ended_at, success, steps_json, metadata_json)
76
76
  VALUES (?, ?, ?, ?, datetime('now'), datetime('now'), ?, ?, ?)
77
77
  `).run(u,s,r.agent,r.domain??"general",r.success?1:0,JSON.stringify([{step:1,task:r.taskId,success:r.success}]),E);try{let g=n.prepare(`
@@ -89,7 +89,7 @@ import{a as A,b as be,c as Se}from"./chunk-55CH76ZO.js";import{c as Te,d as _e}f
89
89
  WHERE actionable = 1 AND (applied = 0 OR applied IS NULL)
90
90
  ORDER BY created_at DESC
91
91
  LIMIT 3
92
- `).all();if(u.length>0){let{createDreamEngine:E}=await import("./dream-T6EP7B3F.js"),g=E();await g.initialize();try{for(let T of u){let D=await g.applyInsight(T.id);D.success&&D.patternId&&d++}}finally{await g.close()}}}catch(u){console.error(I.dim(`[hooks] post-task insight apply: ${u instanceof Error?u.message:"unknown"}`))}return await we(n,o,`${r.domain??"general"}: ${s}`),{experienceId:o,qualityScore:f,bridge:l,stitchedSiblings:p,insightsApplied:d}}async function J(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-AGDZQ5XD.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}let o=`${r.taskType}|${r.priority}|${r.domain||"any"}`,s=r.agent,a=`q-learning:aqe-hook-router:${o}:${s}`,c=r.success?.1:-1,i=.1,f=.9,l=n.prepare(`
92
+ `).all();if(u.length>0){let{createDreamEngine:E}=await import("./dream-TRFBGDSQ.js"),g=E();await g.initialize();try{for(let T of u){let D=await g.applyInsight(T.id);D.success&&D.patternId&&d++}}finally{await g.close()}}}catch(u){console.error(I.dim(`[hooks] post-task insight apply: ${u instanceof Error?u.message:"unknown"}`))}return await Re(n,o,`${r.domain??"general"}: ${s}`),{experienceId:o,qualityScore:f,bridge:l,stitchedSiblings:p,insightsApplied:d}}async function Q(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-TLGSSLMI.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}let o=`${r.taskType}|${r.priority}|${r.domain||"any"}`,s=r.agent,a=`q-learning:aqe-hook-router:${o}:${s}`,c=r.success?.1:-1,i=.1,f=.9,l=n.prepare(`
93
93
  SELECT q_value FROM rl_q_values WHERE id = ?
94
94
  `).get(a),p=l&&typeof l.q_value=="number"?l.q_value:0,d=n.prepare(`
95
95
  SELECT MAX(q_value) AS m FROM rl_q_values WHERE state_key = ?
@@ -102,7 +102,7 @@ import{a as A,b as be,c as Se}from"./chunk-55CH76ZO.js";import{c as Te,d as _e}f
102
102
  visits = visits + 1,
103
103
  last_reward = excluded.last_reward,
104
104
  updated_at = datetime('now')
105
- `).run(a,o,s,u,c,r.domain||"any")}catch(e){console.error(I.dim(`[hooks] q-learning update: ${e instanceof Error?e.message:"unknown"}`))}}async function ae(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-AGDZQ5XD.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}n.prepare(`
105
+ `).run(a,o,s,u,c,r.domain||"any")}catch(e){console.error(I.dim(`[hooks] q-learning update: ${e instanceof Error?e.message:"unknown"}`))}}async function ae(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-TLGSSLMI.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}n.prepare(`
106
106
  UPDATE routing_outcomes
107
107
  SET success = ?, quality_score = ?, duration_ms = ?
108
108
  WHERE id IN (
@@ -113,7 +113,7 @@ import{a as A,b as be,c as Se}from"./chunk-55CH76ZO.js";import{c as Te,d as _e}f
113
113
  ORDER BY (CASE WHEN used_agent = ? THEN 0 ELSE 1 END), created_at DESC
114
114
  LIMIT 1
115
115
  )
116
- `).run(r.success?1:0,r.qualityScore,r.durationMs,r.agent)}catch(e){console.error(I.dim(`[hooks] routing UPDATE: ${e instanceof Error?e.message:"unknown"}`))}}async function ie(){let{getUnifiedMemory:r}=await import("./unified-memory-AGDZQ5XD.js"),e=r();e.isInitialized()||await e.initialize();let t=e.getDatabase();try{t.pragma("busy_timeout = 60000")}catch{}let n=new Set(t.prepare("PRAGMA table_info(captured_experiences)").all().map(i=>i.name)),o=[["consolidated_into","TEXT DEFAULT NULL"],["consolidation_count","INTEGER DEFAULT 1"],["quality_updated_at","TEXT DEFAULT NULL"],["reuse_success_count","INTEGER DEFAULT 0"],["reuse_failure_count","INTEGER DEFAULT 0"]];for(let[i,f]of o)n.has(i)||t.exec(`ALTER TABLE captured_experiences ADD COLUMN ${i} ${f}`);let s=t.prepare(`
116
+ `).run(r.success?1:0,r.qualityScore,r.durationMs,r.agent)}catch(e){console.error(I.dim(`[hooks] routing UPDATE: ${e instanceof Error?e.message:"unknown"}`))}}async function ie(){let{getUnifiedMemory:r}=await import("./unified-memory-TLGSSLMI.js"),e=r();e.isInitialized()||await e.initialize();let t=e.getDatabase();try{t.pragma("busy_timeout = 60000")}catch{}let n=new Set(t.prepare("PRAGMA table_info(captured_experiences)").all().map(i=>i.name)),o=[["consolidated_into","TEXT DEFAULT NULL"],["consolidation_count","INTEGER DEFAULT 1"],["quality_updated_at","TEXT DEFAULT NULL"],["reuse_success_count","INTEGER DEFAULT 0"],["reuse_failure_count","INTEGER DEFAULT 0"]];for(let[i,f]of o)n.has(i)||t.exec(`ALTER TABLE captured_experiences ADD COLUMN ${i} ${f}`);let s=t.prepare(`
117
117
  SELECT
118
118
  domain,
119
119
  agent,
@@ -129,11 +129,11 @@ import{a as A,b as be,c as Se}from"./chunk-55CH76ZO.js";import{c as Te,d as _e}f
129
129
  HAVING cnt >= 3 AND avg_quality >= 0.5 AND success_rate >= 0.6
130
130
  ORDER BY avg_quality DESC
131
131
  LIMIT 50
132
- `).all();if(s.length===0)return 0;let{v4:a}=await import("./dist-node-2DGVQGLS.js"),c=0;for(let i of s)try{let f=new Date().toISOString().slice(0,7),l=`${i.agent}-${i.domain}-${f}`,p=t.prepare(`
132
+ `).all();if(s.length===0)return 0;let{v4:a}=await import("./dist-node-FV3KWXQ6.js"),c=0;for(let i of s)try{let f=new Date().toISOString().slice(0,7),l=`${i.agent}-${i.domain}-${f}`,p=t.prepare(`
133
133
  SELECT id FROM qe_patterns
134
134
  WHERE qe_domain = ? AND name = ?
135
135
  LIMIT 1
136
- `).get(i.domain,l);if(p)ke(t,{patternId:p.id,usageCount:i.cnt,successfulUses:i.successes,metrics:{source:"session-consolidation",domain:i.domain,agent:i.agent,outcome:"unmeasured",outcomeBasis:"session-consolidation"}}),t.prepare(`
136
+ `).get(i.domain,l);if(p)ye(t,{patternId:p.id,usageCount:i.cnt,successfulUses:i.successes,metrics:{source:"session-consolidation",domain:i.domain,agent:i.agent,outcome:"unmeasured",outcomeBasis:"session-consolidation"}}),t.prepare(`
137
137
  UPDATE qe_patterns
138
138
  SET confidence = MIN(0.99, confidence + 0.01), updated_at = datetime('now')
139
139
  WHERE id = ?
@@ -148,27 +148,27 @@ import{a as A,b as be,c as Se}from"./chunk-55CH76ZO.js";import{c as Te,d as _e}f
148
148
  confidence, usage_count, success_rate, quality_score, tier,
149
149
  template_json, context_json, created_at, last_used_at, successful_uses
150
150
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), ?)
151
- `).run(d,"workflow",i.domain,i.domain,l,E,k,i.cnt,i.success_rate,u,"short-term",JSON.stringify({type:"workflow",content:`${i.agent} pattern for ${i.domain}`,variables:[]}),JSON.stringify({tags:g,sourceType:"session-consolidation",extractedAt:new Date().toISOString()}),i.successes);let{ensurePatternEmbedding:T}=await import("./embed-and-insert-pattern-VNIEOVPO.js");await T(t,d,l,E,g),c++}t.prepare(`
151
+ `).run(d,"workflow",i.domain,i.domain,l,E,k,i.cnt,i.success_rate,u,"short-term",JSON.stringify({type:"workflow",content:`${i.agent} pattern for ${i.domain}`,variables:[]}),JSON.stringify({tags:g,sourceType:"session-consolidation",extractedAt:new Date().toISOString()}),i.successes);let{ensurePatternEmbedding:T}=await import("./embed-and-insert-pattern-GPRR3ZGD.js");await T(t,d,l,E,g),c++}t.prepare(`
152
152
  UPDATE captured_experiences
153
153
  SET application_count = application_count + 1
154
154
  WHERE domain = ? AND agent = ? AND application_count = 0
155
- `).run(i.domain,i.agent)}catch{}return c}var m={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function ve(){let r=m.reasoningBank;try{r&&await r.dispose()}catch{}try{let{resetSharedRvfDualWriter:e}=await import("./shared-rvf-dual-writer-DBNABOP7.js");e()}catch{}try{let{resetSharedRvfAdapter:e}=await import("./shared-rvf-adapter-DROMBRV2.js");e()}catch{}m.reasoningBank=null,m.hookRegistry=null,m.coherenceService=null,m.sessionId=null,m.initialized=!1,m.initializationPromise=null}async function _(){if(m.initializationPromise&&await m.initializationPromise,m.initialized&&m.reasoningBank&&m.hookRegistry)return{reasoningBank:m.reasoningBank,hookRegistry:m.hookRegistry};if(m.initializationPromise=ze(),await m.initializationPromise,m.initializationPromise=null,!m.reasoningBank||!m.hookRegistry)throw new Error("Failed to initialize hooks system");return{reasoningBank:m.reasoningBank,hookRegistry:m.hookRegistry}}async function ze(){if(!m.initialized)try{let r=R(),e=Re.join(r,".agentic-qe"),t=await O(e);try{m.coherenceService=await Te(_e),console.log($.dim("[hooks] CoherenceService initialized with WASM engines"))}catch(a){console.log($.dim(`[hooks] CoherenceService WASM unavailable, using fallback: ${a instanceof Error?a.message:"unknown"}`))}m.reasoningBank=oe(t,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0},m.coherenceService??void 0);let n=1e4,o=new AbortController,s=setTimeout(()=>o.abort(new Error("ReasoningBank init timeout")),n);try{await m.reasoningBank.initialize({signal:o.signal})}finally{clearTimeout(s)}try{let{getSharedRvfDualWriter:a}=await import("./shared-rvf-dual-writer-DBNABOP7.js"),c=await a();c&&m.reasoningBank.setRvfDualWriter(c)}catch(a){process.env.DEBUG&&console.debug("[hooks] RVF wiring skipped:",a instanceof Error?a.message:a)}m.hookRegistry=Se(m.reasoningBank),m.initialized=!0,console.log($.dim("[hooks] System initialized"))}catch(r){console.warn($.yellow(`[hooks] Using fallback mode: ${r instanceof Error?r.message:"unknown error"}`));let e=We();m.reasoningBank=oe(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0}),m.hookRegistry=new be,m.hookRegistry.initialize(m.reasoningBank),m.initialized=!0}}function q(r){try{r.pragma("busy_timeout = 60000")}catch{}}async function O(r){let t=new ge({sqlite:{path:Re.join(r,"memory.db"),walMode:!0,poolSize:3,busyTimeout:6e4},enableFallback:!0,defaultNamespace:"qe-patterns"}),n=new AbortController,o=setTimeout(()=>n.abort(new Error("Backend init timeout")),5e3);try{await t.initialize({signal:n.signal})}finally{clearTimeout(o)}return t}function We(){let r=new Map;return{initialize:async()=>{},dispose:async()=>{r.clear()},get:async e=>{let t=r.get(e);return t?t.value:void 0},set:async(e,t,n)=>{r.set(e,{value:t})},delete:async e=>r.delete(e),has:async e=>r.has(e),search:async(e,t)=>{let n=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),o=new RegExp(n.replace(/\*/g,".*"));return Array.from(r.keys()).filter(s=>o.test(s))},vectorSearch:async(e,t)=>[],storeVector:async(e,t,n)=>{},count:async e=>{let t=0,n=`${e}:`;for(let o of r.keys())o.startsWith(n)&&t++;return t},hasCodeIntelligenceIndex:async()=>{let e="code-intelligence:kg:";for(let t of r.keys())if(t.startsWith(e))return!0;return!1}}}function h(r){console.log(JSON.stringify(r,null,2))}function N(r){console.log($.green("\u2713"),r)}function S(r){console.error($.red("\u2717"),r)}function te(r){if(r.length===0){console.log($.dim(" No specific guidance"));return}r.forEach((e,t)=>{console.log($.cyan(` ${t+1}.`),e)})}async function F(r=500){return process.stdin.isTTY?"":new Promise(e=>{let t="",n=setTimeout(()=>{process.stdin.removeAllListeners(),process.stdin.pause(),e(t)},r);process.stdin.setEncoding("utf8"),process.stdin.on("data",o=>{t+=o}),process.stdin.on("end",()=>{clearTimeout(n),e(t)}),process.stdin.on("error",()=>{clearTimeout(n),e(t)}),process.stdin.resume()})}function Ae(r){if(!r.trim())return"";let e;try{e=JSON.parse(r)}catch{return""}let t=e.tool_input,n=e.toolInput,o=[t?.file_path,t?.filePath,n?.file_path,n?.filePath,e.file_path,e.filePath];for(let s of o)if(typeof s=="string"&&s.trim())return s;return""}function Oe(r){if(!r.trim())return"";let e;try{e=JSON.parse(r)}catch{return""}let t=e.tool_input,n=e.toolInput,o=[t?.subagent_type,t?.subagentType,n?.subagent_type,n?.subagentType,e.subagent_type,e.subagentType];for(let s of o)if(typeof s=="string"&&s.trim())return s;return""}import P from"chalk";import Ge from"node:path";U();function Ne(r){r.command("pre-edit").description("Get context and guidance before editing a file").requiredOption("-f, --file <path>","File path to edit").option("-o, --operation <type>","Operation type: create, update, delete, refactor","update").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),o=(await t.emit(A.PreTestGeneration,{targetFile:e.file,testType:"unit",operation:e.operation}))[0]||{success:!0,guidance:[],routing:null};if(e.json){let s=o.guidance||[],c=[o.routing?.recommendedAgent?`Recommended agent: ${o.routing.recommendedAgent} (${(o.routing.confidence*100).toFixed(0)}% confidence).`:"",...s.map(i=>i)].filter(Boolean).join(" ");h({hookSpecificOutput:{hookEventName:"PreToolUse",additionalContext:c||void 0},file:e.file,operation:e.operation,patterns:o.routing?.patterns?.length||0})}else console.log(P.bold(`
155
+ `).run(i.domain,i.agent)}catch{}return c}var m={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function Ae(){let r=m.reasoningBank;try{r&&await r.dispose()}catch{}try{let{resetSharedRvfDualWriter:e}=await import("./shared-rvf-dual-writer-YXMPZKQE.js");e()}catch{}try{let{resetSharedRvfAdapter:e}=await import("./shared-rvf-adapter-COUOS665.js");e()}catch{}m.reasoningBank=null,m.hookRegistry=null,m.coherenceService=null,m.sessionId=null,m.initialized=!1,m.initializationPromise=null}async function _(){if(m.initializationPromise&&await m.initializationPromise,m.initialized&&m.reasoningBank&&m.hookRegistry)return{reasoningBank:m.reasoningBank,hookRegistry:m.hookRegistry};if(m.initializationPromise=We(),await m.initializationPromise,m.initializationPromise=null,!m.reasoningBank||!m.hookRegistry)throw new Error("Failed to initialize hooks system");return{reasoningBank:m.reasoningBank,hookRegistry:m.hookRegistry}}async function We(){if(!m.initialized)try{let r=R(),e=ve.join(r,".agentic-qe"),t=await O(e);try{m.coherenceService=await _e(be),console.log($.dim("[hooks] CoherenceService initialized with WASM engines"))}catch(a){console.log($.dim(`[hooks] CoherenceService WASM unavailable, using fallback: ${a instanceof Error?a.message:"unknown"}`))}m.reasoningBank=oe(t,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0},m.coherenceService??void 0);let n=1e4,o=new AbortController,s=setTimeout(()=>o.abort(new Error("ReasoningBank init timeout")),n);try{await m.reasoningBank.initialize({signal:o.signal})}finally{clearTimeout(s)}try{let{getSharedRvfDualWriter:a}=await import("./shared-rvf-dual-writer-YXMPZKQE.js"),c=await a();c&&m.reasoningBank.setRvfDualWriter(c)}catch(a){process.env.DEBUG&&console.debug("[hooks] RVF wiring skipped:",a instanceof Error?a.message:a)}m.hookRegistry=we(m.reasoningBank),m.initialized=!0,console.log($.dim("[hooks] System initialized"))}catch(r){console.warn($.yellow(`[hooks] Using fallback mode: ${r instanceof Error?r.message:"unknown error"}`));let e=Ge();m.reasoningBank=oe(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0}),m.hookRegistry=new Se,m.hookRegistry.initialize(m.reasoningBank),m.initialized=!0}}function q(r){try{r.pragma("busy_timeout = 60000")}catch{}}async function O(r){let t=new fe({sqlite:{path:ve.join(r,"memory.db"),walMode:!0,poolSize:3,busyTimeout:6e4},enableFallback:!0,defaultNamespace:"qe-patterns"}),n=new AbortController,o=setTimeout(()=>n.abort(new Error("Backend init timeout")),5e3);try{await t.initialize({signal:n.signal})}finally{clearTimeout(o)}return t}function Ge(){let r=new Map;return{initialize:async()=>{},dispose:async()=>{r.clear()},get:async e=>{let t=r.get(e);return t?t.value:void 0},set:async(e,t,n)=>{r.set(e,{value:t})},delete:async e=>r.delete(e),has:async e=>r.has(e),search:async(e,t)=>{let n=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),o=new RegExp(n.replace(/\*/g,".*"));return Array.from(r.keys()).filter(s=>o.test(s))},vectorSearch:async(e,t)=>[],storeVector:async(e,t,n)=>{},count:async e=>{let t=0,n=`${e}:`;for(let o of r.keys())o.startsWith(n)&&t++;return t},hasCodeIntelligenceIndex:async()=>{let e="code-intelligence:kg:";for(let t of r.keys())if(t.startsWith(e))return!0;return!1}}}function h(r){console.log(JSON.stringify(r,null,2))}function N(r){console.log($.green("\u2713"),r)}function S(r){console.error($.red("\u2717"),r)}function te(r){if(r.length===0){console.log($.dim(" No specific guidance"));return}r.forEach((e,t)=>{console.log($.cyan(` ${t+1}.`),e)})}async function F(r=500){return process.stdin.isTTY?"":new Promise(e=>{let t="",n=setTimeout(()=>{process.stdin.removeAllListeners(),process.stdin.pause(),e(t)},r);process.stdin.setEncoding("utf8"),process.stdin.on("data",o=>{t+=o}),process.stdin.on("end",()=>{clearTimeout(n),e(t)}),process.stdin.on("error",()=>{clearTimeout(n),e(t)}),process.stdin.resume()})}function Oe(r){if(!r.trim())return"";let e;try{e=JSON.parse(r)}catch{return""}let t=e.tool_input,n=e.toolInput,o=[t?.file_path,t?.filePath,n?.file_path,n?.filePath,e.file_path,e.filePath];for(let s of o)if(typeof s=="string"&&s.trim())return s;return""}function Ne(r){if(!r.trim())return"";let e;try{e=JSON.parse(r)}catch{return""}let t=e.tool_input,n=e.toolInput,o=[t?.subagent_type,t?.subagentType,n?.subagent_type,n?.subagentType,e.subagent_type,e.subagentType];for(let s of o)if(typeof s=="string"&&s.trim())return s;return""}import P from"chalk";import Qe from"node:path";U();function De(r){r.command("pre-edit").description("Get context and guidance before editing a file").requiredOption("-f, --file <path>","File path to edit").option("-o, --operation <type>","Operation type: create, update, delete, refactor","update").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),o=(await t.emit(A.PreTestGeneration,{targetFile:e.file,testType:"unit",operation:e.operation}))[0]||{success:!0,guidance:[],routing:null};if(e.json){let s=o.guidance||[],c=[o.routing?.recommendedAgent?`Recommended agent: ${o.routing.recommendedAgent} (${(o.routing.confidence*100).toFixed(0)}% confidence).`:"",...s.map(i=>i)].filter(Boolean).join(" ");h({hookSpecificOutput:{hookEventName:"PreToolUse",additionalContext:c||void 0},file:e.file,operation:e.operation,patterns:o.routing?.patterns?.length||0})}else console.log(P.bold(`
156
156
  \u{1F4DD} Pre-Edit Analysis`)),console.log(P.dim(` File: ${e.file}`)),console.log(P.dim(` Operation: ${e.operation}`)),o.routing&&(console.log(P.bold(`
157
157
  \u{1F3AF} Recommended Agent:`),P.cyan(o.routing.recommendedAgent)),console.log(P.dim(` Confidence: ${(o.routing.confidence*100).toFixed(1)}%`))),console.log(P.bold(`
158
- \u{1F4A1} Guidance:`)),te(o.guidance||[]);return}catch(t){throw S(`pre-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("post-edit").description("Record editing outcome for pattern learning").requiredOption("-f, --file <path>","File path that was edited").option("--success","Edit was successful").option("--failure","Edit failed").option("--pattern-id <id>","Pattern ID that was applied").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=e.success||!e.failure,o=e.file||"";if(!o.trim())try{let p=await F();o=Ae(p)}catch{}let s=o.split("/").pop()||"unknown",c=/\.(test|spec)\.(ts|js|tsx|jsx)$/.test(s)?"test-generation":"code-intelligence",i=e.patternId||`edit:${c}:${s}`,l=(await t.emit(A.PostTestGeneration,{targetFile:o,success:n,patternId:i,generatedTests:null,testCount:0}))[0]||{success:!0,patternsLearned:0};try{let{reasoningBank:p}=await _();await p.recordOutcome({patternId:i,success:n,metrics:{executionTimeMs:0},feedback:`Edit ${n?"succeeded":"failed"}: ${o}`})}catch{}try{await G({task:`edit: ${o}`,agent:"cli-hook",domain:c,success:n,source:"cli-hook-post-edit"})}catch{}try{let p=R(),d=Ge.join(p,".agentic-qe"),k=await O(d);await x(k)}catch{}e.json?h({success:!0,file:o,editSuccess:n,patternsLearned:l.patternsLearned||0,dreamTriggered:!1,dreamReason:"deferred-to-kernel"}):(N(`Recorded edit outcome for ${o||"(unknown file)"}`),l.patternsLearned&&console.log(P.green(` Patterns learned: ${l.patternsLearned}`)));return}catch(t){throw S(`post-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}})}import{randomUUID as Je}from"crypto";U();import v from"chalk";import Qe from"node:path";function Ve(r){if(!r.trim())return"";let e;try{e=JSON.parse(r)}catch{return r.trim()}let t=[e.prompt,e.user_prompt,e.command,e.tool_input?.prompt,e.tool_input?.description,e.toolInput?.prompt,e.toolInput?.description];for(let n of t)if(typeof n=="string"&&n.trim())return n;return""}function De(r){r.command("route").description("Route a task to the optimal QE agent").option("-t, --task <description>","Task description (falls back to stdin event JSON)").option("-d, --domain <domain>","Target QE domain hint").option("-c, --capabilities <caps...>","Required capabilities").option("--json","Output as JSON").action(async e=>{try{let t=e.task??"";if(!t.trim()){let c=await F();t=Ve(c)}if(!t.trim())throw new Error("No task provided. Pass --task <description> or pipe a Claude Code hook event JSON to stdin.");let{reasoningBank:n}=await _(),o={task:t,domain:e.domain,capabilities:e.capabilities,includePatternGuidance:!0},s=await n.routeTask(o);if(!s.success)throw new Error(s.error.message);let a=s.value;e.json?h({recommendedAgent:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,domains:a.domains,patternCount:a.patterns.length,patterns:a.patterns.map(c=>({id:c.id,name:c.name,description:c.description,confidence:c.confidence})),guidance:a.guidance,reasoning:a.reasoning,exploration:a.exploration??!1,criticality:a.criticality??null,qWeight:a.qWeight??null}):(console.log(v.bold(`
158
+ \u{1F4A1} Guidance:`)),te(o.guidance||[]);return}catch(t){throw S(`pre-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("post-edit").description("Record editing outcome for pattern learning").requiredOption("-f, --file <path>","File path that was edited").option("--success","Edit was successful").option("--failure","Edit failed").option("--pattern-id <id>","Pattern ID that was applied").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=e.success||!e.failure,o=e.file||"";if(!o.trim())try{let p=await F();o=Oe(p)}catch{}let s=o.split("/").pop()||"unknown",c=/\.(test|spec)\.(ts|js|tsx|jsx)$/.test(s)?"test-generation":"code-intelligence",i=e.patternId||`edit:${c}:${s}`,l=(await t.emit(A.PostTestGeneration,{targetFile:o,success:n,patternId:i,generatedTests:null,testCount:0}))[0]||{success:!0,patternsLearned:0};try{let{reasoningBank:p}=await _();await p.recordOutcome({patternId:i,success:n,metrics:{executionTimeMs:0},feedback:`Edit ${n?"succeeded":"failed"}: ${o}`})}catch{}try{await G({task:`edit: ${o}`,agent:"cli-hook",domain:c,success:n,source:"cli-hook-post-edit"})}catch{}try{let p=R(),d=Qe.join(p,".agentic-qe"),k=await O(d);await x(k)}catch{}e.json?h({success:!0,file:o,editSuccess:n,patternsLearned:l.patternsLearned||0,dreamTriggered:!1,dreamReason:"deferred-to-kernel"}):(N(`Recorded edit outcome for ${o||"(unknown file)"}`),l.patternsLearned&&console.log(P.green(` Patterns learned: ${l.patternsLearned}`)));return}catch(t){throw S(`post-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}})}import{randomUUID as Je}from"crypto";U();import v from"chalk";import Ve from"node:path";function Xe(r){if(!r.trim())return"";let e;try{e=JSON.parse(r)}catch{return r.trim()}let t=[e.prompt,e.user_prompt,e.command,e.tool_input?.prompt,e.tool_input?.description,e.toolInput?.prompt,e.toolInput?.description];for(let n of t)if(typeof n=="string"&&n.trim())return n;return""}function xe(r){r.command("route").description("Route a task to the optimal QE agent").option("-t, --task <description>","Task description (falls back to stdin event JSON)").option("-d, --domain <domain>","Target QE domain hint").option("-c, --capabilities <caps...>","Required capabilities").option("--json","Output as JSON").action(async e=>{try{let t=e.task??"";if(!t.trim()){let c=await F();t=Xe(c)}if(!t.trim())throw new Error("No task provided. Pass --task <description> or pipe a Claude Code hook event JSON to stdin.");let{reasoningBank:n}=await _(),o={task:t,domain:e.domain,capabilities:e.capabilities,includePatternGuidance:!0},s=await n.routeTask(o);if(!s.success)throw new Error(s.error.message);let a=s.value;e.json?h({recommendedAgent:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,domains:a.domains,patternCount:a.patterns.length,patterns:a.patterns.map(c=>({id:c.id,name:c.name,description:c.description,confidence:c.confidence})),guidance:a.guidance,reasoning:a.reasoning,exploration:a.exploration??!1,criticality:a.criticality??null,qWeight:a.qWeight??null}):(console.log(v.bold(`
159
159
  \u{1F3AF} Task Routing Result`)),console.log(v.dim(` Task: "${t}"`)),console.log(v.bold(`
160
160
  \u{1F464} Recommended Agent:`),v.cyan(a.recommendedAgent)),console.log(v.dim(` Confidence: ${(a.confidence*100).toFixed(1)}%`)),a.alternatives.length>0&&(console.log(v.bold(`
161
161
  \u{1F504} Alternatives:`)),a.alternatives.forEach(c=>{console.log(v.dim(` - ${c.agent}: ${(c.score*100).toFixed(1)}%`))})),console.log(v.bold(`
162
162
  \u{1F4C2} Detected Domains:`),a.domains.join(", ")),console.log(v.bold(`
163
163
  \u{1F4A1} Guidance:`)),te(a.guidance),console.log(v.bold(`
164
- \u{1F4D6} Reasoning:`),v.dim(a.reasoning)));try{let{getUnifiedMemory:c}=await import("./unified-memory-AGDZQ5XD.js"),i=c();i.isInitialized()||await i.initialize();let f=i.getDatabase();q(f),ee(f);let l=`route-${Date.now()}-${Je().slice(0,8)}`,p=a.confidence<.5,d=a;f.prepare(`
164
+ \u{1F4D6} Reasoning:`),v.dim(a.reasoning)));try{let{getUnifiedMemory:c}=await import("./unified-memory-TLGSSLMI.js"),i=c();i.isInitialized()||await i.initialize();let f=i.getDatabase();q(f),ee(f);let l=`route-${Date.now()}-${Je().slice(0,8)}`,p=a.confidence<.5,d=a;f.prepare(`
165
165
  INSERT OR REPLACE INTO routing_outcomes (
166
166
  id, task_json, decision_json, used_agent,
167
167
  followed_recommendation, success, quality_score,
168
168
  duration_ms, error,
169
169
  exploration, criticality, q_weight
170
170
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
171
- `).run(l,JSON.stringify({description:t,domain:e.domain}),JSON.stringify({recommended:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,lowConfidence:p,exploration:d.exploration??!1,criticality:d.criticality??null,qWeight:d.qWeight??null}),a.recommendedAgent,1,0,-1,0,p?"low-confidence":null,d.exploration?1:0,d.criticality??null,d.qWeight??null);let k=R(),u=Qe.join(k,".agentic-qe"),E=await O(u);await x(E)}catch(c){console.error(v.dim(`[hooks] route persist: ${c instanceof Error?c.message:"unknown"}`))}return}catch(t){throw S(`route failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("post-route").description("Close the most-recent route sentinel from a Stop hook (#451)").option("--success [bool]","Whether the turn completed successfully","true").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=.325+(t?.25:0)+.1,o=M();o.isInitialized()||await o.initialize();let s=o.getDatabase();q(s);let a=s.prepare(`
171
+ `).run(l,JSON.stringify({description:t,domain:e.domain}),JSON.stringify({recommended:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,lowConfidence:p,exploration:d.exploration??!1,criticality:d.criticality??null,qWeight:d.qWeight??null}),a.recommendedAgent,1,0,-1,0,p?"low-confidence":null,d.exploration?1:0,d.criticality??null,d.qWeight??null);let k=R(),u=Ve.join(k,".agentic-qe"),E=await O(u);await x(E)}catch(c){console.error(v.dim(`[hooks] route persist: ${c instanceof Error?c.message:"unknown"}`))}return}catch(t){throw S(`route failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("post-route").description("Close the most-recent route sentinel from a Stop hook (#451)").option("--success [bool]","Whether the turn completed successfully","true").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=.325+(t?.25:0)+.1,o=M();o.isInitialized()||await o.initialize();let s=o.getDatabase();q(s);let a=s.prepare(`
172
172
  SELECT id, task_json, used_agent FROM routing_outcomes
173
173
  WHERE quality_score = -1
174
174
  AND task_json NOT LIKE '%"taskId"%'
@@ -178,7 +178,7 @@ import{a as A,b as be,c as Se}from"./chunk-55CH76ZO.js";import{c as Te,d as _e}f
178
178
  UPDATE routing_outcomes
179
179
  SET success = ?, quality_score = ?, duration_ms = 0, error = NULL
180
180
  WHERE id = ?
181
- `).run(t?1:0,n,a.id):{changes:0};if(a)try{let f=JSON.parse(a.task_json),l=String(f.description??"");l&&await J({taskType:W(l),priority:"normal",domain:Z(l)[0]??"any",agent:a.used_agent,success:t})}catch{}let i=s.prepare(`
181
+ `).run(t?1:0,n,a.id):{changes:0};if(a)try{let f=JSON.parse(a.task_json),l=String(f.description??"");l&&await Q({taskType:W(l),priority:"normal",domain:Z(l)[0]??"any",agent:a.used_agent,success:t})}catch{}let i=s.prepare(`
182
182
  UPDATE routing_outcomes
183
183
  SET success = 0,
184
184
  quality_score = 0.325,
@@ -187,20 +187,20 @@ import{a as A,b as be,c as Se}from"./chunk-55CH76ZO.js";import{c as Te,d as _e}f
187
187
  WHERE quality_score = -1
188
188
  AND task_json NOT LIKE '%"taskId"%'
189
189
  AND created_at < datetime('now', '-300 seconds')
190
- `).run();e.json?h({success:!0,resolved:c.changes>0,staleSwept:i.changes,qualityScore:n,turnSuccess:t}):i.changes>0&&console.log(v.dim(`[hooks] post-route: swept ${i.changes} stale sentinel(s)`));return}catch(t){e.json?h({success:!1,error:t instanceof Error?t.message:"unknown"}):console.error(v.dim(`[hooks] post-route: ${t instanceof Error?t.message:"unknown"}`));return}})}import y from"chalk";He();function Xe(r,e){return!(r.embedding&&r.embedding.length>0)?{vectorIndex:"pending",notice:"Pattern stored in SQLite without a vector (no embedding runtime is available). Text search finds it now. Set AQE_EMBEDDER_ENDPOINT or install @huggingface/transformers, then run `aqe learning backfill-embeddings` to enable semantic search for it."}:e?{vectorIndex:"sqlite",notice:`Pattern stored; its vector is stored in SQLite and vector search can use it now. The ANN index (patterns.rvf) was not open in this process (${e}); the vector is added to it automatically the next time the index opens.`}:{vectorIndex:"indexed"}}function xe(r){r.command("stats").description("Display hooks system statistics").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.getStats();if(e.json)h(n);else{console.log(y.bold(`
190
+ `).run();e.json?h({success:!0,resolved:c.changes>0,staleSwept:i.changes,qualityScore:n,turnSuccess:t}):i.changes>0&&console.log(v.dim(`[hooks] post-route: swept ${i.changes} stale sentinel(s)`));return}catch(t){e.json?h({success:!1,error:t instanceof Error?t.message:"unknown"}):console.error(v.dim(`[hooks] post-route: ${t instanceof Error?t.message:"unknown"}`));return}})}import y from"chalk";Fe();function Ke(r,e,t){let n=!!(r.embedding&&r.embedding.length>0);if(!n&&t){let o=process.env.AQE_EMBEDDER_ENDPOINT,s=o?`the configured embedding endpoint (AQE_EMBEDDER_ENDPOINT=${ge(o)})`:"the embedder",a=o?t.replace(/^(Transformer initialization previously failed|Failed to initialize transformer model): /,""):t;return{vectorIndex:"pending",notice:`Pattern stored in SQLite without a vector: ${s} failed: ${a}. Text search finds it now. Once the embedder works again, run \`aqe learning backfill-embeddings\` to enable semantic search for it.`}}return n?e?{vectorIndex:"sqlite",notice:`Pattern stored; its vector is stored in SQLite and vector search can use it now. The ANN index (patterns.rvf) was not open in this process (${e}); the vector is added to it automatically the next time the index opens.`}:{vectorIndex:"indexed"}:{vectorIndex:"pending",notice:"Pattern stored in SQLite without a vector (no embedding runtime is available). Text search finds it now. Set AQE_EMBEDDER_ENDPOINT or install @huggingface/transformers, then run `aqe learning backfill-embeddings` to enable semantic search for it."}}function Ie(r){r.command("stats").description("Display hooks system statistics").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.getStats();if(e.json)h(n);else{console.log(y.bold(`
191
191
  \u{1F4CA} Hooks System Statistics
192
192
  `)),console.log(y.bold("Patterns:")),console.log(` Total: ${y.cyan(n.totalPatterns)}`),console.log(` Short-term: ${n.patternStoreStats.byTier.shortTerm}`),console.log(` Long-term: ${n.patternStoreStats.byTier.longTerm}`),console.log(y.bold(`
193
193
  By Domain:`));for(let[o,s]of Object.entries(n.byDomain))s>0&&console.log(` ${o}: ${s}`);console.log(y.bold(`
194
194
  Routing:`)),console.log(` Requests: ${n.routingRequests}`),console.log(` Avg Confidence: ${(n.avgRoutingConfidence*100).toFixed(1)}%`),console.log(y.bold(`
195
- Learning:`)),console.log(` Outcomes: ${ye(n)}`),console.log(` Success Rate: ${Ee(n)}`),console.log(y.bold(`
195
+ Learning:`)),console.log(` Outcomes: ${Ee(n)}`),console.log(` Success Rate: ${Te(n)}`),console.log(y.bold(`
196
196
  Search Performance:`)),console.log(` Operations: ${n.patternStoreStats.searchOperations}`),console.log(` Avg Latency: ${n.patternStoreStats.avgSearchLatencyMs.toFixed(2)}ms`),console.log(` HNSW Native: ${n.patternStoreStats.hnswStats.nativeAvailable?"\u2713":"\u2717"}`)}}catch(t){throw S(`stats failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("list").description("List all registered QE hook events").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=t.getRegisteredEvents();if(e.json)h({events:n,totalEvents:Object.keys(A).length,registeredEvents:n.length});else{console.log(y.bold(`
197
197
  \u{1F4CB} Registered QE Hook Events
198
198
  `)),console.log(y.bold("All Available Events:"));for(let[o,s]of Object.entries(A)){let c=n.includes(s)?y.green("\u2713"):y.dim("\u25CB");console.log(` ${c} ${o}: ${y.dim(s)}`)}console.log(y.dim(`
199
199
  Registered: ${n.length}/${Object.keys(A).length}`))}}catch(t){throw S(`list failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("emit").description("Emit a QE hook event").requiredOption("-e, --event <name>","Event name (e.g., qe:pattern-applied)").option("-d, --data <json>","Event data as JSON","{}").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n;try{n=me(e.data)}catch{throw new Error(`Invalid JSON data: ${e.data}`)}let o=await t.emit(e.event,n);e.json?h({event:e.event,results:o}):(console.log(y.bold(`
200
- \u{1F4E1} Hook Event Emitted`)),console.log(y.dim(` Event: ${e.event}`)),console.log(y.dim(` Handlers: ${o.length}`)),o.forEach((s,a)=>{let c=s.success?y.green("\u2713"):y.red("\u2717");console.log(` ${c} Handler ${a+1}: ${s.success?"success":s.error}`),s.patternsLearned&&console.log(y.green(` Patterns learned: ${s.patternsLearned}`))}))}catch(t){throw S(`emit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("learn").description("Store a new pattern in the reasoning bank").requiredOption("-n, --name <name>","Pattern name").requiredOption("-d, --description <desc>","Pattern description").option("-t, --type <type>","Pattern type","test-template").option("--domain <domain>","QE domain").option("--tags <tags...>","Pattern tags").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.storePattern({patternType:e.type,name:e.name,description:e.description,template:{type:"prompt",content:e.description,variables:[]},context:{tags:e.tags||[]}}),o=n.success?n.value:null,s;if(!n.success){let i=fe(n.error);if(!i)throw new Error(n.error.message);if(o=await t.getPattern(i),!o)throw new Error(n.error.message);let f=n.error.cause;s=f instanceof Error?f.message:"the vector index is unavailable"}if(!o)throw new Error("learn failed: no pattern returned");let{vectorIndex:a,notice:c}=Xe(o,s);e.json?h({success:!0,pattern:{id:o.id,name:o.name,type:o.patternType,domain:o.qeDomain},vectorIndex:a,...c?{warning:c}:{}}):(N(`Pattern stored: ${o.name}`),console.log(y.dim(` ID: ${o.id}`)),console.log(y.dim(` Domain: ${o.qeDomain}`)),console.log(y.dim(` Tier: ${o.tier}`)),c&&console.log(y.yellow(` ${a==="pending"?"Vector index pending":"Vector index"}: ${c}`)))}catch(t){throw S(`learn failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("search").description("Search for patterns in the reasoning bank").requiredOption("-q, --query <query>","Search query").option("-l, --limit <n>","Maximum results","10").option("-d, --domain <domain>","Filter by domain").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.searchPatterns(e.query,{limit:parseInt(e.limit,10),domain:e.domain});if(!n.success)throw new Error(n.error.message);let o=n.value;e.json?h({query:e.query,total:o.length,patterns:o.map(s=>({id:s.pattern.id,name:s.pattern.name,score:s.score,domain:s.pattern.qeDomain,matchType:s.matchType}))}):(console.log(y.bold(`
200
+ \u{1F4E1} Hook Event Emitted`)),console.log(y.dim(` Event: ${e.event}`)),console.log(y.dim(` Handlers: ${o.length}`)),o.forEach((s,a)=>{let c=s.success?y.green("\u2713"):y.red("\u2717");console.log(` ${c} Handler ${a+1}: ${s.success?"success":s.error}`),s.patternsLearned&&console.log(y.green(` Patterns learned: ${s.patternsLearned}`))}))}catch(t){throw S(`emit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("learn").description("Store a new pattern in the reasoning bank").requiredOption("-n, --name <name>","Pattern name").requiredOption("-d, --description <desc>","Pattern description").option("-t, --type <type>","Pattern type","test-template").option("--domain <domain>","QE domain").option("--tags <tags...>","Pattern tags").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.storePattern({patternType:e.type,name:e.name,description:e.description,template:{type:"prompt",content:e.description,variables:[]},context:{tags:e.tags||[]}}),o=n.success?n.value:null,s;if(!n.success){let i=he(n.error);if(!i)throw new Error(n.error.message);if(o=await t.getPattern(i),!o)throw new Error(n.error.message);let f=n.error.cause;s=f instanceof Error?f.message:"the vector index is unavailable"}if(!o)throw new Error("learn failed: no pattern returned");let{vectorIndex:a,notice:c}=Ke(o,s,t.getEmbedderFailure());e.json?h({success:!0,pattern:{id:o.id,name:o.name,type:o.patternType,domain:o.qeDomain},vectorIndex:a,...c?{warning:c}:{}}):(N(`Pattern stored: ${o.name}`),console.log(y.dim(` ID: ${o.id}`)),console.log(y.dim(` Domain: ${o.qeDomain}`)),console.log(y.dim(` Tier: ${o.tier}`)),c&&console.log(y.yellow(` ${a==="pending"?"Vector index pending":"Vector index"}: ${c}`)))}catch(t){throw S(`learn failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("search").description("Search for patterns in the reasoning bank").requiredOption("-q, --query <query>","Search query").option("-l, --limit <n>","Maximum results","10").option("-d, --domain <domain>","Filter by domain").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.searchPatterns(e.query,{limit:parseInt(e.limit,10),domain:e.domain});if(!n.success)throw new Error(n.error.message);let o=n.value;e.json?h({query:e.query,total:o.length,patterns:o.map(s=>({id:s.pattern.id,name:s.pattern.name,score:s.score,domain:s.pattern.qeDomain,matchType:s.matchType}))}):(console.log(y.bold(`
201
201
  \u{1F50D} Search Results for "${e.query}"
202
- `)),o.length===0?console.log(y.dim(" No patterns found")):o.forEach((s,a)=>{console.log(`${y.cyan(`${a+1}.`)} ${s.pattern.name} ${y.dim(`(${(s.score*100).toFixed(1)}%)`)}`),console.log(y.dim(` Domain: ${s.pattern.qeDomain}`)),console.log(y.dim(` Match: ${s.matchType}`)),console.log(y.dim(` ID: ${s.pattern.id}`)),console.log()}),console.log(y.dim(`Found ${o.length} pattern(s)`)))}catch(t){throw S(`search failed: ${t instanceof Error?t.message:"unknown"}`),t}})}U();import Q from"chalk";import Ke from"node:path";function Ie(r){r.command("session-start").description("Initialize session state when Claude Code session starts").option("-s, --session-id <id>","Session ID").option("--json","Output as JSON").action(async e=>{try{let t=e.sessionId||`session-${Date.now()}`;m.sessionId=t;let{reasoningBank:n}=await _(),o=await n.getStats(),s=R(),a=Ke.join(s,".agentic-qe"),c=await O(a),i=await c.get(H),f=!i||!i.sessionStartTime;i?(i.sessionStartTime=new Date().toISOString(),i.totalDreamsThisSession=0):i={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0},await c.set(H,i);let l=[];l.push(`AQE Learning: ${o.totalPatterns} patterns loaded`);let p=Object.entries(o.byDomain).filter(([,k])=>k>0).sort(([,k],[,u])=>u-k).slice(0,5);p.length>0&&l.push(`Top domains: ${p.map(([k,u])=>`${k}(${u})`).join(", ")}`),o.patternSuccessRate!==null&&o.patternSuccessRate>0&&l.push(`Pattern success rate: ${(o.patternSuccessRate*100).toFixed(0)}%`),o.routingRequests>0&&l.push(`Routing confidence: ${(o.avgRoutingConfidence*100).toFixed(0)}% across ${o.routingRequests} requests`);let d=l.join(". ")+".";e.json?h({hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:d},sessionId:t,initialized:!0,patternsLoaded:o.totalPatterns,dreamScheduler:{enabled:!0,lastDreamTime:i.lastDreamTime,pendingExperiences:i.experienceCount}}):(N(`Session started: ${t}`),console.log(Q.dim(` Patterns loaded: ${o.totalPatterns}`)),console.log(Q.dim(` Dream scheduler: enabled (${i.experienceCount} pending experiences)`)));return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),r.command("session-end").description("Save session state when Claude Code session ends").option("--save-state","Save learning state to disk").option("--export-metrics","Export session metrics").option("--json","Output as JSON").action(async e=>{try{let t=m.sessionId||"unknown",n=null;if(m.initialized&&m.reasoningBank)try{n=await m.reasoningBank.getStats()}catch{}let o=0;try{o=await ie()}catch{}if(e.json){let s=n?`Session complete: ${n.totalPatterns} patterns, ${n.routingRequests} routings, ${n.patternSuccessRate===null?"success rate: insufficient evidence":`${(n.patternSuccessRate*100).toFixed(0)}% success rate`}`:"Session complete";h({continue:!0,sessionId:t,stateSaved:e.saveState||!1,metricsExported:e.exportMetrics||!1,patternsConsolidated:o,finalStats:n?{patternsLearned:n.totalPatterns,routingRequests:n.routingRequests,successRate:n.patternSuccessRate}:null})}else N(`Session ended: ${t}`),n&&(console.log(Q.dim(` Patterns: ${n.totalPatterns}`)),console.log(Q.dim(` Routing requests: ${n.routingRequests}`))),o>0&&console.log(Q.dim(` Patterns consolidated: ${o}`));return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{createHash as ot,randomUUID as st}from"node:crypto";import w from"chalk";import at from"node:path";U();Be();import{readFileSync as Ye}from"node:fs";import{homedir as Ze}from"node:os";var ne=ue.create("nagual-client");function et(){try{let r=Ye(`${Ze()}/.nagual/cloud-hooks.env`,"utf8");for(let e of r.split(`
203
- `)){let t=e.match(/^(?:export\s+)?NAGUAL_CLOUD_KEY=(.+)/);if(t)return t[1].trim().replace(/^['"]|['"]$/g,"")}}catch{}}var tt="http://localhost:3333",$e=3e3,nt=5e3;var de=class{baseUrl;token;enabled;constructor(){this.baseUrl=process.env.NAGUAL_URL??tt,this.token=process.env.NAGUAL_CLOUD_KEY??process.env.NAGUAL_API_TOKEN??et(),this.enabled=!0}async search(e,t,n=5){try{let o=await fetch(`${this.baseUrl}/api/patterns/search`,{method:"POST",headers:this.headers(),body:JSON.stringify({query:e,domain:t,limit:n}),signal:AbortSignal.timeout($e)});return o.ok?(await o.json()).patterns??[]:[]}catch{return[]}}async recordOutcome(e,t){try{let n=await fetch(`${this.baseUrl}/api/patterns/${encodeURIComponent(e)}/outcome`,{method:"POST",headers:this.headers(),body:JSON.stringify(t),signal:AbortSignal.timeout($e)});n.ok||ne.debug("nagual recordOutcome non-OK",{patternId:e,status:n.status})}catch(n){ne.debug("nagual recordOutcome failed (non-fatal)",{patternId:e,err:n})}}async promotePattern(e){let t={problem:e.problem,solution:e.solution,domain:e.domain,reward:e.reward*.8,tags:[...e.tags??[],"source:aqe",e.source_project?`project:${e.source_project}`:null].filter(n=>n!==null)};try{let n=await fetch(`${this.baseUrl}/api/patterns`,{method:"POST",headers:this.headers(),body:JSON.stringify(t),signal:AbortSignal.timeout(nt)});n.ok||ne.debug("nagual promotePattern non-OK",{status:n.status})}catch(n){ne.debug("nagual promotePattern failed (non-fatal)",{err:n})}}headers(){let e={"Content-Type":"application/json"};return this.token&&(e.Authorization=`Bearer ${this.token}`),e}},ce;function Pe(){return ce||(ce=new de),ce}var rt=/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/;function Le(r,e){let t={};if(r!==void 0){if(!rt.test(r))return{error:`Invalid --parent-agent-id "${r}": must start with a letter or digit and contain only letters, digits, "_", ".", ":", "-" (max 128 chars)`};t.parentAgentId=r}if(e!==void 0){let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n))return{error:`Invalid --depth "${e}": must be an integer`};if(n<0)return{error:`Invalid --depth ${n}: must be >= 0`};if(n>32)return{error:`Invalid --depth ${n}: must be <= 32`};t.depth=n}return t}var it="task-bridge",ct=6e5,Ce=.5;function dt(r){return ot("sha256").update(r).digest("hex").slice(0,16)}var lt=new Set(["test-generation","coverage-analysis","defect-intelligence","security-compliance","quality-assessment","requirements-validation"]),ut=80;async function mt(r,e){return!process.env.NAGUAL_URL&&!process.env.NAGUAL_CLOUD_URL&&!process.env.NAGUAL_CLOUD_KEY?[]:r.length<ut?[]:e&&!lt.has(e)?[]:Pe().search(r.slice(0,300),e,3)}function qe(r){r.command("pre-task").description("Get context and guidance before spawning a Task agent").option("--task-id <id>","Task identifier").option("-d, --description <desc>","Task description").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=null;if(e.description){let d=await t.routeTask({task:e.description});d.success&&(n=d.value)}let o=(n?.patterns??[]).slice(0,5).map(d=>d?.id).filter(d=>typeof d=="string"),s=n?.domains?.[0],a=e.description?await mt(String(e.description),s):[],c=null,i=[],f=0,l=null;try{let d=M();d.isInitialized()||await d.initialize();let k=d.getDatabase();q(k);try{let u=k.prepare(`
202
+ `)),o.length===0?console.log(y.dim(" No patterns found")):o.forEach((s,a)=>{console.log(`${y.cyan(`${a+1}.`)} ${s.pattern.name} ${y.dim(`(${(s.score*100).toFixed(1)}%)`)}`),console.log(y.dim(` Domain: ${s.pattern.qeDomain}`)),console.log(y.dim(` Match: ${s.matchType}`)),console.log(y.dim(` ID: ${s.pattern.id}`)),console.log()}),console.log(y.dim(`Found ${o.length} pattern(s)`)))}catch(t){throw S(`search failed: ${t instanceof Error?t.message:"unknown"}`),t}})}U();import J from"chalk";import Ye from"node:path";function $e(r){r.command("session-start").description("Initialize session state when Claude Code session starts").option("-s, --session-id <id>","Session ID").option("--json","Output as JSON").action(async e=>{try{let t=e.sessionId||`session-${Date.now()}`;m.sessionId=t;let{reasoningBank:n}=await _(),o=await n.getStats(),s=R(),a=Ye.join(s,".agentic-qe"),c=await O(a),i=await c.get(H),f=!i||!i.sessionStartTime;i?(i.sessionStartTime=new Date().toISOString(),i.totalDreamsThisSession=0):i={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0},await c.set(H,i);let l=[];l.push(`AQE Learning: ${o.totalPatterns} patterns loaded`);let p=Object.entries(o.byDomain).filter(([,k])=>k>0).sort(([,k],[,u])=>u-k).slice(0,5);p.length>0&&l.push(`Top domains: ${p.map(([k,u])=>`${k}(${u})`).join(", ")}`),o.patternSuccessRate!==null&&o.patternSuccessRate>0&&l.push(`Pattern success rate: ${(o.patternSuccessRate*100).toFixed(0)}%`),o.routingRequests>0&&l.push(`Routing confidence: ${(o.avgRoutingConfidence*100).toFixed(0)}% across ${o.routingRequests} requests`);let d=l.join(". ")+".";e.json?h({hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:d},sessionId:t,initialized:!0,patternsLoaded:o.totalPatterns,dreamScheduler:{enabled:!0,lastDreamTime:i.lastDreamTime,pendingExperiences:i.experienceCount}}):(N(`Session started: ${t}`),console.log(J.dim(` Patterns loaded: ${o.totalPatterns}`)),console.log(J.dim(` Dream scheduler: enabled (${i.experienceCount} pending experiences)`)));return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),r.command("session-end").description("Save session state when Claude Code session ends").option("--save-state","Save learning state to disk").option("--export-metrics","Export session metrics").option("--json","Output as JSON").action(async e=>{try{let t=m.sessionId||"unknown",n=null;if(m.initialized&&m.reasoningBank)try{n=await m.reasoningBank.getStats()}catch{}let o=0;try{o=await ie()}catch{}if(e.json){let s=n?`Session complete: ${n.totalPatterns} patterns, ${n.routingRequests} routings, ${n.patternSuccessRate===null?"success rate: insufficient evidence":`${(n.patternSuccessRate*100).toFixed(0)}% success rate`}`:"Session complete";h({continue:!0,sessionId:t,stateSaved:e.saveState||!1,metricsExported:e.exportMetrics||!1,patternsConsolidated:o,finalStats:n?{patternsLearned:n.totalPatterns,routingRequests:n.routingRequests,successRate:n.patternSuccessRate}:null})}else N(`Session ended: ${t}`),n&&(console.log(J.dim(` Patterns: ${n.totalPatterns}`)),console.log(J.dim(` Routing requests: ${n.routingRequests}`))),o>0&&console.log(J.dim(` Patterns consolidated: ${o}`));return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{createHash as st,randomUUID as at}from"node:crypto";import w from"chalk";import it from"node:path";U();He();import{readFileSync as Ze}from"node:fs";import{homedir as et}from"node:os";var ne=ue.create("nagual-client");function tt(){try{let r=Ze(`${et()}/.nagual/cloud-hooks.env`,"utf8");for(let e of r.split(`
203
+ `)){let t=e.match(/^(?:export\s+)?NAGUAL_CLOUD_KEY=(.+)/);if(t)return t[1].trim().replace(/^['"]|['"]$/g,"")}}catch{}}var nt="http://localhost:3333",Pe=3e3,rt=5e3;var de=class{baseUrl;token;enabled;constructor(){this.baseUrl=process.env.NAGUAL_URL??nt,this.token=process.env.NAGUAL_CLOUD_KEY??process.env.NAGUAL_API_TOKEN??tt(),this.enabled=!0}async search(e,t,n=5){try{let o=await fetch(`${this.baseUrl}/api/patterns/search`,{method:"POST",headers:this.headers(),body:JSON.stringify({query:e,domain:t,limit:n}),signal:AbortSignal.timeout(Pe)});return o.ok?(await o.json()).patterns??[]:[]}catch{return[]}}async recordOutcome(e,t){try{let n=await fetch(`${this.baseUrl}/api/patterns/${encodeURIComponent(e)}/outcome`,{method:"POST",headers:this.headers(),body:JSON.stringify(t),signal:AbortSignal.timeout(Pe)});n.ok||ne.debug("nagual recordOutcome non-OK",{patternId:e,status:n.status})}catch(n){ne.debug("nagual recordOutcome failed (non-fatal)",{patternId:e,err:n})}}async promotePattern(e){let t={problem:e.problem,solution:e.solution,domain:e.domain,reward:e.reward*.8,tags:[...e.tags??[],"source:aqe",e.source_project?`project:${e.source_project}`:null].filter(n=>n!==null)};try{let n=await fetch(`${this.baseUrl}/api/patterns`,{method:"POST",headers:this.headers(),body:JSON.stringify(t),signal:AbortSignal.timeout(rt)});n.ok||ne.debug("nagual promotePattern non-OK",{status:n.status})}catch(n){ne.debug("nagual promotePattern failed (non-fatal)",{err:n})}}headers(){let e={"Content-Type":"application/json"};return this.token&&(e.Authorization=`Bearer ${this.token}`),e}},ce;function Le(){return ce||(ce=new de),ce}var ot=/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/;function Ce(r,e){let t={};if(r!==void 0){if(!ot.test(r))return{error:`Invalid --parent-agent-id "${r}": must start with a letter or digit and contain only letters, digits, "_", ".", ":", "-" (max 128 chars)`};t.parentAgentId=r}if(e!==void 0){let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n))return{error:`Invalid --depth "${e}": must be an integer`};if(n<0)return{error:`Invalid --depth ${n}: must be >= 0`};if(n>32)return{error:`Invalid --depth ${n}: must be <= 32`};t.depth=n}return t}var ct="task-bridge",dt=6e5,qe=.5;function lt(r){return st("sha256").update(r).digest("hex").slice(0,16)}var ut=new Set(["test-generation","coverage-analysis","defect-intelligence","security-compliance","quality-assessment","requirements-validation"]),mt=80;async function pt(r,e){return!process.env.NAGUAL_URL&&!process.env.NAGUAL_CLOUD_URL&&!process.env.NAGUAL_CLOUD_KEY?[]:r.length<mt?[]:e&&!ut.has(e)?[]:Le().search(r.slice(0,300),e,3)}function je(r){r.command("pre-task").description("Get context and guidance before spawning a Task agent").option("--task-id <id>","Task identifier").option("-d, --description <desc>","Task description").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=null;if(e.description){let d=await t.routeTask({task:e.description});d.success&&(n=d.value)}let o=(n?.patterns??[]).slice(0,5).map(d=>d?.id).filter(d=>typeof d=="string"),s=n?.domains?.[0],a=e.description?await pt(String(e.description),s):[],c=null,i=[],f=0,l=null;try{let d=M();d.isInitialized()||await d.initialize();let k=d.getDatabase();q(k);try{let u=k.prepare(`
204
204
  SELECT used_agent AS agent,
205
205
  ROUND(AVG(quality_score), 3) AS avgQuality,
206
206
  COUNT(*) AS n
@@ -220,26 +220,26 @@ Registered: ${n.length}/${Object.keys(A).length}`))}}catch(t){throw S(`list fail
220
220
  SELECT COALESCE(SUM(average_token_savings), 0) AS sum
221
221
  FROM qe_patterns
222
222
  WHERE id IN (${u})
223
- `).get(...o);f=Math.max(0,Math.round(E?.sum??0))}catch{}if(e.description)try{let u=String(e.description),E=W(u),g="normal",T=n?.domains?.[0]??"any",D=Math.max(0,Math.min(10,Math.round(Math.min(u.length/200,1)*10)));l=`task:${dt(u)}`;let L=JSON.stringify({selectedPatternIds:o,agent:n?.recommendedAgent??null,description:u.slice(0,200),taskType:E,priority:g,domain:T,complexityBucket:D,estimatedTokenSavings:f,ts:Date.now()}),C=Date.now()+ct;k.prepare(`
223
+ `).get(...o);f=Math.max(0,Math.round(E?.sum??0))}catch{}if(e.description)try{let u=String(e.description),E=W(u),g="normal",T=n?.domains?.[0]??"any",D=Math.max(0,Math.min(10,Math.round(Math.min(u.length/200,1)*10)));l=`task:${lt(u)}`;let L=JSON.stringify({selectedPatternIds:o,agent:n?.recommendedAgent??null,description:u.slice(0,200),taskType:E,priority:g,domain:T,complexityBucket:D,estimatedTokenSavings:f,ts:Date.now()}),C=Date.now()+dt;k.prepare(`
224
224
  INSERT OR REPLACE INTO kv_store (key, namespace, value, expires_at, created_at)
225
225
  VALUES (?, ?, ?, ?, strftime('%s','now')*1000)
226
- `).run(l,it,L,C)}catch(u){console.error(w.dim(`[hooks] pre-task bridge: ${u instanceof Error?u.message:"unknown"}`))}if(n?.recommendedAgent)try{ee(k);let u=e.taskId||`hook-${Date.now()}`,E=`route-${Date.now()}-${st().slice(0,8)}`,g=n.confidence<Ce,T=n;k.prepare(`
226
+ `).run(l,ct,L,C)}catch(u){console.error(w.dim(`[hooks] pre-task bridge: ${u instanceof Error?u.message:"unknown"}`))}if(n?.recommendedAgent)try{ee(k);let u=e.taskId||`hook-${Date.now()}`,E=`route-${Date.now()}-${at().slice(0,8)}`,g=n.confidence<qe,T=n;k.prepare(`
227
227
  INSERT INTO routing_outcomes (
228
228
  id, task_json, decision_json, used_agent,
229
229
  followed_recommendation, success, quality_score,
230
230
  duration_ms, error,
231
231
  exploration, criticality, q_weight
232
232
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
233
- `).run(E,JSON.stringify({description:e.description,taskId:u}),JSON.stringify({recommended:n.recommendedAgent,confidence:n.confidence,alternatives:n.alternatives,lowConfidence:g,exploration:T.exploration??!1,criticality:T.criticality??null,qWeight:T.qWeight??null}),n.recommendedAgent,1,0,-1,0,g?"low-confidence":null,T.exploration?1:0,T.criticality??null,T.qWeight??null)}catch(u){console.error(w.dim(`[hooks] pre-task sentinel: ${u instanceof Error?u.message:"unknown"}`))}}catch(d){console.error(w.dim(`[hooks] pre-task memory: ${d instanceof Error?d.message:"unknown"}`))}let p=n?n.confidence<Ce:!1;if(e.json)h({success:!0,taskId:e.taskId,description:e.description,recommendedAgent:n?.recommendedAgent,confidence:n?.confidence,guidance:n?.guidance||[],selectedPatternIds:o,historicalBest:c,priorVerdicts:i,estimatedTokenSavings:f,lowConfidence:p,bridgeKey:l,nagualPatterns:a.map(d=>({id:d.id,problem:d.problem,solution:d.solution.slice(0,400),domain:d.domain,reward:d.reward}))});else if(console.log(w.bold(`
233
+ `).run(E,JSON.stringify({description:e.description,taskId:u}),JSON.stringify({recommended:n.recommendedAgent,confidence:n.confidence,alternatives:n.alternatives,lowConfidence:g,exploration:T.exploration??!1,criticality:T.criticality??null,qWeight:T.qWeight??null}),n.recommendedAgent,1,0,-1,0,g?"low-confidence":null,T.exploration?1:0,T.criticality??null,T.qWeight??null)}catch(u){console.error(w.dim(`[hooks] pre-task sentinel: ${u instanceof Error?u.message:"unknown"}`))}}catch(d){console.error(w.dim(`[hooks] pre-task memory: ${d instanceof Error?d.message:"unknown"}`))}let p=n?n.confidence<qe:!1;if(e.json)h({success:!0,taskId:e.taskId,description:e.description,recommendedAgent:n?.recommendedAgent,confidence:n?.confidence,guidance:n?.guidance||[],selectedPatternIds:o,historicalBest:c,priorVerdicts:i,estimatedTokenSavings:f,lowConfidence:p,bridgeKey:l,nagualPatterns:a.map(d=>({id:d.id,problem:d.problem,solution:d.solution.slice(0,400),domain:d.domain,reward:d.reward}))});else if(console.log(w.bold(`
234
234
  \u{1F680} Pre-Task Analysis`)),console.log(w.dim(` Task ID: ${e.taskId||"N/A"}`)),n&&(console.log(w.bold(`
235
235
  \u{1F3AF} Recommended:`),w.cyan(n.recommendedAgent)),console.log(w.dim(` Confidence: ${(n.confidence*100).toFixed(1)}%`)),p&&console.log(w.yellow(" \u26A0 Low confidence \u2014 consider providing more context"))),a.length>0){console.log(w.bold(`
236
- \u{1F4DA} Nagual context (cross-project):`));for(let d of a)console.log(w.dim(` [${d.domain}] ${d.problem.slice(0,80)} (reward: ${d.reward.toFixed(2)})`))}return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),r.command("post-task").description("Record task outcome for pattern learning").option("--task-id <id>","Task identifier").option("--success [bool]","Whether task succeeded","true").option("--agent <name>","Agent that executed the task").option("--duration <ms>","Task duration in milliseconds").option("-d, --description <desc>","Task description \u2014 fallback Q-state source when pre-task bridge is absent (issue #499)").option("--parent-agent-id <id>","Agent that spawned this task (ADR-101 nesting provenance)").option("--depth <n>","Nesting depth of this task, 0 = top-level (ADR-101)").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0;if(!e.agent||!String(e.agent).trim())try{let s=await F(),a=Oe(s);a&&(e.agent=a)}catch{}let n=Le(e.parentAgentId,e.depth);if(n.error){e.json?console.log(JSON.stringify({success:!1,error:n.error})):console.error(w.red(` \u2717 ${n.error}`)),process.exitCode=1;return}let o=0;try{let{hookRegistry:s,reasoningBank:a}=await _();o=(await s.emit(A.QEAgentCompletion,{taskId:e.taskId,success:t,agent:e.agent,duration:e.duration?parseInt(e.duration,10):void 0,timestamp:Date.now()})).reduce((p,d)=>p+(d.patternsLearned||0),0);{let p=e.taskId||`hook-${Date.now()}`,d=e.agent||"unknown",k=e.duration?parseInt(e.duration,10):0,u=(n.parentAgentId?`, Parent: ${n.parentAgentId}`:"")+(n.depth!==void 0?`, Depth: ${n.depth}`:"");await a.recordOutcome({patternId:`task:${d}:${p}`,success:t,metrics:{executionTimeMs:k},feedback:`Agent: ${d}, Task: ${p}${u}`});let E=await se({taskId:p,agent:d,durationMs:k,success:t,parentAgentId:n.parentAgentId,depth:n.depth}),g=d==="unknown"&&E.bridge?.agent?E.bridge.agent:d;await ae({agent:g,success:t,durationMs:k,qualityScore:E.qualityScore});let T=String(e.description??"");if(E.bridge||T){let D=E.bridge?.taskType??W(T),L=E.bridge?.priority??"normal",C=E.bridge?.domain??Z(T)[0]??"any";await J({taskType:D,priority:L,domain:C,agent:g,success:t})}}let i=R(),f=at.join(i,".agentic-qe"),l=await O(f);await x(l)}catch(s){console.error(w.dim(`[hooks] Learning init: ${s instanceof Error?s.message:"unknown"}`))}e.json?h({success:!0,taskId:e.taskId,taskSuccess:t,patternsLearned:o,dreamTriggered:!1,dreamReason:"deferred-to-kernel"}):(N(`Task completed: ${e.taskId||"unknown"}`),console.log(w.dim(` Success: ${t}`)),o>0&&console.log(w.green(` Patterns learned: ${o}`)));return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{existsSync as pt,readFileSync as gt}from"node:fs";import{randomUUID as je}from"node:crypto";import X from"chalk";import Me from"node:path";U();Fe();import*as z from"fs";import*as re from"path";var V=class r{statePath;warnThreshold;blockThreshold;halfOpenAfterMs;staleAfterMs;constructor(e){this.statePath=e.statePath,this.warnThreshold=e.warnThreshold??3,this.blockThreshold=e.blockThreshold??5,this.halfOpenAfterMs=e.halfOpenAfterMs??12e4,this.staleAfterMs=e.staleAfterMs??30*6e4}static signature(e){return e.trim().replace(/\s+/g," ").slice(0,200)}check(e,t=Date.now()){let n=r.signature(e);if(!n)return{verdict:"allow",consecutiveFailures:0,halfOpen:!1};let o=Y(this.readState(),n);if(!o||o.consecutiveFailures<this.warnThreshold)return{verdict:"allow",consecutiveFailures:o?.consecutiveFailures??0,halfOpen:!1};let s=o.consecutiveFailures;return s>=this.blockThreshold?t-o.lastFailureAt>=this.halfOpenAfterMs?{verdict:"warn",consecutiveFailures:s,halfOpen:!0,hint:`This command has failed ${s}x consecutively; allowing one probe attempt. If it fails again it will be flagged immediately.`}:{verdict:"block",consecutiveFailures:s,halfOpen:!1,hint:`The same command failed ${s}x consecutively. Re-running it unchanged is unlikely to succeed \u2014 inspect the error output, change the approach, or fix the underlying problem first. (A successful run resets this breaker.)`}:{verdict:"warn",consecutiveFailures:s,halfOpen:!1,hint:`This command has failed ${s}x consecutively \u2014 consider changing approach before retrying.`}}record(e,t,n=Date.now()){let o=r.signature(e);if(o)try{let s=this.readState();if(t){Y(s,o)&&(delete s[o],this.writeState(s,n));return}let a=Y(s,o)??{consecutiveFailures:0,lastFailureAt:n};a.consecutiveFailures+=1,a.lastFailureAt=n,pe(s,o,a),this.writeState(s,n)}catch{}}static isStrict(e=process.env){return e.AQE_STRICT_TOOL_LOOP==="1"||e.AQE_STRICT_TOOL_LOOP==="true"}readState(){try{let e=z.readFileSync(this.statePath,"utf8"),t=JSON.parse(e);return typeof t=="object"&&t!==null?Object.assign(K(),t):K()}catch{return K()}}writeState(e,t){for(let[n,o]of Object.entries(e))t-o.lastFailureAt>this.staleAfterMs&&delete e[n];z.mkdirSync(re.dirname(this.statePath),{recursive:!0}),z.writeFileSync(this.statePath,JSON.stringify(e))}};function le(r){return new V({statePath:re.join(r,".agentic-qe","tool-loop-state.json")})}function ft(r){return/\bjest\b/i.test(r)?"jest":/\bvitest\b/i.test(r)?"vitest":/\bpytest\b/i.test(r)?"pytest":/\bmocha\b/i.test(r)?"mocha":null}async function ht(r){try{let e=M();e.isInitialized()||await e.initialize();let t=e.getDatabase();q(t);let n=r.framework==="pytest"?"python":"javascript",o=r.command.split(/\s+/).slice(0,3).join("-").slice(0,80);t.prepare(`
236
+ \u{1F4DA} Nagual context (cross-project):`));for(let d of a)console.log(w.dim(` [${d.domain}] ${d.problem.slice(0,80)} (reward: ${d.reward.toFixed(2)})`))}return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),r.command("post-task").description("Record task outcome for pattern learning").option("--task-id <id>","Task identifier").option("--success [bool]","Whether task succeeded","true").option("--agent <name>","Agent that executed the task").option("--duration <ms>","Task duration in milliseconds").option("-d, --description <desc>","Task description \u2014 fallback Q-state source when pre-task bridge is absent (issue #499)").option("--parent-agent-id <id>","Agent that spawned this task (ADR-101 nesting provenance)").option("--depth <n>","Nesting depth of this task, 0 = top-level (ADR-101)").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0;if(!e.agent||!String(e.agent).trim())try{let s=await F(),a=Ne(s);a&&(e.agent=a)}catch{}let n=Ce(e.parentAgentId,e.depth);if(n.error){e.json?console.log(JSON.stringify({success:!1,error:n.error})):console.error(w.red(` \u2717 ${n.error}`)),process.exitCode=1;return}let o=0;try{let{hookRegistry:s,reasoningBank:a}=await _();o=(await s.emit(A.QEAgentCompletion,{taskId:e.taskId,success:t,agent:e.agent,duration:e.duration?parseInt(e.duration,10):void 0,timestamp:Date.now()})).reduce((p,d)=>p+(d.patternsLearned||0),0);{let p=e.taskId||`hook-${Date.now()}`,d=e.agent||"unknown",k=e.duration?parseInt(e.duration,10):0,u=(n.parentAgentId?`, Parent: ${n.parentAgentId}`:"")+(n.depth!==void 0?`, Depth: ${n.depth}`:"");await a.recordOutcome({patternId:`task:${d}:${p}`,success:t,metrics:{executionTimeMs:k},feedback:`Agent: ${d}, Task: ${p}${u}`});let E=await se({taskId:p,agent:d,durationMs:k,success:t,parentAgentId:n.parentAgentId,depth:n.depth}),g=d==="unknown"&&E.bridge?.agent?E.bridge.agent:d;await ae({agent:g,success:t,durationMs:k,qualityScore:E.qualityScore});let T=String(e.description??"");if(E.bridge||T){let D=E.bridge?.taskType??W(T),L=E.bridge?.priority??"normal",C=E.bridge?.domain??Z(T)[0]??"any";await Q({taskType:D,priority:L,domain:C,agent:g,success:t})}}let i=R(),f=it.join(i,".agentic-qe"),l=await O(f);await x(l)}catch(s){console.error(w.dim(`[hooks] Learning init: ${s instanceof Error?s.message:"unknown"}`))}e.json?h({success:!0,taskId:e.taskId,taskSuccess:t,patternsLearned:o,dreamTriggered:!1,dreamReason:"deferred-to-kernel"}):(N(`Task completed: ${e.taskId||"unknown"}`),console.log(w.dim(` Success: ${t}`)),o>0&&console.log(w.green(` Patterns learned: ${o}`)));return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{existsSync as gt,readFileSync as ft}from"node:fs";import{randomUUID as Me}from"node:crypto";import X from"chalk";import Ue from"node:path";U();ze();import*as z from"fs";import*as re from"path";var V=class r{statePath;warnThreshold;blockThreshold;halfOpenAfterMs;staleAfterMs;constructor(e){this.statePath=e.statePath,this.warnThreshold=e.warnThreshold??3,this.blockThreshold=e.blockThreshold??5,this.halfOpenAfterMs=e.halfOpenAfterMs??12e4,this.staleAfterMs=e.staleAfterMs??30*6e4}static signature(e){return e.trim().replace(/\s+/g," ").slice(0,200)}check(e,t=Date.now()){let n=r.signature(e);if(!n)return{verdict:"allow",consecutiveFailures:0,halfOpen:!1};let o=Y(this.readState(),n);if(!o||o.consecutiveFailures<this.warnThreshold)return{verdict:"allow",consecutiveFailures:o?.consecutiveFailures??0,halfOpen:!1};let s=o.consecutiveFailures;return s>=this.blockThreshold?t-o.lastFailureAt>=this.halfOpenAfterMs?{verdict:"warn",consecutiveFailures:s,halfOpen:!0,hint:`This command has failed ${s}x consecutively; allowing one probe attempt. If it fails again it will be flagged immediately.`}:{verdict:"block",consecutiveFailures:s,halfOpen:!1,hint:`The same command failed ${s}x consecutively. Re-running it unchanged is unlikely to succeed \u2014 inspect the error output, change the approach, or fix the underlying problem first. (A successful run resets this breaker.)`}:{verdict:"warn",consecutiveFailures:s,halfOpen:!1,hint:`This command has failed ${s}x consecutively \u2014 consider changing approach before retrying.`}}record(e,t,n=Date.now()){let o=r.signature(e);if(o)try{let s=this.readState();if(t){Y(s,o)&&(delete s[o],this.writeState(s,n));return}let a=Y(s,o)??{consecutiveFailures:0,lastFailureAt:n};a.consecutiveFailures+=1,a.lastFailureAt=n,pe(s,o,a),this.writeState(s,n)}catch{}}static isStrict(e=process.env){return e.AQE_STRICT_TOOL_LOOP==="1"||e.AQE_STRICT_TOOL_LOOP==="true"}readState(){try{let e=z.readFileSync(this.statePath,"utf8"),t=JSON.parse(e);return typeof t=="object"&&t!==null?Object.assign(K(),t):K()}catch{return K()}}writeState(e,t){for(let[n,o]of Object.entries(e))t-o.lastFailureAt>this.staleAfterMs&&delete e[n];z.mkdirSync(re.dirname(this.statePath),{recursive:!0}),z.writeFileSync(this.statePath,JSON.stringify(e))}};function le(r){return new V({statePath:re.join(r,".agentic-qe","tool-loop-state.json")})}function ht(r){return/\bjest\b/i.test(r)?"jest":/\bvitest\b/i.test(r)?"vitest":/\bpytest\b/i.test(r)?"pytest":/\bmocha\b/i.test(r)?"mocha":null}async function kt(r){try{let e=M();e.isInitialized()||await e.initialize();let t=e.getDatabase();q(t);let n=r.framework==="pytest"?"python":"javascript",o=r.command.split(/\s+/).slice(0,3).join("-").slice(0,80);t.prepare(`
237
237
  INSERT INTO test_outcomes (
238
238
  id, test_id, test_name, generated_by, framework, language, domain,
239
239
  passed, execution_time_ms, maintainability_score, created_at
240
240
  ) VALUES (?, ?, ?, 'cli-hook-post-command', ?, ?, 'test-execution',
241
241
  ?, ?, 0.5, datetime('now'))
242
- `).run(`to-${Date.now()}-${je().slice(0,8)}`,`cmd:${o}`,r.command.slice(0,200),r.framework,n,r.success?1:0,r.durationMs);try{let s=Me.join(process.cwd(),"coverage","coverage-summary.json");if(pt(s)){let c=JSON.parse(gt(s,"utf-8")).total??{},i=Number(c.lines?.pct??0),f=Number(c.branches?.pct??0),l=Number(c.functions?.pct??0),p=t.prepare(`
242
+ `).run(`to-${Date.now()}-${Me().slice(0,8)}`,`cmd:${o}`,r.command.slice(0,200),r.framework,n,r.success?1:0,r.durationMs);try{let s=Ue.join(process.cwd(),"coverage","coverage-summary.json");if(gt(s)){let c=JSON.parse(ft(s,"utf-8")).total??{},i=Number(c.lines?.pct??0),f=Number(c.branches?.pct??0),l=Number(c.functions?.pct??0),p=t.prepare(`
243
243
  SELECT after_lines, after_branches, after_functions
244
244
  FROM coverage_sessions
245
245
  WHERE target_path = ?
@@ -253,8 +253,8 @@ Registered: ${n.length}/${Object.keys(A).length}`))}}catch(t){throw S(`list fail
253
253
  tests_generated, tests_passed, duration_ms,
254
254
  started_at, completed_at
255
255
  ) VALUES (?, ?, 'cli-hook-post-command', ?, ?, ?, ?, ?, ?, ?, 0, ?, ?, ?, ?)
256
- `).run(`cs-${Date.now()}-${je().slice(0,8)}`,process.cwd(),r.framework,p?.after_lines??0,p?.after_branches??0,p?.after_functions??0,i,f,l,r.success?1:0,r.durationMs,d,d)}}catch(s){console.error(X.dim(`[hooks] coverage_sessions: ${s instanceof Error?s.message:"unknown"}`))}}catch(e){console.error(X.dim(`[hooks] test_outcomes: ${e instanceof Error?e.message:"unknown"}`))}}function Ue(r){r.command("guard").description("File guardian - block edits to protected files").requiredOption("-f, --file <path>","File path to check").option("--json","Output as JSON (required for hook API)").action(async e=>{try{let t=e.file||"",n=t.replace(/\\/g,"/"),s=[{pattern:/^\.env($|\.)/,reason:"Environment file contains secrets"},{pattern:/\.env\.[a-zA-Z]+$/,reason:"Environment file contains secrets"},{pattern:/\.lock$/,reason:"Lock files are auto-generated"},{pattern:/(^|\/)node_modules\//,reason:"node_modules is managed by package manager"},{pattern:/(^|\/)\.agentic-qe\/memory\.db/,reason:"AQE memory database must not be directly edited"},{pattern:/(^|\/)\.agentic-qe\/memory\.db-wal$/,reason:"AQE WAL file must not be directly edited"},{pattern:/(^|\/)\.agentic-qe\/memory\.db-shm$/,reason:"AQE shared memory file must not be directly edited"}].find(a=>a.pattern.test(n));s?e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Protected file: ${s.reason} (${t})`}}):S(`Blocked: ${s.reason} (${t})`):e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}}):N(`Allowed: ${t}`);return}catch{e.json&&h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),r.command("pre-command").description("Get context before executing a Bash command").option("-c, --command <cmd>","Command to be executed").option("--json","Output as JSON").action(async e=>{try{let t=e.command||"",n=[{pattern:/rm\s+(-[a-zA-Z]*f[a-zA-Z]*\s+)?-[a-zA-Z]*r[a-zA-Z]*\s+\/(?!\w)/,reason:"Recursive delete of root filesystem"},{pattern:/rm\s+(-[a-zA-Z]*r[a-zA-Z]*\s+)?-[a-zA-Z]*f[a-zA-Z]*\s+\/(?!\w)/,reason:"Recursive delete of root filesystem"},{pattern:/rm\s+-rf\s+~/,reason:"Recursive delete of home directory"},{pattern:/DROP\s+(TABLE|DATABASE|SCHEMA)/i,reason:"Destructive SQL operation"},{pattern:/git\s+push\s+.*--force(?!-)/,reason:"Force push can overwrite remote history"},{pattern:/git\s+reset\s+--hard/,reason:"Hard reset discards uncommitted changes"},{pattern:/>\s*\/dev\/sd[a-z]/,reason:"Direct write to block device"},{pattern:/dd\s+if=.*of=\/dev\/sd/,reason:"Direct disk write via dd"},{pattern:/chmod\s+777\s/,reason:"World-writable permissions are a security risk"},{pattern:/:\(\)\s*\{\s*:\|\s*:&\s*\}\s*;?\s*:/,reason:"Fork bomb detected"},{pattern:/mkfs\./,reason:"Filesystem format operation"},{pattern:/>\s*\/dev\/null\s*2>&1\s*&\s*disown/,reason:"Stealth background process"}],o=[{pattern:/\.agentic-qe.*rm/,reason:"Deleting AQE data files"},{pattern:/rm\s+-rf\s/,reason:"Recursive force delete"},{pattern:/git\s+clean\s+-[a-zA-Z]*f/,reason:"Force cleaning untracked files"}],s=n.find(i=>i.pattern.test(t)),a=o.filter(i=>i.pattern.test(t)).map(i=>i.reason),c=null;try{c=le(R()).check(t)}catch{}if(c&&c.verdict==="block"&&V.isStrict()){e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Tool-loop breaker (AQE_STRICT_TOOL_LOOP): ${c.hint}`}}):S(`Blocked by tool-loop breaker: ${c.hint}`);return}if(c&&c.verdict==="block"?a.push(`\u{1F6D1} TOOL-LOOP BREAKER: ${c.hint}`):c&&c.verdict==="warn"&&a.push(`Tool-loop breaker: ${c.hint}`),s)e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Dangerous command blocked: ${s.reason}`}}):S(`Blocked: ${s.reason}`);else if(e.json){let i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}};a.length>0&&(i.hookSpecificOutput.additionalContext=`Warnings: ${a.join("; ")}`),h(i)}else a.length>0&&(console.log(X.yellow(`
257
- \u26A0\uFE0F Command Warnings:`)),a.forEach(i=>console.log(X.yellow(` - ${i}`))));return}catch{e.json&&h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),r.command("post-command").description("Record Bash command outcome").option("-c, --command <cmd>","Command that was executed").option("--success [bool]","Whether command succeeded","true").option("--exit-code <code>","Command exit code").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=e.exitCode?parseInt(e.exitCode,10):t?0:1,o=(e.command||"").substring(0,200);try{le(R()).record(o,t)}catch{}let s=/\b(test|vitest|jest|pytest|mocha)\b/i.test(o),a=/\b(build|compile|tsc)\b/i.test(o),c=/\b(lint|eslint|prettier)\b/i.test(o),i=0,f=!1;try{let{reasoningBank:l}=await _();if(s){let{hookRegistry:T}=await _();await T.emit(A.TestExecutionResult,{runId:`cmd-${Date.now()}`,patternId:`cmd:test:${o.split(/\s+/).slice(0,3).join("-")}`,passed:t?1:0,failed:t?0:1,duration:0,flaky:!1})}let p=o.replace(/[^a-zA-Z0-9]/g,"-").slice(0,80),d=s?"test-execution":a?"code-intelligence":c?"quality-assessment":"code-intelligence";await l.recordOutcome({patternId:`cmd:${p}`,success:t,metrics:{executionTimeMs:0},feedback:`Command: ${o}, exit: ${n}`}),i=1,(s||a||c)&&(await G({task:`bash: ${o}`,agent:"cli-hook",domain:d,success:t,source:"cli-hook-post-command"}),f=!0);let k=ft(o);k&&await ht({command:o,framework:k,success:t,durationMs:0});let u=R(),E=Me.join(u,".agentic-qe"),g=await O(E);await x(g)}catch(l){console.error(X.dim(`[hooks] post-command learning: ${l instanceof Error?l.message:"unknown"}`))}e.json&&h({success:!0,command:o.substring(0,100),commandSuccess:t,exitCode:n,patternsLearned:i,experienceRecorded:f});return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}function Gn(){let r=new kt("hooks").description("Self-learning QE hooks for pattern recognition and guidance").addHelpText("after",`
256
+ `).run(`cs-${Date.now()}-${Me().slice(0,8)}`,process.cwd(),r.framework,p?.after_lines??0,p?.after_branches??0,p?.after_functions??0,i,f,l,r.success?1:0,r.durationMs,d,d)}}catch(s){console.error(X.dim(`[hooks] coverage_sessions: ${s instanceof Error?s.message:"unknown"}`))}}catch(e){console.error(X.dim(`[hooks] test_outcomes: ${e instanceof Error?e.message:"unknown"}`))}}function Be(r){r.command("guard").description("File guardian - block edits to protected files").requiredOption("-f, --file <path>","File path to check").option("--json","Output as JSON (required for hook API)").action(async e=>{try{let t=e.file||"",n=t.replace(/\\/g,"/"),s=[{pattern:/^\.env($|\.)/,reason:"Environment file contains secrets"},{pattern:/\.env\.[a-zA-Z]+$/,reason:"Environment file contains secrets"},{pattern:/\.lock$/,reason:"Lock files are auto-generated"},{pattern:/(^|\/)node_modules\//,reason:"node_modules is managed by package manager"},{pattern:/(^|\/)\.agentic-qe\/memory\.db/,reason:"AQE memory database must not be directly edited"},{pattern:/(^|\/)\.agentic-qe\/memory\.db-wal$/,reason:"AQE WAL file must not be directly edited"},{pattern:/(^|\/)\.agentic-qe\/memory\.db-shm$/,reason:"AQE shared memory file must not be directly edited"}].find(a=>a.pattern.test(n));s?e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Protected file: ${s.reason} (${t})`}}):S(`Blocked: ${s.reason} (${t})`):e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}}):N(`Allowed: ${t}`);return}catch{e.json&&h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),r.command("pre-command").description("Get context before executing a Bash command").option("-c, --command <cmd>","Command to be executed").option("--json","Output as JSON").action(async e=>{try{let t=e.command||"",n=[{pattern:/rm\s+(-[a-zA-Z]*f[a-zA-Z]*\s+)?-[a-zA-Z]*r[a-zA-Z]*\s+\/(?!\w)/,reason:"Recursive delete of root filesystem"},{pattern:/rm\s+(-[a-zA-Z]*r[a-zA-Z]*\s+)?-[a-zA-Z]*f[a-zA-Z]*\s+\/(?!\w)/,reason:"Recursive delete of root filesystem"},{pattern:/rm\s+-rf\s+~/,reason:"Recursive delete of home directory"},{pattern:/DROP\s+(TABLE|DATABASE|SCHEMA)/i,reason:"Destructive SQL operation"},{pattern:/git\s+push\s+.*--force(?!-)/,reason:"Force push can overwrite remote history"},{pattern:/git\s+reset\s+--hard/,reason:"Hard reset discards uncommitted changes"},{pattern:/>\s*\/dev\/sd[a-z]/,reason:"Direct write to block device"},{pattern:/dd\s+if=.*of=\/dev\/sd/,reason:"Direct disk write via dd"},{pattern:/chmod\s+777\s/,reason:"World-writable permissions are a security risk"},{pattern:/:\(\)\s*\{\s*:\|\s*:&\s*\}\s*;?\s*:/,reason:"Fork bomb detected"},{pattern:/mkfs\./,reason:"Filesystem format operation"},{pattern:/>\s*\/dev\/null\s*2>&1\s*&\s*disown/,reason:"Stealth background process"}],o=[{pattern:/\.agentic-qe.*rm/,reason:"Deleting AQE data files"},{pattern:/rm\s+-rf\s/,reason:"Recursive force delete"},{pattern:/git\s+clean\s+-[a-zA-Z]*f/,reason:"Force cleaning untracked files"}],s=n.find(i=>i.pattern.test(t)),a=o.filter(i=>i.pattern.test(t)).map(i=>i.reason),c=null;try{c=le(R()).check(t)}catch{}if(c&&c.verdict==="block"&&V.isStrict()){e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Tool-loop breaker (AQE_STRICT_TOOL_LOOP): ${c.hint}`}}):S(`Blocked by tool-loop breaker: ${c.hint}`);return}if(c&&c.verdict==="block"?a.push(`\u{1F6D1} TOOL-LOOP BREAKER: ${c.hint}`):c&&c.verdict==="warn"&&a.push(`Tool-loop breaker: ${c.hint}`),s)e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Dangerous command blocked: ${s.reason}`}}):S(`Blocked: ${s.reason}`);else if(e.json){let i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}};a.length>0&&(i.hookSpecificOutput.additionalContext=`Warnings: ${a.join("; ")}`),h(i)}else a.length>0&&(console.log(X.yellow(`
257
+ \u26A0\uFE0F Command Warnings:`)),a.forEach(i=>console.log(X.yellow(` - ${i}`))));return}catch{e.json&&h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),r.command("post-command").description("Record Bash command outcome").option("-c, --command <cmd>","Command that was executed").option("--success [bool]","Whether command succeeded","true").option("--exit-code <code>","Command exit code").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=e.exitCode?parseInt(e.exitCode,10):t?0:1,o=(e.command||"").substring(0,200);try{le(R()).record(o,t)}catch{}let s=/\b(test|vitest|jest|pytest|mocha)\b/i.test(o),a=/\b(build|compile|tsc)\b/i.test(o),c=/\b(lint|eslint|prettier)\b/i.test(o),i=0,f=!1;try{let{reasoningBank:l}=await _();if(s){let{hookRegistry:T}=await _();await T.emit(A.TestExecutionResult,{runId:`cmd-${Date.now()}`,patternId:`cmd:test:${o.split(/\s+/).slice(0,3).join("-")}`,passed:t?1:0,failed:t?0:1,duration:0,flaky:!1})}let p=o.replace(/[^a-zA-Z0-9]/g,"-").slice(0,80),d=s?"test-execution":a?"code-intelligence":c?"quality-assessment":"code-intelligence";await l.recordOutcome({patternId:`cmd:${p}`,success:t,metrics:{executionTimeMs:0},feedback:`Command: ${o}, exit: ${n}`}),i=1,(s||a||c)&&(await G({task:`bash: ${o}`,agent:"cli-hook",domain:d,success:t,source:"cli-hook-post-command"}),f=!0);let k=ht(o);k&&await kt({command:o,framework:k,success:t,durationMs:0});let u=R(),E=Ue.join(u,".agentic-qe"),g=await O(E);await x(g)}catch(l){console.error(X.dim(`[hooks] post-command learning: ${l instanceof Error?l.message:"unknown"}`))}e.json&&h({success:!0,command:o.substring(0,100),commandSuccess:t,exitCode:n,patternsLearned:i,experienceRecorded:f});return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}function Jn(){let r=new yt("hooks").description("Self-learning QE hooks for pattern recognition and guidance").addHelpText("after",`
258
258
  Examples:
259
259
  # File editing hooks (learning from edits)
260
260
  aqe hooks pre-edit --file src/utils.ts --operation create
@@ -279,4 +279,4 @@ Examples:
279
279
  aqe hooks search --query "authentication"
280
280
  aqe hooks stats
281
281
  aqe hooks list
282
- `);return Ne(r),De(r),xe(r),Ie(r),qe(r),Ue(r),r.hook("postAction",async()=>{await ve()}),r}export{A as QE_HOOK_EVENTS,Gn as createHooksCommand,ve as disposeHooksSystem,_ as getHooksSystem,m as hooksState};
282
+ `);return De(r),xe(r),Ie(r),$e(r),je(r),Be(r),r.hook("postAction",async()=>{await Ae()}),r}export{A as QE_HOOK_EVENTS,Jn as createHooksCommand,Ae as disposeHooksSystem,_ as getHooksSystem,m as hooksState};
@@ -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.13");process.exit(0)}
2
+ import{a,b}from"./chunk-6KATY3KS.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{a as HybridMemoryBackend,b as createKernelMemoryBackend};
@@ -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.11");process.exit(0)}
2
- import{a,b,c,d,e}from"./chunk-GVKVJJQX.js";import"./chunk-XGPTZUKQ.js";import"./chunk-JFLU7L3W.js";import"./chunk-7R5HC56U.js";import"./chunk-DDEOZPWJ.js";import"./chunk-CFWGGRE7.js";export{a as DEFAULT_HYPERGRAPH_ENGINE_CONFIG,b as HypergraphEngine,c as createHypergraphEngine,d as createHypergraphEngineSync,e as default};
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}from"./chunk-JGZ722G3.js";import"./chunk-7CMTY45A.js";import"./chunk-VTOBUZL6.js";import"./chunk-H4H2YSFH.js";import"./chunk-3Y2ROSCL.js";import"./chunk-ZAKQLAHT.js";export{a as DEFAULT_HYPERGRAPH_ENGINE_CONFIG,b as HypergraphEngine,c as createHypergraphEngine,d as createHypergraphEngineSync,e as default};
@@ -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.11");process.exit(0)}
2
- import"./chunk-CFWGGRE7.js";import e from"chalk";import{join as m,resolve as h}from"path";import{existsSync as y}from"fs";var c=class{name="hypergraph";description="Query the code knowledge hypergraph";cleanupAndExit;ensureInitialized;constructor(n,r){this.cleanupAndExit=n,this.ensureInitialized=r}register(n,r){let s=n.command("hypergraph").alias("hg").description(this.description);s.command("stats").description("Show hypergraph statistics (node/edge counts by type)").option("--db <path>","Database path").action(async t=>{await this.executeStats(t)}),s.command("untested").description("Find functions with no test coverage").option("--db <path>","Database path").option("--limit <number>","Max results","20").action(async t=>{await this.executeUntested(t)}),s.command("impacted <files...>").description("Find tests impacted by changed files").option("--db <path>","Database path").action(async(t,i)=>{await this.executeImpacted(t,i)}),s.command("gaps").description("Find functions with low coverage").option("--db <path>","Database path").option("--max-coverage <number>","Coverage threshold (%)","50").option("--limit <number>","Max results","20").action(async t=>{await this.executeGaps(t)})}async executeStats(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=await r.getStats();if(console.log(e.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.13");process.exit(0)}
2
+ import"./chunk-ZAKQLAHT.js";import e from"chalk";import{join as m,resolve as h}from"path";import{existsSync as y}from"fs";var c=class{name="hypergraph";description="Query the code knowledge hypergraph";cleanupAndExit;ensureInitialized;constructor(n,r){this.cleanupAndExit=n,this.ensureInitialized=r}register(n,r){let s=n.command("hypergraph").alias("hg").description(this.description);s.command("stats").description("Show hypergraph statistics (node/edge counts by type)").option("--db <path>","Database path").action(async t=>{await this.executeStats(t)}),s.command("untested").description("Find functions with no test coverage").option("--db <path>","Database path").option("--limit <number>","Max results","20").action(async t=>{await this.executeUntested(t)}),s.command("impacted <files...>").description("Find tests impacted by changed files").option("--db <path>","Database path").action(async(t,i)=>{await this.executeImpacted(t,i)}),s.command("gaps").description("Find functions with low coverage").option("--db <path>","Database path").option("--max-coverage <number>","Coverage threshold (%)","50").option("--limit <number>","Max results","20").action(async t=>{await this.executeGaps(t)})}async executeStats(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=await r.getStats();if(console.log(e.blue(`
3
3
  Hypergraph Statistics
4
4
  `)),console.log(e.white(` Total nodes: ${t.totalNodes}`)),console.log(e.white(` Total edges: ${t.totalEdges}`)),t.totalNodes>0){console.log(e.gray(`
5
5
  Nodes by type:`));for(let[i,o]of Object.entries(t.nodesByType))o>0&&console.log(e.gray(` ${i}: ${o}`));console.log(e.gray(`
@@ -15,7 +15,7 @@ import"./chunk-CFWGGRE7.js";import e from"chalk";import{join as m,resolve as h}f
15
15
  `))}finally{i()}await this.cleanupAndExit(0)}async executeGaps(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=parseInt(n.maxCoverage,10)||50,i=parseInt(n.limit,10)||20,o=await r.findCoverageGaps(t),a=o.slice(0,i);if(console.log(e.blue(`
16
16
  Coverage Gaps (<= ${t}%) \u2014 ${o.length} total
17
17
  `)),a.length===0)console.log(e.green(" No coverage gaps found!"));else{for(let l of a){let d=l.coverage!==void 0?e.red(` ${l.coverage}%`):"",p=l.complexity?e.yellow(` complexity=${l.complexity}`):"";console.log(e.white(` ${l.name}`)+d+e.gray(` ${l.filePath||""}`)+p)}o.length>i&&console.log(e.gray(`
18
- ... and ${o.length-i} more (use --limit to show more)`))}console.log("")}finally{s()}await this.cleanupAndExit(0)}async openEngine(n){let{findProjectRoot:r}=await import("./unified-memory-AGDZQ5XD.js"),{openDatabase:s}=await import("./safe-db-PE6G3L55.js"),{createHypergraphEngine:t}=await import("./hypergraph-engine-YGEQPCKJ.js"),i=r(),o=n||m(i,".agentic-qe","memory.db");if(!y(o))throw new Error(`Database not found: ${o}
18
+ ... and ${o.length-i} more (use --limit to show more)`))}console.log("")}finally{s()}await this.cleanupAndExit(0)}async openEngine(n){let{findProjectRoot:r}=await import("./unified-memory-TLGSSLMI.js"),{openDatabase:s}=await import("./safe-db-4RRIGRXD.js"),{createHypergraphEngine:t}=await import("./hypergraph-engine-WINGVMPG.js"),i=r(),o=n||m(i,".agentic-qe","memory.db");if(!y(o))throw new Error(`Database not found: ${o}
19
19
  Run "aqe init --auto" first.`);let a=s(o);try{return{engine:await t({db:a,maxTraversalDepth:10,maxQueryResults:1e3,enableVectorSearch:!1}),close:()=>{try{a.close()}catch{}}}}catch(l){try{a.close()}catch{}throw l}}getHelp(){return`
20
20
  Query the code knowledge hypergraph for untested functions,
21
21
  impacted tests, and coverage gaps.
@@ -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.13");process.exit(0)}
2
+ import{a}from"./chunk-KB56CPU4.js";import"./chunk-GHY6Z6KO.js";import"./chunk-PB6J6HAA.js";import"./chunk-NZ3GUMB2.js";import"./chunk-LZYQHVD4.js";import"./chunk-QPNG5ZN2.js";import"./chunk-P7A4NKTZ.js";import"./chunk-VTOBUZL6.js";import"./chunk-H4H2YSFH.js";import"./chunk-NURIILUB.js";import"./chunk-UT2VZ33P.js";import"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import"./chunk-3Y2ROSCL.js";import"./chunk-ZAKQLAHT.js";export{a as ImpactAnalyzerService};
@@ -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.11");process.exit(0)}
2
- import{a,b,c,d}from"./chunk-LXQ3B4RY.js";import"./chunk-XNLIWQYE.js";import"./chunk-CFWGGRE7.js";export{d as explicitRootError,a as initProjectRoot,c as sharedDirInitError,b as sharedRootInitError};
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}from"./chunk-K4CZA77U.js";import"./chunk-RF7HWBHN.js";import"./chunk-ZAKQLAHT.js";export{d as explicitRootError,a as initProjectRoot,c as sharedDirInitError,b as sharedRootInitError};
@@ -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.11");process.exit(0)}
2
- import{a as v,b as k}from"./chunk-LXQ3B4RY.js";import{a as b}from"./chunk-IW6WDGHM.js";import"./chunk-XNLIWQYE.js";import{a as y,e as M}from"./chunk-DDEOZPWJ.js";import"./chunk-CFWGGRE7.js";import{Option as I}from"commander";import o from"chalk";import{createRequire as S}from"node:module";M();var P="--no-mcp and --with-mcp cannot be combined: --no-mcp skips the .mcp.json entry, --with-mcp forces it";function w(a,e){return a===!1||e===!0}function h(a){let e={noMcp:w(a.mcp,a.noMcp),withMcp:a.withMcp===!0,noGovernance:w(a.governance,a.noGovernance),noClaude:w(a.claude,a.noClaude),noStatusLine:w(a.statusline,a.noStatusLine),noDatabase:a.database===!1};if(e.noMcp&&e.withMcp)throw new Error(P);return e}var C=class{name="init";description="Initialize the AQE v3 system";cleanupAndExit;originalStdoutWrite=null;constructor(e){this.cleanupAndExit=e}register(e,n){e.command("init").description(this.description).option("-d, --domains <domains>","Comma-separated list of domains to enable","all").option("-m, --max-agents <number>","Maximum concurrent agents","15").option("--memory <backend>",'Memory backend (sqlite|agentdb|hybrid|memory). "memory" = database-free, in-memory only.',"hybrid").option("--no-database","Database-free install: alias for `--memory memory`. Skips the SQLite database phase and runs any MCP server in-memory \u2014 nothing is written to .agentic-qe/.").option("--no-statusline","Do not install AQE's Claude Code status line; remove an existing AQE-owned status line while preserving custom ones").option("--lazy","Enable lazy loading of domains").option("--wizard","Run interactive setup wizard").option("--auto","Auto-configure based on project analysis").option("-u, --upgrade","Upgrade existing installation (overwrite skills, agents, validation)").option("--browser-engine","Install optional Vibium and browser payload (explicit download)",!1).option("--no-browser-engine","Skip optional browser setup (default)").option("--minimal","Minimal configuration (skip optional features)").option("--skip-patterns","Skip loading pre-trained patterns").option("--skip-code-index","Skip code intelligence pre-scan (supported escape hatch \u2014 KG can be built later via `aqe code index`, also via env AQE_SKIP_CODE_INDEX=1)").option("--json","Emit machine-readable JSON result on stdout (suppresses banners; phase progress goes to stderr). Used by the release-gate corpus and CI tooling. See InitJsonOutput in init-handler.ts for the schema.").option("--with-n8n","Install n8n workflow testing agents and skills").option("--with-opencode","Include OpenCode agent/skill provisioning").option("--with-kiro","Include AWS Kiro IDE integration (agents, skills, hooks, steering)").option("--with-copilot","Include GitHub Copilot MCP config and instructions").option("--with-cursor","Include Cursor MCP config and rules").option("--with-cline","Include Cline MCP config and custom QE mode").option("--with-kilocode","Include Kilo Code MCP config and custom QE mode").option("--with-roocode","Include Roo Code MCP config and custom QE mode").option("--with-codex","Include OpenAI Codex CLI MCP, AGENTS.md, hooks, and QE skills").addOption(new I("--codex-guidance <mode>","Codex AGENTS.md guidance policy").choices(["full","compact","none"]).default("full")).option("--with-ruflo","Add optional Ruflo guidance and lifecycle hooks to the Codex setup").option("--with-windsurf","Include Windsurf MCP config and rules").option("--with-continuedev","Include Continue.dev MCP config and rules").option("--no-mcp","Skip MCP server config (MCP is enabled by default). Cannot be combined with --with-mcp").addOption(new I("--with-mcp","Write the project .mcp.json agentic-qe entry even when the agentic-qe-fleet Claude Code plugin already provides the AQE MCP server (#922). Cannot be combined with --no-mcp").conflicts("mcp")).option("--with-all-platforms","Include all coding agent platform configurations").option("--auto-migrate","Automatically migrate from v2 if detected").option("--with-claude-flow","Force Claude Flow integration setup").option("--skip-claude-flow","Skip Claude Flow integration").option("--no-governance","Skip governance configuration (ADR-058)").option("--no-claude","Suppress the default Claude Code surface (.claude/, .mcp.json, CLAUDE.md, governance, hooks) so --with-<platform> flags are the only install targets (#532)").option("--modular","Use new modular init system (default for --auto)").action(async t=>{await this.execute(t,n)})}async execute(e,n){if(e.json===!0){this.originalStdoutWrite=process.stdout.write.bind(process.stdout);let t=process.stderr.write.bind(process.stderr);process.stdout.write=((...r)=>t(...r))}try{let t=v(),r=k(t,!!process.env.AQE_PROJECT_ROOT);if(r){console.error(o.red(`
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 v,b as k}from"./chunk-K4CZA77U.js";import{a as b}from"./chunk-NURIILUB.js";import"./chunk-RF7HWBHN.js";import{a as y,e as M}from"./chunk-3Y2ROSCL.js";import"./chunk-ZAKQLAHT.js";import{Option as I}from"commander";import o from"chalk";import{createRequire as S}from"node:module";M();var P="--no-mcp and --with-mcp cannot be combined: --no-mcp skips the .mcp.json entry, --with-mcp forces it";function w(a,e){return a===!1||e===!0}function h(a){let e={noMcp:w(a.mcp,a.noMcp),withMcp:a.withMcp===!0,noGovernance:w(a.governance,a.noGovernance),noClaude:w(a.claude,a.noClaude),noStatusLine:w(a.statusline,a.noStatusLine),noDatabase:a.database===!1};if(e.noMcp&&e.withMcp)throw new Error(P);return e}var C=class{name="init";description="Initialize the AQE v3 system";cleanupAndExit;originalStdoutWrite=null;constructor(e){this.cleanupAndExit=e}register(e,n){e.command("init").description(this.description).option("-d, --domains <domains>","Comma-separated list of domains to enable","all").option("-m, --max-agents <number>","Maximum concurrent agents","15").option("--memory <backend>",'Memory backend (sqlite|agentdb|hybrid|memory). "memory" = database-free, in-memory only.',"hybrid").option("--no-database","Database-free install: alias for `--memory memory`. Skips the SQLite database phase and runs any MCP server in-memory \u2014 nothing is written to .agentic-qe/.").option("--no-statusline","Do not install AQE's Claude Code status line; remove an existing AQE-owned status line while preserving custom ones").option("--lazy","Enable lazy loading of domains").option("--wizard","Run interactive setup wizard").option("--auto","Auto-configure based on project analysis").option("-u, --upgrade","Upgrade existing installation (overwrite skills, agents, validation)").option("--browser-engine","Install optional Vibium and browser payload (explicit download)",!1).option("--no-browser-engine","Skip optional browser setup (default)").option("--minimal","Minimal configuration (skip optional features)").option("--skip-patterns","Skip loading pre-trained patterns").option("--skip-code-index","Skip code intelligence pre-scan (supported escape hatch \u2014 KG can be built later via `aqe code index`, also via env AQE_SKIP_CODE_INDEX=1)").option("--json","Emit machine-readable JSON result on stdout (suppresses banners; phase progress goes to stderr). Used by the release-gate corpus and CI tooling. See InitJsonOutput in init-handler.ts for the schema.").option("--with-n8n","Install n8n workflow testing agents and skills").option("--with-opencode","Include OpenCode agent/skill provisioning").option("--with-kiro","Include AWS Kiro IDE integration (agents, skills, hooks, steering)").option("--with-copilot","Include GitHub Copilot MCP config and instructions").option("--with-cursor","Include Cursor MCP config and rules").option("--with-cline","Include Cline MCP config and custom QE mode").option("--with-kilocode","Include Kilo Code MCP config and custom QE mode").option("--with-roocode","Include Roo Code MCP config and custom QE mode").option("--with-codex","Include OpenAI Codex CLI MCP, AGENTS.md, hooks, and QE skills").addOption(new I("--codex-guidance <mode>","Codex AGENTS.md guidance policy").choices(["full","compact","none"]).default("full")).option("--with-ruflo","Add optional Ruflo guidance and lifecycle hooks to the Codex setup").option("--with-windsurf","Include Windsurf MCP config and rules").option("--with-continuedev","Include Continue.dev MCP config and rules").option("--no-mcp","Skip MCP server config (MCP is enabled by default). Cannot be combined with --with-mcp").addOption(new I("--with-mcp","Write the project .mcp.json agentic-qe entry even when the agentic-qe-fleet Claude Code plugin already provides the AQE MCP server (#922). Cannot be combined with --no-mcp").conflicts("mcp")).option("--with-all-platforms","Include all coding agent platform configurations").option("--auto-migrate","Automatically migrate from v2 if detected").option("--with-claude-flow","Force Claude Flow integration setup").option("--skip-claude-flow","Skip Claude Flow integration").option("--no-governance","Skip governance configuration (ADR-058)").option("--no-claude","Suppress the default Claude Code surface (.claude/, .mcp.json, CLAUDE.md, governance, hooks) so --with-<platform> flags are the only install targets (#532)").option("--modular","Use new modular init system (default for --auto)").action(async t=>{await this.execute(t,n)})}async execute(e,n){if(e.json===!0){this.originalStdoutWrite=process.stdout.write.bind(process.stdout);let t=process.stderr.write.bind(process.stderr);process.stdout.write=((...r)=>t(...r))}try{let t=v(),r=k(t,!!process.env.AQE_PROJECT_ROOT);if(r){console.error(o.red(`
3
3
  ${r}
4
4
  `)),await this.cleanupAndExit(1);return}if(e.withAllPlatforms&&(e.withCopilot=!0,e.withCursor=!0,e.withCline=!0,e.withKilocode=!0,e.withRoocode=!0,e.withCodex=!0,e.withWindsurf=!0,e.withContinuedev=!0),e.upgrade&&!e.auto&&!e.wizard&&(e.auto=!0),e.wizard||e.auto){if(console.log(o.blue(`
5
5
  Agentic QE v3 Initialization
@@ -8,14 +8,14 @@ import{a as v,b as k}from"./chunk-LXQ3B4RY.js";import{a as b}from"./chunk-IW6WDG
8
8
  `)),await this.runModularInit(e,n,t);return}await this.runStandardInit(e,n)}catch(t){console.error(o.red(`
9
9
  Failed to initialize:`),t),await this.cleanupAndExit(1)}}async runModularInit(e,n,t){let r=e.json===!0,s=h(e),d=s.noDatabase||e.memory==="memory";d&&(process.env.AQE_MEMORY_BACKEND="memory",r||console.log(o.gray(` Database-free mode: in-memory backend (no .agentic-qe/memory.db)
10
10
  `)));let u=s.noClaude;u&&!(e.withOpencode||e.withN8n||e.withKiro||e.withCopilot||e.withCursor||e.withCline||e.withKilocode||e.withRoocode||e.withCodex||e.withWindsurf||e.withContinuedev||e.withAllPlatforms)&&!r&&console.log(o.yellow(` --no-claude set without any --with-<platform>: this install will write almost nothing.
11
- `));let{createModularInitOrchestrator:l}=await import("./orchestrator-Y44WDOER.js"),m=l({projectRoot:t,autoMode:e.auto,upgrade:e.upgrade,minimal:e.minimal,browserEngine:e.browserEngine,skipPatterns:e.skipPatterns,skipCodeIndex:e.skipCodeIndex,withN8n:e.withN8n,withOpenCode:e.withOpencode,withKiro:e.withKiro,withCopilot:e.withCopilot,withCursor:e.withCursor,withCline:e.withCline,withKiloCode:e.withKilocode,withRooCode:e.withRoocode,withCodex:e.withCodex,withRuflo:e.withRuflo,codexGuidance:e.codexGuidance,withWindsurf:e.withWindsurf,withContinueDev:e.withContinuedev,noMcp:s.noMcp,withMcp:s.withMcp,noGovernance:s.noGovernance,noClaude:u,noStatusLine:s.noStatusLine,memoryBackend:d?"memory":void 0});console.log(o.white(` Analyzing project...
11
+ `));let{createModularInitOrchestrator:l}=await import("./orchestrator-BMQ6X762.js"),m=l({projectRoot:t,autoMode:e.auto,upgrade:e.upgrade,minimal:e.minimal,browserEngine:e.browserEngine,skipPatterns:e.skipPatterns,skipCodeIndex:e.skipCodeIndex,withN8n:e.withN8n,withOpenCode:e.withOpencode,withKiro:e.withKiro,withCopilot:e.withCopilot,withCursor:e.withCursor,withCline:e.withCline,withKiloCode:e.withKilocode,withRooCode:e.withRoocode,withCodex:e.withCodex,withRuflo:e.withRuflo,codexGuidance:e.codexGuidance,withWindsurf:e.withWindsurf,withContinueDev:e.withContinuedev,noMcp:s.noMcp,withMcp:s.withMcp,noGovernance:s.noGovernance,noClaude:u,noStatusLine:s.noStatusLine,memoryBackend:d?"memory":void 0});console.log(o.white(` Analyzing project...
12
12
  `));let i=await m.initialize();if(r){this.originalStdoutWrite&&(process.stdout.write=this.originalStdoutWrite);let g={schemaVersion:1,success:i.success,steps:i.steps.map(p=>({step:p.step,status:p.status,message:p.message,durationMs:p.durationMs})),summary:i.summary,totalDurationMs:i.totalDurationMs,timestamp:i.timestamp.toISOString()};process.stdout.write(JSON.stringify(g,null,2)+`
13
- `);let f=i.steps.some(p=>p.status==="error");await this.cleanupAndExit(i.success&&!f?0:1);return}A(i.steps);let c;if(!e.skipClaudeFlow&&(e.withClaudeFlow||i.success))try{let{setupClaudeFlowIntegration:g}=await import("./claude-flow-setup-JKUJRWPN.js");if(c=await g({projectRoot:t,force:e.withClaudeFlow}),c.available)console.log(o.green(" * Claude Flow integration enabled")),c.features.trajectories&&console.log(o.gray(" - SONA trajectory tracking")),c.features.modelRouting&&console.log(o.gray(" - 3-tier model routing (haiku/sonnet/opus)")),c.features.pretrain&&console.log(o.gray(" - Codebase pretrain analysis")),console.log("");else{let{getClaudeFlowNotFoundMessage:f}=await import("./detect-TYR7HT23.js");console.log(o.gray(f())),console.log("")}}catch{let{getClaudeFlowNotFoundMessage:g}=await import("./detect-TYR7HT23.js");console.log(o.gray(g())),console.log("")}i.success?(console.log(o.green(` AQE v3 initialized successfully!
13
+ `);let f=i.steps.some(p=>p.status==="error");await this.cleanupAndExit(i.success&&!f?0:1);return}A(i.steps);let c;if(!e.skipClaudeFlow&&(e.withClaudeFlow||i.success))try{let{setupClaudeFlowIntegration:g}=await import("./claude-flow-setup-ON6L462G.js");if(c=await g({projectRoot:t,force:e.withClaudeFlow}),c.available)console.log(o.green(" * Claude Flow integration enabled")),c.features.trajectories&&console.log(o.gray(" - SONA trajectory tracking")),c.features.modelRouting&&console.log(o.gray(" - 3-tier model routing (haiku/sonnet/opus)")),c.features.pretrain&&console.log(o.gray(" - Codebase pretrain analysis")),console.log("");else{let{getClaudeFlowNotFoundMessage:f}=await import("./detect-SZIHIVCJ.js");console.log(o.gray(f())),console.log("")}}catch{let{getClaudeFlowNotFoundMessage:g}=await import("./detect-SZIHIVCJ.js");console.log(o.gray(g())),console.log("")}i.success?(console.log(o.green(` AQE v3 initialized successfully!
14
14
  `)),console.log(o.blue(" Summary:")),console.log(o.gray(` - Patterns loaded: ${i.summary.patternsLoaded}`)),console.log(o.gray(` - Skills installed: ${i.summary.skillsInstalled}`)),console.log(o.gray(` - Agents installed: ${i.summary.agentsInstalled}`)),console.log(o.gray(` - Hooks configured: ${i.summary.hooksConfigured?"Yes":"No"}`)),console.log(o.gray(` - Workers started: ${i.summary.workersStarted}`)),console.log(o.gray(` - Claude Flow: ${c?.available?"Enabled":"Standalone mode"}`)),console.log(o.gray(` - Total time: ${i.totalDurationMs}ms
15
15
  `)),console.log(o.white("Next steps:")),console.log(o.gray(" 1. Run tests: aqe test <path>")),console.log(o.gray(" 2. Check coverage: aqe coverage <path>")),console.log(o.gray(" 3. Check status: aqe status")),i.summary.mcpConfigured&&(console.log(o.gray(`
16
16
  MCP server configured in .mcp.json`)),console.log(o.gray(` Use --no-mcp to skip MCP setup if using CLI only
17
17
  `))),E()):(console.log(o.red(` Initialization failed. Check errors above.
18
- `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runLegacyWizard(e,n,t){let r=h(e),{InitOrchestrator:s}=await import("./init-wizard-FUC7KDVX.js"),d={projectRoot:t,autoMode:e.auto,minimal:e.minimal,browserEngine:e.browserEngine,skipPatterns:e.skipPatterns,withN8n:e.withN8n,noMcp:r.noMcp,withMcp:r.withMcp},u=new s(d);if(e.wizard){console.log(o.white(` Setup Wizard Steps:
18
+ `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runLegacyWizard(e,n,t){let r=h(e),{InitOrchestrator:s}=await import("./init-wizard-TZDJQK3U.js"),d={projectRoot:t,autoMode:e.auto,minimal:e.minimal,browserEngine:e.browserEngine,skipPatterns:e.skipPatterns,withN8n:e.withN8n,noMcp:r.noMcp,withMcp:r.withMcp},u=new s(d);if(e.wizard){console.log(o.white(` Setup Wizard Steps:
19
19
  `));let m=u.getWizardSteps();for(let i=0;i<m.length;i++)console.log(o.gray(` ${i+1}. ${m[i].title}`)),console.log(o.gray(` ${m[i].description}
20
20
  `))}console.log(o.white(` Analyzing project...
21
21
  `));let l=await u.initialize();A(l.steps),l.success?(console.log(o.green(` AQE v3 initialized successfully!
@@ -23,7 +23,7 @@ import{a as v,b as k}from"./chunk-LXQ3B4RY.js";import{a as b}from"./chunk-IW6WDG
23
23
  `)),console.log(o.white("Next steps:")),console.log(o.gray(" 1. Run tests: aqe test <path>")),console.log(o.gray(" 2. Check coverage: aqe coverage <path>")),console.log(o.gray(" 3. Check status: aqe status")),l.summary.mcpConfigured&&(console.log(o.gray(`
24
24
  MCP server configured in .mcp.json`)),console.log(o.gray(` Use --no-mcp to skip MCP setup if using CLI only
25
25
  `))),E()):(console.log(o.red(` Initialization failed. Check errors above.
26
- `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runStandardInit(e,n){let{QEKernelImpl:t}=await import("./kernel-ZCPMCVMW.js"),{CrossDomainEventRouter:r}=await import("./cross-domain-router-YYKLAPJO.js"),{DefaultProtocolExecutor:s}=await import("./protocol-executor-2NW5BD4R.js"),{WorkflowOrchestrator:d}=await import("./workflow-orchestrator-3ZN7MVCE.js"),{createQueenCoordinator:u}=await import("./queen-coordinator-GRG5FT2A.js");console.log(o.blue(`
26
+ `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runStandardInit(e,n){let{QEKernelImpl:t}=await import("./kernel-Y6RRIOKW.js"),{CrossDomainEventRouter:r}=await import("./cross-domain-router-QOFCZ7G4.js"),{DefaultProtocolExecutor:s}=await import("./protocol-executor-U2CUDWDE.js"),{WorkflowOrchestrator:d}=await import("./workflow-orchestrator-CVNNT2RJ.js"),{createQueenCoordinator:u}=await import("./queen-coordinator-6FN4BZIX.js");console.log(o.blue(`
27
27
  Initializing Agentic QE v3...
28
28
  `));let l=e.domains==="all"?[...b]:e.domains.split(",").filter(c=>b.includes(c));console.log(o.gray(` Domains: ${l.length}`)),console.log(o.gray(` Max Agents: ${e.maxAgents}`)),console.log(o.gray(` Memory: ${e.memory}`)),console.log(o.gray(` Lazy Loading: ${e.lazy?"enabled":"disabled"}
29
29
  `)),n.kernel=new t({maxConcurrentAgents:parseInt(e.maxAgents,10),memoryBackend:e.memory,hnswEnabled:!0,lazyLoading:e.lazy||!1,enabledDomains:l,enableExperienceBridge:!1}),await n.kernel.initialize(),console.log(o.green(" * Kernel initialized")),n.router=new r(n.kernel.eventBus),await n.router.initialize(),console.log(o.green(" * Cross-domain router initialized"));let m=c=>n.kernel.getDomainAPI(c),i=new s(n.kernel.eventBus,n.kernel.memory,m);console.log(o.green(" * Protocol executor initialized")),n.workflowOrchestrator=new d(n.kernel.eventBus,n.kernel.memory,n.kernel.coordinator),await n.workflowOrchestrator.initialize(),this.registerDomainWorkflowActions(n.kernel,n.workflowOrchestrator),console.log(o.green(" * Workflow orchestrator initialized")),n.queen=u(n.kernel,n.router,i,void 0),await n.queen.initialize(),console.log(o.green(" * Queen Coordinator initialized")),n.initialized=!0,console.log(o.green(`
@@ -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.13");process.exit(0)}
2
+ import{a,b,c,d}from"./chunk-NW7IBHJA.js";import"./chunk-OFACHK5O.js";import"./chunk-WNQS4WTS.js";import"./chunk-LL7LDPXS.js";import"./chunk-5ZGM3RMH.js";import"./chunk-KDVZND5Q.js";import"./chunk-E7CLYGS7.js";import"./chunk-VTOBUZL6.js";import"./chunk-KDNJ4F3P.js";import"./chunk-NURIILUB.js";import"./chunk-DNDL7SOS.js";import"./chunk-3Y2ROSCL.js";import"./chunk-WO274FRI.js";import"./chunk-ZAKQLAHT.js";export{a as InitOrchestrator,b as createInitOrchestrator,d as formatInitResult,c as quickInit};
@@ -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.13");process.exit(0)}
2
+ import{K as a,L as b}from"./chunk-MVVB7C2E.js";import"./chunk-BEGR4D6N.js";import"./chunk-LUZNKJE6.js";import"./chunk-YXRASAPI.js";import"./chunk-MB46UBGY.js";import"./chunk-5MDERQH3.js";import"./chunk-BK577VL7.js";import"./chunk-YZEXYO4W.js";import"./chunk-S5AZCIZS.js";import"./chunk-756CGMEH.js";import"./chunk-K3TLLJMX.js";import"./chunk-ASQYASNV.js";import"./chunk-M6AAGIG7.js";import"./chunk-KCW47QR5.js";import"./chunk-VTDFVFST.js";import"./chunk-C6JTLKG7.js";import"./chunk-N4CYAKOX.js";import"./chunk-HQZGPJYG.js";import"./chunk-X2Z7F4EU.js";import"./chunk-G2Q66Z23.js";import"./chunk-CT6SAVXQ.js";import"./chunk-GII6UM3F.js";import"./chunk-UDQSYWVF.js";import"./chunk-JQGMW45H.js";import"./chunk-KB56CPU4.js";import"./chunk-GHY6Z6KO.js";import"./chunk-PB6J6HAA.js";import"./chunk-NZ3GUMB2.js";import"./chunk-JGZ722G3.js";import"./chunk-3RZV5DGO.js";import"./chunk-I3C7JOXC.js";import"./chunk-A64JFBWI.js";import"./chunk-XPRVF4YE.js";import"./chunk-YBQH2VOP.js";import"./chunk-CV77DMDQ.js";import"./chunk-3AN5TNGD.js";import"./chunk-3YNLWPBF.js";import"./chunk-LZYQHVD4.js";import"./chunk-HZ5NXFXH.js";import"./chunk-YQFLQE53.js";import"./chunk-5K26BEYB.js";import"./chunk-VRHRBAEM.js";import"./chunk-IJUHSJ2U.js";import"./chunk-KDVZND5Q.js";import"./chunk-PIDQVU3L.js";import"./chunk-72ASBE35.js";import"./chunk-TSQC2KKZ.js";import"./chunk-SYV2V3PL.js";import"./chunk-NZD4DPSU.js";import"./chunk-E7CLYGS7.js";import"./chunk-GU5HNCWI.js";import"./chunk-5VMAV6T6.js";import"./chunk-TWJTK4CC.js";import"./chunk-GHM6MQNK.js";import"./chunk-XEAEYC6Y.js";import"./chunk-QDEJ4CI2.js";import"./chunk-6KATY3KS.js";import"./chunk-LWR3FV3Y.js";import"./chunk-C7JM7CD3.js";import"./chunk-TCBBNUBP.js";import"./chunk-H4GG2NLO.js";import"./chunk-Q3UDLV5Z.js";import"./chunk-YSZ5OE3Z.js";import"./chunk-SSU73QAX.js";import"./chunk-QPNG5ZN2.js";import"./chunk-PHP5UBT4.js";import"./chunk-P7A4NKTZ.js";import"./chunk-T3PGQFDI.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-526QYFJU.js";import"./chunk-WKGTGOYS.js";import"./chunk-DVGRPK7A.js";import"./chunk-H4H2YSFH.js";import"./chunk-5FKWCZNF.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";export{a as QEKernelImpl,b as createKernel};
@@ -1,4 +1,4 @@
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.11");process.exit(0)}
2
- import{b as f}from"./chunk-I4K2HTQU.js";import{a as m,e as v}from"./chunk-DDEOZPWJ.js";import"./chunk-CFWGGRE7.js";v();import{existsSync as n,mkdirSync as p,readFileSync as d,writeFileSync as a}from"fs";import{join as u,dirname as h}from"path";var l=class{projectRoot;overwrite;options;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.options=e,this.generator=f()}async install(){let e={success:!0,mcpConfigured:!1,modeInstalled:!1,errors:[],configPath:"",modePath:""};try{let t=this.generator.generateMcpConfig("kilocode",{memoryBackend:this.options.memoryBackend}),r=u(this.projectRoot,t.path);if(e.configPath=r,!n(r)||this.overwrite){let s=h(r);if(n(s)||p(s,{recursive:!0}),n(r)&&this.overwrite){let c=this.mergeExistingConfig(r,t.content);a(r,c)}else a(r,t.content);e.mcpConfigured=!0}let i=this.generator.generateBehavioralRules("kilocode"),o=u(this.projectRoot,i.path);if(e.modePath=o,!n(o)||this.overwrite){let s=h(o);if(n(s)||p(s,{recursive:!0}),n(o)&&this.overwrite){let c=this.mergeExistingModes(o,i.content);a(o,c)}else a(o,i.content);e.modeInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Kilo Code installation failed: ${m(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(d(e,"utf-8")),i=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,i.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.13");process.exit(0)}
2
+ import{b as f}from"./chunk-FZ76G4QJ.js";import{a as m,e as v}from"./chunk-3Y2ROSCL.js";import"./chunk-ZAKQLAHT.js";v();import{existsSync as n,mkdirSync as p,readFileSync as d,writeFileSync as a}from"fs";import{join as u,dirname as h}from"path";var l=class{projectRoot;overwrite;options;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.options=e,this.generator=f()}async install(){let e={success:!0,mcpConfigured:!1,modeInstalled:!1,errors:[],configPath:"",modePath:""};try{let t=this.generator.generateMcpConfig("kilocode",{memoryBackend:this.options.memoryBackend}),r=u(this.projectRoot,t.path);if(e.configPath=r,!n(r)||this.overwrite){let s=h(r);if(n(s)||p(s,{recursive:!0}),n(r)&&this.overwrite){let c=this.mergeExistingConfig(r,t.content);a(r,c)}else a(r,t.content);e.mcpConfigured=!0}let i=this.generator.generateBehavioralRules("kilocode"),o=u(this.projectRoot,i.path);if(e.modePath=o,!n(o)||this.overwrite){let s=h(o);if(n(s)||p(s,{recursive:!0}),n(o)&&this.overwrite){let c=this.mergeExistingModes(o,i.content);a(o,c)}else a(o,i.content);e.modeInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Kilo Code installation failed: ${m(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(d(e,"utf-8")),i=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,i.mcpServers),JSON.stringify(r,null,2)+`
3
3
  `}catch{return t}}mergeExistingModes(e,t){try{let r=JSON.parse(d(e,"utf-8")),i=JSON.parse(t);if(!Array.isArray(r))return t;let o=r.filter(s=>s.slug!=="qe-engineer");return o.push(...i),JSON.stringify(o,null,2)+`
4
4
  `}catch{return t}}};function x(g){return new l(g)}export{l as KiloCodeInstaller,x as createKiloCodeInstaller};