agentic-qe 3.9.20 → 3.9.21

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 (292) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +24 -0
  3. package/README.md +39 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/cli/bundle.js +5 -5
  6. package/dist/cli/chunks/adapter-WOEZOCHJ.js +2 -0
  7. package/dist/cli/chunks/{agent-booster-wasm-T5JB3MOF.js → agent-booster-wasm-55SQPP6T.js} +2 -2
  8. package/dist/cli/chunks/{agent-handler-EASMQSQO.js → agent-handler-Q2UXL73Y.js} +2 -2
  9. package/dist/cli/chunks/{agent-memory-branch-7GWN2KCG.js → agent-memory-branch-56GIYNGH.js} +2 -2
  10. package/dist/cli/chunks/aqe-learning-engine-5AHKLABJ.js +2 -0
  11. package/dist/cli/chunks/{audit-VHV4GXPW.js → audit-2JQ3URVN.js} +2 -2
  12. package/dist/cli/chunks/base-RNCRGTZJ.js +2 -0
  13. package/dist/cli/chunks/{better-sqlite3-GNK7MDXZ.js → better-sqlite3-XGA7Z5YL.js} +2 -2
  14. package/dist/cli/chunks/{brain-handler-ALXZKWO4.js → brain-handler-TOOZFEK5.js} +3 -3
  15. package/dist/cli/chunks/{branch-enumerator-JNYLOLMM.js → branch-enumerator-2BLPN73D.js} +2 -2
  16. package/dist/cli/chunks/{browser-FXRW6LID.js → browser-FSVNN36N.js} +2 -2
  17. package/dist/cli/chunks/browser-workflow-MXHA63OC.js +2 -0
  18. package/dist/cli/chunks/{chunk-X3NADG4S.js → chunk-2AEWOQWU.js} +2 -2
  19. package/dist/cli/chunks/{chunk-T3TEQH2H.js → chunk-34BTSZ5D.js} +1 -1
  20. package/dist/cli/chunks/{chunk-4IUNBRKQ.js → chunk-3Y7OZ2PC.js} +2 -2
  21. package/dist/cli/chunks/{chunk-EJQRDMON.js → chunk-44BAZASI.js} +1 -1
  22. package/dist/cli/chunks/{chunk-ICLWWAGZ.js → chunk-4O7YJIOS.js} +2 -2
  23. package/dist/cli/chunks/{chunk-IHBRFVGA.js → chunk-4XZPDEK5.js} +1 -1
  24. package/dist/cli/chunks/{chunk-Z5MG54R4.js → chunk-4Z4C7BXV.js} +1 -1
  25. package/dist/cli/chunks/{chunk-H647PYXW.js → chunk-4ZUXTOUG.js} +1 -1
  26. package/dist/cli/chunks/{chunk-P2ABIGYB.js → chunk-56DGV2Q3.js} +1 -1
  27. package/dist/cli/chunks/{chunk-AFMLL2G3.js → chunk-5EYQP3V3.js} +2 -2
  28. package/dist/cli/chunks/{chunk-CEVIRL2S.js → chunk-5FNEOJSD.js} +2 -2
  29. package/dist/cli/chunks/{chunk-DERQRIAR.js → chunk-5PZG4WUA.js} +3 -3
  30. package/dist/cli/chunks/{chunk-J7SDO52P.js → chunk-63PHZGO2.js} +2 -2
  31. package/dist/cli/chunks/{chunk-BKGCMWFL.js → chunk-65U55JIH.js} +3 -3
  32. package/dist/cli/chunks/{chunk-F3PX6EJX.js → chunk-6MGACOLN.js} +1 -1
  33. package/dist/cli/chunks/{chunk-LSYMQG52.js → chunk-6OYRNNP2.js} +1 -1
  34. package/dist/cli/chunks/{chunk-7OGFOHG5.js → chunk-7P4IZQVQ.js} +2 -2
  35. package/dist/cli/chunks/{chunk-WF6MKBRI.js → chunk-ACOEV3YB.js} +2 -2
  36. package/dist/cli/chunks/{chunk-7Q7SCQMQ.js → chunk-ADC73GLJ.js} +2 -2
  37. package/dist/cli/chunks/{chunk-3CLKKAGH.js → chunk-AEQNCDYD.js} +2 -2
  38. package/dist/cli/chunks/chunk-AMOCYHP3.js +2 -0
  39. package/dist/cli/chunks/{chunk-QLZPCEVI.js → chunk-AT25VXEO.js} +1 -1
  40. package/dist/cli/chunks/{chunk-BXGAXGME.js → chunk-C4CZXAOE.js} +2 -2
  41. package/dist/cli/chunks/{chunk-RYBFRFKY.js → chunk-CJKR47YY.js} +1 -1
  42. package/dist/cli/chunks/{chunk-3GPNZPM4.js → chunk-D24HN6BG.js} +1 -1
  43. package/dist/cli/chunks/{chunk-5ILP2ZDZ.js → chunk-DBW745QA.js} +2 -2
  44. package/dist/cli/chunks/{chunk-7Y4QQ6JL.js → chunk-DQI5ZR34.js} +1 -1
  45. package/dist/cli/chunks/{chunk-NWYYWFUO.js → chunk-E2XIPBJ7.js} +1 -1
  46. package/dist/cli/chunks/{chunk-2J5OO63R.js → chunk-E55MYZGP.js} +2 -2
  47. package/dist/cli/chunks/{chunk-ZCH5MNST.js → chunk-E5TGH4V3.js} +2 -2
  48. package/dist/cli/chunks/{chunk-QAZYSC3T.js → chunk-E7J32PW2.js} +2 -2
  49. package/dist/cli/chunks/{chunk-KMDZOVCF.js → chunk-ETEV7IZI.js} +1 -1
  50. package/dist/cli/chunks/{chunk-DSPH4GI3.js → chunk-EVWNZEYV.js} +1 -1
  51. package/dist/cli/chunks/{chunk-3HQ4VKK6.js → chunk-F4VJ4PPI.js} +47 -47
  52. package/dist/cli/chunks/{chunk-G7HYTJDG.js → chunk-FBCLQTXO.js} +2 -2
  53. package/dist/cli/chunks/{chunk-3BFNYFXV.js → chunk-FZ2SYLSK.js} +1 -1
  54. package/dist/cli/chunks/{chunk-U7RTH6F4.js → chunk-G276EI3G.js} +2 -2
  55. package/dist/cli/chunks/{chunk-7R45TEY6.js → chunk-G7ZYDJZ3.js} +2 -2
  56. package/dist/cli/chunks/{chunk-NGWGOMOP.js → chunk-GB6ATLR3.js} +2 -2
  57. package/dist/cli/chunks/{chunk-NQIOXSHW.js → chunk-GDZ6XQRI.js} +1 -1
  58. package/dist/cli/chunks/{chunk-4G6OH5LQ.js → chunk-GJGFPXWG.js} +2 -2
  59. package/dist/cli/chunks/{chunk-K2D5L7YV.js → chunk-GLQ6LLKC.js} +1 -1
  60. package/dist/cli/chunks/{chunk-XJRXB5Z5.js → chunk-GR4RXQXV.js} +2 -2
  61. package/dist/cli/chunks/{chunk-RXXKU3VP.js → chunk-HC4VOQZJ.js} +2 -2
  62. package/dist/cli/chunks/{chunk-O3PLWCCD.js → chunk-HIEP3L7H.js} +2 -2
  63. package/dist/cli/chunks/{chunk-UAE37LHP.js → chunk-HJCJWPN5.js} +2 -2
  64. package/dist/cli/chunks/{chunk-QKOPJ5CZ.js → chunk-HMMJ6ZI6.js} +2 -2
  65. package/dist/cli/chunks/{chunk-SMQ5OARZ.js → chunk-HRHKLRBB.js} +1 -1
  66. package/dist/cli/chunks/{chunk-MXAEZHW6.js → chunk-I3HLZASP.js} +2 -2
  67. package/dist/cli/chunks/{chunk-GJACTPDK.js → chunk-ICPQR533.js} +2 -2
  68. package/dist/cli/chunks/{chunk-LJW7BTMK.js → chunk-IM7X6BDZ.js} +2 -2
  69. package/dist/cli/chunks/{chunk-UHWRRJBH.js → chunk-IS6IES7Q.js} +1 -1
  70. package/dist/cli/chunks/{chunk-QMGXALN3.js → chunk-ISNDQOXC.js} +2 -2
  71. package/dist/cli/chunks/{chunk-UABC2Z3S.js → chunk-J3GG3Q4X.js} +2 -2
  72. package/dist/cli/chunks/{chunk-T5MMSSSF.js → chunk-KDOA7YHW.js} +2 -2
  73. package/dist/cli/chunks/{chunk-4HD7YRW7.js → chunk-KENZAFI2.js} +2 -2
  74. package/dist/cli/chunks/{chunk-MXDGMXJA.js → chunk-KID7PTBZ.js} +2 -2
  75. package/dist/cli/chunks/{chunk-Y6U4CCPP.js → chunk-KRXJ7LFP.js} +1 -1
  76. package/dist/cli/chunks/{chunk-LGSPAQSP.js → chunk-KWPPF7O4.js} +2 -2
  77. package/dist/cli/chunks/{chunk-FUTRX4ZT.js → chunk-KYPN6G7T.js} +2 -2
  78. package/dist/cli/chunks/{chunk-BJF77EFA.js → chunk-LHXIAPKR.js} +2 -2
  79. package/dist/cli/chunks/chunk-LP52AQE2.js +2 -0
  80. package/dist/cli/chunks/{chunk-6R7SJ5FS.js → chunk-LYZUB3NP.js} +1 -1
  81. package/dist/cli/chunks/{chunk-SL7WTN5Z.js → chunk-MJGMH7TW.js} +2 -2
  82. package/dist/cli/chunks/{chunk-MIST354H.js → chunk-MYZ43VKA.js} +2 -2
  83. package/dist/cli/chunks/{chunk-DODH6CEQ.js → chunk-ND2TFQF5.js} +1 -1
  84. package/dist/cli/chunks/{chunk-CQSME43Z.js → chunk-NGT3VL66.js} +24 -16
  85. package/dist/cli/chunks/{chunk-AVVRA6FG.js → chunk-NJICCYCB.js} +2 -2
  86. package/dist/cli/chunks/{chunk-S6SRHNJV.js → chunk-NKOGDRZE.js} +2 -2
  87. package/dist/cli/chunks/{chunk-Z65DB2Z7.js → chunk-NS2ZWXUK.js} +3 -3
  88. package/dist/cli/chunks/{chunk-4SBMTHTA.js → chunk-NV6AUEIH.js} +2 -2
  89. package/dist/cli/chunks/{chunk-3ZHUKLU7.js → chunk-OEB3V633.js} +2 -2
  90. package/dist/cli/chunks/chunk-OHR5ILR3.js +2 -0
  91. package/dist/cli/chunks/{chunk-TV5OVFKK.js → chunk-OK5JHHXK.js} +1 -1
  92. package/dist/cli/chunks/{chunk-OD5SVOVP.js → chunk-OXXCWRFU.js} +1 -1
  93. package/dist/cli/chunks/{chunk-V5UB75TQ.js → chunk-P4Q5TMDH.js} +2 -2
  94. package/dist/cli/chunks/{chunk-FPBNTPCM.js → chunk-PAXSPZ3F.js} +2 -2
  95. package/dist/cli/chunks/{chunk-JCPXG42O.js → chunk-PEOTZFNZ.js} +2 -2
  96. package/dist/cli/chunks/{chunk-7WXYQDML.js → chunk-PGHTRQK6.js} +2 -2
  97. package/dist/cli/chunks/{chunk-5GA4BUQU.js → chunk-QERANESS.js} +2 -2
  98. package/dist/cli/chunks/{chunk-QQMHE4RT.js → chunk-QPSPIESU.js} +2 -2
  99. package/dist/cli/chunks/{chunk-YPUDYGIU.js → chunk-QREO5LNR.js} +1 -1
  100. package/dist/cli/chunks/{chunk-GXO42P3X.js → chunk-QSLXOYPR.js} +6 -6
  101. package/dist/cli/chunks/{chunk-EYSGJZ7Y.js → chunk-QU3VFWZZ.js} +13 -13
  102. package/dist/cli/chunks/{chunk-VQI6JQQP.js → chunk-RDUIN7LO.js} +1 -1
  103. package/dist/cli/chunks/{chunk-FAQPPMEC.js → chunk-RHAUASC6.js} +2 -2
  104. package/dist/cli/chunks/{chunk-KNOZWD6E.js → chunk-RIVX6YLS.js} +2 -2
  105. package/dist/cli/chunks/{chunk-HXQ7GAUV.js → chunk-ROC2SSV3.js} +3 -3
  106. package/dist/cli/chunks/{chunk-BIODM56C.js → chunk-S3TU7B7D.js} +2 -2
  107. package/dist/cli/chunks/{chunk-7J34I3CI.js → chunk-S5RNBBJ6.js} +2 -2
  108. package/dist/cli/chunks/{chunk-TG6P44UT.js → chunk-S6FFUCVZ.js} +4 -4
  109. package/dist/cli/chunks/{chunk-WALYYW6B.js → chunk-SIW4N4NE.js} +4 -4
  110. package/dist/cli/chunks/{chunk-DJCLA5AG.js → chunk-SMAC5IX4.js} +2 -2
  111. package/dist/cli/chunks/{chunk-NN6VRHNL.js → chunk-SMBQERK7.js} +2 -2
  112. package/dist/cli/chunks/{chunk-UNAVOVD7.js → chunk-T5Z5LL5Y.js} +3 -3
  113. package/dist/cli/chunks/{chunk-SGGY4QYU.js → chunk-TCNJ5NGT.js} +2 -2
  114. package/dist/cli/chunks/{chunk-QMUZMIV7.js → chunk-TFAS5UND.js} +3 -3
  115. package/dist/cli/chunks/{chunk-SH2UPGO7.js → chunk-TMKJXKY2.js} +2 -2
  116. package/dist/cli/chunks/{chunk-HCFRGEMK.js → chunk-TOE6DKE4.js} +1 -1
  117. package/dist/cli/chunks/{chunk-RVWGW7TI.js → chunk-UOLIGPDW.js} +2 -2
  118. package/dist/cli/chunks/{chunk-FHDYN73D.js → chunk-V5AVC4D4.js} +2 -2
  119. package/dist/cli/chunks/{chunk-LATJ2LKJ.js → chunk-V6GJ3EMZ.js} +1 -1
  120. package/dist/cli/chunks/{chunk-CPVGZYEP.js → chunk-VGAG5TG7.js} +1 -1
  121. package/dist/cli/chunks/{chunk-Q4OITFDX.js → chunk-VQLHHNOH.js} +2 -2
  122. package/dist/cli/chunks/{chunk-QCLEA3CM.js → chunk-VQXHHEPD.js} +2 -2
  123. package/dist/cli/chunks/{chunk-SYXPLFK7.js → chunk-WI5HBS3C.js} +2 -2
  124. package/dist/cli/chunks/{chunk-YPVPWDKL.js → chunk-WL5IRCU4.js} +2 -2
  125. package/dist/cli/chunks/{chunk-7I6ROJGF.js → chunk-WY3H7VHF.js} +2 -2
  126. package/dist/cli/chunks/{chunk-6LKEFWKI.js → chunk-XEMVYJ2Z.js} +3 -3
  127. package/dist/cli/chunks/{chunk-MXHJUAM7.js → chunk-Y36AJ462.js} +2 -2
  128. package/dist/cli/chunks/{chunk-RCPFDAOC.js → chunk-YH7BAX7S.js} +1 -1
  129. package/dist/cli/chunks/{chunk-4PNLBMKY.js → chunk-YS5WV3CJ.js} +1 -1
  130. package/dist/cli/chunks/{chunk-5LM2W3NE.js → chunk-YVG4D6P3.js} +1 -1
  131. package/dist/cli/chunks/{chunk-ZBBHJGPI.js → chunk-YVPPR33H.js} +2 -2
  132. package/dist/cli/chunks/{chunk-HW47UOFK.js → chunk-ZUTYZIWQ.js} +2 -2
  133. package/dist/cli/chunks/{ci-TE3744OR.js → ci-GU2HBK5E.js} +2 -2
  134. package/dist/cli/chunks/{ci-output-GSNS52SY.js → ci-output-FGZTTY3R.js} +2 -2
  135. package/dist/cli/chunks/{circuit-breaker-7ROW7QBW.js → circuit-breaker-6UNLOLMW.js} +2 -2
  136. package/dist/cli/chunks/{claude-flow-setup-Z5GPMILN.js → claude-flow-setup-SCOCIDBC.js} +2 -2
  137. package/dist/cli/chunks/client-XU3ZUFMH.js +2 -0
  138. package/dist/cli/chunks/{cline-installer-6D4SAAM4.js → cline-installer-G6PQERGI.js} +2 -2
  139. package/dist/cli/chunks/{code-JZKH7FRS.js → code-RNKTYBI4.js} +2 -2
  140. package/dist/cli/chunks/{code-index-extractor-JJFTZLOK.js → code-index-extractor-A6KAUQOU.js} +2 -2
  141. package/dist/cli/chunks/{codex-installer-O5KIPN3Z.js → codex-installer-ABWDMKEX.js} +2 -2
  142. package/dist/cli/chunks/{completions-QNMAUYKK.js → completions-TB4E6O46.js} +2 -2
  143. package/dist/cli/chunks/{complexity-analyzer-JYJ7TLYE.js → complexity-analyzer-XS37O7OR.js} +2 -2
  144. package/dist/cli/chunks/{continuedev-installer-JYMVLG6S.js → continuedev-installer-WDY6O2SR.js} +2 -2
  145. package/dist/cli/chunks/{copilot-installer-SSV6GF5G.js → copilot-installer-SDJ3GYLU.js} +2 -2
  146. package/dist/cli/chunks/{cost-tracker-2VZ3IMJZ.js → cost-tracker-MWEXRK7F.js} +2 -2
  147. package/dist/cli/chunks/{coverage-KW4V5D5L.js → coverage-Y3KDB56G.js} +3 -3
  148. package/dist/cli/chunks/cross-domain-router-KKYQWQE7.js +2 -0
  149. package/dist/cli/chunks/{cursor-installer-QVGDAHOI.js → cursor-installer-4U7XENLX.js} +2 -2
  150. package/dist/cli/chunks/{daemon-JKMFDYK2.js → daemon-D6R3BPBJ.js} +3 -3
  151. package/dist/cli/chunks/{dag-attention-scheduler-WKRV7DFE.js → dag-attention-scheduler-EMVUX6ES.js} +2 -2
  152. package/dist/cli/chunks/{detect-ROCCKX63.js → detect-QIJPCTZO.js} +2 -2
  153. package/dist/cli/chunks/{dist-node-QGU7TJTW.js → dist-node-4ZYBZKOB.js} +2 -2
  154. package/dist/cli/chunks/{domain-handler-3UJHQPOR.js → domain-handler-X6CTXJQF.js} +2 -2
  155. package/dist/cli/chunks/{domain-transfer-R47ISVU5.js → domain-transfer-HK4ER37F.js} +2 -2
  156. package/dist/cli/chunks/dream-FBYASIID.js +2 -0
  157. package/dist/cli/chunks/{embed-and-insert-pattern-ZVK7WSY2.js → embed-and-insert-pattern-XKTD5DQ3.js} +2 -2
  158. package/dist/cli/chunks/{eval-WNZWXFOW.js → eval-WEEB3CHY.js} +2 -2
  159. package/dist/cli/chunks/{fast-paths-QPF47RZJ.js → fast-paths-M2ENEKQX.js} +2 -2
  160. package/dist/cli/chunks/{feature-flags-PGIG2W3G.js → feature-flags-3WIZC67K.js} +2 -2
  161. package/dist/cli/chunks/{feature-flags-2MAHHM66.js → feature-flags-CZQXGFGX.js} +2 -2
  162. package/dist/cli/chunks/{file-discovery-JL6FCXRB.js → file-discovery-ERTPM3C4.js} +2 -2
  163. package/dist/cli/chunks/{fleet-LMBZU2GU.js → fleet-WBEPTBQR.js} +3 -3
  164. package/dist/cli/chunks/{gnn-wrapper-GFNFVEER.js → gnn-wrapper-GVRS33BK.js} +2 -2
  165. package/dist/cli/chunks/{heartbeat-handler-YN7ES3AX.js → heartbeat-handler-JQ6NSC6T.js} +4 -4
  166. package/dist/cli/chunks/{heartbeat-scheduler-SII2KJSQ.js → heartbeat-scheduler-7XHIE6IV.js} +2 -2
  167. package/dist/cli/chunks/hnsw-adapter-L7QOLNKP.js +2 -0
  168. package/dist/cli/chunks/hnsw-index-O2YO7WVU.js +2 -0
  169. package/dist/cli/chunks/{hnsw-legacy-bridge-CPMBYE7C.js → hnsw-legacy-bridge-TYO6GZ6Z.js} +2 -2
  170. package/dist/cli/chunks/hnswlib-node-UHEP6UZZ.js +2 -0
  171. package/dist/cli/chunks/{hooks-EYSB7XDW.js → hooks-2GU7LGNL.js} +10 -10
  172. package/dist/cli/chunks/{hybrid-router-BR7O6WT2.js → hybrid-router-Z5V4E5SJ.js} +2 -2
  173. package/dist/cli/chunks/{hypergraph-engine-HAKGWDYX.js → hypergraph-engine-F435AM7S.js} +2 -2
  174. package/dist/cli/chunks/{hypergraph-handler-UCI3LXUF.js → hypergraph-handler-DQMYDUQY.js} +3 -3
  175. package/dist/cli/chunks/impact-analyzer-37TDXM6V.js +2 -0
  176. package/dist/cli/chunks/{init-handler-7RYGU3W5.js → init-handler-Y4NPRT2W.js} +6 -6
  177. package/dist/cli/chunks/init-wizard-ONNAHU4H.js +2 -0
  178. package/dist/cli/chunks/kernel-3S7RJ7PT.js +2 -0
  179. package/dist/cli/chunks/{kilocode-installer-W6ITMEFA.js → kilocode-installer-EUTWNH4I.js} +2 -2
  180. package/dist/cli/chunks/{kiro-installer-2BO34D3O.js → kiro-installer-I3ECJ37F.js} +2 -2
  181. package/dist/cli/chunks/knowledge-graph-GNJMYFT2.js +2 -0
  182. package/dist/cli/chunks/{learning-GEXYG72Z.js → learning-5FW7N6DA.js} +3 -3
  183. package/dist/cli/chunks/{llm-router-EGHA5YOC.js → llm-router-ZRYFNNPU.js} +4 -4
  184. package/dist/cli/chunks/{load-VU2OOAEF.js → load-7BF33NMJ.js} +2 -2
  185. package/dist/cli/chunks/load-test-ZHTSLJMB.js +2 -0
  186. package/dist/cli/chunks/{mcp-NVQFFQ2R.js → mcp-7K6P7FMG.js} +2 -2
  187. package/dist/cli/chunks/{memory-JNXMKTZQ.js → memory-O2DCN3GS.js} +5 -5
  188. package/dist/cli/chunks/memory-backend-LN6NWT4F.js +2 -0
  189. package/dist/cli/chunks/{memory-handlers-NLGQ5I7K.js → memory-handlers-WA63DMQ4.js} +2 -2
  190. package/dist/cli/chunks/{multi-model-executor-SG6OME2A.js → multi-model-executor-SJXBFOK5.js} +2 -2
  191. package/dist/cli/chunks/{opencode-installer-AY4JCZIM.js → opencode-installer-PE7ZV6SV.js} +2 -2
  192. package/dist/cli/chunks/{orchestrator-GWI7HQG6.js → orchestrator-N4GT5IGY.js} +5 -5
  193. package/dist/cli/chunks/{pipeline-7T6IAMC7.js → pipeline-DUTGGNO6.js} +2 -2
  194. package/dist/cli/chunks/{platform-IXUST66M.js → platform-EGUD7X2R.js} +2 -2
  195. package/dist/cli/chunks/{plugin-PW7F6MVH.js → plugin-6ZS3HK43.js} +2 -2
  196. package/dist/cli/chunks/{prime-radiant-advanced-wasm-BUAZHZCM.js → prime-radiant-advanced-wasm-B5S4RUJS.js} +2 -2
  197. package/dist/cli/chunks/protocol-executor-ED36SYE4.js +2 -0
  198. package/dist/cli/chunks/{protocol-handler-6746OC4P.js → protocol-handler-Z3QDY7O6.js} +2 -2
  199. package/dist/cli/chunks/{prove-VYV5DQGC.js → prove-TQHP2XVD.js} +2 -2
  200. package/dist/cli/chunks/{provider-manager-GEO3CUOO.js → provider-manager-2JFXKYMZ.js} +2 -2
  201. package/dist/cli/chunks/qe-reasoning-bank-AC5ZWDAZ.js +2 -0
  202. package/dist/cli/chunks/{quality-4XXENNNW.js → quality-NXDHVPAS.js} +2 -2
  203. package/dist/cli/chunks/queen-coordinator-IZ4RQGKV.js +2 -0
  204. package/dist/cli/chunks/{real-embeddings-ZVEZVXVT.js → real-embeddings-P2LYDBVF.js} +2 -2
  205. package/dist/cli/chunks/{roocode-installer-ZRNDOIDL.js → roocode-installer-YSRXO4W4.js} +2 -2
  206. package/dist/cli/chunks/router-DZVPCD7E.js +2 -0
  207. package/dist/cli/chunks/routing-feedback-3LUE56G4.js +2 -0
  208. package/dist/cli/chunks/{routing-handler-MPSJ7DDI.js → routing-handler-HVDQQF34.js} +2 -2
  209. package/dist/cli/chunks/{ruvector-commands-V4BVCY2U.js → ruvector-commands-5NJ5FQ3E.js} +2 -2
  210. package/dist/cli/chunks/{rvf-dual-writer-X4VNU5KH.js → rvf-dual-writer-GZ2HIIKX.js} +2 -2
  211. package/dist/cli/chunks/{rvf-migration-adapter-KOYYJSNH.js → rvf-migration-adapter-QKEYGJFL.js} +2 -2
  212. package/dist/cli/chunks/{rvf-migration-coordinator-SF5IBKTK.js → rvf-migration-coordinator-5RBME46Y.js} +2 -2
  213. package/dist/cli/chunks/rvf-native-adapter-UTX4WYSI.js +2 -0
  214. package/dist/cli/chunks/safe-db-PEJN42TX.js +2 -0
  215. package/dist/cli/chunks/schedule-UULIQP2J.js +2 -0
  216. package/dist/cli/chunks/scheduler-T57XAXKF.js +2 -0
  217. package/dist/cli/chunks/{security-AA5GBNNU.js → security-KB4TOOFJ.js} +3 -3
  218. package/dist/cli/chunks/shared-rvf-adapter-UZVFV2RJ.js +2 -0
  219. package/dist/cli/chunks/{shared-rvf-dual-writer-EGP3BYIY.js → shared-rvf-dual-writer-UMDFMGVS.js} +2 -2
  220. package/dist/cli/chunks/sqlite-persistence-W7E26KF3.js +2 -0
  221. package/dist/cli/chunks/{status-handler-ARHPRXJ4.js → status-handler-T53CO6SX.js} +2 -2
  222. package/dist/cli/chunks/{structural-health-IDV4RBZV.js → structural-health-AVS2GE7S.js} +2 -2
  223. package/dist/cli/chunks/{sync-7BRLSLDG.js → sync-Q3UHMELK.js} +2 -2
  224. package/dist/cli/chunks/{task-handler-XY42QA3K.js → task-handler-UAJWNRMS.js} +2 -2
  225. package/dist/cli/chunks/{task-handlers-QEHOKEJC.js → task-handlers-HYSHMTJN.js} +3 -3
  226. package/dist/cli/chunks/{test-TQIHDBEX.js → test-GMXM664Y.js} +4 -4
  227. package/dist/cli/chunks/{test-scheduling-BBVOLGFT.js → test-scheduling-PYU4NLDU.js} +3 -3
  228. package/dist/cli/chunks/{token-bootstrap-BUHTWVEF.js → token-bootstrap-5SIETJI6.js} +2 -2
  229. package/dist/cli/chunks/{token-usage-MRVQ7G3H.js → token-usage-3H4KEKTT.js} +2 -2
  230. package/dist/cli/chunks/{hnswlib-node-NWNBNU3W.js → transformers-ZFPUASV4.js} +2 -2
  231. package/dist/cli/chunks/{tree-sitter-wasm-parser-6GDZQNFV.js → tree-sitter-wasm-parser-X72YXRIP.js} +2 -2
  232. package/dist/cli/chunks/{types-F2LWFMRI.js → types-CB2HAVZ6.js} +2 -2
  233. package/dist/cli/chunks/unified-memory-SAIRUPOI.js +2 -0
  234. package/dist/cli/chunks/unified-memory-hnsw-NQALAER6.js +2 -0
  235. package/dist/cli/chunks/unified-persistence-XNGQFWFS.js +2 -0
  236. package/dist/cli/chunks/{upgrade-N676MSDA.js → upgrade-BWAZTJKE.js} +2 -2
  237. package/dist/cli/chunks/{validate-56AA6YYM.js → validate-3OVVTWN6.js} +2 -2
  238. package/dist/cli/chunks/{validate-swarm-YPHV7MMC.js → validate-swarm-WJVG4OUQ.js} +2 -2
  239. package/dist/cli/chunks/{vibium-ABPFT3DX.js → vibium-IIU2F5HC.js} +2 -2
  240. package/dist/cli/chunks/visual-security-CE37LMFR.js +2 -0
  241. package/dist/cli/chunks/{web-tree-sitter-KN4PWKMV.js → web-tree-sitter-RO4TKGTV.js} +2 -2
  242. package/dist/cli/chunks/{windsurf-installer-IZOJBDNN.js → windsurf-installer-7N5CZTJS.js} +2 -2
  243. package/dist/cli/chunks/{witness-chain-H2DM5WMB.js → witness-chain-B4CHDDS5.js} +2 -2
  244. package/dist/cli/chunks/witness-chain-L2KM336B.js +2 -0
  245. package/dist/cli/chunks/{workflow-R42PK45F.js → workflow-FKJKW36Z.js} +4 -4
  246. package/dist/cli/chunks/workflow-orchestrator-BE5PCEBO.js +2 -0
  247. package/dist/cli/chunks/{wrappers-6TIJNWN4.js → wrappers-HU3SB4FT.js} +2 -2
  248. package/dist/domains/code-intelligence/coordinator.js +20 -0
  249. package/dist/integrations/embeddings/index/HNSWIndex.js +16 -6
  250. package/dist/integrations/ruvector/hypergraph-engine.d.ts +45 -0
  251. package/dist/integrations/ruvector/hypergraph-engine.js +102 -0
  252. package/dist/integrations/ruvector/shared-rvf-adapter.js +110 -2
  253. package/dist/learning/pattern-store.js +38 -1
  254. package/dist/mcp/bundle.js +300 -292
  255. package/package.json +2 -2
  256. package/scripts/preinstall.cjs +54 -0
  257. package/dist/cli/chunks/adapter-UOX57IAN.js +0 -2
  258. package/dist/cli/chunks/aqe-learning-engine-KZES2SKE.js +0 -2
  259. package/dist/cli/chunks/base-7MXMBRSW.js +0 -2
  260. package/dist/cli/chunks/browser-workflow-4C5R54CZ.js +0 -2
  261. package/dist/cli/chunks/chunk-35HDLA22.js +0 -2
  262. package/dist/cli/chunks/chunk-F32R4LVS.js +0 -2
  263. package/dist/cli/chunks/chunk-ZTWHRDUY.js +0 -2
  264. package/dist/cli/chunks/client-S5TFLKHN.js +0 -2
  265. package/dist/cli/chunks/cross-domain-router-GZG5GU7Q.js +0 -2
  266. package/dist/cli/chunks/dream-PGYTIOQS.js +0 -2
  267. package/dist/cli/chunks/hnsw-adapter-ANJKCXK6.js +0 -2
  268. package/dist/cli/chunks/hnsw-index-D4CJEP7L.js +0 -2
  269. package/dist/cli/chunks/impact-analyzer-55JW3OK6.js +0 -2
  270. package/dist/cli/chunks/init-wizard-MWKJNVB2.js +0 -2
  271. package/dist/cli/chunks/kernel-5MKKDS4J.js +0 -2
  272. package/dist/cli/chunks/knowledge-graph-2A7AE7L7.js +0 -2
  273. package/dist/cli/chunks/load-test-UD4ZXCGG.js +0 -2
  274. package/dist/cli/chunks/memory-backend-X3Z4IAYG.js +0 -2
  275. package/dist/cli/chunks/protocol-executor-AB6KPFK5.js +0 -2
  276. package/dist/cli/chunks/qe-reasoning-bank-Y4IDDIYA.js +0 -2
  277. package/dist/cli/chunks/queen-coordinator-GBSTXGA2.js +0 -2
  278. package/dist/cli/chunks/router-JA2X4MF6.js +0 -2
  279. package/dist/cli/chunks/routing-feedback-YCVJIWFM.js +0 -2
  280. package/dist/cli/chunks/rvf-native-adapter-5YN7EEB5.js +0 -2
  281. package/dist/cli/chunks/safe-db-S46Y7IC5.js +0 -2
  282. package/dist/cli/chunks/schedule-KSDHFWSY.js +0 -2
  283. package/dist/cli/chunks/scheduler-PLFJHU54.js +0 -2
  284. package/dist/cli/chunks/shared-rvf-adapter-MLXVW4N6.js +0 -2
  285. package/dist/cli/chunks/sqlite-persistence-RK3JWKB4.js +0 -2
  286. package/dist/cli/chunks/transformers-3PFLFSWR.js +0 -2
  287. package/dist/cli/chunks/unified-memory-JVZZMZRE.js +0 -2
  288. package/dist/cli/chunks/unified-memory-hnsw-EJJHCMFR.js +0 -2
  289. package/dist/cli/chunks/unified-persistence-IEKOYCBL.js +0 -2
  290. package/dist/cli/chunks/visual-security-APS7K3TZ.js +0 -2
  291. package/dist/cli/chunks/witness-chain-DMHO7R75.js +0 -2
  292. package/dist/cli/chunks/workflow-orchestrator-BDHRNVOG.js +0 -2
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.20");process.exit(0)}
3
- import{a as R,b as te,c as ne}from"./chunk-DERQRIAR.js";import{a as oe,b as se}from"./chunk-MXDGMXJA.js";import{g as J}from"./chunk-QMUZMIV7.js";import"./chunk-GXO42P3X.js";import"./chunk-LATJ2LKJ.js";import"./chunk-Z5MG54R4.js";import"./chunk-5LM2W3NE.js";import"./chunk-BXGAXGME.js";import"./chunk-ZTWHRDUY.js";import{a as ee}from"./chunk-ZBBHJGPI.js";import"./chunk-SGGY4QYU.js";import"./chunk-QAZYSC3T.js";import"./chunk-LJW7BTMK.js";import{f as T,k as F,o as C}from"./chunk-CEVIRL2S.js";import"./chunk-MXAEZHW6.js";import"./chunk-F32R4LVS.js";import"./chunk-MIST354H.js";import{b as X,d as Ee}from"./chunk-JCPXG42O.js";import"./chunk-TV5OVFKK.js";import"./chunk-NN6VRHNL.js";import"./chunk-NQIOXSHW.js";import"./chunk-WF6MKBRI.js";import"./chunk-4IUNBRKQ.js";import"./chunk-G7HYTJDG.js";import"./chunk-AFMLL2G3.js";import"./chunk-J7SDO52P.js";import"./chunk-HW47UOFK.js";import"./chunk-FUTRX4ZT.js";import"./chunk-AVVRA6FG.js";import"./chunk-4SBMTHTA.js";import"./chunk-H647PYXW.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-PGYTIOQS.js"),{createQEReasoningBank:E}=await import("./qe-reasoning-bank-Y4IDDIYA.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-JVZZMZRE.js"),t=e();t.isInitialized()||await t.initialize();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}let s=`cli-${Date.now()}-${q().slice(0,8)}`,r=n.durationMs||0,a;if(n.success){let c=r>0&&r<5e3?.1:0,i=n.source.includes("post-task")?.1:n.source.includes("post-edit")?.05:0;a=Math.min(.95,.7+c+i)}else{let c=n.source.includes("post-task")?.15:n.source.includes("post-edit")?.1:0;a=Math.min(.6,.3+c)}o.prepare(`
2
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
3
+ import{a as R,b as te,c as ne}from"./chunk-5PZG4WUA.js";import{a as oe,b as se}from"./chunk-KID7PTBZ.js";import{g as J}from"./chunk-TFAS5UND.js";import"./chunk-QSLXOYPR.js";import"./chunk-V6GJ3EMZ.js";import"./chunk-4Z4C7BXV.js";import"./chunk-YVG4D6P3.js";import"./chunk-C4CZXAOE.js";import"./chunk-AMOCYHP3.js";import{a as ee}from"./chunk-YVPPR33H.js";import"./chunk-TCNJ5NGT.js";import"./chunk-E7J32PW2.js";import"./chunk-IM7X6BDZ.js";import{f as T,k as F,o as C}from"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import{b as X,d as Ee}from"./chunk-PEOTZFNZ.js";import"./chunk-OK5JHHXK.js";import"./chunk-SMBQERK7.js";import"./chunk-GDZ6XQRI.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.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-FBYASIID.js"),{createQEReasoningBank:E}=await import("./qe-reasoning-bank-AC5ZWDAZ.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-SAIRUPOI.js"),t=e();t.isInitialized()||await t.initialize();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}let s=`cli-${Date.now()}-${q().slice(0,8)}`,r=n.durationMs||0,a;if(n.success){let c=r>0&&r<5e3?.1:0,i=n.source.includes("post-task")?.1:n.source.includes("post-edit")?.05:0;a=Math.min(.95,.7+c+i)}else{let c=n.source.includes("post-task")?.15:n.source.includes("post-edit")?.1:0;a=Math.min(.6,.3+c)}o.prepare(`
4
4
  INSERT OR REPLACE INTO captured_experiences
5
5
  (id, task, agent, domain, success, quality, duration_ms,
6
6
  started_at, completed_at, source)
7
7
  VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), ?)
