agentic-qe 3.9.24 → 3.9.25

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 (287) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +58 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/cli/bundle.js +5 -5
  5. package/dist/cli/chunks/adapter-DRRUAQGD.js +2 -0
  6. package/dist/cli/chunks/{agent-booster-wasm-YYKCGP5I.js → agent-booster-wasm-3JH5PJWN.js} +2 -2
  7. package/dist/cli/chunks/{agent-handler-SDRMLJNW.js → agent-handler-3FEJU2TM.js} +2 -2
  8. package/dist/cli/chunks/{agent-memory-branch-AD5E4475.js → agent-memory-branch-FCLJ7NQB.js} +2 -2
  9. package/dist/cli/chunks/aqe-learning-engine-5WYTKZ2I.js +2 -0
  10. package/dist/cli/chunks/{audit-6CXDBP5N.js → audit-FSLEJMM5.js} +2 -2
  11. package/dist/cli/chunks/base-LQVASZ6V.js +2 -0
  12. package/dist/cli/chunks/{hnswlib-node-PIFTVXNO.js → better-sqlite3-SAJ7HAFG.js} +2 -2
  13. package/dist/cli/chunks/{brain-handler-QPMGPK4J.js → brain-handler-IVRXCPLL.js} +3 -3
  14. package/dist/cli/chunks/{branch-enumerator-RNVAQ47F.js → branch-enumerator-EXW3AFAQ.js} +2 -2
  15. package/dist/cli/chunks/{browser-GCXX35IY.js → browser-3J6OTKWZ.js} +2 -2
  16. package/dist/cli/chunks/browser-workflow-TXQBTTSA.js +2 -0
  17. package/dist/cli/chunks/{chunk-PU3MT7SE.js → chunk-2ACE3T6H.js} +3 -3
  18. package/dist/cli/chunks/{chunk-C4ST4NP4.js → chunk-2IRRXFBV.js} +2 -2
  19. package/dist/cli/chunks/{chunk-SNTRKHVH.js → chunk-2ZN6YGSA.js} +4 -4
  20. package/dist/cli/chunks/{chunk-K2M6UBGI.js → chunk-3ITRVWXL.js} +1 -1
  21. package/dist/cli/chunks/{chunk-3Y5C4SE3.js → chunk-3LSHQUQ2.js} +2 -2
  22. package/dist/cli/chunks/{chunk-4LA24G33.js → chunk-3OPXTQMB.js} +1 -1
  23. package/dist/cli/chunks/{chunk-7ODDJI3P.js → chunk-4ASWQOFE.js} +2 -2
  24. package/dist/cli/chunks/{chunk-OOU4VQ2T.js → chunk-4DVQS5LA.js} +2 -2
  25. package/dist/cli/chunks/{chunk-OJPKAWKD.js → chunk-4EUPBVPV.js} +1 -1
  26. package/dist/cli/chunks/{chunk-4AUGLQOE.js → chunk-4FRRDVWH.js} +2 -2
  27. package/dist/cli/chunks/{chunk-6SWRLJ3I.js → chunk-4GVLZIHN.js} +2 -2
  28. package/dist/cli/chunks/{chunk-Z2CO6ZI5.js → chunk-5DOCH2OX.js} +1 -1
  29. package/dist/cli/chunks/{chunk-YEVQOQVZ.js → chunk-5KWOG53N.js} +1 -1
  30. package/dist/cli/chunks/{chunk-ROBKPGX5.js → chunk-5RJENBAG.js} +3 -3
  31. package/dist/cli/chunks/{chunk-QLPGWGJT.js → chunk-5SGWYFOV.js} +1 -1
  32. package/dist/cli/chunks/{chunk-EAC3PZGH.js → chunk-5XCHNZNW.js} +2 -2
  33. package/dist/cli/chunks/{chunk-SE572JWE.js → chunk-5ZADSKFC.js} +3 -3
  34. package/dist/cli/chunks/{chunk-YFWVVYZX.js → chunk-6IRQAAMQ.js} +1 -1
  35. package/dist/cli/chunks/{chunk-RHFNFYIL.js → chunk-6PW5L2SC.js} +2 -2
  36. package/dist/cli/chunks/{chunk-4SDQZI7D.js → chunk-6UH7B3PE.js} +1 -1
  37. package/dist/cli/chunks/{chunk-Q5OLVIKK.js → chunk-73SK2MNU.js} +2 -2
  38. package/dist/cli/chunks/{chunk-EHA2BZ47.js → chunk-73SPNQDP.js} +2 -2
  39. package/dist/cli/chunks/{chunk-LX6XRBJ2.js → chunk-74YWPNUB.js} +2 -2
  40. package/dist/cli/chunks/{chunk-L4JUOVBW.js → chunk-75PD5ATI.js} +2 -2
  41. package/dist/cli/chunks/{chunk-MUH2YGNO.js → chunk-76RCKSCL.js} +2 -2
  42. package/dist/cli/chunks/{chunk-3NZ7IVRI.js → chunk-7G2UJMKQ.js} +2 -2
  43. package/dist/cli/chunks/{chunk-ZHVORPKM.js → chunk-7QILWWRD.js} +2 -2
  44. package/dist/cli/chunks/{chunk-HFPQVO4O.js → chunk-7VNGENWZ.js} +2 -2
  45. package/dist/cli/chunks/{chunk-IQRLMOTN.js → chunk-7YV5T64G.js} +1 -1
  46. package/dist/cli/chunks/{chunk-HGOTTQQK.js → chunk-AFQNJJWA.js} +2 -2
  47. package/dist/cli/chunks/{chunk-U6V6R2EF.js → chunk-AQXKM5VB.js} +2 -2
  48. package/dist/cli/chunks/{chunk-QNMIY45G.js → chunk-AZ3GC5UX.js} +3 -3
  49. package/dist/cli/chunks/{chunk-V7IDAZKZ.js → chunk-CRTUB5NH.js} +1 -1
  50. package/dist/cli/chunks/{chunk-INPP5RW4.js → chunk-DNIU6W6Z.js} +2 -2
  51. package/dist/cli/chunks/{chunk-MDSCVTJZ.js → chunk-DPDDWIL7.js} +2 -2
  52. package/dist/cli/chunks/{chunk-NOUDTI2R.js → chunk-DZVIMPC2.js} +2 -2
  53. package/dist/cli/chunks/{chunk-ERDCTBUC.js → chunk-EKQI2HRL.js} +2 -2
  54. package/dist/cli/chunks/chunk-EOZIQTHG.js +2 -0
  55. package/dist/cli/chunks/{chunk-LOFQAI7V.js → chunk-EY2W47L3.js} +2 -2
  56. package/dist/cli/chunks/{chunk-7H36CVZ6.js → chunk-F3IEJL4O.js} +2 -2
  57. package/dist/cli/chunks/{chunk-5OBSLVXI.js → chunk-FFP7OV5L.js} +2 -2
  58. package/dist/cli/chunks/{chunk-7LIRKYB6.js → chunk-FHKQSSQT.js} +2 -2
  59. package/dist/cli/chunks/{chunk-7TC7HNSA.js → chunk-FL2G2VFC.js} +2 -2
  60. package/dist/cli/chunks/{chunk-PEKULOY4.js → chunk-FO3VJDCI.js} +1 -1
  61. package/dist/cli/chunks/{chunk-MXXRESCK.js → chunk-FUNP4GGE.js} +2 -2
  62. package/dist/cli/chunks/{chunk-QUN5QEW5.js → chunk-GV3LIGPJ.js} +2 -2
  63. package/dist/cli/chunks/{chunk-OPHVJUZK.js → chunk-H6IV3LHA.js} +2 -2
  64. package/dist/cli/chunks/{chunk-2NJO73YD.js → chunk-HEVA2HR3.js} +2 -2
  65. package/dist/cli/chunks/{chunk-O4CTWG4B.js → chunk-HLVL2N5U.js} +2 -2
  66. package/dist/cli/chunks/{chunk-MG52OB2J.js → chunk-I5AVFRDJ.js} +1 -1
  67. package/dist/cli/chunks/{chunk-I3VTEYYF.js → chunk-I5WMRFJ2.js} +3 -3
  68. package/dist/cli/chunks/{chunk-G73FWR34.js → chunk-IJH3WAC4.js} +3 -3
  69. package/dist/cli/chunks/{chunk-6XXHK6NL.js → chunk-ILIKB32B.js} +2 -2
  70. package/dist/cli/chunks/{chunk-3ZNIACXR.js → chunk-IV4OBL4P.js} +1 -1
  71. package/dist/cli/chunks/{chunk-L5JJKGKJ.js → chunk-J2O5RRNH.js} +1 -1
  72. package/dist/cli/chunks/{chunk-LVR47OZA.js → chunk-JFWRCQCV.js} +2 -2
  73. package/dist/cli/chunks/{chunk-N643IL63.js → chunk-JPB44BMP.js} +2 -2
  74. package/dist/cli/chunks/{chunk-EALLOFGD.js → chunk-JXSEJIIB.js} +1 -1
  75. package/dist/cli/chunks/{chunk-QG63KW2J.js → chunk-KAVN56IT.js} +2 -2
  76. package/dist/cli/chunks/{chunk-JDJ6VEXU.js → chunk-KVZKBPKC.js} +2 -2
  77. package/dist/cli/chunks/{chunk-W7HIJ5DV.js → chunk-KYDLYPOG.js} +8 -8
  78. package/dist/cli/chunks/{chunk-F4GZAQR2.js → chunk-LFD3YTNY.js} +2 -2
  79. package/dist/cli/chunks/{chunk-RMTPAEZO.js → chunk-LKRGOCDO.js} +2 -2
  80. package/dist/cli/chunks/{chunk-BWCSNSXR.js → chunk-LTWNVZDR.js} +2 -2
  81. package/dist/cli/chunks/{chunk-YRKY76JZ.js → chunk-M4F7EAR6.js} +2 -2
  82. package/dist/cli/chunks/{chunk-FHRUSW2V.js → chunk-M4GE3R5K.js} +2 -2
  83. package/dist/cli/chunks/{chunk-RSED3U2F.js → chunk-MAWGLIAE.js} +1 -1
  84. package/dist/cli/chunks/{chunk-O3ADCWEC.js → chunk-ML7AEOPI.js} +2 -2
  85. package/dist/cli/chunks/{chunk-A4CHQJEO.js → chunk-MMWH7D2O.js} +2 -2
  86. package/dist/cli/chunks/{chunk-DZPKBTP3.js → chunk-MP4GPPOD.js} +2 -2
  87. package/dist/cli/chunks/{chunk-73K34C4S.js → chunk-MVT2F4Z4.js} +4 -4
  88. package/dist/cli/chunks/{chunk-L5Y2BVYX.js → chunk-MYDJYPBT.js} +2 -2
  89. package/dist/cli/chunks/{chunk-7XK73L6C.js → chunk-N64WUFUI.js} +10 -10
  90. package/dist/cli/chunks/{chunk-DZHAXSOZ.js → chunk-NADXRFKX.js} +1 -1
  91. package/dist/cli/chunks/{chunk-UGR3JJD7.js → chunk-NIXA5DVA.js} +2 -2
  92. package/dist/cli/chunks/{chunk-BDGKN7GC.js → chunk-NURG5LQO.js} +1 -1
  93. package/dist/cli/chunks/{chunk-KSN6QUCR.js → chunk-OGBDSSVO.js} +2 -2
  94. package/dist/cli/chunks/{chunk-6FCVDWPR.js → chunk-OJ7RJC7F.js} +1 -1
  95. package/dist/cli/chunks/{chunk-RGOJFKIY.js → chunk-P5ZV4RCF.js} +2 -2
  96. package/dist/cli/chunks/{chunk-3LHP7G6U.js → chunk-P6REB3IC.js} +1 -1
  97. package/dist/cli/chunks/{chunk-L7EDWT5P.js → chunk-PFH2G7AP.js} +2 -2
  98. package/dist/cli/chunks/{chunk-54RVQDTB.js → chunk-PMAMZZ6B.js} +1 -1
  99. package/dist/cli/chunks/{chunk-NYEVQB5R.js → chunk-Q3MHHREJ.js} +2 -2
  100. package/dist/cli/chunks/{chunk-DFG3KX7E.js → chunk-QFNWLRPV.js} +2 -2
  101. package/dist/cli/chunks/{chunk-YLC6QGNW.js → chunk-QJKXAYOM.js} +2 -2
  102. package/dist/cli/chunks/{chunk-PSJJNJLE.js → chunk-QOVAU4DT.js} +1 -1
  103. package/dist/cli/chunks/{chunk-7I6ULQRI.js → chunk-R3OII6WM.js} +1 -1
  104. package/dist/cli/chunks/{chunk-WB3GQ7X7.js → chunk-R7VO6E3E.js} +2 -2
  105. package/dist/cli/chunks/{chunk-HQY2BNJT.js → chunk-SDOG2MMY.js} +2 -2
  106. package/dist/cli/chunks/{chunk-73JTRGIQ.js → chunk-SKRQF45C.js} +2 -2
  107. package/dist/cli/chunks/{chunk-25AL3RPA.js → chunk-T5WFV3EH.js} +1 -1
  108. package/dist/cli/chunks/{chunk-TS5YIHJH.js → chunk-TCRBP7GO.js} +1 -1
  109. package/dist/cli/chunks/{chunk-HYX3LWLA.js → chunk-THQNIMJU.js} +2 -2
  110. package/dist/cli/chunks/{chunk-ZSVCK7B2.js → chunk-U67BTJC3.js} +2 -2
  111. package/dist/cli/chunks/{chunk-M7MA7R2X.js → chunk-UHWGEZXG.js} +1 -1
  112. package/dist/cli/chunks/{chunk-PTIPWMXS.js → chunk-V3L3FD4I.js} +1 -1
  113. package/dist/cli/chunks/{chunk-QDUV7TDQ.js → chunk-VLNCDVU6.js} +2 -2
  114. package/dist/cli/chunks/{chunk-ZJNZ5SDG.js → chunk-VRNRR3VU.js} +2 -2
  115. package/dist/cli/chunks/{chunk-XD6XAYKA.js → chunk-VUEYEMMJ.js} +9 -9
  116. package/dist/cli/chunks/{chunk-VUKMN54Z.js → chunk-VYFRA4ZP.js} +1 -1
  117. package/dist/cli/chunks/{chunk-CTSTHKH4.js → chunk-VZVHYH7B.js} +1 -1
  118. package/dist/cli/chunks/{chunk-JYMDWMEJ.js → chunk-W2OPF27P.js} +3 -3
  119. package/dist/cli/chunks/{chunk-AJ45BRKK.js → chunk-W5RRYCQ7.js} +2 -2
  120. package/dist/cli/chunks/{chunk-WGEX22Z4.js → chunk-W7ULVE22.js} +2 -2
  121. package/dist/cli/chunks/{chunk-TQGEZV6M.js → chunk-WOD7Y7NC.js} +2 -2
  122. package/dist/cli/chunks/{chunk-HH3ENF7B.js → chunk-X33KZ6WO.js} +1 -1
  123. package/dist/cli/chunks/{chunk-IFCUBSI2.js → chunk-X66FBTTD.js} +1 -1
  124. package/dist/cli/chunks/{chunk-WH75EHSK.js → chunk-XBBNMF3C.js} +2 -2
  125. package/dist/cli/chunks/{chunk-LQHWPAQP.js → chunk-XBGO4NQE.js} +2 -2
  126. package/dist/cli/chunks/{chunk-TUY3BOQM.js → chunk-XC34CWA3.js} +2 -2
  127. package/dist/cli/chunks/{chunk-42CCJFXZ.js → chunk-XMYX6HAG.js} +2 -2
  128. package/dist/cli/chunks/{chunk-JVN5TS5E.js → chunk-XNXFB4TV.js} +2 -2
  129. package/dist/cli/chunks/{chunk-4FCCQJQA.js → chunk-XPXL75LN.js} +1 -1
  130. package/dist/cli/chunks/{chunk-FPBCG7CX.js → chunk-XXG6OQSR.js} +2 -2
  131. package/dist/cli/chunks/{chunk-KQRJXVMO.js → chunk-ZGGHGWXF.js} +1 -1
  132. package/dist/cli/chunks/{ci-F4VZKYED.js → ci-2UUAA532.js} +2 -2
  133. package/dist/cli/chunks/{ci-output-LLKTJAKA.js → ci-output-NLBMSDOP.js} +2 -2
  134. package/dist/cli/chunks/{circuit-breaker-ZQ4747J4.js → circuit-breaker-UMHTVSA2.js} +2 -2
  135. package/dist/cli/chunks/{claude-flow-setup-LHM5WAJN.js → claude-flow-setup-Q6A7T2CH.js} +2 -2
  136. package/dist/cli/chunks/client-TMGGCVZM.js +2 -0
  137. package/dist/cli/chunks/{cline-installer-YZOPUVED.js → cline-installer-UPIZH2ZF.js} +2 -2
  138. package/dist/cli/chunks/{code-7WPHN4PO.js → code-TPVQFW7C.js} +2 -2
  139. package/dist/cli/chunks/{code-index-extractor-N25SYDBV.js → code-index-extractor-Z7J3RZ4Q.js} +2 -2
  140. package/dist/cli/chunks/{codex-installer-53WXU6E4.js → codex-installer-GTT3IBZT.js} +2 -2
  141. package/dist/cli/chunks/{completions-WPB73WPI.js → completions-TXYGM6BK.js} +2 -2
  142. package/dist/cli/chunks/{complexity-analyzer-OLOYWXN5.js → complexity-analyzer-HMXULCFI.js} +2 -2
  143. package/dist/cli/chunks/{continuedev-installer-5QXNYNJG.js → continuedev-installer-3GDGFMEE.js} +2 -2
  144. package/dist/cli/chunks/{copilot-installer-POWDJ5TF.js → copilot-installer-S4KIV6OT.js} +2 -2
  145. package/dist/cli/chunks/{cost-tracker-NCRSKECA.js → cost-tracker-E2M57AGD.js} +2 -2
  146. package/dist/cli/chunks/{coverage-ZOWE75NF.js → coverage-NXF6THG2.js} +3 -3
  147. package/dist/cli/chunks/cross-domain-router-3WM3FES7.js +2 -0
  148. package/dist/cli/chunks/{cursor-installer-W5U432Q4.js → cursor-installer-GSMPSNIZ.js} +2 -2
  149. package/dist/cli/chunks/{daemon-JHXPBUL3.js → daemon-IGNIH3TQ.js} +3 -3
  150. package/dist/cli/chunks/{dag-attention-scheduler-JKYKYDLZ.js → dag-attention-scheduler-FFCTYK3P.js} +2 -2
  151. package/dist/cli/chunks/{detect-MNW7EGOS.js → detect-CFB72DRI.js} +2 -2
  152. package/dist/cli/chunks/{dist-node-33BRM2EM.js → dist-node-RGD4BMAQ.js} +2 -2
  153. package/dist/cli/chunks/{domain-handler-PRTXYKNX.js → domain-handler-SAKJIOXO.js} +2 -2
  154. package/dist/cli/chunks/{domain-transfer-FJVNUH6Y.js → domain-transfer-44QPKEAY.js} +2 -2
  155. package/dist/cli/chunks/dream-SSRYUA2N.js +2 -0
  156. package/dist/cli/chunks/{embed-and-insert-pattern-XST4CYRL.js → embed-and-insert-pattern-Z4MA4ZST.js} +2 -2
  157. package/dist/cli/chunks/{eval-SLBS3MDW.js → eval-IDTYZI7P.js} +2 -2
  158. package/dist/cli/chunks/{experience-capture-middleware-MZ4VBCGB.js → experience-capture-middleware-HXLGMWLK.js} +3 -3
  159. package/dist/cli/chunks/{fast-paths-H6Z4TAE7.js → fast-paths-V47QDNVC.js} +2 -2
  160. package/dist/cli/chunks/{feature-flags-7UYNPXYB.js → feature-flags-RALYJOEU.js} +2 -2
  161. package/dist/cli/chunks/{feature-flags-RF44J4FC.js → feature-flags-YWKFG357.js} +2 -2
  162. package/dist/cli/chunks/{file-discovery-2RZS7M6Q.js → file-discovery-R3CDYNKP.js} +2 -2
  163. package/dist/cli/chunks/{fleet-XVVAC32S.js → fleet-XBVAD6CL.js} +3 -3
  164. package/dist/cli/chunks/{gnn-wrapper-XAJR4F5W.js → gnn-wrapper-HVZMQHEX.js} +2 -2
  165. package/dist/cli/chunks/{heartbeat-handler-PAPNBHL5.js → heartbeat-handler-BBHOWYMJ.js} +4 -4
  166. package/dist/cli/chunks/{heartbeat-scheduler-PNGMQ5A2.js → heartbeat-scheduler-SNUBX4LF.js} +2 -2
  167. package/dist/cli/chunks/hnsw-adapter-HGJUAHPN.js +2 -0
  168. package/dist/cli/chunks/hnsw-index-Q6GETC2C.js +2 -0
  169. package/dist/cli/chunks/{hnsw-legacy-bridge-EK67OOYT.js → hnsw-legacy-bridge-NKQVKQ3J.js} +2 -2
  170. package/dist/cli/chunks/{better-sqlite3-X4MDD7D3.js → hnswlib-node-KUWXTCD4.js} +2 -2
  171. package/dist/cli/chunks/{hooks-FXUZIAAW.js → hooks-HOD4SK3C.js} +51 -39
  172. package/dist/cli/chunks/{hybrid-router-FA6Q25KJ.js → hybrid-router-YUVRBFMA.js} +2 -2
  173. package/dist/cli/chunks/{hypergraph-engine-PT6AI5VE.js → hypergraph-engine-EKOOW425.js} +2 -2
  174. package/dist/cli/chunks/{hypergraph-handler-TTP3AY5E.js → hypergraph-handler-M4MSX62E.js} +3 -3
  175. package/dist/cli/chunks/impact-analyzer-AIOLML23.js +2 -0
  176. package/dist/cli/chunks/{init-handler-GV4RMNLA.js → init-handler-W3DIXGVJ.js} +6 -6
  177. package/dist/cli/chunks/init-wizard-FVH6XXAD.js +2 -0
  178. package/dist/cli/chunks/kernel-EBLOZQ7R.js +2 -0
  179. package/dist/cli/chunks/{kilocode-installer-MUK6H6PQ.js → kilocode-installer-VVFIT4TJ.js} +2 -2
  180. package/dist/cli/chunks/{kiro-installer-VHOG37LV.js → kiro-installer-JCNYLJXT.js} +2 -2
  181. package/dist/cli/chunks/knowledge-graph-BXVKN4TE.js +2 -0
  182. package/dist/cli/chunks/{learning-N5NUW6SR.js → learning-5X4UDI4G.js} +3 -3
  183. package/dist/cli/chunks/{llm-router-6D3JJ5MX.js → llm-router-M6NOWWP3.js} +4 -4
  184. package/dist/cli/chunks/{load-3ZM66OKE.js → load-UMYB2ZGL.js} +2 -2
  185. package/dist/cli/chunks/load-test-DAFHZ5B4.js +2 -0
  186. package/dist/cli/chunks/{mcp-W2JSXQ32.js → mcp-ZDAIT7D5.js} +2 -2
  187. package/dist/cli/chunks/{memory-J4W4HRUH.js → memory-FIWC4JNS.js} +5 -5
  188. package/dist/cli/chunks/memory-backend-LW2HMGVV.js +2 -0
  189. package/dist/cli/chunks/{memory-handlers-ZBNFDKP4.js → memory-handlers-AHZIB4VB.js} +2 -2
  190. package/dist/cli/chunks/{multi-model-executor-MVEFZZSV.js → multi-model-executor-SA4CVCSA.js} +2 -2
  191. package/dist/cli/chunks/{opencode-installer-DGRDAJFV.js → opencode-installer-S6UDYAAQ.js} +2 -2
  192. package/dist/cli/chunks/{orchestrator-LPXK5JF7.js → orchestrator-JNVRGX5Z.js} +6 -6
  193. package/dist/cli/chunks/{pipeline-7GABQFX4.js → pipeline-TLZ66K2O.js} +2 -2
  194. package/dist/cli/chunks/{platform-FNGEQTDL.js → platform-MQ5UXRLD.js} +2 -2
  195. package/dist/cli/chunks/{plugin-T4YRNESL.js → plugin-5S4YEY4C.js} +2 -2
  196. package/dist/cli/chunks/{prime-radiant-advanced-wasm-I25PHLYB.js → prime-radiant-advanced-wasm-LIVSVFZA.js} +2 -2
  197. package/dist/cli/chunks/protocol-executor-LP4ID64X.js +2 -0
  198. package/dist/cli/chunks/{protocol-handler-6KWLEBZJ.js → protocol-handler-KQIOJKTK.js} +2 -2
  199. package/dist/cli/chunks/{prove-B5XQ3SY4.js → prove-YFRZIQ2O.js} +2 -2
  200. package/dist/cli/chunks/{provider-manager-WTZ3FGAH.js → provider-manager-OKEHQIHC.js} +2 -2
  201. package/dist/cli/chunks/qe-reasoning-bank-6KBZMXKR.js +2 -0
  202. package/dist/cli/chunks/{quality-JQ3M7ENY.js → quality-GGBNSKJU.js} +2 -2
  203. package/dist/cli/chunks/queen-coordinator-3ZAXRHXE.js +2 -0
  204. package/dist/cli/chunks/{real-embeddings-EH4WUKDJ.js → real-embeddings-2KWJAO6Y.js} +2 -2
  205. package/dist/cli/chunks/{roocode-installer-6GLCDHDJ.js → roocode-installer-KYZQFIEV.js} +2 -2
  206. package/dist/cli/chunks/router-QJUMFZN6.js +2 -0
  207. package/dist/cli/chunks/routing-feedback-TVYNKT3K.js +2 -0
  208. package/dist/cli/chunks/{routing-handler-4N2XJFNM.js → routing-handler-Y5FLAUB2.js} +2 -2
  209. package/dist/cli/chunks/{ruvector-commands-MGWMR2WN.js → ruvector-commands-MHSEXDRI.js} +2 -2
  210. package/dist/cli/chunks/{rvf-dual-writer-6LN3WQEK.js → rvf-dual-writer-5PV65OR3.js} +2 -2
  211. package/dist/cli/chunks/{rvf-migration-adapter-LAZ5EDQG.js → rvf-migration-adapter-3SZW2YA4.js} +2 -2
  212. package/dist/cli/chunks/{rvf-migration-coordinator-LRXFWTDN.js → rvf-migration-coordinator-5LN2I44C.js} +2 -2
  213. package/dist/cli/chunks/rvf-native-adapter-G5NC4S6V.js +2 -0
  214. package/dist/cli/chunks/safe-db-7STPJWYA.js +2 -0
  215. package/dist/cli/chunks/schedule-NTT6YXMP.js +2 -0
  216. package/dist/cli/chunks/scheduler-BC5VEZI2.js +2 -0
  217. package/dist/cli/chunks/{security-JMEQUSTV.js → security-THETDKDS.js} +3 -3
  218. package/dist/cli/chunks/shared-rvf-adapter-T63WSHGK.js +2 -0
  219. package/dist/cli/chunks/{shared-rvf-dual-writer-W3KUF2Z5.js → shared-rvf-dual-writer-NFUIB2ZL.js} +2 -2
  220. package/dist/cli/chunks/sqlite-persistence-GJDAUFQU.js +2 -0
  221. package/dist/cli/chunks/{status-handler-T3MU7LJC.js → status-handler-CUW2OUS2.js} +2 -2
  222. package/dist/cli/chunks/{structural-health-DKLLSKB7.js → structural-health-IK2LN4ES.js} +2 -2
  223. package/dist/cli/chunks/{sync-YV4JLAYR.js → sync-DA33QCRD.js} +2 -2
  224. package/dist/cli/chunks/{task-handler-WFMLTZFA.js → task-handler-24CAZ4MB.js} +2 -2
  225. package/dist/cli/chunks/{task-handlers-XPRO67IJ.js → task-handlers-YHMFT7G3.js} +3 -3
  226. package/dist/cli/chunks/{test-6LD3KVOS.js → test-ED6UE2EP.js} +4 -4
  227. package/dist/cli/chunks/{test-scheduling-E5CSY4SE.js → test-scheduling-RQP2IPFY.js} +3 -3
  228. package/dist/cli/chunks/{token-bootstrap-TLPEXH6S.js → token-bootstrap-POOTQ33M.js} +2 -2
  229. package/dist/cli/chunks/{token-usage-2MDI65YN.js → token-usage-YNKDAQDK.js} +2 -2
  230. package/dist/cli/chunks/{transformers-CMZ3QD3F.js → transformers-NONXIEJK.js} +2 -2
  231. package/dist/cli/chunks/{tree-sitter-wasm-parser-IXDHBBYF.js → tree-sitter-wasm-parser-HF7WUMJQ.js} +2 -2
  232. package/dist/cli/chunks/{types-GAK4Q24M.js → types-UUKKK3L5.js} +2 -2
  233. package/dist/cli/chunks/unified-memory-JVMA5MJR.js +2 -0
  234. package/dist/cli/chunks/unified-memory-hnsw-SSBWEA2T.js +2 -0
  235. package/dist/cli/chunks/unified-persistence-CWGWVHCB.js +2 -0
  236. package/dist/cli/chunks/{upgrade-TFUW4SLZ.js → upgrade-ZNUFD44G.js} +2 -2
  237. package/dist/cli/chunks/{validate-J4GGNKLW.js → validate-6IFD37Q4.js} +2 -2
  238. package/dist/cli/chunks/{validate-swarm-KCQX46PY.js → validate-swarm-74CENSXV.js} +2 -2
  239. package/dist/cli/chunks/{vibium-WKIFKIZW.js → vibium-B2DDFMOQ.js} +2 -2
  240. package/dist/cli/chunks/visual-security-LGOI2DGK.js +2 -0
  241. package/dist/cli/chunks/{web-tree-sitter-OQSGWVGY.js → web-tree-sitter-X6ELMFG4.js} +2 -2
  242. package/dist/cli/chunks/{windsurf-installer-D6PIM3JO.js → windsurf-installer-HEIKCJDP.js} +2 -2
  243. package/dist/cli/chunks/witness-chain-JDFTWTJS.js +2 -0
  244. package/dist/cli/chunks/{witness-chain-NRVX76IB.js → witness-chain-TO6YFTUT.js} +2 -2
  245. package/dist/cli/chunks/{workflow-3X2UQG7E.js → workflow-WY73P2QK.js} +4 -4
  246. package/dist/cli/chunks/workflow-orchestrator-IDCHNGN6.js +2 -0
  247. package/dist/cli/chunks/{wrappers-UXKMHCHX.js → wrappers-VF7LWJER.js} +2 -2
  248. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +7 -0
  249. package/dist/cli/commands/hooks-handlers/routing-hooks.js +70 -1
  250. package/dist/cli/commands/hooks.js +1 -0
  251. package/dist/init/init-wizard-hooks.js +13 -0
  252. package/dist/init/phases/07-hooks.js +14 -0
  253. package/dist/mcp/bundle.js +1 -1
  254. package/package.json +1 -1
  255. package/dist/cli/chunks/adapter-KIGGXGP6.js +0 -2
  256. package/dist/cli/chunks/aqe-learning-engine-L3OD7COO.js +0 -2
  257. package/dist/cli/chunks/base-D55R3AAK.js +0 -2
  258. package/dist/cli/chunks/browser-workflow-GVOTUSBY.js +0 -2
  259. package/dist/cli/chunks/chunk-DWNKD2AQ.js +0 -2
  260. package/dist/cli/chunks/client-LZ4J7CB2.js +0 -2
  261. package/dist/cli/chunks/cross-domain-router-RQJLKTPC.js +0 -2
  262. package/dist/cli/chunks/dream-LLY2GYI7.js +0 -2
  263. package/dist/cli/chunks/hnsw-adapter-5KZG2W4N.js +0 -2
  264. package/dist/cli/chunks/hnsw-index-RVENHJNC.js +0 -2
  265. package/dist/cli/chunks/impact-analyzer-NXT3TDYG.js +0 -2
  266. package/dist/cli/chunks/init-wizard-WWYKBF4D.js +0 -2
  267. package/dist/cli/chunks/kernel-HGEE2UL6.js +0 -2
  268. package/dist/cli/chunks/knowledge-graph-EOJCWCZL.js +0 -2
  269. package/dist/cli/chunks/load-test-HRB2KH2Y.js +0 -2
  270. package/dist/cli/chunks/memory-backend-DPAKTNVV.js +0 -2
  271. package/dist/cli/chunks/protocol-executor-XQX2GJVA.js +0 -2
  272. package/dist/cli/chunks/qe-reasoning-bank-FYUB2RJT.js +0 -2
  273. package/dist/cli/chunks/queen-coordinator-J52B6O53.js +0 -2
  274. package/dist/cli/chunks/router-WFPO4XXI.js +0 -2
  275. package/dist/cli/chunks/routing-feedback-2RL7OC36.js +0 -2
  276. package/dist/cli/chunks/rvf-native-adapter-SA4QDDO3.js +0 -2
  277. package/dist/cli/chunks/safe-db-E5KUJFP2.js +0 -2
  278. package/dist/cli/chunks/schedule-BF4MDQ4Z.js +0 -2
  279. package/dist/cli/chunks/scheduler-QG2JMZVB.js +0 -2
  280. package/dist/cli/chunks/shared-rvf-adapter-S4KZM33F.js +0 -2
  281. package/dist/cli/chunks/sqlite-persistence-BXM2XX7R.js +0 -2
  282. package/dist/cli/chunks/unified-memory-WPVYK4Q5.js +0 -2
  283. package/dist/cli/chunks/unified-memory-hnsw-G3PRXB4L.js +0 -2
  284. package/dist/cli/chunks/unified-persistence-WZ5XANS4.js +0 -2
  285. package/dist/cli/chunks/visual-security-ZVQG2EY4.js +0 -2
  286. package/dist/cli/chunks/witness-chain-F3PHT6MB.js +0 -2
  287. package/dist/cli/chunks/workflow-orchestrator-VQVQKILY.js +0 -2
