agentic-qe 3.13.6 → 3.13.8

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 (336) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +63 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/cli/bundle.js +5 -5
  5. package/dist/cli/chunks/adapter-DM2E2X4Q.js +2 -0
  6. package/dist/cli/chunks/{agent-booster-wasm-TMON22NL.js → agent-booster-wasm-W5KKWWGM.js} +2 -2
  7. package/dist/cli/chunks/{agent-handler-JOX6O26U.js → agent-handler-U27BOQIY.js} +2 -2
  8. package/dist/cli/chunks/{agent-memory-branch-AMIJIDCM.js → agent-memory-branch-FYEN2L2U.js} +2 -2
  9. package/dist/cli/chunks/aqe-learning-engine-STMX2LM7.js +2 -0
  10. package/dist/cli/chunks/{arena-RKLFXDMO.js → arena-7GWHLRNN.js} +4 -4
  11. package/dist/cli/chunks/{arena-N6SO2CCQ.js → arena-F2ZO52SD.js} +2 -2
  12. package/dist/cli/chunks/{audit-ZJE3DUH6.js → audit-O4RLECCQ.js} +3 -3
  13. package/dist/cli/chunks/base-EPDGZB2X.js +2 -0
  14. package/dist/cli/chunks/{better-sqlite3-5G6AR6LX.js → better-sqlite3-3VQVXH7I.js} +2 -2
  15. package/dist/cli/chunks/{brain-handler-QD4DZ574.js → brain-handler-Z4FSHVHF.js} +3 -3
  16. package/dist/cli/chunks/{branch-enumerator-PG3OUYE6.js → branch-enumerator-VW7QDS3O.js} +2 -2
  17. package/dist/cli/chunks/{browser-Y2DJG7HQ.js → browser-P5PZI236.js} +2 -2
  18. package/dist/cli/chunks/browser-workflow-CRZ6635H.js +2 -0
  19. package/dist/cli/chunks/{chunk-Z6SAS2NU.js → chunk-22TNTFEN.js} +1 -1
  20. package/dist/cli/chunks/{chunk-TMM5NKPI.js → chunk-2CJ5V2DT.js} +1 -1
  21. package/dist/cli/chunks/{chunk-2FTAMEOB.js → chunk-2CSKJ5JM.js} +1 -1
  22. package/dist/cli/chunks/{chunk-N7JRGAJF.js → chunk-2GD3RLVF.js} +2 -2
  23. package/dist/cli/chunks/{chunk-2ILX73JG.js → chunk-2Q7T3PL4.js} +1 -1
  24. package/dist/cli/chunks/{chunk-TWNXZOJY.js → chunk-3KSB2PDF.js} +2 -2
  25. package/dist/cli/chunks/{chunk-75QKZ6VX.js → chunk-3OJWLZIO.js} +2 -2
  26. package/dist/cli/chunks/{chunk-RBNSZFVL.js → chunk-3UENFJEV.js} +3 -3
  27. package/dist/cli/chunks/{chunk-FH6H4KOZ.js → chunk-426SRHIW.js} +20 -20
  28. package/dist/cli/chunks/{chunk-7TON6JSG.js → chunk-4GTPYV66.js} +2 -2
  29. package/dist/cli/chunks/{chunk-JGQZ7ECC.js → chunk-55UQC4BO.js} +1 -1
  30. package/dist/cli/chunks/{chunk-3TC4ZPGR.js → chunk-5LLHM6NK.js} +2 -2
  31. package/dist/cli/chunks/{chunk-X75OYPS6.js → chunk-5P2K6VVS.js} +1 -1
  32. package/dist/cli/chunks/{chunk-IHUAEQZN.js → chunk-5PRVDHNG.js} +1 -1
  33. package/dist/cli/chunks/{chunk-VK5I4JSN.js → chunk-5QZAXVUI.js} +2 -2
  34. package/dist/cli/chunks/{chunk-RDSO3R2R.js → chunk-65LJ2QU4.js} +3 -3
  35. package/dist/cli/chunks/{chunk-NX6FOAS4.js → chunk-6BNPFSFE.js} +1 -1
  36. package/dist/cli/chunks/{chunk-6ITWOYET.js → chunk-6H3VRSJ4.js} +2 -2
  37. package/dist/cli/chunks/{chunk-2SVDR5KB.js → chunk-756OZOSH.js} +2 -2
  38. package/dist/cli/chunks/{chunk-NUDDFJYU.js → chunk-7QJ344ZA.js} +2 -2
  39. package/dist/cli/chunks/{chunk-PX7MVV6F.js → chunk-7TK24XF7.js} +2 -2
  40. package/dist/cli/chunks/{chunk-OS56PKRO.js → chunk-7VWAKVRE.js} +2 -2
  41. package/dist/cli/chunks/{chunk-QQA4N3YT.js → chunk-A3V4SRLU.js} +2 -2
  42. package/dist/cli/chunks/{chunk-UNLH7NPY.js → chunk-ACZ7CNBM.js} +1 -1
  43. package/dist/cli/chunks/{chunk-XZPAKAFJ.js → chunk-AGJG5PAS.js} +1 -1
  44. package/dist/cli/chunks/{chunk-CBXJ4AQS.js → chunk-AKCNLYE3.js} +2 -2
  45. package/dist/cli/chunks/{chunk-R2GHZ2QG.js → chunk-AMTA6V5L.js} +2 -2
  46. package/dist/cli/chunks/{chunk-6QZSF6RL.js → chunk-BC37ZYBO.js} +2 -2
  47. package/dist/cli/chunks/{chunk-MOIKR7RU.js → chunk-BS4ZARET.js} +2 -2
  48. package/dist/cli/chunks/{chunk-DS53MJCN.js → chunk-BTCQJOI2.js} +1 -1
  49. package/dist/cli/chunks/{chunk-Y2QZK46R.js → chunk-BU6HG2RT.js} +2 -2
  50. package/dist/cli/chunks/{chunk-E7MD5LHC.js → chunk-C37IK75J.js} +2 -2
  51. package/dist/cli/chunks/{chunk-CTILSLXF.js → chunk-CB23FNZW.js} +2 -2
  52. package/dist/cli/chunks/{chunk-PA6SUNDD.js → chunk-CB6FBMND.js} +1 -1
  53. package/dist/cli/chunks/{chunk-PW3JLQGH.js → chunk-CDBTYQ4N.js} +2 -2
  54. package/dist/cli/chunks/{chunk-V5MS6XNT.js → chunk-CDVGXGUX.js} +2 -2
  55. package/dist/cli/chunks/{chunk-KBHSID6C.js → chunk-CK2I5QTK.js} +2 -2
  56. package/dist/cli/chunks/{chunk-K7ZFBGLE.js → chunk-CR5ZQXMN.js} +2 -2
  57. package/dist/cli/chunks/{chunk-EKWEJOV7.js → chunk-CZTNTQZA.js} +1 -1
  58. package/dist/cli/chunks/{chunk-LYGHX4II.js → chunk-D2SHZXX7.js} +1 -1
  59. package/dist/cli/chunks/{chunk-XRH2D6JV.js → chunk-D45ZSWZD.js} +3 -3
  60. package/dist/cli/chunks/{chunk-EYHRYIBX.js → chunk-D53CCDCD.js} +1 -1
  61. package/dist/cli/chunks/{chunk-5VGQABM3.js → chunk-DKX6SIVF.js} +4 -4
  62. package/dist/cli/chunks/{chunk-FGQH5LOG.js → chunk-DPQ2IANL.js} +2 -2
  63. package/dist/cli/chunks/{chunk-U63JEFF5.js → chunk-DTN5NUAJ.js} +2 -2
  64. package/dist/cli/chunks/{chunk-7NYCYSGW.js → chunk-DW5F6DJM.js} +2 -2
  65. package/dist/cli/chunks/{chunk-WA553ALQ.js → chunk-DZHVLIR6.js} +1 -1
  66. package/dist/cli/chunks/{chunk-MTEEFP6V.js → chunk-E2OORKCW.js} +2 -2
  67. package/dist/cli/chunks/{chunk-ADYY2GKC.js → chunk-EO3RV7QV.js} +2 -2
  68. package/dist/cli/chunks/{chunk-KHDE4KT5.js → chunk-FMTURKX4.js} +4 -4
  69. package/dist/cli/chunks/{chunk-QSO5RFJ4.js → chunk-FSKEQ625.js} +4 -4
  70. package/dist/cli/chunks/{chunk-HWWMINXV.js → chunk-GO6GSIHE.js} +2 -2
  71. package/dist/cli/chunks/{chunk-5VV5MOED.js → chunk-GPRPGL5N.js} +2 -2
  72. package/dist/cli/chunks/{chunk-DR2M2SI2.js → chunk-GVX4IAKF.js} +2 -2
  73. package/dist/cli/chunks/{chunk-2BUDKFIE.js → chunk-HBM423QM.js} +1 -1
  74. package/dist/cli/chunks/{chunk-2VUXU22M.js → chunk-HD22NMGP.js} +2 -2
  75. package/dist/cli/chunks/{chunk-UHQA6EH6.js → chunk-HP76TI6A.js} +2 -2
  76. package/dist/cli/chunks/{chunk-4YFBAXRD.js → chunk-HQQI4ZEO.js} +1 -1
  77. package/dist/cli/chunks/{chunk-4VWB64OH.js → chunk-HRAU4ZC3.js} +1 -1
  78. package/dist/cli/chunks/{chunk-JPJSOS4H.js → chunk-I6LGE3DO.js} +1 -1
  79. package/dist/cli/chunks/{chunk-EVJSK56E.js → chunk-ICET3FUT.js} +3 -3
  80. package/dist/cli/chunks/{chunk-PTBW2QXE.js → chunk-IYOGT6HD.js} +2 -2
  81. package/dist/cli/chunks/{chunk-R5FSKAS3.js → chunk-J3EDJVZR.js} +1 -1
  82. package/dist/cli/chunks/{chunk-ACHMNMEJ.js → chunk-JKSAZL2F.js} +1 -1
  83. package/dist/cli/chunks/chunk-K6XYLMXO.js +2 -0
  84. package/dist/cli/chunks/{chunk-YOVQBSTW.js → chunk-L24DBYXX.js} +2 -2
  85. package/dist/cli/chunks/{chunk-6VUEUYFL.js → chunk-LXGDJ5TO.js} +5 -5
  86. package/dist/cli/chunks/{chunk-POZ3S4UO.js → chunk-M3PXWTNF.js} +2 -2
  87. package/dist/cli/chunks/{chunk-DLBJ7IZT.js → chunk-M7O7UKP3.js} +10 -10
  88. package/dist/cli/chunks/{chunk-GEH3S5DI.js → chunk-MKCCKFUY.js} +2 -2
  89. package/dist/cli/chunks/{chunk-GSZL3WST.js → chunk-MLFS3MVR.js} +2 -2
  90. package/dist/cli/chunks/{chunk-7KRZ2Q6B.js → chunk-MMNNQ5PO.js} +3 -3
  91. package/dist/cli/chunks/{chunk-YL7CAOQG.js → chunk-MQKQTX4T.js} +3 -3
  92. package/dist/cli/chunks/{chunk-JDADNBWS.js → chunk-MRLPZMA3.js} +1 -1
  93. package/dist/cli/chunks/{chunk-VSP2IB5N.js → chunk-N7ITWNQP.js} +2 -2
  94. package/dist/cli/chunks/{chunk-Q4RU4XG6.js → chunk-NJ7SVXE6.js} +2 -2
  95. package/dist/cli/chunks/{chunk-ISOTSVI7.js → chunk-NW5XQQMC.js} +1 -1
  96. package/dist/cli/chunks/{chunk-UN2MXDJT.js → chunk-NXTV6EJQ.js} +2 -2
  97. package/dist/cli/chunks/{chunk-D777E2MT.js → chunk-OWWLOSVW.js} +2 -2
  98. package/dist/cli/chunks/{chunk-523XPMTU.js → chunk-OZSYL2CL.js} +1 -1
  99. package/dist/cli/chunks/{chunk-P4CHYYJN.js → chunk-P6PRMORM.js} +2 -2
  100. package/dist/cli/chunks/{chunk-V4QQTPZF.js → chunk-PDIJAWCK.js} +2 -2
  101. package/dist/cli/chunks/{chunk-463VBHHH.js → chunk-PIPV2C7N.js} +2 -2
  102. package/dist/cli/chunks/{chunk-BDVZF46F.js → chunk-PLIUHFVE.js} +2 -2
  103. package/dist/cli/chunks/{chunk-BAOKXLIV.js → chunk-PTAX4IY2.js} +2 -2
  104. package/dist/cli/chunks/{chunk-F66FYZQF.js → chunk-PVUQMV6P.js} +2 -2
  105. package/dist/cli/chunks/{chunk-YQUZGPUQ.js → chunk-PZS742LW.js} +1 -1
  106. package/dist/cli/chunks/{chunk-LQYAJ7RR.js → chunk-Q53NBMNL.js} +2 -2
  107. package/dist/cli/chunks/{chunk-7225UNNY.js → chunk-QFHOF4F3.js} +2 -2
  108. package/dist/cli/chunks/{chunk-X3CHYV7G.js → chunk-QMMRUFEI.js} +2 -2
  109. package/dist/cli/chunks/{chunk-NUCVMWDJ.js → chunk-QWACAQQ4.js} +2 -2
  110. package/dist/cli/chunks/{chunk-LVLGRUUJ.js → chunk-QYPXBIP5.js} +1 -1
  111. package/dist/cli/chunks/{chunk-5CMZDVUR.js → chunk-QYZLZ6P3.js} +2 -2
  112. package/dist/cli/chunks/{chunk-TGSL4OOT.js → chunk-R557EYUJ.js} +2 -2
  113. package/dist/cli/chunks/{chunk-PGDDPZ7W.js → chunk-RWSBQ2AD.js} +1 -1
  114. package/dist/cli/chunks/{chunk-OIGWREK7.js → chunk-SBGMMCPJ.js} +1 -1
  115. package/dist/cli/chunks/{chunk-YRRYKR7U.js → chunk-SECJ2IQE.js} +2 -2
  116. package/dist/cli/chunks/{chunk-DXM7IN2W.js → chunk-SEOOA2FX.js} +2 -2
  117. package/dist/cli/chunks/{chunk-AOUULKKT.js → chunk-SLTIRAYZ.js} +2 -2
  118. package/dist/cli/chunks/{chunk-GV3C224P.js → chunk-SSIOQDWN.js} +2 -2
  119. package/dist/cli/chunks/{chunk-PSAXLKDZ.js → chunk-SXSCWO6M.js} +2 -2
  120. package/dist/cli/chunks/{chunk-3QJH5W55.js → chunk-SYPXKVVR.js} +2 -2
  121. package/dist/cli/chunks/{chunk-E3OKRZCH.js → chunk-SZYHPGZD.js} +2 -2
  122. package/dist/cli/chunks/{chunk-EYWR4Y3J.js → chunk-TM55OOPV.js} +1 -1
  123. package/dist/cli/chunks/{chunk-PLYGIUFO.js → chunk-TQL4CSAS.js} +2 -2
  124. package/dist/cli/chunks/{chunk-JQXAWTS5.js → chunk-U6O3CFIW.js} +3 -3
  125. package/dist/cli/chunks/{chunk-P6A35LKJ.js → chunk-UGBHQC32.js} +2 -2
  126. package/dist/cli/chunks/{chunk-NNIAUDHF.js → chunk-UJ5KZ764.js} +1 -1
  127. package/dist/cli/chunks/{chunk-EY44JDUL.js → chunk-UK2267F4.js} +3 -3
  128. package/dist/cli/chunks/{chunk-FV47SYXK.js → chunk-VJDGJ6CW.js} +1 -1
  129. package/dist/cli/chunks/{chunk-7GTB7LVJ.js → chunk-W2FT6OUU.js} +3 -3
  130. package/dist/cli/chunks/{chunk-LLVXOXAK.js → chunk-W4CW6TKP.js} +1 -1
  131. package/dist/cli/chunks/{chunk-O34674VM.js → chunk-WIDOUTFF.js} +2 -2
  132. package/dist/cli/chunks/{chunk-THW6LF5I.js → chunk-WMRLLJDW.js} +2 -2
  133. package/dist/cli/chunks/{chunk-LGP26FTM.js → chunk-WR3PYP6X.js} +2 -2
  134. package/dist/cli/chunks/{chunk-BGLSIA4U.js → chunk-X4FHVATG.js} +2 -2
  135. package/dist/cli/chunks/{chunk-CKYRZ3TA.js → chunk-X6MSSQFP.js} +2 -2
  136. package/dist/cli/chunks/{chunk-GQCYO54W.js → chunk-X6VCAUOX.js} +2 -2
  137. package/dist/cli/chunks/{chunk-HBNMEYJS.js → chunk-XIJGRH5I.js} +10 -10
  138. package/dist/cli/chunks/chunk-XJT6TR5E.js +2 -0
  139. package/dist/cli/chunks/{chunk-6UPQD42K.js → chunk-XKKCH24C.js} +2 -2
  140. package/dist/cli/chunks/{chunk-EP4ORDFE.js → chunk-XONUAS4K.js} +2 -2
  141. package/dist/cli/chunks/{chunk-DSTQ2OWI.js → chunk-XPMQEFQI.js} +1 -1
  142. package/dist/cli/chunks/{chunk-R5LDNZVB.js → chunk-XUB5UG7C.js} +2 -2
  143. package/dist/cli/chunks/{chunk-BI6UU3Z3.js → chunk-Y5JWDXGB.js} +1 -1
  144. package/dist/cli/chunks/{chunk-XLDEWLP4.js → chunk-Y6EFJG52.js} +1 -1
  145. package/dist/cli/chunks/{chunk-6FICUNAV.js → chunk-Y7ALSL72.js} +1 -1
  146. package/dist/cli/chunks/{chunk-KMCI3RGD.js → chunk-YCL7OWK3.js} +2 -2
  147. package/dist/cli/chunks/{chunk-BOM5NGCR.js → chunk-YEGZUE6G.js} +1 -1
  148. package/dist/cli/chunks/{chunk-3OUHOJBN.js → chunk-YHV23E6J.js} +1 -1
  149. package/dist/cli/chunks/{chunk-MSA6MD5C.js → chunk-YISGZEZR.js} +1 -1
  150. package/dist/cli/chunks/{chunk-N6QUDQ5H.js → chunk-YLFM5AZ4.js} +2 -2
  151. package/dist/cli/chunks/{chunk-AU3APBY2.js → chunk-YRSKYBOL.js} +2 -2
  152. package/dist/cli/chunks/{chunk-XF2TKGSC.js → chunk-YTBW2SLZ.js} +1 -1
  153. package/dist/cli/chunks/{chunk-HPRX5S74.js → chunk-YWISQTXQ.js} +1 -1
  154. package/dist/cli/chunks/{chunk-JH6KUV74.js → chunk-ZKOIWNH7.js} +2 -2
  155. package/dist/cli/chunks/{chunk-DKGDBKBJ.js → chunk-ZLWYE47I.js} +1 -1
  156. package/dist/cli/chunks/{chunk-DSIS6WQD.js → chunk-ZNJJLA64.js} +3 -3
  157. package/dist/cli/chunks/{chunk-SZO6JIFM.js → chunk-ZO6QWQ2G.js} +2 -2
  158. package/dist/cli/chunks/{ci-MWQVCZ2W.js → ci-3Z3OSULB.js} +2 -2
  159. package/dist/cli/chunks/{ci-output-ZCH4IZ7H.js → ci-output-ETGFFPKJ.js} +2 -2
  160. package/dist/cli/chunks/{circuit-breaker-N3VSQM5X.js → circuit-breaker-G7ABL353.js} +2 -2
  161. package/dist/cli/chunks/{claude-flow-setup-TSJFOGXN.js → claude-flow-setup-EKBBG7HG.js} +2 -2
  162. package/dist/cli/chunks/client-IAOK3VSF.js +2 -0
  163. package/dist/cli/chunks/{cline-installer-OHKWAB4I.js → cline-installer-TRNHEMDA.js} +2 -2
  164. package/dist/cli/chunks/{code-3UTIL3QR.js → code-JMENIVDM.js} +2 -2
  165. package/dist/cli/chunks/{code-index-extractor-TVG2V2NY.js → code-index-extractor-JIYCGDUF.js} +2 -2
  166. package/dist/cli/chunks/{codex-installer-L6ZOTOO2.js → codex-installer-XBHDOIN7.js} +2 -2
  167. package/dist/cli/chunks/{completions-SFRB664X.js → completions-HF6I7WD3.js} +2 -2
  168. package/dist/cli/chunks/{complexity-analyzer-HDZKVO6D.js → complexity-analyzer-MWV6KUSW.js} +2 -2
  169. package/dist/cli/chunks/{continuedev-installer-HKLZR3UO.js → continuedev-installer-YWTPGW7K.js} +2 -2
  170. package/dist/cli/chunks/{copilot-installer-5P3LX3C5.js → copilot-installer-V2SX7GBX.js} +2 -2
  171. package/dist/cli/chunks/core-handlers-624KK362.js +2 -0
  172. package/dist/cli/chunks/{cost-tracker-MZR5RB6E.js → cost-tracker-RQJRRISN.js} +2 -2
  173. package/dist/cli/chunks/{coverage-L6V6NFIM.js → coverage-IZ43CIOL.js} +3 -3
  174. package/dist/cli/chunks/cross-domain-router-2DAGKVTZ.js +2 -0
  175. package/dist/cli/chunks/{cursor-installer-FD6DT23Y.js → cursor-installer-K3VUWVE3.js} +2 -2
  176. package/dist/cli/chunks/{daemon-HTSRODRG.js → daemon-HFAAQUIJ.js} +4 -4
  177. package/dist/cli/chunks/{daemon-I5ESGZGX.js → daemon-N6AICOXE.js} +3 -3
  178. package/dist/cli/chunks/{dag-attention-scheduler-JPTHWB2Q.js → dag-attention-scheduler-7TFE4MSB.js} +2 -2
  179. package/dist/cli/chunks/{detect-RTUZDBEZ.js → detect-VFGXI7AL.js} +2 -2
  180. package/dist/cli/chunks/{dist-node-5HLWHNYA.js → dist-node-P2JPEBHL.js} +2 -2
  181. package/dist/cli/chunks/{domain-handler-R7IPUX54.js → domain-handler-CIMGA5Z3.js} +2 -2
  182. package/dist/cli/chunks/{domain-transfer-E3I2LMCB.js → domain-transfer-UHNJ2JW4.js} +2 -2
  183. package/dist/cli/chunks/dream-EYG2RXNJ.js +2 -0
  184. package/dist/cli/chunks/{embed-and-insert-pattern-BXUWG73R.js → embed-and-insert-pattern-UWK2RRN4.js} +2 -2
  185. package/dist/cli/chunks/{eval-3ZFM75YA.js → eval-NXHZ7BQE.js} +2 -2
  186. package/dist/cli/chunks/{experience-capture-middleware-NJ3BT657.js → experience-capture-middleware-RVQ7F34S.js} +3 -3
  187. package/dist/cli/chunks/{fast-paths-Q3V5C5IM.js → fast-paths-DRXANKX2.js} +2 -2
  188. package/dist/cli/chunks/{feature-flags-D3JGPHXY.js → feature-flags-NW6VEQMN.js} +2 -2
  189. package/dist/cli/chunks/{feature-flags-XZGJNPZ7.js → feature-flags-V45DD537.js} +2 -2
  190. package/dist/cli/chunks/{file-discovery-MZOYXIOS.js → file-discovery-GJO7L2NH.js} +2 -2
  191. package/dist/cli/chunks/{fleet-FG3EBA75.js → fleet-O35WUOSC.js} +3 -3
  192. package/dist/cli/chunks/{gnn-wrapper-PKZLZHL2.js → gnn-wrapper-AUVW767T.js} +2 -2
  193. package/dist/cli/chunks/{heartbeat-handler-YZTRVH75.js → heartbeat-handler-5YXDBHH4.js} +4 -4
  194. package/dist/cli/chunks/heartbeat-scheduler-43Q5PRW7.js +2 -0
  195. package/dist/cli/chunks/hnsw-adapter-XN2M6KGB.js +2 -0
  196. package/dist/cli/chunks/hnsw-index-4TEELZ7L.js +2 -0
  197. package/dist/cli/chunks/{hnsw-legacy-bridge-WONHB63F.js → hnsw-legacy-bridge-BYJY6BS3.js} +2 -2
  198. package/dist/cli/chunks/{hnswlib-node-Q4VPSJJM.js → hnswlib-node-DOAKQHTK.js} +2 -2
  199. package/dist/cli/chunks/{hooks-RWX5ZZCE.js → hooks-AXI33SEK.js} +10 -10
  200. package/dist/cli/chunks/hybrid-router-L4IMWRLC.js +2 -0
  201. package/dist/cli/chunks/{hypergraph-engine-G6N24L5G.js → hypergraph-engine-SMYLLI4Z.js} +2 -2
  202. package/dist/cli/chunks/{hypergraph-handler-4RGOLL6F.js → hypergraph-handler-GYPRTMRE.js} +3 -3
  203. package/dist/cli/chunks/impact-analyzer-GNCMGV2E.js +2 -0
  204. package/dist/cli/chunks/{init-handler-L7DZAHXO.js → init-handler-DO5NFTZT.js} +6 -6
  205. package/dist/cli/chunks/init-wizard-6XY76PR6.js +2 -0
  206. package/dist/cli/chunks/kernel-KSJDDMZX.js +2 -0
  207. package/dist/cli/chunks/{kilocode-installer-G7PUCUDZ.js → kilocode-installer-CVWXBLG6.js} +2 -2
  208. package/dist/cli/chunks/{kiro-installer-H6234HEB.js → kiro-installer-DK7J7XL7.js} +2 -2
  209. package/dist/cli/chunks/knowledge-graph-MDPRHCAD.js +2 -0
  210. package/dist/cli/chunks/{learning-346CA4DH.js → learning-QHDQFBN4.js} +3 -3
  211. package/dist/cli/chunks/{llm-router-ATNRDTEM.js → llm-router-AMNXDGQ2.js} +4 -4
  212. package/dist/cli/chunks/llm-router-service-Y5Q7C6J5.js +2 -0
  213. package/dist/cli/chunks/{load-3L2CK4ML.js → load-2NZHFE5D.js} +2 -2
  214. package/dist/cli/chunks/load-test-NZZNYHOR.js +2 -0
  215. package/dist/cli/chunks/{mcp-JJ4ZDUJB.js → mcp-MX4GB3MU.js} +2 -2
  216. package/dist/cli/chunks/{memory-U3K2Y777.js → memory-NZACDD2C.js} +7 -7
  217. package/dist/cli/chunks/memory-backend-H3JXCBSZ.js +2 -0
  218. package/dist/cli/chunks/memory-handlers-KV7IJ2XA.js +2 -0
  219. package/dist/cli/chunks/{multi-model-executor-DPCU4CSM.js → multi-model-executor-ABZUIP3S.js} +2 -2
  220. package/dist/cli/chunks/{opencode-installer-KNUCUSRG.js → opencode-installer-V3IFSJQT.js} +2 -2
  221. package/dist/cli/chunks/{orchestrator-DJV2NUWD.js → orchestrator-GCK47DTJ.js} +5 -5
  222. package/dist/cli/chunks/pattern-null-store-DXW5PB5E.js +2 -0
  223. package/dist/cli/chunks/{pattern-usage-recorder-TQ7KECBB.js → pattern-usage-recorder-TAD2TRNY.js} +2 -2
  224. package/dist/cli/chunks/{pipeline-JG57VFOB.js → pipeline-ZIXBDYN5.js} +2 -2
  225. package/dist/cli/chunks/{platform-L7LOBG4E.js → platform-4B7OOTAM.js} +2 -2
  226. package/dist/cli/chunks/{plugin-ATBPEU2K.js → plugin-QQ3SOXY2.js} +2 -2
  227. package/dist/cli/chunks/{prime-radiant-advanced-wasm-XCX7CNVW.js → prime-radiant-advanced-wasm-4BYJTTZX.js} +2 -2
  228. package/dist/cli/chunks/protocol-executor-RRLH6VOX.js +2 -0
  229. package/dist/cli/chunks/{protocol-handler-DOFLSB4N.js → protocol-handler-VNRDG3KY.js} +2 -2
  230. package/dist/cli/chunks/{prove-CDBMRPBD.js → prove-WVPJXN6K.js} +2 -2
  231. package/dist/cli/chunks/provider-manager-S7QOPTRO.js +2 -0
  232. package/dist/cli/chunks/qe-reasoning-bank-SPKHDTEL.js +2 -0
  233. package/dist/cli/chunks/{quality-5CMQBYP3.js → quality-E3VPSE2L.js} +2 -2
  234. package/dist/cli/chunks/{quality-gate-LU66IWRT.js → quality-gate-2ZPH7H7Z.js} +3 -3
  235. package/dist/cli/chunks/queen-coordinator-T7LEO2QL.js +2 -0
  236. package/dist/cli/chunks/{real-embeddings-3B7AXYOP.js → real-embeddings-CYHZLS5U.js} +2 -2
  237. package/dist/cli/chunks/{roocode-installer-GF4YJW7E.js → roocode-installer-A2PJDZ6G.js} +2 -2
  238. package/dist/cli/chunks/router-LMBUXWVM.js +2 -0
  239. package/dist/cli/chunks/routing-feedback-A5JZ2HTV.js +2 -0
  240. package/dist/cli/chunks/{routing-handler-PWQMWFND.js → routing-handler-WASZ7YUM.js} +2 -2
  241. package/dist/cli/chunks/{ruvector-commands-SMD6KSBD.js → ruvector-commands-USEIUYOT.js} +2 -2
  242. package/dist/cli/chunks/{rvf-dual-writer-M5TEJ56X.js → rvf-dual-writer-GC2SZLOS.js} +2 -2
  243. package/dist/cli/chunks/{rvf-migration-adapter-EHLWMZYI.js → rvf-migration-adapter-RMXAP7UZ.js} +2 -2
  244. package/dist/cli/chunks/{rvf-migration-coordinator-GMVLX3FX.js → rvf-migration-coordinator-22D6BTI5.js} +2 -2
  245. package/dist/cli/chunks/rvf-native-adapter-IVKAJC5C.js +2 -0
  246. package/dist/cli/chunks/{rvf-store-integrity-PDADEHAZ.js → rvf-store-integrity-B5676PI2.js} +2 -2
  247. package/dist/cli/chunks/safe-db-MREVE34L.js +2 -0
  248. package/dist/cli/chunks/schedule-QUQSORLA.js +2 -0
  249. package/dist/cli/chunks/scheduler-POQUTUKP.js +2 -0
  250. package/dist/cli/chunks/{security-PSMBTUSM.js → security-GYR2YU72.js} +3 -3
  251. package/dist/cli/chunks/{shared-rvf-adapter-DP2Z4YLV.js → shared-rvf-adapter-RTWRMMCR.js} +2 -2
  252. package/dist/cli/chunks/{shared-rvf-dual-writer-UOU6ORBJ.js → shared-rvf-dual-writer-4YKFV67E.js} +2 -2
  253. package/dist/cli/chunks/sqlite-persistence-K4TX4WXV.js +2 -0
  254. package/dist/cli/chunks/{status-handler-T565F47D.js → status-handler-CBPWW3QD.js} +2 -2
  255. package/dist/cli/chunks/{structural-health-54WNSZ7Y.js → structural-health-CATUHO2L.js} +2 -2
  256. package/dist/cli/chunks/{sync-5ZGYF7JF.js → sync-ADHPFKN6.js} +2 -2
  257. package/dist/cli/chunks/{sync-EXADT5IZ.js → sync-YFHOSBNL.js} +2 -2
  258. package/dist/cli/chunks/{task-handler-JXWQZDEX.js → task-handler-R2KZIXXF.js} +2 -2
  259. package/dist/cli/chunks/{task-handlers-UKHRILMM.js → task-handlers-HLXWXRC4.js} +3 -3
  260. package/dist/cli/chunks/{test-3SU56PMM.js → test-A5SJ4CSH.js} +4 -4
  261. package/dist/cli/chunks/{test-scheduling-CZZ4KKWM.js → test-scheduling-NWAUSA6A.js} +3 -3
  262. package/dist/cli/chunks/{token-bootstrap-RSIAPUIV.js → token-bootstrap-KOZLR5KD.js} +2 -2
  263. package/dist/cli/chunks/{token-usage-7HW43ORO.js → token-usage-7EDWF7XZ.js} +2 -2
  264. package/dist/cli/chunks/{transformers-A5REG7OI.js → transformers-OJGVAPSE.js} +2 -2
  265. package/dist/cli/chunks/{tree-sitter-wasm-parser-F43MC7E5.js → tree-sitter-wasm-parser-A2BLMPCC.js} +2 -2
  266. package/dist/cli/chunks/{types-DEOHTTJ3.js → types-AU2VADM6.js} +2 -2
  267. package/dist/cli/chunks/unified-memory-EWCB3EHN.js +2 -0
  268. package/dist/cli/chunks/unified-memory-hnsw-PH2ECVGQ.js +2 -0
  269. package/dist/cli/chunks/unified-persistence-2AM7JHBZ.js +2 -0
  270. package/dist/cli/chunks/{upgrade-7NKNCL2I.js → upgrade-JLXJ6UTR.js} +2 -2
  271. package/dist/cli/chunks/{validate-SN2UY7CT.js → validate-AMJG6AVL.js} +2 -2
  272. package/dist/cli/chunks/{validate-swarm-YITFMCXY.js → validate-swarm-6J4VKCBH.js} +2 -2
  273. package/dist/cli/chunks/{vibium-AZNIG6O7.js → vibium-YATMPDAF.js} +2 -2
  274. package/dist/cli/chunks/visual-security-B4KSJUTG.js +2 -0
  275. package/dist/cli/chunks/{web-tree-sitter-DY4YXPMR.js → web-tree-sitter-UCDN3H4X.js} +2 -2
  276. package/dist/cli/chunks/{windsurf-installer-HXD4BK7N.js → windsurf-installer-WHKYYVAM.js} +2 -2
  277. package/dist/cli/chunks/{witness-chain-UV7BOO6T.js → witness-chain-NDBGA7TH.js} +2 -2
  278. package/dist/cli/chunks/witness-chain-QHAHCB7E.js +2 -0
  279. package/dist/cli/chunks/{witness-key-manager-BCNW3SZH.js → witness-key-manager-2PQHTQVG.js} +2 -2
  280. package/dist/cli/chunks/{workflow-R3SSSWA5.js → workflow-F5HE4FGG.js} +4 -4
  281. package/dist/cli/chunks/workflow-orchestrator-LYU63YL7.js +2 -0
  282. package/dist/cli/chunks/{wrappers-6JUXYAML.js → wrappers-UHG2KXGO.js} +2 -2
  283. package/dist/cli/commands/memory.js +3 -0
  284. package/dist/kernel/hybrid-backend.d.ts +2 -1
  285. package/dist/kernel/hybrid-backend.js +4 -0
  286. package/dist/kernel/interfaces.d.ts +10 -0
  287. package/dist/kernel/memory-backend.d.ts +2 -1
  288. package/dist/kernel/memory-backend.js +8 -0
  289. package/dist/kernel/native-hnsw-backend.js +8 -6
  290. package/dist/kernel/unified-memory.d.ts +2 -0
  291. package/dist/kernel/unified-memory.js +43 -8
  292. package/dist/mcp/bundle.js +213 -213
  293. package/dist/mcp/handlers/memory-handlers.d.ts +2 -0
  294. package/dist/mcp/handlers/memory-handlers.js +13 -2
  295. package/dist/mcp/types.d.ts +10 -0
  296. package/package.json +4 -2
  297. package/dist/cli/chunks/adapter-7XXMDGFO.js +0 -2
  298. package/dist/cli/chunks/aqe-learning-engine-2KGMCBJG.js +0 -2
  299. package/dist/cli/chunks/base-4M3VL4XK.js +0 -2
  300. package/dist/cli/chunks/browser-workflow-DHIPXEGO.js +0 -2
  301. package/dist/cli/chunks/chunk-CVXEOTIK.js +0 -2
  302. package/dist/cli/chunks/chunk-GA7PUAMT.js +0 -2
  303. package/dist/cli/chunks/client-IEN43WBH.js +0 -2
  304. package/dist/cli/chunks/core-handlers-PBITKHVP.js +0 -2
  305. package/dist/cli/chunks/cross-domain-router-JGCWQ7BO.js +0 -2
  306. package/dist/cli/chunks/dream-52MPUF5Q.js +0 -2
  307. package/dist/cli/chunks/heartbeat-scheduler-LMAEJQYQ.js +0 -2
  308. package/dist/cli/chunks/hnsw-adapter-DGGDYJEL.js +0 -2
  309. package/dist/cli/chunks/hnsw-index-KA7WDTHX.js +0 -2
  310. package/dist/cli/chunks/hybrid-router-Q6JQTV55.js +0 -2
  311. package/dist/cli/chunks/impact-analyzer-7LFSGIQP.js +0 -2
  312. package/dist/cli/chunks/init-wizard-T4K44J6D.js +0 -2
  313. package/dist/cli/chunks/kernel-TGHK6X7F.js +0 -2
  314. package/dist/cli/chunks/knowledge-graph-MV3OSGCB.js +0 -2
  315. package/dist/cli/chunks/llm-router-service-OOCNAPJO.js +0 -2
  316. package/dist/cli/chunks/load-test-4OZPYWL4.js +0 -2
  317. package/dist/cli/chunks/memory-backend-LMRIHJQY.js +0 -2
  318. package/dist/cli/chunks/memory-handlers-J6CVQ5DS.js +0 -2
  319. package/dist/cli/chunks/pattern-null-store-AQWPHLRW.js +0 -2
  320. package/dist/cli/chunks/protocol-executor-FWUT6L6K.js +0 -2
  321. package/dist/cli/chunks/provider-manager-4PY7IR3V.js +0 -2
  322. package/dist/cli/chunks/qe-reasoning-bank-M4XVWRPY.js +0 -2
  323. package/dist/cli/chunks/queen-coordinator-KSRI42QZ.js +0 -2
  324. package/dist/cli/chunks/router-F2TCXNSG.js +0 -2
  325. package/dist/cli/chunks/routing-feedback-VHOWXUY7.js +0 -2
  326. package/dist/cli/chunks/rvf-native-adapter-XG3LFOYW.js +0 -2
  327. package/dist/cli/chunks/safe-db-CTHJ3SXC.js +0 -2
  328. package/dist/cli/chunks/schedule-LLYADLGL.js +0 -2
  329. package/dist/cli/chunks/scheduler-72YIGDIX.js +0 -2
  330. package/dist/cli/chunks/sqlite-persistence-N7OO3ZOE.js +0 -2
  331. package/dist/cli/chunks/unified-memory-Q55MJWAM.js +0 -2
  332. package/dist/cli/chunks/unified-memory-hnsw-4BEKV2K5.js +0 -2
  333. package/dist/cli/chunks/unified-persistence-IIB5MR67.js +0 -2
  334. package/dist/cli/chunks/visual-security-F4FUP6KV.js +0 -2
  335. package/dist/cli/chunks/witness-chain-SQ5LCKUQ.js +0 -2
  336. package/dist/cli/chunks/workflow-orchestrator-Z4PZXWVY.js +0 -2