8
- `).run(s,n.task.slice(0,500),n.agent,n.domain,n.success?1:0,a,r,n.source),(async()=>{try{let{computeRealEmbedding:c}=await import("./real-embeddings-ZVEZVXVT.js"),i=`${n.domain}: ${n.task}`.slice(0,512),E=await c(i);o.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(E).buffer),E.length,s)}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-JVZZMZRE.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(s,n.task.slice(0,500),n.agent,n.domain,n.success?1:0,a,r,n.source),(async()=>{try{let{computeRealEmbedding:c}=await import("./real-embeddings-P2LYDBVF.js"),i=`${n.domain}: ${n.task}`.slice(0,512),E=await c(i);o.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(E).buffer),E.length,s)}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-SAIRUPOI.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(`
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)
@@ -57,7 +57,7 @@ import{a as R,b as te,c as ne}from"./chunk-DERQRIAR.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-ZVEZVXVT.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-JVZZMZRE.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(f){console.error(O.dim(`[hooks] persistTaskOutcome txn: ${f instanceof Error?f.message:"unknown"}`))}return(async()=>{try{let{computeRealEmbedding:f}=await import("./real-embeddings-P2LYDBVF.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-SAIRUPOI.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 = ?
@@ -70,7 +70,7 @@ import{a as R,b as te,c as ne}from"./chunk-DERQRIAR.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-JVZZMZRE.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,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-SAIRUPOI.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 (
@@ -80,7 +80,7 @@ import{a as R,b as te,c as ne}from"./chunk-DERQRIAR.js";import{a as oe,b as se}f
80
80
  ORDER BY (CASE WHEN used_agent = ? THEN 0 ELSE 1 END), created_at DESC
81
81
  LIMIT 1
