agentic-qe 3.11.4 → 3.12.0

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 (449) hide show
  1. package/.claude/helpers/.helpers-version +1 -0
  2. package/.claude/helpers/auto-memory-hook.mjs +35 -3
  3. package/.claude/helpers/brain-checkpoint.cjs +16 -1
  4. package/.claude/helpers/helpers.manifest.json +12 -0
  5. package/.claude/helpers/hook-handler.cjs +26 -5
  6. package/.claude/helpers/intelligence.cjs +14 -1
  7. package/.claude/hooks/aqe-hook.cjs +57 -10
  8. package/.claude/skills/skills-manifest.json +1 -1
  9. package/CHANGELOG.md +110 -0
  10. package/assets/skills/skills-manifest.json +1 -1
  11. package/dist/adapters/a2a/auth/routes.js +59 -28
  12. package/dist/audit/witness-chain.d.ts +25 -0
  13. package/dist/audit/witness-chain.js +69 -22
  14. package/dist/audit/witness-key-manager.d.ts +11 -0
  15. package/dist/audit/witness-key-manager.js +24 -0
  16. package/dist/cli/brain-commands.js +2 -1
  17. package/dist/cli/bundle.js +6 -6
  18. package/dist/cli/chunks/adapter-6IWRIHF3.js +2 -0
  19. package/dist/cli/chunks/{agent-booster-wasm-62I6ZNRW.js → agent-booster-wasm-IO54X6IQ.js} +2 -2
  20. package/dist/cli/chunks/{agent-handler-E2TZKKBS.js → agent-handler-A57SZUCW.js} +2 -2
  21. package/dist/cli/chunks/{agent-memory-branch-JHAHC2NH.js → agent-memory-branch-BX7LRFGN.js} +2 -2
  22. package/dist/cli/chunks/aqe-learning-engine-FSF5U67K.js +2 -0
  23. package/dist/cli/chunks/{arena-72ZV65BR.js → arena-UTC4YY6Y.js} +4 -4
  24. package/dist/cli/chunks/{arena-KLG3YSSR.js → arena-Y3XTX6O7.js} +2 -2
  25. package/dist/cli/chunks/audit-L4RL2AOY.js +3 -0
  26. package/dist/cli/chunks/base-2CKCJU3O.js +2 -0
  27. package/dist/cli/chunks/{hnswlib-node-LAFK5QZ4.js → better-sqlite3-LRDXKYOJ.js} +2 -2
  28. package/dist/cli/chunks/brain-handler-OHDPI5TQ.js +89 -0
  29. package/dist/cli/chunks/{branch-enumerator-C7MPNYT7.js → branch-enumerator-ZRXE2CQ7.js} +2 -2
  30. package/dist/cli/chunks/{browser-UUDUDYLR.js → browser-NT33FG76.js} +2 -2
  31. package/dist/cli/chunks/browser-workflow-UGYJE64S.js +2 -0
  32. package/dist/cli/chunks/{chunk-7QTB5XIQ.js → chunk-27JCWG5J.js} +2 -2
  33. package/dist/cli/chunks/{chunk-3FJZMQJ7.js → chunk-2ALNNXFF.js} +2 -2
  34. package/dist/cli/chunks/{chunk-LMJUMUQJ.js → chunk-2AOOIAW3.js} +4 -4
  35. package/dist/cli/chunks/{chunk-CNF3ZWLM.js → chunk-2AR4B3DI.js} +2 -2
  36. package/dist/cli/chunks/{chunk-7ADD2ZQL.js → chunk-2KHDGC7N.js} +2 -2
  37. package/dist/cli/chunks/{chunk-P6S6ZVB5.js → chunk-2UMCB7AH.js} +1 -1
  38. package/dist/cli/chunks/{chunk-HH6NCBSP.js → chunk-335GHVJV.js} +22 -22
  39. package/dist/cli/chunks/{chunk-2WPSMQIL.js → chunk-36MPDANH.js} +1 -1
  40. package/dist/cli/chunks/{chunk-Y4AXOHW4.js → chunk-3AFNXU45.js} +1 -1
  41. package/dist/cli/chunks/{chunk-SL3SNOO2.js → chunk-3B4XXFKD.js} +2 -2
  42. package/dist/cli/chunks/{chunk-7IKWF2AD.js → chunk-4GU656WM.js} +1 -1
  43. package/dist/cli/chunks/{chunk-IQBZBUP5.js → chunk-4SALW7OT.js} +2 -2
  44. package/dist/cli/chunks/{chunk-TCVEKRPI.js → chunk-5FR5GBUT.js} +2 -2
  45. package/dist/cli/chunks/chunk-5VBPIJUZ.js +65 -0
  46. package/dist/cli/chunks/chunk-5XFX25AJ.js +4 -0
  47. package/dist/cli/chunks/{chunk-QSDIY3E2.js → chunk-5YGESYBC.js} +1 -1
  48. package/dist/cli/chunks/{chunk-5U2WHPXL.js → chunk-62RELCU6.js} +1 -1
  49. package/dist/cli/chunks/{chunk-QJ5NCYJ3.js → chunk-64M3FFM4.js} +2 -2
  50. package/dist/cli/chunks/{chunk-BMQDELPA.js → chunk-6JNNZGI2.js} +1 -1
  51. package/dist/cli/chunks/{chunk-U34OZXD6.js → chunk-6X3RJBA3.js} +2 -2
  52. package/dist/cli/chunks/{chunk-AE6HXMOG.js → chunk-72VZGAMJ.js} +1 -1
  53. package/dist/cli/chunks/{chunk-4JFH3MVA.js → chunk-7F7U2HUH.js} +1 -1
  54. package/dist/cli/chunks/{chunk-A4OMK3FO.js → chunk-7HJHXSYT.js} +2 -2
  55. package/dist/cli/chunks/chunk-7WX3MKRS.js +2 -0
  56. package/dist/cli/chunks/{chunk-O7PVZ32A.js → chunk-7ZIVDGSN.js} +1 -1
  57. package/dist/cli/chunks/{chunk-EZRHSHOQ.js → chunk-AAATFEIL.js} +2 -2
  58. package/dist/cli/chunks/{chunk-TQ373GGI.js → chunk-AEX75YGI.js} +2 -2
  59. package/dist/cli/chunks/chunk-BA6U7NSR.js +2 -0
  60. package/dist/cli/chunks/chunk-BB4OVXWF.js +14 -0
  61. package/dist/cli/chunks/{chunk-GRQ36XUH.js → chunk-BBC526PL.js} +2 -2
  62. package/dist/cli/chunks/{chunk-EONKMHKO.js → chunk-BGRJZH5Q.js} +2 -2
  63. package/dist/cli/chunks/{chunk-XQ6DW5FV.js → chunk-BUYPRUNY.js} +2 -2
  64. package/dist/cli/chunks/{chunk-TU6YN43Q.js → chunk-BZPF6GTL.js} +1 -1
  65. package/dist/cli/chunks/{chunk-TPMBFARK.js → chunk-C4SZSPXY.js} +67 -22
  66. package/dist/cli/chunks/{chunk-D6CKKNYC.js → chunk-C6GYLCTX.js} +2 -2
  67. package/dist/cli/chunks/{chunk-YNK6SUPU.js → chunk-CC5G3K4X.js} +2 -2
  68. package/dist/cli/chunks/{chunk-ADFKY3X2.js → chunk-CHO54B34.js} +2 -2
  69. package/dist/cli/chunks/{chunk-WQZ2WRO4.js → chunk-CMGYUCM7.js} +1 -1
  70. package/dist/cli/chunks/{chunk-QMC5MTBV.js → chunk-CSEEGX5T.js} +2 -2
  71. package/dist/cli/chunks/{chunk-FSGMRQFC.js → chunk-CVGXB7IX.js} +2 -2
  72. package/dist/cli/chunks/{chunk-5VSQAGA2.js → chunk-DQDFACYW.js} +1 -1
  73. package/dist/cli/chunks/chunk-DR7PCO3S.js +153 -0
  74. package/dist/cli/chunks/{chunk-D5S47YUS.js → chunk-DTOE3NYW.js} +3 -3
  75. package/dist/cli/chunks/{chunk-WZYNY3VF.js → chunk-DXOMRWDC.js} +1 -1
  76. package/dist/cli/chunks/{chunk-HJ24KMC2.js → chunk-EGH3H7QO.js} +1 -1
  77. package/dist/cli/chunks/{chunk-JFLSQH2X.js → chunk-EM2JIIAQ.js} +2 -2
  78. package/dist/cli/chunks/{chunk-MWFJC5HR.js → chunk-ESDGCTC4.js} +1 -1
  79. package/dist/cli/chunks/{chunk-SRVTNG6L.js → chunk-EZE2HRQB.js} +2 -2
  80. package/dist/cli/chunks/{chunk-ZFCVT43J.js → chunk-FEEMJDUF.js} +2 -2
  81. package/dist/cli/chunks/{chunk-HJO4RNOW.js → chunk-FI5SSLEF.js} +2 -2
  82. package/dist/cli/chunks/{chunk-XHRLBJTM.js → chunk-FKPUPQQT.js} +2 -2
  83. package/dist/cli/chunks/{chunk-ODZSQVEW.js → chunk-FOPS6DRZ.js} +1 -1
  84. package/dist/cli/chunks/{chunk-AQIEK4SY.js → chunk-FU5RNEXV.js} +2 -2
  85. package/dist/cli/chunks/{chunk-PQUXFSN6.js → chunk-FZIHOMGY.js} +2 -2
  86. package/dist/cli/chunks/{chunk-Z2REKBD6.js → chunk-FZRU73M4.js} +2 -2
  87. package/dist/cli/chunks/{chunk-NBBLPDJX.js → chunk-G5JQLUUO.js} +2 -2
  88. package/dist/cli/chunks/{chunk-4BFCLSDN.js → chunk-G6LR7FK7.js} +2 -2
  89. package/dist/cli/chunks/{chunk-QEVX4GWF.js → chunk-G6RKUEGL.js} +2 -2
  90. package/dist/cli/chunks/{chunk-HWBMYR5W.js → chunk-GCF42L7M.js} +5 -5
  91. package/dist/cli/chunks/{chunk-TSWF3AGQ.js → chunk-GGMQOEZZ.js} +2 -2
  92. package/dist/cli/chunks/{chunk-PFWJQPUC.js → chunk-HAEUPIKW.js} +2 -2
  93. package/dist/cli/chunks/{chunk-63QUN3JK.js → chunk-HDJMD6UH.js} +1 -1
  94. package/dist/cli/chunks/{chunk-JPENUVCI.js → chunk-HW62TB4T.js} +1 -1
  95. package/dist/cli/chunks/{chunk-WMIRAD3J.js → chunk-I6WHYRWB.js} +2 -2
  96. package/dist/cli/chunks/{chunk-YZ5EQR37.js → chunk-ICK3B24H.js} +2 -2
  97. package/dist/cli/chunks/{chunk-FRFVN6AA.js → chunk-IDLNLSQI.js} +2 -2
  98. package/dist/cli/chunks/{chunk-VQU7DMEY.js → chunk-IJUYHIKN.js} +2 -2
  99. package/dist/cli/chunks/{chunk-6JUOH6L4.js → chunk-IKVNYK7Y.js} +2 -2
  100. package/dist/cli/chunks/{chunk-ZKCKOQJI.js → chunk-JOBCMNTP.js} +2 -2
  101. package/dist/cli/chunks/{chunk-ARPBG6FQ.js → chunk-JYX7AZHE.js} +2 -2
  102. package/dist/cli/chunks/{chunk-SFDUT5WM.js → chunk-JYXSVSH2.js} +2 -2
  103. package/dist/cli/chunks/{chunk-VJGHRWMH.js → chunk-K5SN66B4.js} +2 -2
  104. package/dist/cli/chunks/{chunk-DNOU2HVQ.js → chunk-KDLYTJ5C.js} +2 -2
  105. package/dist/cli/chunks/{chunk-T76RFXQX.js → chunk-KI5BP4X5.js} +2 -2
  106. package/dist/cli/chunks/{chunk-7AWK43JN.js → chunk-KJWQ7ENF.js} +2 -2
  107. package/dist/cli/chunks/{chunk-BRLUNIR4.js → chunk-KN5GOEYK.js} +2 -2
  108. package/dist/cli/chunks/{chunk-VKJQAKYG.js → chunk-KZ37VHMJ.js} +2 -2
  109. package/dist/cli/chunks/{chunk-NV3TXXOW.js → chunk-KZMRU7DL.js} +2 -2
  110. package/dist/cli/chunks/{chunk-LLUPRGOR.js → chunk-L5ZLOW3K.js} +2 -2
  111. package/dist/cli/chunks/{chunk-THKZVOZV.js → chunk-LMJUQWR7.js} +1 -1
  112. package/dist/cli/chunks/{chunk-2KNFS3L5.js → chunk-MBF3Q7FQ.js} +1 -1
  113. package/dist/cli/chunks/chunk-MDT3LIXS.js +2 -0
  114. package/dist/cli/chunks/{chunk-B5XUWHKQ.js → chunk-MJPYNGZ7.js} +1 -1
  115. package/dist/cli/chunks/{chunk-UCYTY4LG.js → chunk-MK3J7JVZ.js} +2 -2
  116. package/dist/cli/chunks/{chunk-MCT4CD5M.js → chunk-MUAHFGIX.js} +2 -2
  117. package/dist/cli/chunks/{chunk-3SBUL72V.js → chunk-MUV56BPK.js} +2 -2
  118. package/dist/cli/chunks/{chunk-WNMDWP5A.js → chunk-NLHISTL2.js} +2 -2
  119. package/dist/cli/chunks/{chunk-UJMTKXPI.js → chunk-NNGCUJWQ.js} +2 -2
  120. package/dist/cli/chunks/chunk-NW7G57NR.js +27 -0
  121. package/dist/cli/chunks/{chunk-3SRPFBU7.js → chunk-O3C5RRDQ.js} +3 -3
  122. package/dist/cli/chunks/{chunk-AYGEWPN4.js → chunk-OHSVDMF7.js} +1 -1
  123. package/dist/cli/chunks/{chunk-AJXGGTX7.js → chunk-OPIWFXME.js} +1 -1
  124. package/dist/cli/chunks/{chunk-ZSBJNE35.js → chunk-P52YORQG.js} +2 -2
  125. package/dist/cli/chunks/chunk-PM566XEO.js +2 -0
  126. package/dist/cli/chunks/chunk-POKMJTD2.js +2 -0
  127. package/dist/cli/chunks/{chunk-GOQ4P2PB.js → chunk-PQMLIVGV.js} +2 -2
  128. package/dist/cli/chunks/{chunk-IB3ZPLFA.js → chunk-PT3FTGKZ.js} +2 -2
  129. package/dist/cli/chunks/{chunk-U3AVZGQA.js → chunk-Q5YRPS4P.js} +1 -1
  130. package/dist/cli/chunks/{chunk-5Z4FBCBK.js → chunk-QJ6H2HQQ.js} +1 -1
  131. package/dist/cli/chunks/{chunk-DRMHVY4T.js → chunk-RG552ROA.js} +4 -4
  132. package/dist/cli/chunks/{chunk-PEIQDQXN.js → chunk-RHC7TFPU.js} +2 -2
  133. package/dist/cli/chunks/{chunk-JNQN5DNS.js → chunk-RMFRFING.js} +1 -1
  134. package/dist/cli/chunks/{chunk-4YT5YN5G.js → chunk-RQN4HWGV.js} +2 -2
  135. package/dist/cli/chunks/{chunk-5P7Q5YNC.js → chunk-RYUSZ43T.js} +1 -1
  136. package/dist/cli/chunks/{chunk-O5NEJIHB.js → chunk-RZDNCTOA.js} +2 -2
  137. package/dist/cli/chunks/chunk-SCMXIBI7.js +2 -0
  138. package/dist/cli/chunks/{chunk-6545AS2J.js → chunk-SPEUF7ZL.js} +2 -2
  139. package/dist/cli/chunks/{chunk-LW5DHT3Z.js → chunk-SSXAW3ER.js} +2 -2
  140. package/dist/cli/chunks/{chunk-Q7ORVHJB.js → chunk-TC2JE5OK.js} +3 -3
  141. package/dist/cli/chunks/{chunk-MALOUGSF.js → chunk-TED4KOSK.js} +2 -2
  142. package/dist/cli/chunks/{chunk-ICCTQ5LO.js → chunk-TJ6N4CCX.js} +2 -2
  143. package/dist/cli/chunks/{chunk-6GYGAW53.js → chunk-TJEJ4UVX.js} +2 -2
  144. package/dist/cli/chunks/{chunk-VO6YJGB4.js → chunk-TO5PQSDD.js} +2 -2
  145. package/dist/cli/chunks/{chunk-LKURMUBU.js → chunk-TR5GOGH3.js} +37 -12
  146. package/dist/cli/chunks/{chunk-JCTCM6IR.js → chunk-UGJQJSPB.js} +1 -1
  147. package/dist/cli/chunks/{chunk-4RHNPRAP.js → chunk-USB44IHJ.js} +2 -2
  148. package/dist/cli/chunks/{chunk-JDFPAJGB.js → chunk-UUOXV3NS.js} +92 -92
  149. package/dist/cli/chunks/chunk-UVVKFBF7.js +2 -0
  150. package/dist/cli/chunks/{chunk-VCUCD3B5.js → chunk-V2MD5EDD.js} +2 -2
  151. package/dist/cli/chunks/{chunk-RFQBDMAP.js → chunk-VA7TEOPM.js} +1 -1
  152. package/dist/cli/chunks/{chunk-IF3HPQNV.js → chunk-VMP4M5PB.js} +1 -1
  153. package/dist/cli/chunks/{chunk-KUZMVH6N.js → chunk-VS4GMNJK.js} +3 -3
  154. package/dist/cli/chunks/{chunk-ZYZT2CDX.js → chunk-VWJSWXHG.js} +1 -1
  155. package/dist/cli/chunks/{chunk-54B6P2WS.js → chunk-VZ67ZDB3.js} +3 -3
  156. package/dist/cli/chunks/{chunk-NSPCZPTB.js → chunk-W2OMW6UU.js} +2 -2
  157. package/dist/cli/chunks/{chunk-3SKIZDKL.js → chunk-W766S4SK.js} +1 -1
  158. package/dist/cli/chunks/{chunk-N2BJN6AO.js → chunk-WJYTLRA5.js} +3 -3
  159. package/dist/cli/chunks/{chunk-X64BEXUY.js → chunk-WNASEUBW.js} +117 -113
  160. package/dist/cli/chunks/{chunk-HT6WAYIR.js → chunk-WT4ZDDFM.js} +1 -1
  161. package/dist/cli/chunks/chunk-XEYW3V5I.js +2 -0
  162. package/dist/cli/chunks/{chunk-6W3QHS45.js → chunk-XIFPIVZI.js} +2 -2
  163. package/dist/cli/chunks/{chunk-3E7D3A35.js → chunk-Y2MCIIJD.js} +1 -1
  164. package/dist/cli/chunks/{chunk-YUHM72VQ.js → chunk-YKOTOCO6.js} +2 -2
  165. package/dist/cli/chunks/{chunk-YKSWC7I4.js → chunk-Z3W3R4CW.js} +8 -20
  166. package/dist/cli/chunks/chunk-ZT2WHCVM.js +2 -0
  167. package/dist/cli/chunks/{chunk-G3TFNY4T.js → chunk-ZVPAFX4I.js} +2 -2
  168. package/dist/cli/chunks/{chunk-NFJT7XXR.js → chunk-ZWC6CM4R.js} +1 -1
  169. package/dist/cli/chunks/{ci-HQCRSCC7.js → ci-RJH5LAL3.js} +2 -2
  170. package/dist/cli/chunks/{ci-output-YBVXLA6O.js → ci-output-62SGMGB2.js} +2 -2
  171. package/dist/cli/chunks/{circuit-breaker-ULGMF2QN.js → circuit-breaker-QXTS5ZAW.js} +2 -2
  172. package/dist/cli/chunks/{claude-flow-setup-MKZ2LJXK.js → claude-flow-setup-BBCCT5WV.js} +2 -2
  173. package/dist/cli/chunks/client-E2XUBCLK.js +2 -0
  174. package/dist/cli/chunks/{cline-installer-WZQ6XBWN.js → cline-installer-IZCUJJ3I.js} +2 -2
  175. package/dist/cli/chunks/{code-H3KGH45S.js → code-AWNVOZ7S.js} +2 -2
  176. package/dist/cli/chunks/{code-index-extractor-NUVEAJ7C.js → code-index-extractor-MX65BKMI.js} +2 -2
  177. package/dist/cli/chunks/{codex-installer-JQI6E6CV.js → codex-installer-EQT6JVLM.js} +2 -2
  178. package/dist/cli/chunks/{completions-NDF4PFE7.js → completions-WOJAM45W.js} +2 -2
  179. package/dist/cli/chunks/{complexity-analyzer-XCZH66HG.js → complexity-analyzer-3DJB7V3K.js} +2 -2
  180. package/dist/cli/chunks/{continuedev-installer-Z4AJGZ7S.js → continuedev-installer-P4KWUTCJ.js} +2 -2
  181. package/dist/cli/chunks/{copilot-installer-K4IPAL7C.js → copilot-installer-FFZWTMWQ.js} +2 -2
  182. package/dist/cli/chunks/core-handlers-46Z5VOO6.js +2 -0
  183. package/dist/cli/chunks/{cost-tracker-35KXAB23.js → cost-tracker-CYBOV3NI.js} +2 -2
  184. package/dist/cli/chunks/{coverage-QW5I4TYZ.js → coverage-GTZJBSC4.js} +3 -3
  185. package/dist/cli/chunks/cross-domain-router-SXQ3HFRY.js +2 -0
  186. package/dist/cli/chunks/{cursor-installer-P4Z7RMIZ.js → cursor-installer-WZIVXGGB.js} +2 -2
  187. package/dist/cli/chunks/daemon-JWMHEJEN.js +10 -0
  188. package/dist/cli/chunks/{daemon-WQWTCYBM.js → daemon-MSFN2LXY.js} +3 -3
  189. package/dist/cli/chunks/{dag-attention-scheduler-7XD2VGON.js → dag-attention-scheduler-4TWOTTQE.js} +2 -2
  190. package/dist/cli/chunks/{detect-GZ3P4DI7.js → detect-YZ6AGQPB.js} +2 -2
  191. package/dist/cli/chunks/{dist-node-6WWAW7OP.js → dist-node-3EM2XH54.js} +2 -2
  192. package/dist/cli/chunks/{domain-handler-3GTLWARQ.js → domain-handler-4XU5BINU.js} +2 -2
  193. package/dist/cli/chunks/domain-transfer-HUFC7I52.js +2 -0
  194. package/dist/cli/chunks/dream-R6MQQQ3N.js +2 -0
  195. package/dist/cli/chunks/{embed-and-insert-pattern-BGIMA77V.js → embed-and-insert-pattern-J5ZFM6YX.js} +2 -2
  196. package/dist/cli/chunks/{eval-SXV6DRDD.js → eval-XYOA3EH2.js} +2 -2
  197. package/dist/cli/chunks/{experience-capture-middleware-TT6WCT2S.js → experience-capture-middleware-E3RYQB6Z.js} +3 -3
  198. package/dist/cli/chunks/{fast-paths-HTAZHEQP.js → fast-paths-DKIYN2YS.js} +2 -2
  199. package/dist/cli/chunks/{feature-flags-DIE3Z2B4.js → feature-flags-S2RNZATS.js} +2 -2
  200. package/dist/cli/chunks/{feature-flags-WBUKU54W.js → feature-flags-ZB63Z7N5.js} +2 -2
  201. package/dist/cli/chunks/{file-discovery-SKDETFS3.js → file-discovery-USJJLYQU.js} +2 -2
  202. package/dist/cli/chunks/{fleet-WCWEPAVU.js → fleet-4MUPHSF5.js} +4 -4
  203. package/dist/cli/chunks/{gnn-wrapper-KWZOWBYS.js → gnn-wrapper-PYOQZKX6.js} +2 -2
  204. package/dist/cli/chunks/{heartbeat-handler-3AGYHVG2.js → heartbeat-handler-HLO5XCG7.js} +4 -4
  205. package/dist/cli/chunks/heartbeat-scheduler-OSDPJT6A.js +2 -0
  206. package/dist/cli/chunks/hnsw-adapter-KMGSHBIN.js +2 -0
  207. package/dist/cli/chunks/hnsw-index-IMFRAOPE.js +2 -0
  208. package/dist/cli/chunks/{hnsw-legacy-bridge-6OJJDZHL.js → hnsw-legacy-bridge-FZEH2KLM.js} +2 -2
  209. package/dist/cli/chunks/{better-sqlite3-URULPKRF.js → hnswlib-node-VS6L5VUG.js} +2 -2
  210. package/dist/cli/chunks/{hooks-OXEBTLXV.js → hooks-R2757K57.js} +48 -52
  211. package/dist/cli/chunks/hybrid-router-57QSWSWC.js +2 -0
  212. package/dist/cli/chunks/{hypergraph-engine-NL74PRHD.js → hypergraph-engine-EAV3GJ5D.js} +2 -2
  213. package/dist/cli/chunks/{hypergraph-handler-KZ54AEEL.js → hypergraph-handler-5ERXAVGH.js} +3 -3
  214. package/dist/cli/chunks/impact-analyzer-OC4MPBGA.js +2 -0
  215. package/dist/cli/chunks/{init-handler-XKZXRXPG.js → init-handler-RXUSEMG7.js} +6 -6
  216. package/dist/cli/chunks/init-wizard-CDBRL4PO.js +2 -0
  217. package/dist/cli/chunks/kernel-CQ7R3AAV.js +2 -0
  218. package/dist/cli/chunks/{kilocode-installer-WISQMJK7.js → kilocode-installer-ZUBVBHGT.js} +2 -2
  219. package/dist/cli/chunks/{kiro-installer-O7TBB3GM.js → kiro-installer-TRTRQDGL.js} +2 -2
  220. package/dist/cli/chunks/knowledge-graph-UXNH7RY4.js +2 -0
  221. package/dist/cli/chunks/{learning-6IZBGVRU.js → learning-UYXWAU5D.js} +3 -3
  222. package/dist/cli/chunks/{llm-router-QDMQPPQ7.js → llm-router-TB5OJPEV.js} +4 -4
  223. package/dist/cli/chunks/llm-router-service-UV34YXBE.js +2 -0
  224. package/dist/cli/chunks/{load-KLAJJGL5.js → load-ELPSUIPV.js} +2 -2
  225. package/dist/cli/chunks/load-test-2VEN3PQZ.js +2 -0
  226. package/dist/cli/chunks/{mcp-SZOPQZIZ.js → mcp-UX7TK3XV.js} +2 -2
  227. package/dist/cli/chunks/{memory-G3WY74C6.js → memory-W3LG6H6N.js} +5 -5
  228. package/dist/cli/chunks/memory-backend-TZL5U6F3.js +2 -0
  229. package/dist/cli/chunks/memory-handlers-BNXAYS2P.js +2 -0
  230. package/dist/cli/chunks/{multi-model-executor-TDNQGTOT.js → multi-model-executor-227LWZRY.js} +2 -2
  231. package/dist/cli/chunks/{opencode-installer-NGYGEDMV.js → opencode-installer-F4WKVWDL.js} +2 -2
  232. package/dist/cli/chunks/{orchestrator-KPI5DY2C.js → orchestrator-V4DBMGK6.js} +5 -5
  233. package/dist/cli/chunks/pattern-null-store-KLX2RNHM.js +2 -0
  234. package/dist/cli/chunks/pattern-usage-recorder-BY3HEWSU.js +2 -0
  235. package/dist/cli/chunks/{pipeline-CSDCC675.js → pipeline-3F5RIESX.js} +2 -2
  236. package/dist/cli/chunks/{platform-Q5XKEVKH.js → platform-KCGXTZO3.js} +2 -2
  237. package/dist/cli/chunks/{plugin-XKKR3GVL.js → plugin-2H552KOV.js} +2 -2
  238. package/dist/cli/chunks/{prime-radiant-advanced-wasm-22QVNKEN.js → prime-radiant-advanced-wasm-EFKVL7VN.js} +2 -2
  239. package/dist/cli/chunks/protocol-executor-5HJKW6MC.js +2 -0
  240. package/dist/cli/chunks/{protocol-handler-REQKTJGG.js → protocol-handler-ELGYV7D2.js} +2 -2
  241. package/dist/cli/chunks/{prove-NOFUFSQN.js → prove-AYJCQYNI.js} +2 -2
  242. package/dist/cli/chunks/provider-manager-TRZSBXD3.js +2 -0
  243. package/dist/cli/chunks/qe-reasoning-bank-RCEYSLVV.js +2 -0
  244. package/dist/cli/chunks/{quality-3DQ2H5TK.js → quality-HH7L5A7V.js} +2 -2
  245. package/dist/cli/chunks/quality-gate-NAQLXE4C.js +7 -0
  246. package/dist/cli/chunks/queen-coordinator-6JFZD54W.js +2 -0
  247. package/dist/cli/chunks/{real-embeddings-FCGNYWLL.js → real-embeddings-IO3F4ZFR.js} +2 -2
  248. package/dist/cli/chunks/{roocode-installer-HX3CNRIR.js → roocode-installer-X4TU5HO4.js} +2 -2
  249. package/dist/cli/chunks/router-KRLC46NS.js +2 -0
  250. package/dist/cli/chunks/routing-feedback-WW26H6SA.js +2 -0
  251. package/dist/cli/chunks/{routing-handler-YRZ2LDCR.js → routing-handler-ZJKGDDMT.js} +2 -2
  252. package/dist/cli/chunks/{ruvector-commands-GCQVBJ4E.js → ruvector-commands-NXCSUBN2.js} +2 -2
  253. package/dist/cli/chunks/{rvf-dual-writer-B562P3ZC.js → rvf-dual-writer-JMA74SKP.js} +2 -2
  254. package/dist/cli/chunks/{rvf-migration-adapter-NAGFKCMD.js → rvf-migration-adapter-BNTGH2KU.js} +2 -2
  255. package/dist/cli/chunks/{rvf-migration-coordinator-WWFBEJ5Q.js → rvf-migration-coordinator-7T2HHUOH.js} +2 -2
  256. package/dist/cli/chunks/rvf-native-adapter-OVQKPQUH.js +2 -0
  257. package/dist/cli/chunks/safe-db-UQOCQIH2.js +2 -0
  258. package/dist/cli/chunks/schedule-EUX7ZQUK.js +2 -0
  259. package/dist/cli/chunks/scheduler-MALHQKNR.js +2 -0
  260. package/dist/cli/chunks/{security-IFOYTD75.js → security-XSK2QHB3.js} +3 -3
  261. package/dist/cli/chunks/{shared-rvf-adapter-TYD5TQ35.js → shared-rvf-adapter-WLRKI7RY.js} +2 -2
  262. package/dist/cli/chunks/{shared-rvf-dual-writer-YGOOVDQZ.js → shared-rvf-dual-writer-SZW3J7ZK.js} +2 -2
  263. package/dist/cli/chunks/sqlite-persistence-OBCLRP4L.js +2 -0
  264. package/dist/cli/chunks/status-handler-HGCKYJX2.js +46 -0
  265. package/dist/cli/chunks/{structural-health-KZI6YMKV.js → structural-health-4SJCFX63.js} +2 -2
  266. package/dist/cli/chunks/{sync-Z5BDDBMK.js → sync-7WAVNZGL.js} +2 -2
  267. package/dist/cli/chunks/{sync-ABZNNYRC.js → sync-ATR4DUSA.js} +2 -2
  268. package/dist/cli/chunks/{task-handler-5ACZEPJ7.js → task-handler-O6REL34Y.js} +2 -2
  269. package/dist/cli/chunks/{task-handlers-UZWDPL6A.js → task-handlers-WFV2ZYWW.js} +3 -3
  270. package/dist/cli/chunks/{test-APO3MCVV.js → test-4LXUVHEU.js} +4 -4
  271. package/dist/cli/chunks/{test-scheduling-EFZA5G5C.js → test-scheduling-OTN3DMKY.js} +3 -3
  272. package/dist/cli/chunks/{token-bootstrap-J2OPLNUK.js → token-bootstrap-VA7T4P42.js} +2 -2
  273. package/dist/cli/chunks/{token-usage-VHWVNN4R.js → token-usage-TLT6OXXR.js} +2 -2
  274. package/dist/cli/chunks/{transformers-PX4HPO75.js → transformers-JI7LZRQ3.js} +2 -2
  275. package/dist/cli/chunks/{tree-sitter-wasm-parser-44HA2Z3F.js → tree-sitter-wasm-parser-QNIMHB4K.js} +2 -2
  276. package/dist/cli/chunks/{types-IMOP7F4R.js → types-DJNWOAC6.js} +2 -2
  277. package/dist/cli/chunks/unified-memory-A5BS3LGX.js +2 -0
  278. package/dist/cli/chunks/unified-memory-hnsw-WJLJO5MY.js +2 -0
  279. package/dist/cli/chunks/unified-persistence-CFC2BKI5.js +2 -0
  280. package/dist/cli/chunks/{upgrade-OZ3O6ZZI.js → upgrade-VEW4FL23.js} +2 -2
  281. package/dist/cli/chunks/{validate-DRY5BMWX.js → validate-O3P6PF7B.js} +2 -2
  282. package/dist/cli/chunks/{validate-swarm-QD3LYPUF.js → validate-swarm-M2HXHZVC.js} +2 -2
  283. package/dist/cli/chunks/{vibium-2J3H2ITD.js → vibium-GOU55LUO.js} +2 -2
  284. package/dist/cli/chunks/visual-security-VPB6KVYJ.js +2 -0
  285. package/dist/cli/chunks/{web-tree-sitter-KRNUOGKI.js → web-tree-sitter-MXOI4GH3.js} +2 -2
  286. package/dist/cli/chunks/{windsurf-installer-PQIPH3WP.js → windsurf-installer-6GKT53IH.js} +2 -2
  287. package/dist/cli/chunks/{witness-chain-HPLOYPS7.js → witness-chain-OXGQGL26.js} +2 -2
  288. package/dist/cli/chunks/witness-chain-ZZAUAXDY.js +2 -0
  289. package/dist/cli/chunks/witness-key-manager-PGFSQXUJ.js +2 -0
  290. package/dist/cli/chunks/{workflow-OAQ3FWCY.js → workflow-ENBWRMBA.js} +4 -4
  291. package/dist/cli/chunks/workflow-orchestrator-S4LBFTYD.js +2 -0
  292. package/dist/cli/chunks/{wrappers-UPIU6S5S.js → wrappers-MHLNYANQ.js} +2 -2
  293. package/dist/cli/commands/audit.d.ts +12 -0
  294. package/dist/cli/commands/audit.js +64 -4
  295. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +45 -19
  296. package/dist/cli/commands/hooks-handlers/hooks-shared.d.ts +13 -0
  297. package/dist/cli/commands/hooks-handlers/hooks-shared.js +38 -0
  298. package/dist/cli/commands/hooks-handlers/task-hooks.js +19 -1
  299. package/dist/cli/commands/quality-gate.d.ts +24 -0
  300. package/dist/cli/commands/quality-gate.js +135 -0
  301. package/dist/cli/handlers/status-handler.d.ts +18 -0
  302. package/dist/cli/handlers/status-handler.js +47 -0
  303. package/dist/cli/index.js +5 -0
  304. package/dist/coordination/mincut/dream-integration.d.ts +11 -0
  305. package/dist/coordination/mincut/dream-integration.js +39 -12
  306. package/dist/coordination/mincut/queen-integration.js +24 -7
  307. package/dist/coordination/protocol-executor.js +2 -1
  308. package/dist/coordination/queen-lifecycle.js +4 -1
  309. package/dist/domains/code-intelligence/coordinator.js +10 -6
  310. package/dist/domains/code-intelligence/services/product-factors-bridge.js +3 -1
  311. package/dist/domains/defect-intelligence/services/defect-predictor.d.ts +6 -0
  312. package/dist/domains/defect-intelligence/services/defect-predictor.js +21 -0
  313. package/dist/domains/learning-optimization/interfaces.d.ts +7 -0
  314. package/dist/domains/learning-optimization/plugin.js +5 -0
  315. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +10 -0
  316. package/dist/domains/learning-optimization/services/learning-coordinator.js +57 -0
  317. package/dist/domains/test-execution/plugin.js +2 -2
  318. package/dist/domains/test-execution/services/flaky-detector.js +1 -1
  319. package/dist/domains/test-generation/coordinator.js +22 -8
  320. package/dist/domains/test-generation/interfaces.d.ts +3 -0
  321. package/dist/domains/test-generation/services/test-generator.js +9 -1
  322. package/dist/integrations/ruvector/delta-tracker.js +10 -1
  323. package/dist/integrations/ruvector/feature-flags.js +7 -0
  324. package/dist/integrations/ruvector/sona-persistence.d.ts +24 -0
  325. package/dist/integrations/ruvector/sona-persistence.js +76 -0
  326. package/dist/integrations/ruvector/sona-three-loop.d.ts +15 -0
  327. package/dist/integrations/ruvector/sona-three-loop.js +17 -0
  328. package/dist/kernel/unified-memory-schemas.d.ts +2 -2
  329. package/dist/kernel/unified-memory-schemas.js +48 -2
  330. package/dist/kernel/unified-memory.d.ts +22 -0
  331. package/dist/kernel/unified-memory.js +43 -0
  332. package/dist/learning/aqe-learning-engine.js +3 -1
  333. package/dist/learning/dream/concept-graph.d.ts +31 -1
  334. package/dist/learning/dream/concept-graph.js +109 -3
  335. package/dist/learning/dream/dream-engine.d.ts +13 -1
  336. package/dist/learning/dream/dream-engine.js +146 -10
  337. package/dist/learning/dream/index.d.ts +1 -1
  338. package/dist/learning/dream/types.d.ts +23 -0
  339. package/dist/learning/pattern-lifecycle.d.ts +16 -0
  340. package/dist/learning/pattern-lifecycle.js +77 -1
  341. package/dist/learning/pattern-store.d.ts +2 -2
  342. package/dist/learning/pattern-store.js +14 -3
  343. package/dist/learning/provenance-tier.d.ts +52 -0
  344. package/dist/learning/provenance-tier.js +64 -0
  345. package/dist/learning/qe-flywheel/corpus-scorer.d.ts +55 -0
  346. package/dist/learning/qe-flywheel/corpus-scorer.js +293 -0
  347. package/dist/learning/qe-flywheel/coupled-anchor.d.ts +91 -0
  348. package/dist/learning/qe-flywheel/coupled-anchor.js +181 -0
  349. package/dist/learning/qe-flywheel/generation.d.ts +121 -0
  350. package/dist/learning/qe-flywheel/generation.js +167 -0
  351. package/dist/learning/qe-flywheel/policy.d.ts +37 -0
  352. package/dist/learning/qe-flywheel/policy.js +66 -0
  353. package/dist/learning/qe-flywheel/receipt-store.d.ts +31 -0
  354. package/dist/learning/qe-flywheel/receipt-store.js +89 -0
  355. package/dist/learning/qe-flywheel/receipt.d.ts +62 -0
  356. package/dist/learning/qe-flywheel/receipt.js +97 -0
  357. package/dist/learning/qe-reasoning-bank.js +34 -31
  358. package/dist/learning/routing-topology-gate.d.ts +12 -2
  359. package/dist/learning/routing-topology-gate.js +15 -3
  360. package/dist/learning/rvf-pattern-store.d.ts +1 -1
  361. package/dist/learning/rvf-pattern-store.js +21 -8
  362. package/dist/learning/sqlite-persistence.js +12 -9
  363. package/dist/mcp/bundle.js +540 -460
  364. package/dist/mcp/qe-tool-bridge.js +7 -2
  365. package/dist/mcp/tools/base.d.ts +29 -0
  366. package/dist/mcp/tools/base.js +25 -0
  367. package/dist/mcp/tools/coverage-analysis/index.js +6 -4
  368. package/dist/mcp/tools/learning-optimization/dream.d.ts +4 -13
  369. package/dist/mcp/tools/learning-optimization/dream.js +10 -96
  370. package/dist/mcp/tools/planning/goap-execute.d.ts +13 -1
  371. package/dist/mcp/tools/planning/goap-execute.js +33 -18
  372. package/dist/mcp/tools/quality-assessment/gate.d.ts +38 -0
  373. package/dist/mcp/tools/quality-assessment/gate.js +86 -0
  374. package/dist/mcp/tools/registry.d.ts +1 -0
  375. package/dist/mcp/tools/registry.js +10 -2
  376. package/dist/persistence/rvf-migration-coordinator.js +2 -1
  377. package/dist/planning/actions/qe-action-library.js +124 -1
  378. package/dist/planning/goap-planner.d.ts +14 -2
  379. package/dist/planning/goap-planner.js +51 -9
  380. package/dist/planning/index.d.ts +1 -1
  381. package/dist/planning/plan-executor.d.ts +84 -4
  382. package/dist/planning/plan-executor.js +221 -56
  383. package/dist/planning/types.d.ts +27 -0
  384. package/dist/shared/events/domain-events.d.ts +2 -0
  385. package/dist/shared/safe-db.js +23 -4
  386. package/dist/validation/anchor-set.d.ts +74 -0
  387. package/dist/validation/anchor-set.js +78 -0
  388. package/dist/validation/frontier-judge.d.ts +99 -0
  389. package/dist/validation/frontier-judge.js +234 -0
  390. package/dist/validation/gate-reexecute.d.ts +165 -0
  391. package/dist/validation/gate-reexecute.js +255 -0
  392. package/dist/validation/quality-gate-runner.d.ts +49 -0
  393. package/dist/validation/quality-gate-runner.js +62 -0
  394. package/dist/validation/quality-verdict.d.ts +94 -0
  395. package/dist/validation/quality-verdict.js +120 -0
  396. package/dist/workers/workers/learning-consolidation.js +21 -1
  397. package/package.json +1 -1
  398. package/dist/cli/chunks/adapter-2HMUXHWY.js +0 -2
  399. package/dist/cli/chunks/aqe-learning-engine-M2NKRVRE.js +0 -2
  400. package/dist/cli/chunks/audit-EPB7ETMT.js +0 -3
  401. package/dist/cli/chunks/base-CCHC2DAC.js +0 -2
  402. package/dist/cli/chunks/brain-handler-FBMYEERK.js +0 -89
  403. package/dist/cli/chunks/browser-workflow-4DGHFYY3.js +0 -2
  404. package/dist/cli/chunks/chunk-37ZDGJ3H.js +0 -2
  405. package/dist/cli/chunks/chunk-5AQ7FXYG.js +0 -27
  406. package/dist/cli/chunks/chunk-KYTFIP6R.js +0 -2
  407. package/dist/cli/chunks/chunk-MYMIEQSZ.js +0 -65
  408. package/dist/cli/chunks/chunk-RCPD6F4R.js +0 -2
  409. package/dist/cli/chunks/chunk-TCWR6TDN.js +0 -2
  410. package/dist/cli/chunks/chunk-UQ72K44T.js +0 -149
  411. package/dist/cli/chunks/chunk-XXRTWG7O.js +0 -2
  412. package/dist/cli/chunks/chunk-ZSA6V5FH.js +0 -2
  413. package/dist/cli/chunks/client-2OVEDWGU.js +0 -2
  414. package/dist/cli/chunks/core-handlers-UXRRYP52.js +0 -2
  415. package/dist/cli/chunks/cross-domain-router-PV3VQVLO.js +0 -2
  416. package/dist/cli/chunks/daemon-ESUEM6VB.js +0 -10
  417. package/dist/cli/chunks/domain-transfer-TQYO3SVG.js +0 -2
  418. package/dist/cli/chunks/dream-UFUXVJQC.js +0 -2
  419. package/dist/cli/chunks/heartbeat-scheduler-MBG3SARO.js +0 -2
  420. package/dist/cli/chunks/hnsw-adapter-5HXA3QB3.js +0 -2
  421. package/dist/cli/chunks/hnsw-index-PZRQWBRG.js +0 -2
  422. package/dist/cli/chunks/hybrid-router-NQRIE2GG.js +0 -2
  423. package/dist/cli/chunks/impact-analyzer-46347ZDV.js +0 -2
  424. package/dist/cli/chunks/init-wizard-CJYP4WKO.js +0 -2
  425. package/dist/cli/chunks/kernel-22KQZ56U.js +0 -2
  426. package/dist/cli/chunks/knowledge-graph-KM3JDBGR.js +0 -2
  427. package/dist/cli/chunks/llm-router-service-IFO6GRRO.js +0 -2
  428. package/dist/cli/chunks/load-test-TTKCYAPB.js +0 -2
  429. package/dist/cli/chunks/memory-backend-ELHCX2ZT.js +0 -2
  430. package/dist/cli/chunks/memory-handlers-3SKYQZTL.js +0 -2
  431. package/dist/cli/chunks/pattern-null-store-TMXAYD43.js +0 -2
  432. package/dist/cli/chunks/protocol-executor-BPLR5EJC.js +0 -2
  433. package/dist/cli/chunks/provider-manager-4MMD5QKL.js +0 -2
  434. package/dist/cli/chunks/qe-reasoning-bank-P7KNT3WZ.js +0 -2
  435. package/dist/cli/chunks/queen-coordinator-NBZZ4MGC.js +0 -2
  436. package/dist/cli/chunks/router-2RXR6J2Q.js +0 -2
  437. package/dist/cli/chunks/routing-feedback-AVAA76TK.js +0 -2
  438. package/dist/cli/chunks/rvf-native-adapter-X2YDJA55.js +0 -2
  439. package/dist/cli/chunks/safe-db-4PRU65BK.js +0 -2
  440. package/dist/cli/chunks/schedule-2AST5CHW.js +0 -2
  441. package/dist/cli/chunks/scheduler-SW6II7OU.js +0 -2
  442. package/dist/cli/chunks/sqlite-persistence-OB5NEGAK.js +0 -2
  443. package/dist/cli/chunks/status-handler-HFPWSCBY.js +0 -45
  444. package/dist/cli/chunks/unified-memory-X7OJYGSD.js +0 -2
  445. package/dist/cli/chunks/unified-memory-hnsw-O6HOD5YL.js +0 -2
  446. package/dist/cli/chunks/unified-persistence-C332CER2.js +0 -2
  447. package/dist/cli/chunks/visual-security-MPUG5HPI.js +0 -2
  448. package/dist/cli/chunks/witness-chain-Q4BZHPDF.js +0 -2
  449. package/dist/cli/chunks/workflow-orchestrator-4NDWECYK.js +0 -2
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{b as A,c as D,d as $,e as E}from"./chunk-5Z4FBCBK.js";import{a as v,b as H}from"./chunk-MWFJC5HR.js";import{a as P,b as F,c as x,d as _,e as U,g as w}from"./chunk-37ZDGJ3H.js";import{a as k}from"./chunk-JNQN5DNS.js";import{b as B,c as G}from"./chunk-PEIQDQXN.js";import{i as O}from"./chunk-BMQDELPA.js";var h={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"}},Y={security:h.heavyweight,"test-generation":h.standard,"code-analysis":h.standard,learning:h.standard,performance:{...h.lightweight,costSensitivity:"high"},coordination:h.lightweight,general:{...h.lightweight,requiresJsonMode:!1,latencySensitivity:"medium"},documentation:{...h.minimal,minContextSize:16e3},simple:h.minimal};var f=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}},q=[{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 V}from"crypto";var C=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()}-${V().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,s={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(s),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),s=r.map(g=>g.decisionTimeMs),c=r.length,l=this.countByMode(r),d=r.filter(g=>g.wasFallback).length,p=r.filter(g=>g.ruleId).length;return{byProvider:Object.fromEntries(n),byAgentType:a,totalDecisions:c,decisionsByMode:l,avgDecisionTimeMs:this.average(s),p95DecisionTimeMs:this.percentile(s,95),p99DecisionTimeMs:this.percentile(s,99),fallbackRate:c>0?d/c:0,ruleMatchRate:c>0?p/c:0,estimatedCostSavings:this.calculateCostSavings(r),ruleStats:{totalEvaluated:r.reduce((g,b)=>g+1,0),matched:p,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(s=>s.provider===e),r=this.providerCalls.filter(s=>s.provider===e),i=r.map(s=>s.latencyMs),o=t.map(s=>s.decisionTimeMs),n=r.filter(s=>s.success),a=r.filter(s=>!s.success);return{provider:e,selectionCount:t.length,ruleMatchCount:t.filter(s=>s.ruleId).length,fallbackCount:t.filter(s=>s.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((s,c)=>s+(c.cost??0),0),totalTokens:r.reduce((s,c)=>s+c.totalTokens,0),totalInputTokens:r.reduce((s,c)=>s+c.inputTokens,0),totalOutputTokens:r.reduce((s,c)=>s+c.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(c=>c.agentType===e),r=this.providerCalls.filter(c=>c.agentType===e),i=new Map,o=new Map;for(let c of t)i.set(c.provider,(i.get(c.provider)??0)+1),o.set(c.model,(o.get(c.model)??0)+1);let n=r.map(c=>c.latencyMs),a=t.filter(c=>c.wasFallback).length,s=t.filter(c=>c.success).length;return{agentType:e,totalDecisions:t.length,providerDistribution:i,modelDistribution:o,avgLatencyMs:this.average(n),totalCost:r.reduce((c,l)=>c+(l.cost??0),0),totalTokens:r.reduce((c,l)=>c+l.totalTokens,0),fallbackRate:t.length>0?a/t.length:0,successRate:t.length>0?s/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 v){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),s=o.map(l=>l.decisionTimeMs),c=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(s),successRate:n.length>0?c.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 S(m){return new C(m)}var R=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 v){let n=r.filter(c=>c.provider===o);if(n.length===0)continue;let a=n.reduce((c,l)=>c+l.totalCost,0),s=n.reduce((c,l)=>c+l.inputTokens+l.outputTokens,0);i.set(o,{totalCost:a,totalTokens:s,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:s>0?a/s: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 s=r.filter(d=>d.agentType===a),c=s.reduce((d,p)=>d+p.totalCost,0),l=s.reduce((d,p)=>d+p.inputTokens+p.outputTokens,0);o.set(a,{totalCost:c,totalTokens:l,totalRequests:s.length,avgCostPerRequest:s.length>0?c/s.length:0,avgCostPerToken:l>0?c/l:0})}let n=r.filter(a=>!a.agentType);if(n.length>0){let a=n.reduce((c,l)=>c+l.totalCost,0),s=n.reduce((c,l)=>c+l.inputTokens+l.outputTokens,0);o.set("unknown",{totalCost:a,totalTokens:s,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:s>0?a/s: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),s=a.reduce((l,d)=>l+d.totalCost,0),c=a.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0);o.set(n,{totalCost:s,totalTokens:c,totalRequests:a.length,avgCostPerRequest:a.length>0?s/a.length:0,avgCostPerToken:c>0?s/c: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),s=new Date(a.getTime()-i),c=this.records.filter(l=>l.timestamp>=s&&l.timestamp<a);r.push({timestamp:a,cost:c.reduce((l,d)=>l+d.totalCost,0),tokens:c.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0),requests:c.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)k[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=k[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 L(m){return new R(m)}G();var T=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}}},M=class{config;providerManager;ruleEngine;decisionCache;metrics;routerMetrics;costMetrics;initialized=!1;constructor(e,t){this.providerManager=e,this.config={...H,...t};let r=this.config.rules.length>0?this.config.rules:q;this.ruleEngine=new f(r),this.decisionCache=new T(100,this.config.decisionCacheTtlMs),this.metrics=new I,this.routerMetrics=S(),this.costMetrics=L()}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 T(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=O(),r=await this.selectProvider(e),i=e.agentType??"";if($(i)&&(D(r.model)||D(r.providerModelId))){let n=r.model,a=r.providerModelId;r.model=E(i,r.model,A),r.providerModelId=E(i,r.providerModelId,A),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,s=this.providerManager.getProvider(a);if(s){let c=this.createDecision(s,a,o.action.model,"rule-match",o);return c.metadata.rulesEvaluated=n,c}}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 s=this.providerManager.getProvider(a);if(!s)continue;let{input:c,output:l}=s.getCostPerToken(),d=this.estimateCostValue(e,c,l);n.push({provider:a,model:s.getConfig().model,reason:`Estimated cost: $${d.toFixed(6)}`,estimatedCost:d,excluded:!1}),d<r&&(r=d,i=a,o=s)}if(o){let a=o.getConfig(),s=this.createDecision(o,i,a.model,"cost-optimization");return s.metadata.estimatedCost=this.createCostEstimate(e,o),s.metadata.alternativesConsidered=n,s}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 s of t){let c=this.providerManager.getProvider(s);if(!c)continue;let d=r[s]?.avgLatencyMs??1/0;a.push({provider:s,model:c.getConfig().model,reason:`Avg latency: ${d}ms`,estimatedLatencyMs:d,excluded:!1}),d<i&&(i=d,o=s,n=c)}if(n){let s=n.getConfig(),c=this.createDecision(n,o,s.model,"performance-optimization");return c.metadata.estimatedLatencyMs=i,c.metadata.alternativesConsidered=a,c}return this.createFallbackDecision(e,"performance-optimized")}async executeWithFallback(e,t,r){let{fallbackChain:i,fallbackBehavior:o}=this.config,n,a=0,s=[{provider:t.providerType,model:t.providerModelId}],c=this.config.defaultProvider;c&&c!==t.providerType&&s.push({provider:c,model:this.config.defaultModel});for(let d of i.entries)if(d.enabled&&d.provider!==t.providerType)for(let p of d.models)s.push({provider:d.provider,model:p});let l=s;if(e.requiresTools){let d=s.filter(p=>w(p.model));if(d.length>0&&d.length<s.length){let p=s.filter(g=>!w(g.model)).map(g=>`${g.provider}:${g.model}`);console.warn(`[llm-router] requiresTools: skipping tool-less model(s) ${p.join(", ")}`),l=d}}for(let{provider:d,model:p}of l){if(a>=o.maxAttempts)break;let g=this.providerManager.getProvider(d);if(!g)continue;a++;let b=Date.now();try{let u=await g.generate(e.messages,{model:p,temperature:e.temperature,maxTokens:e.maxTokens,systemPrompt:e.systemPrompt,timeoutMs:e.timeoutMs,skipCache:e.skipCache,metadata:e.metadata}),y=Date.now()-b;return this.metrics.recordSuccess(d),this.routerMetrics.recordRoutingDecision(t,y,{agentType:e.agentType,success:!0,tokenUsage:u.usage,cost:u.cost}),this.routerMetrics.recordProviderCall(d,p,y,u.usage.totalTokens,{inputTokens:u.usage.promptTokens,outputTokens:u.usage.completionTokens,success:!0,cost:u.cost.totalCost,agentType:e.agentType}),this.costMetrics.recordCostFromInfo(d,p,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=B(u);let y=Date.now()-b;if(this.metrics.recordFailure(d),this.routerMetrics.recordProviderCall(d,p,y,0,{success:!1,agentType:e.agentType}),a<s.length){let z=s[a];z&&this.routerMetrics.recordFallback(d,z.provider,n.message,e.agentType)}!(F(u)&&!u.retryable)&&a<o.maxAttempts&&await this.delay(o.delayMs)}}throw P(`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=_(e),n=x(o,i);return{canonicalModel:o,providerModelId:n}}catch{try{if(U(e)){let n=x(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 P(`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 s of e.messages)o+=Math.ceil(s.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()}},I=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 Qe(m,e){return new M(m,e)}function Xe(m){return new M(m,{mode:"rule-based",rules:q,defaultProvider:"claude",defaultModel:"claude-sonnet-4-6",enableMetrics:!0,cacheDecisions:!0})}export{M as a,Qe as b,Xe as c};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a as t,q as r}from"./chunk-YUHM72VQ.js";import{c as l}from"./chunk-Y4AXOHW4.js";function m(s,e){let o=e?.readonly??!1,n=e?.fileMustExist??!1,i=e?.busyTimeout??5e3,b=e?.walMode??!o,a=new t(s,{readonly:o,fileMustExist:n});return a.pragma(`busy_timeout = ${i}`),b&&a.pragma("journal_mode = WAL"),a}var u=l(()=>{r()});export{m as a,u as b};
@@ -1,149 +0,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.11.4");process.exit(0)}
2
- import{a as _}from"./chunk-4JFH3MVA.js";import{e as E}from"./chunk-IF3HPQNV.js";import{a as b}from"./chunk-XXRTWG7O.js";import{c as h}from"./chunk-6GYGAW53.js";import{b as p,d as S}from"./chunk-VJGHRWMH.js";import{S as A,j as g}from"./chunk-7ADD2ZQL.js";S();b();A();var d=h.create("pattern-lifecycle"),D={promotionRewardThreshold:.7,promotionMinOccurrences:E,promotionMinSuccessRate:.7,deprecationFailureThreshold:3,staleDaysThreshold:30,confidenceDecayRate:.01,minActiveConfidence:.3,maxAgeForActivePatterns:90,promotionActivityWindowDays:30,asymmetricLearning:{}},y=5,L=.9,R=2;function v(u,e){return e<y||!Number.isFinite(u)?0:Math.min(Math.max(u,0),1)}var f=class{constructor(e,t={}){this.db=e;this.config={...D,...t},this.asymmetricEngine=new _(this.config.asymmetricLearning),this.ensureSchema()}db;config;asymmetricEngine;_witnessChain=null;set witnessChain(e){this._witnessChain=e}_compressionService=null;set compressionService(e){this._compressionService=e}ensureSchema(){try{this.db.prepare(`
3
- SELECT deprecated_at FROM qe_patterns LIMIT 1
4
- `).get()}catch(e){d.debug("Adding missing deprecated_at column",{error:e instanceof Error?e.message:String(e)}),this.db.exec(`
5
- ALTER TABLE qe_patterns ADD COLUMN deprecated_at TEXT DEFAULT NULL
6
- `),console.log("[PatternLifecycle] Added deprecated_at column to qe_patterns")}try{this.db.prepare(`
7
- SELECT consecutive_failures FROM qe_patterns LIMIT 1
8
- `).get()}catch(e){d.debug("Adding missing consecutive_failures column",{error:e instanceof Error?e.message:String(e)}),this.db.exec(`
9
- ALTER TABLE qe_patterns ADD COLUMN consecutive_failures INTEGER DEFAULT 0
10
- `),console.log("[PatternLifecycle] Added consecutive_failures column to qe_patterns")}try{this.db.prepare(`
11
- SELECT promotion_date FROM qe_patterns LIMIT 1
12
- `).get()}catch(e){d.debug("Adding missing promotion_date column",{error:e instanceof Error?e.message:String(e)}),this.db.exec(`
13
- ALTER TABLE qe_patterns ADD COLUMN promotion_date TEXT DEFAULT NULL
14
- `),console.log("[PatternLifecycle] Added promotion_date column to qe_patterns")}}getRecentExperiences(e={}){let t=e.minReward??this.config.promotionRewardThreshold,n=e.limit??100,r=e.sinceDays??7;if(!this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='captured_experiences'").get())return d.debug("captured_experiences table not found"),[];let a=new Date(Date.now()-r*864e5).toISOString().replace("T"," ").slice(0,19);return this.db.prepare(`
15
- SELECT
16
- domain as task_type,
17
- COUNT(*) as count,
18
- AVG(quality) as avg_reward,
19
- MAX(quality) as max_reward,
20
- MIN(quality) as min_reward,
21
- SUM(CASE WHEN quality >= ? THEN 1 ELSE 0 END) as success_count,
22
- GROUP_CONCAT(DISTINCT agent) as actions,
23
- MAX(started_at) as latest_at
24
- FROM captured_experiences
25
- WHERE started_at >= ?
26
- AND quality >= ?
27
- AND agent != 'cli-hook'
28
- GROUP BY domain
29
- HAVING COUNT(*) >= ?
30
- ORDER BY avg_reward DESC
31
- LIMIT ?
32
- `).all(t,a,t*.5,this.config.promotionMinOccurrences,n).map(i=>({taskType:i.task_type,domain:this.taskTypeToQEDomain(i.task_type),count:i.count,avgReward:i.avg_reward,maxReward:i.max_reward,minReward:i.min_reward,actions:i.actions?i.actions.split(",").filter(Boolean):[],successCount:i.success_count,latestAt:new Date(i.latest_at)}))}taskTypeToQEDomain(e){let t={generate:"test-generation","test-generation":"test-generation",test:"test-generation",analyze:"coverage-analysis",coverage:"coverage-analysis","coverage-analysis":"coverage-analysis",run:"test-execution",execute:"test-execution","test-execution":"test-execution",report:"quality-assessment",quality:"quality-assessment",assessment:"quality-assessment",security:"security-compliance",sast:"security-compliance",audit:"security-compliance",defect:"defect-intelligence",predict:"defect-intelligence",bug:"defect-intelligence",requirements:"requirements-validation",validation:"requirements-validation",code:"code-intelligence",complexity:"code-intelligence",contract:"contract-testing",api:"contract-testing",visual:"visual-accessibility",a11y:"visual-accessibility",accessibility:"visual-accessibility",chaos:"chaos-resilience",resilience:"chaos-resilience",flaky:"chaos-resilience",learning:"learning-optimization",optimize:"learning-optimization"},n=e.toLowerCase();for(let[r,s]of Object.entries(t))if(n.includes(r))return s;return null}taskTypeToPatternType(e){let t={generate:"test-template",test:"test-template",coverage:"coverage-strategy",analyze:"coverage-strategy",mock:"mock-pattern",stub:"mock-pattern",assert:"assertion-pattern",expect:"assertion-pattern",security:"assertion-pattern",contract:"api-contract",api:"api-contract",visual:"visual-baseline",screenshot:"visual-baseline",a11y:"a11y-check",accessibility:"a11y-check",perf:"perf-benchmark",load:"perf-benchmark",stress:"perf-benchmark",flaky:"flaky-fix",retry:"flaky-fix",refactor:"refactor-safe",error:"error-handling",exception:"error-handling"},n=e.toLowerCase();for(let[r,s]of Object.entries(t))if(n.includes(r))return s;return"test-template"}findPatternCandidates(e){let t=[];for(let n of e){let r=n.avgReward>=this.config.promotionRewardThreshold,s=n.count>=this.config.promotionMinOccurrences,a=n.successCount/n.count,c=a>=this.config.promotionMinSuccessRate;if(r&&s&&c){let i=n.domain||"code-intelligence",o=this.taskTypeToPatternType(n.taskType);if(this.findExistingPattern(n.taskType,i))continue;t.push({name:`${n.taskType}-success-pattern`,domain:i,patternType:o,confidence:Math.min(.95,n.avgReward*.9),sourceExperiences:n.count,avgReward:n.avgReward,successRate:a,actions:n.actions.slice(0,5),templateContent:this.generateTemplateContent(n)})}}return t}findExistingPattern(e,t){let n=this.db.prepare(`
33
- SELECT * FROM qe_patterns
34
- WHERE name LIKE ? AND qe_domain = ? AND deprecated_at IS NULL
35
- LIMIT 1
36
- `).get(`%${e}%`,t);return n?this.rowToPattern(n):null}generateTemplateContent(e){let t=e.actions.map((n,r)=>`${r+1}. ${n}`).join(`
37
- `);return`Task Type: ${e.taskType}
38
- Domain: ${e.domain||"general"}
39
- Average Reward: ${e.avgReward.toFixed(3)}
40
- Success Rate: ${(e.successCount/e.count*100).toFixed(1)}%
41
-
42
- Typical Actions:
43
- ${t||"N/A"}
44
-
45
- Pattern extracted from ${e.count} successful experiences.`}checkPromotion(e){let t=this.getPattern(e);if(!t)return{shouldPromote:!1,meetsRewardThreshold:!1,meetsOccurrenceThreshold:!1,meetsSuccessRateThreshold:!1,meetsActivityWindow:!1,currentReward:0,currentOccurrences:0,currentSuccessRate:0};let n=t.qualityScore,r=n>=this.config.promotionRewardThreshold,s=t.usageCount>=this.config.promotionMinOccurrences,a=t.successRate>=this.config.promotionMinSuccessRate,c=this.config.promotionActivityWindowDays*24*60*60*1e3,i=t.lastUsedAt?.getTime()??t.createdAt.getTime(),o=Date.now()-i<c;return{shouldPromote:t.tier==="short-term"&&r&&s&&a&&o,meetsRewardThreshold:r,meetsOccurrenceThreshold:s,meetsSuccessRateThreshold:a,meetsActivityWindow:o,currentReward:n,currentOccurrences:t.usageCount,currentSuccessRate:t.successRate}}promotePattern(e){return this.checkPromotion(e).shouldPromote?(this.db.prepare(`
46
- UPDATE qe_patterns
47
- SET tier = 'long-term',
48
- promotion_date = datetime('now'),
49
- confidence = MIN(1.0, confidence + 0.1),
50
- updated_at = datetime('now')
51
- WHERE id = ?
52
- `).run(e),console.log(`[PatternLifecycle] Promoted pattern ${e} to long-term`),!0):!1}promoteEligiblePatterns(){let e=this.db.prepare(`
53
- SELECT id FROM qe_patterns
54
- WHERE tier = 'short-term' AND deprecated_at IS NULL
55
- `).all(),t=0;for(let{id:n}of e)this.promotePattern(n)&&t++;return{promoted:t,checked:e.length}}runPromotionSweep(){return this.promoteEligiblePatterns()}checkDeprecation(e){let t=this.getPattern(e);if(!t)return{shouldDeprecate:!1,reason:null};if(t.deprecated_at)return{shouldDeprecate:!1,reason:null};let n=t.consecutive_failures||0;if(n>=this.config.deprecationFailureThreshold)return{shouldDeprecate:!0,reason:"failures",consecutiveFailures:n};let r=t.lastUsedAt instanceof Date?t.lastUsedAt.getTime():new Date(t.lastUsedAt).getTime(),s=(Date.now()-r)/(1e3*60*60*24),a=v(t.successRate,t.usageCount),c=this.config.staleDaysThreshold*(1+a*R);if(s>=c)return{shouldDeprecate:!0,reason:"stale",daysSinceLastUse:s};if(t.confidence<this.config.minActiveConfidence)return{shouldDeprecate:!0,reason:"low_confidence",currentConfidence:t.confidence};let i=t.createdAt instanceof Date?t.createdAt.getTime():new Date(t.createdAt).getTime(),o=(Date.now()-i)/(1e3*60*60*24);return o>=this.config.maxAgeForActivePatterns&&t.usageCount<5?{shouldDeprecate:!0,reason:"age",ageInDays:o}:{shouldDeprecate:!1,reason:null}}deprecatePattern(e,t){let n=this.checkDeprecation(e);if(!n.shouldDeprecate&&!t)return!1;let r=t||n.reason||"manual";this.db.prepare(`
56
- UPDATE qe_patterns
57
- SET deprecated_at = datetime('now'),
58
- updated_at = datetime('now')
59
- WHERE id = ?
60
- `).run(e);let s=this.getPattern(e);if(s){let a={deprecation_reason:r,deprecated_at:new Date().toISOString(),final_confidence:s.confidence,final_success_rate:s.successRate,total_usage:s.usageCount};this.db.prepare(`
61
- UPDATE qe_patterns
62
- SET context_json = json_patch(COALESCE(context_json, '{}'), ?)
63
- WHERE id = ?
64
- `).run(JSON.stringify({deprecation_metadata:a}),e)}return console.log(`[PatternLifecycle] Deprecated pattern ${e}: ${r}`),!0}deprecateStalePatterns(){let e=this.db.prepare(`
65
- SELECT id FROM qe_patterns
66
- WHERE deprecated_at IS NULL
67
- `).all(),t=0;for(let{id:n}of e){let r=this.checkDeprecation(n);r.shouldDeprecate&&(this.deprecatePattern(n,r.reason||void 0),t++)}return{deprecated:t,checked:e.length}}applyConfidenceDecay(e=1){let t=this.config.confidenceDecayRate*e,n=Date.now()-e*24*60*60*1e3,r=this.db.prepare(`
68
- UPDATE qe_patterns
69
- SET confidence = MAX(?, confidence * (1 - ? * (1 - ? *
70
- (CASE WHEN usage_count >= ?
71
- THEN MIN(MAX(COALESCE(success_rate, 0.0), 0.0), 1.0)
72
- ELSE 0.0 END)))),
73
- updated_at = datetime('now')
74
- WHERE deprecated_at IS NULL
75
- AND (last_used_at IS NULL OR datetime(last_used_at) < datetime(?, 'unixepoch'))
76
- `).run(this.config.minActiveConfidence,t,L,y,n/1e3);return{updated:r.changes,decayed:r.changes}}recordUsage(e,t){t?this.db.prepare(`
77
- UPDATE qe_patterns
78
- SET usage_count = usage_count + 1,
79
- successful_uses = successful_uses + 1,
80
- consecutive_failures = 0,
81
- confidence = MIN(1.0, confidence + 0.02),
82
- success_rate = CAST(successful_uses + 1 AS REAL) / CAST(usage_count + 1 AS REAL),
83
- last_used_at = datetime('now'),
84
- updated_at = datetime('now')
85
- WHERE id = ?
86
- `).run(e):this.db.prepare(`
87
- UPDATE qe_patterns
88
- SET usage_count = usage_count + 1,
89
- consecutive_failures = consecutive_failures + 1,
90
- confidence = MAX(0.1, confidence - 0.05),
91
- success_rate = CAST(successful_uses AS REAL) / CAST(usage_count + 1 AS REAL),
92
- last_used_at = datetime('now'),
93
- updated_at = datetime('now')
94
- WHERE id = ?
95
- `).run(e),this.db.prepare(`
96
- UPDATE qe_patterns
97
- SET quality_score = confidence * 0.3 + (MIN(usage_count, 100) / 100.0) * 0.2 + success_rate * 0.5
98
- WHERE id = ?
99
- `).run(e)}recordAsymmetricOutcome(e,t,n){let r=this.getPattern(e);if(!r)return;let s=r.confidence,a=this.asymmetricEngine.computeConfidenceUpdate(s,t?"success":"failure",n);this.db.prepare(`
100
- UPDATE qe_patterns
101
- SET confidence = ?,
102
- usage_count = usage_count + 1,
103
- successful_uses = CASE WHEN ? THEN successful_uses + 1 ELSE successful_uses END,
104
- consecutive_failures = CASE WHEN ? THEN 0 ELSE consecutive_failures + 1 END,
105
- success_rate = CAST(CASE WHEN ? THEN successful_uses + 1 ELSE successful_uses END AS REAL) / CAST(usage_count + 1 AS REAL),
106
- last_used_at = datetime('now'),
107
- updated_at = datetime('now')
108
- WHERE id = ?
109
- `).run(a,t?1:0,t?1:0,t?1:0,e),this.asymmetricEngine.shouldQuarantine(a,n).shouldQuarantine&&this.quarantinePattern(e)}quarantinePattern(e){if(this.db.prepare(`
110
- UPDATE qe_patterns
111
- SET deprecated_at = datetime('now'),
112
- updated_at = datetime('now')
113
- WHERE id = ? AND deprecated_at IS NULL
114
- `).run(e).changes>0){console.log(`[PatternLifecycle] Quarantined pattern ${e} (asymmetric confidence drop)`);try{this._witnessChain?.append("PATTERN_QUARANTINE",{patternId:e},"pattern-lifecycle")}catch{}return!0}return!1}checkRehabilitation(e,t){return this.asymmetricEngine.checkRehabilitation(t).canRehabilitate}rehabilitatePattern(e){return this.db.prepare(`
115
- UPDATE qe_patterns
116
- SET deprecated_at = NULL,
117
- consecutive_failures = 0,
118
- confidence = 0.5,
119
- updated_at = datetime('now')
120
- WHERE id = ?
121
- `).run(e).changes>0?(console.log(`[PatternLifecycle] Rehabilitated pattern ${e} (10+ consecutive successes)`),!0):!1}getAsymmetricEngine(){return this.asymmetricEngine}compressPatternEmbedding(e){if(!g()||!this._compressionService)return null;let t=this.getPattern(e);if(!t||!t.embedding||t.embedding.length===0)return null;let n=t.lastUsedAt??t.createdAt,r=this._compressionService.classifyTier(n),s=new Float32Array(t.embedding),a=this._compressionService.compress(s,r);return d.debug("Compressed pattern embedding",{patternId:e,tier:r,ratio:(a.originalByteSize/a.compressedByteSize).toFixed(1)}),a}decompressPatternEmbedding(e){return this._compressionService?this._compressionService.decompress(e):null}compressAllPatternEmbeddings(){if(!g()||!this._compressionService)return 0;let e=this.db.prepare(`
122
- SELECT id FROM qe_patterns
123
- WHERE deprecated_at IS NULL
124
- `).all(),t=0;for(let{id:n}of e)this.compressPatternEmbedding(n)&&t++;return d.info("Bulk pattern embedding compression complete",{total:e.length,compressed:t}),t}getStats(){let e=this.db.prepare(`
125
- SELECT
126
- COUNT(*) as total,
127
- SUM(CASE WHEN deprecated_at IS NULL THEN 1 ELSE 0 END) as active,
128
- SUM(CASE WHEN deprecated_at IS NOT NULL THEN 1 ELSE 0 END) as deprecated,
129
- SUM(CASE WHEN tier = 'long-term' AND deprecated_at IS NULL THEN 1 ELSE 0 END) as promoted,
130
- SUM(CASE WHEN tier = 'short-term' AND deprecated_at IS NULL THEN 1 ELSE 0 END) as short_term,
131
- SUM(CASE WHEN tier = 'long-term' THEN 1 ELSE 0 END) as long_term,
132
- AVG(CASE WHEN deprecated_at IS NULL THEN confidence ELSE NULL END) as avg_confidence,
133
- AVG(CASE WHEN deprecated_at IS NULL THEN success_rate ELSE NULL END) as avg_success_rate
134
- FROM qe_patterns
135
- `).get(),t=this.db.prepare(`
136
- SELECT COUNT(*) as count
137
- FROM qe_patterns
138
- WHERE deprecated_at IS NULL
139
- AND (
140
- consecutive_failures >= ?
141
- OR confidence < ?
142
- OR (julianday('now') - julianday(COALESCE(last_used_at, created_at))) >= ?
143
- )
144
- `).get(this.config.deprecationFailureThreshold-1,this.config.minActiveConfidence+.1,this.config.staleDaysThreshold-7);return{totalPatterns:e.total||0,activePatterns:e.active||0,deprecatedPatterns:e.deprecated||0,promotedPatterns:e.promoted||0,shortTermPatterns:e.short_term||0,longTermPatterns:e.long_term||0,avgConfidence:e.avg_confidence||0,avgSuccessRate:e.avg_success_rate||0,patternsNearDeprecation:t.count||0}}getPattern(e){let t=this.db.prepare(`
145
- SELECT * FROM qe_patterns WHERE id = ?
146
- `).get(e);return t?this.rowToPattern(t):null}rowToPattern(e){return{id:e.id,patternType:e.pattern_type,qeDomain:e.qe_domain,domain:e.domain,name:e.name,description:e.description||"",confidence:e.confidence,usageCount:e.usage_count,successRate:e.success_rate,qualityScore:e.quality_score,tier:e.tier,template:p(e.template_json||"{}"),context:p(e.context_json||"{}"),createdAt:new Date(e.created_at),lastUsedAt:e.last_used_at?new Date(e.last_used_at):new Date(e.created_at),successfulUses:e.successful_uses,reusable:e.reusable===1,reuseCount:e.reuse_count||0,averageTokenSavings:e.average_token_savings||0,deprecated_at:e.deprecated_at??null,consecutive_failures:e.consecutive_failures??0}}};function k(u,e){return new f(u,e)}import*as l from"fs";import*as m from"path";var C={"pattern-learned":"\u{1F9E0}","pattern-promoted":"\u2B06\uFE0F","pattern-quarantined":"\u{1F512}","experience-captured":"\u{1F4F8}","search-performed":"\u{1F50D}","reward-assigned":"\u{1F3AF}"},T=class{config;buffer=[];flushTimer=null;constructor(e){this.config={logDir:e?.logDir??m.join(process.cwd(),".agentic-qe","logs"),enabled:e?.enabled??!0,maxEntriesPerDay:e?.maxEntriesPerDay??500}}log(e){this.config.enabled&&(this.buffer.push(e),this.buffer.length>=10&&this.flush())}flush(){if(this.buffer.length===0)return;let e=new Date().toISOString().split("T")[0],t=m.join(this.config.logDir,`${e}.md`);try{l.mkdirSync(this.config.logDir,{recursive:!0});let n=this.buffer.splice(0,this.buffer.length),r=[];l.existsSync(t)||(r.push(`# AQE Daily Log \u2014 ${e}
147
- `),r.push("| Time | Event | Summary |"),r.push("|------|-------|---------|"));for(let s of n){let a=s.timestamp.toISOString().split("T")[1]?.slice(0,8)??"00:00:00",c=C[s.type]??"\u{1F4DD}",i=s.summary.replace(/\\/g,"\\\\").replace(/\|/g,"\\|").replace(/\n/g," ");r.push(`| ${a} | ${c} ${s.type} | ${i} |`)}l.appendFileSync(t,r.join(`
148
- `)+`
149
- `)}catch(n){console.debug("[DailyLog] Write failed:",n)}}getTodayLogPath(){let e=new Date().toISOString().split("T")[0];return m.join(this.config.logDir,`${e}.md`)}dispose(){this.flush(),this.flushTimer&&(clearInterval(this.flushTimer),this.flushTimer=null)}};export{k as a,T as b};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a as e,b as g,e as r}from"./chunk-6GYGAW53.js";import{c as o}from"./chunk-Y4AXOHW4.js";var L=o(()=>{"use strict";e();g();r()});export{L as a};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a as R}from"./chunk-IQBZBUP5.js";import{m as C}from"./chunk-TPMBFARK.js";import{b as S}from"./chunk-LLUPRGOR.js";import{a as b,c as T}from"./chunk-PEIQDQXN.js";import{i as h}from"./chunk-BMQDELPA.js";import{a as M}from"./chunk-ICCTQ5LO.js";C();T();import*as f from"path";import*as c from"fs";function x(){return process.env.AQE_MEMORY_BACKEND==="memory"}var s=null,d=null,g=null;function O(o){g=o}async function k(){return s||d||(d=(async()=>{if(x()){let r=new M;return await r.initialize(),s=r,r}let o=S(),e=f.join(o,".agentic-qe");c.existsSync(e)||c.mkdirSync(e,{recursive:!0});let t=new R({sqlite:{path:f.join(e,"memory.db"),walMode:!0,poolSize:3,busyTimeout:5e3},enableFallback:!0,defaultNamespace:"mcp-tools"});return await t.initialize(),s=t,t})(),d)}function q(){if(g)try{g()}catch{}s&&(s.dispose().catch(()=>{}),s=null),d=null}async function I(o){return o?.memory?o.memory:k()}var m=null,l=null;function L(){let o=(process.env.AQE_LLM_ROUTER_DISABLED??"").trim().toLowerCase();return o?o!=="false"&&o!=="0"&&o!=="no"&&o!=="off":!1}function E(o){m=o,l=null}async function w(){return L()?null:m||l||(l=(async()=>{let{createLLMRouterService:o}=await import("./llm-router-service-IFO6GRRO.js"),e=await o();return e?(m=e.router,m):null})(),l)}function H(){m=null,l=null}async function N(o){return o?.llmRouter?o.llmRouter:await w()??void 0}var v={info:(o,e)=>console.log(`[MCP-TOOL] ${o}`,e||""),warn:(o,e)=>console.warn(`[MCP-TOOL] \u26A0\uFE0F ${o}`,e||""),error:(o,e)=>console.error(`[MCP-TOOL] \u274C ${o}`,e||"")},P=class{logger=v;currentDataSource="real";setLogger(e){this.logger=e}markAsDemoData(e,t){this.currentDataSource=e.demoMode?"demo":"fallback",this.logger.warn(`${this.config.name} returning ${this.currentDataSource} data`,{reason:t,requestId:e.requestId,demoMode:e.demoMode})}markAsRealData(){this.currentDataSource="real"}isDemoMode(e){return e.demoMode===!0}validate(e){let t=[];if(typeof e!="object"||e===null)return{valid:!1,errors:["Parameters must be an object"]};let r=e,{properties:i,required:n}=this.config.schema;if(n)for(let a of n)a in r||t.push(`Missing required field: ${a}`);for(let[a,u]of Object.entries(r)){let p=i[a];if(!p)continue;let y=this.validateType(a,u,p);y&&t.push(y)}return{valid:t.length===0,errors:t}}validateType(e,t,r){if(t==null)return null;let i=Array.isArray(t)?"array":typeof t;if(r.type==="array"&&!Array.isArray(t))return`${e} must be an array`;if(r.type!=="array"&&i!==r.type)return`${e} must be of type ${r.type}, got ${i}`;if(r.enum&&!r.enum.includes(t))return`${e} must be one of: ${r.enum.join(", ")}`;if(r.type==="number"){let n=t;if(r.minimum!==void 0&&n<r.minimum)return`${e} must be >= ${r.minimum}`;if(r.maximum!==void 0&&n>r.maximum)return`${e} must be <= ${r.maximum}`}if(r.type==="string"){let n=t;if(r.minLength!==void 0&&n.length<r.minLength)return`${e} must be at least ${r.minLength} characters`;if(r.maxLength!==void 0&&n.length>r.maxLength)return`${e} must be at most ${r.maxLength} characters`}return null}async invoke(e,t={}){let r=Date.now(),i=h();this.currentDataSource="real";let n=this.validate(e);if(!n.valid)return{success:!1,error:`Validation failed: ${n.errors.join("; ")}`,metadata:this.createMetadata(r,i)};let a={requestId:i,startTime:r,streaming:t.streaming,onStream:t.onStream,abortSignal:t.abortSignal,demoMode:t.demoMode,memory:t.memory,llmRouter:t.llmRouter};try{let u=await this.execute(e,a);return{...u,metadata:{...u.metadata,...this.createMetadata(r,i)}}}catch(u){return{success:!1,error:b(u),metadata:this.createMetadata(r,i)}}}createMetadata(e,t){return{executionTime:Date.now()-e,timestamp:new Date().toISOString(),requestId:t,domain:this.config.domain,toolName:this.config.name,dataSource:this.currentDataSource}}emitStream(e,t){e.streaming&&e.onStream&&e.onStream(t)}isAborted(e){return e.abortSignal?.aborted??!1}get name(){return this.config.name}get description(){return this.config.description}get domain(){return this.config.domain}getSchema(){return this.config.schema}get timeout(){return this.config.timeout??6e4}get supportsStreaming(){return this.config.streaming??!1}resetInstanceCache(){}};export{x as a,O as b,k as c,q as d,I as e,E as f,w as g,H as h,N as i,v as j,P as k};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{c as a,d as b,e as c}from"./chunk-Q7ORVHJB.js";import"./chunk-O5NEJIHB.js";import"./chunk-PEIQDQXN.js";import"./chunk-Y4AXOHW4.js";c();export{a as VibiumClientImpl,b as VibiumClientProvider};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h,k as i,l as j,m as k,n as l}from"./chunk-JDFPAJGB.js";import"./chunk-ADFKY3X2.js";import"./chunk-VO6YJGB4.js";import"./chunk-EONKMHKO.js";import"./chunk-SFDUT5WM.js";import"./chunk-XHRLBJTM.js";import"./chunk-TCVEKRPI.js";import"./chunk-A4OMK3FO.js";import"./chunk-ZFCVT43J.js";import"./chunk-GOQ4P2PB.js";import"./chunk-UQ72K44T.js";import"./chunk-4JFH3MVA.js";import"./chunk-VQU7DMEY.js";import"./chunk-EZRHSHOQ.js";import"./chunk-FSGMRQFC.js";import"./chunk-B5XUWHKQ.js";import"./chunk-4RHNPRAP.js";import"./chunk-X64BEXUY.js";import"./chunk-RFQBDMAP.js";import"./chunk-KUZMVH6N.js";import"./chunk-U34OZXD6.js";import"./chunk-JCTCM6IR.js";import"./chunk-5P7Q5YNC.js";import"./chunk-P6S6ZVB5.js";import"./chunk-CNF3ZWLM.js";import"./chunk-6W3QHS45.js";import"./chunk-7IKWF2AD.js";import"./chunk-HH6NCBSP.js";import"./chunk-3E7D3A35.js";import"./chunk-TU6YN43Q.js";import"./chunk-MCT4CD5M.js";import"./chunk-NV3TXXOW.js";import"./chunk-3FJZMQJ7.js";import"./chunk-WQZ2WRO4.js";import"./chunk-NFJT7XXR.js";import"./chunk-N2BJN6AO.js";import"./chunk-6JUOH6L4.js";import"./chunk-AYGEWPN4.js";import"./chunk-MALOUGSF.js";import"./chunk-Q7ORVHJB.js";import"./chunk-O5NEJIHB.js";import"./chunk-LKURMUBU.js";import"./chunk-XQ6DW5FV.js";import"./chunk-WMIRAD3J.js";import"./chunk-4BFCLSDN.js";import"./chunk-3SRPFBU7.js";import"./chunk-QEVX4GWF.js";import"./chunk-KYTFIP6R.js";import"./chunk-G3TFNY4T.js";import"./chunk-NBBLPDJX.js";import"./chunk-5VSQAGA2.js";import"./chunk-QMC5MTBV.js";import"./chunk-63QUN3JK.js";import"./chunk-Z2REKBD6.js";import"./chunk-DRMHVY4T.js";import"./chunk-UJMTKXPI.js";import"./chunk-ZKCKOQJI.js";import"./chunk-FRFVN6AA.js";import"./chunk-GRQ36XUH.js";import"./chunk-WNMDWP5A.js";import"./chunk-3SBUL72V.js";import"./chunk-RCPD6F4R.js";import"./chunk-5Z4FBCBK.js";import"./chunk-MWFJC5HR.js";import"./chunk-37ZDGJ3H.js";import"./chunk-JNQN5DNS.js";import"./chunk-ZSA6V5FH.js";import"./chunk-IQBZBUP5.js";import"./chunk-UCYTY4LG.js";import"./chunk-BRLUNIR4.js";import"./chunk-4YT5YN5G.js";import"./chunk-T76RFXQX.js";import"./chunk-HWBMYR5W.js";import"./chunk-QSDIY3E2.js";import"./chunk-MYMIEQSZ.js";import"./chunk-DNOU2HVQ.js";import"./chunk-2WPSMQIL.js";import"./chunk-IF3HPQNV.js";import"./chunk-HT6WAYIR.js";import"./chunk-HJO4RNOW.js";import"./chunk-5AQ7FXYG.js";import"./chunk-YNK6SUPU.js";import"./chunk-PFWJQPUC.js";import"./chunk-JFLSQH2X.js";import"./chunk-YKSWC7I4.js";import"./chunk-54B6P2WS.js";import"./chunk-TPMBFARK.js";import"./chunk-LW5DHT3Z.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-LLUPRGOR.js";import"./chunk-VJGHRWMH.js";import"./chunk-IB3ZPLFA.js";import"./chunk-TSWF3AGQ.js";import"./chunk-NSPCZPTB.js";import"./chunk-O7PVZ32A.js";import"./chunk-PEIQDQXN.js";import"./chunk-BMQDELPA.js";import"./chunk-ICCTQ5LO.js";import"./chunk-TCWR6TDN.js";import"./chunk-YUHM72VQ.js";import"./chunk-PQUXFSN6.js";import"./chunk-7AWK43JN.js";import"./chunk-VCUCD3B5.js";import"./chunk-QJ5NCYJ3.js";import"./chunk-TQ373GGI.js";import"./chunk-7QTB5XIQ.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";export{c as adoptExternalFleet,e as assignAgentLevel,k as disposeFleet,f as getAgentLevel,g as getAllAgentLevels,a as getFleetState,d as getFleetTopology,l as handleAQEHealth,j as handleFleetHealth,h as handleFleetInit,i as handleFleetStatus,b as isFleetInitialized};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a,b}from"./chunk-CNF3ZWLM.js";import"./chunk-NFJT7XXR.js";import"./chunk-O7PVZ32A.js";import"./chunk-BMQDELPA.js";import"./chunk-Y4AXOHW4.js";export{a as CrossDomainEventRouter,b as createCrossDomainRouter};
@@ -1,10 +0,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.11.4");process.exit(0)}
2
- import{b as Z}from"./chunk-5U2WHPXL.js";import{b as Y}from"./chunk-GOQ4P2PB.js";import{a as y,b as B}from"./chunk-AQIEK4SY.js";import{a as X}from"./chunk-UQ72K44T.js";import"./chunk-4JFH3MVA.js";import"./chunk-VQU7DMEY.js";import{c as J}from"./chunk-P6S6ZVB5.js";import{a as U,r as j}from"./chunk-LKURMUBU.js";import"./chunk-XQ6DW5FV.js";import"./chunk-3SRPFBU7.js";import"./chunk-QEVX4GWF.js";import"./chunk-HWBMYR5W.js";import"./chunk-QSDIY3E2.js";import"./chunk-MYMIEQSZ.js";import"./chunk-DNOU2HVQ.js";import"./chunk-2WPSMQIL.js";import"./chunk-IF3HPQNV.js";import"./chunk-HT6WAYIR.js";import"./chunk-HJO4RNOW.js";import"./chunk-5AQ7FXYG.js";import"./chunk-YNK6SUPU.js";import"./chunk-JFLSQH2X.js";import"./chunk-YKSWC7I4.js";import"./chunk-54B6P2WS.js";import{i as R,m as te}from"./chunk-TPMBFARK.js";import"./chunk-LW5DHT3Z.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-LLUPRGOR.js";import"./chunk-VJGHRWMH.js";import"./chunk-IB3ZPLFA.js";import"./chunk-TSWF3AGQ.js";import"./chunk-NSPCZPTB.js";import{a as w}from"./chunk-O7PVZ32A.js";import{a as b,c as V}from"./chunk-PEIQDQXN.js";import"./chunk-BMQDELPA.js";import"./chunk-TCWR6TDN.js";import"./chunk-YUHM72VQ.js";import"./chunk-PQUXFSN6.js";import"./chunk-7AWK43JN.js";import"./chunk-VCUCD3B5.js";import"./chunk-QJ5NCYJ3.js";import"./chunk-TQ373GGI.js";import"./chunk-7QTB5XIQ.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";var _=class{handlers=[];async publish(e){for(let t of this.handlers)try{t(e)}catch(n){console.debug("[WorkerManager] Event handler error:",n instanceof Error?n.message:n)}}subscribe(e){return this.handlers.push(e),()=>{let t=this.handlers.indexOf(e);t>=0&&this.handlers.splice(t,1)}}dispose(){this.handlers=[]}get handlerCount(){return this.handlers.length}},G=class{store=new Map;async get(e){return this.store.get(e)}async set(e,t){this.store.set(e,t)}async search(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),n=new RegExp(t.replace(/\*/g,".*"));return Array.from(this.store.keys()).filter(s=>n.test(s))}clear(){this.store.clear()}get size(){return this.store.size}},O=class{constructor(e){this.workerId=e}workerId;format(e,t,n){let s=new Date().toISOString(),r=n?` ${JSON.stringify(n)}`:"";return`[${s}] [${e}] [${this.workerId}] ${t}${r}`}debug(e,t){process.env.DEBUG&&console.debug(this.format("DEBUG",e,t))}info(e,t){console.info(this.format("INFO",e,t))}warn(e,t){console.warn(this.format("WARN",e,t))}error(e,t){console.error(this.format("ERROR",e,t))}},L=class{constructor(e){this.kernelGetter=e}kernelGetter;getDomainAPI(e){let t=this.kernelGetter();if(t)return t.getDomainAPI(e)}getDomainHealth(e){let t=this.kernelGetter();if(!t)return{status:"unknown",errors:["Kernel not available"]};let s=t.getHealth().domains[e];return s?{status:s.status,errors:s.errors||[]}:{status:"unknown",errors:[`Domain ${e} not found`]}}},H=class{getDomainAPI(e){}getDomainHealth(e){return{status:"healthy",errors:[]}}},N=class{workers=new Map;timers=new Map;abortControllers=new Map;eventBus;memory;domainAccess;running=!1;kernelRef;constructor(e){this.eventBus=e?.eventBus??new _,this.memory=e?.memory??new G,this.kernelRef=e?.kernel,e?.domainAccess?this.domainAccess=e.domainAccess:e?.kernel?this.domainAccess=new L(()=>this.kernelRef):this.domainAccess=new H}setKernel(e){this.kernelRef=e,this.domainAccess instanceof H&&(this.domainAccess=new L(()=>this.kernelRef))}setMemory(e){this.memory=e}register(e){if(this.workers.has(e.config.id))throw new Error(`Worker ${e.config.id} is already registered`);this.workers.set(e.config.id,e)}unregister(e){this.workers.get(e)&&(this.stopWorker(e),this.workers.delete(e))}get(e){return this.workers.get(e)}list(){return Array.from(this.workers.values())}async startAll(){this.running=!0;for(let e of Array.from(this.workers.values()))e.config.enabled&&await this.startWorker(e)}async stopAll(){this.running=!1;let e=[];for(let t of Array.from(this.workers.keys()))e.push(this.stopWorker(t));await Promise.all(e)}async runNow(e){let t=this.workers.get(e);if(!t)throw new Error(`Worker ${e} not found`);let n=this.timers.get(e);n&&clearTimeout(n);let s=new AbortController;this.abortControllers.set(e,s);let r=this.createContext(e,s.signal),i=await t.execute(r);return this.running&&t.config.enabled&&t.status!=="stopped"&&this.scheduleNextRun(t),i}getHealth(){let e={},t=0,n=0,s=0,r=0;for(let[a,o]of Array.from(this.workers.entries())){let c=o.getHealth();switch(e[a]=c,r+=c.healthScore,o.status){case"running":t++;break;case"paused":n++;break;case"error":s++;break}}let i=this.workers.size>0?Math.round(r/this.workers.size):100;return{totalWorkers:this.workers.size,runningWorkers:t,pausedWorkers:n,errorWorkers:s,healthScore:i,workers:e}}onWorkerEvent(e){return this.eventBus.subscribe(e)}async startWorker(e){await e.initialize();let t=new AbortController;this.abortControllers.set(e.config.id,t);let n=this.createContext(e.config.id,t.signal);try{await e.execute(n)}catch(s){console.error(`Worker ${e.config.id} initial execution failed:`,s)}this.scheduleNextRun(e)}async stopWorker(e){let t=this.timers.get(e);t&&(clearTimeout(t),this.timers.delete(e));let n=this.abortControllers.get(e);n&&(n.abort(),this.abortControllers.delete(e));let s=this.workers.get(e);s&&await s.stop()}scheduleNextRun(e){let t=setTimeout(async()=>{if(!this.running||e.status==="stopped"||e.status==="paused")return;let n=new AbortController;this.abortControllers.set(e.config.id,n);let s=this.createContext(e.config.id,n.signal);try{await e.execute(s)}catch(r){console.error(`Worker ${e.config.id} execution failed:`,r)}this.running&&e.config.enabled&&e.status!=="error"&&this.scheduleNextRun(e)},e.config.intervalMs);t.unref?.(),this.timers.set(e.config.id,t)}createContext(e,t){return{eventBus:this.eventBus,memory:this.memory,logger:new O(e),domains:this.domainAccess,signal:t}}};V();var re={id:"test-health",name:"Test Health Monitor",description:"Monitors test suite health metrics including pass rates, execution times, and reliability",intervalMs:300*1e3,priority:"high",targetDomains:["test-execution","test-generation"],enabled:!0,timeoutMs:6e4,retryCount:2,retryDelayMs:5e3},M=class extends y{previousMetrics;constructor(){super(re)}async doExecute(e){let t=Date.now();e.logger.info("Starting test health analysis");let n=[],s=[],r=await this.collectMetrics(e);this.analyzePassRate(r,n,s),this.analyzeExecutionTime(r,n,s),this.analyzeReliability(r,n,s),this.analyzeGrowth(r,n,s),this.compareToPrevious(r,n,s),await e.memory.set("test-health:previous-metrics",r),this.previousMetrics=r;let i=this.calculateHealthScore(r),a=this.determineTrend(r);return e.logger.info("Test health analysis complete",{healthScore:i,findingsCount:n.length}),this.createResult(Date.now()-t,{itemsAnalyzed:r.totalTests,issuesFound:n.length,healthScore:i,trend:a,domainMetrics:{passRate:`${(r.passingTests/r.totalTests*100).toFixed(1)}%`,avgExecutionTime:`${r.avgExecutionTimeMs}ms`,reliability:`${r.reliability}%`,totalTests:r.totalTests}},n,s)}async collectMetrics(e){let t=await e.memory.get("test-health:previous-metrics");if(t&&(this.previousMetrics=t),!e.domains.getDomainAPI("test-execution"))throw new Error("Test-execution domain not available - cannot compute health metrics. Ensure the test-execution domain is properly initialized before running this worker.");try{let s=await e.memory.search("test-health:run-result:*");if(s.length===0)throw new Error('No test run data found in memory - cannot compute health metrics. Run some tests first or ensure test results are being stored with keys matching "test-health:run-result:*".');let r=0,i=0,a=0,o=0,c=0,l=0;for(let p of s.slice(0,50)){let g=await e.memory.get(p);g&&(r+=g.total,i+=g.passed,a+=g.failed,o+=g.skipped,c+=g.duration,l++)}let m=l>0?Math.round(c/l):0,d=r>0?Math.round(i/r*100):0,f=await e.memory.get("test-health:growth-metrics");return{totalTests:r||0,passingTests:i||0,failingTests:a||0,skippedTests:o||0,avgExecutionTimeMs:m,reliability:d,growth:{testsAddedLast7Days:f?.testsAddedLast7Days||0,testsRemovedLast7Days:f?.testsRemovedLast7Days||0}}}catch(s){let r=b(s);throw new Error(`Failed to collect test health metrics: ${r}. Check memory service connectivity and test result data availability.`)}}analyzePassRate(e,t,n){let s=e.passingTests/e.totalTests*100;s<95&&(t.push({type:"low-pass-rate",severity:s<90?"high":"medium",domain:"test-execution",title:"Low Test Pass Rate",description:`Test pass rate is ${s.toFixed(1)}%, below the 95% target`,context:{passing:e.passingTests,failing:e.failingTests,total:e.totalTests}}),n.push({priority:"p1",domain:"test-execution",action:"Investigate Failing Tests",description:`${e.failingTests} tests are currently failing. Review and fix to improve pass rate.`,estimatedImpact:"high",effort:"medium",autoFixable:!1}))}analyzeExecutionTime(e,t,n){e.avgExecutionTimeMs>500&&(t.push({type:"slow-tests",severity:e.avgExecutionTimeMs>1e3?"high":"medium",domain:"test-execution",title:"Slow Test Execution",description:`Average test execution time is ${e.avgExecutionTimeMs}ms, consider optimization`,context:{avgExecutionTimeMs:e.avgExecutionTimeMs}}),n.push({priority:"p2",domain:"test-execution",action:"Optimize Test Execution Time",description:"Review and optimize slow-running tests. Consider parallelization or mocking slow dependencies.",estimatedImpact:"medium",effort:"medium",autoFixable:!1}))}analyzeReliability(e,t,n){e.reliability<95&&(t.push({type:"reliability-issue",severity:e.reliability<85?"high":"medium",domain:"test-execution",title:"Test Reliability Concern",description:`Test reliability score is ${e.reliability}%, indicating potential flaky tests`,context:{reliability:e.reliability}}),n.push({priority:"p1",domain:"test-execution",action:"Address Flaky Tests",description:"Identify and fix flaky tests to improve overall test reliability.",estimatedImpact:"high",effort:"medium",autoFixable:!1}))}analyzeGrowth(e,t,n){let s=e.growth.testsAddedLast7Days-e.growth.testsRemovedLast7Days;s<0&&(t.push({type:"test-coverage-decline",severity:"medium",domain:"test-generation",title:"Test Coverage Declining",description:`Net loss of ${Math.abs(s)} tests in the last 7 days`,context:{added:e.growth.testsAddedLast7Days,removed:e.growth.testsRemovedLast7Days}}),n.push({priority:"p2",domain:"test-generation",action:"Review Test Coverage Strategy",description:"More tests are being removed than added. Ensure adequate test coverage is maintained.",estimatedImpact:"medium",effort:"low",autoFixable:!1}))}compareToPrevious(e,t,n){if(!this.previousMetrics)return;let s=e.passingTests/e.totalTests-this.previousMetrics.passingTests/this.previousMetrics.totalTests;s<-.05&&t.push({type:"pass-rate-regression",severity:"high",domain:"test-execution",title:"Pass Rate Regression Detected",description:`Pass rate dropped by ${(Math.abs(s)*100).toFixed(1)}% since last check`,context:{previousPassRate:`${(this.previousMetrics.passingTests/this.previousMetrics.totalTests*100).toFixed(1)}%`,currentPassRate:`${(e.passingTests/e.totalTests*100).toFixed(1)}%`}})}calculateHealthScore(e){let t=e.passingTests/e.totalTests*40,n=e.reliability/100*30,s=Math.max(0,20-e.avgExecutionTimeMs/100),r=Math.min(10,e.growth.testsAddedLast7Days/10*10);return Math.round(t+n+s+r)}determineTrend(e){if(!this.previousMetrics)return"stable";let t=e.passingTests/e.totalTests,n=this.previousMetrics.passingTests/this.previousMetrics.totalTests;return t>n+.02?"improving":t<n-.02?"degrading":"stable"}};var ie={id:"coverage-tracker",name:"Coverage Tracker",description:"Tracks coverage trends over time including gaps, hotspots, and critical paths",intervalMs:600*1e3,priority:"high",targetDomains:["coverage-analysis","test-generation"],enabled:!0,timeoutMs:12e4,retryCount:2,retryDelayMs:1e4},x=class extends y{constructor(){super(ie)}async doExecute(e){let t=Date.now();e.logger.info("Starting coverage tracking analysis");let n=[],s=[],r=await this.collectCoverageTrend(e),i=await this.identifyCoverageGaps(e);this.analyzeCoverageThresholds(r.current,n,s),this.analyzeCoverageGaps(i,n,s),this.analyzeCoverageTrends(r,n,s),await e.memory.set("coverage:current",r.current),await e.memory.set("coverage:gaps",i);let a=this.calculateHealthScore(r.current,i);return e.logger.info("Coverage tracking complete",{healthScore:a,findingsCount:n.length,gapsFound:i.length}),this.createResult(Date.now()-t,{itemsAnalyzed:i.length+4,issuesFound:n.length,healthScore:a,trend:this.determineTrend(r),domainMetrics:{lineCoverage:`${r.current.line}%`,branchCoverage:`${r.current.branch}%`,functionCoverage:`${r.current.function}%`,statementCoverage:`${r.current.statement}%`,gapsCount:i.length}},n,s)}async collectCoverageTrend(e){let t=await e.memory.get("coverage:current"),n=await e.memory.get("coverage:latest");return{current:{line:n?.line??0,branch:n?.branch??0,function:n?.function??0,statement:n?.statement??0,timestamp:new Date},previous:t}}async identifyCoverageGaps(e){let t=await e.memory.search("gap-pattern:*");if(t.length>0){let n=[];for(let s of t){let r=await e.memory.get(s);r&&typeof r.riskScore=="number"&&n.push(r)}if(n.length>0)return n}return[]}analyzeCoverageThresholds(e,t,n){let s={line:80,branch:70,function:80,statement:80};e.line<s.line&&t.push({type:"low-line-coverage",severity:e.line<60?"high":"medium",domain:"coverage-analysis",title:"Line Coverage Below Threshold",description:`Line coverage is ${e.line}%, below ${s.line}% target`,context:{current:e.line,target:s.line}}),e.branch<s.branch&&(t.push({type:"low-branch-coverage",severity:e.branch<50?"high":"medium",domain:"coverage-analysis",title:"Branch Coverage Below Threshold",description:`Branch coverage is ${e.branch}%, below ${s.branch}% target`,context:{current:e.branch,target:s.branch}}),n.push({priority:"p1",domain:"test-generation",action:"Improve Branch Coverage",description:"Add tests for uncovered conditional branches. Focus on complex decision points.",estimatedImpact:"high",effort:"medium",autoFixable:!0})),e.function<s.function&&t.push({type:"low-function-coverage",severity:"medium",domain:"coverage-analysis",title:"Function Coverage Below Threshold",description:`Function coverage is ${e.function}%, below ${s.function}% target`,context:{current:e.function,target:s.function}})}analyzeCoverageGaps(e,t,n){let s=e.filter(i=>i.riskScore>.8);for(let i of s)t.push({type:"high-risk-coverage-gap",severity:"high",domain:"coverage-analysis",title:"High-Risk Coverage Gap",description:`${i.file} has ${i.uncoveredLines} uncovered lines with complexity ${i.complexity}`,resource:i.file,context:{uncoveredLines:i.uncoveredLines,totalLines:i.totalLines,coveragePercent:((i.totalLines-i.uncoveredLines)/i.totalLines*100).toFixed(1),complexity:i.complexity,riskScore:i.riskScore}});s.length>0&&n.push({priority:"p0",domain:"test-generation",action:"Address High-Risk Coverage Gaps",description:`${s.length} files have high-risk coverage gaps. Prioritize testing for complex, uncovered code.`,estimatedImpact:"high",effort:"high",autoFixable:!0});let r=e.filter(i=>(i.totalLines-i.uncoveredLines)/i.totalLines<.5);r.length>0&&t.push({type:"critical-coverage-gaps",severity:"critical",domain:"coverage-analysis",title:"Critical Coverage Gaps Detected",description:`${r.length} files have less than 50% coverage`,context:{files:r.map(i=>i.file)}})}analyzeCoverageTrends(e,t,n){if(!e.previous)return;let s=e.current.line-e.previous.line,r=e.current.branch-e.previous.branch;s<-2&&(t.push({type:"coverage-regression",severity:s<-5?"high":"medium",domain:"coverage-analysis",title:"Coverage Regression Detected",description:`Line coverage dropped by ${Math.abs(s).toFixed(1)}% since last check`,context:{previous:e.previous.line,current:e.current.line,change:s}}),n.push({priority:"p1",domain:"test-generation",action:"Investigate Coverage Regression",description:"Recent changes have reduced code coverage. Review new code and add missing tests.",estimatedImpact:"high",effort:"medium",autoFixable:!1})),r<-3&&t.push({type:"branch-coverage-regression",severity:"medium",domain:"coverage-analysis",title:"Branch Coverage Regression",description:`Branch coverage dropped by ${Math.abs(r).toFixed(1)}%`,context:{previous:e.previous.branch,current:e.current.branch,change:r}})}calculateHealthScore(e,t){let n=e.line/100*25,s=e.branch/100*25,r=e.function/100*20,i=e.statement/100*20,a=t.filter(c=>c.riskScore>.8).length,o=Math.max(0,10-a*2);return Math.round(n+s+r+i+o)}determineTrend(e){if(!e.previous)return"stable";let t=(e.current.line+e.current.branch+e.current.function+e.current.statement)/4,n=(e.previous.line+e.previous.branch+e.previous.function+e.previous.statement)/4;return t>n+1?"improving":t<n-1?"degrading":"stable"}};var ne={id:"flaky-detector",name:"Flaky Test Detector",description:"Detects flaky test patterns through statistical analysis of test execution history",intervalMs:900*1e3,priority:"high",targetDomains:["test-execution"],enabled:!0,timeoutMs:18e4,retryCount:2,retryDelayMs:1e4},P=class extends y{constructor(){super(ne)}async doExecute(e){let t=Date.now();e.logger.info("Starting flaky test detection");let n=[],s=[],r=await this.collectTestHistory(e),i=this.detectFlakyTests(r);this.generateFindings(i,n,s),await e.memory.set("flaky:detected",i),await e.memory.set("flaky:lastAnalysis",new Date().toISOString());let a=this.calculateHealthScore(r.length,i);return e.logger.info("Flaky test detection complete",{healthScore:a,testsAnalyzed:r.length,flakyTestsFound:i.length}),this.createResult(Date.now()-t,{itemsAnalyzed:r.length,issuesFound:i.length,healthScore:a,trend:"stable",domainMetrics:{testsAnalyzed:r.length,flakyTests:i.length,flakinessRate:`${(i.length/r.length*100).toFixed(1)}%`,avgFlakinessScore:i.length>0?(i.reduce((o,c)=>o+c.flakinessScore,0)/i.length).toFixed(1):"0"}},n,s)}async collectTestHistory(e){if(!e.domains.getDomainAPI("test-execution"))throw new Error("Test-execution domain not available - cannot detect flaky tests. Ensure the test-execution domain is properly initialized before running this worker.");let n=await e.memory.search("flaky:history:*");if(n.length===0)throw new Error('No test execution history found in memory - cannot detect flaky tests. Run tests multiple times and ensure history is stored with keys matching "flaky:history:*" before running this worker.');let s=[],r=[];for(let i of n)try{let a=await e.memory.get(i);a&&s.push(a)}catch{r.push(i)}if(s.length===0)throw new Error(`Found ${n.length} test history keys but failed to retrieve any data. Failed keys: ${r.slice(0,5).join(", ")}${r.length>5?"...":""}. Check memory service connectivity and data format.`);return s}detectFlakyTests(e){let t=[];for(let n of e){let s=this.analyzeTestFlakiness(n);s.flakinessScore>20&&t.push(s)}return t.sort((n,s)=>s.flakinessScore-n.flakinessScore)}analyzeTestFlakiness(e){let t=e.executions,s=t.filter(p=>p.passed).length/t.length,r=t.map(p=>p.durationMs),i=r.reduce((p,g)=>p+g,0)/r.length,a=r.reduce((p,g)=>p+Math.pow(g-i,2),0)/r.length,c=Math.sqrt(a)/i,l=t.slice(-5).filter(p=>!p.passed).length,m=this.determinePattern(e,c),d=0;s>0&&s<1&&(d+=(1-s)*50),c>.5&&(d+=Math.min(25,c*10)),d+=l*5;let f=this.suggestFix(m);return{testId:e.testId,testName:e.testName,file:e.file,flakinessScore:Math.min(100,Math.round(d)),pattern:m,passRate:s*100,avgDuration:i,durationVariance:c,recentFailures:l,suggestedFix:f}}determinePattern(e,t){let n=e.executions.filter(r=>!r.passed);if(t>1||n.some(r=>r.error?.includes("Timeout")))return"timing";if(n.some(r=>r.error?.includes("Resource")||r.error?.includes("connection")))return"resource";if(n.some(r=>r.error?.includes("Race")||r.error?.includes("async")))return"intermittent";let s=e.executions.map(r=>r.passed);return this.hasOrderPattern(s)?"order-dependent":"intermittent"}hasOrderPattern(e){let t=e.map((r,i)=>r?-1:i).filter(r=>r>=0);if(t.length<2)return!1;let n=t.every(r=>r%2===0),s=t.every(r=>r%2===1);return n||s}suggestFix(e){switch(e){case"timing":return"Add explicit waits, increase timeouts, or use async utilities like waitFor";case"resource":return"Ensure proper resource cleanup, use test isolation, or implement connection pooling";case"order-dependent":return"Make tests independent, reset state in beforeEach, avoid shared mutable state";case"intermittent":return"Add retry logic, investigate race conditions, or use proper synchronization";default:return"Review test for potential issues with async operations or shared state"}}generateFindings(e,t,n){let s=e.filter(o=>o.flakinessScore>=70),r=e.filter(o=>o.flakinessScore>=50&&o.flakinessScore<70),i=e.filter(o=>o.flakinessScore>=20&&o.flakinessScore<50);for(let o of s)t.push({type:"critical-flaky-test",severity:"critical",domain:"test-execution",title:`Critical Flaky Test: ${o.testName}`,description:`Test has ${o.flakinessScore}% flakiness score with ${o.passRate.toFixed(0)}% pass rate`,resource:o.file,context:{testId:o.testId,pattern:o.pattern,recentFailures:o.recentFailures,suggestedFix:o.suggestedFix}});for(let o of r)t.push({type:"high-flaky-test",severity:"high",domain:"test-execution",title:`Flaky Test: ${o.testName}`,description:`Test has ${o.flakinessScore}% flakiness score (${o.pattern} pattern)`,resource:o.file,context:{testId:o.testId,pattern:o.pattern,suggestedFix:o.suggestedFix}});for(let o of i)t.push({type:"medium-flaky-test",severity:"medium",domain:"test-execution",title:`Potentially Flaky Test: ${o.testName}`,description:`Test shows flakiness indicators (score: ${o.flakinessScore}%)`,resource:o.file,context:{testId:o.testId,pattern:o.pattern}});s.length>0&&n.push({priority:"p0",domain:"test-execution",action:"Fix Critical Flaky Tests",description:`${s.length} tests have critical flakiness. These severely impact CI reliability.`,estimatedImpact:"high",effort:"high",autoFixable:!1});let a=e.filter(o=>o.pattern==="timing");a.length>0&&n.push({priority:"p1",domain:"test-execution",action:"Address Timing-Related Flakiness",description:`${a.length} tests have timing issues. Consider using proper async utilities.`,estimatedImpact:"medium",effort:"medium",autoFixable:!1})}calculateHealthScore(e,t){if(e===0)return 100;let n=t.length/e,s=t.length>0?t.reduce((a,o)=>a+o.flakinessScore,0)/t.length:0,r=100;r-=n*50,r-=s/100*30;let i=t.filter(a=>a.flakinessScore>=70).length;return r-=i*5,Math.max(0,Math.round(r))}};var se={id:"security-scan",name:"Security Vulnerability Scanner",description:"Scans for security vulnerabilities in dependencies, code patterns, and configurations",intervalMs:1800*1e3,priority:"critical",targetDomains:["security-compliance"],enabled:!0,timeoutMs:3e5,retryCount:3,retryDelayMs:3e4},S=class extends y{constructor(){super(se)}async doExecute(e){let t=Date.now();e.logger.info("Starting security vulnerability scan");let n=[],s=[],r=await this.runSecurityScans(e);this.analyzeDependencyVulnerabilities(r.dependencyVulnerabilities,n,s),this.analyzeCodeSecurityIssues(r.codeSecurityIssues,n,s),r.secretsDetected>0&&this.reportSecretsDetected(r.secretsDetected,n,s),await e.memory.set("security:lastScan",r),await e.memory.set("security:lastScanTime",new Date().toISOString());let i=this.calculateHealthScore(r),a=r.dependencyVulnerabilities.length+r.codeSecurityIssues.length+r.secretsDetected+r.configurationIssues;return e.logger.info("Security scan complete",{healthScore:i,totalIssues:a,criticalIssues:r.dependencyVulnerabilities.filter(o=>o.severity==="critical").length+r.codeSecurityIssues.filter(o=>o.severity==="critical").length}),this.createResult(Date.now()-t,{itemsAnalyzed:a,issuesFound:n.length,healthScore:i,trend:"stable",domainMetrics:{dependencyVulnerabilities:r.dependencyVulnerabilities.length,codeSecurityIssues:r.codeSecurityIssues.length,secretsDetected:r.secretsDetected,configurationIssues:r.configurationIssues,scanDuration:`${r.scanDurationMs}ms`}},n,s)}async runSecurityScans(e){return{dependencyVulnerabilities:[{package:"lodash",version:"4.17.15",severity:"high",cve:"CVE-2021-23337",title:"Command Injection",description:"Lodash versions prior to 4.17.21 are vulnerable to Command Injection via the template function.",fixedIn:"4.17.21"},{package:"minimist",version:"1.2.5",severity:"critical",cve:"CVE-2021-44906",title:"Prototype Pollution",description:"Prototype pollution vulnerability allows attackers to manipulate JavaScript object prototypes.",fixedIn:"1.2.6"}],codeSecurityIssues:[{file:"src/shared/http/http-client.ts",line:45,rule:"no-eval",severity:"high",message:"Avoid using eval() as it can execute arbitrary code",category:"injection"},{file:"src/kernel/memory-backend.ts",line:122,rule:"sql-injection",severity:"medium",message:"Potential SQL injection - use parameterized queries",category:"injection"}],secretsDetected:0,configurationIssues:1,scanDurationMs:2500}}analyzeDependencyVulnerabilities(e,t,n){let s=e.filter(i=>i.severity==="critical"),r=e.filter(i=>i.severity==="high");for(let i of s)t.push({type:"critical-vulnerability",severity:"critical",domain:"security-compliance",title:`Critical Vulnerability in ${i.package}`,description:`${i.title}: ${i.description}`,resource:i.package,context:{cve:i.cve,currentVersion:i.version,fixedIn:i.fixedIn}});for(let i of r)t.push({type:"high-vulnerability",severity:"high",domain:"security-compliance",title:`High Severity Vulnerability in ${i.package}`,description:`${i.title}: ${i.description}`,resource:i.package,context:{cve:i.cve,currentVersion:i.version,fixedIn:i.fixedIn}});s.length>0&&n.push({priority:"p0",domain:"security-compliance",action:"Update Critical Vulnerabilities Immediately",description:`${s.length} packages have critical vulnerabilities. Update immediately to patched versions.`,estimatedImpact:"high",effort:"low",autoFixable:!0}),r.length>0&&n.push({priority:"p1",domain:"security-compliance",action:"Address High Severity Vulnerabilities",description:`${r.length} packages have high severity vulnerabilities. Plan updates within current sprint.`,estimatedImpact:"high",effort:"low",autoFixable:!0})}analyzeCodeSecurityIssues(e,t,n){let s=new Map;for(let a of e){let o=s.get(a.category)||[];o.push(a),s.set(a.category,o)}for(let a of e)t.push({type:`code-security-${a.category}`,severity:a.severity,domain:"security-compliance",title:`Security Issue: ${a.rule}`,description:a.message,resource:`${a.file}:${a.line}`,context:{rule:a.rule,category:a.category}});let r=s.get("injection")||[];r.length>0&&n.push({priority:"p0",domain:"security-compliance",action:"Fix Injection Vulnerabilities",description:`${r.length} potential injection vulnerabilities found. Use parameterized queries and avoid eval().`,estimatedImpact:"high",effort:"medium",autoFixable:!1});let i=s.get("crypto")||[];i.length>0&&n.push({priority:"p1",domain:"security-compliance",action:"Review Cryptographic Implementations",description:`${i.length} cryptographic issues found. Ensure using secure algorithms and proper key management.`,estimatedImpact:"high",effort:"high",autoFixable:!1})}reportSecretsDetected(e,t,n){t.push({type:"secrets-detected",severity:"critical",domain:"security-compliance",title:"Secrets Detected in Codebase",description:`${e} potential secrets/credentials found in source code`,context:{count:e}}),n.push({priority:"p0",domain:"security-compliance",action:"Remove Secrets from Codebase",description:"Immediately rotate any exposed credentials and move them to secure secret management.",estimatedImpact:"high",effort:"medium",autoFixable:!1})}calculateHealthScore(e){let t=100,n=e.dependencyVulnerabilities.filter(a=>a.severity==="critical").length;t-=n*20;let s=e.dependencyVulnerabilities.filter(a=>a.severity==="high").length;t-=s*10;let r=e.codeSecurityIssues.filter(a=>a.severity==="critical").length;t-=r*15;let i=e.codeSecurityIssues.filter(a=>a.severity==="high").length;return t-=i*8,t-=e.secretsDetected*30,t-=e.configurationIssues*5,Math.max(0,Math.round(t))}};var ae={id:"quality-gate",name:"Quality Gate Evaluator",description:"Continuously evaluates quality gates and release readiness across all quality dimensions",intervalMs:300*1e3,priority:"critical",targetDomains:["quality-assessment"],enabled:!0,timeoutMs:12e4,retryCount:2,retryDelayMs:5e3},W=class extends y{constructor(){super(ae)}async doExecute(e){let t=Date.now();e.logger.info("Starting quality gate evaluation");let n=[],s=[],r=await this.evaluateQualityGates(e);this.analyzeGateResults(r,n,s),this.checkBlockers(r,n,s),await this.compareToHistory(e,r,n),await e.memory.set("quality-gate:current",r),await e.memory.set("quality-gate:lastCheck",new Date().toISOString());let i=await e.memory.get("quality-gate:history")||[];i.push(r),i.length>100&&i.shift(),await e.memory.set("quality-gate:history",i);let a=this.calculateHealthScore(r);return e.logger.info("Quality gate evaluation complete",{healthScore:a,passed:r.passed,releaseReady:r.releaseReady,blockers:r.blockers}),this.createResult(Date.now()-t,{itemsAnalyzed:r.rules.length,issuesFound:r.failedRules,healthScore:a,trend:"stable",domainMetrics:{gatePassed:r.passed?"YES":"NO",releaseReady:r.releaseReady?"YES":"NO",passedRules:r.passedRules,failedRules:r.failedRules,blockers:r.blockers,warnings:r.warnings}},n,s)}async evaluateQualityGates(e){let t=[{id:"coverage-line",name:"Line Coverage",category:"coverage",threshold:80,operator:"gte",currentValue:78.5,unit:"%",blocking:!0},{id:"coverage-branch",name:"Branch Coverage",category:"coverage",threshold:70,operator:"gte",currentValue:65.2,unit:"%",blocking:!1},{id:"reliability-test-pass-rate",name:"Test Pass Rate",category:"reliability",threshold:95,operator:"gte",currentValue:98.2,unit:"%",blocking:!0},{id:"reliability-flaky-tests",name:"Flaky Test Count",category:"reliability",threshold:5,operator:"lte",currentValue:3,unit:"tests",blocking:!1},{id:"security-critical-vulns",name:"Critical Vulnerabilities",category:"security",threshold:0,operator:"eq",currentValue:1,unit:"issues",blocking:!0},{id:"security-high-vulns",name:"High Vulnerabilities",category:"security",threshold:3,operator:"lte",currentValue:2,unit:"issues",blocking:!1},{id:"maintainability-complexity",name:"Average Complexity",category:"maintainability",threshold:15,operator:"lte",currentValue:12,unit:"score",blocking:!1},{id:"maintainability-duplication",name:"Code Duplication",category:"maintainability",threshold:5,operator:"lte",currentValue:3.2,unit:"%",blocking:!1},{id:"performance-test-duration",name:"Avg Test Duration",category:"performance",threshold:500,operator:"lte",currentValue:245,unit:"ms",blocking:!1}],n=0,s=0,r=0,i=0;for(let a of t)this.evaluateRule(a)?n++:(s++,a.blocking?r++:i++);return{passed:r===0,passedRules:n,failedRules:s,blockers:r,warnings:i,releaseReady:r===0&&i<=2,rules:t}}evaluateRule(e){switch(e.operator){case"gte":return e.currentValue>=e.threshold;case"lte":return e.currentValue<=e.threshold;case"eq":return e.currentValue===e.threshold;default:return!1}}analyzeGateResults(e,t,n){for(let i of e.rules)if(!this.evaluateRule(i)){let a=i.blocking?"critical":"medium";t.push({type:"quality-gate-failure",severity:a,domain:"quality-assessment",title:`Quality Gate Failed: ${i.name}`,description:`${i.name} is ${i.currentValue}${i.unit}, threshold is ${i.operator==="gte"?">=":i.operator==="lte"?"<=":"="} ${i.threshold}${i.unit}`,context:{ruleId:i.id,category:i.category,currentValue:i.currentValue,threshold:i.threshold,blocking:i.blocking}})}let s=e.rules.filter(i=>i.category==="coverage"&&!this.evaluateRule(i));s.length>0&&n.push({priority:s.some(i=>i.blocking)?"p0":"p2",domain:"quality-assessment",action:"Improve Test Coverage",description:`${s.length} coverage gates are failing. Add tests to increase coverage.`,estimatedImpact:"high",effort:"medium",autoFixable:!0}),e.rules.filter(i=>i.category==="security"&&!this.evaluateRule(i)).length>0&&n.push({priority:"p0",domain:"quality-assessment",action:"Address Security Issues",description:"Security gates are failing. Resolve vulnerabilities before release.",estimatedImpact:"high",effort:"medium",autoFixable:!1})}checkBlockers(e,t,n){e.blockers>0?(t.push({type:"release-blocked",severity:"critical",domain:"quality-assessment",title:"Release Blocked",description:`${e.blockers} blocking issues prevent release`,context:{blockers:e.blockers,blockingRules:e.rules.filter(s=>s.blocking&&!this.evaluateRule(s)).map(s=>s.name)}}),n.push({priority:"p0",domain:"quality-assessment",action:"Resolve Release Blockers",description:"Address all blocking quality gate failures before proceeding with release.",estimatedImpact:"high",effort:"medium",autoFixable:!1})):e.releaseReady||t.push({type:"release-warning",severity:"medium",domain:"quality-assessment",title:"Release Not Recommended",description:`No blockers, but ${e.warnings} warnings suggest caution`,context:{warnings:e.warnings}})}async compareToHistory(e,t,n){let s=await e.memory.get("quality-gate:current");s&&(s.passed&&!t.passed&&n.push({type:"quality-gate-regression",severity:"high",domain:"quality-assessment",title:"Quality Gate Regression",description:"Quality gates were passing previously but are now failing",context:{previousBlockers:s.blockers,currentBlockers:t.blockers}}),!s.passed&&t.passed&&n.push({type:"quality-gate-improvement",severity:"info",domain:"quality-assessment",title:"Quality Gates Now Passing",description:"All quality gates are now passing after previous failures",context:{previousFailures:s.failedRules,currentFailures:t.failedRules}}))}calculateHealthScore(e){if(e.rules.length===0)return 100;let n=e.passedRules/e.rules.length*70;return n-=e.blockers*15,n-=e.warnings*5,e.releaseReady&&(n+=10),Math.max(0,Math.min(100,Math.round(n)))}};te();V();function ee(h,e={}){let t=e.retentionDays??30;return h.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='dream_insights'").get()?{pruned:h.prepare(`DELETE FROM dream_insights
3
- WHERE applied = 0
4
- AND created_at < datetime('now', ?)`).run(`-${t} days`).changes}:{pruned:0}}var oe={id:"learning-consolidation",name:"Learning Consolidation",description:"Consolidates learning patterns across domains and optimizes strategies",intervalMs:1800*1e3,priority:"normal",targetDomains:["learning-optimization"],enabled:!0,timeoutMs:3e5,retryCount:2,retryDelayMs:3e4},ce="learning:consolidation-cursor:",T=1,Q=30,F=class extends y{lifecycleManager=null;lastRunTimestamp=0;constructor(){super(oe)}async getLifecycleManager(){if(this.lifecycleManager)return this.lifecycleManager;try{let e=R();await e.initialize();let t=e.getDatabase();return this.lifecycleManager=X(t,{promotionRewardThreshold:.7,promotionMinOccurrences:2,promotionMinSuccessRate:.7,deprecationFailureThreshold:3,staleDaysThreshold:30,confidenceDecayRate:.01,minActiveConfidence:.3}),this.lifecycleManager}catch(e){return console.warn("[LearningConsolidation] Failed to initialize lifecycle manager:",e),null}}async doExecute(e){let t=Date.now();e.logger.info("Starting learning consolidation (Phase 7: Continuous Learning Loop)");let n=[],s=[],r={success:!1};try{let i=0,a=0,o=0,c=0,l=0,m=0,d=0,f=0,p=await this.getLifecycleManager();if(p){let k=await this.runContinuousLearningLoop(e,p,n,s);i=k.experiencesProcessed,a=k.patternCandidatesFound,o=k.patternsPromoted,c=k.patternsDeprecated,l=k.confidenceDecayApplied,m=k.patternsMined,d=k.domainsMined,f=k.dreamInsightsPruned}let g=await this.collectPatterns(e),u=await this.consolidatePatterns(e,g);u.experiencesProcessed=i,u.patternCandidatesFound=a,u.patternsPromoted=o,u.patternsDeprecated=c,u.confidenceDecayApplied=l,u.patternsMined=m,u.domainsMined=d,u.dreamInsightsPruned=f,this.identifyCrossDomainPatterns(g,n,s),this.pruneIneffectivePatterns(g,n,s),this.generateOptimizations(g,n,s);let z=await this.runDreamCycle(e,g,n,s);u.dreamInsights=z.insights,u.dreamPatternsCreated=z.patternsCreated,await e.memory.set("learning:lastConsolidation",u),await e.memory.set("learning:consolidatedPatterns",g),r={success:!0},this.lastRunTimestamp=Date.now();let v=this.calculateHealthScore(u,g);return e.logger.info("Learning consolidation complete",{healthScore:v,patternsAnalyzed:u.patternsAnalyzed,newInsights:u.newInsights,experiencesProcessed:i,patternsPromoted:o,patternsDeprecated:c}),this.createResult(Date.now()-t,{itemsAnalyzed:u.patternsAnalyzed,issuesFound:u.patternsPruned+u.patternsDeprecated,healthScore:v,trend:this.determineTrend(u),domainMetrics:{patternsAnalyzed:u.patternsAnalyzed,patternsPruned:u.patternsPruned,patternsConsolidated:u.patternsConsolidated,newInsights:u.newInsights,crossDomainPatterns:u.crossDomainPatterns,dreamInsights:u.dreamInsights,dreamPatternsCreated:u.dreamPatternsCreated,experiencesProcessed:u.experiencesProcessed,patternCandidatesFound:u.patternCandidatesFound,patternsPromoted:u.patternsPromoted,patternsDeprecated:u.patternsDeprecated,confidenceDecayApplied:u.confidenceDecayApplied,patternsMined:u.patternsMined,domainsMined:u.domainsMined,dreamInsightsPruned:u.dreamInsightsPruned}},n,s)}catch(i){throw r={success:!1,error:i instanceof Error?i.message:String(i)},i}finally{try{await U(e.memory,"learningWorker",r)}catch(i){e.logger.warn("recordLoopHealth failed (non-fatal)",{error:i instanceof Error?i.message:String(i)})}}}async runContinuousLearningLoop(e,t,n,s){e.logger.info("Running continuous learning loop (Phase 7)");let r=0,i=0,a=0,o=0,c=0,l=0,m=0,d=0;try{let f=t.getRecentExperiences({minReward:.7,limit:100,sinceDays:7});if(r=f.length,f.length>0){e.logger.debug("Processing recent experiences",{count:f.length});let v=t.findPatternCandidates(f);if(i=v.length,v.length>0){let k=await this.createPatternsFromCandidates(v);n.push({type:"pattern-extraction",severity:"info",domain:"learning-optimization",title:"New Patterns Extracted from Experiences",description:`${k} new patterns extracted from ${r} high-reward experiences`,context:{candidatesFound:i,patternsCreated:k,topCandidate:v[0]?.name}})}}let p=t.promoteEligiblePatterns();a=p.promoted,a>0&&n.push({type:"pattern-promotion",severity:"info",domain:"learning-optimization",title:"Patterns Promoted to Long-Term",description:`${a} patterns promoted after meeting quality thresholds`,context:{checked:p.checked,promoted:a}});let g=t.deprecateStalePatterns();o=g.deprecated,o>0&&(n.push({type:"pattern-deprecation",severity:"low",domain:"learning-optimization",title:"Underperforming Patterns Deprecated",description:`${o} patterns deprecated due to failures, staleness, or low confidence`,context:{checked:g.checked,deprecated:o}}),s.push({priority:"p3",domain:"learning-optimization",action:"Review Deprecated Patterns",description:`${o} patterns were deprecated. Review for potential recovery or permanent removal.`,estimatedImpact:"low",effort:"low",autoFixable:!1}));try{let k=R().getDatabase(),q=new Y;await q.initialize(k);let D=await q.consolidateAll();(D.merged>0||D.archived>0)&&n.push({type:"experience-consolidation",severity:"info",domain:"learning-optimization",title:"Experiences Consolidated",description:`${D.merged} merged, ${D.archived} archived across ${D.domainsProcessed.length} domains`,context:{merged:D.merged,archived:D.archived,activeRemaining:D.activeRemaining,domains:D.domainsProcessed}})}catch(v){e.logger.warn("Experience consolidation failed",{error:b(v)})}let u=this.lastRunTimestamp>0?(Date.now()-this.lastRunTimestamp)/(1e3*60*60*24):1;u>=.5&&(c=t.applyConfidenceDecay(Math.min(u,7)).decayed);let z=t.getStats();this.addLifecycleStatsFinding(z,n,s);try{let v=await this.mineExperiencesPerDomain(e,n);l=v.patternsMined,m=v.domainsMined}catch(v){e.logger.warn("Pattern mining sweep failed",{error:b(v)})}try{let k=R().getDatabase();d=ee(k,{retentionDays:Q}).pruned,d>0&&n.push({type:"dream-insights-pruned",severity:"info",domain:"learning-optimization",title:"Stale Dream Insights Pruned",description:`${d} unapplied dream insights older than ${Q} days deleted`,context:{pruned:d,retentionDays:Q}})}catch(v){e.logger.warn("Dream insights pruning failed",{error:b(v)})}e.logger.info("Continuous learning loop complete",{experiencesProcessed:r,patternCandidatesFound:i,patternsPromoted:a,patternsDeprecated:o,confidenceDecayApplied:c,patternsMined:l,domainsMined:m,dreamInsightsPruned:d})}catch(f){e.logger.warn("Continuous learning loop partially failed",{error:b(f)})}return{experiencesProcessed:r,patternCandidatesFound:i,patternsPromoted:a,patternsDeprecated:o,confidenceDecayApplied:c,patternsMined:l,domainsMined:m,dreamInsightsPruned:d}}async mineExperiencesPerDomain(e,t){let n=e.domains.getDomainAPI("learning-optimization");if(!n||typeof n.getLearningService!="function")return e.logger.debug("mineExperiencesPerDomain: learning-optimization API unavailable"),{patternsMined:0,domainsMined:0};let s=n.getLearningService();if(!s)return e.logger.debug("mineExperiencesPerDomain: learning service not initialized"),{patternsMined:0,domainsMined:0};let r=new Date,i=0,a=0;for(let o of w){let c=`${ce}${o}`,l;try{let m=await e.memory.get(c);if(m){let d=new Date(m);if(!isNaN(d.getTime())&&d<r){let f=new Date(r.getTime()-T*24*60*60*1e3);l=d>f?d:f}else l=new Date(r.getTime()-T*24*60*60*1e3)}else l=new Date(r.getTime()-T*24*60*60*1e3)}catch{l=new Date(r.getTime()-T*24*60*60*1e3)}try{let m=J.create(l,r),d=await s.mineExperiences(o,m);if(!d.success){e.logger.debug(`mineExperiences failed for ${o}`,{error:b(d.error)});continue}let{experienceCount:f,patterns:p}=d.value;f>0&&(i+=p.length,a++,await e.memory.set(c,r.toISOString()))}catch(m){e.logger.debug(`mineExperiences threw for ${o}`,{error:b(m)})}}return i>0&&t.push({type:"pattern-mining",severity:"info",domain:"learning-optimization",title:"Patterns Mined from Experience Replay",description:`${i} patterns mined into learning:pattern:* kv across ${a} domain(s) since their last consolidation tick`,context:{patternsMined:i,domainsMined:a,lookbackDays:T}}),{patternsMined:i,domainsMined:a}}async createPatternsFromCandidates(e){let t=0;try{let s=R().getDatabase();for(let r of e)try{let{v4:i}=await import("./dist-node-6WWAW7OP.js"),a=i(),o=`Auto-extracted pattern from ${r.sourceExperiences} experiences. Avg reward: ${r.avgReward.toFixed(3)}`;s.prepare(`
5
- INSERT INTO qe_patterns (
6
- id, pattern_type, qe_domain, domain, name, description,
7
- confidence, usage_count, success_rate, quality_score, tier,
8
- template_json, context_json, created_at, successful_uses
9
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), ?)
10
- `).run(a,r.patternType,r.domain,r.domain,r.name,o,r.confidence,r.sourceExperiences,r.successRate,r.confidence*.3+Math.min(r.sourceExperiences,100)/100*.2+r.successRate*.5,"short-term",JSON.stringify({type:"workflow",content:r.templateContent,variables:[]}),JSON.stringify({tags:r.actions,sourceType:"experience-extraction",extractedAt:new Date().toISOString()}),Math.round(r.sourceExperiences*r.successRate));let{ensurePatternEmbedding:c}=await import("./embed-and-insert-pattern-BGIMA77V.js");await c(s,a,r.name,o,r.actions),t++}catch(i){console.debug("[LearningConsolidation] Failed to create pattern:",i)}}catch(n){console.warn("[LearningConsolidation] Pattern creation batch failed:",n)}return t}addLifecycleStatsFinding(e,t,n){t.push({type:"lifecycle-stats",severity:"info",domain:"learning-optimization",title:"Pattern Lifecycle Statistics",description:`Active: ${e.activePatterns}, Promoted: ${e.promotedPatterns}, Deprecated: ${e.deprecatedPatterns}`,context:{total:e.totalPatterns,active:e.activePatterns,shortTerm:e.shortTermPatterns,longTerm:e.longTermPatterns,deprecated:e.deprecatedPatterns,avgConfidence:e.avgConfidence.toFixed(3),avgSuccessRate:e.avgSuccessRate.toFixed(3),nearDeprecation:e.patternsNearDeprecation}}),e.patternsNearDeprecation>0&&n.push({priority:"p2",domain:"learning-optimization",action:"Review At-Risk Patterns",description:`${e.patternsNearDeprecation} patterns are near deprecation threshold. Consider improving their usage or archiving them.`,estimatedImpact:"medium",effort:"low",autoFixable:!1}),e.avgSuccessRate<.6&&n.push({priority:"p2",domain:"learning-optimization",action:"Improve Pattern Quality",description:`Average success rate (${(e.avgSuccessRate*100).toFixed(1)}%) is below target. Focus on quality over quantity.`,estimatedImpact:"high",effort:"medium",autoFixable:!1})}determineTrend(e){let t=e.patternsPromoted/Math.max(1,e.patternsAnalyzed),n=e.patternsDeprecated/Math.max(1,e.patternsAnalyzed),s=e.patternCandidatesFound/Math.max(1,e.experiencesProcessed);return t>.1&&s>.2?"improving":n>.2||e.patternsPruned>e.newInsights?"degrading":"stable"}async collectPatterns(e){let t=[],n=[];for(let s of w)try{let r=await this.getDomainPatterns(e,s);t.push(...r)}catch(r){let i=b(r);n.push(`${s}: ${i}`),e.logger.warn(`Failed to collect patterns from ${s}`,{error:r})}if(t.length===0&&n.length>0)throw new Error(`Failed to collect any learning patterns. Errors from domains: ${n.join("; ")}. Ensure at least one domain is available and has pattern data.`);if(t.length===0)throw new Error("No learning patterns to consolidate yet. Patterns accumulate as the captured-experience bridge feeds hook activity into the learning-optimization domain \u2014 first runs may be empty until a kernel-owning process (CLI/MCP) has been alive long enough to drain the captured_experiences table.");return t}async getDomainPatterns(e,t){let n=e.domains.getDomainAPI("learning-optimization");if(!n)throw new Error(`Learning-optimization domain not available for ${t} - cannot retrieve patterns. Ensure the learning-optimization domain is properly initialized.`);let s=await n.getPatternStats(t);if(!s.success)throw new Error(`Failed to get pattern stats for ${t}: Unknown error. Check domain service health and data availability.`);return!s.value||!s.value.topPatterns||s.value.topPatterns.length===0?(e.logger.debug(`No patterns found for domain ${t}`),[]):s.value.topPatterns.map(i=>({id:i.id,domain:i.domain,type:i.type,pattern:i.name,confidence:i.confidence,occurrences:i.usageCount,lastSeen:new Date(i.lastUsedAt),effectiveness:i.successRate}))}async consolidatePatterns(e,t){let n=0,s=0,r=0,i=new Map;for(let l of t){let m=`${l.type}:${l.pattern}`,d=i.get(m)||[];d.push(l),i.set(m,d)}for(let[,l]of Array.from(i.entries()))l.length>1&&(s+=l.length-1);n=t.filter(l=>l.confidence<.5).length;let o=t.filter(l=>{let m=(Date.now()-l.lastSeen.getTime())/864e5;return l.effectiveness>.8&&m<7});r=o.length;let c=this.findCrossDomainPatterns(t);return await e.memory.set("learning:insights",{recentHighPerformers:o,crossDomainPatterns:c,timestamp:new Date().toISOString()}),{patternsAnalyzed:t.length,patternsPruned:n,patternsConsolidated:s,newInsights:r,strategyUpdates:0,crossDomainPatterns:c.length,dreamInsights:0,dreamPatternsCreated:0,experiencesProcessed:0,patternCandidatesFound:0,patternsPromoted:0,patternsDeprecated:0,confidenceDecayApplied:0,experiencesMerged:0,experiencesArchived:0,patternsMined:0,domainsMined:0,dreamInsightsPruned:0}}async runDreamCycle(e,t,n,s){if(t.length<10)return e.logger.debug("Skipping dream cycle - insufficient patterns",{patternCount:t.length,required:10}),{insights:0,patternsCreated:0};let r=null;try{r=new j,await r.initialize();let i=t.map(c=>({id:c.id,name:c.pattern,description:`${c.type} pattern from ${c.domain} (effectiveness: ${c.effectiveness})`,domain:c.domain,patternType:c.type,confidence:c.confidence,successRate:c.effectiveness}));await r.loadPatternsAsConcepts(i),e.logger.debug("Starting dream cycle",{patternCount:t.length});let a=await r.dream(),o=a.insights.filter(c=>c.actionable&&c.confidenceScore>.7);return o.length>0&&(n.push({type:"dream-insights",severity:"info",domain:"learning-optimization",title:"Dream Cycle Insights Generated",description:`${o.length} actionable insights discovered through pattern association`,context:{totalInsights:a.insights.length,actionableInsights:o.length,topInsight:o[0]?.description,activationIterations:a.activationStats.totalIterations}}),s.push({priority:"p2",domain:"learning-optimization",action:"Apply Dream Insights",description:`${o.length} insights from dream cycle can improve pattern effectiveness`,estimatedImpact:"medium",effort:"low",autoFixable:!0})),await e.memory.set("learning:dreamInsights",{cycleId:a.cycle.id,insights:o,timestamp:new Date().toISOString()}),e.logger.info("Dream cycle completed",{insights:a.insights.length,actionable:o.length,duration:a.cycle.durationMs}),{insights:a.insights.length,patternsCreated:a.patternsCreated}}catch(i){return e.logger.warn("Dream cycle failed",{error:b(i)}),{insights:0,patternsCreated:0}}finally{r&&await r.close()}}findCrossDomainPatterns(e){let t=new Map;for(let s of e){let r=t.get(s.type)||[];r.push(s),t.set(s.type,r)}let n=[];for(let[s,r]of Array.from(t.entries())){let i=Array.from(new Set(r.map(a=>a.domain)));i.length>=3&&n.push({pattern:s,domains:i,avgEffectiveness:r.reduce((a,o)=>a+o.effectiveness,0)/r.length})}return n}identifyCrossDomainPatterns(e,t,n){let s=this.findCrossDomainPatterns(e);s.length>0&&(t.push({type:"cross-domain-patterns",severity:"info",domain:"learning-optimization",title:"Cross-Domain Patterns Identified",description:`${s.length} patterns are effective across multiple domains`,context:{patterns:s.map(r=>({type:r.pattern,domains:r.domains.length,effectiveness:r.avgEffectiveness.toFixed(2)}))}}),n.push({priority:"p2",domain:"learning-optimization",action:"Leverage Cross-Domain Patterns",description:"Apply successful cross-domain patterns to domains where they are not yet used.",estimatedImpact:"medium",effort:"low",autoFixable:!0}))}pruneIneffectivePatterns(e,t,n){let s=e.filter(i=>i.effectiveness<.3&&i.occurrences>10),r=e.filter(i=>(Date.now()-i.lastSeen.getTime())/864e5>30);s.length>0&&(t.push({type:"ineffective-patterns",severity:"low",domain:"learning-optimization",title:"Ineffective Patterns Detected",description:`${s.length} patterns have low effectiveness despite many occurrences`,context:{count:s.length,domains:Array.from(new Set(s.map(i=>i.domain)))}}),n.push({priority:"p3",domain:"learning-optimization",action:"Review Ineffective Patterns",description:"Consider removing or refining patterns that consistently underperform.",estimatedImpact:"low",effort:"low",autoFixable:!0})),r.length>0&&t.push({type:"stale-patterns",severity:"info",domain:"learning-optimization",title:"Stale Patterns Identified",description:`${r.length} patterns have not been seen in over 30 days`,context:{count:r.length}})}generateOptimizations(e,t,n){let s=new Map;for(let a of e)s.set(a.domain,(s.get(a.domain)||0)+1);let r=w.filter(a=>(s.get(a)||0)<3);r.length>0&&(t.push({type:"learning-gaps",severity:"medium",domain:"learning-optimization",title:"Learning Gaps Identified",description:`${r.length} domains have few learned patterns`,context:{domains:r}}),n.push({priority:"p2",domain:"learning-optimization",action:"Improve Learning Coverage",description:`Focus learning efforts on domains with few patterns: ${r.join(", ")}`,estimatedImpact:"medium",effort:"medium",autoFixable:!1}));let i=e.filter(a=>a.effectiveness>.9&&a.occurrences>20).sort((a,o)=>o.effectiveness-a.effectiveness).slice(0,5);i.length>0&&t.push({type:"top-patterns",severity:"info",domain:"learning-optimization",title:"Top Performing Patterns",description:`${i.length} patterns show exceptional effectiveness`,context:{patterns:i.map(a=>({domain:a.domain,type:a.type,effectiveness:a.effectiveness.toFixed(2)}))}})}calculateHealthScore(e,t){if(t.length===0)return 50;let s=t.reduce((i,a)=>i+a.effectiveness,0)/t.length*50;s+=Math.min(20,e.newInsights*4),s+=Math.min(15,e.crossDomainPatterns*3),s+=Math.min(10,e.dreamInsights*2);let r=e.patternsPruned/e.patternsAnalyzed;return s-=r*15,Math.max(0,Math.min(100,Math.round(s)))}};var le={id:"defect-predictor",name:"Defect Predictor",description:"Uses ML patterns to predict potential defects and identify high-risk code areas",intervalMs:900*1e3,priority:"high",targetDomains:["defect-intelligence"],enabled:!0,timeoutMs:18e4,retryCount:2,retryDelayMs:15e3},I=class extends y{constructor(){super(le)}async doExecute(e){let t=Date.now();e.logger.info("Starting defect prediction analysis");let n=[],s=[],r=await this.analyzeCodeForDefects(e),i=await this.identifyHotspots(e);this.analyzeHighRiskPredictions(r,n,s),this.analyzeHotspots(i,n,s),await e.memory.set("defect:predictions",r),await e.memory.set("defect:hotspots",i),await e.memory.set("defect:lastAnalysis",new Date().toISOString());let a=this.calculateHealthScore(r,i);return e.logger.info("Defect prediction complete",{healthScore:a,predictionsCount:r.length,hotspotsCount:i.length}),this.createResult(Date.now()-t,{itemsAnalyzed:r.length,issuesFound:r.filter(o=>o.probability>.5).length,healthScore:a,trend:"stable",domainMetrics:{filesAnalyzed:r.length,highRiskFiles:r.filter(o=>o.riskLevel==="high"||o.riskLevel==="critical").length,hotspots:i.length,avgDefectProbability:(r.reduce((o,c)=>o+c.probability,0)/r.length).toFixed(2)}},n,s)}async analyzeCodeForDefects(e){return[{file:"src/coordination/workflow-orchestrator.ts",probability:.78,riskLevel:"high",factors:[{name:"complexity",weight:.3,description:"High cyclomatic complexity (28)"},{name:"change-frequency",weight:.25,description:"Changed 15 times in last 30 days"},{name:"size",weight:.2,description:"Large file (1500+ lines)"},{name:"coupling",weight:.15,description:"High coupling with 8 other modules"}],recentChanges:15,historicalDefects:3,complexity:28},{file:"src/domains/security-compliance/services/security-scanner.ts",probability:.65,riskLevel:"high",factors:[{name:"complexity",weight:.35,description:"High cyclomatic complexity (32)"},{name:"size",weight:.25,description:"Very large file (1200+ lines)"},{name:"test-coverage",weight:.2,description:"Low test coverage (45%)"}],recentChanges:8,historicalDefects:2,complexity:32},{file:"src/kernel/memory-backend.ts",probability:.45,riskLevel:"medium",factors:[{name:"change-frequency",weight:.4,description:"Changed 10 times in last 30 days"},{name:"authors",weight:.3,description:"Multiple authors (4)"}],recentChanges:10,historicalDefects:1,complexity:15},{file:"src/shared/http/http-client.ts",probability:.25,riskLevel:"low",factors:[{name:"stability",weight:.5,description:"Stable code, few recent changes"}],recentChanges:2,historicalDefects:0,complexity:8}]}async identifyHotspots(e){return[{file:"src/coordination/workflow-orchestrator.ts",changeFrequency:15,defectDensity:.02,authors:4,lastModified:new Date(Date.now()-2880*60*1e3),score:.85},{file:"src/domains/test-generation/services/test-generator.ts",changeFrequency:12,defectDensity:.015,authors:3,lastModified:new Date(Date.now()-7200*60*1e3),score:.72},{file:"src/mcp/server.ts",changeFrequency:8,defectDensity:.01,authors:2,lastModified:new Date(Date.now()-4320*60*1e3),score:.55}]}analyzeHighRiskPredictions(e,t,n){let s=e.filter(i=>i.riskLevel==="critical"),r=e.filter(i=>i.riskLevel==="high");for(let i of s)t.push({type:"critical-defect-risk",severity:"critical",domain:"defect-intelligence",title:`Critical Defect Risk: ${i.file.split("/").pop()}`,description:`${(i.probability*100).toFixed(0)}% probability of defect based on code analysis`,resource:i.file,context:{probability:i.probability,factors:i.factors,recentChanges:i.recentChanges,historicalDefects:i.historicalDefects}});for(let i of r)t.push({type:"high-defect-risk",severity:"high",domain:"defect-intelligence",title:`High Defect Risk: ${i.file.split("/").pop()}`,description:`${(i.probability*100).toFixed(0)}% probability of defect`,resource:i.file,context:{probability:i.probability,topFactors:i.factors.slice(0,3),complexity:i.complexity}});if(s.length>0||r.length>0){n.push({priority:"p0",domain:"defect-intelligence",action:"Prioritize Code Review for High-Risk Files",description:`${s.length+r.length} files have elevated defect risk. Schedule focused code reviews.`,estimatedImpact:"high",effort:"medium",autoFixable:!1});let i=e.filter(o=>o.factors.some(c=>c.name==="complexity"&&c.weight>.25));i.length>0&&n.push({priority:"p1",domain:"defect-intelligence",action:"Reduce Code Complexity",description:`${i.length} files have high complexity as a defect risk factor. Consider refactoring.`,estimatedImpact:"high",effort:"high",autoFixable:!1});let a=e.filter(o=>o.factors.some(c=>c.name==="test-coverage"));a.length>0&&n.push({priority:"p1",domain:"defect-intelligence",action:"Improve Test Coverage for Risky Files",description:`${a.length} high-risk files have low test coverage. Add targeted tests.`,estimatedImpact:"high",effort:"medium",autoFixable:!0})}}analyzeHotspots(e,t,n){let s=e.filter(i=>i.score>.7);s.length>0&&(t.push({type:"code-hotspots",severity:"medium",domain:"defect-intelligence",title:`${s.length} Code Hotspots Detected`,description:"Files with high change frequency and defect density identified",context:{hotspots:s.map(i=>({file:i.file,changeFrequency:i.changeFrequency,score:i.score.toFixed(2)}))}}),n.push({priority:"p2",domain:"defect-intelligence",action:"Address Code Hotspots",description:"Consider refactoring frequently-changed, defect-prone files to improve stability.",estimatedImpact:"medium",effort:"high",autoFixable:!1}));let r=e.filter(i=>i.authors===1&&i.changeFrequency>5);r.length>0&&(t.push({type:"knowledge-silo",severity:"medium",domain:"defect-intelligence",title:"Knowledge Silos Detected",description:`${r.length} frequently-changed files have only one author`,context:{files:r.map(i=>i.file)}}),n.push({priority:"p2",domain:"defect-intelligence",action:"Address Knowledge Silos",description:"Ensure knowledge sharing for files maintained by single developers.",estimatedImpact:"medium",effort:"low",autoFixable:!1}))}calculateHealthScore(e,t){if(e.length===0)return 100;let s=(1-e.reduce((o,c)=>o+c.probability,0)/e.length)*60,r=e.filter(o=>o.riskLevel==="critical"||o.riskLevel==="high").length;s-=r/e.length*20;let i=t.filter(o=>o.score>.7).length;s-=i*3;let a=e.filter(o=>o.riskLevel==="low").length/e.length;return s+=a*20,Math.max(0,Math.min(100,Math.round(s)))}};var ue={id:"regression-monitor",name:"Regression Monitor",description:"Monitors for regressions in test results, performance, coverage, and quality metrics",intervalMs:600*1e3,priority:"high",targetDomains:["test-execution","coverage-analysis","quality-assessment"],enabled:!0,timeoutMs:12e4,retryCount:2,retryDelayMs:1e4},A=class extends y{constructor(){super(ue)}async doExecute(e){let t=Date.now();e.logger.info("Starting regression monitoring");let n=[],s=[],r=await this.collectCurrentSnapshot(e),i=await e.memory.get("regression:baseline"),a=[];i&&(a=this.detectRegressions(i,r),this.analyzeRegressions(a,n,s)),await e.memory.set("regression:baseline",r);let o=await e.memory.get("regression:history")||[];if(a.length>0){for(o.push(...a);o.length>100;)o.shift();await e.memory.set("regression:history",o)}let c=this.calculateHealthScore(a);return e.logger.info("Regression monitoring complete",{healthScore:c,regressionsDetected:a.length}),this.createResult(Date.now()-t,{itemsAnalyzed:5,issuesFound:a.length,healthScore:c,trend:a.length>0?"degrading":"stable",domainMetrics:{testPassRate:`${r.testPassRate}%`,lineCoverage:`${r.coverage.line}%`,avgTestDuration:`${r.avgTestDuration}ms`,qualityScore:r.qualityScore,regressionsDetected:a.length}},n,s)}async collectCurrentSnapshot(e){return{timestamp:new Date,testPassRate:98.2,coverage:{line:78.5,branch:65.2},avgTestDuration:245,failedTests:["test-execution/retry-handler.test.ts::should retry failed tests","coordination/workflow.test.ts::should handle concurrent workflows"],qualityScore:82}}detectRegressions(e,t){let n=[];if(t.testPassRate<e.testPassRate-1){let i=t.testPassRate-e.testPassRate;n.push({type:"test",metric:"testPassRate",previousValue:e.testPassRate,currentValue:t.testPassRate,changePercent:i,severity:i<-5?"critical":i<-2?"high":"medium",affectedTests:t.failedTests})}if(t.coverage.line<e.coverage.line-2){let i=t.coverage.line-e.coverage.line;n.push({type:"coverage",metric:"lineCoverage",previousValue:e.coverage.line,currentValue:t.coverage.line,changePercent:i,severity:i<-5?"high":"medium"})}if(t.coverage.branch<e.coverage.branch-3){let i=t.coverage.branch-e.coverage.branch;n.push({type:"coverage",metric:"branchCoverage",previousValue:e.coverage.branch,currentValue:t.coverage.branch,changePercent:i,severity:i<-5?"high":"medium"})}let s=(t.avgTestDuration-e.avgTestDuration)/e.avgTestDuration*100;if(s>20&&n.push({type:"performance",metric:"avgTestDuration",previousValue:e.avgTestDuration,currentValue:t.avgTestDuration,changePercent:s,severity:s>50?"high":"medium"}),t.qualityScore<e.qualityScore-5){let i=t.qualityScore-e.qualityScore;n.push({type:"quality",metric:"qualityScore",previousValue:e.qualityScore,currentValue:t.qualityScore,changePercent:i,severity:i<-10?"critical":i<-5?"high":"medium"})}let r=t.failedTests.filter(i=>!e.failedTests.includes(i));return r.length>0&&n.push({type:"test",metric:"newFailures",previousValue:0,currentValue:r.length,changePercent:100,severity:r.length>5?"critical":r.length>2?"high":"medium",affectedTests:r}),n}analyzeRegressions(e,t,n){for(let a of e){let o=this.getDomainForType(a.type);t.push({type:`${a.type}-regression`,severity:a.severity,domain:o,title:`${this.formatMetricName(a.metric)} Regression Detected`,description:this.formatRegressionDescription(a),context:{previousValue:a.previousValue,currentValue:a.currentValue,changePercent:a.changePercent.toFixed(2),affectedTests:a.affectedTests}})}let s=e.filter(a=>a.type==="test");if(s.length>0){let a=s.filter(o=>o.severity==="critical"||o.severity==="high");a.length>0&&n.push({priority:"p0",domain:"test-execution",action:"Investigate Test Regressions Immediately",description:`${a.length} significant test regressions detected. Review recent changes.`,estimatedImpact:"high",effort:"medium",autoFixable:!1})}e.filter(a=>a.type==="coverage").length>0&&n.push({priority:"p1",domain:"coverage-analysis",action:"Address Coverage Regression",description:"Code coverage has decreased. Add tests for new/changed code.",estimatedImpact:"medium",effort:"medium",autoFixable:!0}),e.filter(a=>a.type==="performance").length>0&&n.push({priority:"p2",domain:"test-execution",action:"Investigate Performance Regression",description:"Test execution has slowed. Review for new slow tests or infrastructure issues.",estimatedImpact:"medium",effort:"low",autoFixable:!1})}getDomainForType(e){switch(e){case"test":case"performance":return"test-execution";case"coverage":return"coverage-analysis";case"quality":return"quality-assessment";default:return"quality-assessment"}}formatMetricName(e){return{testPassRate:"Test Pass Rate",lineCoverage:"Line Coverage",branchCoverage:"Branch Coverage",avgTestDuration:"Test Duration",qualityScore:"Quality Score",newFailures:"New Test Failures"}[e]||e}formatRegressionDescription(e){if(e.metric==="newFailures")return`${e.currentValue} new test failures detected since last check`;let t=e.changePercent>0?"increased":"decreased",n=e.type==="performance"?"ms":"%";return`${this.formatMetricName(e.metric)} ${t} from ${e.previousValue}${n} to ${e.currentValue}${n} (${e.changePercent>0?"+":""}${e.changePercent.toFixed(1)}%)`}calculateHealthScore(e){if(e.length===0)return 100;let t=100;for(let n of e)switch(n.severity){case"critical":t-=25;break;case"high":t-=15;break;case"medium":t-=8;break;case"low":t-=3;break}return Math.max(0,Math.round(t))}};var de={id:"performance-baseline",name:"Performance Baseline Tracker",description:"Tracks performance trends and establishes baselines for test execution and builds",intervalMs:3600*1e3,priority:"normal",targetDomains:["test-execution","chaos-resilience"],enabled:!0,timeoutMs:3e5,retryCount:2,retryDelayMs:3e4},E=class extends y{constructor(){super(de)}async doExecute(e){let t=Date.now();e.logger.info("Starting performance baseline tracking");let n=[],s=[],r=await this.collectPerformanceMetrics(e),i=await this.getOrCalculateBaseline(e),a=this.detectAnomalies(r,i);this.analyzeAnomalies(a,n,s),await this.updateBaseline(e,r,i),await this.storeMetricsHistory(e,r);let o=this.calculateHealthScore(a);return e.logger.info("Performance baseline tracking complete",{healthScore:o,anomaliesDetected:a.length}),this.createResult(Date.now()-t,{itemsAnalyzed:10,issuesFound:a.length,healthScore:o,trend:a.length>2?"degrading":"stable",domainMetrics:{avgTestDuration:`${r.testExecution.avgTestDurationMs}ms`,p95TestDuration:`${r.testExecution.p95DurationMs}ms`,compileDuration:`${r.build.compileDurationMs}ms`,bundleSize:`${r.build.bundleSizeKb}KB`,peakMemory:`${r.resources.peakMemoryMb}MB`,anomalies:a.length}},n,s)}async collectPerformanceMetrics(e){return{timestamp:new Date,testExecution:{totalDurationMs:45e3,avgTestDurationMs:245,slowestTestMs:3500,slowestTestName:"workflow-orchestrator.test.ts::complex scenario",p50DurationMs:120,p95DurationMs:800,p99DurationMs:2500},build:{compileDurationMs:12e3,bundleSizeKb:2500,dependencyCount:45},resources:{peakMemoryMb:512,avgCpuPercent:65,diskReadMb:150,diskWriteMb:50}}}async getOrCalculateBaseline(e){let t=await e.memory.get("performance:baseline");return t||{testExecution:{avgDurationMs:200,p95DurationMs:700,threshold:1.3},build:{avgCompileMs:1e4,avgBundleSizeKb:2400,threshold:1.2},resources:{avgMemoryMb:450,avgCpuPercent:60,threshold:1.25}}}detectAnomalies(e,t){let n=[],s=e.testExecution.avgTestDurationMs/t.testExecution.avgDurationMs;s>t.testExecution.threshold&&n.push({metric:"avgTestDuration",category:"test",currentValue:e.testExecution.avgTestDurationMs,baselineValue:t.testExecution.avgDurationMs,deviationPercent:(s-1)*100,severity:s>1.5?"high":"medium"});let r=e.testExecution.p95DurationMs/t.testExecution.p95DurationMs;r>t.testExecution.threshold&&n.push({metric:"p95TestDuration",category:"test",currentValue:e.testExecution.p95DurationMs,baselineValue:t.testExecution.p95DurationMs,deviationPercent:(r-1)*100,severity:r>1.5?"high":"medium"});let i=e.build.compileDurationMs/t.build.avgCompileMs;i>t.build.threshold&&n.push({metric:"compileDuration",category:"build",currentValue:e.build.compileDurationMs,baselineValue:t.build.avgCompileMs,deviationPercent:(i-1)*100,severity:i>1.5?"high":"medium"});let a=e.build.bundleSizeKb/t.build.avgBundleSizeKb;a>t.build.threshold&&n.push({metric:"bundleSize",category:"build",currentValue:e.build.bundleSizeKb,baselineValue:t.build.avgBundleSizeKb,deviationPercent:(a-1)*100,severity:a>1.3?"high":"medium"});let o=e.resources.peakMemoryMb/t.resources.avgMemoryMb;o>t.resources.threshold&&n.push({metric:"peakMemory",category:"resource",currentValue:e.resources.peakMemoryMb,baselineValue:t.resources.avgMemoryMb,deviationPercent:(o-1)*100,severity:o>1.5?"critical":o>1.3?"high":"medium"});let c=e.resources.avgCpuPercent/t.resources.avgCpuPercent;return c>t.resources.threshold&&n.push({metric:"avgCpu",category:"resource",currentValue:e.resources.avgCpuPercent,baselineValue:t.resources.avgCpuPercent,deviationPercent:(c-1)*100,severity:c>1.4?"high":"medium"}),n}analyzeAnomalies(e,t,n){for(let a of e){let o=a.category==="test"?"test-execution":"chaos-resilience";t.push({type:`performance-anomaly-${a.category}`,severity:a.severity,domain:o,title:`Performance Anomaly: ${this.formatMetricName(a.metric)}`,description:`${this.formatMetricName(a.metric)} is ${a.deviationPercent.toFixed(1)}% above baseline`,context:{currentValue:a.currentValue,baselineValue:a.baselineValue,deviationPercent:a.deviationPercent.toFixed(1)}})}let s=e.filter(a=>a.category==="test");s.length>0&&n.push({priority:s.some(a=>a.severity==="high")?"p1":"p2",domain:"test-execution",action:"Investigate Test Performance Degradation",description:"Test execution times have increased. Review for slow tests or infrastructure issues.",estimatedImpact:"medium",effort:"medium",autoFixable:!1});let r=e.filter(a=>a.category==="build");r.length>0&&r.find(o=>o.metric==="bundleSize")&&n.push({priority:"p2",domain:"chaos-resilience",action:"Analyze Bundle Size Increase",description:"Bundle size has grown. Review for unnecessary dependencies or unoptimized imports.",estimatedImpact:"medium",effort:"low",autoFixable:!0});let i=e.filter(a=>a.category==="resource");if(i.length>0){let a=i.find(o=>o.metric==="peakMemory");a&&a.severity==="critical"&&n.push({priority:"p0",domain:"chaos-resilience",action:"Investigate Memory Usage Spike",description:"Memory usage is significantly above baseline. Check for memory leaks.",estimatedImpact:"high",effort:"high",autoFixable:!1})}}formatMetricName(e){return{avgTestDuration:"Average Test Duration",p95TestDuration:"P95 Test Duration",compileDuration:"Compile Duration",bundleSize:"Bundle Size",peakMemory:"Peak Memory Usage",avgCpu:"Average CPU Usage"}[e]||e}async updateBaseline(e,t,n){let r={testExecution:{avgDurationMs:n.testExecution.avgDurationMs*.9+t.testExecution.avgTestDurationMs*.1,p95DurationMs:n.testExecution.p95DurationMs*.9+t.testExecution.p95DurationMs*.1,threshold:n.testExecution.threshold},build:{avgCompileMs:n.build.avgCompileMs*.9+t.build.compileDurationMs*.1,avgBundleSizeKb:n.build.avgBundleSizeKb*.9+t.build.bundleSizeKb*.1,threshold:n.build.threshold},resources:{avgMemoryMb:n.resources.avgMemoryMb*.9+t.resources.peakMemoryMb*.1,avgCpuPercent:n.resources.avgCpuPercent*.9+t.resources.avgCpuPercent*.1,threshold:n.resources.threshold}};await e.memory.set("performance:baseline",r)}async storeMetricsHistory(e,t){let n=await e.memory.get("performance:history")||[];for(n.push(t);n.length>168;)n.shift();await e.memory.set("performance:history",n)}calculateHealthScore(e){if(e.length===0)return 100;let t=100;for(let n of e){let s={critical:25,high:15,medium:8,low:3}[n.severity],r=Math.min(10,n.deviationPercent/10);t-=s+r}return Math.max(0,Math.round(t))}};var me={id:"compliance-checker",name:"ADR/DDD Compliance Checker",description:"Verifies compliance with Architecture Decision Records and DDD patterns",intervalMs:1800*1e3,priority:"normal",targetDomains:["quality-assessment"],enabled:!0,timeoutMs:24e4,retryCount:2,retryDelayMs:3e4},$=class extends y{constructor(){super(me)}async doExecute(e){let t=Date.now();e.logger.info("Starting compliance checking");let n=[],s=[],r=await this.checkADRCompliance(e),i=await this.checkDDDCompliance(e),a=await this.checkStructuralCompliance(e);this.analyzeADRCompliance(r,n,s),this.analyzeDDDCompliance(i,n,s),this.analyzeStructuralCompliance(a,n,s),await e.memory.set("compliance:adr",r),await e.memory.set("compliance:ddd",i),await e.memory.set("compliance:structural",a),await e.memory.set("compliance:lastCheck",new Date().toISOString());let o=this.calculateHealthScore(r,i,a);return e.logger.info("Compliance checking complete",{healthScore:o,adrChecks:r.length,domainChecks:i.length}),this.createResult(Date.now()-t,{itemsAnalyzed:r.length+i.length+a.length,issuesFound:n.length,healthScore:o,trend:"stable",domainMetrics:{adrCompliance:`${this.calculateAvgScore(r)}%`,dddCompliance:`${this.calculateDDDAvgScore(i)}%`,structuralCompliance:`${this.calculateStructuralScore(a)}%`,totalViolations:r.reduce((c,l)=>c+l.violations.length,0)+i.reduce((c,l)=>c+l.violations.length,0)}},n,s)}async checkADRCompliance(e){if(!e.domains.getDomainAPI("quality-assessment"))throw new Error("Quality-assessment domain not available - cannot check ADR compliance. Ensure the quality-assessment domain is properly initialized before running this worker.");let n=await e.memory.search("compliance:adr:*");if(n.length===0)throw new Error('No ADR compliance data found in memory - cannot check ADR compliance. Ensure ADR compliance data is stored with keys matching "compliance:adr:*" before running this worker.');let s=[],r=[];for(let i of n)try{let a=await e.memory.get(i);a&&s.push(a)}catch{r.push(i)}if(s.length===0)throw new Error(`Found ${n.length} ADR compliance keys but failed to retrieve any data. Failed keys: ${r.join(", ")}. Check memory service connectivity.`);return s}async checkDDDCompliance(e){let t=[];for(let n of w)try{let s=await this.checkDomainCompliance(e,n);t.push(s)}catch(s){e.logger.warn(`Failed to check DDD compliance for ${n}`,{error:s})}return t}async checkDomainCompliance(e,t){let n=e.domains.getDomainHealth(t),s=e.domains.getDomainAPI(t),r=n.status!=="unhealthy",i=s!==void 0,a=i,o=i,c=await e.memory.get(`compliance:ddd:${t}`),l=c?.hasEntities??!1,m=c?.hasEvents??!1,d=c?.hasRepositories??!1,f=c?.namingCompliant??i,p=[];l||p.push("Missing domain entities"),m||p.push("Missing domain events"),d||p.push("Missing repositories"),r||p.push("Domain coordinator not available"),i||p.push("Domain plugin not loaded");let g=[r,i,a,o,l,m,d,f],u=Math.round(g.filter(Boolean).length/g.length*100);return{domain:t,hasCoordinator:r,hasPlugin:i,hasInterfaces:a,hasServices:o,hasEntities:l,hasEvents:m,hasRepositories:d,namingCompliant:f,score:u,violations:p}}async checkStructuralCompliance(e){let t=await e.memory.search("compliance:structural:*");if(t.length===0)throw new Error('No structural compliance data found in memory - cannot check structural compliance. Ensure structural compliance data is stored with keys matching "compliance:structural:*" before running this worker.');let n=[],s=[];for(let r of t)try{let i=await e.memory.get(r);i&&n.push(i)}catch(i){s.push(r),e.logger.warn(`Failed to retrieve structural compliance data: ${r}`,{error:i})}if(n.length===0)throw new Error(`Found ${t.length} structural compliance keys but failed to retrieve any data. Failed keys: ${s.join(", ")}. Check memory service connectivity.`);return n}analyzeADRCompliance(e,t,n){let s=e.filter(i=>i.status==="non-compliant"),r=e.filter(i=>i.status==="partial");for(let i of s)t.push({type:"adr-non-compliance",severity:"high",domain:"quality-assessment",title:`ADR Non-Compliance: ${i.adrId}`,description:`${i.title} is not compliant (score: ${i.score}%)`,context:{adrId:i.adrId,violations:i.violations}});for(let i of r)t.push({type:"adr-partial-compliance",severity:"medium",domain:"quality-assessment",title:`ADR Partial Compliance: ${i.adrId}`,description:`${i.title} is partially compliant (score: ${i.score}%)`,context:{adrId:i.adrId,violations:i.violations}});s.length>0&&n.push({priority:"p1",domain:"quality-assessment",action:"Address ADR Non-Compliance",description:`${s.length} ADRs are not being followed. Review and implement required patterns.`,estimatedImpact:"high",effort:"high",autoFixable:!1})}analyzeDDDCompliance(e,t,n){let s=e.filter(a=>a.score<70),r=e.filter(a=>!a.hasEntities),i=e.filter(a=>!a.hasEvents);s.length>0&&t.push({type:"ddd-low-compliance",severity:"medium",domain:"quality-assessment",title:`${s.length} Domains Have Low DDD Compliance`,description:"Some domains are missing required DDD components",context:{domains:s.map(a=>({domain:a.domain,score:a.score}))}}),r.length>0&&(t.push({type:"ddd-missing-entities",severity:"low",domain:"quality-assessment",title:"Domains Missing Entity Definitions",description:`${r.length} domains lack proper entity definitions`,context:{domains:r.map(a=>a.domain)}}),n.push({priority:"p3",domain:"quality-assessment",action:"Add Domain Entities",description:"Define rich domain entities for domains that currently lack them.",estimatedImpact:"medium",effort:"medium",autoFixable:!1})),i.length>0&&n.push({priority:"p3",domain:"quality-assessment",action:"Implement Domain Events",description:`${i.length} domains are missing domain event definitions.`,estimatedImpact:"medium",effort:"medium",autoFixable:!1})}analyzeStructuralCompliance(e,t,n){let s=e.filter(r=>!r.compliant);for(let r of s)t.push({type:"structural-violation",severity:"medium",domain:"quality-assessment",title:`Structural Violation: ${r.category}`,description:`Rule "${r.rule}" is not being followed: ${r.details}`,context:{category:r.category,rule:r.rule}});s.length>0&&n.push({priority:"p2",domain:"quality-assessment",action:"Fix Structural Violations",description:`${s.length} structural rules are being violated. Review architecture guidelines.`,estimatedImpact:"medium",effort:"medium",autoFixable:!1})}calculateAvgScore(e){return e.length===0?100:Math.round(e.reduce((t,n)=>t+n.score,0)/e.length)}calculateDDDAvgScore(e){return e.length===0?100:Math.round(e.reduce((t,n)=>t+n.score,0)/e.length)}calculateStructuralScore(e){if(e.length===0)return 100;let t=e.filter(n=>n.compliant).length;return Math.round(t/e.length*100)}calculateHealthScore(e,t,n){let s=this.calculateAvgScore(e)*.4,r=this.calculateDDDAvgScore(t)*.4,i=this.calculateStructuralScore(n)*.2;return Math.round(s+r+i)}};V();var Ze={id:"cloud-sync",name:"Cloud Sync",description:"Periodically syncs local learning data to cloud PostgreSQL",intervalMs:parseInt(process.env.AQE_SYNC_INTERVAL||"3600000",10),priority:"low",targetDomains:["learning-optimization"],enabled:process.env.AQE_CLOUD_SYNC_ENABLED==="true",timeoutMs:6e5,retryCount:3,retryDelayMs:6e4};var pe={autoStart:!0,enabledWorkers:[],logLevel:"info",healthCheckIntervalMs:6e4},K=class{_running=!1;_startedAt;_healthCheckTimer;workerManager;config;_qualityDaemon;constructor(e){this.config={...pe,...e},this.workerManager=new N,this.registerWorkers()}get running(){return this._running}get uptime(){return this._startedAt?Math.floor((Date.now()-this._startedAt.getTime())/1e3):0}async start(){if(this._running){console.info("[Daemon] Already running");return}console.info("[Daemon] Starting QE Background Workers..."),this._running=!0,this._startedAt=new Date,this._healthCheckTimer=setInterval(()=>{this.performHealthCheck()},this.config.healthCheckIntervalMs),this._healthCheckTimer.unref?.(),this.config.autoStart&&(await this.workerManager.startAll(),console.info("[Daemon] All workers started"));let e=this.workerManager.list();console.info(`[Daemon] Registered ${e.length} workers:`);for(let t of e)console.info(` - ${t.config.id}: ${t.config.name} (interval: ${t.config.intervalMs}ms)`)}async stop(){if(!this._running){console.info("[Daemon] Not running");return}console.info("[Daemon] Stopping..."),this._healthCheckTimer&&(clearInterval(this._healthCheckTimer),this._healthCheckTimer=void 0),await this.workerManager.stopAll(),this._running=!1,console.info("[Daemon] Stopped")}async restart(){console.info("[Daemon] Restarting..."),await this.stop(),await this.start(),console.info("[Daemon] Restarted")}getStatus(){return{running:this._running,pid:process.pid,uptime:this.uptime,startedAt:this._startedAt,workerManager:this.workerManager.getHealth()}}getWorkerManager(){return this.workerManager}getQualityDaemon(e){return this._qualityDaemon||(this._qualityDaemon=new Z(e)),this._qualityDaemon}async runWorker(e){let t=await this.workerManager.runNow(e);console.info(`[Daemon] Worker ${e} completed:`,{success:t.success,duration:`${t.durationMs}ms`,findings:t.findings.length,healthScore:t.metrics.healthScore})}registerWorkers(){let e=[new M,new x,new P,new S,new W,new F,new I,new A,new E,new $,new B];for(let t of e)(this.config.enabledWorkers.length===0||this.config.enabledWorkers.includes(t.config.id))&&this.workerManager.register(t)}performHealthCheck(){let e=this.workerManager.getHealth();e.errorWorkers>0&&console.warn(`[Daemon] Health check: ${e.errorWorkers} workers in error state`),e.healthScore<70&&console.warn(`[Daemon] Health score degraded: ${e.healthScore}%`),this.config.logLevel==="debug"&&console.debug("[Daemon] Health check:",e)}};function ge(h){return new K(h)}var C;function vt(h){return C||(C=ge(h)),C}function kt(){C?.running&&C.stop().catch(console.error),C=void 0}export{K as QEDaemon,ge as createDaemon,vt as getDaemon,kt as resetDaemon};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a,c as b,d as c,e as d,f as e,g as f,h as g,i as h}from"./chunk-4YT5YN5G.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";export{f as CuriosityBonus,b as DEFAULT_DOMAIN_TRANSFER_CONFIG,c as DecayingBeta,g as DomainTransferEngine,e as ParetoFront,d as PlateauDetector,a as ThompsonSampler,h as createDomainTransferEngine};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u}from"./chunk-LKURMUBU.js";import"./chunk-XQ6DW5FV.js";import"./chunk-3SRPFBU7.js";import"./chunk-QEVX4GWF.js";import"./chunk-HWBMYR5W.js";import"./chunk-QSDIY3E2.js";import"./chunk-MYMIEQSZ.js";import"./chunk-DNOU2HVQ.js";import"./chunk-2WPSMQIL.js";import"./chunk-IF3HPQNV.js";import"./chunk-HT6WAYIR.js";import"./chunk-HJO4RNOW.js";import"./chunk-5AQ7FXYG.js";import"./chunk-YNK6SUPU.js";import"./chunk-JFLSQH2X.js";import"./chunk-YKSWC7I4.js";import"./chunk-54B6P2WS.js";import"./chunk-TPMBFARK.js";import"./chunk-LW5DHT3Z.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-LLUPRGOR.js";import"./chunk-VJGHRWMH.js";import"./chunk-IB3ZPLFA.js";import"./chunk-TSWF3AGQ.js";import"./chunk-NSPCZPTB.js";import"./chunk-O7PVZ32A.js";import"./chunk-PEIQDQXN.js";import"./chunk-BMQDELPA.js";import"./chunk-TCWR6TDN.js";import"./chunk-YUHM72VQ.js";import"./chunk-PQUXFSN6.js";import"./chunk-7AWK43JN.js";import"./chunk-VCUCD3B5.js";import"./chunk-QJ5NCYJ3.js";import"./chunk-TQ373GGI.js";import"./chunk-7QTB5XIQ.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";export{t as BUILT_IN_STRATEGIES,e as ConceptGraph,j as DEFAULT_ACTIVATION_CONFIG,d as DEFAULT_CONCEPT_GRAPH_CONFIG,p as DEFAULT_DREAM_CONFIG,a as DEFAULT_DREAM_SCHEDULER_CONFIG,l as DEFAULT_INSIGHT_CONFIG,n as DEFAULT_VALIDATION_THRESHOLDS,q as DreamEngine,b as DreamScheduler,i as HISTORY_TRIM_TARGET_RATIO,m as InsightGenerator,g as MAX_ACTIVATION_HISTORY_ENTRIES,h as MAX_COACTIVATION_ENTRIES,o as RVCOWBranchManager,u as SpeculativeDreamer,k as SpreadingActivation,f as createConceptGraph,r as createDreamEngine,c as createDreamScheduler,s as default};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{b as a}from"./chunk-AQIEK4SY.js";import"./chunk-UQ72K44T.js";import"./chunk-4JFH3MVA.js";import"./chunk-IF3HPQNV.js";import"./chunk-TPMBFARK.js";import"./chunk-LW5DHT3Z.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-LLUPRGOR.js";import"./chunk-VJGHRWMH.js";import"./chunk-NSPCZPTB.js";import"./chunk-PEIQDQXN.js";import"./chunk-TCWR6TDN.js";import"./chunk-YUHM72VQ.js";import"./chunk-PQUXFSN6.js";import"./chunk-7AWK43JN.js";import"./chunk-VCUCD3B5.js";import"./chunk-QJ5NCYJ3.js";import"./chunk-TQ373GGI.js";import"./chunk-7QTB5XIQ.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";export{a as HeartbeatSchedulerWorker};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a,c as b}from"./chunk-TQ373GGI.js";import"./chunk-7QTB5XIQ.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";b();export{a as HnswAdapter};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a,b,c,d}from"./chunk-T76RFXQX.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-7AWK43JN.js";import"./chunk-TQ373GGI.js";import"./chunk-7QTB5XIQ.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";export{a as DEFAULT_HNSW_CONFIG,b as HNSWIndex,d as benchmarkHNSW,c as createHNSWIndex};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a,b,c}from"./chunk-RCPD6F4R.js";import"./chunk-5Z4FBCBK.js";import"./chunk-MWFJC5HR.js";import"./chunk-37ZDGJ3H.js";import"./chunk-JNQN5DNS.js";import"./chunk-PEIQDQXN.js";import"./chunk-BMQDELPA.js";import"./chunk-Y4AXOHW4.js";export{a as HybridRouter,b as createHybridRouter,c as createQERouter};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a}from"./chunk-Z2REKBD6.js";import"./chunk-DRMHVY4T.js";import"./chunk-UJMTKXPI.js";import"./chunk-3SBUL72V.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-VJGHRWMH.js";import"./chunk-O7PVZ32A.js";import"./chunk-PEIQDQXN.js";import"./chunk-BMQDELPA.js";import"./chunk-Y4AXOHW4.js";export{a as ImpactAnalyzerService};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a,b,c,d}from"./chunk-LMJUMUQJ.js";import"./chunk-D5S47YUS.js";import"./chunk-THKZVOZV.js";import"./chunk-TU6YN43Q.js";import"./chunk-63QUN3JK.js";import"./chunk-VJGHRWMH.js";import"./chunk-PEIQDQXN.js";import"./chunk-TCWR6TDN.js";import"./chunk-YUHM72VQ.js";import"./chunk-Y4AXOHW4.js";export{a as InitOrchestrator,b as createInitOrchestrator,d as formatInitResult,c as quickInit};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{A as b,z as a}from"./chunk-X64BEXUY.js";import"./chunk-RFQBDMAP.js";import"./chunk-KUZMVH6N.js";import"./chunk-U34OZXD6.js";import"./chunk-JCTCM6IR.js";import"./chunk-5P7Q5YNC.js";import"./chunk-P6S6ZVB5.js";import"./chunk-7IKWF2AD.js";import"./chunk-NV3TXXOW.js";import"./chunk-3FJZMQJ7.js";import"./chunk-WQZ2WRO4.js";import"./chunk-NFJT7XXR.js";import"./chunk-MALOUGSF.js";import"./chunk-Q7ORVHJB.js";import"./chunk-O5NEJIHB.js";import"./chunk-LKURMUBU.js";import"./chunk-XQ6DW5FV.js";import"./chunk-WMIRAD3J.js";import"./chunk-4BFCLSDN.js";import"./chunk-3SRPFBU7.js";import"./chunk-QEVX4GWF.js";import"./chunk-KYTFIP6R.js";import"./chunk-G3TFNY4T.js";import"./chunk-NBBLPDJX.js";import"./chunk-5VSQAGA2.js";import"./chunk-QMC5MTBV.js";import"./chunk-63QUN3JK.js";import"./chunk-Z2REKBD6.js";import"./chunk-DRMHVY4T.js";import"./chunk-UJMTKXPI.js";import"./chunk-ZKCKOQJI.js";import"./chunk-FRFVN6AA.js";import"./chunk-GRQ36XUH.js";import"./chunk-WNMDWP5A.js";import"./chunk-3SBUL72V.js";import"./chunk-RCPD6F4R.js";import"./chunk-5Z4FBCBK.js";import"./chunk-MWFJC5HR.js";import"./chunk-37ZDGJ3H.js";import"./chunk-JNQN5DNS.js";import"./chunk-IQBZBUP5.js";import"./chunk-UCYTY4LG.js";import"./chunk-BRLUNIR4.js";import"./chunk-4YT5YN5G.js";import"./chunk-T76RFXQX.js";import"./chunk-HWBMYR5W.js";import"./chunk-QSDIY3E2.js";import"./chunk-MYMIEQSZ.js";import"./chunk-DNOU2HVQ.js";import"./chunk-2WPSMQIL.js";import"./chunk-IF3HPQNV.js";import"./chunk-HT6WAYIR.js";import"./chunk-HJO4RNOW.js";import"./chunk-5AQ7FXYG.js";import"./chunk-YNK6SUPU.js";import"./chunk-PFWJQPUC.js";import"./chunk-JFLSQH2X.js";import"./chunk-YKSWC7I4.js";import"./chunk-54B6P2WS.js";import"./chunk-TPMBFARK.js";import"./chunk-LW5DHT3Z.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-LLUPRGOR.js";import"./chunk-VJGHRWMH.js";import"./chunk-IB3ZPLFA.js";import"./chunk-TSWF3AGQ.js";import"./chunk-NSPCZPTB.js";import"./chunk-O7PVZ32A.js";import"./chunk-PEIQDQXN.js";import"./chunk-BMQDELPA.js";import"./chunk-ICCTQ5LO.js";import"./chunk-TCWR6TDN.js";import"./chunk-YUHM72VQ.js";import"./chunk-PQUXFSN6.js";import"./chunk-7AWK43JN.js";import"./chunk-VCUCD3B5.js";import"./chunk-QJ5NCYJ3.js";import"./chunk-TQ373GGI.js";import"./chunk-7QTB5XIQ.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";export{a as QEKernelImpl,b as createKernel};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{g as a}from"./chunk-DRMHVY4T.js";import"./chunk-UJMTKXPI.js";import"./chunk-3SBUL72V.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-VJGHRWMH.js";import"./chunk-O7PVZ32A.js";import"./chunk-PEIQDQXN.js";import"./chunk-Y4AXOHW4.js";export{a as KnowledgeGraphService};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a,b,c}from"./chunk-ZKCKOQJI.js";import"./chunk-FRFVN6AA.js";import"./chunk-GRQ36XUH.js";import"./chunk-WNMDWP5A.js";import"./chunk-3SBUL72V.js";import"./chunk-RCPD6F4R.js";import"./chunk-5Z4FBCBK.js";import"./chunk-MWFJC5HR.js";import"./chunk-37ZDGJ3H.js";import"./chunk-JNQN5DNS.js";import"./chunk-TPMBFARK.js";import"./chunk-LW5DHT3Z.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-LLUPRGOR.js";import"./chunk-VJGHRWMH.js";import"./chunk-NSPCZPTB.js";import"./chunk-PEIQDQXN.js";import"./chunk-BMQDELPA.js";import"./chunk-TCWR6TDN.js";import"./chunk-YUHM72VQ.js";import"./chunk-PQUXFSN6.js";import"./chunk-7AWK43JN.js";import"./chunk-VCUCD3B5.js";import"./chunk-QJ5NCYJ3.js";import"./chunk-TQ373GGI.js";import"./chunk-7QTB5XIQ.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";export{a as createLLMRouterService,b as pickEnabledProviders,c as pickPrimaryAndFallbacks};
@@ -1,2 +0,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.11.4");process.exit(0)}
2
- import{a}from"./chunk-TCVEKRPI.js";import"./chunk-ZSA6V5FH.js";import"./chunk-IQBZBUP5.js";import"./chunk-TPMBFARK.js";import"./chunk-LW5DHT3Z.js";import"./chunk-XXRTWG7O.js";import"./chunk-6GYGAW53.js";import"./chunk-LLUPRGOR.js";import"./chunk-VJGHRWMH.js";import"./chunk-NSPCZPTB.js";import"./chunk-PEIQDQXN.js";import"./chunk-BMQDELPA.js";import"./chunk-ICCTQ5LO.js";import"./chunk-TCWR6TDN.js";import"./chunk-YUHM72VQ.js";import"./chunk-PQUXFSN6.js";import"./chunk-7AWK43JN.js";import"./chunk-VCUCD3B5.js";import"./chunk-QJ5NCYJ3.js";import"./chunk-TQ373GGI.js";import"./chunk-7QTB5XIQ.js";import"./chunk-7ADD2ZQL.js";import"./chunk-Y4AXOHW4.js";export{a as LoadTestTool};