agentic-qe 3.15.9 → 3.15.10

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 (568) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +251 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/adapters/a2ui/catalog/component-schemas.js +2 -1
  5. package/dist/adapters/a2ui/data/json-pointer-resolver.js +10 -5
  6. package/dist/adapters/a2ui/integration/agui-sync.js +10 -6
  7. package/dist/adapters/a2ui/integration/surface-state-bridge.js +9 -5
  8. package/dist/adapters/ag-ui/json-patch.js +10 -6
  9. package/dist/audit/witness-chain.d.ts +1 -1
  10. package/dist/cli/bundle.js +6 -6
  11. package/dist/cli/chunks/adapter-TR5SLAZC.js +2 -0
  12. package/dist/cli/chunks/agent-booster-wasm-H7ANGXW4.js +2 -0
  13. package/dist/cli/chunks/{agent-handler-RIYHTHVZ.js → agent-handler-SVXSHEET.js} +2 -2
  14. package/dist/cli/chunks/{agent-memory-branch-WSUCUHOO.js → agent-memory-branch-WKQH36XL.js} +2 -2
  15. package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +2 -0
  16. package/dist/cli/chunks/{arena-KRIBMIXX.js → arena-EKOOFVST.js} +2 -2
  17. package/dist/cli/chunks/{arena-YAJZX6MC.js → arena-OPS36NFZ.js} +4 -4
  18. package/dist/cli/chunks/{audit-7ZNOXWP3.js → audit-AO5NDZRI.js} +3 -3
  19. package/dist/cli/chunks/base-GTB6POYE.js +2 -0
  20. package/dist/cli/chunks/{better-sqlite3-ZQAT4I6H.js → better-sqlite3-TFLVEMMY.js} +2 -2
  21. package/dist/cli/chunks/{brain-handler-452WCPZC.js → brain-handler-ADBBJPYW.js} +3 -3
  22. package/dist/cli/chunks/{branch-enumerator-IJFXJRPN.js → branch-enumerator-HGHUYYL5.js} +2 -2
  23. package/dist/cli/chunks/browser-5LU6P4SZ.js +4 -0
  24. package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +2 -0
  25. package/dist/cli/chunks/{chunk-UOJBR4J3.js → chunk-2SXBBUM6.js} +2 -2
  26. package/dist/cli/chunks/{chunk-7JKB3Q7O.js → chunk-2T7RRL6G.js} +1 -1
  27. package/dist/cli/chunks/{chunk-HCYQHWI2.js → chunk-2XGVTYVX.js} +2 -2
  28. package/dist/cli/chunks/{chunk-3LYU7BLY.js → chunk-2ZI5FKSF.js} +2 -2
  29. package/dist/cli/chunks/chunk-2ZMF4NCF.js +4 -0
  30. package/dist/cli/chunks/{chunk-F3PQZX44.js → chunk-37OWRCUN.js} +1 -1
  31. package/dist/cli/chunks/{chunk-YRBBBUJX.js → chunk-3P34JFQH.js} +4 -4
  32. package/dist/cli/chunks/{chunk-ICP2ORGI.js → chunk-3Y7SPD72.js} +2 -2
  33. package/dist/cli/chunks/{chunk-WGDR2KIR.js → chunk-4G63WT4F.js} +2 -2
  34. package/dist/cli/chunks/chunk-4SJYIX54.js +3 -0
  35. package/dist/cli/chunks/chunk-5E6GHSTY.js +3 -0
  36. package/dist/cli/chunks/{chunk-OXTFSIGN.js → chunk-5LPYV3TK.js} +1 -1
  37. package/dist/cli/chunks/{chunk-XWIUFYM3.js → chunk-62OAY5KJ.js} +1 -1
  38. package/dist/cli/chunks/{chunk-VCMINU7K.js → chunk-6C3II5OM.js} +2 -2
  39. package/dist/cli/chunks/{chunk-EFBLP43U.js → chunk-6GP6W46M.js} +2 -2
  40. package/dist/cli/chunks/{chunk-4JCY45KV.js → chunk-6KIL6CMD.js} +2 -2
  41. package/dist/cli/chunks/{chunk-CTZJUV5I.js → chunk-6MVVSSID.js} +1 -1
  42. package/dist/cli/chunks/{chunk-JEP4ULR6.js → chunk-6P7424AO.js} +2 -2
  43. package/dist/cli/chunks/{chunk-SVHUYVUR.js → chunk-6PX4OXQO.js} +2 -2
  44. package/dist/cli/chunks/{chunk-LEAKYZ37.js → chunk-6S3WJGUV.js} +2 -2
  45. package/dist/cli/chunks/{chunk-7X2Y727E.js → chunk-6TB6YOCZ.js} +1 -1
  46. package/dist/cli/chunks/{chunk-VU2EL424.js → chunk-6X5DHU6Q.js} +1 -1
  47. package/dist/cli/chunks/{chunk-DDPPSSHW.js → chunk-6XCMKIZN.js} +1 -1
  48. package/dist/cli/chunks/{chunk-ZANDSVCK.js → chunk-7LFZ4CHM.js} +2 -2
  49. package/dist/cli/chunks/{chunk-UYLYMWV5.js → chunk-7OZVZIBE.js} +2 -2
  50. package/dist/cli/chunks/{chunk-32UTLDNY.js → chunk-7PJIR4ST.js} +2 -2
  51. package/dist/cli/chunks/{chunk-DINZR5CF.js → chunk-7TB6FK4B.js} +1 -1
  52. package/dist/cli/chunks/{chunk-KVBEGOJE.js → chunk-7ZCDZHDB.js} +2 -2
  53. package/dist/cli/chunks/{chunk-55HRSNGN.js → chunk-A55QKKT2.js} +2 -2
  54. package/dist/cli/chunks/{chunk-LCJTEUDC.js → chunk-ABFFWZPC.js} +428 -433
  55. package/dist/cli/chunks/{chunk-PVIA2FPD.js → chunk-ACWFKES2.js} +2 -2
  56. package/dist/cli/chunks/{chunk-2BA45H64.js → chunk-AH3ZD3NJ.js} +2 -2
  57. package/dist/cli/chunks/{chunk-OG2UI6A3.js → chunk-AI4VYSFS.js} +2 -2
  58. package/dist/cli/chunks/chunk-APSRPR4W.js +2 -0
  59. package/dist/cli/chunks/chunk-ATHWDAXB.js +3 -0
  60. package/dist/cli/chunks/{chunk-TSYQDRNK.js → chunk-B6LTH6YV.js} +2 -2
  61. package/dist/cli/chunks/chunk-BQUAE3CP.js +3 -0
  62. package/dist/cli/chunks/{chunk-OCESWNAZ.js → chunk-C522H7XR.js} +54 -33
  63. package/dist/cli/chunks/{chunk-TUYJ53V4.js → chunk-CESIR27V.js} +2 -2
  64. package/dist/cli/chunks/{chunk-PBZI2ZPV.js → chunk-CFBEBXLO.js} +3 -3
  65. package/dist/cli/chunks/{chunk-FJ4VTLLK.js → chunk-CMBLM26R.js} +2 -2
  66. package/dist/cli/chunks/{chunk-YZYDTABJ.js → chunk-CZ2IF6MC.js} +1 -1
  67. package/dist/cli/chunks/{chunk-GKPQ2GRR.js → chunk-CZGOSJQ4.js} +2 -2
  68. package/dist/cli/chunks/{chunk-FL3OYGCS.js → chunk-D6DA2KFD.js} +2 -2
  69. package/dist/cli/chunks/{chunk-37BIGMJI.js → chunk-DBMNJSBV.js} +1 -1
  70. package/dist/cli/chunks/{chunk-BHKXMIWX.js → chunk-DE4YJQJF.js} +2 -2
  71. package/dist/cli/chunks/{chunk-3CJCROMW.js → chunk-DEF34AFL.js} +2 -2
  72. package/dist/cli/chunks/chunk-DKAC3E3B.js +3 -0
  73. package/dist/cli/chunks/{chunk-AOFO4N32.js → chunk-DMFTELBS.js} +2 -2
  74. package/dist/cli/chunks/{chunk-KLGYIEJK.js → chunk-DNRWGATA.js} +10 -10
  75. package/dist/cli/chunks/{chunk-JWGRWMZP.js → chunk-DT7SIJOA.js} +2 -2
  76. package/dist/cli/chunks/{chunk-6PXA2BQJ.js → chunk-DURHK377.js} +67 -67
  77. package/dist/cli/chunks/{chunk-HAROIAJE.js → chunk-EAU5KDFO.js} +1 -1
  78. package/dist/cli/chunks/{chunk-L42JPFCC.js → chunk-EDLFX4ZB.js} +2 -2
  79. package/dist/cli/chunks/{chunk-6OOYIO3W.js → chunk-EN2QSKFF.js} +2 -2
  80. package/dist/cli/chunks/{chunk-UNUTC6TX.js → chunk-ERQKYIP7.js} +2 -2
  81. package/dist/cli/chunks/{chunk-KFUUIAR4.js → chunk-ESUO3GTJ.js} +2 -2
  82. package/dist/cli/chunks/{chunk-4V27J6YN.js → chunk-EWFECZ2U.js} +2 -2
  83. package/dist/cli/chunks/{chunk-4W4DYVSH.js → chunk-FAUCT5KR.js} +3 -3
  84. package/dist/cli/chunks/{chunk-IFEIY3NQ.js → chunk-FB6TI3BH.js} +2 -2
  85. package/dist/cli/chunks/{chunk-2TDIS6YK.js → chunk-FBXTQNRH.js} +2 -2
  86. package/dist/cli/chunks/{chunk-XOLDMK23.js → chunk-FESZBPUB.js} +2 -2
  87. package/dist/cli/chunks/chunk-FFTPAWM6.js +141 -0
  88. package/dist/cli/chunks/{chunk-A6YIH4C4.js → chunk-FKL3R5JQ.js} +2 -2
  89. package/dist/cli/chunks/{chunk-N5PDFGCQ.js → chunk-FPUDRSFJ.js} +2 -2
  90. package/dist/cli/chunks/{chunk-7QGYJ5OY.js → chunk-FZOWULMH.js} +1 -1
  91. package/dist/cli/chunks/{chunk-AVB5QY2Q.js → chunk-G3CZCUPM.js} +2 -2
  92. package/dist/cli/chunks/{chunk-FV3NHVC7.js → chunk-G5I6KGMW.js} +3 -3
  93. package/dist/cli/chunks/{chunk-N3KEY4XJ.js → chunk-GHBNRMSJ.js} +2 -2
  94. package/dist/cli/chunks/{chunk-2YH62JCN.js → chunk-GJHWY3ZX.js} +2 -2
  95. package/dist/cli/chunks/{chunk-ZXBCCO2H.js → chunk-GJMLK5UT.js} +2 -2
  96. package/dist/cli/chunks/{chunk-NHZIWIQZ.js → chunk-GRCIBCJ2.js} +2 -2
  97. package/dist/cli/chunks/{chunk-J3DTDJDT.js → chunk-GWZZ7DAO.js} +2 -2
  98. package/dist/cli/chunks/{chunk-4SUOVLJ6.js → chunk-GZLZCZ42.js} +2 -2
  99. package/dist/cli/chunks/{chunk-MZS32SYS.js → chunk-H2PYU7MN.js} +1 -1
  100. package/dist/cli/chunks/{chunk-ABFDB4X3.js → chunk-H32EPIR2.js} +1 -1
  101. package/dist/cli/chunks/{chunk-KIXYKUCI.js → chunk-H74Q7TJN.js} +1 -1
  102. package/dist/cli/chunks/chunk-HOZUDE4C.js +2 -0
  103. package/dist/cli/chunks/{chunk-PMCRCEW5.js → chunk-I33O4BRQ.js} +2 -2
  104. package/dist/cli/chunks/{chunk-N3NP6PTT.js → chunk-IKISCIGH.js} +2 -2
  105. package/dist/cli/chunks/{chunk-Q3JVJRVJ.js → chunk-IPJ7Q3AJ.js} +1 -1
  106. package/dist/cli/chunks/{chunk-WRRCQ2UE.js → chunk-IU2IV4NE.js} +1 -1
  107. package/dist/cli/chunks/{chunk-QQ5SZH4D.js → chunk-JHIY4VCC.js} +2 -2
  108. package/dist/cli/chunks/{chunk-W32YU3VI.js → chunk-KG336OV3.js} +2 -2
  109. package/dist/cli/chunks/{chunk-W5VJRDDG.js → chunk-KI73QCR5.js} +2 -2
  110. package/dist/cli/chunks/{chunk-HGTWAZWU.js → chunk-KNQ2ERFX.js} +2 -2
  111. package/dist/cli/chunks/{chunk-SNBYYO6F.js → chunk-KOBVYY6H.js} +2 -2
  112. package/dist/cli/chunks/{chunk-VQHVHVSF.js → chunk-KSIWGGJI.js} +8 -8
  113. package/dist/cli/chunks/{chunk-REUFWGMA.js → chunk-LMS3Y7JD.js} +2 -2
  114. package/dist/cli/chunks/{chunk-LMU5DUDK.js → chunk-LQEURY7C.js} +1 -1
  115. package/dist/cli/chunks/{chunk-AJ4YDSOI.js → chunk-LRZY4KS2.js} +2 -2
  116. package/dist/cli/chunks/{chunk-KIKWJM6J.js → chunk-M2QV7PT7.js} +2 -2
  117. package/dist/cli/chunks/{chunk-TNMQVG4A.js → chunk-MA7JIQ6U.js} +2 -2
  118. package/dist/cli/chunks/{chunk-I6S35FRO.js → chunk-MG27QY4D.js} +2 -2
  119. package/dist/cli/chunks/chunk-MNN5J4GU.js +12 -0
  120. package/dist/cli/chunks/chunk-N6PIIK6G.js +3 -0
  121. package/dist/cli/chunks/chunk-NAXGWDVM.js +12 -0
  122. package/dist/cli/chunks/{chunk-XOVNZT7F.js → chunk-NGKNYIQZ.js} +1 -1
  123. package/dist/cli/chunks/chunk-NNFZUTDH.js +2 -0
  124. package/dist/cli/chunks/{chunk-ZVSLCEVC.js → chunk-NPPHWFA2.js} +3 -3
  125. package/dist/cli/chunks/{chunk-JNNZK7KH.js → chunk-NSHU347M.js} +1 -1
  126. package/dist/cli/chunks/{chunk-PX2B5TS2.js → chunk-NVYIZCSR.js} +2 -2
  127. package/dist/cli/chunks/{chunk-5NS3USRW.js → chunk-NW5JUCCG.js} +1 -1
  128. package/dist/cli/chunks/{chunk-KR3M44CF.js → chunk-NZYLNXT6.js} +3 -3
  129. package/dist/cli/chunks/{chunk-5D2I7JUP.js → chunk-OBAREPDC.js} +2 -2
  130. package/dist/cli/chunks/{chunk-F4JYIRW2.js → chunk-ODJNUMV3.js} +2 -2
  131. package/dist/cli/chunks/{chunk-K5DJXMAA.js → chunk-OEKP73MC.js} +2 -2
  132. package/dist/cli/chunks/{chunk-2URBI52G.js → chunk-OPFGRS5S.js} +2 -2
  133. package/dist/cli/chunks/{chunk-HZ5NC6U5.js → chunk-OY2AHLSF.js} +1 -1
  134. package/dist/cli/chunks/{chunk-GII5WVAK.js → chunk-OY3NJNP2.js} +1 -1
  135. package/dist/cli/chunks/{chunk-P73W2K7T.js → chunk-PCEW6Q2C.js} +1 -1
  136. package/dist/cli/chunks/{chunk-7QTB5VJZ.js → chunk-PFG6VQ5Z.js} +2 -2
  137. package/dist/cli/chunks/{chunk-7KII4CQG.js → chunk-PGYMKGOE.js} +2 -2
  138. package/dist/cli/chunks/{chunk-BXO536GT.js → chunk-PPSAMXYN.js} +3 -3
  139. package/dist/cli/chunks/chunk-RK73HB2F.js +2 -0
  140. package/dist/cli/chunks/{chunk-ZBDRLF43.js → chunk-RPHY2DU6.js} +2 -2
  141. package/dist/cli/chunks/{chunk-XDBD4GXO.js → chunk-RWWOHCMG.js} +25 -20
  142. package/dist/cli/chunks/{chunk-J5KNRVXR.js → chunk-S75EYIJG.js} +1 -1
  143. package/dist/cli/chunks/{chunk-ETG7O5E5.js → chunk-SKQUUE4F.js} +5 -5
  144. package/dist/cli/chunks/chunk-SO45NA4D.js +180 -0
  145. package/dist/cli/chunks/{chunk-47V7FQGX.js → chunk-SU5H66SD.js} +2 -2
  146. package/dist/cli/chunks/{chunk-NTAD5UX4.js → chunk-SY2IB442.js} +2 -2
  147. package/dist/cli/chunks/{chunk-D6XVGFTI.js → chunk-TBLI254A.js} +2 -2
  148. package/dist/cli/chunks/{chunk-47TYABPD.js → chunk-TNMBRDCA.js} +3 -3
  149. package/dist/cli/chunks/{chunk-P2CXVNKK.js → chunk-TYFZXDGZ.js} +2 -2
  150. package/dist/cli/chunks/{chunk-2XITOPYV.js → chunk-U4OICXV2.js} +2 -2
  151. package/dist/cli/chunks/{chunk-JAV5WPSY.js → chunk-U53ZB4IX.js} +2 -2
  152. package/dist/cli/chunks/chunk-UARKIZAS.js +2 -0
  153. package/dist/cli/chunks/{chunk-2HL3UM5P.js → chunk-UCJMVXO4.js} +2 -2
  154. package/dist/cli/chunks/{chunk-HWK5L7IJ.js → chunk-UHTTW3IT.js} +2 -2
  155. package/dist/cli/chunks/{chunk-OXZLKP6C.js → chunk-V2M2XCR5.js} +1 -1
  156. package/dist/cli/chunks/{chunk-YZGSJG34.js → chunk-V2RSNVMW.js} +1 -1
  157. package/dist/cli/chunks/{chunk-5JWGCIQW.js → chunk-V6JBOIMX.js} +1 -1
  158. package/dist/cli/chunks/{chunk-JUVHZG7I.js → chunk-VFKF2XO7.js} +1 -1
  159. package/dist/cli/chunks/{chunk-XQ3DDY7X.js → chunk-VFSYMOAL.js} +2 -2
  160. package/dist/cli/chunks/{chunk-V5PXQSFS.js → chunk-VJQYDYAJ.js} +2 -2
  161. package/dist/cli/chunks/{chunk-A4RU67VX.js → chunk-VKRTTFB6.js} +2 -2
  162. package/dist/cli/chunks/{chunk-H3KBIWTO.js → chunk-VWNFAW2M.js} +2 -2
  163. package/dist/cli/chunks/{chunk-72AMFDC7.js → chunk-WBM6N6IM.js} +1 -1
  164. package/dist/cli/chunks/{chunk-XUIA5KMS.js → chunk-WDQ7IEZY.js} +2 -2
  165. package/dist/cli/chunks/{chunk-FLASM2XB.js → chunk-WDVRE6GN.js} +2 -2
  166. package/dist/cli/chunks/{chunk-FV7VAG74.js → chunk-WQ4PYWSW.js} +1 -1
  167. package/dist/cli/chunks/{chunk-DGTLJNJH.js → chunk-WSF24I3D.js} +2 -2
  168. package/dist/cli/chunks/{chunk-6YL6JOQB.js → chunk-XBVUVFJK.js} +2 -2
  169. package/dist/cli/chunks/{chunk-VRGCKBF7.js → chunk-XEB3NLJR.js} +2 -2
  170. package/dist/cli/chunks/{chunk-XYCKHYBM.js → chunk-XFVTGAAJ.js} +2 -2
  171. package/dist/cli/chunks/{chunk-2I2UPJS7.js → chunk-XLZYRTNO.js} +2 -2
  172. package/dist/cli/chunks/{chunk-AR2E4B7K.js → chunk-XUZDBQ5X.js} +5 -5
  173. package/dist/cli/chunks/{chunk-AQTVVLNP.js → chunk-Y76IAYQD.js} +1 -1
  174. package/dist/cli/chunks/{chunk-UOWHE77F.js → chunk-YAKGBHO4.js} +2 -2
  175. package/dist/cli/chunks/{chunk-JK2ME6IT.js → chunk-YBSBABOS.js} +2 -2
  176. package/dist/cli/chunks/{chunk-NDKLQW6N.js → chunk-YCGP5VFP.js} +2 -2
  177. package/dist/cli/chunks/{chunk-GBUIG3FS.js → chunk-YDAQK5UF.js} +1 -1
  178. package/dist/cli/chunks/{chunk-HTZJSQ3C.js → chunk-YK3BVZY6.js} +2 -2
  179. package/dist/cli/chunks/{chunk-GCWSX2NY.js → chunk-YK7JN5N7.js} +4 -4
  180. package/dist/cli/chunks/{chunk-C6RTMTEH.js → chunk-YKMU4LBV.js} +1 -1
  181. package/dist/cli/chunks/{chunk-JP4P3P3D.js → chunk-YYTGXD3R.js} +2 -2
  182. package/dist/cli/chunks/{chunk-763SUL4B.js → chunk-Z2O2YJAF.js} +2 -2
  183. package/dist/cli/chunks/{chunk-QTVWUQTB.js → chunk-Z7IYW5U7.js} +1 -1
  184. package/dist/cli/chunks/{chunk-XZJ2O3VC.js → chunk-ZG5666GJ.js} +1 -1
  185. package/dist/cli/chunks/{chunk-6EPHNJTL.js → chunk-ZXPY654C.js} +1 -1
  186. package/dist/cli/chunks/{ci-7SGRCFPS.js → ci-MSKMVH5X.js} +2 -2
  187. package/dist/cli/chunks/{ci-config-MX3URPZA.js → ci-config-7ODMNAUM.js} +2 -2
  188. package/dist/cli/chunks/{ci-output-M47NJY6D.js → ci-output-FXZ7ZZW3.js} +2 -2
  189. package/dist/cli/chunks/{circuit-breaker-5GAK45SW.js → circuit-breaker-4VOUEPOX.js} +2 -2
  190. package/dist/cli/chunks/{claude-flow-setup-YXYSRH4Y.js → claude-flow-setup-7D4SGLM4.js} +2 -2
  191. package/dist/cli/chunks/client-POSVREVS.js +2 -0
  192. package/dist/cli/chunks/{cline-installer-DLJ5QD5N.js → cline-installer-WRRT7BGQ.js} +2 -2
  193. package/dist/cli/chunks/{code-ONKLMVQ2.js → code-ZDJRIL3S.js} +3 -3
  194. package/dist/cli/chunks/{code-index-extractor-2232LGZN.js → code-index-extractor-4S4SHM56.js} +2 -2
  195. package/dist/cli/chunks/{codex-installer-UOWLYCMH.js → codex-installer-YTRHNDWR.js} +2 -2
  196. package/dist/cli/chunks/{completions-MHX7GCC7.js → completions-6N64JUXJ.js} +2 -2
  197. package/dist/cli/chunks/{complexity-analyzer-43ZUJKZU.js → complexity-analyzer-I4A26VCJ.js} +2 -2
  198. package/dist/cli/chunks/{continuedev-installer-6Q5JR4FF.js → continuedev-installer-IIDR66LB.js} +2 -2
  199. package/dist/cli/chunks/{copilot-installer-CZUMVHSI.js → copilot-installer-SVVFY3S2.js} +2 -2
  200. package/dist/cli/chunks/core-handlers-V243GY7X.js +2 -0
  201. package/dist/cli/chunks/{cost-tracker-VS5ZW3XN.js → cost-tracker-VGFS6IBX.js} +2 -2
  202. package/dist/cli/chunks/{coverage-VWKTWZ6D.js → coverage-B7MCGNTE.js} +3 -3
  203. package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +2 -0
  204. package/dist/cli/chunks/{cursor-installer-YIFEMORH.js → cursor-installer-UPETT57E.js} +2 -2
  205. package/dist/cli/chunks/daemon-7BDJHEIJ.js +18 -0
  206. package/dist/cli/chunks/{daemon-SHWJSJW5.js → daemon-CQFNZLXU.js} +3 -3
  207. package/dist/cli/chunks/{dag-attention-scheduler-TCC2WM46.js → dag-attention-scheduler-PJVABHON.js} +2 -2
  208. package/dist/cli/chunks/{detect-IGTWSQMA.js → detect-56SKAGWX.js} +2 -2
  209. package/dist/cli/chunks/{dist-node-TCOTJVQX.js → dist-node-UYTYUMLN.js} +2 -2
  210. package/dist/cli/chunks/{domain-handler-55ZVYODR.js → domain-handler-YOYLBYJE.js} +2 -2
  211. package/dist/cli/chunks/{domain-plugins-GJRWOHQP.js → domain-plugins-7TARX2XF.js} +2 -2
  212. package/dist/cli/chunks/domain-transfer-AKVSBD6E.js +2 -0
  213. package/dist/cli/chunks/dream-UA7MKOPQ.js +2 -0
  214. package/dist/cli/chunks/{embed-and-insert-pattern-XAMNIKQL.js → embed-and-insert-pattern-IS6HSR66.js} +2 -2
  215. package/dist/cli/chunks/{eval-GO22R4OZ.js → eval-GNB574IM.js} +2 -2
  216. package/dist/cli/chunks/{experience-capture-middleware-F2BRMJ3Y.js → experience-capture-middleware-RCAOCKM7.js} +3 -3
  217. package/dist/cli/chunks/{fast-paths-6RGPYALD.js → fast-paths-KTZ5SF54.js} +2 -2
  218. package/dist/cli/chunks/{feature-flags-ZGS3KLPH.js → feature-flags-ITX5LQ57.js} +2 -2
  219. package/dist/cli/chunks/{feature-flags-MIWQIOHU.js → feature-flags-KFHSR5YF.js} +2 -2
  220. package/dist/cli/chunks/file-discovery-YCMNKZAK.js +2 -0
  221. package/dist/cli/chunks/fleet-2Y3ZE6CE.js +46 -0
  222. package/dist/cli/chunks/{gnn-wrapper-ALBJVW6T.js → gnn-wrapper-RLFW3GSX.js} +2 -2
  223. package/dist/cli/chunks/{heartbeat-handler-ZMM53NDY.js → heartbeat-handler-EM2URCYZ.js} +4 -4
  224. package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +2 -0
  225. package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +2 -0
  226. package/dist/cli/chunks/hnsw-index-DFUNARVD.js +2 -0
  227. package/dist/cli/chunks/{hnsw-legacy-bridge-RYUJPA7B.js → hnsw-legacy-bridge-JMHEOIBH.js} +2 -2
  228. package/dist/cli/chunks/{hnswlib-node-XM6XF3YV.js → hnswlib-node-CBP73QHY.js} +2 -2
  229. package/dist/cli/chunks/{hooks-X62O7TJO.js → hooks-IP7XE34Z.js} +34 -34
  230. package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +2 -0
  231. package/dist/cli/chunks/{hypergraph-engine-ZBWUPTVD.js → hypergraph-engine-ONAYHU25.js} +2 -2
  232. package/dist/cli/chunks/{hypergraph-handler-DUMF6SJV.js → hypergraph-handler-VINJRAID.js} +3 -3
  233. package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +2 -0
  234. package/dist/cli/chunks/{init-guard-S4I2R46S.js → init-guard-RYVV5R3Z.js} +2 -2
  235. package/dist/cli/chunks/{init-handler-L4KJHVWS.js → init-handler-MPRGWMOE.js} +6 -6
  236. package/dist/cli/chunks/init-wizard-NIMZ4J55.js +2 -0
  237. package/dist/cli/chunks/kernel-JQK7PRAI.js +2 -0
  238. package/dist/cli/chunks/{kilocode-installer-GNNB5FCZ.js → kilocode-installer-OPD7JBRL.js} +2 -2
  239. package/dist/cli/chunks/{kiro-installer-HR6ZAH7T.js → kiro-installer-M4OPUNK2.js} +2 -2
  240. package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +2 -0
  241. package/dist/cli/chunks/{learning-4IEEOHJS.js → learning-4UWTQLMF.js} +24 -24
  242. package/dist/cli/chunks/{llm-router-ZFMORP36.js → llm-router-SQ56FF6Z.js} +4 -4
  243. package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +2 -0
  244. package/dist/cli/chunks/{load-ZM43WGDO.js → load-HPHKDGGL.js} +2 -2
  245. package/dist/cli/chunks/load-test-UKNV5MWW.js +2 -0
  246. package/dist/cli/chunks/mcp-TELMAC7Z.js +2 -0
  247. package/dist/cli/chunks/{memory-W5FZGVAD.js → memory-PFQ3KPVJ.js} +5 -5
  248. package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +2 -0
  249. package/dist/cli/chunks/memory-handlers-FCXN437E.js +2 -0
  250. package/dist/cli/chunks/{multi-model-executor-SXXGAQ2G.js → multi-model-executor-3VDRX6TZ.js} +2 -2
  251. package/dist/cli/chunks/{opencode-installer-PIRBUAB5.js → opencode-installer-PJ576R63.js} +2 -2
  252. package/dist/cli/chunks/{orchestrator-H5SQCQTB.js → orchestrator-72QP4UU7.js} +63 -19
  253. package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +2 -0
  254. package/dist/cli/chunks/{pattern-usage-recorder-XZTWDI2T.js → pattern-usage-recorder-754YQW7C.js} +2 -2
  255. package/dist/cli/chunks/pipeline-AVXY4MVB.js +19 -0
  256. package/dist/cli/chunks/{platform-KJDABL5C.js → platform-3E3DXLYB.js} +2 -2
  257. package/dist/cli/chunks/{plugin-V4KSBVVM.js → plugin-7FUQAKRE.js} +2 -2
  258. package/dist/cli/chunks/{prime-radiant-advanced-wasm-JDHTKQAT.js → prime-radiant-advanced-wasm-NIB4F5NV.js} +2 -2
  259. package/dist/cli/chunks/project-root-JCAUNL6O.js +2 -0
  260. package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +2 -0
  261. package/dist/cli/chunks/{protocol-handler-BNRONTQV.js → protocol-handler-BQRYMUTG.js} +2 -2
  262. package/dist/cli/chunks/{prove-ELLL6XMX.js → prove-H52QGC6B.js} +2 -2
  263. package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +2 -0
  264. package/dist/cli/chunks/{quality-NH2QA4D4.js → quality-QO4XPAUM.js} +2 -2
  265. package/dist/cli/chunks/{quality-gate-JTKLF7GW.js → quality-gate-FBKE5E6F.js} +3 -3
  266. package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +2 -0
  267. package/dist/cli/chunks/{real-embeddings-J3KCKLPB.js → real-embeddings-RWGOVOXO.js} +2 -2
  268. package/dist/cli/chunks/{ref-validation-HNXQRP4F.js → ref-validation-LF76ZOBD.js} +2 -2
  269. package/dist/cli/chunks/{roocode-installer-COJ6CX6S.js → roocode-installer-3BYEBTQ7.js} +2 -2
  270. package/dist/cli/chunks/router-3DIS5X4R.js +2 -0
  271. package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +2 -0
  272. package/dist/cli/chunks/{routing-handler-WM33ZILE.js → routing-handler-DST7BVCU.js} +2 -2
  273. package/dist/cli/chunks/{ruvector-commands-BBLXEA7A.js → ruvector-commands-XE32PGKC.js} +2 -2
  274. package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +2 -0
  275. package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +2 -0
  276. package/dist/cli/chunks/{rvf-migration-coordinator-P7H6HCAG.js → rvf-migration-coordinator-VP32XC75.js} +2 -2
  277. package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +2 -0
  278. package/dist/cli/chunks/{rvf-store-integrity-R5SPVRFP.js → rvf-store-integrity-SH2AMVI7.js} +2 -2
  279. package/dist/cli/chunks/safe-db-EVB4ZC7T.js +2 -0
  280. package/dist/cli/chunks/schedule-ORDDXXY4.js +2 -0
  281. package/dist/cli/chunks/scheduler-XFLJSFIU.js +2 -0
  282. package/dist/cli/chunks/{security-AUDTRX3I.js → security-VSPNKCDS.js} +3 -3
  283. package/dist/cli/chunks/{shared-rvf-adapter-PVDGBGI2.js → shared-rvf-adapter-HX6AHL3P.js} +2 -2
  284. package/dist/cli/chunks/{shared-rvf-dual-writer-LZ2GMSS2.js → shared-rvf-dual-writer-MX4FC2JE.js} +2 -2
  285. package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +2 -0
  286. package/dist/cli/chunks/{standalone-memory-XNOAI4G4.js → standalone-memory-O4QUTK6L.js} +2 -2
  287. package/dist/cli/chunks/{status-handler-K72XZE4T.js → status-handler-Z2BP6EOG.js} +2 -2
  288. package/dist/cli/chunks/{structural-health-NF3YY7U5.js → structural-health-R36WNLQG.js} +2 -2
  289. package/dist/cli/chunks/sync-2ELWUFQU.js +2 -0
  290. package/dist/cli/chunks/{sync-VBD5Y3E2.js → sync-QF5Y3EMZ.js} +2 -2
  291. package/dist/cli/chunks/{task-handler-24S3WFVJ.js → task-handler-43PYE75J.js} +2 -2
  292. package/dist/cli/chunks/task-handlers-KPWAEMKH.js +9 -0
  293. package/dist/cli/chunks/{test-XFSGQELD.js → test-UWA377D4.js} +16 -16
  294. package/dist/cli/chunks/test-runner-process-3XZUYST2.js +2 -0
  295. package/dist/cli/chunks/{test-scheduling-VYUQ4CDE.js → test-scheduling-YQZPJRRN.js} +3 -3
  296. package/dist/cli/chunks/token-bootstrap-F7C6UKTC.js +2 -0
  297. package/dist/cli/chunks/{token-usage-VLQ6WO2L.js → token-usage-DO6WLMXP.js} +2 -2
  298. package/dist/cli/chunks/{transformers-TOFMWWNM.js → transformers-H5RGFKVO.js} +2 -2
  299. package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +2 -0
  300. package/dist/cli/chunks/{types-JTWLBAZJ.js → types-PJS2FGPF.js} +2 -2
  301. package/dist/cli/chunks/unified-memory-EHD4VNFW.js +2 -0
  302. package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +2 -0
  303. package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +2 -0
  304. package/dist/cli/chunks/{upgrade-4ABM72T4.js → upgrade-4IC4F6AB.js} +2 -2
  305. package/dist/cli/chunks/{validate-UDJCWKXI.js → validate-DHUWW7PF.js} +2 -2
  306. package/dist/cli/chunks/{validate-swarm-TODOUWNN.js → validate-swarm-OERQNOX5.js} +2 -2
  307. package/dist/cli/chunks/visual-security-54MLFKWY.js +2 -0
  308. package/dist/cli/chunks/{web-tree-sitter-WBMAJPM5.js → web-tree-sitter-TV7DMKES.js} +2 -2
  309. package/dist/cli/chunks/{windsurf-installer-BTT53TUL.js → windsurf-installer-QZPWSH37.js} +2 -2
  310. package/dist/cli/chunks/witness-chain-LC6Q2W27.js +2 -0
  311. package/dist/cli/chunks/witness-chain-QUIBAF3W.js +2 -0
  312. package/dist/cli/chunks/witness-chain-repair-RUXIOE7F.js +2 -0
  313. package/dist/cli/chunks/{witness-chain-verifier-FRY3LMGH.js → witness-chain-verifier-YXENHB42.js} +2 -2
  314. package/dist/cli/chunks/{witness-key-manager-X7QHQQWL.js → witness-key-manager-HL26AGFO.js} +2 -2
  315. package/dist/cli/chunks/{workflow-QMZPAWQW.js → workflow-EOVVCN2E.js} +4 -4
  316. package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +2 -0
  317. package/dist/cli/chunks/wrappers-AGODHBOO.js +2 -0
  318. package/dist/cli/commands/fleet.js +19 -12
  319. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
  320. package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
  321. package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
  322. package/dist/cli/commands/learning.js +5 -3
  323. package/dist/cli/commands/ruvector-commands.js +2 -1
  324. package/dist/cli/commands/test.js +6 -0
  325. package/dist/cli/utils/ci-output.d.ts +9 -0
  326. package/dist/cli/utils/fleet-operation.d.ts +32 -0
  327. package/dist/cli/utils/fleet-operation.js +71 -0
  328. package/dist/cli/utils/fleet-result.d.ts +31 -0
  329. package/dist/cli/utils/fleet-result.js +124 -0
  330. package/dist/context/sources/git-source.js +6 -2
  331. package/dist/coordination/handlers/code-intelligence-handlers.js +60 -5
  332. package/dist/coordination/handlers/coverage-handlers.js +10 -1
  333. package/dist/coordination/handlers/requirements-handlers.js +16 -2
  334. package/dist/coordination/handlers/security-handlers.js +11 -1
  335. package/dist/coordination/handlers/test-execution-handlers.js +25 -7
  336. package/dist/coordination/mincut/queen-integration.d.ts +39 -1
  337. package/dist/coordination/mincut/queen-integration.js +83 -6
  338. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +2 -6
  339. package/dist/coordination/protocols/learning-consolidation-archive.js +4 -27
  340. package/dist/coordination/protocols/learning-consolidation.d.ts +24 -0
  341. package/dist/coordination/protocols/learning-consolidation.js +71 -22
  342. package/dist/coordination/queen-coordinator.d.ts +1 -1
  343. package/dist/coordination/queen-coordinator.js +19 -7
  344. package/dist/coordination/queen-event-handlers.js +13 -0
  345. package/dist/coordination/queen-task-management.d.ts +18 -24
  346. package/dist/coordination/queen-task-management.js +62 -168
  347. package/dist/coordination/queen-task-queue.d.ts +41 -0
  348. package/dist/coordination/queen-task-queue.js +194 -0
  349. package/dist/coordination/queen-types.d.ts +1 -1
  350. package/dist/coordination/queen-work-stealing.d.ts +6 -1
  351. package/dist/coordination/queen-work-stealing.js +7 -4
  352. package/dist/coordination/result-saver-adapters.d.ts +15 -0
  353. package/dist/coordination/result-saver-adapters.js +57 -0
  354. package/dist/coordination/result-saver.d.ts +1 -1
  355. package/dist/coordination/result-saver.js +8 -5
  356. package/dist/coordination/yaml-pipeline-loader.js +5 -2
  357. package/dist/domains/code-intelligence/index-path-guard.d.ts +5 -2
  358. package/dist/domains/code-intelligence/index-path-guard.js +20 -50
  359. package/dist/domains/code-intelligence/plugin.js +5 -1
  360. package/dist/domains/code-intelligence/services/metric-collector/index.d.ts +2 -2
  361. package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
  362. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
  363. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
  364. package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
  365. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
  366. package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
  367. package/dist/domains/contract-testing/services/contract-validator.js +6 -4
  368. package/dist/domains/contract-testing/services/schema-validator.js +8 -5
  369. package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
  370. package/dist/domains/defect-intelligence/plugin.js +11 -2
  371. package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
  372. package/dist/domains/defect-intelligence/prediction-history.js +68 -0
  373. package/dist/domains/defect-intelligence/services/defect-predictor.js +25 -10
  374. package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
  375. package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
  376. package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
  377. package/dist/domains/learning-optimization/active-patterns.d.ts +2 -2
  378. package/dist/domains/learning-optimization/active-patterns.js +2 -2
  379. package/dist/domains/learning-optimization/coordinator.js +9 -5
  380. package/dist/domains/learning-optimization/interfaces.d.ts +6 -2
  381. package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
  382. package/dist/domains/learning-optimization/pattern-archive.js +56 -0
  383. package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
  384. package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
  385. package/dist/domains/learning-optimization/reward-source.d.ts +13 -0
  386. package/dist/domains/learning-optimization/reward-source.js +8 -1
  387. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +5 -3
  388. package/dist/domains/learning-optimization/services/learning-coordinator.js +45 -58
  389. package/dist/domains/security-compliance/plugin.js +17 -3
  390. package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
  391. package/dist/domains/security-compliance/sast-path-guard.js +17 -0
  392. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
  393. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
  394. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
  395. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
  396. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
  397. package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
  398. package/dist/domains/test-execution/coordinator.d.ts +5 -0
  399. package/dist/domains/test-execution/coordinator.js +35 -20
  400. package/dist/domains/test-execution/interfaces.d.ts +25 -0
  401. package/dist/domains/test-execution/plugin.js +19 -4
  402. package/dist/domains/test-execution/services/flaky-detector.js +9 -7
  403. package/dist/domains/test-execution/services/retry-handler.js +46 -7
  404. package/dist/domains/test-execution/services/runner-test-cases.d.ts +11 -0
  405. package/dist/domains/test-execution/services/runner-test-cases.js +20 -2
  406. package/dist/domains/test-execution/services/test-executor.js +8 -8
  407. package/dist/domains/test-generation/plugin.js +7 -2
  408. package/dist/domains/test-generation/services/test-data-generator.js +3 -1
  409. package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
  410. package/dist/hooks/cross-phase-hooks.js +2 -1
  411. package/dist/init/phases/10-workers.js +50 -6
  412. package/dist/integrations/browser/agent-browser/client.js +37 -52
  413. package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
  414. package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
  415. package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
  416. package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
  417. package/dist/integrations/browser/web-content-fetcher.js +9 -3
  418. package/dist/integrations/vibium/client.js +2 -2
  419. package/dist/integrations/vibium/runtime.d.ts +1 -1
  420. package/dist/integrations/vibium/runtime.js +14 -11
  421. package/dist/kernel/unified-memory-schemas.d.ts +3 -2
  422. package/dist/kernel/unified-memory-schemas.js +3 -2
  423. package/dist/kernel/unified-memory.js +25 -6
  424. package/dist/learning/dream/dream-commit.d.ts +65 -0
  425. package/dist/learning/dream/dream-commit.js +104 -0
  426. package/dist/learning/dream/dream-engine.d.ts +81 -31
  427. package/dist/learning/dream/dream-engine.js +225 -168
  428. package/dist/learning/dream/dream-insights-pruner.d.ts +9 -3
  429. package/dist/learning/dream/dream-insights-pruner.js +16 -30
  430. package/dist/learning/dream/index.d.ts +3 -2
  431. package/dist/learning/dream/index.js +3 -1
  432. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
  433. package/dist/learning/dream/rvcow-branch-manager.js +8 -1
  434. package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
  435. package/dist/learning/dream/speculative-dreamer.js +64 -111
  436. package/dist/learning/dream/spreading-activation.d.ts +2 -1
  437. package/dist/learning/dream/spreading-activation.js +15 -6
  438. package/dist/learning/experience-capture.d.ts +9 -0
  439. package/dist/learning/experience-capture.js +18 -4
  440. package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
  441. package/dist/learning/qe-reasoning-bank.js +22 -11
  442. package/dist/learning/sqlite-persistence.d.ts +6 -0
  443. package/dist/learning/sqlite-persistence.js +16 -2
  444. package/dist/learning/usage-outcome.d.ts +68 -0
  445. package/dist/learning/usage-outcome.js +84 -0
  446. package/dist/mcp/background-workers.d.ts +13 -1
  447. package/dist/mcp/background-workers.js +17 -3
  448. package/dist/mcp/bundle.js +607 -580
  449. package/dist/mcp/handlers/core-handlers.js +11 -0
  450. package/dist/mcp/handlers/domain-handler-configs.d.ts +5 -0
  451. package/dist/mcp/handlers/domain-handler-configs.js +11 -3
  452. package/dist/mcp/handlers/handler-factory.d.ts +2 -1
  453. package/dist/mcp/handlers/handler-factory.js +36 -15
  454. package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
  455. package/dist/mcp/handlers/orchestrate-routes.js +88 -0
  456. package/dist/mcp/handlers/task-handlers.d.ts +3 -0
  457. package/dist/mcp/handlers/task-handlers.js +35 -8
  458. package/dist/mcp/handlers/validation-pipeline-handler.js +6 -2
  459. package/dist/mcp/protocol-server.js +2 -0
  460. package/dist/mcp/security/schema-validator.js +3 -2
  461. package/dist/mcp/tools/code-intelligence/c4.js +11 -1
  462. package/dist/mcp/tools/coverage-analysis/index.js +31 -2
  463. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
  464. package/dist/mcp/tools/learning-optimization/dream.js +38 -34
  465. package/dist/mcp/tools/learning-optimization/optimize.d.ts +18 -2
  466. package/dist/mcp/tools/learning-optimization/optimize.js +58 -10
  467. package/dist/mcp/tools/quality-assessment/gate.js +12 -1
  468. package/dist/mcp/tools/requirements-validation/quality-criteria.js +9 -2
  469. package/dist/migration/agent-compat.js +7 -5
  470. package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
  471. package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
  472. package/dist/shared/git/git-analyzer.d.ts +49 -0
  473. package/dist/shared/git/git-analyzer.js +159 -319
  474. package/dist/shared/git/git-process.d.ts +22 -0
  475. package/dist/shared/git/git-process.js +37 -0
  476. package/dist/shared/git/index.d.ts +1 -0
  477. package/dist/shared/git/index.js +1 -0
  478. package/dist/shared/io/payload-path-guard.d.ts +75 -0
  479. package/dist/shared/io/payload-path-guard.js +190 -0
  480. package/dist/shared/llm/router/agent-router-config.js +2 -1
  481. package/dist/shared/llm/translation/tool-translator.js +2 -1
  482. package/dist/shared/test-runner-args.d.ts +5 -0
  483. package/dist/shared/test-runner-args.js +6 -1
  484. package/dist/shared/test-runner-process.d.ts +6 -0
  485. package/dist/shared/test-runner-process.js +14 -0
  486. package/dist/shared/test-runner-verdict.d.ts +9 -1
  487. package/dist/shared/test-runner-verdict.js +15 -4
  488. package/dist/shared/utils/namespaced-search.d.ts +14 -0
  489. package/dist/shared/utils/namespaced-search.js +19 -1
  490. package/dist/shared/utils/safe-expression-evaluator.js +4 -3
  491. package/dist/strange-loop/infra-healing/recovery-playbook.js +13 -3
  492. package/dist/validation/gate-reexecute.js +7 -4
  493. package/dist/workers/daemon.js +13 -1
  494. package/dist/workers/quality-daemon/git-watcher.js +9 -9
  495. package/dist/workers/workers/defect-predictor.d.ts +8 -3
  496. package/dist/workers/workers/defect-predictor.js +48 -49
  497. package/dist/workers/workers/learning-consolidation.d.ts +2 -0
  498. package/dist/workers/workers/learning-consolidation.js +12 -1
  499. package/dist/workflows/browser/workflow-loader.js +8 -5
  500. package/package.json +1 -1
  501. package/dist/cli/chunks/adapter-R2Q4QGXQ.js +0 -2
  502. package/dist/cli/chunks/agent-booster-wasm-427FRKWG.js +0 -2
  503. package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +0 -2
  504. package/dist/cli/chunks/base-67DXSAYM.js +0 -2
  505. package/dist/cli/chunks/browser-CT3MTV6G.js +0 -4
  506. package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +0 -2
  507. package/dist/cli/chunks/chunk-4URT6JO2.js +0 -2
  508. package/dist/cli/chunks/chunk-5LAAZLUC.js +0 -4
  509. package/dist/cli/chunks/chunk-7DMA5NYL.js +0 -4
  510. package/dist/cli/chunks/chunk-F2SQPP6U.js +0 -4
  511. package/dist/cli/chunks/chunk-G3BKZNFL.js +0 -120
  512. package/dist/cli/chunks/chunk-GR3JYE5A.js +0 -2
  513. package/dist/cli/chunks/chunk-J3WGK22W.js +0 -2
  514. package/dist/cli/chunks/chunk-KHSRIPBP.js +0 -180
  515. package/dist/cli/chunks/chunk-KTSLTZSG.js +0 -2
  516. package/dist/cli/chunks/chunk-O3JLOVZX.js +0 -4
  517. package/dist/cli/chunks/chunk-THAY7WHO.js +0 -12
  518. package/dist/cli/chunks/chunk-VXZJOKOX.js +0 -2
  519. package/dist/cli/chunks/chunk-VYLM2YV5.js +0 -12
  520. package/dist/cli/chunks/client-ZP3CTVRF.js +0 -2
  521. package/dist/cli/chunks/core-handlers-JSRXQWPE.js +0 -2
  522. package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +0 -2
  523. package/dist/cli/chunks/daemon-YIFT46FH.js +0 -34
  524. package/dist/cli/chunks/domain-transfer-6EF75EKU.js +0 -2
  525. package/dist/cli/chunks/dream-UDLM6M55.js +0 -2
  526. package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +0 -2
  527. package/dist/cli/chunks/fleet-ADL57COA.js +0 -44
  528. package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +0 -2
  529. package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +0 -2
  530. package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +0 -2
  531. package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +0 -2
  532. package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +0 -2
  533. package/dist/cli/chunks/init-wizard-422UZYQ5.js +0 -2
  534. package/dist/cli/chunks/kernel-N7PJ6FCE.js +0 -2
  535. package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +0 -2
  536. package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +0 -2
  537. package/dist/cli/chunks/load-test-POMIF4Q4.js +0 -2
  538. package/dist/cli/chunks/mcp-CRZKZE37.js +0 -2
  539. package/dist/cli/chunks/memory-backend-4P6AHSOY.js +0 -2
  540. package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +0 -2
  541. package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +0 -2
  542. package/dist/cli/chunks/pipeline-5LMLBIJ7.js +0 -19
  543. package/dist/cli/chunks/project-root-X72FSM2F.js +0 -2
  544. package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +0 -2
  545. package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +0 -2
  546. package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +0 -2
  547. package/dist/cli/chunks/router-CXZKOOTR.js +0 -2
  548. package/dist/cli/chunks/routing-feedback-IYFANYY5.js +0 -2
  549. package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +0 -2
  550. package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +0 -2
  551. package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +0 -2
  552. package/dist/cli/chunks/safe-db-WFODRGVZ.js +0 -2
  553. package/dist/cli/chunks/schedule-RO55OQXG.js +0 -2
  554. package/dist/cli/chunks/scheduler-XXMJCH24.js +0 -2
  555. package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +0 -2
  556. package/dist/cli/chunks/sync-UVXA6CT2.js +0 -2
  557. package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +0 -9
  558. package/dist/cli/chunks/token-bootstrap-EDK6FNQ3.js +0 -2
  559. package/dist/cli/chunks/tree-sitter-wasm-parser-MI3NZKUD.js +0 -2
  560. package/dist/cli/chunks/unified-memory-6JWHV6EF.js +0 -2
  561. package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +0 -2
  562. package/dist/cli/chunks/unified-persistence-KGGNA46H.js +0 -2
  563. package/dist/cli/chunks/visual-security-6VZNQLH7.js +0 -2
  564. package/dist/cli/chunks/witness-chain-AKKHWEWU.js +0 -2
  565. package/dist/cli/chunks/witness-chain-TATPXQRK.js +0 -2
  566. package/dist/cli/chunks/witness-chain-repair-2HGJGE7O.js +0 -2
  567. package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +0 -2
  568. package/dist/cli/chunks/wrappers-ZD5NBHYI.js +0 -2