82
82
  )
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-JVZZMZRE.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(`
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-SAIRUPOI.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
84
  SELECT
85
85
  domain,
86
86
  agent,
@@ -97,7 +97,7 @@ import{a as R,b as te,c as ne}from"./chunk-DERQRIAR.js";import{a as oe,b as se}f
97
97
  HAVING cnt >= 3 AND avg_quality >= 0.5 AND success_rate >= 0.6
98
98
  ORDER BY avg_quality DESC
99
99
  LIMIT 50
100
- `).all();if(r.length===0)return 0;let{v4:a}=await import("./dist-node-QGU7TJTW.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(`
100
+ `).all();if(r.length===0)return 0;let{v4:a}=await import("./dist-node-4ZYBZKOB.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
101
  SELECT id FROM qe_patterns
102
102
  WHERE qe_domain = ? AND name = ?
103
103
  LIMIT 1
@@ -115,11 +115,11 @@ import{a as R,b as te,c as ne}from"./chunk-DERQRIAR.js";import{a as oe,b as se}f
115
115
  confidence, usage_count, success_rate, quality_score, tier,
116
116
  template_json, context_json, created_at, successful_uses
117
117
  ) 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-ZVK7WSY2.js");await A(t,m,d,u,S),c++}t.prepare(`
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-XKTD5DQ3.js");await A(t,m,d,u,S),c++}t.prepare(`
119
119
  UPDATE captured_experiences
120
120
  SET application_count = application_count + 1
121
121
  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-EGP3BYIY.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(`
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-UMDFMGVS.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
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
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
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(`
@@ -128,7 +128,7 @@ import{a as R,b as te,c as ne}from"./chunk-DERQRIAR.js";import{a as oe,b as se}f
128
128
  \u{1F504} Alternatives:`)),a.alternatives.forEach(c=>{console.log(v.dim(` - ${c.agent}: ${(c.score*100).toFixed(1)}%`))})),console.log(v.bold(`
129
129
  \u{1F4C2} Detected Domains:`),a.domains.join(", ")),console.log(v.bold(`
130
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-JVZZMZRE.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(`
131
+ \u{1F4D6} Reasoning:`),v.dim(a.reasoning)));try{let{getUnifiedMemory:c}=await import("./unified-memory-SAIRUPOI.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(`
132
132
  INSERT OR REPLACE INTO routing_outcomes (
133
133
  id, task_json, decision_json, used_agent,
134
134
  followed_recommendation, success, quality_score,
@@ -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.20");process.exit(0)}
2
- import{a as h,b as z}from"./chunk-T3TEQH2H.js";import{a as b,b as B,c as P,d as O,e as F}from"./chunk-7Y4QQ6JL.js";import{b as k,c as x,d as _,e as w}from"./chunk-EJQRDMON.js";import{a as M}from"./chunk-HCFRGEMK.js";import{b as S,c as U}from"./chunk-NN6VRHNL.js";import{i as I}from"./chunk-NQIOXSHW.js";import"./chunk-H647PYXW.js";var m={heavyweight:{requiresReasoning:!0,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!0,requiresJsonMode:!0,minContextSize:1e5,costSensitivity:"low",latencySensitivity:"low"},standard:{requiresReasoning:!0,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!0,minContextSize:5e4,costSensitivity:"medium",latencySensitivity:"medium"},lightweight:{requiresReasoning:!1,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!0,minContextSize:16e3,costSensitivity:"medium",latencySensitivity:"high"},minimal:{requiresReasoning:!1,requiresTools:!1,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!1,minContextSize:4e3,costSensitivity:"high",latencySensitivity:"medium"}},$={security:m.heavyweight,"test-generation":m.standard,"code-analysis":m.standard,learning:m.standard,performance:{...m.lightweight,costSensitivity:"high"},coordination:m.lightweight,general:{...m.lightweight,requiresJsonMode:!1,latencySensitivity:"medium"},documentation:{...m.minimal,minContextSize:16e3},simple:m.minimal};var v=class{rules=[];constructor(e=[]){this.setRules(e)}setRules(e){this.rules=[...e].filter(t=>t.enabled).sort((t,r)=>r.priority-t.priority)}getRules(){return[...this.rules]}addRule(e){this.rules.push(e),this.rules=this.rules.filter(t=>t.enabled).sort((t,r)=>r.priority-t.priority)}removeRule(e){let t=this.rules.findIndex(r=>r.id===e);return t>=0?(this.rules.splice(t,1),!0):!1}setRuleEnabled(e,t){let r=this.rules.find(i=>i.id===e);return r?(r.enabled=t,this.rules=this.rules.filter(i=>i.enabled).sort((i,o)=>o.priority-i.priority),!0):!1}evaluate(e){let t=0;for(let r of this.rules)if(t++,this.matchesCondition(e,r.condition))return{rule:r,rulesEvaluated:t};return null}evaluateAll(e){return this.rules.filter(t=>this.matchesCondition(e,t.condition))}matchesCondition(e,t){if(t.agentType!==void 0&&(!e.agentType||!t.agentType.includes(e.agentType))||t.requiresTools!==void 0&&!!e.requiresTools!==t.requiresTools)return!1;if(t.complexity!==void 0){let r=Array.isArray(t.complexity)?t.complexity:[t.complexity];if(!e.complexity||!r.includes(e.complexity))return!1}if(t.localOnly!==void 0&&t.localOnly){let r=["ollama","onnx"];if(e.preferredProvider&&!r.includes(e.preferredProvider))return!1}if(t.requiresReasoning!==void 0&&t.requiresReasoning&&e.complexity==="low")return!1;if(t.tokenRange!==void 0){let r=this.estimateTokens(e);if(t.tokenRange.min!==void 0&&r<t.tokenRange.min||t.tokenRange.max!==void 0&&r>t.tokenRange.max)return!1}return!(t.requiredCapabilities!==void 0&&t.requiredCapabilities.length>0&&(!e.requiredCapabilities||e.requiredCapabilities.length===0||!t.requiredCapabilities.every(i=>e.requiredCapabilities.includes(i)))||t.custom!==void 0&&!t.custom(e))}estimateTokens(e){let t=0;e.systemPrompt&&(t+=Math.ceil(e.systemPrompt.length/4));for(let r of e.messages)t+=Math.ceil(r.content.length/4);return t}},A=[{id:"security-agents-opus",name:"Security Agents to Claude Opus",description:"Route security-critical agents to Claude Opus for best security analysis",condition:{agentType:["security-auditor","security-architect","v3-qe-security-scanner"]},action:{provider:"claude",model:"claude-opus-4-7",temperature:.1},enabled:!0,priority:100},{id:"test-gen-with-tools",name:"Test Generation with Tools",description:"Route test generation requests that need tools to Claude Sonnet",condition:{agentType:["v3-qe-test-generator","tester"],requiresTools:!0},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:95},{id:"high-complexity-reasoning",name:"High Complexity Reasoning",description:"Route high complexity tasks requiring reasoning to advanced models",condition:{complexity:"high",requiresReasoning:!0},action:{provider:"claude",model:"claude-opus-4-7",temperature:.2},enabled:!0,priority:90},{id:"code-analysis-agents",name:"Code Analysis Agents",description:"Route code analysis to Claude Sonnet for balanced performance",condition:{agentType:["code-analyzer","v3-qe-code-intelligence","reviewer"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.2},enabled:!0,priority:85},{id:"coverage-analysis",name:"Coverage Analysis Agents",description:"Route coverage analysis to efficient models",condition:{agentType:["v3-qe-coverage-analyzer"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.1},enabled:!0,priority:80},{id:"defect-prediction",name:"Defect Prediction Agents",description:"Route defect prediction to capable models",condition:{agentType:["v3-qe-defect-predictor"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:75},{id:"medium-complexity",name:"Medium Complexity Tasks",description:"Route medium complexity to balanced Claude Sonnet",condition:{complexity:"medium"},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:60},{id:"low-complexity-haiku",name:"Low Complexity to Haiku",description:"Route low complexity tasks to Haiku for cost efficiency",condition:{complexity:"low"},action:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.3},enabled:!0,priority:50},{id:"local-only-ollama",name:"Local Only Requests",description:"Route local-only requests to Ollama",condition:{localOnly:!0},action:{provider:"ollama",model:"llama3.1",temperature:.3},enabled:!0,priority:40},{id:"small-requests-haiku",name:"Small Token Requests",description:"Route small requests to Haiku for efficiency",condition:{tokenRange:{max:500}},action:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.3},enabled:!0,priority:30}];import{randomUUID as H}from"crypto";var f=class{decisions=[];providerCalls=[];fallbacks=[];cacheHits=0;cacheMisses=0;startTime=new Date;maxRecords;maxCallRecords;constructor(e={}){this.maxRecords=e.maxRecords??1e4,this.maxCallRecords=e.maxCallRecords??5e3}recordRoutingDecision(e,t,r={}){let i={id:`rd-${Date.now()}-${H().slice(0,8)}`,timestamp:new Date,provider:e.providerType,model:e.model,mode:this.inferMode(e.reason),reason:e.reason,latencyMs:t,decisionTimeMs:e.metadata.decisionTimeMs,agentType:r.agentType,success:r.success??!0,tokenUsage:r.tokenUsage,cost:r.cost,wasFallback:e.reason==="fallback",ruleId:e.matchedRule?.id};this.decisions.push(i),this.trimRecords()}recordProviderCall(e,t,r,i,o={}){let n=o.inputTokens??Math.floor(i*.7),a=o.outputTokens??i-n,c={timestamp:new Date,provider:e,model:t,latencyMs:r,inputTokens:n,outputTokens:a,totalTokens:i,success:o.success??!0,cost:o.cost,agentType:o.agentType};this.providerCalls.push(c),this.trimCallRecords()}recordFallback(e,t,r,i){let o={timestamp:new Date,fromProvider:e,toProvider:t,reason:r,agentType:i};this.fallbacks.push(o),this.fallbacks.length>1e3&&(this.fallbacks=this.fallbacks.slice(-1e3))}recordCacheHit(){this.cacheHits++}recordCacheMiss(){this.cacheMisses++}getMetrics(e="all"){let t=this.getWindowStart(e),r=this.filterByTime(this.decisions,t),i=this.filterByTime(this.providerCalls,t),o=this.filterByTime(this.fallbacks,t),n=this.calculateProviderMetrics(r,i),a=this.calculateAgentMetrics(r,i),c=r.map(u=>u.decisionTimeMs),s=r.length,l=this.countByMode(r),d=r.filter(u=>u.wasFallback).length,g=r.filter(u=>u.ruleId).length;return{byProvider:Object.fromEntries(n),byAgentType:a,totalDecisions:s,decisionsByMode:l,avgDecisionTimeMs:this.average(c),p95DecisionTimeMs:this.percentile(c,95),p99DecisionTimeMs:this.percentile(c,99),fallbackRate:s>0?d/s:0,ruleMatchRate:s>0?g/s:0,estimatedCostSavings:this.calculateCostSavings(r),ruleStats:{totalEvaluated:r.reduce((u,y)=>u+1,0),matched:g,avgRulesPerDecision:1},cacheStats:{hits:this.cacheHits,misses:this.cacheMisses,hitRate:this.cacheHits+this.cacheMisses>0?this.cacheHits/(this.cacheHits+this.cacheMisses):0},period:{start:t,end:new Date},recentDecisions:r.slice(-50),fallbackStats:this.calculateFallbackStats(o)}}getMetricsByProvider(e){let t=this.decisions.filter(c=>c.provider===e),r=this.providerCalls.filter(c=>c.provider===e),i=r.map(c=>c.latencyMs),o=t.map(c=>c.decisionTimeMs),n=r.filter(c=>c.success),a=r.filter(c=>!c.success);return{provider:e,selectionCount:t.length,ruleMatchCount:t.filter(c=>c.ruleId).length,fallbackCount:t.filter(c=>c.wasFallback).length,avgDecisionTimeMs:this.average(o),successRate:r.length>0?n.length/r.length:1,avgLatencyMs:this.average(i),p95LatencyMs:this.percentile(i,95),p99LatencyMs:this.percentile(i,99),totalCost:r.reduce((c,s)=>c+(s.cost??0),0),totalTokens:r.reduce((c,s)=>c+s.totalTokens,0),totalInputTokens:r.reduce((c,s)=>c+s.inputTokens,0),totalOutputTokens:r.reduce((c,s)=>c+s.outputTokens,0),circuitState:"closed",latencyHistogram:i.slice(-100),decisionTimeHistogram:o.slice(-100),errorCount:a.length,lastError:a.length>0?a[a.length-1].timestamp:void 0,recentCalls:r.slice(-20)}}getMetricsByAgentType(e){let t=this.decisions.filter(s=>s.agentType===e),r=this.providerCalls.filter(s=>s.agentType===e),i=new Map,o=new Map;for(let s of t)i.set(s.provider,(i.get(s.provider)??0)+1),o.set(s.model,(o.get(s.model)??0)+1);let n=r.map(s=>s.latencyMs),a=t.filter(s=>s.wasFallback).length,c=t.filter(s=>s.success).length;return{agentType:e,totalDecisions:t.length,providerDistribution:i,modelDistribution:o,avgLatencyMs:this.average(n),totalCost:r.reduce((s,l)=>s+(l.cost??0),0),totalTokens:r.reduce((s,l)=>s+l.totalTokens,0),fallbackRate:t.length>0?a/t.length:0,successRate:t.length>0?c/t.length:1}}getAuditLog(e={}){let t=this.decisions;e.since&&(t=t.filter(i=>i.timestamp>=e.since)),e.provider&&(t=t.filter(i=>i.provider===e.provider)),e.agentType&&(t=t.filter(i=>i.agentType===e.agentType));let r=e.limit??100;return t.slice(-r).map(i=>({id:i.id,timestamp:i.timestamp,context:{agentType:i.agentType},decision:{providerType:i.provider,model:i.model,providerModelId:i.model,reason:i.reason,confidence:1,metadata:{decisionTimeMs:i.decisionTimeMs,timestamp:i.timestamp}},outcome:{success:i.success,latencyMs:i.latencyMs,tokenUsage:i.tokenUsage,cost:i.cost}}))}resetMetrics(){this.decisions=[],this.providerCalls=[],this.fallbacks=[],this.cacheHits=0,this.cacheMisses=0,this.startTime=new Date}inferMode(e){switch(e){case"manual":return"manual";case"rule-match":return"rule-based";case"cost-optimization":return"cost-optimized";case"performance-optimization":return"performance-optimized";default:return"rule-based"}}trimRecords(){this.decisions.length>this.maxRecords&&(this.decisions=this.decisions.slice(-this.maxRecords))}trimCallRecords(){this.providerCalls.length>this.maxCallRecords&&(this.providerCalls=this.providerCalls.slice(-this.maxCallRecords))}getWindowStart(e){let t=new Date;switch(e){case"1m":return new Date(t.getTime()-60*1e3);case"5m":return new Date(t.getTime()-300*1e3);case"15m":return new Date(t.getTime()-900*1e3);case"1h":return new Date(t.getTime()-3600*1e3);case"24h":return new Date(t.getTime()-1440*60*1e3);case"7d":return new Date(t.getTime()-10080*60*1e3);default:return this.startTime}}filterByTime(e,t){return e.filter(r=>r.timestamp>=t)}calculateProviderMetrics(e,t){let r=new Map;for(let i of h){let o=e.filter(l=>l.provider===i),n=t.filter(l=>l.provider===i);if(o.length===0&&n.length===0)continue;let a=n.map(l=>l.latencyMs),c=o.map(l=>l.decisionTimeMs),s=n.filter(l=>l.success);r.set(i,{provider:i,selectionCount:o.length,ruleMatchCount:o.filter(l=>l.ruleId).length,fallbackCount:o.filter(l=>l.wasFallback).length,avgDecisionTimeMs:this.average(c),successRate:n.length>0?s.length/n.length:1,avgLatencyMs:this.average(a),p95LatencyMs:this.percentile(a,95),p99LatencyMs:this.percentile(a,99),totalCost:n.reduce((l,d)=>l+(d.cost??0),0),totalTokens:n.reduce((l,d)=>l+d.totalTokens,0),circuitState:"closed"})}return r}calculateAgentMetrics(e,t){let r=new Set;e.forEach(o=>o.agentType&&r.add(o.agentType)),t.forEach(o=>o.agentType&&r.add(o.agentType));let i=new Map;for(let o of r)i.set(o,this.getMetricsByAgentType(o));return i}countByMode(e){let t={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0};for(let r of e)t[r.mode]++;return t}calculateFallbackStats(e){let t=new Map,r=new Map;for(let i of e)t.set(i.fromProvider,(t.get(i.fromProvider)??0)+1),r.set(i.reason,(r.get(i.reason)??0)+1);return{total:e.length,byProvider:t,byReason:r}}calculateCostSavings(e){return e.reduce((t,r)=>r.cost&&r.mode==="cost-optimized"?t+r.cost.totalCost*.2:t,0)}average(e){return e.length===0?0:e.reduce((t,r)=>t+r,0)/e.length}percentile(e,t){if(e.length===0)return 0;let r=[...e].sort((o,n)=>o-n),i=Math.ceil(t/100*r.length)-1;return r[Math.max(0,i)]}};function D(p){return new f(p)}var C=class{records=[];alerts=[];maxRecords;alertCheckInterval;constructor(e={}){this.maxRecords=e.maxRecords??1e4}recordCost(e,t,r,i,o={}){let n=this.calculateCost(t,r,i),a={timestamp:new Date,provider:e,model:t,inputTokens:r,outputTokens:i,inputCost:n.inputCost,outputCost:n.outputCost,totalCost:n.totalCost,agentType:o.agentType,requestId:o.requestId};return this.records.push(a),this.trimRecords(),this.checkAlerts(),a}recordCostFromInfo(e,t,r,i,o={}){let n={timestamp:new Date,provider:e,model:t,inputTokens:r.promptTokens,outputTokens:r.completionTokens,inputCost:i.inputCost,outputCost:i.outputCost,totalCost:i.totalCost,agentType:o.agentType,requestId:o.requestId};return this.records.push(n),this.trimRecords(),this.checkAlerts(),n}getCostByProvider(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Map;for(let o of h){let n=r.filter(s=>s.provider===o);if(n.length===0)continue;let a=n.reduce((s,l)=>s+l.totalCost,0),c=n.reduce((s,l)=>s+l.inputTokens+l.outputTokens,0);i.set(o,{totalCost:a,totalTokens:c,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:c>0?a/c:0})}return i}getCostByAgentType(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Set;r.forEach(a=>a.agentType&&i.add(a.agentType));let o=new Map;for(let a of i){let c=r.filter(d=>d.agentType===a),s=c.reduce((d,g)=>d+g.totalCost,0),l=c.reduce((d,g)=>d+g.inputTokens+g.outputTokens,0);o.set(a,{totalCost:s,totalTokens:l,totalRequests:c.length,avgCostPerRequest:c.length>0?s/c.length:0,avgCostPerToken:l>0?s/l:0})}let n=r.filter(a=>!a.agentType);if(n.length>0){let a=n.reduce((s,l)=>s+l.totalCost,0),c=n.reduce((s,l)=>s+l.inputTokens+l.outputTokens,0);o.set("unknown",{totalCost:a,totalTokens:c,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:c>0?a/c:0})}return o}getCostByModel(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Set;r.forEach(n=>i.add(n.model));let o=new Map;for(let n of i){let a=r.filter(l=>l.model===n),c=a.reduce((l,d)=>l+d.totalCost,0),s=a.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0);o.set(n,{totalCost:c,totalTokens:s,totalRequests:a.length,avgCostPerRequest:a.length>0?c/a.length:0,avgCostPerToken:s>0?c/s:0})}return o}getTotalCost(e="all"){let t=this.getPeriodStart(e);return this.filterByTime(t).reduce((i,o)=>i+o.totalCost,0)}getCostTrend(e){let t=new Date,r=[],i,o;switch(e){case"1h":i=300*1e3,o=12;break;case"24h":i=3600*1e3,o=24;break;case"7d":i=1440*60*1e3,o=7;break}for(let n=o-1;n>=0;n--){let a=new Date(t.getTime()-n*i),c=new Date(a.getTime()-i),s=this.records.filter(l=>l.timestamp>=c&&l.timestamp<a);r.push({timestamp:a,cost:s.reduce((l,d)=>l+d.totalCost,0),tokens:s.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0),requests:s.length})}return r}addBudgetAlert(e,t,r){let i={threshold:e,period:t,callback:r,active:!0};return this.alerts.push(i),this.alertCheckInterval||(this.alertCheckInterval=setInterval(()=>this.checkAlerts(),6e4)),`alert-${this.alerts.length-1}`}removeBudgetAlert(e){return e>=0&&e<this.alerts.length?(this.alerts.splice(e,1),this.alerts.length===0&&this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0),!0):!1}getOptimizationSuggestions(){let e=[],t=this.getCostByModel("24h");for(let[n,a]of t)M[n]&&a.totalCost>1&&(n.includes("opus")&&e.push({type:"model-switch",description:"Consider using Sonnet instead of Opus for non-critical tasks",estimatedSavings:a.totalCost*.5,currentCost:a.totalCost,suggestedModel:"claude-sonnet-4-6"}),n==="gpt-4o"&&e.push({type:"model-switch",description:"Consider using GPT-4o-mini for simpler tasks",estimatedSavings:a.totalCost*.7,currentCost:a.totalCost,suggestedModel:"gpt-4o-mini"}));let r=this.getCostByProvider("24h"),i=[...r.values()].reduce((n,a)=>n+a.totalCost,0);return i>10&&!r.has("ollama")&&e.push({type:"provider-switch",description:"Consider using Ollama for development/testing workloads",estimatedSavings:i*.3,currentCost:i,suggestedProvider:"ollama"}),[...t.values()].reduce((n,a)=>n+a.totalRequests,0)>100&&e.push({type:"caching",description:"Enable response caching to reduce redundant API calls",estimatedSavings:i*.15,currentCost:i}),e}getRecords(){return[...this.records]}clear(){this.records=[]}reset(){this.records=[],this.alerts=[],this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0)}dispose(){this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0)}calculateCost(e,t,r){let i=M[e];if(!i)return{inputCost:0,outputCost:0,totalCost:0,currency:"USD"};let o=t/1e6*i.input,n=r/1e6*i.output;return{inputCost:o,outputCost:n,totalCost:o+n,currency:"USD"}}trimRecords(){this.records.length>this.maxRecords&&(this.records=this.records.slice(-this.maxRecords))}getPeriodStart(e){let t=new Date;switch(e){case"1h":return new Date(t.getTime()-3600*1e3);case"24h":return new Date(t.getTime()-1440*60*1e3);case"7d":return new Date(t.getTime()-10080*60*1e3);case"30d":return new Date(t.getTime()-720*60*60*1e3);default:return new Date(0)}}filterByTime(e){return this.records.filter(t=>t.timestamp>=e)}checkAlerts(){for(let e of this.alerts){if(!e.active)continue;let t=this.getTotalCost(e.period);if(t>=e.threshold){e.active=!1;let r=this.getPeriodStart(e.period),i=this.filterByTime(r),o=i.reduce((n,a)=>n+a.inputTokens+a.outputTokens,0);try{e.callback({totalCost:t,totalTokens:o,totalRequests:i.length,avgCostPerRequest:i.length>0?t/i.length:0,avgCostPerToken:o>0?t/o:0})}catch(n){console.error("Budget alert callback error:",n)}}}}};function E(p){return new C(p)}U();var R=class{cache=new Map;maxSize;ttlMs;constructor(e=100,t=6e4){this.maxSize=e,this.ttlMs=t}get(e){let t=this.cache.get(e);return t?Date.now()>t.expiresAt?(this.cache.delete(e),null):t.decision:null}set(e,t){if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r&&this.cache.delete(r)}this.cache.set(e,{decision:t,expiresAt:Date.now()+this.ttlMs})}clear(){this.cache.clear()}getStats(){return{hits:0,misses:0,size:this.cache.size}}},T=class{config;providerManager;ruleEngine;decisionCache;metrics;routerMetrics;costMetrics;initialized=!1;constructor(e,t){this.providerManager=e,this.config={...z,...t};let r=this.config.rules.length>0?this.config.rules:A;this.ruleEngine=new v(r),this.decisionCache=new R(100,this.config.decisionCacheTtlMs),this.metrics=new q,this.routerMetrics=D(),this.costMetrics=E()}async initialize(){this.initialized||(await this.providerManager.initialize(),this.initialized=!0)}getMode(){return this.config.mode}setMode(e){this.config.mode=e,this.decisionCache.clear()}getConfig(){return{...this.config}}updateConfig(e){this.config={...this.config,...e},e.rules&&this.ruleEngine.setRules(e.rules),e.decisionCacheTtlMs&&(this.decisionCache=new R(100,e.decisionCacheTtlMs))}async selectProvider(e){await this.ensureInitialized();let t=Date.now();if(this.config.cacheDecisions){let i=this.generateCacheKey(e),o=this.decisionCache.get(i);if(o)return this.metrics.recordCacheHit(),this.routerMetrics.recordCacheHit(),o;this.metrics.recordCacheMiss(),this.routerMetrics.recordCacheMiss()}let r;switch(this.config.mode){case"manual":r=await this.selectManual(e);break;case"rule-based":r=await this.selectRuleBased(e);break;case"cost-optimized":r=await this.selectCostOptimized(e);break;case"performance-optimized":r=await this.selectPerformanceOptimized(e);break;default:r=await this.selectRuleBased(e)}if(r.metadata.decisionTimeMs=Date.now()-t,this.config.cacheDecisions){let i=this.generateCacheKey(e);this.decisionCache.set(i,r)}return this.metrics.recordDecision(r,this.config.mode),r}async chat(e){await this.ensureInitialized();let t=I(),r=await this.selectProvider(e),i=e.agentType??"";if(_(i)&&(x(r.model)||x(r.providerModelId))){let n=r.model,a=r.providerModelId;r.model=w(i,r.model,k),r.providerModelId=w(i,r.providerModelId,k),console.warn(`[aqe] ADR-093: ${i} pinned to ${r.model} (was ${n}/${a}); set AQE_CYBER_VERIFIED=true after Cyber Verification Program approval`)}return await this.executeWithFallback(e,r,t)}async*stream(e){await this.ensureInitialized();let t=await this.selectProvider(e),r=await this.chat(e),i=100;for(let o=0;o<r.content.length;o+=i){let n=o+i>=r.content.length;yield{type:n?"done":"content",delta:r.content.slice(o,o+i),accumulated:r.content.slice(0,o+i),done:n,tokenCount:Math.ceil((o+i)/4),model:r.model,provider:t.providerType,usage:n?r.usage:void 0}}}getMetrics(){return this.metrics.getMetrics()}getEnhancedMetrics(e){return this.routerMetrics.getMetrics(e)}getProviderMetrics(e){return this.routerMetrics.getMetricsByProvider(e)}getAgentMetrics(e){return this.routerMetrics.getMetricsByAgentType(e)}getCostByProvider(e){return this.costMetrics.getCostByProvider(e)}getCostByAgentType(e){return this.costMetrics.getCostByAgentType(e)}getCostByModel(e){return this.costMetrics.getCostByModel(e)}getTotalCost(e){return this.costMetrics.getTotalCost(e)}getCostTrend(e){return this.costMetrics.getCostTrend(e)}getAuditLog(e){return this.routerMetrics.getAuditLog(e)}getOptimizationSuggestions(){return this.costMetrics.getOptimizationSuggestions()}resetMetrics(){this.metrics.reset(),this.routerMetrics.resetMetrics(),this.costMetrics.reset()}clearCache(){this.decisionCache.clear()}async selectManual(e){let t=e.preferredProvider??this.config.defaultProvider,r=e.model??this.config.defaultModel,i=this.providerManager.getProvider(t);return i?this.createDecision(i,t,r,"manual"):this.createFallbackDecision(e,"manual")}async selectRuleBased(e){let t=this.ruleEngine.evaluate(e);if(t){let{rule:o,rulesEvaluated:n}=t,a=o.action.provider,c=this.providerManager.getProvider(a);if(c){let s=this.createDecision(c,a,o.action.model,"rule-match",o);return s.metadata.rulesEvaluated=n,s}}let r=this.config.defaultProvider,i=this.providerManager.getProvider(r);return i?this.createDecision(i,r,this.config.defaultModel,"default"):this.createFallbackDecision(e,"rule-based")}async selectCostOptimized(e){let t=this.providerManager.getAvailableProviders();if(t.length===0)return this.createFallbackDecision(e,"cost-optimized");let r=1/0,i=t[0],o,n=[];for(let a of t){let c=this.providerManager.getProvider(a);if(!c)continue;let{input:s,output:l}=c.getCostPerToken(),d=this.estimateCostValue(e,s,l);n.push({provider:a,model:c.getConfig().model,reason:`Estimated cost: $${d.toFixed(6)}`,estimatedCost:d,excluded:!1}),d<r&&(r=d,i=a,o=c)}if(o){let a=o.getConfig(),c=this.createDecision(o,i,a.model,"cost-optimization");return c.metadata.estimatedCost=this.createCostEstimate(e,o),c.metadata.alternativesConsidered=n,c}return this.createFallbackDecision(e,"cost-optimized")}async selectPerformanceOptimized(e){let t=this.providerManager.getAvailableProviders(),r=this.providerManager.getMetrics();if(t.length===0)return this.createFallbackDecision(e,"performance-optimized");let i=1/0,o=t[0],n,a=[];for(let c of t){let s=this.providerManager.getProvider(c);if(!s)continue;let d=r[c]?.avgLatencyMs??1/0;a.push({provider:c,model:s.getConfig().model,reason:`Avg latency: ${d}ms`,estimatedLatencyMs:d,excluded:!1}),d<i&&(i=d,o=c,n=s)}if(n){let c=n.getConfig(),s=this.createDecision(n,o,c.model,"performance-optimization");return s.metadata.estimatedLatencyMs=i,s.metadata.alternativesConsidered=a,s}return this.createFallbackDecision(e,"performance-optimized")}async executeWithFallback(e,t,r){let{fallbackChain:i,fallbackBehavior:o}=this.config,n,a=0,c=[{provider:t.providerType,model:t.providerModelId}];for(let s of i.entries)if(!(!s.enabled||s.provider===t.providerType||!["claude","openai","ollama"].includes(s.provider)))for(let d of s.models)c.push({provider:s.provider,model:d});for(let{provider:s,model:l}of c){if(a>=o.maxAttempts)break;let d=this.providerManager.getProvider(s);if(!d)continue;a++;let g=Date.now();try{let u=await d.generate(e.messages,{model:l,temperature:e.temperature,maxTokens:e.maxTokens,systemPrompt:e.systemPrompt,timeoutMs:e.timeoutMs,skipCache:e.skipCache,metadata:e.metadata}),y=Date.now()-g;return this.metrics.recordSuccess(s),this.routerMetrics.recordRoutingDecision(t,y,{agentType:e.agentType,success:!0,tokenUsage:u.usage,cost:u.cost}),this.routerMetrics.recordProviderCall(s,l,y,u.usage.totalTokens,{inputTokens:u.usage.promptTokens,outputTokens:u.usage.completionTokens,success:!0,cost:u.cost.totalCost,agentType:e.agentType}),this.costMetrics.recordCostFromInfo(s,l,u.usage,u.cost,{agentType:e.agentType,requestId:u.requestId}),{content:u.content,model:u.model,providerModelId:u.model,provider:u.provider,usage:u.usage,cost:u.cost,latencyMs:u.latencyMs,finishReason:u.finishReason,cached:u.cached,requestId:u.requestId,routingDecision:t}}catch(u){n=S(u);let y=Date.now()-g;if(this.metrics.recordFailure(s),this.routerMetrics.recordProviderCall(s,l,y,0,{success:!1,agentType:e.agentType}),a<c.length){let L=c[a];L&&this.routerMetrics.recordFallback(s,L.provider,n.message,e.agentType)}if(B(u)&&!u.retryable)throw u;a<o.maxAttempts&&await this.delay(o.delayMs)}}throw b(`All providers failed after ${a} attempts: ${n?.message??"Unknown error"}`,"PROVIDER_UNAVAILABLE",{retryable:!1,cause:n})}createDecision(e,t,r,i,o){let{canonicalModel:n,providerModelId:a}=this.resolveModelIds(r,t);return{provider:e,providerType:t,model:n,providerModelId:a,reason:i,matchedRule:o,confidence:i==="rule-match"?.95:.8,metadata:{decisionTimeMs:0,timestamp:new Date}}}resolveModelIds(e,t){let i={claude:"anthropic",openai:"openai",ollama:"ollama",openrouter:"openrouter",gemini:"gemini","azure-openai":"azure",bedrock:"bedrock"}[t];if(!i)return{canonicalModel:e,providerModelId:e};try{let o=O(e),n=P(o,i);return{canonicalModel:o,providerModelId:n}}catch{try{if(F(e)){let n=P(e,i);return{canonicalModel:e,providerModelId:n}}}catch{}return{canonicalModel:e,providerModelId:e}}}createFallbackDecision(e,t){for(let i of this.config.fallbackChain.entries){if(!i.enabled||!["claude","openai","ollama"].includes(i.provider))continue;let n=this.providerManager.getProvider(i.provider);if(n)return this.createDecision(n,i.provider,i.models[0],"fallback")}let r=this.providerManager.getAvailableProviders();if(r.length>0){let i=r[0],o=this.providerManager.getProvider(i);return this.createDecision(o,i,o.getConfig().model,"fallback")}throw b(`No providers available for ${t} selection`,"PROVIDER_UNAVAILABLE",{retryable:!1})}generateCacheKey(e){return[this.config.mode,e.agentType??"default",e.complexity??"medium",e.requiresTools?"tools":"no-tools",e.preferredProvider??"any"].join(":")}estimateCostValue(e,t,r){let i=0;e.systemPrompt&&(i+=Math.ceil(e.systemPrompt.length/4));for(let n of e.messages)i+=Math.ceil(n.content.length/4);let o=e.maxTokens??1e3;return i*t+o*r}createCostEstimate(e,t){let{input:r,output:i}=t.getCostPerToken(),o=0;e.systemPrompt&&(o+=Math.ceil(e.systemPrompt.length/4));for(let c of e.messages)o+=Math.ceil(c.content.length/4);let n=e.maxTokens??1e3,a=o*r+n*i;return{inputTokens:o,outputTokens:n,totalCostUsd:a,inputCostPer1M:r*1e6,outputCostPer1M:i*1e6}}delay(e){return new Promise(t=>setTimeout(t,e))}async ensureInitialized(){this.initialized||await this.initialize()}},q=class{decisions=new Map;decisionsByMode={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0};totalDecisions=0;cacheHits=0;cacheMisses=0;totalRulesEvaluated=0;rulesMatched=0;fallbackCount=0;startTime=new Date;recordDecision(e,t){this.totalDecisions++,this.decisionsByMode[t]++,e.metadata.rulesEvaluated&&(this.totalRulesEvaluated+=e.metadata.rulesEvaluated),e.matchedRule&&this.rulesMatched++,e.reason==="fallback"&&this.fallbackCount++;let r=this.decisions.get(e.providerType);r||(r=this.createEmptyMetrics(e.providerType),this.decisions.set(e.providerType,r)),r.selectionCount++,e.reason==="rule-match"&&r.ruleMatchCount++,e.reason==="fallback"&&r.fallbackCount++}recordSuccess(e){let t=this.decisions.get(e);if(t){let r=t.successRate*t.selectionCount;t.successRate=(r+1)/t.selectionCount}}recordFailure(e){}recordCacheHit(){this.cacheHits++}recordCacheMiss(){this.cacheMisses++}getMetrics(){let e={};for(let[r,i]of this.decisions)e[r]={...i};let t=this.totalDecisions>0?this.rulesMatched/this.totalDecisions:0;return{byProvider:e,totalDecisions:this.totalDecisions,decisionsByMode:{...this.decisionsByMode},avgDecisionTimeMs:0,p95DecisionTimeMs:0,p99DecisionTimeMs:0,fallbackRate:this.totalDecisions>0?this.fallbackCount/this.totalDecisions:0,ruleMatchRate:t,estimatedCostSavings:0,ruleStats:{totalEvaluated:this.totalRulesEvaluated,matched:this.rulesMatched,avgRulesPerDecision:this.totalDecisions>0?this.totalRulesEvaluated/this.totalDecisions:0},cacheStats:{hits:this.cacheHits,misses:this.cacheMisses,hitRate:this.cacheHits+this.cacheMisses>0?this.cacheHits/(this.cacheHits+this.cacheMisses):0},period:{start:this.startTime,end:new Date}}}reset(){this.decisions.clear(),this.decisionsByMode={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0},this.totalDecisions=0,this.cacheHits=0,this.cacheMisses=0,this.totalRulesEvaluated=0,this.rulesMatched=0,this.fallbackCount=0,this.startTime=new Date}createEmptyMetrics(e){return{provider:e,selectionCount:0,ruleMatchCount:0,fallbackCount:0,avgDecisionTimeMs:0,successRate:1,avgLatencyMs:0,p95LatencyMs:0,p99LatencyMs:0,totalCost:0,totalTokens:0,circuitState:"closed"}}};function Je(p,e){return new T(p,e)}function Qe(p){return new T(p,{mode:"rule-based",rules:A,defaultProvider:"claude",defaultModel:"claude-sonnet-4-6",enableMetrics:!0,cacheDecisions:!0})}export{T as HybridRouter,Je as createHybridRouter,Qe as createQERouter};
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.21");process.exit(0)}
2
+ import{a as h,b as z}from"./chunk-34BTSZ5D.js";import{a as b,b as B,c as P,d as O,e as F}from"./chunk-DQI5ZR34.js";import{b as k,c as x,d as _,e as w}from"./chunk-44BAZASI.js";import{a as M}from"./chunk-TOE6DKE4.js";import{b as S,c as U}from"./chunk-SMBQERK7.js";import{i as I}from"./chunk-GDZ6XQRI.js";import"./chunk-4ZUXTOUG.js";var m={heavyweight:{requiresReasoning:!0,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!0,requiresJsonMode:!0,minContextSize:1e5,costSensitivity:"low",latencySensitivity:"low"},standard:{requiresReasoning:!0,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!0,minContextSize:5e4,costSensitivity:"medium",latencySensitivity:"medium"},lightweight:{requiresReasoning:!1,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!0,minContextSize:16e3,costSensitivity:"medium",latencySensitivity:"high"},minimal:{requiresReasoning:!1,requiresTools:!1,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!1,minContextSize:4e3,costSensitivity:"high",latencySensitivity:"medium"}},$={security:m.heavyweight,"test-generation":m.standard,"code-analysis":m.standard,learning:m.standard,performance:{...m.lightweight,costSensitivity:"high"},coordination:m.lightweight,general:{...m.lightweight,requiresJsonMode:!1,latencySensitivity:"medium"},documentation:{...m.minimal,minContextSize:16e3},simple:m.minimal};var v=class{rules=[];constructor(e=[]){this.setRules(e)}setRules(e){this.rules=[...e].filter(t=>t.enabled).sort((t,r)=>r.priority-t.priority)}getRules(){return[...this.rules]}addRule(e){this.rules.push(e),this.rules=this.rules.filter(t=>t.enabled).sort((t,r)=>r.priority-t.priority)}removeRule(e){let t=this.rules.findIndex(r=>r.id===e);return t>=0?(this.rules.splice(t,1),!0):!1}setRuleEnabled(e,t){let r=this.rules.find(i=>i.id===e);return r?(r.enabled=t,this.rules=this.rules.filter(i=>i.enabled).sort((i,o)=>o.priority-i.priority),!0):!1}evaluate(e){let t=0;for(let r of this.rules)if(t++,this.matchesCondition(e,r.condition))return{rule:r,rulesEvaluated:t};return null}evaluateAll(e){return this.rules.filter(t=>this.matchesCondition(e,t.condition))}matchesCondition(e,t){if(t.agentType!==void 0&&(!e.agentType||!t.agentType.includes(e.agentType))||t.requiresTools!==void 0&&!!e.requiresTools!==t.requiresTools)return!1;if(t.complexity!==void 0){let r=Array.isArray(t.complexity)?t.complexity:[t.complexity];if(!e.complexity||!r.includes(e.complexity))return!1}if(t.localOnly!==void 0&&t.localOnly){let r=["ollama","onnx"];if(e.preferredProvider&&!r.includes(e.preferredProvider))return!1}if(t.requiresReasoning!==void 0&&t.requiresReasoning&&e.complexity==="low")return!1;if(t.tokenRange!==void 0){let r=this.estimateTokens(e);if(t.tokenRange.min!==void 0&&r<t.tokenRange.min||t.tokenRange.max!==void 0&&r>t.tokenRange.max)return!1}return!(t.requiredCapabilities!==void 0&&t.requiredCapabilities.length>0&&(!e.requiredCapabilities||e.requiredCapabilities.length===0||!t.requiredCapabilities.every(i=>e.requiredCapabilities.includes(i)))||t.custom!==void 0&&!t.custom(e))}estimateTokens(e){let t=0;e.systemPrompt&&(t+=Math.ceil(e.systemPrompt.length/4));for(let r of e.messages)t+=Math.ceil(r.content.length/4);return t}},A=[{id:"security-agents-opus",name:"Security Agents to Claude Opus",description:"Route security-critical agents to Claude Opus for best security analysis",condition:{agentType:["security-auditor","security-architect","v3-qe-security-scanner"]},action:{provider:"claude",model:"claude-opus-4-7",temperature:.1},enabled:!0,priority:100},{id:"test-gen-with-tools",name:"Test Generation with Tools",description:"Route test generation requests that need tools to Claude Sonnet",condition:{agentType:["v3-qe-test-generator","tester"],requiresTools:!0},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:95},{id:"high-complexity-reasoning",name:"High Complexity Reasoning",description:"Route high complexity tasks requiring reasoning to advanced models",condition:{complexity:"high",requiresReasoning:!0},action:{provider:"claude",model:"claude-opus-4-7",temperature:.2},enabled:!0,priority:90},{id:"code-analysis-agents",name:"Code Analysis Agents",description:"Route code analysis to Claude Sonnet for balanced performance",condition:{agentType:["code-analyzer","v3-qe-code-intelligence","reviewer"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.2},enabled:!0,priority:85},{id:"coverage-analysis",name:"Coverage Analysis Agents",description:"Route coverage analysis to efficient models",condition:{agentType:["v3-qe-coverage-analyzer"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.1},enabled:!0,priority:80},{id:"defect-prediction",name:"Defect Prediction Agents",description:"Route defect prediction to capable models",condition:{agentType:["v3-qe-defect-predictor"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:75},{id:"medium-complexity",name:"Medium Complexity Tasks",description:"Route medium complexity to balanced Claude Sonnet",condition:{complexity:"medium"},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:60},{id:"low-complexity-haiku",name:"Low Complexity to Haiku",description:"Route low complexity tasks to Haiku for cost efficiency",condition:{complexity:"low"},action:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.3},enabled:!0,priority:50},{id:"local-only-ollama",name:"Local Only Requests",description:"Route local-only requests to Ollama",condition:{localOnly:!0},action:{provider:"ollama",model:"llama3.1",temperature:.3},enabled:!0,priority:40},{id:"small-requests-haiku",name:"Small Token Requests",description:"Route small requests to Haiku for efficiency",condition:{tokenRange:{max:500}},action:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.3},enabled:!0,priority:30}];import{randomUUID as H}from"crypto";var f=class{decisions=[];providerCalls=[];fallbacks=[];cacheHits=0;cacheMisses=0;startTime=new Date;maxRecords;maxCallRecords;constructor(e={}){this.maxRecords=e.maxRecords??1e4,this.maxCallRecords=e.maxCallRecords??5e3}recordRoutingDecision(e,t,r={}){let i={id:`rd-${Date.now()}-${H().slice(0,8)}`,timestamp:new Date,provider:e.providerType,model:e.model,mode:this.inferMode(e.reason),reason:e.reason,latencyMs:t,decisionTimeMs:e.metadata.decisionTimeMs,agentType:r.agentType,success:r.success??!0,tokenUsage:r.tokenUsage,cost:r.cost,wasFallback:e.reason==="fallback",ruleId:e.matchedRule?.id};this.decisions.push(i),this.trimRecords()}recordProviderCall(e,t,r,i,o={}){let n=o.inputTokens??Math.floor(i*.7),a=o.outputTokens??i-n,c={timestamp:new Date,provider:e,model:t,latencyMs:r,inputTokens:n,outputTokens:a,totalTokens:i,success:o.success??!0,cost:o.cost,agentType:o.agentType};this.providerCalls.push(c),this.trimCallRecords()}recordFallback(e,t,r,i){let o={timestamp:new Date,fromProvider:e,toProvider:t,reason:r,agentType:i};this.fallbacks.push(o),this.fallbacks.length>1e3&&(this.fallbacks=this.fallbacks.slice(-1e3))}recordCacheHit(){this.cacheHits++}recordCacheMiss(){this.cacheMisses++}getMetrics(e="all"){let t=this.getWindowStart(e),r=this.filterByTime(this.decisions,t),i=this.filterByTime(this.providerCalls,t),o=this.filterByTime(this.fallbacks,t),n=this.calculateProviderMetrics(r,i),a=this.calculateAgentMetrics(r,i),c=r.map(u=>u.decisionTimeMs),s=r.length,l=this.countByMode(r),d=r.filter(u=>u.wasFallback).length,g=r.filter(u=>u.ruleId).length;return{byProvider:Object.fromEntries(n),byAgentType:a,totalDecisions:s,decisionsByMode:l,avgDecisionTimeMs:this.average(c),p95DecisionTimeMs:this.percentile(c,95),p99DecisionTimeMs:this.percentile(c,99),fallbackRate:s>0?d/s:0,ruleMatchRate:s>0?g/s:0,estimatedCostSavings:this.calculateCostSavings(r),ruleStats:{totalEvaluated:r.reduce((u,y)=>u+1,0),matched:g,avgRulesPerDecision:1},cacheStats:{hits:this.cacheHits,misses:this.cacheMisses,hitRate:this.cacheHits+this.cacheMisses>0?this.cacheHits/(this.cacheHits+this.cacheMisses):0},period:{start:t,end:new Date},recentDecisions:r.slice(-50),fallbackStats:this.calculateFallbackStats(o)}}getMetricsByProvider(e){let t=this.decisions.filter(c=>c.provider===e),r=this.providerCalls.filter(c=>c.provider===e),i=r.map(c=>c.latencyMs),o=t.map(c=>c.decisionTimeMs),n=r.filter(c=>c.success),a=r.filter(c=>!c.success);return{provider:e,selectionCount:t.length,ruleMatchCount:t.filter(c=>c.ruleId).length,fallbackCount:t.filter(c=>c.wasFallback).length,avgDecisionTimeMs:this.average(o),successRate:r.length>0?n.length/r.length:1,avgLatencyMs:this.average(i),p95LatencyMs:this.percentile(i,95),p99LatencyMs:this.percentile(i,99),totalCost:r.reduce((c,s)=>c+(s.cost??0),0),totalTokens:r.reduce((c,s)=>c+s.totalTokens,0),totalInputTokens:r.reduce((c,s)=>c+s.inputTokens,0),totalOutputTokens:r.reduce((c,s)=>c+s.outputTokens,0),circuitState:"closed",latencyHistogram:i.slice(-100),decisionTimeHistogram:o.slice(-100),errorCount:a.length,lastError:a.length>0?a[a.length-1].timestamp:void 0,recentCalls:r.slice(-20)}}getMetricsByAgentType(e){let t=this.decisions.filter(s=>s.agentType===e),r=this.providerCalls.filter(s=>s.agentType===e),i=new Map,o=new Map;for(let s of t)i.set(s.provider,(i.get(s.provider)??0)+1),o.set(s.model,(o.get(s.model)??0)+1);let n=r.map(s=>s.latencyMs),a=t.filter(s=>s.wasFallback).length,c=t.filter(s=>s.success).length;return{agentType:e,totalDecisions:t.length,providerDistribution:i,modelDistribution:o,avgLatencyMs:this.average(n),totalCost:r.reduce((s,l)=>s+(l.cost??0),0),totalTokens:r.reduce((s,l)=>s+l.totalTokens,0),fallbackRate:t.length>0?a/t.length:0,successRate:t.length>0?c/t.length:1}}getAuditLog(e={}){let t=this.decisions;e.since&&(t=t.filter(i=>i.timestamp>=e.since)),e.provider&&(t=t.filter(i=>i.provider===e.provider)),e.agentType&&(t=t.filter(i=>i.agentType===e.agentType));let r=e.limit??100;return t.slice(-r).map(i=>({id:i.id,timestamp:i.timestamp,context:{agentType:i.agentType},decision:{providerType:i.provider,model:i.model,providerModelId:i.model,reason:i.reason,confidence:1,metadata:{decisionTimeMs:i.decisionTimeMs,timestamp:i.timestamp}},outcome:{success:i.success,latencyMs:i.latencyMs,tokenUsage:i.tokenUsage,cost:i.cost}}))}resetMetrics(){this.decisions=[],this.providerCalls=[],this.fallbacks=[],this.cacheHits=0,this.cacheMisses=0,this.startTime=new Date}inferMode(e){switch(e){case"manual":return"manual";case"rule-match":return"rule-based";case"cost-optimization":return"cost-optimized";case"performance-optimization":return"performance-optimized";default:return"rule-based"}}trimRecords(){this.decisions.length>this.maxRecords&&(this.decisions=this.decisions.slice(-this.maxRecords))}trimCallRecords(){this.providerCalls.length>this.maxCallRecords&&(this.providerCalls=this.providerCalls.slice(-this.maxCallRecords))}getWindowStart(e){let t=new Date;switch(e){case"1m":return new Date(t.getTime()-60*1e3);case"5m":return new Date(t.getTime()-300*1e3);case"15m":return new Date(t.getTime()-900*1e3);case"1h":return new Date(t.getTime()-3600*1e3);case"24h":return new Date(t.getTime()-1440*60*1e3);case"7d":return new Date(t.getTime()-10080*60*1e3);default:return this.startTime}}filterByTime(e,t){return e.filter(r=>r.timestamp>=t)}calculateProviderMetrics(e,t){let r=new Map;for(let i of h){let o=e.filter(l=>l.provider===i),n=t.filter(l=>l.provider===i);if(o.length===0&&n.length===0)continue;let a=n.map(l=>l.latencyMs),c=o.map(l=>l.decisionTimeMs),s=n.filter(l=>l.success);r.set(i,{provider:i,selectionCount:o.length,ruleMatchCount:o.filter(l=>l.ruleId).length,fallbackCount:o.filter(l=>l.wasFallback).length,avgDecisionTimeMs:this.average(c),successRate:n.length>0?s.length/n.length:1,avgLatencyMs:this.average(a),p95LatencyMs:this.percentile(a,95),p99LatencyMs:this.percentile(a,99),totalCost:n.reduce((l,d)=>l+(d.cost??0),0),totalTokens:n.reduce((l,d)=>l+d.totalTokens,0),circuitState:"closed"})}return r}calculateAgentMetrics(e,t){let r=new Set;e.forEach(o=>o.agentType&&r.add(o.agentType)),t.forEach(o=>o.agentType&&r.add(o.agentType));let i=new Map;for(let o of r)i.set(o,this.getMetricsByAgentType(o));return i}countByMode(e){let t={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0};for(let r of e)t[r.mode]++;return t}calculateFallbackStats(e){let t=new Map,r=new Map;for(let i of e)t.set(i.fromProvider,(t.get(i.fromProvider)??0)+1),r.set(i.reason,(r.get(i.reason)??0)+1);return{total:e.length,byProvider:t,byReason:r}}calculateCostSavings(e){return e.reduce((t,r)=>r.cost&&r.mode==="cost-optimized"?t+r.cost.totalCost*.2:t,0)}average(e){return e.length===0?0:e.reduce((t,r)=>t+r,0)/e.length}percentile(e,t){if(e.length===0)return 0;let r=[...e].sort((o,n)=>o-n),i=Math.ceil(t/100*r.length)-1;return r[Math.max(0,i)]}};function D(p){return new f(p)}var C=class{records=[];alerts=[];maxRecords;alertCheckInterval;constructor(e={}){this.maxRecords=e.maxRecords??1e4}recordCost(e,t,r,i,o={}){let n=this.calculateCost(t,r,i),a={timestamp:new Date,provider:e,model:t,inputTokens:r,outputTokens:i,inputCost:n.inputCost,outputCost:n.outputCost,totalCost:n.totalCost,agentType:o.agentType,requestId:o.requestId};return this.records.push(a),this.trimRecords(),this.checkAlerts(),a}recordCostFromInfo(e,t,r,i,o={}){let n={timestamp:new Date,provider:e,model:t,inputTokens:r.promptTokens,outputTokens:r.completionTokens,inputCost:i.inputCost,outputCost:i.outputCost,totalCost:i.totalCost,agentType:o.agentType,requestId:o.requestId};return this.records.push(n),this.trimRecords(),this.checkAlerts(),n}getCostByProvider(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Map;for(let o of h){let n=r.filter(s=>s.provider===o);if(n.length===0)continue;let a=n.reduce((s,l)=>s+l.totalCost,0),c=n.reduce((s,l)=>s+l.inputTokens+l.outputTokens,0);i.set(o,{totalCost:a,totalTokens:c,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:c>0?a/c:0})}return i}getCostByAgentType(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Set;r.forEach(a=>a.agentType&&i.add(a.agentType));let o=new Map;for(let a of i){let c=r.filter(d=>d.agentType===a),s=c.reduce((d,g)=>d+g.totalCost,0),l=c.reduce((d,g)=>d+g.inputTokens+g.outputTokens,0);o.set(a,{totalCost:s,totalTokens:l,totalRequests:c.length,avgCostPerRequest:c.length>0?s/c.length:0,avgCostPerToken:l>0?s/l:0})}let n=r.filter(a=>!a.agentType);if(n.length>0){let a=n.reduce((s,l)=>s+l.totalCost,0),c=n.reduce((s,l)=>s+l.inputTokens+l.outputTokens,0);o.set("unknown",{totalCost:a,totalTokens:c,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:c>0?a/c:0})}return o}getCostByModel(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Set;r.forEach(n=>i.add(n.model));let o=new Map;for(let n of i){let a=r.filter(l=>l.model===n),c=a.reduce((l,d)=>l+d.totalCost,0),s=a.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0);o.set(n,{totalCost:c,totalTokens:s,totalRequests:a.length,avgCostPerRequest:a.length>0?c/a.length:0,avgCostPerToken:s>0?c/s:0})}return o}getTotalCost(e="all"){let t=this.getPeriodStart(e);return this.filterByTime(t).reduce((i,o)=>i+o.totalCost,0)}getCostTrend(e){let t=new Date,r=[],i,o;switch(e){case"1h":i=300*1e3,o=12;break;case"24h":i=3600*1e3,o=24;break;case"7d":i=1440*60*1e3,o=7;break}for(let n=o-1;n>=0;n--){let a=new Date(t.getTime()-n*i),c=new Date(a.getTime()-i),s=this.records.filter(l=>l.timestamp>=c&&l.timestamp<a);r.push({timestamp:a,cost:s.reduce((l,d)=>l+d.totalCost,0),tokens:s.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0),requests:s.length})}return r}addBudgetAlert(e,t,r){let i={threshold:e,period:t,callback:r,active:!0};return this.alerts.push(i),this.alertCheckInterval||(this.alertCheckInterval=setInterval(()=>this.checkAlerts(),6e4)),`alert-${this.alerts.length-1}`}removeBudgetAlert(e){return e>=0&&e<this.alerts.length?(this.alerts.splice(e,1),this.alerts.length===0&&this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0),!0):!1}getOptimizationSuggestions(){let e=[],t=this.getCostByModel("24h");for(let[n,a]of t)M[n]&&a.totalCost>1&&(n.includes("opus")&&e.push({type:"model-switch",description:"Consider using Sonnet instead of Opus for non-critical tasks",estimatedSavings:a.totalCost*.5,currentCost:a.totalCost,suggestedModel:"claude-sonnet-4-6"}),n==="gpt-4o"&&e.push({type:"model-switch",description:"Consider using GPT-4o-mini for simpler tasks",estimatedSavings:a.totalCost*.7,currentCost:a.totalCost,suggestedModel:"gpt-4o-mini"}));let r=this.getCostByProvider("24h"),i=[...r.values()].reduce((n,a)=>n+a.totalCost,0);return i>10&&!r.has("ollama")&&e.push({type:"provider-switch",description:"Consider using Ollama for development/testing workloads",estimatedSavings:i*.3,currentCost:i,suggestedProvider:"ollama"}),[...t.values()].reduce((n,a)=>n+a.totalRequests,0)>100&&e.push({type:"caching",description:"Enable response caching to reduce redundant API calls",estimatedSavings:i*.15,currentCost:i}),e}getRecords(){return[...this.records]}clear(){this.records=[]}reset(){this.records=[],this.alerts=[],this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0)}dispose(){this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0)}calculateCost(e,t,r){let i=M[e];if(!i)return{inputCost:0,outputCost:0,totalCost:0,currency:"USD"};let o=t/1e6*i.input,n=r/1e6*i.output;return{inputCost:o,outputCost:n,totalCost:o+n,currency:"USD"}}trimRecords(){this.records.length>this.maxRecords&&(this.records=this.records.slice(-this.maxRecords))}getPeriodStart(e){let t=new Date;switch(e){case"1h":return new Date(t.getTime()-3600*1e3);case"24h":return new Date(t.getTime()-1440*60*1e3);case"7d":return new Date(t.getTime()-10080*60*1e3);case"30d":return new Date(t.getTime()-720*60*60*1e3);default:return new Date(0)}}filterByTime(e){return this.records.filter(t=>t.timestamp>=e)}checkAlerts(){for(let e of this.alerts){if(!e.active)continue;let t=this.getTotalCost(e.period);if(t>=e.threshold){e.active=!1;let r=this.getPeriodStart(e.period),i=this.filterByTime(r),o=i.reduce((n,a)=>n+a.inputTokens+a.outputTokens,0);try{e.callback({totalCost:t,totalTokens:o,totalRequests:i.length,avgCostPerRequest:i.length>0?t/i.length:0,avgCostPerToken:o>0?t/o:0})}catch(n){console.error("Budget alert callback error:",n)}}}}};function E(p){return new C(p)}U();var R=class{cache=new Map;maxSize;ttlMs;constructor(e=100,t=6e4){this.maxSize=e,this.ttlMs=t}get(e){let t=this.cache.get(e);return t?Date.now()>t.expiresAt?(this.cache.delete(e),null):t.decision:null}set(e,t){if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r&&this.cache.delete(r)}this.cache.set(e,{decision:t,expiresAt:Date.now()+this.ttlMs})}clear(){this.cache.clear()}getStats(){return{hits:0,misses:0,size:this.cache.size}}},T=class{config;providerManager;ruleEngine;decisionCache;metrics;routerMetrics;costMetrics;initialized=!1;constructor(e,t){this.providerManager=e,this.config={...z,...t};let r=this.config.rules.length>0?this.config.rules:A;this.ruleEngine=new v(r),this.decisionCache=new R(100,this.config.decisionCacheTtlMs),this.metrics=new q,this.routerMetrics=D(),this.costMetrics=E()}async initialize(){this.initialized||(await this.providerManager.initialize(),this.initialized=!0)}getMode(){return this.config.mode}setMode(e){this.config.mode=e,this.decisionCache.clear()}getConfig(){return{...this.config}}updateConfig(e){this.config={...this.config,...e},e.rules&&this.ruleEngine.setRules(e.rules),e.decisionCacheTtlMs&&(this.decisionCache=new R(100,e.decisionCacheTtlMs))}async selectProvider(e){await this.ensureInitialized();let t=Date.now();if(this.config.cacheDecisions){let i=this.generateCacheKey(e),o=this.decisionCache.get(i);if(o)return this.metrics.recordCacheHit(),this.routerMetrics.recordCacheHit(),o;this.metrics.recordCacheMiss(),this.routerMetrics.recordCacheMiss()}let r;switch(this.config.mode){case"manual":r=await this.selectManual(e);break;case"rule-based":r=await this.selectRuleBased(e);break;case"cost-optimized":r=await this.selectCostOptimized(e);break;case"performance-optimized":r=await this.selectPerformanceOptimized(e);break;default:r=await this.selectRuleBased(e)}if(r.metadata.decisionTimeMs=Date.now()-t,this.config.cacheDecisions){let i=this.generateCacheKey(e);this.decisionCache.set(i,r)}return this.metrics.recordDecision(r,this.config.mode),r}async chat(e){await this.ensureInitialized();let t=I(),r=await this.selectProvider(e),i=e.agentType??"";if(_(i)&&(x(r.model)||x(r.providerModelId))){let n=r.model,a=r.providerModelId;r.model=w(i,r.model,k),r.providerModelId=w(i,r.providerModelId,k),console.warn(`[aqe] ADR-093: ${i} pinned to ${r.model} (was ${n}/${a}); set AQE_CYBER_VERIFIED=true after Cyber Verification Program approval`)}return await this.executeWithFallback(e,r,t)}async*stream(e){await this.ensureInitialized();let t=await this.selectProvider(e),r=await this.chat(e),i=100;for(let o=0;o<r.content.length;o+=i){let n=o+i>=r.content.length;yield{type:n?"done":"content",delta:r.content.slice(o,o+i),accumulated:r.content.slice(0,o+i),done:n,tokenCount:Math.ceil((o+i)/4),model:r.model,provider:t.providerType,usage:n?r.usage:void 0}}}getMetrics(){return this.metrics.getMetrics()}getEnhancedMetrics(e){return this.routerMetrics.getMetrics(e)}getProviderMetrics(e){return this.routerMetrics.getMetricsByProvider(e)}getAgentMetrics(e){return this.routerMetrics.getMetricsByAgentType(e)}getCostByProvider(e){return this.costMetrics.getCostByProvider(e)}getCostByAgentType(e){return this.costMetrics.getCostByAgentType(e)}getCostByModel(e){return this.costMetrics.getCostByModel(e)}getTotalCost(e){return this.costMetrics.getTotalCost(e)}getCostTrend(e){return this.costMetrics.getCostTrend(e)}getAuditLog(e){return this.routerMetrics.getAuditLog(e)}getOptimizationSuggestions(){return this.costMetrics.getOptimizationSuggestions()}resetMetrics(){this.metrics.reset(),this.routerMetrics.resetMetrics(),this.costMetrics.reset()}clearCache(){this.decisionCache.clear()}async selectManual(e){let t=e.preferredProvider??this.config.defaultProvider,r=e.model??this.config.defaultModel,i=this.providerManager.getProvider(t);return i?this.createDecision(i,t,r,"manual"):this.createFallbackDecision(e,"manual")}async selectRuleBased(e){let t=this.ruleEngine.evaluate(e);if(t){let{rule:o,rulesEvaluated:n}=t,a=o.action.provider,c=this.providerManager.getProvider(a);if(c){let s=this.createDecision(c,a,o.action.model,"rule-match",o);return s.metadata.rulesEvaluated=n,s}}let r=this.config.defaultProvider,i=this.providerManager.getProvider(r);return i?this.createDecision(i,r,this.config.defaultModel,"default"):this.createFallbackDecision(e,"rule-based")}async selectCostOptimized(e){let t=this.providerManager.getAvailableProviders();if(t.length===0)return this.createFallbackDecision(e,"cost-optimized");let r=1/0,i=t[0],o,n=[];for(let a of t){let c=this.providerManager.getProvider(a);if(!c)continue;let{input:s,output:l}=c.getCostPerToken(),d=this.estimateCostValue(e,s,l);n.push({provider:a,model:c.getConfig().model,reason:`Estimated cost: $${d.toFixed(6)}`,estimatedCost:d,excluded:!1}),d<r&&(r=d,i=a,o=c)}if(o){let a=o.getConfig(),c=this.createDecision(o,i,a.model,"cost-optimization");return c.metadata.estimatedCost=this.createCostEstimate(e,o),c.metadata.alternativesConsidered=n,c}return this.createFallbackDecision(e,"cost-optimized")}async selectPerformanceOptimized(e){let t=this.providerManager.getAvailableProviders(),r=this.providerManager.getMetrics();if(t.length===0)return this.createFallbackDecision(e,"performance-optimized");let i=1/0,o=t[0],n,a=[];for(let c of t){let s=this.providerManager.getProvider(c);if(!s)continue;let d=r[c]?.avgLatencyMs??1/0;a.push({provider:c,model:s.getConfig().model,reason:`Avg latency: ${d}ms`,estimatedLatencyMs:d,excluded:!1}),d<i&&(i=d,o=c,n=s)}if(n){let c=n.getConfig(),s=this.createDecision(n,o,c.model,"performance-optimization");return s.metadata.estimatedLatencyMs=i,s.metadata.alternativesConsidered=a,s}return this.createFallbackDecision(e,"performance-optimized")}async executeWithFallback(e,t,r){let{fallbackChain:i,fallbackBehavior:o}=this.config,n,a=0,c=[{provider:t.providerType,model:t.providerModelId}];for(let s of i.entries)if(!(!s.enabled||s.provider===t.providerType||!["claude","openai","ollama"].includes(s.provider)))for(let d of s.models)c.push({provider:s.provider,model:d});for(let{provider:s,model:l}of c){if(a>=o.maxAttempts)break;let d=this.providerManager.getProvider(s);if(!d)continue;a++;let g=Date.now();try{let u=await d.generate(e.messages,{model:l,temperature:e.temperature,maxTokens:e.maxTokens,systemPrompt:e.systemPrompt,timeoutMs:e.timeoutMs,skipCache:e.skipCache,metadata:e.metadata}),y=Date.now()-g;return this.metrics.recordSuccess(s),this.routerMetrics.recordRoutingDecision(t,y,{agentType:e.agentType,success:!0,tokenUsage:u.usage,cost:u.cost}),this.routerMetrics.recordProviderCall(s,l,y,u.usage.totalTokens,{inputTokens:u.usage.promptTokens,outputTokens:u.usage.completionTokens,success:!0,cost:u.cost.totalCost,agentType:e.agentType}),this.costMetrics.recordCostFromInfo(s,l,u.usage,u.cost,{agentType:e.agentType,requestId:u.requestId}),{content:u.content,model:u.model,providerModelId:u.model,provider:u.provider,usage:u.usage,cost:u.cost,latencyMs:u.latencyMs,finishReason:u.finishReason,cached:u.cached,requestId:u.requestId,routingDecision:t}}catch(u){n=S(u);let y=Date.now()-g;if(this.metrics.recordFailure(s),this.routerMetrics.recordProviderCall(s,l,y,0,{success:!1,agentType:e.agentType}),a<c.length){let L=c[a];L&&this.routerMetrics.recordFallback(s,L.provider,n.message,e.agentType)}if(B(u)&&!u.retryable)throw u;a<o.maxAttempts&&await this.delay(o.delayMs)}}throw b(`All providers failed after ${a} attempts: ${n?.message??"Unknown error"}`,"PROVIDER_UNAVAILABLE",{retryable:!1,cause:n})}createDecision(e,t,r,i,o){let{canonicalModel:n,providerModelId:a}=this.resolveModelIds(r,t);return{provider:e,providerType:t,model:n,providerModelId:a,reason:i,matchedRule:o,confidence:i==="rule-match"?.95:.8,metadata:{decisionTimeMs:0,timestamp:new Date}}}resolveModelIds(e,t){let i={claude:"anthropic",openai:"openai",ollama:"ollama",openrouter:"openrouter",gemini:"gemini","azure-openai":"azure",bedrock:"bedrock"}[t];if(!i)return{canonicalModel:e,providerModelId:e};try{let o=O(e),n=P(o,i);return{canonicalModel:o,providerModelId:n}}catch{try{if(F(e)){let n=P(e,i);return{canonicalModel:e,providerModelId:n}}}catch{}return{canonicalModel:e,providerModelId:e}}}createFallbackDecision(e,t){for(let i of this.config.fallbackChain.entries){if(!i.enabled||!["claude","openai","ollama"].includes(i.provider))continue;let n=this.providerManager.getProvider(i.provider);if(n)return this.createDecision(n,i.provider,i.models[0],"fallback")}let r=this.providerManager.getAvailableProviders();if(r.length>0){let i=r[0],o=this.providerManager.getProvider(i);return this.createDecision(o,i,o.getConfig().model,"fallback")}throw b(`No providers available for ${t} selection`,"PROVIDER_UNAVAILABLE",{retryable:!1})}generateCacheKey(e){return[this.config.mode,e.agentType??"default",e.complexity??"medium",e.requiresTools?"tools":"no-tools",e.preferredProvider??"any"].join(":")}estimateCostValue(e,t,r){let i=0;e.systemPrompt&&(i+=Math.ceil(e.systemPrompt.length/4));for(let n of e.messages)i+=Math.ceil(n.content.length/4);let o=e.maxTokens??1e3;return i*t+o*r}createCostEstimate(e,t){let{input:r,output:i}=t.getCostPerToken(),o=0;e.systemPrompt&&(o+=Math.ceil(e.systemPrompt.length/4));for(let c of e.messages)o+=Math.ceil(c.content.length/4);let n=e.maxTokens??1e3,a=o*r+n*i;return{inputTokens:o,outputTokens:n,totalCostUsd:a,inputCostPer1M:r*1e6,outputCostPer1M:i*1e6}}delay(e){return new Promise(t=>setTimeout(t,e))}async ensureInitialized(){this.initialized||await this.initialize()}},q=class{decisions=new Map;decisionsByMode={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0};totalDecisions=0;cacheHits=0;cacheMisses=0;totalRulesEvaluated=0;rulesMatched=0;fallbackCount=0;startTime=new Date;recordDecision(e,t){this.totalDecisions++,this.decisionsByMode[t]++,e.metadata.rulesEvaluated&&(this.totalRulesEvaluated+=e.metadata.rulesEvaluated),e.matchedRule&&this.rulesMatched++,e.reason==="fallback"&&this.fallbackCount++;let r=this.decisions.get(e.providerType);r||(r=this.createEmptyMetrics(e.providerType),this.decisions.set(e.providerType,r)),r.selectionCount++,e.reason==="rule-match"&&r.ruleMatchCount++,e.reason==="fallback"&&r.fallbackCount++}recordSuccess(e){let t=this.decisions.get(e);if(t){let r=t.successRate*t.selectionCount;t.successRate=(r+1)/t.selectionCount}}recordFailure(e){}recordCacheHit(){this.cacheHits++}recordCacheMiss(){this.cacheMisses++}getMetrics(){let e={};for(let[r,i]of this.decisions)e[r]={...i};let t=this.totalDecisions>0?this.rulesMatched/this.totalDecisions:0;return{byProvider:e,totalDecisions:this.totalDecisions,decisionsByMode:{...this.decisionsByMode},avgDecisionTimeMs:0,p95DecisionTimeMs:0,p99DecisionTimeMs:0,fallbackRate:this.totalDecisions>0?this.fallbackCount/this.totalDecisions:0,ruleMatchRate:t,estimatedCostSavings:0,ruleStats:{totalEvaluated:this.totalRulesEvaluated,matched:this.rulesMatched,avgRulesPerDecision:this.totalDecisions>0?this.totalRulesEvaluated/this.totalDecisions:0},cacheStats:{hits:this.cacheHits,misses:this.cacheMisses,hitRate:this.cacheHits+this.cacheMisses>0?this.cacheHits/(this.cacheHits+this.cacheMisses):0},period:{start:this.startTime,end:new Date}}}reset(){this.decisions.clear(),this.decisionsByMode={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0},this.totalDecisions=0,this.cacheHits=0,this.cacheMisses=0,this.totalRulesEvaluated=0,this.rulesMatched=0,this.fallbackCount=0,this.startTime=new Date}createEmptyMetrics(e){return{provider:e,selectionCount:0,ruleMatchCount:0,fallbackCount:0,avgDecisionTimeMs:0,successRate:1,avgLatencyMs:0,p95LatencyMs:0,p99LatencyMs:0,totalCost:0,totalTokens:0,circuitState:"closed"}}};function Je(p,e){return new T(p,e)}function Qe(p){return new T(p,{mode:"rule-based",rules:A,defaultProvider:"claude",defaultModel:"claude-sonnet-4-6",enableMetrics:!0,cacheDecisions:!0})}export{T as HybridRouter,Je as createHybridRouter,Qe as createQERouter};
@@ -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.20");process.exit(0)}
2
- import{a,b,c,d,e}from"./chunk-CQSME43Z.js";import"./chunk-MXAEZHW6.js";import"./chunk-JCPXG42O.js";import"./chunk-NN6VRHNL.js";import"./chunk-NQIOXSHW.js";import"./chunk-H647PYXW.js";export{a as DEFAULT_HYPERGRAPH_ENGINE_CONFIG,b as HypergraphEngine,c as createHypergraphEngine,d as createHypergraphEngineSync,e as default};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
2
+ import{a,b,c,d,e}from"./chunk-NGT3VL66.js";import"./chunk-I3HLZASP.js";import"./chunk-PEOTZFNZ.js";import"./chunk-SMBQERK7.js";import"./chunk-GDZ6XQRI.js";import"./chunk-4ZUXTOUG.js";export{a as DEFAULT_HYPERGRAPH_ENGINE_CONFIG,b as HypergraphEngine,c as createHypergraphEngine,d as createHypergraphEngineSync,e as default};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.20");process.exit(0)}
2
- import"./chunk-H647PYXW.js";import e from"chalk";import{join as m,resolve as h}from"path";import{existsSync as y}from"fs";var c=class{name="hypergraph";description="Query the code knowledge hypergraph";cleanupAndExit;ensureInitialized;constructor(n,r){this.cleanupAndExit=n,this.ensureInitialized=r}register(n,r){let s=n.command("hypergraph").alias("hg").description(this.description);s.command("stats").description("Show hypergraph statistics (node/edge counts by type)").option("--db <path>","Database path").action(async t=>{await this.executeStats(t)}),s.command("untested").description("Find functions with no test coverage").option("--db <path>","Database path").option("--limit <number>","Max results","20").action(async t=>{await this.executeUntested(t)}),s.command("impacted <files...>").description("Find tests impacted by changed files").option("--db <path>","Database path").action(async(t,i)=>{await this.executeImpacted(t,i)}),s.command("gaps").description("Find functions with low coverage").option("--db <path>","Database path").option("--max-coverage <number>","Coverage threshold (%)","50").option("--limit <number>","Max results","20").action(async t=>{await this.executeGaps(t)})}async executeStats(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=await r.getStats();if(console.log(e.blue(`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
2
+ import"./chunk-4ZUXTOUG.js";import e from"chalk";import{join as m,resolve as h}from"path";import{existsSync as y}from"fs";var c=class{name="hypergraph";description="Query the code knowledge hypergraph";cleanupAndExit;ensureInitialized;constructor(n,r){this.cleanupAndExit=n,this.ensureInitialized=r}register(n,r){let s=n.command("hypergraph").alias("hg").description(this.description);s.command("stats").description("Show hypergraph statistics (node/edge counts by type)").option("--db <path>","Database path").action(async t=>{await this.executeStats(t)}),s.command("untested").description("Find functions with no test coverage").option("--db <path>","Database path").option("--limit <number>","Max results","20").action(async t=>{await this.executeUntested(t)}),s.command("impacted <files...>").description("Find tests impacted by changed files").option("--db <path>","Database path").action(async(t,i)=>{await this.executeImpacted(t,i)}),s.command("gaps").description("Find functions with low coverage").option("--db <path>","Database path").option("--max-coverage <number>","Coverage threshold (%)","50").option("--limit <number>","Max results","20").action(async t=>{await this.executeGaps(t)})}async executeStats(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=await r.getStats();if(console.log(e.blue(`
3
3
  Hypergraph Statistics
4
4
  `)),console.log(e.white(` Total nodes: ${t.totalNodes}`)),console.log(e.white(` Total edges: ${t.totalEdges}`)),t.totalNodes>0){console.log(e.gray(`
5
5
  Nodes by type:`));for(let[i,o]of Object.entries(t.nodesByType))o>0&&console.log(e.gray(` ${i}: ${o}`));console.log(e.gray(`
@@ -15,7 +15,7 @@ import"./chunk-H647PYXW.js";import e from"chalk";import{join as m,resolve as h}f
15
15
  `))}finally{i()}await this.cleanupAndExit(0)}async executeGaps(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=parseInt(n.maxCoverage,10)||50,i=parseInt(n.limit,10)||20,o=await r.findCoverageGaps(t),a=o.slice(0,i);if(console.log(e.blue(`
16
16
  Coverage Gaps (<= ${t}%) \u2014 ${o.length} total
17
17
  `)),a.length===0)console.log(e.green(" No coverage gaps found!"));else{for(let l of a){let d=l.coverage!==void 0?e.red(` ${l.coverage}%`):"",p=l.complexity?e.yellow(` complexity=${l.complexity}`):"";console.log(e.white(` ${l.name}`)+d+e.gray(` ${l.filePath||""}`)+p)}o.length>i&&console.log(e.gray(`
18
- ... and ${o.length-i} more (use --limit to show more)`))}console.log("")}finally{s()}await this.cleanupAndExit(0)}async openEngine(n){let{findProjectRoot:r}=await import("./unified-memory-JVZZMZRE.js"),{openDatabase:s}=await import("./safe-db-S46Y7IC5.js"),{createHypergraphEngine:t}=await import("./hypergraph-engine-HAKGWDYX.js"),i=r(),o=n||m(i,".agentic-qe","memory.db");if(!y(o))throw new Error(`Database not found: ${o}
18
+ ... and ${o.length-i} more (use --limit to show more)`))}console.log("")}finally{s()}await this.cleanupAndExit(0)}async openEngine(n){let{findProjectRoot:r}=await import("./unified-memory-SAIRUPOI.js"),{openDatabase:s}=await import("./safe-db-PEJN42TX.js"),{createHypergraphEngine:t}=await import("./hypergraph-engine-F435AM7S.js"),i=r(),o=n||m(i,".agentic-qe","memory.db");if(!y(o))throw new Error(`Database not found: ${o}
19
19
  Run "aqe init --auto" first.`);let a=s(o);try{return{engine:await t({db:a,maxTraversalDepth:10,maxQueryResults:1e3,enableVectorSearch:!1}),close:()=>{try{a.close()}catch{}}}}catch(l){try{a.close()}catch{}throw l}}getHelp(){return`
20
20
  Query the code knowledge hypergraph for untested functions,
21
21
  impacted tests, and coverage gaps.
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
2
+ import{a}from"./chunk-TMKJXKY2.js";import"./chunk-ROC2SSV3.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-OK5JHHXK.js";import"./chunk-SMBQERK7.js";import"./chunk-GDZ6XQRI.js";import"./chunk-4ZUXTOUG.js";export{a as ImpactAnalyzerService};
@@ -1,15 +1,15 @@
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.20");process.exit(0)}
2
- import{a as m}from"./chunk-TV5OVFKK.js";import{a as g,c as f}from"./chunk-NN6VRHNL.js";import"./chunk-H647PYXW.js";import o from"chalk";f();var p=class{name="init";description="Initialize the AQE v3 system";cleanupAndExit;originalStdoutWrite=null;constructor(e){this.cleanupAndExit=e}register(e,t){e.command("init").description(this.description).option("-d, --domains <domains>","Comma-separated list of domains to enable","all").option("-m, --max-agents <number>","Maximum concurrent agents","15").option("--memory <backend>","Memory backend (sqlite|agentdb|hybrid)","hybrid").option("--lazy","Enable lazy loading of domains").option("--wizard","Run interactive setup wizard").option("--auto","Auto-configure based on project analysis").option("-u, --upgrade","Upgrade existing installation (overwrite skills, agents, validation)").option("--minimal","Minimal configuration (skip optional features)").option("--skip-patterns","Skip loading pre-trained patterns").option("--skip-code-index","Skip code intelligence pre-scan (supported escape hatch \u2014 KG can be built later via `aqe code index`, also via env AQE_SKIP_CODE_INDEX=1)").option("--json","Emit machine-readable JSON result on stdout (suppresses banners; phase progress goes to stderr). Used by the release-gate corpus and CI tooling. See InitJsonOutput in init-handler.ts for the schema.").option("--with-n8n","Install n8n workflow testing agents and skills").option("--with-opencode","Include OpenCode agent/skill provisioning").option("--with-kiro","Include AWS Kiro IDE integration (agents, skills, hooks, steering)").option("--with-copilot","Include GitHub Copilot MCP config and instructions").option("--with-cursor","Include Cursor MCP config and rules").option("--with-cline","Include Cline MCP config and custom QE mode").option("--with-kilocode","Include Kilo Code MCP config and custom QE mode").option("--with-roocode","Include Roo Code MCP config and custom QE mode").option("--with-codex","Include OpenAI Codex CLI MCP config and AGENTS.md").option("--with-windsurf","Include Windsurf MCP config and rules").option("--with-continuedev","Include Continue.dev MCP config and rules").option("--no-mcp","Skip MCP server config (MCP is enabled by default)").option("--with-mcp","Enable MCP server config (default \u2014 kept for backward compatibility)").option("--with-all-platforms","Include all coding agent platform configurations").option("--auto-migrate","Automatically migrate from v2 if detected").option("--with-claude-flow","Force Claude Flow integration setup").option("--skip-claude-flow","Skip Claude Flow integration").option("--no-governance","Skip governance configuration (ADR-058)").option("--modular","Use new modular init system (default for --auto)").action(async r=>{await this.execute(r,t)})}async execute(e,t){if(e.json===!0){this.originalStdoutWrite=process.stdout.write.bind(process.stdout);let r=process.stderr.write.bind(process.stderr);process.stdout.write=((...s)=>r(...s))}try{if(e.withAllPlatforms&&(e.withCopilot=!0,e.withCursor=!0,e.withCline=!0,e.withKilocode=!0,e.withRoocode=!0,e.withCodex=!0,e.withWindsurf=!0,e.withContinuedev=!0),e.upgrade&&!e.auto&&!e.wizard&&(e.auto=!0),e.wizard||e.auto){if(console.log(o.blue(`
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.21");process.exit(0)}
2
+ import{a as m}from"./chunk-OK5JHHXK.js";import{a as g,c as f}from"./chunk-SMBQERK7.js";import"./chunk-4ZUXTOUG.js";import o from"chalk";f();var p=class{name="init";description="Initialize the AQE v3 system";cleanupAndExit;originalStdoutWrite=null;constructor(e){this.cleanupAndExit=e}register(e,t){e.command("init").description(this.description).option("-d, --domains <domains>","Comma-separated list of domains to enable","all").option("-m, --max-agents <number>","Maximum concurrent agents","15").option("--memory <backend>","Memory backend (sqlite|agentdb|hybrid)","hybrid").option("--lazy","Enable lazy loading of domains").option("--wizard","Run interactive setup wizard").option("--auto","Auto-configure based on project analysis").option("-u, --upgrade","Upgrade existing installation (overwrite skills, agents, validation)").option("--minimal","Minimal configuration (skip optional features)").option("--skip-patterns","Skip loading pre-trained patterns").option("--skip-code-index","Skip code intelligence pre-scan (supported escape hatch \u2014 KG can be built later via `aqe code index`, also via env AQE_SKIP_CODE_INDEX=1)").option("--json","Emit machine-readable JSON result on stdout (suppresses banners; phase progress goes to stderr). Used by the release-gate corpus and CI tooling. See InitJsonOutput in init-handler.ts for the schema.").option("--with-n8n","Install n8n workflow testing agents and skills").option("--with-opencode","Include OpenCode agent/skill provisioning").option("--with-kiro","Include AWS Kiro IDE integration (agents, skills, hooks, steering)").option("--with-copilot","Include GitHub Copilot MCP config and instructions").option("--with-cursor","Include Cursor MCP config and rules").option("--with-cline","Include Cline MCP config and custom QE mode").option("--with-kilocode","Include Kilo Code MCP config and custom QE mode").option("--with-roocode","Include Roo Code MCP config and custom QE mode").option("--with-codex","Include OpenAI Codex CLI MCP config and AGENTS.md").option("--with-windsurf","Include Windsurf MCP config and rules").option("--with-continuedev","Include Continue.dev MCP config and rules").option("--no-mcp","Skip MCP server config (MCP is enabled by default)").option("--with-mcp","Enable MCP server config (default \u2014 kept for backward compatibility)").option("--with-all-platforms","Include all coding agent platform configurations").option("--auto-migrate","Automatically migrate from v2 if detected").option("--with-claude-flow","Force Claude Flow integration setup").option("--skip-claude-flow","Skip Claude Flow integration").option("--no-governance","Skip governance configuration (ADR-058)").option("--modular","Use new modular init system (default for --auto)").action(async r=>{await this.execute(r,t)})}async execute(e,t){if(e.json===!0){this.originalStdoutWrite=process.stdout.write.bind(process.stdout);let r=process.stderr.write.bind(process.stderr);process.stdout.write=((...s)=>r(...s))}try{if(e.withAllPlatforms&&(e.withCopilot=!0,e.withCursor=!0,e.withCline=!0,e.withKilocode=!0,e.withRoocode=!0,e.withCodex=!0,e.withWindsurf=!0,e.withContinuedev=!0),e.upgrade&&!e.auto&&!e.wizard&&(e.auto=!0),e.wizard||e.auto){if(console.log(o.blue(`
3
3
  Agentic QE v3 Initialization
4
4
  `)),e.auto||e.modular){await this.runModularInit(e,t);return}await this.runLegacyWizard(e,t);return}await this.runStandardInit(e,t)}catch(r){console.error(o.red(`
5
- Failed to initialize:`),r),await this.cleanupAndExit(1)}}async runModularInit(e,t){let r=e.json===!0,{createModularInitOrchestrator:s}=await import("./orchestrator-GWI7HQG6.js"),l=s({projectRoot:process.cwd(),autoMode:e.auto,upgrade:e.upgrade,minimal:e.minimal,skipPatterns:e.skipPatterns,skipCodeIndex:e.skipCodeIndex,withN8n:e.withN8n,withOpenCode:e.withOpencode,withKiro:e.withKiro,withCopilot:e.withCopilot,withCursor:e.withCursor,withCline:e.withCline,withKiloCode:e.withKilocode,withRooCode:e.withRoocode,withCodex:e.withCodex,withWindsurf:e.withWindsurf,withContinueDev:e.withContinuedev,noMcp:e.noMcp&&!e.withMcp,noGovernance:e.noGovernance});console.log(o.white(` Analyzing project...
5
+ Failed to initialize:`),r),await this.cleanupAndExit(1)}}async runModularInit(e,t){let r=e.json===!0,{createModularInitOrchestrator:s}=await import("./orchestrator-N4GT5IGY.js"),l=s({projectRoot:process.cwd(),autoMode:e.auto,upgrade:e.upgrade,minimal:e.minimal,skipPatterns:e.skipPatterns,skipCodeIndex:e.skipCodeIndex,withN8n:e.withN8n,withOpenCode:e.withOpencode,withKiro:e.withKiro,withCopilot:e.withCopilot,withCursor:e.withCursor,withCline:e.withCline,withKiloCode:e.withKilocode,withRooCode:e.withRoocode,withCodex:e.withCodex,withWindsurf:e.withWindsurf,withContinueDev:e.withContinuedev,noMcp:e.noMcp&&!e.withMcp,noGovernance:e.noGovernance});console.log(o.white(` Analyzing project...
6
6
  `));let n=await l.initialize();if(r){this.originalStdoutWrite&&(process.stdout.write=this.originalStdoutWrite);let i={schemaVersion:1,success:n.success,steps:n.steps.map(c=>({step:c.step,status:c.status,message:c.message,durationMs:c.durationMs})),summary:n.summary,totalDurationMs:n.totalDurationMs,timestamp:n.timestamp.toISOString()};process.stdout.write(JSON.stringify(i,null,2)+`
7
- `);let d=n.steps.some(c=>c.status==="error");await this.cleanupAndExit(n.success&&!d?0:1);return}for(let i of n.steps){let d=i.status==="success"?"*":i.status==="error"?"x":"!",c=i.status==="success"?o.green:i.status==="error"?o.red:o.yellow;console.log(c(` ${d} ${i.step} (${i.durationMs}ms)`))}console.log("");let a;if(!e.skipClaudeFlow&&(e.withClaudeFlow||n.success))try{let{setupClaudeFlowIntegration:i}=await import("./claude-flow-setup-Z5GPMILN.js");if(a=await i({projectRoot:process.cwd(),force:e.withClaudeFlow}),a.available)console.log(o.green(" * Claude Flow integration enabled")),a.features.trajectories&&console.log(o.gray(" - SONA trajectory tracking")),a.features.modelRouting&&console.log(o.gray(" - 3-tier model routing (haiku/sonnet/opus)")),a.features.pretrain&&console.log(o.gray(" - Codebase pretrain analysis")),console.log("");else{let{getClaudeFlowNotFoundMessage:d}=await import("./detect-ROCCKX63.js");console.log(o.gray(d())),console.log("")}}catch{let{getClaudeFlowNotFoundMessage:i}=await import("./detect-ROCCKX63.js");console.log(o.gray(i())),console.log("")}n.success?(console.log(o.green(` AQE v3 initialized successfully!
7
+ `);let d=n.steps.some(c=>c.status==="error");await this.cleanupAndExit(n.success&&!d?0:1);return}for(let i of n.steps){let d=i.status==="success"?"*":i.status==="error"?"x":"!",c=i.status==="success"?o.green:i.status==="error"?o.red:o.yellow;console.log(c(` ${d} ${i.step} (${i.durationMs}ms)`))}console.log("");let a;if(!e.skipClaudeFlow&&(e.withClaudeFlow||n.success))try{let{setupClaudeFlowIntegration:i}=await import("./claude-flow-setup-SCOCIDBC.js");if(a=await i({projectRoot:process.cwd(),force:e.withClaudeFlow}),a.available)console.log(o.green(" * Claude Flow integration enabled")),a.features.trajectories&&console.log(o.gray(" - SONA trajectory tracking")),a.features.modelRouting&&console.log(o.gray(" - 3-tier model routing (haiku/sonnet/opus)")),a.features.pretrain&&console.log(o.gray(" - Codebase pretrain analysis")),console.log("");else{let{getClaudeFlowNotFoundMessage:d}=await import("./detect-QIJPCTZO.js");console.log(o.gray(d())),console.log("")}}catch{let{getClaudeFlowNotFoundMessage:i}=await import("./detect-QIJPCTZO.js");console.log(o.gray(i())),console.log("")}n.success?(console.log(o.green(` AQE v3 initialized successfully!
8
8
  `)),console.log(o.blue(" Summary:")),console.log(o.gray(` - Patterns loaded: ${n.summary.patternsLoaded}`)),console.log(o.gray(` - Skills installed: ${n.summary.skillsInstalled}`)),console.log(o.gray(` - Agents installed: ${n.summary.agentsInstalled}`)),console.log(o.gray(` - Hooks configured: ${n.summary.hooksConfigured?"Yes":"No"}`)),console.log(o.gray(` - Workers started: ${n.summary.workersStarted}`)),console.log(o.gray(` - Claude Flow: ${a?.available?"Enabled":"Standalone mode"}`)),console.log(o.gray(` - Total time: ${n.totalDurationMs}ms
9
9
  `)),console.log(o.white("Next steps:")),console.log(o.gray(" 1. Run tests: aqe test <path>")),console.log(o.gray(" 2. Check coverage: aqe coverage <path>")),console.log(o.gray(" 3. Check status: aqe status")),n.summary.mcpConfigured&&(console.log(o.gray(`
10
10
  MCP server configured in .mcp.json`)),console.log(o.gray(` Use --no-mcp to skip MCP setup if using CLI only
11
11
  `)))):(console.log(o.red(` Initialization failed. Check errors above.
12
- `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runLegacyWizard(e,t){let{InitOrchestrator:r}=await import("./init-wizard-MWKJNVB2.js"),s={projectRoot:process.cwd(),autoMode:e.auto,minimal:e.minimal,skipPatterns:e.skipPatterns,withN8n:e.withN8n},l=new r(s);if(e.wizard){console.log(o.white(` Setup Wizard Steps:
12
+ `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runLegacyWizard(e,t){let{InitOrchestrator:r}=await import("./init-wizard-ONNAHU4H.js"),s={projectRoot:process.cwd(),autoMode:e.auto,minimal:e.minimal,skipPatterns:e.skipPatterns,withN8n:e.withN8n},l=new r(s);if(e.wizard){console.log(o.white(` Setup Wizard Steps:
13
13
  `));let a=l.getWizardSteps();for(let i=0;i<a.length;i++)console.log(o.gray(` ${i+1}. ${a[i].title}`)),console.log(o.gray(` ${a[i].description}
14
14
  `))}console.log(o.white(` Analyzing project...
15
15
  `));let n=await l.initialize();for(let a of n.steps){let i=a.status==="success"?"*":a.status==="error"?"x":"!",d=a.status==="success"?o.green:a.status==="error"?o.red:o.yellow;console.log(d(` ${i} ${a.step} (${a.durationMs}ms)`))}console.log(""),n.success?(console.log(o.green(` AQE v3 initialized successfully!
@@ -17,7 +17,7 @@ import{a as m}from"./chunk-TV5OVFKK.js";import{a as g,c as f}from"./chunk-NN6VRH
17
17
  `)),console.log(o.white("Next steps:")),console.log(o.gray(" 1. Run tests: aqe test <path>")),console.log(o.gray(" 2. Check coverage: aqe coverage <path>")),console.log(o.gray(" 3. Check status: aqe status")),n.summary.mcpConfigured&&(console.log(o.gray(`
18
18
  MCP server configured in .mcp.json`)),console.log(o.gray(` Use --no-mcp to skip MCP setup if using CLI only
19
19
  `)))):(console.log(o.red(` Initialization failed. Check errors above.
20
- `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runStandardInit(e,t){let{QEKernelImpl:r}=await import("./kernel-5MKKDS4J.js"),{CrossDomainEventRouter:s}=await import("./cross-domain-router-GZG5GU7Q.js"),{DefaultProtocolExecutor:l}=await import("./protocol-executor-AB6KPFK5.js"),{WorkflowOrchestrator:n}=await import("./workflow-orchestrator-BDHRNVOG.js"),{createQueenCoordinator:a}=await import("./queen-coordinator-GBSTXGA2.js");console.log(o.blue(`
20
+ `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runStandardInit(e,t){let{QEKernelImpl:r}=await import("./kernel-3S7RJ7PT.js"),{CrossDomainEventRouter:s}=await import("./cross-domain-router-KKYQWQE7.js"),{DefaultProtocolExecutor:l}=await import("./protocol-executor-ED36SYE4.js"),{WorkflowOrchestrator:n}=await import("./workflow-orchestrator-BE5PCEBO.js"),{createQueenCoordinator:a}=await import("./queen-coordinator-IZ4RQGKV.js");console.log(o.blue(`
21
21
  Initializing Agentic QE v3...
22
22
  `));let i=e.domains==="all"?[...m]:e.domains.split(",").filter(u=>m.includes(u));console.log(o.gray(` Domains: ${i.length}`)),console.log(o.gray(` Max Agents: ${e.maxAgents}`)),console.log(o.gray(` Memory: ${e.memory}`)),console.log(o.gray(` Lazy Loading: ${e.lazy?"enabled":"disabled"}
23
23
  `)),t.kernel=new r({maxConcurrentAgents:parseInt(e.maxAgents,10),memoryBackend:e.memory,hnswEnabled:!0,lazyLoading:e.lazy||!1,enabledDomains:i}),await t.kernel.initialize(),console.log(o.green(" * Kernel initialized")),t.router=new s(t.kernel.eventBus),await t.router.initialize(),console.log(o.green(" * Cross-domain router initialized"));let d=u=>t.kernel.getDomainAPI(u),c=new l(t.kernel.eventBus,t.kernel.memory,d);console.log(o.green(" * Protocol executor initialized")),t.workflowOrchestrator=new n(t.kernel.eventBus,t.kernel.memory,t.kernel.coordinator),await t.workflowOrchestrator.initialize(),this.registerDomainWorkflowActions(t.kernel,t.workflowOrchestrator),console.log(o.green(" * Workflow orchestrator initialized")),t.queen=a(t.kernel,t.router,c,void 0),await t.queen.initialize(),console.log(o.green(" * Queen Coordinator initialized")),t.initialized=!0,console.log(o.green(`
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
2
+ import{a,b,c,d}from"./chunk-S6FFUCVZ.js";import"./chunk-S3TU7B7D.js";import"./chunk-YH7BAX7S.js";import"./chunk-RDUIN7LO.js";import"./chunk-D24HN6BG.js";import"./chunk-PEOTZFNZ.js";import"./chunk-SMBQERK7.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-4ZUXTOUG.js";export{a as InitOrchestrator,b as createInitOrchestrator,d as formatInitResult,c as quickInit};
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
2
+ import{v as a,w as b}from"./chunk-QU3VFWZZ.js";import"./chunk-VGAG5TG7.js";import"./chunk-E2XIPBJ7.js";import"./chunk-5PZG4WUA.js";import"./chunk-FZ2SYLSK.js";import"./chunk-2AEWOQWU.js";import"./chunk-WY3H7VHF.js";import"./chunk-ND2TFQF5.js";import"./chunk-UOLIGPDW.js";import"./chunk-ADC73GLJ.js";import"./chunk-56DGV2Q3.js";import"./chunk-P4Q5TMDH.js";import"./chunk-KRXJ7LFP.js";import"./chunk-T5Z5LL5Y.js";import"./chunk-SIW4N4NE.js";import"./chunk-OEB3V633.js";import"./chunk-65U55JIH.js";import"./chunk-KID7PTBZ.js";import"./chunk-TFAS5UND.js";import"./chunk-QSLXOYPR.js";import"./chunk-V6GJ3EMZ.js";import"./chunk-4Z4C7BXV.js";import"./chunk-YVG4D6P3.js";import"./chunk-C4CZXAOE.js";import"./chunk-G7ZYDJZ3.js";import"./chunk-E55MYZGP.js";import"./chunk-AMOCYHP3.js";import"./chunk-YVPPR33H.js";import"./chunk-S5RNBBJ6.js";import"./chunk-V5AVC4D4.js";import"./chunk-SMAC5IX4.js";import"./chunk-GB6ATLR3.js";import"./chunk-TCNJ5NGT.js";import"./chunk-TMKJXKY2.js";import"./chunk-ROC2SSV3.js";import"./chunk-NGT3VL66.js";import"./chunk-NKOGDRZE.js";import"./chunk-E7J32PW2.js";import"./chunk-IM7X6BDZ.js";import"./chunk-WI5HBS3C.js";import"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-PAXSPZ3F.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-DBW745QA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-OK5JHHXK.js";import"./chunk-SMBQERK7.js";import"./chunk-GDZ6XQRI.js";import"./chunk-KDOA7YHW.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.js";export{a as QEKernelImpl,b as createKernel};
@@ -1,4 +1,4 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.20");process.exit(0)}
2
- import{b as p}from"./chunk-DSPH4GI3.js";import{a as f,c as v}from"./chunk-NN6VRHNL.js";import"./chunk-H647PYXW.js";v();import{existsSync as n,mkdirSync as m,readFileSync as u,writeFileSync as a}from"fs";import{join as d,dirname as h}from"path";var l=class{projectRoot;overwrite;generator;constructor(r){this.projectRoot=r.projectRoot,this.overwrite=r.overwrite??!1,this.generator=p()}async install(){let r={success:!0,mcpConfigured:!1,modeInstalled:!1,errors:[],configPath:"",modePath:""};try{let t=this.generator.generateMcpConfig("kilocode"),e=d(this.projectRoot,t.path);if(r.configPath=e,!n(e)||this.overwrite){let s=h(e);if(n(s)||m(s,{recursive:!0}),n(e)&&this.overwrite){let c=this.mergeExistingConfig(e,t.content);a(e,c)}else a(e,t.content);r.mcpConfigured=!0}let i=this.generator.generateBehavioralRules("kilocode"),o=d(this.projectRoot,i.path);if(r.modePath=o,!n(o)||this.overwrite){let s=h(o);if(n(s)||m(s,{recursive:!0}),n(o)&&this.overwrite){let c=this.mergeExistingModes(o,i.content);a(o,c)}else a(o,i.content);r.modeInstalled=!0}}catch(t){r.success=!1,r.errors.push(`Kilo Code installation failed: ${f(t)}`)}return r}mergeExistingConfig(r,t){try{let e=JSON.parse(u(r,"utf-8")),i=JSON.parse(t);return e.mcpServers||(e.mcpServers={}),Object.assign(e.mcpServers,i.mcpServers),JSON.stringify(e,null,2)+`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
2
+ import{b as p}from"./chunk-EVWNZEYV.js";import{a as f,c as v}from"./chunk-SMBQERK7.js";import"./chunk-4ZUXTOUG.js";v();import{existsSync as n,mkdirSync as m,readFileSync as u,writeFileSync as a}from"fs";import{join as d,dirname as h}from"path";var l=class{projectRoot;overwrite;generator;constructor(r){this.projectRoot=r.projectRoot,this.overwrite=r.overwrite??!1,this.generator=p()}async install(){let r={success:!0,mcpConfigured:!1,modeInstalled:!1,errors:[],configPath:"",modePath:""};try{let t=this.generator.generateMcpConfig("kilocode"),e=d(this.projectRoot,t.path);if(r.configPath=e,!n(e)||this.overwrite){let s=h(e);if(n(s)||m(s,{recursive:!0}),n(e)&&this.overwrite){let c=this.mergeExistingConfig(e,t.content);a(e,c)}else a(e,t.content);r.mcpConfigured=!0}let i=this.generator.generateBehavioralRules("kilocode"),o=d(this.projectRoot,i.path);if(r.modePath=o,!n(o)||this.overwrite){let s=h(o);if(n(s)||m(s,{recursive:!0}),n(o)&&this.overwrite){let c=this.mergeExistingModes(o,i.content);a(o,c)}else a(o,i.content);r.modeInstalled=!0}}catch(t){r.success=!1,r.errors.push(`Kilo Code installation failed: ${f(t)}`)}return r}mergeExistingConfig(r,t){try{let e=JSON.parse(u(r,"utf-8")),i=JSON.parse(t);return e.mcpServers||(e.mcpServers={}),Object.assign(e.mcpServers,i.mcpServers),JSON.stringify(e,null,2)+`
3
3
  `}catch{return t}}mergeExistingModes(r,t){try{let e=JSON.parse(u(r,"utf-8")),i=JSON.parse(t);if(!Array.isArray(e))return t;let o=e.filter(s=>s.slug!=="qe-engineer");return o.push(...i),JSON.stringify(o,null,2)+`
4
4
  `}catch{return t}}};function x(g){return new l(g)}export{l as KiloCodeInstaller,x as createKiloCodeInstaller};
@@ -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.20");process.exit(0)}
2
- import{a as b}from"./chunk-VQI6JQQP.js";import{a as k,c as $}from"./chunk-NN6VRHNL.js";import"./chunk-H647PYXW.js";$();import{existsSync as u,mkdirSync as y,readdirSync as S,readFileSync as q,writeFileSync as v}from"fs";import{join as o,dirname as E}from"path";import{fileURLToPath as P}from"url";var R=P(import.meta.url),M=E(R),A=class{projectRoot;options;openCodeDir;constructor(t){this.projectRoot=t.projectRoot,this.options={installAgents:!0,installSkills:!0,installHooks:!0,installSteering:!0,overwrite:!1,...t},this.openCodeDir=this.findOpenCodeDir()}findOpenCodeDir(){let t=[o(M,"../../.opencode"),o(M,"../../assets/opencode")],e=b(import.meta.url);e&&(t.push(o(e,".opencode")),t.push(o(e,"assets/opencode"))),t.push(o(process.cwd(),"node_modules/agentic-qe/assets/opencode"),o(process.cwd(),"node_modules/agentic-qe/.opencode"));for(let n of t)if(u(n)&&(u(o(n,"agents"))||u(o(n,"skills"))))return n;let s=o(process.cwd(),".opencode");return u(s)&&(u(o(s,"agents"))||u(o(s,"skills")))?s:t[0]}async install(){let t=o(this.projectRoot,".kiro"),e={success:!0,agentsInstalled:[],skillsInstalled:[],hooksInstalled:[],steeringInstalled:[],mcpConfigured:!1,errors:[],targetDir:t};try{if(e.mcpConfigured=this.installMcpConfig(t),this.options.installAgents){let s=this.installAgents(t);e.agentsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSkills){let s=this.installSkills(t);e.skillsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installHooks){let s=this.installHooks(t);e.hooksInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSteering){let s=this.installSteering(t);e.steeringInstalled=s.installed,e.errors.push(...s.errors)}}catch(s){e.success=!1,e.errors.push(`Kiro installation failed: ${k(s)}`)}return e}installMcpConfig(t){let e=o(t,"settings"),s=o(e,"mcp.json");return u(s)&&!this.options.overwrite?!1:(y(e,{recursive:!0}),v(s,JSON.stringify({mcpServers:{"agentic-qe":{command:"npx",args:["-y","agentic-qe@latest","mcp"],env:{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_V3_MODE:"true"},disabled:!1,autoApprove:["fleet_init","fleet_status","test_generate_enhanced","coverage_analyze_sublinear","quality_assess","memory_store","memory_query"]}}},null,2)+`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
2
+ import{a as b}from"./chunk-RDUIN7LO.js";import{a as k,c as $}from"./chunk-SMBQERK7.js";import"./chunk-4ZUXTOUG.js";$();import{existsSync as u,mkdirSync as y,readdirSync as S,readFileSync as q,writeFileSync as v}from"fs";import{join as o,dirname as E}from"path";import{fileURLToPath as P}from"url";var R=P(import.meta.url),M=E(R),A=class{projectRoot;options;openCodeDir;constructor(t){this.projectRoot=t.projectRoot,this.options={installAgents:!0,installSkills:!0,installHooks:!0,installSteering:!0,overwrite:!1,...t},this.openCodeDir=this.findOpenCodeDir()}findOpenCodeDir(){let t=[o(M,"../../.opencode"),o(M,"../../assets/opencode")],e=b(import.meta.url);e&&(t.push(o(e,".opencode")),t.push(o(e,"assets/opencode"))),t.push(o(process.cwd(),"node_modules/agentic-qe/assets/opencode"),o(process.cwd(),"node_modules/agentic-qe/.opencode"));for(let n of t)if(u(n)&&(u(o(n,"agents"))||u(o(n,"skills"))))return n;let s=o(process.cwd(),".opencode");return u(s)&&(u(o(s,"agents"))||u(o(s,"skills")))?s:t[0]}async install(){let t=o(this.projectRoot,".kiro"),e={success:!0,agentsInstalled:[],skillsInstalled:[],hooksInstalled:[],steeringInstalled:[],mcpConfigured:!1,errors:[],targetDir:t};try{if(e.mcpConfigured=this.installMcpConfig(t),this.options.installAgents){let s=this.installAgents(t);e.agentsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSkills){let s=this.installSkills(t);e.skillsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installHooks){let s=this.installHooks(t);e.hooksInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSteering){let s=this.installSteering(t);e.steeringInstalled=s.installed,e.errors.push(...s.errors)}}catch(s){e.success=!1,e.errors.push(`Kiro installation failed: ${k(s)}`)}return e}installMcpConfig(t){let e=o(t,"settings"),s=o(e,"mcp.json");return u(s)&&!this.options.overwrite?!1:(y(e,{recursive:!0}),v(s,JSON.stringify({mcpServers:{"agentic-qe":{command:"npx",args:["-y","agentic-qe@latest","mcp"],env:{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_V3_MODE:"true"},disabled:!1,autoApprove:["fleet_init","fleet_status","test_generate_enhanced","coverage_analyze_sublinear","quality_assess","memory_store","memory_query"]}}},null,2)+`
3
3
  `),!0)}installAgents(t){let e=[],s=[],n=o(this.openCodeDir,"agents"),l=o(t,"agents");if(!u(n))return y(l,{recursive:!0}),this.writeDefaultQEAgent(l),e.push("qe-specialist"),{installed:e,errors:s};y(l,{recursive:!0});let i=S(n).filter(r=>r.endsWith(".yaml"));for(let r of i){let c=r.replace(".yaml",""),a=o(l,`${c}.json`);if(!(u(a)&&!this.options.overwrite))try{let p=q(o(n,r),"utf-8"),m=this.parseYamlAgent(p),d=this.convertToKiroAgent(m);v(a,JSON.stringify(d,null,2)+`
4
4
  `),e.push(c)}catch(p){s.push(`Failed to convert agent ${r}: ${k(p)}`)}}let g=o(this.options.projectRoot,".claude","agents");if(u(g)){let r=["subagents","n8n","testing","analysis"];for(let c of r){let a=o(g,c);if(!u(a))continue;let p=S(a,{recursive:!1}).filter(m=>typeof m=="string"&&m.endsWith(".md")&&m!=="README.md");for(let m of p){let d=m.replace(".md",""),h=o(l,`${d}.json`);if(!(u(h)&&!this.options.overwrite))try{let f=q(o(a,m),"utf-8"),w=this.convertMdAgentToKiro(f,d);w&&(v(h,JSON.stringify(w,null,2)+`
5
5
  `),e.push(d))}catch(f){s.push(`Failed to convert subagent ${m}: ${k(f)}`)}}}}return{installed:e,errors:s}}convertMdAgentToKiro(t,e){let s=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!s)return null;let n=s[1],l=s[2].trim(),i=d=>{let h=new RegExp(`^${d}:\\s*"?([^"
@@ -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.21");process.exit(0)}
2
+ import{g as a}from"./chunk-ROC2SSV3.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-OK5JHHXK.js";import"./chunk-SMBQERK7.js";import"./chunk-4ZUXTOUG.js";export{a as KnowledgeGraphService};
@@ -1,6 +1,6 @@
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.20");process.exit(0)}
3
- import{a as ee}from"./chunk-BJF77EFA.js";import{b as Z}from"./chunk-3ZHUKLU7.js";import{g as X}from"./chunk-QMUZMIV7.js";import"./chunk-GXO42P3X.js";import"./chunk-LATJ2LKJ.js";import"./chunk-Z5MG54R4.js";import{i as q}from"./chunk-5LM2W3NE.js";import"./chunk-BXGAXGME.js";import"./chunk-ZTWHRDUY.js";import{a as Y}from"./chunk-ZBBHJGPI.js";import"./chunk-SGGY4QYU.js";import"./chunk-QAZYSC3T.js";import"./chunk-LJW7BTMK.js";import{f as T,o as K}from"./chunk-CEVIRL2S.js";import"./chunk-MXAEZHW6.js";import"./chunk-F32R4LVS.js";import"./chunk-MIST354H.js";import{b as z,d as de}from"./chunk-JCPXG42O.js";import"./chunk-TV5OVFKK.js";import"./chunk-NN6VRHNL.js";import"./chunk-NQIOXSHW.js";import{a as C,b as J}from"./chunk-WF6MKBRI.js";import"./chunk-4IUNBRKQ.js";import"./chunk-G7HYTJDG.js";import"./chunk-AFMLL2G3.js";import"./chunk-J7SDO52P.js";import"./chunk-HW47UOFK.js";import"./chunk-FUTRX4ZT.js";import"./chunk-AVVRA6FG.js";import"./chunk-4SBMTHTA.js";import"./chunk-H647PYXW.js";K();de();import{Command as fe}from"commander";import o from"chalk";import S from"node:path";import{existsSync as w,writeFileSync as ce,readFileSync as W,mkdirSync as le,copyFileSync as B,renameSync as ie}from"node:fs";import{stat as M,unlink as E}from"node:fs/promises";J();K();import x from"chalk";import U from"node:path";import{createReadStream as te,createWriteStream as ne}from"node:fs";import{createGzip as pe,createGunzip as ge}from"node:zlib";import{pipeline as oe}from"node:stream/promises";J();var A={reasoningBank:null,initialized:!1};async function O(){if(A.initialized&&A.reasoningBank)return A.reasoningBank;let s=T(),t=U.join(s,".agentic-qe"),e=new Y({sqlite:{path:U.join(t,"memory.db"),walMode:!0,poolSize:3,busyTimeout:5e3},enableFallback:!0,defaultNamespace:"qe-patterns"});await e.initialize(),A.reasoningBank=X(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0}),await A.reasoningBank.initialize();try{let{getSharedRvfDualWriter:n}=await import("./shared-rvf-dual-writer-EGP3BYIY.js"),l=await n();l&&A.reasoningBank.setRvfDualWriter(l)}catch(n){process.env.DEBUG&&console.debug("[learning] RVF wiring skipped:",n instanceof Error?n.message:n)}return A.initialized=!0,A.reasoningBank}function v(s){console.log(JSON.stringify(s,null,2))}function P(s){console.log(x.green("\u2713"),s)}function R(s){console.error(x.red("\u2717"),s)}function I(s){console.log(x.blue("\u2139"),s)}function ae(s){let{current:t,topDomains:e}=s,n={tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502",ml:"\u251C",mr:"\u2524"},l=55,i=n.h.repeat(l-2);console.log(""),console.log(`${n.tl}${i}${n.tr}`),console.log(`${n.v}${me("AQE LEARNING DASHBOARD",l-2)}${n.v}`),console.log(`${n.ml}${i}${n.mr}`);let m=t.patternsCreatedToday>0?x.green(` (+${t.patternsCreatedToday} today)`):"";console.log(`${n.v} Patterns: ${D(String(t.totalPatterns)+m,32)}${n.v}`);let p=t.experiencesToday>0?x.green(` (+${t.experiencesToday} today)`):"";console.log(`${n.v} Experiences: ${D(String(t.totalExperiences)+p,32)}${n.v}`),console.log(`${n.v} Q-Values: ${D(String(t.totalQValues),32)}${n.v}`);let d=t.avgReward.toFixed(2),g=t.avgRewardDelta>=0?x.green(`(\u2191 ${Math.abs(t.avgRewardDelta).toFixed(2)} from last week)`):x.red(`(\u2193 ${Math.abs(t.avgRewardDelta).toFixed(2)} from last week)`);console.log(`${n.v} Avg Reward: ${D(`${d} ${g}`,32)}${n.v}`);let r=(t.successRate*100).toFixed(1);if(console.log(`${n.v} Success Rate: ${D(`${r}%`,32)}${n.v}`),console.log(`${n.v} Short-term: ${D(String(t.shortTermPatterns),32)}${n.v}`),console.log(`${n.v} Long-term: ${D(String(t.longTermPatterns),32)}${n.v}`),console.log(`${n.v}${" ".repeat(l-2)}${n.v}`),console.log(`${n.v} ${x.bold("Domain Coverage:")}${" ".repeat(l-19)}${n.v}`),e.length===0)console.log(`${n.v} ${x.dim("No patterns yet")}${" ".repeat(l-19)}${n.v}`);else{let c=Math.max(...e.map(f=>f.count),1),u=14;for(let{domain:f,count:h}of e){let $=Math.round(h/c*u),b=u-$,k=x.green("\u2588".repeat($))+x.dim("\u2591".repeat(b)),F=D(f,20),L=ue(String(h),3);console.log(`${n.v} ${F} ${k} ${L} patterns ${n.v}`)}let a=new Set(e.map(f=>f.domain)),y=q.filter(f=>!a.has(f)).slice(0,3);for(let f of y){let h=x.dim("\u2591".repeat(u)),$=D(f,20);console.log(`${n.v} ${$} ${h} 0 patterns ${n.v}`)}}console.log(`${n.bl}${i}${n.br}`),console.log("")}function me(s,t){let e=G(s),n=Math.max(0,t-e.length),l=Math.floor(n/2),i=n-l;return" ".repeat(l)+s+" ".repeat(i)}function D(s,t){let e=G(s),n=Math.max(0,t-e.length);return s+" ".repeat(n)}function ue(s,t){let e=G(s),n=Math.max(0,t-e.length);return" ".repeat(n)+s}function G(s){return s.replace(/\x1b\[[0-9;]*m/g,"")}function j(){let s=T();return U.join(s,".agentic-qe","memory.db")}async function Q(s,t){let e=t||`${s}.gz`;return await oe(te(s),pe(),ne(e)),e}async function V(s,t){await oe(te(s),ge(),ne(t))}async function _(s){try{let t=C(s,{readonly:!0}),e=t.prepare("PRAGMA integrity_check").get();return t.close(),e.integrity_check==="ok"?{valid:!0,message:"Database integrity verified"}:{valid:!1,message:`Integrity check failed: ${e.integrity_check}`}}catch(t){return{valid:!1,message:`Failed to verify: ${t instanceof Error?t.message:"unknown error"}`}}}async function N(s){try{let t=C(s,{readonly:!0});if(!t.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='schema_version'").get())return t.close(),0;let n=t.prepare("SELECT version FROM schema_version WHERE id = 1").get();return t.close(),n?.version??0}catch{return 0}}var H="3.1.0",re={generate:"test-generation","test-generation":"test-generation",analyze:"coverage-analysis",coverage:"coverage-analysis","coverage-analysis":"coverage-analysis",run:"test-execution","test-execution":"test-execution",report:"quality-assessment",quality:"quality-assessment","quality-analysis":"quality-assessment",security:"security-compliance",sast:"security-compliance",owasp:"security-compliance",secrets:"security-compliance",audit:"security-compliance",recommend:"defect-intelligence",predict:"defect-intelligence","complexity-analysis":"code-intelligence","code-analysis":"code-intelligence",stabilize:"chaos-resilience",flaky:"chaos-resilience",quarantine:"chaos-resilience",retry:"chaos-resilience",stress:"chaos-resilience",load:"chaos-resilience",endurance:"chaos-resilience",baseline:"chaos-resilience"},se={generate:"test-template","test-generation":"test-template",analyze:"coverage-strategy",coverage:"coverage-strategy","coverage-analysis":"coverage-strategy",run:"test-template","test-execution":"test-template",report:"assertion-pattern",quality:"assertion-pattern","quality-analysis":"assertion-pattern",security:"assertion-pattern",sast:"assertion-pattern",owasp:"assertion-pattern",secrets:"assertion-pattern",audit:"assertion-pattern",recommend:"assertion-pattern",predict:"assertion-pattern","complexity-analysis":"assertion-pattern","code-analysis":"assertion-pattern",stabilize:"flaky-fix",flaky:"flaky-fix",quarantine:"flaky-fix",retry:"flaky-fix",stress:"perf-benchmark",load:"perf-benchmark",endurance:"perf-benchmark",baseline:"perf-benchmark",mock:"mock-pattern",dependency:"mock-pattern"};function at(){let s=new fe("learning").description("AQE self-learning system management (standalone, no claude-flow required)").addHelpText("after",`
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.21");process.exit(0)}
3
+ import{a as ee}from"./chunk-LHXIAPKR.js";import{b as Z}from"./chunk-OEB3V633.js";import{g as X}from"./chunk-TFAS5UND.js";import"./chunk-QSLXOYPR.js";import"./chunk-V6GJ3EMZ.js";import"./chunk-4Z4C7BXV.js";import{i as q}from"./chunk-YVG4D6P3.js";import"./chunk-C4CZXAOE.js";import"./chunk-AMOCYHP3.js";import{a as Y}from"./chunk-YVPPR33H.js";import"./chunk-TCNJ5NGT.js";import"./chunk-E7J32PW2.js";import"./chunk-IM7X6BDZ.js";import{f as T,o as K}from"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import{b as z,d as de}from"./chunk-PEOTZFNZ.js";import"./chunk-OK5JHHXK.js";import"./chunk-SMBQERK7.js";import"./chunk-GDZ6XQRI.js";import{a as C,b as J}from"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.js";K();de();import{Command as fe}from"commander";import o from"chalk";import S from"node:path";import{existsSync as w,writeFileSync as ce,readFileSync as W,mkdirSync as le,copyFileSync as B,renameSync as ie}from"node:fs";import{stat as M,unlink as E}from"node:fs/promises";J();K();import x from"chalk";import U from"node:path";import{createReadStream as te,createWriteStream as ne}from"node:fs";import{createGzip as pe,createGunzip as ge}from"node:zlib";import{pipeline as oe}from"node:stream/promises";J();var A={reasoningBank:null,initialized:!1};async function O(){if(A.initialized&&A.reasoningBank)return A.reasoningBank;let s=T(),t=U.join(s,".agentic-qe"),e=new Y({sqlite:{path:U.join(t,"memory.db"),walMode:!0,poolSize:3,busyTimeout:5e3},enableFallback:!0,defaultNamespace:"qe-patterns"});await e.initialize(),A.reasoningBank=X(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0}),await A.reasoningBank.initialize();try{let{getSharedRvfDualWriter:n}=await import("./shared-rvf-dual-writer-UMDFMGVS.js"),l=await n();l&&A.reasoningBank.setRvfDualWriter(l)}catch(n){process.env.DEBUG&&console.debug("[learning] RVF wiring skipped:",n instanceof Error?n.message:n)}return A.initialized=!0,A.reasoningBank}function v(s){console.log(JSON.stringify(s,null,2))}function P(s){console.log(x.green("\u2713"),s)}function R(s){console.error(x.red("\u2717"),s)}function I(s){console.log(x.blue("\u2139"),s)}function ae(s){let{current:t,topDomains:e}=s,n={tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502",ml:"\u251C",mr:"\u2524"},l=55,i=n.h.repeat(l-2);console.log(""),console.log(`${n.tl}${i}${n.tr}`),console.log(`${n.v}${me("AQE LEARNING DASHBOARD",l-2)}${n.v}`),console.log(`${n.ml}${i}${n.mr}`);let m=t.patternsCreatedToday>0?x.green(` (+${t.patternsCreatedToday} today)`):"";console.log(`${n.v} Patterns: ${D(String(t.totalPatterns)+m,32)}${n.v}`);let p=t.experiencesToday>0?x.green(` (+${t.experiencesToday} today)`):"";console.log(`${n.v} Experiences: ${D(String(t.totalExperiences)+p,32)}${n.v}`),console.log(`${n.v} Q-Values: ${D(String(t.totalQValues),32)}${n.v}`);let d=t.avgReward.toFixed(2),g=t.avgRewardDelta>=0?x.green(`(\u2191 ${Math.abs(t.avgRewardDelta).toFixed(2)} from last week)`):x.red(`(\u2193 ${Math.abs(t.avgRewardDelta).toFixed(2)} from last week)`);console.log(`${n.v} Avg Reward: ${D(`${d} ${g}`,32)}${n.v}`);let r=(t.successRate*100).toFixed(1);if(console.log(`${n.v} Success Rate: ${D(`${r}%`,32)}${n.v}`),console.log(`${n.v} Short-term: ${D(String(t.shortTermPatterns),32)}${n.v}`),console.log(`${n.v} Long-term: ${D(String(t.longTermPatterns),32)}${n.v}`),console.log(`${n.v}${" ".repeat(l-2)}${n.v}`),console.log(`${n.v} ${x.bold("Domain Coverage:")}${" ".repeat(l-19)}${n.v}`),e.length===0)console.log(`${n.v} ${x.dim("No patterns yet")}${" ".repeat(l-19)}${n.v}`);else{let c=Math.max(...e.map(f=>f.count),1),u=14;for(let{domain:f,count:h}of e){let $=Math.round(h/c*u),b=u-$,k=x.green("\u2588".repeat($))+x.dim("\u2591".repeat(b)),F=D(f,20),L=ue(String(h),3);console.log(`${n.v} ${F} ${k} ${L} patterns ${n.v}`)}let a=new Set(e.map(f=>f.domain)),y=q.filter(f=>!a.has(f)).slice(0,3);for(let f of y){let h=x.dim("\u2591".repeat(u)),$=D(f,20);console.log(`${n.v} ${$} ${h} 0 patterns ${n.v}`)}}console.log(`${n.bl}${i}${n.br}`),console.log("")}function me(s,t){let e=G(s),n=Math.max(0,t-e.length),l=Math.floor(n/2),i=n-l;return" ".repeat(l)+s+" ".repeat(i)}function D(s,t){let e=G(s),n=Math.max(0,t-e.length);return s+" ".repeat(n)}function ue(s,t){let e=G(s),n=Math.max(0,t-e.length);return" ".repeat(n)+s}function G(s){return s.replace(/\x1b\[[0-9;]*m/g,"")}function j(){let s=T();return U.join(s,".agentic-qe","memory.db")}async function Q(s,t){let e=t||`${s}.gz`;return await oe(te(s),pe(),ne(e)),e}async function V(s,t){await oe(te(s),ge(),ne(t))}async function _(s){try{let t=C(s,{readonly:!0}),e=t.prepare("PRAGMA integrity_check").get();return t.close(),e.integrity_check==="ok"?{valid:!0,message:"Database integrity verified"}:{valid:!1,message:`Integrity check failed: ${e.integrity_check}`}}catch(t){return{valid:!1,message:`Failed to verify: ${t instanceof Error?t.message:"unknown error"}`}}}async function N(s){try{let t=C(s,{readonly:!0});if(!t.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='schema_version'").get())return t.close(),0;let n=t.prepare("SELECT version FROM schema_version WHERE id = 1").get();return t.close(),n?.version??0}catch{return 0}}var H="3.1.0",re={generate:"test-generation","test-generation":"test-generation",analyze:"coverage-analysis",coverage:"coverage-analysis","coverage-analysis":"coverage-analysis",run:"test-execution","test-execution":"test-execution",report:"quality-assessment",quality:"quality-assessment","quality-analysis":"quality-assessment",security:"security-compliance",sast:"security-compliance",owasp:"security-compliance",secrets:"security-compliance",audit:"security-compliance",recommend:"defect-intelligence",predict:"defect-intelligence","complexity-analysis":"code-intelligence","code-analysis":"code-intelligence",stabilize:"chaos-resilience",flaky:"chaos-resilience",quarantine:"chaos-resilience",retry:"chaos-resilience",stress:"chaos-resilience",load:"chaos-resilience",endurance:"chaos-resilience",baseline:"chaos-resilience"},se={generate:"test-template","test-generation":"test-template",analyze:"coverage-strategy",coverage:"coverage-strategy","coverage-analysis":"coverage-strategy",run:"test-template","test-execution":"test-template",report:"assertion-pattern",quality:"assertion-pattern","quality-analysis":"assertion-pattern",security:"assertion-pattern",sast:"assertion-pattern",owasp:"assertion-pattern",secrets:"assertion-pattern",audit:"assertion-pattern",recommend:"assertion-pattern",predict:"assertion-pattern","complexity-analysis":"assertion-pattern","code-analysis":"assertion-pattern",stabilize:"flaky-fix",flaky:"flaky-fix",quarantine:"flaky-fix",retry:"flaky-fix",stress:"perf-benchmark",load:"perf-benchmark",endurance:"perf-benchmark",baseline:"perf-benchmark",mock:"mock-pattern",dependency:"mock-pattern"};function at(){let s=new fe("learning").description("AQE self-learning system management (standalone, no claude-flow required)").addHelpText("after",`
4
4
  Examples:
5
5
  # Check learning system status
6
6
  aqe learning stats
@@ -82,7 +82,7 @@ Table Counts:`));for(let[p,d]of Object.entries(m))console.log(` ${p}: ${d}`)}co
82
82
  Dry run - no changes made`)),console.log(` Would import: ${u}
83
83
  Would update: ${y}
84
84
  Would skip: ${a}`)):(console.log(o.green(`
85
- Imported: ${d}`)),console.log(o.blue(` Updated: ${r}`)),g>0&&console.log(o.yellow(` Skipped: ${g}`)),c.length>0&&console.log(o.red(` Errors: ${c.length}`))),console.log(""));return}catch(e){throw R(`import-merge failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Oe(s){s.command("dream").description("Run dream cycles for pattern discovery via spreading activation").option("--duration <ms>","Duration of dream cycle in milliseconds","30000").option("--quick","Run a quick 5-second dream cycle").option("--full","Run a full 30-second dream cycle").option("--status","Show dream system status").option("--history","Show past dream cycles").option("--insights","Show pending insights from previous cycles").option("--apply <id>","Apply a specific insight by ID").option("--limit <n>","Maximum results for history/insights","20").option("--min-patterns <n>","Minimum patterns required to dream","10").option("--json","Output as JSON").action(async t=>{try{let{createDreamEngine:e}=await import("./dream-PGYTIOQS.js");if(t.status){let r=e();await r.initialize();let c=r.isDreaming(),u=await r.getDreamHistory(100),a=await r.getPendingInsights(100),y=u.reduce((h,$)=>h+$.insightsGenerated,0),f=u[0];if(t.json)v({isDreaming:c,totalCycles:u.length,totalInsights:y,pendingInsights:a.length,lastDreamTime:f?.startTime.toISOString()||null});else{if(console.log(o.bold(`
85
+ Imported: ${d}`)),console.log(o.blue(` Updated: ${r}`)),g>0&&console.log(o.yellow(` Skipped: ${g}`)),c.length>0&&console.log(o.red(` Errors: ${c.length}`))),console.log(""));return}catch(e){throw R(`import-merge failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Oe(s){s.command("dream").description("Run dream cycles for pattern discovery via spreading activation").option("--duration <ms>","Duration of dream cycle in milliseconds","30000").option("--quick","Run a quick 5-second dream cycle").option("--full","Run a full 30-second dream cycle").option("--status","Show dream system status").option("--history","Show past dream cycles").option("--insights","Show pending insights from previous cycles").option("--apply <id>","Apply a specific insight by ID").option("--limit <n>","Maximum results for history/insights","20").option("--min-patterns <n>","Minimum patterns required to dream","10").option("--json","Output as JSON").action(async t=>{try{let{createDreamEngine:e}=await import("./dream-FBYASIID.js");if(t.status){let r=e();await r.initialize();let c=r.isDreaming(),u=await r.getDreamHistory(100),a=await r.getPendingInsights(100),y=u.reduce((h,$)=>h+$.insightsGenerated,0),f=u[0];if(t.json)v({isDreaming:c,totalCycles:u.length,totalInsights:y,pendingInsights:a.length,lastDreamTime:f?.startTime.toISOString()||null});else{if(console.log(o.bold(`
86
86
  \u{1F319} Dream System Status
87
87
  `)),console.log(` Currently dreaming: ${c?o.green("Yes"):o.dim("No")}`),console.log(` Total dream cycles: ${u.length}`),console.log(` Total insights generated: ${y}`),console.log(` Pending insights: ${a.length}`),console.log(` Last dream: ${f?f.startTime.toISOString():o.dim("never")}`),u.length>0){console.log(o.bold(`
88
88
  Recent cycles:`));for(let h of u.slice(0,3)){let $=h.status==="completed"?o.green(h.status):o.yellow(h.status);console.log(` ${h.id.slice(0,8)} | ${$} | ${h.durationMs||0}ms | ${h.insightsGenerated} insights`)}}console.log("")}await r.close();return}if(t.history){let r=parseInt(t.limit,10),c=e();await c.initialize();let u=await c.getDreamHistory(r);if(t.json)v(u.map(a=>({id:a.id,startTime:a.startTime.toISOString(),endTime:a.endTime?.toISOString(),durationMs:a.durationMs,status:a.status,conceptsProcessed:a.conceptsProcessed,associationsFound:a.associationsFound,insightsGenerated:a.insightsGenerated})));else{if(console.log(o.bold(`
@@ -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.20");process.exit(0)}
2
- import{a as P,b as w,c as M}from"./chunk-T3TEQH2H.js";import{b as k,d as E}from"./chunk-AFMLL2G3.js";import"./chunk-H647PYXW.js";E();import{Command as A}from"commander";import n from"chalk";var c={...w};function B(){let o=new A("llm").description("LLM Router management (ADR-043)").addHelpText("after",`
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.21");process.exit(0)}
2
+ import{a as P,b as w,c as M}from"./chunk-34BTSZ5D.js";import{b as k,d as E}from"./chunk-5EYQP3V3.js";import"./chunk-4ZUXTOUG.js";E();import{Command as A}from"commander";import n from"chalk";var c={...w};function B(){let o=new A("llm").description("LLM Router management (ADR-043)").addHelpText("after",`
3
3
  Examples:
4
4
  $ aqe llm providers List available providers
5
5
  $ aqe llm models --provider claude List Claude models
@@ -30,7 +30,7 @@ Cost Estimate
30
30
  `)),console.log(n.gray(`Model: ${s.canonicalName} (${s.canonicalId})`)),console.log(n.gray(`Tokens: ${t.toLocaleString()}
31
31
  `)),console.log(n.bold("Pricing (per 1M tokens):")),console.log(` Input: ${$(s.inputCostPer1M)}`),console.log(` Output: ${$(s.outputCostPer1M)}`),console.log(n.bold(`
32
32
  Estimated Cost:`)),console.log(` Input: ${n.yellow("$"+r.toFixed(6))}`),console.log(` Output: ${n.yellow("$"+i.toFixed(6))}`),console.log(` Total: ${n.green("$"+d.toFixed(6))}`),console.log("")}function l(o,e){return o.padEnd(e)}function _(o,e){return o.length<=e?o:o.slice(0,e-1)+"..."}function $(o){return o==null?"-":o===0?"$0 (free)":`$${o.toFixed(2)}`}function j(o){return{claude:"claude-sonnet-4-6",openai:"gpt-4o",ollama:"llama3.1",openrouter:"anthropic/claude-sonnet-4",gemini:"gemini-2.0-pro","azure-openai":"gpt-4o",bedrock:"anthropic.claude-sonnet-4-v1:0",onnx:"phi-4"}[o]||""}function x(o){let e=t=>!!process.env[t];switch(o){case"claude":return e("ANTHROPIC_API_KEY")?"available":"configured";case"openai":return e("OPENAI_API_KEY")?"available":"configured";case"ollama":return"configured";case"openrouter":return e("OPENROUTER_API_KEY")?"available":"not configured";case"gemini":return e("GOOGLE_API_KEY")?"available":"not configured";case"azure-openai":return e("AZURE_OPENAI_API_KEY")?"available":"not configured";case"bedrock":return e("AWS_ACCESS_KEY_ID")?"available":"not configured";case"onnx":return"configured";default:return"not configured"}}function J(o,e){let{mode:t,complexity:s,agentType:r}=e;return r?.includes("security")||o.toLowerCase().includes("security")?{provider:"claude",model:"claude-sonnet-4-6",reason:"Security tasks require advanced reasoning (rule-match)",confidence:.95,estimatedCost:{inputTokens:2e3,outputTokens:1e3,totalCostUsd:.021}}:t==="cost-optimized"||s==="trivial"||s==="low"?{provider:"openai",model:"gpt-4o-mini",reason:"Cost optimization selected efficient model",confidence:.85,estimatedCost:{inputTokens:2e3,outputTokens:1e3,totalCostUsd:9e-4}}:t==="performance-optimized"||s==="expert"?{provider:"claude",model:"claude-opus-4-7",reason:"Complex task requires flagship model",confidence:.92,estimatedCost:{inputTokens:2e3,outputTokens:1e3,totalCostUsd:.105}}:{provider:c.defaultProvider,model:c.defaultModel,reason:"Default provider selected",confidence:.8,estimatedCost:{inputTokens:2e3,outputTokens:1e3,totalCostUsd:.021}}}function L(o,e){switch(o){case"mode":if(["manual","rule-based","cost-optimized","performance-optimized"].includes(e))c.mode=e;else throw new Error(`Invalid mode: ${e}`);break;case"defaultProvider":if(P.includes(e))c.defaultProvider=e;else throw new Error(`Invalid provider: ${e}`);break;case"enableMetrics":c.enableMetrics=e==="true";break;case"cacheDecisions":c.cacheDecisions=e==="true";break;default:throw new Error(`Unknown config key: ${o}`)}}async function q(o){return P.map(e=>{let t=x(e);return{provider:e,healthy:t==="available"||e==="ollama"||e==="onnx",latencyMs:t!=="not configured"?k(50,250):void 0,message:t==="available"?"OK":t==="configured"?"API key not verified":"Not configured"}})}function F(o){let e=M.find(t=>t.canonicalId===o);if(e)return e;for(let t of M)for(let s of Object.values(t.providerIds))if(s===o)return t}async function U(o){let{readFile:e}=await import("fs/promises");if(o.transcript){let t=await e(o.transcript,"utf-8"),s=JSON.parse(t);if(!s.messages||!Array.isArray(s.messages))throw new Error(`Transcript file must contain a 'messages' array: ${o.transcript}`);return{systemPrompt:s.systemPrompt,taskDescription:s.taskDescription,messages:s.messages}}if(o.stdin){let t=[];for await(let i of process.stdin)t.push(Buffer.from(i));let s=Buffer.concat(t).toString("utf-8"),r=JSON.parse(s);if(!r.messages||!Array.isArray(r.messages))throw new Error("Transcript from stdin must contain a `messages` array");return{systemPrompt:r.systemPrompt,taskDescription:r.taskDescription,messages:r.messages}}if(o.session){let{readFile:t,readdir:s}=await import("fs/promises"),{join:r}=await import("path"),i=await import("os"),d=r(i.homedir(),".claude","projects"),g=null;try{let h=await s(d);for(let m of h){let f=r(d,m),a=(await s(f).catch(()=>[])).find(u=>u.includes(o.session)&&u.endsWith(".jsonl"));if(a){g=r(f,a);break}}}catch{}if(!g)throw new Error(`Could not find session JSONL for session ID "${o.session}" in ~/.claude/projects/. Use --transcript <path> as fallback.`);let y=(await t(g,"utf-8")).trim().split(`
33
- `).filter(Boolean),p=[];for(let h of y)try{let m=JSON.parse(h),f=m.type,v=m.message;if(!v)continue;let a=v.role,u=v.content;if(f==="user"&&a==="user"){let b=typeof u=="string"?u:Array.isArray(u)?u.map(C=>C.text??"").join(""):"";b.trim()&&p.push({role:"user",content:b})}else if(f==="assistant"&&a==="assistant"){let b=typeof u=="string"?u:Array.isArray(u)?u.filter(C=>C.type==="text").map(C=>C.text??"").join(""):"";b.trim()&&p.push({role:"assistant",content:b})}}catch{}if(p.length===0)throw new Error(`Session JSONL at ${g} contained no parseable messages.`);return{messages:p}}throw new Error("aqe llm advise requires one of: --transcript <path>, --stdin, --session <id>")}async function H(o){let e=o.json!==!1,t=o.quiet??!1;try{let s=await U(o);!t&&!e&&console.log(n.gray("Consulting advisor..."));let{createProviderManager:r}=await import("./provider-manager-GEO3CUOO.js"),{createHybridRouter:i}=await import("./hybrid-router-BR7O6WT2.js"),{MultiModelExecutor:d,DEFAULT_ADVISOR_PROVIDER:g,DEFAULT_ADVISOR_MODEL:O}=await import("./multi-model-executor-SG6OME2A.js"),y=o.provider??g,p=o.model??O,h=r({primary:y==="openrouter"?"openrouter":y,providers:{openrouter:{apiKey:process.env.OPENROUTER_API_KEY,model:p}}}),m=i(h,{mode:"manual",defaultProvider:y,defaultModel:p});await m.initialize();let f=new d(m),v=o.redact??"strict",a=await f.consult(s,{provider:y,model:p,maxWords:o.maxWords?parseInt(o.maxWords,10):void 0,agentName:o.agent,triggerReason:o.triggerReason??"cli",sessionId:o.session??"cli-"+Date.now(),redact:v,advisorSystemPrompt:o.advisorPrompt});e?console.log(JSON.stringify({advice:a.advice,model:a.model,provider:a.provider,tokens_in:a.tokensIn,tokens_out:a.tokensOut,latency_ms:a.latencyMs,cost_usd:a.costUsd,advice_hash:a.adviceHash,trigger_reason:a.triggerReason,cache_hit:a.cacheHit,redaction_applied:a.redactionsApplied.length>0,redactions:a.redactionsApplied,circuit_breaker_remaining:a.circuitBreakerRemaining},null,2)):(console.log(n.bold.cyan(`
33
+ `).filter(Boolean),p=[];for(let h of y)try{let m=JSON.parse(h),f=m.type,v=m.message;if(!v)continue;let a=v.role,u=v.content;if(f==="user"&&a==="user"){let b=typeof u=="string"?u:Array.isArray(u)?u.map(C=>C.text??"").join(""):"";b.trim()&&p.push({role:"user",content:b})}else if(f==="assistant"&&a==="assistant"){let b=typeof u=="string"?u:Array.isArray(u)?u.filter(C=>C.type==="text").map(C=>C.text??"").join(""):"";b.trim()&&p.push({role:"assistant",content:b})}}catch{}if(p.length===0)throw new Error(`Session JSONL at ${g} contained no parseable messages.`);return{messages:p}}throw new Error("aqe llm advise requires one of: --transcript <path>, --stdin, --session <id>")}async function H(o){let e=o.json!==!1,t=o.quiet??!1;try{let s=await U(o);!t&&!e&&console.log(n.gray("Consulting advisor..."));let{createProviderManager:r}=await import("./provider-manager-2JFXKYMZ.js"),{createHybridRouter:i}=await import("./hybrid-router-Z5V4E5SJ.js"),{MultiModelExecutor:d,DEFAULT_ADVISOR_PROVIDER:g,DEFAULT_ADVISOR_MODEL:O}=await import("./multi-model-executor-SJXBFOK5.js"),y=o.provider??g,p=o.model??O,h=r({primary:y==="openrouter"?"openrouter":y,providers:{openrouter:{apiKey:process.env.OPENROUTER_API_KEY,model:p}}}),m=i(h,{mode:"manual",defaultProvider:y,defaultModel:p});await m.initialize();let f=new d(m),v=o.redact??"strict",a=await f.consult(s,{provider:y,model:p,maxWords:o.maxWords?parseInt(o.maxWords,10):void 0,agentName:o.agent,triggerReason:o.triggerReason??"cli",sessionId:o.session??"cli-"+Date.now(),redact:v,advisorSystemPrompt:o.advisorPrompt});e?console.log(JSON.stringify({advice:a.advice,model:a.model,provider:a.provider,tokens_in:a.tokensIn,tokens_out:a.tokensOut,latency_ms:a.latencyMs,cost_usd:a.costUsd,advice_hash:a.adviceHash,trigger_reason:a.triggerReason,cache_hit:a.cacheHit,redaction_applied:a.redactionsApplied.length>0,redactions:a.redactionsApplied,circuit_breaker_remaining:a.circuitBreakerRemaining},null,2)):(console.log(n.bold.cyan(`
34
34
  Advisor Response
35
- `)),console.log(a.advice),console.log(),console.log(n.gray(`(${a.provider}/${a.model}, ${a.tokensIn}\u2192${a.tokensOut} tokens, ${a.latencyMs}ms, $${a.costUsd.toFixed(4)})`))),process.exit(0)}catch(s){let r=s instanceof Error?s.message:String(s),i=s?.exitCode??1;console.error(e?JSON.stringify({error:r,exit_code:i},null,2):n.red(`Error: ${r}`)),process.exit(i)}}async function z(o){let e=o.json??!1,t=parseInt(o.minCalls??"1",10);try{let{AdvisorCircuitBreaker:s}=await import("./circuit-breaker-7ROW7QBW.js"),i=new s().getState(o.session),d=i.callCount>=t,g={session:o.session,advisor_calls:i.callCount,required:t,gate:d?"PASS":"FAIL"};if(e)console.log(JSON.stringify(g,null,2));else{let O=d?n.green("PASS"):n.red("FAIL");console.log(`
35
+ `)),console.log(a.advice),console.log(),console.log(n.gray(`(${a.provider}/${a.model}, ${a.tokensIn}\u2192${a.tokensOut} tokens, ${a.latencyMs}ms, $${a.costUsd.toFixed(4)})`))),process.exit(0)}catch(s){let r=s instanceof Error?s.message:String(s),i=s?.exitCode??1;console.error(e?JSON.stringify({error:r,exit_code:i},null,2):n.red(`Error: ${r}`)),process.exit(i)}}async function z(o){let e=o.json??!1,t=parseInt(o.minCalls??"1",10);try{let{AdvisorCircuitBreaker:s}=await import("./circuit-breaker-6UNLOLMW.js"),i=new s().getState(o.session),d=i.callCount>=t,g={session:o.session,advisor_calls:i.callCount,required:t,gate:d?"PASS":"FAIL"};if(e)console.log(JSON.stringify(g,null,2));else{let O=d?n.green("PASS"):n.red("FAIL");console.log(`
36
36
  Advisor Quality Gate: ${O}`),console.log(` Session: ${o.session}`),console.log(` Advisor calls: ${i.callCount}`),console.log(` Required: \u2265${t}`)}process.exit(d?0:7)}catch(s){let r=s instanceof Error?s.message:String(s);console.error(e?JSON.stringify({error:r},null,2):n.red(`Error: ${r}`)),process.exit(1)}}export{B as createLLMRouterCommand};