@@ -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.13.6");process.exit(0)}
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.13.8");process.exit(0)}
2
2
  var i={copilot:{id:"copilot",name:"GitHub Copilot",configPath:".vscode/mcp.json",configFormat:"json",configKey:"servers",rulesPath:".github/copilot-instructions.md",rulesFormat:"markdown",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1},cursor:{id:"cursor",name:"Cursor",configPath:".cursor/mcp.json",configFormat:"json",configKey:"mcpServers",rulesPath:".cursorrules",rulesFormat:"markdown",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1},cline:{id:"cline",name:"Cline",configPath:".vscode/cline_mcp_settings.json",configFormat:"json",configKey:"mcpServers",rulesPath:".vscode/cline_custom_modes.json",rulesFormat:"json",supportsAutoApprove:!0,supportsCustomModes:!0,globalConfig:!1},kilocode:{id:"kilocode",name:"Kilo Code",configPath:".kilocode/mcp.json",configFormat:"json",configKey:"mcpServers",rulesPath:".kilocode/modes.json",rulesFormat:"json",supportsAutoApprove:!0,supportsCustomModes:!0,globalConfig:!1},roocode:{id:"roocode",name:"Roo Code",configPath:".roo/mcp.json",configFormat:"json",configKey:"mcpServers",rulesPath:".roo/modes.json",rulesFormat:"json",supportsAutoApprove:!0,supportsCustomModes:!0,globalConfig:!1},codex:{id:"codex",name:"OpenAI Codex CLI",configPath:".codex/config.toml",configFormat:"toml",configKey:"mcp_servers",rulesPath:"AGENTS.md",rulesFormat:"markdown",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1},windsurf:{id:"windsurf",name:"Windsurf",configPath:".windsurf/mcp_config.json",configFormat:"json",configKey:"mcpServers",rulesPath:".windsurfrules",rulesFormat:"markdown",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1},continuedev:{id:"continuedev",name:"Continue.dev",configPath:".continue/config.yaml",configFormat:"yaml",configKey:"mcpServers",rulesPath:".continue/rules/aqe-qe-standards.yaml",rulesFormat:"yaml",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1}},l=["fleet_init","fleet_status","fleet_health","agent_list","agent_metrics","agent_status","team_list","team_health","task_list","task_status","test_generate_enhanced","coverage_analyze_sublinear","quality_assess","defect_predict","code_index","memory_store","memory_retrieve","memory_query","memory_usage","model_route","routing_metrics","aqe_health"];function u(t){return t?{AQE_MEMORY_BACKEND:"memory",AQE_V3_MODE:"true"}:{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_V3_MODE:"true"}}function m(t,o){let e={command:"npx",args:["-y","agentic-qe@latest","mcp"],env:u(o)};return t&&(e.disabled=!1,e.alwaysAllow=l),e}function g(t,o){let e=m(t.supportsAutoApprove,o);if(t.id==="copilot"){let r={[t.configKey]:{"agentic-qe":{type:"stdio",...e}}};return JSON.stringify(r,null,2)+`
3
3
  `}let n={[t.configKey]:{"agentic-qe":e}};return JSON.stringify(n,null,2)+`
4
4
  `}function f(t){return`# Agentic QE MCP Server
@@ -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.13.6");process.exit(0)}
2
- import{a as l}from"./chunk-523XPMTU.js";import{a as m}from"./chunk-JDADNBWS.js";import{i as a}from"./chunk-XF2TKGSC.js";var u=class{constructor(t,e){this.eventBus=t;this.maxHistorySize=e?.maxHistorySize??1e4,this.eventHistory=new l(this.maxHistorySize),this.correlationTimeout=e?.correlationTimeout??6e4,this.maxEventsPerCorrelation=e?.maxEventsPerCorrelation??100}eventBus;subscriptions=new Map;correlations=new Map;eventHistory;routes=[];domainSubscriptions=new Map;maxHistorySize;correlationTimeout;maxEventsPerCorrelation;initialized=!1;async initialize(){if(!this.initialized){for(let t of m){let e=this.eventBus.subscribeToChannel(t,async i=>{await this.handleIncomingEvent(i)});this.domainSubscriptions.set(t,e)}this.eventBus.subscribe("*",async t=>{m.includes(t.source)||await this.handleIncomingEvent(t)}),this.initialized=!0}}subscribeToDoamin(t,e){let i=`sub_domain_${a()}`;return this.subscriptions.set(i,{id:i,type:"domain",filter:t,handler:e,active:!0}),i}subscribeToEventType(t,e){let i=`sub_type_${a()}`;return this.subscriptions.set(i,{id:i,type:"eventType",filter:t,handler:e,active:!0}),i}unsubscribe(t){let e=this.subscriptions.get(t);return e?(e.active=!1,this.subscriptions.delete(t),!0):!1}async route(t){this.addToHistory(t),t.correlationId&&this.trackCorrelation(t);let i=this.findMatchingSubscriptions(t).map(async o=>{try{await o.handler(t)}catch(n){console.error(`Error in subscription handler ${o.id}:`,n instanceof Error?n.message:n)}}),r=await this.applyRoutes(t);await Promise.allSettled([...i,...r])}getCorrelation(t){let e=this.correlations.get(t);if(e)return{correlationId:e.correlationId,events:[...e.events],domains:new Set(e.domains),startedAt:e.startedAt,lastEventAt:e.lastEventAt,complete:e.complete}}trackCorrelation(t){if(!t.correlationId)return;let e=this.correlations.get(t.correlationId);e||(e={correlationId:t.correlationId,events:[],domains:new Set,startedAt:t.timestamp,lastEventAt:t.timestamp,complete:!1,timeout:null},this.correlations.set(t.correlationId,e)),e.events.length<this.maxEventsPerCorrelation&&(e.events.push(t),e.domains.add(t.source),e.lastEventAt=t.timestamp),e.timeout&&clearTimeout(e.timeout),e.timeout=setTimeout(()=>{e.complete=!0,e.timeout=null},this.correlationTimeout)}aggregate(t,e){let i=this.eventHistory.toArray().filter(s=>s.timestamp>=t&&s.timestamp<=e),r=new Map,o=new Map;for(let s of i)r.set(s.type,(r.get(s.type)??0)+1),o.set(s.source,(o.get(s.source)??0)+1);let n={totalEvents:i.length,uniqueEventTypes:r.size,uniqueDomains:o.size,eventsPerSecond:i.length>0?i.length/((e.getTime()-t.getTime())/1e3):0};return{id:a(),windowStart:t,windowEnd:e,events:i,countByType:r,countByDomain:o,metrics:n}}getHistory(t){let e=this.eventHistory.toArray();return t&&(t.eventTypes?.length&&(e=e.filter(i=>t.eventTypes.includes(i.type))),t.domains?.length&&(e=e.filter(i=>t.domains.includes(i.source))),t.fromTimestamp&&(e=e.filter(i=>i.timestamp>=t.fromTimestamp)),t.toTimestamp&&(e=e.filter(i=>i.timestamp<=t.toTimestamp)),t.limit&&(e=e.slice(-t.limit))),e}addRoute(t){let e=t.priority??0,i=this.routes.findIndex(r=>(r.priority??0)<e);i===-1?this.routes.push(t):this.routes.splice(i,0,t)}removeRoute(t,e){let i=this.routes.findIndex(r=>r.eventPattern===t&&(e===void 0||r.source===e));return i!==-1?(this.routes.splice(i,1),!0):!1}async dispose(){this.subscriptions.clear();for(let t of this.domainSubscriptions.values())t.unsubscribe();this.domainSubscriptions.clear();for(let t of this.correlations.values())t.timeout&&clearTimeout(t.timeout);this.correlations.clear(),this.eventHistory.clear(),this.initialized=!1}async handleIncomingEvent(t){await this.route(t)}findMatchingSubscriptions(t){let e=[];for(let i of this.subscriptions.values())i.active&&(i.type==="domain"&&i.filter===t.source||i.type==="eventType"&&this.matchEventType(t.type,i.filter))&&e.push(i);return e}matchEventType(t,e){if(e==="*")return!0;let i=e.replace(/\\/g,"\\\\").replace(/\./g,"\\.").replace(/\*/g,".*");return new RegExp(`^${i}$`).test(t)}async applyRoutes(t){let e=[];for(let i of this.routes){if(!(i.source==="*"||i.source===t.source||Array.isArray(i.source)&&i.source.includes(t.source))||!this.matchEventType(t.type,i.eventPattern)||i.filter&&!i.filter(t))continue;let o=i.transform?i.transform(t):t;for(let n of i.targets)n!==t.source&&e.push(this.eventBus.publish({...o,id:a(),correlationId:t.correlationId??t.id}))}return e}addToHistory(t){this.eventHistory.push(t)}};function y(c,t){return new u(c,t)}export{u as a,y as b};
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.13.8");process.exit(0)}
2
+ import{a as l}from"./chunk-OZSYL2CL.js";import{a as m}from"./chunk-MRLPZMA3.js";import{i as a}from"./chunk-YTBW2SLZ.js";var u=class{constructor(t,e){this.eventBus=t;this.maxHistorySize=e?.maxHistorySize??1e4,this.eventHistory=new l(this.maxHistorySize),this.correlationTimeout=e?.correlationTimeout??6e4,this.maxEventsPerCorrelation=e?.maxEventsPerCorrelation??100}eventBus;subscriptions=new Map;correlations=new Map;eventHistory;routes=[];domainSubscriptions=new Map;maxHistorySize;correlationTimeout;maxEventsPerCorrelation;initialized=!1;async initialize(){if(!this.initialized){for(let t of m){let e=this.eventBus.subscribeToChannel(t,async i=>{await this.handleIncomingEvent(i)});this.domainSubscriptions.set(t,e)}this.eventBus.subscribe("*",async t=>{m.includes(t.source)||await this.handleIncomingEvent(t)}),this.initialized=!0}}subscribeToDoamin(t,e){let i=`sub_domain_${a()}`;return this.subscriptions.set(i,{id:i,type:"domain",filter:t,handler:e,active:!0}),i}subscribeToEventType(t,e){let i=`sub_type_${a()}`;return this.subscriptions.set(i,{id:i,type:"eventType",filter:t,handler:e,active:!0}),i}unsubscribe(t){let e=this.subscriptions.get(t);return e?(e.active=!1,this.subscriptions.delete(t),!0):!1}async route(t){this.addToHistory(t),t.correlationId&&this.trackCorrelation(t);let i=this.findMatchingSubscriptions(t).map(async o=>{try{await o.handler(t)}catch(n){console.error(`Error in subscription handler ${o.id}:`,n instanceof Error?n.message:n)}}),r=await this.applyRoutes(t);await Promise.allSettled([...i,...r])}getCorrelation(t){let e=this.correlations.get(t);if(e)return{correlationId:e.correlationId,events:[...e.events],domains:new Set(e.domains),startedAt:e.startedAt,lastEventAt:e.lastEventAt,complete:e.complete}}trackCorrelation(t){if(!t.correlationId)return;let e=this.correlations.get(t.correlationId);e||(e={correlationId:t.correlationId,events:[],domains:new Set,startedAt:t.timestamp,lastEventAt:t.timestamp,complete:!1,timeout:null},this.correlations.set(t.correlationId,e)),e.events.length<this.maxEventsPerCorrelation&&(e.events.push(t),e.domains.add(t.source),e.lastEventAt=t.timestamp),e.timeout&&clearTimeout(e.timeout),e.timeout=setTimeout(()=>{e.complete=!0,e.timeout=null},this.correlationTimeout)}aggregate(t,e){let i=this.eventHistory.toArray().filter(s=>s.timestamp>=t&&s.timestamp<=e),r=new Map,o=new Map;for(let s of i)r.set(s.type,(r.get(s.type)??0)+1),o.set(s.source,(o.get(s.source)??0)+1);let n={totalEvents:i.length,uniqueEventTypes:r.size,uniqueDomains:o.size,eventsPerSecond:i.length>0?i.length/((e.getTime()-t.getTime())/1e3):0};return{id:a(),windowStart:t,windowEnd:e,events:i,countByType:r,countByDomain:o,metrics:n}}getHistory(t){let e=this.eventHistory.toArray();return t&&(t.eventTypes?.length&&(e=e.filter(i=>t.eventTypes.includes(i.type))),t.domains?.length&&(e=e.filter(i=>t.domains.includes(i.source))),t.fromTimestamp&&(e=e.filter(i=>i.timestamp>=t.fromTimestamp)),t.toTimestamp&&(e=e.filter(i=>i.timestamp<=t.toTimestamp)),t.limit&&(e=e.slice(-t.limit))),e}addRoute(t){let e=t.priority??0,i=this.routes.findIndex(r=>(r.priority??0)<e);i===-1?this.routes.push(t):this.routes.splice(i,0,t)}removeRoute(t,e){let i=this.routes.findIndex(r=>r.eventPattern===t&&(e===void 0||r.source===e));return i!==-1?(this.routes.splice(i,1),!0):!1}async dispose(){this.subscriptions.clear();for(let t of this.domainSubscriptions.values())t.unsubscribe();this.domainSubscriptions.clear();for(let t of this.correlations.values())t.timeout&&clearTimeout(t.timeout);this.correlations.clear(),this.eventHistory.clear(),this.initialized=!1}async handleIncomingEvent(t){await this.route(t)}findMatchingSubscriptions(t){let e=[];for(let i of this.subscriptions.values())i.active&&(i.type==="domain"&&i.filter===t.source||i.type==="eventType"&&this.matchEventType(t.type,i.filter))&&e.push(i);return e}matchEventType(t,e){if(e==="*")return!0;let i=e.replace(/\\/g,"\\\\").replace(/\./g,"\\.").replace(/\*/g,".*");return new RegExp(`^${i}$`).test(t)}async applyRoutes(t){let e=[];for(let i of this.routes){if(!(i.source==="*"||i.source===t.source||Array.isArray(i.source)&&i.source.includes(t.source))||!this.matchEventType(t.type,i.eventPattern)||i.filter&&!i.filter(t))continue;let o=i.transform?i.transform(t):t;for(let n of i.targets)n!==t.source&&e.push(this.eventBus.publish({...o,id:a(),correlationId:t.correlationId??t.id}))}return e}addToHistory(t){this.eventHistory.push(t)}};function y(c,t){return new u(c,t)}export{u as a,y as b};
@@ -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.13.6");process.exit(0)}
2
- import{g}from"./chunk-RBNSZFVL.js";import{b as p,c as d}from"./chunk-JDADNBWS.js";import{b as m,c as f}from"./chunk-6UPQD42K.js";import{i as h}from"./chunk-XF2TKGSC.js";f();var I={maxDepth:5,riskWeights:{directImpact:.4,transitiveImpact:.2,testCoverage:.2,criticalPath:.15,dependencyCount:.05},testPatterns:["**/*.test.ts","**/*.test.tsx","**/*.spec.ts","**/*.spec.tsx","**/test_*.py","**/*_test.py","**/*_test.go"],criticalPaths:["**/auth/**","**/security/**","**/payment/**","**/api/**","**/core/**"],namespace:"code-intelligence:impact"},u=class{constructor(e,t,i={}){this.memory=e;this.config={...I,...i},this.knowledgeGraph=t||new g(e)}memory;config;knowledgeGraph;async analyzeImpact(e){try{let{changedFiles:t,depth:i=this.config.maxDepth,includeTests:r=!0}=e;if(t.length===0)return p({directImpact:[],transitiveImpact:[],impactedTests:[],riskLevel:"info",recommendations:[]});let n=await this.analyzeDirectImpact(t),l=await this.analyzeTransitiveImpact(t,n,i),s=[];if(r){let a=await this.getImpactedTests(t);a.success&&(s=a.value)}let c={directImpact:n,transitiveImpact:l,impactedTests:s,riskLevel:"info",recommendations:[]};return c.riskLevel=this.calculateRiskLevel(c),c.recommendations=this.getRecommendations(c),await this.storeAnalysis(t,c),p(c)}catch(t){return d(m(t))}}async getImpactedTests(e){try{let t=new Set;for(let i of e){if(this.isTestFile(i)){t.add(i);continue}let r=await this.knowledgeGraph.mapDependencies({files:[i],direction:"incoming",depth:3});if(r.success)for(let s of r.value.nodes)this.isTestFile(s.path)&&t.add(s.path);let n=this.getBaseName(i),l=[`${n}.test`,`${n}.spec`,`test_${n}`,`${n}_test`];for(let s of l){let c=await this.memory.search(`code-intelligence:kg:node:*${s}*`,10,{namespace:"code-intelligence:kg"});for(let a of c){let o=await this.memory.get(a,{namespace:"code-intelligence:kg"});o?.properties?.path&&this.isTestFile(o.properties.path)&&t.add(o.properties.path)}}}return p(Array.from(t))}catch(t){return d(m(t))}}calculateRiskLevel(e){let t=this.config.riskWeights,i=0,r=Math.min(1,e.directImpact.length/10);i+=r*t.directImpact;let n=Math.min(1,e.transitiveImpact.length/20);i+=n*t.transitiveImpact;let l=e.impactedTests.length>0?Math.max(0,1-e.impactedTests.length/(e.directImpact.length||1)):1;i+=l*t.testCoverage;let s=this.countCriticalFiles([...e.directImpact.map(o=>o.file),...e.transitiveImpact.map(o=>o.file)]),c=Math.min(1,s/5);i+=c*t.criticalPath;let a=this.calculateAverageRiskScore([...e.directImpact,...e.transitiveImpact]);return i+=a*t.dependencyCount,i>=.8?"critical":i>=.6?"high":i>=.4?"medium":i>=.2?"low":"info"}getRecommendations(e){let t=[];(e.riskLevel==="critical"||e.riskLevel==="high")&&t.push("This change has significant impact - consider peer review before merging"),e.impactedTests.length===0&&e.directImpact.length>0?t.push("No tests found for impacted files - add test coverage"):e.impactedTests.length<e.directImpact.length/2&&t.push("Test coverage appears low for impacted files"),e.impactedTests.length>0&&(e.impactedTests.length<=10?t.push(`Run these ${e.impactedTests.length} tests: ${e.impactedTests.slice(0,3).join(", ")}${e.impactedTests.length>3?"...":""}`):t.push(`Run all ${e.impactedTests.length} impacted tests before deployment`));let i=[...e.directImpact,...e.transitiveImpact].filter(n=>this.isCriticalPath(n.file));i.length>0&&t.push(`${i.length} critical path files affected - extra scrutiny recommended`),e.transitiveImpact.length>10&&t.push("Large transitive impact - consider breaking down into smaller changes");let r=[...e.directImpact,...e.transitiveImpact].filter(n=>n.riskScore>=.7);return r.length>0&&t.push(`${r.length} high-risk files impacted: ${r.slice(0,2).map(n=>this.getFileName(n.file)).join(", ")}`),t}async analyzeDirectImpact(e){let t=[];for(let i of e){let r=await this.knowledgeGraph.mapDependencies({files:[i],direction:"incoming",depth:1});if(r.success){let{nodes:n,edges:l}=r.value;for(let s of n){if(s.path===i)continue;let c=l.find(o=>o.target===s.id||o.source===s.id),a=this.calculateFileRiskScore(s.path,s.inDegree,s.outDegree);t.push({file:s.path,reason:`Directly ${c?.type||"depends on"} ${this.getFileName(i)}`,distance:1,riskScore:a})}}}return this.deduplicateImpact(t)}async analyzeTransitiveImpact(e,t,i){let r=[],n=new Set([...e,...t.map(s=>s.file)]),l=t.map(s=>({file:s.file,distance:1}));for(;l.length>0;){let s=l.shift();if(s.distance>=i)continue;let c=await this.knowledgeGraph.mapDependencies({files:[s.file],direction:"incoming",depth:1});if(c.success)for(let a of c.value.nodes){if(n.has(a.path)||a.path===s.file)continue;n.add(a.path);let o=this.calculateFileRiskScore(a.path,a.inDegree,a.outDegree,s.distance+1);r.push({file:a.path,reason:`Transitively depends via ${this.getFileName(s.file)}`,distance:s.distance+1,riskScore:o}),l.push({file:a.path,distance:s.distance+1})}}return this.deduplicateImpact(r)}calculateFileRiskScore(e,t,i,r=1){let n=0;return n+=Math.min(.3,t/20),n+=Math.min(.2,i/30),this.isCriticalPath(e)&&(n+=.3),this.isEntryPoint(e)&&(n+=.2),n=n*Math.pow(.8,r-1),Math.min(1,Math.max(0,n))}calculateAverageRiskScore(e){return e.length===0?0:e.reduce((i,r)=>i+r.riskScore,0)/e.length}countCriticalFiles(e){return e.filter(t=>this.isCriticalPath(t)).length}isTestFile(e){return[/\.test\.[tj]sx?$/,/\.spec\.[tj]sx?$/,/_test\.[tj]sx?$/,/test_.*\.py$/,/.*_test\.py$/,/.*_test\.go$/].some(i=>i.test(e))}isCriticalPath(e){return this.config.criticalPaths.map(i=>i.replace(/\*\*/g,".*").replace(/\*/g,"[^/]*")).some(i=>new RegExp(i).test(e))}isEntryPoint(e){return[/\/index\.[tj]sx?$/,/\/main\.[tj]sx?$/,/\/app\.[tj]sx?$/,/^src\/[^/]+\.[tj]sx?$/,/\/server\.[tj]sx?$/,/\/__init__\.py$/,/\/main\.go$/].some(i=>i.test(e))}getBaseName(e){return this.getFileName(e).replace(/\.[^.]+$/,"")}getFileName(e){return e.split(/[/\\]/).pop()||e}deduplicateImpact(e){let t=new Map;for(let i of e){let r=t.get(i.file);(!r||i.distance<r.distance)&&t.set(i.file,i)}return Array.from(t.values()).sort((i,r)=>r.riskScore!==i.riskScore?r.riskScore-i.riskScore:i.distance-r.distance)}async storeAnalysis(e,t){let i=h();await this.memory.set(`${this.config.namespace}:analysis:${i}`,{id:i,changedFiles:e,analysis:t,timestamp:new Date().toISOString()},{namespace:this.config.namespace,persist:!0})}};export{u as a};
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.13.8");process.exit(0)}
2
+ import{g}from"./chunk-3UENFJEV.js";import{b as p,c as d}from"./chunk-MRLPZMA3.js";import{b as m,c as f}from"./chunk-XKKCH24C.js";import{i as h}from"./chunk-YTBW2SLZ.js";f();var I={maxDepth:5,riskWeights:{directImpact:.4,transitiveImpact:.2,testCoverage:.2,criticalPath:.15,dependencyCount:.05},testPatterns:["**/*.test.ts","**/*.test.tsx","**/*.spec.ts","**/*.spec.tsx","**/test_*.py","**/*_test.py","**/*_test.go"],criticalPaths:["**/auth/**","**/security/**","**/payment/**","**/api/**","**/core/**"],namespace:"code-intelligence:impact"},u=class{constructor(e,t,i={}){this.memory=e;this.config={...I,...i},this.knowledgeGraph=t||new g(e)}memory;config;knowledgeGraph;async analyzeImpact(e){try{let{changedFiles:t,depth:i=this.config.maxDepth,includeTests:r=!0}=e;if(t.length===0)return p({directImpact:[],transitiveImpact:[],impactedTests:[],riskLevel:"info",recommendations:[]});let n=await this.analyzeDirectImpact(t),l=await this.analyzeTransitiveImpact(t,n,i),s=[];if(r){let a=await this.getImpactedTests(t);a.success&&(s=a.value)}let c={directImpact:n,transitiveImpact:l,impactedTests:s,riskLevel:"info",recommendations:[]};return c.riskLevel=this.calculateRiskLevel(c),c.recommendations=this.getRecommendations(c),await this.storeAnalysis(t,c),p(c)}catch(t){return d(m(t))}}async getImpactedTests(e){try{let t=new Set;for(let i of e){if(this.isTestFile(i)){t.add(i);continue}let r=await this.knowledgeGraph.mapDependencies({files:[i],direction:"incoming",depth:3});if(r.success)for(let s of r.value.nodes)this.isTestFile(s.path)&&t.add(s.path);let n=this.getBaseName(i),l=[`${n}.test`,`${n}.spec`,`test_${n}`,`${n}_test`];for(let s of l){let c=await this.memory.search(`code-intelligence:kg:node:*${s}*`,10,{namespace:"code-intelligence:kg"});for(let a of c){let o=await this.memory.get(a,{namespace:"code-intelligence:kg"});o?.properties?.path&&this.isTestFile(o.properties.path)&&t.add(o.properties.path)}}}return p(Array.from(t))}catch(t){return d(m(t))}}calculateRiskLevel(e){let t=this.config.riskWeights,i=0,r=Math.min(1,e.directImpact.length/10);i+=r*t.directImpact;let n=Math.min(1,e.transitiveImpact.length/20);i+=n*t.transitiveImpact;let l=e.impactedTests.length>0?Math.max(0,1-e.impactedTests.length/(e.directImpact.length||1)):1;i+=l*t.testCoverage;let s=this.countCriticalFiles([...e.directImpact.map(o=>o.file),...e.transitiveImpact.map(o=>o.file)]),c=Math.min(1,s/5);i+=c*t.criticalPath;let a=this.calculateAverageRiskScore([...e.directImpact,...e.transitiveImpact]);return i+=a*t.dependencyCount,i>=.8?"critical":i>=.6?"high":i>=.4?"medium":i>=.2?"low":"info"}getRecommendations(e){let t=[];(e.riskLevel==="critical"||e.riskLevel==="high")&&t.push("This change has significant impact - consider peer review before merging"),e.impactedTests.length===0&&e.directImpact.length>0?t.push("No tests found for impacted files - add test coverage"):e.impactedTests.length<e.directImpact.length/2&&t.push("Test coverage appears low for impacted files"),e.impactedTests.length>0&&(e.impactedTests.length<=10?t.push(`Run these ${e.impactedTests.length} tests: ${e.impactedTests.slice(0,3).join(", ")}${e.impactedTests.length>3?"...":""}`):t.push(`Run all ${e.impactedTests.length} impacted tests before deployment`));let i=[...e.directImpact,...e.transitiveImpact].filter(n=>this.isCriticalPath(n.file));i.length>0&&t.push(`${i.length} critical path files affected - extra scrutiny recommended`),e.transitiveImpact.length>10&&t.push("Large transitive impact - consider breaking down into smaller changes");let r=[...e.directImpact,...e.transitiveImpact].filter(n=>n.riskScore>=.7);return r.length>0&&t.push(`${r.length} high-risk files impacted: ${r.slice(0,2).map(n=>this.getFileName(n.file)).join(", ")}`),t}async analyzeDirectImpact(e){let t=[];for(let i of e){let r=await this.knowledgeGraph.mapDependencies({files:[i],direction:"incoming",depth:1});if(r.success){let{nodes:n,edges:l}=r.value;for(let s of n){if(s.path===i)continue;let c=l.find(o=>o.target===s.id||o.source===s.id),a=this.calculateFileRiskScore(s.path,s.inDegree,s.outDegree);t.push({file:s.path,reason:`Directly ${c?.type||"depends on"} ${this.getFileName(i)}`,distance:1,riskScore:a})}}}return this.deduplicateImpact(t)}async analyzeTransitiveImpact(e,t,i){let r=[],n=new Set([...e,...t.map(s=>s.file)]),l=t.map(s=>({file:s.file,distance:1}));for(;l.length>0;){let s=l.shift();if(s.distance>=i)continue;let c=await this.knowledgeGraph.mapDependencies({files:[s.file],direction:"incoming",depth:1});if(c.success)for(let a of c.value.nodes){if(n.has(a.path)||a.path===s.file)continue;n.add(a.path);let o=this.calculateFileRiskScore(a.path,a.inDegree,a.outDegree,s.distance+1);r.push({file:a.path,reason:`Transitively depends via ${this.getFileName(s.file)}`,distance:s.distance+1,riskScore:o}),l.push({file:a.path,distance:s.distance+1})}}return this.deduplicateImpact(r)}calculateFileRiskScore(e,t,i,r=1){let n=0;return n+=Math.min(.3,t/20),n+=Math.min(.2,i/30),this.isCriticalPath(e)&&(n+=.3),this.isEntryPoint(e)&&(n+=.2),n=n*Math.pow(.8,r-1),Math.min(1,Math.max(0,n))}calculateAverageRiskScore(e){return e.length===0?0:e.reduce((i,r)=>i+r.riskScore,0)/e.length}countCriticalFiles(e){return e.filter(t=>this.isCriticalPath(t)).length}isTestFile(e){return[/\.test\.[tj]sx?$/,/\.spec\.[tj]sx?$/,/_test\.[tj]sx?$/,/test_.*\.py$/,/.*_test\.py$/,/.*_test\.go$/].some(i=>i.test(e))}isCriticalPath(e){return this.config.criticalPaths.map(i=>i.replace(/\*\*/g,".*").replace(/\*/g,"[^/]*")).some(i=>new RegExp(i).test(e))}isEntryPoint(e){return[/\/index\.[tj]sx?$/,/\/main\.[tj]sx?$/,/\/app\.[tj]sx?$/,/^src\/[^/]+\.[tj]sx?$/,/\/server\.[tj]sx?$/,/\/__init__\.py$/,/\/main\.go$/].some(i=>i.test(e))}getBaseName(e){return this.getFileName(e).replace(/\.[^.]+$/,"")}getFileName(e){return e.split(/[/\\]/).pop()||e}deduplicateImpact(e){let t=new Map;for(let i of e){let r=t.get(i.file);(!r||i.distance<r.distance)&&t.set(i.file,i)}return Array.from(t.values()).sort((i,r)=>r.riskScore!==i.riskScore?r.riskScore-i.riskScore:i.distance-r.distance)}async storeAnalysis(e,t){let i=h();await this.memory.set(`${this.config.namespace}:analysis:${i}`,{id:i,changedFiles:e,analysis:t,timestamp:new Date().toISOString()},{namespace:this.config.namespace,persist:!0})}};export{u as a};
@@ -1,3 +1,3 @@
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.13.6");process.exit(0)}
2
- import{i as f,m as P}from"./chunk-FH6H4KOZ.js";import{d as p,e as y}from"./chunk-F66FYZQF.js";import{b as h,d as U}from"./chunk-2VUXU22M.js";import{a as T,c as C}from"./chunk-6UPQD42K.js";P();C();U();y();import{randomUUID as v}from"crypto";var M=p("TokenTracker"),S={costPerInputToken:.003/1e3,costPerOutputToken:.015/1e3},I={filePath:".agentic-qe/token-metrics.json",autoSaveIntervalMs:6e4,maxMetricsInMemory:1e4},m=class u{taskMetrics=[];agentMetrics=new Map;domainMetrics=new Map;sessionId;sessionStartTime;costConfig;cacheHits=0;earlyExits=0;totalTokensSaved=0;totalPatternsReused=0;initialized=!1;persistenceConfig=I;autoSaveTimer=null;isDirty=!1;db=null;kvPersistCount=0;static KV_NAMESPACE="token-usage-metrics";static KV_KEY="token-tracker-snapshot";static KV_TTL=604800;static KV_PERSIST_INTERVAL=10;constructor(){this.sessionId=`session-${Date.now()}-${v().substring(0,8)}`,this.sessionStartTime=Date.now(),this.costConfig=S}initialize(t){this.initialized||(this.initialized=!0,t&&(this.costConfig={...S,...t}),this.initializeDb().catch(e=>{M.warn("DB initialization failed",{error:e instanceof Error?e.message:String(e)})}),this.startAutoSave())}setCostConfig(t){this.costConfig={...this.costConfig,...t}}recordTokenUsage(t,e,n,a,s,r){this.ensureInitialized();let c,d,i,o,l,k;typeof e=="object"?(c="default",d="unknown",i="unknown",o=e,l=!1,k=0):(c=e,d=n??"unknown",i=a??"unknown",o=s,l=r?.patternReused??!1,k=r?.tokensSaved??0),o.estimatedCostUsd===void 0&&(o.estimatedCostUsd=this.calculateCost(o));let g={taskId:t,agentId:c,domain:d,operation:i,timestamp:Date.now(),usage:o,patternReused:l,tokensSaved:k};this.taskMetrics.push(g),this.updateAgentMetrics(c,o,l,k),this.updateDomainMetrics(d,o),l&&this.totalPatternsReused++,k>0&&(this.totalTokensSaved+=k),this.isDirty=!0,this.maybePersistToKv()}recordPatternReuse(t,e){this.ensureInitialized(),this.totalPatternsReused++,this.totalTokensSaved+=e;let n={taskId:t,agentId:"pattern-cache",domain:"optimization",operation:"pattern-reuse",timestamp:Date.now(),usage:{inputTokens:0,outputTokens:0,totalTokens:0,estimatedCostUsd:0},patternReused:!0,tokensSaved:e};this.taskMetrics.push(n),this.isDirty=!0}recordCacheHit(t){this.cacheHits++,this.totalTokensSaved+=t,this.isDirty=!0}recordEarlyExit(t){this.earlyExits++,this.totalTokensSaved+=t,this.isDirty=!0}getSessionSummary(t){this.ensureInitialized();let e=this.filterByTimeframe(this.taskMetrics,t),n=this.aggregateTokenUsage(e),a=new Map;for(let i of e){let o=a.get(i.agentId);o?(o.totalInputTokens+=i.usage.inputTokens,o.totalOutputTokens+=i.usage.outputTokens,o.totalTokens+=i.usage.totalTokens,o.totalCost+=i.usage.estimatedCostUsd||0,o.tasksExecuted++,i.patternReused&&o.patternsReused++,o.estimatedTokensSaved+=i.tokensSaved||0):a.set(i.agentId,{agentId:i.agentId,totalInputTokens:i.usage.inputTokens,totalOutputTokens:i.usage.outputTokens,totalTokens:i.usage.totalTokens,totalCost:i.usage.estimatedCostUsd||0,tasksExecuted:1,patternsReused:i.patternReused?1:0,estimatedTokensSaved:i.tokensSaved||0})}let s=new Map;for(let i of e){let o=s.get(i.domain);o?(o.inputTokens+=i.usage.inputTokens,o.outputTokens+=i.usage.outputTokens,o.totalTokens+=i.usage.totalTokens,o.estimatedCostUsd=(o.estimatedCostUsd||0)+(i.usage.estimatedCostUsd||0)):s.set(i.domain,{...i.usage})}let r=n.totalTokens,c=this.totalTokensSaved,d=r+c>0?c/(r+c)*100:0;return{sessionId:this.sessionId,startTime:this.sessionStartTime,endTime:Date.now(),byAgent:a,byDomain:s,totalUsage:n,optimizationStats:{patternsReused:this.totalPatternsReused,cacheHits:this.cacheHits,earlyExits:this.earlyExits,tokensSaved:this.totalTokensSaved,savingsPercentage:Math.round(d*100)/100}}}getAgentMetrics(t,e){this.ensureInitialized();let n=this.filterByTimeframe(this.taskMetrics,e);if(t){let s=n.filter(r=>r.agentId===t);return this.aggregateAgentMetrics(t,s)}let a=new Map;for(let s of n){let r=a.get(s.agentId)||[];r.push(s),a.set(s.agentId,r)}return Array.from(a.entries()).map(([s,r])=>this.aggregateAgentMetrics(s,r))}getDomainMetrics(t,e){this.ensureInitialized();let n=this.filterByTimeframe(this.taskMetrics,e);if(t){let s=n.filter(r=>r.domain===t);return this.aggregateTokenUsage(s)}let a=new Map;for(let s of n){let r=a.get(s.domain);r?(r.inputTokens+=s.usage.inputTokens,r.outputTokens+=s.usage.outputTokens,r.totalTokens+=s.usage.totalTokens,r.estimatedCostUsd=(r.estimatedCostUsd||0)+(s.usage.estimatedCostUsd||0)):a.set(s.domain,{...s.usage})}return a}getTaskMetrics(t){return this.ensureInitialized(),this.filterByTimeframe(this.taskMetrics,t)}getEfficiencyReport(t){return this.getTokenEfficiency(t)}getTokenEfficiency(t){this.ensureInitialized();let e=this.filterByTimeframe(this.taskMetrics,t),a=this.aggregateTokenUsage(e).totalTokens,s=this.totalTokensSaved,r=a+s>0?s/(a+s)*100:0,c=e.length,d=c>0?e.filter(l=>l.patternReused).length/c:0,i=c>0?a/c:0,o=this.generateRecommendations(e);return{totalTokensUsed:a,totalTokensSaved:s,savingsPercentage:Math.round(r*100)/100,patternReuseRate:Math.round(d*100)/100,averageTokensPerTask:Math.round(i),recommendations:o}}reset(){this.stopAutoSave(),this.taskMetrics=[],this.agentMetrics.clear(),this.domainMetrics.clear(),this.sessionId=`session-${Date.now()}-${v().substring(0,8)}`,this.sessionStartTime=Date.now(),this.cacheHits=0,this.earlyExits=0,this.totalTokensSaved=0,this.totalPatternsReused=0,this.isDirty=!1}configurePersistence(t){this.persistenceConfig={...this.persistenceConfig,...t},t.autoSaveIntervalMs!==void 0&&(this.stopAutoSave(),t.autoSaveIntervalMs>0&&this.startAutoSave())}startAutoSave(){this.autoSaveTimer||this.persistenceConfig.autoSaveIntervalMs>0&&(this.autoSaveTimer=setInterval(()=>{this.isDirty&&this.save().catch(t=>{console.warn("[TokenMetricsCollector] Auto-save failed:",t)})},this.persistenceConfig.autoSaveIntervalMs))}stopAutoSave(){this.autoSaveTimer&&(clearInterval(this.autoSaveTimer),this.autoSaveTimer=null)}async save(){let t=await import("fs"),e=await import("path"),n={version:"1.0.0",sessionId:this.sessionId,sessionStartTime:this.sessionStartTime,taskMetrics:this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory),optimizationStats:{cacheHits:this.cacheHits,earlyExits:this.earlyExits,totalTokensSaved:this.totalTokensSaved,totalPatternsReused:this.totalPatternsReused},lastSavedAt:Date.now()},a=e.resolve(this.persistenceConfig.filePath),s=e.dirname(a);t.existsSync(s)||t.mkdirSync(s,{recursive:!0}),t.writeFileSync(a,JSON.stringify(n,null,2)),this.isDirty=!1}async load(){let t=await import("fs"),n=(await import("path")).resolve(this.persistenceConfig.filePath);if(!t.existsSync(n))return!1;try{let a=t.readFileSync(n,"utf-8"),s=h(a);if(!s.version||!s.version.startsWith("1."))return console.warn("[TokenMetricsCollector] Incompatible data version, skipping load"),!1;let r=s.taskMetrics||[];this.taskMetrics=[...r,...this.taskMetrics],this.cacheHits+=s.optimizationStats?.cacheHits||0,this.earlyExits+=s.optimizationStats?.earlyExits||0,this.totalTokensSaved+=s.optimizationStats?.totalTokensSaved||0,this.totalPatternsReused+=s.optimizationStats?.totalPatternsReused||0;for(let c of r)this.updateAgentMetrics(c.agentId,c.usage,c.patternReused,c.tokensSaved||0),this.updateDomainMetrics(c.domain,c.usage);return this.taskMetrics.length>this.persistenceConfig.maxMetricsInMemory&&(this.taskMetrics=this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory)),!0}catch(a){return console.warn("[TokenMetricsCollector] Failed to load persisted data:",a),!1}}getPersistenceFilePath(){return this.persistenceConfig.filePath}hasUnsavedChanges(){return this.isDirty}async initializeDb(){try{this.db=f(),this.db.isInitialized()||await this.db.initialize(),await this.loadFromKv()}catch(t){console.warn("[TokenMetricsCollector] DB init failed, using memory-only:",T(t)),this.db=null}}async persistToKv(){if(!this.db)return;let t={version:"1.0.0",sessionId:this.sessionId,sessionStartTime:this.sessionStartTime,taskMetrics:this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory),optimizationStats:{cacheHits:this.cacheHits,earlyExits:this.earlyExits,totalTokensSaved:this.totalTokensSaved,totalPatternsReused:this.totalPatternsReused},lastSavedAt:Date.now()};await this.db.kvSet(u.KV_KEY,t,u.KV_NAMESPACE,u.KV_TTL)}async loadFromKv(){if(!this.db)return!1;let t=await this.db.kvGet(u.KV_KEY,u.KV_NAMESPACE);if(!t)return!1;if(!t.version||!t.version.startsWith("1."))return console.warn("[TokenMetricsCollector] Incompatible kv_store data version, skipping load"),!1;let e=t.taskMetrics||[];this.taskMetrics=[...e,...this.taskMetrics],this.cacheHits+=t.optimizationStats?.cacheHits||0,this.earlyExits+=t.optimizationStats?.earlyExits||0,this.totalTokensSaved+=t.optimizationStats?.totalTokensSaved||0,this.totalPatternsReused+=t.optimizationStats?.totalPatternsReused||0;for(let n of e)this.updateAgentMetrics(n.agentId,n.usage,n.patternReused,n.tokensSaved||0),this.updateDomainMetrics(n.domain,n.usage);return this.taskMetrics.length>this.persistenceConfig.maxMetricsInMemory&&(this.taskMetrics=this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory)),!0}maybePersistToKv(){this.kvPersistCount++,this.kvPersistCount>=u.KV_PERSIST_INTERVAL&&(this.kvPersistCount=0,this.persistToKv().catch(t=>{M.warn("KV persist failed",{error:t instanceof Error?t.message:String(t)})}))}ensureInitialized(){this.initialized||this.initialize()}calculateCost(t){let e=t.inputTokens*this.costConfig.costPerInputToken,n=t.outputTokens*this.costConfig.costPerOutputToken;return Math.round((e+n)*1e5)/1e5}filterByTimeframe(t,e){if(!e)return t;let n=Date.now(),a;switch(e){case"1h":a=n-3600*1e3;break;case"24h":a=n-1440*60*1e3;break;case"7d":a=n-10080*60*1e3;break;case"30d":a=n-720*60*60*1e3;break;default:return t}return t.filter(s=>s.timestamp>=a)}aggregateTokenUsage(t){let e=0,n=0,a=0,s=0;for(let r of t)e+=r.usage.inputTokens,n+=r.usage.outputTokens,a+=r.usage.totalTokens,s+=r.usage.estimatedCostUsd||0;return{inputTokens:e,outputTokens:n,totalTokens:a,estimatedCostUsd:Math.round(s*1e5)/1e5}}aggregateAgentMetrics(t,e){let n=0,a=0,s=0,r=0,c=0,d=0;for(let i of e)n+=i.usage.inputTokens,a+=i.usage.outputTokens,s+=i.usage.totalTokens,r+=i.usage.estimatedCostUsd||0,i.patternReused&&c++,d+=i.tokensSaved||0;return{agentId:t,totalInputTokens:n,totalOutputTokens:a,totalTokens:s,totalCost:Math.round(r*1e5)/1e5,tasksExecuted:e.length,patternsReused:c,estimatedTokensSaved:d}}updateAgentMetrics(t,e,n,a){let s=this.agentMetrics.get(t);s?(s.totalInputTokens+=e.inputTokens,s.totalOutputTokens+=e.outputTokens,s.totalTokens+=e.totalTokens,s.totalCost+=e.estimatedCostUsd||0,s.tasksExecuted++,n&&s.patternsReused++,s.estimatedTokensSaved+=a):this.agentMetrics.set(t,{agentId:t,totalInputTokens:e.inputTokens,totalOutputTokens:e.outputTokens,totalTokens:e.totalTokens,totalCost:e.estimatedCostUsd||0,tasksExecuted:1,patternsReused:n?1:0,estimatedTokensSaved:a})}updateDomainMetrics(t,e){let n=this.domainMetrics.get(t);n?(n.inputTokens+=e.inputTokens,n.outputTokens+=e.outputTokens,n.totalTokens+=e.totalTokens,n.estimatedCostUsd=(n.estimatedCostUsd||0)+(e.estimatedCostUsd||0)):this.domainMetrics.set(t,{...e})}generateRecommendations(t){let e=[];if(t.length===0)return["No token usage data available yet. Start executing tasks to track consumption."];let n=t.filter(i=>i.patternReused).length/t.length;n<.2?e.push("Low pattern reuse rate detected. Consider enabling pattern caching for similar tasks."):n>.5&&e.push("Good pattern reuse rate. Continue leveraging cached patterns for token savings.");let a=new Map;for(let i of t){let o=a.get(i.domain)||0;a.set(i.domain,o+i.usage.totalTokens)}let s=Array.from(a.entries()).sort((i,o)=>o[1]-i[1]);if(s.length>0){let i=s[0];e.push(`Highest token consumer: ${i[0]} (${i[1].toLocaleString()} tokens). Consider optimizing prompts or increasing caching.`)}let r=t.reduce((i,o)=>i+o.usage.inputTokens,0);return t.reduce((i,o)=>i+o.usage.outputTokens,0)/(r||1)>2&&e.push("High output-to-input token ratio. Consider requesting more concise responses."),this.cacheHits===0&&t.length>10&&e.push("No cache hits detected. Enable response caching to reduce duplicate API calls."),this.earlyExits===0&&t.length>20&&e.push("Early exit optimization not utilized. Enable high-confidence pattern matching to skip unnecessary LLM calls."),e}};function b(u){return u.toLocaleString("en-US")}function z(u){if(process.env.AQE_TOKEN_DASHBOARD_ENABLED==="false")return"Token dashboard disabled (AQE_TOKEN_DASHBOARD_ENABLED=false)";if(!u){let d=E.getSessionSummary(),i=d.totalUsage.totalTokens,o=d.totalUsage.estimatedCostUsd??0,l=d.optimizationStats.tokensSaved,k=i>0?o/i:0,g=l*k;u={totalTokens:i,totalCostUsd:o,savedTokens:l,savedCostUsd:g}}let t=u.totalTokens??0,e=u.totalCostUsd??0,n=u.savedTokens??0,a=u.savedCostUsd??0,s=u.budgetLimitUsd;if(t===0&&n===0)return"Token Dashboard: No data available";let r=`Token Usage: ${b(t)} tokens ($${e.toFixed(2)})`;n>0&&(r+=` | Saved: ${b(n)} tokens ($${a.toFixed(2)}) via pattern reuse`);let c=[];if(s!==void 0&&s>0){let d=Math.round(e/s*100);c.push(`Budget: $${e.toFixed(2)} / $${s.toFixed(2)} (${d}%)`)}if(u.tierSplit&&Object.keys(u.tierSplit).length>0){let d=Object.entries(u.tierSplit).sort((i,o)=>o[1]-i[1]).map(([i,o])=>`${i} ${o}%`);c.push(`Tier split: ${d.join(" | ")}`)}return c.length===0?r:`${r}
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.13.8");process.exit(0)}
2
+ import{i as f,m as P}from"./chunk-426SRHIW.js";import{d as p,e as y}from"./chunk-PVUQMV6P.js";import{b as h,d as U}from"./chunk-HD22NMGP.js";import{a as T,c as C}from"./chunk-XKKCH24C.js";P();C();U();y();import{randomUUID as v}from"crypto";var M=p("TokenTracker"),S={costPerInputToken:.003/1e3,costPerOutputToken:.015/1e3},I={filePath:".agentic-qe/token-metrics.json",autoSaveIntervalMs:6e4,maxMetricsInMemory:1e4},m=class u{taskMetrics=[];agentMetrics=new Map;domainMetrics=new Map;sessionId;sessionStartTime;costConfig;cacheHits=0;earlyExits=0;totalTokensSaved=0;totalPatternsReused=0;initialized=!1;persistenceConfig=I;autoSaveTimer=null;isDirty=!1;db=null;kvPersistCount=0;static KV_NAMESPACE="token-usage-metrics";static KV_KEY="token-tracker-snapshot";static KV_TTL=604800;static KV_PERSIST_INTERVAL=10;constructor(){this.sessionId=`session-${Date.now()}-${v().substring(0,8)}`,this.sessionStartTime=Date.now(),this.costConfig=S}initialize(t){this.initialized||(this.initialized=!0,t&&(this.costConfig={...S,...t}),this.initializeDb().catch(e=>{M.warn("DB initialization failed",{error:e instanceof Error?e.message:String(e)})}),this.startAutoSave())}setCostConfig(t){this.costConfig={...this.costConfig,...t}}recordTokenUsage(t,e,n,a,s,r){this.ensureInitialized();let c,d,i,o,l,k;typeof e=="object"?(c="default",d="unknown",i="unknown",o=e,l=!1,k=0):(c=e,d=n??"unknown",i=a??"unknown",o=s,l=r?.patternReused??!1,k=r?.tokensSaved??0),o.estimatedCostUsd===void 0&&(o.estimatedCostUsd=this.calculateCost(o));let g={taskId:t,agentId:c,domain:d,operation:i,timestamp:Date.now(),usage:o,patternReused:l,tokensSaved:k};this.taskMetrics.push(g),this.updateAgentMetrics(c,o,l,k),this.updateDomainMetrics(d,o),l&&this.totalPatternsReused++,k>0&&(this.totalTokensSaved+=k),this.isDirty=!0,this.maybePersistToKv()}recordPatternReuse(t,e){this.ensureInitialized(),this.totalPatternsReused++,this.totalTokensSaved+=e;let n={taskId:t,agentId:"pattern-cache",domain:"optimization",operation:"pattern-reuse",timestamp:Date.now(),usage:{inputTokens:0,outputTokens:0,totalTokens:0,estimatedCostUsd:0},patternReused:!0,tokensSaved:e};this.taskMetrics.push(n),this.isDirty=!0}recordCacheHit(t){this.cacheHits++,this.totalTokensSaved+=t,this.isDirty=!0}recordEarlyExit(t){this.earlyExits++,this.totalTokensSaved+=t,this.isDirty=!0}getSessionSummary(t){this.ensureInitialized();let e=this.filterByTimeframe(this.taskMetrics,t),n=this.aggregateTokenUsage(e),a=new Map;for(let i of e){let o=a.get(i.agentId);o?(o.totalInputTokens+=i.usage.inputTokens,o.totalOutputTokens+=i.usage.outputTokens,o.totalTokens+=i.usage.totalTokens,o.totalCost+=i.usage.estimatedCostUsd||0,o.tasksExecuted++,i.patternReused&&o.patternsReused++,o.estimatedTokensSaved+=i.tokensSaved||0):a.set(i.agentId,{agentId:i.agentId,totalInputTokens:i.usage.inputTokens,totalOutputTokens:i.usage.outputTokens,totalTokens:i.usage.totalTokens,totalCost:i.usage.estimatedCostUsd||0,tasksExecuted:1,patternsReused:i.patternReused?1:0,estimatedTokensSaved:i.tokensSaved||0})}let s=new Map;for(let i of e){let o=s.get(i.domain);o?(o.inputTokens+=i.usage.inputTokens,o.outputTokens+=i.usage.outputTokens,o.totalTokens+=i.usage.totalTokens,o.estimatedCostUsd=(o.estimatedCostUsd||0)+(i.usage.estimatedCostUsd||0)):s.set(i.domain,{...i.usage})}let r=n.totalTokens,c=this.totalTokensSaved,d=r+c>0?c/(r+c)*100:0;return{sessionId:this.sessionId,startTime:this.sessionStartTime,endTime:Date.now(),byAgent:a,byDomain:s,totalUsage:n,optimizationStats:{patternsReused:this.totalPatternsReused,cacheHits:this.cacheHits,earlyExits:this.earlyExits,tokensSaved:this.totalTokensSaved,savingsPercentage:Math.round(d*100)/100}}}getAgentMetrics(t,e){this.ensureInitialized();let n=this.filterByTimeframe(this.taskMetrics,e);if(t){let s=n.filter(r=>r.agentId===t);return this.aggregateAgentMetrics(t,s)}let a=new Map;for(let s of n){let r=a.get(s.agentId)||[];r.push(s),a.set(s.agentId,r)}return Array.from(a.entries()).map(([s,r])=>this.aggregateAgentMetrics(s,r))}getDomainMetrics(t,e){this.ensureInitialized();let n=this.filterByTimeframe(this.taskMetrics,e);if(t){let s=n.filter(r=>r.domain===t);return this.aggregateTokenUsage(s)}let a=new Map;for(let s of n){let r=a.get(s.domain);r?(r.inputTokens+=s.usage.inputTokens,r.outputTokens+=s.usage.outputTokens,r.totalTokens+=s.usage.totalTokens,r.estimatedCostUsd=(r.estimatedCostUsd||0)+(s.usage.estimatedCostUsd||0)):a.set(s.domain,{...s.usage})}return a}getTaskMetrics(t){return this.ensureInitialized(),this.filterByTimeframe(this.taskMetrics,t)}getEfficiencyReport(t){return this.getTokenEfficiency(t)}getTokenEfficiency(t){this.ensureInitialized();let e=this.filterByTimeframe(this.taskMetrics,t),a=this.aggregateTokenUsage(e).totalTokens,s=this.totalTokensSaved,r=a+s>0?s/(a+s)*100:0,c=e.length,d=c>0?e.filter(l=>l.patternReused).length/c:0,i=c>0?a/c:0,o=this.generateRecommendations(e);return{totalTokensUsed:a,totalTokensSaved:s,savingsPercentage:Math.round(r*100)/100,patternReuseRate:Math.round(d*100)/100,averageTokensPerTask:Math.round(i),recommendations:o}}reset(){this.stopAutoSave(),this.taskMetrics=[],this.agentMetrics.clear(),this.domainMetrics.clear(),this.sessionId=`session-${Date.now()}-${v().substring(0,8)}`,this.sessionStartTime=Date.now(),this.cacheHits=0,this.earlyExits=0,this.totalTokensSaved=0,this.totalPatternsReused=0,this.isDirty=!1}configurePersistence(t){this.persistenceConfig={...this.persistenceConfig,...t},t.autoSaveIntervalMs!==void 0&&(this.stopAutoSave(),t.autoSaveIntervalMs>0&&this.startAutoSave())}startAutoSave(){this.autoSaveTimer||this.persistenceConfig.autoSaveIntervalMs>0&&(this.autoSaveTimer=setInterval(()=>{this.isDirty&&this.save().catch(t=>{console.warn("[TokenMetricsCollector] Auto-save failed:",t)})},this.persistenceConfig.autoSaveIntervalMs))}stopAutoSave(){this.autoSaveTimer&&(clearInterval(this.autoSaveTimer),this.autoSaveTimer=null)}async save(){let t=await import("fs"),e=await import("path"),n={version:"1.0.0",sessionId:this.sessionId,sessionStartTime:this.sessionStartTime,taskMetrics:this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory),optimizationStats:{cacheHits:this.cacheHits,earlyExits:this.earlyExits,totalTokensSaved:this.totalTokensSaved,totalPatternsReused:this.totalPatternsReused},lastSavedAt:Date.now()},a=e.resolve(this.persistenceConfig.filePath),s=e.dirname(a);t.existsSync(s)||t.mkdirSync(s,{recursive:!0}),t.writeFileSync(a,JSON.stringify(n,null,2)),this.isDirty=!1}async load(){let t=await import("fs"),n=(await import("path")).resolve(this.persistenceConfig.filePath);if(!t.existsSync(n))return!1;try{let a=t.readFileSync(n,"utf-8"),s=h(a);if(!s.version||!s.version.startsWith("1."))return console.warn("[TokenMetricsCollector] Incompatible data version, skipping load"),!1;let r=s.taskMetrics||[];this.taskMetrics=[...r,...this.taskMetrics],this.cacheHits+=s.optimizationStats?.cacheHits||0,this.earlyExits+=s.optimizationStats?.earlyExits||0,this.totalTokensSaved+=s.optimizationStats?.totalTokensSaved||0,this.totalPatternsReused+=s.optimizationStats?.totalPatternsReused||0;for(let c of r)this.updateAgentMetrics(c.agentId,c.usage,c.patternReused,c.tokensSaved||0),this.updateDomainMetrics(c.domain,c.usage);return this.taskMetrics.length>this.persistenceConfig.maxMetricsInMemory&&(this.taskMetrics=this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory)),!0}catch(a){return console.warn("[TokenMetricsCollector] Failed to load persisted data:",a),!1}}getPersistenceFilePath(){return this.persistenceConfig.filePath}hasUnsavedChanges(){return this.isDirty}async initializeDb(){try{this.db=f(),this.db.isInitialized()||await this.db.initialize(),await this.loadFromKv()}catch(t){console.warn("[TokenMetricsCollector] DB init failed, using memory-only:",T(t)),this.db=null}}async persistToKv(){if(!this.db)return;let t={version:"1.0.0",sessionId:this.sessionId,sessionStartTime:this.sessionStartTime,taskMetrics:this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory),optimizationStats:{cacheHits:this.cacheHits,earlyExits:this.earlyExits,totalTokensSaved:this.totalTokensSaved,totalPatternsReused:this.totalPatternsReused},lastSavedAt:Date.now()};await this.db.kvSet(u.KV_KEY,t,u.KV_NAMESPACE,u.KV_TTL)}async loadFromKv(){if(!this.db)return!1;let t=await this.db.kvGet(u.KV_KEY,u.KV_NAMESPACE);if(!t)return!1;if(!t.version||!t.version.startsWith("1."))return console.warn("[TokenMetricsCollector] Incompatible kv_store data version, skipping load"),!1;let e=t.taskMetrics||[];this.taskMetrics=[...e,...this.taskMetrics],this.cacheHits+=t.optimizationStats?.cacheHits||0,this.earlyExits+=t.optimizationStats?.earlyExits||0,this.totalTokensSaved+=t.optimizationStats?.totalTokensSaved||0,this.totalPatternsReused+=t.optimizationStats?.totalPatternsReused||0;for(let n of e)this.updateAgentMetrics(n.agentId,n.usage,n.patternReused,n.tokensSaved||0),this.updateDomainMetrics(n.domain,n.usage);return this.taskMetrics.length>this.persistenceConfig.maxMetricsInMemory&&(this.taskMetrics=this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory)),!0}maybePersistToKv(){this.kvPersistCount++,this.kvPersistCount>=u.KV_PERSIST_INTERVAL&&(this.kvPersistCount=0,this.persistToKv().catch(t=>{M.warn("KV persist failed",{error:t instanceof Error?t.message:String(t)})}))}ensureInitialized(){this.initialized||this.initialize()}calculateCost(t){let e=t.inputTokens*this.costConfig.costPerInputToken,n=t.outputTokens*this.costConfig.costPerOutputToken;return Math.round((e+n)*1e5)/1e5}filterByTimeframe(t,e){if(!e)return t;let n=Date.now(),a;switch(e){case"1h":a=n-3600*1e3;break;case"24h":a=n-1440*60*1e3;break;case"7d":a=n-10080*60*1e3;break;case"30d":a=n-720*60*60*1e3;break;default:return t}return t.filter(s=>s.timestamp>=a)}aggregateTokenUsage(t){let e=0,n=0,a=0,s=0;for(let r of t)e+=r.usage.inputTokens,n+=r.usage.outputTokens,a+=r.usage.totalTokens,s+=r.usage.estimatedCostUsd||0;return{inputTokens:e,outputTokens:n,totalTokens:a,estimatedCostUsd:Math.round(s*1e5)/1e5}}aggregateAgentMetrics(t,e){let n=0,a=0,s=0,r=0,c=0,d=0;for(let i of e)n+=i.usage.inputTokens,a+=i.usage.outputTokens,s+=i.usage.totalTokens,r+=i.usage.estimatedCostUsd||0,i.patternReused&&c++,d+=i.tokensSaved||0;return{agentId:t,totalInputTokens:n,totalOutputTokens:a,totalTokens:s,totalCost:Math.round(r*1e5)/1e5,tasksExecuted:e.length,patternsReused:c,estimatedTokensSaved:d}}updateAgentMetrics(t,e,n,a){let s=this.agentMetrics.get(t);s?(s.totalInputTokens+=e.inputTokens,s.totalOutputTokens+=e.outputTokens,s.totalTokens+=e.totalTokens,s.totalCost+=e.estimatedCostUsd||0,s.tasksExecuted++,n&&s.patternsReused++,s.estimatedTokensSaved+=a):this.agentMetrics.set(t,{agentId:t,totalInputTokens:e.inputTokens,totalOutputTokens:e.outputTokens,totalTokens:e.totalTokens,totalCost:e.estimatedCostUsd||0,tasksExecuted:1,patternsReused:n?1:0,estimatedTokensSaved:a})}updateDomainMetrics(t,e){let n=this.domainMetrics.get(t);n?(n.inputTokens+=e.inputTokens,n.outputTokens+=e.outputTokens,n.totalTokens+=e.totalTokens,n.estimatedCostUsd=(n.estimatedCostUsd||0)+(e.estimatedCostUsd||0)):this.domainMetrics.set(t,{...e})}generateRecommendations(t){let e=[];if(t.length===0)return["No token usage data available yet. Start executing tasks to track consumption."];let n=t.filter(i=>i.patternReused).length/t.length;n<.2?e.push("Low pattern reuse rate detected. Consider enabling pattern caching for similar tasks."):n>.5&&e.push("Good pattern reuse rate. Continue leveraging cached patterns for token savings.");let a=new Map;for(let i of t){let o=a.get(i.domain)||0;a.set(i.domain,o+i.usage.totalTokens)}let s=Array.from(a.entries()).sort((i,o)=>o[1]-i[1]);if(s.length>0){let i=s[0];e.push(`Highest token consumer: ${i[0]} (${i[1].toLocaleString()} tokens). Consider optimizing prompts or increasing caching.`)}let r=t.reduce((i,o)=>i+o.usage.inputTokens,0);return t.reduce((i,o)=>i+o.usage.outputTokens,0)/(r||1)>2&&e.push("High output-to-input token ratio. Consider requesting more concise responses."),this.cacheHits===0&&t.length>10&&e.push("No cache hits detected. Enable response caching to reduce duplicate API calls."),this.earlyExits===0&&t.length>20&&e.push("Early exit optimization not utilized. Enable high-confidence pattern matching to skip unnecessary LLM calls."),e}};function b(u){return u.toLocaleString("en-US")}function z(u){if(process.env.AQE_TOKEN_DASHBOARD_ENABLED==="false")return"Token dashboard disabled (AQE_TOKEN_DASHBOARD_ENABLED=false)";if(!u){let d=E.getSessionSummary(),i=d.totalUsage.totalTokens,o=d.totalUsage.estimatedCostUsd??0,l=d.optimizationStats.tokensSaved,k=i>0?o/i:0,g=l*k;u={totalTokens:i,totalCostUsd:o,savedTokens:l,savedCostUsd:g}}let t=u.totalTokens??0,e=u.totalCostUsd??0,n=u.savedTokens??0,a=u.savedCostUsd??0,s=u.budgetLimitUsd;if(t===0&&n===0)return"Token Dashboard: No data available";let r=`Token Usage: ${b(t)} tokens ($${e.toFixed(2)})`;n>0&&(r+=` | Saved: ${b(n)} tokens ($${a.toFixed(2)}) via pattern reuse`);let c=[];if(s!==void 0&&s>0){let d=Math.round(e/s*100);c.push(`Budget: $${e.toFixed(2)} / $${s.toFixed(2)} (${d}%)`)}if(u.tierSplit&&Object.keys(u.tierSplit).length>0){let d=Object.entries(u.tierSplit).sort((i,o)=>o[1]-i[1]).map(([i,o])=>`${i} ${o}%`);c.push(`Tier split: ${d.join(" | ")}`)}return c.length===0?r:`${r}
3
3
  ${c.join(" | ")}`}var E=new m;function $(u){return`$${u.toFixed(2)}`}export{z as a,E as b,$ as c};