@@ -1,12 +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.15.9");process.exit(0)}
2
- import{a as T,b as G}from"./chunk-KVBEGOJE.js";import{e as A,f as O,j as R,k as I,q as z}from"./chunk-HCYQHWI2.js";import{b as S,e as q}from"./chunk-N3KEY4XJ.js";import{b as p}from"./chunk-HZ5NC6U5.js";import{createRequire as N}from"node:module";import{execFileSync as k}from"node:child_process";import{existsSync as j}from"node:fs";import{dirname as J,join as V}from"node:path";function W(i=process.platform,e=process.execPath,t=j){return T("npm",i,e,t)??["npm",[]]}function B(){try{return x.resolve("vibium")}catch{try{return N(V(process.cwd(),"package.json")).resolve("vibium")}catch{}let[i,e]=W(),t=k(i,[...e,"root","-g"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}).trim();return x.resolve(V(t,"vibium"))}}function K(i){return typeof i?.browser?.start=="function"?i:typeof i?.default?.browser?.start=="function"?i.default:null}async function F(){let i;try{i=await import("vibium")}catch(t){if(t.code!=="ERR_MODULE_NOT_FOUND"&&t.code!=="MODULE_NOT_FOUND")throw t;let r;try{r=B()}catch(s){throw new Error(`Vibium is not installed; run ${l}`,{cause:s})}i=x(r)}let e=K(i);if(!e)throw new Error(`Unsupported Vibium API: the installed package exposes no browser.start() (neither as a named nor a default export); run ${l}`);return e}function P(){try{let i=V(J(B()),"..","bin","cli.js");return k(process.execPath,[i,"is-installed"],{timeout:5e3,stdio:"ignore"}),!0}catch{return!1}}var l,x,_=p(()=>{"use strict";G();l="aqe init --browser-engine (or npm install vibium@^26.8.21)",x=N(import.meta.url)});var M,U=p(()=>{"use strict";M={enabled:!0,headless:!0,timeout:3e4,retryAttempts:3,fallbackEnabled:!0,browserType:"chromium",viewport:{width:1280,height:720},userAgent:"",devtools:!1,slowMo:0,screenshotDir:".agentic-qe/screenshots"}});function X(i){return i instanceof o}function a(i,e="Unknown Vibium error"){return X(i)?i:i instanceof Error?new o(i.message||e,"UNKNOWN_ERROR",i):new o(typeof i=="string"?i:e,"UNKNOWN_ERROR")}var o,m,g,v,b,w,d,f,$=p(()=>{"use strict";o=class i extends Error{constructor(t,r,s){super(t);this.code=r;this.cause=s;this.name="VibiumError",Error.captureStackTrace&&Error.captureStackTrace(this,i),s?.stack&&(this.stack+=`
3
- Caused by: ${s.stack}`)}code;cause},m=class extends o{constructor(e="Vibium MCP server is unavailable",t){super(e,"VIBIUM_UNAVAILABLE",t),this.name="VibiumUnavailableError"}},g=class extends o{constructor(e="Browser operation timed out",t){super(e,"VIBIUM_TIMEOUT",t),this.name="VibiumTimeoutError"}},v=class extends o{selector;constructor(e,t){super(`Element not found: ${e}`,"ELEMENT_NOT_FOUND",t),this.name="VibiumElementNotFoundError",this.selector=e}},b=class extends o{constructor(e="Failed to connect to browser",t){super(e,"CONNECTION_ERROR",t),this.name="VibiumConnectionError"}},w=class extends o{url;statusCode;constructor(e,t,r){let s=t?`Navigation failed: ${e} (HTTP ${t})`:`Navigation failed: ${e}`;super(s,"NAVIGATION_ERROR",r),this.name="VibiumNavigationError",this.url=e,this.statusCode=t}},d=class extends o{constructor(e="Failed to capture screenshot",t){super(e,"SCREENSHOT_ERROR",t),this.name="VibiumScreenshotError"}},f=class extends o{action;selector;constructor(e,t,r){super(`Failed to ${e} element: ${t}`,"INTERACTION_ERROR",r),this.name="VibiumInteractionError",this.action=e,this.selector=t}}});import{randomUUID as Y}from"crypto";async function C(){if(E!==null)return E;try{return E=(await F()).browser,D=!0,E}catch(i){return console.warn("[Vibium] Failed to load vibium package:",i),D=!1,null}}async function L(i,e,t){let r;for(let s=1;s<=e;s++)try{return await i()}catch(n){if(r=S(n),s<e){let u=Math.min(100*Math.pow(2,s-1),2e3);await new Promise(c=>setTimeout(c,u))}}throw new o(`${t} failed after ${e} attempts`,"RETRY_EXHAUSTED",r)}async function h(i,e){let t=Date.now();try{let r=await i();return I()&&console.log(`[Vibium] ${e}: ${Date.now()-t}ms`),r}catch(r){throw I()&&console.log(`[Vibium] ${e} failed: ${Date.now()-t}ms`,r),r}}var E,D,y,H,Q=p(()=>{_();U();$();q();z();E=null,D=!1;y=class{config;currentSession=null;lastHealthCheck=null;_initialized=!1;_available=null;vibeInstance=null;browserInstance=null;constructor(e={}){this.config={...M,...e}}async isAvailable(){if(!this.config.enabled)return!1;if(this._available!==null)return this._available;try{let e=await C();return this._available=e!==null&&P(),this._available}catch{return this._available=!1,!1}}async getHealth(){let e=new Date;if(!this.config.enabled)return{status:"unavailable",features:["fallback-only"],lastChecked:e,error:"Vibium is disabled by configuration",sessionActive:!1};try{await this.isAvailable()?this.lastHealthCheck={status:this.vibeInstance?"connected":"disconnected",browserType:this.config.browserType,features:["browser-launch","navigation","element-interaction","screenshots","script-evaluation","accessibility-testing"],latencyMs:10,lastChecked:e,sessionActive:this.vibeInstance!==null}:this.lastHealthCheck={status:"unavailable",features:["fallback-only"],lastChecked:e,error:`Vibium runtime or browser payload unavailable; run ${l}`,sessionActive:!1}}catch(t){this.lastHealthCheck={status:"error",features:["fallback-only"],lastChecked:e,error:t instanceof Error?t.message:"Unknown error",sessionActive:!1}}return this.lastHealthCheck}async getSession(){return this.currentSession}async launch(e){if(!A())return{success:!1,error:new m("Browser mode is disabled by feature flags")};let t=async()=>{let r=await C();if(!r)throw new m(`Vibium runtime unavailable; run ${l}`);let s=e?.headless??this.config.headless;if(!P())throw new m(`Vibium browser payload unavailable; run ${l}`);let n=await r.start({headless:s});try{this.vibeInstance=await n.page(),this.browserInstance=n}catch(c){throw await n.stop(),c}let u={id:this.generateSessionId(),browserType:this.config.browserType,launchedAt:new Date,status:"connected",viewport:e?.viewport??this.config.viewport,headless:s};return this.currentSession=u,u};try{return{success:!0,value:R()?await L(()=>h(t,"browser_launch"),this.config.retryAttempts,"browser_launch"):await h(t,"browser_launch")}}catch(r){return{success:!1,error:a(r,"Failed to launch browser")}}}async quit(){if(!this.vibeInstance)return{success:!1,error:new b("No active browser session")};let e=async()=>{this.vibeInstance&&(await this.browserInstance?.stop(),this.vibeInstance=null,this.browserInstance=null),this.currentSession=null};try{return await h(e,"browser_quit"),{success:!0,value:void 0}}catch(t){return{success:!1,error:a(t,"Failed to quit browser")}}}async navigate(e){this.ensureSession();let t=async()=>{let r=Date.now();await this.vibeInstance.go(e.url);let s="";try{s=await this.vibeInstance.evaluate("document.title")}catch{s="Unknown"}let n={url:e.url,statusCode:200,title:s,durationMs:Date.now()-r,success:!0};return this.currentSession&&(this.currentSession.currentUrl=e.url),n};try{return{success:!0,value:R()?await L(()=>h(t,"page_navigate"),this.config.retryAttempts,"page_navigate"):await h(t,"page_navigate")}}catch(r){return{success:!1,error:new w(e.url,void 0,r instanceof Error?r:void 0)}}}async getPageInfo(){this.ensureSession();try{let e=await this.vibeInstance.evaluate("window.location.href"),t=await this.vibeInstance.evaluate("document.title");return{success:!0,value:{url:e,title:t,viewport:this.config.viewport,loadState:"loaded"}}}catch(e){return{success:!1,error:a(e,"Failed to get page info")}}}async goBack(){this.ensureSession();try{return await this.vibeInstance.evaluate("window.history.back()"),{success:!0,value:void 0}}catch(e){return{success:!1,error:a(e,"Failed to go back")}}}async goForward(){this.ensureSession();try{return await this.vibeInstance.evaluate("window.history.forward()"),{success:!0,value:void 0}}catch(e){return{success:!1,error:a(e,"Failed to go forward")}}}async reload(){this.ensureSession();try{return await this.vibeInstance.evaluate("window.location.reload()"),{success:!0,value:void 0}}catch(e){return{success:!1,error:a(e,"Failed to reload page")}}}async findElement(e){this.ensureSession();try{let t=await this.vibeInstance.find(e.selector,{timeout:e.timeout??this.config.timeout});return{success:!0,value:{selector:e.selector,tagName:t.info.tag,textContent:t.info.text,attributes:{},boundingBox:t.info.box,visible:!0,enabled:!0}}}catch(t){return{success:!1,error:new v(e.selector,t instanceof Error?t:void 0)}}}async findElements(e){this.ensureSession();try{let t=e.selector.replace(/\\/g,"\\\\").replace(/'/g,"\\'");return{success:!0,value:(await this.vibeInstance.evaluate(`
4
- Array.from(document.querySelectorAll('${t}'))
5
- .map(el => ({
6
- tag: el.tagName.toLowerCase(),
7
- text: el.textContent?.trim() || ''
8
- }))
9
- `)).map((n,u)=>({selector:`${e.selector}:nth-child(${u+1})`,tagName:n.tag,textContent:n.text,attributes:{},visible:!0,enabled:!0}))}}catch(t){return{success:!1,error:a(t,"Failed to find elements")}}}async click(e){this.ensureSession();let t=Date.now();try{return await(await this.vibeInstance.find(e.selector,{timeout:e.timeout??this.config.timeout})).click({timeout:e.timeout??this.config.timeout}),{success:!0,value:{success:!0,durationMs:Date.now()-t}}}catch(r){return{success:!1,error:new f("click",e.selector,r instanceof Error?r:void 0)}}}async type(e){this.ensureSession();let t=Date.now();try{let r=await this.vibeInstance.find(e.selector,{timeout:e.timeout??this.config.timeout});if(e.clear){let n=e.selector.replace(/\\/g,"\\\\").replace(/'/g,"\\'");await this.vibeInstance.evaluate(`
10
- const el = document.querySelector('${n}');
11
- if (el) el.value = '';
12
- `)}return await r.type(e.text,{timeout:e.timeout??this.config.timeout}),{success:!0,value:{success:!0,durationMs:Date.now()-t}}}catch(r){return{success:!1,error:new f("type",e.selector,r instanceof Error?r:void 0)}}}async getText(e){this.ensureSession();try{return{success:!0,value:await(await this.vibeInstance.find(e)).text()}}catch(t){return{success:!1,error:a(t,`Failed to get text from ${e}`)}}}async getAttribute(e,t){this.ensureSession();try{return{success:!0,value:await(await this.vibeInstance.find(e)).getAttribute(t)??""}}catch(r){return{success:!1,error:a(r,`Failed to get attribute ${t} from ${e}`)}}}async waitForElement(e,t){this.ensureSession();try{let r=await this.vibeInstance.find(e,{timeout:t?.timeout??this.config.timeout});return{success:!0,value:{selector:e,tagName:r.info.tag,textContent:r.info.text,attributes:{},boundingBox:r.info.box,visible:!0,enabled:!0}}}catch(r){return{success:!1,error:new g(`Element ${e} not found within timeout`,r instanceof Error?r:void 0)}}}async screenshot(e){if(this.ensureSession(),!O())return{success:!1,error:new d("Screenshot capture is disabled by feature flags")};try{let t=await this.vibeInstance.screenshot(),r=t.toString("base64");return e?.path&&await(await import("fs/promises")).writeFile(e.path,t),{success:!0,value:{base64:e?.path?void 0:r,path:e?.path,format:e?.format??"png",dimensions:this.config.viewport,sizeBytes:t.length,capturedAt:new Date}}}catch(t){return{success:!1,error:new d("Failed to capture screenshot",t instanceof Error?t:void 0)}}}async compareScreenshots(e,t,r=.01){try{let s=await import("fs/promises"),n=await s.readFile(e),u=await s.readFile(t),c=n.equals(u);return{success:!0,value:{matches:c,differencePercent:c?0:100,diffRegions:[],comparedAt:new Date}}}catch(s){return{success:!1,error:a(s,"Failed to compare screenshots")}}}async evaluate(e,t){this.ensureSession();try{return{success:!0,value:await this.vibeInstance.evaluate(`(async () => { ${e} })()`)}}catch(r){return{success:!1,error:a(r,"Failed to evaluate script")}}}async checkAccessibility(e){return this.ensureSession(),{success:!1,error:new o("Use axe-core-integration module for accessibility testing. Call injectAxeCore() then runAxeAudit() using client.evaluate().","USE_AXE_CORE_INTEGRATION")}}async initialize(){await C(),this._initialized=!0}async dispose(){if(this.vibeInstance){try{await this.browserInstance?.stop()}catch(e){console.debug("[VibiumClient] Disposal error:",e instanceof Error?e.message:e)}this.vibeInstance=null,this.browserInstance=null}this.currentSession=null,this._initialized=!1,this._available=null}ensureSession(){if(!this.vibeInstance)throw new b("No active browser session. Call launch() first.")}generateSessionId(){return`vibium-session-${Date.now()}-${Y().slice(0,9)}`}},H=class i{static instance=null;client=null;config;constructor(e={}){this.config=e}static getInstance(e){return i.instance||(i.instance=new i(e)),i.instance}static resetInstance(){i.instance?.client&&i.instance.client.dispose(),i.instance=null}async getClient(){return this.client||(this.client=new y(this.config),await this.client.initialize()),this.client}getClientSync(){return this.client||(this.client=new y(this.config)),this.client}getConfig(){return{...this.config}}configure(e){this.config={...this.config,...e},this.client&&(this.client.dispose(),this.client=null)}async dispose(){this.client&&(await this.client.dispose(),this.client=null)}}});export{U as a,$ as b,y as c,H as d,Q as e};
@@ -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.15.9");process.exit(0)}
2
- import{i as K}from"./chunk-ZVSLCEVC.js";import{b as X,c as k,d as O,e as I,f as z}from"./chunk-5NS3USRW.js";import{b as f,c as W,j as C,k as Q,o as Z,q as B,r as ee}from"./chunk-XUIA5KMS.js";import{b as q,f as pe}from"./chunk-HGTWAZWU.js";import{a as L,b,c as J,d as ue,f as S,i as y,j as R,n as P}from"./chunk-XYCKHYBM.js";import{i as Y}from"./chunk-FV7VAG74.js";import{f as V,g as le}from"./chunk-O3JLOVZX.js";import{b as G,e as de}from"./chunk-N3KEY4XJ.js";P();var te={security:{provider:"claude",model:R,temperature:.1,maxTokens:16e3,priority:100},"test-generation":{provider:"claude",model:y,temperature:.3,maxTokens:8e3,priority:90},"code-analysis":{provider:"claude",model:y,temperature:.2,maxTokens:8e3,priority:85},performance:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.2,maxTokens:4e3,priority:70},documentation:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.4,maxTokens:4e3,priority:60},learning:{provider:"claude",model:y,temperature:.3,maxTokens:8e3,priority:80},coordination:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.2,maxTokens:2e3,priority:75},simple:{provider:"openai",model:"gpt-6-luna",temperature:.3,maxTokens:2e3,priority:50},general:{provider:"claude",model:y,temperature:.3,maxTokens:4e3,priority:60}},_={"security-auditor":"security","security-architect":"security","security-scanner":"security","v3-qe-security-scanner":"security","security-manager":"security","vulnerability-scanner":"security","penetration-tester":"security","compliance-auditor":"security","threat-analyzer":"security","test-generator":"test-generation","v3-qe-test-generator":"test-generation",tester:"test-generation","tdd-specialist":"test-generation","tdd-london-swarm":"test-generation","unit-test-generator":"test-generation","integration-test-generator":"test-generation","e2e-test-generator":"test-generation","mutation-tester":"test-generation","property-based-tester":"test-generation","contract-tester":"test-generation","v3-qe-contract-tester":"test-generation","api-tester":"test-generation","visual-tester":"test-generation","v3-qe-visual-tester":"test-generation","accessibility-tester":"test-generation","code-reviewer":"code-analysis","code-analyzer":"code-analysis",reviewer:"code-analysis","v3-qe-code-intelligence":"code-analysis","v3-qe-code-analyzer":"code-analysis","coverage-analyzer":"code-analysis","v3-qe-coverage-analyzer":"code-analysis","defect-predictor":"code-analysis","v3-qe-defect-predictor":"code-analysis","static-analyzer":"code-analysis","complexity-analyzer":"code-analysis","dependency-analyzer":"code-analysis","refactoring-advisor":"code-analysis","quality-assessor":"code-analysis","v3-qe-quality-assessor":"code-analysis","test-executor":"code-analysis","v3-qe-test-executor":"code-analysis","parallel-executor":"code-analysis","flaky-test-detector":"code-analysis","test-orchestrator":"code-analysis","performance-tester":"performance","performance-engineer":"performance","perf-analyzer":"performance","performance-benchmarker":"performance","load-tester":"performance","stress-tester":"performance","v3-qe-chaos-engineer":"performance","chaos-engineer":"performance","resilience-tester":"performance","scalability-tester":"performance","api-docs":"documentation","doc-generator":"documentation","readme-generator":"documentation","changelog-generator":"documentation","specification-writer":"documentation","v3-qe-learning-optimizer":"learning","learning-optimizer":"learning","ml-developer":"learning","pattern-learner":"learning","optimization-agent":"learning","smart-agent":"learning","requirements-validator":"code-analysis","v3-qe-requirements-validator":"code-analysis","bdd-generator":"test-generation","acceptance-tester":"test-generation",coordinator:"coordination","hierarchical-coordinator":"coordination","mesh-coordinator":"coordination","adaptive-coordinator":"coordination","collective-intelligence-coordinator":"coordination","swarm-memory-manager":"coordination","byzantine-coordinator":"coordination","raft-manager":"coordination","gossip-coordinator":"coordination","consensus-builder":"coordination","crdt-synchronizer":"coordination","quorum-manager":"coordination","task-orchestrator":"coordination","memory-coordinator":"coordination",coder:"code-analysis",planner:"code-analysis",researcher:"code-analysis","backend-dev":"code-analysis","mobile-dev":"code-analysis","cicd-engineer":"code-analysis","system-architect":"code-analysis","base-template-generator":"test-generation","github-modes":"coordination","pr-manager":"coordination","code-review-swarm":"code-analysis","issue-tracker":"coordination","release-manager":"coordination","workflow-automation":"coordination","project-board-sync":"coordination","repo-architect":"code-analysis","multi-repo-swarm":"coordination","sparc-coord":"coordination","sparc-coder":"code-analysis",specification:"documentation",pseudocode:"code-analysis",architecture:"code-analysis",refinement:"code-analysis","memory-specialist":"learning","production-validator":"code-analysis"},v={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"}},Te={security:v.heavyweight,"test-generation":v.standard,"code-analysis":v.standard,learning:v.standard,performance:{...v.lightweight,costSensitivity:"high"},coordination:v.lightweight,general:{...v.lightweight,requiresJsonMode:!1,latencySensitivity:"medium"},documentation:{...v.minimal,minContextSize:16e3},simple:v.minimal};function re(l){if(l in _)return _[l];let e=l.toLowerCase();return e.includes("security")||e.includes("audit")||e.includes("vulnerab")||e.includes("penetration")||e.includes("threat")||e.includes("compliance")?"security":e.includes("test-gen")||e.includes("tdd")||e.includes("unit-test")||e.includes("e2e-test")||e.includes("integration-test")||e.includes("mutation")?"test-generation":e.includes("code-")||e.includes("coverage")||e.includes("defect")||e.includes("review")||e.includes("analyzer")||e.includes("quality")?"code-analysis":e.includes("perf")||e.includes("load")||e.includes("stress")||e.includes("benchmark")||e.includes("chaos")||e.includes("resilience")?"performance":e.includes("doc")||e.includes("readme")||e.includes("changelog")||e.includes("spec")?"documentation":e.includes("learn")||e.includes("ml-")||e.includes("pattern")||e.includes("optim")?"learning":e.includes("coord")||e.includes("swarm")||e.includes("orchestrat")||e.includes("consensus")||e.includes("manager")?"coordination":"general"}var F={},ie={};function oe(l,e){F={...l??{}},ie={...e??{}}}function ne(l){let e=re(l),t=te[e],r=F[l];if(!r)return t;let i=r.provider!==void 0&&r.provider!==t.provider,o=r.model??(i?ie[r.provider]:void 0);return{...t,...r.provider!==void 0?{provider:r.provider}:{},...o!==void 0?{model:o}:{},...r.temperature!==void 0?{temperature:r.temperature}:{},...r.maxTokens!==void 0?{maxTokens:r.maxTokens}:{},priority:r.priority??t.priority+100}}function se(){return Object.keys(F).map(l=>{let e=ne(l);return{id:`agent-override-${l}`,name:`User override: ${l} -> ${e.provider}/${e.model}`,description:`Per-agent routing override from .agentic-qe/llm-config.json (agentOverrides["${l}"])`,condition:{agentType:[l]},action:{provider:e.provider,model:e.model,temperature:e.temperature,maxTokens:e.maxTokens,priority:e.priority},enabled:!0,priority:e.priority}}).sort((l,e)=>e.priority-l.priority)}P();var x=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}},w=[{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:R,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:y,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:R,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:y,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:y,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:y,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:y,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:"qwen3-coder:30b",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 ge}from"crypto";var E=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()}-${ge().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(m=>m.decisionTimeMs),c=r.length,d=this.countByMode(r),u=r.filter(m=>m.wasFallback).length,p=r.filter(m=>m.ruleId).length;return{byProvider:Object.fromEntries(n),byAgentType:a,totalDecisions:c,decisionsByMode:d,avgDecisionTimeMs:this.average(s),p95DecisionTimeMs:this.percentile(s,95),p99DecisionTimeMs:this.percentile(s,99),fallbackRate:c>0?u/c:0,ruleMatchRate:c>0?p/c:0,estimatedCostSavings:this.calculateCostSavings(r),ruleStats:{totalEvaluated:r.reduce((m,h)=>m+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,d)=>c+(d.cost??0),0),totalTokens:r.reduce((c,d)=>c+d.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 C){let o=e.filter(d=>d.provider===i),n=t.filter(d=>d.provider===i);if(o.length===0&&n.length===0)continue;let a=n.map(d=>d.latencyMs),s=o.map(d=>d.decisionTimeMs),c=n.filter(d=>d.success);r.set(i,{provider:i,selectionCount:o.length,ruleMatchCount:o.filter(d=>d.ruleId).length,fallbackCount:o.filter(d=>d.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((d,u)=>d+(u.cost??0),0),totalTokens:n.reduce((d,u)=>d+u.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 U(l){return new E(l)}pe();P();var A=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 C){let n=r.filter(c=>c.provider===o);if(n.length===0)continue;let a=n.reduce((c,d)=>c+d.totalCost,0),s=n.reduce((c,d)=>c+d.inputTokens+d.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(u=>u.agentType===a),c=s.reduce((u,p)=>u+p.totalCost,0),d=s.reduce((u,p)=>u+p.inputTokens+p.outputTokens,0);o.set(a,{totalCost:c,totalTokens:d,totalRequests:s.length,avgCostPerRequest:s.length>0?c/s.length:0,avgCostPerToken:d>0?c/d:0})}let n=r.filter(a=>!a.agentType);if(n.length>0){let a=n.reduce((c,d)=>c+d.totalCost,0),s=n.reduce((c,d)=>c+d.inputTokens+d.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(d=>d.model===n),s=a.reduce((d,u)=>d+u.totalCost,0),c=a.reduce((d,u)=>d+u.inputTokens+u.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(d=>d.timestamp>=s&&d.timestamp<a);r.push({timestamp:a,cost:c.reduce((d,u)=>d+u.totalCost,0),tokens:c.reduce((d,u)=>d+u.inputTokens+u.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)q(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:y}),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=q(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){return new A(l)}de();ue();P();var D=class{cache=new Map;maxSize;ttlMs;constructor(e=100,t=6e4){this.maxSize=e,this.ttlMs=t}get(e){let t=this.cache.get(e);return t?Date.now()>t.expiresAt?(this.cache.delete(e),null):t.decision:null}set(e,t){if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r&&this.cache.delete(r)}this.cache.set(e,{decision:t,expiresAt:Date.now()+this.ttlMs})}clear(){this.cache.clear()}getStats(){return{hits:0,misses:0,size:this.cache.size}}},T=class{config;providerManager;ruleEngine;decisionCache;metrics;routerMetrics;costMetrics;initialized=!1;constructor(e,t){this.providerManager=e,this.config={...Q,...t};let r=this.config.rules.length>0?this.config.rules:w;this.ruleEngine=new x(r),this.decisionCache=new D(100,this.config.decisionCacheTtlMs),this.metrics=new H,this.routerMetrics=U(),this.costMetrics=$()}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 D(100,e.decisionCacheTtlMs))}async selectProvider(e){await this.ensureInitialized();let t=Date.now(),r=this.config.cacheDecisions&&!e.strictModel;if(r){let o=this.generateCacheKey(e),n=this.decisionCache.get(o);if(n)return this.metrics.recordCacheHit(),this.routerMetrics.recordCacheHit(),n;this.metrics.recordCacheMiss(),this.routerMetrics.recordCacheMiss()}let i;if(e.strictModel)i=this.selectStrict(e);else switch(this.config.mode){case"manual":i=await this.selectManual(e);break;case"rule-based":i=await this.selectRuleBased(e);break;case"cost-optimized":i=await this.selectCostOptimized(e);break;case"performance-optimized":i=await this.selectPerformanceOptimized(e);break;default:i=await this.selectRuleBased(e)}if(i.metadata.decisionTimeMs=Date.now()-t,r){let o=this.generateCacheKey(e);this.decisionCache.set(o,i)}return this.metrics.recordDecision(i,this.config.mode),i}async chat(e){await this.ensureInitialized();let t=Y(),r=await this.selectProvider(e),i=e.agentType??"";if(O(i)&&(k(r.model)||k(r.providerModelId))){if(e.strictModel)throw f(`Strict model request for ${r.model} conflicts with the cyber verification pin for ${i}`,"MODEL_NOT_FOUND",{provider:r.providerType,model:r.model,retryable:!1});let n=r.model,a=r.providerModelId;r.model=I(i,r.model,X),r.providerModelId=I(i,r.providerModelId,z(r.providerType)),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()}selectStrict(e){if(!e.model?.trim())throw f("strictModel requires an explicit nonempty model","MODEL_NOT_FOUND",{retryable:!1});let t=e.preferredProvider??this.config.defaultProvider,r=this.providerManager.getProvider(t);if(!r)throw f(`Strict model provider ${t} is unavailable`,"PROVIDER_UNAVAILABLE",{provider:t,model:e.model,retryable:!1});return this.createDecision(r,t,e.model,"manual")}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:d}=s.getCostPerToken(),u=this.estimateCostValue(e,c,d);n.push({provider:a,model:s.getConfig().model,reason:`Estimated cost: $${u.toFixed(6)}`,estimatedCost:u,excluded:!1}),u<r&&(r=u,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 u=r[s]?.avgLatencyMs??1/0;a.push({provider:s,model:c.getConfig().model,reason:`Avg latency: ${u}ms`,estimatedLatencyMs:u,excluded:!1}),u<i&&(i=u,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;if(!e.strictModel&&c&&c!==t.providerType&&s.push({provider:c,model:this.config.defaultModel}),!e.strictModel){for(let p of i.entries)if(p.enabled&&p.provider!==t.providerType)for(let m of p.models)s.push({provider:p.provider,model:m})}let d=e.agentType??"";if(O(d))for(let p of s)k(p.model)&&(p.model=z(p.provider));let u=s;if(e.requiresTools){let p=s.filter(m=>S(m.model));if(p.length>0&&p.length<s.length){let m=s.filter(h=>!S(h.model)).map(h=>`${h.provider}:${h.model}`);console.warn(`[llm-router] requiresTools: skipping tool-less model(s) ${m.join(", ")}`),u=p}}this.providerManager.assertWithinBudget(e.messages,{model:u[0]?.model,maxTokens:e.maxTokens});for(let{provider:p,model:m}of u){if(a>=o.maxAttempts)break;let h=this.providerManager.getProvider(p);if(!h)continue;a++;let N=Date.now();try{let g=await h.generate(e.messages,{model:m,temperature:e.temperature,maxTokens:e.maxTokens,systemPrompt:e.systemPrompt,timeoutMs:e.timeoutMs,skipCache:e.skipCache,metadata:e.metadata});if(this.providerManager.recordResponseSpend(g,e.agentType),e.strictModel){if(g.provider!==p)throw f(`Strict model provider mismatch: expected ${p}, received ${g.provider}`,"PROVIDER_UNAVAILABLE",{provider:p,model:m,retryable:!1});if(!this.isSameModel(t.model,g.model))throw f(`Strict model mismatch: expected ${t.model}, received ${g.model}`,"MODEL_NOT_FOUND",{provider:p,model:m,retryable:!1})}let M=Date.now()-N;return this.metrics.recordSuccess(p),this.routerMetrics.recordRoutingDecision(t,M,{agentType:e.agentType,success:!0,tokenUsage:g.usage,cost:g.cost}),this.routerMetrics.recordProviderCall(p,m,M,g.usage.totalTokens,{inputTokens:g.usage.promptTokens,outputTokens:g.usage.completionTokens,success:!0,cost:g.cost.totalCost,agentType:e.agentType}),this.costMetrics.recordCostFromInfo(p,m,g.usage,g.cost,{agentType:e.agentType,requestId:g.requestId}),{content:g.content,model:g.model,providerModelId:g.model,provider:g.provider,usage:g.usage,cost:g.cost,latencyMs:g.latencyMs,finishReason:g.finishReason,cached:g.cached,requestId:g.requestId,routingDecision:t}}catch(g){n=G(g);let M=Date.now()-N;if(this.metrics.recordFailure(p),this.routerMetrics.recordProviderCall(p,m,M,0,{success:!1,agentType:e.agentType}),a<s.length){let j=s[a];j&&this.routerMetrics.recordFallback(p,j.provider,n.message,e.agentType)}let ce=W(g)&&!g.retryable;!e.strictModel&&!ce&&a<o.maxAttempts&&await this.delay(o.delayMs)}}throw f(`All providers failed after ${a} attempts: ${n?.message??"Unknown error"}`,"PROVIDER_UNAVAILABLE",{retryable:!1,cause:n})}isSameModel(e,t){if(e===t)return!0;try{return b(e)===b(t)}catch{return!1}}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","claude-code":"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=b(e),n=L(o,i);return{canonicalModel:o,providerModelId:n}}catch{try{if(J(e)){let n=L(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 f(`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()}},H=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"}}};le();var me=V("llm/router-service");function ae(l){let e={};for(let[i,o]of Object.entries(l.providers??{}))o?.defaultModel&&(e[i]=o.defaultModel);oe(l.agentOverrides,e);let t=se();if(t.length===0)return l;let r=l.rules.length>0?l.rules:w;return{...l,rules:[...t,...r]}}var ye=["ollama","onnx","gemini","openrouter","openai","claude","azure-openai","bedrock"];async function St(l={}){if(l.providerManager){let c=ae(B({projectRoot:l.projectRoot,override:l.override,env:l.env})),d=new T(l.providerManager,c);return await d.initialize(),{router:d,resolvedConfig:c,enabledProviders:he(c)}}if(!ee({projectRoot:l.projectRoot,env:l.env}))return null;let e=ae(B({projectRoot:l.projectRoot,override:l.override,env:l.env})),t=ve(e,l.env??process.env);if(t.length===0)return null;let r=new Set(t);for(let[c,d]of Object.entries(e.agentOverrides??{}))d.provider&&!r.has(d.provider)&&me.warn(`[llm-config] agentOverrides["${c}"] routes to provider "${d.provider}", which is not enabled (no API key detected and not enabled in .agentic-qe/llm-config.json). This override will not take effect until that provider is available.`);let{primary:i,fallbacks:o}=fe(e,t),n={primary:i,fallbacks:o,providers:Ce(e,t,l.allowProjectProviderEndpoints??!0),loadBalancing:"round-robin",global:{enableCostTracking:!0,enableMetrics:!0}},a=new K(n),s=new T(a,e);return await s.initialize(),{router:s,resolvedConfig:e,enabledProviders:t}}function ve(l,e=process.env){let t=Z(e),r=[],i=o=>{r.includes(o)||!l.providers?.[o]?.enabled||t.has(o)&&r.push(o)};i(l.defaultProvider);for(let o of l.fallbackChain?.entries??[])i(o.provider);for(let o of ye)i(o);for(let o of C)i(o);return r}function he(l){let e=new Set([l.defaultProvider]);for(let t of l.fallbackChain?.entries??[])e.add(t.provider);return Array.from(e)}function fe(l,e){if(e.length===0)throw new Error("pickPrimaryAndFallbacks: no enabled providers");let t=e.includes(l.defaultProvider)?l.defaultProvider:e[0],r=e.filter(i=>i!==t);return{primary:t,fallbacks:r}}function Ce(l,e,t=!0){let r={};for(let i of e){let o=l.providers?.[i];if(o){let n={...o};(i==="codex"||i==="claude-code")&&delete n.binaryPath,t||delete n.baseUrl,r[i]=n}}return r}export{St as a,ve as b,fe as c,Ce as d};
@@ -1,12 +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.15.9");process.exit(0)}
2
- import{c as G,d as H}from"./chunk-3LYU7BLY.js";import{h as U}from"./chunk-KLGYIEJK.js";import{e as N}from"./chunk-MZS32SYS.js";import{e as W}from"./chunk-GCWSX2NY.js";import{e as T}from"./chunk-F3PQZX44.js";import{b as v,c as x}from"./chunk-UYLYMWV5.js";import{b,d as q}from"./chunk-PVIA2FPD.js";import{i as _}from"./chunk-FV7VAG74.js";import{c as k,d as E}from"./chunk-JNNZK7KH.js";import{a as se}from"./chunk-KTSLTZSG.js";import{e as z}from"./chunk-O3JLOVZX.js";import{a as y,e as $}from"./chunk-N3KEY4XJ.js";import{S as ae,b as O}from"./chunk-2I2UPJS7.js";import{randomUUID as ee}from"crypto";$();q();import{randomUUID as oe}from"node:crypto";var B=x(),P=class{constructor(e){this.options=e}options;claudeFlowAvailable=!1;localTrajectories=new Map;async initialize(){this.claudeFlowAvailable=await this.checkClaudeFlow()}async checkClaudeFlow(){return v(this.options.projectRoot).available}async startTrajectory(e,t){let i=`trajectory-${oe()}`;if(this.claudeFlowAvailable)try{let{execFileSync:n}=await import("child_process"),r=["--no-install",B,"hooks","intelligence","trajectory-start","--task",e];t&&r.push("--agent",t);let s=n("npx",r,{encoding:"utf-8",timeout:1e4,cwd:this.options.projectRoot}).match(/trajectoryId[:\s]+["']?([^"'\s,}]+)/i);if(s?.[1])return s[1]}catch(n){console.debug("[TrajectoryBridge] Claude Flow trajectory start failed:",n instanceof Error?n.message:n)}return this.localTrajectories.set(i,{id:i,task:e,agent:t,steps:[],startedAt:Date.now()}),i}async recordStep(e,t,i,n){if(this.claudeFlowAvailable)try{let{execFileSync:a}=await import("child_process"),s=["--no-install",B,"hooks","intelligence","trajectory-step","--trajectory-id",e,"--action",t];i&&s.push("--result",i),n!==void 0&&s.push("--quality",String(n)),a("npx",s,{encoding:"utf-8",timeout:1e4,cwd:this.options.projectRoot});return}catch(a){console.debug("[TrajectoryBridge] Claude Flow trajectory step failed:",a instanceof Error?a.message:a)}let r=this.localTrajectories.get(e);r&&r.steps.push({id:`step-${r.steps.length+1}`,action:t,result:i,quality:n,timestamp:Date.now()})}async endTrajectory(e,t,i){if(this.claudeFlowAvailable)try{let{execFileSync:r}=await import("child_process"),a=["--no-install",B,"hooks","intelligence","trajectory-end","--trajectory-id",e,"--success",String(t)];i&&a.push("--feedback",i),r("npx",a,{encoding:"utf-8",timeout:1e4,cwd:this.options.projectRoot})}catch{}let n=this.localTrajectories.get(e);if(n)return n.success=t,n.feedback=i,n.completedAt=Date.now(),await this.persistTrajectory(n),n}getTrajectory(e){return this.localTrajectories.get(e)}isClaudeFlowAvailable(){return this.claudeFlowAvailable}async persistTrajectory(e){try{let{getUnifiedMemory:t}=await import("./unified-memory-6JWHV6EF.js"),i=t();i.isInitialized()||await i.initialize();let n=i.getDatabase();try{n.prepare("PRAGMA table_info(qe_trajectories)").all().some(o=>o.name==="feedback")||n.exec("ALTER TABLE qe_trajectories ADD COLUMN feedback TEXT")}catch{}let r=new Date(e.startedAt).toISOString(),a=e.completedAt?new Date(e.completedAt).toISOString():null;n.prepare(`
3
- INSERT OR REPLACE INTO qe_trajectories
4
- (id, task, agent, domain, started_at, ended_at, success, steps_json, feedback)
5
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
6
- `).run(e.id,e.task,e.agent||null,null,r,a,e.success?1:0,JSON.stringify(e.steps),e.feedback||null)}catch(t){console.debug("[TrajectoryBridge] Trajectory persistence failed:",t instanceof Error?t.message:t)}}};var J=x(),V={low:[/simple/i,/basic/i,/fix typo/i,/rename/i,/format/i,/add comment/i,/lint/i,/minor/i,/quick/i],high:[/architect/i,/design/i,/complex/i,/security/i,/performance/i,/refactor.*large/i,/critical/i,/analysis/i,/multi.*file/i,/database.*migration/i,/distributed/i,/concurrent/i]},R=class{constructor(e){this.options=e}options;claudeFlowAvailable=!1;routingHistory=[];async initialize(){this.claudeFlowAvailable=await this.checkClaudeFlow()}async checkClaudeFlow(){return v(this.options.projectRoot).available}async routeTask(e){if(this.claudeFlowAvailable)try{let{execFileSync:t}=await import("child_process"),i=t("npx",["--no-install",J,"hooks","model-route","--task",e],{encoding:"utf-8",timeout:1e4,cwd:this.options.projectRoot}),n=i.match(/model[:\s]+["']?(haiku|sonnet|opus)/i),r=i.match(/confidence[:\s]+([0-9.]+)/i),a=i.match(/reason(?:ing)?[:\s]+["']?([^"'\n]+)/i);if(n)return{model:n[1].toLowerCase(),confidence:r?parseFloat(r[1]):.7,reasoning:a?.[1]?.trim()}}catch(t){console.debug("[ModelRouterBridge] Claude Flow routing failed:",t instanceof Error?t.message:t)}return this.localRoute(e)}async recordOutcome(e){if(this.routingHistory.push(e),this.routingHistory.length>1e3&&(this.routingHistory=this.routingHistory.slice(-500)),this.claudeFlowAvailable)try{let{execFileSync:t}=await import("child_process");t("npx",["--no-install",J,"hooks","model-outcome","--task",e.task,"--model",e.model,"--outcome",e.outcome],{encoding:"utf-8",timeout:1e4,cwd:this.options.projectRoot})}catch(t){console.debug("[ModelRouterBridge] Outcome recording failed:",t instanceof Error?t.message:t)}}getStats(){let e={totalRoutings:this.routingHistory.length,modelDistribution:{haiku:0,sonnet:0,opus:0},successRate:{haiku:0,sonnet:0,opus:0}},t={haiku:0,sonnet:0,opus:0};for(let i of this.routingHistory)e.modelDistribution[i.model]++,i.outcome==="success"&&t[i.model]++;for(let i of["haiku","sonnet","opus"]){let n=e.modelDistribution[i];e.successRate[i]=n>0?t[i]/n:0}return e}isClaudeFlowAvailable(){return this.claudeFlowAvailable}localRoute(e){let t=e.toLowerCase();for(let i of V.low)if(i.test(t))return{model:"haiku",confidence:.75,reasoning:"Low complexity task detected - using haiku for speed"};for(let i of V.high)if(i.test(t))return{model:"opus",confidence:.8,reasoning:"High complexity task detected - using opus for capability"};return e.length>500?{model:"opus",confidence:.65,reasoning:"Long task description - using opus for complex reasoning"}:e.length<50?{model:"haiku",confidence:.6,reasoning:"Short task description - using haiku for efficiency"}:{model:"sonnet",confidence:.7,reasoning:"Medium complexity task - using sonnet for balance"}}};q();$();var D=x(),S=class{constructor(e){this.options=e}options;claudeFlowAvailable=!1;analysisCache=new Map;async initialize(){this.claudeFlowAvailable=await this.checkClaudeFlow()}async checkClaudeFlow(){return v(this.options.projectRoot).available}async analyze(e,t="medium"){let i=e||this.options.projectRoot,n=`${i}:${t}`,r=this.analysisCache.get(n);if(r)return r;if(this.claudeFlowAvailable)try{let{execFileSync:a}=await import("child_process"),s=a("npx",["--no-install",D,"hooks","pretrain","--path",i,"--depth",t],{encoding:"utf-8",timeout:12e4,cwd:this.options.projectRoot});try{let o=b(s),d={success:!0,repositoryPath:i,depth:t,analysis:o.analysis||void 0,agentConfigs:o.agentConfigs};return this.analysisCache.set(n,d),d}catch{return{success:!0,repositoryPath:i,depth:t}}}catch(a){console.debug("[PretrainBridge] Claude Flow analyze failed, using local:",a instanceof Error?a.message:a)}return this.localAnalyze(i,t)}async generateAgentConfigs(e="yaml"){if(this.claudeFlowAvailable)try{let{execFileSync:t}=await import("child_process"),i=t("npx",["--no-install",D,"hooks","build-agents","--format",e],{encoding:"utf-8",timeout:6e4,cwd:this.options.projectRoot});try{return b(i)}catch(n){return console.debug("[PretrainBridge] Agent config parse error:",n instanceof Error?n.message:n),[]}}catch(t){console.debug("[PretrainBridge] Claude Flow generateAgentConfigs failed:",t instanceof Error?t.message:t)}return this.generateLocalAgentConfigs()}async transferPatterns(e,t=.7){if(this.claudeFlowAvailable)try{let{execFileSync:i}=await import("child_process"),n=i("npx",["--no-install",D,"hooks","transfer","--source-path",e,"--min-confidence",String(t)],{encoding:"utf-8",timeout:6e4,cwd:this.options.projectRoot}),r=n.match(/transferred[:\s]+(\d+)/i),a=n.match(/skipped[:\s]+(\d+)/i);return{transferred:r?parseInt(r[1]):0,skipped:a?parseInt(a[1]):0}}catch(i){console.debug("[PretrainBridge] Claude Flow transferPatterns failed:",i instanceof Error?i.message:i)}return{transferred:0,skipped:0}}isClaudeFlowAvailable(){return this.claudeFlowAvailable}async localAnalyze(e,t){try{let{glob:i}=await import("tinyglobby"),{existsSync:n,readFileSync:r}=await import("fs"),{join:a}=await import("path"),d=await i(t==="shallow"?["*.ts","*.js","*.json"]:t==="medium"?["**/*.ts","**/*.js","**/*.json","**/*.py"]:["**/*"],{cwd:e,ignore:["node_modules/**","dist/**","coverage/**",".git/**"],expandDirectories:!1,onlyFiles:!0}),c=new Set,g=new Set;for(let p of d.slice(0,100))(p.endsWith(".ts")||p.endsWith(".tsx"))&&c.add("typescript"),(p.endsWith(".js")||p.endsWith(".jsx"))&&c.add("javascript"),p.endsWith(".py")&&c.add("python"),p.endsWith(".go")&&c.add("go"),p.endsWith(".rs")&&c.add("rust");let w=a(e,"package.json");if(n(w))try{let p=b(r(w,"utf-8")),f={...p.dependencies,...p.devDependencies};f.react&&g.add("react"),f.vue&&g.add("vue"),f.angular&&g.add("angular"),f.vitest&&g.add("vitest"),f.jest&&g.add("jest"),f.playwright&&g.add("playwright"),f.express&&g.add("express"),f.fastify&&g.add("fastify")}catch(p){console.debug("[PretrainBridge] package.json parse error:",p instanceof Error?p.message:p)}let m={success:!0,repositoryPath:e,depth:t,analysis:{languages:Array.from(c),frameworks:Array.from(g),patterns:[],complexity:d.length>500?3:d.length>100?2:1}};return this.analysisCache.set(`${e}:${t}`,m),m}catch(i){return{success:!1,repositoryPath:e,depth:t,error:y(i)}}}generateLocalAgentConfigs(){return[{name:"qe-test-architect",type:"worker",capabilities:["test-generation","test-design"],model:"sonnet"},{name:"qe-coverage-specialist",type:"worker",capabilities:["coverage-analysis","gap-detection"],model:"haiku"},{name:"qe-quality-gate",type:"worker",capabilities:["quality-assessment","risk-scoring"],model:"sonnet"},{name:"qe-security-scanner",type:"worker",capabilities:["security-scanning","vulnerability-detection"],model:"opus"}]}};var M=class{constructor(e){this.options=e;this.trajectory=new P(e),this.modelRouter=new R(e),this.pretrain=new S(e)}options;trajectory;modelRouter;pretrain;initialized=!1;async initialize(){this.initialized||(await Promise.all([this.trajectory.initialize(),this.modelRouter.initialize(),this.pretrain.initialize()]),this.initialized=!0)}getStatus(){return{available:this.isAvailable(),features:{trajectories:this.trajectory.isClaudeFlowAvailable(),modelRouting:this.modelRouter.isClaudeFlowAvailable(),pretrain:this.pretrain.isClaudeFlowAvailable(),patternSearch:this.trajectory.isClaudeFlowAvailable()}}}isAvailable(){return this.trajectory.isClaudeFlowAvailable()||this.modelRouter.isClaudeFlowAvailable()||this.pretrain.isClaudeFlowAvailable()}};function X(u){return new M(u)}import{createHash as ce}from"node:crypto";se();ae();var F=z.create("experience-capture"),K={"catches-bug":1,flaky:-1,"false-positive":-1,"new-coverage":.3,redundant:0,"code-smell":-.5,neutral:0},le=new Set(Object.keys(K));function Z(u){return typeof u=="string"&&le.has(u)}function ue(u){if(Z(u))return K[u]}var de={namespace:"qe-experiences",minQualityForPatternExtraction:.7,similarityThreshold:.85,promotionThreshold:T,maxExperiencesPerDomain:1e3,enableCrossDomainSharing:!0,autoCleanup:!0,cleanupIntervalMs:864e5},Q=class{constructor(e,t,i,n={}){this.memory=e;this.patternStore=t;this.eventBus=i;this.config={...de,...n}}memory;patternStore;eventBus;config;initialized=!1;cleanupTimer;activeExperiences=new Map;stats={totalCaptured:0,successfulCaptures:0,patternsExtracted:0,patternsPromoted:0,byDomain:new Map};sessionCaptureCount=0;witnessChain;nullRecorder;setWitnessChain(e){this.witnessChain=e}setNullRecorder(e){this.nullRecorder=e}async initialize(){this.initialized||(await this.loadStats(),this.config.autoCleanup&&(this.cleanupTimer=setInterval(()=>this.cleanup(),this.config.cleanupIntervalMs)),this.initialized=!0,console.log("[ExperienceCapture] Initialized"))}startCapture(e,t){let i=`exp-${Date.now()}-${_().slice(0,8)}`,n={id:i,task:e,agent:t?.agent,domain:t?.domain,model:t?.model,startedAt:Date.now(),completedAt:0,durationMs:0,steps:[],success:!1,quality:0,trajectoryId:t?.trajectoryId,metadata:t?.metadata,appliedPatterns:t?.appliedPatterns};return this.activeExperiences.set(i,n),i}recordStep(e,t){let i=this.activeExperiences.get(e);if(!i){console.warn(`[ExperienceCapture] Experience not found: ${e}`);return}i.steps.push({...t,timestamp:Date.now()})}async completeCapture(e,t){let i=this.activeExperiences.get(e);if(!i)return E(new Error(`Experience not found: ${e}`));let n=Date.now();i.completedAt=n,i.durationMs=n-i.startedAt,i.success=t.success,i.feedback=t.feedback,t.quality!==void 0?i.quality=t.quality:i.quality=this.calculateQuality(i);let r=t.testOutcome??i.metadata?.testOutcome;if(r&&Z(r)&&(i.testOutcome=r,i.reward=ue(r)),this.witnessChain&&O().useWitnessChain)try{let o=this.witnessChain.appendWitness({type:"experience-capture",decision:i.success?"PASS":"FAIL",context:{experienceId:i.id,task:i.task,quality:i.quality,domain:i.domain,reward:i.reward},evidence:i.reward});i.witnessHash=o.hash}catch(o){F.warn("Failed to create witness receipt for experience",{experienceId:i.id,error:o instanceof Error?o.message:String(o)})}this.activeExperiences.delete(e),await this.storeExperience(i),this.updateStats(i);let a=i.reward!==void 0?i.reward<0:!i.success;if(this.nullRecorder&&a&&i.appliedPatterns?.length){let o=`${i.domain??"unknown"}:${i.agent??"unknown"}`;for(let d of i.appliedPatterns)try{this.nullRecorder({patternId:d,contextFingerprint:o,failureMode:i.testOutcome??i.feedback??"task-failure",trajectoryRef:i.trajectoryId,evidenceClass:"EXECUTED"})}catch(c){F.warn("Failed to record pattern null",{patternId:d,error:c instanceof Error?c.message:String(c)})}}let s=i.reward===void 0||i.reward>0;if(i.success&&i.quality>=this.config.minQualityForPatternExtraction&&s){let o=await this.extractPattern(i);(o.newPattern||o.reinforced)&&(i.patterns=[o.patternId])}return this.emitExperienceCaptured(i),k(i)}getActiveExperience(e){return this.activeExperiences.get(e)}getPendingCount(){return this.activeExperiences.size}async flushPending(){let e=Array.from(this.activeExperiences.entries());if(e.length===0)return 0;let t=0;for(let[i,n]of e){let r=Date.now();n.completedAt=r,n.durationMs=r-n.startedAt,n.quality=n.quality||this.calculateQuality(n),n.metadata={...n.metadata,flushedByCompaction:!0},await this.storeExperience(n),this.updateStats(n),this.activeExperiences.delete(i),t++}return F.info(`Flushed ${t} pending experiences before compaction`),t}async getExperience(e){let t=`${this.config.namespace}:experience:${e}`;return await this.memory.get(t)??null}async searchExperiences(e={}){let t=e.limit||100,i=[],n;e.domain?n=await this.memory.search(`${this.config.namespace}:index:domain:${e.domain}:*`,t*2):n=await this.memory.search(`${this.config.namespace}:experience:*`,t*2);for(let r of n){if(i.length>=t)break;let a=r.includes(":index:")?await this.memory.get(r):null,s=a?await this.getExperience(a):await this.memory.get(r);s&&(e.agent&&s.agent!==e.agent||e.success!==void 0&&s.success!==e.success||e.minQuality!==void 0&&s.quality<e.minQuality||i.push(s))}return i}async getStats(){let e={};for(let[t,i]of this.stats.byDomain)e[t]=i;return{totalExperiences:this.stats.totalCaptured,byDomain:e,successRate:this.stats.totalCaptured>0?this.stats.successfulCaptures/this.stats.totalCaptured:0,avgQuality:await this.calculateAvgQuality(),patternsExtracted:this.stats.patternsExtracted,patternsPromoted:this.stats.patternsPromoted}}async extractPattern(e){if(!this.patternStore)return{newPattern:!1,reinforced:!1,promoted:!1};let t=this.experienceIdentity(e),i=await this.patternStore.search(t,{limit:1,domain:e.domain,patternType:this.detectPatternType(e.task),useVectorSearch:!1});if(i.success&&i.value.length>0){let a=i.value[0],s=a.pattern.context?.experienceOrigin;if(s?.task===e.task&&s.domain===(e.domain??null)&&s.patternType===this.detectPatternType(e.task)&&a.pattern.patternType===s.patternType&&(!e.domain||a.pattern.qeDomain===e.domain)){let o=await this.patternStore.recordUsage(a.pattern.id,e.success),d=await this.patternStore.get(a.pattern.id),c=!1;return d&&d.tier==="short-term"&&d.usageCount>=this.config.promotionThreshold&&(await this.patternStore.promote(a.pattern.id)).success&&(c=!0,this.stats.patternsPromoted++,console.log(`[ExperienceCapture] Pattern promoted: ${a.pattern.id} (${d.usageCount} uses)`)),{newPattern:!1,patternId:a.pattern.id,reinforced:o.success,promoted:c}}}let n=this.experienceToPatternOptions(e),r=await this.patternStore.create(n);return r.success?(this.stats.patternsExtracted++,await this.patternStore.recordUsage(r.value.id,e.success),{newPattern:!0,patternId:r.value.id,reinforced:!1,promoted:!1}):{newPattern:!1,reinforced:!1,promoted:!1}}async shareAcrossDomains(e){if(!this.config.enableCrossDomainSharing||!e.domain)return;let t=this.getRelatedDomains(e.domain);for(let i of t){let n=`${this.config.namespace}:shared:${i}:${e.id}`;await this.memory.set(n,{sourceExperience:e.id,sourceDomain:e.domain,sharedAt:Date.now()},{persist:!0})}}async cleanup(){let t=0;for(let i of this.stats.byDomain.keys()){let n=this.stats.byDomain.get(i)||0;if(n>this.config.maxExperiencesPerDomain){let r=await this.searchExperiences({domain:i,limit:n});r.sort((s,o)=>s.quality-o.quality||s.startedAt-o.startedAt);let a=n-this.config.maxExperiencesPerDomain;for(let s=0;s<Math.min(a,r.length);s++){let o=r[s];await this.softDeleteExperience(o.id),t++}}}return console.log(`[ExperienceCapture] Cleanup: ${t} archived (0 destroyed)`),{removed:0,consolidated:0,archived:t}}async dispose(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),await this.saveStats(),this.sessionCaptureCount===0&&console.warn("[ExperienceCapture] WARNING: Zero experiences captured this session. Learning cannot improve without experience data. Ensure tasks call startCapture()/completeCapture() to feed the learning loop."),this.activeExperiences.clear(),this.initialized=!1}async storeExperience(e){let t=`${this.config.namespace}:experience:${e.id}`;if(await this.memory.set(t,e,{persist:!0}),e.domain){let i=`${this.config.namespace}:index:domain:${e.domain}:${e.id}`;await this.memory.set(i,e.id,{persist:!0})}if(e.agent){let i=`${this.config.namespace}:index:agent:${e.agent}:${e.id}`;await this.memory.set(i,e.id,{persist:!0})}}async deleteExperience(e){await this.softDeleteExperience(e)}async softDeleteExperience(e){let t=await this.getExperience(e);if(!t)return;let i=`${this.config.namespace}:experience:${e}`,n={...t,_archived:!0};await this.memory.set(i,n,{persist:!0})}calculateQuality(e){if(e.steps.length===0)return e.success?.5:.2;let t=e.steps.filter(n=>n.quality!==void 0);if(t.length===0)return e.success?.6:.3;let i=t.reduce((n,r)=>n+(r.quality||0),0)/t.length;return e.success?Math.min(1,i+.1):Math.max(0,i-.2)}updateStats(e){if(this.stats.totalCaptured++,this.sessionCaptureCount++,e.success&&this.stats.successfulCaptures++,e.domain){let t=this.stats.byDomain.get(e.domain)||0;this.stats.byDomain.set(e.domain,t+1)}}async calculateAvgQuality(){let e=await this.searchExperiences({limit:100});return e.length===0?0:e.reduce((i,n)=>i+n.quality,0)/e.length}experienceToPatternOptions(e){let t=this.detectPatternType(e.task),n=`Task: {{task}}
7
-
8
- Steps:
9
- ${e.steps.map((r,a)=>`${a+1}. ${r.action}${r.result?` \u2192 ${r.result}`:""}`).join(`
10
- `)}
11
-
12
- Duration: ${e.durationMs}ms`;return{patternType:t,qeDomain:e.domain,name:this.generatePatternName(e),description:`Pattern extracted from: ${e.task}`,context:{tags:[...this.extractTags(e),this.experienceIdentity(e)],experienceOrigin:{task:e.task,domain:e.domain??null,patternType:t},testType:this.detectTestType(e.task)},template:{type:"workflow",content:n,variables:[{name:"task",type:"string",description:"The task to execute",required:!0}]}}}detectPatternType(e){let t=e.toLowerCase();return t.includes("test")||t.includes("spec")?(t.includes("unit")||t.includes("integration")||t.includes("e2e"),"test-template"):t.includes("mock")||t.includes("stub")?"mock-pattern":t.includes("assert")||t.includes("expect")?"assertion-pattern":t.includes("coverage")?"coverage-strategy":t.includes("api")||t.includes("contract")?"api-contract":t.includes("visual")||t.includes("screenshot")?"visual-baseline":t.includes("accessibility")||t.includes("a11y")?"a11y-check":t.includes("performance")||t.includes("perf")?"perf-benchmark":t.includes("flaky")?"flaky-fix":t.includes("refactor")?"refactor-safe":t.includes("error")||t.includes("exception")?"error-handling":"test-template"}experienceIdentity(e){return ce("sha256").update(JSON.stringify([e.task,e.domain??null,this.detectPatternType(e.task)])).digest("hex")}generatePatternName(e){let t=e.task.replace(/[^a-zA-Z0-9\s-]/g,"").slice(0,50).trim();return`${e.domain?`[${e.domain}] `:""}${t} ${this.experienceIdentity(e)}`}extractTags(e){let t=[];e.domain&&t.push(e.domain),e.agent&&t.push(e.agent),e.model&&t.push(`model:${e.model}`);let i=e.task.toLowerCase().split(/\s+/),n=["unit","integration","e2e","api","mock","coverage","security"];for(let r of n)i.some(a=>a.includes(r))&&t.push(r);return t}detectTestType(e){let t=e.toLowerCase();if(t.includes("unit"))return"unit";if(t.includes("integration"))return"integration";if(t.includes("e2e")||t.includes("end-to-end"))return"e2e";if(t.includes("contract")||t.includes("api"))return"contract";if(t.includes("smoke"))return"smoke"}getRelatedDomains(e){return{"test-generation":["test-execution","coverage-analysis"],"test-execution":["test-generation","coverage-analysis","quality-assessment"],"coverage-analysis":["test-generation","test-execution"],"quality-assessment":["test-execution","defect-intelligence"],"defect-intelligence":["quality-assessment","code-intelligence"],"requirements-validation":["test-generation","quality-assessment"],"code-intelligence":["defect-intelligence","security-compliance"],"security-compliance":["code-intelligence","quality-assessment"],"contract-testing":["test-generation","test-execution"],"visual-accessibility":["quality-assessment","test-execution"],"chaos-resilience":["test-execution","quality-assessment"],"learning-optimization":[]}[e]||[]}emitExperienceCaptured(e){this.eventBus&&this.eventBus.publish({id:`exp-captured-${e.id}`,type:"learning.ExperienceCaptured",source:"learning-optimization",timestamp:new Date,payload:{experience:e,reward:e.reward,testOutcome:e.testOutcome}})}async loadStats(){try{let e=await this.memory.get(`${this.config.namespace}:stats`);e&&(this.stats.totalCaptured=e.totalCaptured,this.stats.successfulCaptures=e.successfulCaptures,this.stats.patternsExtracted=e.patternsExtracted,this.stats.patternsPromoted=e.patternsPromoted,this.stats.byDomain=new Map(e.byDomain))}catch(e){F.debug("Stats restoration failed, starting fresh",{error:e instanceof Error?e.message:String(e)})}}async saveStats(){try{await this.memory.set(`${this.config.namespace}:stats`,{totalCaptured:this.stats.totalCaptured,successfulCaptures:this.stats.successfulCaptures,patternsExtracted:this.stats.patternsExtracted,patternsPromoted:this.stats.patternsPromoted,byDomain:Array.from(this.stats.byDomain.entries())},{persist:!0})}catch(e){console.error("[ExperienceCapture] Failed to save stats:",e)}}};function Y(u,e,t,i){return new Q(u,e,t,i)}var pe={enableClaudeFlow:!0,enableExperienceCapture:!0,enablePatternPromotion:!0,promotionThreshold:T},L=class{constructor(e,t,i){this.memory=e;this.eventBus=i;this.config={...pe,...t}}memory;eventBus;config;reasoningBank;claudeFlowBridge;experienceCapture;patternStore;coherenceService;initialized=!1;_domainTransferEngine=null;_domainTransferInterval=null;activeTasks=new Map;completedTasks=0;claudeFlowErrors=0;async initialize(){if(!this.initialized){try{this.coherenceService=await G(H),this.coherenceService.isInitialized()&&console.log("[AQELearningEngine] CoherenceService initialized with WASM engines")}catch(e){console.log("[AQELearningEngine] CoherenceService WASM unavailable, using fallback:",y(e))}this.patternStore=W(this.memory,{promotionThreshold:this.config.promotionThreshold}),await this.patternStore.initialize(),this.reasoningBank=U(this.memory,this.eventBus,this.config.reasoningBank,this.coherenceService),await this.reasoningBank.initialize();try{let{getSharedRvfDualWriter:e}=await import("./shared-rvf-dual-writer-LZ2GMSS2.js"),t=await e();t&&this.reasoningBank.setRvfDualWriter(t)}catch(e){process.env.DEBUG&&console.debug("[AQELearningEngine] RVF wiring skipped:",e instanceof Error?e.message:e)}if(this.config.enableExperienceCapture){this.experienceCapture=Y(this.memory,this.patternStore,this.eventBus,{promotionThreshold:this.config.promotionThreshold}),await this.experienceCapture.initialize();try{let{isWitnessChainFeatureEnabled:e}=await import("./witness-chain-TATPXQRK.js");if(e()){let{createPersistentWitnessChain:t,createWitnessChainSQLitePersistence:i}=await import("./witness-chain-TATPXQRK.js"),{getUnifiedPersistence:n}=await import("./unified-persistence-KGGNA46H.js"),r=n();if(r.isInitialized()){let a=r.getDatabase(),s=i(a),o=t(s);this.experienceCapture.setWitnessChain(o)}}}catch(e){process.env.DEBUG&&console.debug("[AQELearningEngine] Witness chain wiring skipped:",e instanceof Error?e.message:e)}try{let{getUnifiedPersistence:e}=await import("./unified-persistence-KGGNA46H.js"),t=e();if(t.isInitialized()){let{PatternNullStore:i}=await import("./pattern-null-store-CCHQHGQG.js"),n=new i(t.getDatabase());this.experienceCapture.setNullRecorder(r=>n.recordNull(r))}}catch(e){process.env.DEBUG&&console.debug("[AQELearningEngine] Null recorder wiring skipped:",e instanceof Error?e.message:e)}}try{let{isCrossDomainTransferEnabled:e}=await import("./feature-flags-MIWQIOHU.js");if(e()&&this.patternStore){let{createDomainTransferEngine:t}=await import("./domain-transfer-6EF75EKU.js"),i=t(),n=this.patternStore,r=await n.getStats();this._domainTransferInterval=setInterval(async()=>{try{r=await n.getStats()}catch(a){process.env.DEBUG&&console.debug("[AQELearningEngine] Stats refresh failed:",a instanceof Error?a.message:a)}},6e4),this._domainTransferInterval.unref?.(),i.setPerformanceProvider(a=>{let s=r.byDomain?.[a]??0,o=r.totalPatterns??0;return{domain:a,successRate:o>0?s/o:.5,avgConfidence:r.avgConfidence??.5,patternCount:s,timestamp:Date.now()}}),this._domainTransferEngine=i}}catch(e){process.env.DEBUG&&console.debug("[AQELearningEngine] Domain transfer wiring skipped:",e instanceof Error?e.message:e)}if(this.config.enableClaudeFlow)try{this.claudeFlowBridge=X({projectRoot:this.config.projectRoot}),await this.claudeFlowBridge.initialize(),this.claudeFlowBridge.isAvailable()&&console.log("[AQELearningEngine] Claude Flow integration enabled")}catch(e){process.env.DEBUG&&console.log("[AQELearningEngine] Claude Flow not available, using standalone mode:",y(e))}this.initialized=!0,console.log("[AQELearningEngine] Initialized")}}getStatus(){let e=this.claudeFlowBridge?.getStatus();return{initialized:this.initialized,claudeFlowAvailable:e?.available??!1,features:{patternLearning:!0,vectorSearch:!0,taskRouting:!0,trajectories:e?.features.trajectories??!1,modelRouting:e?.features.modelRouting??!1,pretrain:e?.features.pretrain??!1}}}async getStats(){if(!this.initialized||!this.reasoningBank)throw new Error("Engine not initialized");let e=await this.reasoningBank.getStats(),t=this.experienceCapture?await this.experienceCapture.getStats():{totalExperiences:0,byDomain:{},successRate:0,avgQuality:0,patternsExtracted:0,patternsPromoted:0};return{...e,activeTasks:this.activeTasks.size,completedTasks:this.completedTasks,claudeFlowStatus:this.claudeFlowBridge?.getStatus()??{available:!1,features:{trajectories:!1,modelRouting:!1,pretrain:!1,patternSearch:!1}},claudeFlowErrors:this.claudeFlowErrors,experienceCapture:t}}async storePattern(e){return!this.initialized||!this.reasoningBank?E(new Error("Engine not initialized")):this.reasoningBank.storePattern(e)}async searchPatterns(e,t){return!this.initialized||!this.reasoningBank?E(new Error("Engine not initialized")):this.reasoningBank.searchPatterns(e,t)}async getPattern(e){return!this.initialized||!this.reasoningBank?null:this.reasoningBank.getPattern(e)}async recordOutcome(e){return!this.initialized||!this.reasoningBank?E(new Error("Engine not initialized")):this.reasoningBank.recordOutcome(e)}async routeTask(e){if(!this.initialized||!this.reasoningBank)return E(new Error("Engine not initialized"));let t=await this.searchPatternsForTask(e.task,{limit:5,minConfidence:.4,domain:e.domain,contextFingerprint:e.domain?`${e.domain}:router`:void 0});t.success&&t.value.length>0&&await this.trackPatternSearch(e.task,t.value);let i=await this.reasoningBank.routeTask(e);if(i.success&&this.claudeFlowBridge?.pretrain.isClaudeFlowAvailable(),i.success&&t.success){let n=N(i.value,t.value);return k(n)}return i}async route(e,t){let i=await this.routeTask({task:e,context:t});return i.success?i.value:null}async searchPatternsForTask(e,t={}){if(!this.reasoningBank)return k([]);try{return await this.reasoningBank.searchPatterns(e,{limit:t.limit||5,minConfidence:t.minConfidence||.4,domain:t.domain,contextFingerprint:t.contextFingerprint,useVectorSearch:!0})}catch(i){return console.warn("[AQELearningEngine] Pattern search failed:",y(i)),k([])}}async trackPatternSearch(e,t){let i={timestamp:Date.now(),task:e.slice(0,500),patternsFound:t.length,patternIds:t.map(n=>n.pattern.id),avgSimilarity:t.length>0?t.reduce((n,r)=>n+r.similarity,0)/t.length:0};try{let n=`pattern-usage:search:${Date.now()}-${ee().slice(0,8)}`;await this.memory.set(n,i,{persist:!0,ttl:10080*60})}catch(n){console.debug("[AQELearningEngine] Failed to track pattern search:",y(n))}}async recommendModel(e){if(this.claudeFlowBridge?.modelRouter.isClaudeFlowAvailable())try{return await this.claudeFlowBridge.modelRouter.routeTask(e)}catch(t){console.debug("[AQELearningEngine] Claude Flow model routing failed:",t instanceof Error?t.message:t)}return this.localModelRoute(e)}async recordModelOutcome(e,t,i){this.claudeFlowBridge?.modelRouter.isClaudeFlowAvailable()&&await this.claudeFlowBridge.modelRouter.recordOutcome({task:e,model:t,outcome:i})}localModelRoute(e){let t=e.toLowerCase(),i=[/simple/i,/basic/i,/fix typo/i,/rename/i,/format/i,/add comment/i,/lint/i,/minor/i,/quick/i,/small/i];for(let r of i)if(r.test(t))return{model:"haiku",confidence:.75,reasoning:"Low complexity task - using haiku for speed"};let n=[/architect/i,/design/i,/complex/i,/security/i,/performance/i,/refactor.*large/i,/critical/i,/analysis/i,/multi.*file/i,/distributed/i,/concurrent/i,/migration/i];for(let r of n)if(r.test(t))return{model:"opus",confidence:.8,reasoning:"High complexity task - using opus for capability"};return e.length>500?{model:"opus",confidence:.65,reasoning:"Long task description - using opus for complex reasoning"}:e.length<50?{model:"haiku",confidence:.6,reasoning:"Short task - using haiku for efficiency"}:{model:"sonnet",confidence:.7,reasoning:"Medium complexity - using sonnet for balance"}}async startTask(e,t,i){let n=`task-${Date.now()}-${ee().slice(0,8)}`,r=n;if(this.claudeFlowBridge?.trajectory.isClaudeFlowAvailable())try{r=await this.claudeFlowBridge.trajectory.startTrajectory(e,t)}catch(c){this.claudeFlowErrors++,console.warn(`[AQELearningEngine] Claude Flow startTrajectory failed (${this.claudeFlowErrors} total errors):`,y(c))}let a=`${i??"unknown"}:${t??"unknown"}`,s;try{let c=await this.searchPatternsForTask(e,{domain:i,contextFingerprint:a});c.success&&c.value.length>0&&(s=c.value.map(g=>g.pattern.id))}catch{}let o;this.experienceCapture&&(o=this.experienceCapture.startCapture(e,{agent:t,domain:i,trajectoryId:r!==n?r:void 0,appliedPatterns:s}));let d={id:o||r,task:e,agent:t,startedAt:Date.now(),steps:[]};return this.activeTasks.set(d.id,d),d.id}async recordStep(e,t,i,n){if(this.claudeFlowBridge?.trajectory.isClaudeFlowAvailable())try{await this.claudeFlowBridge.trajectory.recordStep(e,t,i,n)}catch(a){this.claudeFlowErrors++,console.warn(`[AQELearningEngine] Claude Flow recordStep failed (${this.claudeFlowErrors} total errors):`,y(a))}this.experienceCapture&&this.experienceCapture.recordStep(e,{action:t,result:i,quality:n});let r=this.activeTasks.get(e);r&&r.steps.push({action:t,result:i,quality:n,timestamp:Date.now()})}async endTask(e,t,i){if(this.claudeFlowBridge?.trajectory.isClaudeFlowAvailable())try{await this.claudeFlowBridge.trajectory.endTrajectory(e,t,i)}catch(r){this.claudeFlowErrors++,console.warn(`[AQELearningEngine] Claude Flow endTrajectory failed (${this.claudeFlowErrors} total errors):`,y(r))}let n=this.activeTasks.get(e);if(n)return this.activeTasks.delete(e),this.completedTasks++,this.config.enableExperienceCapture&&t&&await this.captureExperience(n),n}getTask(e){return this.activeTasks.get(e)}async analyzeCodebase(e,t="medium"){let i=e||this.config.projectRoot;if(this.claudeFlowBridge?.pretrain.isClaudeFlowAvailable())try{return await this.claudeFlowBridge.pretrain.analyze(i,t)}catch(n){console.debug("[AQELearningEngine] Claude Flow pretrain analyze failed:",n instanceof Error?n.message:n)}return this.localAnalyze(i,t)}async generateAgentConfigs(e="yaml"){if(this.claudeFlowBridge?.pretrain.isClaudeFlowAvailable())try{return await this.claudeFlowBridge.pretrain.generateAgentConfigs(e)}catch(t){console.debug("[AQELearningEngine] Claude Flow agent config failed:",t instanceof Error?t.message:t)}return[{name:"qe-test-architect",type:"worker",capabilities:["test-generation","test-design"],model:"sonnet"},{name:"qe-coverage-specialist",type:"worker",capabilities:["coverage-analysis","gap-detection"],model:"haiku"},{name:"qe-security-scanner",type:"worker",capabilities:["security-scanning","vulnerability-detection"],model:"opus"}]}async captureExperience(e){if(!this.experienceCapture||!this.config.enableExperienceCapture)return;let t=e.steps.length>0?e.steps.reduce((n,r)=>n+(r.quality??.5),0)/e.steps.length:.5;await this.experienceCapture.completeCapture(e.id,{success:!0,quality:t});let i=await this.experienceCapture.getExperience(e.id);i&&i.quality>=.7&&await this.experienceCapture.shareAcrossDomains(i)}startExperienceCapture(e,t){if(this.experienceCapture)return this.experienceCapture.startCapture(e,t)}getExperienceCaptureService(){return this.experienceCapture}async localAnalyze(e,t){try{let{glob:i}=await import("tinyglobby"),{existsSync:n,readFileSync:r}=await import("fs"),{join:a}=await import("path"),d=await i(t==="shallow"?["*.ts","*.js","*.json"]:t==="medium"?["**/*.ts","**/*.js","**/*.json","**/*.py"]:["**/*"],{cwd:e,ignore:["node_modules/**","dist/**","coverage/**",".git/**"],expandDirectories:!1,onlyFiles:!0}),c=new Set,g=new Set;for(let m of d.slice(0,100))(m.endsWith(".ts")||m.endsWith(".tsx"))&&c.add("typescript"),(m.endsWith(".js")||m.endsWith(".jsx"))&&c.add("javascript"),m.endsWith(".py")&&c.add("python"),m.endsWith(".go")&&c.add("go"),m.endsWith(".rs")&&c.add("rust");let w=a(e,"package.json");if(n(w))try{let m=b(r(w,"utf-8")),p={...m.dependencies,...m.devDependencies};p.react&&g.add("react"),p.vue&&g.add("vue"),p.vitest&&g.add("vitest"),p.jest&&g.add("jest"),p.playwright&&g.add("playwright")}catch(m){console.debug("[AQELearningEngine] package.json parse failed:",m instanceof Error?m.message:m)}return{success:!0,repositoryPath:e,depth:t,analysis:{languages:Array.from(c),frameworks:Array.from(g),patterns:[],complexity:d.length>500?3:d.length>100?2:1}}}catch(i){return{success:!1,repositoryPath:e,depth:t,error:y(i)}}}getGuidance(e,t){if(!this.reasoningBank)throw new Error("Engine not initialized");return this.reasoningBank.getGuidance(e,t)}generateContext(e,t){if(!this.reasoningBank)throw new Error("Engine not initialized");return this.reasoningBank.generateContext(e,t)}checkAntiPatterns(e,t){if(!this.reasoningBank)throw new Error("Engine not initialized");return this.reasoningBank.checkAntiPatterns(e,t)}async dispose(){this._domainTransferInterval&&(clearInterval(this._domainTransferInterval),this._domainTransferInterval=null),this._domainTransferEngine=null,this.experienceCapture&&await this.experienceCapture.dispose(),this.patternStore&&await this.patternStore.dispose(),this.reasoningBank&&await this.reasoningBank.dispose(),this.activeTasks.clear(),this.initialized=!1}},ge={enabled:!1,snapshotIntervalMs:3e5,minSnapshotsForAnalysis:5,autoApplyThreshold:.8},te=class{config;constructor(e){this.config={...ge,...e}}runMetaLearningCycle(e){if(process.env.AQE_META_LEARNING_ENABLED!=="true")return[];if(!this.config.enabled)return[];if(e.length<this.config.minSnapshotsForAnalysis)return[];let t=Math.floor(e.length/2),i=e.slice(0,t),n=e.slice(t),r=[],a=Date.now(),s=h(i.map(l=>l.tokenMetrics.costUsd)),o=h(n.map(l=>l.tokenMetrics.costUsd)),d=h(i.map(l=>l.tokenMetrics.savingsUsd)),c=h(n.map(l=>l.tokenMetrics.savingsUsd));if(o>s*1.1&&c<=d*1.05){let l=Math.min(1,(o-s)/(s||1));r.push({id:`meta-tw-${a}`,type:"token-waste",description:`Token cost increased by ${((o/(s||1)-1)*100).toFixed(1)}% while savings remained flat`,confidence:A(l),suggestedAction:"Review cache configuration and increase pattern reuse thresholds",detectedAt:a})}let g=h(i.map(l=>l.qualityMetrics.gatePassRate)),w=h(n.map(l=>l.qualityMetrics.gatePassRate));Math.abs(w-g)<.02&&e.length>=this.config.minSnapshotsForAnalysis&&r.push({id:`meta-qp-${a}`,type:"quality-plateau",description:`Gate pass rate has been flat at ${(w*100).toFixed(1)}% across ${e.length} snapshots`,confidence:A(.6+(e.length-this.config.minSnapshotsForAnalysis)*.05),suggestedAction:"Consider reviewing quality thresholds or adding new test coverage domains",detectedAt:a});let p=h(i.map(l=>l.learningMetrics.patternCount)),f=h(n.map(l=>l.learningMetrics.patternCount)),ie=h(i.map(l=>l.learningMetrics.averageConfidence)),I=h(n.map(l=>l.learningMetrics.averageConfidence)),ne=Math.abs(f-p),re=Math.abs(I-ie);ne<1&&re<.02&&r.push({id:`meta-ls-${a}`,type:"learning-stall",description:`Pattern count (~${Math.round(f)}) and confidence (~${I.toFixed(2)}) have stagnated`,confidence:A(.65+(e.length-this.config.minSnapshotsForAnalysis)*.04),suggestedAction:"Expand to new QE domains or lower pattern creation thresholds to encourage exploration",detectedAt:a});let C=h(i.map(l=>l.performanceMetrics.p95LatencyMs)),j=h(n.map(l=>l.performanceMetrics.p95LatencyMs));if(j>C*1.2&&C>0){let l=Math.min(1,(j-C)/(C||1));r.push({id:`meta-pr-${a}`,type:"performance-regression",description:`P95 latency increased from ${C.toFixed(0)}ms to ${j.toFixed(0)}ms`,confidence:A(l),suggestedAction:"Profile hot paths and consider HNSW index tuning or batch size reduction",detectedAt:a})}return r}shouldAutoApply(e,t){let i=(t??this.config).autoApplyThreshold;return e.confidence>=i}};function h(u){return u.length===0?0:u.reduce((e,t)=>e+t,0)/u.length}function A(u){return Math.max(0,Math.min(1,u))}function me(u,e,t){return new L(u,e,t)}function rt(u,e,t){return me(u,{projectRoot:e},t)}export{pe as a,L as b,ge as c,te as d,me as e,rt as f};
@@ -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.15.9");process.exit(0)}
2
- import{c as a,d as b,e as c}from"./chunk-THAY7WHO.js";import"./chunk-KVBEGOJE.js";import"./chunk-HCYQHWI2.js";import"./chunk-N3KEY4XJ.js";import"./chunk-HZ5NC6U5.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.15.9");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-6PXA2BQJ.js";import"./chunk-Q3JVJRVJ.js";import"./chunk-7QTB5VJZ.js";import"./chunk-JEP4ULR6.js";import"./chunk-55HRSNGN.js";import"./chunk-2XITOPYV.js";import"./chunk-QQ5SZH4D.js";import"./chunk-AQTVVLNP.js";import"./chunk-AR2E4B7K.js";import"./chunk-A4RU67VX.js";import"./chunk-VQHVHVSF.js";import"./chunk-OXTFSIGN.js";import"./chunk-XZJ2O3VC.js";import"./chunk-HTZJSQ3C.js";import"./chunk-GKPQ2GRR.js";import"./chunk-2HL3UM5P.js";import"./chunk-763SUL4B.js";import"./chunk-TUYJ53V4.js";import"./chunk-J3DTDJDT.js";import"./chunk-K5DJXMAA.js";import"./chunk-JAV5WPSY.js";import"./chunk-2URBI52G.js";import"./chunk-JK2ME6IT.js";import"./chunk-LCJTEUDC.js";import"./chunk-NTAD5UX4.js";import"./chunk-47TYABPD.js";import"./chunk-FJ4VTLLK.js";import"./chunk-5LAAZLUC.js";import"./chunk-7QGYJ5OY.js";import"./chunk-W32YU3VI.js";import"./chunk-GR3JYE5A.js";import"./chunk-4URT6JO2.js";import"./chunk-5JWGCIQW.js";import"./chunk-XOVNZT7F.js";import"./chunk-JUVHZG7I.js";import"./chunk-TSYQDRNK.js";import"./chunk-LMU5DUDK.js";import"./chunk-7DMA5NYL.js";import"./chunk-TNMQVG4A.js";import"./chunk-AJ4YDSOI.js";import"./chunk-KHSRIPBP.js";import"./chunk-DINZR5CF.js";import"./chunk-QTVWUQTB.js";import"./chunk-W5VJRDDG.js";import"./chunk-ZBDRLF43.js";import"./chunk-UNUTC6TX.js";import"./chunk-WRRCQ2UE.js";import"./chunk-I6S35FRO.js";import"./chunk-37BIGMJI.js";import"./chunk-PBZI2ZPV.js";import"./chunk-A6YIH4C4.js";import"./chunk-KIXYKUCI.js";import"./chunk-HAROIAJE.js";import"./chunk-BHKXMIWX.js";import"./chunk-FV3NHVC7.js";import"./chunk-J3WGK22W.js";import"./chunk-UOWHE77F.js";import"./chunk-THAY7WHO.js";import"./chunk-KVBEGOJE.js";import"./chunk-HCYQHWI2.js";import"./chunk-G3BKZNFL.js";import"./chunk-LEAKYZ37.js";import"./chunk-NDKLQW6N.js";import"./chunk-FLASM2XB.js";import"./chunk-VYLM2YV5.js";import"./chunk-3LYU7BLY.js";import"./chunk-JP4P3P3D.js";import"./chunk-F4JYIRW2.js";import"./chunk-KFUUIAR4.js";import"./chunk-HWK5L7IJ.js";import"./chunk-ABFDB4X3.js";import"./chunk-47V7FQGX.js";import"./chunk-VU2EL424.js";import"./chunk-VCMINU7K.js";import"./chunk-KLGYIEJK.js";import"./chunk-MZS32SYS.js";import"./chunk-GCWSX2NY.js";import"./chunk-2TDIS6YK.js";import"./chunk-F3PQZX44.js";import"./chunk-XWIUFYM3.js";import"./chunk-DDPPSSHW.js";import"./chunk-D6XVGFTI.js";import"./chunk-VRGCKBF7.js";import"./chunk-7JKB3Q7O.js";import"./chunk-UYLYMWV5.js";import"./chunk-IFEIY3NQ.js";import"./chunk-3CJCROMW.js";import"./chunk-VXZJOKOX.js";import"./chunk-ZVSLCEVC.js";import"./chunk-L42JPFCC.js";import"./chunk-5NS3USRW.js";import"./chunk-PMCRCEW5.js";import"./chunk-XUIA5KMS.js";import"./chunk-UOJBR4J3.js";import"./chunk-HGTWAZWU.js";import"./chunk-XYCKHYBM.js";import"./chunk-JWGRWMZP.js";import"./chunk-XDBD4GXO.js";import"./chunk-7X2Y727E.js";import"./chunk-AVB5QY2Q.js";import"./chunk-OCESWNAZ.js";import"./chunk-ICP2ORGI.js";import"./chunk-PVIA2FPD.js";import"./chunk-OG2UI6A3.js";import"./chunk-V5PXQSFS.js";import"./chunk-5D2I7JUP.js";import"./chunk-EFBLP43U.js";import"./chunk-7KII4CQG.js";import"./chunk-4SUOVLJ6.js";import"./chunk-ZXBCCO2H.js";import"./chunk-4JCY45KV.js";import"./chunk-BXO536GT.js";import"./chunk-SVHUYVUR.js";import"./chunk-FV7VAG74.js";import"./chunk-REUFWGMA.js";import"./chunk-JNNZK7KH.js";import"./chunk-2BA45H64.js";import"./chunk-KTSLTZSG.js";import"./chunk-O3JLOVZX.js";import"./chunk-DGTLJNJH.js";import"./chunk-N3KEY4XJ.js";import"./chunk-2I2UPJS7.js";import"./chunk-PX2B5TS2.js";import"./chunk-4V27J6YN.js";import"./chunk-H3KBIWTO.js";import"./chunk-OXZLKP6C.js";import"./chunk-SNBYYO6F.js";import"./chunk-6YL6JOQB.js";import"./chunk-6OOYIO3W.js";import"./chunk-HZ5NC6U5.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.15.9");process.exit(0)}
2
- import{a,b}from"./chunk-I6S35FRO.js";import"./chunk-37BIGMJI.js";import"./chunk-FV7VAG74.js";import"./chunk-JNNZK7KH.js";import"./chunk-HZ5NC6U5.js";export{a as CrossDomainEventRouter,b as createCrossDomainRouter};
@@ -1,34 +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.15.9");process.exit(0)}
2
- import{b as Ce,c as Me,e as Te}from"./chunk-ETG7O5E5.js";import{a as y,b as ee}from"./chunk-2YH62JCN.js";import{b as Se}from"./chunk-A4RU67VX.js";import{a as we}from"./chunk-VQHVHVSF.js";import"./chunk-OXTFSIGN.js";import"./chunk-XZJ2O3VC.js";import{a as x}from"./chunk-GR3JYE5A.js";import{a as I}from"./chunk-4URT6JO2.js";import{c as Re}from"./chunk-5JWGCIQW.js";import{a as Z,e as Q,f as ke,h as be,i as U,l as De}from"./chunk-XOVNZT7F.js";import"./chunk-HAROIAJE.js";import{a as fe,r as ve}from"./chunk-G3BKZNFL.js";import{b as ye}from"./chunk-LEAKYZ37.js";import"./chunk-VYLM2YV5.js";import"./chunk-3LYU7BLY.js";import"./chunk-KLGYIEJK.js";import"./chunk-MZS32SYS.js";import"./chunk-GCWSX2NY.js";import"./chunk-2TDIS6YK.js";import"./chunk-F3PQZX44.js";import"./chunk-XWIUFYM3.js";import"./chunk-DDPPSSHW.js";import"./chunk-D6XVGFTI.js";import"./chunk-VRGCKBF7.js";import"./chunk-7JKB3Q7O.js";import"./chunk-UYLYMWV5.js";import"./chunk-JWGRWMZP.js";import"./chunk-XDBD4GXO.js";import"./chunk-7X2Y727E.js";import"./chunk-AVB5QY2Q.js";import{o as E,s as Ue}from"./chunk-OCESWNAZ.js";import"./chunk-ICP2ORGI.js";import"./chunk-PVIA2FPD.js";import"./chunk-OG2UI6A3.js";import"./chunk-V5PXQSFS.js";import"./chunk-5D2I7JUP.js";import"./chunk-EFBLP43U.js";import"./chunk-7KII4CQG.js";import"./chunk-4SUOVLJ6.js";import"./chunk-ZXBCCO2H.js";import"./chunk-BXO536GT.js";import"./chunk-SVHUYVUR.js";import"./chunk-FV7VAG74.js";import{a as M}from"./chunk-JNNZK7KH.js";import"./chunk-2BA45H64.js";import"./chunk-KTSLTZSG.js";import"./chunk-O3JLOVZX.js";import"./chunk-DGTLJNJH.js";import{a as b,e as J}from"./chunk-N3KEY4XJ.js";import"./chunk-2I2UPJS7.js";import"./chunk-PX2B5TS2.js";import{c as j,d as Qe}from"./chunk-4V27J6YN.js";import"./chunk-H3KBIWTO.js";import"./chunk-OXZLKP6C.js";import"./chunk-SNBYYO6F.js";import"./chunk-6YL6JOQB.js";import"./chunk-6OOYIO3W.js";import"./chunk-HZ5NC6U5.js";var te=class{handlers=[];async publish(e){for(let t of this.handlers)try{t(e)}catch(r){console.debug("[WorkerManager] Event handler error:",r instanceof Error?r.message:r)}}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}},ne=class{store=new Map;async get(e,t){if(!t?.namespace)return this.store.get(e)}async set(e,t){this.store.set(e,t)}async search(e,t,r){if(r?.namespace)return[];let i=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),n=new RegExp(i.replace(/\*/g,".*")),s=Array.from(this.store.keys()).filter(a=>n.test(a));return t===void 0?s:s.slice(0,t)}clear(){this.store.clear()}get size(){return this.store.size}},re=class{constructor(e){this.workerId=e}workerId;format(e,t,r){let i=new Date().toISOString(),n=r?` ${JSON.stringify(r)}`:"";return`[${i}] [${e}] [${this.workerId}] ${t}${n}`}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))}},K=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 i=t.getHealth().domains[e];return i?{status:i.status,errors:i.errors||[]}:{status:"unknown",errors:[`Domain ${e} not found`]}}},Y=class{getDomainAPI(e){}getDomainHealth(e){return{status:"healthy",errors:[]}}},X=class{workers=new Map;timers=new Map;abortControllers=new Map;eventBus;memory;domainAccess;running=!1;kernelRef;constructor(e){this.eventBus=e?.eventBus??new te,this.memory=e?.memory??new ne,this.kernelRef=e?.kernel,e?.domainAccess?this.domainAccess=e.domainAccess:e?.kernel?this.domainAccess=new K(()=>this.kernelRef):this.domainAccess=new Y}setKernel(e){this.kernelRef=e,this.domainAccess instanceof Y&&(this.domainAccess=new K(()=>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())){if(!this.running)break;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 r=this.timers.get(e);r&&clearTimeout(r);let i=new AbortController;this.abortControllers.set(e,i);let n=this.createContext(e,i.signal),s=await t.execute(n);return this.running&&t.config.enabled&&t.status!=="stopped"&&this.scheduleNextRun(t),s}getHealth(){let e={},t=0,r=0,i=0,n=0;for(let[a,c]of Array.from(this.workers.entries())){let l=c.getHealth();switch(e[a]=l,n+=l.healthScore,c.status){case"running":t++;break;case"paused":r++;break;case"error":i++;break}}let s=this.workers.size>0?Math.round(n/this.workers.size):100;return{totalWorkers:this.workers.size,runningWorkers:t,pausedWorkers:r,errorWorkers:i,healthScore:s,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 r=this.createContext(e.config.id,t.signal);try{await e.execute(r)}catch(i){console.error(`Worker ${e.config.id} initial execution failed:`,i)}this.scheduleNextRun(e)}async stopWorker(e){let t=this.timers.get(e);t&&(clearTimeout(t),this.timers.delete(e));let r=this.abortControllers.get(e);r&&(r.abort(),this.abortControllers.delete(e));let i=this.workers.get(e);i&&await i.stop()}scheduleNextRun(e){let t=setTimeout(async()=>{if(!this.running||e.status==="stopped"||e.status==="paused")return;let r=new AbortController;this.abortControllers.set(e.config.id,r);let i=this.createContext(e.config.id,r.signal);try{await e.execute(i)}catch(n){console.error(`Worker ${e.config.id} execution failed:`,n)}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 re(e),domains:this.domainAccess,signal:t}}};J();var Ke={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},W=class extends y{previousMetrics;constructor(){super(Ke)}async doExecute(e){let t=Date.now();e.logger.info("Starting test health analysis");let r=[],i=[],n=await this.collectMetrics(e);this.analyzePassRate(n,r,i),this.analyzeExecutionTime(n,r,i),this.analyzeReliability(n,r,i),this.analyzeGrowth(n,r,i),this.compareToPrevious(n,r,i),await e.memory.set("test-health:previous-metrics",n),this.previousMetrics=n;let s=this.calculateHealthScore(n),a=this.determineTrend(n);return e.logger.info("Test health analysis complete",{healthScore:s,findingsCount:r.length}),this.createResult(Date.now()-t,{itemsAnalyzed:n.totalTests,issuesFound:r.length,healthScore:s,trend:a,domainMetrics:{passRate:`${(n.passingTests/n.totalTests*100).toFixed(1)}%`,avgExecutionTime:`${n.avgExecutionTimeMs}ms`,reliability:`${n.reliability}%`,totalTests:n.totalTests}},r,i)}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 i=await e.memory.search("test-health:run-result:*");if(i.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 n=0,s=0,a=0,c=0,l=0,d=0;for(let g of i.slice(0,50)){let f=await e.memory.get(g);f&&(n+=f.total,s+=f.passed,a+=f.failed,c+=f.skipped,l+=f.duration,d++)}let u=d>0?Math.round(l/d):0,m=n>0?Math.round(s/n*100):0,h=await e.memory.get("test-health:growth-metrics");return{totalTests:n||0,passingTests:s||0,failingTests:a||0,skippedTests:c||0,avgExecutionTimeMs:u,reliability:m,growth:{testsAddedLast7Days:h?.testsAddedLast7Days||0,testsRemovedLast7Days:h?.testsRemovedLast7Days||0}}}catch(i){let n=b(i);throw new Error(`Failed to collect test health metrics: ${n}. Check memory service connectivity and test result data availability.`)}}analyzePassRate(e,t,r){let i=e.passingTests/e.totalTests*100;i<95&&(t.push({type:"low-pass-rate",severity:i<90?"high":"medium",domain:"test-execution",title:"Low Test Pass Rate",description:`Test pass rate is ${i.toFixed(1)}%, below the 95% target`,context:{passing:e.passingTests,failing:e.failingTests,total:e.totalTests}}),r.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,r){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}}),r.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,r){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}}),r.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,r){let i=e.growth.testsAddedLast7Days-e.growth.testsRemovedLast7Days;i<0&&(t.push({type:"test-coverage-decline",severity:"medium",domain:"test-generation",title:"Test Coverage Declining",description:`Net loss of ${Math.abs(i)} tests in the last 7 days`,context:{added:e.growth.testsAddedLast7Days,removed:e.growth.testsRemovedLast7Days}}),r.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,r){if(!this.previousMetrics)return;let i=e.passingTests/e.totalTests-this.previousMetrics.passingTests/this.previousMetrics.totalTests;i<-.05&&t.push({type:"pass-rate-regression",severity:"high",domain:"test-execution",title:"Pass Rate Regression Detected",description:`Pass rate dropped by ${(Math.abs(i)*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,r=e.reliability/100*30,i=Math.max(0,20-e.avgExecutionTimeMs/100),n=Math.min(10,e.growth.testsAddedLast7Days/10*10);return Math.round(t+r+i+n)}determineTrend(e){if(!this.previousMetrics)return"stable";let t=e.passingTests/e.totalTests,r=this.previousMetrics.passingTests/this.previousMetrics.totalTests;return t>r+.02?"improving":t<r-.02?"degrading":"stable"}};var Ye={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},F=class extends y{constructor(){super(Ye)}async doExecute(e){let t=Date.now();e.logger.info("Starting coverage tracking analysis");let r=[],i=[],n=await this.collectCoverageTrend(e),s=await this.identifyCoverageGaps(e);this.analyzeCoverageGaps(s,r,i);let a=n.current;a?(this.analyzeCoverageThresholds(a,r,i),this.analyzeCoverageTrends({...n,current:a},r,i),await e.memory.set("coverage:current",a)):r.push({type:"coverage-unmeasured",severity:"info",domain:"coverage-analysis",title:"Coverage Unmeasured",description:"No measured coverage exists yet (no instrumented coverage:latest). Nothing was tracked; this is not 0% coverage. Run tests with coverage or coverage_analyze_sublinear."}),await e.memory.set("coverage:gaps",s);let c=this.calculateHealthScore(a,s);e.logger.info("Coverage tracking complete",{healthScore:c,measured:a!==null,findingsCount:r.length,gapsFound:s.length});let l=d=>d==null?"n/a":`${d}%`;return this.createResult(Date.now()-t,{itemsAnalyzed:s.length+(a?4:0),issuesFound:r.filter(d=>d.severity!=="info").length,healthScore:c,trend:a?this.determineTrend({...n,current:a}):"stable",domainMetrics:{coverageMeasured:a?"true":"false",lineCoverage:a?l(a.line):"unmeasured",branchCoverage:a?l(a.branch):"unmeasured",functionCoverage:a?l(a.function):"unmeasured",statementCoverage:a?l(a.statement):"unmeasured",gapsCount:s.length}},r,i)}async collectCoverageTrend(e){let t=await e.memory.get("coverage:current"),r=t&&t.measured===!0&&Number.isFinite(t.line)?t:void 0,i=I(await e.memory.get("coverage:latest"));return i?{current:{line:i.line,branch:i.branch,function:i.function,statement:i.statement,timestamp:new Date,measured:!0},previous:r}:{current:null,previous:r}}async identifyCoverageGaps(e){let t=await e.memory.search("gap-pattern:*");if(t.length>0){let r=[];for(let i of t){let n=await e.memory.get(i);n&&typeof n.riskScore=="number"&&r.push(n)}if(r.length>0)return r}return[]}analyzeCoverageThresholds(e,t,r){let i={line:80,branch:70,function:80,statement:80};e.line<i.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 ${i.line}% target`,context:{current:e.line,target:i.line}}),e.branch!==null&&e.branch<i.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 ${i.branch}% target`,context:{current:e.branch,target:i.branch}}),r.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!==null&&e.function<i.function&&t.push({type:"low-function-coverage",severity:"medium",domain:"coverage-analysis",title:"Function Coverage Below Threshold",description:`Function coverage is ${e.function}%, below ${i.function}% target`,context:{current:e.function,target:i.function}})}analyzeCoverageGaps(e,t,r){let i=e.filter(s=>s.riskScore>.8);for(let s of i)t.push({type:"high-risk-coverage-gap",severity:"high",domain:"coverage-analysis",title:"High-Risk Coverage Gap",description:`${s.file} has ${s.uncoveredLines} uncovered lines with complexity ${s.complexity}`,resource:s.file,context:{uncoveredLines:s.uncoveredLines,totalLines:s.totalLines,coveragePercent:((s.totalLines-s.uncoveredLines)/s.totalLines*100).toFixed(1),complexity:s.complexity,riskScore:s.riskScore}});i.length>0&&r.push({priority:"p0",domain:"test-generation",action:"Address High-Risk Coverage Gaps",description:`${i.length} files have high-risk coverage gaps. Prioritize testing for complex, uncovered code.`,estimatedImpact:"high",effort:"high",autoFixable:!0});let n=e.filter(s=>(s.totalLines-s.uncoveredLines)/s.totalLines<.5);n.length>0&&t.push({type:"critical-coverage-gaps",severity:"critical",domain:"coverage-analysis",title:"Critical Coverage Gaps Detected",description:`${n.length} files have less than 50% coverage`,context:{files:n.map(s=>s.file)}})}analyzeCoverageTrends(e,t,r){if(!e.previous)return;let i=e.current.line-e.previous.line,n=e.current.branch!==null&&e.previous.branch!==null?e.current.branch-e.previous.branch:0;i<-2&&(t.push({type:"coverage-regression",severity:i<-5?"high":"medium",domain:"coverage-analysis",title:"Coverage Regression Detected",description:`Line coverage dropped by ${Math.abs(i).toFixed(1)}% since last check`,context:{previous:e.previous.line,current:e.current.line,change:i}}),r.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})),n<-3&&t.push({type:"branch-coverage-regression",severity:"medium",domain:"coverage-analysis",title:"Branch Coverage Regression",description:`Branch coverage dropped by ${Math.abs(n).toFixed(1)}%`,context:{previous:e.previous.branch,current:e.current.branch,change:n}})}calculateHealthScore(e,t){let r=t.filter(l=>l.riskScore>.8).length,i=Math.max(0,10-r*2);if(!e)return i*10;let s=[[e.line,25],[e.branch,25],[e.function,20],[e.statement,20]].filter(l=>l[0]!==null),a=s.reduce((l,[,d])=>l+d,0),c=s.reduce((l,[d,u])=>l+d/100*u,0)*(90/a);return Math.round(c+i)}determineTrend(e){if(!e.previous)return"stable";let t=n=>{let s=[n.line,n.branch,n.function,n.statement].filter(a=>a!==null);return s.reduce((a,c)=>a+c,0)/s.length},r=t(e.current),i=t(e.previous);return r>i+1?"improving":r<i-1?"degrading":"stable"}};var Xe={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},$=class extends y{constructor(){super(Xe)}async doExecute(e){let t=Date.now();e.logger.info("Starting flaky test detection");let r=[],i=[],n=await this.collectTestHistory(e),s=this.detectFlakyTests(n);this.generateFindings(s,r,i),await e.memory.set("flaky:detected",s),await e.memory.set("flaky:lastAnalysis",new Date().toISOString());let a=this.calculateHealthScore(n.length,s);return e.logger.info("Flaky test detection complete",{healthScore:a,testsAnalyzed:n.length,flakyTestsFound:s.length}),this.createResult(Date.now()-t,{itemsAnalyzed:n.length,issuesFound:s.length,healthScore:a,trend:"stable",domainMetrics:{testsAnalyzed:n.length,flakyTests:s.length,flakinessRate:`${(s.length/n.length*100).toFixed(1)}%`,avgFlakinessScore:s.length>0?(s.reduce((c,l)=>c+l.flakinessScore,0)/s.length).toFixed(1):"0"}},r,i)}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 r=await e.memory.search("flaky:history:*");if(r.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 i=[],n=[];for(let s of r)try{let a=await e.memory.get(s);a&&i.push(a)}catch{n.push(s)}if(i.length===0)throw new Error(`Found ${r.length} test history keys but failed to retrieve any data. Failed keys: ${n.slice(0,5).join(", ")}${n.length>5?"...":""}. Check memory service connectivity and data format.`);return i}detectFlakyTests(e){let t=[];for(let r of e){let i=this.analyzeTestFlakiness(r);i.flakinessScore>20&&t.push(i)}return t.sort((r,i)=>i.flakinessScore-r.flakinessScore)}analyzeTestFlakiness(e){let t=e.executions,i=t.filter(g=>g.passed).length/t.length,n=t.map(g=>g.durationMs),s=n.reduce((g,f)=>g+f,0)/n.length,a=n.reduce((g,f)=>g+Math.pow(f-s,2),0)/n.length,l=Math.sqrt(a)/s,d=t.slice(-5).filter(g=>!g.passed).length,u=this.determinePattern(e,l),m=0;i>0&&i<1&&(m+=(1-i)*50),l>.5&&(m+=Math.min(25,l*10)),m+=d*5;let h=this.suggestFix(u);return{testId:e.testId,testName:e.testName,file:e.file,flakinessScore:Math.min(100,Math.round(m)),pattern:u,passRate:i*100,avgDuration:s,durationVariance:l,recentFailures:d,suggestedFix:h}}determinePattern(e,t){let r=e.executions.filter(n=>!n.passed);if(t>1||r.some(n=>n.error?.includes("Timeout")))return"timing";if(r.some(n=>n.error?.includes("Resource")||n.error?.includes("connection")))return"resource";if(r.some(n=>n.error?.includes("Race")||n.error?.includes("async")))return"intermittent";let i=e.executions.map(n=>n.passed);return this.hasOrderPattern(i)?"order-dependent":"intermittent"}hasOrderPattern(e){let t=e.map((n,s)=>n?-1:s).filter(n=>n>=0);if(t.length<2)return!1;let r=t.every(n=>n%2===0),i=t.every(n=>n%2===1);return r||i}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,r){let i=e.filter(c=>c.flakinessScore>=70),n=e.filter(c=>c.flakinessScore>=50&&c.flakinessScore<70),s=e.filter(c=>c.flakinessScore>=20&&c.flakinessScore<50);for(let c of i)t.push({type:"critical-flaky-test",severity:"critical",domain:"test-execution",title:`Critical Flaky Test: ${c.testName}`,description:`Test has ${c.flakinessScore}% flakiness score with ${c.passRate.toFixed(0)}% pass rate`,resource:c.file,context:{testId:c.testId,pattern:c.pattern,recentFailures:c.recentFailures,suggestedFix:c.suggestedFix}});for(let c of n)t.push({type:"high-flaky-test",severity:"high",domain:"test-execution",title:`Flaky Test: ${c.testName}`,description:`Test has ${c.flakinessScore}% flakiness score (${c.pattern} pattern)`,resource:c.file,context:{testId:c.testId,pattern:c.pattern,suggestedFix:c.suggestedFix}});for(let c of s)t.push({type:"medium-flaky-test",severity:"medium",domain:"test-execution",title:`Potentially Flaky Test: ${c.testName}`,description:`Test shows flakiness indicators (score: ${c.flakinessScore}%)`,resource:c.file,context:{testId:c.testId,pattern:c.pattern}});i.length>0&&r.push({priority:"p0",domain:"test-execution",action:"Fix Critical Flaky Tests",description:`${i.length} tests have critical flakiness. These severely impact CI reliability.`,estimatedImpact:"high",effort:"high",autoFixable:!1});let a=e.filter(c=>c.pattern==="timing");a.length>0&&r.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 r=t.length/e,i=t.length>0?t.reduce((a,c)=>a+c.flakinessScore,0)/t.length:0,n=100;n-=r*50,n-=i/100*30;let s=t.filter(a=>a.flakinessScore>=70).length;return n-=s*5,Math.max(0,Math.round(n))}};var N=["critical","high","medium","low","informational"],Je=/^CVE-\d{4}-\d{4,}$/,ie=o=>typeof o=="number"&&Number.isInteger(o)&&o>=0,C=o=>!!o&&typeof o=="object"&&!Array.isArray(o);function Ze(o){if(!C(o))return null;let e={};for(let t of N){if(!ie(o[t]))return null;e[t]=o[t]}return e}function et(o,e){if(typeof o!="string")return null;let t=Date.parse(o);return!Number.isFinite(t)||t>e+6e4||e-t>6048e5?null:o}function tt(o,e){if(!C(o))return null;let t=o.severity;if(!N.includes(t)||typeof o.title!="string")return null;let r=C(o.location)?o.location:{},i=C(o.remediation)?o.remediation:{},n={severity:t,title:o.title,description:typeof o.description=="string"?o.description:"",category:typeof o.category=="string"?o.category:"other",references:Array.isArray(o.references)?o.references.filter(s=>typeof s=="string"):[]};if(typeof o.cveId=="string"&&Je.test(o.cveId)&&(n.cve=o.cveId),e==="dependency"){let s=C(r.dependency)&&typeof r.dependency.name=="string"?r.dependency.name:typeof r.snippet=="string"?/^"([^"]+)":/.exec(r.snippet)?.[1]:void 0;s&&(n.package=s);let a=typeof i.fixExample=="string"?/@([^@\s]+)$/.exec(i.fixExample)?.[1]:void 0;a&&(n.fixedIn=a)}else typeof r.file=="string"&&(n.location=typeof r.line=="number"?`${r.file}:${r.line}`:r.file);return n}function nt(o){return Array.isArray(o)?o.filter(C).map(e=>({name:typeof e.name=="string"?e.name:"?",version:typeof e.version=="string"?e.version:"?",reason:typeof e.reason=="string"?e.reason:"unknown"})):[]}function rt(o){return o.measured===!0&&o.status==="complete"?{complete:!0}:{complete:!1,status:o.status==="incomplete"||o.status==="failed"?o.status:"unknown",...typeof o.error=="string"&&o.error?{error:o.error}:{},uncheckedPackages:nt(o.uncheckedPackages),...ie(o.packagesChecked)?{packagesChecked:o.packagesChecked}:{}}}var Ae={critical:"Critical",high:"High Severity",medium:"Medium Severity",low:"Low Severity",informational:"Informational"};function se(o){return o?o.scan.summary.critical*20+o.scan.summary.high*10:0}function ae(o){return o?{dependencyVulnerabilitiesInCheckedPackages:o.scan.total,dependencyPackagesUnchecked:o.uncheckedPackages.length}:{}}function Pe(o,e){if(!C(o))return null;let t=o.scanType;if(t!=="dependency"&&t!=="sast")return null;let r=et(o.timestamp,e),i=Ze(o.summary);if(typeof o.scanId!="string"||!r||!i)return null;let n=t==="dependency"?o.vulnerabilities:o.criticalVulnerabilities;if(!Array.isArray(n))return null;let s=n.map(d=>tt(d,t));if(s.some(d=>d===null))return null;let a=N.reduce((d,u)=>d+i[u],0),c=t==="sast"&&ie(o.vulnerabilityCount)?o.vulnerabilityCount:a,l={scanId:o.scanId,scannedAt:r,summary:i,vulnerabilities:s,total:c};return t==="sast"?{kind:t,scan:l}:{kind:t,scan:l,completeness:rt(o)}}var st={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},oe="security-compliance",Ee="security:scan:*",at="security:lastScan",ot=1e3,L=class extends y{constructor(){super(st)}async doExecute(e){let t=Date.now();e.logger.info("Starting security vulnerability scan");let r=[],i=[],{scan:n,incompleteDependency:s}=await this.readRecordedScans(e);if(s&&this.reportIncompleteDependencyScan(s,r,i),!n)return s||r.push({type:"security-unmeasured",severity:"info",domain:"security-compliance",title:"Security Scan Unmeasured",description:"No dependency or SAST scan has been recorded in the last 7 days, so no vulnerabilities are reported and nothing was stored. Run security_scan_comprehensive (or `aqe security`) to scan the project."}),e.logger.info("Security scan complete",{measured:!1}),this.createResult(Date.now()-t,{itemsAnalyzed:s?.scan.total??0,issuesFound:r.filter(c=>c.severity!=="info").length,healthScore:Math.max(0,100-se(s)),trend:"stable",domainMetrics:{dependencyScan:"unmeasured",codeScan:"unmeasured",dependencyVulnerabilities:"unmeasured",codeSecurityIssues:"unmeasured",...ae(s)}},r,i);n.dependency&&this.analyzeDependencyVulnerabilities(n.dependency,r,i),n.code&&this.analyzeCodeSecurityIssues(n.code,r,i),await e.memory.set(at,n),await e.memory.set("security:lastScanTime",n.evaluatedAt);let a=Math.max(0,this.calculateHealthScore(n)-se(s));return e.logger.info("Security scan complete",{measured:!0,healthScore:a,dependencyScanId:n.dependency?.scanId??null,codeScanId:n.code?.scanId??null}),this.createResult(Date.now()-t,{itemsAnalyzed:(n.dependency?.total??0)+(n.code?.total??0),issuesFound:r.length,healthScore:a,trend:"stable",domainMetrics:{dependencyScan:n.dependency?n.dependency.scannedAt:"unmeasured",codeScan:n.code?n.code.scannedAt:"unmeasured",dependencyVulnerabilities:n.dependency?n.dependency.total:"unmeasured",codeSecurityIssues:n.code?n.code.total:"unmeasured",...ae(s)}},r,i)}async readRecordedScans(e){let t=await e.memory.search(Ee,ot,{namespace:oe}),r=Date.now(),i=null,n=null,s=(d,u)=>!u||Date.parse(d.scannedAt)>Date.parse(u.scannedAt);for(let d of t){let u=x(d,oe,Ee),m=Pe(await e.memory.get(u,{namespace:oe}),r);m&&(m.kind==="dependency"&&s(m.scan,i?.scan??null)&&(i=m),m.kind==="sast"&&s(m.scan,n)&&(n=m.scan))}let a=i?.completeness,c=i&&a?.complete?i.scan:null,l=i&&a&&!a.complete?{scan:i.scan,status:a.status,...a.error?{error:a.error}:{},uncheckedPackages:a.uncheckedPackages,...a.packagesChecked!==void 0?{packagesChecked:a.packagesChecked}:{}}:null;return!c&&!n?{scan:null,incompleteDependency:l}:{incompleteDependency:l,scan:{measured:!0,schemaVersion:1,evaluatedAt:new Date().toISOString(),dependency:c?{...c,source:"osv"}:null,code:n?{...n,source:"sast"}:null}}}reportIncompleteDependencyScan(e,t,r){let{scan:i,status:n,error:s,uncheckedPackages:a,packagesChecked:c}=e,l=a.map(h=>`${h.name}@${h.version} (${h.reason})`),d=i.summary,u=i.total>0?` OSV reported ${i.total} advisory finding(s) in the ${c??""}${c===void 0?"":" "}checked package(s) (${d.critical} critical, ${d.high} high, ${d.medium} medium, ${d.low} low); they are listed as separate findings.`:"",m=n==="unknown"?"was recorded before scans stated whether every package was checked, so a failed lookup cannot be told apart from a clean one":`is ${n}${s?` (${s})`:""}`;t.push({type:"dependency-scan-incomplete",severity:"info",domain:"security-compliance",title:"Dependency Scan Unmeasured",description:`The latest dependency scan (${i.scannedAt}) ${m}; its result is not a vulnerability count.`+(l.length>0?` Unchecked packages: ${l.join(", ")}.`:"")+u+" Re-run the dependency scan.",context:{scanId:i.scanId,status:n,...s?{error:s}:{},uncheckedPackages:a,...c!==void 0?{packagesChecked:c}:{},advisoriesInCheckedPackages:i.total}}),this.analyzeDependencyVulnerabilities(i,t,r,!0)}analyzeDependencyVulnerabilities(e,t,r,i=!1){let n=e.vulnerabilities.filter(c=>c.severity==="critical"),s=e.vulnerabilities.filter(c=>c.severity==="high"),a=i?N.flatMap(c=>e.vulnerabilities.filter(l=>l.severity===c)):[...n,...s];for(let c of a){let l=c.package??c.title;t.push({type:`${c.severity}-vulnerability`,severity:c.severity==="informational"?"info":c.severity,domain:"security-compliance",title:`${Ae[c.severity]} Vulnerability in ${l}`,description:c.description?`${c.title}: ${c.description}`:c.title,resource:l,context:{advisorySource:"osv",scanId:e.scanId,scannedAt:e.scannedAt,...c.cve?{cve:c.cve}:{},...c.fixedIn?{fixedIn:c.fixedIn}:{},references:c.references,...i?{partialScan:!0}:{}}})}n.length>0&&r.push({priority:"p0",domain:"security-compliance",action:"Update Critical Vulnerabilities Immediately",description:`The dependency scan of ${e.scannedAt} reported ${n.length} critical vulnerabilities. Update to patched versions.`,estimatedImpact:"high",effort:"low",autoFixable:!0}),s.length>0&&r.push({priority:"p1",domain:"security-compliance",action:"Address High Severity Vulnerabilities",description:`The dependency scan of ${e.scannedAt} reported ${s.length} high severity vulnerabilities. Plan updates within current sprint.`,estimatedImpact:"high",effort:"low",autoFixable:!0})}analyzeCodeSecurityIssues(e,t,r){for(let s of e.vulnerabilities)t.push({type:`code-security-${s.category}`,severity:s.severity==="informational"?"info":s.severity,domain:"security-compliance",title:`Security Issue: ${s.title}`,description:s.description||s.title,...s.location?{resource:s.location}:{},context:{category:s.category,scanId:e.scanId,scannedAt:e.scannedAt,...s.cve?{cve:s.cve}:{}}});let i=e.vulnerabilities.filter(s=>s.category==="injection");i.length>0&&r.push({priority:"p0",domain:"security-compliance",action:"Fix Injection Vulnerabilities",description:`The SAST scan of ${e.scannedAt} reported ${i.length} potential injection vulnerabilities. Use parameterized queries and avoid eval().`,estimatedImpact:"high",effort:"medium",autoFixable:!1});let n=e.vulnerabilities.filter(s=>s.category==="sensitive-data");n.length>0&&r.push({priority:"p1",domain:"security-compliance",action:"Review Sensitive Data Handling",description:`The SAST scan of ${e.scannedAt} reported ${n.length} sensitive-data issues. Ensure secure algorithms and key management.`,estimatedImpact:"high",effort:"high",autoFixable:!1})}calculateHealthScore(e){let t=100;return e.dependency&&(t-=e.dependency.summary.critical*20,t-=e.dependency.summary.high*10),e.code&&(t-=e.code.summary.critical*15,t-=e.code.summary.high*8),Math.max(0,Math.round(t))}};var ct={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},Ie="quality-gate:current",xe="quality-gate:history",We=1,lt=100;function dt(o){if(!o||typeof o!="object")return null;let e=o;return e.measured!==!0||e.schemaVersion!==We||typeof e.passed!="boolean"||!Array.isArray(e.checks)?null:e}var ut=o=>o.direction==="min"?">=":"<=",_=class extends y{constructor(){super(ct)}async doExecute(e){let t=Date.now();e.logger.info("Starting quality gate evaluation");let r=[],i=[],{values:n,problems:s}=await be(e.memory),a=Object.fromEntries(Z.map(g=>[g,n[g]??"unmeasured"]));if(s.length>0){let g=s.map(f=>f.metric);r.push({type:"quality-gate-insufficient-evidence",severity:"info",domain:"quality-assessment",title:"Quality Gate Not Evaluated: Insufficient Evidence",description:`${g.length} of ${Z.length} gate metrics have no usable measured evidence (${g.join(", ")}), so no verdict was reached and nothing was stored.`,context:{status:Q,unmeasured:g,problems:s}});for(let f of ke(g))i.push({priority:"p3",domain:"quality-assessment",action:"Record Measured Quality Evidence",description:f,estimatedImpact:"medium",effort:"low",autoFixable:!1});return e.logger.info("Quality gate evaluation complete",{status:Q,unmeasured:g}),this.createResult(Date.now()-t,{itemsAnalyzed:0,issuesFound:0,healthScore:100,trend:"stable",domainMetrics:{gateStatus:Q,gatePassed:"unmeasured",releaseReady:"unmeasured",unmeasuredMetrics:g.length,...a}},r,i)}let c=De(n),l=c.checks.filter(g=>!g.passed),d={measured:!0,schemaVersion:We,evaluatedAt:new Date().toISOString(),passed:c.passed,passedChecks:c.checks.length-l.length,failedChecks:l.length,checks:c.checks};this.analyzeGateResults(d,r,i),await this.compareToPrevious(e,d,r),await e.memory.set(Ie,d),await e.memory.set("quality-gate:lastCheck",d.evaluatedAt);let u=await e.memory.get(xe),m=Array.isArray(u)?u:[];for(m.push(d);m.length>lt;)m.shift();await e.memory.set(xe,m);let h=this.calculateHealthScore(d);return e.logger.info("Quality gate evaluation complete",{healthScore:h,passed:d.passed,failedChecks:d.failedChecks}),this.createResult(Date.now()-t,{itemsAnalyzed:d.checks.length,issuesFound:d.failedChecks,healthScore:h,trend:"stable",domainMetrics:{gateStatus:"evaluated",gatePassed:d.passed?"YES":"NO",releaseReady:d.passed?"YES":"NO",passedChecks:d.passedChecks,failedChecks:d.failedChecks,...a}},r,i)}analyzeGateResults(e,t,r){let i=e.checks.filter(n=>!n.passed);for(let n of i)t.push({type:"quality-gate-failure",severity:n.severity,domain:"quality-assessment",title:`Quality Gate Failed: ${n.name}`,description:`Measured ${n.name} is ${n.value}, threshold is ${ut(n)} ${n.threshold}`,context:{metric:n.name,value:n.value,threshold:n.threshold,direction:n.direction}});i.length>0&&(t.push({type:"release-blocked",severity:i.some(n=>n.severity==="critical")?"critical":"high",domain:"quality-assessment",title:"Release Blocked",description:`${i.length} measured quality checks fail the gate`,context:{failingMetrics:i.map(n=>n.name)}}),r.push({priority:"p0",domain:"quality-assessment",action:"Resolve Failing Quality Checks",description:`Fix ${i.map(n=>n.name).join(", ")} before proceeding with release.`,estimatedImpact:"high",effort:"medium",autoFixable:!1}))}async compareToPrevious(e,t,r){let i=dt(await e.memory.get(Ie));i&&(i.passed&&!t.passed&&r.push({type:"quality-gate-regression",severity:"high",domain:"quality-assessment",title:"Quality Gate Regression",description:"The measured quality gate was passing previously but is now failing",context:{previousEvaluatedAt:i.evaluatedAt,currentFailedChecks:t.failedChecks}}),!i.passed&&t.passed&&r.push({type:"quality-gate-improvement",severity:"info",domain:"quality-assessment",title:"Quality Gate Now Passing",description:"The measured quality gate is now passing after previous failures",context:{previousEvaluatedAt:i.evaluatedAt}}))}calculateHealthScore(e){if(e.checks.length===0)return 100;let t=e.passedChecks/e.checks.length*90;return e.passed&&(t+=10),Math.max(0,Math.min(100,Math.round(t)))}};Ue();J();var D="dream_insights_archive",mt=`
3
- CREATE TABLE IF NOT EXISTS ${D} (
4
- archive_id INTEGER PRIMARY KEY AUTOINCREMENT,
5
- id TEXT NOT NULL,
6
- cycle_id TEXT,
7
- insight_type TEXT,
8
- source_concepts TEXT,
9
- description TEXT,
10
- novelty_score REAL,
11
- confidence_score REAL,
12
- actionable INTEGER,
13
- applied INTEGER,
14
- suggested_action TEXT,
15
- pattern_id TEXT,
16
- created_at TEXT,
17
- archived_at TEXT NOT NULL DEFAULT (datetime('now'))
18
- )
19
- `;function Fe(o,e){return o.prepare(`PRAGMA table_info(${e})`).all().map(t=>t.name)}function $e(o,e={}){let t=e.retentionDays??30;if(!o.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='dream_insights'").get())return{pruned:0,archived:0};let{cutoff:i}=o.prepare("SELECT datetime('now', ?) AS cutoff").get(`-${t} days`),n="d.applied = 0 AND d.created_at < ?";return o.transaction(()=>{let a=o.prepare(`SELECT COUNT(*) AS n FROM dream_insights d WHERE ${n}`).get(i).n;if(a===0)return{pruned:0,archived:0};o.exec(mt);let c=new Set(Fe(o,D));if(!c.has("archive_id"))throw new Error(`${D} has no archive_id column; nothing deleted`);let l=Fe(o,"dream_insights").filter(p=>p!=="archived_at"&&p!=="archive_id"&&c.has(p)),d=l.map(p=>`"${p}"`).join(", "),{mark:u}=o.prepare(`SELECT COALESCE(MAX(archive_id), 0) AS mark FROM ${D}`).get(),m=o.prepare(`INSERT INTO ${D} (${d}, archived_at)
20
- SELECT ${l.map(p=>`d."${p}"`).join(", ")}, datetime('now')
21
- FROM dream_insights d WHERE ${n}`).run(i).changes,h=o.prepare(`SELECT COUNT(*) AS n FROM dream_insights d
22
- WHERE ${n}
23
- AND EXISTS (SELECT 1 FROM ${D} a
24
- WHERE a.id = d.id AND a.archive_id > ?)`).get(i,u).n;if(h!==a)throw new Error(`dream_insights archive check failed: ${h} of ${a} rows copied; nothing deleted`);let g=o.prepare(`DELETE FROM dream_insights
25
- WHERE applied = 0 AND created_at < ?
26
- AND id IN (SELECT id FROM ${D} WHERE archive_id > ?)`).run(i,u).changes,f=o.prepare(`SELECT COUNT(*) AS n FROM dream_insights d WHERE ${n}`).get(i).n;if(g!==a||f!==0)throw new Error(`dream_insights delete check failed: deleted ${g} of ${a}, ${f} left; rolled back`);return{pruned:g,archived:m}}).immediate()}var Ne={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},pt="learning:consolidation-cursor:",z=1,H=class extends y{lifecycleManager=null;lastRunTimestamp=0;dreamInsightsPruneNotBefore=Date.now()+Ne.intervalMs;retentionWarningLogged=!1;constructor(){super(Ne)}async getLifecycleManager(){if(this.lifecycleManager)return this.lifecycleManager;try{let e=E();await e.initialize();let t=e.getDatabase();return this.lifecycleManager=we(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 r=[],i=[],n={success:!1};try{let s=0,a=0,c=0,l=0,d=0,u=0,m=0,h=0,g=await this.getLifecycleManager();if(g){let k=await this.runContinuousLearningLoop(e,g,r,i);s=k.experiencesProcessed,a=k.patternCandidatesFound,c=k.patternsPromoted,l=k.patternsDeprecated,d=k.confidenceDecayApplied,u=k.patternsMined,m=k.domainsMined,h=k.dreamInsightsPruned}let f=await this.collectPatterns(e),p=await this.consolidatePatterns(e,f);p.experiencesProcessed=s,p.patternCandidatesFound=a,p.patternsPromoted=c,p.patternsDeprecated=l,p.confidenceDecayApplied=d,p.patternsMined=u,p.domainsMined=m,p.dreamInsightsPruned=h,this.identifyCrossDomainPatterns(f,r,i),this.pruneIneffectivePatterns(f,r,i),this.generateOptimizations(f,r,i);let S=await this.runDreamCycle(e,f,r,i);p.dreamInsights=S.insights,p.dreamPatternsCreated=S.patternsCreated,await e.memory.set("learning:lastConsolidation",p),await e.memory.set("learning:consolidatedPatterns",f),n={success:!0},this.lastRunTimestamp=Date.now();let v=this.calculateHealthScore(p,f);return e.logger.info("Learning consolidation complete",{healthScore:v,patternsAnalyzed:p.patternsAnalyzed,newInsights:p.newInsights,experiencesProcessed:s,patternsPromoted:c,patternsDeprecated:l}),this.createResult(Date.now()-t,{itemsAnalyzed:p.patternsAnalyzed,issuesFound:p.patternsPruned+p.patternsDeprecated,healthScore:v,trend:this.determineTrend(p),domainMetrics:{patternsAnalyzed:p.patternsAnalyzed,patternsPruned:p.patternsPruned,patternsConsolidated:p.patternsConsolidated,newInsights:p.newInsights,crossDomainPatterns:p.crossDomainPatterns,dreamInsights:p.dreamInsights,dreamPatternsCreated:p.dreamPatternsCreated,experiencesProcessed:p.experiencesProcessed,patternCandidatesFound:p.patternCandidatesFound,patternsPromoted:p.patternsPromoted,patternsDeprecated:p.patternsDeprecated,confidenceDecayApplied:p.confidenceDecayApplied,patternsMined:p.patternsMined,domainsMined:p.domainsMined,dreamInsightsPruned:p.dreamInsightsPruned}},r,i)}catch(s){throw n={success:!1,error:s instanceof Error?s.message:String(s)},s}finally{try{await fe(e.memory,"learningWorker",n)}catch(a){e.logger.warn("recordLoopHealth failed (non-fatal)",{error:a instanceof Error?a.message:String(a)})}let s=ye(j());try{await s.initialize(),await s.saveSnapshot()}catch(a){e.logger.warn("learning_daily_snapshots saveSnapshot failed (non-fatal)",{error:a instanceof Error?a.message:String(a)})}finally{s.close()}}}pruneDreamInsights(e){let t=Me();t.warning&&!this.retentionWarningLogged&&(this.retentionWarningLogged=!0,process.stderr.write(`[AQE] WARN ${t.warning}
27
- `));let r=t.retentionDays;if(r===null||Date.now()<this.dreamInsightsPruneNotBefore)return 0;let i=E().getDatabase(),{pruned:n,archived:s}=$e(i,{retentionDays:r});return n>0&&(process.stderr.write(`[AQE] dream_insights retention: moved ${n} unapplied insight(s) older than ${r} days to ${D} (set AQE_DREAM_INSIGHTS_RETENTION_DAYS=off to keep them in place)
28
- `),e.push({type:"dream-insights-pruned",severity:"info",domain:"learning-optimization",title:"Stale Dream Insights Archived",description:`${n} unapplied dream insights older than ${r} days moved to ${D}`,context:{pruned:n,archived:s,retentionDays:r}})),n}async runContinuousLearningLoop(e,t,r,i){e.logger.info("Running continuous learning loop (Phase 7)");let n=0,s=0,a=0,c=0,l=0,d=0,u=0,m=0;try{let h=t.getRecentExperiences({minReward:.7,limit:100,sinceDays:7});if(n=h.length,h.length>0){e.logger.debug("Processing recent experiences",{count:h.length});let v=t.findPatternCandidates(h);if(s=v.length,v.length>0){let k=await this.createPatternsFromCandidates(v);r.push({type:"pattern-extraction",severity:"info",domain:"learning-optimization",title:"New Patterns Extracted from Experiences",description:`${k} new patterns extracted from ${n} high-reward experiences`,context:{candidatesFound:s,patternsCreated:k,topCandidate:v[0]?.name}})}}let g=t.promoteEligiblePatterns();a=g.promoted,a>0&&r.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:g.checked,promoted:a}});let f=t.deprecateStalePatterns();c=f.deprecated,c>0&&(r.push({type:"pattern-deprecation",severity:"low",domain:"learning-optimization",title:"Underperforming Patterns Deprecated",description:`${c} patterns deprecated due to failures, staleness, or low confidence`,context:{checked:f.checked,deprecated:c}}),i.push({priority:"p3",domain:"learning-optimization",action:"Review Deprecated Patterns",description:`${c} patterns were deprecated. Review for potential recovery or permanent removal.`,estimatedImpact:"low",effort:"low",autoFixable:!1}));try{let k=E().getDatabase(),he=new Se;await he.initialize(k);let w=await he.consolidateAll();(w.merged>0||w.archived>0)&&r.push({type:"experience-consolidation",severity:"info",domain:"learning-optimization",title:"Experiences Consolidated",description:`${w.merged} merged, ${w.archived} archived across ${w.domainsProcessed.length} domains`,context:{merged:w.merged,archived:w.archived,activeRemaining:w.activeRemaining,domains:w.domainsProcessed}})}catch(v){e.logger.warn("Experience consolidation failed",{error:b(v)})}let p=this.lastRunTimestamp>0?(Date.now()-this.lastRunTimestamp)/(1e3*60*60*24):1;p>=.5&&(l=t.applyConfidenceDecay(Math.min(p,7)).decayed);let S=t.getStats();this.addLifecycleStatsFinding(S,r,i);try{let v=await this.mineExperiencesPerDomain(e,r);d=v.patternsMined,u=v.domainsMined}catch(v){e.logger.warn("Pattern mining sweep failed",{error:b(v)})}try{m=this.pruneDreamInsights(r)}catch(v){e.logger.warn("Dream insights pruning failed",{error:b(v)})}e.logger.info("Continuous learning loop complete",{experiencesProcessed:n,patternCandidatesFound:s,patternsPromoted:a,patternsDeprecated:c,confidenceDecayApplied:l,patternsMined:d,domainsMined:u,dreamInsightsPruned:m})}catch(h){e.logger.warn("Continuous learning loop partially failed",{error:b(h)})}return{experiencesProcessed:n,patternCandidatesFound:s,patternsPromoted:a,patternsDeprecated:c,confidenceDecayApplied:l,patternsMined:d,domainsMined:u,dreamInsightsPruned:m}}async mineExperiencesPerDomain(e,t){let r=e.domains.getDomainAPI("learning-optimization");if(!r||typeof r.getLearningService!="function")return e.logger.debug("mineExperiencesPerDomain: learning-optimization API unavailable"),{patternsMined:0,domainsMined:0};let i=r.getLearningService();if(!i)return e.logger.debug("mineExperiencesPerDomain: learning service not initialized"),{patternsMined:0,domainsMined:0};let n=new Date,s=0,a=0;for(let c of M){let l=`${pt}${c}`,d;try{let u=await e.memory.get(l);if(u){let m=new Date(u);if(!isNaN(m.getTime())&&m<n){let h=new Date(n.getTime()-z*24*60*60*1e3);d=m>h?m:h}else d=new Date(n.getTime()-z*24*60*60*1e3)}else d=new Date(n.getTime()-z*24*60*60*1e3)}catch{d=new Date(n.getTime()-z*24*60*60*1e3)}try{let u=Re.create(d,n),m=await i.mineExperiences(c,u);if(!m.success){e.logger.debug(`mineExperiences failed for ${c}`,{error:b(m.error)});continue}let{experienceCount:h,patterns:g}=m.value;h>0&&(s+=g.length,a++,await e.memory.set(l,n.toISOString()))}catch(u){e.logger.debug(`mineExperiences threw for ${c}`,{error:b(u)})}}return s>0&&t.push({type:"pattern-mining",severity:"info",domain:"learning-optimization",title:"Patterns Mined from Experience Replay",description:`${s} patterns mined into learning:pattern:* kv across ${a} domain(s) since their last consolidation tick`,context:{patternsMined:s,domainsMined:a,lookbackDays:z}}),{patternsMined:s,domainsMined:a}}async createPatternsFromCandidates(e){let t=0;try{let i=E().getDatabase();for(let n of e)try{let{v4:s}=await import("./dist-node-TCOTJVQX.js"),a=s(),c=`Auto-extracted pattern from ${n.sourceExperiences} experiences. Avg reward: ${n.avgReward.toFixed(3)}`;i.prepare(`
29
- INSERT INTO qe_patterns (
30
- id, pattern_type, qe_domain, domain, name, description,
31
- confidence, usage_count, success_rate, quality_score, tier,
32
- template_json, context_json, created_at, last_used_at, successful_uses
33
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), ?)
34
- `).run(a,n.patternType,n.domain,n.domain,n.name,c,n.confidence,n.sourceExperiences,n.successRate,n.confidence*.3+Math.min(n.sourceExperiences,100)/100*.2+n.successRate*.5,"short-term",JSON.stringify({type:"workflow",content:n.templateContent,variables:[]}),JSON.stringify({tags:n.actions,sourceType:"experience-extraction",extractedAt:new Date().toISOString()}),Math.round(n.sourceExperiences*n.successRate));let{ensurePatternEmbedding:l}=await import("./embed-and-insert-pattern-XAMNIKQL.js");await l(i,a,n.name,c,n.actions),t++}catch(s){console.debug("[LearningConsolidation] Failed to create pattern:",s)}}catch(r){console.warn("[LearningConsolidation] Pattern creation batch failed:",r)}return t}addLifecycleStatsFinding(e,t,r){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&&r.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&&r.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),r=e.patternsDeprecated/Math.max(1,e.patternsAnalyzed),i=e.patternCandidatesFound/Math.max(1,e.experiencesProcessed);return t>.1&&i>.2?"improving":r>.2||e.patternsPruned>e.newInsights?"degrading":"stable"}async collectPatterns(e){let t=[],r=[];for(let i of M)try{let n=await this.getDomainPatterns(e,i);t.push(...n)}catch(n){let s=b(n);r.push(`${i}: ${s}`),e.logger.warn(`Failed to collect patterns from ${i}`,{error:n})}if(t.length===0&&r.length>0)throw new Error(`Failed to collect any learning patterns. Errors from domains: ${r.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 r=e.domains.getDomainAPI("learning-optimization");if(!r)throw new Error(`Learning-optimization domain not available for ${t} - cannot retrieve patterns. Ensure the learning-optimization domain is properly initialized.`);let i=await r.getPatternStats(t);if(!i.success)throw new Error(`Failed to get pattern stats for ${t}: Unknown error. Check domain service health and data availability.`);return!i.value||!i.value.topPatterns||i.value.topPatterns.length===0?(e.logger.debug(`No patterns found for domain ${t}`),[]):i.value.topPatterns.map(s=>({id:s.id,domain:s.domain,type:s.type,pattern:s.name,confidence:s.confidence,occurrences:s.usageCount,lastSeen:new Date(s.lastUsedAt),effectiveness:s.successRate}))}async consolidatePatterns(e,t){let r=0,i=0,n=0,s=new Map;for(let d of t){let u=`${d.type}:${d.pattern}`,m=s.get(u)||[];m.push(d),s.set(u,m)}for(let[,d]of Array.from(s.entries()))d.length>1&&(i+=d.length-1);r=t.filter(d=>d.confidence<.5).length;let c=t.filter(d=>{let u=(Date.now()-d.lastSeen.getTime())/864e5;return d.effectiveness>.8&&u<7});n=c.length;let l=this.findCrossDomainPatterns(t);return await e.memory.set("learning:insights",{recentHighPerformers:c,crossDomainPatterns:l,timestamp:new Date().toISOString()}),{patternsAnalyzed:t.length,patternsPruned:r,patternsConsolidated:i,newInsights:n,strategyUpdates:0,crossDomainPatterns:l.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,r,i){if(t.length<10)return e.logger.debug("Skipping dream cycle - insufficient patterns",{patternCount:t.length,required:10}),{insights:0,patternsCreated:0};let n=null;try{n=new ve,await n.initialize();let s=t.map(l=>({id:l.id,name:l.pattern,description:`${l.type} pattern from ${l.domain} (effectiveness: ${l.effectiveness})`,domain:l.domain,patternType:l.type,confidence:l.confidence,successRate:l.effectiveness}));await n.loadPatternsAsConcepts(s),e.logger.debug("Starting dream cycle",{patternCount:t.length});let a=await n.dream(),c=a.insights.filter(l=>l.actionable&&l.confidenceScore>.7);return c.length>0&&(r.push({type:"dream-insights",severity:"info",domain:"learning-optimization",title:"Dream Cycle Insights Generated",description:`${c.length} actionable insights discovered through pattern association`,context:{totalInsights:a.insights.length,actionableInsights:c.length,topInsight:c[0]?.description,activationIterations:a.activationStats.totalIterations}}),i.push({priority:"p2",domain:"learning-optimization",action:"Apply Dream Insights",description:`${c.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:c,timestamp:new Date().toISOString()}),e.logger.info("Dream cycle completed",{insights:a.insights.length,actionable:c.length,duration:a.cycle.durationMs}),{insights:a.insights.length,patternsCreated:a.patternsCreated}}catch(s){return e.logger.warn("Dream cycle failed",{error:b(s)}),{insights:0,patternsCreated:0}}finally{n&&await n.close()}}findCrossDomainPatterns(e){let t=new Map;for(let i of e){let n=t.get(i.type)||[];n.push(i),t.set(i.type,n)}let r=[];for(let[i,n]of Array.from(t.entries())){let s=Array.from(new Set(n.map(a=>a.domain)));s.length>=3&&r.push({pattern:i,domains:s,avgEffectiveness:n.reduce((a,c)=>a+c.effectiveness,0)/n.length})}return r}identifyCrossDomainPatterns(e,t,r){let i=this.findCrossDomainPatterns(e);i.length>0&&(t.push({type:"cross-domain-patterns",severity:"info",domain:"learning-optimization",title:"Cross-Domain Patterns Identified",description:`${i.length} patterns are effective across multiple domains`,context:{patterns:i.map(n=>({type:n.pattern,domains:n.domains.length,effectiveness:n.avgEffectiveness.toFixed(2)}))}}),r.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,r){let i=e.filter(s=>s.effectiveness<.3&&s.occurrences>10),n=e.filter(s=>(Date.now()-s.lastSeen.getTime())/864e5>30);i.length>0&&(t.push({type:"ineffective-patterns",severity:"low",domain:"learning-optimization",title:"Ineffective Patterns Detected",description:`${i.length} patterns have low effectiveness despite many occurrences`,context:{count:i.length,domains:Array.from(new Set(i.map(s=>s.domain)))}}),r.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})),n.length>0&&t.push({type:"stale-patterns",severity:"info",domain:"learning-optimization",title:"Stale Patterns Identified",description:`${n.length} patterns have not been seen in over 30 days`,context:{count:n.length}})}generateOptimizations(e,t,r){let i=new Map;for(let a of e)i.set(a.domain,(i.get(a.domain)||0)+1);let n=M.filter(a=>(i.get(a)||0)<3);n.length>0&&(t.push({type:"learning-gaps",severity:"medium",domain:"learning-optimization",title:"Learning Gaps Identified",description:`${n.length} domains have few learned patterns`,context:{domains:n}}),r.push({priority:"p2",domain:"learning-optimization",action:"Improve Learning Coverage",description:`Focus learning efforts on domains with few patterns: ${n.join(", ")}`,estimatedImpact:"medium",effort:"medium",autoFixable:!1}));let s=e.filter(a=>a.effectiveness>.9&&a.occurrences>20).sort((a,c)=>c.effectiveness-a.effectiveness).slice(0,5);s.length>0&&t.push({type:"top-patterns",severity:"info",domain:"learning-optimization",title:"Top Performing Patterns",description:`${s.length} patterns show exceptional effectiveness`,context:{patterns:s.map(a=>({domain:a.domain,type:a.type,effectiveness:a.effectiveness.toFixed(2)}))}})}calculateHealthScore(e,t){if(t.length===0)return 50;let i=t.reduce((s,a)=>s+a.effectiveness,0)/t.length*50;i+=Math.min(20,e.newInsights*4),i+=Math.min(15,e.crossDomainPatterns*3),i+=Math.min(10,e.dreamInsights*2);let n=e.patternsPruned/e.patternsAnalyzed;return i-=n*15,Math.max(0,Math.min(100,Math.round(i)))}};import*as V from"fs";import*as R from"path";Qe();var gt={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},ce="defect-intelligence",Le="defect-intelligence:predictor:prediction:*",le="defect:predictions",_e=1,ht=10080*60*1e3,ft=1e3,yt=["critical","high","medium","low","info"];function vt(o,e){let t;try{t=V.realpathSync(R.resolve(e,o))}catch{let i=R.resolve(e,o),n=R.relative(e,i);return n&&!n.startsWith("..")&&!R.isAbsolute(n)?"missing":"outside"}let r=R.relative(e,t);if(r===""||r.startsWith("..")||R.isAbsolute(r))return"outside";try{return V.statSync(t).isFile()?"inside":"missing"}catch{return"missing"}}function kt(){let o=j();try{return V.realpathSync(o)}catch{return R.resolve(o)}}var de=o=>!!o&&typeof o=="object"&&!Array.isArray(o);function bt(o){if(!de(o))return null;let{file:e,probability:t,riskLevel:r}=o;if(typeof e!="string"||e.length===0||typeof t!="number"||!Number.isFinite(t)||t<0||t>1||!yt.includes(r))return null;let i=Array.isArray(o.factors)?o.factors.filter(s=>de(s)&&typeof s.name=="string"&&typeof s.contribution=="number"&&Number.isFinite(s.contribution)):[],n=Array.isArray(o.recommendations)?o.recommendations.filter(s=>typeof s=="string"):[];return{file:e,probability:t,riskLevel:r,factors:i,recommendations:n}}function Dt(o,e){if(!de(o)||typeof o.id!="string"||typeof o.timestamp!="string")return null;let t=Date.parse(o.timestamp);if(!Number.isFinite(t)||t>e+6e4||e-t>ht||!Array.isArray(o.predictions)||o.predictions.length===0)return null;let r=o.predictions.map(bt);return r.some(i=>i===null)?null:{id:o.id,timestamp:o.timestamp,predictions:r}}var O=class extends y{constructor(){super(gt)}async doExecute(e){let t=Date.now();e.logger.info("Starting defect prediction analysis");let r=[],i=[],{measured:n,unusable:s}=await this.readLatestPrediction(e);if(!n)return r.push({type:"defect-prediction-unmeasured",severity:"info",domain:"defect-intelligence",title:"Defect Prediction Unmeasured",description:(s?`The latest defect prediction (${s.id}) names no file inside this project (${s.outside} outside the project root, ${s.missing} missing), so no risk is reported. `:"No defect prediction for files in this project has been recorded in the last 7 days, so no risk is reported. ")+"Run defect_predict on the files to assess."}),s&&await this.markPreviousStale(e,s.id),e.logger.info("Defect prediction complete",{measured:!1}),this.createResult(Date.now()-t,{itemsAnalyzed:0,issuesFound:0,healthScore:100,trend:"stable",domainMetrics:{filesAnalyzed:0,highRiskFiles:0,hotspots:"unmeasured",avgDefectProbability:"unmeasured"}},r,i);let{predictions:a}=n;this.analyzeHighRiskPredictions(a,r,i),await e.memory.set(le,n),await e.memory.set("defect:lastAnalysis",n.evaluatedAt);let c=this.calculateHealthScore(a),l=a.filter(d=>d.riskLevel==="high"||d.riskLevel==="critical").length;return e.logger.info("Defect prediction complete",{measured:!0,healthScore:c,predictionId:n.predictionId,predictionsCount:a.length}),this.createResult(Date.now()-t,{itemsAnalyzed:a.length,issuesFound:a.filter(d=>d.probability>.5).length,healthScore:c,trend:"stable",domainMetrics:{filesAnalyzed:a.length,highRiskFiles:l,missingFilesSkipped:n.missingFilesSkipped,outsideProjectSkipped:n.outsideProjectSkipped,hotspots:"unmeasured",avgDefectProbability:(a.reduce((d,u)=>d+u.probability,0)/a.length).toFixed(2)}},r,i)}async markPreviousStale(e,t){let r=await e.memory.get(le);!r||typeof r!="object"||r.measured!==!0||r.schemaVersion!==_e||r.stale===!0||r.predictionId===t||await e.memory.set(le,{...r,stale:!0,staleSince:new Date().toISOString(),supersededBy:t})}async readLatestPrediction(e){let t=await e.memory.search(Le,ft,{namespace:ce}),r=Date.now(),i=null;for(let d of t){let u=x(d,ce,Le),m=Dt(await e.memory.get(u,{namespace:ce}),r);m&&(!i||Date.parse(m.timestamp)>Date.parse(i.timestamp))&&(i=m)}if(!i)return{measured:null,unusable:null};let n=kt(),s=i.predictions.map(d=>vt(d.file,n)),a=i.predictions.filter((d,u)=>s[u]==="inside"),c=s.filter(d=>d==="outside").length,l=s.filter(d=>d==="missing").length;return c>0&&e.logger.warn("Ignoring defect predictions for paths outside the project root",{predictionId:i.id,outside:c}),a.length===0?(e.logger.info("Latest defect prediction names no file inside the project",{predictionId:i.id}),{measured:null,unusable:{id:i.id,outside:c,missing:l}}):{unusable:null,measured:{measured:!0,schemaVersion:_e,source:"defect-intelligence",predictionId:i.id,predictedAt:i.timestamp,evaluatedAt:new Date().toISOString(),predictions:a,missingFilesSkipped:l,outsideProjectSkipped:c}}}analyzeHighRiskPredictions(e,t,r){let i=e.filter(l=>l.riskLevel==="critical"),n=e.filter(l=>l.riskLevel==="high");for(let l of[...i,...n]){let d=l.file.split(/[\\/]/).pop();t.push({type:`${l.riskLevel}-defect-risk`,severity:l.riskLevel,domain:"defect-intelligence",title:`${l.riskLevel==="critical"?"Critical":"High"} Defect Risk: ${d}`,description:`${(l.probability*100).toFixed(0)}% predicted defect probability (defect-intelligence predictor)`,resource:l.file,context:{probability:l.probability,factors:l.factors,recommendations:l.recommendations}})}if(i.length===0&&n.length===0)return;r.push({priority:"p0",domain:"defect-intelligence",action:"Prioritize Code Review for High-Risk Files",description:`${i.length+n.length} files have elevated predicted defect risk. Schedule focused code reviews.`,estimatedImpact:"high",effort:"medium",autoFixable:!1});let s=[...i,...n],a=s.filter(l=>l.factors.some(d=>d.name==="codeComplexity"&&d.contribution>.1));a.length>0&&r.push({priority:"p1",domain:"defect-intelligence",action:"Reduce Code Complexity",description:`${a.length} high-risk files have code complexity as a major risk factor. Consider refactoring.`,estimatedImpact:"high",effort:"high",autoFixable:!1});let c=s.filter(l=>l.factors.some(d=>d.name==="testCoverage"&&d.contribution>.1));c.length>0&&r.push({priority:"p1",domain:"defect-intelligence",action:"Improve Test Coverage for Risky Files",description:`${c.length} high-risk files have low test coverage as a major risk factor. Add targeted tests.`,estimatedImpact:"high",effort:"medium",autoFixable:!0})}calculateHealthScore(e){if(e.length===0)return 100;let t=e.reduce((n,s)=>n+s.probability,0)/e.length,r=e.filter(n=>n.riskLevel==="critical"||n.riskLevel==="high").length,i=(1-t)*80-r/e.length*20+20;return Math.max(0,Math.min(100,Math.round(i)))}};var Rt={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},ze="regression:baseline",He="regression:history",ue=2,Oe=o=>typeof o=="number"&&Number.isFinite(o)&&o>=0&&o<=100,T=o=>Math.round(o*100)/100;function St(o){if(!o||typeof o!="object")return null;let e=o;if(e.measured!==!0||e.schemaVersion!==ue)return null;let t=e.coverage===null?null:I(e.coverage);if(e.coverage!==null&&!t)return null;let r=e.tests===null?null:wt(e.tests);return e.tests!==null&&!r||!t&&!r?null:{measured:!0,schemaVersion:ue,timestamp:typeof e.timestamp=="string"?e.timestamp:"",coverage:t,tests:r}}function wt(o){if(!o||typeof o!="object")return null;let e=o;if(!Oe(e.passRate)||typeof e.measuredAt!="string"||typeof e.source!="string")return null;let t=Array.isArray(e.failedTests)&&e.failedTests.every(i=>typeof i=="string")?e.failedTests:null,r=e.avgTestDurationMs;return{testSet:Ve(e.testSet),passRate:e.passRate,runId:typeof e.runId=="string"?e.runId:null,runStatus:e.runStatus==="passed"||e.runStatus==="failed"?e.runStatus:null,measuredAt:e.measuredAt,source:e.source,failedTests:t,avgTestDurationMs:typeof r=="number"&&Number.isFinite(r)&&r>=0?r:null}}function Ve(o){if(!o||typeof o!="object")return null;let e=o,{total:t}=e;if(typeof t!="number"||!Number.isInteger(t)||t<=0)return null;let r=Ct(e.files);return r?{total:t,files:r}:null}function Ct(o){return!Array.isArray(o)||o.length===0||!o.every(e=>typeof e=="string")?null:[...new Set(o)].sort()}var Mt=(o,e)=>o!==null&&e!==null&&o.total===e.total&&o.files.length===e.files.length&&o.files.every((t,r)=>t===e.files[r]),B=class extends y{constructor(){super(Rt)}async doExecute(e){let t=Date.now();e.logger.info("Starting regression monitoring");let r=[],i=[],n=await this.collectCurrentSnapshot(e),s=await e.memory.get(ze),a=St(s),c=this.baselineStatus(s,a);c==="legacy-ignored"?e.logger.info("Ignoring a regression:baseline without the measured stamp (written by <= 3.15.5)"):c==="invalid-ignored"&&e.logger.warn("Ignoring a malformed measured regression:baseline");let l=[],d=0;if(a&&n&&({regressions:l,metricsCompared:d}=this.detectRegressions(a,n),this.analyzeRegressions(l,r,i)),n){let f={...n,coverage:n.coverage??a?.coverage??null,tests:n.tests??a?.tests??null};await e.memory.set(ze,f)}else r.push({type:"regression-unmeasured",severity:"info",domain:"quality-assessment",title:"Regression Baseline Unmeasured",description:"No measured coverage (stamped coverage:latest) and no current testsPassing evidence exist, so nothing was stored or compared. Run the tests (with coverage) to start regression tracking."});if(l.length>0){let f=new Date().toISOString(),p=await e.memory.get(He),S=Array.isArray(p)?p:[];for(S.push(...l.map(v=>({...v,measured:!0,detectedAt:f})));S.length>100;)S.shift();await e.memory.set(He,S)}let u=this.calculateHealthScore(l);e.logger.info("Regression monitoring complete",{healthScore:u,measured:n!==null,baselineStatus:c,regressionsDetected:l.length});let m=f=>f===null?"n/a":`${T(f)}%`,h=n?.tests??null,g=n?.coverage??null;return this.createResult(Date.now()-t,{itemsAnalyzed:d,issuesFound:l.length,healthScore:u,trend:l.length>0?"degrading":"stable",domainMetrics:{baselineStatus:c,testPassRate:h?m(h.passRate):"unmeasured",lineCoverage:g?m(g.line):"unmeasured",branchCoverage:g?m(g.branch):"unmeasured",avgTestDuration:h&&h.avgTestDurationMs!==null?`${T(h.avgTestDurationMs)}ms`:"unmeasured",regressionsDetected:l.length}},r,i)}baselineStatus(e,t){return t?"measured":e==null?"none":typeof e=="object"&&e.measured===!0?"invalid-ignored":"legacy-ignored"}async collectCurrentSnapshot(e){let t=I(await e.memory.get("coverage:latest")),r=await this.collectMeasuredTests(e);return!t&&!r?null:{measured:!0,schemaVersion:ue,timestamp:new Date().toISOString(),coverage:t,tests:r}}async collectMeasuredTests(e){let t=await U(e.memory,"testsPassing");if(!t||!Oe(t.value))return null;let r=null,i=null,n=null;if(t.runId){let s=await e.memory.get(`test-run:${t.runId}`,{namespace:"test-execution"});if(s&&typeof s=="object"){Array.isArray(s.failedTests)&&(r=s.failedTests.map(l=>l&&typeof l=="object"?l.testName:void 0).filter(l=>typeof l=="string"));let{total:a,duration:c}=s;typeof a=="number"&&a>0&&typeof c=="number"&&Number.isFinite(c)&&c>=0&&(i=c/a),n=Ve({total:a,files:s.testFiles})}}return{passRate:t.value,runId:t.runId??null,runStatus:t.runStatus??null,measuredAt:t.measuredAt,source:t.source,failedTests:r,avgTestDurationMs:i,testSet:n}}detectRegressions(e,t){let r=[],i=0,n=e.tests,s=t.tests;if(n&&s){if(i++,s.passRate<n.passRate-1){let u=s.passRate-n.passRate;r.push({type:"test",metric:"testPassRate",previousValue:T(n.passRate),currentValue:T(s.passRate),changePercent:u,severity:u<-5?"critical":u<-2?"high":"medium",...s.failedTests?{affectedTests:s.failedTests}:{}})}if(n.failedTests&&s.failedTests){i++;let u=new Set(n.failedTests),m=s.failedTests.filter(h=>!u.has(h));m.length>0&&r.push({type:"test",metric:"newFailures",previousValue:0,currentValue:m.length,changePercent:100,severity:m.length>5?"critical":m.length>2?"high":"medium",affectedTests:m})}let l=n.avgTestDurationMs,d=s.avgTestDurationMs;if(l!==null&&d!==null&&l>0&&Mt(n.testSet,s.testSet)){i++;let u=(d-l)/l*100;u>20&&r.push({type:"performance",metric:"avgTestDuration",previousValue:T(l),currentValue:T(d),changePercent:u,severity:u>50?"high":"medium"})}}let a=e.coverage,c=t.coverage;if(a&&c){if(i++,c.line<a.line-2){let l=c.line-a.line;r.push({type:"coverage",metric:"lineCoverage",previousValue:a.line,currentValue:c.line,changePercent:l,severity:l<-5?"high":"medium"})}if(a.branch!==null&&c.branch!==null&&(i++,c.branch<a.branch-3)){let l=c.branch-a.branch;r.push({type:"coverage",metric:"branchCoverage",previousValue:a.branch,currentValue:c.branch,changePercent:l,severity:l<-5?"high":"medium"})}}return{regressions:r,metricsCompared:i}}analyzeRegressions(e,t,r){for(let a of e){let c=this.getDomainForType(a.type);t.push({type:`${a.type}-regression`,severity:a.severity,domain:c,title:`${this.formatMetricName(a.metric)} Regression Detected`,description:this.formatRegressionDescription(a),context:{metric:a.metric,previousValue:a.previousValue,currentValue:a.currentValue,changePercent:a.changePercent.toFixed(2),affectedTests:a.affectedTests}})}let i=e.filter(a=>a.type==="test");if(i.length>0){let a=i.filter(c=>c.severity==="critical"||c.severity==="high");a.length>0&&r.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&&r.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&&r.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){return e==="coverage"?"coverage-analysis":"test-execution"}formatMetricName(e){return{testPassRate:"Test Pass Rate",lineCoverage:"Line Coverage",branchCoverage:"Branch Coverage",avgTestDuration:"Test Duration",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",r=e.type==="performance"?"ms":"%";return`${this.formatMetricName(e.metric)} ${t} from ${e.previousValue}${r} to ${e.currentValue}${r} (${e.changePercent>0?"+":""}${e.changePercent.toFixed(1)}%)`}calculateHealthScore(e){if(e.length===0)return 100;let t=100;for(let r of e)switch(r.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 Tt={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},Be="performance:baseline",Ge="performance:history",me=1,At=1.3,qe=.1,Pt=168,pe=o=>typeof o=="number"&&Number.isFinite(o)&&o>=0,A=o=>Math.round(o*100)/100;function je(o){if(!o||typeof o!="object")return null;let{total:e,files:t}=o;return typeof e!="number"||!Number.isInteger(e)||e<=0||!Array.isArray(t)||t.length===0||!t.every(r=>typeof r=="string")?null:{total:e,files:[...new Set(t)].sort()}}var Et=(o,e)=>o!==null&&e!==null&&o.total===e.total&&o.files.length===e.files.length&&o.files.every((t,r)=>t===e.files[r]);function It(o){if(!o||typeof o!="object")return null;let e=o;if(e.measured!==!0||e.schemaVersion!==me)return null;let t=e.testExecution;return!t||typeof t!="object"||!pe(t.avgTestDurationMs)||!pe(t.totalDurationMs)||typeof t.samples!="number"||!Number.isInteger(t.samples)||t.samples<1||typeof t.lastRunId!="string"?null:{measured:!0,schemaVersion:me,updatedAt:typeof e.updatedAt=="string"?e.updatedAt:"",testExecution:{avgTestDurationMs:t.avgTestDurationMs,totalDurationMs:t.totalDurationMs,samples:t.samples,lastRunId:t.lastRunId,testSet:je(t.testSet)}}}var G=class extends y{constructor(){super(Tt)}async doExecute(e){let t=Date.now();e.logger.info("Starting performance baseline tracking");let r=[],i=[],n=await this.collectMeasuredRun(e),s=await e.memory.get(Be),a=It(s),c=this.baselineStatus(s,a);c==="legacy-ignored"?e.logger.info("Ignoring a performance:baseline without the measured stamp (written by <= 3.15.6)"):c==="invalid-ignored"&&e.logger.warn("Ignoring a malformed measured performance:baseline");let l=[],d=!1;n?a?.testExecution.lastRunId===n.runId?e.logger.debug("Latest measured run already in the performance baseline",{runId:n.runId}):(a&&Et(a.testExecution.testSet,n.testSet)&&(d=!0,l=this.detectAnomalies(n,a),this.analyzeAnomalies(l,r,i)),await e.memory.set(Be,this.nextBaseline(n,d?a:null)),await this.appendHistory(e,n)):r.push({type:"performance-unmeasured",severity:"info",domain:"test-execution",title:"Performance Baseline Unmeasured",description:"No recorded test run backs the current testsPassing evidence, so no timing was stored or compared. Run the test suite (test_execute_parallel, or `aqe test execute`) to start tracking. Build and resource figures are not measured by AQE."});let u=this.calculateHealthScore(l);return e.logger.info("Performance baseline tracking complete",{healthScore:u,measured:n!==null,baselineStatus:c,anomaliesDetected:l.length}),this.createResult(Date.now()-t,{itemsAnalyzed:d?2:0,issuesFound:l.length,healthScore:u,trend:l.length>0?"degrading":"stable",domainMetrics:{baselineStatus:c,avgTestDuration:n?`${A(n.avgTestDurationMs)}ms`:"unmeasured",totalTestDuration:n?`${A(n.totalDurationMs)}ms`:"unmeasured",compileDuration:"unmeasured",bundleSize:"unmeasured",peakMemory:"unmeasured",anomalies:l.length}},r,i)}baselineStatus(e,t){return t?"measured":e==null?"none":typeof e=="object"&&e.measured===!0?"invalid-ignored":"legacy-ignored"}async collectMeasuredRun(e){let t=await U(e.memory,"testsPassing");if(!t?.runId)return null;let r=await e.memory.get(`test-run:${t.runId}`,{namespace:"test-execution"});if(!r||typeof r!="object")return null;let{total:i,duration:n}=r;return typeof i!="number"||!Number.isInteger(i)||i<=0||!pe(n)?null:{measured:!0,runId:t.runId,measuredAt:t.measuredAt,totalDurationMs:n,testCount:i,avgTestDurationMs:n/i,testSet:je({total:i,files:r.testFiles})}}detectAnomalies(e,t){let r=[],i=(n,s,a)=>{if(a<=0)return;let c=s/a;c>At&&r.push({metric:n,currentValue:A(s),baselineValue:A(a),deviationPercent:(c-1)*100,severity:c>1.5?"high":"medium"})};return i("avgTestDuration",e.avgTestDurationMs,t.testExecution.avgTestDurationMs),i("totalTestDuration",e.totalDurationMs,t.testExecution.totalDurationMs),r}analyzeAnomalies(e,t,r){for(let i of e)t.push({type:"performance-anomaly-test",severity:i.severity,domain:"test-execution",title:`Performance Anomaly: ${this.formatMetricName(i.metric)}`,description:`${this.formatMetricName(i.metric)} is ${i.deviationPercent.toFixed(1)}% above the measured baseline`,context:{currentValue:i.currentValue,baselineValue:i.baselineValue,deviationPercent:i.deviationPercent.toFixed(1)}});e.length>0&&r.push({priority:e.some(i=>i.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})}formatMetricName(e){return e==="avgTestDuration"?"Average Test Duration":"Total Test Duration"}nextBaseline(e,t){let r=t?.testExecution,i=(n,s)=>n*(1-qe)+s*qe;return{measured:!0,schemaVersion:me,updatedAt:new Date().toISOString(),testExecution:{avgTestDurationMs:r?A(i(r.avgTestDurationMs,e.avgTestDurationMs)):e.avgTestDurationMs,totalDurationMs:r?A(i(r.totalDurationMs,e.totalDurationMs)):e.totalDurationMs,samples:r?r.samples+1:1,lastRunId:e.runId,testSet:e.testSet}}}async appendHistory(e,t){let r=await e.memory.get(Ge),i=Array.isArray(r)?r:[];for(i.push(t);i.length>Pt;)i.shift();await e.memory.set(Ge,i)}calculateHealthScore(e){let t=100;for(let r of e){let i=r.severity==="high"?15:8;t-=i+Math.min(10,r.deviationPercent/10)}return Math.max(0,Math.round(t))}};var xt={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},q=class extends y{constructor(){super(xt)}async doExecute(e){let t=Date.now();e.logger.info("Starting compliance checking");let r=[],i=[],n=await this.checkADRCompliance(e),s=await this.checkDDDCompliance(e),a=await this.checkStructuralCompliance(e);this.analyzeADRCompliance(n,r,i),this.analyzeDDDCompliance(s,r,i),this.analyzeStructuralCompliance(a,r,i),await e.memory.set("compliance:adr",n),await e.memory.set("compliance:ddd",s),await e.memory.set("compliance:structural",a),await e.memory.set("compliance:lastCheck",new Date().toISOString());let c=this.calculateHealthScore(n,s,a);return e.logger.info("Compliance checking complete",{healthScore:c,adrChecks:n.length,domainChecks:s.length}),this.createResult(Date.now()-t,{itemsAnalyzed:n.length+s.length+a.length,issuesFound:r.length,healthScore:c,trend:"stable",domainMetrics:{adrCompliance:`${this.calculateAvgScore(n)}%`,dddCompliance:`${this.calculateDDDAvgScore(s)}%`,structuralCompliance:`${this.calculateStructuralScore(a)}%`,totalViolations:n.reduce((l,d)=>l+d.violations.length,0)+s.reduce((l,d)=>l+d.violations.length,0)}},r,i)}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 r=await e.memory.search("compliance:adr:*");if(r.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 i=[],n=[];for(let s of r)try{let a=await e.memory.get(s);a&&i.push(a)}catch{n.push(s)}if(i.length===0)throw new Error(`Found ${r.length} ADR compliance keys but failed to retrieve any data. Failed keys: ${n.join(", ")}. Check memory service connectivity.`);return i}async checkDDDCompliance(e){let t=[];for(let r of M)try{let i=await this.checkDomainCompliance(e,r);t.push(i)}catch(i){e.logger.warn(`Failed to check DDD compliance for ${r}`,{error:i})}return t}async checkDomainCompliance(e,t){let r=e.domains.getDomainHealth(t),i=e.domains.getDomainAPI(t),n=r.status!=="unhealthy",s=i!==void 0,a=s,c=s,l=await e.memory.get(`compliance:ddd:${t}`),d=l?.hasEntities??!1,u=l?.hasEvents??!1,m=l?.hasRepositories??!1,h=l?.namingCompliant??s,g=[];d||g.push("Missing domain entities"),u||g.push("Missing domain events"),m||g.push("Missing repositories"),n||g.push("Domain coordinator not available"),s||g.push("Domain plugin not loaded");let f=[n,s,a,c,d,u,m,h],p=Math.round(f.filter(Boolean).length/f.length*100);return{domain:t,hasCoordinator:n,hasPlugin:s,hasInterfaces:a,hasServices:c,hasEntities:d,hasEvents:u,hasRepositories:m,namingCompliant:h,score:p,violations:g}}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 r=[],i=[];for(let n of t)try{let s=await e.memory.get(n);s&&r.push(s)}catch(s){i.push(n),e.logger.warn(`Failed to retrieve structural compliance data: ${n}`,{error:s})}if(r.length===0)throw new Error(`Found ${t.length} structural compliance keys but failed to retrieve any data. Failed keys: ${i.join(", ")}. Check memory service connectivity.`);return r}analyzeADRCompliance(e,t,r){let i=e.filter(s=>s.status==="non-compliant"),n=e.filter(s=>s.status==="partial");for(let s of i)t.push({type:"adr-non-compliance",severity:"high",domain:"quality-assessment",title:`ADR Non-Compliance: ${s.adrId}`,description:`${s.title} is not compliant (score: ${s.score}%)`,context:{adrId:s.adrId,violations:s.violations}});for(let s of n)t.push({type:"adr-partial-compliance",severity:"medium",domain:"quality-assessment",title:`ADR Partial Compliance: ${s.adrId}`,description:`${s.title} is partially compliant (score: ${s.score}%)`,context:{adrId:s.adrId,violations:s.violations}});i.length>0&&r.push({priority:"p1",domain:"quality-assessment",action:"Address ADR Non-Compliance",description:`${i.length} ADRs are not being followed. Review and implement required patterns.`,estimatedImpact:"high",effort:"high",autoFixable:!1})}analyzeDDDCompliance(e,t,r){let i=e.filter(a=>a.score<70),n=e.filter(a=>!a.hasEntities),s=e.filter(a=>!a.hasEvents);i.length>0&&t.push({type:"ddd-low-compliance",severity:"medium",domain:"quality-assessment",title:`${i.length} Domains Have Low DDD Compliance`,description:"Some domains are missing required DDD components",context:{domains:i.map(a=>({domain:a.domain,score:a.score}))}}),n.length>0&&(t.push({type:"ddd-missing-entities",severity:"low",domain:"quality-assessment",title:"Domains Missing Entity Definitions",description:`${n.length} domains lack proper entity definitions`,context:{domains:n.map(a=>a.domain)}}),r.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})),s.length>0&&r.push({priority:"p3",domain:"quality-assessment",action:"Implement Domain Events",description:`${s.length} domains are missing domain event definitions.`,estimatedImpact:"medium",effort:"medium",autoFixable:!1})}analyzeStructuralCompliance(e,t,r){let i=e.filter(n=>!n.compliant);for(let n of i)t.push({type:"structural-violation",severity:"medium",domain:"quality-assessment",title:`Structural Violation: ${n.category}`,description:`Rule "${n.rule}" is not being followed: ${n.details}`,context:{category:n.category,rule:n.rule}});i.length>0&&r.push({priority:"p2",domain:"quality-assessment",action:"Fix Structural Violations",description:`${i.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,r)=>t+r.score,0)/e.length)}calculateDDDAvgScore(e){return e.length===0?100:Math.round(e.reduce((t,r)=>t+r.score,0)/e.length)}calculateStructuralScore(e){if(e.length===0)return 100;let t=e.filter(r=>r.compliant).length;return Math.round(t/e.length*100)}calculateHealthScore(e,t,r){let i=this.calculateAvgScore(e)*.4,n=this.calculateDDDAvgScore(t)*.4,s=this.calculateStructuralScore(r)*.2;return Math.round(i+n+s)}};J();var Fn={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 Wt={autoStart:!0,enabledWorkers:[],disabledWorkers:[],logLevel:"info",healthCheckIntervalMs:6e4},ge=class{_running=!1;_startedAt;_healthCheckTimer;workerManager;config;_qualityDaemon;unknownDisabledIds=[];constructor(e){this.config={...Wt,...e,disabledWorkers:(e?.disabledWorkers??Ce()).map(t=>t.toLowerCase())},this.workerManager=new X,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.unknownDisabledIds.length>0&&console.warn(`[AQE] WARN AQE_DISABLED_WORKERS: unknown worker id(s) ignored: ${this.unknownDisabledIds.join(", ")}`),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 Te(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 W,new F,new $,new L,new _,new H,new O,new B,new G,new q,new ee];for(let r of e)this.config.disabledWorkers.includes(r.config.id)||(this.config.enabledWorkers.length===0||this.config.enabledWorkers.includes(r.config.id))&&this.workerManager.register(r);let t=new Set(e.map(r=>r.config.id));this.unknownDisabledIds=this.config.disabledWorkers.filter(r=>!t.has(r))}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 Ft(o){return new ge(o)}var P;function er(o){return P||(P=Ft(o)),P}function tr(){P?.running&&P.stop().catch(console.error),P=void 0}export{ge as QEDaemon,Ft as createDaemon,er as getDaemon,tr 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.15.9");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-FLASM2XB.js";import"./chunk-KTSLTZSG.js";import"./chunk-O3JLOVZX.js";import"./chunk-DGTLJNJH.js";import"./chunk-2I2UPJS7.js";import"./chunk-HZ5NC6U5.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.15.9");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-G3BKZNFL.js";import"./chunk-LEAKYZ37.js";import"./chunk-VYLM2YV5.js";import"./chunk-3LYU7BLY.js";import"./chunk-KLGYIEJK.js";import"./chunk-MZS32SYS.js";import"./chunk-GCWSX2NY.js";import"./chunk-2TDIS6YK.js";import"./chunk-F3PQZX44.js";import"./chunk-XWIUFYM3.js";import"./chunk-DDPPSSHW.js";import"./chunk-D6XVGFTI.js";import"./chunk-VRGCKBF7.js";import"./chunk-7JKB3Q7O.js";import"./chunk-UYLYMWV5.js";import"./chunk-JWGRWMZP.js";import"./chunk-XDBD4GXO.js";import"./chunk-7X2Y727E.js";import"./chunk-AVB5QY2Q.js";import"./chunk-OCESWNAZ.js";import"./chunk-ICP2ORGI.js";import"./chunk-PVIA2FPD.js";import"./chunk-OG2UI6A3.js";import"./chunk-V5PXQSFS.js";import"./chunk-5D2I7JUP.js";import"./chunk-EFBLP43U.js";import"./chunk-7KII4CQG.js";import"./chunk-4SUOVLJ6.js";import"./chunk-ZXBCCO2H.js";import"./chunk-BXO536GT.js";import"./chunk-SVHUYVUR.js";import"./chunk-FV7VAG74.js";import"./chunk-JNNZK7KH.js";import"./chunk-2BA45H64.js";import"./chunk-KTSLTZSG.js";import"./chunk-O3JLOVZX.js";import"./chunk-DGTLJNJH.js";import"./chunk-N3KEY4XJ.js";import"./chunk-2I2UPJS7.js";import"./chunk-PX2B5TS2.js";import"./chunk-4V27J6YN.js";import"./chunk-H3KBIWTO.js";import"./chunk-OXZLKP6C.js";import"./chunk-SNBYYO6F.js";import"./chunk-6YL6JOQB.js";import"./chunk-6OOYIO3W.js";import"./chunk-HZ5NC6U5.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.15.9");process.exit(0)}
2
- import{a,b,c}from"./chunk-XOLDMK23.js";import"./chunk-7QGYJ5OY.js";import"./chunk-HZ5NC6U5.js";export{a as SOURCE_EXTENSIONS,c as filterTestFilesForFramework,b as walkSourceFiles};