@@ -1,8 +1,8 @@
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.9.24");process.exit(0)}
2
- import{a as k,b as K,c as x,d as T,e as H,f as F,g as Q,j as _}from"./chunk-PTIPWMXS.js";import{a as v,b as V}from"./chunk-OOU4VQ2T.js";import{a as G}from"./chunk-7XK73L6C.js";import"./chunk-EHA2BZ47.js";import"./chunk-YFWVVYZX.js";import{c as C,d as S}from"./chunk-HH3ENF7B.js";import"./chunk-V7IDAZKZ.js";import{v as q}from"./chunk-W7HIJ5DV.js";import"./chunk-4FCCQJQA.js";import"./chunk-YEVQOQVZ.js";import"./chunk-JYMDWMEJ.js";import"./chunk-6FCVDWPR.js";import"./chunk-KSN6QUCR.js";import{c as L}from"./chunk-QDUV7TDQ.js";import{a as W}from"./chunk-YRKY76JZ.js";import{a as E}from"./chunk-LVR47OZA.js";import"./chunk-L5JJKGKJ.js";import"./chunk-LX6XRBJ2.js";import{f as j}from"./chunk-QNMIY45G.js";import"./chunk-4SDQZI7D.js";import"./chunk-WH75EHSK.js";import"./chunk-Z2CO6ZI5.js";import"./chunk-OPHVJUZK.js";import"./chunk-25AL3RPA.js";import"./chunk-Q5OLVIKK.js";import"./chunk-3LHP7G6U.js";import{b as N}from"./chunk-DFG3KX7E.js";import"./chunk-6SWRLJ3I.js";import"./chunk-SE572JWE.js";import"./chunk-73K34C4S.js";import"./chunk-A4CHQJEO.js";import"./chunk-G73FWR34.js";import"./chunk-TUY3BOQM.js";import"./chunk-PU3MT7SE.js";import"./chunk-SNTRKHVH.js";import"./chunk-BDGKN7GC.js";import"./chunk-TS5YIHJH.js";import"./chunk-KQRJXVMO.js";import"./chunk-FPBCG7CX.js";import"./chunk-42CCJFXZ.js";import"./chunk-O4CTWG4B.js";import"./chunk-WGEX22Z4.js";import"./chunk-L7EDWT5P.js";import"./chunk-RHFNFYIL.js";import"./chunk-RMTPAEZO.js";import"./chunk-MUH2YGNO.js";import"./chunk-QG63KW2J.js";import"./chunk-ZJNZ5SDG.js";import"./chunk-UGR3JJD7.js";import"./chunk-I3VTEYYF.js";import"./chunk-NOUDTI2R.js";import"./chunk-JDJ6VEXU.js";import"./chunk-F4GZAQR2.js";import"./chunk-INPP5RW4.js";import"./chunk-7LIRKYB6.js";import"./chunk-3NZ7IVRI.js";import"./chunk-U6V6R2EF.js";import"./chunk-C4ST4NP4.js";import"./chunk-DWNKD2AQ.js";import"./chunk-RGOJFKIY.js";import"./chunk-FHRUSW2V.js";import"./chunk-EAC3PZGH.js";import{a as I}from"./chunk-CTSTHKH4.js";import{a as B,c as ee}from"./chunk-73JTRGIQ.js";import"./chunk-3ZNIACXR.js";import"./chunk-DZPKBTP3.js";import{a as z,b as te}from"./chunk-WB3GQ7X7.js";import"./chunk-HYX3LWLA.js";import"./chunk-AJ45BRKK.js";import{c as $,d as ne}from"./chunk-BWCSNSXR.js";import"./chunk-O3ADCWEC.js";import"./chunk-HQY2BNJT.js";import"./chunk-4AUGLQOE.js";import"./chunk-HGOTTQQK.js";import"./chunk-7ODDJI3P.js";import"./chunk-4LA24G33.js";ne();import{Command as ie}from"commander";import t from"chalk";ee();te();import h from"chalk";import{existsSync as oe}from"fs";import{join as P}from"path";var R=class{projectRoot;options;orchestrator;constructor(e){this.options=e,this.projectRoot=e.projectRoot}async checkCodeIntelligence(){if(this.options.skipCodeScan)return console.log(h.yellow(" Code intelligence scan skipped (--skip-code-scan flag)")),{codeIntelligence:{hasIndex:!1,entryCount:0,wasPrompted:!1,scanRequested:!1},shouldProceed:!0,skipReason:"skip-flag"};if(await this.hasCodeIntelligenceIndex()){let i=await this.getKGEntryCount();return console.log(h.green(` \u2713 Code intelligence index found (${i} entries)`)),{codeIntelligence:{hasIndex:!0,entryCount:i,wasPrompted:!1,scanRequested:!1},shouldProceed:!0}}return!this.options.nonInteractive&&(console.log(h.yellow(`
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.9.25");process.exit(0)}
2
+ import{a as k,b as K,c as x,d as T,e as H,f as F,g as Q,j as _}from"./chunk-V3L3FD4I.js";import{a as v,b as V}from"./chunk-4DVQS5LA.js";import{a as G}from"./chunk-N64WUFUI.js";import"./chunk-73SPNQDP.js";import"./chunk-6IRQAAMQ.js";import{c as C,d as S}from"./chunk-X33KZ6WO.js";import"./chunk-CRTUB5NH.js";import{v as q}from"./chunk-KYDLYPOG.js";import"./chunk-XPXL75LN.js";import"./chunk-5KWOG53N.js";import"./chunk-W2OPF27P.js";import"./chunk-OJ7RJC7F.js";import"./chunk-OGBDSSVO.js";import{c as L}from"./chunk-VLNCDVU6.js";import{a as W}from"./chunk-M4F7EAR6.js";import{a as E}from"./chunk-JFWRCQCV.js";import"./chunk-J2O5RRNH.js";import"./chunk-74YWPNUB.js";import{f as j}from"./chunk-AZ3GC5UX.js";import"./chunk-6UH7B3PE.js";import"./chunk-XBBNMF3C.js";import"./chunk-5DOCH2OX.js";import"./chunk-H6IV3LHA.js";import"./chunk-T5WFV3EH.js";import"./chunk-73SK2MNU.js";import"./chunk-P6REB3IC.js";import{b as N}from"./chunk-QFNWLRPV.js";import"./chunk-4GVLZIHN.js";import"./chunk-5ZADSKFC.js";import"./chunk-MVT2F4Z4.js";import"./chunk-MMWH7D2O.js";import"./chunk-IJH3WAC4.js";import"./chunk-XC34CWA3.js";import"./chunk-2ACE3T6H.js";import"./chunk-2ZN6YGSA.js";import"./chunk-NURG5LQO.js";import"./chunk-TCRBP7GO.js";import"./chunk-ZGGHGWXF.js";import"./chunk-XXG6OQSR.js";import"./chunk-XMYX6HAG.js";import"./chunk-HLVL2N5U.js";import"./chunk-W7ULVE22.js";import"./chunk-PFH2G7AP.js";import"./chunk-6PW5L2SC.js";import"./chunk-LKRGOCDO.js";import"./chunk-76RCKSCL.js";import"./chunk-KAVN56IT.js";import"./chunk-VRNRR3VU.js";import"./chunk-NIXA5DVA.js";import"./chunk-I5WMRFJ2.js";import"./chunk-DZVIMPC2.js";import"./chunk-KVZKBPKC.js";import"./chunk-LFD3YTNY.js";import"./chunk-DNIU6W6Z.js";import"./chunk-FHKQSSQT.js";import"./chunk-7G2UJMKQ.js";import"./chunk-AQXKM5VB.js";import"./chunk-2IRRXFBV.js";import"./chunk-EOZIQTHG.js";import"./chunk-P5ZV4RCF.js";import"./chunk-M4GE3R5K.js";import"./chunk-5XCHNZNW.js";import{a as I}from"./chunk-VZVHYH7B.js";import{a as B,c as ee}from"./chunk-SKRQF45C.js";import"./chunk-IV4OBL4P.js";import"./chunk-MP4GPPOD.js";import{a as z,b as te}from"./chunk-R7VO6E3E.js";import"./chunk-THQNIMJU.js";import"./chunk-W5RRYCQ7.js";import{c as $,d as ne}from"./chunk-LTWNVZDR.js";import"./chunk-ML7AEOPI.js";import"./chunk-SDOG2MMY.js";import"./chunk-4FRRDVWH.js";import"./chunk-AFQNJJWA.js";import"./chunk-4ASWQOFE.js";import"./chunk-3OPXTQMB.js";ne();import{Command as ie}from"commander";import t from"chalk";ee();te();import h from"chalk";import{existsSync as oe}from"fs";import{join as P}from"path";var R=class{projectRoot;options;orchestrator;constructor(e){this.options=e,this.projectRoot=e.projectRoot}async checkCodeIntelligence(){if(this.options.skipCodeScan)return console.log(h.yellow(" Code intelligence scan skipped (--skip-code-scan flag)")),{codeIntelligence:{hasIndex:!1,entryCount:0,wasPrompted:!1,scanRequested:!1},shouldProceed:!0,skipReason:"skip-flag"};if(await this.hasCodeIntelligenceIndex()){let i=await this.getKGEntryCount();return console.log(h.green(` \u2713 Code intelligence index found (${i} entries)`)),{codeIntelligence:{hasIndex:!0,entryCount:i,wasPrompted:!1,scanRequested:!1},shouldProceed:!0}}return!this.options.nonInteractive&&(console.log(h.yellow(`
3
3
  \u26A0 No code intelligence index found`)),console.log(h.gray(" Building a knowledge graph improves agent accuracy by 80%")),console.log(h.gray(" This is a one-time operation and can be run later with:")),console.log(h.cyan(` aqe code-intelligence index
4
4
  `)),await this.promptScan())?{codeIntelligence:{hasIndex:!1,entryCount:0,wasPrompted:!0,scanRequested:!0},shouldProceed:!1,skipReason:"scan-requested"}:(console.log(h.gray(" Continuing without code intelligence index")),{codeIntelligence:{hasIndex:!1,entryCount:0,wasPrompted:!this.options.nonInteractive,scanRequested:!1},shouldProceed:!0})}async runCodeIntelligenceScan(){try{if(console.log(h.blue(`
5
- Building code intelligence knowledge graph...`)),this.orchestrator||(this.orchestrator=new G({projectRoot:this.projectRoot,autoMode:!0,...this.options.initOptions})),await this.hasCodeIntelligenceIndex()){let s=await this.getKGEntryCount();return console.log(h.green(` \u2713 Index already exists (${s} entries)`)),{success:!0,entries:s}}let{KnowledgeGraphService:i}=await import("./knowledge-graph-EOJCWCZL.js"),{InMemoryBackend:c}=await import("./memory-backend-DPAKTNVV.js"),m=new c;await m.initialize();let n=new i(m,{namespace:"code-intelligence:kg",enableVectorEmbeddings:!0}),g=await(await import("fast-glob")).default(["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py"],{cwd:this.projectRoot,ignore:["node_modules/**","dist/**","coverage/**",".agentic-qe/**"]});console.log(h.gray(` Indexing ${g.length} files...`));let o=await n.index({paths:g.map(s=>P(this.projectRoot,s)),incremental:!1,includeTests:!0});if(n.destroy(),o.success){let s=o.value.nodesCreated+o.value.edgesCreated;return console.log(h.green(` \u2713 Indexed ${s} knowledge graph entries`)),{success:!0,entries:s}}return console.log(h.yellow(" \u26A0 Code intelligence scan completed with warnings")),{success:!1,entries:0}}catch(e){return console.error(h.red(" \u2717 Code intelligence scan failed:"),B(e)),{success:!1,entries:0}}}async getStatusForAgents(){let e=await this.hasCodeIntelligenceIndex(),i=e?await this.getKGEntryCount():0;return{codeIntelligenceAvailable:e,knowledgeGraphSize:i,recommendedCapabilities:e?["semantic-search","code-analysis","context-aware"]:["basic-analysis"]}}async hasCodeIntelligenceIndex(){let e=P(this.projectRoot,".agentic-qe","memory.db");if(!oe(e))return!1;try{let i=z(e),c=i.prepare(`
5
+ Building code intelligence knowledge graph...`)),this.orchestrator||(this.orchestrator=new G({projectRoot:this.projectRoot,autoMode:!0,...this.options.initOptions})),await this.hasCodeIntelligenceIndex()){let s=await this.getKGEntryCount();return console.log(h.green(` \u2713 Index already exists (${s} entries)`)),{success:!0,entries:s}}let{KnowledgeGraphService:i}=await import("./knowledge-graph-BXVKN4TE.js"),{InMemoryBackend:c}=await import("./memory-backend-LW2HMGVV.js"),m=new c;await m.initialize();let n=new i(m,{namespace:"code-intelligence:kg",enableVectorEmbeddings:!0}),g=await(await import("fast-glob")).default(["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py"],{cwd:this.projectRoot,ignore:["node_modules/**","dist/**","coverage/**",".agentic-qe/**"]});console.log(h.gray(` Indexing ${g.length} files...`));let o=await n.index({paths:g.map(s=>P(this.projectRoot,s)),incremental:!1,includeTests:!0});if(n.destroy(),o.success){let s=o.value.nodesCreated+o.value.edgesCreated;return console.log(h.green(` \u2713 Indexed ${s} knowledge graph entries`)),{success:!0,entries:s}}return console.log(h.yellow(" \u26A0 Code intelligence scan completed with warnings")),{success:!1,entries:0}}catch(e){return console.error(h.red(" \u2717 Code intelligence scan failed:"),B(e)),{success:!1,entries:0}}}async getStatusForAgents(){let e=await this.hasCodeIntelligenceIndex(),i=e?await this.getKGEntryCount():0;return{codeIntelligenceAvailable:e,knowledgeGraphSize:i,recommendedCapabilities:e?["semantic-search","code-analysis","context-aware"]:["basic-analysis"]}}async hasCodeIntelligenceIndex(){let e=P(this.projectRoot,".agentic-qe","memory.db");if(!oe(e))return!1;try{let i=z(e),c=i.prepare(`
6
6
  SELECT COUNT(*) as count FROM kv_store
7
7
  WHERE namespace = 'code-intelligence:kg'
8
8
  `).get();return i.close(),c.count>0}catch{return!1}}async getKGEntryCount(){let e=P(this.projectRoot,".agentic-qe","memory.db");try{let i=z(e),c=i.prepare(`
@@ -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.9.24");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}from"./chunk-FHRUSW2V.js";import"./chunk-EAC3PZGH.js";import"./chunk-HGOTTQQK.js";import"./chunk-7ODDJI3P.js";import"./chunk-4LA24G33.js";export{e as GNNLayerFactory,c as QEGNNEmbeddingIndex,d as QEGNNIndexFactory,f as TensorCompressionFactory,p as batchDifferentiableSearch,i as getDifferentiableSearch,k as getGetCompressionLevel,j as getHierarchicalForward,l as getInit,g as getRuvectorLayer,h as getTensorCompress,b as initGNN,a as isGNNAvailable,m as toFloat32Array,o as toIEmbedding,n as toNumberArray};
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.9.25");process.exit(0)}
2
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}from"./chunk-M4GE3R5K.js";import"./chunk-5XCHNZNW.js";import"./chunk-AFQNJJWA.js";import"./chunk-4ASWQOFE.js";import"./chunk-3OPXTQMB.js";export{e as GNNLayerFactory,c as QEGNNEmbeddingIndex,d as QEGNNIndexFactory,f as TensorCompressionFactory,p as batchDifferentiableSearch,i as getDifferentiableSearch,k as getGetCompressionLevel,j as getHierarchicalForward,l as getInit,g as getRuvectorLayer,h as getTensorCompress,b as initGNN,a as isGNNAvailable,m as toFloat32Array,o as toIEmbedding,n as toNumberArray};
@@ -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.9.24");process.exit(0)}
2
- import{b as d}from"./chunk-DZHAXSOZ.js";import{a as c,c as f}from"./chunk-73JTRGIQ.js";import"./chunk-4LA24G33.js";import*as s from"fs";import*as l from"path";import e from"chalk";f();var h=class{name="heartbeat";description="Manage the token-free heartbeat scheduler";cleanupAndExit;worker;constructor(t){this.cleanupAndExit=t}async getWorker(){if(!this.worker){let{HeartbeatSchedulerWorker:t}=await import("./heartbeat-scheduler-PNGMQ5A2.js");this.worker=new t}return this.worker}register(t,o){let a=t.command("heartbeat").description(this.description);a.command("status").description("Show heartbeat worker status, health, and schedule").action(async()=>{await this.executeStatus()}),a.command("run-now").description("Trigger an immediate heartbeat cycle").option("-t, --timeout <ms>","Timeout in milliseconds (default: worker built-in 60s)").action(async n=>{let i=n.timeout?parseInt(n.timeout,10):void 0;await this.executeRunNow(i)}),a.command("history").description("Show recent heartbeat results").option("-n, --count <count>","Number of entries to show","10").action(async n=>{await this.executeHistory(parseInt(n.count,10)||10)}),a.command("log").description("Show today's daily log entries").option("-d, --date <date>","Show log for specific date (YYYY-MM-DD)").action(async n=>{await this.executeLog(n.date)}),a.command("pause").description("Pause the heartbeat worker").action(async()=>{await this.executePause()}),a.command("resume").description("Resume the heartbeat worker").action(async()=>{await this.executeResume()})}async executeStatus(){try{this.worker=await this.getWorker(),await this.worker.initialize();let t=this.worker.getHealth(),o=this.worker.lastResult;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.9.25");process.exit(0)}
2
+ import{b as d}from"./chunk-NADXRFKX.js";import{a as c,c as f}from"./chunk-SKRQF45C.js";import"./chunk-3OPXTQMB.js";import*as s from"fs";import*as l from"path";import e from"chalk";f();var h=class{name="heartbeat";description="Manage the token-free heartbeat scheduler";cleanupAndExit;worker;constructor(t){this.cleanupAndExit=t}async getWorker(){if(!this.worker){let{HeartbeatSchedulerWorker:t}=await import("./heartbeat-scheduler-SNUBX4LF.js");this.worker=new t}return this.worker}register(t,o){let a=t.command("heartbeat").description(this.description);a.command("status").description("Show heartbeat worker status, health, and schedule").action(async()=>{await this.executeStatus()}),a.command("run-now").description("Trigger an immediate heartbeat cycle").option("-t, --timeout <ms>","Timeout in milliseconds (default: worker built-in 60s)").action(async n=>{let i=n.timeout?parseInt(n.timeout,10):void 0;await this.executeRunNow(i)}),a.command("history").description("Show recent heartbeat results").option("-n, --count <count>","Number of entries to show","10").action(async n=>{await this.executeHistory(parseInt(n.count,10)||10)}),a.command("log").description("Show today's daily log entries").option("-d, --date <date>","Show log for specific date (YYYY-MM-DD)").action(async n=>{await this.executeLog(n.date)}),a.command("pause").description("Pause the heartbeat worker").action(async()=>{await this.executePause()}),a.command("resume").description("Resume the heartbeat worker").action(async()=>{await this.executeResume()})}async executeStatus(){try{this.worker=await this.getWorker(),await this.worker.initialize();let t=this.worker.getHealth(),o=this.worker.lastResult;if(console.log(e.blue(`
3
3
  Heartbeat Scheduler Status`)),console.log(e.gray(" "+"\u2500".repeat(35))),console.log(` Status: ${x(t.status)}`),console.log(` Health Score: ${y(t.healthScore)}${e.gray("/100")}`),this.worker.lastRunAt){let n=p(this.worker.lastRunAt);console.log(` Last Run: ${e.cyan(this.worker.lastRunAt.toISOString().replace("T"," ").slice(0,19))} ${e.gray(`(${n})`)}`)}else console.log(` Last Run: ${e.gray("never")}`);if(this.worker.nextRunAt){let n=p(this.worker.nextRunAt,!0);console.log(` Next Run: ${e.cyan(this.worker.nextRunAt.toISOString().replace("T"," ").slice(0,19))} ${e.gray(`(${n})`)}`)}console.log(` Total Runs: ${e.cyan(String(t.totalExecutions))}`);let a=t.totalExecutions>0?(t.successfulExecutions/t.totalExecutions*100).toFixed(1):"100.0";if(console.log(` Success Rate: ${e.cyan(a+"%")}`),o?.metrics?.domainMetrics){let n=o.metrics.domainMetrics;console.log(""),console.log(e.blue(" Last Result:")),console.log(` Promoted: ${e.cyan(String(n.promoted??0))} patterns`),console.log(` Deprecated: ${e.cyan(String(n.deprecated??0))} patterns`),console.log(` Decayed: ${e.cyan(String(n.decayed??0))} patterns`),console.log(` Pending Exp: ${e.cyan(String(n.pendingExperiences??0))}`),console.log(` Avg Conf: ${e.cyan(String(n.avgConfidence??0))}`)}console.log(""),await this.cleanupAndExit(0)}catch(t){console.error(e.red(`
4
4
  Failed to get heartbeat status:`),c(t)),await this.cleanupAndExit(1)}}async executeRunNow(t){try{this.worker=await this.getWorker(),console.log(e.blue(`
5
5
  Triggering heartbeat cycle...
@@ -8,7 +8,7 @@ import{b as d}from"./chunk-DZHAXSOZ.js";import{a as c,c as f}from"./chunk-73JTRG
8
8
  Heartbeat History (last ${o.length})`)),console.log(e.gray(" "+"\u2500".repeat(60)));for(let a of o){let n=a.success?e.green("OK"):e.red("FAIL"),i=a.timestamp.slice(0,19).replace("T"," "),u=a.domainMetrics||{};console.log(` ${e.gray(i)} ${n} score:${e.cyan(String(a.healthScore))} +${u.promoted??0}/-${u.deprecated??0} ${e.gray(d(a.durationMs))}`)}console.log(""),await this.cleanupAndExit(0)}catch(o){console.error(e.red(`
9
9
  Failed to load history:`),c(o)),await this.cleanupAndExit(1)}}async executeLog(t){try{let o=t||new Date().toISOString().split("T")[0];if(!/^\d{4}-\d{2}-\d{2}$/.test(o)){console.error(e.red(`
10
10
  Invalid date format: "${o}". Use YYYY-MM-DD.
11
- `)),await this.cleanupAndExit(1);return}let{findProjectRoot:a}=await import("./unified-memory-WPVYK4Q5.js"),n=l.join(a(),".agentic-qe","logs"),i=l.join(n,`${o}.md`);if(!s.existsSync(i)){console.log(e.yellow(`
11
+ `)),await this.cleanupAndExit(1);return}let{findProjectRoot:a}=await import("./unified-memory-JVMA5MJR.js"),n=l.join(a(),".agentic-qe","logs"),i=l.join(n,`${o}.md`);if(!s.existsSync(i)){console.log(e.yellow(`
12
12
  No daily log found for ${o}.
13
13
  `)),await this.cleanupAndExit(0);return}let u=s.readFileSync(i,"utf-8");console.log(e.blue(`
14
14
  Daily Log \u2014 ${o}`)),console.log(e.gray(" "+"\u2500".repeat(40)));for(let g of u.split(`
@@ -45,4 +45,4 @@ Examples:
45
45
  aqe heartbeat log --date 2026-03-25
46
46
  aqe heartbeat pause
47
47
  aqe heartbeat resume
48
- `}},m=100;async function w(){let{findProjectRoot:r}=await import("./unified-memory-WPVYK4Q5.js");return l.join(r(),".agentic-qe","heartbeat-history.json")}async function b(r){try{let t=await w(),o=l.dirname(t);s.existsSync(o)||s.mkdirSync(o,{recursive:!0});let a=[];if(s.existsSync(t))try{a=JSON.parse(s.readFileSync(t,"utf-8"))}catch{a=[]}a.unshift({timestamp:r.timestamp.toISOString(),success:r.success,durationMs:r.durationMs,healthScore:r.metrics.healthScore,domainMetrics:r.metrics.domainMetrics}),a.length>m&&(a=a.slice(0,m)),s.writeFileSync(t,JSON.stringify(a,null,2))}catch{}}async function S(r){try{let t=await w();return s.existsSync(t)?JSON.parse(s.readFileSync(t,"utf-8")).slice(0,r):[]}catch{return[]}}function x(r){switch(r){case"idle":return e.cyan(r);case"running":return e.yellow(r);case"paused":return e.yellow(r);case"stopped":return e.gray(r);case"error":return e.red(r);default:return e.white(r)}}function y(r){return r>=80?e.green(String(r)):r>=50?e.yellow(String(r)):e.red(String(r))}function k(r){switch(r){case"improving":return e.green(r);case"stable":return e.cyan(r);case"degrading":return e.red(r);default:return e.gray(r)}}function p(r,t=!1){let o=t?r.getTime()-Date.now():Date.now()-r.getTime();return o<0?t?"now":"just now":o<6e4?`${Math.floor(o/1e3)}s ${t?"from now":"ago"}`:o<36e5?`${Math.floor(o/6e4)}m ${t?"from now":"ago"}`:`${Math.floor(o/36e5)}h ${t?"from now":"ago"}`}function A(r){return new h(r)}export{h as HeartbeatHandler,A as createHeartbeatHandler};
48
+ `}},m=100;async function w(){let{findProjectRoot:r}=await import("./unified-memory-JVMA5MJR.js");return l.join(r(),".agentic-qe","heartbeat-history.json")}async function b(r){try{let t=await w(),o=l.dirname(t);s.existsSync(o)||s.mkdirSync(o,{recursive:!0});let a=[];if(s.existsSync(t))try{a=JSON.parse(s.readFileSync(t,"utf-8"))}catch{a=[]}a.unshift({timestamp:r.timestamp.toISOString(),success:r.success,durationMs:r.durationMs,healthScore:r.metrics.healthScore,domainMetrics:r.metrics.domainMetrics}),a.length>m&&(a=a.slice(0,m)),s.writeFileSync(t,JSON.stringify(a,null,2))}catch{}}async function S(r){try{let t=await w();return s.existsSync(t)?JSON.parse(s.readFileSync(t,"utf-8")).slice(0,r):[]}catch{return[]}}function x(r){switch(r){case"idle":return e.cyan(r);case"running":return e.yellow(r);case"paused":return e.yellow(r);case"stopped":return e.gray(r);case"error":return e.red(r);default:return e.white(r)}}function y(r){return r>=80?e.green(String(r)):r>=50?e.yellow(String(r)):e.red(String(r))}function k(r){switch(r){case"improving":return e.green(r);case"stable":return e.cyan(r);case"degrading":return e.red(r);default:return e.gray(r)}}function p(r,t=!1){let o=t?r.getTime()-Date.now():Date.now()-r.getTime();return o<0?t?"now":"just now":o<6e4?`${Math.floor(o/1e3)}s ${t?"from now":"ago"}`:o<36e5?`${Math.floor(o/6e4)}m ${t?"from now":"ago"}`:`${Math.floor(o/36e5)}h ${t?"from now":"ago"}`}function A(r){return new h(r)}export{h as HeartbeatHandler,A as createHeartbeatHandler};
@@ -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.9.24");process.exit(0)}
2
- import{a as v,b as k}from"./chunk-7TC7HNSA.js";import"./chunk-RSED3U2F.js";import"./chunk-KQRJXVMO.js";import{k as g,o as P}from"./chunk-3NZ7IVRI.js";import"./chunk-U6V6R2EF.js";import"./chunk-DWNKD2AQ.js";import"./chunk-RGOJFKIY.js";import"./chunk-EAC3PZGH.js";import{a as d,b as y,c as R}from"./chunk-73JTRGIQ.js";import"./chunk-WB3GQ7X7.js";import"./chunk-HYX3LWLA.js";import"./chunk-AJ45BRKK.js";import"./chunk-BWCSNSXR.js";import"./chunk-O3ADCWEC.js";import"./chunk-HQY2BNJT.js";import"./chunk-4AUGLQOE.js";import"./chunk-HGOTTQQK.js";import"./chunk-7ODDJI3P.js";import"./chunk-4LA24G33.js";R();import{randomUUID as M}from"crypto";var p=class{constructor(e){this.config=e}config;_status="idle";_lastResult;_lastRunAt;_nextRunAt;_totalExecutions=0;_successfulExecutions=0;_failedExecutions=0;_executionDurations=[];_recentResults=[];get status(){return this._status}get lastResult(){return this._lastResult}get lastRunAt(){return this._lastRunAt}get nextRunAt(){return this._nextRunAt}async initialize(){this._status="idle",this._nextRunAt=new Date(Date.now()+this.config.intervalMs)}async execute(e){let r=Date.now();this._status="running",this._lastRunAt=new Date,this._totalExecutions++;let n,t;for(let a=0;a<=this.config.retryCount;a++)try{if(e.signal.aborted)throw new Error("Worker execution aborted");t=await this.executeWithTimeout(()=>this.doExecute(e),this.config.timeoutMs,e.signal);break}catch(u){n=y(u),e.logger.warn(`Worker ${this.config.id} attempt ${a+1} failed: ${n.message}`),a<this.config.retryCount&&await this.delay(this.config.retryDelayMs)}let o=Date.now()-r;return t?(this._successfulExecutions++,this._lastResult=t):(this._failedExecutions++,t=this.createErrorResult(n,o),this._lastResult=t),this._executionDurations.push(o),this._executionDurations.length>100&&this._executionDurations.shift(),this._recentResults.push({timestamp:new Date,success:t.success,durationMs:o}),this._recentResults.length>5&&this._recentResults.shift(),this._nextRunAt=new Date(Date.now()+this.config.intervalMs),this._status=t.success?"idle":"error",await e.eventBus.publish({type:"worker.executed",workerId:this.config.id,timestamp:new Date,payload:{success:t.success,durationMs:o,findingsCount:t.findings.length,healthScore:t.metrics.healthScore}}),t}pause(){this._status!=="stopped"&&(this._status="paused")}resume(){this._status==="paused"&&(this._status="idle")}async stop(){this._status="stopped"}getHealth(){let e=this._executionDurations.length>0?this._executionDurations.reduce((n,t)=>n+t,0)/this._executionDurations.length:0,r=this._totalExecutions>0?this._successfulExecutions/this._totalExecutions:1;return{status:this._status,healthScore:Math.round(r*100),totalExecutions:this._totalExecutions,successfulExecutions:this._successfulExecutions,failedExecutions:this._failedExecutions,avgDurationMs:Math.round(e),recentResults:[...this._recentResults]}}async executeWithTimeout(e,r,n){return new Promise((t,o)=>{let a=setTimeout(()=>{o(new Error(`Worker execution timed out after ${r}ms`))},r),u=()=>{clearTimeout(a),o(new Error("Worker execution aborted"))};n.addEventListener("abort",u,{once:!0}),e().then(c=>{clearTimeout(a),n.removeEventListener("abort",u),t(c)}).catch(c=>{clearTimeout(a),n.removeEventListener("abort",u),o(c)})})}createErrorResult(e,r){return{workerId:this.config.id,timestamp:new Date,durationMs:r,success:!1,error:e.message,metrics:{itemsAnalyzed:0,issuesFound:0,healthScore:0,trend:"degrading",domainMetrics:{}},findings:[],recommendations:[]}}createResult(e,r,n,t){return{workerId:this.config.id,timestamp:new Date,durationMs:e,success:!0,metrics:r,findings:n,recommendations:t}}delay(e){return new Promise(r=>setTimeout(r,e))}generateId(){return`${Date.now()}-${M().slice(0,9)}`}};P();R();var W={id:"heartbeat-scheduler",name:"Heartbeat Scheduler",description:"Token-free maintenance: pattern promotion, stale detection, experience buffer monitoring",intervalMs:1800*1e3,priority:"normal",targetDomains:["learning-optimization"],enabled:!0,timeoutMs:6e4,retryCount:1,retryDelayMs:5e3},b=class extends p{lifecycleManager=null;dailyLogger;lastRunTimestamp=0;constructor(){super(W),this.dailyLogger=new k}async getLifecycleManager(){if(this.lifecycleManager)return this.lifecycleManager;try{let e=g();await e.initialize();let r=e.getDatabase();return this.lifecycleManager=v(r,{promotionRewardThreshold:.7,promotionMinOccurrences:2,promotionMinSuccessRate:.7,deprecationFailureThreshold:3,staleDaysThreshold:30,confidenceDecayRate:.01,minActiveConfidence:.3}),this.lifecycleManager}catch{return null}}getPendingExperienceCount(){try{return g().getDatabase().prepare("SELECT COUNT(*) as pending FROM qe_pattern_usage WHERE created_at > datetime('now', '-1 day')").get()?.pending??0}catch{return 0}}async doExecute(e){let r=Date.now();e.logger.info("Heartbeat scheduler running (token-free maintenance)");let n=[],t=[],o=await this.getLifecycleManager();if(!o)return e.logger.warn("Unified memory unavailable \u2014 returning zero-metric heartbeat"),this.createResult(Date.now()-r,{itemsAnalyzed:0,issuesFound:0,healthScore:50,trend:"stable",domainMetrics:{promoted:0,deprecated:0,decayed:0,stalePatterns:0,pendingExperiences:0,avgConfidence:0,avgSuccessRate:0}},[],[]);let a=0,u=0;try{let s=o.promoteEligiblePatterns();a=s.promoted,u=s.checked,a>0&&n.push({type:"heartbeat-promotion",severity:"info",domain:"learning-optimization",title:"Patterns Promoted",description:`${a} of ${u} short-term patterns promoted to long-term`})}catch(s){e.logger.warn("Pattern promotion failed",{error:d(s)})}let c=0,h=0;try{let s=o.deprecateStalePatterns();c=s.deprecated,h=s.checked,c>0&&n.push({type:"heartbeat-deprecation",severity:"low",domain:"learning-optimization",title:"Stale Patterns Deprecated",description:`${c} of ${h} patterns deprecated (stale, failed, or low confidence)`})}catch(s){e.logger.warn("Stale pattern detection failed",{error:d(s)})}let l=0;try{let s=this.lastRunTimestamp>0?(Date.now()-this.lastRunTimestamp)/864e5:1;l=o.applyConfidenceDecay(Math.min(s,7)).decayed}catch(s){e.logger.warn("Confidence decay failed",{error:d(s)})}let m=this.getPendingExperienceCount(),i={totalPatterns:0,activePatterns:0,deprecatedPatterns:0,promotedPatterns:0,shortTermPatterns:0,longTermPatterns:0,avgConfidence:0,avgSuccessRate:0,patternsNearDeprecation:0};try{i=o.getStats()}catch(s){e.logger.warn("Stats retrieval failed",{error:d(s)})}try{this.dailyLogger.log({timestamp:new Date,type:"pattern-promoted",summary:`Heartbeat: ${a} promoted, ${c} deprecated, ${l} decayed, ${m} pending exp, ${i.activePatterns} active patterns (avg conf: ${i.avgConfidence.toFixed(2)})`,details:{promoted:a,deprecated:c,decayed:l,pendingExperiences:m,totalPatterns:i.totalPatterns,activePatterns:i.activePatterns,avgConfidence:i.avgConfidence,avgSuccessRate:i.avgSuccessRate}}),this.dailyLogger.flush()}catch(s){e.logger.warn("Daily log write failed",{error:d(s)})}this.lastRunTimestamp=Date.now(),i.activePatterns>0&&i.patternsNearDeprecation/i.activePatterns>.5&&t.push({priority:"p2",domain:"learning-optimization",action:"Review At-Risk Patterns",description:`${i.patternsNearDeprecation} of ${i.activePatterns} active patterns are near deprecation. Manual review recommended.`,estimatedImpact:"medium",effort:"low",autoFixable:!1});let f=this.calculateHealthScore(i,a,c),D=this.determineTrend(a,c,i.activePatterns),_=Math.max(u,h),x=a+c+i.patternsNearDeprecation;return e.logger.info("Heartbeat complete",{promoted:a,deprecated:c,decayed:l,pendingExperiences:m,healthScore:f}),this.createResult(Date.now()-r,{itemsAnalyzed:_,issuesFound:x,healthScore:f,trend:D,domainMetrics:{promoted:a,deprecated:c,decayed:l,stalePatterns:i.patternsNearDeprecation,pendingExperiences:m,avgConfidence:Number(i.avgConfidence.toFixed(3)),avgSuccessRate:Number(i.avgSuccessRate.toFixed(3))}},n,t)}calculateHealthScore(e,r,n){let t=70;if(t+=Math.min(15,r*5),e.avgConfidence>0&&(t+=Math.round((e.avgConfidence-.5)*30)),e.activePatterns>0){let o=n/e.activePatterns;t-=Math.round(o*20)}return e.activePatterns>0&&e.patternsNearDeprecation/e.activePatterns>.5&&(t-=10),Math.max(0,Math.min(100,Math.round(t)))}determineTrend(e,r,n){return n===0?"stable":e>r?"improving":r>e&&r/n>.1?"degrading":"stable"}};export{b as HeartbeatSchedulerWorker};
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.9.25");process.exit(0)}
2
+ import{a as v,b as k}from"./chunk-FL2G2VFC.js";import"./chunk-MAWGLIAE.js";import"./chunk-ZGGHGWXF.js";import{k as g,o as P}from"./chunk-7G2UJMKQ.js";import"./chunk-AQXKM5VB.js";import"./chunk-EOZIQTHG.js";import"./chunk-P5ZV4RCF.js";import"./chunk-5XCHNZNW.js";import{a as d,b as y,c as R}from"./chunk-SKRQF45C.js";import"./chunk-R7VO6E3E.js";import"./chunk-THQNIMJU.js";import"./chunk-W5RRYCQ7.js";import"./chunk-LTWNVZDR.js";import"./chunk-ML7AEOPI.js";import"./chunk-SDOG2MMY.js";import"./chunk-4FRRDVWH.js";import"./chunk-AFQNJJWA.js";import"./chunk-4ASWQOFE.js";import"./chunk-3OPXTQMB.js";R();import{randomUUID as M}from"crypto";var p=class{constructor(e){this.config=e}config;_status="idle";_lastResult;_lastRunAt;_nextRunAt;_totalExecutions=0;_successfulExecutions=0;_failedExecutions=0;_executionDurations=[];_recentResults=[];get status(){return this._status}get lastResult(){return this._lastResult}get lastRunAt(){return this._lastRunAt}get nextRunAt(){return this._nextRunAt}async initialize(){this._status="idle",this._nextRunAt=new Date(Date.now()+this.config.intervalMs)}async execute(e){let r=Date.now();this._status="running",this._lastRunAt=new Date,this._totalExecutions++;let n,t;for(let a=0;a<=this.config.retryCount;a++)try{if(e.signal.aborted)throw new Error("Worker execution aborted");t=await this.executeWithTimeout(()=>this.doExecute(e),this.config.timeoutMs,e.signal);break}catch(u){n=y(u),e.logger.warn(`Worker ${this.config.id} attempt ${a+1} failed: ${n.message}`),a<this.config.retryCount&&await this.delay(this.config.retryDelayMs)}let o=Date.now()-r;return t?(this._successfulExecutions++,this._lastResult=t):(this._failedExecutions++,t=this.createErrorResult(n,o),this._lastResult=t),this._executionDurations.push(o),this._executionDurations.length>100&&this._executionDurations.shift(),this._recentResults.push({timestamp:new Date,success:t.success,durationMs:o}),this._recentResults.length>5&&this._recentResults.shift(),this._nextRunAt=new Date(Date.now()+this.config.intervalMs),this._status=t.success?"idle":"error",await e.eventBus.publish({type:"worker.executed",workerId:this.config.id,timestamp:new Date,payload:{success:t.success,durationMs:o,findingsCount:t.findings.length,healthScore:t.metrics.healthScore}}),t}pause(){this._status!=="stopped"&&(this._status="paused")}resume(){this._status==="paused"&&(this._status="idle")}async stop(){this._status="stopped"}getHealth(){let e=this._executionDurations.length>0?this._executionDurations.reduce((n,t)=>n+t,0)/this._executionDurations.length:0,r=this._totalExecutions>0?this._successfulExecutions/this._totalExecutions:1;return{status:this._status,healthScore:Math.round(r*100),totalExecutions:this._totalExecutions,successfulExecutions:this._successfulExecutions,failedExecutions:this._failedExecutions,avgDurationMs:Math.round(e),recentResults:[...this._recentResults]}}async executeWithTimeout(e,r,n){return new Promise((t,o)=>{let a=setTimeout(()=>{o(new Error(`Worker execution timed out after ${r}ms`))},r),u=()=>{clearTimeout(a),o(new Error("Worker execution aborted"))};n.addEventListener("abort",u,{once:!0}),e().then(c=>{clearTimeout(a),n.removeEventListener("abort",u),t(c)}).catch(c=>{clearTimeout(a),n.removeEventListener("abort",u),o(c)})})}createErrorResult(e,r){return{workerId:this.config.id,timestamp:new Date,durationMs:r,success:!1,error:e.message,metrics:{itemsAnalyzed:0,issuesFound:0,healthScore:0,trend:"degrading",domainMetrics:{}},findings:[],recommendations:[]}}createResult(e,r,n,t){return{workerId:this.config.id,timestamp:new Date,durationMs:e,success:!0,metrics:r,findings:n,recommendations:t}}delay(e){return new Promise(r=>setTimeout(r,e))}generateId(){return`${Date.now()}-${M().slice(0,9)}`}};P();R();var W={id:"heartbeat-scheduler",name:"Heartbeat Scheduler",description:"Token-free maintenance: pattern promotion, stale detection, experience buffer monitoring",intervalMs:1800*1e3,priority:"normal",targetDomains:["learning-optimization"],enabled:!0,timeoutMs:6e4,retryCount:1,retryDelayMs:5e3},b=class extends p{lifecycleManager=null;dailyLogger;lastRunTimestamp=0;constructor(){super(W),this.dailyLogger=new k}async getLifecycleManager(){if(this.lifecycleManager)return this.lifecycleManager;try{let e=g();await e.initialize();let r=e.getDatabase();return this.lifecycleManager=v(r,{promotionRewardThreshold:.7,promotionMinOccurrences:2,promotionMinSuccessRate:.7,deprecationFailureThreshold:3,staleDaysThreshold:30,confidenceDecayRate:.01,minActiveConfidence:.3}),this.lifecycleManager}catch{return null}}getPendingExperienceCount(){try{return g().getDatabase().prepare("SELECT COUNT(*) as pending FROM qe_pattern_usage WHERE created_at > datetime('now', '-1 day')").get()?.pending??0}catch{return 0}}async doExecute(e){let r=Date.now();e.logger.info("Heartbeat scheduler running (token-free maintenance)");let n=[],t=[],o=await this.getLifecycleManager();if(!o)return e.logger.warn("Unified memory unavailable \u2014 returning zero-metric heartbeat"),this.createResult(Date.now()-r,{itemsAnalyzed:0,issuesFound:0,healthScore:50,trend:"stable",domainMetrics:{promoted:0,deprecated:0,decayed:0,stalePatterns:0,pendingExperiences:0,avgConfidence:0,avgSuccessRate:0}},[],[]);let a=0,u=0;try{let s=o.promoteEligiblePatterns();a=s.promoted,u=s.checked,a>0&&n.push({type:"heartbeat-promotion",severity:"info",domain:"learning-optimization",title:"Patterns Promoted",description:`${a} of ${u} short-term patterns promoted to long-term`})}catch(s){e.logger.warn("Pattern promotion failed",{error:d(s)})}let c=0,h=0;try{let s=o.deprecateStalePatterns();c=s.deprecated,h=s.checked,c>0&&n.push({type:"heartbeat-deprecation",severity:"low",domain:"learning-optimization",title:"Stale Patterns Deprecated",description:`${c} of ${h} patterns deprecated (stale, failed, or low confidence)`})}catch(s){e.logger.warn("Stale pattern detection failed",{error:d(s)})}let l=0;try{let s=this.lastRunTimestamp>0?(Date.now()-this.lastRunTimestamp)/864e5:1;l=o.applyConfidenceDecay(Math.min(s,7)).decayed}catch(s){e.logger.warn("Confidence decay failed",{error:d(s)})}let m=this.getPendingExperienceCount(),i={totalPatterns:0,activePatterns:0,deprecatedPatterns:0,promotedPatterns:0,shortTermPatterns:0,longTermPatterns:0,avgConfidence:0,avgSuccessRate:0,patternsNearDeprecation:0};try{i=o.getStats()}catch(s){e.logger.warn("Stats retrieval failed",{error:d(s)})}try{this.dailyLogger.log({timestamp:new Date,type:"pattern-promoted",summary:`Heartbeat: ${a} promoted, ${c} deprecated, ${l} decayed, ${m} pending exp, ${i.activePatterns} active patterns (avg conf: ${i.avgConfidence.toFixed(2)})`,details:{promoted:a,deprecated:c,decayed:l,pendingExperiences:m,totalPatterns:i.totalPatterns,activePatterns:i.activePatterns,avgConfidence:i.avgConfidence,avgSuccessRate:i.avgSuccessRate}}),this.dailyLogger.flush()}catch(s){e.logger.warn("Daily log write failed",{error:d(s)})}this.lastRunTimestamp=Date.now(),i.activePatterns>0&&i.patternsNearDeprecation/i.activePatterns>.5&&t.push({priority:"p2",domain:"learning-optimization",action:"Review At-Risk Patterns",description:`${i.patternsNearDeprecation} of ${i.activePatterns} active patterns are near deprecation. Manual review recommended.`,estimatedImpact:"medium",effort:"low",autoFixable:!1});let f=this.calculateHealthScore(i,a,c),D=this.determineTrend(a,c,i.activePatterns),_=Math.max(u,h),x=a+c+i.patternsNearDeprecation;return e.logger.info("Heartbeat complete",{promoted:a,deprecated:c,decayed:l,pendingExperiences:m,healthScore:f}),this.createResult(Date.now()-r,{itemsAnalyzed:_,issuesFound:x,healthScore:f,trend:D,domainMetrics:{promoted:a,deprecated:c,decayed:l,stalePatterns:i.patternsNearDeprecation,pendingExperiences:m,avgConfidence:Number(i.avgConfidence.toFixed(3)),avgSuccessRate:Number(i.avgSuccessRate.toFixed(3))}},n,t)}calculateHealthScore(e,r,n){let t=70;if(t+=Math.min(15,r*5),e.avgConfidence>0&&(t+=Math.round((e.avgConfidence-.5)*30)),e.activePatterns>0){let o=n/e.activePatterns;t-=Math.round(o*20)}return e.activePatterns>0&&e.patternsNearDeprecation/e.activePatterns>.5&&(t-=10),Math.max(0,Math.min(100,Math.round(t)))}determineTrend(e,r,n){return n===0?"stable":e>r?"improving":r>e&&r/n>.1?"degrading":"stable"}};export{b as HeartbeatSchedulerWorker};
@@ -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.9.25");process.exit(0)}
2
+ import{a,c as b}from"./chunk-4FRRDVWH.js";import"./chunk-AFQNJJWA.js";import"./chunk-4ASWQOFE.js";import"./chunk-3OPXTQMB.js";b();export{a as HnswAdapter};
@@ -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.9.25");process.exit(0)}
2
+ import{a,b,c,d}from"./chunk-KAVN56IT.js";import"./chunk-EOZIQTHG.js";import"./chunk-P5ZV4RCF.js";import"./chunk-LTWNVZDR.js";import"./chunk-4FRRDVWH.js";import"./chunk-AFQNJJWA.js";import"./chunk-4ASWQOFE.js";import"./chunk-3OPXTQMB.js";export{a as DEFAULT_HNSW_CONFIG,b as HNSWIndex,d as benchmarkHNSW,c as createHNSWIndex};
@@ -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.9.24");process.exit(0)}
2
- import"./chunk-4LA24G33.js";var s=class{adapter;metadataMap=new Map;insertCount=0;constructor(e){this.adapter=e}async initialize(){}async insert(e,t,r){this.adapter.addByStringId(e,t),this.insertCount++,r&&this.metadataMap.set(e,r)}async search(e,t){return this.adapter.searchByArray(e,t).map(a=>({key:a.id,score:a.score,distance:1-a.score,metadata:this.metadataMap.get(a.id)}))}async batchInsert(e){for(let t of e)await this.insert(t.key,t.vector,t.metadata)}async delete(e){let t=this.adapter.removeByStringId(e);return t&&this.metadataMap.delete(e),t}async getStats(){return{nativeHNSW:!0,backendType:"ruvector-gnn",vectorCount:this.adapter.size(),indexSizeBytes:this.adapter.size()*this.adapter.dimensions()*4,avgSearchLatencyMs:this.adapter.lastSearchLatencyMs,p95SearchLatencyMs:0,p99SearchLatencyMs:0,searchOperations:0,insertOperations:this.insertCount}}async clear(){this.adapter.clear(),this.metadataMap.clear(),this.insertCount=0}isNativeAvailable(){return!0}};export{s as HnswLegacyBridge};
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.9.25");process.exit(0)}
2
+ import"./chunk-3OPXTQMB.js";var s=class{adapter;metadataMap=new Map;insertCount=0;constructor(e){this.adapter=e}async initialize(){}async insert(e,t,r){this.adapter.addByStringId(e,t),this.insertCount++,r&&this.metadataMap.set(e,r)}async search(e,t){return this.adapter.searchByArray(e,t).map(a=>({key:a.id,score:a.score,distance:1-a.score,metadata:this.metadataMap.get(a.id)}))}async batchInsert(e){for(let t of e)await this.insert(t.key,t.vector,t.metadata)}async delete(e){let t=this.adapter.removeByStringId(e);return t&&this.metadataMap.delete(e),t}async getStats(){return{nativeHNSW:!0,backendType:"ruvector-gnn",vectorCount:this.adapter.size(),indexSizeBytes:this.adapter.size()*this.adapter.dimensions()*4,avgSearchLatencyMs:this.adapter.lastSearchLatencyMs,p95SearchLatencyMs:0,p99SearchLatencyMs:0,searchOperations:0,insertOperations:this.insertCount}}async clear(){this.adapter.clear(),this.metadataMap.clear(),this.insertCount=0}isNativeAvailable(){return!0}};export{s as HnswLegacyBridge};
@@ -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.9.24");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q as p}from"./chunk-HYX3LWLA.js";import"./chunk-4LA24G33.js";p();export{i as DotProductAttention,h as FlashAttention,k as HyperbolicAttention,l as LinearAttention,m as MoEAttention,j as MultiHeadAttention,b as RuvectorLayer,n as SonaEngine,c as TensorCompress,a as default,d as differentiableSearch,f as getCompressionLevel,e as hierarchicalForward,g as init,o as pipeline};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.25");process.exit(0)}
2
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q as p}from"./chunk-7QILWWRD.js";import"./chunk-3OPXTQMB.js";p();export{i as DotProductAttention,h as FlashAttention,k as HyperbolicAttention,l as LinearAttention,m as MoEAttention,j as MultiHeadAttention,b as RuvectorLayer,n as SonaEngine,c as TensorCompress,a as default,d as differentiableSearch,f as getCompressionLevel,e as hierarchicalForward,g as init,o as pipeline};
@@ -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.9.24");process.exit(0)}
3
- import{a as R,b as te,c as ne}from"./chunk-JYMDWMEJ.js";import{a as oe,b as se}from"./chunk-TUY3BOQM.js";import{g as J}from"./chunk-PU3MT7SE.js";import"./chunk-SNTRKHVH.js";import"./chunk-BDGKN7GC.js";import"./chunk-TS5YIHJH.js";import"./chunk-KQRJXVMO.js";import"./chunk-FPBCG7CX.js";import"./chunk-WGEX22Z4.js";import{a as ee}from"./chunk-L7EDWT5P.js";import"./chunk-ZJNZ5SDG.js";import"./chunk-F4GZAQR2.js";import"./chunk-INPP5RW4.js";import{f as T,k as F,o as C}from"./chunk-3NZ7IVRI.js";import"./chunk-U6V6R2EF.js";import"./chunk-DWNKD2AQ.js";import"./chunk-RGOJFKIY.js";import{b as X,d as Ee}from"./chunk-EAC3PZGH.js";import"./chunk-CTSTHKH4.js";import"./chunk-73JTRGIQ.js";import"./chunk-3ZNIACXR.js";import"./chunk-WB3GQ7X7.js";import"./chunk-HYX3LWLA.js";import"./chunk-AJ45BRKK.js";import"./chunk-BWCSNSXR.js";import"./chunk-O3ADCWEC.js";import"./chunk-HQY2BNJT.js";import"./chunk-4AUGLQOE.js";import"./chunk-HGOTTQQK.js";import"./chunk-7ODDJI3P.js";import"./chunk-4LA24G33.js";import{Command as Me}from"commander";import P from"chalk";import ce from"node:path";C();import{randomUUID as q}from"crypto";import O from"chalk";var I="dream-scheduler:hook-state",re=36e5,ae=20,ie=3e5;async function G(n){try{let e=await n.get(I);if(!e)return{triggered:!1,reason:"no-state"};let t=Date.now(),o=e.lastDreamTime?new Date(e.lastDreamTime).getTime():0,s=t-o;if(s<ie)return{triggered:!1,reason:"too-soon"};let r=s>=re,a=e.experienceCount>=ae;if(!r&&!a)return{triggered:!1,reason:"conditions-not-met"};let c=r?"time-interval":"experience-threshold";console.log(O.dim(`[hooks] Dream trigger: ${c} (${e.experienceCount} experiences, ${Math.round(s/6e4)}min since last dream)`));let{createDreamEngine:i}=await import("./dream-LLY2GYI7.js"),{createQEReasoningBank:E}=await import("./qe-reasoning-bank-FYUB2RJT.js"),d=i({maxDurationMs:1e4,minConceptsRequired:3});await d.initialize();let p=E(n,void 0,{enableLearning:!0,enableGuidance:!1,enableRouting:!1,embeddingDimension:384,useONNXEmbeddings:!0});await p.initialize();let m=await p.searchPatterns("",{limit:100,minConfidence:.3});if(m.success&&m.value.length>0){let f=m.value.map(u=>({id:u.pattern.id,name:u.pattern.name,description:u.pattern.description||`${u.pattern.patternType} pattern`,domain:u.pattern.qeDomain||"learning-optimization",patternType:u.pattern.patternType,confidence:u.pattern.confidence,successRate:u.pattern.successRate||.5}));await d.loadPatternsAsConcepts(f)}let l=await d.dream(1e4);return e.lastDreamTime=new Date().toISOString(),e.experienceCount=0,e.totalDreamsThisSession++,await n.set(I,e),await d.close(),{triggered:!0,reason:c,insightsGenerated:l.insights.length}}catch(e){return console.error(O.dim(`[hooks] Dream trigger failed: ${e instanceof Error?e.message:"unknown"}`)),{triggered:!1,reason:"error"}}}async function x(n){try{let e=await n.get(I);return e||(e={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0}),e.experienceCount++,await n.set(I,e),e.experienceCount}catch{return 0}}async function j(n){try{let{getUnifiedMemory:e}=await import("./unified-memory-WPVYK4Q5.js"),t=e();t.isInitialized()||await t.initialize();let{initializeExperienceCapture:o}=await import("./experience-capture-middleware-MZ4VBCGB.js");await o();let s=t.getDatabase();try{s.pragma("busy_timeout = 60000")}catch{}let r=`cli-${Date.now()}-${q().slice(0,8)}`,a=n.durationMs||0,c;if(n.success){let i=a>0&&a<5e3?.1:0,E=n.source.includes("post-task")?.1:n.source.includes("post-edit")?.05:0;c=Math.min(.95,.7+i+E)}else{let i=n.source.includes("post-task")?.15:n.source.includes("post-edit")?.1:0;c=Math.min(.6,.3+i)}s.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.9.25");process.exit(0)}
3
+ import{a as D,b as te,c as ne}from"./chunk-W2OPF27P.js";import{a as oe,b as se}from"./chunk-XC34CWA3.js";import{g as J}from"./chunk-2ACE3T6H.js";import"./chunk-2ZN6YGSA.js";import"./chunk-NURG5LQO.js";import"./chunk-TCRBP7GO.js";import"./chunk-ZGGHGWXF.js";import"./chunk-XXG6OQSR.js";import"./chunk-W7ULVE22.js";import{a as ee}from"./chunk-PFH2G7AP.js";import"./chunk-VRNRR3VU.js";import"./chunk-LFD3YTNY.js";import"./chunk-DNIU6W6Z.js";import{f as R,k as q,o as L}from"./chunk-7G2UJMKQ.js";import"./chunk-AQXKM5VB.js";import"./chunk-EOZIQTHG.js";import"./chunk-P5ZV4RCF.js";import{b as X,d as Ee}from"./chunk-5XCHNZNW.js";import"./chunk-VZVHYH7B.js";import"./chunk-SKRQF45C.js";import"./chunk-IV4OBL4P.js";import"./chunk-R7VO6E3E.js";import"./chunk-THQNIMJU.js";import"./chunk-W5RRYCQ7.js";import"./chunk-LTWNVZDR.js";import"./chunk-ML7AEOPI.js";import"./chunk-SDOG2MMY.js";import"./chunk-4FRRDVWH.js";import"./chunk-AFQNJJWA.js";import"./chunk-4ASWQOFE.js";import"./chunk-3OPXTQMB.js";import{Command as je}from"commander";import N from"chalk";import ce from"node:path";L();import{randomUUID as j}from"crypto";import O from"chalk";var I="dream-scheduler:hook-state",re=36e5,ae=20,ie=3e5;async function G(n){try{let e=await n.get(I);if(!e)return{triggered:!1,reason:"no-state"};let t=Date.now(),o=e.lastDreamTime?new Date(e.lastDreamTime).getTime():0,s=t-o;if(s<ie)return{triggered:!1,reason:"too-soon"};let r=s>=re,a=e.experienceCount>=ae;if(!r&&!a)return{triggered:!1,reason:"conditions-not-met"};let c=r?"time-interval":"experience-threshold";console.log(O.dim(`[hooks] Dream trigger: ${c} (${e.experienceCount} experiences, ${Math.round(s/6e4)}min since last dream)`));let{createDreamEngine:i}=await import("./dream-SSRYUA2N.js"),{createQEReasoningBank:E}=await import("./qe-reasoning-bank-6KBZMXKR.js"),d=i({maxDurationMs:1e4,minConceptsRequired:3});await d.initialize();let p=E(n,void 0,{enableLearning:!0,enableGuidance:!1,enableRouting:!1,embeddingDimension:384,useONNXEmbeddings:!0});await p.initialize();let m=await p.searchPatterns("",{limit:100,minConfidence:.3});if(m.success&&m.value.length>0){let k=m.value.map(u=>({id:u.pattern.id,name:u.pattern.name,description:u.pattern.description||`${u.pattern.patternType} pattern`,domain:u.pattern.qeDomain||"learning-optimization",patternType:u.pattern.patternType,confidence:u.pattern.confidence,successRate:u.pattern.successRate||.5}));await d.loadPatternsAsConcepts(k)}let l=await d.dream(1e4);return e.lastDreamTime=new Date().toISOString(),e.experienceCount=0,e.totalDreamsThisSession++,await n.set(I,e),await d.close(),{triggered:!0,reason:c,insightsGenerated:l.insights.length}}catch(e){return console.error(O.dim(`[hooks] Dream trigger failed: ${e instanceof Error?e.message:"unknown"}`)),{triggered:!1,reason:"error"}}}async function x(n){try{let e=await n.get(I);return e||(e={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0}),e.experienceCount++,await n.set(I,e),e.experienceCount}catch{return 0}}async function B(n){try{let{getUnifiedMemory:e}=await import("./unified-memory-JVMA5MJR.js"),t=e();t.isInitialized()||await t.initialize();let{initializeExperienceCapture:o}=await import("./experience-capture-middleware-HXLGMWLK.js");await o();let s=t.getDatabase();try{s.pragma("busy_timeout = 60000")}catch{}let r=`cli-${Date.now()}-${j().slice(0,8)}`,a=n.durationMs||0,c;if(n.success){let i=a>0&&a<5e3?.1:0,E=n.source.includes("post-task")?.1:n.source.includes("post-edit")?.05:0;c=Math.min(.95,.7+i+E)}else{let i=n.source.includes("post-task")?.15:n.source.includes("post-edit")?.1:0;c=Math.min(.6,.3+i)}s.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(r,n.task.slice(0,500),n.agent,n.domain,n.success?1:0,c,a,n.source),(async()=>{try{let{computeRealEmbedding:i}=await import("./real-embeddings-EH4WUKDJ.js"),E=`${n.domain}: ${n.task}`.slice(0,512),d=await i(E);s.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(d).buffer),d.length,r)}catch{}})()}catch(e){console.error(O.dim(`[hooks] persistCommandExperience: ${e instanceof Error?e.message:"unknown"}`))}}async function V(n){let{getUnifiedMemory:e}=await import("./unified-memory-WPVYK4Q5.js"),t=e();t.isInitialized()||await t.initialize();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}let s=`exp-${Date.now()}-${q().slice(0,8)}`,r=`${n.agent}:${n.taskId}`,a=n.durationMs??0,c=n.success?1:0,i=a<100?1:a<500?.8:a<2e3?.6:a<5e3?.4:a<1e4?.2:.1,E=.25*c+.325+.1*i,d=null,p=0,m=0,l=o.transaction(()=>{o.prepare(`
8
+ `).run(r,n.task.slice(0,500),n.agent,n.domain,n.success?1:0,c,a,n.source),(async()=>{try{let{computeRealEmbedding:i}=await import("./real-embeddings-2KWJAO6Y.js"),E=`${n.domain}: ${n.task}`.slice(0,512),d=await i(E);s.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(d).buffer),d.length,r)}catch{}})()}catch(e){console.error(O.dim(`[hooks] persistCommandExperience: ${e instanceof Error?e.message:"unknown"}`))}}async function V(n){let{getUnifiedMemory:e}=await import("./unified-memory-JVMA5MJR.js"),t=e();t.isInitialized()||await t.initialize();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}let s=`exp-${Date.now()}-${j().slice(0,8)}`,r=`${n.agent}:${n.taskId}`,a=n.durationMs??0,c=n.success?1:0,i=a<100?1:a<500?.8:a<2e3?.6:a<5e3?.4:a<1e4?.2:.1,E=.25*c+.325+.1*i,d=null,p=0,m=0,l=o.transaction(()=>{o.prepare(`
9
9
  INSERT INTO captured_experiences
10
10
  (id, task, agent, domain, success, quality, duration_ms,
11
11
  model_tier, started_at, completed_at, source)
@@ -14,7 +14,7 @@ import{a as R,b as te,c as ne}from"./chunk-JYMDWMEJ.js";import{a as oe,b as se}f
14
14
  INSERT INTO experience_applications
15
15
  (id, experience_id, task, success, tokens_saved, feedback, applied_at)
16
16
  VALUES (?, ?, ?, ?, ?, ?, datetime('now'))
17
- `).run(`app-${Date.now()}-${q().slice(0,8)}`,s,r,n.success?1:0,0,`[Patch 060] post-task outcome: ${n.success?"success":"failure"}`);try{let u=o.prepare(`
17
+ `).run(`app-${Date.now()}-${j().slice(0,8)}`,s,r,n.success?1:0,0,`[Patch 060] post-task outcome: ${n.success?"success":"failure"}`);try{let u=o.prepare(`
18
18
  SELECT key, value FROM kv_store
19
19
  WHERE namespace = 'task-bridge'
20
20
  AND (expires_at IS NULL OR expires_at > strftime('%s','now') * 1000)
@@ -35,17 +35,17 @@ import{a as R,b as te,c as ne}from"./chunk-JYMDWMEJ.js";import{a as oe,b as se}f
35
35
  last_used_at = datetime('now'),
36
36
  updated_at = datetime('now')
37
37
  WHERE id = ?
38
- `),Q=o.prepare("SELECT confidence FROM qe_patterns WHERE id = ?");for(let w of d.selectedPatternIds){A.run(`app-${Date.now()}-${q().slice(0,8)}`,s,`${r}:pattern:${w}`,n.success?1:0,S,`[Patch 160+300] task-bridge pattern_id=${w} ts=${S}`);try{let U=Q.get(w);if(U){let W=n.success?1:0;M.run(W,W,U.confidence,W,w)}}catch{}}u&&o.prepare("DELETE FROM kv_store WHERE namespace='task-bridge' AND key = ?").run(u.key)}}catch(u){console.error(O.dim(`[hooks] post-task bridge: ${u instanceof Error?u.message:"unknown"}`))}let f=`traj-${Date.now()}-${q().slice(0,8)}`;o.prepare(`
38
+ `),Q=o.prepare("SELECT confidence FROM qe_patterns WHERE id = ?");for(let w of d.selectedPatternIds){A.run(`app-${Date.now()}-${j().slice(0,8)}`,s,`${r}:pattern:${w}`,n.success?1:0,S,`[Patch 160+300] task-bridge pattern_id=${w} ts=${S}`);try{let z=Q.get(w);if(z){let W=n.success?1:0;M.run(W,W,z.confidence,W,w)}}catch{}}u&&o.prepare("DELETE FROM kv_store WHERE namespace='task-bridge' AND key = ?").run(u.key)}}catch(u){console.error(O.dim(`[hooks] post-task bridge: ${u instanceof Error?u.message:"unknown"}`))}let k=`traj-${Date.now()}-${j().slice(0,8)}`;o.prepare(`
39
39
  INSERT INTO qe_trajectories (id, task, agent, domain, started_at, ended_at, success, steps_json)
40
40
  VALUES (?, ?, ?, ?, datetime('now'), datetime('now'), ?, ?)
41
- `).run(f,r,n.agent,n.domain??"general",n.success?1:0,JSON.stringify([{step:1,task:n.taskId,success:n.success}]));try{let u=o.prepare(`
41
+ `).run(k,r,n.agent,n.domain??"general",n.success?1:0,JSON.stringify([{step:1,task:n.taskId,success:n.success}]));try{let u=o.prepare(`
42
42
  SELECT id, task, agent, success, started_at, completed_at
43
43
  FROM captured_experiences
44
44
  WHERE consolidated_into IS NULL
45
45
  AND task LIKE ?
46
46
  AND started_at > datetime('now', '-1 hour')
47
47
  ORDER BY started_at ASC
48
- `).all(`%:${n.taskId}`);if(u.length>=2){let S=`traj-multi-${Date.now()}-${q().slice(0,8)}`,A=JSON.stringify(u.map((w,U)=>({step:U+1,task:w.task,agent:w.agent,success:!!w.success,started_at:w.started_at,completed_at:w.completed_at}))),M=u.every(w=>!!w.success);o.prepare(`
48
+ `).all(`%:${n.taskId}`);if(u.length>=2){let S=`traj-multi-${Date.now()}-${j().slice(0,8)}`,A=JSON.stringify(u.map((w,z)=>({step:z+1,task:w.task,agent:w.agent,success:!!w.success,started_at:w.started_at,completed_at:w.completed_at}))),M=u.every(w=>!!w.success);o.prepare(`
49
49
  INSERT INTO qe_trajectories (id, task, agent, domain, started_at, ended_at, success, steps_json)
50
50
  VALUES (?, ?, ?, ?, ?, ?, ?, ?)
51
51
  `).run(S,`multi:${n.taskId}`,n.agent,n.domain??"general",u[0].started_at,u[u.length-1].completed_at,M?1:0,A);let Q=u.map(()=>"?").join(",");o.prepare(`UPDATE captured_experiences SET consolidated_into = ? WHERE id IN (${Q})`).run(S,...u.map(w=>w.id)),p=u.length}}catch(u){console.error(O.dim(`[hooks] post-task stitch: ${u instanceof Error?u.message:"unknown"}`))}if(n.success)try{m=o.prepare(`
@@ -57,11 +57,11 @@ import{a as R,b as te,c as ne}from"./chunk-JYMDWMEJ.js";import{a as oe,b as se}f
57
57
  ORDER BY created_at DESC
58
58
  LIMIT 3
59
59
  )
60
- `).run().changes??0}catch{}});try{l()}catch(f){console.error(O.dim(`[hooks] persistTaskOutcome txn: ${f instanceof Error?f.message:"unknown"}`))}return(async()=>{try{let{computeRealEmbedding:f}=await import("./real-embeddings-EH4WUKDJ.js"),u=`${n.domain??"general"}: ${r}`.slice(0,512),S=await f(u);o.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(S).buffer),S.length,s)}catch{}})(),{experienceId:s,qualityScore:E,bridge:d,stitchedSiblings:p,insightsApplied:m}}async function K(n){try{let{getUnifiedMemory:e}=await import("./unified-memory-WPVYK4Q5.js"),t=e();t.isInitialized()||await t.initialize();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}let s=`${n.taskType}|${n.priority}|${n.domain||"any"}|${n.complexityBucket}`,r=n.agent,a=`q-learning:aqe-hook-router:${s}:${r}`,c=n.success?.1:-1,i=.1,E=.9,d=o.prepare(`
60
+ `).run().changes??0}catch{}});try{l()}catch(k){console.error(O.dim(`[hooks] persistTaskOutcome txn: ${k instanceof Error?k.message:"unknown"}`))}return(async()=>{try{let{computeRealEmbedding:k}=await import("./real-embeddings-2KWJAO6Y.js"),u=`${n.domain??"general"}: ${r}`.slice(0,512),S=await k(u);o.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(S).buffer),S.length,s)}catch{}})(),{experienceId:s,qualityScore:E,bridge:d,stitchedSiblings:p,insightsApplied:m}}async function K(n){try{let{getUnifiedMemory:e}=await import("./unified-memory-JVMA5MJR.js"),t=e();t.isInitialized()||await t.initialize();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}let s=`${n.taskType}|${n.priority}|${n.domain||"any"}|${n.complexityBucket}`,r=n.agent,a=`q-learning:aqe-hook-router:${s}:${r}`,c=n.success?.1:-1,i=.1,E=.9,d=o.prepare(`
61
61
  SELECT q_value FROM rl_q_values WHERE id = ?
62
62
  `).get(a),p=d&&typeof d.q_value=="number"?d.q_value:0,m=o.prepare(`
63
63
  SELECT MAX(q_value) AS m FROM rl_q_values WHERE state_key = ?
64
- `).get(s),l=m&&typeof m.m=="number"?m.m:0,f=p+i*(c+E*l-p);o.prepare(`
64
+ `).get(s),l=m&&typeof m.m=="number"?m.m:0,k=p+i*(c+E*l-p);o.prepare(`
65
65
  INSERT INTO rl_q_values
66
66
  (id, algorithm, agent_id, state_key, action_key, q_value, visits, last_reward, domain, created_at, updated_at)
67
67
  VALUES (?, 'q-learning', 'aqe-hook-router', ?, ?, ?, 1, ?, ?, datetime('now'), datetime('now'))
@@ -70,17 +70,18 @@ import{a as R,b as te,c as ne}from"./chunk-JYMDWMEJ.js";import{a as oe,b as se}f
70
70
  visits = visits + 1,
71
71
  last_reward = excluded.last_reward,
72
72
  updated_at = datetime('now')
73
- `).run(a,s,r,f,c,n.domain||"any")}catch(e){console.error(O.dim(`[hooks] q-learning update: ${e instanceof Error?e.message:"unknown"}`))}}async function Y(n){try{let{getUnifiedMemory:e}=await import("./unified-memory-WPVYK4Q5.js"),t=e();t.isInitialized()||await t.initialize();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}o.prepare(`
73
+ `).run(a,s,r,k,c,n.domain||"any")}catch(e){console.error(O.dim(`[hooks] q-learning update: ${e instanceof Error?e.message:"unknown"}`))}}async function Y(n){try{let{getUnifiedMemory:e}=await import("./unified-memory-JVMA5MJR.js"),t=e();t.isInitialized()||await t.initialize();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}o.prepare(`
74
74
  UPDATE routing_outcomes
75
75
  SET success = ?, quality_score = ?, duration_ms = ?
76
76
  WHERE id IN (
77
77
  SELECT id FROM routing_outcomes
78
78
  WHERE quality_score = -1
79
+ AND task_json LIKE '%"taskId"%'
79
80
  AND created_at > datetime('now', '-30 minutes')
80
81
  ORDER BY (CASE WHEN used_agent = ? THEN 0 ELSE 1 END), created_at DESC
81
82
  LIMIT 1
82
83
  )
83
- `).run(n.success?1:0,n.qualityScore,n.durationMs,n.agent)}catch(e){console.error(O.dim(`[hooks] routing UPDATE: ${e instanceof Error?e.message:"unknown"}`))}}async function Z(){let{getUnifiedMemory:n}=await import("./unified-memory-WPVYK4Q5.js"),e=n();e.isInitialized()||await e.initialize();let t=e.getDatabase();try{t.pragma("busy_timeout = 60000")}catch{}let o=new Set(t.prepare("PRAGMA table_info(captured_experiences)").all().map(i=>i.name)),s=[["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,E]of s)o.has(i)||t.exec(`ALTER TABLE captured_experiences ADD COLUMN ${i} ${E}`);let r=t.prepare(`
84
+ `).run(n.success?1:0,n.qualityScore,n.durationMs,n.agent)}catch(e){console.error(O.dim(`[hooks] routing UPDATE: ${e instanceof Error?e.message:"unknown"}`))}}async function Z(){let{getUnifiedMemory:n}=await import("./unified-memory-JVMA5MJR.js"),e=n();e.isInitialized()||await e.initialize();let t=e.getDatabase();try{t.pragma("busy_timeout = 60000")}catch{}let o=new Set(t.prepare("PRAGMA table_info(captured_experiences)").all().map(i=>i.name)),s=[["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,E]of s)o.has(i)||t.exec(`ALTER TABLE captured_experiences ADD COLUMN ${i} ${E}`);let r=t.prepare(`
84
85
  SELECT
85
86
  domain,
86
87
  agent,
@@ -97,7 +98,7 @@ import{a as R,b as te,c as ne}from"./chunk-JYMDWMEJ.js";import{a as oe,b as se}f
97
98
  HAVING cnt >= 3 AND avg_quality >= 0.5 AND success_rate >= 0.6
98
99
  ORDER BY avg_quality DESC
99
100
  LIMIT 50
100
- `).all();if(r.length===0)return 0;let{v4:a}=await import("./dist-node-33BRM2EM.js"),c=0;for(let i of r)try{let E=new Date().toISOString().slice(0,7),d=`${i.agent}-${i.domain}-${E}`,p=t.prepare(`
101
+ `).all();if(r.length===0)return 0;let{v4:a}=await import("./dist-node-RGD4BMAQ.js"),c=0;for(let i of r)try{let E=new Date().toISOString().slice(0,7),d=`${i.agent}-${i.domain}-${E}`,p=t.prepare(`
101
102
  SELECT id FROM qe_patterns
102
103
  WHERE qe_domain = ? AND name = ?
103
104
  LIMIT 1
@@ -109,44 +110,54 @@ import{a as R,b as te,c as ne}from"./chunk-JYMDWMEJ.js";import{a as oe,b as se}f
109
110
  quality_score = MIN(0.99, quality_score + 0.005),
110
111
  updated_at = datetime('now')
111
112
  WHERE id = ?
112
- `).run(i.cnt,i.successes,p.id);else{let m=a(),l=Math.min(.95,i.avg_quality*.8+i.success_rate*.2),f=l*.3+Math.min(i.cnt,100)/100*.2+i.success_rate*.5,u=`Auto-consolidated from ${i.cnt} experiences. Agent: ${i.agent}, success rate: ${(i.success_rate*100).toFixed(0)}%`,S=(i.sources||"").split(",").filter(Boolean);t.prepare(`
113
+ `).run(i.cnt,i.successes,p.id);else{let m=a(),l=Math.min(.95,i.avg_quality*.8+i.success_rate*.2),k=l*.3+Math.min(i.cnt,100)/100*.2+i.success_rate*.5,u=`Auto-consolidated from ${i.cnt} experiences. Agent: ${i.agent}, success rate: ${(i.success_rate*100).toFixed(0)}%`,S=(i.sources||"").split(",").filter(Boolean);t.prepare(`
113
114
  INSERT INTO qe_patterns (
114
115
  id, pattern_type, qe_domain, domain, name, description,
115
116
  confidence, usage_count, success_rate, quality_score, tier,
116
117
  template_json, context_json, created_at, successful_uses
117
118
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), ?)
118
- `).run(m,"workflow",i.domain,i.domain,d,u,l,i.cnt,i.success_rate,f,"short-term",JSON.stringify({type:"workflow",content:`${i.agent} pattern for ${i.domain}`,variables:[]}),JSON.stringify({tags:S,sourceType:"session-consolidation",extractedAt:new Date().toISOString()}),i.successes);let{ensurePatternEmbedding:A}=await import("./embed-and-insert-pattern-XST4CYRL.js");await A(t,m,d,u,S),c++}t.prepare(`
119
+ `).run(m,"workflow",i.domain,i.domain,d,u,l,i.cnt,i.success_rate,k,"short-term",JSON.stringify({type:"workflow",content:`${i.agent} pattern for ${i.domain}`,variables:[]}),JSON.stringify({tags:S,sourceType:"session-consolidation",extractedAt:new Date().toISOString()}),i.successes);let{ensurePatternEmbedding:A}=await import("./embed-and-insert-pattern-Z4MA4ZST.js");await A(t,m,d,u,S),c++}t.prepare(`
119
120
  UPDATE captured_experiences
120
121
  SET application_count = application_count + 1
121
122
  WHERE domain = ? AND agent = ? AND application_count = 0
122
- `).run(i.domain,i.agent)}catch{}return c}var g={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function h(){if(g.initializationPromise&&await g.initializationPromise,g.initialized&&g.reasoningBank&&g.hookRegistry)return{reasoningBank:g.reasoningBank,hookRegistry:g.hookRegistry};if(g.initializationPromise=he(),await g.initializationPromise,g.initializationPromise=null,!g.reasoningBank||!g.hookRegistry)throw new Error("Failed to initialize hooks system");return{reasoningBank:g.reasoningBank,hookRegistry:g.hookRegistry}}async function he(){if(!g.initialized)try{let n=T(),e=ce.join(n,".agentic-qe"),t=await $(e);try{g.coherenceService=await oe(se),console.log(P.dim("[hooks] CoherenceService initialized with WASM engines"))}catch(a){console.log(P.dim(`[hooks] CoherenceService WASM unavailable, using fallback: ${a instanceof Error?a.message:"unknown"}`))}g.reasoningBank=J(t,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0},g.coherenceService??void 0);let o=1e4,s=g.reasoningBank.initialize(),r=new Promise((a,c)=>setTimeout(()=>c(new Error("ReasoningBank init timeout")),o));await Promise.race([s,r]);try{let{getSharedRvfDualWriter:a}=await import("./shared-rvf-dual-writer-W3KUF2Z5.js"),c=await a();c&&g.reasoningBank.setRvfDualWriter(c)}catch(a){process.env.DEBUG&&console.debug("[hooks] RVF wiring skipped:",a instanceof Error?a.message:a)}g.hookRegistry=ne(g.reasoningBank),g.initialized=!0,console.log(P.dim("[hooks] System initialized"))}catch(n){console.warn(P.yellow(`[hooks] Using fallback mode: ${n instanceof Error?n.message:"unknown error"}`));let e=Se();g.reasoningBank=J(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0}),g.hookRegistry=new te,g.hookRegistry.initialize(g.reasoningBank),g.initialized=!0}}function L(n){try{n.pragma("busy_timeout = 60000")}catch{}}async function $(n){let t=new ee({sqlite:{path:ce.join(n,"memory.db"),walMode:!0,poolSize:3,busyTimeout:6e4},enableFallback:!0,defaultNamespace:"qe-patterns"}),o=t.initialize(),s=new Promise((r,a)=>setTimeout(()=>a(new Error("Backend init timeout")),5e3));return await Promise.race([o,s]),t}function Se(){let n=new Map;return{initialize:async()=>{},dispose:async()=>{n.clear()},get:async e=>{let t=n.get(e);return t?t.value:void 0},set:async(e,t,o)=>{n.set(e,{value:t})},delete:async e=>n.delete(e),has:async e=>n.has(e),search:async(e,t)=>{let o=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),s=new RegExp(o.replace(/\*/g,".*"));return Array.from(n.keys()).filter(r=>s.test(r))},vectorSearch:async(e,t)=>[],storeVector:async(e,t,o)=>{},count:async e=>{let t=0,o=`${e}:`;for(let s of n.keys())s.startsWith(o)&&t++;return t},hasCodeIntelligenceIndex:async()=>{let e="code-intelligence:kg:";for(let t of n.keys())if(t.startsWith(e))return!0;return!1}}}function k(n){console.log(JSON.stringify(n,null,2))}function D(n){console.log(P.green("\u2713"),n)}function _(n){console.error(P.red("\u2717"),n)}function z(n){if(n.length===0){console.log(P.dim(" No specific guidance"));return}n.forEach((e,t)=>{console.log(P.cyan(` ${t+1}.`),e)})}import N from"chalk";import we from"node:path";C();function de(n){n.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 h(),s=(await t.emit(R.PreTestGeneration,{targetFile:e.file,testType:"unit",operation:e.operation}))[0]||{success:!0,guidance:[],routing:null};if(e.json){let r=s.guidance||[],c=[s.routing?.recommendedAgent?`Recommended agent: ${s.routing.recommendedAgent} (${(s.routing.confidence*100).toFixed(0)}% confidence).`:"",...r.map(i=>i)].filter(Boolean).join(" ");k({hookSpecificOutput:{hookEventName:"PreToolUse",additionalContext:c||void 0},file:e.file,operation:e.operation,patterns:s.routing?.patterns?.length||0})}else console.log(N.bold(`
123
- \u{1F4DD} Pre-Edit Analysis`)),console.log(N.dim(` File: ${e.file}`)),console.log(N.dim(` Operation: ${e.operation}`)),s.routing&&(console.log(N.bold(`
124
- \u{1F3AF} Recommended Agent:`),N.cyan(s.routing.recommendedAgent)),console.log(N.dim(` Confidence: ${(s.routing.confidence*100).toFixed(1)}%`))),console.log(N.bold(`
125
- \u{1F4A1} Guidance:`)),z(s.guidance||[]);return}catch(t){throw _(`pre-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.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 h(),o=e.success||!e.failure,s=e.file||"",r=s.split("/").pop()||"unknown",c=/\.(test|spec)\.(ts|js|tsx|jsx)$/.test(r)?"test-generation":"code-intelligence",i=e.patternId||`edit:${c}:${r}`,d=(await t.emit(R.PostTestGeneration,{targetFile:e.file,success:o,patternId:i,generatedTests:null,testCount:0}))[0]||{success:!0,patternsLearned:0};try{let{reasoningBank:m}=await h();await m.recordOutcome({patternId:i,success:o,metrics:{executionTimeMs:0},feedback:`Edit ${o?"succeeded":"failed"}: ${s}`})}catch{}try{await j({task:`edit: ${s}`,agent:"cli-hook",domain:c,success:o,source:"cli-hook-post-edit"})}catch{}let p=!1;try{let m=T(),l=we.join(m,".agentic-qe"),f=await $(l);await x(f)}catch{}e.json?k({success:!0,file:e.file,editSuccess:o,patternsLearned:d.patternsLearned||0,dreamTriggered:p}):(D(`Recorded edit outcome for ${e.file}`),d.patternsLearned&&console.log(N.green(` Patterns learned: ${d.patternsLearned}`)));return}catch(t){throw _(`post-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}})}C();import{randomUUID as _e}from"crypto";import v from"chalk";import be from"node:path";async function Te(n=500){return process.stdin.isTTY?"":new Promise(e=>{let t="",o=setTimeout(()=>{process.stdin.removeAllListeners(),process.stdin.pause(),e(t)},n);process.stdin.setEncoding("utf8"),process.stdin.on("data",s=>{t+=s}),process.stdin.on("end",()=>{clearTimeout(o),e(t)}),process.stdin.on("error",()=>{clearTimeout(o),e(t)}),process.stdin.resume()})}function Re(n){if(!n.trim())return"";let e;try{e=JSON.parse(n)}catch{return n.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 o of t)if(typeof o=="string"&&o.trim())return o;return""}function me(n){n.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 Te();t=Re(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:o}=await h(),s={task:t,domain:e.domain,capabilities:e.capabilities},r=await o.routeTask(s);if(!r.success)throw new Error(r.error.message);let a=r.value;e.json?k({recommendedAgent:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,domains:a.domains,patternCount:a.patterns.length,guidance:a.guidance,reasoning:a.reasoning}):(console.log(v.bold(`
126
- \u{1F3AF} Task Routing Result`)),console.log(v.dim(` Task: "${t}"`)),console.log(v.bold(`
127
- \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(`
128
- \u{1F504} Alternatives:`)),a.alternatives.forEach(c=>{console.log(v.dim(` - ${c.agent}: ${(c.score*100).toFixed(1)}%`))})),console.log(v.bold(`
129
- \u{1F4C2} Detected Domains:`),a.domains.join(", ")),console.log(v.bold(`
130
- \u{1F4A1} Guidance:`)),z(a.guidance),console.log(v.bold(`
131
- \u{1F4D6} Reasoning:`),v.dim(a.reasoning)));try{let{getUnifiedMemory:c}=await import("./unified-memory-WPVYK4Q5.js"),i=c();i.isInitialized()||await i.initialize();let E=i.getDatabase();L(E);let d=`route-${Date.now()}-${_e().slice(0,8)}`,p=a.confidence<.5;E.prepare(`
123
+ `).run(i.domain,i.agent)}catch{}return c}var g={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function h(){if(g.initializationPromise&&await g.initializationPromise,g.initialized&&g.reasoningBank&&g.hookRegistry)return{reasoningBank:g.reasoningBank,hookRegistry:g.hookRegistry};if(g.initializationPromise=he(),await g.initializationPromise,g.initializationPromise=null,!g.reasoningBank||!g.hookRegistry)throw new Error("Failed to initialize hooks system");return{reasoningBank:g.reasoningBank,hookRegistry:g.hookRegistry}}async function he(){if(!g.initialized)try{let n=R(),e=ce.join(n,".agentic-qe"),t=await v(e);try{g.coherenceService=await oe(se),console.log(N.dim("[hooks] CoherenceService initialized with WASM engines"))}catch(a){console.log(N.dim(`[hooks] CoherenceService WASM unavailable, using fallback: ${a instanceof Error?a.message:"unknown"}`))}g.reasoningBank=J(t,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0},g.coherenceService??void 0);let o=1e4,s=g.reasoningBank.initialize(),r=new Promise((a,c)=>setTimeout(()=>c(new Error("ReasoningBank init timeout")),o));await Promise.race([s,r]);try{let{getSharedRvfDualWriter:a}=await import("./shared-rvf-dual-writer-NFUIB2ZL.js"),c=await a();c&&g.reasoningBank.setRvfDualWriter(c)}catch(a){process.env.DEBUG&&console.debug("[hooks] RVF wiring skipped:",a instanceof Error?a.message:a)}g.hookRegistry=ne(g.reasoningBank),g.initialized=!0,console.log(N.dim("[hooks] System initialized"))}catch(n){console.warn(N.yellow(`[hooks] Using fallback mode: ${n instanceof Error?n.message:"unknown error"}`));let e=Se();g.reasoningBank=J(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0}),g.hookRegistry=new te,g.hookRegistry.initialize(g.reasoningBank),g.initialized=!0}}function C(n){try{n.pragma("busy_timeout = 60000")}catch{}}async function v(n){let t=new ee({sqlite:{path:ce.join(n,"memory.db"),walMode:!0,poolSize:3,busyTimeout:6e4},enableFallback:!0,defaultNamespace:"qe-patterns"}),o=t.initialize(),s=new Promise((r,a)=>setTimeout(()=>a(new Error("Backend init timeout")),5e3));return await Promise.race([o,s]),t}function Se(){let n=new Map;return{initialize:async()=>{},dispose:async()=>{n.clear()},get:async e=>{let t=n.get(e);return t?t.value:void 0},set:async(e,t,o)=>{n.set(e,{value:t})},delete:async e=>n.delete(e),has:async e=>n.has(e),search:async(e,t)=>{let o=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),s=new RegExp(o.replace(/\*/g,".*"));return Array.from(n.keys()).filter(r=>s.test(r))},vectorSearch:async(e,t)=>[],storeVector:async(e,t,o)=>{},count:async e=>{let t=0,o=`${e}:`;for(let s of n.keys())s.startsWith(o)&&t++;return t},hasCodeIntelligenceIndex:async()=>{let e="code-intelligence:kg:";for(let t of n.keys())if(t.startsWith(e))return!0;return!1}}}function f(n){console.log(JSON.stringify(n,null,2))}function $(n){console.log(N.green("\u2713"),n)}function _(n){console.error(N.red("\u2717"),n)}function F(n){if(n.length===0){console.log(N.dim(" No specific guidance"));return}n.forEach((e,t)=>{console.log(N.cyan(` ${t+1}.`),e)})}import P from"chalk";import we from"node:path";L();function de(n){n.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 h(),s=(await t.emit(D.PreTestGeneration,{targetFile:e.file,testType:"unit",operation:e.operation}))[0]||{success:!0,guidance:[],routing:null};if(e.json){let r=s.guidance||[],c=[s.routing?.recommendedAgent?`Recommended agent: ${s.routing.recommendedAgent} (${(s.routing.confidence*100).toFixed(0)}% confidence).`:"",...r.map(i=>i)].filter(Boolean).join(" ");f({hookSpecificOutput:{hookEventName:"PreToolUse",additionalContext:c||void 0},file:e.file,operation:e.operation,patterns:s.routing?.patterns?.length||0})}else console.log(P.bold(`
124
+ \u{1F4DD} Pre-Edit Analysis`)),console.log(P.dim(` File: ${e.file}`)),console.log(P.dim(` Operation: ${e.operation}`)),s.routing&&(console.log(P.bold(`
125
+ \u{1F3AF} Recommended Agent:`),P.cyan(s.routing.recommendedAgent)),console.log(P.dim(` Confidence: ${(s.routing.confidence*100).toFixed(1)}%`))),console.log(P.bold(`
126
+ \u{1F4A1} Guidance:`)),F(s.guidance||[]);return}catch(t){throw _(`pre-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.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 h(),o=e.success||!e.failure,s=e.file||"",r=s.split("/").pop()||"unknown",c=/\.(test|spec)\.(ts|js|tsx|jsx)$/.test(r)?"test-generation":"code-intelligence",i=e.patternId||`edit:${c}:${r}`,d=(await t.emit(D.PostTestGeneration,{targetFile:e.file,success:o,patternId:i,generatedTests:null,testCount:0}))[0]||{success:!0,patternsLearned:0};try{let{reasoningBank:m}=await h();await m.recordOutcome({patternId:i,success:o,metrics:{executionTimeMs:0},feedback:`Edit ${o?"succeeded":"failed"}: ${s}`})}catch{}try{await B({task:`edit: ${s}`,agent:"cli-hook",domain:c,success:o,source:"cli-hook-post-edit"})}catch{}let p=!1;try{let m=R(),l=we.join(m,".agentic-qe"),k=await v(l);await x(k)}catch{}e.json?f({success:!0,file:e.file,editSuccess:o,patternsLearned:d.patternsLearned||0,dreamTriggered:p}):($(`Recorded edit outcome for ${e.file}`),d.patternsLearned&&console.log(P.green(` Patterns learned: ${d.patternsLearned}`)));return}catch(t){throw _(`post-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}})}L();import{randomUUID as _e}from"crypto";import b from"chalk";import be from"node:path";async function Te(n=500){return process.stdin.isTTY?"":new Promise(e=>{let t="",o=setTimeout(()=>{process.stdin.removeAllListeners(),process.stdin.pause(),e(t)},n);process.stdin.setEncoding("utf8"),process.stdin.on("data",s=>{t+=s}),process.stdin.on("end",()=>{clearTimeout(o),e(t)}),process.stdin.on("error",()=>{clearTimeout(o),e(t)}),process.stdin.resume()})}function Re(n){if(!n.trim())return"";let e;try{e=JSON.parse(n)}catch{return n.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 o of t)if(typeof o=="string"&&o.trim())return o;return""}function me(n){n.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 Te();t=Re(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:o}=await h(),s={task:t,domain:e.domain,capabilities:e.capabilities},r=await o.routeTask(s);if(!r.success)throw new Error(r.error.message);let a=r.value;e.json?f({recommendedAgent:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,domains:a.domains,patternCount:a.patterns.length,guidance:a.guidance,reasoning:a.reasoning}):(console.log(b.bold(`
127
+ \u{1F3AF} Task Routing Result`)),console.log(b.dim(` Task: "${t}"`)),console.log(b.bold(`
128
+ \u{1F464} Recommended Agent:`),b.cyan(a.recommendedAgent)),console.log(b.dim(` Confidence: ${(a.confidence*100).toFixed(1)}%`)),a.alternatives.length>0&&(console.log(b.bold(`
129
+ \u{1F504} Alternatives:`)),a.alternatives.forEach(c=>{console.log(b.dim(` - ${c.agent}: ${(c.score*100).toFixed(1)}%`))})),console.log(b.bold(`
130
+ \u{1F4C2} Detected Domains:`),a.domains.join(", ")),console.log(b.bold(`
131
+ \u{1F4A1} Guidance:`)),F(a.guidance),console.log(b.bold(`
132
+ \u{1F4D6} Reasoning:`),b.dim(a.reasoning)));try{let{getUnifiedMemory:c}=await import("./unified-memory-JVMA5MJR.js"),i=c();i.isInitialized()||await i.initialize();let E=i.getDatabase();C(E);let d=`route-${Date.now()}-${_e().slice(0,8)}`,p=a.confidence<.5;E.prepare(`
132
133
  INSERT OR REPLACE INTO routing_outcomes (
133
134
  id, task_json, decision_json, used_agent,
134
135
  followed_recommendation, success, quality_score,
135
136
  duration_ms, error
136
137
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
137
- `).run(d,JSON.stringify({description:t,domain:e.domain}),JSON.stringify({recommended:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,lowConfidence:p}),a.recommendedAgent,1,0,-1,0,p?"low-confidence":null);let m=T(),l=be.join(m,".agentic-qe"),f=await $(l);await x(f)}catch(c){console.error(v.dim(`[hooks] route persist: ${c instanceof Error?c.message:"unknown"}`))}return}catch(t){throw _(`route failed: ${t instanceof Error?t.message:"unknown"}`),t}})}import y from"chalk";Ee();function ue(n){n.command("stats").description("Display hooks system statistics").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await h(),o=await t.getStats();if(e.json)k(o);else{console.log(y.bold(`
138
+ `).run(d,JSON.stringify({description:t,domain:e.domain}),JSON.stringify({recommended:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,lowConfidence:p}),a.recommendedAgent,1,0,-1,0,p?"low-confidence":null);let m=R(),l=be.join(m,".agentic-qe"),k=await v(l);await x(k)}catch(c){console.error(b.dim(`[hooks] route persist: ${c instanceof Error?c.message:"unknown"}`))}return}catch(t){throw _(`route failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.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,o=.325+(t?.25:0)+.1,s=q();s.isInitialized()||await s.initialize();let r=s.getDatabase();C(r);let a=r.prepare(`
139
+ UPDATE routing_outcomes
140
+ SET success = ?, quality_score = ?, duration_ms = 0, error = NULL
141
+ WHERE id = (
142
+ SELECT id FROM routing_outcomes
143
+ WHERE quality_score = -1
144
+ AND task_json NOT LIKE '%"taskId"%'
145
+ ORDER BY created_at DESC
146
+ LIMIT 1
147
+ )
148
+ `).run(t?1:0,o);e.json&&f({success:!0,resolved:a.changes>0,qualityScore:o,turnSuccess:t});return}catch(t){e.json?f({success:!1,error:t instanceof Error?t.message:"unknown"}):console.error(b.dim(`[hooks] post-route: ${t instanceof Error?t.message:"unknown"}`));return}})}import y from"chalk";Ee();function ue(n){n.command("stats").description("Display hooks system statistics").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await h(),o=await t.getStats();if(e.json)f(o);else{console.log(y.bold(`
138
149
  \u{1F4CA} Hooks System Statistics
139
150
  `)),console.log(y.bold("Patterns:")),console.log(` Total: ${y.cyan(o.totalPatterns)}`),console.log(` Short-term: ${o.patternStoreStats.byTier.shortTerm}`),console.log(` Long-term: ${o.patternStoreStats.byTier.longTerm}`),console.log(y.bold(`
140
151
  By Domain:`));for(let[s,r]of Object.entries(o.byDomain))r>0&&console.log(` ${s}: ${r}`);console.log(y.bold(`
141
152
  Routing:`)),console.log(` Requests: ${o.routingRequests}`),console.log(` Avg Confidence: ${(o.avgRoutingConfidence*100).toFixed(1)}%`),console.log(y.bold(`
142
153
  Learning:`)),console.log(` Outcomes: ${o.learningOutcomes}`),console.log(` Success Rate: ${(o.patternSuccessRate*100).toFixed(1)}%`),console.log(y.bold(`
143
- Search Performance:`)),console.log(` Operations: ${o.patternStoreStats.searchOperations}`),console.log(` Avg Latency: ${o.patternStoreStats.avgSearchLatencyMs.toFixed(2)}ms`),console.log(` HNSW Native: ${o.patternStoreStats.hnswStats.nativeAvailable?"\u2713":"\u2717"}`)}}catch(t){throw _(`stats failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.command("list").description("List all registered QE hook events").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await h(),o=t.getRegisteredEvents();if(e.json)k({events:o,totalEvents:Object.keys(R).length,registeredEvents:o.length});else{console.log(y.bold(`
154
+ Search Performance:`)),console.log(` Operations: ${o.patternStoreStats.searchOperations}`),console.log(` Avg Latency: ${o.patternStoreStats.avgSearchLatencyMs.toFixed(2)}ms`),console.log(` HNSW Native: ${o.patternStoreStats.hnswStats.nativeAvailable?"\u2713":"\u2717"}`)}}catch(t){throw _(`stats failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.command("list").description("List all registered QE hook events").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await h(),o=t.getRegisteredEvents();if(e.json)f({events:o,totalEvents:Object.keys(D).length,registeredEvents:o.length});else{console.log(y.bold(`
144
155
  \u{1F4CB} Registered QE Hook Events
145
- `)),console.log(y.bold("All Available Events:"));for(let[s,r]of Object.entries(R)){let c=o.includes(r)?y.green("\u2713"):y.dim("\u25CB");console.log(` ${c} ${s}: ${y.dim(r)}`)}console.log(y.dim(`
146
- Registered: ${o.length}/${Object.keys(R).length}`))}}catch(t){throw _(`list failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.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 h(),o;try{o=X(e.data)}catch{throw new Error(`Invalid JSON data: ${e.data}`)}let s=await t.emit(e.event,o);e.json?k({event:e.event,results:s}):(console.log(y.bold(`
147
- \u{1F4E1} Hook Event Emitted`)),console.log(y.dim(` Event: ${e.event}`)),console.log(y.dim(` Handlers: ${s.length}`)),s.forEach((r,a)=>{let c=r.success?y.green("\u2713"):y.red("\u2717");console.log(` ${c} Handler ${a+1}: ${r.success?"success":r.error}`),r.patternsLearned&&console.log(y.green(` Patterns learned: ${r.patternsLearned}`))}))}catch(t){throw _(`emit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.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 h(),o=await t.storePattern({patternType:e.type,name:e.name,description:e.description,template:{type:"prompt",content:e.description,variables:[]},context:{tags:e.tags||[]}});if(!o.success)throw new Error(o.error.message);let s=o.value;e.json?k({success:!0,pattern:{id:s.id,name:s.name,type:s.patternType,domain:s.qeDomain}}):(D(`Pattern stored: ${s.name}`),console.log(y.dim(` ID: ${s.id}`)),console.log(y.dim(` Domain: ${s.qeDomain}`)),console.log(y.dim(` Tier: ${s.tier}`)))}catch(t){throw _(`learn failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.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 h(),o=await t.searchPatterns(e.query,{limit:parseInt(e.limit,10),domain:e.domain});if(!o.success)throw new Error(o.error.message);let s=o.value;e.json?k({query:e.query,total:s.length,patterns:s.map(r=>({id:r.pattern.id,name:r.pattern.name,score:r.score,domain:r.pattern.qeDomain,matchType:r.matchType}))}):(console.log(y.bold(`
156
+ `)),console.log(y.bold("All Available Events:"));for(let[s,r]of Object.entries(D)){let c=o.includes(r)?y.green("\u2713"):y.dim("\u25CB");console.log(` ${c} ${s}: ${y.dim(r)}`)}console.log(y.dim(`
157
+ Registered: ${o.length}/${Object.keys(D).length}`))}}catch(t){throw _(`list failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.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 h(),o;try{o=X(e.data)}catch{throw new Error(`Invalid JSON data: ${e.data}`)}let s=await t.emit(e.event,o);e.json?f({event:e.event,results:s}):(console.log(y.bold(`
158
+ \u{1F4E1} Hook Event Emitted`)),console.log(y.dim(` Event: ${e.event}`)),console.log(y.dim(` Handlers: ${s.length}`)),s.forEach((r,a)=>{let c=r.success?y.green("\u2713"):y.red("\u2717");console.log(` ${c} Handler ${a+1}: ${r.success?"success":r.error}`),r.patternsLearned&&console.log(y.green(` Patterns learned: ${r.patternsLearned}`))}))}catch(t){throw _(`emit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.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 h(),o=await t.storePattern({patternType:e.type,name:e.name,description:e.description,template:{type:"prompt",content:e.description,variables:[]},context:{tags:e.tags||[]}});if(!o.success)throw new Error(o.error.message);let s=o.value;e.json?f({success:!0,pattern:{id:s.id,name:s.name,type:s.patternType,domain:s.qeDomain}}):($(`Pattern stored: ${s.name}`),console.log(y.dim(` ID: ${s.id}`)),console.log(y.dim(` Domain: ${s.qeDomain}`)),console.log(y.dim(` Tier: ${s.tier}`)))}catch(t){throw _(`learn failed: ${t instanceof Error?t.message:"unknown"}`),t}}),n.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 h(),o=await t.searchPatterns(e.query,{limit:parseInt(e.limit,10),domain:e.domain});if(!o.success)throw new Error(o.error.message);let s=o.value;e.json?f({query:e.query,total:s.length,patterns:s.map(r=>({id:r.pattern.id,name:r.pattern.name,score:r.score,domain:r.pattern.qeDomain,matchType:r.matchType}))}):(console.log(y.bold(`
148
159
  \u{1F50D} Search Results for "${e.query}"
149
- `)),s.length===0?console.log(y.dim(" No patterns found")):s.forEach((r,a)=>{console.log(`${y.cyan(`${a+1}.`)} ${r.pattern.name} ${y.dim(`(${(r.score*100).toFixed(1)}%)`)}`),console.log(y.dim(` Domain: ${r.pattern.qeDomain}`)),console.log(y.dim(` Match: ${r.matchType}`)),console.log(y.dim(` ID: ${r.pattern.id}`)),console.log()}),console.log(y.dim(`Found ${s.length} pattern(s)`)))}catch(t){throw _(`search failed: ${t instanceof Error?t.message:"unknown"}`),t}})}C();import B from"chalk";import ve from"node:path";function le(n){n.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()}`;g.sessionId=t;let{reasoningBank:o}=await h(),s=await o.getStats(),r=T(),a=ve.join(r,".agentic-qe"),c=await $(a),i=await c.get(I),E=!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(I,i);let d=[];d.push(`AQE Learning: ${s.totalPatterns} patterns loaded`);let p=Object.entries(s.byDomain).filter(([,l])=>l>0).sort(([,l],[,f])=>f-l).slice(0,5);p.length>0&&d.push(`Top domains: ${p.map(([l,f])=>`${l}(${f})`).join(", ")}`),s.patternSuccessRate>0&&d.push(`Pattern success rate: ${(s.patternSuccessRate*100).toFixed(0)}%`),s.routingRequests>0&&d.push(`Routing confidence: ${(s.avgRoutingConfidence*100).toFixed(0)}% across ${s.routingRequests} requests`);let m=d.join(". ")+".";e.json?k({hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:m},sessionId:t,initialized:!0,patternsLoaded:s.totalPatterns,dreamScheduler:{enabled:!0,lastDreamTime:i.lastDreamTime,pendingExperiences:i.experienceCount}}):(D(`Session started: ${t}`),console.log(B.dim(` Patterns loaded: ${s.totalPatterns}`)),console.log(B.dim(` Dream scheduler: enabled (${i.experienceCount} pending experiences)`)));return}catch(t){e.json&&k({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),n.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=g.sessionId||"unknown",o=null;if(g.initialized&&g.reasoningBank)try{o=await g.reasoningBank.getStats()}catch{}let s=0;try{s=await Z()}catch{}if(e.json){let r=o?`Session complete: ${o.totalPatterns} patterns, ${o.routingRequests} routings, ${(o.patternSuccessRate*100).toFixed(0)}% success rate`:"Session complete";k({continue:!0,sessionId:t,stateSaved:e.saveState||!1,metricsExported:e.exportMetrics||!1,patternsConsolidated:s,finalStats:o?{patternsLearned:o.totalPatterns,routingRequests:o.routingRequests,successRate:o.patternSuccessRate}:null})}else D(`Session ended: ${t}`),o&&(console.log(B.dim(` Patterns: ${o.totalPatterns}`)),console.log(B.dim(` Routing requests: ${o.routingRequests}`))),s>0&&console.log(B.dim(` Patterns consolidated: ${s}`));return}catch(t){e.json&&k({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{createHash as $e,randomUUID as De}from"node:crypto";import b from"chalk";import Ae from"node:path";C();var xe="task-bridge",Oe=6e5,ge=.5;function Ie(n){let e=n.toLowerCase();return/\bgenerate[- ]?test|\btest[- ]?gen|\bgenerate.+spec/.test(e)?"test-generation":/\bcoverage|\banalyze.+cover/.test(e)?"coverage-analysis":/\bquality|\bassess|\baudit/.test(e)?"quality-assessment":/\bsecurity|\bvulnerab|\bcompliance/.test(e)?"security-compliance":/\bdefect|\bbug|\bdiagnos/.test(e)?"defect-intelligence":/\brequirement|\bspec\b/.test(e)?"requirements-validation":/\brefactor|\brewrite|\boptim/.test(e)?"refactoring":/\btest|\brun.+test/.test(e)?"test-execution":"unknown"}function Pe(n){return $e("sha256").update(n).digest("hex").slice(0,16)}function pe(n){n.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 h(),o=null;if(e.description){let d=await t.routeTask({task:e.description});d.success&&(o=d.value)}let s=(o?.patterns??[]).slice(0,5).map(d=>d?.id).filter(d=>typeof d=="string"),r=null,a=[],c=0,i=null;try{let d=F();d.isInitialized()||await d.initialize();let p=d.getDatabase();L(p);try{let m=p.prepare(`
160
+ `)),s.length===0?console.log(y.dim(" No patterns found")):s.forEach((r,a)=>{console.log(`${y.cyan(`${a+1}.`)} ${r.pattern.name} ${y.dim(`(${(r.score*100).toFixed(1)}%)`)}`),console.log(y.dim(` Domain: ${r.pattern.qeDomain}`)),console.log(y.dim(` Match: ${r.matchType}`)),console.log(y.dim(` ID: ${r.pattern.id}`)),console.log()}),console.log(y.dim(`Found ${s.length} pattern(s)`)))}catch(t){throw _(`search failed: ${t instanceof Error?t.message:"unknown"}`),t}})}L();import H from"chalk";import De from"node:path";function le(n){n.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()}`;g.sessionId=t;let{reasoningBank:o}=await h(),s=await o.getStats(),r=R(),a=De.join(r,".agentic-qe"),c=await v(a),i=await c.get(I),E=!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(I,i);let d=[];d.push(`AQE Learning: ${s.totalPatterns} patterns loaded`);let p=Object.entries(s.byDomain).filter(([,l])=>l>0).sort(([,l],[,k])=>k-l).slice(0,5);p.length>0&&d.push(`Top domains: ${p.map(([l,k])=>`${l}(${k})`).join(", ")}`),s.patternSuccessRate>0&&d.push(`Pattern success rate: ${(s.patternSuccessRate*100).toFixed(0)}%`),s.routingRequests>0&&d.push(`Routing confidence: ${(s.avgRoutingConfidence*100).toFixed(0)}% across ${s.routingRequests} requests`);let m=d.join(". ")+".";e.json?f({hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:m},sessionId:t,initialized:!0,patternsLoaded:s.totalPatterns,dreamScheduler:{enabled:!0,lastDreamTime:i.lastDreamTime,pendingExperiences:i.experienceCount}}):($(`Session started: ${t}`),console.log(H.dim(` Patterns loaded: ${s.totalPatterns}`)),console.log(H.dim(` Dream scheduler: enabled (${i.experienceCount} pending experiences)`)));return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),n.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=g.sessionId||"unknown",o=null;if(g.initialized&&g.reasoningBank)try{o=await g.reasoningBank.getStats()}catch{}let s=0;try{s=await Z()}catch{}if(e.json){let r=o?`Session complete: ${o.totalPatterns} patterns, ${o.routingRequests} routings, ${(o.patternSuccessRate*100).toFixed(0)}% success rate`:"Session complete";f({continue:!0,sessionId:t,stateSaved:e.saveState||!1,metricsExported:e.exportMetrics||!1,patternsConsolidated:s,finalStats:o?{patternsLearned:o.totalPatterns,routingRequests:o.routingRequests,successRate:o.patternSuccessRate}:null})}else $(`Session ended: ${t}`),o&&(console.log(H.dim(` Patterns: ${o.totalPatterns}`)),console.log(H.dim(` Routing requests: ${o.routingRequests}`))),s>0&&console.log(H.dim(` Patterns consolidated: ${s}`));return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{createHash as ve,randomUUID as $e}from"node:crypto";import T from"chalk";import Ae from"node:path";L();var xe="task-bridge",Oe=6e5,ge=.5;function Ie(n){let e=n.toLowerCase();return/\bgenerate[- ]?test|\btest[- ]?gen|\bgenerate.+spec/.test(e)?"test-generation":/\bcoverage|\banalyze.+cover/.test(e)?"coverage-analysis":/\bquality|\bassess|\baudit/.test(e)?"quality-assessment":/\bsecurity|\bvulnerab|\bcompliance/.test(e)?"security-compliance":/\bdefect|\bbug|\bdiagnos/.test(e)?"defect-intelligence":/\brequirement|\bspec\b/.test(e)?"requirements-validation":/\brefactor|\brewrite|\boptim/.test(e)?"refactoring":/\btest|\brun.+test/.test(e)?"test-execution":"unknown"}function Ne(n){return ve("sha256").update(n).digest("hex").slice(0,16)}function pe(n){n.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 h(),o=null;if(e.description){let d=await t.routeTask({task:e.description});d.success&&(o=d.value)}let s=(o?.patterns??[]).slice(0,5).map(d=>d?.id).filter(d=>typeof d=="string"),r=null,a=[],c=0,i=null;try{let d=q();d.isInitialized()||await d.initialize();let p=d.getDatabase();C(p);try{let m=p.prepare(`
150
161
  SELECT used_agent AS agent,
151
162
  ROUND(AVG(quality_score), 3) AS avgQuality,
152
163
  COUNT(*) AS n
@@ -166,24 +177,24 @@ Registered: ${o.length}/${Object.keys(R).length}`))}}catch(t){throw _(`list fail
166
177
  SELECT COALESCE(SUM(average_token_savings), 0) AS sum
167
178
  FROM qe_patterns
168
179
  WHERE id IN (${m})
169
- `).get(...s);c=Math.max(0,Math.round(l?.sum??0))}catch{}if(e.description&&s.length>0)try{let m=String(e.description),l=Ie(m),f="normal",u=o?.domains?.[0]??"any",S=Math.max(0,Math.min(10,Math.round(Math.min(m.length/200,1)*10)));i=`task:${Pe(m)}`;let A=JSON.stringify({selectedPatternIds:s,agent:o?.recommendedAgent??null,description:m.slice(0,200),taskType:l,priority:f,domain:u,complexityBucket:S,estimatedTokenSavings:c,ts:Date.now()}),M=Date.now()+Oe;p.prepare(`
180
+ `).get(...s);c=Math.max(0,Math.round(l?.sum??0))}catch{}if(e.description&&s.length>0)try{let m=String(e.description),l=Ie(m),k="normal",u=o?.domains?.[0]??"any",S=Math.max(0,Math.min(10,Math.round(Math.min(m.length/200,1)*10)));i=`task:${Ne(m)}`;let A=JSON.stringify({selectedPatternIds:s,agent:o?.recommendedAgent??null,description:m.slice(0,200),taskType:l,priority:k,domain:u,complexityBucket:S,estimatedTokenSavings:c,ts:Date.now()}),M=Date.now()+Oe;p.prepare(`
170
181
  INSERT OR REPLACE INTO kv_store (key, namespace, value, expires_at, created_at)
171
182
  VALUES (?, ?, ?, ?, strftime('%s','now')*1000)
172
- `).run(i,xe,A,M)}catch(m){console.error(b.dim(`[hooks] pre-task bridge: ${m instanceof Error?m.message:"unknown"}`))}if(o?.recommendedAgent)try{let m=e.taskId||`hook-${Date.now()}`,l=`route-${Date.now()}-${De().slice(0,8)}`,f=o.confidence<ge;p.prepare(`
183
+ `).run(i,xe,A,M)}catch(m){console.error(T.dim(`[hooks] pre-task bridge: ${m instanceof Error?m.message:"unknown"}`))}if(o?.recommendedAgent)try{let m=e.taskId||`hook-${Date.now()}`,l=`route-${Date.now()}-${$e().slice(0,8)}`,k=o.confidence<ge;p.prepare(`
173
184
  INSERT INTO routing_outcomes (
174
185
  id, task_json, decision_json, used_agent,
175
186
  followed_recommendation, success, quality_score,
176
187
  duration_ms, error
177
188
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
178
- `).run(l,JSON.stringify({description:e.description,taskId:m}),JSON.stringify({recommended:o.recommendedAgent,confidence:o.confidence,alternatives:o.alternatives,lowConfidence:f}),o.recommendedAgent,1,0,-1,0,f?"low-confidence":null)}catch(m){console.error(b.dim(`[hooks] pre-task sentinel: ${m instanceof Error?m.message:"unknown"}`))}}catch(d){console.error(b.dim(`[hooks] pre-task memory: ${d instanceof Error?d.message:"unknown"}`))}let E=o?o.confidence<ge:!1;e.json?k({success:!0,taskId:e.taskId,description:e.description,recommendedAgent:o?.recommendedAgent,confidence:o?.confidence,guidance:o?.guidance||[],selectedPatternIds:s,historicalBest:r,priorVerdicts:a,estimatedTokenSavings:c,lowConfidence:E,bridgeKey:i}):(console.log(b.bold(`
179
- \u{1F680} Pre-Task Analysis`)),console.log(b.dim(` Task ID: ${e.taskId||"N/A"}`)),o&&(console.log(b.bold(`
180
- \u{1F3AF} Recommended:`),b.cyan(o.recommendedAgent)),console.log(b.dim(` Confidence: ${(o.confidence*100).toFixed(1)}%`)),E&&console.log(b.yellow(" \u26A0 Low confidence \u2014 consider providing more context"))));return}catch(t){e.json&&k({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),n.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("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,o=0,s={triggered:!1};try{let{hookRegistry:r,reasoningBank:a}=await h();o=(await r.emit(R.QEAgentCompletion,{taskId:e.taskId,success:t,agent:e.agent,duration:e.duration?parseInt(e.duration,10):void 0,timestamp:Date.now()})).reduce((m,l)=>m+(l.patternsLearned||0),0);{let m=e.taskId||`hook-${Date.now()}`,l=e.agent||"unknown",f=e.duration?parseInt(e.duration,10):0;await a.recordOutcome({patternId:`task:${l}:${m}`,success:t,metrics:{executionTimeMs:f},feedback:`Agent: ${l}, Task: ${m}`});let u=await V({taskId:m,agent:l,durationMs:f,success:t});await Y({agent:l,success:t,durationMs:f,qualityScore:u.qualityScore}),u.bridge&&await K({taskType:u.bridge.taskType,priority:u.bridge.priority,domain:u.bridge.domain,complexityBucket:u.bridge.complexityBucket,agent:l,success:t})}let i=T(),E=Ae.join(i,".agentic-qe"),d=await $(E),p=await x(d);s=await G(d)}catch(r){console.error(b.dim(`[hooks] Learning init: ${r instanceof Error?r.message:"unknown"}`))}e.json?k({success:!0,taskId:e.taskId,taskSuccess:t,patternsLearned:o,dreamTriggered:s.triggered,dreamReason:s.reason,dreamInsights:s.insightsGenerated}):(D(`Task completed: ${e.taskId||"unknown"}`),console.log(b.dim(` Success: ${t}`)),o>0&&console.log(b.green(` Patterns learned: ${o}`)),s.triggered&&console.log(b.blue(` \u{1F319} Dream cycle triggered (${s.reason}): ${s.insightsGenerated} insights`)));return}catch(t){e.json&&k({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{existsSync as Ne,readFileSync as Ce}from"node:fs";import{randomUUID as fe}from"node:crypto";import H from"chalk";import ke from"node:path";C();function qe(n){return/\bjest\b/i.test(n)?"jest":/\bvitest\b/i.test(n)?"vitest":/\bpytest\b/i.test(n)?"pytest":/\bmocha\b/i.test(n)?"mocha":null}async function Le(n){try{let e=F();e.isInitialized()||await e.initialize();let t=e.getDatabase();L(t);let o=n.framework==="pytest"?"python":"javascript",s=n.command.split(/\s+/).slice(0,3).join("-").slice(0,80);t.prepare(`
189
+ `).run(l,JSON.stringify({description:e.description,taskId:m}),JSON.stringify({recommended:o.recommendedAgent,confidence:o.confidence,alternatives:o.alternatives,lowConfidence:k}),o.recommendedAgent,1,0,-1,0,k?"low-confidence":null)}catch(m){console.error(T.dim(`[hooks] pre-task sentinel: ${m instanceof Error?m.message:"unknown"}`))}}catch(d){console.error(T.dim(`[hooks] pre-task memory: ${d instanceof Error?d.message:"unknown"}`))}let E=o?o.confidence<ge:!1;e.json?f({success:!0,taskId:e.taskId,description:e.description,recommendedAgent:o?.recommendedAgent,confidence:o?.confidence,guidance:o?.guidance||[],selectedPatternIds:s,historicalBest:r,priorVerdicts:a,estimatedTokenSavings:c,lowConfidence:E,bridgeKey:i}):(console.log(T.bold(`
190
+ \u{1F680} Pre-Task Analysis`)),console.log(T.dim(` Task ID: ${e.taskId||"N/A"}`)),o&&(console.log(T.bold(`
191
+ \u{1F3AF} Recommended:`),T.cyan(o.recommendedAgent)),console.log(T.dim(` Confidence: ${(o.confidence*100).toFixed(1)}%`)),E&&console.log(T.yellow(" \u26A0 Low confidence \u2014 consider providing more context"))));return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),n.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("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,o=0,s={triggered:!1};try{let{hookRegistry:r,reasoningBank:a}=await h();o=(await r.emit(D.QEAgentCompletion,{taskId:e.taskId,success:t,agent:e.agent,duration:e.duration?parseInt(e.duration,10):void 0,timestamp:Date.now()})).reduce((m,l)=>m+(l.patternsLearned||0),0);{let m=e.taskId||`hook-${Date.now()}`,l=e.agent||"unknown",k=e.duration?parseInt(e.duration,10):0;await a.recordOutcome({patternId:`task:${l}:${m}`,success:t,metrics:{executionTimeMs:k},feedback:`Agent: ${l}, Task: ${m}`});let u=await V({taskId:m,agent:l,durationMs:k,success:t});await Y({agent:l,success:t,durationMs:k,qualityScore:u.qualityScore}),u.bridge&&await K({taskType:u.bridge.taskType,priority:u.bridge.priority,domain:u.bridge.domain,complexityBucket:u.bridge.complexityBucket,agent:l,success:t})}let i=R(),E=Ae.join(i,".agentic-qe"),d=await v(E),p=await x(d);s=await G(d)}catch(r){console.error(T.dim(`[hooks] Learning init: ${r instanceof Error?r.message:"unknown"}`))}e.json?f({success:!0,taskId:e.taskId,taskSuccess:t,patternsLearned:o,dreamTriggered:s.triggered,dreamReason:s.reason,dreamInsights:s.insightsGenerated}):($(`Task completed: ${e.taskId||"unknown"}`),console.log(T.dim(` Success: ${t}`)),o>0&&console.log(T.green(` Patterns learned: ${o}`)),s.triggered&&console.log(T.blue(` \u{1F319} Dream cycle triggered (${s.reason}): ${s.insightsGenerated} insights`)));return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{existsSync as Pe,readFileSync as Ce}from"node:fs";import{randomUUID as fe}from"node:crypto";import U from"chalk";import ke from"node:path";L();function qe(n){return/\bjest\b/i.test(n)?"jest":/\bvitest\b/i.test(n)?"vitest":/\bpytest\b/i.test(n)?"pytest":/\bmocha\b/i.test(n)?"mocha":null}async function Le(n){try{let e=q();e.isInitialized()||await e.initialize();let t=e.getDatabase();C(t);let o=n.framework==="pytest"?"python":"javascript",s=n.command.split(/\s+/).slice(0,3).join("-").slice(0,80);t.prepare(`
181
192
  INSERT INTO test_outcomes (
182
193
  id, test_id, test_name, generated_by, framework, language, domain,
183
194
  passed, execution_time_ms, maintainability_score, created_at
184
195
  ) VALUES (?, ?, ?, 'cli-hook-post-command', ?, ?, 'test-execution',
185
196
  ?, ?, 0.5, datetime('now'))
186
- `).run(`to-${Date.now()}-${fe().slice(0,8)}`,`cmd:${s}`,n.command.slice(0,200),n.framework,o,n.success?1:0,n.durationMs);try{let r=ke.join(process.cwd(),"coverage","coverage-summary.json");if(Ne(r)){let c=JSON.parse(Ce(r,"utf-8")).total??{},i=Number(c.lines?.pct??0),E=Number(c.branches?.pct??0),d=Number(c.functions?.pct??0),p=t.prepare(`
197
+ `).run(`to-${Date.now()}-${fe().slice(0,8)}`,`cmd:${s}`,n.command.slice(0,200),n.framework,o,n.success?1:0,n.durationMs);try{let r=ke.join(process.cwd(),"coverage","coverage-summary.json");if(Pe(r)){let c=JSON.parse(Ce(r,"utf-8")).total??{},i=Number(c.lines?.pct??0),E=Number(c.branches?.pct??0),d=Number(c.functions?.pct??0),p=t.prepare(`
187
198
  SELECT after_lines, after_branches, after_functions
188
199
  FROM coverage_sessions
189
200
  WHERE target_path = ?
@@ -197,8 +208,8 @@ Registered: ${o.length}/${Object.keys(R).length}`))}}catch(t){throw _(`list fail
197
208
  tests_generated, tests_passed, duration_ms,
198
209
  started_at, completed_at
199
210
  ) VALUES (?, ?, 'cli-hook-post-command', ?, ?, ?, ?, ?, ?, ?, 0, ?, ?, ?, ?)
200
- `).run(`cs-${Date.now()}-${fe().slice(0,8)}`,process.cwd(),n.framework,p?.after_lines??0,p?.after_branches??0,p?.after_functions??0,i,E,d,n.success?1:0,n.durationMs,m,m)}}catch(r){console.error(H.dim(`[hooks] coverage_sessions: ${r instanceof Error?r.message:"unknown"}`))}}catch(e){console.error(H.dim(`[hooks] test_outcomes: ${e instanceof Error?e.message:"unknown"}`))}}function ye(n){n.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||"",o=t.replace(/\\/g,"/"),r=[{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(o));r?e.json?k({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Protected file: ${r.reason} (${t})`}}):_(`Blocked: ${r.reason} (${t})`):e.json?k({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}}):D(`Allowed: ${t}`);return}catch{e.json&&k({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),n.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||"",o=[{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"}],s=[{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"}],r=o.find(c=>c.pattern.test(t)),a=s.filter(c=>c.pattern.test(t)).map(c=>c.reason);if(r)e.json?k({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Dangerous command blocked: ${r.reason}`}}):_(`Blocked: ${r.reason}`);else if(e.json){let c={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}};a.length>0&&(c.hookSpecificOutput.additionalContext=`Warnings: ${a.join("; ")}`),k(c)}else a.length>0&&(console.log(H.yellow(`
201
- \u26A0\uFE0F Command Warnings:`)),a.forEach(c=>console.log(H.yellow(` - ${c}`))));return}catch{e.json&&k({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),n.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,o=e.exitCode?parseInt(e.exitCode,10):t?0:1,s=(e.command||"").substring(0,200),r=/\b(test|vitest|jest|pytest|mocha)\b/i.test(s),a=/\b(build|compile|tsc)\b/i.test(s),c=/\b(lint|eslint|prettier)\b/i.test(s),i=0,E=!1;try{let{reasoningBank:d}=await h();if(r){let{hookRegistry:A}=await h();await A.emit(R.TestExecutionResult,{runId:`cmd-${Date.now()}`,patternId:`cmd:test:${s.split(/\s+/).slice(0,3).join("-")}`,passed:t?1:0,failed:t?0:1,duration:0,flaky:!1})}let p=s.replace(/[^a-zA-Z0-9]/g,"-").slice(0,80),m=r?"test-execution":a?"code-intelligence":c?"quality-assessment":"code-intelligence";await d.recordOutcome({patternId:`cmd:${p}`,success:t,metrics:{executionTimeMs:0},feedback:`Command: ${s}, exit: ${o}`}),i=1,(r||a||c)&&(await j({task:`bash: ${s}`,agent:"cli-hook",domain:m,success:t,source:"cli-hook-post-command"}),E=!0);let l=qe(s);l&&await Le({command:s,framework:l,success:t,durationMs:0});let f=T(),u=ke.join(f,".agentic-qe"),S=await $(u);await x(S)}catch(d){console.error(H.dim(`[hooks] post-command learning: ${d instanceof Error?d.message:"unknown"}`))}e.json&&k({success:!0,command:s.substring(0,100),commandSuccess:t,exitCode:o,patternsLearned:i,experienceRecorded:E});return}catch(t){e.json&&k({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}function Qt(){let n=new Me("hooks").description("Self-learning QE hooks for pattern recognition and guidance").addHelpText("after",`
211
+ `).run(`cs-${Date.now()}-${fe().slice(0,8)}`,process.cwd(),n.framework,p?.after_lines??0,p?.after_branches??0,p?.after_functions??0,i,E,d,n.success?1:0,n.durationMs,m,m)}}catch(r){console.error(U.dim(`[hooks] coverage_sessions: ${r instanceof Error?r.message:"unknown"}`))}}catch(e){console.error(U.dim(`[hooks] test_outcomes: ${e instanceof Error?e.message:"unknown"}`))}}function ye(n){n.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||"",o=t.replace(/\\/g,"/"),r=[{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(o));r?e.json?f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Protected file: ${r.reason} (${t})`}}):_(`Blocked: ${r.reason} (${t})`):e.json?f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}}):$(`Allowed: ${t}`);return}catch{e.json&&f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),n.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||"",o=[{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"}],s=[{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"}],r=o.find(c=>c.pattern.test(t)),a=s.filter(c=>c.pattern.test(t)).map(c=>c.reason);if(r)e.json?f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Dangerous command blocked: ${r.reason}`}}):_(`Blocked: ${r.reason}`);else if(e.json){let c={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}};a.length>0&&(c.hookSpecificOutput.additionalContext=`Warnings: ${a.join("; ")}`),f(c)}else a.length>0&&(console.log(U.yellow(`
212
+ \u26A0\uFE0F Command Warnings:`)),a.forEach(c=>console.log(U.yellow(` - ${c}`))));return}catch{e.json&&f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),n.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,o=e.exitCode?parseInt(e.exitCode,10):t?0:1,s=(e.command||"").substring(0,200),r=/\b(test|vitest|jest|pytest|mocha)\b/i.test(s),a=/\b(build|compile|tsc)\b/i.test(s),c=/\b(lint|eslint|prettier)\b/i.test(s),i=0,E=!1;try{let{reasoningBank:d}=await h();if(r){let{hookRegistry:A}=await h();await A.emit(D.TestExecutionResult,{runId:`cmd-${Date.now()}`,patternId:`cmd:test:${s.split(/\s+/).slice(0,3).join("-")}`,passed:t?1:0,failed:t?0:1,duration:0,flaky:!1})}let p=s.replace(/[^a-zA-Z0-9]/g,"-").slice(0,80),m=r?"test-execution":a?"code-intelligence":c?"quality-assessment":"code-intelligence";await d.recordOutcome({patternId:`cmd:${p}`,success:t,metrics:{executionTimeMs:0},feedback:`Command: ${s}, exit: ${o}`}),i=1,(r||a||c)&&(await B({task:`bash: ${s}`,agent:"cli-hook",domain:m,success:t,source:"cli-hook-post-command"}),E=!0);let l=qe(s);l&&await Le({command:s,framework:l,success:t,durationMs:0});let k=R(),u=ke.join(k,".agentic-qe"),S=await v(u);await x(S)}catch(d){console.error(U.dim(`[hooks] post-command learning: ${d instanceof Error?d.message:"unknown"}`))}e.json&&f({success:!0,command:s.substring(0,100),commandSuccess:t,exitCode:o,patternsLearned:i,experienceRecorded:E});return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}function Qt(){let n=new je("hooks").description("Self-learning QE hooks for pattern recognition and guidance").addHelpText("after",`
202
213
  Examples:
203
214
  # File editing hooks (learning from edits)
204
215
  aqe hooks pre-edit --file src/utils.ts --operation create
@@ -208,6 +219,7 @@ Examples:
208
219
  aqe hooks route --task "Generate tests for UserService"
209
220
  aqe hooks pre-task --description "Generate tests" --json
210
221
  aqe hooks post-task --task-id "task-123" --success true
222
+ aqe hooks post-route --success true --json # Stop hook (#451)
211
223
 
212
224
  # Bash command hooks
213
225
  aqe hooks pre-command --command "npm test" --json
@@ -222,4 +234,4 @@ Examples:
222
234
  aqe hooks search --query "authentication"
223
235
  aqe hooks stats
224
236
  aqe hooks list
225
- `);return de(n),me(n),ue(n),le(n),pe(n),ye(n),n}export{R as QE_HOOK_EVENTS,Qt as createHooksCommand,h as getHooksSystem,g as hooksState};
237
+ `);return de(n),me(n),ue(n),le(n),pe(n),ye(n),n}export{D as QE_HOOK_EVENTS,Qt as createHooksCommand,h as getHooksSystem,g as hooksState};