@@ -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.13.6");process.exit(0)}
2
- import{i as c}from"./chunk-NNIAUDHF.js";import{a as p}from"./chunk-GA7PUAMT.js";import{c as m}from"./chunk-F66FYZQF.js";import{b as g,d as E}from"./chunk-2VUXU22M.js";import{a as l,b as _}from"./chunk-5CMZDVUR.js";_();import b from"node:path";import{existsSync as h}from"node:fs";E();p();var T=m.create("metrics-tracker"),d=class{db=null;dbPath;initialized=!1;constructor(e=process.cwd()){this.dbPath=b.join(e,".agentic-qe","memory.db")}async initialize(){if(!this.initialized){if(!h(this.dbPath))throw new Error(`Database not found: ${this.dbPath}. Run "aqe init --auto" first.`);this.db=l(this.dbPath),this.ensureMetricsTable(),this.initialized=!0}}ensureMetricsTable(){this.db&&this.db.exec(`
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.13.8");process.exit(0)}
2
+ import{i as c}from"./chunk-UJ5KZ764.js";import{a as p}from"./chunk-K6XYLMXO.js";import{c as m}from"./chunk-PVUQMV6P.js";import{b as g,d as E}from"./chunk-HD22NMGP.js";import{a as l,b as _}from"./chunk-QYZLZ6P3.js";_();import b from"node:path";import{existsSync as h}from"node:fs";E();p();var T=m.create("metrics-tracker"),d=class{db=null;dbPath;initialized=!1;constructor(e=process.cwd()){this.dbPath=b.join(e,".agentic-qe","memory.db")}async initialize(){if(!this.initialized){if(!h(this.dbPath))throw new Error(`Database not found: ${this.dbPath}. Run "aqe init --auto" first.`);this.db=l(this.dbPath),this.ensureMetricsTable(),this.initialized=!0}}ensureMetricsTable(){this.db&&this.db.exec(`
3
3
  CREATE TABLE IF NOT EXISTS learning_daily_snapshots (
4
4
  id INTEGER PRIMARY KEY AUTOINCREMENT,
5
5
  snapshot_date TEXT NOT NULL UNIQUE,
@@ -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.13.6");process.exit(0)}
2
- import{l as d}from"./chunk-PSAXLKDZ.js";import{a as u,c as g}from"./chunk-6UPQD42K.js";g();var m=[{type:"email",pattern:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g,mask:n=>n[0]+"***@"+n.split("@")[1]},{type:"ssn",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,mask:()=>"***-**-****"},{type:"credit-card",pattern:/\b(?:\d[ -]*?){13,19}\b/g,mask:n=>"****-****-****-"+n.replace(/\D/g,"").slice(-4)},{type:"phone",pattern:/\b(?:\+?1[-.\s]?)?(?:\(?\d{3}\)?[-.\s]?)?\d{3}[-.\s]?\d{4}\b/g,mask:n=>n.slice(0,3)+"***"+n.slice(-2)},{type:"api-key",pattern:/(?:key|token|api_key|apikey|secret|password|passwd|auth)=([A-Za-z0-9_\-]{16,})/gi,mask:()=>"***REDACTED***"}],y=class extends d{config={name:"qe/security/url-validate",description:"Validate URL security: checks for XSS/injection patterns, unsafe protocols, and scans URL query parameters for PII exposure (emails, SSNs, credit cards, API keys).",domain:"security-compliance",schema:this.buildSchema()};buildSchema(){return{type:"object",properties:{url:{type:"string",description:"URL to validate for security threats and PII exposure"},enablePII:{type:"boolean",description:"Enable PII exposure scanning in URL and query parameters",default:!0}},required:["url"]}}async execute(s,r){try{let e=this.validateURLSecurity(s.url),t=s.enablePII!==!1?this.scanForPII(s.url):{scanned:!1,found:!1,types:[],details:[]},c=e.issues.length+(t.found?t.types.length:0)===0?`URL passed all checks (security: clean, PII: ${t.scanned?"none found":"not scanned"})`:`URL has ${e.issues.length} security issue(s)${t.found?` and ${t.types.length} PII type(s) exposed in URL`:""}`;return{success:!0,data:{url:s.url,urlSecurity:e,piiExposure:t,summary:c}}}catch(e){return{success:!1,error:u(e)}}}validateURLSecurity(s){let r=[],e="none";try{let t=new URL(s);["http:","https:"].includes(t.protocol)||(r.push({type:"unsafe-protocol",description:`Protocol ${t.protocol} is not allowed`,severity:"high"}),e="high");let o=[/<script/i,/javascript:/i,/on\w+=/i,/data:text\/html/i];for(let i of o)if(i.test(s)){r.push({type:"xss",description:"Potential XSS pattern detected in URL",severity:"critical"}),e="critical";break}let c=[/'.*or.*'/i,/union.*select/i,/drop.*table/i,/;\s*--/i];for(let i of c)if(i.test(s)){r.push({type:"sql-injection",description:"Potential SQL injection pattern detected in URL",severity:"critical"}),e="critical";break}/\.\.[/\\]/.test(s)&&(r.push({type:"path-traversal",description:"Potential path traversal pattern (../) detected",severity:"high"}),e!=="critical"&&(e="high"));let a=["redirect","url","next","return","returnUrl","goto"];for(let i of a){let l=t.searchParams.get(i);l&&/^https?:\/\//.test(l)&&(r.push({type:"open-redirect",description:`Query parameter "${i}" contains an external URL \u2014 potential open redirect`,severity:"medium"}),e==="none"&&(e="medium"))}}catch{r.push({type:"invalid-url",description:"URL could not be parsed",severity:"critical"}),e="critical"}return{valid:r.length===0,riskLevel:e,issues:r}}scanForPII(s){let r=[],e=new Set,t;try{t=decodeURIComponent(s)}catch{t=s}let o="",c="";try{let a=new URL(t);o=a.search,c=a.pathname}catch{o=t}for(let{type:a,pattern:i,mask:l}of m){i.lastIndex=0;let p;for(;(p=i.exec(t))!==null;){e.add(a);let h=o.includes(p[0])?"query-parameter":c.includes(p[0])?"path":"url";r.push({type:a,location:h,masked:l(p[0])})}}return{scanned:!0,found:e.size>0,types:Array.from(e),details:r}}};export{y as a};
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.13.8");process.exit(0)}
2
+ import{l as d}from"./chunk-SXSCWO6M.js";import{a as u,c as g}from"./chunk-XKKCH24C.js";g();var m=[{type:"email",pattern:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g,mask:n=>n[0]+"***@"+n.split("@")[1]},{type:"ssn",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,mask:()=>"***-**-****"},{type:"credit-card",pattern:/\b(?:\d[ -]*?){13,19}\b/g,mask:n=>"****-****-****-"+n.replace(/\D/g,"").slice(-4)},{type:"phone",pattern:/\b(?:\+?1[-.\s]?)?(?:\(?\d{3}\)?[-.\s]?)?\d{3}[-.\s]?\d{4}\b/g,mask:n=>n.slice(0,3)+"***"+n.slice(-2)},{type:"api-key",pattern:/(?:key|token|api_key|apikey|secret|password|passwd|auth)=([A-Za-z0-9_\-]{16,})/gi,mask:()=>"***REDACTED***"}],y=class extends d{config={name:"qe/security/url-validate",description:"Validate URL security: checks for XSS/injection patterns, unsafe protocols, and scans URL query parameters for PII exposure (emails, SSNs, credit cards, API keys).",domain:"security-compliance",schema:this.buildSchema()};buildSchema(){return{type:"object",properties:{url:{type:"string",description:"URL to validate for security threats and PII exposure"},enablePII:{type:"boolean",description:"Enable PII exposure scanning in URL and query parameters",default:!0}},required:["url"]}}async execute(s,r){try{let e=this.validateURLSecurity(s.url),t=s.enablePII!==!1?this.scanForPII(s.url):{scanned:!1,found:!1,types:[],details:[]},c=e.issues.length+(t.found?t.types.length:0)===0?`URL passed all checks (security: clean, PII: ${t.scanned?"none found":"not scanned"})`:`URL has ${e.issues.length} security issue(s)${t.found?` and ${t.types.length} PII type(s) exposed in URL`:""}`;return{success:!0,data:{url:s.url,urlSecurity:e,piiExposure:t,summary:c}}}catch(e){return{success:!1,error:u(e)}}}validateURLSecurity(s){let r=[],e="none";try{let t=new URL(s);["http:","https:"].includes(t.protocol)||(r.push({type:"unsafe-protocol",description:`Protocol ${t.protocol} is not allowed`,severity:"high"}),e="high");let o=[/<script/i,/javascript:/i,/on\w+=/i,/data:text\/html/i];for(let i of o)if(i.test(s)){r.push({type:"xss",description:"Potential XSS pattern detected in URL",severity:"critical"}),e="critical";break}let c=[/'.*or.*'/i,/union.*select/i,/drop.*table/i,/;\s*--/i];for(let i of c)if(i.test(s)){r.push({type:"sql-injection",description:"Potential SQL injection pattern detected in URL",severity:"critical"}),e="critical";break}/\.\.[/\\]/.test(s)&&(r.push({type:"path-traversal",description:"Potential path traversal pattern (../) detected",severity:"high"}),e!=="critical"&&(e="high"));let a=["redirect","url","next","return","returnUrl","goto"];for(let i of a){let l=t.searchParams.get(i);l&&/^https?:\/\//.test(l)&&(r.push({type:"open-redirect",description:`Query parameter "${i}" contains an external URL \u2014 potential open redirect`,severity:"medium"}),e==="none"&&(e="medium"))}}catch{r.push({type:"invalid-url",description:"URL could not be parsed",severity:"critical"}),e="critical"}return{valid:r.length===0,riskLevel:e,issues:r}}scanForPII(s){let r=[],e=new Set,t;try{t=decodeURIComponent(s)}catch{t=s}let o="",c="";try{let a=new URL(t);o=a.search,c=a.pathname}catch{o=t}for(let{type:a,pattern:i,mask:l}of m){i.lastIndex=0;let p;for(;(p=i.exec(t))!==null;){e.add(a);let h=o.includes(p[0])?"query-parameter":c.includes(p[0])?"path":"url";r.push({type:a,location:h,masked:l(p[0])})}}return{scanned:!0,found:e.size>0,types:Array.from(e),details:r}}};export{y as a};
@@ -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.13.6");process.exit(0)}
2
- var e=null,f=null,t=null,u=!1;async function W(){return u&&!t?e:t||(t=(async()=>{try{if(process.env.AQE_RVF_MODE==="sqlite-only"||process.env.AQE_MEMORY_BACKEND==="memory")return null;let{isRvfNativeAvailable:d}=await import("./rvf-native-adapter-XG3LFOYW.js");if(!d())return null;let{getUnifiedMemory:v,findProjectRoot:p}=await import("./unified-memory-Q55MJWAM.js"),o=v().getDatabase();if(!o)return null;let{join:m}=await import("node:path"),g=m(process.env.AQE_PROJECT_ROOT??p(),".agentic-qe","brain.rvf"),{RvfDualWriter:R}=await import("./rvf-dual-writer-M5TEJ56X.js"),l=new R(o,{rvfPath:g,mode:"dual-write",dimensions:384});await l.initialize(),e=l;try{let{getRvfMigrationStage:y}=await import("./feature-flags-D3JGPHXY.js"),a=y();if(a>=2){let{RvfMigrationAdapter:A}=await import("./rvf-migration-adapter-EHLWMZYI.js"),s=new A({stage:a});s.setSqliteDb(o);let{getSharedRvfAdapter:D}=await import("./shared-rvf-adapter-DP2Z4YLV.js"),i=D();if(i){let h={ingest:n=>i.ingest(n),search:(n,M)=>i.search(n,M).map(c=>({id:c.id,score:c.score})),delete:n=>i.delete(n),status:()=>i.status(),close:()=>{}};s.setRvfStore(h)}f=s,console.log(`[RVF] Migration adapter active at stage ${a} (${["sqlite-only","hybrid","dual-sqlite","dual-rvf","rvf-primary"][a]})`)}}catch{}return l}catch(r){return(process.env.DEBUG||process.env.AQE_VERBOSE)&&console.debug("[RVF] Dual-writer init failed, degrading to sqlite-only:",r instanceof Error?r.message:r),null}finally{u=!0,t=null,import("./base-4M3VL4XK.js").then(({registerRvfResetFn:r})=>r(w)).catch(()=>{})}})(),t)}function S(){return e}function b(){return f}function w(){if(e){try{e.close()}catch{}e=null}f=null,t=null,u=!1}export{W as a,S as b,b as c,w as d};
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.13.8");process.exit(0)}
2
+ var e=null,f=null,t=null,u=!1;async function W(){return u&&!t?e:t||(t=(async()=>{try{if(process.env.AQE_RVF_MODE==="sqlite-only"||process.env.AQE_MEMORY_BACKEND==="memory")return null;let{isRvfNativeAvailable:d}=await import("./rvf-native-adapter-IVKAJC5C.js");if(!d())return null;let{getUnifiedMemory:v,findProjectRoot:p}=await import("./unified-memory-EWCB3EHN.js"),o=v().getDatabase();if(!o)return null;let{join:m}=await import("node:path"),g=m(process.env.AQE_PROJECT_ROOT??p(),".agentic-qe","brain.rvf"),{RvfDualWriter:R}=await import("./rvf-dual-writer-GC2SZLOS.js"),l=new R(o,{rvfPath:g,mode:"dual-write",dimensions:384});await l.initialize(),e=l;try{let{getRvfMigrationStage:y}=await import("./feature-flags-NW6VEQMN.js"),a=y();if(a>=2){let{RvfMigrationAdapter:A}=await import("./rvf-migration-adapter-RMXAP7UZ.js"),s=new A({stage:a});s.setSqliteDb(o);let{getSharedRvfAdapter:D}=await import("./shared-rvf-adapter-RTWRMMCR.js"),i=D();if(i){let h={ingest:n=>i.ingest(n),search:(n,M)=>i.search(n,M).map(c=>({id:c.id,score:c.score})),delete:n=>i.delete(n),status:()=>i.status(),close:()=>{}};s.setRvfStore(h)}f=s,console.log(`[RVF] Migration adapter active at stage ${a} (${["sqlite-only","hybrid","dual-sqlite","dual-rvf","rvf-primary"][a]})`)}}catch{}return l}catch(r){return(process.env.DEBUG||process.env.AQE_VERBOSE)&&console.debug("[RVF] Dual-writer init failed, degrading to sqlite-only:",r instanceof Error?r.message:r),null}finally{u=!0,t=null,import("./base-EPDGZB2X.js").then(({registerRvfResetFn:r})=>r(w)).catch(()=>{})}})(),t)}function S(){return e}function b(){return f}function w(){if(e){try{e.close()}catch{}e=null}f=null,t=null,u=!1}export{W as a,S as b,b as c,w as d};