agentic-qe 3.15.14 → 3.15.15

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 (376) hide show
  1. package/.claude/agents/v3/templates/qx-report-template.html +1 -1
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +46 -0
  4. package/assets/agents/v3/templates/qx-report-template.html +1 -1
  5. package/assets/skills/skills-manifest.json +1 -1
  6. package/dist/cli/bundle.js +6 -6
  7. package/dist/cli/chunks/adapter-QU6INSKP.js +2 -0
  8. package/dist/cli/chunks/agent-booster-wasm-EUF4XVUC.js +2 -0
  9. package/dist/cli/chunks/{agent-handler-P3IY7XEE.js → agent-handler-MOX6PSIQ.js} +2 -2
  10. package/dist/cli/chunks/{agent-memory-branch-WWKC2H3G.js → agent-memory-branch-AEXKIGDG.js} +2 -2
  11. package/dist/cli/chunks/aqe-learning-engine-PAJPENJD.js +2 -0
  12. package/dist/cli/chunks/{arena-EIV5OALF.js → arena-IQ5ZZDRF.js} +2 -2
  13. package/dist/cli/chunks/{arena-4BMFF6BS.js → arena-M7GA3CVG.js} +4 -4
  14. package/dist/cli/chunks/{audit-DNTI453H.js → audit-4IPBMKWB.js} +3 -3
  15. package/dist/cli/chunks/base-OTGSN6IC.js +2 -0
  16. package/dist/cli/chunks/{better-sqlite3-TQBQGNC6.js → better-sqlite3-IKDKJ2IE.js} +2 -2
  17. package/dist/cli/chunks/{brain-handler-HY57CNAO.js → brain-handler-5NQUDH4W.js} +3 -3
  18. package/dist/cli/chunks/{branch-enumerator-THPMZPHQ.js → branch-enumerator-KSXELWRC.js} +2 -2
  19. package/dist/cli/chunks/{browser-O6JJOZCK.js → browser-6LACARWE.js} +2 -2
  20. package/dist/cli/chunks/browser-workflow-WLZGR6SB.js +2 -0
  21. package/dist/cli/chunks/{chunk-7724KXM2.js → chunk-22UKJGGN.js} +3 -3
  22. package/dist/cli/chunks/{chunk-3XACRXBY.js → chunk-27HE2BHC.js} +2 -2
  23. package/dist/cli/chunks/{chunk-3TF27MG5.js → chunk-2CKERSMB.js} +2 -2
  24. package/dist/cli/chunks/{chunk-TOJF3ZG4.js → chunk-2IIXCEMS.js} +2 -2
  25. package/dist/cli/chunks/{chunk-3FITMWWJ.js → chunk-2LUTPMBO.js} +2 -2
  26. package/dist/cli/chunks/{chunk-MB4UKUBV.js → chunk-2ZFLULL4.js} +2 -2
  27. package/dist/cli/chunks/{chunk-6NIGSY5L.js → chunk-337Z52QM.js} +2 -2
  28. package/dist/cli/chunks/{chunk-4T7XV5KQ.js → chunk-3CYNZFKH.js} +1 -1
  29. package/dist/cli/chunks/chunk-3HVFIITW.js +2 -0
  30. package/dist/cli/chunks/{chunk-2QLE6NDW.js → chunk-3J3RNJNX.js} +1 -1
  31. package/dist/cli/chunks/{chunk-E3QIQMMN.js → chunk-4ATQP3PR.js} +1 -1
  32. package/dist/cli/chunks/{chunk-EIEEST4T.js → chunk-4D4CWP72.js} +2 -2
  33. package/dist/cli/chunks/{chunk-WCM6WE7G.js → chunk-4HKAD25N.js} +3 -3
  34. package/dist/cli/chunks/{chunk-HEDGFKC5.js → chunk-4X3SWKBA.js} +2 -2
  35. package/dist/cli/chunks/{chunk-IQRPR4KB.js → chunk-5AFVEWMT.js} +2 -2
  36. package/dist/cli/chunks/{chunk-VCVRZD4Y.js → chunk-5C62XMJR.js} +3 -3
  37. package/dist/cli/chunks/{chunk-UDSB3XCG.js → chunk-5G4UFTV4.js} +2 -2
  38. package/dist/cli/chunks/{chunk-BNG4J3CE.js → chunk-5I7357KS.js} +2 -2
  39. package/dist/cli/chunks/{chunk-DRLSJJIC.js → chunk-5KA5TVPR.js} +2 -2
  40. package/dist/cli/chunks/{chunk-WZQADC5R.js → chunk-5PTAFGJT.js} +2 -2
  41. package/dist/cli/chunks/{chunk-M2TG7VDK.js → chunk-6BRQPHMZ.js} +1 -1
  42. package/dist/cli/chunks/{chunk-J35JWDJE.js → chunk-6KCSKGVY.js} +1 -1
  43. package/dist/cli/chunks/{chunk-QUZ745UQ.js → chunk-6LE362LZ.js} +2 -2
  44. package/dist/cli/chunks/{chunk-L752CNG3.js → chunk-6NBRMD25.js} +3 -3
  45. package/dist/cli/chunks/{chunk-56NSE3LJ.js → chunk-6RBTS3NF.js} +2 -2
  46. package/dist/cli/chunks/{chunk-E7OR6V3V.js → chunk-6YVMX2TC.js} +2 -2
  47. package/dist/cli/chunks/{chunk-WKI46WWN.js → chunk-73PBAWAF.js} +2 -2
  48. package/dist/cli/chunks/{chunk-HSDWPQQY.js → chunk-74YG72NQ.js} +3 -3
  49. package/dist/cli/chunks/{chunk-5PLBQZ5J.js → chunk-76P32JVU.js} +1 -1
  50. package/dist/cli/chunks/{chunk-FTYRPEJS.js → chunk-7ACCBHRB.js} +1 -1
  51. package/dist/cli/chunks/{chunk-O3ERGUXH.js → chunk-7BLZHFKD.js} +1 -1
  52. package/dist/cli/chunks/{chunk-BM3EJLMV.js → chunk-7O45RQHF.js} +2 -2
  53. package/dist/cli/chunks/{chunk-JSSU4RIK.js → chunk-7XB3FCKM.js} +2 -2
  54. package/dist/cli/chunks/{chunk-7TH4PJSU.js → chunk-AHMWD6JG.js} +2 -2
  55. package/dist/cli/chunks/{chunk-X7CUI7KH.js → chunk-AJPROCDW.js} +2 -2
  56. package/dist/cli/chunks/{chunk-TW6Z6W4X.js → chunk-AKZO6GGG.js} +13 -13
  57. package/dist/cli/chunks/{chunk-L7PC675Y.js → chunk-AOKKUB5F.js} +1 -1
  58. package/dist/cli/chunks/{chunk-UNYTHZDZ.js → chunk-AP2W7Z3A.js} +1 -1
  59. package/dist/cli/chunks/{chunk-VG32EEUG.js → chunk-BBRROA3Z.js} +2 -2
  60. package/dist/cli/chunks/{chunk-2IJO3657.js → chunk-BDKEAGQ2.js} +2 -2
  61. package/dist/cli/chunks/{chunk-YEFTK4HD.js → chunk-BFQTLF5X.js} +2 -2
  62. package/dist/cli/chunks/{chunk-JB7R77SH.js → chunk-BLL2XU7A.js} +2 -2
  63. package/dist/cli/chunks/{chunk-UMHFTQTR.js → chunk-BP5T3OEV.js} +2 -2
  64. package/dist/cli/chunks/{chunk-C3OIBFAA.js → chunk-BQ47GQPK.js} +2 -2
  65. package/dist/cli/chunks/{chunk-IDBA5GK2.js → chunk-BU4UQR36.js} +2 -2
  66. package/dist/cli/chunks/{chunk-U6IOQKCT.js → chunk-BZULJMGH.js} +2 -2
  67. package/dist/cli/chunks/{chunk-X6NJOT3V.js → chunk-C4KLXFJP.js} +1 -1
  68. package/dist/cli/chunks/{chunk-KJ5A54ZH.js → chunk-C4RTAVC6.js} +2 -2
  69. package/dist/cli/chunks/{chunk-ZUE524JL.js → chunk-C5CXL3JP.js} +2 -2
  70. package/dist/cli/chunks/{chunk-YE54T2NQ.js → chunk-CAOUV5GZ.js} +2 -2
  71. package/dist/cli/chunks/{chunk-7MISCSL5.js → chunk-CBK5CT6T.js} +2 -2
  72. package/dist/cli/chunks/{chunk-Z54G2YOL.js → chunk-DEKR3CTS.js} +2 -2
  73. package/dist/cli/chunks/{chunk-57DRT6UA.js → chunk-DKX4GNRU.js} +2 -2
  74. package/dist/cli/chunks/{chunk-HTVGHHX2.js → chunk-DUKE27HC.js} +2 -2
  75. package/dist/cli/chunks/{chunk-O756AOUX.js → chunk-DURD37JZ.js} +2 -2
  76. package/dist/cli/chunks/{chunk-OGEIHS76.js → chunk-E3MRDIZF.js} +1 -1
  77. package/dist/cli/chunks/{chunk-N736GLWZ.js → chunk-E56PVVWC.js} +2 -2
  78. package/dist/cli/chunks/{chunk-GY4P7KAI.js → chunk-E5G4WZ2T.js} +1 -1
  79. package/dist/cli/chunks/{chunk-JI67T6Q2.js → chunk-EBTNMQSS.js} +2 -2
  80. package/dist/cli/chunks/{chunk-P2TPH3TC.js → chunk-EFUJDMNC.js} +2 -2
  81. package/dist/cli/chunks/{chunk-7T6L3LFN.js → chunk-EKP2SC77.js} +2 -2
  82. package/dist/cli/chunks/{chunk-WRC3HLUY.js → chunk-EMSZVUYA.js} +3 -3
  83. package/dist/cli/chunks/{chunk-NZQYJCO6.js → chunk-ERN56H6S.js} +1 -1
  84. package/dist/cli/chunks/{chunk-INGXD5IX.js → chunk-FOOW4JVS.js} +2 -2
  85. package/dist/cli/chunks/{chunk-PGN4TARY.js → chunk-FTRSS64D.js} +2 -2
  86. package/dist/cli/chunks/{chunk-LTGQJYYO.js → chunk-G242G224.js} +2 -2
  87. package/dist/cli/chunks/{chunk-ARRBXCII.js → chunk-G6RDCCFV.js} +2 -2
  88. package/dist/cli/chunks/{chunk-7SQTLUEN.js → chunk-GCHYOPRZ.js} +2 -2
  89. package/dist/cli/chunks/{chunk-G7HGUQAE.js → chunk-GGQGCT4Y.js} +2 -2
  90. package/dist/cli/chunks/{chunk-AYLEH2UF.js → chunk-GKSMRBHU.js} +1 -1
  91. package/dist/cli/chunks/{chunk-JO26SG47.js → chunk-GQABPCQE.js} +2 -2
  92. package/dist/cli/chunks/{chunk-O2AAYJUV.js → chunk-GV2QE5TO.js} +1 -1
  93. package/dist/cli/chunks/{chunk-K2SMP4OD.js → chunk-H5DER3JY.js} +1 -1
  94. package/dist/cli/chunks/{chunk-HAYKLXCT.js → chunk-HH4ED4F7.js} +11 -11
  95. package/dist/cli/chunks/{chunk-L5VSLPMW.js → chunk-HL2ANKN3.js} +2 -2
  96. package/dist/cli/chunks/{chunk-USAKCGHC.js → chunk-HTZSRMHW.js} +2 -2
  97. package/dist/cli/chunks/{chunk-MR2OPUSA.js → chunk-IXL5ZHWJ.js} +1 -1
  98. package/dist/cli/chunks/{chunk-6P4Q4RTC.js → chunk-J3FP5UGL.js} +1 -1
  99. package/dist/cli/chunks/{chunk-6OI5SK7M.js → chunk-JCQGJGGZ.js} +1 -1
  100. package/dist/cli/chunks/{chunk-NKOLILT7.js → chunk-JCZCJE6X.js} +2 -2
  101. package/dist/cli/chunks/{chunk-VGZOPQQY.js → chunk-JKJOB65O.js} +1 -1
  102. package/dist/cli/chunks/{chunk-43XHGWYH.js → chunk-JUDUBQHA.js} +2 -2
  103. package/dist/cli/chunks/{chunk-NHEG2DLN.js → chunk-JW74KRBC.js} +2 -2
  104. package/dist/cli/chunks/{chunk-ZJGFQK27.js → chunk-K3WZICFA.js} +1 -1
  105. package/dist/cli/chunks/{chunk-5Y7UFHJD.js → chunk-K3XBQC3R.js} +1 -1
  106. package/dist/cli/chunks/{chunk-JJHLGGPP.js → chunk-KCQNFBBR.js} +1 -1
  107. package/dist/cli/chunks/{chunk-U4TML2VD.js → chunk-KJBPB7P5.js} +2 -2
  108. package/dist/cli/chunks/{chunk-6O63ZTVX.js → chunk-KLTMOXIK.js} +2 -2
  109. package/dist/cli/chunks/{chunk-XMCSKYDE.js → chunk-L32JNNKL.js} +1 -1
  110. package/dist/cli/chunks/{chunk-UPWLMIDY.js → chunk-LB2LGEDP.js} +2 -2
  111. package/dist/cli/chunks/{chunk-4RPBODN5.js → chunk-LHMQIZ6B.js} +2 -2
  112. package/dist/cli/chunks/{chunk-RE6JTSDM.js → chunk-LJMYRTJ7.js} +1 -1
  113. package/dist/cli/chunks/{chunk-57FX3GP6.js → chunk-LNX74WHQ.js} +1 -1
  114. package/dist/cli/chunks/{chunk-52KOPIMI.js → chunk-LTQVUAPH.js} +2 -2
  115. package/dist/cli/chunks/{chunk-H3C5FJRH.js → chunk-LVABQNRF.js} +2 -2
  116. package/dist/cli/chunks/{chunk-V3MGY76S.js → chunk-LYJHUNBK.js} +2 -2
  117. package/dist/cli/chunks/{chunk-QNQE3EOH.js → chunk-M4CJCPCQ.js} +2 -2
  118. package/dist/cli/chunks/{chunk-D5GB5PUU.js → chunk-M4WMSCAE.js} +1 -1
  119. package/dist/cli/chunks/{chunk-TWOV3I3A.js → chunk-MIA447GY.js} +1 -1
  120. package/dist/cli/chunks/{chunk-CAZM63TP.js → chunk-MPFPWJTH.js} +2 -2
  121. package/dist/cli/chunks/{chunk-BPDAQB3F.js → chunk-MV55NXTD.js} +2 -2
  122. package/dist/cli/chunks/{chunk-EC65UZ77.js → chunk-NQS3BWS6.js} +1 -1
  123. package/dist/cli/chunks/{chunk-DSQESXL4.js → chunk-NWIIYHT6.js} +2 -2
  124. package/dist/cli/chunks/{chunk-4WLIOPHX.js → chunk-O6EWL5DQ.js} +2 -2
  125. package/dist/cli/chunks/{chunk-QP2HLKTS.js → chunk-OBDONJQM.js} +2 -2
  126. package/dist/cli/chunks/{chunk-BQJ7CV53.js → chunk-OLZH5LRT.js} +12 -12
  127. package/dist/cli/chunks/{chunk-H4LYXLAT.js → chunk-OQG3UQQ7.js} +1 -1
  128. package/dist/cli/chunks/{chunk-E2JLAW3U.js → chunk-PFQCV6YS.js} +3 -3
  129. package/dist/cli/chunks/{chunk-JAOCHPYX.js → chunk-PS6UMZVK.js} +2 -2
  130. package/dist/cli/chunks/{chunk-K7GFYFBO.js → chunk-PXATBHWN.js} +2 -2
  131. package/dist/cli/chunks/{chunk-CPPYZYXC.js → chunk-PYPS65P7.js} +2 -2
  132. package/dist/cli/chunks/{chunk-HHBF2BZC.js → chunk-Q6I4SIUU.js} +4 -4
  133. package/dist/cli/chunks/{chunk-QP6GL3O5.js → chunk-QFGYH6HD.js} +1 -1
  134. package/dist/cli/chunks/{chunk-BBYJBZHG.js → chunk-QGBGSQ2E.js} +2 -2
  135. package/dist/cli/chunks/{chunk-XTZGAG6P.js → chunk-QRKTBSZT.js} +2 -2
  136. package/dist/cli/chunks/{chunk-FJOIBZUB.js → chunk-R6LHJ7ME.js} +2 -2
  137. package/dist/cli/chunks/{chunk-Z2S7DNFP.js → chunk-RBKUU7WF.js} +2 -2
  138. package/dist/cli/chunks/{chunk-PWQWKYBG.js → chunk-RDMRY7CT.js} +1 -1
  139. package/dist/cli/chunks/{chunk-65EE2EST.js → chunk-RIRZHOS2.js} +2 -2
  140. package/dist/cli/chunks/{chunk-D3ZZ2NLL.js → chunk-SHRI7TKJ.js} +2 -2
  141. package/dist/cli/chunks/{chunk-CIINJHOX.js → chunk-SJCKCSN3.js} +1 -1
  142. package/dist/cli/chunks/{chunk-X6Q2N5S5.js → chunk-SON6ZRH3.js} +2 -2
  143. package/dist/cli/chunks/{chunk-2UZBLC5H.js → chunk-SZAZQZWI.js} +2 -2
  144. package/dist/cli/chunks/{chunk-2W5MQDHM.js → chunk-T4GE7MPI.js} +2 -2
  145. package/dist/cli/chunks/{chunk-JK6PMLQQ.js → chunk-T66PPF4D.js} +2 -2
  146. package/dist/cli/chunks/{chunk-OLUOVNUF.js → chunk-T67R2MUN.js} +2 -2
  147. package/dist/cli/chunks/{chunk-O32BFQV4.js → chunk-TDQWTSBS.js} +2 -2
  148. package/dist/cli/chunks/{chunk-YGOSSVY5.js → chunk-TODNOP7C.js} +2 -2
  149. package/dist/cli/chunks/{chunk-WBC6WB32.js → chunk-TX2CHQD7.js} +2 -2
  150. package/dist/cli/chunks/{chunk-FHPNWHY7.js → chunk-TZIHDJZD.js} +2 -2
  151. package/dist/cli/chunks/{chunk-WUGXXNK4.js → chunk-U62OUXBF.js} +1 -1
  152. package/dist/cli/chunks/{chunk-A2T56XVL.js → chunk-UAQZI6N4.js} +2 -2
  153. package/dist/cli/chunks/{chunk-MKYOE7NE.js → chunk-UE2J6MA5.js} +1 -1
  154. package/dist/cli/chunks/{chunk-K7RT6ITZ.js → chunk-UGYM4U44.js} +1 -1
  155. package/dist/cli/chunks/{chunk-7QUSNBAA.js → chunk-UJABDXST.js} +2 -2
  156. package/dist/cli/chunks/{chunk-VJBJRFUO.js → chunk-UORB2QDU.js} +9 -9
  157. package/dist/cli/chunks/{chunk-O5CEL447.js → chunk-UQPA33UK.js} +2 -2
  158. package/dist/cli/chunks/{chunk-7MUO4DEH.js → chunk-UUBIQR6A.js} +3 -3
  159. package/dist/cli/chunks/{chunk-WCPSR4MJ.js → chunk-UXIY4IAI.js} +2 -2
  160. package/dist/cli/chunks/{chunk-UFP7SN5V.js → chunk-VCXI4XC4.js} +2 -2
  161. package/dist/cli/chunks/{chunk-OCN53CCK.js → chunk-VMAM46HQ.js} +2 -2
  162. package/dist/cli/chunks/{chunk-MQXWG55U.js → chunk-VY4U6DPO.js} +3 -3
  163. package/dist/cli/chunks/{chunk-M5JEA6ZY.js → chunk-W27AJ5B4.js} +2 -2
  164. package/dist/cli/chunks/{chunk-YGC5QKQ4.js → chunk-W5ZJG2OU.js} +2 -2
  165. package/dist/cli/chunks/{chunk-AJVLVF7V.js → chunk-W62OOK7A.js} +2 -2
  166. package/dist/cli/chunks/{chunk-WM2QRIRD.js → chunk-WNTA4YKE.js} +2 -2
  167. package/dist/cli/chunks/{chunk-7Y3LXH57.js → chunk-WUOOX7UG.js} +2 -2
  168. package/dist/cli/chunks/{chunk-PCQZIAXB.js → chunk-WVXJ2QIG.js} +2 -2
  169. package/dist/cli/chunks/{chunk-PNRPVQGI.js → chunk-X33CWRDF.js} +2 -2
  170. package/dist/cli/chunks/{chunk-TSP6SU5V.js → chunk-XG4F4XH4.js} +2 -2
  171. package/dist/cli/chunks/{chunk-V6SE2ZU2.js → chunk-XH4JMX5O.js} +1 -1
  172. package/dist/cli/chunks/{chunk-R5RRWLRI.js → chunk-XHHWABJV.js} +2 -2
  173. package/dist/cli/chunks/{chunk-DLTB5KCR.js → chunk-XHLYGXYE.js} +2 -2
  174. package/dist/cli/chunks/{chunk-NPCXGX7N.js → chunk-XIVVTYM2.js} +2 -2
  175. package/dist/cli/chunks/{chunk-E7QTWGPI.js → chunk-XM6ZVFM5.js} +10 -10
  176. package/dist/cli/chunks/{chunk-XN3KCKAM.js → chunk-XWIAZG3C.js} +2 -2
  177. package/dist/cli/chunks/{chunk-J6ASX536.js → chunk-Y2OX6KGN.js} +2 -2
  178. package/dist/cli/chunks/{chunk-HV43NX4A.js → chunk-YUS6TWAL.js} +2 -2
  179. package/dist/cli/chunks/{chunk-2HPNGK7A.js → chunk-ZIPAB5J6.js} +2 -2
  180. package/dist/cli/chunks/{chunk-XSPMLJCQ.js → chunk-ZSOMUTNL.js} +1 -1
  181. package/dist/cli/chunks/{chunk-IRPNEXOU.js → chunk-ZWBGYJ7K.js} +2 -2
  182. package/dist/cli/chunks/{chunk-5Z4MO2F3.js → chunk-ZYJB6FML.js} +1 -1
  183. package/dist/cli/chunks/{ci-UMA2SMNW.js → ci-UCUJOSBW.js} +2 -2
  184. package/dist/cli/chunks/{ci-config-UQSILJFQ.js → ci-config-2XILD3XG.js} +2 -2
  185. package/dist/cli/chunks/{ci-output-U6YZLLKH.js → ci-output-BL6KWOHW.js} +2 -2
  186. package/dist/cli/chunks/{circuit-breaker-ATYQP6X2.js → circuit-breaker-5XLIOXE5.js} +2 -2
  187. package/dist/cli/chunks/{claude-flow-setup-6YHFD7AN.js → claude-flow-setup-4IMP6ACS.js} +2 -2
  188. package/dist/cli/chunks/client-KKRNPX4F.js +2 -0
  189. package/dist/cli/chunks/{cline-installer-EPE7IOZE.js → cline-installer-RYLHCDK7.js} +2 -2
  190. package/dist/cli/chunks/{code-NUEJ4XYO.js → code-WY3GJXHX.js} +3 -3
  191. package/dist/cli/chunks/{code-index-extractor-D4DBT6OL.js → code-index-extractor-Y4MZBZCW.js} +2 -2
  192. package/dist/cli/chunks/{codex-installer-633SM4LR.js → codex-installer-SCJ3T3DX.js} +4 -4
  193. package/dist/cli/chunks/{completions-WUKVIW3L.js → completions-CN2DXQFU.js} +2 -2
  194. package/dist/cli/chunks/{complexity-analyzer-F73ACR5H.js → complexity-analyzer-7MDPPIBH.js} +2 -2
  195. package/dist/cli/chunks/{continuedev-installer-QH42TKMS.js → continuedev-installer-GCEJRK34.js} +2 -2
  196. package/dist/cli/chunks/{copilot-installer-Y3XC7BTT.js → copilot-installer-BHPDSELY.js} +2 -2
  197. package/dist/cli/chunks/core-handlers-47MPMED7.js +2 -0
  198. package/dist/cli/chunks/{cost-tracker-57QPV7E3.js → cost-tracker-VO5MFWR6.js} +2 -2
  199. package/dist/cli/chunks/{coverage-IBCHMBCR.js → coverage-LYFQYNH6.js} +3 -3
  200. package/dist/cli/chunks/cross-domain-router-U6MBFHEC.js +2 -0
  201. package/dist/cli/chunks/{cursor-installer-F4UYQHIN.js → cursor-installer-KP4HA7TV.js} +2 -2
  202. package/dist/cli/chunks/{daemon-XR4Q6YZF.js → daemon-7RC7TS57.js} +3 -3
  203. package/dist/cli/chunks/{daemon-BYYPIJ7G.js → daemon-AXLVPKVO.js} +4 -4
  204. package/dist/cli/chunks/{dag-attention-scheduler-ZR5ZD3TW.js → dag-attention-scheduler-NKA44RSR.js} +2 -2
  205. package/dist/cli/chunks/{detect-GEGYURLL.js → detect-CMYAJWYF.js} +2 -2
  206. package/dist/cli/chunks/{dist-node-JU3KT2JO.js → dist-node-EN3PYEGW.js} +2 -2
  207. package/dist/cli/chunks/{domain-handler-7QI3FJGE.js → domain-handler-EXSZCX7A.js} +2 -2
  208. package/dist/cli/chunks/{domain-plugins-O2YRM2PD.js → domain-plugins-HCQFSNL7.js} +2 -2
  209. package/dist/cli/chunks/{domain-transfer-7J3S2OS6.js → domain-transfer-3LGSNTPO.js} +2 -2
  210. package/dist/cli/chunks/dream-76L6EEN7.js +2 -0
  211. package/dist/cli/chunks/{embed-and-insert-pattern-URES5Q6J.js → embed-and-insert-pattern-B6MNHICW.js} +2 -2
  212. package/dist/cli/chunks/{eval-RVMCIUOR.js → eval-OQELIWJK.js} +2 -2
  213. package/dist/cli/chunks/{experience-capture-middleware-SYJQSBKE.js → experience-capture-middleware-SUFILYPW.js} +3 -3
  214. package/dist/cli/chunks/{fast-paths-QUKPKWKZ.js → fast-paths-UV4NDEWM.js} +2 -2
  215. package/dist/cli/chunks/{feature-flags-K7JXNKJI.js → feature-flags-CKTYX67J.js} +2 -2
  216. package/dist/cli/chunks/{feature-flags-5JCSKL2P.js → feature-flags-H7H33B6C.js} +2 -2
  217. package/dist/cli/chunks/file-discovery-VSFKZ3LJ.js +2 -0
  218. package/dist/cli/chunks/{fleet-II4Q6HXK.js → fleet-ZJBCAKRG.js} +3 -3
  219. package/dist/cli/chunks/{gnn-wrapper-M7VO2EMS.js → gnn-wrapper-RUE2QZRG.js} +2 -2
  220. package/dist/cli/chunks/{heartbeat-handler-ND5CY26N.js → heartbeat-handler-XRV327M7.js} +4 -4
  221. package/dist/cli/chunks/heartbeat-scheduler-NIK3KKEH.js +2 -0
  222. package/dist/cli/chunks/hnsw-adapter-WJG7LUJJ.js +2 -0
  223. package/dist/cli/chunks/hnsw-index-D6PRI5HC.js +2 -0
  224. package/dist/cli/chunks/{hnsw-legacy-bridge-N3AUUUU7.js → hnsw-legacy-bridge-UJID6ZZ4.js} +2 -2
  225. package/dist/cli/chunks/{hnswlib-node-NZY3E5EN.js → hnswlib-node-WS43R4AX.js} +2 -2
  226. package/dist/cli/chunks/{hooks-QVJDTII5.js → hooks-YZNJKXAJ.js} +10 -10
  227. package/dist/cli/chunks/hybrid-backend-RIUR3I7F.js +2 -0
  228. package/dist/cli/chunks/{hypergraph-engine-ZRY6MTDV.js → hypergraph-engine-XQJSIMTS.js} +2 -2
  229. package/dist/cli/chunks/{hypergraph-handler-56DO4XZQ.js → hypergraph-handler-ZD2NYXMR.js} +3 -3
  230. package/dist/cli/chunks/impact-analyzer-C36YYTJ5.js +2 -0
  231. package/dist/cli/chunks/{init-guard-DTF4EVUY.js → init-guard-DSRUAVRT.js} +2 -2
  232. package/dist/cli/chunks/{init-handler-M6CNQHMX.js → init-handler-RJU5QMAP.js} +6 -6
  233. package/dist/cli/chunks/init-wizard-JCKNGIGT.js +2 -0
  234. package/dist/cli/chunks/kernel-F7ILJTYD.js +2 -0
  235. package/dist/cli/chunks/{kilocode-installer-IJN7XKBH.js → kilocode-installer-BCPOCVMC.js} +2 -2
  236. package/dist/cli/chunks/{kiro-installer-UKKPGPDC.js → kiro-installer-GFCWCB2S.js} +2 -2
  237. package/dist/cli/chunks/knowledge-graph-VTXDBHB2.js +2 -0
  238. package/dist/cli/chunks/{learning-W2HETWQ4.js → learning-FZTD72CF.js} +3 -3
  239. package/dist/cli/chunks/{llm-router-Y546K4VX.js → llm-router-GJVKGRJL.js} +4 -4
  240. package/dist/cli/chunks/llm-router-service-TNOWQINA.js +2 -0
  241. package/dist/cli/chunks/{load-MKAB2AXE.js → load-YKTPOYBE.js} +2 -2
  242. package/dist/cli/chunks/load-test-FPVBK2EV.js +2 -0
  243. package/dist/cli/chunks/{mcp-AZKUS6K3.js → mcp-LT6R2IKS.js} +2 -2
  244. package/dist/cli/chunks/{memory-ZDOQN2KU.js → memory-4HKKOLRY.js} +5 -5
  245. package/dist/cli/chunks/memory-backend-2QE7O67A.js +2 -0
  246. package/dist/cli/chunks/{memory-handlers-3SQVY7FE.js → memory-handlers-X4CMVBXB.js} +2 -2
  247. package/dist/cli/chunks/{multi-model-executor-WWVXDHG4.js → multi-model-executor-2YPM2WTK.js} +2 -2
  248. package/dist/cli/chunks/{opencode-installer-YUJNXXWS.js → opencode-installer-WBAJMH5K.js} +2 -2
  249. package/dist/cli/chunks/{orchestrator-Z6PWPLRE.js → orchestrator-5W5WVMVJ.js} +17 -17
  250. package/dist/cli/chunks/pattern-null-store-UI35ORHW.js +2 -0
  251. package/dist/cli/chunks/{pattern-usage-recorder-TPWPX32U.js → pattern-usage-recorder-GXRMNPAZ.js} +2 -2
  252. package/dist/cli/chunks/{pipeline-4BBGTE4M.js → pipeline-2NA4DRDA.js} +2 -2
  253. package/dist/cli/chunks/{platform-5GSHXCV5.js → platform-BGERNQ5V.js} +2 -2
  254. package/dist/cli/chunks/{plugin-OFDVF5HS.js → plugin-L4EPVENR.js} +2 -2
  255. package/dist/cli/chunks/{prime-radiant-advanced-wasm-NC6MUYGJ.js → prime-radiant-advanced-wasm-RTQRTPTM.js} +2 -2
  256. package/dist/cli/chunks/project-root-S7WDFTMU.js +2 -0
  257. package/dist/cli/chunks/protocol-executor-OPANXQVB.js +2 -0
  258. package/dist/cli/chunks/{protocol-handler-MPOAAEPA.js → protocol-handler-SYQXM6JK.js} +2 -2
  259. package/dist/cli/chunks/{prove-CDKMAIVM.js → prove-5O7GPJCU.js} +2 -2
  260. package/dist/cli/chunks/qe-reasoning-bank-3OTF4DYQ.js +2 -0
  261. package/dist/cli/chunks/{quality-ZH4F7R7R.js → quality-KIIDHGNF.js} +2 -2
  262. package/dist/cli/chunks/{quality-gate-IDRMW6OE.js → quality-gate-H65VECD3.js} +3 -3
  263. package/dist/cli/chunks/queen-coordinator-WTYH4TAN.js +2 -0
  264. package/dist/cli/chunks/{real-embeddings-I2UVNNB3.js → real-embeddings-DYIOLKQ3.js} +2 -2
  265. package/dist/cli/chunks/{ref-validation-Z5GCGVXK.js → ref-validation-CSBJOMZM.js} +2 -2
  266. package/dist/cli/chunks/{roocode-installer-IZ2S7PH2.js → roocode-installer-G7OVYXEN.js} +2 -2
  267. package/dist/cli/chunks/router-DBBW4NC2.js +2 -0
  268. package/dist/cli/chunks/routing-feedback-W35QHCL4.js +2 -0
  269. package/dist/cli/chunks/{routing-handler-NAX35VUW.js → routing-handler-ZNZPPI5Y.js} +2 -2
  270. package/dist/cli/chunks/{ruvector-commands-5YW2SOFF.js → ruvector-commands-C6IG3OY3.js} +2 -2
  271. package/dist/cli/chunks/rvf-dual-writer-X3NSL25Z.js +2 -0
  272. package/dist/cli/chunks/rvf-migration-adapter-TZR7GDOK.js +2 -0
  273. package/dist/cli/chunks/{rvf-migration-coordinator-VUIZHTVG.js → rvf-migration-coordinator-4ATTHGHD.js} +2 -2
  274. package/dist/cli/chunks/rvf-native-adapter-HD25ZYV5.js +2 -0
  275. package/dist/cli/chunks/{rvf-store-integrity-IPGCAT6C.js → rvf-store-integrity-3G6LFLT3.js} +2 -2
  276. package/dist/cli/chunks/safe-db-ZS2QKANY.js +2 -0
  277. package/dist/cli/chunks/schedule-ZH6VNA32.js +2 -0
  278. package/dist/cli/chunks/scheduler-T6CD74B6.js +2 -0
  279. package/dist/cli/chunks/{security-3IH4BO5Z.js → security-A3IMVLFM.js} +3 -3
  280. package/dist/cli/chunks/{shared-rvf-adapter-ABY7PAY2.js → shared-rvf-adapter-VHWQ6US5.js} +2 -2
  281. package/dist/cli/chunks/{shared-rvf-dual-writer-6KENLN2W.js → shared-rvf-dual-writer-JB3QS7IG.js} +2 -2
  282. package/dist/cli/chunks/sqlite-persistence-47WU5EKZ.js +2 -0
  283. package/dist/cli/chunks/{standalone-memory-RLFAUGOW.js → standalone-memory-DDNXCSBD.js} +2 -2
  284. package/dist/cli/chunks/{status-handler-FCOZBPE5.js → status-handler-2HK7XPEK.js} +2 -2
  285. package/dist/cli/chunks/{structural-health-4RDA5UUM.js → structural-health-DSJVLEPV.js} +2 -2
  286. package/dist/cli/chunks/{sync-54LUAUTK.js → sync-3MUV6S5E.js} +2 -2
  287. package/dist/cli/chunks/{sync-KGEEXXCC.js → sync-NTUR53PI.js} +2 -2
  288. package/dist/cli/chunks/{task-handler-K3OXHYKU.js → task-handler-74MZN2EO.js} +2 -2
  289. package/dist/cli/chunks/{task-handlers-6H7L2UT4.js → task-handlers-VJR6EHRZ.js} +3 -3
  290. package/dist/cli/chunks/{test-S7IG6EIX.js → test-O6FK3FVF.js} +4 -4
  291. package/dist/cli/chunks/test-runner-process-2NPW3UDQ.js +2 -0
  292. package/dist/cli/chunks/{test-scheduling-7XYXI4L2.js → test-scheduling-Q6QEEOS6.js} +3 -3
  293. package/dist/cli/chunks/{token-bootstrap-3QMABE45.js → token-bootstrap-TTRCECLP.js} +2 -2
  294. package/dist/cli/chunks/{token-usage-Y2YTPOFE.js → token-usage-YEEFWSSI.js} +2 -2
  295. package/dist/cli/chunks/{transformers-UCJ3HHHC.js → transformers-BZCHJJJT.js} +2 -2
  296. package/dist/cli/chunks/tree-sitter-wasm-parser-RZAND65G.js +2 -0
  297. package/dist/cli/chunks/{types-6CMFPETH.js → types-4AOKZYOX.js} +2 -2
  298. package/dist/cli/chunks/unified-memory-FZ5K2C7W.js +2 -0
  299. package/dist/cli/chunks/unified-memory-hnsw-VREWX56M.js +2 -0
  300. package/dist/cli/chunks/unified-persistence-YZGMKX6B.js +2 -0
  301. package/dist/cli/chunks/{upgrade-K25DN6WU.js → upgrade-2MWW6BT2.js} +2 -2
  302. package/dist/cli/chunks/{validate-T4V3TBY3.js → validate-PAEV3GT5.js} +2 -2
  303. package/dist/cli/chunks/{validate-swarm-XSRC576T.js → validate-swarm-ZIXACK5K.js} +2 -2
  304. package/dist/cli/chunks/visual-security-GXGSFBVA.js +2 -0
  305. package/dist/cli/chunks/{web-tree-sitter-YOZXHRTN.js → web-tree-sitter-VLTXZFAB.js} +2 -2
  306. package/dist/cli/chunks/{windsurf-installer-ITPU2IYL.js → windsurf-installer-VELMLOZF.js} +2 -2
  307. package/dist/cli/chunks/witness-chain-MRJKVCOW.js +2 -0
  308. package/dist/cli/chunks/witness-chain-WWHJKITG.js +2 -0
  309. package/dist/cli/chunks/{witness-chain-repair-YUG7E3UX.js → witness-chain-repair-5SAXPETG.js} +2 -2
  310. package/dist/cli/chunks/{witness-chain-verifier-DTDSVKOG.js → witness-chain-verifier-MIDWD4JS.js} +2 -2
  311. package/dist/cli/chunks/{witness-key-manager-EWACWGAW.js → witness-key-manager-OSVCWOB2.js} +2 -2
  312. package/dist/cli/chunks/{workflow-ZIQ4FV42.js → workflow-MK7A7QCX.js} +4 -4
  313. package/dist/cli/chunks/workflow-orchestrator-SG7DV72E.js +2 -0
  314. package/dist/cli/chunks/{wrappers-PW2O27LL.js → wrappers-5QFMCKXL.js} +2 -2
  315. package/dist/init/init-wizard-hooks.d.ts +1 -1
  316. package/dist/init/init-wizard-hooks.js +7 -8
  317. package/dist/init/phases/08-mcp.js +9 -0
  318. package/dist/init/settings-merge.d.ts +13 -0
  319. package/dist/init/settings-merge.js +49 -2
  320. package/dist/integrations/agent-booster-wasm/agent_booster_wasm.js +849 -0
  321. package/dist/integrations/agent-booster-wasm/agent_booster_wasm_bg.wasm +0 -0
  322. package/dist/integrations/agent-booster-wasm/index.d.ts +8 -0
  323. package/dist/integrations/agent-booster-wasm/index.js +25 -2
  324. package/dist/integrations/agent-booster-wasm/package.json +16 -0
  325. package/dist/learning/dream/dream-engine.d.ts +3 -2
  326. package/dist/learning/dream/dream-engine.js +42 -24
  327. package/dist/learning/dream/dream-lock-retry.d.ts +38 -0
  328. package/dist/learning/dream/dream-lock-retry.js +66 -0
  329. package/dist/learning/dream/speculative-dreamer.js +1 -1
  330. package/dist/mcp/bundle.js +419 -419
  331. package/package.json +4 -2
  332. package/dist/cli/chunks/adapter-23KA2YW7.js +0 -2
  333. package/dist/cli/chunks/agent-booster-wasm-2DLAEZK6.js +0 -2
  334. package/dist/cli/chunks/aqe-learning-engine-MUICAXW5.js +0 -2
  335. package/dist/cli/chunks/base-XPWGYDKD.js +0 -2
  336. package/dist/cli/chunks/browser-workflow-UMQVBVGK.js +0 -2
  337. package/dist/cli/chunks/chunk-YKQWIXUY.js +0 -2
  338. package/dist/cli/chunks/client-E43GWLQH.js +0 -2
  339. package/dist/cli/chunks/core-handlers-R5A3SQDY.js +0 -2
  340. package/dist/cli/chunks/cross-domain-router-LLYVPZF6.js +0 -2
  341. package/dist/cli/chunks/dream-6C4NURSE.js +0 -2
  342. package/dist/cli/chunks/file-discovery-J5IE5KP7.js +0 -2
  343. package/dist/cli/chunks/heartbeat-scheduler-FC5PBTMN.js +0 -2
  344. package/dist/cli/chunks/hnsw-adapter-47UIVOBG.js +0 -2
  345. package/dist/cli/chunks/hnsw-index-3AKVLOZQ.js +0 -2
  346. package/dist/cli/chunks/hybrid-backend-YAOSNX47.js +0 -2
  347. package/dist/cli/chunks/impact-analyzer-4FMJXM4M.js +0 -2
  348. package/dist/cli/chunks/init-wizard-RTLCRWDT.js +0 -2
  349. package/dist/cli/chunks/kernel-2OWIGGGT.js +0 -2
  350. package/dist/cli/chunks/knowledge-graph-25XXKDJN.js +0 -2
  351. package/dist/cli/chunks/llm-router-service-G3EIN4UB.js +0 -2
  352. package/dist/cli/chunks/load-test-D6QYNIVT.js +0 -2
  353. package/dist/cli/chunks/memory-backend-LDFFZMEQ.js +0 -2
  354. package/dist/cli/chunks/pattern-null-store-KDVRM7PW.js +0 -2
  355. package/dist/cli/chunks/project-root-DDGBWDP6.js +0 -2
  356. package/dist/cli/chunks/protocol-executor-KBOLLCWA.js +0 -2
  357. package/dist/cli/chunks/qe-reasoning-bank-GRXBT7FC.js +0 -2
  358. package/dist/cli/chunks/queen-coordinator-L2QWMJ5Q.js +0 -2
  359. package/dist/cli/chunks/router-FT5WJPUH.js +0 -2
  360. package/dist/cli/chunks/routing-feedback-EO2MKOUX.js +0 -2
  361. package/dist/cli/chunks/rvf-dual-writer-WHBFQJVU.js +0 -2
  362. package/dist/cli/chunks/rvf-migration-adapter-YT3APF2I.js +0 -2
  363. package/dist/cli/chunks/rvf-native-adapter-37PUFKQD.js +0 -2
  364. package/dist/cli/chunks/safe-db-TDZKUOZJ.js +0 -2
  365. package/dist/cli/chunks/schedule-CRKTRY2A.js +0 -2
  366. package/dist/cli/chunks/scheduler-6ZBDVQWN.js +0 -2
  367. package/dist/cli/chunks/sqlite-persistence-FFJQAIKW.js +0 -2
  368. package/dist/cli/chunks/test-runner-process-OTQDAJLN.js +0 -2
  369. package/dist/cli/chunks/tree-sitter-wasm-parser-D6JTTHTP.js +0 -2
  370. package/dist/cli/chunks/unified-memory-QARWQKJ2.js +0 -2
  371. package/dist/cli/chunks/unified-memory-hnsw-LHY3DXCP.js +0 -2
  372. package/dist/cli/chunks/unified-persistence-WEYYGLHM.js +0 -2
  373. package/dist/cli/chunks/visual-security-O4ALMCXQ.js +0 -2
  374. package/dist/cli/chunks/witness-chain-B3YW5NMS.js +0 -2
  375. package/dist/cli/chunks/witness-chain-PIYR72HJ.js +0 -2
  376. package/dist/cli/chunks/workflow-orchestrator-3ZN2BCGY.js +0 -2
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.14");process.exit(0)}
2
- import{b as Nm,c as _m}from"./chunk-DSQESXL4.js";import{a as Um}from"./chunk-7724KXM2.js";import{b as Wm,c as Ns,d as ip}from"./chunk-EIEEST4T.js";import{b as Xm,i as dl,k as rn,l as Gs,m as Zm,n as ep}from"./chunk-6O63ZTVX.js";import{a as Xr,b as ul,d as Ym}from"./chunk-XMCSKYDE.js";import{b as ap,d as br}from"./chunk-VGZOPQQY.js";import{a as vr,b as Us,c as an,d as op}from"./chunk-QP2HLKTS.js";import{a as fe,b as Ks,c as zt,d as cn}from"./chunk-K2SMP4OD.js";import{a as Jr,c as cl,d as qs,e as Yr,f as Km,h as ll,k as Jm}from"./chunk-2QLE6NDW.js";import{a as np}from"./chunk-57FX3GP6.js";import{a as ml,b as nn,c as Ot,d as yr,e as tp,f as Nt,g as Zr,h as js,i as rp}from"./chunk-ARRBXCII.js";import{a as Xc,c as qm,d as Gm,w as Fs}from"./chunk-BQJ7CV53.js";import{e as pp}from"./chunk-56NSE3LJ.js";import{a as N,b as Xi,c as We,d as Ue,e as Ls,f as $s,g as Os,h as $t,i as tl,j as Ct}from"./chunk-R5RRWLRI.js";import{a as rl,b as _s,c as il,d as en,e as nl,f as sl,g as tn,h as al,i as Vs}from"./chunk-YGC5QKQ4.js";import{a as ge}from"./chunk-WUGXXNK4.js";import{a as $m}from"./chunk-TWOV3I3A.js";import{b as hl}from"./chunk-EC65UZ77.js";import{a as on}from"./chunk-PNRPVQGI.js";import{a as E,b as Zi,c as St,d as pt,e as sn,f as sp,g as st,h as Vt}from"./chunk-WCM6WE7G.js";import{b as Hm,c as Re,d as Kr}from"./chunk-JI67T6Q2.js";import{a as Qr,b as jm,c as Lt,e as cp,h as lp}from"./chunk-WBC6WB32.js";import{c as Qs}from"./chunk-WZQADC5R.js";import{a as up,b as dp,e as mp}from"./chunk-OLUOVNUF.js";import{a as ti,b as gl}from"./chunk-WKI46WWN.js";import{a as Hs,b as Ws,c as _t,d as pl,e as ei}from"./chunk-43XHGWYH.js";import{e as Js,l as Ys,q as $b}from"./chunk-7MISCSL5.js";import{a as Zc}from"./chunk-J6ASX536.js";import{a as Qm,j as nt}from"./chunk-JB7R77SH.js";import{b as ol,d as zs}from"./chunk-A2T56XVL.js";import{a as el,b as Bs}from"./chunk-WM2QRIRD.js";import{c as Yi}from"./chunk-NHEG2DLN.js";import{a as zm,c as Bm}from"./chunk-X6NJOT3V.js";import{b as Vm}from"./chunk-YGOSSVY5.js";import{b as Am}from"./chunk-HTVGHHX2.js";import{a as Yc}from"./chunk-QUZ745UQ.js";import{a as Lm}from"./chunk-FJOIBZUB.js";import{a as it,b as Ki,c as Im,d as Fb,f as Mm,g as Lb}from"./chunk-7MUO4DEH.js";import{a as Ji,b as Fm}from"./chunk-7T6L3LFN.js";import{b as Dm,f as Mb}from"./chunk-VG32EEUG.js";import{g as xm,i as Pm,j as km,l as Is,m as ae,n as Pe}from"./chunk-52KOPIMI.js";import{c as Ms,d as Om}from"./chunk-USAKCGHC.js";import{r as hr,v as fr}from"./chunk-JK6PMLQQ.js";import{b as D,d as X}from"./chunk-XN3KCKAM.js";import{a as Be,b as pr,c as Ds,e as gr}from"./chunk-UDSB3XCG.js";import{a as z,b as Se,d as he}from"./chunk-AJVLVF7V.js";import{c as Qi,d as Kc,e as Jc}from"./chunk-7SQTLUEN.js";import{a as Ft,b as mr,c as Ps,d as ks}from"./chunk-BNG4J3CE.js";import{i as w}from"./chunk-QP6GL3O5.js";import{a as Ve,c as f,d as g}from"./chunk-RE6JTSDM.js";import{a as _}from"./chunk-YKQWIXUY.js";import{c as A}from"./chunk-C3OIBFAA.js";import{a as Ui,c as Uc,d as Qc}from"./chunk-IRPNEXOU.js";import{S as wt,b as ur,n as dr}from"./chunk-E7OR6V3V.js";import{c as Me,d as Ur}from"./chunk-2UZBLC5H.js";import{f as Ib}from"./chunk-2W5MQDHM.js";import{a as P,b as y,c as bt,e as k}from"./chunk-L5VSLPMW.js";import{a as Em,b as vt,c as j,d as Hr,e as Db,f as Wr}from"./chunk-V6SE2ZU2.js";var Tp={};Hr(Tp,{ALL_SUPPORTED_LANGUAGES:()=>Yb,ALL_TEST_FRAMEWORKS:()=>na,DEFAULT_FRAMEWORKS:()=>Al,FRAMEWORK_ALIASES:()=>El,FRAMEWORK_TO_LANGUAGE:()=>Jb,LANGUAGE_FILE_EXTENSIONS:()=>Rp,getLanguageFromExtension:()=>Bt,resolveFrameworkAlias:()=>sa});function sa(l){let t=l.toLowerCase().trim();return na.includes(t)?t:Object.hasOwn(El,t)?El[t]:void 0}function Bt(l){return Rp[l.startsWith(".")?l:`.${l}`]}var Al,El,Jb,Rp,na,Yb,ii=vt(()=>{"use strict";Al={typescript:"vitest",javascript:"jest",python:"pytest",java:"junit5",csharp:"xunit",go:"go-test",rust:"rust-test",swift:"swift-testing",kotlin:"kotlin-junit",dart:"flutter-test"},El={junit:"junit5","junit-5":"junit5","junit-4":"junit5",nunit:"nunit","x-unit":"xunit",xunit:"xunit",gotest:"go-test",go_test:"go-test",rusttest:"rust-test",rust_test:"rust-test",swift_testing:"swift-testing",swifttesting:"swift-testing",kotlin_junit:"kotlin-junit",kotlinjunit:"kotlin-junit",flutter_test:"flutter-test",fluttertest:"flutter-test",jest_rn:"jest-rn","jest-react-native":"jest-rn","react-native":"jest-rn"},Jb={jest:"javascript",vitest:"typescript",mocha:"javascript",pytest:"python","node-test":"javascript",junit5:"java",testng:"java",xunit:"csharp",nunit:"csharp","go-test":"go","rust-test":"rust","swift-testing":"swift",xctest:"swift","kotlin-junit":"kotlin","flutter-test":"dart","jest-rn":"javascript",playwright:"typescript",cypress:"javascript"},Rp={".ts":"typescript",".tsx":"typescript",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".java":"java",".cs":"csharp",".go":"go",".rs":"rust",".swift":"swift",".kt":"kotlin",".kts":"kotlin",".dart":"dart"},na=["jest","vitest","mocha","pytest","node-test","junit5","testng","xunit","nunit","go-test","rust-test","swift-testing","xctest","kotlin-junit","flutter-test","jest-rn","playwright","cypress"],Yb=["typescript","javascript","python","java","csharp","go","rust","swift","kotlin","dart"]});function Ll(l,t={}){let{additionalContext:e,sourceCode:r,includeEvidence:i=!0,includeRemediation:n=!0,maxLength:s=8e3}=t,a=[];a.push(`# Security Finding Verification Request
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.15");process.exit(0)}
2
+ import{b as Nm,c as _m}from"./chunk-NWIIYHT6.js";import{a as Um}from"./chunk-22UKJGGN.js";import{b as Wm,c as Ns,d as ip}from"./chunk-4D4CWP72.js";import{b as Xm,i as dl,k as rn,l as Gs,m as Zm,n as ep}from"./chunk-KLTMOXIK.js";import{a as Xr,b as ul,d as Ym}from"./chunk-L32JNNKL.js";import{b as ap,d as br}from"./chunk-JKJOB65O.js";import{a as vr,b as Us,c as an,d as op}from"./chunk-OBDONJQM.js";import{a as fe,b as Ks,c as zt,d as cn}from"./chunk-H5DER3JY.js";import{a as Jr,c as cl,d as qs,e as Yr,f as Km,h as ll,k as Jm}from"./chunk-3J3RNJNX.js";import{a as np}from"./chunk-LNX74WHQ.js";import{a as ml,b as nn,c as Ot,d as yr,e as tp,f as Nt,g as Zr,h as js,i as rp}from"./chunk-G6RDCCFV.js";import{a as Xc,c as qm,d as Gm,w as Fs}from"./chunk-OLZH5LRT.js";import{e as pp}from"./chunk-6RBTS3NF.js";import{a as N,b as Xi,c as We,d as Ue,e as Ls,f as $s,g as Os,h as $t,i as tl,j as Ct}from"./chunk-XHHWABJV.js";import{a as rl,b as _s,c as il,d as en,e as nl,f as sl,g as tn,h as al,i as Vs}from"./chunk-W5ZJG2OU.js";import{a as ge}from"./chunk-U62OUXBF.js";import{a as $m}from"./chunk-MIA447GY.js";import{b as hl}from"./chunk-NQS3BWS6.js";import{a as on}from"./chunk-X33CWRDF.js";import{a as E,b as Zi,c as St,d as pt,e as sn,f as sp,g as st,h as Vt}from"./chunk-4HKAD25N.js";import{b as Hm,c as Re,d as Kr}from"./chunk-EBTNMQSS.js";import{a as Qr,b as jm,c as Lt,e as cp,h as lp}from"./chunk-TX2CHQD7.js";import{c as Qs}from"./chunk-5PTAFGJT.js";import{a as up,b as dp,e as mp}from"./chunk-T67R2MUN.js";import{a as ti,b as gl}from"./chunk-73PBAWAF.js";import{a as Hs,b as Ws,c as _t,d as pl,e as ei}from"./chunk-JUDUBQHA.js";import{e as Js,l as Ys,q as $b}from"./chunk-CBK5CT6T.js";import{a as Zc}from"./chunk-Y2OX6KGN.js";import{a as Qm,j as nt}from"./chunk-BLL2XU7A.js";import{b as ol,d as zs}from"./chunk-UAQZI6N4.js";import{a as el,b as Bs}from"./chunk-WNTA4YKE.js";import{c as Yi}from"./chunk-JW74KRBC.js";import{a as zm,c as Bm}from"./chunk-C4KLXFJP.js";import{b as Vm}from"./chunk-TODNOP7C.js";import{b as Am}from"./chunk-DUKE27HC.js";import{a as Yc}from"./chunk-6LE362LZ.js";import{a as Lm}from"./chunk-R6LHJ7ME.js";import{a as it,b as Ki,c as Im,d as Fb,f as Mm,g as Lb}from"./chunk-UUBIQR6A.js";import{a as Ji,b as Fm}from"./chunk-EKP2SC77.js";import{b as Dm,f as Mb}from"./chunk-BBRROA3Z.js";import{g as xm,i as Pm,j as km,l as Is,m as ae,n as Pe}from"./chunk-LTQVUAPH.js";import{c as Ms,d as Om}from"./chunk-HTZSRMHW.js";import{r as hr,v as fr}from"./chunk-T66PPF4D.js";import{b as D,d as X}from"./chunk-XWIAZG3C.js";import{a as Be,b as pr,c as Ds,e as gr}from"./chunk-5G4UFTV4.js";import{a as z,b as Se,d as he}from"./chunk-W62OOK7A.js";import{c as Qi,d as Kc,e as Jc}from"./chunk-GCHYOPRZ.js";import{a as Ft,b as mr,c as Ps,d as ks}from"./chunk-5I7357KS.js";import{i as w}from"./chunk-QFGYH6HD.js";import{a as Ve,c as f,d as g}from"./chunk-LJMYRTJ7.js";import{a as _}from"./chunk-3HVFIITW.js";import{c as A}from"./chunk-BQ47GQPK.js";import{a as Ui,c as Uc,d as Qc}from"./chunk-ZWBGYJ7K.js";import{S as wt,b as ur,n as dr}from"./chunk-6YVMX2TC.js";import{c as Me,d as Ur}from"./chunk-SZAZQZWI.js";import{f as Ib}from"./chunk-T4GE7MPI.js";import{a as P,b as y,c as bt,e as k}from"./chunk-HL2ANKN3.js";import{a as Em,b as vt,c as j,d as Hr,e as Db,f as Wr}from"./chunk-XH4JMX5O.js";var Tp={};Hr(Tp,{ALL_SUPPORTED_LANGUAGES:()=>Yb,ALL_TEST_FRAMEWORKS:()=>na,DEFAULT_FRAMEWORKS:()=>Al,FRAMEWORK_ALIASES:()=>El,FRAMEWORK_TO_LANGUAGE:()=>Jb,LANGUAGE_FILE_EXTENSIONS:()=>Rp,getLanguageFromExtension:()=>Bt,resolveFrameworkAlias:()=>sa});function sa(l){let t=l.toLowerCase().trim();return na.includes(t)?t:Object.hasOwn(El,t)?El[t]:void 0}function Bt(l){return Rp[l.startsWith(".")?l:`.${l}`]}var Al,El,Jb,Rp,na,Yb,ii=vt(()=>{"use strict";Al={typescript:"vitest",javascript:"jest",python:"pytest",java:"junit5",csharp:"xunit",go:"go-test",rust:"rust-test",swift:"swift-testing",kotlin:"kotlin-junit",dart:"flutter-test"},El={junit:"junit5","junit-5":"junit5","junit-4":"junit5",nunit:"nunit","x-unit":"xunit",xunit:"xunit",gotest:"go-test",go_test:"go-test",rusttest:"rust-test",rust_test:"rust-test",swift_testing:"swift-testing",swifttesting:"swift-testing",kotlin_junit:"kotlin-junit",kotlinjunit:"kotlin-junit",flutter_test:"flutter-test",fluttertest:"flutter-test",jest_rn:"jest-rn","jest-react-native":"jest-rn","react-native":"jest-rn"},Jb={jest:"javascript",vitest:"typescript",mocha:"javascript",pytest:"python","node-test":"javascript",junit5:"java",testng:"java",xunit:"csharp",nunit:"csharp","go-test":"go","rust-test":"rust","swift-testing":"swift",xctest:"swift","kotlin-junit":"kotlin","flutter-test":"dart","jest-rn":"javascript",playwright:"typescript",cypress:"javascript"},Rp={".ts":"typescript",".tsx":"typescript",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".java":"java",".cs":"csharp",".go":"go",".rs":"rust",".swift":"swift",".kt":"kotlin",".kts":"kotlin",".dart":"dart"},na=["jest","vitest","mocha","pytest","node-test","junit5","testng","xunit","nunit","go-test","rust-test","swift-testing","xctest","kotlin-junit","flutter-test","jest-rn","playwright","cypress"],Yb=["typescript","javascript","python","java","csharp","go","rust","swift","kotlin","dart"]});function Ll(l,t={}){let{additionalContext:e,sourceCode:r,includeEvidence:i=!0,includeRemediation:n=!0,maxLength:s=8e3}=t,a=[];a.push(`# Security Finding Verification Request
3
3
 
4
4
  You are a security expert tasked with verifying whether the following security finding is valid or a false positive.
5
5
 
@@ -114,7 +114,7 @@ Always explain your reasoning clearly.
114
114
  Format your response with: verdict (confirmed/rejected/uncertain), confidence (0-100), and reasoning.`}}});var Di=j((a7,Ff)=>{"use strict";var H0="2.0.0",W0=Number.MAX_SAFE_INTEGER||9007199254740991,U0=16,Q0=250,K0=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Ff.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:U0,MAX_SAFE_BUILD_LENGTH:Q0,MAX_SAFE_INTEGER:W0,RELEASE_TYPES:K0,SEMVER_SPEC_VERSION:H0,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var fs=j((o7,Lf)=>{"use strict";var J0=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...l)=>console.error("SEMVER",...l):()=>{};Lf.exports=J0});var Ii=j((yt,$f)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Bd,MAX_SAFE_BUILD_LENGTH:Y0,MAX_LENGTH:X0}=Di(),Z0=fs();yt=$f.exports={};var eE=yt.re=[],tE=yt.safeRe=[],L=yt.src=[],rE=yt.safeSrc=[],$=yt.t={},iE=0,qd="[a-zA-Z0-9-]",nE=[["\\s",1],["\\d",X0],[qd,Y0]],sE=l=>{for(let[t,e]of nE)l=l.split(`${t}*`).join(`${t}{0,${e}}`).split(`${t}+`).join(`${t}{1,${e}}`);return l},H=(l,t,e)=>{let r=sE(t),i=iE++;Z0(l,i,t),$[l]=i,L[i]=t,rE[i]=r,eE[i]=new RegExp(t,e?"g":void 0),tE[i]=new RegExp(r,e?"g":void 0)};H("NUMERICIDENTIFIER","0|[1-9]\\d*");H("NUMERICIDENTIFIERLOOSE","\\d+");H("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${qd}*`);H("MAINVERSION",`(${L[$.NUMERICIDENTIFIER]})\\.(${L[$.NUMERICIDENTIFIER]})\\.(${L[$.NUMERICIDENTIFIER]})`);H("MAINVERSIONLOOSE",`(${L[$.NUMERICIDENTIFIERLOOSE]})\\.(${L[$.NUMERICIDENTIFIERLOOSE]})\\.(${L[$.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASEIDENTIFIER",`(?:${L[$.NONNUMERICIDENTIFIER]}|${L[$.NUMERICIDENTIFIER]})`);H("PRERELEASEIDENTIFIERLOOSE",`(?:${L[$.NONNUMERICIDENTIFIER]}|${L[$.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASE",`(?:-(${L[$.PRERELEASEIDENTIFIER]}(?:\\.${L[$.PRERELEASEIDENTIFIER]})*))`);H("PRERELEASELOOSE",`(?:-?(${L[$.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${L[$.PRERELEASEIDENTIFIERLOOSE]})*))`);H("BUILDIDENTIFIER",`${qd}+`);H("BUILD",`(?:\\+(${L[$.BUILDIDENTIFIER]}(?:\\.${L[$.BUILDIDENTIFIER]})*))`);H("FULLPLAIN",`v?${L[$.MAINVERSION]}${L[$.PRERELEASE]}?${L[$.BUILD]}?`);H("FULL",`^${L[$.FULLPLAIN]}$`);H("LOOSEPLAIN",`[v=\\s]*${L[$.MAINVERSIONLOOSE]}${L[$.PRERELEASELOOSE]}?${L[$.BUILD]}?`);H("LOOSE",`^${L[$.LOOSEPLAIN]}$`);H("GTLT","((?:<|>)?=?)");H("XRANGEIDENTIFIERLOOSE",`${L[$.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);H("XRANGEIDENTIFIER",`${L[$.NUMERICIDENTIFIER]}|x|X|\\*`);H("XRANGEPLAIN",`[v=\\s]*(${L[$.XRANGEIDENTIFIER]})(?:\\.(${L[$.XRANGEIDENTIFIER]})(?:\\.(${L[$.XRANGEIDENTIFIER]})(?:${L[$.PRERELEASE]})?${L[$.BUILD]}?)?)?`);H("XRANGEPLAINLOOSE",`[v=\\s]*(${L[$.XRANGEIDENTIFIERLOOSE]})(?:\\.(${L[$.XRANGEIDENTIFIERLOOSE]})(?:\\.(${L[$.XRANGEIDENTIFIERLOOSE]})(?:${L[$.PRERELEASELOOSE]})?${L[$.BUILD]}?)?)?`);H("XRANGE",`^${L[$.GTLT]}\\s*${L[$.XRANGEPLAIN]}$`);H("XRANGELOOSE",`^${L[$.GTLT]}\\s*${L[$.XRANGEPLAINLOOSE]}$`);H("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Bd}})(?:\\.(\\d{1,${Bd}}))?(?:\\.(\\d{1,${Bd}}))?`);H("COERCE",`${L[$.COERCEPLAIN]}(?:$|[^\\d])`);H("COERCEFULL",L[$.COERCEPLAIN]+`(?:${L[$.PRERELEASE]})?(?:${L[$.BUILD]})?(?:$|[^\\d])`);H("COERCERTL",L[$.COERCE],!0);H("COERCERTLFULL",L[$.COERCEFULL],!0);H("LONETILDE","(?:~>?)");H("TILDETRIM",`(\\s*)${L[$.LONETILDE]}\\s+`,!0);yt.tildeTrimReplace="$1~";H("TILDE",`^${L[$.LONETILDE]}${L[$.XRANGEPLAIN]}$`);H("TILDELOOSE",`^${L[$.LONETILDE]}${L[$.XRANGEPLAINLOOSE]}$`);H("LONECARET","(?:\\^)");H("CARETTRIM",`(\\s*)${L[$.LONECARET]}\\s+`,!0);yt.caretTrimReplace="$1^";H("CARET",`^${L[$.LONECARET]}${L[$.XRANGEPLAIN]}$`);H("CARETLOOSE",`^${L[$.LONECARET]}${L[$.XRANGEPLAINLOOSE]}$`);H("COMPARATORLOOSE",`^${L[$.GTLT]}\\s*(${L[$.LOOSEPLAIN]})$|^$`);H("COMPARATOR",`^${L[$.GTLT]}\\s*(${L[$.FULLPLAIN]})$|^$`);H("COMPARATORTRIM",`(\\s*)${L[$.GTLT]}\\s*(${L[$.LOOSEPLAIN]}|${L[$.XRANGEPLAIN]})`,!0);yt.comparatorTrimReplace="$1$2$3";H("HYPHENRANGE",`^\\s*(${L[$.XRANGEPLAIN]})\\s+-\\s+(${L[$.XRANGEPLAIN]})\\s*$`);H("HYPHENRANGELOOSE",`^\\s*(${L[$.XRANGEPLAINLOOSE]})\\s+-\\s+(${L[$.XRANGEPLAINLOOSE]})\\s*$`);H("STAR","(<|>)?=?\\s*\\*");H("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");H("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var lc=j((c7,Of)=>{"use strict";var aE=Object.freeze({loose:!0}),oE=Object.freeze({}),cE=l=>l?typeof l!="object"?aE:l:oE;Of.exports=cE});var Gd=j((l7,Vf)=>{"use strict";var Nf=/^[0-9]+$/,_f=(l,t)=>{if(typeof l=="number"&&typeof t=="number")return l===t?0:l<t?-1:1;let e=Nf.test(l),r=Nf.test(t);return e&&r&&(l=+l,t=+t),l===t?0:e&&!r?-1:r&&!e?1:l<t?-1:1},lE=(l,t)=>_f(t,l);Vf.exports={compareIdentifiers:_f,rcompareIdentifiers:lE}});var Ae=j((u7,Bf)=>{"use strict";var uc=fs(),{MAX_LENGTH:zf,MAX_SAFE_INTEGER:dc}=Di(),{safeRe:mc,t:pc}=Ii(),uE=lc(),{compareIdentifiers:jd}=Gd(),dE=(l,t)=>{let e=t.split(".");if(e.length>l.length)return!1;for(let r=0;r<e.length;r++)if(jd(l[r],e[r])!==0)return!1;return!0},Hd=class l{constructor(t,e){if(e=uE(e),t instanceof l){if(t.loose===!!e.loose&&t.includePrerelease===!!e.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>zf)throw new TypeError(`version is longer than ${zf} characters`);uc("SemVer",t,e),this.options=e,this.loose=!!e.loose,this.includePrerelease=!!e.includePrerelease;let r=t.trim().match(e.loose?mc[pc.LOOSE]:mc[pc.FULL]);if(!r)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>dc||this.major<0)throw new TypeError("Invalid major version");if(this.minor>dc||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>dc||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let n=+i;if(n>=0&&n<dc)return n}return i}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(uc("SemVer.compare",this.version,this.options,t),!(t instanceof l)){if(typeof t=="string"&&t===this.version)return 0;t=new l(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof l||(t=new l(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:this.patch>t.patch?1:0}comparePre(t){if(t instanceof l||(t=new l(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let e=0;do{let r=this.prerelease[e],i=t.prerelease[e];if(uc("prerelease compare",e,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return jd(r,i)}while(++e)}compareBuild(t){t instanceof l||(t=new l(t,this.options));let e=0;do{let r=this.build[e],i=t.build[e];if(uc("build compare",e,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return jd(r,i)}while(++e)}inc(t,e,r){if(t.startsWith("pre")){if(!e&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(e){let i=`-${e}`.match(this.options.loose?mc[pc.PRERELEASELOOSE]:mc[pc.PRERELEASE]);if(!i||i[1]!==e)throw new Error(`invalid identifier: ${e}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",e,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",e,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",e,r),this.inc("pre",e,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",e,r),this.inc("pre",e,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(e===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(e){let n=[e,i];if(r===!1&&(n=[e]),dE(this.prerelease,e)){let s=this.prerelease[e.split(".").length];isNaN(s)&&(this.prerelease=n)}else this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Bf.exports=Hd});var sr=j((d7,Gf)=>{"use strict";var qf=Ae(),mE=(l,t,e=!1)=>{if(l instanceof qf)return l;try{return new qf(l,t)}catch(r){if(!e)return null;throw r}};Gf.exports=mE});var Hf=j((m7,jf)=>{"use strict";var pE=sr(),gE=(l,t)=>{let e=pE(l,t);return e?e.version:null};jf.exports=gE});var Uf=j((p7,Wf)=>{"use strict";var hE=sr(),fE=(l,t)=>{let e=hE(l.trim().replace(/^[=v]+/,""),t);return e?e.version:null};Wf.exports=fE});var Jf=j((g7,Kf)=>{"use strict";var Qf=Ae(),yE=(l,t,e,r,i)=>{typeof e=="string"&&(i=r,r=e,e=void 0);try{return new Qf(l instanceof Qf?l.version:l,e).inc(t,r,i).version}catch{return null}};Kf.exports=yE});var Zf=j((h7,Xf)=>{"use strict";var Yf=sr(),vE=(l,t)=>{let e=Yf(l,null,!0),r=Yf(t,null,!0),i=e.compare(r);if(i===0)return null;let n=i>0,s=n?e:r,a=n?r:e,o=!!s.prerelease.length;if(!!a.prerelease.length&&!o){if(!a.patch&&!a.minor)return"major";if(a.compareMain(s)===0)return a.minor&&!a.patch?"minor":"patch"}let u=o?"pre":"";return e.major!==r.major?u+"major":e.minor!==r.minor?u+"minor":e.patch!==r.patch?u+"patch":"prerelease"};Xf.exports=vE});var ty=j((f7,ey)=>{"use strict";var bE=Ae(),wE=(l,t)=>new bE(l,t).major;ey.exports=wE});var iy=j((y7,ry)=>{"use strict";var CE=Ae(),SE=(l,t)=>new CE(l,t).minor;ry.exports=SE});var sy=j((v7,ny)=>{"use strict";var RE=Ae(),TE=(l,t)=>new RE(l,t).patch;ny.exports=TE});var oy=j((b7,ay)=>{"use strict";var EE=sr(),AE=(l,t)=>{let e=EE(l,t);return e&&e.prerelease.length?e.prerelease:null};ay.exports=AE});var Ze=j((w7,ly)=>{"use strict";var cy=Ae(),xE=(l,t,e)=>new cy(l,e).compare(new cy(t,e));ly.exports=xE});var dy=j((C7,uy)=>{"use strict";var PE=Ze(),kE=(l,t,e)=>PE(t,l,e);uy.exports=kE});var py=j((S7,my)=>{"use strict";var DE=Ze(),IE=(l,t)=>DE(l,t,!0);my.exports=IE});var gc=j((R7,hy)=>{"use strict";var gy=Ae(),ME=(l,t,e)=>{let r=new gy(l,e),i=new gy(t,e);return r.compare(i)||r.compareBuild(i)};hy.exports=ME});var yy=j((T7,fy)=>{"use strict";var FE=gc(),LE=(l,t)=>l.sort((e,r)=>FE(e,r,t));fy.exports=LE});var by=j((E7,vy)=>{"use strict";var $E=gc(),OE=(l,t)=>l.sort((e,r)=>$E(r,e,t));vy.exports=OE});var ys=j((A7,wy)=>{"use strict";var NE=Ze(),_E=(l,t,e)=>NE(l,t,e)>0;wy.exports=_E});var hc=j((x7,Cy)=>{"use strict";var VE=Ze(),zE=(l,t,e)=>VE(l,t,e)<0;Cy.exports=zE});var Wd=j((P7,Sy)=>{"use strict";var BE=Ze(),qE=(l,t,e)=>BE(l,t,e)===0;Sy.exports=qE});var Ud=j((k7,Ry)=>{"use strict";var GE=Ze(),jE=(l,t,e)=>GE(l,t,e)!==0;Ry.exports=jE});var fc=j((D7,Ty)=>{"use strict";var HE=Ze(),WE=(l,t,e)=>HE(l,t,e)>=0;Ty.exports=WE});var yc=j((I7,Ey)=>{"use strict";var UE=Ze(),QE=(l,t,e)=>UE(l,t,e)<=0;Ey.exports=QE});var Qd=j((M7,Ay)=>{"use strict";var KE=Wd(),JE=Ud(),YE=ys(),XE=fc(),ZE=hc(),eA=yc(),tA=(l,t,e,r)=>{switch(t){case"===":return typeof l=="object"&&(l=l.version),typeof e=="object"&&(e=e.version),l===e;case"!==":return typeof l=="object"&&(l=l.version),typeof e=="object"&&(e=e.version),l!==e;case"":case"=":case"==":return KE(l,e,r);case"!=":return JE(l,e,r);case">":return YE(l,e,r);case">=":return XE(l,e,r);case"<":return ZE(l,e,r);case"<=":return eA(l,e,r);default:throw new TypeError(`Invalid operator: ${t}`)}};Ay.exports=tA});var Py=j((F7,xy)=>{"use strict";var rA=Ae(),iA=sr(),{safeRe:vc,t:bc}=Ii(),nA=(l,t)=>{if(l instanceof rA)return l;if(typeof l=="number"&&(l=String(l)),typeof l!="string")return null;t=t||{};let e=null;if(!t.rtl)e=l.match(t.includePrerelease?vc[bc.COERCEFULL]:vc[bc.COERCE]);else{let o=t.includePrerelease?vc[bc.COERCERTLFULL]:vc[bc.COERCERTL],c;for(;(c=o.exec(l))&&(!e||e.index+e[0].length!==l.length);)(!e||c.index+c[0].length!==e.index+e[0].length)&&(e=c),o.lastIndex=c.index+c[1].length+c[2].length;o.lastIndex=-1}if(e===null)return null;let r=e[2],i=e[3]||"0",n=e[4]||"0",s=t.includePrerelease&&e[5]?`-${e[5]}`:"",a=t.includePrerelease&&e[6]?`+${e[6]}`:"";return iA(`${r}.${i}.${n}${s}${a}`,t)};xy.exports=nA});var Dy=j((L7,ky)=>{"use strict";var sA=sr(),aA=Di(),oA=Ae(),cA=(l,t,e)=>{if(!aA.RELEASE_TYPES.includes(t))return null;let r=lA(l,e);return r&&uA(r,t)},lA=(l,t)=>{let e=l instanceof oA?l.version:l;return sA(e,t)},uA=(l,t)=>{if(dA(t))return l.version;switch(l.prerelease=[],t){case"major":l.minor=0,l.patch=0;break;case"minor":l.patch=0;break}return l.format()},dA=l=>l.startsWith("pre");ky.exports=cA});var My=j(($7,Iy)=>{"use strict";var Kd=class{constructor(){this.max=1e3,this.map=new Map}get(t){let e=this.map.get(t);if(e!==void 0)return this.map.delete(t),this.map.set(t,e),e}delete(t){return this.map.delete(t)}set(t,e){if(!this.delete(t)&&e!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(t,e)}return this}};Iy.exports=Kd});var et=j((O7,Oy)=>{"use strict";var mA=/\s+/g,Jd=class l{constructor(t,e){if(e=gA(e),t instanceof l)return t.loose===!!e.loose&&t.includePrerelease===!!e.includePrerelease?t:new l(t.raw,e);if(t instanceof Yd)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=e,this.loose=!!e.loose,this.includePrerelease=!!e.includePrerelease,this.raw=t.trim().replace(mA," "),this.set=this.raw.split("||").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(i=>!Ly(i[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&RA(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t<this.set.length;t++){t>0&&(this.formatted+="||");let e=this.set[t];for(let r=0;r<e.length;r++)r>0&&(this.formatted+=" "),this.formatted+=e[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){t=t.replace(SA,"");let r=((this.options.includePrerelease&&wA)|(this.options.loose&&CA))+":"+t,i=Fy.get(r);if(i)return i;let n=this.options.loose,s=n?Ne[xe.HYPHENRANGELOOSE]:Ne[xe.HYPHENRANGE];t=t.replace(s,LA(this.options.includePrerelease)),oe("hyphen replace",t),t=t.replace(Ne[xe.COMPARATORTRIM],yA),oe("comparator trim",t),t=t.replace(Ne[xe.TILDETRIM],vA),oe("tilde trim",t),t=t.replace(Ne[xe.CARETTRIM],bA),oe("caret trim",t);let a=t.split(" ").map(d=>TA(d,this.options)).join(" ").split(/\s+/).map(d=>FA(d,this.options));n&&(a=a.filter(d=>(oe("loose invalid filter",d,this.options),!!d.match(Ne[xe.COMPARATORLOOSE])))),oe("range list",a);let o=new Map,c=a.map(d=>new Yd(d,this.options));for(let d of c){if(Ly(d))return[d];o.set(d.value,d)}o.size>1&&o.has("")&&o.delete("");let u=[...o.values()];return Fy.set(r,u),u}intersects(t,e){if(!(t instanceof l))throw new TypeError("a Range is required");return this.set.some(r=>$y(r,e)&&t.set.some(i=>$y(i,e)&&r.every(n=>i.every(s=>n.intersects(s,e)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new hA(t,this.options)}catch{return!1}for(let e=0;e<this.set.length;e++)if($A(this.set[e],t,this.options))return!0;return!1}};Oy.exports=Jd;var pA=My(),Fy=new pA,gA=lc(),Yd=vs(),oe=fs(),hA=Ae(),{safeRe:Ne,src:fA,t:xe,comparatorTrimReplace:yA,tildeTrimReplace:vA,caretTrimReplace:bA}=Ii(),{FLAG_INCLUDE_PRERELEASE:wA,FLAG_LOOSE:CA}=Di(),SA=new RegExp(fA[xe.BUILD],"g"),Ly=l=>l.value==="<0.0.0-0",RA=l=>l.value==="",$y=(l,t)=>{let e=!0,r=l.slice(),i=r.pop();for(;e&&r.length;)e=r.every(n=>i.intersects(n,t)),i=r.pop();return e},TA=(l,t)=>(l=l.replace(Ne[xe.BUILD],""),oe("comp",l,t),l=PA(l,t),oe("caret",l),l=AA(l,t),oe("tildes",l),l=DA(l,t),oe("xrange",l),l=MA(l,t),oe("stars",l),l),ve=l=>!l||l.toLowerCase()==="x"||l==="*",EA=(l,t,e)=>ve(l)&&!ve(t)||ve(t)&&e&&!ve(e),AA=(l,t)=>l.trim().split(/\s+/).map(e=>xA(e,t)).join(" "),xA=(l,t)=>{let e=t.loose?Ne[xe.TILDELOOSE]:Ne[xe.TILDE],r=t.includePrerelease?"-0":"";return l.replace(e,(i,n,s,a,o)=>{oe("tilde",l,i,n,s,a,o);let c;return ve(n)?c="":ve(s)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:ve(a)?c=`>=${n}.${s}.0${r} <${n}.${+s+1}.0-0`:o?(oe("replaceTilde pr",o),c=`>=${n}.${s}.${a}-${o} <${n}.${+s+1}.0-0`):c=`>=${n}.${s}.${a} <${n}.${+s+1}.0-0`,oe("tilde return",c),c})},PA=(l,t)=>l.trim().split(/\s+/).map(e=>kA(e,t)).join(" "),kA=(l,t)=>{oe("caret",l,t);let e=t.loose?Ne[xe.CARETLOOSE]:Ne[xe.CARET],r=t.includePrerelease?"-0":"";return l.replace(e,(i,n,s,a,o)=>{oe("caret",l,i,n,s,a,o);let c;return ve(n)?c="":ve(s)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:ve(a)?n==="0"?c=`>=${n}.${s}.0${r} <${n}.${+s+1}.0-0`:c=`>=${n}.${s}.0${r} <${+n+1}.0.0-0`:o?(oe("replaceCaret pr",o),n==="0"?s==="0"?c=`>=${n}.${s}.${a}-${o} <${n}.${s}.${+a+1}-0`:c=`>=${n}.${s}.${a}-${o} <${n}.${+s+1}.0-0`:c=`>=${n}.${s}.${a}-${o} <${+n+1}.0.0-0`):(oe("no pr"),n==="0"?s==="0"?c=`>=${n}.${s}.${a} <${n}.${s}.${+a+1}-0`:c=`>=${n}.${s}.${a} <${n}.${+s+1}.0-0`:c=`>=${n}.${s}.${a} <${+n+1}.0.0-0`),oe("caret return",c),c})},DA=(l,t)=>(oe("replaceXRanges",l,t),l.split(/\s+/).map(e=>IA(e,t)).join(" ")),IA=(l,t)=>{l=l.trim();let e=t.loose?Ne[xe.XRANGELOOSE]:Ne[xe.XRANGE];return l.replace(e,(r,i,n,s,a,o)=>{if(oe("xRange",l,r,i,n,s,a,o),EA(n,s,a))return l;let c=ve(n),u=c||ve(s),d=u||ve(a),m=d;return i==="="&&m&&(i=""),o=t.includePrerelease?"-0":"",c?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&m?(u&&(s=0),a=0,i===">"?(i=">=",u?(n=+n+1,s=0,a=0):(s=+s+1,a=0)):i==="<="&&(i="<",u?n=+n+1:s=+s+1),i==="<"&&(o="-0"),r=`${i+n}.${s}.${a}${o}`):u?r=`>=${n}.0.0${o} <${+n+1}.0.0-0`:d&&(r=`>=${n}.${s}.0${o} <${n}.${+s+1}.0-0`),oe("xRange return",r),r})},MA=(l,t)=>(oe("replaceStars",l,t),l.trim().replace(Ne[xe.STAR],"")),FA=(l,t)=>(oe("replaceGTE0",l,t),l.trim().replace(Ne[t.includePrerelease?xe.GTE0PRE:xe.GTE0],"")),LA=l=>(t,e,r,i,n,s,a,o,c,u,d,m)=>(ve(r)?e="":ve(i)?e=`>=${r}.0.0${l?"-0":""}`:ve(n)?e=`>=${r}.${i}.0${l?"-0":""}`:s?e=`>=${e}`:e=`>=${e}${l?"-0":""}`,ve(c)?o="":ve(u)?o=`<${+c+1}.0.0-0`:ve(d)?o=`<${c}.${+u+1}.0-0`:m?o=`<=${c}.${u}.${d}-${m}`:l?o=`<${c}.${u}.${+d+1}-0`:o=`<=${o}`,`${e} ${o}`.trim()),$A=(l,t,e)=>{for(let r=0;r<l.length;r++)if(!l[r].test(t))return!1;if(t.prerelease.length&&!e.includePrerelease){for(let r=0;r<l.length;r++)if(oe(l[r].semver),l[r].semver!==Yd.ANY&&l[r].semver.prerelease.length>0){let i=l[r].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var vs=j((N7,qy)=>{"use strict";var bs=Symbol("SemVer ANY"),em=class l{static get ANY(){return bs}constructor(t,e){if(e=Ny(e),t instanceof l){if(t.loose===!!e.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Zd("comparator",t,e),this.options=e,this.loose=!!e.loose,this.parse(t),this.semver===bs?this.value="":this.value=this.operator+this.semver.version,Zd("comp",this)}parse(t){let e=this.options.loose?_y[Vy.COMPARATORLOOSE]:_y[Vy.COMPARATOR],r=t.match(e);if(!r)throw new TypeError(`Invalid comparator: ${t}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new zy(r[2],this.options.loose):this.semver=bs}toString(){return this.value}test(t){if(Zd("Comparator.test",t,this.options.loose),this.semver===bs||t===bs)return!0;if(typeof t=="string")try{t=new zy(t,this.options)}catch{return!1}return Xd(t,this.operator,this.semver,this.options)}intersects(t,e){if(!(t instanceof l))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new By(t.value,e).test(this.value):t.operator===""?t.value===""?!0:new By(this.value,e).test(t.semver):(e=Ny(e),e.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!e.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||Xd(this.semver,"<",t.semver,e)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Xd(this.semver,">",t.semver,e)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};qy.exports=em;var Ny=lc(),{safeRe:_y,t:Vy}=Ii(),Xd=Qd(),Zd=fs(),zy=Ae(),By=et()});var ws=j((_7,Gy)=>{"use strict";var OA=et(),NA=(l,t,e)=>{try{t=new OA(t,e)}catch{return!1}return t.test(l)};Gy.exports=NA});var Hy=j((V7,jy)=>{"use strict";var _A=et(),VA=(l,t)=>new _A(l,t).set.map(e=>e.map(r=>r.value).join(" ").trim().split(" "));jy.exports=VA});var Uy=j((z7,Wy)=>{"use strict";var zA=Ae(),BA=et(),qA=(l,t,e)=>{let r=null,i=null,n=null;try{n=new BA(t,e)}catch{return null}return l.forEach(s=>{n.test(s)&&(!r||i.compare(s)===-1)&&(r=s,i=new zA(r,e))}),r};Wy.exports=qA});var Ky=j((B7,Qy)=>{"use strict";var GA=Ae(),jA=et(),HA=(l,t,e)=>{let r=null,i=null,n=null;try{n=new jA(t,e)}catch{return null}return l.forEach(s=>{n.test(s)&&(!r||i.compare(s)===1)&&(r=s,i=new GA(r,e))}),r};Qy.exports=HA});var Xy=j((q7,Yy)=>{"use strict";var tm=Ae(),WA=et(),Jy=ys(),UA=(l,t)=>{l=new WA(l,t);let e=new tm("0.0.0");if(l.test(e)||(e=new tm("0.0.0-0"),l.test(e)))return e;e=null;for(let r=0;r<l.set.length;++r){let i=l.set[r],n=null;i.forEach(s=>{let a=new tm(s.semver.version);switch(s.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!n||Jy(a,n))&&(n=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${s.operator}`)}}),n&&(!e||Jy(e,n))&&(e=n)}return e&&l.test(e)?e:null};Yy.exports=UA});var ev=j((G7,Zy)=>{"use strict";var QA=et(),KA=(l,t)=>{try{return new QA(l,t).range||"*"}catch{return null}};Zy.exports=KA});var wc=j((j7,nv)=>{"use strict";var JA=Ae(),iv=vs(),{ANY:YA}=iv,XA=et(),ZA=ws(),tv=ys(),rv=hc(),ex=yc(),tx=fc(),rx=(l,t,e,r)=>{l=new JA(l,r),t=new XA(t,r);let i,n,s,a,o;switch(e){case">":i=tv,n=ex,s=rv,a=">",o=">=";break;case"<":i=rv,n=tx,s=tv,a="<",o="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ZA(l,t,r))return!1;for(let c=0;c<t.set.length;++c){let u=t.set[c],d=null,m=null;if(u.forEach(p=>{p.semver===YA&&(p=new iv(">=0.0.0")),d=d||p,m=m||p,i(p.semver,d.semver,r)?d=p:s(p.semver,m.semver,r)&&(m=p)}),d.operator===a||d.operator===o||(!m.operator||m.operator===a)&&n(l,m.semver))return!1;if(m.operator===o&&s(l,m.semver))return!1}return!0};nv.exports=rx});var av=j((H7,sv)=>{"use strict";var ix=wc(),nx=(l,t,e)=>ix(l,t,">",e);sv.exports=nx});var cv=j((W7,ov)=>{"use strict";var sx=wc(),ax=(l,t,e)=>sx(l,t,"<",e);ov.exports=ax});var dv=j((U7,uv)=>{"use strict";var lv=et(),ox=(l,t,e)=>(l=new lv(l,e),t=new lv(t,e),l.intersects(t,e));uv.exports=ox});var pv=j((Q7,mv)=>{"use strict";var cx=ws(),lx=Ze();mv.exports=(l,t,e)=>{let r=[],i=null,n=null,s=l.sort((u,d)=>lx(u,d,e));for(let u of s)cx(u,t,e)?(n=u,i||(i=u)):(n&&r.push([i,n]),n=null,i=null);i&&r.push([i,null]);let a=[];for(let[u,d]of r)u===d?a.push(u):!d&&u===s[0]?a.push("*"):d?u===s[0]?a.push(`<=${d}`):a.push(`${u} - ${d}`):a.push(`>=${u}`);let o=a.join(" || "),c=typeof t.raw=="string"?t.raw:String(t);return o.length<c.length?o:t}});var bv=j((K7,vv)=>{"use strict";var gv=et(),nm=vs(),{ANY:rm}=nm,im=ws(),sm=Ze(),ux=(l,t,e={})=>{if(l===t)return!0;l=new gv(l,e),t=new gv(t,e);let r=!1;e:for(let i of l.set){for(let n of t.set){let s=mx(i,n,e);if(r=r||s!==null,s)continue e}if(r)return!1}return!0},dx=[new nm(">=0.0.0-0")],hv=[new nm(">=0.0.0")],mx=(l,t,e)=>{if(l===t)return!0;if(l.length===1&&l[0].semver===rm){if(t.length===1&&t[0].semver===rm)return!0;e.includePrerelease?l=dx:l=hv}if(t.length===1&&t[0].semver===rm){if(e.includePrerelease)return!0;t=hv}let r=new Set,i,n;for(let p of l)p.operator===">"||p.operator===">="?i=fv(i,p,e):p.operator==="<"||p.operator==="<="?n=yv(n,p,e):r.add(p.semver);if(r.size>1)return null;let s;if(i&&n){if(s=sm(i.semver,n.semver,e),s>0)return null;if(s===0&&(i.operator!==">="||n.operator!=="<="))return null}for(let p of r){if(i&&!im(p,String(i),e)||n&&!im(p,String(n),e))return null;for(let h of t)if(!im(p,String(h),e))return!1;return!0}let a,o,c,u,d=n&&!e.includePrerelease&&n.semver.prerelease.length?n.semver:!1,m=i&&!e.includePrerelease&&i.semver.prerelease.length?i.semver:!1;d&&d.prerelease.length===1&&n.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(let p of t){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",i){if(m&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===m.major&&p.semver.minor===m.minor&&p.semver.patch===m.patch&&(m=!1),p.operator===">"||p.operator===">="){if(a=fv(i,p,e),a===p&&a!==i)return!1}else if(i.operator===">="&&!p.test(i.semver))return!1}if(n){if(d&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===d.major&&p.semver.minor===d.minor&&p.semver.patch===d.patch&&(d=!1),p.operator==="<"||p.operator==="<="){if(o=yv(n,p,e),o===p&&o!==n)return!1}else if(n.operator==="<="&&!p.test(n.semver))return!1}if(!p.operator&&(n||i)&&s!==0)return!1}return!(i&&c&&!n&&s!==0||n&&u&&!i&&s!==0||m||d)},fv=(l,t,e)=>{if(!l)return t;let r=sm(l.semver,t.semver,e);return r>0?l:r<0||t.operator===">"&&l.operator===">="?t:l},yv=(l,t,e)=>{if(!l)return t;let r=sm(l.semver,t.semver,e);return r<0?l:r>0||t.operator==="<"&&l.operator==="<="?t:l};vv.exports=ux});var Rv=j((J7,Sv)=>{"use strict";var am=Ii(),wv=Di(),px=Ae(),Cv=Gd(),gx=sr(),hx=Hf(),fx=Uf(),yx=Jf(),vx=Zf(),bx=ty(),wx=iy(),Cx=sy(),Sx=oy(),Rx=Ze(),Tx=dy(),Ex=py(),Ax=gc(),xx=yy(),Px=by(),kx=ys(),Dx=hc(),Ix=Wd(),Mx=Ud(),Fx=fc(),Lx=yc(),$x=Qd(),Ox=Py(),Nx=Dy(),_x=vs(),Vx=et(),zx=ws(),Bx=Hy(),qx=Uy(),Gx=Ky(),jx=Xy(),Hx=ev(),Wx=wc(),Ux=av(),Qx=cv(),Kx=dv(),Jx=pv(),Yx=bv();Sv.exports={parse:gx,valid:hx,clean:fx,inc:yx,diff:vx,major:bx,minor:wx,patch:Cx,prerelease:Sx,compare:Rx,rcompare:Tx,compareLoose:Ex,compareBuild:Ax,sort:xx,rsort:Px,gt:kx,lt:Dx,eq:Ix,neq:Mx,gte:Fx,lte:Lx,cmp:$x,coerce:Ox,truncate:Nx,Comparator:_x,Range:Vx,satisfies:zx,toComparators:Bx,maxSatisfying:qx,minSatisfying:Gx,minVersion:jx,validRange:Hx,outside:Wx,gtr:Ux,ltr:Qx,intersects:Kx,simplifyRange:Jx,subset:Yx,SemVer:px,re:am.re,src:am.src,tokens:am.t,SEMVER_SPEC_VERSION:wv.SEMVER_SPEC_VERSION,RELEASE_TYPES:wv.RELEASE_TYPES,compareIdentifiers:Cv.compareIdentifiers,rcompareIdentifiers:Cv.rcompareIdentifiers}});import{randomUUID as xb}from"crypto";Jc();var fl={LOOP_WARNING:"loop.warning",LOOP_DETECTED:"loop.detected"},Xs=class{subscriptions=new Map;subscriptionsByEventType=new Map;subscriptionsByChannel=new Map;wildcardSubscriptions=new Set;eventHistory;maxHistorySize=Kc.MAX_HISTORY_SIZE;subscriptionCounter=0;middlewares=[];constructor(t=Kc.MAX_HISTORY_SIZE){this.maxHistorySize=t,this.eventHistory=new $m(t)}registerMiddleware(t){this.middlewares.push(t),this.middlewares.sort((e,r)=>e.priority-r.priority)}removeMiddleware(t){let e=this.middlewares.findIndex(r=>r.name===t);return e>=0?(this.middlewares.splice(e,1),!0):!1}getMiddlewares(){return this.middlewares}async publish(t){let e=t;for(let o of this.middlewares)if(o.onEmit&&e&&(e=await o.onEmit(e),!e))return;this.eventHistory.push(e);let r=new Set,i=this.subscriptionsByEventType.get(e.type);if(i)for(let o of i)r.add(o);let n=this.subscriptionsByChannel.get(e.source);if(n)for(let o of n)r.add(o);for(let o of this.wildcardSubscriptions)r.add(o);let s=[];for(let o of r){let c=this.subscriptions.get(o);!c||!c.active||c.channel&&c.channel!==e.source||c.eventType!=="*"&&c.eventType!==e.type||s.push(c)}let a=e;for(let o of this.middlewares)if(o.onReceive&&a&&(a=await o.onReceive(a),!a))return;await Promise.allSettled(s.map(o=>o.handler(a)))}subscribe(t,e){let r=`sub_${++this.subscriptionCounter}`,i={id:r,eventType:t,handler:e,active:!0};return this.subscriptions.set(r,i),t==="*"?this.wildcardSubscriptions.add(r):(this.subscriptionsByEventType.has(t)||this.subscriptionsByEventType.set(t,new Set),this.subscriptionsByEventType.get(t).add(r)),{unsubscribe:()=>{i.active=!1,this.subscriptions.delete(r),t==="*"?this.wildcardSubscriptions.delete(r):this.subscriptionsByEventType.get(t)?.delete(r)},get active(){return i.active}}}subscribeToChannel(t,e){let r=`sub_${++this.subscriptionCounter}`,i={id:r,eventType:"*",channel:t,handler:e,active:!0};return this.subscriptions.set(r,i),this.subscriptionsByChannel.has(t)||this.subscriptionsByChannel.set(t,new Set),this.subscriptionsByChannel.get(t).add(r),{unsubscribe:()=>{i.active=!1,this.subscriptions.delete(r),this.subscriptionsByChannel.get(t)?.delete(r)},get active(){return i.active}}}async getHistory(t){let e=this.eventHistory.toArray();return t&&(t.eventTypes?.length&&(e=e.filter(r=>t.eventTypes.includes(r.type))),t.sources?.length&&(e=e.filter(r=>t.sources.includes(r.source))),t.fromTimestamp&&(e=e.filter(r=>r.timestamp>=t.fromTimestamp)),t.toTimestamp&&(e=e.filter(r=>r.timestamp<=t.toTimestamp)),t.correlationId&&(e=e.filter(r=>r.correlationId===t.correlationId)),t.limit&&(e=e.slice(-t.limit))),e}async dispose(){this.subscriptions.clear(),this.subscriptionsByEventType.clear(),this.subscriptionsByChannel.clear(),this.wildcardSubscriptions.clear(),this.eventHistory.clear(),this.middlewares=[]}};Jc();var Zs=class{agents=new Map;maxAgents;memoryBranch=null;constructor(t=Qi.MAX_CONCURRENT_AGENTS){this.maxAgents=t}setMemoryBranch(t){this.memoryBranch=t}async spawn(t){if(!this.canSpawn())return g(new Error(`Cannot spawn agent: maximum concurrent agents (${this.maxAgents}) reached. Active: ${this.getActiveCount()}`));let e=t.config??{};if(t.progressiveContext?.strategy==="predictive"||process.env.AQE_PROGRESSIVE_CONTEXT_ENABLED==="true")try{let s=e.taskDescription||t.name||"",a=e.availableFiles||[];if(s&&a.length>0){let c=new yl(t.progressiveContext).predictFilesForTask(s,a);e={...e,availableFiles:c,contextFiles:c,initialFiles:c,progressiveContextApplied:!0}}}catch{}let i=w(),n={id:i,name:t.name,domain:t.domain,type:t.type,status:"running",capabilities:t.capabilities,config:e,startedAt:new Date};if(this.agents.set(i,n),this.memoryBranch)try{let s=this.memoryBranch.createBranch(i);n.config={...n.config,_memoryBranchPath:s.childPath,_memoryBranchRecordIngest:a=>{this.memoryBranch?.recordIngest(i,a)}}}catch(s){console.warn(`[AgentCoordinator] Memory branch creation failed for ${i}:`,s)}return f(i)}getStatus(t){return this.agents.get(t)?.status}listAgents(t){let e=Array.from(this.agents.values());return t&&(t.domain&&(e=e.filter(r=>r.domain===t.domain)),t.status&&(e=e.filter(r=>r.status===t.status)),t.type&&(e=e.filter(r=>r.type===t.type))),e.map(r=>({id:r.id,name:r.name,domain:r.domain,type:r.type,status:r.status,startedAt:r.startedAt}))}async stop(t){let e=this.agents.get(t);return e?e.status!=="running"?g(new Error(`Agent ${t} is not running (status: ${e.status})`)):(e.status="completed",e.completedAt=new Date,f(void 0)):g(new Error(`Agent not found: ${t}`))}getActiveCount(){return Array.from(this.agents.values()).filter(t=>t.status==="running"||t.status==="queued").length}canSpawn(){return this.getActiveCount()<this.maxAgents}async dispose(){let t=Array.from(this.agents.values()).filter(e=>e.status==="running");await Promise.all(t.map(e=>this.stop(e.id))),this.agents.clear()}markCompleted(t){let e=this.agents.get(t);e&&e.status==="running"&&(e.status="completed",e.completedAt=new Date,this.handleBranchOnComplete(t,"merge"))}markFailed(t){let e=this.agents.get(t);e&&e.status==="running"&&(e.status="failed",e.completedAt=new Date,this.handleBranchOnComplete(t,"discard"))}handleBranchOnComplete(t,e){if(!this.memoryBranch)return;let r=this.memoryBranch.getBranch(t);if(r)try{e==="merge"?this.memoryBranch.mergeBranch(r).catch(i=>{console.warn(`[AgentCoordinator] Branch merge failed for ${t}:`,i)}):this.memoryBranch.discardBranch(r)}catch(i){console.warn(`[AgentCoordinator] Branch ${e} failed for ${t}:`,i)}}cleanup(t=Qi.DEFAULT_AGENT_TTL_MS){let e=Date.now(),r=0;for(let[i,n]of this.agents.entries())(n.status==="completed"||n.status==="failed")&&n.completedAt&&e-n.completedAt.getTime()>t&&(this.agents.delete(i),r++);return r}},Ob={strategy:"full",maxInitialFiles:10,predictionThreshold:.7,trackFileRequests:!0},yl=class{config;fileRequests=[];preloadedFiles=new Set;constructor(t){this.config={...Ob,...t}}isEnabled(){return process.env.AQE_PROGRESSIVE_CONTEXT_ENABLED==="true"}predictFilesForTask(t,e){if(!this.isEnabled()||this.config.strategy==="full")return[...e];if(!t||t.trim().length===0)return e.slice(0,this.config.maxInitialFiles);if(e.length===0)return[];let r=this.extractKeywords(t);if(r.length===0)return e.slice(0,this.config.maxInitialFiles);let i=e.map(s=>({filePath:s,score:this.scoreFile(s,r)}));i.sort((s,a)=>a.score-s.score);let n=i.slice(0,this.config.maxInitialFiles).map(s=>s.filePath);return this.preloadedFiles=new Set(n),n}recordFileRequest(t){this.config.trackFileRequests&&this.fileRequests.push(t)}getPredictionAccuracy(){let t=this.preloadedFiles.size,e=this.fileRequests.filter(s=>s.wasPreloaded).length,r=new Set(this.fileRequests.map(s=>s.filePath)),i=[...r].filter(s=>this.preloadedFiles.has(s)).length,n=r.size>0?i/r.size:0;return{predicted:t,actuallyUsed:e,hitRate:n}}getFileRequestHistory(t){return t?this.fileRequests.filter(e=>e.agentId===t):[...this.fileRequests]}extractKeywords(t){let e=new Set(["the","a","an","is","are","was","were","be","been","being","have","has","had","do","does","did","will","would","could","should","may","might","shall","can","to","of","in","for","on","with","at","by","from","as","into","through","during","before","after","and","but","or","nor","not","so","yet","both","either","neither","each","every","all","any","few","more","most","other","some","such","no","only","same","than","too","very","just","because","if","when","while","that","this","these","those","it","its","they","them","their","we","our","you","your","he","she","his","her","i","me","my"]),r=t.toLowerCase().split(/[\s\-_./\\,;:!?()[\]{}'"]+/).filter(i=>i.length>1&&!e.has(i));return[...new Set(r)]}scoreFile(t,e){let r=t.toLowerCase(),i=r.split(/[\\/.]/).filter(s=>s.length>0),n=0;for(let s of e)if(i.includes(s))n+=2;else if(r.includes(s))n+=1;else for(let a of i)if(a.startsWith(s)||s.startsWith(a)){n+=.5;break}return e.length>0?n/(e.length*2):0}};_();var Nb=A.create("plugin-loader"),ln=class{constructor(t,e,r=!0){this.eventBus=t;this.memory=e}eventBus;memory;plugins=new Map;factories=new Map;loading=new Map;registerFactory(t,e){this.factories.set(t,e)}async load(t){let e=this.plugins.get(t);if(e)return e;let r=this.loading.get(t);if(r)return r;let i=this.factories.get(t);if(!i){let s=Array.from(this.factories.keys());throw new Error(`No factory registered for domain: ${t}
115
115
  This usually means the domain is not enabled in your config.
116
116
  Registered domains: ${s.join(", ")}
117
- Fix: Add '${t}' to domains.enabled in .agentic-qe/config.yaml, or run 'aqe init --auto-migrate' to enable all domains.`)}let n=this.loadPlugin(t,i);this.loading.set(t,n);try{let s=await n;return this.plugins.set(t,s),s}finally{this.loading.delete(t)}}async loadPlugin(t,e){let r=await e(this.eventBus,this.memory);for(let i of r.dependencies)this.isLoaded(i)||await this.load(i);return await r.initialize(),r}async unload(t){let e=this.plugins.get(t);if(e){for(let[r,i]of this.plugins.entries())if(i.dependencies.includes(t))throw new Error(`Cannot unload ${t}: domain ${r} depends on it`);await e.dispose(),this.plugins.delete(t)}}isLoaded(t){return this.plugins.has(t)}getLoaded(){return Array.from(this.plugins.keys())}async loadAll(){let t=Array.from(this.factories.keys()),e=this.topologicalSort(t);for(let r of e)await this.load(r)}topologicalSort(t){let e=[],r=new Set,i=new Set,n=s=>{if(r.has(s))return;if(i.has(s))throw new Error(`Circular dependency detected involving: ${s}`);i.add(s);let o=this.plugins.get(s)?.dependencies??[];for(let c of o)t.includes(c)&&n(c);i.delete(s),r.add(s),e.push(s)};for(let s of t)n(s);return e}getPlugin(t){return this.plugins.get(t)}async disposeAll(){let t=[...this.getLoaded()].reverse();for(let e of t)try{await this.unload(e)}catch(r){Nb.debug("Plugin unload failed, force removing",{domain:e,error:r instanceof Error?r.message:String(r)}),this.plugins.delete(e)}}};Qc();ks();_();var un=A.create("anti-drift-middleware"),_b={maxIdenticalCalls:3,windowMs:3e4,steeringMessage:"Loop detected: the same tool call has been repeated multiple times. Consider an alternative approach or different parameters.",enableFleetLearning:!1};function gp(l){let t=2166136261;for(let e=0;e<l.length;e++)t^=l.charCodeAt(e),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}var ea=class{config;callHistory=new Map;totalCallsTracked=0;loopsDetected=0;constructor(t){this.config={..._b,...t}}trackCall(t,e,r){if(process.env.AQE_LOOP_DETECTION_ENABLED==="false")return{isLoop:!1,callCount:1,signature:this.createSignature(e,r),action:"allow"};let i=this.createSignature(e,r);this.totalCallsTracked++,this.callHistory.has(t)||this.callHistory.set(t,[]);let n=this.callHistory.get(t);n.push(i);let s=Date.now()-this.config.windowMs,a=n.findIndex(c=>c.timestamp>=s);a>0?n.splice(0,a):a===-1&&(n.length=0,n.push(i));let o=n.filter(c=>c.hash===i.hash).length;return o>=this.config.maxIdenticalCalls?(this.loopsDetected++,{isLoop:!0,callCount:o,signature:i,action:"steer",steeringMessage:this.config.steeringMessage}):o===this.config.maxIdenticalCalls-1?{isLoop:!1,callCount:o,signature:i,action:"warn"}:{isLoop:!1,callCount:o,signature:i,action:"allow"}}getMetrics(){return{totalCallsTracked:this.totalCallsTracked,loopsDetected:this.loopsDetected}}clear(){this.callHistory.clear(),this.totalCallsTracked=0,this.loopsDetected=0}createSignature(t,e){let r=JSON.stringify(e??""),i=gp(r),n=`${t}:${r}`;return{hash:gp(n),toolName:t,argsFingerprint:i,timestamp:Date.now()}}},vp={"quality-gate":.05,coverage:.1,"test-generation":.15,learning:.2,default:.12},Vb={thresholds:vp,agentId:"unknown",maxHistorySize:200,fallbackDimension:64},zb=/^(?:Queen[A-Z]|(?:Task|Agent|Workflow|Step|Protocol|Action)[A-Z])/;function Bb(l){let t=l.slice(l.lastIndexOf(".")+1);return zb.test(t)}var hp=6e4,qb=256;function fp(l,t){let e=new Float64Array(t),r=2166136261,i=16777619;for(let a=0;a<l.length;a++){let o=l.charCodeAt(a);r^=o,r=Math.imul(r,16777619),i^=o,i=Math.imul(i,2166136261);let c=(r>>>0)%t;e[c]+=(i>>>0)/4294967295*2-1}let n=0;for(let a=0;a<t;a++)n+=e[a]*e[a];n=Math.sqrt(n);let s=new Array(t);for(let a=0;a<t;a++)s[a]=n===0?0:e[a]/n;return s}var yp=!1,ri=!1,ta=null;async function Gb(){if(yp)return ri;yp=!0;try{let l=await import("./real-embeddings-I2UVNNB3.js");if(typeof l.isTransformerAvailable=="function"&&l.isTransformerAvailable())ta=l.computeRealEmbedding,ri=!0;else try{await l.computeRealEmbedding("probe"),ta=l.computeRealEmbedding,ri=!0}catch(t){un.debug("Transformer probe embedding failed",{error:t instanceof Error?t.message:String(t)}),ri=!1}}catch(l){un.debug("Transformer module import failed",{error:l instanceof Error?l.message:String(l)}),ri=!1}return ri}var ra=class{name="semantic-anti-drift";priority=10;config;history=[];totalChecked=0;driftCount=0;similaritySum=0;unverifiedCount=0;evictedSuppressedWarnings=0;driftWarnings=new Map;emittedPayloadText=new WeakMap;embeddingWarningAt=-1/0;suppressedEmbeddingWarnings=0;constructor(t){this.config={...Vb,...t,thresholds:{...vp,...t?.thresholds}}}async onEmit(t){let e=JSON.stringify(t.payload),r=await this.embedForEvent(e,t,"emit");if(r===null)return t;let i=this.resolveCategory(t.type),n=this.config.thresholds[i]??this.config.thresholds.default,s={embedding:r,driftThreshold:n,sourceAgentId:this.config.agentId,hopCount:0,emittedAt:Date.now()};return this.emittedPayloadText.set(s,e),{...t,semanticFingerprint:s}}async onReceive(t){let e=t.semanticFingerprint;if(!e)return t;let r=JSON.stringify(t.payload),i=1,n=this.emittedPayloadText.get(e);if(this.emittedPayloadText.delete(e),n!==r){let u=await this.embedForEvent(r,t,"receive");if(u===null)return t;i=Ft(u,e.embedding)}let a=1-i>e.driftThreshold;this.totalChecked++,this.similaritySum+=i;let o={drifted:a,cosineSimilarity:i,threshold:e.driftThreshold,eventType:t.type,hopCount:e.hopCount+1,checkedAt:Date.now()};if(this.history.push(o),this.history.length>this.config.maxHistorySize&&this.history.shift(),a){this.driftCount++;let u=Bb(t.type);if(this.warnDrift(t,o,u),await this.emitDriftEvent(t,o),!u)return null}let c={...e,hopCount:e.hopCount+1};return{...t,semanticFingerprint:c}}getDriftHistory(){return this.history}getStats(){return{totalChecked:this.totalChecked,driftCount:this.driftCount,averageSimilarity:this.totalChecked>0?this.similaritySum/this.totalChecked:0,unverifiedCount:this.unverifiedCount}}validateConfig(){for(let[t,e]of Object.entries(this.config.thresholds))if(typeof e!="number"||e<0||e>1)return g(new Error(`Invalid threshold for "${t}": must be between 0 and 1, got ${e}`));return this.config.maxHistorySize<=0?g(new Error("maxHistorySize must be positive")):this.config.fallbackDimension<=0?g(new Error("fallbackDimension must be positive")):f(void 0)}async embed(t){if(await Gb()&&ta){let r=await ta(t);return r.some(i=>i!==0)?r:fp(t,r.length||this.config.fallbackDimension)}return fp(t,this.config.fallbackDimension)}async embedForEvent(t,e,r){try{return await this.embed(t)}catch{this.unverifiedCount++;let i=Date.now();return i-this.embeddingWarningAt<hp?this.suppressedEmbeddingWarnings++:(un.warn("Anti-drift embedding unavailable; event delivered without verification",{eventType:e.type,source:e.source,stage:r,suppressedSinceLastWarning:this.suppressedEmbeddingWarnings}),this.embeddingWarningAt=i,this.suppressedEmbeddingWarnings=0),null}}resolveCategory(t){let e=t.toLowerCase();for(let r of Object.keys(this.config.thresholds))if(r!=="default"&&e.includes(r))return r;return"default"}warnDrift(t,e,r){let i=`${t.type}|${String(t.source)}`,n=Date.now(),s=this.driftWarnings.get(i);if(s&&n-s.lastAt<hp){s.suppressed++;return}!s&&this.driftWarnings.size>=qb&&this.evictOldestDriftWarning();let a=s?.suppressed??0,o=this.evictedSuppressedWarnings;this.evictedSuppressedWarnings=0,this.driftWarnings.delete(i),this.driftWarnings.set(i,{lastAt:n,suppressed:0}),un.warn(r?"Semantic drift detected on a control-plane event; delivered anyway":"Semantic drift detected; event dropped",{eventType:t.type,source:t.source,cosineSimilarity:Number(e.cosineSimilarity.toFixed(4)),cosineDistance:Number((1-e.cosineSimilarity).toFixed(4)),threshold:e.threshold,hopCount:e.hopCount,...a>0?{suppressedSinceLastWarning:a}:{},...o>0?{suppressedForEvictedKeys:o}:{}})}evictOldestDriftWarning(){let t=this.driftWarnings.keys().next();t.done||(this.evictedSuppressedWarnings+=this.driftWarnings.get(t.value)?.suppressed??0,this.driftWarnings.delete(t.value))}async emitDriftEvent(t,e){if(!this.config.onDriftDetected)return;let r={id:`drift-${t.id}-${Date.now()}`,type:"SemanticDriftDetected",timestamp:new Date,source:t.source,correlationId:t.correlationId,payload:{originalEventId:t.id,originalEventType:t.type,cosineSimilarity:e.cosineSimilarity,threshold:e.threshold,hopCount:e.hopCount,agentId:this.config.agentId}};try{await this.config.onDriftDetected(r)}catch(i){un.debug("onDriftDetected callback failed",{error:i instanceof Error?i.message:String(i)})}}};Jc();fr();import*as Hi from"path";import*as Wc from"fs";fr();import{randomUUID as jb}from"crypto";var vl="aqe/bridge/captured-experiences/cursor",Hb=5e3,Wb=100,ia=class{constructor(t,e,r={}){this.eventBus=t;this.memory=e;this.intervalMs=r.intervalMs??Hb,this.batchSize=r.batchSize??Wb}eventBus;memory;cursor=0;intervalId;draining=!1;intervalMs;batchSize;async start(){if(this.intervalId)return;let t=await this.memory.get(vl);this.cursor=typeof t=="number"?t:0,await this.drainSafe(),this.intervalId=setInterval(()=>{this.drainSafe()},this.intervalMs),this.intervalId.unref?.()}async stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0)}async drainOnce(){return this.drainSafe()}async drainSafe(){if(this.draining)return 0;this.draining=!0;try{let t=await this.drain();return await Xc(this.memory,"bridge",{success:!0}),t}catch(t){return console.warn("[CapturedExperienceBridge] drain failed:",t instanceof Error?t.message:t),await Xc(this.memory,"bridge",{success:!1,error:t instanceof Error?t:String(t)}),0}finally{this.draining=!1}}async drain(){let t=hr();if(!t.isInitialized())return 0;let e=t.getDatabase();if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='captured_experiences'").get())return 0;let i=e.prepare(`SELECT rowid, id, task, agent, domain, success, quality,
117
+ Fix: Add '${t}' to domains.enabled in .agentic-qe/config.yaml, or run 'aqe init --auto-migrate' to enable all domains.`)}let n=this.loadPlugin(t,i);this.loading.set(t,n);try{let s=await n;return this.plugins.set(t,s),s}finally{this.loading.delete(t)}}async loadPlugin(t,e){let r=await e(this.eventBus,this.memory);for(let i of r.dependencies)this.isLoaded(i)||await this.load(i);return await r.initialize(),r}async unload(t){let e=this.plugins.get(t);if(e){for(let[r,i]of this.plugins.entries())if(i.dependencies.includes(t))throw new Error(`Cannot unload ${t}: domain ${r} depends on it`);await e.dispose(),this.plugins.delete(t)}}isLoaded(t){return this.plugins.has(t)}getLoaded(){return Array.from(this.plugins.keys())}async loadAll(){let t=Array.from(this.factories.keys()),e=this.topologicalSort(t);for(let r of e)await this.load(r)}topologicalSort(t){let e=[],r=new Set,i=new Set,n=s=>{if(r.has(s))return;if(i.has(s))throw new Error(`Circular dependency detected involving: ${s}`);i.add(s);let o=this.plugins.get(s)?.dependencies??[];for(let c of o)t.includes(c)&&n(c);i.delete(s),r.add(s),e.push(s)};for(let s of t)n(s);return e}getPlugin(t){return this.plugins.get(t)}async disposeAll(){let t=[...this.getLoaded()].reverse();for(let e of t)try{await this.unload(e)}catch(r){Nb.debug("Plugin unload failed, force removing",{domain:e,error:r instanceof Error?r.message:String(r)}),this.plugins.delete(e)}}};Qc();ks();_();var un=A.create("anti-drift-middleware"),_b={maxIdenticalCalls:3,windowMs:3e4,steeringMessage:"Loop detected: the same tool call has been repeated multiple times. Consider an alternative approach or different parameters.",enableFleetLearning:!1};function gp(l){let t=2166136261;for(let e=0;e<l.length;e++)t^=l.charCodeAt(e),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}var ea=class{config;callHistory=new Map;totalCallsTracked=0;loopsDetected=0;constructor(t){this.config={..._b,...t}}trackCall(t,e,r){if(process.env.AQE_LOOP_DETECTION_ENABLED==="false")return{isLoop:!1,callCount:1,signature:this.createSignature(e,r),action:"allow"};let i=this.createSignature(e,r);this.totalCallsTracked++,this.callHistory.has(t)||this.callHistory.set(t,[]);let n=this.callHistory.get(t);n.push(i);let s=Date.now()-this.config.windowMs,a=n.findIndex(c=>c.timestamp>=s);a>0?n.splice(0,a):a===-1&&(n.length=0,n.push(i));let o=n.filter(c=>c.hash===i.hash).length;return o>=this.config.maxIdenticalCalls?(this.loopsDetected++,{isLoop:!0,callCount:o,signature:i,action:"steer",steeringMessage:this.config.steeringMessage}):o===this.config.maxIdenticalCalls-1?{isLoop:!1,callCount:o,signature:i,action:"warn"}:{isLoop:!1,callCount:o,signature:i,action:"allow"}}getMetrics(){return{totalCallsTracked:this.totalCallsTracked,loopsDetected:this.loopsDetected}}clear(){this.callHistory.clear(),this.totalCallsTracked=0,this.loopsDetected=0}createSignature(t,e){let r=JSON.stringify(e??""),i=gp(r),n=`${t}:${r}`;return{hash:gp(n),toolName:t,argsFingerprint:i,timestamp:Date.now()}}},vp={"quality-gate":.05,coverage:.1,"test-generation":.15,learning:.2,default:.12},Vb={thresholds:vp,agentId:"unknown",maxHistorySize:200,fallbackDimension:64},zb=/^(?:Queen[A-Z]|(?:Task|Agent|Workflow|Step|Protocol|Action)[A-Z])/;function Bb(l){let t=l.slice(l.lastIndexOf(".")+1);return zb.test(t)}var hp=6e4,qb=256;function fp(l,t){let e=new Float64Array(t),r=2166136261,i=16777619;for(let a=0;a<l.length;a++){let o=l.charCodeAt(a);r^=o,r=Math.imul(r,16777619),i^=o,i=Math.imul(i,2166136261);let c=(r>>>0)%t;e[c]+=(i>>>0)/4294967295*2-1}let n=0;for(let a=0;a<t;a++)n+=e[a]*e[a];n=Math.sqrt(n);let s=new Array(t);for(let a=0;a<t;a++)s[a]=n===0?0:e[a]/n;return s}var yp=!1,ri=!1,ta=null;async function Gb(){if(yp)return ri;yp=!0;try{let l=await import("./real-embeddings-DYIOLKQ3.js");if(typeof l.isTransformerAvailable=="function"&&l.isTransformerAvailable())ta=l.computeRealEmbedding,ri=!0;else try{await l.computeRealEmbedding("probe"),ta=l.computeRealEmbedding,ri=!0}catch(t){un.debug("Transformer probe embedding failed",{error:t instanceof Error?t.message:String(t)}),ri=!1}}catch(l){un.debug("Transformer module import failed",{error:l instanceof Error?l.message:String(l)}),ri=!1}return ri}var ra=class{name="semantic-anti-drift";priority=10;config;history=[];totalChecked=0;driftCount=0;similaritySum=0;unverifiedCount=0;evictedSuppressedWarnings=0;driftWarnings=new Map;emittedPayloadText=new WeakMap;embeddingWarningAt=-1/0;suppressedEmbeddingWarnings=0;constructor(t){this.config={...Vb,...t,thresholds:{...vp,...t?.thresholds}}}async onEmit(t){let e=JSON.stringify(t.payload),r=await this.embedForEvent(e,t,"emit");if(r===null)return t;let i=this.resolveCategory(t.type),n=this.config.thresholds[i]??this.config.thresholds.default,s={embedding:r,driftThreshold:n,sourceAgentId:this.config.agentId,hopCount:0,emittedAt:Date.now()};return this.emittedPayloadText.set(s,e),{...t,semanticFingerprint:s}}async onReceive(t){let e=t.semanticFingerprint;if(!e)return t;let r=JSON.stringify(t.payload),i=1,n=this.emittedPayloadText.get(e);if(this.emittedPayloadText.delete(e),n!==r){let u=await this.embedForEvent(r,t,"receive");if(u===null)return t;i=Ft(u,e.embedding)}let a=1-i>e.driftThreshold;this.totalChecked++,this.similaritySum+=i;let o={drifted:a,cosineSimilarity:i,threshold:e.driftThreshold,eventType:t.type,hopCount:e.hopCount+1,checkedAt:Date.now()};if(this.history.push(o),this.history.length>this.config.maxHistorySize&&this.history.shift(),a){this.driftCount++;let u=Bb(t.type);if(this.warnDrift(t,o,u),await this.emitDriftEvent(t,o),!u)return null}let c={...e,hopCount:e.hopCount+1};return{...t,semanticFingerprint:c}}getDriftHistory(){return this.history}getStats(){return{totalChecked:this.totalChecked,driftCount:this.driftCount,averageSimilarity:this.totalChecked>0?this.similaritySum/this.totalChecked:0,unverifiedCount:this.unverifiedCount}}validateConfig(){for(let[t,e]of Object.entries(this.config.thresholds))if(typeof e!="number"||e<0||e>1)return g(new Error(`Invalid threshold for "${t}": must be between 0 and 1, got ${e}`));return this.config.maxHistorySize<=0?g(new Error("maxHistorySize must be positive")):this.config.fallbackDimension<=0?g(new Error("fallbackDimension must be positive")):f(void 0)}async embed(t){if(await Gb()&&ta){let r=await ta(t);return r.some(i=>i!==0)?r:fp(t,r.length||this.config.fallbackDimension)}return fp(t,this.config.fallbackDimension)}async embedForEvent(t,e,r){try{return await this.embed(t)}catch{this.unverifiedCount++;let i=Date.now();return i-this.embeddingWarningAt<hp?this.suppressedEmbeddingWarnings++:(un.warn("Anti-drift embedding unavailable; event delivered without verification",{eventType:e.type,source:e.source,stage:r,suppressedSinceLastWarning:this.suppressedEmbeddingWarnings}),this.embeddingWarningAt=i,this.suppressedEmbeddingWarnings=0),null}}resolveCategory(t){let e=t.toLowerCase();for(let r of Object.keys(this.config.thresholds))if(r!=="default"&&e.includes(r))return r;return"default"}warnDrift(t,e,r){let i=`${t.type}|${String(t.source)}`,n=Date.now(),s=this.driftWarnings.get(i);if(s&&n-s.lastAt<hp){s.suppressed++;return}!s&&this.driftWarnings.size>=qb&&this.evictOldestDriftWarning();let a=s?.suppressed??0,o=this.evictedSuppressedWarnings;this.evictedSuppressedWarnings=0,this.driftWarnings.delete(i),this.driftWarnings.set(i,{lastAt:n,suppressed:0}),un.warn(r?"Semantic drift detected on a control-plane event; delivered anyway":"Semantic drift detected; event dropped",{eventType:t.type,source:t.source,cosineSimilarity:Number(e.cosineSimilarity.toFixed(4)),cosineDistance:Number((1-e.cosineSimilarity).toFixed(4)),threshold:e.threshold,hopCount:e.hopCount,...a>0?{suppressedSinceLastWarning:a}:{},...o>0?{suppressedForEvictedKeys:o}:{}})}evictOldestDriftWarning(){let t=this.driftWarnings.keys().next();t.done||(this.evictedSuppressedWarnings+=this.driftWarnings.get(t.value)?.suppressed??0,this.driftWarnings.delete(t.value))}async emitDriftEvent(t,e){if(!this.config.onDriftDetected)return;let r={id:`drift-${t.id}-${Date.now()}`,type:"SemanticDriftDetected",timestamp:new Date,source:t.source,correlationId:t.correlationId,payload:{originalEventId:t.id,originalEventType:t.type,cosineSimilarity:e.cosineSimilarity,threshold:e.threshold,hopCount:e.hopCount,agentId:this.config.agentId}};try{await this.config.onDriftDetected(r)}catch(i){un.debug("onDriftDetected callback failed",{error:i instanceof Error?i.message:String(i)})}}};Jc();fr();import*as Hi from"path";import*as Wc from"fs";fr();import{randomUUID as jb}from"crypto";var vl="aqe/bridge/captured-experiences/cursor",Hb=5e3,Wb=100,ia=class{constructor(t,e,r={}){this.eventBus=t;this.memory=e;this.intervalMs=r.intervalMs??Hb,this.batchSize=r.batchSize??Wb}eventBus;memory;cursor=0;intervalId;draining=!1;intervalMs;batchSize;async start(){if(this.intervalId)return;let t=await this.memory.get(vl);this.cursor=typeof t=="number"?t:0,await this.drainSafe(),this.intervalId=setInterval(()=>{this.drainSafe()},this.intervalMs),this.intervalId.unref?.()}async stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0)}async drainOnce(){return this.drainSafe()}async drainSafe(){if(this.draining)return 0;this.draining=!0;try{let t=await this.drain();return await Xc(this.memory,"bridge",{success:!0}),t}catch(t){return console.warn("[CapturedExperienceBridge] drain failed:",t instanceof Error?t.message:t),await Xc(this.memory,"bridge",{success:!1,error:t instanceof Error?t:String(t)}),0}finally{this.draining=!1}}async drain(){let t=hr();if(!t.isInitialized())return 0;let e=t.getDatabase();if(!e.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='captured_experiences'").get())return 0;let i=e.prepare(`SELECT rowid, id, task, agent, domain, success, quality,
118
118
  duration_ms, source, completed_at
119
119
  FROM captured_experiences
120
120
  WHERE rowid > ?
@@ -2047,7 +2047,7 @@ ${t}
2047
2047
  Return a JSON array of test suggestions, each with: { "name": "test name", "description": "what to test", "type": "unit|integration|edge" }`},{role:"user",content:`Analyze this ${r} code and suggest test cases:
2048
2048
  \`\`\`${this.getCodeFenceLanguage(r)}
2049
2049
  ${t}
2050
- \`\`\``}],model:i,maxTokens:1024,temperature:.5,agentType:"qe-test-architect"});if(n.content)try{let s=n.content.match(/\[[\s\S]*\]/);if(s)return D(s[0]).map(o=>o.name)}catch{}return[]}catch{return ma.warn("LLM suggestion generation failed:"),[]}}async generateTests(t){try{Ns(t.behaviorExamples);let e=Fp({sourceFiles:t.sourceFiles,language:t.language,framework:t.framework,projectRoot:t.projectRoot}),r=t.framework||e?.framework||"vitest",i=t.language||e?.language,{sourceFiles:n,testType:s,patterns:a=[]}=t;if(t.behaviorExamples?.length&&n.length!==1)return g(new bt("behaviorExamples requires exactly one source file"));if(n.length===0)return g(new Error("No source files provided"));let o=[],c=[],u=[];for(let m of n){let p=await this.generateTestsForFile(m,s,r,a,i,t);p.success&&(o.push(...p.value.tests),c.push(...p.value.patternsUsed),u.push(...p.value.patternIds))}if(process.env.AQE_HOLDOUT_TESTING_ENABLED==="true")for(let m of o)Cw(m.id)&&(m.holdout=!0);let d=null;return await this.storeGenerationMetadata(o,c),f({tests:o,coverageEstimate:d,patternsUsed:Array.from(new Set(c)),patternIds:Array.from(new Set(u))})}catch(e){return g(y(e))}}async generateForCoverageGap(t,e,r){try{if(e.length===0)return f([]);let i=[],n=this.groupConsecutiveLines(e),s=this.generatorFactory.supports(r)?r:this.config.defaultFramework;for(let a of n){let o=await this.generateTestForLines(t,a,s);o&&i.push(o)}return f(i)}catch(i){return g(y(i))}}async generateTDDTests(t){try{let e=await this.tddGenerator.generateTDDTests(t);return f(e)}catch(e){return g(y(e))}}async generatePropertyTests(t){try{let e=await this.propertyTestGenerator.generatePropertyTests(t);return f(e)}catch(e){return g(y(e))}}async generateTestData(t){try{let e=await this.testDataGenerator.generateTestData(t);return f(e)}catch(e){return g(y(e))}}async generateTestsForFile(t,e,r,i,n,s){let a=this.getTestFilePath(t,r),o=[],c=[],u=await this.findApplicablePatterns(t,i);o.push(...u.map(U=>U.name)),c.push(...u.map(U=>U.id));let d=null,m="";try{m=Kr(t,{outsideRoot:"allow"}),d=await this.analyzeSourceCode(m,t)}catch{}let p,h;this.memory&&m&&await this.hasKGVectors()&&(p=await this.queryKGDependencies(t,m),h=await this.queryKGSimilarCode(m));let b=this.generatorFactory.create(r),v=this.extractModuleName(t),C=s?.importPathOverrides?.[t]??this.getImportPath(t),S={moduleName:v,importPath:C,testType:e,patterns:u,analysis:d??void 0,dependencies:p,similarCode:h},T=(s?.behaviorExamples?.length??0)>0,x=/\.(?:[cm]?[jt]s|[jt]sx)$/i.test(t),R=(this.usesDefaultGenerator||T)&&e==="unit"&&x&&["vitest","jest","node-test"].includes(r);if(T&&!R)throw new bt("Behavior examples require JavaScript/TypeScript and vitest, jest, or node-test");let I=()=>Sp(m,t,s?.importPathOverrides?.[t]??wr.resolve(t),r,s?.behaviorExamples,e),M=this.isLLMEnhancementAvailable()&&!!m&&!T,q=R&&!M?I():void 0,G=q?.code??b.generateTests(S),O=!1;if(M){let U=await this.enhanceTestWithLLM(G,m,d,t,S,s?.importPathOverrides?.[t]===void 0);O=U.enhanced,O?G=U.code:R&&(q=I(),G=q.code)}let Y={id:w(),name:`${v} tests`,sourceFile:t,testFile:a,testCode:G,type:e,assertions:q&&!O?q.assertions:this.countAssertions(G),...!O&&q?{generationMode:q.mode,generationLimits:q.limits}:{},language:n,framework:r,llmEnhanced:O};if(s?.compileValidation&&n)try{let U=await $p.validate(G,n,s.projectRoot);Y.compilationValidated=U.compiles,U.compiles||(Y.compilationErrors=U.errors.map(Wi=>Wi.message))}catch{}return this.qualityGate&&(Y.qualityGateResult=this.qualityGate.validate(G,t,m||void 0)),f({tests:[Y],patternsUsed:o,patternIds:c})}async generateTestForLines(t,e,r){if(e.length===0)return null;let i=w(),n=this.getTestFilePath(t,r),s=this.extractModuleName(t),a=this.getImportPath(t),c=this.generatorFactory.create(r).generateCoverageTests(s,a,e);return{id:i,name:`Coverage test for lines ${e[0]}-${e[e.length-1]}`,sourceFile:t,testFile:n,testCode:c,type:"unit",assertions:this.countAssertions(c)}}async analyzeSourceCode(t,e){let r=wr.extname(e),i=Bt(r);if(i&&i!=="typescript"&&i!=="javascript"){let c=await Zi.parseFile(t,e,i);if(c)return Gt.convertParsedFile(c)}let n=E.createSourceFile(wr.basename(e),t,E.ScriptTarget.Latest,!0,E.ScriptKind.TS),s=[],a=[],o=c=>{if(E.isFunctionDeclaration(c)&&c.name)s.push(this.extractFunctionInfo(c,n));else if(E.isVariableStatement(c)){for(let u of c.declarationList.declarations)if(E.isVariableDeclaration(u)&&u.initializer&&(E.isArrowFunction(u.initializer)||E.isFunctionExpression(u.initializer))){let d=u.name.getText(n);s.push(this.extractArrowFunctionInfo(d,u.initializer,n,c))}}else E.isClassDeclaration(c)&&c.name&&a.push(this.extractClassInfo(c,n));E.forEachChild(c,o)};return E.forEachChild(n,o),{functions:s,classes:a}}extractFunctionInfo(t,e){let r=t.name?.getText(e)||"anonymous",i=this.extractParameters(t.parameters,e),n=t.type?.getText(e),s=t.modifiers?.some(u=>u.kind===E.SyntaxKind.AsyncKeyword)??!1,a=t.modifiers?.some(u=>u.kind===E.SyntaxKind.ExportKeyword)??!1,{line:o}=e.getLineAndCharacterOfPosition(t.getStart(e)),{line:c}=e.getLineAndCharacterOfPosition(t.getEnd());return{name:r,parameters:i,returnType:n,isAsync:s,isExported:a,complexity:this.calculateComplexity(t),startLine:o+1,endLine:c+1,body:t.body?.getText(e)}}extractArrowFunctionInfo(t,e,r,i){let n=this.extractParameters(e.parameters,r),s=e.type?.getText(r),a=e.modifiers?.some(d=>d.kind===E.SyntaxKind.AsyncKeyword)??!1,o=E.isVariableStatement(i)&&(i.modifiers?.some(d=>d.kind===E.SyntaxKind.ExportKeyword)??!1),{line:c}=r.getLineAndCharacterOfPosition(e.getStart(r)),{line:u}=r.getLineAndCharacterOfPosition(e.getEnd());return{name:t,parameters:n,returnType:s,isAsync:a,isExported:o,complexity:this.calculateComplexity(e),startLine:c+1,endLine:u+1,body:e.body?.getText(r)}}extractClassInfo(t,e){let r=t.name?.getText(e)||"AnonymousClass",i=[],n=[],s=!1,a,o=t.modifiers?.some(c=>c.kind===E.SyntaxKind.ExportKeyword)??!1;for(let c of t.members)if(E.isMethodDeclaration(c)){let u=c.name.getText(e),d=this.extractParameters(c.parameters,e),m=c.type?.getText(e),p=c.modifiers?.some(v=>v.kind===E.SyntaxKind.AsyncKeyword)??!1,{line:h}=e.getLineAndCharacterOfPosition(c.getStart(e)),{line:b}=e.getLineAndCharacterOfPosition(c.getEnd());i.push({name:u,parameters:d,returnType:m,isAsync:p,isExported:!1,complexity:this.calculateComplexity(c),startLine:h+1,endLine:b+1,body:c.body?.getText(e)})}else if(E.isConstructorDeclaration(c))s=!0,a=this.extractParameters(c.parameters,e);else if(E.isPropertyDeclaration(c)){let u=c.name.getText(e),d=c.type?.getText(e),m=c.modifiers?.some(h=>h.kind===E.SyntaxKind.PrivateKeyword)??!1,p=c.modifiers?.some(h=>h.kind===E.SyntaxKind.ReadonlyKeyword)??!1;n.push({name:u,type:d,isPrivate:m,isReadonly:p})}return{name:r,methods:i,properties:n,isExported:o,hasConstructor:s,constructorParams:a}}extractParameters(t,e){let r=0,i=0;return t.map(n=>{let s=n.name.getText(e),a=n.type?.getText(e);return E.isObjectBindingPattern(n.name)?(r++,s=r>1?`options${r}`:"options",a||(a=`{ ${n.name.elements.map(c=>`${c.name.getText(e)}: unknown`).join(", ")} }`)):E.isArrayBindingPattern(n.name)&&(i++,s=i>1?`items${i}`:"items",a||(a="unknown[]")),{name:s,type:a,optional:n.questionToken!==void 0,defaultValue:n.initializer?.getText(e)}})}calculateComplexity(t){let e=1,r=i=>{switch(i.kind){case E.SyntaxKind.IfStatement:case E.SyntaxKind.ForStatement:case E.SyntaxKind.ForInStatement:case E.SyntaxKind.ForOfStatement:case E.SyntaxKind.WhileStatement:case E.SyntaxKind.DoStatement:case E.SyntaxKind.CaseClause:case E.SyntaxKind.CatchClause:case E.SyntaxKind.ConditionalExpression:e++;break;case E.SyntaxKind.BinaryExpression:{let n=i;(n.operatorToken.kind===E.SyntaxKind.AmpersandAmpersandToken||n.operatorToken.kind===E.SyntaxKind.BarBarToken)&&e++;break}}E.forEachChild(i,r)};return E.forEachChild(t,r),e}async hasKGVectors(){try{let t=new Array(384).fill(0);return t[0]=1,(await this.memory.vectorSearch(t,1)).length>0}catch{return!1}}async queryKGDependencies(t,e){try{let r=[],i=[],n=[],s=[],a=e.matchAll(/(?:import|from)\s+['"]([^'"]+)['"]/g);for(let m of a)r.push(m[1]);if(t.endsWith(".py")){let m=e.matchAll(/(?:^|\n)\s*(?:from\s+(\S+)\s+import|import\s+(\S+))/g);for(let p of m){let h=p[1]||p[2];h&&/^[a-zA-Z_][\w.]*$/.test(h)&&r.push(h)}}let u=t.replace(/\\/g,"/").split("/").pop()?.replace(/\.(ts|js|tsx|jsx|py)$/,"")||"",d=await this.memory.search(`code-intelligence:kg:node:*${u}*`,50,{namespace:"code-intelligence:kg"});for(let m of d){if(!m.includes(u))continue;let p=m.split(":"),h=p[p.length-2],b=p[p.length-1];h==="function"&&n.push(b)}return r.length===0&&i.length===0&&n.length===0&&s.length===0?void 0:{imports:r,importedBy:i,callees:n,callers:s}}catch{return}}async queryKGSimilarCode(t){try{let e=this.generatePseudoEmbedding(t),r=await this.memory.vectorSearch(e,5);if(r.length===0)return;let i=[];for(let n of r){if(n.score<.1)continue;let s=n.metadata,a=s?.file||n.key,o=s?.name||s?.type||n.key.split(":").pop()||"";i.push({file:a,snippet:o,score:n.score})}return i.length>0?{snippets:i}:void 0}catch{return}}generatePseudoEmbedding(t){let r=new Array(384).fill(0),i=t.split(/[^a-zA-Z0-9_$]+/).filter(s=>s.length>1);for(let s=0;s<i.length;s++){let a=i[s];for(let o=0;o<a.length&&o<r.length;o++)r[(s+o)%384]+=a.charCodeAt(o)/1e3}let n=Math.sqrt(r.reduce((s,a)=>s+a*a,0));if(n>0)for(let s=0;s<384;s++)r[s]/=n;return r}getCodeFenceLanguage(t){try{let{FRAMEWORK_TO_LANGUAGE:e}=(ii(),Wr(Tp)),r=e?.[t];if(r){let i=Np(r);if(i)return i.codeFenceLanguage}}catch{}return"typescript"}convertParsedToCodeAnalysis(t){return Gt.convertParsedFile(t)}async findApplicablePatterns(t,e){let r=[];try{let{getUnifiedMemory:i}=await import("./unified-memory-QARWQKJ2.js"),n=i().getDatabase();for(let o of e){let c=n.prepare(`SELECT id, name, description, pattern_type, usage_count, quality_score
2050
+ \`\`\``}],model:i,maxTokens:1024,temperature:.5,agentType:"qe-test-architect"});if(n.content)try{let s=n.content.match(/\[[\s\S]*\]/);if(s)return D(s[0]).map(o=>o.name)}catch{}return[]}catch{return ma.warn("LLM suggestion generation failed:"),[]}}async generateTests(t){try{Ns(t.behaviorExamples);let e=Fp({sourceFiles:t.sourceFiles,language:t.language,framework:t.framework,projectRoot:t.projectRoot}),r=t.framework||e?.framework||"vitest",i=t.language||e?.language,{sourceFiles:n,testType:s,patterns:a=[]}=t;if(t.behaviorExamples?.length&&n.length!==1)return g(new bt("behaviorExamples requires exactly one source file"));if(n.length===0)return g(new Error("No source files provided"));let o=[],c=[],u=[];for(let m of n){let p=await this.generateTestsForFile(m,s,r,a,i,t);p.success&&(o.push(...p.value.tests),c.push(...p.value.patternsUsed),u.push(...p.value.patternIds))}if(process.env.AQE_HOLDOUT_TESTING_ENABLED==="true")for(let m of o)Cw(m.id)&&(m.holdout=!0);let d=null;return await this.storeGenerationMetadata(o,c),f({tests:o,coverageEstimate:d,patternsUsed:Array.from(new Set(c)),patternIds:Array.from(new Set(u))})}catch(e){return g(y(e))}}async generateForCoverageGap(t,e,r){try{if(e.length===0)return f([]);let i=[],n=this.groupConsecutiveLines(e),s=this.generatorFactory.supports(r)?r:this.config.defaultFramework;for(let a of n){let o=await this.generateTestForLines(t,a,s);o&&i.push(o)}return f(i)}catch(i){return g(y(i))}}async generateTDDTests(t){try{let e=await this.tddGenerator.generateTDDTests(t);return f(e)}catch(e){return g(y(e))}}async generatePropertyTests(t){try{let e=await this.propertyTestGenerator.generatePropertyTests(t);return f(e)}catch(e){return g(y(e))}}async generateTestData(t){try{let e=await this.testDataGenerator.generateTestData(t);return f(e)}catch(e){return g(y(e))}}async generateTestsForFile(t,e,r,i,n,s){let a=this.getTestFilePath(t,r),o=[],c=[],u=await this.findApplicablePatterns(t,i);o.push(...u.map(U=>U.name)),c.push(...u.map(U=>U.id));let d=null,m="";try{m=Kr(t,{outsideRoot:"allow"}),d=await this.analyzeSourceCode(m,t)}catch{}let p,h;this.memory&&m&&await this.hasKGVectors()&&(p=await this.queryKGDependencies(t,m),h=await this.queryKGSimilarCode(m));let b=this.generatorFactory.create(r),v=this.extractModuleName(t),C=s?.importPathOverrides?.[t]??this.getImportPath(t),S={moduleName:v,importPath:C,testType:e,patterns:u,analysis:d??void 0,dependencies:p,similarCode:h},T=(s?.behaviorExamples?.length??0)>0,x=/\.(?:[cm]?[jt]s|[jt]sx)$/i.test(t),R=(this.usesDefaultGenerator||T)&&e==="unit"&&x&&["vitest","jest","node-test"].includes(r);if(T&&!R)throw new bt("Behavior examples require JavaScript/TypeScript and vitest, jest, or node-test");let I=()=>Sp(m,t,s?.importPathOverrides?.[t]??wr.resolve(t),r,s?.behaviorExamples,e),M=this.isLLMEnhancementAvailable()&&!!m&&!T,q=R&&!M?I():void 0,G=q?.code??b.generateTests(S),O=!1;if(M){let U=await this.enhanceTestWithLLM(G,m,d,t,S,s?.importPathOverrides?.[t]===void 0);O=U.enhanced,O?G=U.code:R&&(q=I(),G=q.code)}let Y={id:w(),name:`${v} tests`,sourceFile:t,testFile:a,testCode:G,type:e,assertions:q&&!O?q.assertions:this.countAssertions(G),...!O&&q?{generationMode:q.mode,generationLimits:q.limits}:{},language:n,framework:r,llmEnhanced:O};if(s?.compileValidation&&n)try{let U=await $p.validate(G,n,s.projectRoot);Y.compilationValidated=U.compiles,U.compiles||(Y.compilationErrors=U.errors.map(Wi=>Wi.message))}catch{}return this.qualityGate&&(Y.qualityGateResult=this.qualityGate.validate(G,t,m||void 0)),f({tests:[Y],patternsUsed:o,patternIds:c})}async generateTestForLines(t,e,r){if(e.length===0)return null;let i=w(),n=this.getTestFilePath(t,r),s=this.extractModuleName(t),a=this.getImportPath(t),c=this.generatorFactory.create(r).generateCoverageTests(s,a,e);return{id:i,name:`Coverage test for lines ${e[0]}-${e[e.length-1]}`,sourceFile:t,testFile:n,testCode:c,type:"unit",assertions:this.countAssertions(c)}}async analyzeSourceCode(t,e){let r=wr.extname(e),i=Bt(r);if(i&&i!=="typescript"&&i!=="javascript"){let c=await Zi.parseFile(t,e,i);if(c)return Gt.convertParsedFile(c)}let n=E.createSourceFile(wr.basename(e),t,E.ScriptTarget.Latest,!0,E.ScriptKind.TS),s=[],a=[],o=c=>{if(E.isFunctionDeclaration(c)&&c.name)s.push(this.extractFunctionInfo(c,n));else if(E.isVariableStatement(c)){for(let u of c.declarationList.declarations)if(E.isVariableDeclaration(u)&&u.initializer&&(E.isArrowFunction(u.initializer)||E.isFunctionExpression(u.initializer))){let d=u.name.getText(n);s.push(this.extractArrowFunctionInfo(d,u.initializer,n,c))}}else E.isClassDeclaration(c)&&c.name&&a.push(this.extractClassInfo(c,n));E.forEachChild(c,o)};return E.forEachChild(n,o),{functions:s,classes:a}}extractFunctionInfo(t,e){let r=t.name?.getText(e)||"anonymous",i=this.extractParameters(t.parameters,e),n=t.type?.getText(e),s=t.modifiers?.some(u=>u.kind===E.SyntaxKind.AsyncKeyword)??!1,a=t.modifiers?.some(u=>u.kind===E.SyntaxKind.ExportKeyword)??!1,{line:o}=e.getLineAndCharacterOfPosition(t.getStart(e)),{line:c}=e.getLineAndCharacterOfPosition(t.getEnd());return{name:r,parameters:i,returnType:n,isAsync:s,isExported:a,complexity:this.calculateComplexity(t),startLine:o+1,endLine:c+1,body:t.body?.getText(e)}}extractArrowFunctionInfo(t,e,r,i){let n=this.extractParameters(e.parameters,r),s=e.type?.getText(r),a=e.modifiers?.some(d=>d.kind===E.SyntaxKind.AsyncKeyword)??!1,o=E.isVariableStatement(i)&&(i.modifiers?.some(d=>d.kind===E.SyntaxKind.ExportKeyword)??!1),{line:c}=r.getLineAndCharacterOfPosition(e.getStart(r)),{line:u}=r.getLineAndCharacterOfPosition(e.getEnd());return{name:t,parameters:n,returnType:s,isAsync:a,isExported:o,complexity:this.calculateComplexity(e),startLine:c+1,endLine:u+1,body:e.body?.getText(r)}}extractClassInfo(t,e){let r=t.name?.getText(e)||"AnonymousClass",i=[],n=[],s=!1,a,o=t.modifiers?.some(c=>c.kind===E.SyntaxKind.ExportKeyword)??!1;for(let c of t.members)if(E.isMethodDeclaration(c)){let u=c.name.getText(e),d=this.extractParameters(c.parameters,e),m=c.type?.getText(e),p=c.modifiers?.some(v=>v.kind===E.SyntaxKind.AsyncKeyword)??!1,{line:h}=e.getLineAndCharacterOfPosition(c.getStart(e)),{line:b}=e.getLineAndCharacterOfPosition(c.getEnd());i.push({name:u,parameters:d,returnType:m,isAsync:p,isExported:!1,complexity:this.calculateComplexity(c),startLine:h+1,endLine:b+1,body:c.body?.getText(e)})}else if(E.isConstructorDeclaration(c))s=!0,a=this.extractParameters(c.parameters,e);else if(E.isPropertyDeclaration(c)){let u=c.name.getText(e),d=c.type?.getText(e),m=c.modifiers?.some(h=>h.kind===E.SyntaxKind.PrivateKeyword)??!1,p=c.modifiers?.some(h=>h.kind===E.SyntaxKind.ReadonlyKeyword)??!1;n.push({name:u,type:d,isPrivate:m,isReadonly:p})}return{name:r,methods:i,properties:n,isExported:o,hasConstructor:s,constructorParams:a}}extractParameters(t,e){let r=0,i=0;return t.map(n=>{let s=n.name.getText(e),a=n.type?.getText(e);return E.isObjectBindingPattern(n.name)?(r++,s=r>1?`options${r}`:"options",a||(a=`{ ${n.name.elements.map(c=>`${c.name.getText(e)}: unknown`).join(", ")} }`)):E.isArrayBindingPattern(n.name)&&(i++,s=i>1?`items${i}`:"items",a||(a="unknown[]")),{name:s,type:a,optional:n.questionToken!==void 0,defaultValue:n.initializer?.getText(e)}})}calculateComplexity(t){let e=1,r=i=>{switch(i.kind){case E.SyntaxKind.IfStatement:case E.SyntaxKind.ForStatement:case E.SyntaxKind.ForInStatement:case E.SyntaxKind.ForOfStatement:case E.SyntaxKind.WhileStatement:case E.SyntaxKind.DoStatement:case E.SyntaxKind.CaseClause:case E.SyntaxKind.CatchClause:case E.SyntaxKind.ConditionalExpression:e++;break;case E.SyntaxKind.BinaryExpression:{let n=i;(n.operatorToken.kind===E.SyntaxKind.AmpersandAmpersandToken||n.operatorToken.kind===E.SyntaxKind.BarBarToken)&&e++;break}}E.forEachChild(i,r)};return E.forEachChild(t,r),e}async hasKGVectors(){try{let t=new Array(384).fill(0);return t[0]=1,(await this.memory.vectorSearch(t,1)).length>0}catch{return!1}}async queryKGDependencies(t,e){try{let r=[],i=[],n=[],s=[],a=e.matchAll(/(?:import|from)\s+['"]([^'"]+)['"]/g);for(let m of a)r.push(m[1]);if(t.endsWith(".py")){let m=e.matchAll(/(?:^|\n)\s*(?:from\s+(\S+)\s+import|import\s+(\S+))/g);for(let p of m){let h=p[1]||p[2];h&&/^[a-zA-Z_][\w.]*$/.test(h)&&r.push(h)}}let u=t.replace(/\\/g,"/").split("/").pop()?.replace(/\.(ts|js|tsx|jsx|py)$/,"")||"",d=await this.memory.search(`code-intelligence:kg:node:*${u}*`,50,{namespace:"code-intelligence:kg"});for(let m of d){if(!m.includes(u))continue;let p=m.split(":"),h=p[p.length-2],b=p[p.length-1];h==="function"&&n.push(b)}return r.length===0&&i.length===0&&n.length===0&&s.length===0?void 0:{imports:r,importedBy:i,callees:n,callers:s}}catch{return}}async queryKGSimilarCode(t){try{let e=this.generatePseudoEmbedding(t),r=await this.memory.vectorSearch(e,5);if(r.length===0)return;let i=[];for(let n of r){if(n.score<.1)continue;let s=n.metadata,a=s?.file||n.key,o=s?.name||s?.type||n.key.split(":").pop()||"";i.push({file:a,snippet:o,score:n.score})}return i.length>0?{snippets:i}:void 0}catch{return}}generatePseudoEmbedding(t){let r=new Array(384).fill(0),i=t.split(/[^a-zA-Z0-9_$]+/).filter(s=>s.length>1);for(let s=0;s<i.length;s++){let a=i[s];for(let o=0;o<a.length&&o<r.length;o++)r[(s+o)%384]+=a.charCodeAt(o)/1e3}let n=Math.sqrt(r.reduce((s,a)=>s+a*a,0));if(n>0)for(let s=0;s<384;s++)r[s]/=n;return r}getCodeFenceLanguage(t){try{let{FRAMEWORK_TO_LANGUAGE:e}=(ii(),Wr(Tp)),r=e?.[t];if(r){let i=Np(r);if(i)return i.codeFenceLanguage}}catch{}return"typescript"}convertParsedToCodeAnalysis(t){return Gt.convertParsedFile(t)}async findApplicablePatterns(t,e){let r=[];try{let{getUnifiedMemory:i}=await import("./unified-memory-FZ5K2C7W.js"),n=i().getDatabase();for(let o of e){let c=n.prepare(`SELECT id, name, description, pattern_type, usage_count, quality_score
2051
2051
  FROM qe_patterns WHERE id = ? OR name = ? LIMIT 1`).get(o,o);c&&r.push({id:c.id,name:c.name,structure:c.pattern_type,examples:c.usage_count,applicability:c.quality_score})}let s=t.split(".").pop()||"",a=n.prepare(`SELECT id, name, description, pattern_type, usage_count, quality_score
2052
2052
  FROM qe_patterns
2053
2053
  WHERE qe_domain = 'test-generation'
@@ -2137,7 +2137,7 @@ Individual assessments:`),t.forEach(s=>{let a=this.countsAsAgreement(s)?"\u2713
2137
2137
  created_at TEXT DEFAULT (datetime('now')),
2138
2138
  updated_at TEXT DEFAULT (datetime('now'))
2139
2139
  );
2140
- `,cu={loadOnInit:!0,autoSaveInterval:0,maxPatternsToLoad:1e4,enableCrossProcessSharing:!0},ba=class{baseEngine;config;persistence=null;db=null;prepared=new Map;initialized=!1;initPromise=null;pendingSaves=new Map;saveTimer=null;consecutiveSaveFailures=0;serverClient=null;constructor(t){this.config={...cu,...t},this.baseEngine=new Qm(t),this.serverClient=t.serverClient??null}async initialize(){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInitialize()),this.initPromise}async _doInitialize(){if(!this.initialized)try{this.persistence=Ms(),this.persistence.isInitialized()||await this.persistence.initialize(),this.db=this.persistence.getDatabase(),this.ensureSchema(),this.prepareStatements(),this.config.loadOnInit&&await this.loadPatterns();let{isSONAThreeLoopEnabled:t}=await import("./feature-flags-5JCSKL2P.js");if(t()){this.baseEngine.initThreeLoopEngine(),this.baseEngine.setFisherPersistence((r,i,n,s,a)=>{this.saveFisherMatrix(r,i,n,s,a)},this.config.domain);let e=this._loadFisherMatrixUnsafe(this.config.domain);if(e){let r=this.baseEngine.getThreeLoopEngine();r&&(r.restoreFisher({fisherDiagonal:e.fisherDiagonal,optimalParams:e.optimalParams,baseWeights:e.baseWeights,requestCount:e.requestCount}),li.info("Three-loop engine restored Fisher state from SQLite",{domain:this.config.domain,requestCount:e.requestCount,taskBoundaries:e.taskBoundaries}))}else{let r=this._loadRequestCountUnsafe(this.config.domain);if(r!==null){let i=this.baseEngine.getThreeLoopEngine();i&&(i.restoreRequestCount(r),li.info("Three-loop engine restored request count independently of Fisher state",{domain:this.config.domain,requestCount:r}))}}li.info("Three-loop engine initialized with Fisher persistence",{domain:this.config.domain})}this.initialized=!0,console.log(`[PersistentSONAEngine] Initialized: domain=${this.config.domain}`)}catch(t){throw this.initPromise=null,new Error(`Failed to initialize PersistentSONAEngine: ${P(t)}`)}}ensureSchema(){if(!this.db)throw new Error("Database not initialized");this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='sona_patterns'").get()||(console.log("[PersistentSONAEngine] Creating sona_patterns table"),this.db.exec(tg)),this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='sona_fisher_matrices'").get()||(console.log("[PersistentSONAEngine] Creating sona_fisher_matrices table"),this.db.exec(rg))}prepareStatements(){if(!this.db)throw new Error("Database not initialized");this.prepared.set("getById",this.db.prepare("SELECT * FROM sona_patterns WHERE id = ?")),this.prepared.set("getByDomain",this.db.prepare(`
2140
+ `,cu={loadOnInit:!0,autoSaveInterval:0,maxPatternsToLoad:1e4,enableCrossProcessSharing:!0},ba=class{baseEngine;config;persistence=null;db=null;prepared=new Map;initialized=!1;initPromise=null;pendingSaves=new Map;saveTimer=null;consecutiveSaveFailures=0;serverClient=null;constructor(t){this.config={...cu,...t},this.baseEngine=new Qm(t),this.serverClient=t.serverClient??null}async initialize(){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInitialize()),this.initPromise}async _doInitialize(){if(!this.initialized)try{this.persistence=Ms(),this.persistence.isInitialized()||await this.persistence.initialize(),this.db=this.persistence.getDatabase(),this.ensureSchema(),this.prepareStatements(),this.config.loadOnInit&&await this.loadPatterns();let{isSONAThreeLoopEnabled:t}=await import("./feature-flags-H7H33B6C.js");if(t()){this.baseEngine.initThreeLoopEngine(),this.baseEngine.setFisherPersistence((r,i,n,s,a)=>{this.saveFisherMatrix(r,i,n,s,a)},this.config.domain);let e=this._loadFisherMatrixUnsafe(this.config.domain);if(e){let r=this.baseEngine.getThreeLoopEngine();r&&(r.restoreFisher({fisherDiagonal:e.fisherDiagonal,optimalParams:e.optimalParams,baseWeights:e.baseWeights,requestCount:e.requestCount}),li.info("Three-loop engine restored Fisher state from SQLite",{domain:this.config.domain,requestCount:e.requestCount,taskBoundaries:e.taskBoundaries}))}else{let r=this._loadRequestCountUnsafe(this.config.domain);if(r!==null){let i=this.baseEngine.getThreeLoopEngine();i&&(i.restoreRequestCount(r),li.info("Three-loop engine restored request count independently of Fisher state",{domain:this.config.domain,requestCount:r}))}}li.info("Three-loop engine initialized with Fisher persistence",{domain:this.config.domain})}this.initialized=!0,console.log(`[PersistentSONAEngine] Initialized: domain=${this.config.domain}`)}catch(t){throw this.initPromise=null,new Error(`Failed to initialize PersistentSONAEngine: ${P(t)}`)}}ensureSchema(){if(!this.db)throw new Error("Database not initialized");this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='sona_patterns'").get()||(console.log("[PersistentSONAEngine] Creating sona_patterns table"),this.db.exec(tg)),this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='sona_fisher_matrices'").get()||(console.log("[PersistentSONAEngine] Creating sona_fisher_matrices table"),this.db.exec(rg))}prepareStatements(){if(!this.db)throw new Error("Database not initialized");this.prepared.set("getById",this.db.prepare("SELECT * FROM sona_patterns WHERE id = ?")),this.prepared.set("getByDomain",this.db.prepare(`
2141
2141
  SELECT * FROM sona_patterns
2142
2142
  WHERE domain = ?
2143
2143
  ORDER BY confidence DESC, updated_at DESC
@@ -2269,7 +2269,7 @@ Individual assessments:`),t.forEach(s=>{let a=this.countsAsAgreement(s)?"\u2713
2269
2269
  `))}async getQValue(t,e,r,i){this.ensureInitialized();let n=this.prepared.get("getQValue");if(!n)throw new Error("Statement not prepared");let s=i??this.config.defaultAlgorithm;return n.get(t,e,r,s)?.q_value??0}async setQValue(t,e,r,i,n,s){this.ensureInitialized();let a=this.prepared.get("upsertQValue");if(!a)throw new Error("Statement not prepared");let o=w(),c=s?.algorithm??this.config.defaultAlgorithm;a.run(o,c,t,e,r,i,n??null,s?.domain??null)}async incrementVisits(t,e,r,i){this.ensureInitialized();let n=this.prepared.get("incrementVisits");if(!n)throw new Error("Statement not prepared");let s=i??this.config.defaultAlgorithm;n.run(t,e,r,s)}async getTopActions(t,e,r=10,i){this.ensureInitialized();let n=this.prepared.get("getTopActions");if(!n)throw new Error("Statement not prepared");let s=i??this.config.defaultAlgorithm;return n.all(t,e,s,r).map(o=>this.rowToEntry(o))}async exportForAgent(t,e){this.ensureInitialized();let r=this.prepared.get("getAllForAgent");if(!r)throw new Error("Statement not prepared");let i=e??this.config.defaultAlgorithm,n=r.all(t,i),s=new Map;for(let a of n){let o=a.state_key,c=a.action_key,u=a.q_value;s.has(o)||s.set(o,new Map),s.get(o).set(c,u)}return s}async importFromMap(t,e,r){if(this.ensureInitialized(),!this.db)throw new Error("Database not initialized");let i=this.prepared.get("upsertQValue");if(!i)throw new Error("Statement not prepared");let n=r?.algorithm??this.config.defaultAlgorithm;this.db.transaction(()=>{for(let[a,o]of e)for(let[c,u]of o){let d=w();i.run(d,n,t,a,c,u,null,r?.domain??null)}})()}async pruneOldEntries(t){this.ensureInitialized();let e=this.prepared.get("pruneOld");if(!e)throw new Error("Statement not prepared");return e.run(t).changes}async getStats(){this.ensureInitialized();let t=this.prepared.get("getStats"),e=this.prepared.get("countByAlgorithm"),r=this.prepared.get("countByDomain");if(!t||!e||!r)throw new Error("Statements not prepared");let i=t.get(),n=e.all(),s=r.all(),a={};for(let c of n)a[c.algorithm]=c.count;let o={};for(let c of s)c.domain&&(o[c.domain]=c.count);return{totalEntries:i.total_entries,uniqueAgents:i.unique_agents,uniqueStates:i.unique_states,byAlgorithm:a,byDomain:o,averageVisits:i.avg_visits??0,averageQValue:i.avg_q_value??0,oldestEntry:i.oldest_entry?new Date(i.oldest_entry):null,newestEntry:i.newest_entry?new Date(i.newest_entry):null}}async close(){this.prepared.clear(),this.db=null,this.persistence=null,this.initialized=!1}async getEntry(t,e,r,i){this.ensureInitialized();let n=this.prepared.get("getEntry");if(!n)throw new Error("Statement not prepared");let s=i??this.config.defaultAlgorithm,a=n.get(t,e,r,s);return a?this.rowToEntry(a):null}async deleteEntry(t,e,r,i){this.ensureInitialized();let n=this.prepared.get("deleteEntry");if(!n)throw new Error("Statement not prepared");let s=i??this.config.defaultAlgorithm;return n.run(t,e,r,s).changes>0}isInitialized(){return this.initialized}getDbPath(){return this.persistence?.getDbPath()??""}ensureInitialized(){if(!this.initialized)throw new Error("QValueStore not initialized. Call initialize() first.")}rowToEntry(t){return{id:t.id,algorithm:t.algorithm,agentId:t.agent_id,stateKey:t.state_key,actionKey:t.action_key,qValue:t.q_value,visits:t.visits,lastReward:t.last_reward,domain:t.domain,createdAt:new Date(t.created_at),updatedAt:new Date(t.updated_at)}}};X();_();var sg=A.create("rl-base-algorithm"),ag={learningRate:.001,discountFactor:.99,episodes:1e3,maxSteps:1e3,batchSize:32,replayBufferSize:1e4,targetUpdateFrequency:100,explorationRate:.3,explorationDecay:.995,minExplorationRate:.01},Hw={enabled:!1,autoSaveInterval:10},be=class{constructor(t,e,r={},i=[],n={}){this.type=t;this.category=e;this.config={...ag,...r},this.rewardSignals=i,this.persistenceConfig={...Hw,...n},this.stats=this.createInitialStats()}type;category;config;stats;replayBuffer=[];episodeCount=0;totalReward=0;rewardHistory=[];initialized=!1;rewardSignals=[];persistenceConfig;qValueStore=null;lastSaveEpisode=0;enablePersistence(t,e){this.persistenceConfig.enabled=!0,this.persistenceConfig.agentId=t,e&&(this.persistenceConfig.dbPath=e)}isPersistenceEnabled(){return this.persistenceConfig.enabled&&!!this.persistenceConfig.agentId}getPersistenceAgentId(){return this.persistenceConfig.agentId}async train(t){if(this.addToReplayBuffer(t),this.replayBuffer.length>=this.config.batchSize){let e=this.sampleBatch();return this.trainBatch(e)}return this.getStats()}async trainBatch(t){this.initialized||await this.initialize();let e=Date.now();try{this.episodeCount++;let r=t.reduce((n,s)=>n+s.reward,0);this.totalReward+=r,this.rewardHistory.push(r),this.rewardHistory.length>1e3&&this.rewardHistory.shift();let i=await this.trainCore(t);return this.stats={...i,episode:this.episodeCount,totalReward:this.totalReward,averageReward:this.rewardHistory.reduce((n,s)=>n+s,0)/this.rewardHistory.length,trainingTimeMs:Date.now()-e,timestamp:new Date},this.config.explorationRate=Math.max(this.config.minExplorationRate,this.config.explorationRate*this.config.explorationDecay),this.stats.explorationRate=this.config.explorationRate,await this.autoSaveToPersistence(),this.stats}catch(r){throw new Ca(`Training failed for ${this.type}: ${r.message}`,this.type,r)}}async autoSaveToPersistence(){if(!this.isPersistenceEnabled()||this.persistenceConfig.autoSaveInterval<=0)return;if(this.episodeCount-this.lastSaveEpisode>=this.persistenceConfig.autoSaveInterval)try{await this.saveToStore(this.persistenceConfig.agentId,this.qValueStore??void 0),this.lastSaveEpisode=this.episodeCount}catch(e){console.warn(`[${this.type}] Auto-save failed:`,e.message)}}async update(t){let e={...this.config};if(this.config={...this.config,...t},this.config.learningRate<=0||this.config.learningRate>1)throw new Ht(`Invalid learning rate: ${this.config.learningRate}`,this.type);if(this.config.discountFactor<0||this.config.discountFactor>1)throw new Ht(`Invalid discount factor: ${this.config.discountFactor}`,this.type);if(this.config.explorationRate<0||this.config.explorationRate>1)throw new Ht(`Invalid exploration rate: ${this.config.explorationRate}`,this.type);await this.handleConfigUpdate(e,this.config)}getStats(){return{...this.stats}}async reset(){this.isPersistenceEnabled()&&this.episodeCount>0&&await this.saveToStore(this.persistenceConfig.agentId,this.qValueStore??void 0),this.replayBuffer=[],this.episodeCount=0,this.totalReward=0,this.rewardHistory=[],this.lastSaveEpisode=0,this.config.explorationRate=ag.explorationRate,this.stats=this.createInitialStats(),await this.resetAlgorithm()}async close(){this.isPersistenceEnabled()&&this.episodeCount>this.lastSaveEpisode&&await this.saveToStore(this.persistenceConfig.agentId,this.qValueStore??void 0),this.qValueStore&&(await this.qValueStore.close(),this.qValueStore=null)}async exportModel(){return{type:this.type,category:this.category,version:this.getVersion(),config:this.config,stats:this.stats,replayBufferSize:this.replayBuffer.length,exportedAt:new Date().toISOString(),customData:await this.exportCustomData()}}async importModel(t){if(t.type!==this.type)throw new Ht(`Model type mismatch: expected ${this.type}, got ${t.type}`,this.type);if(t.category!==this.category)throw new Ht(`Algorithm category mismatch: expected ${this.category}, got ${t.category}`,this.type);t.config&&(this.config={...this.config,...t.config}),t.stats&&(this.stats={...this.stats,...t.stats}),t.customData&&await this.importCustomData(t.customData),this.initialized=!0}getInfo(){let t=this.getAlgorithmInfo();return{...t,stats:this.stats,hyperparameters:{...t.hyperparameters,learningRate:this.config.learningRate,discountFactor:this.config.discountFactor,explorationRate:this.config.explorationRate,batchSize:this.config.batchSize}}}async saveToStore(t,e){let r=e??new Wt;await r.initialize();let i=await this.exportModel();await r.setQValue(t,"__model_state__","__weights__",0,void 0,{algorithm:this.type,domain:JSON.stringify(i)})}async loadFromStore(t,e){let r=e??new Wt;await r.initialize();try{let i=await r.getQValue(t,"__model_state__","__weights__",this.type),n=await r.getEntry(t,"__model_state__","__weights__",this.type);if(!n?.domain)return!1;let s=D(n.domain);return await this.importModel(s),!0}catch(i){return sg.debug("Model load from store failed",{algorithm:this.type,error:i instanceof Error?i.message:String(i)}),!1}}async storeQValue(t,e,r,i,n,s){let a=s??new Wt;await a.initialize(),await a.setQValue(t,e,r,i,n,{algorithm:this.type})}async retrieveQValue(t,e,r,i){let n=i??new Wt;await n.initialize();try{return await n.getQValue(t,e,r,this.type)}catch(s){return sg.debug("Q-value retrieval failed",{agentId:t,stateKey:e,actionKey:r,error:s instanceof Error?s.message:String(s)}),null}}calculateReward(t){let e={},r=0,i=[];for(let n of this.rewardSignals){let s=n.calculate(t);e[n.name]=s,r+=s,s!==0&&i.push(`${n.name}: ${s.toFixed(3)} (${n.description})`)}return{totalReward:Math.max(-1,Math.min(1,r)),components:e,reasoning:i.join("; ")||"No reward signals triggered",timestamp:new Date}}addToReplayBuffer(t){this.replayBuffer.push(t),this.replayBuffer.length>this.config.replayBufferSize&&this.replayBuffer.shift()}sampleBatch(t){let e=t||this.config.batchSize,r=this.replayBuffer;if(r.length===0)return[];if(r.length<=e)return[...r];let i=new Set;for(;i.size<Math.min(e,r.length);)i.add(Se(0,r.length));return Array.from(i).map(n=>r[n])}epsilonGreedy(t,e){return z()<this.config.explorationRate?t():e()}normalizeFeatures(t){if(t.length===0)return[];let e=Math.max(...t.map(Math.abs));return e===0?t:t.map(r=>r/e)}stateToKey(t){let e=t.features.map((r,i)=>`${i}:${Math.round(r*100)/100}`).join(",");return`${t.id}|${e}`}async initialize(){this.isPersistenceEnabled()&&(await this.initializePersistence(),await this.loadFromStore(this.persistenceConfig.agentId)&&console.log(`[${this.type}] Loaded persisted state for agent: ${this.persistenceConfig.agentId}`)),this.initialized=!0}async initializePersistence(){this.qValueStore||(this.qValueStore=new Wt,await this.qValueStore.initialize())}async resetAlgorithm(){}async handleConfigUpdate(t,e){}async exportCustomData(){return{}}async importCustomData(t){}getVersion(){return"1.0.0"}createInitialStats(){return{episode:0,totalReward:0,averageReward:0,explorationRate:this.config.explorationRate,trainingTimeMs:0,timestamp:new Date}}};ks();var Ww={contextLength:10,embeddingDim:384,numHeads:4,numLayers:3,feedForwardDim:256,maxReturn:100},ui=class extends be{trajectories=[];dtConfig;stateEmbeddings=new Map;actionEmbeddings=new Map;constructor(t={}){super("decision-transformer","offline-rl"),this.dtConfig={...Ww,...t}}async predict(t){this.initialized||await this.initialize();let e=this.retrieveContext(t),r=this.calculateReturnToGo(e),i=this.generateAction(t,e,r),n=this.calculateConfidence(e,r);return{action:i,confidence:n,value:r,reasoning:this.generateReasoning(t,i,e,r)}}async trainCore(t){let e=this.groupIntoTrajectories(t);for(let i of e)this.calculateReturns(i);this.trajectories.push(...e),this.trajectories.length>1e3&&(this.trajectories=this.trajectories.slice(-1e3)),this.updateEmbeddings(e);let r=e.reduce((i,n)=>i+n.returns[n.returns.length-1],0)/e.length;return{episode:this.episodeCount,totalReward:this.totalReward,averageReward:this.rewardHistory.reduce((i,n)=>i+n,0)/this.rewardHistory.length,loss:Math.abs(r-this.targetReturn()),explorationRate:0,trainingTimeMs:0,timestamp:new Date}}getAlgorithmInfo(){return{type:this.type,category:this.category,version:"1.0.0",description:"Decision Transformer for Test Case Prioritization",capabilities:["Offline RL from historical data","Attention-based sequence modeling","Return-to-go conditioning","Context-aware decisions"],hyperparameters:{contextLength:this.dtConfig.contextLength,embeddingDim:this.dtConfig.embeddingDim,numHeads:this.dtConfig.numHeads,numLayers:this.dtConfig.numLayers},stats:this.stats}}retrieveContext(t){let e=this.trajectories.map(r=>{let i=this.calculateSimilarity(t,r);return{traj:r,similarity:i}});return e.sort((r,i)=>i.similarity-r.similarity),e.slice(0,this.dtConfig.contextLength).map(r=>r.traj)}calculateSimilarity(t,e){for(let r of e.states)if(this.statesMatch(t,r))return 1;if(e.states.length>0){let r=e.states[e.states.length-1];return Ft(t.features,r.features)}return 0}statesMatch(t,e){return t.id===e.id||Math.abs(t.features[0]-e.features[0])<.1}calculateReturnToGo(t){if(t.length===0)return 0;let e=t.flatMap(r=>r.returns);return e.reduce((r,i)=>r+i,0)/e.length}calculateReturns(t){let e=[],r=0;for(let i=t.rewards.length-1;i>=0;i--)r=t.rewards[i]+this.config.discountFactor*r,e.unshift(r);t.returns=e}targetReturn(){return this.dtConfig.maxReturn*.8}generateAction(t,e,r){for(let i of e)for(let n=0;n<i.states.length;n++)if(this.statesMatch(t,i.states[n])&&i.returns[n]>r*.8)return{...i.actions[n]};return this.getHeuristicAction(t)}getHeuristicAction(t){return{type:"prioritize",value:t.features[0]>.7?"high":"standard",metadata:{heuristic:!0}}}updateEmbeddings(t){for(let e of t){for(let r of e.states)this.stateEmbeddings.has(r.id)||this.stateEmbeddings.set(r.id,this.hashEmbedding(r.id));for(let r of e.actions){let i=this.actionToKey(r);this.actionEmbeddings.has(i)||this.actionEmbeddings.set(i,this.hashEmbedding(i))}}}hashEmbedding(t){let e=[],r=this.dtConfig.embeddingDim;for(let i=0;i<r;i++){let n=this.simpleHash(t+i);e.push((n%200-100)/100)}return e}simpleHash(t){let e=0;for(let r=0;r<t.length;r++){let i=t.charCodeAt(r);e=(e<<5)-e+i,e=e&e}return Math.abs(e)}actionToKey(t){return`${t.type}:${JSON.stringify(t.value)}`}groupIntoTrajectories(t){let e=[],r=null;for(let i of t)i.done||!r?(r&&e.push(r),r={states:[i.state],actions:[i.action],rewards:[i.reward],returns:[]}):(r.states.push(i.state),r.actions.push(i.action),r.rewards.push(i.reward));return r&&e.push(r),e}calculateConfidence(t,e){if(t.length===0)return .3;let r=Math.min(1,t.length/this.dtConfig.contextLength),i=Math.min(1,e/this.targetReturn());return .3+r*.4+i*.3}generateReasoning(t,e,r,i){if(r.length===0)return"Decision Transformer: No similar historical contexts, using heuristic";let n=r.reduce((s,a)=>s+a.returns[a.returns.length-1]||0,0)/r.length;return`Decision Transformer: Found ${r.length} similar contexts (avg return: ${n.toFixed(2)}), selecting ${e.type} action with return-to-go ${i.toFixed(2)}`}async exportCustomData(){return{trajectories:this.trajectories,stateEmbeddings:Object.fromEntries(this.stateEmbeddings),actionEmbeddings:Object.fromEntries(this.actionEmbeddings),dtConfig:this.dtConfig}}async importCustomData(t){t.trajectories&&(this.trajectories=t.trajectories),t.stateEmbeddings&&(this.stateEmbeddings=new Map(Object.entries(t.stateEmbeddings))),t.actionEmbeddings&&(this.actionEmbeddings=new Map(Object.entries(t.actionEmbeddings))),t.dtConfig&&(this.dtConfig={...this.dtConfig,...t.dtConfig})}async resetAlgorithm(){this.trajectories=[],this.stateEmbeddings.clear(),this.actionEmbeddings.clear()}};wt();_();var og={enabled:!0,coherenceThreshold:.1,blockOnHumanLane:!0,enrichOnRetrievalLane:!0,embeddingDimension:384},Uw=A.create("test-generation/coherence-gate"),Sa=class extends Error{constructor(e,r,i){super(e);this.contradictions=r;this.lane=i;this.name="CoherenceError"}contradictions;lane},lu=class{constructor(t=384){this.dimension=t}dimension;async embed(t){let e=new Array(this.dimension).fill(0),r=t.toLowerCase().trim();for(let n=0;n<r.length;n++){let s=r.charCodeAt(n),a=n%this.dimension;e[a]+=Math.sin(s*(n+1)*.1),e[(a+1)%this.dimension]+=Math.cos(s*(n+1)*.1)}let i=Math.sqrt(e.reduce((n,s)=>n+s*s,0));if(i>0)for(let n=0;n<e.length;n++)e[n]/=i;return e}},Ra=class{constructor(t,e,r={}){this.coherenceService=t;this.config={...og,...r},this.embeddingService=e||new lu(this.config.embeddingDimension)}coherenceService;config;embeddingService;async checkRequirementCoherence(t){let e=Date.now();if(!this.config.enabled||!this.coherenceService)return this.createPassingResult(e,!0);if(t.length===0)return this.createPassingResult(e,!1);if(t.length===1)return this.createPassingResult(e,!1);try{let r=await this.requirementsToNodes(t),i=await this.coherenceService.checkCoherence(r);return this.transformCoherenceResult(i,t,Date.now()-e)}catch(r){return Uw.error("Coherence check failed:",r instanceof Error?r:void 0),{isCoherent:!0,energy:0,lane:"reflex",contradictions:[],recommendations:[{type:"add-context",requirementId:"",description:"Coherence check failed. Manual review recommended.",suggestedResolution:"Review requirements manually before proceeding."}],durationMs:Date.now()-e,usedFallback:!0}}}async enrichSpecification(t,e){if(e.length===0)return t;let r={...t,requirements:[...t.requirements],context:{...t.context}},i=new Map;for(let n of e)switch(n.type){case"clarify":this.addClarificationNote(i,n);break;case"add-context":r.context={...r.context,coherenceRecommendations:[...r.context?.coherenceRecommendations||[],n.description]};break;case"resolve-ambiguity":this.addDisambiguationNote(i,n);break;case"split-requirement":r.context={...r.context,requirementsSuggestedForSplit:[...r.context?.requirementsSuggestedForSplit||[],n.requirementId]};break}return r.requirements=r.requirements.map(n=>{let s=i.get(n.id);return s?{...n,metadata:{...n.metadata,...s.metadata}}:n}),r.context={...r.context,enrichedAt:new Date().toISOString(),enrichmentCount:e.length},r}async validateAndEnrich(t){let e=await this.checkRequirementCoherence(t.requirements);if(this.config.blockOnHumanLane&&e.lane==="human")return g(new Sa("Requirements contain unresolvable contradictions that require human review",e.contradictions,e.lane));if(this.config.enrichOnRetrievalLane&&e.lane==="retrieval"){let r=await this.enrichSpecification(t,e.recommendations);return f(r)}return f(t)}isAvailable(){return this.coherenceService?.isInitialized()??!1}async requirementsToNodes(t){let e=[];for(let r of t){let i=await this.embeddingService.embed(r.description);e.push({id:r.id,embedding:i,weight:this.priorityToWeight(r.priority),metadata:{description:r.description,source:r.source,...r.metadata}})}return e}transformCoherenceResult(t,e,r){let i=new Map(e.map(a=>[a.id,a])),n=t.contradictions.map(a=>({requirementId1:a.nodeIds[0],requirementId2:a.nodeIds[1],severity:this.mapSeverity(a.severity),description:a.description,confidence:a.confidence,suggestedResolution:a.resolution||this.generateResolutionSuggestion(i.get(a.nodeIds[0]),i.get(a.nodeIds[1]),a.severity)})),s=this.generateRecommendations(t,n,e);return{isCoherent:t.isCoherent,energy:t.energy,lane:t.lane,contradictions:n,recommendations:s,durationMs:r,usedFallback:t.usedFallback}}generateRecommendations(t,e,r){let i=[];for(let s of t.recommendations)i.push({type:"add-context",requirementId:"",description:s});for(let s of e)s.severity==="critical"||s.severity==="high"?i.push({type:"resolve-ambiguity",requirementId:s.requirementId1,description:`Potential conflict with requirement ${s.requirementId2}: ${s.description}`,suggestedResolution:s.suggestedResolution}):i.push({type:"clarify",requirementId:s.requirementId1,description:`Minor tension with requirement ${s.requirementId2}: ${s.description}`});let n=r.filter(s=>s.description.length>200||s.description.includes(" and ")&&s.description.includes(" or "));for(let s of n)i.push({type:"split-requirement",requirementId:s.id,description:"Complex requirement may benefit from splitting into smaller, focused requirements"});return i}generateResolutionSuggestion(t,e,r){return!t||!e?"Review and reconcile conflicting requirements.":r==="critical"?`Requirements "${t.id}" and "${e.id}" appear to be mutually exclusive. Consider removing one or explicitly documenting the conditions under which each applies.`:r==="high"?`Requirements "${t.id}" and "${e.id}" may conflict. Add clarification about their relationship and precedence.`:`Minor tension between "${t.id}" and "${e.id}". Consider adding context to clarify their relationship.`}createPassingResult(t,e){return{isCoherent:!0,energy:0,lane:"reflex",contradictions:[],recommendations:[],durationMs:Date.now()-t,usedFallback:e}}priorityToWeight(t){switch(t){case"high":return 1;case"medium":return .7;case"low":return .4;default:return .5}}mapSeverity(t){switch(t){case"critical":return"critical";case"high":return"high";case"medium":return"medium";default:return"low"}}addClarificationNote(t,e){let r=t.get(e.requirementId)||{metadata:{}},i=r.metadata?.clarificationNotes||[];i.push(e.description),t.set(e.requirementId,{...r,metadata:{...r.metadata,clarificationNotes:i,needsClarification:!0}})}addDisambiguationNote(t,e){let r=t.get(e.requirementId)||{metadata:{}},i=r.metadata?.disambiguationNotes||[];i.push(e.description),t.set(e.requirementId,{...r,metadata:{...r.metadata,disambiguationNotes:i,needsDisambiguation:!0,suggestedResolution:e.suggestedResolution}})}};function uu(l,t,e){return new Ra(l,t,e)}var Qw={maxConcurrentWorkflows:5,defaultTimeout:6e4,enablePatternLearning:!0,publishEvents:!0,enableQESONA:!0,enableFlashAttention:!0,enableDecisionTransformer:!0,sonaPatternType:"test-generation",flashAttentionWorkload:"test-similarity",enableCoherenceGate:!0,blockOnIncoherentRequirements:!0,enrichOnRetrievalLane:!0,enableMinCutAwareness:!0,topologyHealthThreshold:.5,pauseOnCriticalTopology:!1,enableConsensus:!0,consensusThreshold:.7,consensusStrategy:"weighted",consensusMinModels:2,enableFreeTier:!1},Z=A.create("test-generation");function Kw(l){let t=l.match(/```(?:[a-zA-Z0-9]+)?\n([\s\S]*?)\n```/);return(t?t[1]:l).trim()}function Jw(l){return l.replace(/\.([cm]?[jt]sx?)$/,".test.$1")}var _n=class extends re{constructor(e,r,i,n={},s,a,o,c){let u={...Qw,...n};super(e,"test-generation",u,{verifyFindingTypes:["test-pattern-selection","mock-strategy","edge-case-generation","assertion-strategy"],...u.consensusConfig});this.memory=r;this.agentCoordinator=i;this.coherenceService=a;this.hookRegistry=o;this.testGenerator=Cr({memory:r,llmRouter:s}),this.patternMatcher=new Sr(r),this.freeTierExecutor=pn({config:this.config,agentType:"qe-test-architect",taskKind:"test-generation",llmRouter:s,routingFeedback:c,logger:Z}),this.config.enableCoherenceGate&&a&&(this.coherenceGate=uu(a,void 0,{enabled:!0,blockOnHumanLane:this.config.blockOnIncoherentRequirements,enrichOnRetrievalLane:this.config.enrichOnRetrievalLane}))}memory;agentCoordinator;coherenceService;hookRegistry;testGenerator;patternMatcher;freeTierExecutor=null;qesona=null;flashAttention=null;decisionTransformer=null;testEmbeddings=new Map;recentDreamInsights=[];coherenceGate=null;async onInitialize(){if(this.config.enableQESONA)try{this.qesona=await De({domain:"test-generation",loadOnInit:!0,autoSaveInterval:6e4,patternClusters:50,minConfidence:.5}),Z.info("PersistentSONAEngine initialized for test-generation domain")}catch(e){Z.error("Failed to initialize PersistentSONAEngine:",e instanceof Error?e:void 0),Z.warn("Continuing without SONA pattern persistence"),this.qesona=null}if(this.config.enableFlashAttention)try{this.flashAttention=await nt(this.config.flashAttentionWorkload,{dim:384,strategy:"flash",blockSize:64}),Z.info("QEFlashAttention initialized for test-similarity")}catch{Z.warn("QEFlashAttention unavailable (optional native module), continuing without it"),this.flashAttention=null}if(this.config.enableDecisionTransformer)try{this.decisionTransformer=new ui({contextLength:10,embeddingDim:384}),Z.info("DecisionTransformer created for test case selection")}catch{Z.warn("DecisionTransformer unavailable (optional native module), continuing without it"),this.decisionTransformer=null}this.subscribeToEvents(),await this.loadWorkflowState()}async onDispose(){await this.saveWorkflowState(),this.flashAttention&&(this.flashAttention.dispose(),this.flashAttention=null),this.decisionTransformer&&(await this.decisionTransformer.reset(),this.decisionTransformer=null),this.qesona&&(await this.qesona.close(),this.qesona=null),this.testEmbeddings.clear()}getActiveWorkflows(){return super.getActiveWorkflows()}async generateTests(e){let r=w();try{if(this.startWorkflow(r,"generate"),this.freeTierExecutor&&!e.behaviorExamples?.length)try{let c=await this.tryFreeTierGeneration(e);if(c)return this.completeWorkflow(r),Z.info(`Free-tier local generation produced ${c.tests.length} test file(s); skipped paid path`),f(c)}catch{Z.debug("Free-tier generation failed; falling back to the normal path")}if(this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&Z.warn("Topology degraded, using conservative strategy"),this.minCutMixin.shouldPauseOperations())return g(new Error("Test generation paused: topology is in critical state"));let i=[];if(this.hookRegistry)try{let c=e.sourceFiles?.[0]||"",u=await this.hookRegistry.emit(Um.PreTestGeneration,{targetFile:c,testType:e.testType,framework:e.framework,language:c.split(".").pop()||"typescript"});for(let d of u)d.success&&d.data?.patterns&&i.push(...d.data.patterns),d.guidance&&Z.info(`Hook guidance: ${d.guidance.join("; ")}`)}catch{Z.debug("PreTestGeneration hook failed:")}if(!this.agentCoordinator.canSpawn())return g(new Error("Agent limit reached, cannot spawn test generation agents"));let n=await this.spawnTestGeneratorAgent(r,e);if(!n.success)return this.failWorkflow(r,n.error.message),g(n.error);this.addAgentToWorkflow(r,n.value);let s=[...e.patterns||[],...i];if(this.config.enableQESONA&&this.qesona){let c=await this.adaptTestGenerationPatterns(e);c.length>0&&(s=c,Z.info(`Adapted ${c.length} patterns using QESONA`))}let a=s;if(this.config.enablePatternLearning&&a.length===0){let c=await this.patternMatcher.findMatchingPatterns({testType:e.testType,framework:e.framework});c.success&&c.value.length>0&&(a=c.value.map(u=>u.pattern.id))}let o=await this.testGenerator.generateTests({...e,patterns:a});if(o.success){if(this.completeWorkflow(r),this.config.enableFlashAttention&&this.flashAttention){let u=await this.findSimilarTests(o.value.tests);u.length>0&&Z.info(`Found ${u.length} similar tests using Flash Attention`)}if(this.config.enableDecisionTransformer&&this.decisionTransformer){let u=await this.prioritizeTestCases(o.value.tests,e);Z.info(`Prioritized ${u.length} tests using DecisionTransformer`)}if(this.config.publishEvents){await this.publishTestSuiteCreated(o.value,e);for(let u of o.value.tests)await this.publishTestGenerated(u,e.framework??"vitest",o.value.patternsUsed)}let c=o.value.coverageEstimate;if(c!==null&&dr()&&this.qesona?.isThreeLoopEnabled()){let u=o.value;this.qesona.instantAdapt([u.tests.length/20,c/100,u.patternsUsed.length/10,e.sourceFiles.length/20,(e.coverageTarget??80)/100,u.tests.filter(d=>d.type==="unit").length/20]);try{if(this.qesona.recordOutcome(1),this.qesona.shouldConsolidate())try{this.qesona.backgroundConsolidate()}catch{}}catch{}}this.config.enableQESONA&&this.qesona&&await this.storeTestGenerationPattern(o.value,e),this.config.enablePatternLearning&&await this.learnFromGeneration(o.value)}else this.failWorkflow(r,o.error.message),this.config.publishEvents&&await this.publishGenerationFailed(o.error,"generateTests");return await this.agentCoordinator.stop(n.value),o}catch(i){let n=y(i);return this.failWorkflow(r,n.message),this.config.publishEvents&&await this.publishGenerationFailed(n,"generateTests"),{success:!1,error:n}}}async tryFreeTierGeneration(e){if(!this.freeTierExecutor||!e.sourceFiles||e.sourceFiles.length!==1)return null;let r=e.sourceFiles[0];if(!r)return null;let i="";try{i=await Re(r,{outsideRoot:"allow"})}catch{return null}if(!i.trim())return null;let n=e.framework??"vitest",s=[{role:"system",content:`You write ${n} tests. Output ONLY a single fenced code block \u2014 no prose.`},{role:"user",content:`Write ${n} ${e.testType??"unit"} tests for this file (aim for ~${e.coverageTarget??80}% coverage). Use real assertions.
2270
2270
 
2271
2271
  \`\`\`
2272
- `+i.slice(0,6e3)+"\n```"}],a=m=>{let p=/\b(test|it|describe)\s*\(/.test(m),h=/\b(expect|assert)\s*\(/.test(m);return p&&h?{passed:!0}:{passed:!1,feedback:"output must contain a test (test/it/describe) with an assertion (expect/assert)"}},o=await this.freeTierExecutor.execute({agentId:`test-gen:${r}`,messages:s,verify:a,escalate:!0,bestOfK:this.config.freeTierBestOfK??2,repairAttempts:this.config.freeTierRepairAttempts??1});if(!o.ok)return null;let c=Kw(o.content),u=(c.match(/\b(?:expect|assert)\s*\(/g)??[]).length;return u===0?null:{tests:[{id:w(),name:`free-tier:${r.split("/").pop()??r}`,sourceFile:r,testFile:Jw(r),testCode:c,type:e.testType??"unit",assertions:u,framework:n,llmEnhanced:!0}],coverageEstimate:null,patternsUsed:["free-tier-local",`tier:${o.tierUsed}`]}}async generateTDDTests(e){let r=w();try{this.startWorkflow(r,"tdd");let i=await this.spawnTDDAgent(r,e);if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);this.addAgentToWorkflow(r,i.value);let n=await this.testGenerator.generateTDDTests(e);return n.success?(this.completeWorkflow(r),this.updateWorkflowProgress(r,this.getTDDProgress(e.phase))):this.failWorkflow(r,n.error.message),await this.agentCoordinator.stop(i.value),n}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async generatePropertyTests(e){let r=w();try{this.startWorkflow(r,"property");let i=await this.spawnPropertyTestAgent(r,e);if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);this.addAgentToWorkflow(r,i.value);let n=await this.testGenerator.generatePropertyTests(e);return n.success?this.completeWorkflow(r):this.failWorkflow(r,n.error.message),await this.agentCoordinator.stop(i.value),n}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async generateTestData(e){let r=w();try{this.startWorkflow(r,"data");let i=await this.testGenerator.generateTestData(e);return i.success?this.completeWorkflow(r):this.failWorkflow(r,i.error.message),i}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async learnPatterns(e){let r=w();try{this.startWorkflow(r,"learn");let i=await this.patternMatcher.learnPatterns(e);return i.success?(this.completeWorkflow(r),this.config.publishEvents&&await this.publishPatternLearned(i.value)):this.failWorkflow(r,i.error.message),i}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async spawnTestGeneratorAgent(e,r){let i={name:`test-generator-${e.slice(0,8)}`,domain:"test-generation",type:"generator",capabilities:["test-generation",r.testType,r.framework??"vitest"],config:{workflowId:e,sourceFiles:r.sourceFiles,coverageTarget:r.coverageTarget}};return this.agentCoordinator.spawn(i)}async spawnTDDAgent(e,r){let i={name:`tdd-agent-${e.slice(0,8)}`,domain:"test-generation",type:"generator",capabilities:["tdd",r.framework,r.phase],config:{workflowId:e,feature:r.feature,behavior:r.behavior}};return this.agentCoordinator.spawn(i)}async spawnPropertyTestAgent(e,r){let i={name:`property-test-agent-${e.slice(0,8)}`,domain:"test-generation",type:"generator",capabilities:["property-testing","fast-check"],config:{workflowId:e,function:r.function,properties:r.properties}};return this.agentCoordinator.spawn(i)}async publishTestGenerated(e,r,i){let n={testId:e.id,testFile:e.testFile,framework:r,sourceFile:e.sourceFile,testType:e.type,patternsUsed:i},s=N(Xi.TestGenerated,"test-generation",n);await this.eventBus.publish(s)}async publishTestSuiteCreated(e,r){let i={suiteId:w(),testCount:e.tests.length,sourceFiles:r.sourceFiles,coverageEstimate:e.coverageEstimate},n=N(Xi.TestSuiteCreated,"test-generation",i);await this.eventBus.publish(n)}async publishPatternLearned(e){let r=N(Xi.PatternLearned,"test-generation",{patternCount:e.patterns.length,confidence:e.confidence,patternIds:e.patterns.map(i=>i.id)});await this.eventBus.publish(r)}async publishGenerationFailed(e,r){let i=N(Xi.GenerationFailed,"test-generation",{error:e.message,context:r,timestamp:new Date().toISOString()});await this.eventBus.publish(i)}getTDDProgress(e){switch(e){case"red":return 33;case"green":return 66;case"refactor":return 100;default:return 0}}subscribeToEvents(){this.eventBus.subscribe("coverage-analysis.CoverageGapDetected",this.handleCoverageGapDetected.bind(this)),this.eventBus.subscribe("test-execution.TestRunCompleted",this.handleTestRunCompleted.bind(this)),this.subscribeToDreamEvents()}subscribeToDreamEvents(){this.eventBus.subscribe(Ct.DreamCycleCompleted,this.handleDreamCycleCompleted.bind(this))}async handleDreamCycleCompleted(e){let{insights:r,cycleId:i}=e.payload;if(!r||r.length===0)return;let n=r.filter(s=>{let a=s.suggestedAction?.toLowerCase().includes(this.domainName)||s.suggestedAction?.toLowerCase().includes("test")||s.suggestedAction?.toLowerCase().includes("coverage"),o=s.sourceConcepts.some(u=>u.toLowerCase().includes("test")||u.toLowerCase().includes(this.domainName)||u.toLowerCase().includes("coverage")||u.toLowerCase().includes("edge-case")),c=s.type==="optimization"||s.type==="gap_detection"||s.type==="novel_association";return a||o||c&&s.actionable});if(n.length!==0){Z.info(`[${this.domainName}] Received ${n.length} relevant dream insights from cycle ${i}`);for(let s of n)s.confidenceScore>.7&&s.actionable&&await this.applyDreamInsight(s,i),this.recentDreamInsights.push({...s,receivedAt:new Date});this.recentDreamInsights.length>50&&(this.recentDreamInsights=this.recentDreamInsights.slice(-50))}}async applyDreamInsight(e,r){if(Z.info(`[${this.domainName}] Applying dream insight: ${e.description.slice(0,100)}...`),this.qesona)try{let i={id:`dream-insight-${e.id}`,features:this.encodeInsightAsFeatures(e),metadata:{insightType:e.type,cycleId:r,sourceConcepts:e.sourceConcepts}},n={type:"dream-insight",value:e.suggestedAction||e.description},s=this.qesona.createPattern(i,n,{reward:e.confidenceScore,success:!0,quality:e.noveltyScore},"dream-derived",this.domainName,{insightId:e.id,cycleId:r,description:e.description,suggestedAction:e.suggestedAction});Z.info(`[${this.domainName}] Created SONA pattern ${s.id} from dream insight`)}catch(i){Z.error(`[${this.domainName}] Failed to store dream insight pattern`,i instanceof Error?i:void 0)}await this.memory.set(`${this.domainName}:dream-insight:${e.id}`,{insight:e,cycleId:r,appliedAt:new Date().toISOString()},{namespace:this.domainName,ttl:86400*7})}getRecentDreamInsights(e){let r=Date.now()-864e5;return this.recentDreamInsights.filter(i=>{let n=i.receivedAt.getTime()>r,s=!e||i.type===e;return n&&s})}async enhanceWithDreamInsights(e){let r=[],n=this.getRecentDreamInsights().filter(s=>(s.type==="novel_association"||s.type==="gap_detection")&&s.actionable&&s.confidenceScore>.6);for(let s of n)s.suggestedAction&&(e.sourceFiles.some(o=>s.sourceConcepts.some(c=>o.toLowerCase().includes(c.toLowerCase())))||s.suggestedAction.toLowerCase().includes(e.testType))&&r.push(s.suggestedAction);return r.slice(0,5)}encodeInsightAsFeatures(e){let r=[],i={pattern_merge:.2,novel_association:.4,optimization:.6,gap_detection:.8};for(r.push(i[e.type]||.5),r.push(e.confidenceScore),r.push(e.noveltyScore),r.push(e.actionable?1:0),r.push(Math.min(1,e.sourceConcepts.length/10));r.length<384;)r.push(0);return r.slice(0,384)}async handleCoverageGapDetected(e){if(!Ue(e.payload))return;let r=e.payload,i=await this.testGenerator.generateForCoverageGap(r.file,r.uncoveredLines,"jest");if(i.success&&i.value.length>0)for(let n of i.value)await this.publishTestGenerated(n,"jest")}async handleTestRunCompleted(e){}async learnFromGeneration(e){let r=e.patternIds??[];if(r.length!==0)try{let{getUnifiedMemory:i}=await import("./unified-memory-QARWQKJ2.js"),{recordPatternUsage:n}=await import("./pattern-usage-recorder-TPWPX32U.js"),s=i().getDatabase();for(let a of r)n(s,{patternId:a,success:!0})}catch(i){Z.warn("Pattern usage recording skipped",{error:i instanceof Error?i.message:String(i)})}}async adaptTestGenerationPatterns(e){if(!this.qesona)return[];try{let r={id:`test-gen-${Date.now()}`,features:this.encodeRequestAsFeatures(e),metadata:{testType:e.testType,framework:e.framework,sourceFileCount:e.sourceFiles.length}},i=await this.qesona.adaptPattern(r,this.config.sonaPatternType,"test-generation");return i.success&&i.pattern?(Z.info(`QESONA adapted pattern with ${i.similarity.toFixed(3)} similarity in ${i.adaptationTimeMs.toFixed(2)}ms`),[i.pattern.id]):[]}catch(r){return Z.error("QESONA pattern adaptation failed:",r instanceof Error?r:void 0),[]}}async storeTestGenerationPattern(e,r){if(!(!this.qesona||e.coverageEstimate===null))try{let i={id:`test-gen-${Date.now()}`,features:this.encodeRequestAsFeatures(r),metadata:{testCount:e.tests.length,coverageEstimate:e.coverageEstimate,success:!0}},n={type:"generate-tests",value:{testType:r.testType,framework:r.framework,patternsUsed:e.patternsUsed}},s=this.qesona.createPattern(i,n,{reward:e.coverageEstimate/100,success:!0,quality:e.coverageEstimate/100},this.config.sonaPatternType,"test-generation",{testCount:e.tests.length,framework:r.framework,testType:r.testType});Z.info(`Stored test generation pattern ${s.id} in QESONA`)}catch(i){Z.error("Failed to store pattern in QESONA:",i instanceof Error?i:void 0)}}async findSimilarTests(e){if(!this.flashAttention)return[];let r=[];try{for(let n of e){let s=this.generateTestEmbedding(n);this.testEmbeddings.set(n.id,s)}let i=await this.loadExistingTestEmbeddings();if(i.length===0)return[];for(let n of e){let s=this.testEmbeddings.get(n.id);if(!s)continue;let o=(await this.flashAttention.computeTestSimilarity(s,i.map(c=>c.embedding),5)).filter(c=>c.similarity>.7).map(c=>({testId:i[c.index].testId,similarity:c.similarity}));o.length>0&&r.push({test:n,similarTests:o})}return r}catch(i){return Z.error("Flash Attention similarity detection failed:",i instanceof Error?i:void 0),[]}}async prioritizeTestCases(e,r){if(!this.decisionTransformer)return e;try{let i={id:`prioritize-${Date.now()}`,features:[e.length/100,(r.coverageTarget||80)/100,r.testType==="unit"?.2:r.testType==="integration"?.5:.8,r.framework==="jest"?.3:r.framework==="vitest"?.4:.5],metadata:{testCount:e.length,framework:r.framework,testType:r.testType}},n=await this.decisionTransformer.predict(i);return Z.info(`DecisionTransformer prediction: ${n.reasoning}`),n.confidence>.7?e.sort((s,a)=>a.assertions-s.assertions):e}catch(i){return Z.error("DecisionTransformer prioritization failed:",i instanceof Error?i:void 0),e}}getQESONAStats(){return this.qesona?this.qesona.getStats():null}getFlashAttentionMetrics(){return this.flashAttention?this.flashAttention.getMetrics():null}async checkRequirementCoherence(e){return this.coherenceGate?this.coherenceGate.checkRequirementCoherence(e):{isCoherent:!0,energy:0,lane:"reflex",contradictions:[],recommendations:[],durationMs:0,usedFallback:!0}}isCoherenceGateAvailable(){return this.coherenceGate?.isAvailable()??!1}async verifyAndEnrichSpec(e){if(!this.coherenceGate||!this.config.enableCoherenceGate)return e;let r=await this.coherenceGate.validateAndEnrich(e);if(r.success)return r.value;throw r.error}async verifyTestPatternSelection(e,r){let i=W({id:w(),type:"test-pattern-selection",confidence:r,description:`Verify test pattern: ${e.name} (${e.type})`,payload:e,detectedBy:"test-generation-coordinator",severity:r>.9?"high":"medium"});if(this.consensusMixin.requiresConsensus(i)){let n=await this.consensusMixin.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Z.info(`Test pattern '${e.name}' verified by consensus`),!0):(Z.warn(`Test pattern '${e.name}' NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}async verifyMockStrategy(e,r){let i=W({id:w(),type:"mock-strategy",confidence:r,description:`Verify mock strategy for ${e.target}: ${e.mockType}`,payload:e,detectedBy:"test-generation-coordinator",severity:r>.85?"high":"medium"});if(this.consensusMixin.requiresConsensus(i)){let n=await this.consensusMixin.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Z.info(`Mock strategy for '${e.target}' verified by consensus`),!0):(Z.warn(`Mock strategy for '${e.target}' NOT verified`),!1)}return!0}async verifyEdgeCaseGeneration(e,r){let i=W({id:w(),type:"edge-case-generation",confidence:r,description:`Verify edge case: ${e.description}`,payload:e,detectedBy:"test-generation-coordinator",severity:"high"});if(this.consensusMixin.requiresConsensus(i)){let n=await this.consensusMixin.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Z.info(`Edge case '${e.description.slice(0,50)}...' verified by consensus`),!0):(Z.warn(`Edge case NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}encodeRequestAsFeatures(e){let r=[];for(r.push(e.testType==="unit"?.2:e.testType==="integration"?.5:.8),r.push(e.framework==="jest"?.25:e.framework==="vitest"?.5:e.framework==="mocha"?.75:.9),r.push(Math.min(1,e.sourceFiles.length/50)),r.push((e.coverageTarget||80)/100);r.length<384;)r.push(0);return r.slice(0,384)}generateTestEmbedding(e){let r=[],i=this.simpleHash(e.name);for(let n=0;n<64;n++)r.push((i>>n%32&1)*2-1);for(r.push(e.type==="unit"?.2:e.type==="integration"?.5:.8),r.push(Math.min(1,e.assertions/20));r.length<384;)r.push(0);return new Float32Array(r.slice(0,384))}async loadExistingTestEmbeddings(){try{let e=await this.memory.search("test-embedding:*",1e3),r=[];for(let i of e){let n=await this.memory.get(i);n&&r.push({testId:n.testId,embedding:new Float32Array(n.embedding)})}return r}catch{return[]}}simpleHash(e){let r=0;for(let i=0;i<e.length;i++){let n=e.charCodeAt(i);r=(r<<5)-r+n,r=r|0}return Math.abs(r)}async loadWorkflowState(){let e=await this.memory.get("test-generation:coordinator:workflows");if(e)for(let r of e)r.status==="running"&&(r.status="failed",r.error="Coordinator restarted",r.completedAt=new Date),this.workflows.set(r.id,r)}async saveWorkflowState(){let e=Array.from(this.workflows.values());await this.memory.set("test-generation:coordinator:workflows",e,{namespace:"test-generation",persist:!0})}};k();var Ta=class extends ee{constructor(e,r,i,n={},s){super(e,r);this.agentCoordinator=i;this.llmRouter=s;this.pluginConfig=n}agentCoordinator;llmRouter;coordinator=null;testGenerator=null;patternMatcher=null;pluginConfig;get name(){return"test-generation"}get version(){return"1.0.0"}get dependencies(){return[]}getAPI(){return{generateTests:this.generateTests.bind(this),generateTDDTests:this.generateTDDTests.bind(this),generatePropertyTests:this.generatePropertyTests.bind(this),generateTestData:this.generateTestData.bind(this),learnPatterns:this.learnPatterns.bind(this),getCoordinator:()=>this.coordinator,getTestGenerator:()=>this.testGenerator,getPatternMatcher:()=>this.patternMatcher}}getTaskHandlers(){return new Map([["generate-tests",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.testType,i=e.framework;if(!Array.isArray(e.sourceFiles)||e.sourceFiles.length===0)return g(new Error("Invalid generate-tests payload: missing sourceFiles"));let n=await Lt("generate-tests","sourceFiles",e.sourceFiles,{maxBytes:Qr});if(!n.success)return n;let a={sourceFiles:n.value,testType:r??"unit",framework:i??"vitest",coverageTarget:e.coverageTarget,patterns:e.patterns};return this.coordinator.generateTests(a)}],["generate-tdd-tests",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.feature,i=e.behavior,n=e.framework,s=e.phase;return!r||!i?g(new Error("Invalid generate-tdd-tests payload: missing feature or behavior")):this.coordinator.generateTDDTests({feature:r,behavior:i,framework:n??"vitest",phase:s??"red"})}],["generate-property-tests",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.function,i=e.properties;return!r||!i||i.length===0?g(new Error("Invalid generate-property-tests payload: missing function or properties")):this.coordinator.generatePropertyTests({function:r,properties:i,constraints:e.constraints})}],["generate-test-data",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.schema,i=e.count;return r?this.coordinator.generateTestData({schema:r,count:i??10,locale:e.locale,preserveRelationships:e.preserveRelationships}):g(new Error("Invalid generate-test-data payload: missing schema"))}]])}async onInitialize(){this.testGenerator=Cr({memory:this.memory,llmRouter:this.llmRouter},this.pluginConfig.testGenerator),this.patternMatcher=new Sr(this.memory,this.pluginConfig.patternMatcher);let e;if(this.pluginConfig.coordinator?.enableFreeTier===!0||process.env.AQE_FREE_TIER==="1"){e=new Bs(1e4,{enableEMACalibration:!0,enableAutoEscalation:!0});try{await e.initialize()}catch{}}this.coordinator=new _n(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.coordinator,this.llmRouter,void 0,void 0,e),await this.coordinator.initialize(),this.updateHealth({status:"idle",agents:{total:0,active:0,idle:0,failed:0},lastActivity:new Date,errors:[]})}async onDispose(){this.coordinator&&await this.coordinator.dispose(),this.coordinator=null,this.testGenerator=null,this.patternMatcher=null}subscribeToEvents(){this.eventBus.subscribe("coverage-analysis.CoverageGapDetected",this.handleCoverageGap.bind(this)),this.eventBus.subscribe("code-intelligence.ImpactAnalysisCompleted",this.handleImpactAnalysis.bind(this)),this.eventBus.subscribe("learning-optimization.PatternConsolidated",this.handlePatternConsolidation.bind(this))}async onEvent(e){switch(this.updateHealth({lastActivity:new Date}),e.type){case"coverage-analysis.CoverageGapDetected":await this.handleCoverageGap(e);break;case"code-intelligence.ImpactAnalysisCompleted":await this.handleImpactAnalysis(e);break;default:break}}async generateTests(e){this.ensureInitialized();try{let r=await this.coordinator.generateTests(e);return r.success?this.trackSuccessfulGeneration(r.value):this.trackFailedGeneration(r.error),r}catch(r){return this.handleError(r)}}async generateTDDTests(e){this.ensureInitialized();try{return await this.coordinator.generateTDDTests(e)}catch(r){return this.handleError(r)}}async generatePropertyTests(e){this.ensureInitialized();try{return await this.coordinator.generatePropertyTests(e)}catch(r){return this.handleError(r)}}async generateTestData(e){this.ensureInitialized();try{return await this.coordinator.generateTestData(e)}catch(r){return this.handleError(r)}}async learnPatterns(e){this.ensureInitialized();try{return await this.coordinator.learnPatterns(e)}catch(r){return this.handleError(r)}}async handleCoverageGap(e){if(!Ue(e.payload))return;let r=e.payload;r.riskScore>=.7&&await this.memory.set(`test-generation:pending-gaps:${r.gapId}`,r,{namespace:"test-generation",ttl:86400})}async handleImpactAnalysis(e){let r=e.payload;await this.memory.set(`test-generation:impact:${r.analysisId}`,r,{namespace:"test-generation",ttl:3600})}async handlePatternConsolidation(e){e.payload.domains.includes("test-generation")}ensureInitialized(){if(!this._initialized)throw new Error("TestGenerationPlugin is not initialized");if(!this.coordinator||!this.testGenerator||!this.patternMatcher)throw new Error("TestGenerationPlugin services are not available")}handleError(e){let r=y(e),i=this.getHealth();return this.updateHealth({errors:[...i.errors.slice(-9),r.message],status:i.errors.length>=5?"degraded":i.status}),{success:!1,error:r}}trackSuccessfulGeneration(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,total:r.agents.total+1,idle:r.agents.idle+1},lastActivity:new Date})}trackFailedGeneration(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,failed:r.agents.failed+1},errors:[...r.errors.slice(-9),e.message]})}};function du(l,t,e,r,i){return new Ta(l,t,e,r,i)}_();_();import{spawn as eC}from"node:child_process";import{existsSync as ug,mkdtempSync as tC,readFileSync as rC,rmSync as gu}from"node:fs";import{tmpdir as iC}from"node:os";import{join as hu}from"node:path";import{isDeepStrictEqual as ka}from"node:util";Pe();var Et={DEFAULT_TEST_TIMEOUT_MS:6e4,DEFAULT_FILE_TIMEOUT_MS:3e4,DEFAULT_VIEWPORT_WIDTH:1280,DEFAULT_VIEWPORT_HEIGHT:720,MAX_RESULTS:1e3,RESULT_RETENTION_MS:864e5,MAX_TESTS_TRACKED:1e4,MAX_EXECUTION_HISTORY:100,ANALYSIS_CACHE_TTL_MS:36e5,MAX_RETRY_HISTORY:50,MAX_ACTIONS_PER_RECORDING:1e3,MAX_RECORDING_DURATION_MS:1800*1e3,MAX_WORKERS:32},Ea={DEFAULT_STEP_TIMEOUT_MS:3e4,RETRY_DELAY_MS:1e3,DEFAULT_MAX_RETRIES:3,POLLING_INTERVAL_MS:100,ELEMENT_DETECTION_TIMEOUT_MS:1e3,POST_INTERACTION_DELAY_MS:500,DEFAULT_WAIT_MS:1e3,ACCESSIBILITY_TIMEOUT_MS:6e4,SCREENSHOT_QUALITY:80,TYPE_DEBOUNCE_MS:300},di={BASE_DELAY_MS:1e3,MAX_DELAY_MS:3e4,DEFAULT_FLAKY_RATE:.3,DEFAULT_FLAKY_PASS_RATE:.7,RETRY_PASS_RATE_VARIATION:.1,SIGKILL_GRACE_PERIOD_MS:1e3},Aa={DEFAULT_TIMEOUT_MS:6e4,QUICK_TIMEOUT_MS:1e4,MAX_CACHED_VALIDATIONS:1e3,CACHE_TTL_MS:36e5,CONTRACT_TTL_SECONDS:86400,MIGRATION_TTL_SECONDS:86400*90,MAX_RECURSION_DEPTH:10,MAX_SCHEMA_DEPTH:20,MAX_MIGRATION_STEPS:50,DEFAULT_SEARCH_LIMIT:100,HIGH_IMPACT_THRESHOLD:5,BREAKING_CHANGE_THRESHOLD:10,DEFAULT_PROVIDER_LOAD:50,HIGH_PROVIDER_LOAD_THRESHOLD:80},kO={PASSING_RATE_WARNING_THRESHOLD:95,PASSING_RATE_CRITICAL_THRESHOLD:80,MIN_COVERAGE_FOR_DEPLOY:80,PERFECT_PASSING_RATE:100,METRIC_TTL_SECONDS:86400*7,STANDARD_METRIC_TTL_SECONDS:86400,MAX_HIGH_VULN_IMPACT:.3,MEDIUM_VULN_IMPACT:.1,MAX_DUPLICATION_PERCENT:20};var DO={CHUNK_SIZE_BYTES:1024*1024,SPIKE_INTERVAL_MS:3e4,SPIKE_DURATION_MS:5e3};var IO={MAX_DURATION_MS:6e4,MAX_AGE_MS:10080*60*1e3,DAYS_IN_YEAR:365,MAX_DEPENDENCY_COUNT:10},xa={MAX_TOKENS:2048,ERROR_TRUNCATION_LENGTH:200,OUTPUT_TRUNCATION_LENGTH:500,DETAILED_OUTPUT_TRUNCATION_LENGTH:1e3,MODEL_TIERS:Is};k();X();he();Qc();var Yw=new Set(["skipped","pending","todo"]),cg=4e3;function Xw(l){if(!Array.isArray(l.failureMessages))return;let t=l.failureMessages.filter(r=>typeof r=="string").join(`
2272
+ `+i.slice(0,6e3)+"\n```"}],a=m=>{let p=/\b(test|it|describe)\s*\(/.test(m),h=/\b(expect|assert)\s*\(/.test(m);return p&&h?{passed:!0}:{passed:!1,feedback:"output must contain a test (test/it/describe) with an assertion (expect/assert)"}},o=await this.freeTierExecutor.execute({agentId:`test-gen:${r}`,messages:s,verify:a,escalate:!0,bestOfK:this.config.freeTierBestOfK??2,repairAttempts:this.config.freeTierRepairAttempts??1});if(!o.ok)return null;let c=Kw(o.content),u=(c.match(/\b(?:expect|assert)\s*\(/g)??[]).length;return u===0?null:{tests:[{id:w(),name:`free-tier:${r.split("/").pop()??r}`,sourceFile:r,testFile:Jw(r),testCode:c,type:e.testType??"unit",assertions:u,framework:n,llmEnhanced:!0}],coverageEstimate:null,patternsUsed:["free-tier-local",`tier:${o.tierUsed}`]}}async generateTDDTests(e){let r=w();try{this.startWorkflow(r,"tdd");let i=await this.spawnTDDAgent(r,e);if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);this.addAgentToWorkflow(r,i.value);let n=await this.testGenerator.generateTDDTests(e);return n.success?(this.completeWorkflow(r),this.updateWorkflowProgress(r,this.getTDDProgress(e.phase))):this.failWorkflow(r,n.error.message),await this.agentCoordinator.stop(i.value),n}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async generatePropertyTests(e){let r=w();try{this.startWorkflow(r,"property");let i=await this.spawnPropertyTestAgent(r,e);if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);this.addAgentToWorkflow(r,i.value);let n=await this.testGenerator.generatePropertyTests(e);return n.success?this.completeWorkflow(r):this.failWorkflow(r,n.error.message),await this.agentCoordinator.stop(i.value),n}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async generateTestData(e){let r=w();try{this.startWorkflow(r,"data");let i=await this.testGenerator.generateTestData(e);return i.success?this.completeWorkflow(r):this.failWorkflow(r,i.error.message),i}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async learnPatterns(e){let r=w();try{this.startWorkflow(r,"learn");let i=await this.patternMatcher.learnPatterns(e);return i.success?(this.completeWorkflow(r),this.config.publishEvents&&await this.publishPatternLearned(i.value)):this.failWorkflow(r,i.error.message),i}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async spawnTestGeneratorAgent(e,r){let i={name:`test-generator-${e.slice(0,8)}`,domain:"test-generation",type:"generator",capabilities:["test-generation",r.testType,r.framework??"vitest"],config:{workflowId:e,sourceFiles:r.sourceFiles,coverageTarget:r.coverageTarget}};return this.agentCoordinator.spawn(i)}async spawnTDDAgent(e,r){let i={name:`tdd-agent-${e.slice(0,8)}`,domain:"test-generation",type:"generator",capabilities:["tdd",r.framework,r.phase],config:{workflowId:e,feature:r.feature,behavior:r.behavior}};return this.agentCoordinator.spawn(i)}async spawnPropertyTestAgent(e,r){let i={name:`property-test-agent-${e.slice(0,8)}`,domain:"test-generation",type:"generator",capabilities:["property-testing","fast-check"],config:{workflowId:e,function:r.function,properties:r.properties}};return this.agentCoordinator.spawn(i)}async publishTestGenerated(e,r,i){let n={testId:e.id,testFile:e.testFile,framework:r,sourceFile:e.sourceFile,testType:e.type,patternsUsed:i},s=N(Xi.TestGenerated,"test-generation",n);await this.eventBus.publish(s)}async publishTestSuiteCreated(e,r){let i={suiteId:w(),testCount:e.tests.length,sourceFiles:r.sourceFiles,coverageEstimate:e.coverageEstimate},n=N(Xi.TestSuiteCreated,"test-generation",i);await this.eventBus.publish(n)}async publishPatternLearned(e){let r=N(Xi.PatternLearned,"test-generation",{patternCount:e.patterns.length,confidence:e.confidence,patternIds:e.patterns.map(i=>i.id)});await this.eventBus.publish(r)}async publishGenerationFailed(e,r){let i=N(Xi.GenerationFailed,"test-generation",{error:e.message,context:r,timestamp:new Date().toISOString()});await this.eventBus.publish(i)}getTDDProgress(e){switch(e){case"red":return 33;case"green":return 66;case"refactor":return 100;default:return 0}}subscribeToEvents(){this.eventBus.subscribe("coverage-analysis.CoverageGapDetected",this.handleCoverageGapDetected.bind(this)),this.eventBus.subscribe("test-execution.TestRunCompleted",this.handleTestRunCompleted.bind(this)),this.subscribeToDreamEvents()}subscribeToDreamEvents(){this.eventBus.subscribe(Ct.DreamCycleCompleted,this.handleDreamCycleCompleted.bind(this))}async handleDreamCycleCompleted(e){let{insights:r,cycleId:i}=e.payload;if(!r||r.length===0)return;let n=r.filter(s=>{let a=s.suggestedAction?.toLowerCase().includes(this.domainName)||s.suggestedAction?.toLowerCase().includes("test")||s.suggestedAction?.toLowerCase().includes("coverage"),o=s.sourceConcepts.some(u=>u.toLowerCase().includes("test")||u.toLowerCase().includes(this.domainName)||u.toLowerCase().includes("coverage")||u.toLowerCase().includes("edge-case")),c=s.type==="optimization"||s.type==="gap_detection"||s.type==="novel_association";return a||o||c&&s.actionable});if(n.length!==0){Z.info(`[${this.domainName}] Received ${n.length} relevant dream insights from cycle ${i}`);for(let s of n)s.confidenceScore>.7&&s.actionable&&await this.applyDreamInsight(s,i),this.recentDreamInsights.push({...s,receivedAt:new Date});this.recentDreamInsights.length>50&&(this.recentDreamInsights=this.recentDreamInsights.slice(-50))}}async applyDreamInsight(e,r){if(Z.info(`[${this.domainName}] Applying dream insight: ${e.description.slice(0,100)}...`),this.qesona)try{let i={id:`dream-insight-${e.id}`,features:this.encodeInsightAsFeatures(e),metadata:{insightType:e.type,cycleId:r,sourceConcepts:e.sourceConcepts}},n={type:"dream-insight",value:e.suggestedAction||e.description},s=this.qesona.createPattern(i,n,{reward:e.confidenceScore,success:!0,quality:e.noveltyScore},"dream-derived",this.domainName,{insightId:e.id,cycleId:r,description:e.description,suggestedAction:e.suggestedAction});Z.info(`[${this.domainName}] Created SONA pattern ${s.id} from dream insight`)}catch(i){Z.error(`[${this.domainName}] Failed to store dream insight pattern`,i instanceof Error?i:void 0)}await this.memory.set(`${this.domainName}:dream-insight:${e.id}`,{insight:e,cycleId:r,appliedAt:new Date().toISOString()},{namespace:this.domainName,ttl:86400*7})}getRecentDreamInsights(e){let r=Date.now()-864e5;return this.recentDreamInsights.filter(i=>{let n=i.receivedAt.getTime()>r,s=!e||i.type===e;return n&&s})}async enhanceWithDreamInsights(e){let r=[],n=this.getRecentDreamInsights().filter(s=>(s.type==="novel_association"||s.type==="gap_detection")&&s.actionable&&s.confidenceScore>.6);for(let s of n)s.suggestedAction&&(e.sourceFiles.some(o=>s.sourceConcepts.some(c=>o.toLowerCase().includes(c.toLowerCase())))||s.suggestedAction.toLowerCase().includes(e.testType))&&r.push(s.suggestedAction);return r.slice(0,5)}encodeInsightAsFeatures(e){let r=[],i={pattern_merge:.2,novel_association:.4,optimization:.6,gap_detection:.8};for(r.push(i[e.type]||.5),r.push(e.confidenceScore),r.push(e.noveltyScore),r.push(e.actionable?1:0),r.push(Math.min(1,e.sourceConcepts.length/10));r.length<384;)r.push(0);return r.slice(0,384)}async handleCoverageGapDetected(e){if(!Ue(e.payload))return;let r=e.payload,i=await this.testGenerator.generateForCoverageGap(r.file,r.uncoveredLines,"jest");if(i.success&&i.value.length>0)for(let n of i.value)await this.publishTestGenerated(n,"jest")}async handleTestRunCompleted(e){}async learnFromGeneration(e){let r=e.patternIds??[];if(r.length!==0)try{let{getUnifiedMemory:i}=await import("./unified-memory-FZ5K2C7W.js"),{recordPatternUsage:n}=await import("./pattern-usage-recorder-GXRMNPAZ.js"),s=i().getDatabase();for(let a of r)n(s,{patternId:a,success:!0})}catch(i){Z.warn("Pattern usage recording skipped",{error:i instanceof Error?i.message:String(i)})}}async adaptTestGenerationPatterns(e){if(!this.qesona)return[];try{let r={id:`test-gen-${Date.now()}`,features:this.encodeRequestAsFeatures(e),metadata:{testType:e.testType,framework:e.framework,sourceFileCount:e.sourceFiles.length}},i=await this.qesona.adaptPattern(r,this.config.sonaPatternType,"test-generation");return i.success&&i.pattern?(Z.info(`QESONA adapted pattern with ${i.similarity.toFixed(3)} similarity in ${i.adaptationTimeMs.toFixed(2)}ms`),[i.pattern.id]):[]}catch(r){return Z.error("QESONA pattern adaptation failed:",r instanceof Error?r:void 0),[]}}async storeTestGenerationPattern(e,r){if(!(!this.qesona||e.coverageEstimate===null))try{let i={id:`test-gen-${Date.now()}`,features:this.encodeRequestAsFeatures(r),metadata:{testCount:e.tests.length,coverageEstimate:e.coverageEstimate,success:!0}},n={type:"generate-tests",value:{testType:r.testType,framework:r.framework,patternsUsed:e.patternsUsed}},s=this.qesona.createPattern(i,n,{reward:e.coverageEstimate/100,success:!0,quality:e.coverageEstimate/100},this.config.sonaPatternType,"test-generation",{testCount:e.tests.length,framework:r.framework,testType:r.testType});Z.info(`Stored test generation pattern ${s.id} in QESONA`)}catch(i){Z.error("Failed to store pattern in QESONA:",i instanceof Error?i:void 0)}}async findSimilarTests(e){if(!this.flashAttention)return[];let r=[];try{for(let n of e){let s=this.generateTestEmbedding(n);this.testEmbeddings.set(n.id,s)}let i=await this.loadExistingTestEmbeddings();if(i.length===0)return[];for(let n of e){let s=this.testEmbeddings.get(n.id);if(!s)continue;let o=(await this.flashAttention.computeTestSimilarity(s,i.map(c=>c.embedding),5)).filter(c=>c.similarity>.7).map(c=>({testId:i[c.index].testId,similarity:c.similarity}));o.length>0&&r.push({test:n,similarTests:o})}return r}catch(i){return Z.error("Flash Attention similarity detection failed:",i instanceof Error?i:void 0),[]}}async prioritizeTestCases(e,r){if(!this.decisionTransformer)return e;try{let i={id:`prioritize-${Date.now()}`,features:[e.length/100,(r.coverageTarget||80)/100,r.testType==="unit"?.2:r.testType==="integration"?.5:.8,r.framework==="jest"?.3:r.framework==="vitest"?.4:.5],metadata:{testCount:e.length,framework:r.framework,testType:r.testType}},n=await this.decisionTransformer.predict(i);return Z.info(`DecisionTransformer prediction: ${n.reasoning}`),n.confidence>.7?e.sort((s,a)=>a.assertions-s.assertions):e}catch(i){return Z.error("DecisionTransformer prioritization failed:",i instanceof Error?i:void 0),e}}getQESONAStats(){return this.qesona?this.qesona.getStats():null}getFlashAttentionMetrics(){return this.flashAttention?this.flashAttention.getMetrics():null}async checkRequirementCoherence(e){return this.coherenceGate?this.coherenceGate.checkRequirementCoherence(e):{isCoherent:!0,energy:0,lane:"reflex",contradictions:[],recommendations:[],durationMs:0,usedFallback:!0}}isCoherenceGateAvailable(){return this.coherenceGate?.isAvailable()??!1}async verifyAndEnrichSpec(e){if(!this.coherenceGate||!this.config.enableCoherenceGate)return e;let r=await this.coherenceGate.validateAndEnrich(e);if(r.success)return r.value;throw r.error}async verifyTestPatternSelection(e,r){let i=W({id:w(),type:"test-pattern-selection",confidence:r,description:`Verify test pattern: ${e.name} (${e.type})`,payload:e,detectedBy:"test-generation-coordinator",severity:r>.9?"high":"medium"});if(this.consensusMixin.requiresConsensus(i)){let n=await this.consensusMixin.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Z.info(`Test pattern '${e.name}' verified by consensus`),!0):(Z.warn(`Test pattern '${e.name}' NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}async verifyMockStrategy(e,r){let i=W({id:w(),type:"mock-strategy",confidence:r,description:`Verify mock strategy for ${e.target}: ${e.mockType}`,payload:e,detectedBy:"test-generation-coordinator",severity:r>.85?"high":"medium"});if(this.consensusMixin.requiresConsensus(i)){let n=await this.consensusMixin.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Z.info(`Mock strategy for '${e.target}' verified by consensus`),!0):(Z.warn(`Mock strategy for '${e.target}' NOT verified`),!1)}return!0}async verifyEdgeCaseGeneration(e,r){let i=W({id:w(),type:"edge-case-generation",confidence:r,description:`Verify edge case: ${e.description}`,payload:e,detectedBy:"test-generation-coordinator",severity:"high"});if(this.consensusMixin.requiresConsensus(i)){let n=await this.consensusMixin.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Z.info(`Edge case '${e.description.slice(0,50)}...' verified by consensus`),!0):(Z.warn(`Edge case NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}encodeRequestAsFeatures(e){let r=[];for(r.push(e.testType==="unit"?.2:e.testType==="integration"?.5:.8),r.push(e.framework==="jest"?.25:e.framework==="vitest"?.5:e.framework==="mocha"?.75:.9),r.push(Math.min(1,e.sourceFiles.length/50)),r.push((e.coverageTarget||80)/100);r.length<384;)r.push(0);return r.slice(0,384)}generateTestEmbedding(e){let r=[],i=this.simpleHash(e.name);for(let n=0;n<64;n++)r.push((i>>n%32&1)*2-1);for(r.push(e.type==="unit"?.2:e.type==="integration"?.5:.8),r.push(Math.min(1,e.assertions/20));r.length<384;)r.push(0);return new Float32Array(r.slice(0,384))}async loadExistingTestEmbeddings(){try{let e=await this.memory.search("test-embedding:*",1e3),r=[];for(let i of e){let n=await this.memory.get(i);n&&r.push({testId:n.testId,embedding:new Float32Array(n.embedding)})}return r}catch{return[]}}simpleHash(e){let r=0;for(let i=0;i<e.length;i++){let n=e.charCodeAt(i);r=(r<<5)-r+n,r=r|0}return Math.abs(r)}async loadWorkflowState(){let e=await this.memory.get("test-generation:coordinator:workflows");if(e)for(let r of e)r.status==="running"&&(r.status="failed",r.error="Coordinator restarted",r.completedAt=new Date),this.workflows.set(r.id,r)}async saveWorkflowState(){let e=Array.from(this.workflows.values());await this.memory.set("test-generation:coordinator:workflows",e,{namespace:"test-generation",persist:!0})}};k();var Ta=class extends ee{constructor(e,r,i,n={},s){super(e,r);this.agentCoordinator=i;this.llmRouter=s;this.pluginConfig=n}agentCoordinator;llmRouter;coordinator=null;testGenerator=null;patternMatcher=null;pluginConfig;get name(){return"test-generation"}get version(){return"1.0.0"}get dependencies(){return[]}getAPI(){return{generateTests:this.generateTests.bind(this),generateTDDTests:this.generateTDDTests.bind(this),generatePropertyTests:this.generatePropertyTests.bind(this),generateTestData:this.generateTestData.bind(this),learnPatterns:this.learnPatterns.bind(this),getCoordinator:()=>this.coordinator,getTestGenerator:()=>this.testGenerator,getPatternMatcher:()=>this.patternMatcher}}getTaskHandlers(){return new Map([["generate-tests",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.testType,i=e.framework;if(!Array.isArray(e.sourceFiles)||e.sourceFiles.length===0)return g(new Error("Invalid generate-tests payload: missing sourceFiles"));let n=await Lt("generate-tests","sourceFiles",e.sourceFiles,{maxBytes:Qr});if(!n.success)return n;let a={sourceFiles:n.value,testType:r??"unit",framework:i??"vitest",coverageTarget:e.coverageTarget,patterns:e.patterns};return this.coordinator.generateTests(a)}],["generate-tdd-tests",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.feature,i=e.behavior,n=e.framework,s=e.phase;return!r||!i?g(new Error("Invalid generate-tdd-tests payload: missing feature or behavior")):this.coordinator.generateTDDTests({feature:r,behavior:i,framework:n??"vitest",phase:s??"red"})}],["generate-property-tests",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.function,i=e.properties;return!r||!i||i.length===0?g(new Error("Invalid generate-property-tests payload: missing function or properties")):this.coordinator.generatePropertyTests({function:r,properties:i,constraints:e.constraints})}],["generate-test-data",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.schema,i=e.count;return r?this.coordinator.generateTestData({schema:r,count:i??10,locale:e.locale,preserveRelationships:e.preserveRelationships}):g(new Error("Invalid generate-test-data payload: missing schema"))}]])}async onInitialize(){this.testGenerator=Cr({memory:this.memory,llmRouter:this.llmRouter},this.pluginConfig.testGenerator),this.patternMatcher=new Sr(this.memory,this.pluginConfig.patternMatcher);let e;if(this.pluginConfig.coordinator?.enableFreeTier===!0||process.env.AQE_FREE_TIER==="1"){e=new Bs(1e4,{enableEMACalibration:!0,enableAutoEscalation:!0});try{await e.initialize()}catch{}}this.coordinator=new _n(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.coordinator,this.llmRouter,void 0,void 0,e),await this.coordinator.initialize(),this.updateHealth({status:"idle",agents:{total:0,active:0,idle:0,failed:0},lastActivity:new Date,errors:[]})}async onDispose(){this.coordinator&&await this.coordinator.dispose(),this.coordinator=null,this.testGenerator=null,this.patternMatcher=null}subscribeToEvents(){this.eventBus.subscribe("coverage-analysis.CoverageGapDetected",this.handleCoverageGap.bind(this)),this.eventBus.subscribe("code-intelligence.ImpactAnalysisCompleted",this.handleImpactAnalysis.bind(this)),this.eventBus.subscribe("learning-optimization.PatternConsolidated",this.handlePatternConsolidation.bind(this))}async onEvent(e){switch(this.updateHealth({lastActivity:new Date}),e.type){case"coverage-analysis.CoverageGapDetected":await this.handleCoverageGap(e);break;case"code-intelligence.ImpactAnalysisCompleted":await this.handleImpactAnalysis(e);break;default:break}}async generateTests(e){this.ensureInitialized();try{let r=await this.coordinator.generateTests(e);return r.success?this.trackSuccessfulGeneration(r.value):this.trackFailedGeneration(r.error),r}catch(r){return this.handleError(r)}}async generateTDDTests(e){this.ensureInitialized();try{return await this.coordinator.generateTDDTests(e)}catch(r){return this.handleError(r)}}async generatePropertyTests(e){this.ensureInitialized();try{return await this.coordinator.generatePropertyTests(e)}catch(r){return this.handleError(r)}}async generateTestData(e){this.ensureInitialized();try{return await this.coordinator.generateTestData(e)}catch(r){return this.handleError(r)}}async learnPatterns(e){this.ensureInitialized();try{return await this.coordinator.learnPatterns(e)}catch(r){return this.handleError(r)}}async handleCoverageGap(e){if(!Ue(e.payload))return;let r=e.payload;r.riskScore>=.7&&await this.memory.set(`test-generation:pending-gaps:${r.gapId}`,r,{namespace:"test-generation",ttl:86400})}async handleImpactAnalysis(e){let r=e.payload;await this.memory.set(`test-generation:impact:${r.analysisId}`,r,{namespace:"test-generation",ttl:3600})}async handlePatternConsolidation(e){e.payload.domains.includes("test-generation")}ensureInitialized(){if(!this._initialized)throw new Error("TestGenerationPlugin is not initialized");if(!this.coordinator||!this.testGenerator||!this.patternMatcher)throw new Error("TestGenerationPlugin services are not available")}handleError(e){let r=y(e),i=this.getHealth();return this.updateHealth({errors:[...i.errors.slice(-9),r.message],status:i.errors.length>=5?"degraded":i.status}),{success:!1,error:r}}trackSuccessfulGeneration(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,total:r.agents.total+1,idle:r.agents.idle+1},lastActivity:new Date})}trackFailedGeneration(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,failed:r.agents.failed+1},errors:[...r.errors.slice(-9),e.message]})}};function du(l,t,e,r,i){return new Ta(l,t,e,r,i)}_();_();import{spawn as eC}from"node:child_process";import{existsSync as ug,mkdtempSync as tC,readFileSync as rC,rmSync as gu}from"node:fs";import{tmpdir as iC}from"node:os";import{join as hu}from"node:path";import{isDeepStrictEqual as ka}from"node:util";Pe();var Et={DEFAULT_TEST_TIMEOUT_MS:6e4,DEFAULT_FILE_TIMEOUT_MS:3e4,DEFAULT_VIEWPORT_WIDTH:1280,DEFAULT_VIEWPORT_HEIGHT:720,MAX_RESULTS:1e3,RESULT_RETENTION_MS:864e5,MAX_TESTS_TRACKED:1e4,MAX_EXECUTION_HISTORY:100,ANALYSIS_CACHE_TTL_MS:36e5,MAX_RETRY_HISTORY:50,MAX_ACTIONS_PER_RECORDING:1e3,MAX_RECORDING_DURATION_MS:1800*1e3,MAX_WORKERS:32},Ea={DEFAULT_STEP_TIMEOUT_MS:3e4,RETRY_DELAY_MS:1e3,DEFAULT_MAX_RETRIES:3,POLLING_INTERVAL_MS:100,ELEMENT_DETECTION_TIMEOUT_MS:1e3,POST_INTERACTION_DELAY_MS:500,DEFAULT_WAIT_MS:1e3,ACCESSIBILITY_TIMEOUT_MS:6e4,SCREENSHOT_QUALITY:80,TYPE_DEBOUNCE_MS:300},di={BASE_DELAY_MS:1e3,MAX_DELAY_MS:3e4,DEFAULT_FLAKY_RATE:.3,DEFAULT_FLAKY_PASS_RATE:.7,RETRY_PASS_RATE_VARIATION:.1,SIGKILL_GRACE_PERIOD_MS:1e3},Aa={DEFAULT_TIMEOUT_MS:6e4,QUICK_TIMEOUT_MS:1e4,MAX_CACHED_VALIDATIONS:1e3,CACHE_TTL_MS:36e5,CONTRACT_TTL_SECONDS:86400,MIGRATION_TTL_SECONDS:86400*90,MAX_RECURSION_DEPTH:10,MAX_SCHEMA_DEPTH:20,MAX_MIGRATION_STEPS:50,DEFAULT_SEARCH_LIMIT:100,HIGH_IMPACT_THRESHOLD:5,BREAKING_CHANGE_THRESHOLD:10,DEFAULT_PROVIDER_LOAD:50,HIGH_PROVIDER_LOAD_THRESHOLD:80},kO={PASSING_RATE_WARNING_THRESHOLD:95,PASSING_RATE_CRITICAL_THRESHOLD:80,MIN_COVERAGE_FOR_DEPLOY:80,PERFECT_PASSING_RATE:100,METRIC_TTL_SECONDS:86400*7,STANDARD_METRIC_TTL_SECONDS:86400,MAX_HIGH_VULN_IMPACT:.3,MEDIUM_VULN_IMPACT:.1,MAX_DUPLICATION_PERCENT:20};var DO={CHUNK_SIZE_BYTES:1024*1024,SPIKE_INTERVAL_MS:3e4,SPIKE_DURATION_MS:5e3};var IO={MAX_DURATION_MS:6e4,MAX_AGE_MS:10080*60*1e3,DAYS_IN_YEAR:365,MAX_DEPENDENCY_COUNT:10},xa={MAX_TOKENS:2048,ERROR_TRUNCATION_LENGTH:200,OUTPUT_TRUNCATION_LENGTH:500,DETAILED_OUTPUT_TRUNCATION_LENGTH:1e3,MODEL_TIERS:Is};k();X();he();Qc();var Yw=new Set(["skipped","pending","todo"]),cg=4e3;function Xw(l){if(!Array.isArray(l.failureMessages))return;let t=l.failureMessages.filter(r=>typeof r=="string").join(`
2273
2273
  `).trim();if(!t)return;let e=Fe(t);return e.length>cg?`${e.slice(0,cg)}\u2026 [truncated]`:e}function Fe(l){return Ui(l,Number.POSITIVE_INFINITY)}function mu(l){return l.map(t=>({...t,error:Fe(t.error),...typeof t.stack=="string"?{stack:Fe(t.stack)}:{}}))}function Zw(l){return l==="passed"||l==="failed"?l:typeof l=="string"&&Yw.has(l)?"skipped":void 0}function lg(l,t){if(!Array.isArray(l.testResults))return;let e=[];for(let r of l.testResults){let i=typeof r?.name=="string"?r.name:t,n=Array.isArray(r?.assertionResults)?r.assertionResults:[];for(let s of n){if(!s||typeof s!="object")continue;let a=Zw(s.status);if(!a)continue;let o=typeof s.fullName=="string"&&s.fullName?s.fullName:typeof s.title=="string"?s.title:"";if(!o)continue;let c=typeof s.duration=="number"&&Number.isFinite(s.duration)?s.duration:void 0,u=a==="failed"?Xw(s):void 0;e.push({name:o,file:i,status:a,...c!==void 0?{duration:c}:{},...u?{failureMessage:u}:{}})}}return e.length>0?e:void 0}function pu(l){if(l.length===0||l.some(e=>e.total>0&&!e.testCases))return;let t=l.flatMap(e=>e.testCases??[]);return t.length>0?t:void 0}Pe();ei();var nC={simulateForTesting:!1,simulatedTestsPerFile:5,simulatedFailureRate:.2,simulatedSkipRate:.1,enableLLMAnalysis:!0,llmModelTier:2,llmMaxTokens:xa.MAX_TOKENS},dg=A.create("test-execution/test-executor"),Da=class{runResults=new Map;runStats=new Map;config;memory;llmRouter;MAX_RESULTS=Et.MAX_RESULTS;RESULT_RETENTION_MS=Et.RESULT_RETENTION_MS;constructor(t,e={}){this.memory=t.memory,this.llmRouter=t.llmRouter,this.config={...nC,...e}}async execute(t){let e=w(),r=new Date;try{let i=this.validateRequest(t);if(i.success===!1)return g(i.error);let n=await this.runTests(t),s=new Date,a=s.getTime()-r.getTime(),o={runId:e,status:n.failed>0?"failed":"passed",total:n.total,passed:n.passed,failed:n.failed,skipped:n.skipped,duration:a,failedTests:mu(n.failedTests),...n.testCases?{testCases:n.testCases}:{},coverage:n.coverage,fileCoverages:n.fileCoverages};this.runResults.set(e,o),await this.storeResults(e,o,t.testFiles);let c={runId:e,startTime:r,endTime:s,duration:a,testsPerSecond:n.total/(a/1e3),workers:1,memoryUsage:process.memoryUsage?.().heapUsed??0};return this.runStats.set(e,c),f(o)}catch(i){return g(y(i))}}async executeParallel(t){let e=w(),r=new Date;try{let i=this.validateParallelRequest(t);if(i.success===!1)return g(i.error);let{workers:n,sharding:s="file",isolation:a="process"}=t,c=["vitest","jest"].includes(t.framework.toLowerCase())?1:n,u=this.shardTests(t.testFiles,c,s),d=await Promise.all(u.map((C,S)=>this.executeWorker(C,S,a,t))),m=this.aggregateResults(d),p=new Date,h=p.getTime()-r.getTime(),b={runId:e,status:m.failed>0?"failed":"passed",total:m.total,passed:m.passed,failed:m.failed,skipped:m.skipped,duration:h,failedTests:mu(m.failedTests),...m.testCases?{testCases:m.testCases}:{},coverage:m.coverage,fileCoverages:m.fileCoverages};this.runResults.set(e,b),await this.storeResults(e,b,t.testFiles);let v={runId:e,startTime:r,endTime:p,duration:h,testsPerSecond:m.total/(h/1e3),workers:c,memoryUsage:process.memoryUsage?.().heapUsed??0};return this.runStats.set(e,v),f(b)}catch(i){return g(y(i))}}async recordFinalOutcome(t,e){this.runResults.set(t.runId,t),await this.storeResults(t.runId,t,e)}async getResults(t){let e=this.runResults.get(t);if(e)return f(e);try{let r=await this.memory.get(`test-run:${t}`);if(r)return this.runResults.set(t,r),f(r)}catch{}return g(new Error(`Test run not found: ${t}`))}async getStats(t){let e=this.runStats.get(t);if(e)return f(e);try{let r=await this.memory.get(`test-stats:${t}`);if(r)return this.runStats.set(t,r),f(r)}catch{}return g(new Error(`Test stats not found: ${t}`))}cleanupOldResults(){let t=Date.now(),e=0;for(let[r,i]of this.runResults){let n=i.duration?t-i.duration:t;t-n>this.RESULT_RETENTION_MS&&(this.runResults.delete(r),this.runStats.delete(r),e++)}if(this.runResults.size>this.MAX_RESULTS){let r=this.runResults.size-this.MAX_RESULTS,i=Array.from(this.runResults.entries());for(let n=0;n<r&&n<i.length;n++)this.runResults.delete(i[n][0]),this.runStats.delete(i[n][0]),e++}return e}destroy(){this.runResults.clear(),this.runStats.clear()}isLLMAnalysisAvailable(){return this.config.enableLLMAnalysis&&this.llmRouter!==void 0}getModelForTier(t){return ae(t)}async analyzeFailuresWithLLM(t){if(!this.isLLMAnalysisAvailable()||t.length===0)return null;try{let e=t.slice(0,5).map(i=>`- ${i.testName}: ${i.error?Fe(i.error).substring(0,200):"Unknown error"}`).join(`
2274
2274
  `);return(await this.llmRouter.chat({model:this.getModelForTier(this.config.llmModelTier),messages:[{role:"user",content:`Analyze these test failures and provide insights:
2275
2275
  ${e}
@@ -2766,7 +2766,7 @@ ${t.slice(0,4e3)}
2766
2766
  // File: ${u}
2767
2767
  ${m.value.slice(0,2e3)}
2768
2768
  `)}}let o=this.calculateModelConfidence(n),c=null;if(this.isLLMPredictionAvailable()&&a.length>0){let u=await this.getHistoricalDefectPatterns(e);if(c=await this.analyzeDefectRiskWithLLM(a,n,u),c){for(let d of n)d.recommendations=this.mergeRecommendationsWithLLM(d.recommendations,c);c.confidenceLevel>.7&&(o=Math.min(1,o*1.1))}}return await this.storePrediction(n),this.modelMetrics.totalPredictions+=n.length,this.modelMetrics.lastUpdated=new Date,f({predictions:n,modelConfidence:o,factors:Array.from(s),llmAnalysis:c??void 0})}catch(e){return g(y(e))}}async getHistoricalDefectPatterns(t){let e=[];for(let i of t.slice(0,5)){let n=await this.memory.get(`${this.config.modelNamespace}:defect-patterns:${i}`);n?.patterns&&e.push(...n.patterns)}let r=await this.memory.get(`${this.config.modelNamespace}:common-defect-patterns`);return r&&e.push(...r),[...new Set(e)].slice(0,10)}async recordConfirmedDefectPattern(t,e){let r=`${this.config.modelNamespace}:defect-patterns:${t}`,i=await this.memory.get(r),n=[...new Set([...i?.patterns??[],e])].slice(-20);await this.memory.set(r,{patterns:n},{namespace:"defect-intelligence",persist:!0});let s=`${this.config.modelNamespace}:common-defect-patterns`,a=await this.memory.get(s)??[],o=[...new Set([...a,e])].slice(-50);await this.memory.set(s,o,{namespace:"defect-intelligence",persist:!0})}async analyzeRegressionRisk(t){try{let{changeset:e,baseline:r,depth:i="shallow"}=t;if(e.length===0)return g(new Error("No files in changeset"));let n=[],s=0;for(let d of e){let m=await this.analyzeFileImpact(d,i);n.push(...m.areas),s+=m.risk}if(r&&this.config.enableHistoricalAnalysis){let d=await this.getBaselineRisk(r);s=(s+d)/2}let a=Math.min(1,s/e.length),o=this.riskToSeverity(a),c=this.generateTestRecommendations(n);return f({overallRisk:a,riskLevel:o,impactedAreas:n,recommendedTests:c,confidence:i==="deep"?.85:.7})}catch(e){return g(y(e))}}async updateModel(t){try{let e=`${this.config.modelNamespace}:feedback:${t.predictionId}`;return await this.memory.set(e,t,{namespace:"defect-intelligence",persist:!0}),await this.recalculateMetrics(t),t.actualDefect&&t.defectType&&await this.recordConfirmedDefectPattern(t.file,t.defectType),f(void 0)}catch(e){return g(y(e))}}async getModelMetrics(){let t=await this.memory.get(`${this.config.modelNamespace}:metrics`);return t&&(this.modelMetrics={...t,lastUpdated:new Date(t.lastUpdated)}),{...this.modelMetrics}}async predictForFile(t,e,r){let{metrics:i,gitTimedOut:n}=await this.extractFileMetrics(t),s=[],a=0;for(let u of e){let m=(i[u.name]??0)*u.weight;a+=m,s.push({name:u.name,contribution:Math.round(m*100)/100})}a=Math.max(0,Math.min(1,a));let o=this.probabilityToRisk(a,r),c=this.generateRecommendations(s,a);return n&&c.unshift(wh),{file:t,probability:a,riskLevel:o,factors:s.filter(u=>u.contribution>.05),recommendations:c,...n?{warnings:[wh]}:{}}}async extractFileMetrics(t){let e=await this.memory.get(`${this.config.modelNamespace}:file-metrics:${t}`);if(e)return{metrics:e,gitTimedOut:!1};let r=async()=>({codeComplexity:await this.calculateComplexity(t),changeFrequency:await this.getChangeFrequency(t),developerExperience:await this.getDeveloperExperience(t),testCoverage:await this.getTestCoverage(t),codeAge:await this.getCodeAge(t),bugHistory:await this.getBugHistory(t)}),i=this.gitAnalyzer.withFileDeadline?await this.gitAnalyzer.withFileDeadline(t,r):await r(),n=this.gitAnalyzer.consumeTimeout?.(t)===!0;return n||await this.memory.set(`${this.config.modelNamespace}:file-metrics:${t}`,i,{namespace:"defect-intelligence",ttl:3600}),{metrics:i,gitTimedOut:n}}async calculateComplexity(t){let e=t.split(".").pop()?.toLowerCase();if(e&&["ts","tsx","js","jsx"].includes(e)){let r=await this.fileReader.readFile(t);if(r.success)try{let i=t.split("/").pop()||t,n=this.tsParser.parseFile(i,r.value),s=this.tsParser.extractFunctions(n),a=this.tsParser.extractClasses(n),o=r.value.split(`
2769
- `).length,c=s.length,u=a.length,d=a.reduce((G,O)=>G+O.methods.length,0),m=s.filter(G=>G.isAsync).length,p=r.value,h=(p.match(/\bif\s*\(/g)||[]).length,b=(p.match(/\b(for|while|do)\s*[{(]/g)||[]).length,v=(p.match(/\bswitch\s*\(/g)||[]).length,C=(p.match(/\bcatch\s*\(/g)||[]).length,S=(p.match(/\?[^?:]+:/g)||[]).length,T=h+b*2+v*2+C+S,x=Math.min(1,o/500),R=Math.min(1,(c+d)/30),I=Math.min(1,T/50),M=m>0?.1:0,q=x*.2+R*.25+I*.4+M+(u>3?.05:0);return Math.max(0,Math.min(1,q))}catch(i){td.debug(`AST parse failed: ${i instanceof Error?i.message:i}`)}}return this.estimateComplexityFromPath(t)}estimateComplexityFromPath(t){let e=t.split("/"),r=e[e.length-1],i=.3;return(t.includes("controller")||t.includes("service"))&&(i+=.2),(t.includes("coordinator")||t.includes("orchestrator"))&&(i+=.15),(t.includes("utils")||t.includes("helper"))&&(i-=.1),(t.includes("types")||t.includes("interfaces"))&&(i-=.15),r.length>30&&(i+=.1),Math.max(0,Math.min(1,i))}async getChangeFrequency(t){let e=await this.gitAnalyzer.getChangeFrequency(t);if(e!==.4)return await this.memory.set(`${this.config.modelNamespace}:history:${t}`,{changes:Math.round(e*30)},{ttl:3600}),e;let r=`${this.config.modelNamespace}:history:${t}`,i=await this.memory.get(r);return i?Math.min(1,i.changes/50):.4}async getDeveloperExperience(t){let e=await this.gitAnalyzer.getDeveloperExperience(t);if(e!==.5)return await this.memory.set(`${this.config.modelNamespace}:developer-exp:${t}`,{score:e},{ttl:3600}),e;let r=`${this.config.modelNamespace}:developer-exp:${t}`,i=await this.memory.get(r);return i?i.score:.5}async getTestCoverage(t){try{for(let e of Gs(t)){let r=Us(await this.memory.get(e));if(r)return 1-r.line/100}}catch{}return .4}async getCodeAge(t){let e=await this.gitAnalyzer.getCodeAge(t);if(e!==.4)return e;let r=`${this.config.modelNamespace}:age:${t}`,i=await this.memory.get(r);return i?i.days<7?.7:i.days>365?.3:.4:.4}async getBugHistory(t){let e=await this.gitAnalyzer.getBugHistory(t);if(e!==.2)return await this.memory.set(`${this.config.modelNamespace}:bugs:${t}`,{count:Math.round(e*10)},{ttl:3600}),e;let r=`${this.config.modelNamespace}:bugs:${t}`,i=await this.memory.get(r);return i?Math.min(1,i.count/10):.2}probabilityToRisk(t,e){return t>=e+.3?"critical":t>=e+.15?"high":t>=e?"medium":t>=e-.2?"low":"info"}riskToSeverity(t){return t>=.8?"critical":t>=.6?"high":t>=.4?"medium":t>=.2?"low":"info"}generateRecommendations(t,e){let r=[],i=[...t].sort((n,s)=>s.contribution-n.contribution);for(let n of i.slice(0,3))switch(n.name){case"codeComplexity":n.contribution>.1&&(r.push("Consider refactoring to reduce cyclomatic complexity"),r.push("Break down large functions into smaller, testable units"));break;case"changeFrequency":n.contribution>.1&&(r.push("High churn area - add comprehensive regression tests"),r.push("Consider stabilizing the interface before further changes"));break;case"testCoverage":n.contribution>.1&&(r.push("Increase test coverage to reduce defect risk"),r.push("Add unit tests for critical paths"));break;case"bugHistory":n.contribution>.1&&(r.push("Review past bug fixes for patterns"),r.push("Add regression tests for previously fixed issues"));break;case"codeAge":n.contribution>.1&&r.push("New code requires thorough review and testing");break;case"developerExperience":n.contribution>.1&&r.push("Request code review from senior developer");break}return e>.7&&r.push("CRITICAL: Schedule immediate code review"),r}async analyzeFileImpact(t,e){let r=[],i=0,n=this.categorizeFile(t),s=(await this.extractFileMetrics(t)).metrics.codeComplexity;if(r.push({area:n,files:[t],risk:s,reason:`Modified file in ${n} area`}),i+=s,e==="deep"){let a=await this.analyzeDependencies(t);for(let o of a){let c=(await this.extractFileMetrics(o)).metrics.codeComplexity*.5;r.push({area:this.categorizeFile(o),files:[o],risk:c,reason:`Dependency of ${t}`}),i+=c}}return{areas:r,risk:i}}categorizeFile(t){return t.includes("controller")?"API Layer":t.includes("service")?"Business Logic":t.includes("repository")||t.includes("dao")?"Data Access":t.includes("model")||t.includes("entity")?"Domain Model":t.includes("util")||t.includes("helper")?"Utilities":t.includes("test")?"Tests":t.includes("config")?"Configuration":"General"}async analyzeDependencies(t){let e=`code-intelligence:dependencies:${t}`,r=await this.memory.get(e);if(r&&r.length>0)return r;let i=[];try{let n=await this.fileReader.readFile(t);if(!n.success)return[];let s=t.split("/").pop()||t,a=this.tsParser.parseFile(s,n.value),o=this.tsParser.extractImports(a);for(let c of o)if(c.module.startsWith(".")){let u=this.resolveRelativeImport(t,c.module);i.push(u)}else c.module.startsWith("node:")||i.push(c.module);i.length>0&&await this.memory.set(e,i,{namespace:"code-intelligence",ttl:3600})}catch(n){td.error(`Failed to analyze dependencies for ${t}`,n instanceof Error?n:void 0)}return i}resolveRelativeImport(t,e){let i=t.substring(0,t.lastIndexOf("/")).split("/"),n=e.split("/");for(let a of n)a!=="."&&(a===".."?i.pop():i.push(a));let s=i.join("/");return!s.endsWith(".ts")&&!s.endsWith(".tsx")&&!s.endsWith(".js")&&(s=s+".ts"),s}async getBaselineRisk(t){let e=`${this.config.modelNamespace}:baseline:${t}`;return(await this.memory.get(e))?.risk??.3}generateTestRecommendations(t){let e=[],r=new Set(t.map(n=>n.area));for(let n of r)switch(n){case"API Layer":e.push("Run API integration tests"),e.push("Verify endpoint response contracts");break;case"Business Logic":e.push("Run unit tests for business rules"),e.push("Execute scenario-based tests");break;case"Data Access":e.push("Run database integration tests"),e.push("Verify data integrity constraints");break;case"Domain Model":e.push("Run entity validation tests"),e.push("Check serialization/deserialization");break}return t.filter(n=>n.risk>.6).length>0&&(e.push("Run full regression test suite"),e.push("Consider exploratory testing for edge cases")),[...new Set(e)]}calculateModelConfidence(t){let e=this.modelMetrics.accuracy,r=t.map(n=>n.probability);return this.calculateVariance(r)>.2&&(e*=.9),t.length>10&&(e*=1.05),Math.min(1,Math.max(0,e))}calculateVariance(t){if(t.length===0)return 0;let e=t.reduce((i,n)=>i+n,0)/t.length;return t.map(i=>Math.pow(i-e,2)).reduce((i,n)=>i+n,0)/t.length}async storePrediction(t){let e=w();await this.memory.set(`${this.config.modelNamespace}:prediction:${e}`,{id:e,predictions:t,timestamp:new Date().toISOString()},{namespace:"defect-intelligence",ttl:86400*7}),await ap(this.memory,this.config.modelNamespace)}async recalculateMetrics(t){let e=t.predictedProbability>=this.config.defaultThreshold,r=e===t.actualDefect,i=.01;this.modelMetrics.accuracy=this.modelMetrics.accuracy*(1-i)+(r?1:0)*i,e&&t.actualDefect?(this.modelMetrics.precision=this.modelMetrics.precision*(1-i)+1*i,this.modelMetrics.recall=this.modelMetrics.recall*(1-i)+1*i):e&&!t.actualDefect?this.modelMetrics.precision=this.modelMetrics.precision*(1-i)+0*i:!e&&t.actualDefect&&(this.modelMetrics.recall=this.modelMetrics.recall*(1-i)+0*i),this.modelMetrics.f1Score=2*this.modelMetrics.precision*this.modelMetrics.recall/(this.modelMetrics.precision+this.modelMetrics.recall||1),this.modelMetrics.lastUpdated=new Date,await this.memory.set(`${this.config.modelNamespace}:metrics`,this.modelMetrics,{namespace:"defect-intelligence",persist:!0})}};_();k();var oR={minPatternFrequency:2,maxPatterns:50,clusterThreshold:.7,embeddingDimension:St.DIMENSIONS,patternNamespace:"defect-intelligence:patterns",enableSemanticClustering:!0,enableFlashAttention:!0},So={"null-pointer":{indicators:["null","undefined","NullPointerException","TypeError: Cannot read"],prevention:"Use null-safe operators and defensive programming"},"race-condition":{indicators:["concurrent","async","race","timing","intermittent"],prevention:"Implement proper synchronization and use atomic operations"},"memory-leak":{indicators:["memory","leak","OutOfMemory","heap","gc"],prevention:"Ensure proper resource cleanup and avoid circular references"},"off-by-one":{indicators:["index","boundary","array","loop","range"],prevention:"Validate array bounds and use inclusive/exclusive ranges consistently"},"input-validation":{indicators:["validation","sanitize","input","injection","XSS"],prevention:"Implement strict input validation and sanitization"},"resource-exhaustion":{indicators:["timeout","resource","exhausted","limit","quota"],prevention:"Implement rate limiting and resource pooling"},"state-corruption":{indicators:["state","inconsistent","corrupt","invalid state"],prevention:"Use immutable state patterns and proper state machines"},"encoding-issue":{indicators:["encoding","charset","UTF","unicode","character"],prevention:"Use consistent encoding throughout the application"}},cR=A.create("defect-intelligence/pattern-learner"),yi=class{constructor(t,e={}){this.memory=t;this.config={...oR,...e},this.embedder=e.embedder??new pt({enableFallback:!0}),this.config.enableFlashAttention&&this.initializeFlashAttention()}memory;config;patternCache=new Map;embedder;flashAttention=null;flashAttentionAvailable=!1;MAX_CACHED_PATTERNS=5e3;async initializeFlashAttention(){let{createQEFlashAttention:t}=await import("./wrappers-PW2O27LL.js");this.flashAttention=await t("defect-matching",this.config.flashAttentionConfig),this.flashAttentionAvailable=!0,cR.info("Flash Attention initialized for defect matching")}async ensureFlashAttentionInitialized(){this.config.enableFlashAttention&&!this.flashAttention&&await this.initializeFlashAttention()}async learnPatterns(t){try{let{defects:e,includeResolutions:r=!1}=t;if(e.length===0)return g(new Error("No defects provided for learning"));let i=[],n=!1,s=await this.extractPatterns(e),a=this.mergeWithKnownPatterns(s);for(let c of a)c.frequency>=this.config.minPatternFrequency&&(i.push(c),await this.storePattern(c),n=!0);let o=this.calculateImprovementEstimate(e.length,i);return r&&await this.learnResolutions(e,i),f({patterns:i.slice(0,this.config.maxPatterns),modelUpdated:n,improvementEstimate:o})}catch(e){return g(y(e))}}async clusterDefects(t){try{let{defects:e,method:r,minClusterSize:i=2}=t;if(e.length===0)return g(new Error("No defects provided for clustering"));let n;switch(r){case"semantic":n=await this.clusterBySemantic(e,i);break;case"behavioral":n=await this.clusterByBehavior(e,i);break;case"temporal":n=await this.clusterByTemporal(e,i);break;default:return g(new Error(`Unknown clustering method: ${r}`))}let s=new Set(n.flatMap(c=>c.defects)),a=e.filter(c=>!s.has(c.id)).map(c=>c.id),o=this.calculateClusteringMetrics(n,e.length);return f({clusters:n,outliers:a,clusteringMetrics:o})}catch(e){return g(y(e))}}async findSimilarDefects(t,e=5){try{let r=await this.generateDefectEmbedding(t),i=await this.memory.vectorSearch(r,e+1),n=[];for(let s of i)if(s.score>=this.config.clusterThreshold){let a=await this.memory.get(s.key);a&&a.id!==t.id&&n.push(a)}return f(n.slice(0,e))}catch(r){return g(y(r))}}async getPatternById(t){if(this.patternCache.has(t))return this.patternCache.get(t);let e=`${this.config.patternNamespace}:${t}`,r=await this.memory.get(e);if(r)return this.cachePattern(r),r}async listPatterns(t=this.config.maxPatterns){let e=[],r=await this.memory.search(`${this.config.patternNamespace}:*`,t*2);for(let i of r){let n=await this.memory.get(i);if(n&&(e.push(n),e.length>=t))break}return e.sort((i,n)=>n.frequency-i.frequency)}getFlashAttentionStatus(){let t=0,e=null,r=null;return this.flashAttention&&(t=this.flashAttention.getMetrics().length,e=this.flashAttention.getAverageSpeedup(),r=this.flashAttention.getWorkload()),{enabled:this.config.enableFlashAttention??!1,available:this.flashAttentionAvailable,workload:r,metricsCount:t,averageSpeedup:e}}async extractPatterns(t){let e=new Map;for(let i of t){let n=`${i.title} ${i.description}`.toLowerCase();for(let[s,a]of Object.entries(So)){let o=a.indicators.filter(c=>n.includes(c.toLowerCase()));if(o.length>0){let c=e.get(s);c?(c.defects.push(i.id),c.indicators.push(...o.filter(u=>!c.indicators.includes(u)))):e.set(s,{indicators:o,defects:[i.id]})}}if(i.tags)for(let s of i.tags){let a=`tag-${s}`,o=e.get(a);o?o.defects.push(i.id):e.set(a,{indicators:[s],defects:[i.id]})}}let r=[];for(let[i,n]of e){let s=So[i];r.push({id:w(),name:this.formatPatternName(i),indicators:[...new Set(n.indicators)],frequency:n.defects.length,prevention:s?.prevention||`Address ${i} issues proactively`})}return r}mergeWithKnownPatterns(t){let e=[...t];for(let[r,i]of Object.entries(So))e.some(s=>s.name.toLowerCase().includes(r.replace("-"," ")))||e.push({id:w(),name:this.formatPatternName(r),indicators:i.indicators,frequency:0,prevention:i.prevention});return e}formatPatternName(t){return t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}async storePattern(t){let e=`${this.config.patternNamespace}:${t.id}`;if(await this.memory.set(e,t,{namespace:"defect-intelligence",persist:!0}),this.config.enableSemanticClustering){let r=await this.generatePatternEmbedding(t);await this.memory.storeVector(e,r,{patternId:t.id,name:t.name})}this.cachePattern(t)}async learnResolutions(t,e){for(let r of e){let i=t.filter(n=>{let s=`${n.title} ${n.description}`.toLowerCase();return r.indicators.some(a=>s.includes(a.toLowerCase()))});i.length>0&&await this.memory.set(`${this.config.patternNamespace}:resolutions:${r.id}`,{patternId:r.id,defectIds:i.map(n=>n.id),learnedAt:new Date().toISOString()},{namespace:"defect-intelligence",persist:!0})}}calculateImprovementEstimate(t,e){if(t===0)return 0;let r=e.reduce((s,a)=>s+a.frequency,0),i=Math.min(1,r/t),n=e.length>0?e.reduce((s,a)=>s+(a.prevention?.1:0),0)/e.length:0;return i*.7+n*.3}async clusterBySemantic(t,e){let r=new Map;await this.ensureFlashAttentionInitialized();let i=[];for(let s of t){let a=await this.generateDefectEmbedding(s);i.push({defect:s,embedding:a}),await this.memory.storeVector(`${this.config.patternNamespace}:defect:${s.id}`,a,{defectId:s.id})}let n=new Set;for(let{defect:s,embedding:a}of i){if(n.has(s.id))continue;let o=[s.id];n.add(s.id);for(let c of i){if(c.defect.id===s.id||n.has(c.defect.id))continue;await this.computeSimilarity(a,c.embedding)>=this.config.clusterThreshold&&(o.push(c.defect.id),n.add(c.defect.id))}if(o.length>=e){let c=w(),u=this.findCommonFactors(t.filter(d=>o.includes(d.id)));r.set(c,{id:c,label:this.generateClusterLabel(t.filter(d=>o.includes(d.id))),defects:o,commonFactors:u,suggestedFix:this.suggestFix(u)})}}return Array.from(r.values())}async computeSimilarity(t,e){if(!this.flashAttention)throw new Error("[PatternLearnerService] Flash Attention not initialized. Call ensureFlashAttentionInitialized() first.");return this.computeFlashAttentionSimilarity(t,e)}async computeFlashAttentionSimilarity(t,e){let r=t.length,i=new Float32Array(r),n=new Float32Array(r),s=new Float32Array(r);for(let c=0;c<r;c++)i[c]=t[c],n[c]=e[c],s[c]=e[c];let a=await this.flashAttention.computeFlashAttention(i,n,s,1,r),o=0;for(let c=0;c<r;c++)o+=a[c]*t[c];return Math.max(0,Math.min(1,(o+1)/2))}async batchComputeSimilarities(t,e){if(await this.ensureFlashAttentionInitialized(),!this.flashAttention)throw new Error("[PatternLearnerService] Flash Attention not initialized. Ensure @ruvector/attention is installed as a dependency.");let r=new Float32Array(t),i=e.map(a=>new Float32Array(a)),n=await this.flashAttention.matchDefectPattern(r,i),s=new Array(e.length).fill(0);for(let a of n)a.pattern<s.length&&(s[a.pattern]=Math.max(0,Math.min(1,(a.score+1)/2)));return s}async clusterByBehavior(t,e){let r=new Map,i=new Map;for(let n of t){let s=n.tags?.sort().join("|")||n.file||"unknown",a=i.get(s)||[];a.push(n),i.set(s,a)}for(let[n,s]of i)if(s.length>=e){let a=w(),o=this.findCommonFactors(s);r.set(a,{id:a,label:`Behavioral: ${n.replace(/\|/g,", ")}`,defects:s.map(c=>c.id),commonFactors:o,suggestedFix:this.suggestFix(o)})}return Array.from(r.values())}async clusterByTemporal(t,e){let r=new Map,i=new Map;for(let n of t){let s=n.title.toLowerCase().split(/\s+/).slice(0,2).join(" "),a=i.get(s)||[];a.push(n),i.set(s,a)}for(let[n,s]of i)if(s.length>=2){let a=w(),o=this.findCommonFactors(s);r.set(a,{id:a,label:`Temporal: ${n}`,defects:s.map(c=>c.id),commonFactors:o,suggestedFix:this.suggestFix(o)})}return Array.from(r.values())}findCommonFactors(t){let e=[];if(t.every(n=>n.tags)){let n=t.map(a=>new Set(a.tags)),s=[...n[0]].filter(a=>n.every(o=>o.has(a)));e.push(...s)}if(t.every(n=>n.file)){let n=t.map(a=>a.file.split("/")),s=Math.min(...n.map(a=>a.length));for(let a=0;a<s;a++)n.every(o=>o[a]===n[0][a])&&e.push(`Path: ${n[0][a]}`)}let r=t.map(n=>new Set(n.title.toLowerCase().split(/\s+/))),i=[...r[0]].filter(n=>n.length>3&&r.every(s=>s.has(n)));return e.push(...i.map(n=>`Keyword: ${n}`)),[...new Set(e)]}generateClusterLabel(t){let r=t.map(s=>s.title.toLowerCase()).flatMap(s=>s.split(/\s+/)),i=new Map;for(let s of r)s.length>3&&i.set(s,(i.get(s)||0)+1);return[...i.entries()].sort((s,a)=>a[1]-s[1]).slice(0,2).map(([s])=>s).join(" ")||"Unnamed Cluster"}suggestFix(t){for(let e of t)for(let[r,i]of Object.entries(So))if(e.toLowerCase().includes(r)||i.indicators.some(n=>e.toLowerCase().includes(n.toLowerCase())))return i.prevention;return"Review common factors and implement targeted fixes"}calculateClusteringMetrics(t,e){if(t.length===0||e===0)return{silhouette:0,cohesion:0};let r=t.reduce((c,u)=>c+u.defects.length,0),i=r/t.length,n=r/e,s=t.map(c=>c.defects.length),a=s.reduce((c,u)=>c+Math.pow(u-i,2),0)/s.length,o=Math.max(0,1-a/(i*i||1));return{silhouette:Math.round(o*100)/100,cohesion:Math.round(n*100)/100}}async generateDefectEmbedding(t){let e=this.formatDefectForEmbedding(t);return this.embedder.embed(e)}async generatePatternEmbedding(t){let e=this.formatPatternForEmbedding(t);return this.embedder.embed(e)}formatDefectForEmbedding(t){return[`Title: ${t.title}`,t.description?`Description: ${t.description}`:"",t.tags?.length?`Tags: ${t.tags.join(", ")}`:"",t.file?`File: ${t.file}`:""].filter(Boolean).join(`
2769
+ `).length,c=s.length,u=a.length,d=a.reduce((G,O)=>G+O.methods.length,0),m=s.filter(G=>G.isAsync).length,p=r.value,h=(p.match(/\bif\s*\(/g)||[]).length,b=(p.match(/\b(for|while|do)\s*[{(]/g)||[]).length,v=(p.match(/\bswitch\s*\(/g)||[]).length,C=(p.match(/\bcatch\s*\(/g)||[]).length,S=(p.match(/\?[^?:]+:/g)||[]).length,T=h+b*2+v*2+C+S,x=Math.min(1,o/500),R=Math.min(1,(c+d)/30),I=Math.min(1,T/50),M=m>0?.1:0,q=x*.2+R*.25+I*.4+M+(u>3?.05:0);return Math.max(0,Math.min(1,q))}catch(i){td.debug(`AST parse failed: ${i instanceof Error?i.message:i}`)}}return this.estimateComplexityFromPath(t)}estimateComplexityFromPath(t){let e=t.split("/"),r=e[e.length-1],i=.3;return(t.includes("controller")||t.includes("service"))&&(i+=.2),(t.includes("coordinator")||t.includes("orchestrator"))&&(i+=.15),(t.includes("utils")||t.includes("helper"))&&(i-=.1),(t.includes("types")||t.includes("interfaces"))&&(i-=.15),r.length>30&&(i+=.1),Math.max(0,Math.min(1,i))}async getChangeFrequency(t){let e=await this.gitAnalyzer.getChangeFrequency(t);if(e!==.4)return await this.memory.set(`${this.config.modelNamespace}:history:${t}`,{changes:Math.round(e*30)},{ttl:3600}),e;let r=`${this.config.modelNamespace}:history:${t}`,i=await this.memory.get(r);return i?Math.min(1,i.changes/50):.4}async getDeveloperExperience(t){let e=await this.gitAnalyzer.getDeveloperExperience(t);if(e!==.5)return await this.memory.set(`${this.config.modelNamespace}:developer-exp:${t}`,{score:e},{ttl:3600}),e;let r=`${this.config.modelNamespace}:developer-exp:${t}`,i=await this.memory.get(r);return i?i.score:.5}async getTestCoverage(t){try{for(let e of Gs(t)){let r=Us(await this.memory.get(e));if(r)return 1-r.line/100}}catch{}return .4}async getCodeAge(t){let e=await this.gitAnalyzer.getCodeAge(t);if(e!==.4)return e;let r=`${this.config.modelNamespace}:age:${t}`,i=await this.memory.get(r);return i?i.days<7?.7:i.days>365?.3:.4:.4}async getBugHistory(t){let e=await this.gitAnalyzer.getBugHistory(t);if(e!==.2)return await this.memory.set(`${this.config.modelNamespace}:bugs:${t}`,{count:Math.round(e*10)},{ttl:3600}),e;let r=`${this.config.modelNamespace}:bugs:${t}`,i=await this.memory.get(r);return i?Math.min(1,i.count/10):.2}probabilityToRisk(t,e){return t>=e+.3?"critical":t>=e+.15?"high":t>=e?"medium":t>=e-.2?"low":"info"}riskToSeverity(t){return t>=.8?"critical":t>=.6?"high":t>=.4?"medium":t>=.2?"low":"info"}generateRecommendations(t,e){let r=[],i=[...t].sort((n,s)=>s.contribution-n.contribution);for(let n of i.slice(0,3))switch(n.name){case"codeComplexity":n.contribution>.1&&(r.push("Consider refactoring to reduce cyclomatic complexity"),r.push("Break down large functions into smaller, testable units"));break;case"changeFrequency":n.contribution>.1&&(r.push("High churn area - add comprehensive regression tests"),r.push("Consider stabilizing the interface before further changes"));break;case"testCoverage":n.contribution>.1&&(r.push("Increase test coverage to reduce defect risk"),r.push("Add unit tests for critical paths"));break;case"bugHistory":n.contribution>.1&&(r.push("Review past bug fixes for patterns"),r.push("Add regression tests for previously fixed issues"));break;case"codeAge":n.contribution>.1&&r.push("New code requires thorough review and testing");break;case"developerExperience":n.contribution>.1&&r.push("Request code review from senior developer");break}return e>.7&&r.push("CRITICAL: Schedule immediate code review"),r}async analyzeFileImpact(t,e){let r=[],i=0,n=this.categorizeFile(t),s=(await this.extractFileMetrics(t)).metrics.codeComplexity;if(r.push({area:n,files:[t],risk:s,reason:`Modified file in ${n} area`}),i+=s,e==="deep"){let a=await this.analyzeDependencies(t);for(let o of a){let c=(await this.extractFileMetrics(o)).metrics.codeComplexity*.5;r.push({area:this.categorizeFile(o),files:[o],risk:c,reason:`Dependency of ${t}`}),i+=c}}return{areas:r,risk:i}}categorizeFile(t){return t.includes("controller")?"API Layer":t.includes("service")?"Business Logic":t.includes("repository")||t.includes("dao")?"Data Access":t.includes("model")||t.includes("entity")?"Domain Model":t.includes("util")||t.includes("helper")?"Utilities":t.includes("test")?"Tests":t.includes("config")?"Configuration":"General"}async analyzeDependencies(t){let e=`code-intelligence:dependencies:${t}`,r=await this.memory.get(e);if(r&&r.length>0)return r;let i=[];try{let n=await this.fileReader.readFile(t);if(!n.success)return[];let s=t.split("/").pop()||t,a=this.tsParser.parseFile(s,n.value),o=this.tsParser.extractImports(a);for(let c of o)if(c.module.startsWith(".")){let u=this.resolveRelativeImport(t,c.module);i.push(u)}else c.module.startsWith("node:")||i.push(c.module);i.length>0&&await this.memory.set(e,i,{namespace:"code-intelligence",ttl:3600})}catch(n){td.error(`Failed to analyze dependencies for ${t}`,n instanceof Error?n:void 0)}return i}resolveRelativeImport(t,e){let i=t.substring(0,t.lastIndexOf("/")).split("/"),n=e.split("/");for(let a of n)a!=="."&&(a===".."?i.pop():i.push(a));let s=i.join("/");return!s.endsWith(".ts")&&!s.endsWith(".tsx")&&!s.endsWith(".js")&&(s=s+".ts"),s}async getBaselineRisk(t){let e=`${this.config.modelNamespace}:baseline:${t}`;return(await this.memory.get(e))?.risk??.3}generateTestRecommendations(t){let e=[],r=new Set(t.map(n=>n.area));for(let n of r)switch(n){case"API Layer":e.push("Run API integration tests"),e.push("Verify endpoint response contracts");break;case"Business Logic":e.push("Run unit tests for business rules"),e.push("Execute scenario-based tests");break;case"Data Access":e.push("Run database integration tests"),e.push("Verify data integrity constraints");break;case"Domain Model":e.push("Run entity validation tests"),e.push("Check serialization/deserialization");break}return t.filter(n=>n.risk>.6).length>0&&(e.push("Run full regression test suite"),e.push("Consider exploratory testing for edge cases")),[...new Set(e)]}calculateModelConfidence(t){let e=this.modelMetrics.accuracy,r=t.map(n=>n.probability);return this.calculateVariance(r)>.2&&(e*=.9),t.length>10&&(e*=1.05),Math.min(1,Math.max(0,e))}calculateVariance(t){if(t.length===0)return 0;let e=t.reduce((i,n)=>i+n,0)/t.length;return t.map(i=>Math.pow(i-e,2)).reduce((i,n)=>i+n,0)/t.length}async storePrediction(t){let e=w();await this.memory.set(`${this.config.modelNamespace}:prediction:${e}`,{id:e,predictions:t,timestamp:new Date().toISOString()},{namespace:"defect-intelligence",ttl:86400*7}),await ap(this.memory,this.config.modelNamespace)}async recalculateMetrics(t){let e=t.predictedProbability>=this.config.defaultThreshold,r=e===t.actualDefect,i=.01;this.modelMetrics.accuracy=this.modelMetrics.accuracy*(1-i)+(r?1:0)*i,e&&t.actualDefect?(this.modelMetrics.precision=this.modelMetrics.precision*(1-i)+1*i,this.modelMetrics.recall=this.modelMetrics.recall*(1-i)+1*i):e&&!t.actualDefect?this.modelMetrics.precision=this.modelMetrics.precision*(1-i)+0*i:!e&&t.actualDefect&&(this.modelMetrics.recall=this.modelMetrics.recall*(1-i)+0*i),this.modelMetrics.f1Score=2*this.modelMetrics.precision*this.modelMetrics.recall/(this.modelMetrics.precision+this.modelMetrics.recall||1),this.modelMetrics.lastUpdated=new Date,await this.memory.set(`${this.config.modelNamespace}:metrics`,this.modelMetrics,{namespace:"defect-intelligence",persist:!0})}};_();k();var oR={minPatternFrequency:2,maxPatterns:50,clusterThreshold:.7,embeddingDimension:St.DIMENSIONS,patternNamespace:"defect-intelligence:patterns",enableSemanticClustering:!0,enableFlashAttention:!0},So={"null-pointer":{indicators:["null","undefined","NullPointerException","TypeError: Cannot read"],prevention:"Use null-safe operators and defensive programming"},"race-condition":{indicators:["concurrent","async","race","timing","intermittent"],prevention:"Implement proper synchronization and use atomic operations"},"memory-leak":{indicators:["memory","leak","OutOfMemory","heap","gc"],prevention:"Ensure proper resource cleanup and avoid circular references"},"off-by-one":{indicators:["index","boundary","array","loop","range"],prevention:"Validate array bounds and use inclusive/exclusive ranges consistently"},"input-validation":{indicators:["validation","sanitize","input","injection","XSS"],prevention:"Implement strict input validation and sanitization"},"resource-exhaustion":{indicators:["timeout","resource","exhausted","limit","quota"],prevention:"Implement rate limiting and resource pooling"},"state-corruption":{indicators:["state","inconsistent","corrupt","invalid state"],prevention:"Use immutable state patterns and proper state machines"},"encoding-issue":{indicators:["encoding","charset","UTF","unicode","character"],prevention:"Use consistent encoding throughout the application"}},cR=A.create("defect-intelligence/pattern-learner"),yi=class{constructor(t,e={}){this.memory=t;this.config={...oR,...e},this.embedder=e.embedder??new pt({enableFallback:!0}),this.config.enableFlashAttention&&this.initializeFlashAttention()}memory;config;patternCache=new Map;embedder;flashAttention=null;flashAttentionAvailable=!1;MAX_CACHED_PATTERNS=5e3;async initializeFlashAttention(){let{createQEFlashAttention:t}=await import("./wrappers-5QFMCKXL.js");this.flashAttention=await t("defect-matching",this.config.flashAttentionConfig),this.flashAttentionAvailable=!0,cR.info("Flash Attention initialized for defect matching")}async ensureFlashAttentionInitialized(){this.config.enableFlashAttention&&!this.flashAttention&&await this.initializeFlashAttention()}async learnPatterns(t){try{let{defects:e,includeResolutions:r=!1}=t;if(e.length===0)return g(new Error("No defects provided for learning"));let i=[],n=!1,s=await this.extractPatterns(e),a=this.mergeWithKnownPatterns(s);for(let c of a)c.frequency>=this.config.minPatternFrequency&&(i.push(c),await this.storePattern(c),n=!0);let o=this.calculateImprovementEstimate(e.length,i);return r&&await this.learnResolutions(e,i),f({patterns:i.slice(0,this.config.maxPatterns),modelUpdated:n,improvementEstimate:o})}catch(e){return g(y(e))}}async clusterDefects(t){try{let{defects:e,method:r,minClusterSize:i=2}=t;if(e.length===0)return g(new Error("No defects provided for clustering"));let n;switch(r){case"semantic":n=await this.clusterBySemantic(e,i);break;case"behavioral":n=await this.clusterByBehavior(e,i);break;case"temporal":n=await this.clusterByTemporal(e,i);break;default:return g(new Error(`Unknown clustering method: ${r}`))}let s=new Set(n.flatMap(c=>c.defects)),a=e.filter(c=>!s.has(c.id)).map(c=>c.id),o=this.calculateClusteringMetrics(n,e.length);return f({clusters:n,outliers:a,clusteringMetrics:o})}catch(e){return g(y(e))}}async findSimilarDefects(t,e=5){try{let r=await this.generateDefectEmbedding(t),i=await this.memory.vectorSearch(r,e+1),n=[];for(let s of i)if(s.score>=this.config.clusterThreshold){let a=await this.memory.get(s.key);a&&a.id!==t.id&&n.push(a)}return f(n.slice(0,e))}catch(r){return g(y(r))}}async getPatternById(t){if(this.patternCache.has(t))return this.patternCache.get(t);let e=`${this.config.patternNamespace}:${t}`,r=await this.memory.get(e);if(r)return this.cachePattern(r),r}async listPatterns(t=this.config.maxPatterns){let e=[],r=await this.memory.search(`${this.config.patternNamespace}:*`,t*2);for(let i of r){let n=await this.memory.get(i);if(n&&(e.push(n),e.length>=t))break}return e.sort((i,n)=>n.frequency-i.frequency)}getFlashAttentionStatus(){let t=0,e=null,r=null;return this.flashAttention&&(t=this.flashAttention.getMetrics().length,e=this.flashAttention.getAverageSpeedup(),r=this.flashAttention.getWorkload()),{enabled:this.config.enableFlashAttention??!1,available:this.flashAttentionAvailable,workload:r,metricsCount:t,averageSpeedup:e}}async extractPatterns(t){let e=new Map;for(let i of t){let n=`${i.title} ${i.description}`.toLowerCase();for(let[s,a]of Object.entries(So)){let o=a.indicators.filter(c=>n.includes(c.toLowerCase()));if(o.length>0){let c=e.get(s);c?(c.defects.push(i.id),c.indicators.push(...o.filter(u=>!c.indicators.includes(u)))):e.set(s,{indicators:o,defects:[i.id]})}}if(i.tags)for(let s of i.tags){let a=`tag-${s}`,o=e.get(a);o?o.defects.push(i.id):e.set(a,{indicators:[s],defects:[i.id]})}}let r=[];for(let[i,n]of e){let s=So[i];r.push({id:w(),name:this.formatPatternName(i),indicators:[...new Set(n.indicators)],frequency:n.defects.length,prevention:s?.prevention||`Address ${i} issues proactively`})}return r}mergeWithKnownPatterns(t){let e=[...t];for(let[r,i]of Object.entries(So))e.some(s=>s.name.toLowerCase().includes(r.replace("-"," ")))||e.push({id:w(),name:this.formatPatternName(r),indicators:i.indicators,frequency:0,prevention:i.prevention});return e}formatPatternName(t){return t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}async storePattern(t){let e=`${this.config.patternNamespace}:${t.id}`;if(await this.memory.set(e,t,{namespace:"defect-intelligence",persist:!0}),this.config.enableSemanticClustering){let r=await this.generatePatternEmbedding(t);await this.memory.storeVector(e,r,{patternId:t.id,name:t.name})}this.cachePattern(t)}async learnResolutions(t,e){for(let r of e){let i=t.filter(n=>{let s=`${n.title} ${n.description}`.toLowerCase();return r.indicators.some(a=>s.includes(a.toLowerCase()))});i.length>0&&await this.memory.set(`${this.config.patternNamespace}:resolutions:${r.id}`,{patternId:r.id,defectIds:i.map(n=>n.id),learnedAt:new Date().toISOString()},{namespace:"defect-intelligence",persist:!0})}}calculateImprovementEstimate(t,e){if(t===0)return 0;let r=e.reduce((s,a)=>s+a.frequency,0),i=Math.min(1,r/t),n=e.length>0?e.reduce((s,a)=>s+(a.prevention?.1:0),0)/e.length:0;return i*.7+n*.3}async clusterBySemantic(t,e){let r=new Map;await this.ensureFlashAttentionInitialized();let i=[];for(let s of t){let a=await this.generateDefectEmbedding(s);i.push({defect:s,embedding:a}),await this.memory.storeVector(`${this.config.patternNamespace}:defect:${s.id}`,a,{defectId:s.id})}let n=new Set;for(let{defect:s,embedding:a}of i){if(n.has(s.id))continue;let o=[s.id];n.add(s.id);for(let c of i){if(c.defect.id===s.id||n.has(c.defect.id))continue;await this.computeSimilarity(a,c.embedding)>=this.config.clusterThreshold&&(o.push(c.defect.id),n.add(c.defect.id))}if(o.length>=e){let c=w(),u=this.findCommonFactors(t.filter(d=>o.includes(d.id)));r.set(c,{id:c,label:this.generateClusterLabel(t.filter(d=>o.includes(d.id))),defects:o,commonFactors:u,suggestedFix:this.suggestFix(u)})}}return Array.from(r.values())}async computeSimilarity(t,e){if(!this.flashAttention)throw new Error("[PatternLearnerService] Flash Attention not initialized. Call ensureFlashAttentionInitialized() first.");return this.computeFlashAttentionSimilarity(t,e)}async computeFlashAttentionSimilarity(t,e){let r=t.length,i=new Float32Array(r),n=new Float32Array(r),s=new Float32Array(r);for(let c=0;c<r;c++)i[c]=t[c],n[c]=e[c],s[c]=e[c];let a=await this.flashAttention.computeFlashAttention(i,n,s,1,r),o=0;for(let c=0;c<r;c++)o+=a[c]*t[c];return Math.max(0,Math.min(1,(o+1)/2))}async batchComputeSimilarities(t,e){if(await this.ensureFlashAttentionInitialized(),!this.flashAttention)throw new Error("[PatternLearnerService] Flash Attention not initialized. Ensure @ruvector/attention is installed as a dependency.");let r=new Float32Array(t),i=e.map(a=>new Float32Array(a)),n=await this.flashAttention.matchDefectPattern(r,i),s=new Array(e.length).fill(0);for(let a of n)a.pattern<s.length&&(s[a.pattern]=Math.max(0,Math.min(1,(a.score+1)/2)));return s}async clusterByBehavior(t,e){let r=new Map,i=new Map;for(let n of t){let s=n.tags?.sort().join("|")||n.file||"unknown",a=i.get(s)||[];a.push(n),i.set(s,a)}for(let[n,s]of i)if(s.length>=e){let a=w(),o=this.findCommonFactors(s);r.set(a,{id:a,label:`Behavioral: ${n.replace(/\|/g,", ")}`,defects:s.map(c=>c.id),commonFactors:o,suggestedFix:this.suggestFix(o)})}return Array.from(r.values())}async clusterByTemporal(t,e){let r=new Map,i=new Map;for(let n of t){let s=n.title.toLowerCase().split(/\s+/).slice(0,2).join(" "),a=i.get(s)||[];a.push(n),i.set(s,a)}for(let[n,s]of i)if(s.length>=2){let a=w(),o=this.findCommonFactors(s);r.set(a,{id:a,label:`Temporal: ${n}`,defects:s.map(c=>c.id),commonFactors:o,suggestedFix:this.suggestFix(o)})}return Array.from(r.values())}findCommonFactors(t){let e=[];if(t.every(n=>n.tags)){let n=t.map(a=>new Set(a.tags)),s=[...n[0]].filter(a=>n.every(o=>o.has(a)));e.push(...s)}if(t.every(n=>n.file)){let n=t.map(a=>a.file.split("/")),s=Math.min(...n.map(a=>a.length));for(let a=0;a<s;a++)n.every(o=>o[a]===n[0][a])&&e.push(`Path: ${n[0][a]}`)}let r=t.map(n=>new Set(n.title.toLowerCase().split(/\s+/))),i=[...r[0]].filter(n=>n.length>3&&r.every(s=>s.has(n)));return e.push(...i.map(n=>`Keyword: ${n}`)),[...new Set(e)]}generateClusterLabel(t){let r=t.map(s=>s.title.toLowerCase()).flatMap(s=>s.split(/\s+/)),i=new Map;for(let s of r)s.length>3&&i.set(s,(i.get(s)||0)+1);return[...i.entries()].sort((s,a)=>a[1]-s[1]).slice(0,2).map(([s])=>s).join(" ")||"Unnamed Cluster"}suggestFix(t){for(let e of t)for(let[r,i]of Object.entries(So))if(e.toLowerCase().includes(r)||i.indicators.some(n=>e.toLowerCase().includes(n.toLowerCase())))return i.prevention;return"Review common factors and implement targeted fixes"}calculateClusteringMetrics(t,e){if(t.length===0||e===0)return{silhouette:0,cohesion:0};let r=t.reduce((c,u)=>c+u.defects.length,0),i=r/t.length,n=r/e,s=t.map(c=>c.defects.length),a=s.reduce((c,u)=>c+Math.pow(u-i,2),0)/s.length,o=Math.max(0,1-a/(i*i||1));return{silhouette:Math.round(o*100)/100,cohesion:Math.round(n*100)/100}}async generateDefectEmbedding(t){let e=this.formatDefectForEmbedding(t);return this.embedder.embed(e)}async generatePatternEmbedding(t){let e=this.formatPatternForEmbedding(t);return this.embedder.embed(e)}formatDefectForEmbedding(t){return[`Title: ${t.title}`,t.description?`Description: ${t.description}`:"",t.tags?.length?`Tags: ${t.tags.join(", ")}`:"",t.file?`File: ${t.file}`:""].filter(Boolean).join(`
2770
2770
  `)}formatPatternForEmbedding(t){return[`Pattern: ${t.name}`,`Indicators: ${t.indicators.join(", ")}`,`Prevention: ${t.prevention}`,`Frequency: ${t.frequency}`].filter(Boolean).join(`
2771
2771
  `)}cachePattern(t){if(this.patternCache.size>=this.MAX_CACHED_PATTERNS){let e=this.patternCache.keys().next().value;e&&this.patternCache.delete(e)}this.patternCache.set(t.id,t)}destroy(){this.patternCache.clear(),this.flashAttention=null,this.flashAttentionAvailable=!1}};_();k();X();Pe();var lR={maxTimelineEvents:20,maxRelatedFiles:10,minConfidenceThreshold:.3,analyzerNamespace:"defect-intelligence:root-cause",enableDeepAnalysis:!0,enableLLMAnalysis:!0,llmModelTier:2,llmMaxTokens:2048},Ro={"logic-error":{symptoms:["wrong result","incorrect output","unexpected behavior","calculation"],causes:["Incorrect algorithm implementation","Missing edge case handling","Wrong operator usage","Off-by-one error"],impact:"high",remediation:["Review algorithm logic step by step","Add comprehensive unit tests","Use property-based testing for edge cases"]},"null-reference":{symptoms:["null","undefined","cannot read property","NullPointerException"],causes:["Missing null check","Uninitialized variable","Race condition in initialization","API returning null unexpectedly"],impact:"high",remediation:["Add defensive null checks","Use Optional/Maybe pattern","Initialize variables at declaration"]},concurrency:{symptoms:["race","deadlock","intermittent","timing","thread"],causes:["Missing synchronization","Shared mutable state","Lock ordering issue","Async operation not awaited"],impact:"high",remediation:["Use immutable data structures","Implement proper locking strategy","Add synchronization primitives"]},"resource-management":{symptoms:["memory","leak","connection","file handle","exhausted"],causes:["Resource not properly released","Missing cleanup in error path","Connection pool misconfiguration","Circular reference preventing GC"],impact:"medium",remediation:["Use try-finally or using blocks","Implement IDisposable pattern","Configure resource pools properly"]},configuration:{symptoms:["config","environment","setting","property","parameter"],causes:["Wrong configuration value","Missing required setting","Environment mismatch","Hardcoded values"],impact:"medium",remediation:["Validate configuration at startup","Use configuration schema validation","Document all required settings"]},integration:{symptoms:["api","service","external","timeout","connection"],causes:["External service change","API contract violation","Network configuration issue","Missing retry logic"],impact:"high",remediation:["Implement circuit breaker pattern","Add contract tests","Use retry with exponential backoff"]},"data-integrity":{symptoms:["corrupt","invalid","constraint","duplicate","data"],causes:["Missing validation","Database constraint violated","Race condition in data update","Inconsistent state transitions"],impact:"high",remediation:["Add input validation at all layers","Use database transactions properly","Implement optimistic locking"]},security:{symptoms:["injection","auth","permission","access","security"],causes:["Missing input sanitization","Broken authentication","Insufficient authorization checks","Sensitive data exposure"],impact:"high",remediation:["Sanitize all user inputs","Implement proper authentication","Follow principle of least privilege"]}},uR=A.create("defect-intelligence/root-cause-analyzer"),vi=class{config;memory;llmRouter;constructor(t,e={}){this.config={...lR,...e},this.isMemoryBackend(t)?(this.memory=t,this.llmRouter=void 0):(this.memory=t.memory,this.llmRouter=t.llmRouter)}isMemoryBackend(t){return typeof t.get=="function"&&typeof t.set=="function"&&!("memory"in t)}isLLMAnalysisAvailable(){return this.config.enableLLMAnalysis===!0&&this.llmRouter!==void 0}getModelForTier(t){return ae(t)}async analyzeRootCauseWithLLM(t,e,r){if(!this.llmRouter)return null;try{let i=this.buildLLMAnalysisPrompt(t,e,r),n=this.getModelForTier(this.config.llmModelTier??2),s=await this.llmRouter.chat({messages:[{role:"system",content:`You are an expert software engineer specialized in debugging and root cause analysis.
2772
2772
  Analyze the provided defect information and provide:
@@ -2878,7 +2878,7 @@ ${i}
2878
2878
  `).map(i=>i.trim()).filter(i=>i.length>0&&Ee(i));if(r.length>0){let i=0;for(let n of r)i+=Jh(n);return Lo(i,"jest",l)}return Lr(l,t)}catch{return Lr(l,t)}}async function AT(l,t){try{let e=await ss(["cargo",[]],["test","--","--list"],l,t.timeout);if(e===null)throw new Error("listing failed");let r=e.split(`
2879
2879
  `).filter(o=>o.endsWith(": test")),i=r.length,n=r.filter(o=>o.includes("e2e")).length,s=r.filter(o=>!o.includes("e2e")&&o.includes("integration")).length,a=i-s-n;return{total:i,unit:a,integration:s,e2e:n,source:"cargo"}}catch{return{total:0,unit:0,integration:0,e2e:0,source:"cargo"}}}async function xT(l,t){try{let e=await ss(["pytest",[]],["--collect-only","-q"],l,t.timeout);if(e===null)throw new Error("listing failed");let r=e.split(`
2880
2880
  `).filter(o=>o.includes("::test_")||o.includes("::Test")),i=r.length,n=r.filter(o=>o.includes("e2e")||o.includes("end_to_end")).length,s=r.filter(o=>!o.includes("e2e")&&!o.includes("end_to_end")&&o.includes("integration")).length,a=i-s-n;return{total:i,unit:a,integration:s,e2e:n,source:"pytest"}}catch{return{total:0,unit:0,integration:0,e2e:0,source:"pytest"}}}async function PT(l,t){try{let e=await ss(["go",[]],["test","-list",".*","./..."],l,t.timeout);if(e===null)throw new Error("listing failed");let r=e.split(`
2881
- `).filter(o=>o.startsWith("Test")),i=r.length,n=r.filter(o=>o.includes("E2E")).length,s=r.filter(o=>!o.includes("E2E")&&o.includes("Integration")).length,a=i-s-n;return{total:i,unit:a,integration:s,e2e:n,source:"go"}}catch{return{total:0,unit:0,integration:0,e2e:0,source:"go"}}}function Lr(l,t){let e=0,r=0,i=0,n=0;function s(a){if(!Ee(a))return;let o=vT(a,{withFileTypes:!0});for(let c of o){let u=ye(a,c.name);if(c.isDirectory()){if(t.excludeDirs.includes(c.name)||(t.excludeRootDirs??[]).includes(c.name)&&(a===l||Ee(ye(a,Xr))))continue;s(u)}else if(c.isFile()&&kT(c.name)){let d=ST(c.name).toLowerCase(),m=0;[".ts",".tsx",".js",".jsx",".mjs"].includes(d)?m=Jh(u):d===".py"?m=DT(u):d===".rs"?m=IT(u):d===".go"&&(m=MT(u)),e+=m;let p=u.toLowerCase();p.includes("e2e")||p.includes("end-to-end")?n+=m:p.includes("integration")?i+=m:r+=m}}}return s(l),{total:e,unit:r,integration:i,e2e:n,source:"fallback"}}function kT(l){let t=l.toLowerCase();return t.includes(".test.")||t.includes(".spec.")||t.includes("_test.")||t.startsWith("test_")||t.endsWith("_test.ts")||t.endsWith("_test.js")||t.endsWith("_test.py")||t.endsWith("_test.go")||t.endsWith("_test.rs")}function Jh(l){try{let t=tr(l,"utf-8"),e=t.match(/\bit\s*\(/g)||[],r=t.match(/\btest\s*\(/g)||[];return e.length+r.length}catch{return 0}}function DT(l){try{return(tr(l,"utf-8").match(/\bdef\s+test_\w+\s*\(/g)||[]).length}catch{return 0}}function IT(l){try{let t=tr(l,"utf-8"),e=t.match(/#\[test\]/g)||[],r=t.match(/#\[tokio::test\]/g)||[],i=t.match(/#\[async_std::test\]/g)||[];return e.length+r.length+i.length}catch{return 0}}function MT(l){try{return(tr(l,"utf-8").match(/\bfunc\s+Test\w+\s*\(/g)||[]).length}catch{return 0}}function Lo(l,t,e){let r=l,i=0,n=0;return(Ee(ye(e,"tests","integration"))||Ee(ye(e,"test","integration"))||Ee(ye(e,"__tests__","integration")))&&(i=Math.floor(l*.2),r-=i),(Ee(ye(e,"tests","e2e"))||Ee(ye(e,"test","e2e"))||Ee(ye(e,"e2e"))||Ee(ye(e,"cypress")))&&(n=Math.floor(l*.1),r-=n),{total:l,unit:Math.max(0,r),integration:i,e2e:n,source:t}}var yd=class{config;cache=new Map;cacheHits=0;cacheMisses=0;constructor(t={}){this.config={...Fr,...t}}async collectAll(t){let e=`all:${t}`;if(this.config.enableCache){let u=this.getFromCache(e);if(u)return u}let[r,i,n]=await Promise.all([this.countLOC(t),this.countTests(t),this.countPatterns(t,this.detectLanguage(t))]),s=[];r.source!=="fallback"&&s.push(r.source),i.source!=="fallback"&&s.push(i.source);let a=r.source==="fallback"?"approximate":"accurate",o=i.source==="fallback"?"approximate":"accurate",c={loc:r,tests:i,patterns:n,collectedAt:new Date,toolsUsed:s,accuracy:{loc:a,tests:o,overall:a==="accurate"&&o==="accurate"?"accurate":"approximate"}};return this.config.enableCache&&this.setInCache(e,c),c}async countLOC(t){let e=`loc:${t}`;if(this.config.enableCache){let i=this.getFromCache(e);if(i)return i}let r=await dd(t,this.config);return this.config.enableCache&&this.setInCache(e,r),r}async countTests(t){let e=`tests:${t}`;if(this.config.enableCache){let i=this.getFromCache(e);if(i)return i}let r=await hd(t,this.config);return this.config.enableCache&&this.setInCache(e,r),r}async countPatterns(t,e){let r=`patterns:${t}:${e}`;if(this.config.enableCache){let n=this.getFromCache(r);if(n)return n}let i=this.countPatternsInternal(t,e);return this.config.enableCache&&this.setInCache(r,i),i}async checkTools(){let[t,e]=await Promise.all([md(),fd(process.cwd())]);return[...t,...e]}clearCache(){this.cache.clear(),this.cacheHits=0,this.cacheMisses=0}getCacheStats(){return{hits:this.cacheHits,misses:this.cacheMisses,size:this.cache.size}}getFromCache(t){let e=this.cache.get(t);return e&&Date.now()-e.timestamp<this.config.cacheTTL?(this.cacheHits++,e.data):(this.cacheMisses++,null)}setInCache(t,e){this.cache.set(t,{data:e,timestamp:Date.now()})}detectLanguage(t){return rr(ir(t,"Cargo.toml"))?"rust":rr(ir(t,"go.mod"))?"go":rr(ir(t,"pyproject.toml"))||rr(ir(t,"requirements.txt"))?"python":rr(ir(t,"package.json"))?rr(ir(t,"tsconfig.json"))?"typescript":"javascript":"unknown"}countPatternsInternal(t,e){let r={},i=0,n=0,s=0,a=0,o=this.getPatternsForLanguage(e),c=new Set(this.config.excludeDirs),u=new Set(this.config.excludeRootDirs??[]);function d(m){if(!rr(m))return;let p=LT(m,{withFileTypes:!0});for(let h of p){let b=ir(m,h.name);if(h.isDirectory()){if(c.has(h.name)||u.has(h.name)&&(m===t||rr(ir(m,Xr))))continue;d(b)}else if(h.isFile()){let v=$T(h.name).toLowerCase();if(OT(v,e)){let C=NT(b,o);(C.unwraps>0||C.unsafeBlocks>0||C.todoComments>0||C.consoleStatements>0)&&(r[b]=C,i+=C.unwraps,n+=C.unsafeBlocks,s+=C.todoComments,a+=C.consoleStatements)}}}}return d(t),{unwraps:i,unsafeBlocks:n,todoComments:s,consoleStatements:a,byFile:r}}getPatternsForLanguage(t){switch(t){case"rust":return{unwrap:/\.unwrap\s*\(/g,unsafe:/\bunsafe\s*\{/g,todo:/\/\/\s*(TODO|FIXME|HACK|XXX)[\s:]/gi,console:/\b(println!|print!|eprintln!|eprint!|dbg!)\s*\(/g};case"python":return{unwrap:null,unsafe:null,todo:/#\s*(TODO|FIXME|HACK|XXX)[\s:]/gi,console:/\b(print)\s*\(/g};case"go":return{unwrap:null,unsafe:/\bunsafe\./g,todo:/\/\/\s*(TODO|FIXME|HACK|XXX)[\s:]/gi,console:/\b(fmt\.Print|fmt\.Printf|fmt\.Println|log\.Print|log\.Printf|log\.Println)\s*\(/g};default:return{unwrap:null,unsafe:null,todo:/\/\/\s*(TODO|FIXME|HACK|XXX)[\s:]/gi,console:/\bconsole\.(log|debug|info|warn|error)\s*\(/g}}}};function OT(l,t){switch(t){case"rust":return l===".rs";case"python":return[".py",".pyw"].includes(l);case"go":return l===".go";case"typescript":return[".ts",".tsx"].includes(l);case"javascript":return[".js",".jsx",".mjs",".cjs"].includes(l);default:return[".ts",".tsx",".js",".jsx",".py",".rs",".go"].includes(l)}}function NT(l,t){try{let e=FT(l,"utf-8");return{unwraps:t.unwrap?(e.match(t.unwrap)||[]).length:0,unsafeBlocks:t.unsafe?(e.match(t.unsafe)||[]).length:0,todoComments:(e.match(t.todo)||[]).length,consoleStatements:(e.match(t.console)||[]).length}}catch{return{unwraps:0,unsafeBlocks:0,todoComments:0,consoleStatements:0}}}function Yh(l={}){return new yd(l)}_();k();he();fr();k();fr();k();fr();k();fr();k();he();fr();k();var u3=300*1e3;wt();wt();_();wt();var R3=A.create("temporal-compression");k();_();Ki();var P3=A.create("ruvector-server-client");Ib();import{Buffer as JT}from"buffer";var $3=JT.from("COGCNTNR","ascii");wt();wt();var XT={capacity:1e4,minCoherenceThreshold:.3,highTierThreshold:.8,mediumTierThreshold:.5,highTierWeight:3,mediumTierWeight:1.5,lowTierWeight:1},vd=class{config;cusumDetector;buffer;totalSeen=0;totalAdmitted=0;totalRejected=0;totalEvicted=0;totalSampled=0;constructor(t){this.config={...XT,...t},this.cusumDetector=new Zc({threshold:this.config.cusumConfig?.threshold??5,slack:this.config.cusumConfig?.slack??.5,resetOnAlarm:!1,warmupSamples:20}),this.buffer=[]}admit(t,e,r){this.totalSeen++;let i=this.getEffectiveThreshold();if(r<i)return this.totalRejected++,!1;let n=this.classifyTier(r),s={id:t,data:e,coherenceScore:r,tier:n,admittedAt:Date.now(),replayCount:0};if(this.buffer.length<this.config.capacity)return this.buffer.push(s),this.totalAdmitted++,!0;let a=Math.floor(Math.random()*this.totalAdmitted),o=this.getTierWeight(n),c=Math.floor(a/o);if(c<this.config.capacity){let u=this.selectEvictionTarget(c);return this.buffer[u]=s,this.totalEvicted++,this.totalAdmitted++,!0}return this.totalRejected++,!1}sample(t,e){if(this.buffer.length===0)return[];let r=e!==void 0?this.buffer.filter(a=>a.coherenceScore>=e):this.buffer;if(r.length===0)return[];if(t>=r.length){let a=[...r];for(let o of a)o.replayCount++;return this.totalSampled+=a.length,a}let i=r.map(a=>this.getTierWeight(a.tier)),n=[],s=new Set;for(;n.length<t&&s.size<r.length;){let a=0;for(let u=0;u<r.length;u++)s.has(u)||(a+=i[u]);if(a<=0)break;let o=Math.random()*a,c=-1;for(let u=0;u<r.length;u++)if(!s.has(u)&&(o-=i[u],o<=0)){c=u;break}if(c===-1){for(let u=0;u<r.length;u++)if(!s.has(u)){c=u;break}}c>=0&&(s.add(c),r[c].replayCount++,n.push(r[c]))}return this.totalSampled+=n.length,n}size(){return this.buffer.length}getStats(){let t={high:0,medium:0,low:0};for(let e of this.buffer)t[e.tier]++;return{size:this.buffer.length,capacity:this.config.capacity,totalAdmitted:this.totalAdmitted,totalRejected:this.totalRejected,totalEvicted:this.totalEvicted,tierCounts:t,totalSampled:this.totalSampled}}getByTier(t){return this.buffer.filter(e=>e.tier===t)}clear(){this.buffer.length=0,this.totalSeen=0,this.totalAdmitted=0,this.totalRejected=0,this.totalEvicted=0,this.totalSampled=0,this.cusumDetector.reset()}getCusumState(t){return this.cusumDetector.getState(t)}observeCoherence(t,e){return this.cusumDetector.update(t,e)}classifyTier(t){return t>=this.config.highTierThreshold?"high":t>=this.config.mediumTierThreshold?"medium":"low"}getTierWeight(t){switch(t){case"high":return this.config.highTierWeight;case"medium":return this.config.mediumTierWeight;case"low":return this.config.lowTierWeight}}getEffectiveThreshold(){let t=["retrieve","write","learn","act"],e=!1;for(let r of t)if(this.cusumDetector.getState(r).driftDetected){e=!0;break}return e?Math.min(this.config.minCoherenceThreshold*1.5,.9):this.config.minCoherenceThreshold}selectEvictionTarget(t){let e=Math.min(10,this.buffer.length),r=Math.max(0,t-Math.floor(e/2)),i=Math.min(this.buffer.length,r+e),n=t,s=this.buffer[t].coherenceScore;for(let a=r;a<i;a++)this.buffer[a].coherenceScore<s&&(s=this.buffer[a].coherenceScore,n=a);return n}};he();var os=A.create("code-intelligence/gnn");async function Xh(l,t,e){try{for(let r of e)try{let i=await t.readFile(r);if(i.success&&i.value){let s={vector:await Zh(r,i.value),dimension:384,namespace:"code",text:i.value.slice(0,1e3),timestamp:Date.now(),quantization:"none",metadata:{path:r}};l.addEmbedding(s)}}catch(i){os.error(`Failed to index ${r}:`,i instanceof Error?i:void 0)}os.info(`Indexed ${e.length} code embeddings`)}catch(r){os.error("Failed to index code embeddings:",r instanceof Error?r:void 0)}}async function Zh(l,t){let e=[],r=l.split(".").pop(),i=$o(r||"");e.push(i%1e3/1e3),e.push(Math.min(1,t.length/1e4));let n=t.match(/function\s+\w+/g)||[],s=t.match(/class\s+\w+/g)||[];e.push(Math.min(1,(n.length+s.length)/50));let a=t.match(/import\s+.*from|require\s*\(/g)||[];e.push(Math.min(1,a.length/20));let o=t.match(/for\s*\(|while\s*\(/g)||[],c=t.match(/if\s*\(/g)||[];e.push(Math.min(1,(o.length+c.length)/30));let u=t.match(/\/\/.*|\/\*[\s\S]*?\*\//g)||[];e.push(Math.min(1,u.length/50));let d=$o(t.slice(0,500));for(let m=e.length;m<384;m++)e.push(d*(m+1)%1e4/1e4);return e.slice(0,384)}async function ef(l,t,e){try{for(let r of e.changedFiles){let i=await t.readFile(r);if(i.success&&i.value){let s={vector:await Zh(r,i.value),dimension:384,namespace:"code",text:i.value.slice(0,1e3),timestamp:Date.now(),quantization:"none",metadata:{path:r}},a=l.search(s,{limit:5,namespace:"code"});os.info(`Found ${a.length} semantically similar files to ${r}`)}}}catch(r){os.error("Failed to enhance impact analysis:",r instanceof Error?r:void 0)}}function $o(l){let t=0;for(let e=0;e<l.length;e++)t=(t<<5)-t+l.charCodeAt(e),t=t|0;return Math.abs(t)}_();k();var ht=A.create("code-intelligence/hypergraph");async function tf(l,t,e){try{let r=await l.findUntestedFunctions();if(ht.info(`[CodeIntelligence] Found ${r.length} untested functions via hypergraph`),e){let i=N("code-intelligence.UntestedFunctionsFound","code-intelligence",{count:r.length,functions:r.slice(0,10).map(n=>({name:n.name,file:n.filePath,complexity:n.complexity}))});await t.publish(i)}return{success:!0,value:r}}catch(r){let i=y(r);return ht.error("Failed to find untested functions:"),g(i)}}async function rf(l,t,e,r){if(t.length===0)return{success:!0,value:[]};try{let i=await l.findImpactedTests(t);if(ht.info(`[CodeIntelligence] Found ${i.length} impacted tests for ${t.length} changed files via hypergraph`),r){let n=N("code-intelligence.ImpactedTestsFound","code-intelligence",{changedFiles:t,testCount:i.length,tests:i.slice(0,10).map(s=>({name:s.name,file:s.filePath}))});await e.publish(n)}return{success:!0,value:i}}catch(i){let n=y(i);return ht.error("Failed to find impacted tests:"),g(n)}}async function nf(l,t,e,r){try{let i=await l.findCoverageGaps(t);if(ht.info(`[CodeIntelligence] Found ${i.length} coverage gaps (functions with <=${t}% coverage) via hypergraph`),r){let n=N("code-intelligence.CoverageGapsFound","code-intelligence",{maxCoverage:t,gapCount:i.length,gaps:i.slice(0,10).map(s=>({name:s.name,file:s.filePath,coverage:s.coverage,complexity:s.complexity}))});await e.publish(n)}return{success:!0,value:i}}catch(i){let n=y(i);return ht.error("Failed to find coverage gaps:"),g(n)}}async function sf(l,t,e,r,i){try{ht.info(`[CodeIntelligence] Building hypergraph from ${t.files.length} indexed files`);let n=await l.buildFromIndexResult(t);if(ht.info(`[CodeIntelligence] Hypergraph built: ${n.nodesCreated} nodes created, ${n.nodesUpdated} nodes updated, ${n.edgesCreated} edges created (${n.durationMs}ms)`),await e.set("hypergraph:build:latest",{timestamp:new Date().toISOString(),...n},{namespace:"code-intelligence",persist:!0}),i){let s=N("code-intelligence.HypergraphBuilt","code-intelligence",{nodesCreated:n.nodesCreated,nodesUpdated:n.nodesUpdated,edgesCreated:n.edgesCreated,durationMs:n.durationMs,errorCount:n.errors.length});await r.publish(s)}return{success:!0,value:n}}catch(n){let s=y(n);return ht.error("Failed to build hypergraph:"),g(s)}}async function af(l,t,e){try{let r=await l.findImpactedTests(t.changedFiles),i=new Set([...e.impactedTests,...r.map(a=>a.filePath||a.name)]),n=e.riskLevel;if(r.length>e.impactedTests.length){let a=e.directImpact.length+e.transitiveImpact.length;a>10&&i.size>20?n="critical":a>5&&i.size>10&&(n="high")}let s=[...e.recommendations];return r.length>0&&s.push(`Hypergraph analysis found ${r.length} additional test(s) to run`),{...e,impactedTests:Array.from(i),riskLevel:n,recommendations:s}}catch(r){return ht.error("Failed to enhance impact with hypergraph:",r instanceof Error?r:void 0),e}}_();var Ti=A.create("code-intelligence/consensus");async function of(l,t,e,r){let i=W({id:w(),type:"code-pattern-detection",confidence:t,description:`Verify code pattern: ${l.name} (${l.type}) at ${l.location}`,payload:l,detectedBy:"code-intelligence-coordinator",severity:t>.9?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Ti.info(`Code pattern '${l.name}' verified by consensus`),!0):(Ti.warn(`Code pattern '${l.name}' NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}async function cf(l,t,e,r){let i=W({id:w(),type:"impact-analysis",confidence:t,description:`Verify impact analysis: ${l.changedFiles.length} files, risk=${l.riskLevel}, ${l.impactedTests.length} tests`,payload:l,detectedBy:"code-intelligence-coordinator",severity:l.riskLevel==="critical"||l.riskLevel==="high"?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Ti.info(`Impact analysis verified by consensus (risk=${l.riskLevel})`),!0):(Ti.warn(`Impact analysis NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}async function lf(l,t,e,r){let i=W({id:w(),type:"dependency-mapping",confidence:t,description:`Verify dependency: ${l.source} -> ${l.targets.length} targets (${l.type})`,payload:l,detectedBy:"code-intelligence-coordinator",severity:t>.85?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Ti.info("Dependency mapping verified by consensus"),!0):(Ti.warn(`Dependency mapping NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}var h0={maxConcurrentWorkflows:5,defaultTimeout:12e4,publishEvents:!0,enableIncrementalIndex:!0,enableGNN:!0,enableSONA:!0,enableMetricCollector:!0,enableHypergraph:!0,enableMinCutAwareness:!0,topologyHealthThreshold:.5,pauseOnCriticalTopology:!1,enableConsensus:!0,consensusThreshold:.7,consensusStrategy:"weighted",consensusMinModels:2},ce=A.create("code-intelligence"),bd=100,cs=class extends re{constructor(e,r,i,n={},s){let a={...h0,...n};super(e,"code-intelligence",a,{verifyFindingTypes:["code-pattern-detection","impact-analysis","dependency-mapping"]});this.memory=r;this.agentCoordinator=i;this.knowledgeGraph=new Vt({memory:r,llmRouter:s}),this.semanticAnalyzer=new Mr(r),this.impactAnalyzer=new on(r,this.knowledgeGraph),this.fileReader=new st({projectRoot:Me()}),this.productFactorsBridge=new Io(e,r,{publishEvents:this.config.publishEvents,relationshipResolver:zh(o=>new Vt({memory:r,llmRouter:s},{basePath:o}))})}memory;agentCoordinator;knowledgeGraph;semanticAnalyzer;impactAnalyzer;fileReader;gnnIndex;sonaEngine;rlInitialized=!1;metricCollector;hypergraph;hypergraphDb;productFactorsBridge;async onInitialize(){this.subscribeToEvents(),await this.loadWorkflowState(),(this.config.enableGNN||this.config.enableSONA)&&await this.initializeRLIntegrations(),this.config.enableMetricCollector&&(this.metricCollector=Yh({enableCache:!0,cacheTTL:3e5}),ce.info("MetricCollector initialized for real code metrics")),this.config.enableHypergraph&&await this.initializeHypergraph(),await this.productFactorsBridge.initialize()}async initializeHypergraph(){try{let{openDatabase:e}=await import("./safe-db-TDZKUOZJ.js"),r=await import("fs"),i=await import("path"),{findProjectRoot:n}=await import("./unified-memory-QARWQKJ2.js"),s=n(),a=process.env.AQE_MEMORY_BACKEND==="memory",o=a?":memory:":this.config.hypergraphDbPath||i.join(s,".agentic-qe","memory.db");if(!a){let c=i.dirname(o);r.existsSync(c)||r.mkdirSync(c,{recursive:!0})}this.hypergraphDb=e(o),this.hypergraph=await Qs({db:this.hypergraphDb,maxTraversalDepth:10,maxQueryResults:1e3,enableVectorSearch:this.config.enableGNN}),ce.info(`Hypergraph Engine initialized at ${o}`)}catch(e){let r=e instanceof Error?e.message:String(e);if(ce.warn(`Hypergraph Engine initialization failed (feature degraded): ${r}`),this.hypergraph=void 0,this.hypergraphDb=void 0,this.config.publishEvents){let i=N("code-intelligence.HypergraphDegraded","code-intelligence",{reason:r});this.eventBus.publish(i).catch(()=>{})}}}async initializeRLIntegrations(){try{if(this.config.enableGNN&&(ol(),this.gnnIndex=zs.getInstance("code-intelligence",{M:16,efConstruction:200,efSearch:50,dimension:384,metric:"cosine"}),this.gnnIndex.initializeIndex("code"),this.gnnIndex.initializeIndex("test")),this.config.enableSONA)try{this.sonaEngine=await De({domain:"code-intelligence",loadOnInit:!0,autoSaveInterval:6e4,maxPatterns:1e4,minConfidence:.6}),ce.info("PersistentSONAEngine initialized for code pattern learning")}catch(e){ce.error("Failed to initialize PersistentSONAEngine:",e instanceof Error?e:void 0),this.sonaEngine=void 0}this.rlInitialized=!0}catch(e){throw ce.error("Failed to initialize RL integrations:",e instanceof Error?e:void 0),e}}async onDispose(){if(await this.saveWorkflowState(),this.gnnIndex&&zs.closeInstance("code-intelligence"),this.sonaEngine)try{await this.sonaEngine.close(),this.sonaEngine=void 0}catch(e){ce.error("Error closing SONA engine:",e instanceof Error?e:void 0)}if(this.hypergraphDb){try{this.hypergraphDb.close()}catch(e){ce.error("Error closing hypergraph database:",e instanceof Error?e:void 0)}this.hypergraphDb=void 0}this.hypergraph=void 0,await this.productFactorsBridge.dispose()}getActiveWorkflows(){return super.getActiveWorkflows()}async index(e){let r=cp(e.paths,"paths","Invalid index payload",Number.POSITIVE_INFINITY);if(!r.success)return r;let i=w();try{if(this.startWorkflow(i,"index"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&ce.warn("Topology degraded, using conservative strategy"),this.minCutMixin.shouldPauseOperations())return g(new Error("Indexing paused: topology is in critical state"));if(!this.agentCoordinator.canSpawn())return g(new Error("Agent limit reached, cannot spawn indexing agents"));let n=await this.spawnIndexerAgent(i,e);if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);this.addAgentToWorkflow(i,n.value),this.updateWorkflowProgress(i,10);let s=await this.knowledgeGraph.index(e);if(s.success&&s.value.filesIndexed===0&&e.paths.length>0){let a=lp(e.paths.length,s.value.skipped??[],s.value.errors);return this.failWorkflow(i,a.message),await this.agentCoordinator.stop(n.value),g(a)}if(s.success){this.updateWorkflowProgress(i,40);let a=new Set([...(s.value.skipped??[]).map(c=>c.path),...s.value.errors.map(c=>c.file)]),o=e.paths.filter(c=>!a.has(c));if(this.config.enableGNN&&this.gnnIndex&&o.length>0&&await this.indexCodeEmbeddings(o),this.updateWorkflowProgress(i,60),this.config.enableMetricCollector&&this.metricCollector&&o.length>0){let c=this.getProjectRootFromPaths(o,e.target);c?await this.collectProjectMetrics(c):ce.debug("Skipping project metrics: no project root resolved (filesystem root or no paths)")}if(this.updateWorkflowProgress(i,70),o.length>0){let c=await this.indexForSearch(o);c.warnings.length>0&&(s.value.warnings=[...s.value.warnings??[],...c.warnings])}if(this.updateWorkflowProgress(i,85),this.config.enableHypergraph&&this.hypergraph&&o.length>0)try{let c=await this.buildCodeIndexResultFromPaths(o);if(c.files.length>0){await this.hypergraph.buildFromIndexResult(c),ce.info(`Hypergraph rebuilt from ${c.files.length} indexed files`);try{let u=await this.hypergraph.synthesizeTestCoverage();(u.testsTagged>0||u.coversCreated>0)&&ce.info(`Test coverage synthesized: tests_tagged=${u.testsTagged} covers_created=${u.coversCreated}`)}catch(u){ce.warn(`Test coverage synthesis skipped: ${u instanceof Error?u.message:u}`)}}}catch(c){ce.warn(`Hypergraph rebuild skipped: ${c instanceof Error?c.message:c}`)}this.updateWorkflowProgress(i,100),this.completeWorkflow(i),this.config.publishEvents&&await this.publishKnowledgeGraphUpdated(s.value)}else this.failWorkflow(i,s.error.message);return await this.agentCoordinator.stop(n.value),s}catch(n){let s=y(n);return this.failWorkflow(i,s.message),g(s)}}async search(e){let r=w();try{this.startWorkflow(r,"search");let i=await this.spawnSearchAgent(r,e);if(i.success&&this.addAgentToWorkflow(r,i.value),this.config.enableSONA&&this.sonaEngine){let s=await this.adaptSearchPattern(e);s.success&&s.pattern&&ce.info(`Adapted search pattern with ${s.similarity.toFixed(3)} similarity`)}let n=await this.semanticAnalyzer.search(e);return n.success?(this.completeWorkflow(r),this.config.publishEvents&&await this.publishSemanticSearchCompleted(e,n.value)):this.failWorkflow(r,n.error.message),i.success&&await this.agentCoordinator.stop(i.value),n}catch(i){let n=y(i);return this.failWorkflow(r,n.message),g(n)}}async analyzeImpact(e){let r=w();try{if(this.startWorkflow(r,"impact"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&ce.warn("Topology degraded, using conservative impact analysis"),this.minCutMixin.shouldPauseOperations())return g(new Error("Impact analysis paused: topology is in critical state"));let i=await this.spawnImpactAnalyzerAgent(r,e);if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);this.addAgentToWorkflow(r,i.value),this.updateWorkflowProgress(r,20),this.config.enableGNN&&this.gnnIndex&&await this.enhanceImpactAnalysisWithGNN(e);let n=await this.impactAnalyzer.analyzeImpact(e);if(n.success){this.updateWorkflowProgress(r,80);let s=n.value;return this.config.enableHypergraph&&this.hypergraph&&(s=await this.enhanceImpactWithHypergraph(e,n.value)),this.updateWorkflowProgress(r,100),this.completeWorkflow(r),this.config.enableSONA&&this.sonaEngine&&await this.storeImpactPattern(e,s),this.config.publishEvents&&await this.publishImpactAnalysisCompleted(e,s),{success:!0,value:s}}else this.failWorkflow(r,n.error.message);return await this.agentCoordinator.stop(i.value),n}catch(i){let n=y(i);return this.failWorkflow(r,n.message),g(n)}}async mapDependencies(e){let r=w();try{this.startWorkflow(r,"dependency");let i=await this.knowledgeGraph.mapDependencies(e);return i.success?this.completeWorkflow(r):this.failWorkflow(r,i.error.message),i}catch(i){let n=y(i);return this.failWorkflow(r,n.message),g(n)}}async queryKG(e){let r=w();try{this.startWorkflow(r,"query");let i=await this.knowledgeGraph.query(e);return i.success?this.completeWorkflow(r):this.failWorkflow(r,i.error.message),i}catch(i){let n=y(i);return this.failWorkflow(r,n.message),g(n)}}async indexCodeEmbeddings(e){!this.gnnIndex||!this.rlInitialized||await Xh(this.gnnIndex,this.fileReader,e)}async enhanceImpactAnalysisWithGNN(e){!this.gnnIndex||!this.rlInitialized||await ef(this.gnnIndex,this.fileReader,e)}async adaptSearchPattern(e){if(!this.sonaEngine||!this.rlInitialized)return{success:!1,pattern:null,similarity:0};try{let r=Array.isArray(e.filters)?e.filters.find(s=>s.field==="language")?.value:void 0,i={id:`search-${e.type}`,features:[e.query.length,e.type==="semantic"?1:0,e.type==="exact"?1:0,r==="typescript"?1:0,r==="javascript"?1:0]},n=await this.sonaEngine.adaptPattern(i,"coverage-optimization","code-intelligence");return{success:n.success,pattern:n.pattern,similarity:n.similarity}}catch(r){return ce.error("Failed to adapt search pattern:",r instanceof Error?r:void 0),{success:!1,pattern:null,similarity:0}}}async storeImpactPattern(e,r){if(!(!this.sonaEngine||!this.rlInitialized))try{let i={id:`impact-${e.changedFiles.join(",")}`,features:[e.changedFiles.length,e.depth||1,r.directImpact.length,r.transitiveImpact.length,r.impactedTests.length,r.riskLevel==="high"?1:r.riskLevel==="medium"?.5:0]},n={type:"analyze-impact",value:r.riskLevel},s={reward:r.riskLevel==="high"?.8:r.riskLevel==="medium"?.5:.3,success:r.impactedTests.length>0,quality:(r.directImpact.length+r.transitiveImpact.length)/100},a=this.sonaEngine.createPattern(i,n,s,"coverage-optimization","code-intelligence",{changedFiles:e.changedFiles,impactCount:r.directImpact.length+r.transitiveImpact.length,testImpactCount:r.impactedTests.length});ce.info(`Stored impact pattern ${a.id}`)}catch(i){ce.error("Failed to store impact pattern:",i instanceof Error?i:void 0)}}hashCode(e){return $o(e)}async spawnIndexerAgent(e,r){let i={name:`kg-indexer-${e.slice(0,8)}`,domain:"code-intelligence",type:"analyzer",capabilities:["indexing","ast-parsing","graph-building"],config:{workflowId:e,paths:r.paths,incremental:r.incremental}};return this.agentCoordinator.spawn(i)}async spawnSearchAgent(e,r){let i={name:`semantic-search-${e.slice(0,8)}`,domain:"code-intelligence",type:"analyzer",capabilities:["semantic-search","vector-similarity",r.type],config:{workflowId:e,query:r.query,type:r.type}};return this.agentCoordinator.spawn(i)}async spawnImpactAnalyzerAgent(e,r){let i={name:`impact-analyzer-${e.slice(0,8)}`,domain:"code-intelligence",type:"analyzer",capabilities:["impact-analysis","dependency-traversal","risk-assessment"],config:{workflowId:e,changedFiles:r.changedFiles,depth:r.depth}};return this.agentCoordinator.spawn(i)}async publishKnowledgeGraphUpdated(e){let r={nodes:e.nodesCreated,edges:e.edgesCreated,filesIndexed:e.filesIndexed,duration:e.duration},i=N($t.KnowledgeGraphUpdated,"code-intelligence",r);await this.eventBus.publish(i)}async publishImpactAnalysisCompleted(e,r){let i={analysisId:w(),changedFiles:e.changedFiles,impactedFiles:[...r.directImpact.map(s=>s.file),...r.transitiveImpact.map(s=>s.file)],impactedTests:r.impactedTests,riskLevel:r.riskLevel},n=N($t.ImpactAnalysisCompleted,"code-intelligence",i);await this.eventBus.publish(n)}async publishSemanticSearchCompleted(e,r){let i=N($t.SemanticSearchCompleted,"code-intelligence",{query:e.query,type:e.type,resultCount:r.total,searchTime:r.searchTime});await this.eventBus.publish(i)}subscribeToEvents(){this.eventBus.subscribe("test-execution.TestRunCompleted",this.handleTestRunCompleted.bind(this)),this.eventBus.subscribe("source-control.FilesChanged",this.handleFilesChanged.bind(this))}async handleTestRunCompleted(e){let r=e.payload;await this.memory.set(`code-intelligence:test-correlation:${r.runId}`,r,{namespace:"code-intelligence",ttl:86400})}async handleFilesChanged(e){if(!this.config.enableIncrementalIndex)return;let r=e.payload;r.files&&r.files.length>0&&await this.memory.set(`code-intelligence:pending-index:${Date.now()}`,{files:r.files,timestamp:new Date().toISOString()},{namespace:"code-intelligence",ttl:3600})}async indexForSearch(e){let r=e.slice(0,bd),i=0;for(let s of r)try{let a=await this.fileReader.readFile(s);a.success&&a.value&&(await this.semanticAnalyzer.indexCode(s,a.value)).success&&i++}catch{}let n=[];return i<e.length&&n.push(`Search covers ${i} of ${e.length} indexed files`+(e.length>bd?` (at most ${bd} per index run)`:"")+"; code in the other files is not found by search."),{searchable:i,warnings:n}}async loadWorkflowState(){let e=await this.memory.get("code-intelligence:coordinator:workflows");if(e)for(let r of e)r.status==="running"&&(r.status="failed",r.error="Coordinator restarted",r.completedAt=new Date),this.workflows.set(r.id,r)}async saveWorkflowState(){let e=Array.from(this.workflows.values());await this.memory.set("code-intelligence:coordinator:workflows",e,{namespace:"code-intelligence",persist:!0})}async generateC4Diagrams(e,r){let i=w();try{this.startWorkflow(i,"query");let n={projectPath:e,detectExternalSystems:r?.detectExternalSystems??!0,analyzeComponents:r?.analyzeComponents??!0,analyzeCoupling:r?.analyzeCoupling??!0,includeContext:r?.includeContext??!0,includeContainer:r?.includeContainer??!0,includeComponent:r?.includeComponent??!0,includeDependency:r?.includeDependency??!1,excludePatterns:r?.excludePatterns};this.updateWorkflowProgress(i,20);let s=await this.productFactorsBridge.requestC4Diagrams(n);return s.success?(this.updateWorkflowProgress(i,80),await this.storeC4DiagramsInMemory(e,s.value),this.updateWorkflowProgress(i,100),this.completeWorkflow(i),ce.info(`[CodeIntelligenceCoordinator] C4 diagrams generated for ${e}: ${s.value.components.length} components, ${s.value.externalSystems.length} external systems`)):this.failWorkflow(i,s.error.message),s}catch(n){let s=y(n);return this.failWorkflow(i,s.message),g(s)}}getProductFactorsBridge(){return this.productFactorsBridge}async storeC4DiagramsInMemory(e,r){let i=`c4-diagrams:latest:${this.hashCode(e)}`;await this.memory.set(i,r,{namespace:"code-intelligence",persist:!0,ttl:3600}),await this.memory.set(`c4-components:${this.hashCode(e)}`,r.components,{namespace:"code-intelligence",ttl:3600}),await this.memory.set(`c4-external-systems:${this.hashCode(e)}`,r.externalSystems,{namespace:"code-intelligence",ttl:3600})}async collectProjectMetrics(e){if(!this.config.enableMetricCollector||!this.metricCollector)return g(new Error("MetricCollector is not enabled"));try{ce.info(`Collecting real metrics for ${e}`);let r=await this.metricCollector.collectAll(e),i=r.toolsUsed.length>0?r.toolsUsed.join(", "):r.loc.source==="node-native"?"node-native":"fallback";if(ce.info(`[CodeIntelligence] Real metrics collected: ${r.loc.total} LOC, ${r.tests.total} tests, tools: ${i}`),r.loc.source==="node-native"&&ce.info("[CodeIntelligence] Using Node.js-native line counter (no cloc/tokei needed)"),await this.storeProjectMetricsInMemory(e,r),this.config.publishEvents){let n=N("code-intelligence.MetricsCollected","code-intelligence",{projectPath:e,loc:r.loc.total,tests:r.tests.total,toolsUsed:r.toolsUsed});await this.eventBus.publish(n)}return{success:!0,value:r}}catch(r){let i=y(r);return ce.error("Failed to collect metrics:"),g(i)}}async storeProjectMetricsInMemory(e,r){let i=`project-metrics:latest:${this.hashCode(e)}`;await this.memory.set(i,r,{namespace:"code-intelligence",persist:!0,ttl:300}),await this.memory.set(`loc-metrics:${this.hashCode(e)}`,r.loc,{namespace:"code-intelligence",ttl:300}),await this.memory.set(`test-metrics:${this.hashCode(e)}`,r.tests,{namespace:"code-intelligence",ttl:300})}getMetricCollector(){return this.metricCollector}getProjectRootFromPaths(e,r){return Dh(e,{target:r})}isHypergraphEnabled(){return this.config.enableHypergraph&&this.hypergraph!==void 0}async findUntestedFunctions(){return this.hypergraph?tf(this.hypergraph,this.eventBus,this.config.publishEvents):g(new Error("Hypergraph is not enabled or not initialized"))}async findImpactedTestsFromHypergraph(e){return this.hypergraph?rf(this.hypergraph,e,this.eventBus,this.config.publishEvents):g(new Error("Hypergraph is not enabled or not initialized"))}async findCoverageGapsFromHypergraph(e=50){return this.hypergraph?nf(this.hypergraph,e,this.eventBus,this.config.publishEvents):g(new Error("Hypergraph is not enabled or not initialized"))}async buildHypergraphFromIndex(e){return this.hypergraph?sf(this.hypergraph,e,this.memory,this.eventBus,this.config.publishEvents):g(new Error("Hypergraph is not enabled or not initialized"))}getHypergraph(){return this.hypergraph}async enhanceImpactWithHypergraph(e,r){return this.hypergraph?af(this.hypergraph,e,r):r}async buildCodeIndexResultFromPaths(e){let{extractCodeIndex:r}=await import("./code-index-extractor-D4DBT6OL.js");return r(e)}async verifyCodePatternDetection(e,r){return of(e,r,this.consensusMixin,this.domainName)}async verifyImpactAnalysis(e,r){return cf(e,r,this.consensusMixin,this.domainName)}async verifyDependencyMapping(e,r){return lf(e,r,this.consensusMixin,this.domainName)}};k();var Oo=class extends ee{constructor(e,r,i,n={},s){super(e,r);this.agentCoordinator=i;this.llmRouter=s;this.pluginConfig=n}agentCoordinator;llmRouter;coordinator=null;knowledgeGraph=null;semanticAnalyzer=null;impactAnalyzer=null;pluginConfig;get name(){return"code-intelligence"}get version(){return"1.0.0"}get dependencies(){return[]}getAPI(){return{index:this.index.bind(this),search:this.search.bind(this),analyzeImpact:this.analyzeImpact.bind(this),mapDependencies:this.mapDependencies.bind(this),getDependencies:this.mapDependencies.bind(this),queryKG:this.queryKG.bind(this),getMetrics:this.getMetrics.bind(this),getCoordinator:()=>this.coordinator,getKnowledgeGraph:()=>this.knowledgeGraph,getSemanticAnalyzer:()=>this.semanticAnalyzer,getImpactAnalyzer:()=>this.impactAnalyzer}}getTaskHandlers(){let e=new Map([["index",async r=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let i=r.paths;if(!i||i.length===0)return g(new Error("Invalid index payload: missing paths"));let n=r.language?[r.language]:r.languages;return this.coordinator.index({paths:i,languages:n,target:typeof r.target=="string"?r.target:void 0})}],["search",async r=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let i=r.query;return i?this.coordinator.search({query:i,type:r.type??"semantic",limit:r.limit}):g(new Error("Invalid search payload: missing query"))}],["analyze-impact",async r=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let i=r.changedFiles;return!i||i.length===0?g(new Error("Invalid analyze-impact payload: missing changedFiles")):this.coordinator.analyzeImpact({changedFiles:i})}],["query-dependencies",async r=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let i=r.file,s=r.files??(i?[i]:void 0);return!s||s.length===0?g(new Error("Invalid query-dependencies payload: missing file or files")):this.coordinator.mapDependencies({files:s,direction:r.direction??"both",depth:r.depth})}]]);return e.set("index-code",e.get("index")),e}async onInitialize(){this.knowledgeGraph=new Vt({memory:this.memory,llmRouter:this.llmRouter},this.pluginConfig.knowledgeGraph),this.semanticAnalyzer=new Mr(this.memory,this.pluginConfig.semanticAnalyzer),this.impactAnalyzer=new on(this.memory,this.knowledgeGraph,this.pluginConfig.impactAnalyzer),this.coordinator=new cs(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.coordinator,this.llmRouter),await this.coordinator.initialize(),this.updateHealth({status:"idle",agents:{total:0,active:0,idle:0,failed:0},lastActivity:new Date,errors:[]})}async onDispose(){this.coordinator&&await this.coordinator.dispose(),this.coordinator=null,this.knowledgeGraph=null,this.semanticAnalyzer=null,this.impactAnalyzer=null}subscribeToEvents(){this.eventBus.subscribe("test-generation.TestGenerated",this.handleTestGenerated.bind(this)),this.eventBus.subscribe("coverage-analysis.CoverageGapDetected",this.handleCoverageGap.bind(this)),this.eventBus.subscribe("defect-intelligence.DefectPredicted",this.handleDefectPredicted.bind(this))}async onEvent(e){switch(this.updateHealth({lastActivity:new Date}),e.type){case"test-generation.TestGenerated":await this.handleTestGenerated(e);break;case"coverage-analysis.CoverageGapDetected":await this.handleCoverageGap(e);break;case"defect-intelligence.DefectPredicted":await this.handleDefectPredicted(e);break;default:break}}async index(e){this.ensureInitialized();try{let r=await this.coordinator.index(e);return r.success?this.trackSuccessfulOperation("index",r.value):this.trackFailedOperation("index",r.error),r}catch(r){return this.handleError(r)}}async search(e){this.ensureInitialized();try{let r=await this.coordinator.search(e);return r.success?this.trackSuccessfulOperation("search",r.value):this.trackFailedOperation("search",r.error),r}catch(r){return this.handleError(r)}}async analyzeImpact(e){this.ensureInitialized();try{let r=await this.coordinator.analyzeImpact(e);return r.success?this.trackSuccessfulOperation("impact",r.value):this.trackFailedOperation("impact",r.error),r}catch(r){return this.handleError(r)}}async mapDependencies(e){this.ensureInitialized();try{let r=await this.coordinator.mapDependencies(e);return r.success?this.trackSuccessfulOperation("dependency",r.value):this.trackFailedOperation("dependency",r.error),r}catch(r){return this.handleError(r)}}async queryKG(e){this.ensureInitialized();try{let r=await this.coordinator.queryKG(e);return r.success?this.trackSuccessfulOperation("query",r.value):this.trackFailedOperation("query",r.error),r}catch(r){return this.handleError(r)}}async getMetrics(){this.ensureInitialized();try{let e=this.getHealth();return{success:!0,value:{indexed:e.agents.total,queries:e.agents.idle,impacts:e.agents.active}}}catch(e){return this.handleError(e)}}async handleTestGenerated(e){let r=e.payload;await this.memory.set(`code-intelligence:test-mapping:${r.testId}`,{testFile:r.testFile,sourceFile:r.sourceFile,generatedAt:new Date().toISOString()},{namespace:"code-intelligence",ttl:86400*30})}async handleCoverageGap(e){if(!Ue(e.payload))return;let r=e.payload;await this.memory.set(`code-intelligence:coverage-gap:${r.gapId}`,r,{namespace:"code-intelligence",ttl:86400*7})}async handleDefectPredicted(e){let r=e.payload;await this.memory.set(`code-intelligence:defect-prediction:${r.predictionId}`,r,{namespace:"code-intelligence",ttl:86400*7})}ensureInitialized(){if(!this._initialized)throw new Error("CodeIntelligencePlugin is not initialized");if(!this.coordinator||!this.knowledgeGraph||!this.semanticAnalyzer||!this.impactAnalyzer)throw new Error("CodeIntelligencePlugin services are not available")}handleError(e){let r=y(e),i=this.getHealth();return this.updateHealth({errors:[...i.errors.slice(-9),r.message],status:i.errors.length>=5?"degraded":i.status}),{success:!1,error:r}}trackSuccessfulOperation(e,r){let i=this.getHealth();this.updateHealth({agents:{...i.agents,total:i.agents.total+1,idle:i.agents.idle+1},lastActivity:new Date})}trackFailedOperation(e,r){let i=this.getHealth();this.updateHealth({agents:{...i.agents,failed:i.agents.failed+1},errors:[...i.errors.slice(-9),r.message]})}};function wd(l,t,e,r,i){return new Oo(l,t,e,r,i)}Ur();var Cd=Qr;async function uf(l,t=Me()){return jm(l,{projectRoot:t,maxBytes:Cd})}_();k();var No={defaultRuleSets:["owasp-top-10","cwe-sans-25"],maxConcurrentScans:4,timeout:3e5,enableFalsePositiveDetection:!0,dastMaxDepth:5,dastActiveScanning:!1,enableLLMAnalysis:!0,llmModelTier:4,enableSemgrep:!0};import{createHash as pf}from"node:crypto";import*as dt from"node:path";_();var Sd=[{id:"sqli-string-concat",pattern:/query\s*\(\s*['"`].*\+.*['"`]\s*\)/g,category:"injection",severity:"critical",title:"SQL Injection via String Concatenation",description:"SQL query constructed using string concatenation with potentially untrusted input",owaspId:"A03:2021",cweId:"CWE-89",remediation:"Use parameterized queries or prepared statements instead of string concatenation",fixExample:'db.query("SELECT * FROM users WHERE id = $1", [userId])'},{id:"sqli-template-literal",pattern:/execute\s*\(\s*`[^`]*\$\{[^}]+\}[^`]*`\s*\)/g,category:"injection",severity:"critical",title:"SQL Injection via Template Literal",description:"SQL query constructed using template literals with embedded expressions",owaspId:"A03:2021",cweId:"CWE-89",remediation:"Use parameterized queries instead of template literals for SQL",fixExample:'db.execute("DELETE FROM users WHERE id = ?", [userId])'},{id:"sqli-raw-query",pattern:/\.raw\s*\(\s*['"`].*\+|\.raw\s*\(\s*`[^`]*\$\{/g,category:"injection",severity:"high",title:"SQL Injection via Raw Query",description:"Raw SQL query with potential user input interpolation",owaspId:"A03:2021",cweId:"CWE-89",remediation:"Avoid raw queries with user input; use ORM methods or parameterized queries"},{id:"sqli-exec",pattern:/exec(?:ute)?(?:Sql|Query)?\s*\([^)]*\+[^)]*\)/gi,category:"injection",severity:"critical",title:"SQL Injection via Dynamic Execution",description:"Dynamic SQL execution with string concatenation detected",owaspId:"A03:2021",cweId:"CWE-89",remediation:"Never concatenate user input into SQL queries"}],Rd=[{id:"xss-innerhtml",pattern:/\.innerHTML\s*=\s*[^'"`;\n]+/g,category:"xss",severity:"high",title:"XSS via innerHTML Assignment",description:"Direct innerHTML assignment with potentially unsanitized content",owaspId:"A03:2021",cweId:"CWE-79",remediation:"Use textContent for text, or sanitize HTML with DOMPurify before innerHTML assignment",fixExample:"element.textContent = userInput; // or DOMPurify.sanitize(userInput)"},{id:"xss-document-write",pattern:/document\.write\s*\([^)]+\)/g,category:"xss",severity:"high",title:"XSS via document.write",description:"document.write() can execute scripts from untrusted data",owaspId:"A03:2021",cweId:"CWE-79",remediation:"Avoid document.write(); use DOM manipulation methods instead",fixExample:"document.body.appendChild(document.createTextNode(text))"},{id:"xss-dangerously-set",pattern:/dangerouslySetInnerHTML\s*=\s*\{/g,category:"xss",severity:"medium",title:"React dangerouslySetInnerHTML Usage",description:"dangerouslySetInnerHTML bypasses React XSS protections",owaspId:"A03:2021",cweId:"CWE-79",remediation:"Sanitize HTML content with DOMPurify before using dangerouslySetInnerHTML",fixExample:"dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(content) }}"},{id:"xss-eval",pattern:/eval\s*\([^)]+\)/g,category:"xss",severity:"critical",title:"Code Injection via eval()",description:"eval() executes arbitrary code and is a major security risk",owaspId:"A03:2021",cweId:"CWE-95",remediation:"Never use eval(); use JSON.parse() for JSON data or safer alternatives",fixExample:"JSON.parse(jsonString) // instead of eval(jsonString)"},{id:"xss-new-function",pattern:/new\s+Function\s*\([^)]+\)/g,category:"xss",severity:"critical",title:"Code Injection via Function Constructor",description:"Function constructor can execute arbitrary code like eval()",owaspId:"A03:2021",cweId:"CWE-95",remediation:"Avoid the Function constructor; use predefined functions instead"},{id:"xss-outerhtml",pattern:/\.outerHTML\s*=\s*[^'"`;\n]+/g,category:"xss",severity:"high",title:"XSS via outerHTML Assignment",description:"Direct outerHTML assignment with potentially unsanitized content",owaspId:"A03:2021",cweId:"CWE-79",remediation:"Sanitize content before outerHTML assignment"}],Td=[{id:"secret-aws-access-key",pattern:/['"`]AKIA[0-9A-Z]{16}['"`]/g,category:"sensitive-data",severity:"critical",title:"AWS Access Key Detected",description:"Hardcoded AWS Access Key ID found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables or AWS Secrets Manager for credentials",fixExample:"const accessKey = process.env.AWS_ACCESS_KEY_ID"},{id:"secret-aws-secret-key",pattern:/['"`][A-Za-z0-9/+=]{40}['"`]/g,category:"sensitive-data",severity:"critical",title:"Potential AWS Secret Key Detected",description:"Potential hardcoded AWS Secret Access Key found",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Store secrets in environment variables or secrets manager"},{id:"secret-openai-key",pattern:/['"`]sk-[a-zA-Z0-9]{48,}['"`]/g,category:"sensitive-data",severity:"critical",title:"OpenAI API Key Detected",description:"Hardcoded OpenAI API key found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables for API keys",fixExample:"const apiKey = process.env.OPENAI_API_KEY"},{id:"secret-generic-password",pattern:/password\s*[:=]\s*['"`][^'"`]{4,}['"`]/gi,category:"sensitive-data",severity:"high",title:"Hardcoded Password Detected",description:"Hardcoded password found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Never hardcode passwords; use environment variables or secrets manager",fixExample:"const password = process.env.DB_PASSWORD"},{id:"secret-api-key",pattern:/api[_-]?key\s*[:=]\s*['"`][a-zA-Z0-9_\-]{16,}['"`]/gi,category:"sensitive-data",severity:"high",title:"Hardcoded API Key Detected",description:"Hardcoded API key found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables for API keys",fixExample:"const apiKey = process.env.API_KEY"},{id:"secret-jwt",pattern:/['"`]eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+['"`]/g,category:"sensitive-data",severity:"high",title:"Hardcoded JWT Token Detected",description:"Hardcoded JWT token found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Generate JWT tokens dynamically; never hardcode them"},{id:"secret-private-key",pattern:/-----BEGIN\s+(RSA|EC|OPENSSH|DSA)?\s*PRIVATE\s+KEY-----/g,category:"sensitive-data",severity:"critical",title:"Private Key Detected",description:"Private key found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Store private keys in secure key management systems, not in code"},{id:"secret-github-token",pattern:/['"`]ghp_[a-zA-Z0-9]{36}['"`]|['"`]github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59}['"`]/g,category:"sensitive-data",severity:"critical",title:"GitHub Token Detected",description:"Hardcoded GitHub personal access token found",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables or GitHub Actions secrets"},{id:"secret-slack-token",pattern:/['"`]xox[baprs]-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*['"`]/g,category:"sensitive-data",severity:"high",title:"Slack Token Detected",description:"Hardcoded Slack token found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables for Slack tokens"},{id:"secret-generic-assignment",pattern:/\b\w*(?:SECRET|secret)(?:_KEY|_key|Key)?\s*[:=]\s*['"`][^'"`]{4,}['"`]/g,category:"sensitive-data",severity:"high",title:"Generic Secret Assignment Detected",description:"Hardcoded secret assignment (SECRET_KEY, JWT_SECRET, APP_SECRET, etc.) found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables or a secrets manager instead of hardcoding secrets",fixExample:"const secretKey = process.env.SECRET_KEY"}],Ed=[{id:"path-traversal-readfile",pattern:/(?:readFile|readFileSync)\s*\([^)]*\+/g,category:"access-control",severity:"high",title:"Path Traversal via File Read",description:"File read operation with concatenated path may allow directory traversal",owaspId:"A01:2021",cweId:"CWE-22",remediation:"Validate and sanitize file paths; use path.resolve() and check against base directory",fixExample:"const safePath = path.resolve(baseDir, path.basename(userInput))"},{id:"path-traversal-pattern",pattern:/\.\.\/.*\.\.\//g,category:"access-control",severity:"medium",title:"Path Traversal Pattern Detected",description:"Suspicious path traversal pattern (../) found in code",owaspId:"A01:2021",cweId:"CWE-22",remediation:"Validate paths and ensure they resolve within expected directories"},{id:"path-traversal-writefile",pattern:/(?:writeFile|writeFileSync)\s*\([^)]*\+/g,category:"access-control",severity:"high",title:"Path Traversal via File Write",description:"File write operation with concatenated path may allow directory traversal",owaspId:"A01:2021",cweId:"CWE-22",remediation:"Validate file paths before writing; ensure path is within allowed directory"},{id:"path-traversal-createstream",pattern:/createReadStream\s*\([^)]*\+/g,category:"access-control",severity:"high",title:"Path Traversal via Stream",description:"Stream creation with concatenated path may allow directory traversal",owaspId:"A01:2021",cweId:"CWE-22",remediation:"Validate and sanitize file paths before creating streams"}],Ad=[{id:"cmd-injection-exec",pattern:/exec\s*\([^)]*\+[^)]*\)|exec\s*\(\s*`[^`]*\$\{/g,category:"injection",severity:"critical",title:"Command Injection via exec()",description:"Shell command execution with unsanitized input",owaspId:"A03:2021",cweId:"CWE-78",remediation:"Use execFile() with argument array instead of exec() with string concatenation",fixExample:'execFile("command", [arg1, arg2], callback)'},{id:"cmd-injection-spawn",pattern:/spawn\s*\(\s*[^,]+\+|spawn\s*\(\s*`[^`]*\$\{/g,category:"injection",severity:"critical",title:"Command Injection via spawn()",description:"Process spawn with potentially unsanitized command",owaspId:"A03:2021",cweId:"CWE-78",remediation:"Use spawn with command and args array; validate inputs",fixExample:'spawn("command", [sanitizedArg1, sanitizedArg2])'},{id:"cmd-injection-shell-true",pattern:/spawn\s*\([^)]+,\s*\{[^}]*shell\s*:\s*true/g,category:"injection",severity:"high",title:"Dangerous Shell Option in spawn()",description:"spawn() with shell: true can enable command injection",owaspId:"A03:2021",cweId:"CWE-78",remediation:"Avoid shell: true option; use direct command execution"}],xd=[{id:"misc-cors-wildcard",pattern:/cors\s*\(\s*\{[^}]*origin\s*:\s*['"]\*['"]/gi,category:"security-misconfiguration",severity:"medium",title:"Permissive CORS Configuration",description:"CORS allows all origins (*) which may expose sensitive data",owaspId:"A05:2021",cweId:"CWE-942",remediation:"Restrict CORS to specific trusted origins",fixExample:'cors({ origin: ["https://trusted-domain.com"] })'},{id:"misc-debug-enabled",pattern:/debug\s*[:=]\s*true|DEBUG\s*[:=]\s*['"]?true['"]?/gi,category:"security-misconfiguration",severity:"low",title:"Debug Mode Enabled",description:"Debug mode may expose sensitive information in production",owaspId:"A05:2021",cweId:"CWE-489",remediation:"Disable debug mode in production environments"},{id:"misc-ssl-disabled",pattern:/rejectUnauthorized\s*:\s*false|NODE_TLS_REJECT_UNAUTHORIZED\s*=\s*['"]?0['"]?/g,category:"security-misconfiguration",severity:"high",title:"TLS Certificate Validation Disabled",description:"Disabling TLS certificate validation exposes to MITM attacks",owaspId:"A05:2021",cweId:"CWE-295",remediation:"Always enable TLS certificate validation in production"},{id:"misc-helmet-missing",pattern:/app\.use\s*\(\s*express\s*\(\s*\)\s*\)/g,category:"security-misconfiguration",severity:"low",title:"Express App Without Security Headers",description:"Express app initialized without helmet or security headers",owaspId:"A05:2021",cweId:"CWE-693",remediation:"Use helmet middleware for security headers",fixExample:"app.use(helmet())"}],Pd=[{id:"deser-yaml-load",pattern:/yaml\.load\s*\([^)]+\)/g,category:"insecure-deserialization",severity:"high",title:"Unsafe YAML Deserialization",description:"yaml.load() can execute arbitrary code from untrusted YAML",owaspId:"A08:2021",cweId:"CWE-502",remediation:"Use yaml.safeLoad() or schema-constrained loading",fixExample:"yaml.load(content, { schema: yaml.SAFE_SCHEMA })"},{id:"deser-serialize-js",pattern:/serialize\s*\([^)]+\)|unserialize\s*\([^)]+\)/g,category:"insecure-deserialization",severity:"high",title:"Unsafe Serialization Function",description:"Node serialize/unserialize functions can execute arbitrary code",owaspId:"A08:2021",cweId:"CWE-502",remediation:"Use JSON.parse/stringify for serialization"}],kd=[{id:"auth-weak-jwt-secret",pattern:/jwt\.sign\s*\([^)]+,\s*['"][a-zA-Z0-9]{1,16}['"]/g,category:"broken-auth",severity:"high",title:"Weak JWT Secret",description:"JWT signed with a weak or short secret key",owaspId:"A07:2021",cweId:"CWE-327",remediation:"Use a strong, randomly generated secret of at least 256 bits"},{id:"auth-no-algorithm",pattern:/jwt\.verify\s*\([^)]+\)\s*(?!.*algorithm)/g,category:"broken-auth",severity:"medium",title:"JWT Without Algorithm Specification",description:"JWT verification without explicit algorithm can be exploited",owaspId:"A07:2021",cweId:"CWE-347",remediation:"Always specify the expected algorithm in JWT verification",fixExample:'jwt.verify(token, secret, { algorithms: ["HS256"] })'}],_o=[...Sd,...Rd,...Td,...Ed,...Ad,...xd,...Pd,...kd],Ei=[{id:"owasp-top-10",name:"OWASP Top 10",description:"OWASP Top 10 most critical security risks",ruleCount:45,categories:["injection","broken-auth","sensitive-data","xxe","access-control","security-misconfiguration","xss","insecure-deserialization","vulnerable-components","insufficient-logging"]},{id:"cwe-sans-25",name:"CWE/SANS Top 25",description:"Most dangerous software errors",ruleCount:38,categories:["injection","xss","access-control","sensitive-data","broken-auth"]},{id:"nodejs-security",name:"Node.js Security",description:"Node.js specific security rules",ruleCount:25,categories:["injection","xss","sensitive-data","security-misconfiguration"]},{id:"typescript-security",name:"TypeScript Security",description:"TypeScript specific security rules",ruleCount:20,categories:["injection","xss","sensitive-data"]}];k();X();Pe();X();import{execFile as f0}from"child_process";import{promisify as y0}from"util";import*as mf from"path";var Dd=y0(f0),v0=["ERROR","WARNING","INFO","CRITICAL","HIGH","MEDIUM","LOW","EXPERIMENT","INVENTORY"];async function ls(){try{return await Dd("semgrep",["--version"],{timeout:5e3}),!0}catch{return!1}}async function b0(){try{let{stdout:l}=await Dd("semgrep",["--version"],{timeout:5e3});return l.trim()}catch{return null}}async function w0(l){let t={target:l.target||".",config:l.config||"auto",exclude:l.exclude||["node_modules",".git","dist","build","coverage"],maxFileSize:l.maxFileSize||5e6,timeout:l.timeout||300,verbose:l.verbose||!1};if(!await ls())return{success:!1,status:"unavailable",findings:[],errors:["Semgrep is unavailable."]};try{let r=["scan",`--config=${t.config}`,"--json",t.verbose?"--verbose":"--quiet",`--max-target-bytes=${t.maxFileSize}`];for(let o of t.exclude)r.push(`--exclude=${o}`);r.push(t.target);let i=(t.timeout??300)*1e3,{stdout:n,stderr:s}=await Dd("semgrep",r,{timeout:i,maxBuffer:50*1024*1024,cwd:mf.isAbsolute(t.target)?void 0:process.cwd()}),a=df(n);return s&&t.verbose&&(a.diagnostics=["Semgrep emitted diagnostic output."]),a.version=await b0()||void 0,a}catch(r){let i=r;if(typeof i.stdout=="string"&&i.stdout.length>0){let n=df(i.stdout);return i.code===1&&!i.killed&&!i.signal&&n.success&&n.findings.length>0?n:{...n,success:!1,status:"failed",errors:[...n.errors,"Semgrep process did not complete successfully."]}}return{success:!1,status:"failed",findings:[],errors:["Semgrep execution failed."]}}}function df(l){try{let t=D(l);if(!t||typeof t!="object"||Array.isArray(t))throw new Error("Expected a JSON object");let e=t.results??t.findings;if(!Array.isArray(e)||t.errors!==void 0&&!Array.isArray(t.errors))throw new Error("Missing or invalid result collection");let r=m=>!!m&&typeof m=="object"&&!Array.isArray(m),i=m=>m===void 0||typeof m=="string",n=m=>m===void 0||typeof m=="string"&&v0.includes(m),s=m=>m===void 0||r(m)&&["line","col"].every(p=>m[p]===void 0||typeof m[p]=="number"&&Number.isSafeInteger(m[p])&&m[p]>0),a=m=>m===void 0||r(m)&&["cwe","owasp","references"].every(p=>m[p]===void 0||Array.isArray(m[p])&&m[p].every(h=>typeof h=="string"))&&["category","description","fix","confidence"].every(p=>i(m[p])),o=m=>{if(!r(m))return!1;let p=m.check_id??m.rule_id;if(typeof m.path!="string"||m.path.length===0||typeof p!="string"||p.length===0||!s(m.start)||!s(m.end)||!i(m.message)||!n(m.severity)||!a(m.metadata))return!1;let h=m.extra;return h===void 0||r(h)&&["message","lines","fix"].every(b=>i(h[b]))&&n(h.severity)&&a(h.metadata)},c=e.filter(o),u=e.length-c.length,d=[];return t.errors?.length&&d.push(`Semgrep reported ${t.errors.length} analysis error(s).`),u&&d.push(`Semgrep returned ${u} malformed finding(s).`),{success:d.length===0,status:d.length===0?"completed":"partial",findings:c.map(m=>({check_id:m.check_id||m.rule_id||"unknown",path:m.path,start:{line:m.start?.line||1,col:m.start?.col||1},end:{line:m.end?.line||m.start?.line||1,col:m.end?.col||1},extra:{message:m.extra?.message||m.message||"Security issue detected",severity:m.extra?.severity||m.severity||"WARNING",lines:m.extra?.lines||"",metadata:{cwe:m.extra?.metadata?.cwe||m.metadata?.cwe,owasp:m.extra?.metadata?.owasp||m.metadata?.owasp,category:m.extra?.metadata?.category||m.metadata?.category,description:m.extra?.metadata?.description||m.metadata?.description,fix:m.extra?.metadata?.fix||m.extra?.fix,references:m.extra?.metadata?.references||m.metadata?.references,confidence:m.extra?.metadata?.confidence||m.metadata?.confidence}}})),errors:d}}catch{return{success:!1,status:"failed",findings:[],errors:["Invalid Semgrep output."]}}}async function Vo(l,t,e){let r={"owasp-top-10":"p/owasp-top-ten","cwe-sans-25":"p/cwe-top-25","nodejs-security":"p/nodejs","typescript-security":"p/typescript","javascript-security":"p/javascript","react-security":"p/react","express-security":"p/express",secrets:"p/secrets","sql-injection":"p/sql-injection",xss:"p/xss","command-injection":"p/command-injection","path-traversal":"p/path-traversal"},i=t.map(n=>r[n]||`p/${n}`).join(",");return w0({...e,target:l,config:i||"auto"})}function C0(l){return{ERROR:"high",WARNING:"medium",INFO:"low",CRITICAL:"critical",HIGH:"high",MEDIUM:"medium",LOW:"low",EXPERIMENT:"low",INVENTORY:"low"}[l]||"medium"}function zo(l){return l.map(t=>({id:t.check_id,title:t.check_id.split(".").pop()||t.check_id,description:t.extra.message,severity:C0(t.extra.severity),file:t.path,line:t.start.line,column:t.start.col,snippet:t.extra.lines,cweId:t.extra.metadata?.cwe?.[0],owaspCategory:t.extra.metadata?.owasp?.[0],remediation:t.extra.metadata?.fix||"Review and fix the identified security issue",references:t.extra.metadata?.references||[]}))}var S0=A.create("security-compliance/sast-scanner"),Ai=class{config;memory;llmRouter;activeScans;constructor(t,e,r,i){this.config=t,this.memory=e,this.llmRouter=r,this.activeScans=i||new Map}async scanFiles(t){return this.scanWithRules(t,this.config.defaultRuleSets)}async scanWithRules(t,e){let r=w();try{if(t.length===0)return g(new Error("No files provided for scanning"));let i=Date.now(),n=Ei.filter(R=>e.includes(R.id));if(n.length===0)return g(new Error(`No valid rule sets found: ${e.join(", ")}`));if(e.filter(R=>!Ei.some(I=>I.id===R)).length>0)return g(new Error("Unknown rule sets requested; no scan executed."));this.activeScans.set(r,"running");let a=[...new Set(t.map(R=>dt.resolve(R.value)))],o=a.map(R=>fe.create(R)),[c,u]=await Promise.all([this.runPatternScanning(o,n),this.runSemgrepScanning(o,e)]),d=this.mergeVulnerabilities(c.vulnerabilities,u.vulnerabilities),m=c.files.filter(R=>R.status==="analyzed"),p=m.reduce((R,I)=>R+I.analyzedLines,0),h=Date.now()-i,b=this.calculateSummary(d,m.length,h),v=this.getApplicablePatterns(n),C=m.length>0?[...new Set(v.map(R=>R.id))]:[],S={filesScanned:m.length,linesScanned:p,rulesApplied:C.length,rulesAppliedScope:"built-in-patterns"},T={id:"patterns",requested:!0,required:!0,scope:"requested-files",status:m.length===o.length?"completed":m.length>0?"partial":"failed",analyzedFiles:m.length,ruleIds:C,rulesetDigest:pf("sha256").update(JSON.stringify(v.map(R=>({id:R.id,category:R.category,expression:R.pattern.source,flags:R.pattern.flags})))).digest("hex"),ruleCoverage:"known",errors:c.files.filter(R=>R.status==="unreadable").map(R=>R.reason||"File unreadable"),limitations:["Built-in pattern matching covers supported JavaScript and TypeScript inputs only."]},x={schemaVersion:1,completeness:m.length===o.length?"complete":m.length>0?"partial":"none",requestedFiles:o.length,requestedPaths:a,duplicateInputs:t.length-o.length,files:c.files,engines:[T,u.evidence],limitations:[...T.limitations,...u.evidence.limitations]};return await this.storeScanResults(r,"sast",d,b),this.activeScans.set(r,"completed"),f({scanId:r,vulnerabilities:d,summary:b,coverage:S,evidence:x})}catch(i){return this.activeScans.set(r,"failed"),g(y(i))}}async runPatternScanning(t,e){let r=[],i=[];for(let n of t){let s=await this.analyzeFile(n,e);r.push(...s.vulnerabilities),i.push(s.evidence)}return{vulnerabilities:r,files:i}}async runSemgrepScanning(t,e){let r=this.resolveTargetDirectory(t),i={id:"semgrep",requested:!!this.config.enableSemgrep,required:!1,status:"disabled",scope:"parent-directory",target:r,ruleCoverage:"unknown",errors:[],limitations:[]};if(!this.config.enableSemgrep)return{vulnerabilities:[],evidence:i};let n=["Optional Semgrep scans a parent directory; requested-file membership and executed-rule coverage are unverified."];try{if(!await ls())return{vulnerabilities:[],evidence:{...i,status:"unavailable",limitations:n,errors:["Semgrep is unavailable."]}};let s=await Vo(r,e),a={...i,status:s.status||"unverified",version:s.version,errors:s.errors.length>0?[`Semgrep reported ${s.errors.length} execution error(s).`]:[],limitations:[...n,...s.diagnostics??[],...s.status?[]:["Legacy Semgrep adapter returned no execution disposition."]]};return{vulnerabilities:zo(s.findings).map(u=>({id:w(),cveId:void 0,title:u.title,description:`[semgrep] ${u.description}`,severity:u.severity,category:this.mapSemgrepCategory(u.owaspCategory),location:{file:u.file,line:u.line,column:u.column,snippet:u.snippet},remediation:{description:u.remediation,estimatedEffort:"moderate",automatable:!1},references:u.references})),evidence:a}}catch{return{vulnerabilities:[],evidence:{...i,status:"failed",limitations:n,errors:["Semgrep execution failed."]}}}}resolveTargetDirectory(t){if(t.length===0)return process.cwd();let e=dt.dirname(dt.resolve(t[0].value));for(let r of t.slice(1)){let i=dt.dirname(dt.resolve(r.value));for(;i!==e&&!i.startsWith(e.endsWith(dt.sep)?e:e+dt.sep);){let n=dt.dirname(e);if(n===e)break;e=n}}return e}mapSemgrepCategory(t){if(!t)return"injection";let e={A01:"access-control",A02:"sensitive-data",A03:"injection",A04:"insecure-deserialization",A05:"security-misconfiguration",A06:"vulnerable-components",A07:"broken-auth",A08:"insecure-deserialization",A09:"insufficient-logging",A10:"xxe"};for(let[r,i]of Object.entries(e))if(t.startsWith(r))return i;return"injection"}mergeVulnerabilities(t,e){if(e.length===0)return t;if(t.length===0)return e;let r=new Set(t.map(n=>`${n.location.file}:${n.location.line??0}:${n.category}`)),i=e.filter(n=>!r.has(`${n.location.file}:${n.location.line??0}:${n.category}`));return[...t,...i]}async getAvailableRuleSets(){let t=await this.memory.get("security:custom-rule-sets");return[...Ei,...t||[]]}async checkFalsePositive(t){try{if(!this.config.enableFalsePositiveDetection)return f({isFalsePositive:!1,confidence:0,reason:"False positive detection is disabled"});let e=await this.analyzeFalsePositive(t);return await this.memory.set(`security:fp-check:${t.id}`,{vulnerability:t,analysis:e},{namespace:"security-compliance",ttl:86400*30}),f(e)}catch(e){return g(y(e))}}getApplicablePatterns(t){let e=new Set(t.flatMap(r=>r.categories));return _o.filter(r=>e.has(r.category))}async analyzeFile(t,e){let r=[],i=t.value,n={path:i,engineId:"patterns",readLines:0,analyzedLines:0},s,a;try{let m=await Hm(i,{outsideRoot:"allow"});a=pf("sha256").update(m).digest("hex"),s=m.toString("utf8")}catch(m){let p=m.code;return{vulnerabilities:[],evidence:{...n,status:"unreadable",reason:typeof p=="string"&&/^[A-Z0-9_]{1,32}$/.test(p)?p:"File unreadable"}}}let o=s.split(`
2881
+ `).filter(o=>o.startsWith("Test")),i=r.length,n=r.filter(o=>o.includes("E2E")).length,s=r.filter(o=>!o.includes("E2E")&&o.includes("Integration")).length,a=i-s-n;return{total:i,unit:a,integration:s,e2e:n,source:"go"}}catch{return{total:0,unit:0,integration:0,e2e:0,source:"go"}}}function Lr(l,t){let e=0,r=0,i=0,n=0;function s(a){if(!Ee(a))return;let o=vT(a,{withFileTypes:!0});for(let c of o){let u=ye(a,c.name);if(c.isDirectory()){if(t.excludeDirs.includes(c.name)||(t.excludeRootDirs??[]).includes(c.name)&&(a===l||Ee(ye(a,Xr))))continue;s(u)}else if(c.isFile()&&kT(c.name)){let d=ST(c.name).toLowerCase(),m=0;[".ts",".tsx",".js",".jsx",".mjs"].includes(d)?m=Jh(u):d===".py"?m=DT(u):d===".rs"?m=IT(u):d===".go"&&(m=MT(u)),e+=m;let p=u.toLowerCase();p.includes("e2e")||p.includes("end-to-end")?n+=m:p.includes("integration")?i+=m:r+=m}}}return s(l),{total:e,unit:r,integration:i,e2e:n,source:"fallback"}}function kT(l){let t=l.toLowerCase();return t.includes(".test.")||t.includes(".spec.")||t.includes("_test.")||t.startsWith("test_")||t.endsWith("_test.ts")||t.endsWith("_test.js")||t.endsWith("_test.py")||t.endsWith("_test.go")||t.endsWith("_test.rs")}function Jh(l){try{let t=tr(l,"utf-8"),e=t.match(/\bit\s*\(/g)||[],r=t.match(/\btest\s*\(/g)||[];return e.length+r.length}catch{return 0}}function DT(l){try{return(tr(l,"utf-8").match(/\bdef\s+test_\w+\s*\(/g)||[]).length}catch{return 0}}function IT(l){try{let t=tr(l,"utf-8"),e=t.match(/#\[test\]/g)||[],r=t.match(/#\[tokio::test\]/g)||[],i=t.match(/#\[async_std::test\]/g)||[];return e.length+r.length+i.length}catch{return 0}}function MT(l){try{return(tr(l,"utf-8").match(/\bfunc\s+Test\w+\s*\(/g)||[]).length}catch{return 0}}function Lo(l,t,e){let r=l,i=0,n=0;return(Ee(ye(e,"tests","integration"))||Ee(ye(e,"test","integration"))||Ee(ye(e,"__tests__","integration")))&&(i=Math.floor(l*.2),r-=i),(Ee(ye(e,"tests","e2e"))||Ee(ye(e,"test","e2e"))||Ee(ye(e,"e2e"))||Ee(ye(e,"cypress")))&&(n=Math.floor(l*.1),r-=n),{total:l,unit:Math.max(0,r),integration:i,e2e:n,source:t}}var yd=class{config;cache=new Map;cacheHits=0;cacheMisses=0;constructor(t={}){this.config={...Fr,...t}}async collectAll(t){let e=`all:${t}`;if(this.config.enableCache){let u=this.getFromCache(e);if(u)return u}let[r,i,n]=await Promise.all([this.countLOC(t),this.countTests(t),this.countPatterns(t,this.detectLanguage(t))]),s=[];r.source!=="fallback"&&s.push(r.source),i.source!=="fallback"&&s.push(i.source);let a=r.source==="fallback"?"approximate":"accurate",o=i.source==="fallback"?"approximate":"accurate",c={loc:r,tests:i,patterns:n,collectedAt:new Date,toolsUsed:s,accuracy:{loc:a,tests:o,overall:a==="accurate"&&o==="accurate"?"accurate":"approximate"}};return this.config.enableCache&&this.setInCache(e,c),c}async countLOC(t){let e=`loc:${t}`;if(this.config.enableCache){let i=this.getFromCache(e);if(i)return i}let r=await dd(t,this.config);return this.config.enableCache&&this.setInCache(e,r),r}async countTests(t){let e=`tests:${t}`;if(this.config.enableCache){let i=this.getFromCache(e);if(i)return i}let r=await hd(t,this.config);return this.config.enableCache&&this.setInCache(e,r),r}async countPatterns(t,e){let r=`patterns:${t}:${e}`;if(this.config.enableCache){let n=this.getFromCache(r);if(n)return n}let i=this.countPatternsInternal(t,e);return this.config.enableCache&&this.setInCache(r,i),i}async checkTools(){let[t,e]=await Promise.all([md(),fd(process.cwd())]);return[...t,...e]}clearCache(){this.cache.clear(),this.cacheHits=0,this.cacheMisses=0}getCacheStats(){return{hits:this.cacheHits,misses:this.cacheMisses,size:this.cache.size}}getFromCache(t){let e=this.cache.get(t);return e&&Date.now()-e.timestamp<this.config.cacheTTL?(this.cacheHits++,e.data):(this.cacheMisses++,null)}setInCache(t,e){this.cache.set(t,{data:e,timestamp:Date.now()})}detectLanguage(t){return rr(ir(t,"Cargo.toml"))?"rust":rr(ir(t,"go.mod"))?"go":rr(ir(t,"pyproject.toml"))||rr(ir(t,"requirements.txt"))?"python":rr(ir(t,"package.json"))?rr(ir(t,"tsconfig.json"))?"typescript":"javascript":"unknown"}countPatternsInternal(t,e){let r={},i=0,n=0,s=0,a=0,o=this.getPatternsForLanguage(e),c=new Set(this.config.excludeDirs),u=new Set(this.config.excludeRootDirs??[]);function d(m){if(!rr(m))return;let p=LT(m,{withFileTypes:!0});for(let h of p){let b=ir(m,h.name);if(h.isDirectory()){if(c.has(h.name)||u.has(h.name)&&(m===t||rr(ir(m,Xr))))continue;d(b)}else if(h.isFile()){let v=$T(h.name).toLowerCase();if(OT(v,e)){let C=NT(b,o);(C.unwraps>0||C.unsafeBlocks>0||C.todoComments>0||C.consoleStatements>0)&&(r[b]=C,i+=C.unwraps,n+=C.unsafeBlocks,s+=C.todoComments,a+=C.consoleStatements)}}}}return d(t),{unwraps:i,unsafeBlocks:n,todoComments:s,consoleStatements:a,byFile:r}}getPatternsForLanguage(t){switch(t){case"rust":return{unwrap:/\.unwrap\s*\(/g,unsafe:/\bunsafe\s*\{/g,todo:/\/\/\s*(TODO|FIXME|HACK|XXX)[\s:]/gi,console:/\b(println!|print!|eprintln!|eprint!|dbg!)\s*\(/g};case"python":return{unwrap:null,unsafe:null,todo:/#\s*(TODO|FIXME|HACK|XXX)[\s:]/gi,console:/\b(print)\s*\(/g};case"go":return{unwrap:null,unsafe:/\bunsafe\./g,todo:/\/\/\s*(TODO|FIXME|HACK|XXX)[\s:]/gi,console:/\b(fmt\.Print|fmt\.Printf|fmt\.Println|log\.Print|log\.Printf|log\.Println)\s*\(/g};default:return{unwrap:null,unsafe:null,todo:/\/\/\s*(TODO|FIXME|HACK|XXX)[\s:]/gi,console:/\bconsole\.(log|debug|info|warn|error)\s*\(/g}}}};function OT(l,t){switch(t){case"rust":return l===".rs";case"python":return[".py",".pyw"].includes(l);case"go":return l===".go";case"typescript":return[".ts",".tsx"].includes(l);case"javascript":return[".js",".jsx",".mjs",".cjs"].includes(l);default:return[".ts",".tsx",".js",".jsx",".py",".rs",".go"].includes(l)}}function NT(l,t){try{let e=FT(l,"utf-8");return{unwraps:t.unwrap?(e.match(t.unwrap)||[]).length:0,unsafeBlocks:t.unsafe?(e.match(t.unsafe)||[]).length:0,todoComments:(e.match(t.todo)||[]).length,consoleStatements:(e.match(t.console)||[]).length}}catch{return{unwraps:0,unsafeBlocks:0,todoComments:0,consoleStatements:0}}}function Yh(l={}){return new yd(l)}_();k();he();fr();k();fr();k();fr();k();fr();k();he();fr();k();var u3=300*1e3;wt();wt();_();wt();var R3=A.create("temporal-compression");k();_();Ki();var P3=A.create("ruvector-server-client");Ib();import{Buffer as JT}from"buffer";var $3=JT.from("COGCNTNR","ascii");wt();wt();var XT={capacity:1e4,minCoherenceThreshold:.3,highTierThreshold:.8,mediumTierThreshold:.5,highTierWeight:3,mediumTierWeight:1.5,lowTierWeight:1},vd=class{config;cusumDetector;buffer;totalSeen=0;totalAdmitted=0;totalRejected=0;totalEvicted=0;totalSampled=0;constructor(t){this.config={...XT,...t},this.cusumDetector=new Zc({threshold:this.config.cusumConfig?.threshold??5,slack:this.config.cusumConfig?.slack??.5,resetOnAlarm:!1,warmupSamples:20}),this.buffer=[]}admit(t,e,r){this.totalSeen++;let i=this.getEffectiveThreshold();if(r<i)return this.totalRejected++,!1;let n=this.classifyTier(r),s={id:t,data:e,coherenceScore:r,tier:n,admittedAt:Date.now(),replayCount:0};if(this.buffer.length<this.config.capacity)return this.buffer.push(s),this.totalAdmitted++,!0;let a=Math.floor(Math.random()*this.totalAdmitted),o=this.getTierWeight(n),c=Math.floor(a/o);if(c<this.config.capacity){let u=this.selectEvictionTarget(c);return this.buffer[u]=s,this.totalEvicted++,this.totalAdmitted++,!0}return this.totalRejected++,!1}sample(t,e){if(this.buffer.length===0)return[];let r=e!==void 0?this.buffer.filter(a=>a.coherenceScore>=e):this.buffer;if(r.length===0)return[];if(t>=r.length){let a=[...r];for(let o of a)o.replayCount++;return this.totalSampled+=a.length,a}let i=r.map(a=>this.getTierWeight(a.tier)),n=[],s=new Set;for(;n.length<t&&s.size<r.length;){let a=0;for(let u=0;u<r.length;u++)s.has(u)||(a+=i[u]);if(a<=0)break;let o=Math.random()*a,c=-1;for(let u=0;u<r.length;u++)if(!s.has(u)&&(o-=i[u],o<=0)){c=u;break}if(c===-1){for(let u=0;u<r.length;u++)if(!s.has(u)){c=u;break}}c>=0&&(s.add(c),r[c].replayCount++,n.push(r[c]))}return this.totalSampled+=n.length,n}size(){return this.buffer.length}getStats(){let t={high:0,medium:0,low:0};for(let e of this.buffer)t[e.tier]++;return{size:this.buffer.length,capacity:this.config.capacity,totalAdmitted:this.totalAdmitted,totalRejected:this.totalRejected,totalEvicted:this.totalEvicted,tierCounts:t,totalSampled:this.totalSampled}}getByTier(t){return this.buffer.filter(e=>e.tier===t)}clear(){this.buffer.length=0,this.totalSeen=0,this.totalAdmitted=0,this.totalRejected=0,this.totalEvicted=0,this.totalSampled=0,this.cusumDetector.reset()}getCusumState(t){return this.cusumDetector.getState(t)}observeCoherence(t,e){return this.cusumDetector.update(t,e)}classifyTier(t){return t>=this.config.highTierThreshold?"high":t>=this.config.mediumTierThreshold?"medium":"low"}getTierWeight(t){switch(t){case"high":return this.config.highTierWeight;case"medium":return this.config.mediumTierWeight;case"low":return this.config.lowTierWeight}}getEffectiveThreshold(){let t=["retrieve","write","learn","act"],e=!1;for(let r of t)if(this.cusumDetector.getState(r).driftDetected){e=!0;break}return e?Math.min(this.config.minCoherenceThreshold*1.5,.9):this.config.minCoherenceThreshold}selectEvictionTarget(t){let e=Math.min(10,this.buffer.length),r=Math.max(0,t-Math.floor(e/2)),i=Math.min(this.buffer.length,r+e),n=t,s=this.buffer[t].coherenceScore;for(let a=r;a<i;a++)this.buffer[a].coherenceScore<s&&(s=this.buffer[a].coherenceScore,n=a);return n}};he();var os=A.create("code-intelligence/gnn");async function Xh(l,t,e){try{for(let r of e)try{let i=await t.readFile(r);if(i.success&&i.value){let s={vector:await Zh(r,i.value),dimension:384,namespace:"code",text:i.value.slice(0,1e3),timestamp:Date.now(),quantization:"none",metadata:{path:r}};l.addEmbedding(s)}}catch(i){os.error(`Failed to index ${r}:`,i instanceof Error?i:void 0)}os.info(`Indexed ${e.length} code embeddings`)}catch(r){os.error("Failed to index code embeddings:",r instanceof Error?r:void 0)}}async function Zh(l,t){let e=[],r=l.split(".").pop(),i=$o(r||"");e.push(i%1e3/1e3),e.push(Math.min(1,t.length/1e4));let n=t.match(/function\s+\w+/g)||[],s=t.match(/class\s+\w+/g)||[];e.push(Math.min(1,(n.length+s.length)/50));let a=t.match(/import\s+.*from|require\s*\(/g)||[];e.push(Math.min(1,a.length/20));let o=t.match(/for\s*\(|while\s*\(/g)||[],c=t.match(/if\s*\(/g)||[];e.push(Math.min(1,(o.length+c.length)/30));let u=t.match(/\/\/.*|\/\*[\s\S]*?\*\//g)||[];e.push(Math.min(1,u.length/50));let d=$o(t.slice(0,500));for(let m=e.length;m<384;m++)e.push(d*(m+1)%1e4/1e4);return e.slice(0,384)}async function ef(l,t,e){try{for(let r of e.changedFiles){let i=await t.readFile(r);if(i.success&&i.value){let s={vector:await Zh(r,i.value),dimension:384,namespace:"code",text:i.value.slice(0,1e3),timestamp:Date.now(),quantization:"none",metadata:{path:r}},a=l.search(s,{limit:5,namespace:"code"});os.info(`Found ${a.length} semantically similar files to ${r}`)}}}catch(r){os.error("Failed to enhance impact analysis:",r instanceof Error?r:void 0)}}function $o(l){let t=0;for(let e=0;e<l.length;e++)t=(t<<5)-t+l.charCodeAt(e),t=t|0;return Math.abs(t)}_();k();var ht=A.create("code-intelligence/hypergraph");async function tf(l,t,e){try{let r=await l.findUntestedFunctions();if(ht.info(`[CodeIntelligence] Found ${r.length} untested functions via hypergraph`),e){let i=N("code-intelligence.UntestedFunctionsFound","code-intelligence",{count:r.length,functions:r.slice(0,10).map(n=>({name:n.name,file:n.filePath,complexity:n.complexity}))});await t.publish(i)}return{success:!0,value:r}}catch(r){let i=y(r);return ht.error("Failed to find untested functions:"),g(i)}}async function rf(l,t,e,r){if(t.length===0)return{success:!0,value:[]};try{let i=await l.findImpactedTests(t);if(ht.info(`[CodeIntelligence] Found ${i.length} impacted tests for ${t.length} changed files via hypergraph`),r){let n=N("code-intelligence.ImpactedTestsFound","code-intelligence",{changedFiles:t,testCount:i.length,tests:i.slice(0,10).map(s=>({name:s.name,file:s.filePath}))});await e.publish(n)}return{success:!0,value:i}}catch(i){let n=y(i);return ht.error("Failed to find impacted tests:"),g(n)}}async function nf(l,t,e,r){try{let i=await l.findCoverageGaps(t);if(ht.info(`[CodeIntelligence] Found ${i.length} coverage gaps (functions with <=${t}% coverage) via hypergraph`),r){let n=N("code-intelligence.CoverageGapsFound","code-intelligence",{maxCoverage:t,gapCount:i.length,gaps:i.slice(0,10).map(s=>({name:s.name,file:s.filePath,coverage:s.coverage,complexity:s.complexity}))});await e.publish(n)}return{success:!0,value:i}}catch(i){let n=y(i);return ht.error("Failed to find coverage gaps:"),g(n)}}async function sf(l,t,e,r,i){try{ht.info(`[CodeIntelligence] Building hypergraph from ${t.files.length} indexed files`);let n=await l.buildFromIndexResult(t);if(ht.info(`[CodeIntelligence] Hypergraph built: ${n.nodesCreated} nodes created, ${n.nodesUpdated} nodes updated, ${n.edgesCreated} edges created (${n.durationMs}ms)`),await e.set("hypergraph:build:latest",{timestamp:new Date().toISOString(),...n},{namespace:"code-intelligence",persist:!0}),i){let s=N("code-intelligence.HypergraphBuilt","code-intelligence",{nodesCreated:n.nodesCreated,nodesUpdated:n.nodesUpdated,edgesCreated:n.edgesCreated,durationMs:n.durationMs,errorCount:n.errors.length});await r.publish(s)}return{success:!0,value:n}}catch(n){let s=y(n);return ht.error("Failed to build hypergraph:"),g(s)}}async function af(l,t,e){try{let r=await l.findImpactedTests(t.changedFiles),i=new Set([...e.impactedTests,...r.map(a=>a.filePath||a.name)]),n=e.riskLevel;if(r.length>e.impactedTests.length){let a=e.directImpact.length+e.transitiveImpact.length;a>10&&i.size>20?n="critical":a>5&&i.size>10&&(n="high")}let s=[...e.recommendations];return r.length>0&&s.push(`Hypergraph analysis found ${r.length} additional test(s) to run`),{...e,impactedTests:Array.from(i),riskLevel:n,recommendations:s}}catch(r){return ht.error("Failed to enhance impact with hypergraph:",r instanceof Error?r:void 0),e}}_();var Ti=A.create("code-intelligence/consensus");async function of(l,t,e,r){let i=W({id:w(),type:"code-pattern-detection",confidence:t,description:`Verify code pattern: ${l.name} (${l.type}) at ${l.location}`,payload:l,detectedBy:"code-intelligence-coordinator",severity:t>.9?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Ti.info(`Code pattern '${l.name}' verified by consensus`),!0):(Ti.warn(`Code pattern '${l.name}' NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}async function cf(l,t,e,r){let i=W({id:w(),type:"impact-analysis",confidence:t,description:`Verify impact analysis: ${l.changedFiles.length} files, risk=${l.riskLevel}, ${l.impactedTests.length} tests`,payload:l,detectedBy:"code-intelligence-coordinator",severity:l.riskLevel==="critical"||l.riskLevel==="high"?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Ti.info(`Impact analysis verified by consensus (risk=${l.riskLevel})`),!0):(Ti.warn(`Impact analysis NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}async function lf(l,t,e,r){let i=W({id:w(),type:"dependency-mapping",confidence:t,description:`Verify dependency: ${l.source} -> ${l.targets.length} targets (${l.type})`,payload:l,detectedBy:"code-intelligence-coordinator",severity:t>.85?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(Ti.info("Dependency mapping verified by consensus"),!0):(Ti.warn(`Dependency mapping NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}var h0={maxConcurrentWorkflows:5,defaultTimeout:12e4,publishEvents:!0,enableIncrementalIndex:!0,enableGNN:!0,enableSONA:!0,enableMetricCollector:!0,enableHypergraph:!0,enableMinCutAwareness:!0,topologyHealthThreshold:.5,pauseOnCriticalTopology:!1,enableConsensus:!0,consensusThreshold:.7,consensusStrategy:"weighted",consensusMinModels:2},ce=A.create("code-intelligence"),bd=100,cs=class extends re{constructor(e,r,i,n={},s){let a={...h0,...n};super(e,"code-intelligence",a,{verifyFindingTypes:["code-pattern-detection","impact-analysis","dependency-mapping"]});this.memory=r;this.agentCoordinator=i;this.knowledgeGraph=new Vt({memory:r,llmRouter:s}),this.semanticAnalyzer=new Mr(r),this.impactAnalyzer=new on(r,this.knowledgeGraph),this.fileReader=new st({projectRoot:Me()}),this.productFactorsBridge=new Io(e,r,{publishEvents:this.config.publishEvents,relationshipResolver:zh(o=>new Vt({memory:r,llmRouter:s},{basePath:o}))})}memory;agentCoordinator;knowledgeGraph;semanticAnalyzer;impactAnalyzer;fileReader;gnnIndex;sonaEngine;rlInitialized=!1;metricCollector;hypergraph;hypergraphDb;productFactorsBridge;async onInitialize(){this.subscribeToEvents(),await this.loadWorkflowState(),(this.config.enableGNN||this.config.enableSONA)&&await this.initializeRLIntegrations(),this.config.enableMetricCollector&&(this.metricCollector=Yh({enableCache:!0,cacheTTL:3e5}),ce.info("MetricCollector initialized for real code metrics")),this.config.enableHypergraph&&await this.initializeHypergraph(),await this.productFactorsBridge.initialize()}async initializeHypergraph(){try{let{openDatabase:e}=await import("./safe-db-ZS2QKANY.js"),r=await import("fs"),i=await import("path"),{findProjectRoot:n}=await import("./unified-memory-FZ5K2C7W.js"),s=n(),a=process.env.AQE_MEMORY_BACKEND==="memory",o=a?":memory:":this.config.hypergraphDbPath||i.join(s,".agentic-qe","memory.db");if(!a){let c=i.dirname(o);r.existsSync(c)||r.mkdirSync(c,{recursive:!0})}this.hypergraphDb=e(o),this.hypergraph=await Qs({db:this.hypergraphDb,maxTraversalDepth:10,maxQueryResults:1e3,enableVectorSearch:this.config.enableGNN}),ce.info(`Hypergraph Engine initialized at ${o}`)}catch(e){let r=e instanceof Error?e.message:String(e);if(ce.warn(`Hypergraph Engine initialization failed (feature degraded): ${r}`),this.hypergraph=void 0,this.hypergraphDb=void 0,this.config.publishEvents){let i=N("code-intelligence.HypergraphDegraded","code-intelligence",{reason:r});this.eventBus.publish(i).catch(()=>{})}}}async initializeRLIntegrations(){try{if(this.config.enableGNN&&(ol(),this.gnnIndex=zs.getInstance("code-intelligence",{M:16,efConstruction:200,efSearch:50,dimension:384,metric:"cosine"}),this.gnnIndex.initializeIndex("code"),this.gnnIndex.initializeIndex("test")),this.config.enableSONA)try{this.sonaEngine=await De({domain:"code-intelligence",loadOnInit:!0,autoSaveInterval:6e4,maxPatterns:1e4,minConfidence:.6}),ce.info("PersistentSONAEngine initialized for code pattern learning")}catch(e){ce.error("Failed to initialize PersistentSONAEngine:",e instanceof Error?e:void 0),this.sonaEngine=void 0}this.rlInitialized=!0}catch(e){throw ce.error("Failed to initialize RL integrations:",e instanceof Error?e:void 0),e}}async onDispose(){if(await this.saveWorkflowState(),this.gnnIndex&&zs.closeInstance("code-intelligence"),this.sonaEngine)try{await this.sonaEngine.close(),this.sonaEngine=void 0}catch(e){ce.error("Error closing SONA engine:",e instanceof Error?e:void 0)}if(this.hypergraphDb){try{this.hypergraphDb.close()}catch(e){ce.error("Error closing hypergraph database:",e instanceof Error?e:void 0)}this.hypergraphDb=void 0}this.hypergraph=void 0,await this.productFactorsBridge.dispose()}getActiveWorkflows(){return super.getActiveWorkflows()}async index(e){let r=cp(e.paths,"paths","Invalid index payload",Number.POSITIVE_INFINITY);if(!r.success)return r;let i=w();try{if(this.startWorkflow(i,"index"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&ce.warn("Topology degraded, using conservative strategy"),this.minCutMixin.shouldPauseOperations())return g(new Error("Indexing paused: topology is in critical state"));if(!this.agentCoordinator.canSpawn())return g(new Error("Agent limit reached, cannot spawn indexing agents"));let n=await this.spawnIndexerAgent(i,e);if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);this.addAgentToWorkflow(i,n.value),this.updateWorkflowProgress(i,10);let s=await this.knowledgeGraph.index(e);if(s.success&&s.value.filesIndexed===0&&e.paths.length>0){let a=lp(e.paths.length,s.value.skipped??[],s.value.errors);return this.failWorkflow(i,a.message),await this.agentCoordinator.stop(n.value),g(a)}if(s.success){this.updateWorkflowProgress(i,40);let a=new Set([...(s.value.skipped??[]).map(c=>c.path),...s.value.errors.map(c=>c.file)]),o=e.paths.filter(c=>!a.has(c));if(this.config.enableGNN&&this.gnnIndex&&o.length>0&&await this.indexCodeEmbeddings(o),this.updateWorkflowProgress(i,60),this.config.enableMetricCollector&&this.metricCollector&&o.length>0){let c=this.getProjectRootFromPaths(o,e.target);c?await this.collectProjectMetrics(c):ce.debug("Skipping project metrics: no project root resolved (filesystem root or no paths)")}if(this.updateWorkflowProgress(i,70),o.length>0){let c=await this.indexForSearch(o);c.warnings.length>0&&(s.value.warnings=[...s.value.warnings??[],...c.warnings])}if(this.updateWorkflowProgress(i,85),this.config.enableHypergraph&&this.hypergraph&&o.length>0)try{let c=await this.buildCodeIndexResultFromPaths(o);if(c.files.length>0){await this.hypergraph.buildFromIndexResult(c),ce.info(`Hypergraph rebuilt from ${c.files.length} indexed files`);try{let u=await this.hypergraph.synthesizeTestCoverage();(u.testsTagged>0||u.coversCreated>0)&&ce.info(`Test coverage synthesized: tests_tagged=${u.testsTagged} covers_created=${u.coversCreated}`)}catch(u){ce.warn(`Test coverage synthesis skipped: ${u instanceof Error?u.message:u}`)}}}catch(c){ce.warn(`Hypergraph rebuild skipped: ${c instanceof Error?c.message:c}`)}this.updateWorkflowProgress(i,100),this.completeWorkflow(i),this.config.publishEvents&&await this.publishKnowledgeGraphUpdated(s.value)}else this.failWorkflow(i,s.error.message);return await this.agentCoordinator.stop(n.value),s}catch(n){let s=y(n);return this.failWorkflow(i,s.message),g(s)}}async search(e){let r=w();try{this.startWorkflow(r,"search");let i=await this.spawnSearchAgent(r,e);if(i.success&&this.addAgentToWorkflow(r,i.value),this.config.enableSONA&&this.sonaEngine){let s=await this.adaptSearchPattern(e);s.success&&s.pattern&&ce.info(`Adapted search pattern with ${s.similarity.toFixed(3)} similarity`)}let n=await this.semanticAnalyzer.search(e);return n.success?(this.completeWorkflow(r),this.config.publishEvents&&await this.publishSemanticSearchCompleted(e,n.value)):this.failWorkflow(r,n.error.message),i.success&&await this.agentCoordinator.stop(i.value),n}catch(i){let n=y(i);return this.failWorkflow(r,n.message),g(n)}}async analyzeImpact(e){let r=w();try{if(this.startWorkflow(r,"impact"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&ce.warn("Topology degraded, using conservative impact analysis"),this.minCutMixin.shouldPauseOperations())return g(new Error("Impact analysis paused: topology is in critical state"));let i=await this.spawnImpactAnalyzerAgent(r,e);if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);this.addAgentToWorkflow(r,i.value),this.updateWorkflowProgress(r,20),this.config.enableGNN&&this.gnnIndex&&await this.enhanceImpactAnalysisWithGNN(e);let n=await this.impactAnalyzer.analyzeImpact(e);if(n.success){this.updateWorkflowProgress(r,80);let s=n.value;return this.config.enableHypergraph&&this.hypergraph&&(s=await this.enhanceImpactWithHypergraph(e,n.value)),this.updateWorkflowProgress(r,100),this.completeWorkflow(r),this.config.enableSONA&&this.sonaEngine&&await this.storeImpactPattern(e,s),this.config.publishEvents&&await this.publishImpactAnalysisCompleted(e,s),{success:!0,value:s}}else this.failWorkflow(r,n.error.message);return await this.agentCoordinator.stop(i.value),n}catch(i){let n=y(i);return this.failWorkflow(r,n.message),g(n)}}async mapDependencies(e){let r=w();try{this.startWorkflow(r,"dependency");let i=await this.knowledgeGraph.mapDependencies(e);return i.success?this.completeWorkflow(r):this.failWorkflow(r,i.error.message),i}catch(i){let n=y(i);return this.failWorkflow(r,n.message),g(n)}}async queryKG(e){let r=w();try{this.startWorkflow(r,"query");let i=await this.knowledgeGraph.query(e);return i.success?this.completeWorkflow(r):this.failWorkflow(r,i.error.message),i}catch(i){let n=y(i);return this.failWorkflow(r,n.message),g(n)}}async indexCodeEmbeddings(e){!this.gnnIndex||!this.rlInitialized||await Xh(this.gnnIndex,this.fileReader,e)}async enhanceImpactAnalysisWithGNN(e){!this.gnnIndex||!this.rlInitialized||await ef(this.gnnIndex,this.fileReader,e)}async adaptSearchPattern(e){if(!this.sonaEngine||!this.rlInitialized)return{success:!1,pattern:null,similarity:0};try{let r=Array.isArray(e.filters)?e.filters.find(s=>s.field==="language")?.value:void 0,i={id:`search-${e.type}`,features:[e.query.length,e.type==="semantic"?1:0,e.type==="exact"?1:0,r==="typescript"?1:0,r==="javascript"?1:0]},n=await this.sonaEngine.adaptPattern(i,"coverage-optimization","code-intelligence");return{success:n.success,pattern:n.pattern,similarity:n.similarity}}catch(r){return ce.error("Failed to adapt search pattern:",r instanceof Error?r:void 0),{success:!1,pattern:null,similarity:0}}}async storeImpactPattern(e,r){if(!(!this.sonaEngine||!this.rlInitialized))try{let i={id:`impact-${e.changedFiles.join(",")}`,features:[e.changedFiles.length,e.depth||1,r.directImpact.length,r.transitiveImpact.length,r.impactedTests.length,r.riskLevel==="high"?1:r.riskLevel==="medium"?.5:0]},n={type:"analyze-impact",value:r.riskLevel},s={reward:r.riskLevel==="high"?.8:r.riskLevel==="medium"?.5:.3,success:r.impactedTests.length>0,quality:(r.directImpact.length+r.transitiveImpact.length)/100},a=this.sonaEngine.createPattern(i,n,s,"coverage-optimization","code-intelligence",{changedFiles:e.changedFiles,impactCount:r.directImpact.length+r.transitiveImpact.length,testImpactCount:r.impactedTests.length});ce.info(`Stored impact pattern ${a.id}`)}catch(i){ce.error("Failed to store impact pattern:",i instanceof Error?i:void 0)}}hashCode(e){return $o(e)}async spawnIndexerAgent(e,r){let i={name:`kg-indexer-${e.slice(0,8)}`,domain:"code-intelligence",type:"analyzer",capabilities:["indexing","ast-parsing","graph-building"],config:{workflowId:e,paths:r.paths,incremental:r.incremental}};return this.agentCoordinator.spawn(i)}async spawnSearchAgent(e,r){let i={name:`semantic-search-${e.slice(0,8)}`,domain:"code-intelligence",type:"analyzer",capabilities:["semantic-search","vector-similarity",r.type],config:{workflowId:e,query:r.query,type:r.type}};return this.agentCoordinator.spawn(i)}async spawnImpactAnalyzerAgent(e,r){let i={name:`impact-analyzer-${e.slice(0,8)}`,domain:"code-intelligence",type:"analyzer",capabilities:["impact-analysis","dependency-traversal","risk-assessment"],config:{workflowId:e,changedFiles:r.changedFiles,depth:r.depth}};return this.agentCoordinator.spawn(i)}async publishKnowledgeGraphUpdated(e){let r={nodes:e.nodesCreated,edges:e.edgesCreated,filesIndexed:e.filesIndexed,duration:e.duration},i=N($t.KnowledgeGraphUpdated,"code-intelligence",r);await this.eventBus.publish(i)}async publishImpactAnalysisCompleted(e,r){let i={analysisId:w(),changedFiles:e.changedFiles,impactedFiles:[...r.directImpact.map(s=>s.file),...r.transitiveImpact.map(s=>s.file)],impactedTests:r.impactedTests,riskLevel:r.riskLevel},n=N($t.ImpactAnalysisCompleted,"code-intelligence",i);await this.eventBus.publish(n)}async publishSemanticSearchCompleted(e,r){let i=N($t.SemanticSearchCompleted,"code-intelligence",{query:e.query,type:e.type,resultCount:r.total,searchTime:r.searchTime});await this.eventBus.publish(i)}subscribeToEvents(){this.eventBus.subscribe("test-execution.TestRunCompleted",this.handleTestRunCompleted.bind(this)),this.eventBus.subscribe("source-control.FilesChanged",this.handleFilesChanged.bind(this))}async handleTestRunCompleted(e){let r=e.payload;await this.memory.set(`code-intelligence:test-correlation:${r.runId}`,r,{namespace:"code-intelligence",ttl:86400})}async handleFilesChanged(e){if(!this.config.enableIncrementalIndex)return;let r=e.payload;r.files&&r.files.length>0&&await this.memory.set(`code-intelligence:pending-index:${Date.now()}`,{files:r.files,timestamp:new Date().toISOString()},{namespace:"code-intelligence",ttl:3600})}async indexForSearch(e){let r=e.slice(0,bd),i=0;for(let s of r)try{let a=await this.fileReader.readFile(s);a.success&&a.value&&(await this.semanticAnalyzer.indexCode(s,a.value)).success&&i++}catch{}let n=[];return i<e.length&&n.push(`Search covers ${i} of ${e.length} indexed files`+(e.length>bd?` (at most ${bd} per index run)`:"")+"; code in the other files is not found by search."),{searchable:i,warnings:n}}async loadWorkflowState(){let e=await this.memory.get("code-intelligence:coordinator:workflows");if(e)for(let r of e)r.status==="running"&&(r.status="failed",r.error="Coordinator restarted",r.completedAt=new Date),this.workflows.set(r.id,r)}async saveWorkflowState(){let e=Array.from(this.workflows.values());await this.memory.set("code-intelligence:coordinator:workflows",e,{namespace:"code-intelligence",persist:!0})}async generateC4Diagrams(e,r){let i=w();try{this.startWorkflow(i,"query");let n={projectPath:e,detectExternalSystems:r?.detectExternalSystems??!0,analyzeComponents:r?.analyzeComponents??!0,analyzeCoupling:r?.analyzeCoupling??!0,includeContext:r?.includeContext??!0,includeContainer:r?.includeContainer??!0,includeComponent:r?.includeComponent??!0,includeDependency:r?.includeDependency??!1,excludePatterns:r?.excludePatterns};this.updateWorkflowProgress(i,20);let s=await this.productFactorsBridge.requestC4Diagrams(n);return s.success?(this.updateWorkflowProgress(i,80),await this.storeC4DiagramsInMemory(e,s.value),this.updateWorkflowProgress(i,100),this.completeWorkflow(i),ce.info(`[CodeIntelligenceCoordinator] C4 diagrams generated for ${e}: ${s.value.components.length} components, ${s.value.externalSystems.length} external systems`)):this.failWorkflow(i,s.error.message),s}catch(n){let s=y(n);return this.failWorkflow(i,s.message),g(s)}}getProductFactorsBridge(){return this.productFactorsBridge}async storeC4DiagramsInMemory(e,r){let i=`c4-diagrams:latest:${this.hashCode(e)}`;await this.memory.set(i,r,{namespace:"code-intelligence",persist:!0,ttl:3600}),await this.memory.set(`c4-components:${this.hashCode(e)}`,r.components,{namespace:"code-intelligence",ttl:3600}),await this.memory.set(`c4-external-systems:${this.hashCode(e)}`,r.externalSystems,{namespace:"code-intelligence",ttl:3600})}async collectProjectMetrics(e){if(!this.config.enableMetricCollector||!this.metricCollector)return g(new Error("MetricCollector is not enabled"));try{ce.info(`Collecting real metrics for ${e}`);let r=await this.metricCollector.collectAll(e),i=r.toolsUsed.length>0?r.toolsUsed.join(", "):r.loc.source==="node-native"?"node-native":"fallback";if(ce.info(`[CodeIntelligence] Real metrics collected: ${r.loc.total} LOC, ${r.tests.total} tests, tools: ${i}`),r.loc.source==="node-native"&&ce.info("[CodeIntelligence] Using Node.js-native line counter (no cloc/tokei needed)"),await this.storeProjectMetricsInMemory(e,r),this.config.publishEvents){let n=N("code-intelligence.MetricsCollected","code-intelligence",{projectPath:e,loc:r.loc.total,tests:r.tests.total,toolsUsed:r.toolsUsed});await this.eventBus.publish(n)}return{success:!0,value:r}}catch(r){let i=y(r);return ce.error("Failed to collect metrics:"),g(i)}}async storeProjectMetricsInMemory(e,r){let i=`project-metrics:latest:${this.hashCode(e)}`;await this.memory.set(i,r,{namespace:"code-intelligence",persist:!0,ttl:300}),await this.memory.set(`loc-metrics:${this.hashCode(e)}`,r.loc,{namespace:"code-intelligence",ttl:300}),await this.memory.set(`test-metrics:${this.hashCode(e)}`,r.tests,{namespace:"code-intelligence",ttl:300})}getMetricCollector(){return this.metricCollector}getProjectRootFromPaths(e,r){return Dh(e,{target:r})}isHypergraphEnabled(){return this.config.enableHypergraph&&this.hypergraph!==void 0}async findUntestedFunctions(){return this.hypergraph?tf(this.hypergraph,this.eventBus,this.config.publishEvents):g(new Error("Hypergraph is not enabled or not initialized"))}async findImpactedTestsFromHypergraph(e){return this.hypergraph?rf(this.hypergraph,e,this.eventBus,this.config.publishEvents):g(new Error("Hypergraph is not enabled or not initialized"))}async findCoverageGapsFromHypergraph(e=50){return this.hypergraph?nf(this.hypergraph,e,this.eventBus,this.config.publishEvents):g(new Error("Hypergraph is not enabled or not initialized"))}async buildHypergraphFromIndex(e){return this.hypergraph?sf(this.hypergraph,e,this.memory,this.eventBus,this.config.publishEvents):g(new Error("Hypergraph is not enabled or not initialized"))}getHypergraph(){return this.hypergraph}async enhanceImpactWithHypergraph(e,r){return this.hypergraph?af(this.hypergraph,e,r):r}async buildCodeIndexResultFromPaths(e){let{extractCodeIndex:r}=await import("./code-index-extractor-Y4MZBZCW.js");return r(e)}async verifyCodePatternDetection(e,r){return of(e,r,this.consensusMixin,this.domainName)}async verifyImpactAnalysis(e,r){return cf(e,r,this.consensusMixin,this.domainName)}async verifyDependencyMapping(e,r){return lf(e,r,this.consensusMixin,this.domainName)}};k();var Oo=class extends ee{constructor(e,r,i,n={},s){super(e,r);this.agentCoordinator=i;this.llmRouter=s;this.pluginConfig=n}agentCoordinator;llmRouter;coordinator=null;knowledgeGraph=null;semanticAnalyzer=null;impactAnalyzer=null;pluginConfig;get name(){return"code-intelligence"}get version(){return"1.0.0"}get dependencies(){return[]}getAPI(){return{index:this.index.bind(this),search:this.search.bind(this),analyzeImpact:this.analyzeImpact.bind(this),mapDependencies:this.mapDependencies.bind(this),getDependencies:this.mapDependencies.bind(this),queryKG:this.queryKG.bind(this),getMetrics:this.getMetrics.bind(this),getCoordinator:()=>this.coordinator,getKnowledgeGraph:()=>this.knowledgeGraph,getSemanticAnalyzer:()=>this.semanticAnalyzer,getImpactAnalyzer:()=>this.impactAnalyzer}}getTaskHandlers(){let e=new Map([["index",async r=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let i=r.paths;if(!i||i.length===0)return g(new Error("Invalid index payload: missing paths"));let n=r.language?[r.language]:r.languages;return this.coordinator.index({paths:i,languages:n,target:typeof r.target=="string"?r.target:void 0})}],["search",async r=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let i=r.query;return i?this.coordinator.search({query:i,type:r.type??"semantic",limit:r.limit}):g(new Error("Invalid search payload: missing query"))}],["analyze-impact",async r=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let i=r.changedFiles;return!i||i.length===0?g(new Error("Invalid analyze-impact payload: missing changedFiles")):this.coordinator.analyzeImpact({changedFiles:i})}],["query-dependencies",async r=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let i=r.file,s=r.files??(i?[i]:void 0);return!s||s.length===0?g(new Error("Invalid query-dependencies payload: missing file or files")):this.coordinator.mapDependencies({files:s,direction:r.direction??"both",depth:r.depth})}]]);return e.set("index-code",e.get("index")),e}async onInitialize(){this.knowledgeGraph=new Vt({memory:this.memory,llmRouter:this.llmRouter},this.pluginConfig.knowledgeGraph),this.semanticAnalyzer=new Mr(this.memory,this.pluginConfig.semanticAnalyzer),this.impactAnalyzer=new on(this.memory,this.knowledgeGraph,this.pluginConfig.impactAnalyzer),this.coordinator=new cs(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.coordinator,this.llmRouter),await this.coordinator.initialize(),this.updateHealth({status:"idle",agents:{total:0,active:0,idle:0,failed:0},lastActivity:new Date,errors:[]})}async onDispose(){this.coordinator&&await this.coordinator.dispose(),this.coordinator=null,this.knowledgeGraph=null,this.semanticAnalyzer=null,this.impactAnalyzer=null}subscribeToEvents(){this.eventBus.subscribe("test-generation.TestGenerated",this.handleTestGenerated.bind(this)),this.eventBus.subscribe("coverage-analysis.CoverageGapDetected",this.handleCoverageGap.bind(this)),this.eventBus.subscribe("defect-intelligence.DefectPredicted",this.handleDefectPredicted.bind(this))}async onEvent(e){switch(this.updateHealth({lastActivity:new Date}),e.type){case"test-generation.TestGenerated":await this.handleTestGenerated(e);break;case"coverage-analysis.CoverageGapDetected":await this.handleCoverageGap(e);break;case"defect-intelligence.DefectPredicted":await this.handleDefectPredicted(e);break;default:break}}async index(e){this.ensureInitialized();try{let r=await this.coordinator.index(e);return r.success?this.trackSuccessfulOperation("index",r.value):this.trackFailedOperation("index",r.error),r}catch(r){return this.handleError(r)}}async search(e){this.ensureInitialized();try{let r=await this.coordinator.search(e);return r.success?this.trackSuccessfulOperation("search",r.value):this.trackFailedOperation("search",r.error),r}catch(r){return this.handleError(r)}}async analyzeImpact(e){this.ensureInitialized();try{let r=await this.coordinator.analyzeImpact(e);return r.success?this.trackSuccessfulOperation("impact",r.value):this.trackFailedOperation("impact",r.error),r}catch(r){return this.handleError(r)}}async mapDependencies(e){this.ensureInitialized();try{let r=await this.coordinator.mapDependencies(e);return r.success?this.trackSuccessfulOperation("dependency",r.value):this.trackFailedOperation("dependency",r.error),r}catch(r){return this.handleError(r)}}async queryKG(e){this.ensureInitialized();try{let r=await this.coordinator.queryKG(e);return r.success?this.trackSuccessfulOperation("query",r.value):this.trackFailedOperation("query",r.error),r}catch(r){return this.handleError(r)}}async getMetrics(){this.ensureInitialized();try{let e=this.getHealth();return{success:!0,value:{indexed:e.agents.total,queries:e.agents.idle,impacts:e.agents.active}}}catch(e){return this.handleError(e)}}async handleTestGenerated(e){let r=e.payload;await this.memory.set(`code-intelligence:test-mapping:${r.testId}`,{testFile:r.testFile,sourceFile:r.sourceFile,generatedAt:new Date().toISOString()},{namespace:"code-intelligence",ttl:86400*30})}async handleCoverageGap(e){if(!Ue(e.payload))return;let r=e.payload;await this.memory.set(`code-intelligence:coverage-gap:${r.gapId}`,r,{namespace:"code-intelligence",ttl:86400*7})}async handleDefectPredicted(e){let r=e.payload;await this.memory.set(`code-intelligence:defect-prediction:${r.predictionId}`,r,{namespace:"code-intelligence",ttl:86400*7})}ensureInitialized(){if(!this._initialized)throw new Error("CodeIntelligencePlugin is not initialized");if(!this.coordinator||!this.knowledgeGraph||!this.semanticAnalyzer||!this.impactAnalyzer)throw new Error("CodeIntelligencePlugin services are not available")}handleError(e){let r=y(e),i=this.getHealth();return this.updateHealth({errors:[...i.errors.slice(-9),r.message],status:i.errors.length>=5?"degraded":i.status}),{success:!1,error:r}}trackSuccessfulOperation(e,r){let i=this.getHealth();this.updateHealth({agents:{...i.agents,total:i.agents.total+1,idle:i.agents.idle+1},lastActivity:new Date})}trackFailedOperation(e,r){let i=this.getHealth();this.updateHealth({agents:{...i.agents,failed:i.agents.failed+1},errors:[...i.errors.slice(-9),r.message]})}};function wd(l,t,e,r,i){return new Oo(l,t,e,r,i)}Ur();var Cd=Qr;async function uf(l,t=Me()){return jm(l,{projectRoot:t,maxBytes:Cd})}_();k();var No={defaultRuleSets:["owasp-top-10","cwe-sans-25"],maxConcurrentScans:4,timeout:3e5,enableFalsePositiveDetection:!0,dastMaxDepth:5,dastActiveScanning:!1,enableLLMAnalysis:!0,llmModelTier:4,enableSemgrep:!0};import{createHash as pf}from"node:crypto";import*as dt from"node:path";_();var Sd=[{id:"sqli-string-concat",pattern:/query\s*\(\s*['"`].*\+.*['"`]\s*\)/g,category:"injection",severity:"critical",title:"SQL Injection via String Concatenation",description:"SQL query constructed using string concatenation with potentially untrusted input",owaspId:"A03:2021",cweId:"CWE-89",remediation:"Use parameterized queries or prepared statements instead of string concatenation",fixExample:'db.query("SELECT * FROM users WHERE id = $1", [userId])'},{id:"sqli-template-literal",pattern:/execute\s*\(\s*`[^`]*\$\{[^}]+\}[^`]*`\s*\)/g,category:"injection",severity:"critical",title:"SQL Injection via Template Literal",description:"SQL query constructed using template literals with embedded expressions",owaspId:"A03:2021",cweId:"CWE-89",remediation:"Use parameterized queries instead of template literals for SQL",fixExample:'db.execute("DELETE FROM users WHERE id = ?", [userId])'},{id:"sqli-raw-query",pattern:/\.raw\s*\(\s*['"`].*\+|\.raw\s*\(\s*`[^`]*\$\{/g,category:"injection",severity:"high",title:"SQL Injection via Raw Query",description:"Raw SQL query with potential user input interpolation",owaspId:"A03:2021",cweId:"CWE-89",remediation:"Avoid raw queries with user input; use ORM methods or parameterized queries"},{id:"sqli-exec",pattern:/exec(?:ute)?(?:Sql|Query)?\s*\([^)]*\+[^)]*\)/gi,category:"injection",severity:"critical",title:"SQL Injection via Dynamic Execution",description:"Dynamic SQL execution with string concatenation detected",owaspId:"A03:2021",cweId:"CWE-89",remediation:"Never concatenate user input into SQL queries"}],Rd=[{id:"xss-innerhtml",pattern:/\.innerHTML\s*=\s*[^'"`;\n]+/g,category:"xss",severity:"high",title:"XSS via innerHTML Assignment",description:"Direct innerHTML assignment with potentially unsanitized content",owaspId:"A03:2021",cweId:"CWE-79",remediation:"Use textContent for text, or sanitize HTML with DOMPurify before innerHTML assignment",fixExample:"element.textContent = userInput; // or DOMPurify.sanitize(userInput)"},{id:"xss-document-write",pattern:/document\.write\s*\([^)]+\)/g,category:"xss",severity:"high",title:"XSS via document.write",description:"document.write() can execute scripts from untrusted data",owaspId:"A03:2021",cweId:"CWE-79",remediation:"Avoid document.write(); use DOM manipulation methods instead",fixExample:"document.body.appendChild(document.createTextNode(text))"},{id:"xss-dangerously-set",pattern:/dangerouslySetInnerHTML\s*=\s*\{/g,category:"xss",severity:"medium",title:"React dangerouslySetInnerHTML Usage",description:"dangerouslySetInnerHTML bypasses React XSS protections",owaspId:"A03:2021",cweId:"CWE-79",remediation:"Sanitize HTML content with DOMPurify before using dangerouslySetInnerHTML",fixExample:"dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(content) }}"},{id:"xss-eval",pattern:/eval\s*\([^)]+\)/g,category:"xss",severity:"critical",title:"Code Injection via eval()",description:"eval() executes arbitrary code and is a major security risk",owaspId:"A03:2021",cweId:"CWE-95",remediation:"Never use eval(); use JSON.parse() for JSON data or safer alternatives",fixExample:"JSON.parse(jsonString) // instead of eval(jsonString)"},{id:"xss-new-function",pattern:/new\s+Function\s*\([^)]+\)/g,category:"xss",severity:"critical",title:"Code Injection via Function Constructor",description:"Function constructor can execute arbitrary code like eval()",owaspId:"A03:2021",cweId:"CWE-95",remediation:"Avoid the Function constructor; use predefined functions instead"},{id:"xss-outerhtml",pattern:/\.outerHTML\s*=\s*[^'"`;\n]+/g,category:"xss",severity:"high",title:"XSS via outerHTML Assignment",description:"Direct outerHTML assignment with potentially unsanitized content",owaspId:"A03:2021",cweId:"CWE-79",remediation:"Sanitize content before outerHTML assignment"}],Td=[{id:"secret-aws-access-key",pattern:/['"`]AKIA[0-9A-Z]{16}['"`]/g,category:"sensitive-data",severity:"critical",title:"AWS Access Key Detected",description:"Hardcoded AWS Access Key ID found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables or AWS Secrets Manager for credentials",fixExample:"const accessKey = process.env.AWS_ACCESS_KEY_ID"},{id:"secret-aws-secret-key",pattern:/['"`][A-Za-z0-9/+=]{40}['"`]/g,category:"sensitive-data",severity:"critical",title:"Potential AWS Secret Key Detected",description:"Potential hardcoded AWS Secret Access Key found",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Store secrets in environment variables or secrets manager"},{id:"secret-openai-key",pattern:/['"`]sk-[a-zA-Z0-9]{48,}['"`]/g,category:"sensitive-data",severity:"critical",title:"OpenAI API Key Detected",description:"Hardcoded OpenAI API key found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables for API keys",fixExample:"const apiKey = process.env.OPENAI_API_KEY"},{id:"secret-generic-password",pattern:/password\s*[:=]\s*['"`][^'"`]{4,}['"`]/gi,category:"sensitive-data",severity:"high",title:"Hardcoded Password Detected",description:"Hardcoded password found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Never hardcode passwords; use environment variables or secrets manager",fixExample:"const password = process.env.DB_PASSWORD"},{id:"secret-api-key",pattern:/api[_-]?key\s*[:=]\s*['"`][a-zA-Z0-9_\-]{16,}['"`]/gi,category:"sensitive-data",severity:"high",title:"Hardcoded API Key Detected",description:"Hardcoded API key found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables for API keys",fixExample:"const apiKey = process.env.API_KEY"},{id:"secret-jwt",pattern:/['"`]eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+['"`]/g,category:"sensitive-data",severity:"high",title:"Hardcoded JWT Token Detected",description:"Hardcoded JWT token found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Generate JWT tokens dynamically; never hardcode them"},{id:"secret-private-key",pattern:/-----BEGIN\s+(RSA|EC|OPENSSH|DSA)?\s*PRIVATE\s+KEY-----/g,category:"sensitive-data",severity:"critical",title:"Private Key Detected",description:"Private key found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Store private keys in secure key management systems, not in code"},{id:"secret-github-token",pattern:/['"`]ghp_[a-zA-Z0-9]{36}['"`]|['"`]github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59}['"`]/g,category:"sensitive-data",severity:"critical",title:"GitHub Token Detected",description:"Hardcoded GitHub personal access token found",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables or GitHub Actions secrets"},{id:"secret-slack-token",pattern:/['"`]xox[baprs]-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*['"`]/g,category:"sensitive-data",severity:"high",title:"Slack Token Detected",description:"Hardcoded Slack token found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables for Slack tokens"},{id:"secret-generic-assignment",pattern:/\b\w*(?:SECRET|secret)(?:_KEY|_key|Key)?\s*[:=]\s*['"`][^'"`]{4,}['"`]/g,category:"sensitive-data",severity:"high",title:"Generic Secret Assignment Detected",description:"Hardcoded secret assignment (SECRET_KEY, JWT_SECRET, APP_SECRET, etc.) found in source code",owaspId:"A02:2021",cweId:"CWE-798",remediation:"Use environment variables or a secrets manager instead of hardcoding secrets",fixExample:"const secretKey = process.env.SECRET_KEY"}],Ed=[{id:"path-traversal-readfile",pattern:/(?:readFile|readFileSync)\s*\([^)]*\+/g,category:"access-control",severity:"high",title:"Path Traversal via File Read",description:"File read operation with concatenated path may allow directory traversal",owaspId:"A01:2021",cweId:"CWE-22",remediation:"Validate and sanitize file paths; use path.resolve() and check against base directory",fixExample:"const safePath = path.resolve(baseDir, path.basename(userInput))"},{id:"path-traversal-pattern",pattern:/\.\.\/.*\.\.\//g,category:"access-control",severity:"medium",title:"Path Traversal Pattern Detected",description:"Suspicious path traversal pattern (../) found in code",owaspId:"A01:2021",cweId:"CWE-22",remediation:"Validate paths and ensure they resolve within expected directories"},{id:"path-traversal-writefile",pattern:/(?:writeFile|writeFileSync)\s*\([^)]*\+/g,category:"access-control",severity:"high",title:"Path Traversal via File Write",description:"File write operation with concatenated path may allow directory traversal",owaspId:"A01:2021",cweId:"CWE-22",remediation:"Validate file paths before writing; ensure path is within allowed directory"},{id:"path-traversal-createstream",pattern:/createReadStream\s*\([^)]*\+/g,category:"access-control",severity:"high",title:"Path Traversal via Stream",description:"Stream creation with concatenated path may allow directory traversal",owaspId:"A01:2021",cweId:"CWE-22",remediation:"Validate and sanitize file paths before creating streams"}],Ad=[{id:"cmd-injection-exec",pattern:/exec\s*\([^)]*\+[^)]*\)|exec\s*\(\s*`[^`]*\$\{/g,category:"injection",severity:"critical",title:"Command Injection via exec()",description:"Shell command execution with unsanitized input",owaspId:"A03:2021",cweId:"CWE-78",remediation:"Use execFile() with argument array instead of exec() with string concatenation",fixExample:'execFile("command", [arg1, arg2], callback)'},{id:"cmd-injection-spawn",pattern:/spawn\s*\(\s*[^,]+\+|spawn\s*\(\s*`[^`]*\$\{/g,category:"injection",severity:"critical",title:"Command Injection via spawn()",description:"Process spawn with potentially unsanitized command",owaspId:"A03:2021",cweId:"CWE-78",remediation:"Use spawn with command and args array; validate inputs",fixExample:'spawn("command", [sanitizedArg1, sanitizedArg2])'},{id:"cmd-injection-shell-true",pattern:/spawn\s*\([^)]+,\s*\{[^}]*shell\s*:\s*true/g,category:"injection",severity:"high",title:"Dangerous Shell Option in spawn()",description:"spawn() with shell: true can enable command injection",owaspId:"A03:2021",cweId:"CWE-78",remediation:"Avoid shell: true option; use direct command execution"}],xd=[{id:"misc-cors-wildcard",pattern:/cors\s*\(\s*\{[^}]*origin\s*:\s*['"]\*['"]/gi,category:"security-misconfiguration",severity:"medium",title:"Permissive CORS Configuration",description:"CORS allows all origins (*) which may expose sensitive data",owaspId:"A05:2021",cweId:"CWE-942",remediation:"Restrict CORS to specific trusted origins",fixExample:'cors({ origin: ["https://trusted-domain.com"] })'},{id:"misc-debug-enabled",pattern:/debug\s*[:=]\s*true|DEBUG\s*[:=]\s*['"]?true['"]?/gi,category:"security-misconfiguration",severity:"low",title:"Debug Mode Enabled",description:"Debug mode may expose sensitive information in production",owaspId:"A05:2021",cweId:"CWE-489",remediation:"Disable debug mode in production environments"},{id:"misc-ssl-disabled",pattern:/rejectUnauthorized\s*:\s*false|NODE_TLS_REJECT_UNAUTHORIZED\s*=\s*['"]?0['"]?/g,category:"security-misconfiguration",severity:"high",title:"TLS Certificate Validation Disabled",description:"Disabling TLS certificate validation exposes to MITM attacks",owaspId:"A05:2021",cweId:"CWE-295",remediation:"Always enable TLS certificate validation in production"},{id:"misc-helmet-missing",pattern:/app\.use\s*\(\s*express\s*\(\s*\)\s*\)/g,category:"security-misconfiguration",severity:"low",title:"Express App Without Security Headers",description:"Express app initialized without helmet or security headers",owaspId:"A05:2021",cweId:"CWE-693",remediation:"Use helmet middleware for security headers",fixExample:"app.use(helmet())"}],Pd=[{id:"deser-yaml-load",pattern:/yaml\.load\s*\([^)]+\)/g,category:"insecure-deserialization",severity:"high",title:"Unsafe YAML Deserialization",description:"yaml.load() can execute arbitrary code from untrusted YAML",owaspId:"A08:2021",cweId:"CWE-502",remediation:"Use yaml.safeLoad() or schema-constrained loading",fixExample:"yaml.load(content, { schema: yaml.SAFE_SCHEMA })"},{id:"deser-serialize-js",pattern:/serialize\s*\([^)]+\)|unserialize\s*\([^)]+\)/g,category:"insecure-deserialization",severity:"high",title:"Unsafe Serialization Function",description:"Node serialize/unserialize functions can execute arbitrary code",owaspId:"A08:2021",cweId:"CWE-502",remediation:"Use JSON.parse/stringify for serialization"}],kd=[{id:"auth-weak-jwt-secret",pattern:/jwt\.sign\s*\([^)]+,\s*['"][a-zA-Z0-9]{1,16}['"]/g,category:"broken-auth",severity:"high",title:"Weak JWT Secret",description:"JWT signed with a weak or short secret key",owaspId:"A07:2021",cweId:"CWE-327",remediation:"Use a strong, randomly generated secret of at least 256 bits"},{id:"auth-no-algorithm",pattern:/jwt\.verify\s*\([^)]+\)\s*(?!.*algorithm)/g,category:"broken-auth",severity:"medium",title:"JWT Without Algorithm Specification",description:"JWT verification without explicit algorithm can be exploited",owaspId:"A07:2021",cweId:"CWE-347",remediation:"Always specify the expected algorithm in JWT verification",fixExample:'jwt.verify(token, secret, { algorithms: ["HS256"] })'}],_o=[...Sd,...Rd,...Td,...Ed,...Ad,...xd,...Pd,...kd],Ei=[{id:"owasp-top-10",name:"OWASP Top 10",description:"OWASP Top 10 most critical security risks",ruleCount:45,categories:["injection","broken-auth","sensitive-data","xxe","access-control","security-misconfiguration","xss","insecure-deserialization","vulnerable-components","insufficient-logging"]},{id:"cwe-sans-25",name:"CWE/SANS Top 25",description:"Most dangerous software errors",ruleCount:38,categories:["injection","xss","access-control","sensitive-data","broken-auth"]},{id:"nodejs-security",name:"Node.js Security",description:"Node.js specific security rules",ruleCount:25,categories:["injection","xss","sensitive-data","security-misconfiguration"]},{id:"typescript-security",name:"TypeScript Security",description:"TypeScript specific security rules",ruleCount:20,categories:["injection","xss","sensitive-data"]}];k();X();Pe();X();import{execFile as f0}from"child_process";import{promisify as y0}from"util";import*as mf from"path";var Dd=y0(f0),v0=["ERROR","WARNING","INFO","CRITICAL","HIGH","MEDIUM","LOW","EXPERIMENT","INVENTORY"];async function ls(){try{return await Dd("semgrep",["--version"],{timeout:5e3}),!0}catch{return!1}}async function b0(){try{let{stdout:l}=await Dd("semgrep",["--version"],{timeout:5e3});return l.trim()}catch{return null}}async function w0(l){let t={target:l.target||".",config:l.config||"auto",exclude:l.exclude||["node_modules",".git","dist","build","coverage"],maxFileSize:l.maxFileSize||5e6,timeout:l.timeout||300,verbose:l.verbose||!1};if(!await ls())return{success:!1,status:"unavailable",findings:[],errors:["Semgrep is unavailable."]};try{let r=["scan",`--config=${t.config}`,"--json",t.verbose?"--verbose":"--quiet",`--max-target-bytes=${t.maxFileSize}`];for(let o of t.exclude)r.push(`--exclude=${o}`);r.push(t.target);let i=(t.timeout??300)*1e3,{stdout:n,stderr:s}=await Dd("semgrep",r,{timeout:i,maxBuffer:50*1024*1024,cwd:mf.isAbsolute(t.target)?void 0:process.cwd()}),a=df(n);return s&&t.verbose&&(a.diagnostics=["Semgrep emitted diagnostic output."]),a.version=await b0()||void 0,a}catch(r){let i=r;if(typeof i.stdout=="string"&&i.stdout.length>0){let n=df(i.stdout);return i.code===1&&!i.killed&&!i.signal&&n.success&&n.findings.length>0?n:{...n,success:!1,status:"failed",errors:[...n.errors,"Semgrep process did not complete successfully."]}}return{success:!1,status:"failed",findings:[],errors:["Semgrep execution failed."]}}}function df(l){try{let t=D(l);if(!t||typeof t!="object"||Array.isArray(t))throw new Error("Expected a JSON object");let e=t.results??t.findings;if(!Array.isArray(e)||t.errors!==void 0&&!Array.isArray(t.errors))throw new Error("Missing or invalid result collection");let r=m=>!!m&&typeof m=="object"&&!Array.isArray(m),i=m=>m===void 0||typeof m=="string",n=m=>m===void 0||typeof m=="string"&&v0.includes(m),s=m=>m===void 0||r(m)&&["line","col"].every(p=>m[p]===void 0||typeof m[p]=="number"&&Number.isSafeInteger(m[p])&&m[p]>0),a=m=>m===void 0||r(m)&&["cwe","owasp","references"].every(p=>m[p]===void 0||Array.isArray(m[p])&&m[p].every(h=>typeof h=="string"))&&["category","description","fix","confidence"].every(p=>i(m[p])),o=m=>{if(!r(m))return!1;let p=m.check_id??m.rule_id;if(typeof m.path!="string"||m.path.length===0||typeof p!="string"||p.length===0||!s(m.start)||!s(m.end)||!i(m.message)||!n(m.severity)||!a(m.metadata))return!1;let h=m.extra;return h===void 0||r(h)&&["message","lines","fix"].every(b=>i(h[b]))&&n(h.severity)&&a(h.metadata)},c=e.filter(o),u=e.length-c.length,d=[];return t.errors?.length&&d.push(`Semgrep reported ${t.errors.length} analysis error(s).`),u&&d.push(`Semgrep returned ${u} malformed finding(s).`),{success:d.length===0,status:d.length===0?"completed":"partial",findings:c.map(m=>({check_id:m.check_id||m.rule_id||"unknown",path:m.path,start:{line:m.start?.line||1,col:m.start?.col||1},end:{line:m.end?.line||m.start?.line||1,col:m.end?.col||1},extra:{message:m.extra?.message||m.message||"Security issue detected",severity:m.extra?.severity||m.severity||"WARNING",lines:m.extra?.lines||"",metadata:{cwe:m.extra?.metadata?.cwe||m.metadata?.cwe,owasp:m.extra?.metadata?.owasp||m.metadata?.owasp,category:m.extra?.metadata?.category||m.metadata?.category,description:m.extra?.metadata?.description||m.metadata?.description,fix:m.extra?.metadata?.fix||m.extra?.fix,references:m.extra?.metadata?.references||m.metadata?.references,confidence:m.extra?.metadata?.confidence||m.metadata?.confidence}}})),errors:d}}catch{return{success:!1,status:"failed",findings:[],errors:["Invalid Semgrep output."]}}}async function Vo(l,t,e){let r={"owasp-top-10":"p/owasp-top-ten","cwe-sans-25":"p/cwe-top-25","nodejs-security":"p/nodejs","typescript-security":"p/typescript","javascript-security":"p/javascript","react-security":"p/react","express-security":"p/express",secrets:"p/secrets","sql-injection":"p/sql-injection",xss:"p/xss","command-injection":"p/command-injection","path-traversal":"p/path-traversal"},i=t.map(n=>r[n]||`p/${n}`).join(",");return w0({...e,target:l,config:i||"auto"})}function C0(l){return{ERROR:"high",WARNING:"medium",INFO:"low",CRITICAL:"critical",HIGH:"high",MEDIUM:"medium",LOW:"low",EXPERIMENT:"low",INVENTORY:"low"}[l]||"medium"}function zo(l){return l.map(t=>({id:t.check_id,title:t.check_id.split(".").pop()||t.check_id,description:t.extra.message,severity:C0(t.extra.severity),file:t.path,line:t.start.line,column:t.start.col,snippet:t.extra.lines,cweId:t.extra.metadata?.cwe?.[0],owaspCategory:t.extra.metadata?.owasp?.[0],remediation:t.extra.metadata?.fix||"Review and fix the identified security issue",references:t.extra.metadata?.references||[]}))}var S0=A.create("security-compliance/sast-scanner"),Ai=class{config;memory;llmRouter;activeScans;constructor(t,e,r,i){this.config=t,this.memory=e,this.llmRouter=r,this.activeScans=i||new Map}async scanFiles(t){return this.scanWithRules(t,this.config.defaultRuleSets)}async scanWithRules(t,e){let r=w();try{if(t.length===0)return g(new Error("No files provided for scanning"));let i=Date.now(),n=Ei.filter(R=>e.includes(R.id));if(n.length===0)return g(new Error(`No valid rule sets found: ${e.join(", ")}`));if(e.filter(R=>!Ei.some(I=>I.id===R)).length>0)return g(new Error("Unknown rule sets requested; no scan executed."));this.activeScans.set(r,"running");let a=[...new Set(t.map(R=>dt.resolve(R.value)))],o=a.map(R=>fe.create(R)),[c,u]=await Promise.all([this.runPatternScanning(o,n),this.runSemgrepScanning(o,e)]),d=this.mergeVulnerabilities(c.vulnerabilities,u.vulnerabilities),m=c.files.filter(R=>R.status==="analyzed"),p=m.reduce((R,I)=>R+I.analyzedLines,0),h=Date.now()-i,b=this.calculateSummary(d,m.length,h),v=this.getApplicablePatterns(n),C=m.length>0?[...new Set(v.map(R=>R.id))]:[],S={filesScanned:m.length,linesScanned:p,rulesApplied:C.length,rulesAppliedScope:"built-in-patterns"},T={id:"patterns",requested:!0,required:!0,scope:"requested-files",status:m.length===o.length?"completed":m.length>0?"partial":"failed",analyzedFiles:m.length,ruleIds:C,rulesetDigest:pf("sha256").update(JSON.stringify(v.map(R=>({id:R.id,category:R.category,expression:R.pattern.source,flags:R.pattern.flags})))).digest("hex"),ruleCoverage:"known",errors:c.files.filter(R=>R.status==="unreadable").map(R=>R.reason||"File unreadable"),limitations:["Built-in pattern matching covers supported JavaScript and TypeScript inputs only."]},x={schemaVersion:1,completeness:m.length===o.length?"complete":m.length>0?"partial":"none",requestedFiles:o.length,requestedPaths:a,duplicateInputs:t.length-o.length,files:c.files,engines:[T,u.evidence],limitations:[...T.limitations,...u.evidence.limitations]};return await this.storeScanResults(r,"sast",d,b),this.activeScans.set(r,"completed"),f({scanId:r,vulnerabilities:d,summary:b,coverage:S,evidence:x})}catch(i){return this.activeScans.set(r,"failed"),g(y(i))}}async runPatternScanning(t,e){let r=[],i=[];for(let n of t){let s=await this.analyzeFile(n,e);r.push(...s.vulnerabilities),i.push(s.evidence)}return{vulnerabilities:r,files:i}}async runSemgrepScanning(t,e){let r=this.resolveTargetDirectory(t),i={id:"semgrep",requested:!!this.config.enableSemgrep,required:!1,status:"disabled",scope:"parent-directory",target:r,ruleCoverage:"unknown",errors:[],limitations:[]};if(!this.config.enableSemgrep)return{vulnerabilities:[],evidence:i};let n=["Optional Semgrep scans a parent directory; requested-file membership and executed-rule coverage are unverified."];try{if(!await ls())return{vulnerabilities:[],evidence:{...i,status:"unavailable",limitations:n,errors:["Semgrep is unavailable."]}};let s=await Vo(r,e),a={...i,status:s.status||"unverified",version:s.version,errors:s.errors.length>0?[`Semgrep reported ${s.errors.length} execution error(s).`]:[],limitations:[...n,...s.diagnostics??[],...s.status?[]:["Legacy Semgrep adapter returned no execution disposition."]]};return{vulnerabilities:zo(s.findings).map(u=>({id:w(),cveId:void 0,title:u.title,description:`[semgrep] ${u.description}`,severity:u.severity,category:this.mapSemgrepCategory(u.owaspCategory),location:{file:u.file,line:u.line,column:u.column,snippet:u.snippet},remediation:{description:u.remediation,estimatedEffort:"moderate",automatable:!1},references:u.references})),evidence:a}}catch{return{vulnerabilities:[],evidence:{...i,status:"failed",limitations:n,errors:["Semgrep execution failed."]}}}}resolveTargetDirectory(t){if(t.length===0)return process.cwd();let e=dt.dirname(dt.resolve(t[0].value));for(let r of t.slice(1)){let i=dt.dirname(dt.resolve(r.value));for(;i!==e&&!i.startsWith(e.endsWith(dt.sep)?e:e+dt.sep);){let n=dt.dirname(e);if(n===e)break;e=n}}return e}mapSemgrepCategory(t){if(!t)return"injection";let e={A01:"access-control",A02:"sensitive-data",A03:"injection",A04:"insecure-deserialization",A05:"security-misconfiguration",A06:"vulnerable-components",A07:"broken-auth",A08:"insecure-deserialization",A09:"insufficient-logging",A10:"xxe"};for(let[r,i]of Object.entries(e))if(t.startsWith(r))return i;return"injection"}mergeVulnerabilities(t,e){if(e.length===0)return t;if(t.length===0)return e;let r=new Set(t.map(n=>`${n.location.file}:${n.location.line??0}:${n.category}`)),i=e.filter(n=>!r.has(`${n.location.file}:${n.location.line??0}:${n.category}`));return[...t,...i]}async getAvailableRuleSets(){let t=await this.memory.get("security:custom-rule-sets");return[...Ei,...t||[]]}async checkFalsePositive(t){try{if(!this.config.enableFalsePositiveDetection)return f({isFalsePositive:!1,confidence:0,reason:"False positive detection is disabled"});let e=await this.analyzeFalsePositive(t);return await this.memory.set(`security:fp-check:${t.id}`,{vulnerability:t,analysis:e},{namespace:"security-compliance",ttl:86400*30}),f(e)}catch(e){return g(y(e))}}getApplicablePatterns(t){let e=new Set(t.flatMap(r=>r.categories));return _o.filter(r=>e.has(r.category))}async analyzeFile(t,e){let r=[],i=t.value,n={path:i,engineId:"patterns",readLines:0,analyzedLines:0},s,a;try{let m=await Hm(i,{outsideRoot:"allow"});a=pf("sha256").update(m).digest("hex"),s=m.toString("utf8")}catch(m){let p=m.code;return{vulnerabilities:[],evidence:{...n,status:"unreadable",reason:typeof p=="string"&&/^[A-Z0-9_]{1,32}$/.test(p)?p:"File unreadable"}}}let o=s.split(`
2882
2882
  `),c={...n,sourceDigest:a,readLines:o.length};if(!["ts","tsx","js","jsx","mjs","cjs"].includes(t.extension))return{vulnerabilities:[],evidence:{...c,status:"unsupported",reason:"Unsupported language for built-in SAST patterns"}};let d=this.getApplicablePatterns(e);for(let m of d){let p=this.findPatternMatches(s,o,m);for(let h of p)this.isInComment(s,h.index)||this.isInDocumentation(h.snippet)||this.hasNosecAnnotation(o,h.line)||r.push(this.createVulnerabilityFromPattern(m,i,h))}return{vulnerabilities:r,evidence:{...c,status:"analyzed",analyzedLines:o.length}}}findPatternMatches(t,e,r){let i=[],n=new RegExp(r.pattern.source,r.pattern.flags),s;for(;(s=n.exec(t))!==null;){let a=s.index,{line:o,column:c}=this.getLineAndColumn(t,a),u=[],d=Math.max(0,o-2),m=Math.min(e.length-1,o+1);for(let h=d;h<=m;h++)u.push(e[h]);let p=u.join(`
2883
2883
  `);i.push({index:a,line:o+1,column:c+1,snippet:p})}return i}getLineAndColumn(t,e){let i=t.substring(0,e).split(`
2884
2884
  `),n=i.length-1,s=i[i.length-1].length;return{line:n,column:s}}isInComment(t,e){let r=t.substring(0,e),i=r.lastIndexOf(`
@@ -3005,7 +3005,7 @@ ${e}
3005
3005
  Provide:
3006
3006
  1. Common themes across patterns
3007
3007
  2. Potential pattern combinations
3008
- 3. Recommendations for pattern application`}],maxTokens:this.config.llmMaxTokens})).content}catch{return qc.warn("LLM synthesis failed:"),null}}async learnPattern(t){try{let{measured:e,assignedExcluded:r}=Mt(t);if(e.length<this.config.minExperiencesForPattern){let d=r>0?` (${r} with an assigned reward excluded)`:"";return g(new Error(`Need at least ${this.config.minExperiencesForPattern} measured experiences to learn a pattern${d}`))}let i=this.extractCommonActions(e),n=this.calculateSuccessRate(e);if(n<this.config.patternConfidenceThreshold)return g(new Error(`Success rate ${n} below threshold ${this.config.patternConfidenceThreshold}`));let s=this.inferPatternType(e),a=e[0].domain,o=this.generatePatternTemplate(e,i),c=this.extractPatternContext(e),u={id:w(),type:s,domain:a,name:`${s}-${a}-${Date.now()}`,description:`Learned pattern from ${e.length} experiences with ${n*100}% success rate`,confidence:n,usageCount:0,successRate:n,context:c,template:o,createdAt:new Date,lastUsedAt:new Date,rewardSource:"measured"};return await this.storePattern(u),await this.recordPatternCreation(u,e),f(u)}catch(e){return g(y(e))}}async findMatchingPatterns(t,e=10){try{let r=(await pb(this.memory)).filter(i=>Es(i)&&this.matchesContext(i,t));return r.sort((i,n)=>{let s=i.confidence*.6+i.successRate*.4;return n.confidence*.6+n.successRate*.4-s}),f(r.slice(0,e))}catch(r){return g(y(r))}}async applyPattern(t,e){try{let r=t.template.content;for(let i of t.template.variables){let n=(Object.hasOwn(e,i.name)?e[i.name]:void 0)??i.defaultValue;if(i.required&&n===void 0)return g(new Error(`Required variable ${i.name} not provided`));r=r.replace(new RegExp(`\\{\\{${i.name}\\}\\}`,"g"),String(n??""))}return await this.updatePatternUsage(t.id),f(r)}catch(r){return g(y(r))}}async updatePatternFeedback(t,e){try{let r=`learning:pattern:${t}`,i=await this.memory.get(r,rt);if(!i)return g(new Error(`Pattern ${t} not found`));let n=.1,s=n*(e?1:0)+(1-n)*i.successRate,a=Math.min(i.usageCount/100,1),o=s*.7+a*.3,c={...i,successRate:s,confidence:o,usageCount:i.usageCount+1,lastUsedAt:new Date};return await this.memory.set(r,c,{namespace:"learning-optimization",persist:!0}),f(void 0)}catch(r){return g(y(r))}}async consolidatePatterns(t){try{if(t.length<2)return g(new Error("Need at least 2 patterns to consolidate"));let e=[];for(let a of t){let o=await this.memory.get(`learning:pattern:${a}`,rt);o&&e.push(o)}if(e.length<2)return g(new Error("Not enough valid patterns found"));let r=mb(e,w()),i=new Date,n=0;for(let a of e)await lb(this.memory,a,i)!=="copied"&&n++;if(n>0)return g(new Error(`${n} of ${e.length} source patterns could not be archived (archive copy not verified); nothing was merged and every source pattern was left active`));await this.storePattern(r);let s=await this.memory.get(`learning:pattern:${r.id}`,rt);if(!s||s.id!==r.id)return g(new Error("Consolidated pattern could not be read back; nothing was merged and every source pattern was left active"));for(let a of e)await ub(this.memory,a);return f(r)}catch(e){return g(y(e))}}async getPatternStats(t){try{let e=(await pb(this.memory)).filter(d=>!t||d.domain===t),r=e.filter(Es),i=e.filter(d=>bm(d)==="pre-1120").length,n=e.length-r.length-i,s={"test-pattern":0,"fix-pattern":0,"optimization-pattern":0,"detection-pattern":0,"workflow-pattern":0,"failure-pattern":0},a={"test-generation":0,"test-execution":0,"coverage-analysis":0,"quality-assessment":0,"defect-intelligence":0,"requirements-validation":0,"code-intelligence":0,"security-compliance":0,"contract-testing":0,"visual-accessibility":0,"chaos-resilience":0,"learning-optimization":0,"enterprise-integration":0,coordination:0},o=0,c=0;for(let d of r)s[d.type]++,a[d.domain]++,o+=d.confidence,c+=d.successRate;let u=r.sort((d,m)=>m.successRate-d.successRate).slice(0,10);return f({totalPatterns:r.length,byType:s,byDomain:a,avgConfidence:r.length>0?o/r.length:0,avgSuccessRate:r.length>0?c/r.length:0,topPatterns:u,...n>0?{assignedPatternsExcluded:n}:{},...i>0?{legacyPatternsExcluded:i}:{}})}catch(e){return g(y(e))}}async recordExperience(t){try{let e=w(),r={...t,id:e,timestamp:new Date};return await this.memory.set(`learning:experience:${e}`,r,{namespace:"learning-optimization",ttl:86400*30}),await this.indexExperience(r),!t.result.success&&t.appliedPatternIds?.length&&await this.recordPatternNulls(r),f(e)}catch(e){return g(y(e))}}async getNullStore(){if(this._nullStore!==void 0)return this._nullStore||void 0;try{let{getUnifiedPersistence:t}=await import("./unified-persistence-WEYYGLHM.js"),e=t();if(!e.isInitialized()){this._nullStore=null;return}let{PatternNullStore:r}=await import("./pattern-null-store-KDVRM7PW.js");return this._nullStore=new r(e.getDatabase()),this._nullStore}catch(t){this._nullStore=null,qc.warn("Null store wiring skipped",{error:t instanceof Error?t.message:String(t)});return}}async recordPatternNulls(t){let e=await this.getNullStore();if(!e)return;let r=`${t.domain}:${t.action}`;for(let i of t.appliedPatternIds??[])try{e.recordNull({patternId:i,contextFingerprint:r,failureMode:String(t.result.outcome?.error??t.action),evidenceClass:"EXECUTED"})}catch(n){qc.warn("Failed to record pattern null",{patternId:i,error:n instanceof Error?n.message:String(n)})}}async getExperiences(t,e){try{return f(await this.getExperiencesByDomainAndTime(t,e))}catch(r){return g(y(r))}}async getExperiencesByIds(t){try{let e=[];for(let r of new Set(t)){let i=await this.memory.get(`learning:experience:${r}`,rt);i&&e.push(i)}return f(e)}catch(e){return g(y(e))}}async mineExperiences(t,e){try{let r=await this.getExperiencesByDomainAndTime(t,e),{measured:i,assignedExcluded:n}=Mt(r),s={experienceCount:r.length,measuredExperienceCount:i.length,assignedRewardsExcluded:n};if(i.length===0)return f({...s,evidenceStatus:"insufficient-evidence",successRate:null,avgReward:null,patterns:[],anomalies:[],recommendations:[r.length===0?"No experiences found in the given time range":`No measured outcomes in the given time range; ${n} experience(s) with an assigned reward were not scored`]});let a=this.calculateSuccessRate(i),o=this.calculateAverageReward(i),c=await this.extractPatternsFromExperiences(i),u=this.detectAnomalies(i),d=this.generateRecommendations(i,a,u);return f({...s,successRate:a,avgReward:o,patterns:c,anomalies:u,recommendations:d})}catch(r){return g(y(r))}}calculateReward(t,e){let r=t.outcome[e.metric]??0,i;e.direction==="maximize"?i=Math.min(r/100,1):i=Math.max(1-r/100,0);let n=0;for(let o of e.constraints){let c=t.outcome[o.metric]??0;this.isConstraintViolated(o,c)&&(n+=.2)}let s=t.success?.5:0,a=Math.max(0,i+s-n);return Math.min(1,a)}async getReplayBuffer(t,e=100){try{let r=await this.memory.search(`learning:experience:index:agent:${t.value}:*`,e,rt),i=[];for(let n of r){let s="learning-optimization:",a=n.startsWith(s)?n.slice(s.length):n,o=await this.memory.get(a,rt);if(o){let c=ge(await this.memory.get(`learning:experience:${o}`,rt),["timestamp"]);c&&i.push(c)}}return i.sort((n,s)=>s.timestamp.getTime()-n.timestamp.getTime()),f(i.slice(0,e))}catch(r){return g(y(r))}}async clusterExperiences(t){try{if(t.length===0)return f([]);let e=new Map;for(let n of t){let s=!1;for(let[a,o]of e)if(this.actionsSimilar(n.action,a)){o.push(n),s=!0;break}s||e.set(n.action,[n])}let r=[],i=0;for(let[n,s]of e)if(s.length>=2){let a=this.calculateCentroid(s),o=this.extractCommonActions(s),{measured:c}=Mt(s),u=c.length>0?this.calculateAverageReward(c):null;r.push({id:`cluster-${i++}`,centroid:a,experiences:s,commonActions:o,avgReward:u})}return f(r)}catch(e){return g(y(e))}}async storePattern(t){await this.memory.set(`learning:pattern:${t.id}`,t,{namespace:"learning-optimization",persist:!0})}async updatePatternUsage(t){let e=`learning:pattern:${t}`,r=await this.memory.get(e,rt);if(r){let i={...r,usageCount:r.usageCount+1,lastUsedAt:new Date};await this.memory.set(e,i,{namespace:"learning-optimization",persist:!0})}}async recordPatternCreation(t,e){await this.memory.set(`learning:pattern:creation:${t.id}`,{patternId:t.id,experienceIds:e.map(r=>r.id),createdAt:new Date},{namespace:"learning-optimization",persist:!0})}async indexExperience(t){await this.memory.set(`learning:experience:index:agent:${t.agentId.value}:${t.id}`,t.id,{namespace:"learning-optimization",ttl:86400*30}),await this.memory.set(`learning:experience:index:domain:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",ttl:86400*30})}async getExperiencesByDomainAndTime(t,e){let r=await this.memory.search(`learning:experience:index:domain:${t}:*`,1e3,rt),i=[];for(let n of r){let s="learning-optimization:",a=n.startsWith(s)?n.slice(s.length):n,o=await this.memory.get(a,rt);if(o){let c=await this.memory.get(`learning:experience:${o}`,rt);if(c){let u=c.timestamp instanceof Date?c.timestamp:new Date(c.timestamp);e.contains(u)&&i.push({...c,timestamp:u})}}}return i}async extractPatternsFromExperiences(t){let e=new Map;for(let i of t){let n=e.get(i.action)||[];n.push(i),e.set(i.action,n)}let r=[];for(let[i,n]of e)if(n.length>=this.config.minExperiencesForPattern){let s=await this.learnPattern(n);s.success&&r.push(s.value)}return r}matchesContext(t,e){if(e.language&&t.context.language!==e.language||e.framework&&t.context.framework!==e.framework||e.testType&&t.context.testType!==e.testType)return!1;if(e.tags.length>0){let r=Array.isArray(t.context.tags)?t.context.tags:[];if(!e.tags.some(n=>r.includes(n)))return!1}return!0}extractCommonActions(t){let e=new Map;for(let r of t){let i=e.get(r.action)||0;e.set(r.action,i+1)}return Array.from(e.entries()).filter(([r,i])=>i>=t.length*.3).map(([r])=>r)}calculateAverageReward(t){return t.length===0?0:t.reduce((r,i)=>r+i.reward,0)/t.length}calculateSuccessRate(t){return t.length===0?0:t.filter(r=>r.result.success).length/t.length}inferPatternType(t){let e=t.map(r=>r.action.toLowerCase());return e.some(r=>r.includes("test")||r.includes("generate"))?"test-pattern":e.some(r=>r.includes("fix")||r.includes("repair"))?"fix-pattern":e.some(r=>r.includes("optimize")||r.includes("improve"))?"optimization-pattern":e.some(r=>r.includes("detect")||r.includes("find"))?"detection-pattern":e.some(r=>r.includes("workflow")||r.includes("process"))?"workflow-pattern":e.some(r=>r.includes("fail")||r.includes("error"))?"failure-pattern":"workflow-pattern"}generatePatternTemplate(t,e){let r=[{name:"domain",type:"string",required:!0,description:"Target domain for the pattern"},{name:"action",type:"string",required:!0,defaultValue:e[0],description:"Primary action to execute"}];return{type:"workflow",content:`// Pattern learned from ${t.length} experiences
3008
+ 3. Recommendations for pattern application`}],maxTokens:this.config.llmMaxTokens})).content}catch{return qc.warn("LLM synthesis failed:"),null}}async learnPattern(t){try{let{measured:e,assignedExcluded:r}=Mt(t);if(e.length<this.config.minExperiencesForPattern){let d=r>0?` (${r} with an assigned reward excluded)`:"";return g(new Error(`Need at least ${this.config.minExperiencesForPattern} measured experiences to learn a pattern${d}`))}let i=this.extractCommonActions(e),n=this.calculateSuccessRate(e);if(n<this.config.patternConfidenceThreshold)return g(new Error(`Success rate ${n} below threshold ${this.config.patternConfidenceThreshold}`));let s=this.inferPatternType(e),a=e[0].domain,o=this.generatePatternTemplate(e,i),c=this.extractPatternContext(e),u={id:w(),type:s,domain:a,name:`${s}-${a}-${Date.now()}`,description:`Learned pattern from ${e.length} experiences with ${n*100}% success rate`,confidence:n,usageCount:0,successRate:n,context:c,template:o,createdAt:new Date,lastUsedAt:new Date,rewardSource:"measured"};return await this.storePattern(u),await this.recordPatternCreation(u,e),f(u)}catch(e){return g(y(e))}}async findMatchingPatterns(t,e=10){try{let r=(await pb(this.memory)).filter(i=>Es(i)&&this.matchesContext(i,t));return r.sort((i,n)=>{let s=i.confidence*.6+i.successRate*.4;return n.confidence*.6+n.successRate*.4-s}),f(r.slice(0,e))}catch(r){return g(y(r))}}async applyPattern(t,e){try{let r=t.template.content;for(let i of t.template.variables){let n=(Object.hasOwn(e,i.name)?e[i.name]:void 0)??i.defaultValue;if(i.required&&n===void 0)return g(new Error(`Required variable ${i.name} not provided`));r=r.replace(new RegExp(`\\{\\{${i.name}\\}\\}`,"g"),String(n??""))}return await this.updatePatternUsage(t.id),f(r)}catch(r){return g(y(r))}}async updatePatternFeedback(t,e){try{let r=`learning:pattern:${t}`,i=await this.memory.get(r,rt);if(!i)return g(new Error(`Pattern ${t} not found`));let n=.1,s=n*(e?1:0)+(1-n)*i.successRate,a=Math.min(i.usageCount/100,1),o=s*.7+a*.3,c={...i,successRate:s,confidence:o,usageCount:i.usageCount+1,lastUsedAt:new Date};return await this.memory.set(r,c,{namespace:"learning-optimization",persist:!0}),f(void 0)}catch(r){return g(y(r))}}async consolidatePatterns(t){try{if(t.length<2)return g(new Error("Need at least 2 patterns to consolidate"));let e=[];for(let a of t){let o=await this.memory.get(`learning:pattern:${a}`,rt);o&&e.push(o)}if(e.length<2)return g(new Error("Not enough valid patterns found"));let r=mb(e,w()),i=new Date,n=0;for(let a of e)await lb(this.memory,a,i)!=="copied"&&n++;if(n>0)return g(new Error(`${n} of ${e.length} source patterns could not be archived (archive copy not verified); nothing was merged and every source pattern was left active`));await this.storePattern(r);let s=await this.memory.get(`learning:pattern:${r.id}`,rt);if(!s||s.id!==r.id)return g(new Error("Consolidated pattern could not be read back; nothing was merged and every source pattern was left active"));for(let a of e)await ub(this.memory,a);return f(r)}catch(e){return g(y(e))}}async getPatternStats(t){try{let e=(await pb(this.memory)).filter(d=>!t||d.domain===t),r=e.filter(Es),i=e.filter(d=>bm(d)==="pre-1120").length,n=e.length-r.length-i,s={"test-pattern":0,"fix-pattern":0,"optimization-pattern":0,"detection-pattern":0,"workflow-pattern":0,"failure-pattern":0},a={"test-generation":0,"test-execution":0,"coverage-analysis":0,"quality-assessment":0,"defect-intelligence":0,"requirements-validation":0,"code-intelligence":0,"security-compliance":0,"contract-testing":0,"visual-accessibility":0,"chaos-resilience":0,"learning-optimization":0,"enterprise-integration":0,coordination:0},o=0,c=0;for(let d of r)s[d.type]++,a[d.domain]++,o+=d.confidence,c+=d.successRate;let u=r.sort((d,m)=>m.successRate-d.successRate).slice(0,10);return f({totalPatterns:r.length,byType:s,byDomain:a,avgConfidence:r.length>0?o/r.length:0,avgSuccessRate:r.length>0?c/r.length:0,topPatterns:u,...n>0?{assignedPatternsExcluded:n}:{},...i>0?{legacyPatternsExcluded:i}:{}})}catch(e){return g(y(e))}}async recordExperience(t){try{let e=w(),r={...t,id:e,timestamp:new Date};return await this.memory.set(`learning:experience:${e}`,r,{namespace:"learning-optimization",ttl:86400*30}),await this.indexExperience(r),!t.result.success&&t.appliedPatternIds?.length&&await this.recordPatternNulls(r),f(e)}catch(e){return g(y(e))}}async getNullStore(){if(this._nullStore!==void 0)return this._nullStore||void 0;try{let{getUnifiedPersistence:t}=await import("./unified-persistence-YZGMKX6B.js"),e=t();if(!e.isInitialized()){this._nullStore=null;return}let{PatternNullStore:r}=await import("./pattern-null-store-UI35ORHW.js");return this._nullStore=new r(e.getDatabase()),this._nullStore}catch(t){this._nullStore=null,qc.warn("Null store wiring skipped",{error:t instanceof Error?t.message:String(t)});return}}async recordPatternNulls(t){let e=await this.getNullStore();if(!e)return;let r=`${t.domain}:${t.action}`;for(let i of t.appliedPatternIds??[])try{e.recordNull({patternId:i,contextFingerprint:r,failureMode:String(t.result.outcome?.error??t.action),evidenceClass:"EXECUTED"})}catch(n){qc.warn("Failed to record pattern null",{patternId:i,error:n instanceof Error?n.message:String(n)})}}async getExperiences(t,e){try{return f(await this.getExperiencesByDomainAndTime(t,e))}catch(r){return g(y(r))}}async getExperiencesByIds(t){try{let e=[];for(let r of new Set(t)){let i=await this.memory.get(`learning:experience:${r}`,rt);i&&e.push(i)}return f(e)}catch(e){return g(y(e))}}async mineExperiences(t,e){try{let r=await this.getExperiencesByDomainAndTime(t,e),{measured:i,assignedExcluded:n}=Mt(r),s={experienceCount:r.length,measuredExperienceCount:i.length,assignedRewardsExcluded:n};if(i.length===0)return f({...s,evidenceStatus:"insufficient-evidence",successRate:null,avgReward:null,patterns:[],anomalies:[],recommendations:[r.length===0?"No experiences found in the given time range":`No measured outcomes in the given time range; ${n} experience(s) with an assigned reward were not scored`]});let a=this.calculateSuccessRate(i),o=this.calculateAverageReward(i),c=await this.extractPatternsFromExperiences(i),u=this.detectAnomalies(i),d=this.generateRecommendations(i,a,u);return f({...s,successRate:a,avgReward:o,patterns:c,anomalies:u,recommendations:d})}catch(r){return g(y(r))}}calculateReward(t,e){let r=t.outcome[e.metric]??0,i;e.direction==="maximize"?i=Math.min(r/100,1):i=Math.max(1-r/100,0);let n=0;for(let o of e.constraints){let c=t.outcome[o.metric]??0;this.isConstraintViolated(o,c)&&(n+=.2)}let s=t.success?.5:0,a=Math.max(0,i+s-n);return Math.min(1,a)}async getReplayBuffer(t,e=100){try{let r=await this.memory.search(`learning:experience:index:agent:${t.value}:*`,e,rt),i=[];for(let n of r){let s="learning-optimization:",a=n.startsWith(s)?n.slice(s.length):n,o=await this.memory.get(a,rt);if(o){let c=ge(await this.memory.get(`learning:experience:${o}`,rt),["timestamp"]);c&&i.push(c)}}return i.sort((n,s)=>s.timestamp.getTime()-n.timestamp.getTime()),f(i.slice(0,e))}catch(r){return g(y(r))}}async clusterExperiences(t){try{if(t.length===0)return f([]);let e=new Map;for(let n of t){let s=!1;for(let[a,o]of e)if(this.actionsSimilar(n.action,a)){o.push(n),s=!0;break}s||e.set(n.action,[n])}let r=[],i=0;for(let[n,s]of e)if(s.length>=2){let a=this.calculateCentroid(s),o=this.extractCommonActions(s),{measured:c}=Mt(s),u=c.length>0?this.calculateAverageReward(c):null;r.push({id:`cluster-${i++}`,centroid:a,experiences:s,commonActions:o,avgReward:u})}return f(r)}catch(e){return g(y(e))}}async storePattern(t){await this.memory.set(`learning:pattern:${t.id}`,t,{namespace:"learning-optimization",persist:!0})}async updatePatternUsage(t){let e=`learning:pattern:${t}`,r=await this.memory.get(e,rt);if(r){let i={...r,usageCount:r.usageCount+1,lastUsedAt:new Date};await this.memory.set(e,i,{namespace:"learning-optimization",persist:!0})}}async recordPatternCreation(t,e){await this.memory.set(`learning:pattern:creation:${t.id}`,{patternId:t.id,experienceIds:e.map(r=>r.id),createdAt:new Date},{namespace:"learning-optimization",persist:!0})}async indexExperience(t){await this.memory.set(`learning:experience:index:agent:${t.agentId.value}:${t.id}`,t.id,{namespace:"learning-optimization",ttl:86400*30}),await this.memory.set(`learning:experience:index:domain:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",ttl:86400*30})}async getExperiencesByDomainAndTime(t,e){let r=await this.memory.search(`learning:experience:index:domain:${t}:*`,1e3,rt),i=[];for(let n of r){let s="learning-optimization:",a=n.startsWith(s)?n.slice(s.length):n,o=await this.memory.get(a,rt);if(o){let c=await this.memory.get(`learning:experience:${o}`,rt);if(c){let u=c.timestamp instanceof Date?c.timestamp:new Date(c.timestamp);e.contains(u)&&i.push({...c,timestamp:u})}}}return i}async extractPatternsFromExperiences(t){let e=new Map;for(let i of t){let n=e.get(i.action)||[];n.push(i),e.set(i.action,n)}let r=[];for(let[i,n]of e)if(n.length>=this.config.minExperiencesForPattern){let s=await this.learnPattern(n);s.success&&r.push(s.value)}return r}matchesContext(t,e){if(e.language&&t.context.language!==e.language||e.framework&&t.context.framework!==e.framework||e.testType&&t.context.testType!==e.testType)return!1;if(e.tags.length>0){let r=Array.isArray(t.context.tags)?t.context.tags:[];if(!e.tags.some(n=>r.includes(n)))return!1}return!0}extractCommonActions(t){let e=new Map;for(let r of t){let i=e.get(r.action)||0;e.set(r.action,i+1)}return Array.from(e.entries()).filter(([r,i])=>i>=t.length*.3).map(([r])=>r)}calculateAverageReward(t){return t.length===0?0:t.reduce((r,i)=>r+i.reward,0)/t.length}calculateSuccessRate(t){return t.length===0?0:t.filter(r=>r.result.success).length/t.length}inferPatternType(t){let e=t.map(r=>r.action.toLowerCase());return e.some(r=>r.includes("test")||r.includes("generate"))?"test-pattern":e.some(r=>r.includes("fix")||r.includes("repair"))?"fix-pattern":e.some(r=>r.includes("optimize")||r.includes("improve"))?"optimization-pattern":e.some(r=>r.includes("detect")||r.includes("find"))?"detection-pattern":e.some(r=>r.includes("workflow")||r.includes("process"))?"workflow-pattern":e.some(r=>r.includes("fail")||r.includes("error"))?"failure-pattern":"workflow-pattern"}generatePatternTemplate(t,e){let r=[{name:"domain",type:"string",required:!0,description:"Target domain for the pattern"},{name:"action",type:"string",required:!0,defaultValue:e[0],description:"Primary action to execute"}];return{type:"workflow",content:`// Pattern learned from ${t.length} experiences
3009
3009
  // Common actions: ${e.join(", ")}
3010
3010
  // Apply to domain: {{domain}}
3011
- // Execute action: {{action}}`,variables:r}}extractPatternContext(t){let e=new Set,r,i;for(let n of t){let s=n.state.context;if(s.language&&(r=s.language),s.framework&&(i=s.framework),s.tags&&Array.isArray(s.tags))for(let a of s.tags)e.add(a)}return{language:r,framework:i,tags:Array.from(e)}}detectAnomalies(t){let e=[],r=this.calculateAverageReward(t),i=this.calculateStdDev(t.map(n=>n.reward));for(let n of t){let s=Math.abs(n.reward-r)/(i||1);if(s>this.config.anomalyDeviationThreshold){let a="outlier-reward";n.result.success&&n.reward<r?a="unexpected-success":!n.result.success&&n.reward>r&&(a="unexpected-failure"),e.push({experienceId:n.id,type:a,description:`Reward ${n.reward.toFixed(2)} deviates ${s.toFixed(2)} std from mean ${r.toFixed(2)}`,deviation:s})}}return e}calculateStdDev(t){if(t.length===0)return 0;let e=t.reduce((i,n)=>i+n,0)/t.length,r=t.map(i=>Math.pow(i-e,2));return Math.sqrt(r.reduce((i,n)=>i+n,0)/t.length)}generateRecommendations(t,e,r){let i=[];return e<.5&&i.push("Low success rate detected. Consider reviewing the approach or gathering more training data."),r.length>t.length*.1&&i.push("High anomaly rate detected. Investigate unexpected outcomes for potential improvements."),t.reduce((s,a)=>s+a.result.duration,0)/t.length>6e4&&i.push("Average operation duration is high. Consider optimizing performance."),t.length<10&&i.push("Limited experience data. Collect more data points for better insights."),i.length===0&&i.push("Performance metrics are within acceptable ranges. Continue monitoring."),i}actionsSimilar(t,e){let r=s=>s.toLowerCase().replace(/[^a-z]/g,""),i=r(t),n=r(e);return!!(i===n||i.includes(n)||n.includes(i))}calculateCentroid(t){let e=Be(),r=Be();for(let i of t)for(let[n,s]of Object.entries(i.state.metrics))e[n]=(e[n]||0)+s,r[n]=(r[n]||0)+1;for(let i of Object.keys(e))e[i]/=r[i];return{context:{},metrics:e}}isConstraintViolated(t,e){switch(t.operator){case"lt":return e>=t.value;case"gt":return e<=t.value;case"lte":return e>t.value;case"gte":return e<t.value;case"eq":return e!==t.value;default:return!1}}};k();var yk={maxKnowledgeItems:1e3,relevanceThreshold:.5,transferDecayFactor:.1,crossDomainBoost:.2},Br=class{constructor(t,e={}){this.memory=t;this.config={...yk,...e}}memory;config;async shareKnowledge(t,e){try{await this.memory.set(`learning:knowledge:shared:${t.id}`,t,{namespace:"learning-optimization",persist:!0});for(let r of e)await this.memory.set(`learning:knowledge:access:${r.value}:${t.id}`,{knowledgeId:t.id,agentId:r.value,sharedAt:new Date,accessed:!1},{namespace:"learning-optimization",ttl:86400*7});return await this.recordSharingEvent(t,e),f(void 0)}catch(r){return g(y(r))}}async queryKnowledge(t){try{let e=[],r=await br(this.memory,"learning:knowledge:shared:*",{retrieve:_e,pageSize:this.config.maxKnowledgeItems});for(let i of r){let n=ge(await this.memory.get(i,{namespace:"learning-optimization"}),["createdAt","expiresAt"]);n&&this.matchesQuery(n,t)&&e.push(n)}if(e.sort((i,n)=>n.relevanceScore-i.relevanceScore||(i.id<n.id?-1:i.id>n.id?1:0)),t.embedding&&t.embedding.length>0){let i=await this.memory.vectorSearch(t.embedding,t.limit||10);for(let n of i){let s=ge(await this.memory.get(n.key,{namespace:"learning-optimization"}),["createdAt","expiresAt"]);s&&!e.some(a=>a.id===s.id)&&this.matchesQuery(s,t)&&e.push(s)}}return f(e.slice(0,t.limit||100))}catch(e){return g(y(e))}}async synthesizeKnowledge(t){try{if(t.length<2)return g(new Error("Need at least 2 knowledge items to synthesize"));let e=[];for(let c of t){let u=await this.getKnowledgeById(c);u&&e.push(u)}if(e.length<2)return g(new Error("Not enough valid knowledge items found"));let r=this.determineSynthesizedType(e),i=this.determineSynthesizedDomain(e),n=this.mergeKnowledgeContent(e),s=e.reduce((c,u)=>c+u.relevanceScore,0)/e.length,a=Math.min(1,s+this.config.crossDomainBoost),o={id:w(),type:r,domain:i,content:n,sourceAgentId:e[0].sourceAgentId,targetDomains:this.mergeTargetDomains(e),relevanceScore:a,version:1,createdAt:new Date};return await this.storeKnowledge(o),await this.recordSynthesisEvent(o,t),f(o)}catch(e){return g(y(e))}}async transferKnowledge(t,e){try{if(t.domain===e)return g(new Error("Cannot transfer knowledge to the same domain"));let r=this.calculateTransferredRelevance(t,e);if(r<this.config.relevanceThreshold)return g(new Error(`Transferred relevance ${r} below threshold ${this.config.relevanceThreshold}`));let i=await this.adaptContentForDomain(t.content,t.domain,e),n={id:w(),type:t.type,domain:e,content:i,sourceAgentId:t.sourceAgentId,targetDomains:[e],relevanceScore:r,version:t.version+1,createdAt:new Date};return await this.storeKnowledge(n),await this.recordTransferEvent(t,n),f(n)}catch(r){return g(y(r))}}async validateRelevance(t,e){try{let r=t.relevanceScore;if(e.language&&t.content.metadata?.language===e.language&&(r+=.1),e.framework&&t.content.metadata?.framework===e.framework&&(r+=.1),e.tags.length>0&&t.content.metadata?.tags){let a=t.content.metadata.tags,o=e.tags.filter(c=>a.includes(c));r+=o.length/e.tags.length*.2}let n=(Date.now()-t.createdAt.getTime())/(1e3*60*60*24),s=Math.exp(-this.config.transferDecayFactor*n/30);return r*=s,t.expiresAt&&new Date>t.expiresAt&&(r*=.5),f(Math.min(1,Math.max(0,r)))}catch(r){return g(y(r))}}async createKnowledge(t,e,r,i,n=[],s){try{let a={id:w(),type:t,domain:e,content:{format:this.inferContentFormat(r),data:r,metadata:s},sourceAgentId:i,targetDomains:n,relevanceScore:1,version:1,createdAt:new Date};return await this.storeKnowledge(a),t==="embedding"&&Array.isArray(r)&&await this.memory.storeVector(`learning:knowledge:vector:${a.id}`,r,{knowledgeId:a.id}),f(a)}catch(a){return g(y(a))}}async getKnowledgeById(t){return ge(await this.memory.get(`learning:knowledge:shared:${t}`,{namespace:"learning-optimization"}),["createdAt","expiresAt"])||null}async bulkTransfer(t,e,r){try{let i=`learning:knowledge:project:${t}:`,n=(await br(this.memory,`${i}*`,{retrieve:_e})).filter(a=>a.startsWith(i)&&!a.slice(i.length).includes(":")),s=[];for(let a of n){let o=ge(await this.memory.get(a,_e),["createdAt","expiresAt"]);if(!o||r?.types&&!r.types.includes(o.type)||r?.minRelevance&&o.relevanceScore<r.minRelevance)continue;let c=await this.adaptContentForProject(o.content,t,e),u={...o,id:w(),content:c,relevanceScore:o.relevanceScore*(1-this.config.transferDecayFactor),version:o.version+1,createdAt:new Date};await this.memory.set(`learning:knowledge:project:${e}:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),s.push({knowledgeId:u.id,sourceDomain:o.domain,targetDomain:o.domain,originalRelevance:o.relevanceScore,transferredRelevance:u.relevanceScore,adaptations:["project-context-adapted"]})}return f(s)}catch(i){return g(y(i))}}async storeKnowledge(t){await this.memory.set(`learning:knowledge:shared:${t.id}`,t,{namespace:"learning-optimization",persist:!0}),await this.memory.set(`learning:knowledge:domain:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0}),await this.memory.set(`learning:knowledge:type:${t.type}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0})}matchesQuery(t,e){if(e.type&&t.type!==e.type||e.domain&&t.domain!==e.domain||e.minRelevance!==void 0&&t.relevanceScore<e.minRelevance)return!1;if(e.tags&&e.tags.length>0){let r=t.content.metadata?.tags||[];if(!e.tags.some(n=>r.includes(n)))return!1}return!0}determineSynthesizedType(t){let e=new Map;for(let n of t)e.set(n.type,(e.get(n.type)||0)+1);let r=t[0].type,i=0;for(let[n,s]of e)s>i&&(i=s,r=n);return r}determineSynthesizedDomain(t){let e=new Map;for(let n of t)e.set(n.domain,(e.get(n.domain)||0)+1);let r=t[0].domain,i=0;for(let[n,s]of e)s>i&&(i=s,r=n);return r}mergeKnowledgeContent(t){let e={},r=[];for(let i of t)if(r.push(i.content.data),i.content.metadata)for(let[n,s]of Object.entries(i.content.metadata))if(Array.isArray(s)){let a=e[n]||[];e[n]=[...new Set([...a,...s])]}else e[n]=s;return{format:"json",data:{synthesized:!0,sources:r},metadata:{...e,synthesizedFrom:t.map(i=>i.id),synthesizedAt:new Date().toISOString()}}}mergeTargetDomains(t){let e=new Set;for(let r of t){e.add(r.domain);for(let i of r.targetDomains)e.add(i)}return Array.from(e)}calculateTransferredRelevance(t,e){let r=t.relevanceScore;r*=1-this.config.transferDecayFactor;let i=this.getDomainCompatibility(t.domain,e);return r*=i,t.targetDomains.includes(e)&&(r+=this.config.crossDomainBoost),Math.min(1,Math.max(0,r))}getDomainCompatibility(t,e){let r={"test-generation":["test-execution","coverage-analysis"],"test-execution":["test-generation","coverage-analysis","quality-assessment"],"coverage-analysis":["test-generation","test-execution","quality-assessment"],"quality-assessment":["test-execution","coverage-analysis","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"],"chaos-resilience":["test-execution","quality-assessment"],"learning-optimization":["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence"],"enterprise-integration":["contract-testing","security-compliance","quality-assessment"],coordination:Ve.filter(i=>i!=="coordination")};return t===e?1:r[t]?.includes(e)?.8:.5}async adaptContentForDomain(t,e,r){return{...t,metadata:{...t.metadata||{},adaptedFrom:e,adaptedTo:r,adaptedAt:new Date().toISOString()}}}async adaptContentForProject(t,e,r){return{...t,metadata:{...t.metadata||{},sourceProject:e,targetProject:r,transferredAt:new Date().toISOString()}}}inferContentFormat(t){return typeof t=="string"?"text":Array.isArray(t)&&t.every(e=>typeof e=="number")?"embedding":"json"}async recordSharingEvent(t,e){await this.memory.set(`learning:knowledge:events:share:${t.id}:${Date.now()}`,{type:"share",knowledgeId:t.id,targetAgents:e.map(r=>r.value),timestamp:new Date},{namespace:"learning-optimization",ttl:86400*30})}async recordSynthesisEvent(t,e){await this.memory.set(`learning:knowledge:events:synthesis:${t.id}`,{type:"synthesis",synthesizedId:t.id,sourceIds:e,timestamp:new Date},{namespace:"learning-optimization",ttl:86400*30})}async recordTransferEvent(t,e){await this.memory.set(`learning:knowledge:events:transfer:${e.id}`,{type:"transfer",originalId:t.id,transferredId:e.id,originalDomain:t.domain,targetDomain:e.domain,timestamp:new Date},{namespace:"learning-optimization",ttl:86400*30})}};k();var vk={defaultConfidenceLevel:.95,minSamplesForOptimization:20,maxOptimizationIterations:100,improvementThreshold:.05,explorationRate:.1},As={namespace:"learning-optimization"},bk=.2,wk=.2,Ck=["__proto__","constructor","prototype"];function xs(l){return!Ck.includes(l)}var qr=class{constructor(t,e={}){this.memory=t;this.config={...vk,...e}}memory;config;async optimizeStrategy(t,e,r){try{let{measured:i,assignedExcluded:n}=Mt(r);if(i.length<this.config.minSamplesForOptimization){let T=n>0?` (${n} with an assigned reward excluded)`:"";return g(new Error(`Need at least ${this.config.minSamplesForOptimization} measured experiences for optimization${T}`))}let s=[...i].sort((T,x)=>gb(T)-gb(x)),a=Math.max(1,Math.floor(s.length*bk)),o=s.slice(0,-a),c=s.slice(-a),u=await this.optimizeParameters(t.parameters,o,e),d={name:`${t.name}-optimized`,parameters:u,expectedOutcome:this.predictOutcome(u,o)},m=await this.validateOptimization(t,d,c),p=this.calculateImprovement(this.scoreParameters(t.parameters,c,e),this.scoreParameters(u,c,e),e),h=m.length>0?m.filter(T=>T.passed).length/m.length:0,b=[];p===void 0&&b.push("improvement"),m.length===0&&b.push("confidence");let v={method:"held-out",trainingSamples:o.length,heldOutSamples:c.length,estimated:p===void 0?[]:["improvement"],...b.length>0?{unmeasured:b}:{}},C=this.inferDomainFromExperiences(i),S={id:w(),domain:C,objective:e,currentStrategy:t,optimizedStrategy:d,improvement:p??0,confidence:h,validationResults:m,evaluation:v};return await this.storeOptimizationResult(S),f(S)}catch(i){return g(y(i))}}async runABTest(t,e,r){try{let i=await this.collectStrategyMetrics(t,r.metric),n=await this.collectStrategyMetrics(e,r.metric),s=Math.max(1,r.minSamples);if(i.length<s||n.length<s){let h={winner:"inconclusive",evidenceStatus:"insufficient-evidence",unmeasured:[r.metric,"stdDev","pValue"],strategyAMetrics:{samples:i.length},strategyBMetrics:{samples:n.length},sampleSizeA:i.length,sampleSizeB:n.length};return await this.storeABTestResult(t,e,h),f(h)}let a=this.calculateMean(i),o=this.calculateMean(n),c=this.calculateStdDev(i),u=this.calculateStdDev(n),d=this.calculatePValue(i,n),m;d!==void 0&&d<1-r.confidenceLevel?m=a>o?"A":"B":m="inconclusive";let p={winner:m,strategyAMetrics:{[r.metric]:a,stdDev:c,samples:i.length},strategyBMetrics:{[r.metric]:o,stdDev:u,samples:n.length},...d===void 0?{unmeasured:["pValue"],pValueUnavailableReason:"zero-variance"}:{pValue:d},sampleSizeA:i.length,sampleSizeB:n.length};return await this.storeABTestResult(t,e,p),f(p)}catch(i){return g(y(i))}}async recommendStrategy(t){try{let e=await this.memory.search("learning:strategy:optimized:*",100,{namespace:"learning-optimization"}),r=[];for(let i of e){let n="learning-optimization:",s=i.startsWith(n)?i.slice(n.length):i,a=await this.memory.get(s,{namespace:"learning-optimization"});if(a&&t.tags.includes(a.domain)&&t.tags.includes(a.objective.metric)&&(!t.objective||t.tags.includes(t.objective.metric)&&a.objective.metric===t.objective.metric&&a.objective.direction===t.objective.direction)&&a.confidence>.6){let o=this.scoreContextMatch(a,t),c=a.improvement*a.confidence;r.push({strategy:a.optimizedStrategy,score:o*.4+c*.6})}}return r.length===0?f({name:"default-strategy",parameters:this.getDefaultParameters(t),expectedOutcome:{}}):(r.sort((i,n)=>n.score-i.score),f(r[0].strategy))}catch(e){return g(y(e))}}async evaluateStrategy(t,e){try{let{measured:r,assignedExcluded:i}=Mt(e);if(r.length===0)return f({strategy:t,metrics:{},strengths:[],weaknesses:[],improvementAreas:[],evidenceStatus:"insufficient-evidence",...i>0?{assignedRewardsExcluded:i}:{}});let n={},s=this.calculateSuccessRate(r),a=this.calculateAverageDuration(r),o=this.calculateAverageReward(r);n.success_rate=s,n.avg_duration_ms=a,n.avg_reward=o;let c=[];s>.8&&c.push("High success rate"),a<5e3&&c.push("Fast execution"),o>.7&&c.push("Consistently good rewards");let u=[];s<.5&&u.push("Low success rate needs investigation"),a>3e4&&u.push("Slow execution time"),o<.3&&u.push("Low reward values");let d=this.identifyImprovementAreas(t,n,r),m={strategy:t,metrics:n,strengths:c,weaknesses:u,improvementAreas:d};return await this.storeStrategyEvaluation(m),f(m)}catch(r){return g(y(r))}}async trackMetrics(t,e){try{let r={strategyId:t,metrics:e,timestamp:new Date,samples:1},i=`learning:metrics:history:${t}:${Date.now()}`;return await this.memory.set(i,r,{namespace:"learning-optimization",ttl:86400*30}),await this.updateAggregatedMetrics(t,e),f(void 0)}catch(r){return g(y(r))}}async getMetricsHistory(t,e=100){try{let r=await this.searchLearningKeys(`learning:metrics:history:${t}:*`,e),i=[];for(let n of r){let s=ge(await this.memory.get(n,As),["timestamp"]);s&&i.push(s)}return i.sort((n,s)=>n.timestamp.getTime()-s.timestamp.getTime()),f(i)}catch(r){return g(y(r))}}async gridSearchOptimize(t,e,r){try{let i=this.generateParameterCombinations(t),n={},s=e.direction==="maximize"?-1/0:1/0;for(let a of i){let o=this.scoreParameters(a,r,e);(e.direction==="maximize"?o>s:o<s)&&(s=o,n=a)}return f(n)}catch(i){return g(y(i))}}async searchLearningKeys(t,e){let r=`${As.namespace}:`;return(await this.memory.search(t,e,As)).map(n=>n.startsWith(r)?n.slice(r.length):n)}async optimizeParameters(t,e,r){let i={...t};for(let[n,s]of Object.entries(t))if(xs(n)&&typeof s=="number"){let a=[-.1,-.05,0,.05,.1],o=0,c=this.scoreParameters(i,e,r);for(let u of a){let d={...i,[n]:s*(1+u)},m=this.scoreParameters(d,e,r);(r.direction==="maximize"?m>c:m<c)&&(c=m,o=u)}i[n]=s*(1+o)}return i}scoreParameters(t,e,r){let i=0,n=0;for(let s of e){let a=s.result.success?1:.5,o=this.calculateParamSimilarity(t,s.state.context),c=s.result.outcome[r.metric]??0;i+=o*c*a,n+=a}return n>0?i/n:0}calculateParamSimilarity(t,e){let r=0,i=0;for(let[n,s]of Object.entries(t))if(e[n]!==void 0)if(i++,typeof s=="number"&&typeof e[n]=="number"){let a=Math.abs(s-e[n]),o=Math.max(Math.abs(s),Math.abs(e[n]),1);r+=1-a/o}else s===e[n]&&r++;return i>0?r/i:.5}predictOutcome(t,e){let r={},i={},n={};for(let s of e)if(s.result.success)for(let[a,o]of Object.entries(s.result.outcome))xs(a)&&typeof o=="number"&&(i[a]=(i[a]||0)+o,n[a]=(n[a]||0)+1);for(let[s,a]of Object.entries(i))xs(s)&&(r[s]=a/n[s]);return r}async validateOptimization(t,e,r){let i=[],n=Object.entries(e.expectedOutcome);if(n.length===0)return i;for(let s of r){let a=n.filter(([c])=>typeof s.result.outcome[c]=="number");if(a.length===0)continue;let o=a.every(([c,u])=>{let d=s.result.outcome[c];return Math.abs(d-u)/Math.max(u,1)<wk});i.push({testId:s.id,passed:o,metrics:s.state.metrics})}return i}calculateImprovement(t,e,r){if(t===0)return;let i=e-t,n=r.direction==="maximize"?i/t:-i/t;return Math.max(-1,Math.min(1,n))}inferDomainFromExperiences(t){let e=new Map;for(let n of t)e.set(n.domain,(e.get(n.domain)||0)+1);let r="learning-optimization",i=0;for(let[n,s]of e)s>i&&(i=s,r=n);return r}async collectStrategyMetrics(t,e){let r=await this.searchLearningKeys(`learning:metrics:history:${t.name}:*`,1e3),i=[];for(let n of r){let a=(await this.memory.get(n,As))?.metrics[e];typeof a=="number"&&Number.isFinite(a)&&i.push(a)}return i}calculateMean(t){return t.length===0?0:t.reduce((e,r)=>e+r,0)/t.length}calculateStdDev(t){if(t.length===0)return 0;let e=this.calculateMean(t),r=t.map(i=>Math.pow(i-e,2));return Math.sqrt(r.reduce((i,n)=>i+n,0)/t.length)}calculatePValue(t,e){let r=this.calculateMean(t),i=this.calculateMean(e),n=Math.pow(this.calculateStdDev(t),2),s=Math.pow(this.calculateStdDev(e),2),a=t.length,o=e.length,c=Math.sqrt(n/a+s/o);if(c===0)return;let u=Math.abs(r-i)/c,d=2*(1-this.normalCDF(u));return Math.max(0,Math.min(1,d))}normalCDF(t){let e=.254829592,r=-.284496736,i=1.421413741,n=-1.453152027,s=1.061405429,a=.3275911,o=t<0?-1:1;t=Math.abs(t)/Math.sqrt(2);let c=1/(1+a*t),u=1-((((s*c+n)*c+i)*c+r)*c+e)*c*Math.exp(-t*t);return .5*(1+o*u)}scoreContextMatch(t,e){let r=0,i=0;return e.tags.some(n=>n===t.objective.metric)&&(r+=1),i+=1,e.tags.some(n=>n===t.domain)&&(r+=1),i+=1,i>0?r/i:.5}getDefaultParameters(t){let e={timeout:3e4,retryCount:3,concurrency:4};return t.framework&&(e.framework=t.framework),t.language&&(e.language=t.language),e}calculateSuccessRate(t){return t.length===0?0:t.filter(e=>e.result.success).length/t.length}calculateAverageDuration(t){return t.length===0?0:t.reduce((e,r)=>e+r.result.duration,0)/t.length}calculateAverageReward(t){return t.length===0?0:t.reduce((e,r)=>e+r.reward,0)/t.length}identifyImprovementAreas(t,e,r){let i=[];e.success_rate<.8&&i.push("Increase success rate by tuning parameters"),e.avg_duration_ms>1e4&&i.push("Optimize for faster execution"),e.avg_reward<.5&&i.push("Improve reward through better strategy selection");let n=t.parameters;return n.retryCount<2&&i.push("Consider increasing retry count for resilience"),n.concurrency>8&&i.push("High concurrency may cause resource contention"),i}generateParameterCombinations(t){let e=Object.keys(t);if(e.length===0)return[{}];let r=[];function i(n,s){if(n===e.length){r.push({...s});return}let a=e[n];if(!xs(a)){i(n+1,s);return}for(let o of t[a])s[a]=o,i(n+1,s)}return i(0,{}),r}async updateAggregatedMetrics(t,e){let r=`learning:metrics:aggregated:${t}`,n=(await this.memory.get(r,As))?.metrics||{};for(let[s,a]of Object.entries(e))xs(s)&&(n[s]||(n[s]={sum:0,count:0}),n[s].sum+=a,n[s].count+=1);await this.memory.set(r,{metrics:n,updatedAt:new Date},{namespace:"learning-optimization",persist:!0})}async storeOptimizationResult(t){await this.memory.set(`learning:strategy:optimized:${t.id}`,t,{namespace:"learning-optimization",persist:!0}),await this.memory.set(`learning:strategy:domain:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0})}async storeABTestResult(t,e,r){let i=w();await this.memory.set(`learning:abtest:${i}`,{testId:i,strategyA:t.name,strategyB:e.name,result:r,timestamp:new Date},{namespace:"learning-optimization",persist:!0})}async storeStrategyEvaluation(t){let e=w();await this.memory.set(`learning:evaluation:${e}`,{...t,evaluatedAt:new Date},{namespace:"learning-optimization",ttl:86400*7})}};function gb(l){let t=new Date(l.timestamp).getTime();return Number.isNaN(t)?0:t}k();gr();var Sk={metricsRetentionDays:90,anomalyThreshold:2.5,trendWindowSize:7,alertThresholds:{error_rate:.05,latency_p99:5e3,memory_usage:.9,cpu_usage:.8}},Gr=class{constructor(t,e={}){this.memory=t;this.config={...Sk,...e}}memory;config;async recordMetric(t,e,r,i,n=[]){try{let s={id:w(),name:t,value:e,unit:r,domain:i,tags:n,timestamp:new Date};return await this.memory.set(`production:metric:${s.id}`,s,{namespace:"learning-optimization",ttl:this.config.metricsRetentionDays*86400}),await this.indexMetric(s),await this.checkForAnomalies(s),f(s.id)}catch(s){return g(y(s))}}async recordMetricsBatch(t){try{let e=[];for(let r of t){let i=await this.recordMetric(r.name,r.value,r.unit,r.domain,r.tags);i.success&&e.push(i.value)}return f(e)}catch(e){return g(y(e))}}async getMetricsHistory(t,e,r){try{let i=r?`production:metric:index:${t}:${r}:*`:`production:metric:index:${t}:*`,n=await this.memory.search(i,1e3),s=[];for(let a of n){let o=await this.memory.get(a);if(o){let c=ge(await this.memory.get(`production:metric:${o}`),["timestamp"]);c&&e.contains(c.timestamp)&&s.push(c)}}return s.sort((a,o)=>a.timestamp.getTime()-o.timestamp.getTime()),f(s)}catch(i){return g(y(i))}}async recordIncident(t,e,r,i,n){try{let s={id:w(),severity:t,title:e,description:r,domain:i,metrics:n,startedAt:new Date};return await this.memory.set(`production:incident:${s.id}`,s,{namespace:"learning-optimization",persist:!0}),await this.indexIncident(s),await this.createExperienceFromIncident(s),f(s)}catch(s){return g(y(s))}}async resolveIncident(t,e,r){try{let i=ge(await this.memory.get(`production:incident:${t}`),["startedAt","resolvedAt"]);if(!i)return g(new Error(`Incident ${t} not found`));let n={...i,rootCause:e,resolution:r,resolvedAt:new Date};return await this.memory.set(`production:incident:${t}`,n,{namespace:"learning-optimization",persist:!0}),await this.updateExperienceWithResolution(n),f(n)}catch(i){return g(y(i))}}async getRecentIncidents(t=10,e){try{let r=e?`production:incident:index:domain:${e}:*`:"production:incident:*",i=await this.memory.search(r,t*2),n=[];for(let a of i)if(a.includes(":index:")){let o=await this.memory.get(a);if(o){let c=ge(await this.memory.get(`production:incident:${o}`),["startedAt","resolvedAt"]);c&&n.push(c)}}else{let o=ge(await this.memory.get(a),["startedAt","resolvedAt"]);o&&n.push(o)}n.sort((a,o)=>o.startedAt.getTime()-a.startedAt.getTime());let s=Array.from(new Map(n.map(a=>[a.id,a])).values());return f(s.slice(0,t))}catch(r){return g(y(r))}}async getProductionHealth(){try{let t=["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence","code-intelligence","security-compliance","learning-optimization"],e={},r={},i="healthy",n=0,s=0;for(let d of t){let m=await this.getDomainHealth(d);e[d]=m,m.status==="degraded"&&n++,m.status==="unhealthy"&&s++;for(let[p,h]of Object.entries(m.metrics))r[`${d}_${p}`]=h}s>0?i="unhealthy":n>t.length/3&&(i="degraded");let a=await this.calculateTrends(),o=await this.getRecentIncidents(5),c=o.success?o.value:[],u=this.generateHealthRecommendations(e,r,c);return f({overall:i,domains:e,metrics:r,trends:a,recentIncidents:c,recommendations:u})}catch(t){return g(y(t))}}async getDomainHealth(t){let e=zt.lastNDays(1),r=await this.getMetricsHistory("*",e,t),i=Be();if(r.success)for(let o of r.value)i[o.name],i[o.name]=o.value;let n=await this.getRecentIncidents(100,t),s=n.success?n.value.filter(o=>!o.resolvedAt).length:0,a="healthy";return s>2?a="unhealthy":s>0&&(a="degraded"),i.error_rate>this.config.alertThresholds.error_rate?a="unhealthy":i.latency_p99>this.config.alertThresholds.latency_p99&&(a="degraded"),{status:a,metrics:i,activeIncidents:s}}async calculateTrends(){let t=[],e=["error_rate","latency_p99","success_rate"],r=this.config.trendWindowSize;for(let i of e)for(let n=0;n<r;n++){let s=new Date;s.setDate(s.getDate()-n),s.setHours(0,0,0,0);let a=new Date(s);a.setHours(23,59,59,999);let o=zt.create(s,a),c=await this.getMetricsHistory(i,o);if(c.success&&c.value.length>0){let u=c.value.reduce((d,m)=>d+m.value,0)/c.value.length;t.push({timestamp:s,metric:i,value:u})}}return t}generateHealthRecommendations(t,e,r){let i=[];for(let[a,o]of Object.entries(t))o.status==="unhealthy"?i.push(`Domain ${a} is unhealthy. Review active incidents and metrics.`):o.status==="degraded"&&i.push(`Domain ${a} is degraded. Monitor closely.`);for(let[a,o]of Object.entries(e)){let c=a.split("_").slice(-2).join("_"),u=this.config.alertThresholds[c];u&&o>u&&i.push(`Metric ${a} (${o.toFixed(2)}) exceeds threshold (${u})`)}let n=r.filter(a=>!a.resolvedAt);return n.length>3&&i.push(`${n.length} unresolved incidents require attention`),r.reduce((a,o)=>(a[o.severity]=(a[o.severity]||0)+1,a),{}).critical>2&&i.push("Multiple critical incidents detected. Consider system-wide review."),i.length===0&&i.push("All systems operating within normal parameters."),i}async extractInsights(t,e){try{let r=await this.getMetricsHistory("*",t,e),i=r.success?r.value:[],n=await this.getRecentIncidents(50,e),s=n.success?n.value:[],a=i.length,o=s.filter(p=>p.resolvedAt),c=s.length>0?o.length/s.length:1,u=this.calculateRewardFromIncidents(s),d=this.generateInsightRecommendations(i,s),m=this.detectMetricAnomalies(i);return f({experienceCount:a,successRate:c,avgReward:u,patterns:[],anomalies:m,recommendations:d})}catch(r){return g(y(r))}}async recordMilestone(t,e,r){try{let i={name:t,achievedAt:new Date,domain:e};return await this.memory.set(`production:milestone:${w()}`,{...i,metrics:r},{namespace:"learning-optimization",persist:!0}),f(i)}catch(i){return g(y(i))}}async getRecentMilestones(t=10){try{let e=await this.memory.search("production:milestone:*",t),r=[];for(let i of e){let n=ge(await this.memory.get(i),["achievedAt"]);n&&r.push(n)}return r.sort((i,n)=>n.achievedAt.getTime()-i.achievedAt.getTime()),f(r.slice(0,t))}catch(e){return g(y(e))}}async indexMetric(t){await this.memory.set(`production:metric:index:${t.name}:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",ttl:this.config.metricsRetentionDays*86400})}async indexIncident(t){await this.memory.set(`production:incident:index:domain:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0}),await this.memory.set(`production:incident:index:severity:${t.severity}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0})}async checkForAnomalies(t){let e=zt.lastNDays(7),r=await this.getMetricsHistory(t.name,e,t.domain);if(!r.success||r.value.length<10)return;let i=r.value.map(o=>o.value),n=i.reduce((o,c)=>o+c,0)/i.length,s=Math.sqrt(i.reduce((o,c)=>o+Math.pow(c-n,2),0)/i.length),a=Math.abs(t.value-n)/(s||1);a>this.config.anomalyThreshold&&await this.memory.set(`production:anomaly:${w()}`,{metricId:t.id,metricName:t.name,value:t.value,mean:n,stdDev:s,deviation:a,timestamp:new Date},{namespace:"learning-optimization",ttl:86400*7})}async createExperienceFromIncident(t){let e={context:{incidentId:t.id,severity:t.severity,domain:t.domain},metrics:t.metrics},r={success:!1,outcome:t.metrics,duration:0},i={id:w(),agentId:{value:"production-intel",domain:"learning-optimization",type:"analyzer"},domain:t.domain,action:`incident-${t.severity}`,state:e,result:r,reward:this.calculateIncidentReward(t),timestamp:t.startedAt};await this.memory.set(`learning:experience:${i.id}`,i,{namespace:"learning-optimization",ttl:86400*30})}async updateExperienceWithResolution(t){if(!t.resolvedAt)return;let e={context:{incidentId:t.id,rootCause:t.rootCause,resolution:t.resolution},metrics:t.metrics},r=t.resolvedAt.getTime()-t.startedAt.getTime(),i={success:!0,outcome:{...t.metrics,resolution_time_ms:r},duration:r},n={id:w(),agentId:{value:"production-intel",domain:"learning-optimization",type:"analyzer"},domain:t.domain,action:`resolution-${t.severity}`,state:e,result:i,reward:1-this.calculateIncidentReward(t),timestamp:t.resolvedAt};await this.memory.set(`learning:experience:${n.id}`,n,{namespace:"learning-optimization",ttl:86400*30})}calculateIncidentReward(t){return-({critical:.9,high:.7,medium:.4,low:.2}[t.severity]||.5)}calculateRewardFromIncidents(t){if(t.length===0)return .8;let e={critical:.1,high:.3,medium:.6,low:.8},r=0,i=0;for(let n of t){let s=e[n.severity]||.5,a=n.resolvedAt?.2:0;r+=s+a,i++}return i>0?r/i:.8}generateInsightRecommendations(t,e){let r=[],i=new Map;for(let n of t){let s=i.get(n.name)||[];s.push(n.value),i.set(n.name,s)}for(let[n,s]of i){let a=this.calculateTrendDirection(s);a==="increasing"&&n.includes("error")?r.push(`${n} is trending upward. Investigate root causes.`):a==="decreasing"&&n.includes("success")&&r.push(`${n} is declining. Review recent changes.`)}if(e.length>0){let n=new Map;for(let s of e)n.set(s.domain,(n.get(s.domain)||0)+1);for(let[s,a]of n)a>3&&r.push(`Domain ${s} has ${a} incidents. Consider preventive measures.`)}return r}detectMetricAnomalies(t){let e=[],r=new Map;for(let i of t){let n=r.get(i.name)||[];n.push(i),r.set(i.name,n)}for(let[i,n]of r){if(n.length<5)continue;let s=n.map(c=>c.value),a=s.reduce((c,u)=>c+u,0)/s.length,o=Math.sqrt(s.reduce((c,u)=>c+Math.pow(u-a,2),0)/s.length);for(let c of n){let u=Math.abs(c.value-a)/(o||1);u>this.config.anomalyThreshold&&e.push({experienceId:c.id,type:"outlier-reward",description:`${i} value ${c.value.toFixed(2)} is ${u.toFixed(1)} std deviations from mean`,deviation:u})}}return e}calculateTrendDirection(t){if(t.length<3)return"stable";let e=t.slice(0,Math.floor(t.length/2)),r=t.slice(Math.floor(t.length/2)),i=e.reduce((a,o)=>a+o,0)/e.length,s=(r.reduce((a,o)=>a+o,0)/r.length-i)/(i||1);return s>.1?"increasing":s<-.1?"decreasing":"stable"}};async function hb(l,t,e){await l.set(`learning:strategy:current:${t}`,e,{namespace:"learning-optimization",persist:!0})}function fb(l,t){let e=l.map(r=>r.result.outcome[t]??0).filter(r=>!isNaN(r));return e.length===0?0:e.reduce((r,i)=>r+i,0)/e.length}function yb(l){return{"test-generation":["test-execution","coverage-analysis"],"test-execution":["test-generation","coverage-analysis","quality-assessment"],"coverage-analysis":["test-generation","test-execution","quality-assessment"],"quality-assessment":["test-execution","coverage-analysis","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"],"chaos-resilience":["test-execution","quality-assessment"],"learning-optimization":Ve.filter(e=>e!=="learning-optimization"),"enterprise-integration":["contract-testing","security-compliance","quality-assessment"],coordination:Ve.filter(e=>e!=="coordination")}[l]||[]}function vb(l){let t=[],e=new Set;for(let r of l){if(e.has(r.id))continue;let i=[r];e.add(r.id);for(let n of l)e.has(n.id)||r.type===n.type&&r.domain===n.domain&&Rk(r.context,n.context)&&(i.push(n),e.add(n.id));i.length>=2&&t.push(i)}return t}function Rk(l,t){return l.tags.some(e=>t.tags.includes(e))}function bb(l,t,e){let r=JSON.stringify({patternCount:l.length,knowledgeCount:t.length,strategyCount:e.length,patternIds:l.map(n=>n.id).sort(),knowledgeIds:t.map(n=>n.id).sort(),strategyIds:e.map(n=>n.id).sort()}),i=0;for(let n=0;n<r.length;n++){let s=r.charCodeAt(n);i=(i<<5)-i+s,i=i&i}return Math.abs(i).toString(16)}_();var ji=A.create("learning-optimization/consensus");async function wb(l,t,e,r){let i=W({id:w(),type:"pattern-recommendation",confidence:t,description:`Verify pattern recommendation: ${l.name} (${l.type}) for domain ${l.domain}`,payload:l,detectedBy:"learning-optimization-coordinator",severity:t>.9?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(ji.info(`Pattern recommendation '${l.name}' verified by consensus`),!0):(ji.warn(`Pattern recommendation '${l.name}' NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}async function Cb(l,t,e,r){let i=W({id:w(),type:"optimization-suggestion",confidence:t,description:`Verify optimization: ${l.metric} from ${l.currentValue} to ${l.targetValue} via ${l.strategy}`,payload:l,detectedBy:"learning-optimization-coordinator",severity:t>.85?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(ji.info(`Optimization suggestion for '${l.metric}' verified by consensus`),!0):(ji.warn(`Optimization suggestion for '${l.metric}' NOT verified`),!1)}return!0}async function Sb(l,t,e,r){let i=W({id:w(),type:"cross-domain-insight",confidence:t,description:`Verify cross-domain insight: ${l.description}`,payload:l,detectedBy:"learning-optimization-coordinator",severity:"high"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(ji.info(`Cross-domain insight verified by consensus for ${l.targetDomains.length} target domains`),!0):(ji.warn(`Cross-domain insight NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}var Ak={maxConcurrentWorkflows:3,defaultTimeout:12e4,enableAutoOptimization:!0,publishEvents:!0,learningCycleIntervalMs:36e5,enableDreamScheduler:!0,dreamCycleIntervalMs:36e5,enableExperienceTrigger:!0,experienceThreshold:50,enableQualityGateFailureTrigger:!0,autoApplyHighConfidenceInsights:!1,autoApplyConfidenceThreshold:.8,enableMinCutAwareness:!0,topologyHealthThreshold:.5,pauseOnCriticalTopology:!1,enableConsensus:!0,consensusThreshold:.7,consensusStrategy:"weighted",consensusMinModels:2},Ge=A.create("learning-optimization"),Gc=class extends re{constructor(e,r,i,n={},s){let a={...Ak,...n};super(e,"learning-optimization",a,{verifyFindingTypes:["pattern-recommendation","optimization-suggestion","cross-domain-insight"]});this.memory=r;this.agentCoordinator=i;this.learningService=new zr({memory:r,llmRouter:s}),this.transferService=new Br(r),this.optimizerService=new qr(r),this.productionIntel=new Gr(r)}memory;agentCoordinator;learningService;transferService;optimizerService;productionIntel;sona=null;dreamScheduler=null;async onInitialize(){try{this.sona=await De({domain:"learning-optimization",loadOnInit:!0,autoSaveInterval:6e4,maxPatterns:1e4,minConfidence:.5}),Ge.info("PersistentSONAEngine initialized for pattern learning")}catch(e){Ge.error("Failed to initialize PersistentSONAEngine:",e instanceof Error?e:void 0),Ge.warn("Continuing without SONA pattern persistence"),this.sona=null}if(this.config.enableDreamScheduler)try{let e=await Fs();await e.initialize(),this.dreamScheduler=Gm({dreamEngine:e,eventBus:this.eventBus,memoryBackend:this.memory},{autoScheduleIntervalMs:this.config.dreamCycleIntervalMs,enableExperienceTrigger:this.config.enableExperienceTrigger,experienceThreshold:this.config.experienceThreshold,enableQualityGateFailureTrigger:this.config.enableQualityGateFailureTrigger,autoApplyHighConfidenceInsights:this.config.autoApplyHighConfidenceInsights,insightConfidenceThreshold:this.config.autoApplyConfidenceThreshold}),await this.dreamScheduler.initialize(),this.dreamScheduler.start(),Ge.info("DreamScheduler initialized and started")}catch{Ge.warn("Failed to initialize DreamScheduler:")}this.subscribeToEvents(),await this.loadWorkflowState()}async onDispose(){if(await this.saveWorkflowState(),this.dreamScheduler){try{await this.dreamScheduler.dispose(),Ge.info("DreamScheduler disposed")}catch(e){Ge.error("Error disposing DreamScheduler:",e instanceof Error?e:void 0)}this.dreamScheduler=null}if(this.initialized&&this.sona)try{await this.sona.close()}catch(e){Ge.error("Error closing SONA engine:",e instanceof Error?e:void 0)}}getActiveWorkflows(){return super.getActiveWorkflows()}async runLearningCycle(e){let r=w();try{if(this.startWorkflow(r,"learning-cycle"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&Ge.warn("Topology degraded, using conservative strategy for learning cycle"),this.minCutMixin.shouldPauseOperations())return g(new Error("Learning cycle paused: topology is in critical state"));let i=await this.spawnLearningAgent(r,e);if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);this.addAgentToWorkflow(r,i.value);let n=zt.lastNDays(1),s=await this.getExperiencesForDomain(e,n),a=s.success?Mt(s.value).measured:[];this.updateWorkflowProgress(r,20);let o=await this.learningService.mineExperiences(e,n),c=o.success?o.value.patterns.length:0;this.updateWorkflowProgress(r,50);let u=0,d=[];if(a.length>=10){let h={metric:"success_rate",direction:"maximize",constraints:[]},b=await this.getCurrentStrategy(e),v=await this.optimizerService.optimizeStrategy(b,h,a);if(v.success){u=1;let C=v.value.optimizedStrategy.expectedOutcome[h.metric];typeof C=="number"&&d.push({metric:h.metric,before:this.calculateMetricValue(a,h.metric),after:C,percentChange:v.value.improvement*100,estimated:!0})}}this.updateWorkflowProgress(r,80);let m=0;o.success&&o.value.recommendations.length>0&&(await this.transferService.createKnowledge("heuristic",e,o.value.recommendations,{value:`learning-agent-${r.slice(0,8)}`,domain:"learning-optimization",type:"analyzer"},[e])).success&&(m=1),this.completeWorkflow(r),await this.agentCoordinator.stop(i.value);let p={domain:e,experiencesProcessed:a.length,patternsLearned:c,strategiesOptimized:u,knowledgeGenerated:m,improvements:d};return this.config.publishEvents&&c>0&&await this.publishPatternConsolidated(c,[e]),f(p)}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async optimizeAllStrategies(){let e=w();try{if(this.startWorkflow(e,"optimization"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&Ge.warn("Topology degraded, using conservative optimization strategy"),this.minCutMixin.shouldPauseOperations())return g(new Error("Optimization paused: topology is in critical state"));let r={},i=0,n=0,s=0,a=Ve.filter(c=>c!=="learning-optimization");for(let c=0;c<a.length;c++){let u=a[c];this.updateWorkflowProgress(e,Math.round(c/a.length*100));let d=zt.lastNDays(7),m=await this.getExperiencesForDomain(u,d);if(!m.success||m.value.length<10)continue;let p=m.value,h={metric:"success_rate",direction:"maximize",constraints:[]},b=await this.getCurrentStrategy(u),v=await this.optimizerService.optimizeStrategy(b,h,p);v.success&&(i++,n+=v.value.improvement,s++,r[u]={strategiesOptimized:1,avgImprovement:v.value.improvement,bestStrategy:v.value.optimizedStrategy},await this.storeStrategy(u,v.value.optimizedStrategy))}this.completeWorkflow(e);let o={domainsOptimized:s,totalStrategies:i,avgImprovement:i>0?n/i:0,improvementEstimated:!0,byDomain:r};return this.config.publishEvents&&i>0&&await this.publishOptimizationApplied(o),f(o)}catch(r){return this.failWorkflow(e,String(r)),g(y(r))}}async shareCrossDomainLearnings(){let e=w();try{if(this.startWorkflow(e,"transfer"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&Ge.warn("Topology degraded, limiting cross-domain transfer scope"),this.minCutMixin.shouldPauseOperations())return g(new Error("Cross-domain sharing paused: topology is in critical state"));let r=0,i=[],n=0,s=0,a=0,o=await this.transferService.queryKnowledge({minRelevance:.7,limit:100});if(!o.success)return this.failWorkflow(e,o.error.message),g(o.error);let c=o.value;for(let m of c){let p=this.getRelatedDomains(m.domain);for(let h of p){if(h===m.domain)continue;s++,(await this.transferService.transferKnowledge(m,h)).success&&(a++,r++,i.includes(h)||i.push(h))}this.updateWorkflowProgress(e,Math.round(r/(c.length*2)*100))}let u=await this.learningService.getPatternStats();if(u.success){let m=u.value.topPatterns;if(m.length>=2){let p=this.findSimilarPatterns(m);for(let h of p)h.length>=2&&(await this.learningService.consolidatePatterns(h.map(v=>v.id))).success&&n++}}this.completeWorkflow(e);let d={knowledgeShared:r,domainsUpdated:i,transferSuccessRate:s>0?a/s:null,newPatternsCreated:n};return this.config.publishEvents&&r>0&&await this.publishTransferCompleted(d),f(d)}catch(r){return this.failWorkflow(e,String(r)),g(y(r))}}async getLearningDashboard(){try{let e=await this.learningService.getPatternStats(),r=e.success?e.value:null,i=await this.transferService.queryKnowledge({limit:1e3}),n=i.success?i.value.length:0,s=zt.lastNDays(1),a=0;for(let b of Ve){let v=await this.getExperiencesForDomain(b,s);v.success&&(a+=v.value.length)}let o=await this.productionIntel.getProductionHealth(),c=o.success?o.value.trends:[],u=await this.productionIntel.getRecentMilestones(5),d=u.success?u.value:[],m=r&&r.totalPatterns>0?r.avgSuccessRate*.6+r.avgConfidence*.4:null,p=[];if(r){let b=Object.entries(r.byDomain).filter(([v,C])=>C>0).map(([v,C])=>({domain:v,score:C})).sort((v,C)=>C.score-v.score);p.push(...b.slice(0,3).map(v=>v.domain))}let h={overallLearningRate:m,totalPatterns:r?.totalPatterns||0,totalKnowledge:n,experiencesLast24h:a,topPerformingDomains:p,learningTrend:c,recentMilestones:d};return f(h)}catch(e){return g(y(e))}}learnPattern(e,r,i,n,s,a){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.createPattern(e,r,i,n,s,a)}ensureInitialized(){if(!this.initialized)throw new Error("[LearningOptimizationCoordinator] Not initialized. Call initialize() first.")}ensureSONAAvailable(){if(!this.sona)throw new Error("[LearningOptimizationCoordinator] SONA engine is not available. Pattern persistence failed during initialization.")}async adaptPattern(e,r,i){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.adaptPattern(e,r,i)}getSONAStats(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getStats()}async getSONAPersistedStats(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getPersistedStats()}getSONAPatterns(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getAllPatterns()}getSONAPatternsByType(e){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getPatternsByType(e)}getSONAPatternsByDomain(e){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getPatternsByDomain(e)}updateSONAPattern(e,r,i){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.updatePattern(e,r,i)}forceSONALearning(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.forceLearn()}isSONAAvailable(){return this.initialized&&this.sona!==null}exportSONAPatterns(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.exportPatterns()}importSONAPatterns(e){this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.importPatterns(e)}async verifySONAPerformance(e=100){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.verifyPerformance(e)}async triggerDreamCycle(e){if(!this.dreamScheduler)throw new Error("[LearningOptimizationCoordinator] DreamScheduler not initialized");let r=await this.dreamScheduler.triggerDream(e);return this.config.publishEvents&&await this.publishDreamCycleCompleted(r.cycle.id,r.cycle.durationMs??0,r.cycle.conceptsProcessed,r.insights.map(i=>({id:i.id,type:i.type,description:i.description,noveltyScore:i.noveltyScore,confidenceScore:i.confidenceScore,actionable:i.actionable,suggestedAction:i.suggestedAction,sourceConcepts:i.sourceConcepts})),r.patternsCreated),r}getDreamStatus(){return this.dreamScheduler?.getStatus()??null}isDreamSchedulerAvailable(){return this.dreamScheduler!==null}getLastDreamResult(){return this.dreamScheduler?.getLastDreamResult()??null}async triggerQuickDream(){if(!this.dreamScheduler)throw new Error("[LearningOptimizationCoordinator] DreamScheduler not initialized");return this.dreamScheduler.triggerQuickDream()}async triggerFullDream(){if(!this.dreamScheduler)throw new Error("[LearningOptimizationCoordinator] DreamScheduler not initialized");return this.dreamScheduler.triggerFullDream()}async exportModels(e){let r=w();try{this.startWorkflow(r,"export");let i=e||Ve,n=[],s=[],a=[],o=await Bc(this.memory,{retrieve:_e});for(let p of o)i.includes(p.domain)&&n.push(p);this.updateWorkflowProgress(r,30);let c=await this.transferService.queryKnowledge({limit:Number.POSITIVE_INFINITY});if(c.success)for(let p of c.value)i.includes(p.domain)&&s.push(p);this.updateWorkflowProgress(r,60);let u=await br(this.memory,"learning:strategy:optimized:*",{retrieve:_e});for(let p of u){let h=await this.memory.get(p,_e);h&&i.includes(h.domain)&&a.push(h)}this.updateWorkflowProgress(r,90);let d=this.calculateChecksum(n,s,a);return this.completeWorkflow(r),f({version:"1.0.0",exportedAt:new Date,patterns:n,knowledge:s,strategies:a,checksum:d})}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async importModels(e){let r=w();try{if(this.startWorkflow(r,"import"),this.calculateChecksum(e.patterns,e.knowledge,e.strategies)!==e.checksum)return this.failWorkflow(r,"Checksum mismatch"),g(new Error("Import failed: checksum mismatch"));let n=0,s=0,a=0,o=[];for(let u of e.patterns){let d=await this.memory.get(`learning:pattern:${u.id}`,{namespace:"learning-optimization"});d?d.confidence<u.confidence?(await this.memory.set(`learning:pattern:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),n++,o.push({type:"pattern",id:u.id,reason:"Existing pattern had lower confidence",resolution:"overwrite"})):o.push({type:"pattern",id:u.id,reason:"Existing pattern has higher confidence",resolution:"skip"}):(await this.memory.set(`learning:pattern:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),n++),this.updateWorkflowProgress(r,Math.round(n/e.patterns.length*30))}for(let u of e.knowledge){let d=await this.memory.get(`learning:knowledge:shared:${u.id}`,_e);d?u.version>d.version?(await this.memory.set(`learning:knowledge:shared:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),s++,o.push({type:"knowledge",id:u.id,reason:"Import has newer version",resolution:"overwrite"})):o.push({type:"knowledge",id:u.id,reason:"Existing knowledge is same or newer version",resolution:"skip"}):(await this.memory.set(`learning:knowledge:shared:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),s++),this.updateWorkflowProgress(r,30+Math.round(s/e.knowledge.length*30))}for(let u of e.strategies){let d=await this.memory.get(`learning:strategy:optimized:${u.id}`,_e);d?u.confidence>d.confidence?(await this.memory.set(`learning:strategy:optimized:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),a++,o.push({type:"strategy",id:u.id,reason:"Import has higher confidence",resolution:"overwrite"})):o.push({type:"strategy",id:u.id,reason:"Existing strategy has higher confidence",resolution:"skip"}):(await this.memory.set(`learning:strategy:optimized:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),a++),this.updateWorkflowProgress(r,60+Math.round(a/e.strategies.length*40))}return this.completeWorkflow(r),f({patternsImported:n,knowledgeImported:s,strategiesImported:a,conflicts:o,resolved:!0})}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}subscribeToEvents(){this.eventBus.subscribe("learning.ExperienceCaptured",this.handleExperienceCaptured.bind(this))}async handleExperienceCaptured(e){let{experience:r}=e.payload;if(!r.success||r.quality<.7)return;let i=r.domain||"learning-optimization";if(await this.learningService.recordExperience({agentId:{value:r.agent||"unknown",domain:i,type:"specialist"},domain:i,action:r.task,state:{context:{experienceId:r.id,trajectoryId:r.trajectoryId,model:r.model},metrics:{durationMs:r.durationMs,stepCount:r.steps.length,quality:r.quality}},result:{success:r.success,outcome:{quality:r.quality,patterns_extracted:r.patterns?.length||0},duration:r.durationMs},reward:r.quality}),r.patterns&&r.patterns.length>0&&r.domain){let n=this.getRelatedDomains(r.domain);for(let s of n)s!==r.domain&&await this.transferService.transferKnowledge({id:`exp-${r.id}`,domain:r.domain,type:"workflow",content:{format:"json",data:{task:r.task,steps:r.steps,quality:r.quality,patterns:r.patterns}},sourceAgentId:{value:r.agent||"experience-capture",domain:r.domain,type:"specialist"},targetDomains:[s],relevanceScore:r.quality,version:1,createdAt:new Date(r.startedAt)},s);Ge.info(`[LearningOptimizationCoordinator] Experience ${r.id} transferred to ${n.length} related domains`)}this.dreamScheduler&&this.dreamScheduler.recordExperience({id:r.id,agentType:r.agent||"unknown",domain:i,taskType:r.task,success:r.success,duration:r.durationMs,context:{quality:r.quality,steps:r.steps.length,patterns:r.patterns?.length||0},timestamp:new Date(r.startedAt)})}async publishPatternConsolidated(e,r){let i={patternCount:e,domains:r,improvements:0},n=N(Ct.PatternConsolidated,"learning-optimization",i);await this.eventBus.publish(n)}async publishTransferCompleted(e){let r={sourceProject:"current",targetProject:"current",patternsTransferred:e.knowledgeShared,successRate:e.transferSuccessRate??0},i=N(Ct.TransferCompleted,"learning-optimization",r);await this.eventBus.publish(i)}async publishOptimizationApplied(e){let r=N(Ct.OptimizationApplied,"learning-optimization",{domainsOptimized:e.domainsOptimized,avgImprovement:e.avgImprovement});await this.eventBus.publish(r)}async publishDreamCycleCompleted(e,r,i,n,s){if(!this.config.publishEvents)return;let a={cycleId:e,durationMs:r,conceptsProcessed:i,insights:n,patternsCreated:s},o=N(Ct.DreamCycleCompleted,"learning-optimization",a);await this.eventBus.publish(o),Ge.info(`[LearningOptimizationCoordinator] Published dream cycle completion: ${n.length} insights for ${i} concepts`)}async spawnLearningAgent(e,r){if(!this.agentCoordinator.canSpawn())return g(new Error("Agent limit reached"));let i={name:`learning-agent-${e.slice(0,8)}`,domain:"learning-optimization",type:"optimizer",capabilities:["pattern-learning","experience-mining",r],config:{workflowId:e,targetDomain:r}};return this.agentCoordinator.spawn(i)}async loadWorkflowState(){let e=await this.memory.get("learning-optimization:coordinator:workflows");if(e)for(let r of e)r.status==="running"&&(r.status="failed",r.error="Coordinator restarted",r.completedAt=new Date),this.workflows.set(r.id,r)}async saveWorkflowState(){let e=Array.from(this.workflows.values());await this.memory.set("learning-optimization:coordinator:workflows",e,{namespace:"learning-optimization",persist:!0})}async getExperiencesForDomain(e,r){let i=await this.memory.search(`learning:experience:index:domain:${e}:*`,500),n=[];for(let s of i){let a=await this.memory.get(s);if(a){let o=ge(await this.memory.get(`learning:experience:${a}`),["timestamp"]);o&&r.contains(o.timestamp)&&n.push(o)}}return f(n)}async getCurrentStrategy(e){let r=`learning:strategy:current:${e}`,i=await this.memory.get(r);return i||{name:`default-${e}`,parameters:{timeout:3e4,retryCount:3,concurrency:4},expectedOutcome:{}}}async storeStrategy(e,r){await hb(this.memory,e,r)}calculateMetricValue(e,r){return fb(e,r)}getRelatedDomains(e){return yb(e)}findSimilarPatterns(e){return vb(e)}calculateChecksum(e,r,i){return bb(e,r,i)}async verifyPatternRecommendation(e,r){return wb(e,r,this.consensusMixin,this.domainName)}async verifyOptimizationSuggestion(e,r){return Cb(e,r,this.consensusMixin,this.domainName)}async verifyCrossDomainInsight(e,r){return Sb(e,r,this.consensusMixin,this.domainName)}};k();var wm=class extends ee{constructor(e,r,i,n={},s){super(e,r);this.agentCoordinator=i;this.llmRouter=s;this.pluginConfig=n}agentCoordinator;llmRouter;coordinator=null;learningService=null;transferService=null;optimizerService=null;productionIntel=null;pluginConfig;get name(){return"learning-optimization"}get version(){return"1.0.0"}get dependencies(){return[]}getAPI(){return{isSONAAvailable:()=>this.coordinator?.isSONAAvailable()??!1,getSONAPersistedStats:async()=>this.coordinator?.isSONAAvailable()?this.coordinator.getSONAPersistedStats():null,runLearningCycle:this.runLearningCycle.bind(this),optimizeAllStrategies:this.optimizeAllStrategies.bind(this),shareCrossDomainLearnings:this.shareCrossDomainLearnings.bind(this),getLearningDashboard:this.getLearningDashboard.bind(this),exportModels:this.exportModels.bind(this),importModels:this.importModels.bind(this),learnPattern:this.learnPattern.bind(this),findMatchingPatterns:this.findMatchingPatterns.bind(this),applyPattern:this.applyPattern.bind(this),updatePatternFeedback:this.updatePatternFeedback.bind(this),getPatternStats:this.getPatternStats.bind(this),queryKnowledge:this.queryKnowledge.bind(this),transferKnowledge:this.transferKnowledge.bind(this),optimizeStrategy:this.optimizeStrategy.bind(this),runABTest:this.runABTest.bind(this),recommendStrategy:this.recommendStrategy.bind(this),evaluateStrategy:this.evaluateStrategy.bind(this),getCoordinator:()=>this.coordinator,getActiveWorkflows:()=>this.coordinator?.getActiveWorkflows()||[],getLearningService:()=>this.learningService,getTransferService:()=>this.transferService,getOptimizerService:()=>this.optimizerService,getProductionIntelService:()=>this.productionIntel}}getTaskHandlers(){return new Map([["run-learning-cycle",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.domain;return r?this.coordinator.runLearningCycle(r):g(new Error("Invalid run-learning-cycle payload: missing domain"))}],["optimize-strategies",async e=>this.coordinator?this.coordinator.optimizeAllStrategies():g(new Error("Coordinator not initialized"))],["share-learnings",async e=>this.coordinator?this.coordinator.shareCrossDomainLearnings():g(new Error("Coordinator not initialized"))],["learn-pattern",async e=>{if(!this.learningService)return g(new Error("Learning service not initialized"));let r=e.experiences;return!r||r.length===0?g(new Error("Invalid learn-pattern payload: missing experiences")):this.learningService.learnPattern(r)}],["query-knowledge",async e=>{if(!this.transferService)return g(new Error("Transfer service not initialized"));let r=e.query;return r?this.transferService.queryKnowledge(r):g(new Error("Invalid query-knowledge payload: missing query"))}]])}async onInitialize(){this.learningService=new zr({memory:this.memory,llmRouter:this.llmRouter},this.pluginConfig.learningService),this.transferService=new Br(this.memory,this.pluginConfig.transferService),this.optimizerService=new qr(this.memory,this.pluginConfig.optimizerService),this.productionIntel=new Gr(this.memory,this.pluginConfig.productionIntel),this.coordinator=new Gc(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.coordinator,this.llmRouter),await this.coordinator.initialize(),this.updateHealth({status:"idle",agents:{total:0,active:0,idle:0,failed:0},lastActivity:new Date,errors:[]})}async onDispose(){this.coordinator&&await this.coordinator.dispose(),this.coordinator=null,this.learningService=null,this.transferService=null,this.optimizerService=null,this.productionIntel=null}subscribeToEvents(){this.eventBus.subscribe("test-generation.TestGenerated",this.handleTestGenerated.bind(this)),this.eventBus.subscribe("test-execution.TestRunCompleted",this.handleTestRunCompleted.bind(this)),this.eventBus.subscribe("coverage-analysis.CoverageGapDetected",this.handleCoverageGap.bind(this)),this.eventBus.subscribe("quality-assessment.QualityGateEvaluated",this.handleQualityGate.bind(this)),this.eventBus.subscribe("defect-intelligence.DefectPredicted",this.handleDefectPredicted.bind(this)),this.eventBus.subscribe("code-intelligence.ImpactAnalysisCompleted",this.handleImpactAnalysis.bind(this))}async onEvent(e){switch(this.updateHealth({lastActivity:new Date}),e.type){case"test-generation.TestGenerated":await this.handleTestGenerated(e);break;case"test-execution.TestRunCompleted":await this.handleTestRunCompleted(e);break;case"coverage-analysis.CoverageGapDetected":await this.handleCoverageGap(e);break;default:break}}async runLearningCycle(e){this.ensureInitialized();try{let r=await this.coordinator.runLearningCycle(e);return r.success?this.trackSuccessfulOperation("learning-cycle"):this.trackFailedOperation("learning-cycle",r.error),r}catch(r){return this.handleError(r)}}async optimizeAllStrategies(){this.ensureInitialized();try{let e=await this.coordinator.optimizeAllStrategies();return e.success?this.trackSuccessfulOperation("optimization"):this.trackFailedOperation("optimization",e.error),e}catch(e){return this.handleError(e)}}async shareCrossDomainLearnings(){this.ensureInitialized();try{return await this.coordinator.shareCrossDomainLearnings()}catch(e){return this.handleError(e)}}async getLearningDashboard(){this.ensureInitialized();try{return await this.coordinator.getLearningDashboard()}catch(e){return this.handleError(e)}}async exportModels(e){this.ensureInitialized();try{return await this.coordinator.exportModels(e)}catch(r){return this.handleError(r)}}async importModels(e){this.ensureInitialized();try{return await this.coordinator.importModels(e)}catch(r){return this.handleError(r)}}async learnPattern(e){this.ensureInitialized();try{return await this.learningService.learnPattern(e)}catch(r){return this.handleError(r)}}async findMatchingPatterns(e,r){this.ensureInitialized();try{return await this.learningService.findMatchingPatterns(e,r)}catch(i){return this.handleError(i)}}async applyPattern(e,r){this.ensureInitialized();try{return await this.learningService.applyPattern(e,r)}catch(i){return this.handleError(i)}}async updatePatternFeedback(e,r){this.ensureInitialized();try{return await this.learningService.updatePatternFeedback(e,r)}catch(i){return this.handleError(i)}}async getPatternStats(e){this.ensureInitialized();try{return await this.learningService.getPatternStats(e)}catch(r){return this.handleError(r)}}async queryKnowledge(e){this.ensureInitialized();try{return await this.transferService.queryKnowledge(e)}catch(r){return this.handleError(r)}}async transferKnowledge(e,r){this.ensureInitialized();try{return await this.transferService.transferKnowledge(e,r)}catch(i){return this.handleError(i)}}async optimizeStrategy(e,r,i){this.ensureInitialized();try{return await this.optimizerService.optimizeStrategy(e,r,i)}catch(n){return this.handleError(n)}}async runABTest(e,r,i){this.ensureInitialized();try{return await this.optimizerService.runABTest(e,r,i)}catch(n){return this.handleError(n)}}async recommendStrategy(e){this.ensureInitialized();try{return await this.optimizerService.recommendStrategy(e)}catch(r){return this.handleError(r)}}async evaluateStrategy(e,r){this.ensureInitialized();try{return await this.optimizerService.evaluateStrategy(e,r)}catch(i){return this.handleError(i)}}async handleTestGenerated(e){let r=e.payload;await this.learningService.recordExperience({agentId:{value:"test-generation",domain:"test-generation",type:"generator"},domain:"test-generation",action:"test-generated",state:{context:{testId:r.testId,testType:r.testType},metrics:{}},result:{success:!0,outcome:{generated:1},duration:0},reward:.8,rewardSource:"assigned",appliedPatternIds:r.patternsUsed})}async handleTestRunCompleted(e){let r=e.payload,i=r.passed+r.failed>0?r.passed/(r.passed+r.failed):0;await this.learningService.recordExperience({agentId:{value:"test-execution",domain:"test-execution",type:"tester"},domain:"test-execution",action:"test-run",state:{context:{runId:r.runId},metrics:{passed:r.passed,failed:r.failed,duration:r.duration}},result:{success:i>.8,outcome:{success_rate:i,passed:r.passed,failed:r.failed},duration:r.duration},reward:i,rewardSource:"measured"}),await this.productionIntel.recordMetric("test_success_rate",i,"ratio","test-execution",["automated"])}async handleCoverageGap(e){if(!Ue(e.payload))return;let r=e.payload;await this.learningService.recordExperience({agentId:{value:"coverage-analysis",domain:"coverage-analysis",type:"analyzer"},domain:"coverage-analysis",action:"gap-detection",state:{context:{gapId:r.gapId,file:r.file},metrics:{riskScore:r.riskScore}},result:{success:!0,outcome:{risk_score:r.riskScore},duration:0},reward:1-r.riskScore,rewardSource:"assigned"})}async handleQualityGate(e){let r=e.payload;await this.learningService.recordExperience({agentId:{value:"quality-assessment",domain:"quality-assessment",type:"validator"},domain:"quality-assessment",action:"gate-evaluation",state:{context:{gateId:r.gateId},metrics:{passed:r.passed?1:0}},result:{success:r.passed,outcome:{gate_passed:r.passed?1:0},duration:0},reward:r.passed?1:0,rewardSource:"measured"})}async handleDefectPredicted(e){let r=e.payload;await this.learningService.recordExperience({agentId:{value:"defect-intelligence",domain:"defect-intelligence",type:"analyzer"},domain:"defect-intelligence",action:"defect-prediction",state:{context:{predictionId:r.predictionId},metrics:{probability:r.probability}},result:{success:!0,outcome:{probability:r.probability},duration:0},reward:.7,rewardSource:"assigned"})}async handleImpactAnalysis(e){let r=e.payload;await this.learningService.recordExperience({agentId:{value:"code-intelligence",domain:"code-intelligence",type:"analyzer"},domain:"code-intelligence",action:"impact-analysis",state:{context:{analysisId:r.analysisId},metrics:{changedFiles:r.changedFiles.length,impactedFiles:r.impactedFiles.length}},result:{success:!0,outcome:{changed_count:r.changedFiles.length,impacted_count:r.impactedFiles.length},duration:0},reward:.8,rewardSource:"assigned"})}ensureInitialized(){if(!this._initialized)throw new Error("LearningOptimizationPlugin is not initialized");if(!this.coordinator||!this.learningService||!this.transferService||!this.optimizerService||!this.productionIntel)throw new Error("LearningOptimizationPlugin services are not available")}handleError(e){let r=y(e),i=this.getHealth();return this.updateHealth({errors:[...i.errors.slice(-9),r.message],status:i.errors.length>=5?"degraded":i.status}),g(r)}trackSuccessfulOperation(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,total:r.agents.total+1,idle:r.agents.idle+1},lastActivity:new Date})}trackFailedOperation(e,r){let i=this.getHealth();this.updateHealth({agents:{...i.agents,failed:i.agents.failed+1},errors:[...i.errors.slice(-9),r.message]})}};function Rb(l,t,e,r,i){return new wm(l,t,e,r,i)}var Cm=class extends ee{constructor(e,r,i,n={}){super(e,r);this.agentCoordinator=i;this.pluginConfig=n}agentCoordinator;workflowOrchestrator=null;pluginConfig;get name(){return"coordination"}get version(){return"1.0.0"}get dependencies(){return Ve.filter(e=>e!=="coordination")}getAPI(){return{listWorkflows:async()=>{if(!this.workflowOrchestrator)throw new Error("Workflow orchestrator not initialized");return this.workflowOrchestrator.listWorkflows()}}}async onInitialize(){this.workflowOrchestrator=pp(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.workflowConfig),await this.workflowOrchestrator.initialize(),this.updateHealth({status:"healthy",agents:{total:0,active:0,idle:0,failed:0}})}async onDispose(){this.workflowOrchestrator&&(await this.workflowOrchestrator.dispose(),this.workflowOrchestrator=null)}async onEvent(e){e.type.startsWith("coordination.")&&await this.handleCoordinationEvent(e)}subscribeToEvents(){this.eventBus.subscribe("coordination.workflow.execute",async e=>{await this.handleEvent(e)})}async handleCoordinationEvent(e){e.type.split(".")[1]==="workflow"&&await this.handleWorkflowEvent(e)}async handleWorkflowEvent(e){this.workflowOrchestrator}};function Tb(l,t,e,r){return new Cm(l,t,e,r)}var je={CoverageAnalyzerService:"coverage-analysis.CoverageAnalyzerService",SecurityScannerService:"security-compliance.SecurityScannerService",isSemgrepAvailable:"security-compliance.isSemgrepAvailable",runSemgrepWithRules:"security-compliance.runSemgrepWithRules",convertSemgrepFindings:"security-compliance.convertSemgrepFindings",createTestGeneratorService:"test-generation.createTestGeneratorService",KnowledgeGraphService:"code-intelligence.KnowledgeGraphService",QualityAnalyzerService:"quality-assessment.QualityAnalyzerService"},Sm=class{factories=new Map;register(t,e){this.factories.set(t,e)}resolve(t){let e=this.factories.get(t);if(!e)throw new Error(`DomainServiceRegistry: service '${t}' not registered. Ensure the domain module is initialized before coordination.`);return e}has(t){return this.factories.has(t)}clear(){this.factories.clear()}keys(){return Array.from(this.factories.keys())}},He=new Sm;He.register(je.createTestGeneratorService,(l,t)=>t?Cr({memory:l,llmRouter:t}):Dl(l));He.register(je.CoverageAnalyzerService,l=>new Xt(l));He.register(je.SecurityScannerService,l=>new mt(l));He.register(je.isSemgrepAvailable,ls);He.register(je.runSemgrepWithRules,Vo);He.register(je.convertSemgrepFindings,zo);He.register(je.KnowledgeGraphService,l=>new Vt(l));k();He.register(je.QualityAnalyzerService,l=>new Dt(l));k();_();k();var jr={SoapOperationTested:"enterprise-integration.SoapOperationTested",MessageFlowTested:"enterprise-integration.MessageFlowTested",BapiTested:"enterprise-integration.BapiTested",IDocValidated:"enterprise-integration.IDocValidated",ODataTested:"enterprise-integration.ODataTested",SodAnalyzed:"enterprise-integration.SodAnalyzed",MiddlewareFlowTested:"enterprise-integration.MiddlewareFlowTested",IntegrationValidationFailed:"enterprise-integration.IntegrationValidationFailed"},Dk={maxConcurrentWorkflows:8,defaultTimeout:12e4,publishEvents:!0,enableMinCutAwareness:!0,topologyHealthThreshold:.5,pauseOnCriticalTopology:!1,enableConsensus:!0,consensusThreshold:.7,consensusStrategy:"weighted",consensusMinModels:2},jc=A.create("enterprise-integration"),Hc=class extends re{constructor(e,r,i,n={}){let s={...Dk,...n};super(e,"enterprise-integration",s,{verifyFindingTypes:["soap-fault","message-ordering-violation","rfc-compatibility-break","idoc-validation-failure","odata-contract-break","sod-conflict"],modelTimeout:12e4});this.memory=r;this.agentCoordinator=i}memory;agentCoordinator;async onInitialize(){this.subscribeToEvents(),jc.info("Enterprise Integration Coordinator initialized")}async onDispose(){}subscribeToEvents(){this.eventBus.subscribe("contract-testing.ContractVerified",this.handleContractVerified.bind(this)),this.eventBus.subscribe("chaos-resilience.FaultInjected",this.handleFaultInjected.bind(this))}getActiveWorkflows(){return super.getActiveWorkflows()}async validateWsdl(e){let r=w();try{if(this.startWorkflow(r,"soap"),this.minCutMixin.shouldPauseOperations())return g(new Error("WSDL validation paused: topology is in critical state"));let i=await this.spawnAgent(r,"qe-soap-tester",{task:"validate-wsdl",url:e});if(!i.success)return this.failWorkflow(r,i.error.message),i;let n={url:e,version:"1.1",services:[],schemas:[]};return await this.memory.set(`enterprise-integration:wsdl:${encodeURIComponent(e)}`,n,{namespace:"enterprise-integration",persist:!0}),this.completeWorkflow(r),f(n)}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async testSoapOperation(e,r,i){let n=w();try{this.startWorkflow(n,"soap");let s=await this.spawnAgent(n,"qe-soap-tester",{task:"test-operation",wsdl:e,operation:r,input:i});if(!s.success)return this.failWorkflow(n,s.error.message),g(s.error);let a={operation:r,passed:!0,request:JSON.stringify(i),response:"",validationErrors:[],duration:0};return this.config.publishEvents&&await this.eventBus.publish(N(jr.SoapOperationTested,this.domainName,{operation:r,wsdlUrl:e.url,passed:a.passed,errors:a.validationErrors.length})),this.completeWorkflow(n),f(a)}catch(s){return this.failWorkflow(n,String(s)),g(y(s))}}async testMessageFlow(e,r){let i=w();try{this.startWorkflow(i,"messaging");let n=await this.spawnAgent(i,"qe-message-broker-tester",{task:"test-message-flow",brokerConfig:e,testCase:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={testCaseId:r.id,passed:!0,sentAt:new Date,receivedAt:new Date,latency:0,actualOutcome:r.expectedOutcome,errors:[]};return this.config.publishEvents&&await this.eventBus.publish(N(jr.MessageFlowTested,this.domainName,{protocol:e.protocol,queue:r.queue,passed:s.passed,latency:s.latency})),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async testDlqHandling(e,r){let i=w();try{this.startWorkflow(i,"messaging");let n=await this.spawnAgent(i,"qe-message-broker-tester",{task:"test-dlq",brokerConfig:e,queue:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={queue:r,messageCount:0,poisonMessages:0,reprocessable:0,errors:[]};return this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async testBapiCall(e,r){let i=w();try{if(this.startWorkflow(i,"rfc"),this.minCutMixin.shouldPauseOperations())return g(new Error("BAPI testing paused: topology is in critical state"));let n=await this.spawnAgent(i,"qe-sap-rfc-tester",{task:"test-bapi",connection:e,bapi:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={bapiName:r.name,passed:!0,returnMessages:[],exportValues:{},tableData:{},duration:0,transactionCommitted:!1};return this.config.publishEvents&&await this.eventBus.publish(N(jr.BapiTested,this.domainName,{bapiName:r.name,passed:s.passed,returnType:s.returnMessages.length>0?s.returnMessages[0].type:"S"})),await this.memory.set(`enterprise-integration:bapi:${r.name}:${Date.now()}`,{bapiName:r.name,importParams:Object.keys(r.importParams),passed:s.passed,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",persist:!0}),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async validateIdoc(e,r){let i=w();try{this.startWorkflow(i,"idoc");let n=await this.spawnAgent(i,"qe-sap-idoc-tester",{task:"validate-idoc",definition:e,content:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={idocType:e.type,direction:"inbound",passed:!0,statusCode:3,statusMessage:"IDoc validated successfully",segmentValidation:[],processingTime:0};return this.config.publishEvents&&await this.eventBus.publish(N(jr.IDocValidated,this.domainName,{idocType:e.type,direction:s.direction,passed:s.passed,statusCode:s.statusCode})),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async validateODataMetadata(e){let r=w();try{this.startWorkflow(r,"odata");let i=await this.spawnAgent(r,"qe-odata-contract-tester",{task:"validate-metadata",serviceUrl:e});if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);let n={version:"v4",serviceUrl:e,entitySets:[],functionImports:[],actions:[]};return await this.memory.set(`enterprise-integration:odata:${encodeURIComponent(e)}`,n,{namespace:"enterprise-integration",persist:!0}),this.completeWorkflow(r),f(n)}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async testODataEntitySet(e,r){let i=w();try{this.startWorkflow(i,"odata");let n=await this.spawnAgent(i,"qe-odata-contract-tester",{task:"test-entity-set",metadata:e,entitySet:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={entitySet:r,operation:"CRUD",passed:!0,statusCode:200,validationErrors:[],duration:0};return this.config.publishEvents&&await this.eventBus.publish(N(jr.ODataTested,this.domainName,{entitySet:r,operation:s.operation,passed:s.passed,version:e.version})),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async validateMessageFlow(e,r){let i=w();try{this.startWorkflow(i,"middleware");let n=await this.spawnAgent(i,"qe-middleware-validator",{task:"validate-flow",flow:e,input:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={flowName:e.name,passed:!0,routingCorrect:!0,transformationCorrect:!0,errorHandlingCorrect:!0,validationErrors:[],duration:0};return this.config.publishEvents&&await this.eventBus.publish(N(jr.MiddlewareFlowTested,this.domainName,{flowName:e.name,passed:s.passed,routingCorrect:s.routingCorrect,transformationCorrect:s.transformationCorrect})),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async validateTransformation(e,r,i){let n=w();try{this.startWorkflow(n,"middleware");let s=await this.spawnAgent(n,"qe-middleware-validator",{task:"validate-transformation",spec:e,input:r,expectedOutput:i});return s.success?(this.completeWorkflow(n),f(!0)):(this.failWorkflow(n,s.error.message),g(s.error))}catch(s){return this.failWorkflow(n,String(s)),g(y(s))}}async analyzeSod(e,r){let i=w();try{this.startWorkflow(i,"sod");let n=await this.spawnAgent(i,"qe-sod-analyzer",{task:"analyze-sod",userId:e,ruleset:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={userId:e,conflicts:[],riskScore:0,compliant:!0,recommendations:[]};return this.config.publishEvents&&await this.eventBus.publish(N(jr.SodAnalyzed,this.domainName,{userId:e,conflicts:s.conflicts.length,compliant:s.compliant,riskScore:s.riskScore})),await this.memory.set(`enterprise-integration:sod:${e}:${Date.now()}`,{userId:e,ruleset:r.name,conflicts:s.conflicts.length,compliant:s.compliant,riskScore:s.riskScore,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",persist:!0}),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async spawnAgent(e,r,i){let n={name:`${r}-${e.slice(0,8)}`,domain:"enterprise-integration",type:r,capabilities:[r],config:{workflowId:e,...i}},s=await this.agentCoordinator.spawn(n);return s.success&&this.addAgentToWorkflow(e,s.value),s}async verifyCriticalFinding(e,r){let i=W({id:w(),type:e.type,confidence:r,description:e.description,payload:e.payload,detectedBy:"enterprise-integration-coordinator",severity:r>.9?"critical":"high"});if(this.consensusMixin.requiresConsensus(i)){let n=await this.consensusMixin.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(jc.info(`Finding verified by consensus: ${e.type}`),!0):(jc.warn(`Finding NOT verified: ${e.type}`),!1)}return!0}async handleContractVerified(e){let r=e.payload;(r?.contractType==="soap"||r?.contractType==="odata")&&await this.memory.set(`enterprise-integration:contract-event:${Date.now()}`,{contractId:r.contractId,type:r.contractType,passed:r.passed,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",ttl:86400})}async handleFaultInjected(e){let r=e.payload;(r?.targetService?.includes("middleware")||r?.targetService?.includes("esb"))&&jc.info(`Middleware fault injection detected: ${r.targetService}`)}};var Rm=class extends ee{constructor(e,r,i,n={}){super(e,r);this.agentCoordinator=i;this.pluginConfig=n}agentCoordinator;coordinator=null;pluginConfig;get name(){return"enterprise-integration"}get version(){return"1.0.0"}get dependencies(){return[]}getAPI(){return{validateWsdl:this.validateWsdl.bind(this),testSoapOperation:this.testSoapOperation.bind(this),testMessageFlow:this.testMessageFlow.bind(this),testDlqHandling:this.testDlqHandling.bind(this),testBapiCall:this.testBapiCall.bind(this),validateIdoc:this.validateIdoc.bind(this),validateODataMetadata:this.validateODataMetadata.bind(this),testODataEntitySet:this.testODataEntitySet.bind(this),validateMessageFlow:this.validateMessageFlow.bind(this),validateTransformation:this.validateTransformation.bind(this),analyzeSod:this.analyzeSod.bind(this),getCoordinator:()=>this.coordinator,getActiveWorkflows:()=>this.coordinator?.getActiveWorkflows()||[]}}getTaskHandlers(){return new Map([["enterprise-integration:soap-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.wsdl,i=e.operation,n=e.input;return e.url&&!r?this.coordinator.validateWsdl(e.url):!r||!i?g(new Error("Invalid soap-test payload: missing wsdl or operation")):this.coordinator.testSoapOperation(r,i,n)}],["enterprise-integration:message-broker-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.brokerConfig,i=e.testCase,n=e.queue;return r?n&&!i?this.coordinator.testDlqHandling(r,n):i?this.coordinator.testMessageFlow(r,i):g(new Error("Invalid message-broker-test payload: missing testCase")):g(new Error("Invalid message-broker-test payload: missing brokerConfig"))}],["enterprise-integration:sap-rfc-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.connection,i=e.bapi;return!r||!i?g(new Error("Invalid sap-rfc-test payload: missing connection or bapi")):this.coordinator.testBapiCall(r,i)}],["enterprise-integration:sap-idoc-validate",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.definition,i=e.content;return!r||!i?g(new Error("Invalid sap-idoc-validate payload: missing definition or content")):this.coordinator.validateIdoc(r,i)}],["enterprise-integration:odata-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.serviceUrl,i=e.metadata,n=e.entitySet;return r&&!i?this.coordinator.validateODataMetadata(r):!i||!n?g(new Error("Invalid odata-test payload: missing metadata or entitySet")):this.coordinator.testODataEntitySet(i,n)}],["enterprise-integration:esb-flow-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.flow,i=e.input,n=e.spec;if(n){let s=e.transformInput,a=e.expectedOutput;return!s||!a?g(new Error("Invalid esb-flow-test payload: missing transformInput or expectedOutput for transformation")):this.coordinator.validateTransformation(n,s,a)}return!r||!i?g(new Error("Invalid esb-flow-test payload: missing flow or input")):this.coordinator.validateMessageFlow(r,i)}],["enterprise-integration:sod-analyze",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.userId,i=e.ruleset;return!r||!i?g(new Error("Invalid sod-analyze payload: missing userId or ruleset")):this.coordinator.analyzeSod(r,i)}]])}async onInitialize(){this.coordinator=new Hc(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.coordinator),await this.coordinator.initialize(),this.updateHealth({status:"idle",agents:{total:0,active:0,idle:0,failed:0},lastActivity:new Date,errors:[]})}async onDispose(){this.coordinator&&await this.coordinator.dispose(),this.coordinator=null}subscribeToEvents(){this.eventBus.subscribe("contract-testing.ContractVerified",this.handleContractVerified.bind(this)),this.eventBus.subscribe("quality-assessment.QualityGateEvaluated",this.handleQualityGate.bind(this)),this.eventBus.subscribe("chaos-resilience.FaultInjected",this.handleFaultInjected.bind(this))}async onEvent(e){switch(this.updateHealth({lastActivity:new Date}),e.type){case"contract-testing.ContractVerified":await this.handleContractVerified(e);break;case"quality-assessment.QualityGateEvaluated":await this.handleQualityGate(e);break;case"chaos-resilience.FaultInjected":await this.handleFaultInjected(e);break;default:break}}async validateWsdl(e){this.ensureInitialized();try{let r=await this.coordinator.validateWsdl(e);return r.success?this.trackSuccessfulOperation("validateWsdl"):this.trackFailedOperation(new Error(r.error.message)),r}catch(r){return this.handleError(r)}}async testSoapOperation(e,r,i){this.ensureInitialized();try{let n=await this.coordinator.testSoapOperation(e,r,i);return n.success?this.trackSuccessfulOperation("testSoapOperation"):this.trackFailedOperation(new Error(n.error.message)),n}catch(n){return this.handleError(n)}}async testMessageFlow(e,r){this.ensureInitialized();try{let i=await this.coordinator.testMessageFlow(e,r);return i.success?this.trackSuccessfulOperation("testMessageFlow"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async testDlqHandling(e,r){this.ensureInitialized();try{let i=await this.coordinator.testDlqHandling(e,r);return i.success?this.trackSuccessfulOperation("testDlqHandling"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async testBapiCall(e,r){this.ensureInitialized();try{let i=await this.coordinator.testBapiCall(e,r);return i.success?this.trackSuccessfulOperation("testBapiCall"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async validateIdoc(e,r){this.ensureInitialized();try{let i=await this.coordinator.validateIdoc(e,r);return i.success?this.trackSuccessfulOperation("validateIdoc"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async validateODataMetadata(e){this.ensureInitialized();try{let r=await this.coordinator.validateODataMetadata(e);return r.success?this.trackSuccessfulOperation("validateODataMetadata"):this.trackFailedOperation(new Error(r.error.message)),r}catch(r){return this.handleError(r)}}async testODataEntitySet(e,r){this.ensureInitialized();try{let i=await this.coordinator.testODataEntitySet(e,r);return i.success?this.trackSuccessfulOperation("testODataEntitySet"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async validateMessageFlow(e,r){this.ensureInitialized();try{let i=await this.coordinator.validateMessageFlow(e,r);return i.success?this.trackSuccessfulOperation("validateMessageFlow"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async validateTransformation(e,r,i){this.ensureInitialized();try{let n=await this.coordinator.validateTransformation(e,r,i);return n.success?this.trackSuccessfulOperation("validateTransformation"):this.trackFailedOperation(new Error(n.error.message)),n}catch(n){return this.handleError(n)}}async analyzeSod(e,r){this.ensureInitialized();try{let i=await this.coordinator.analyzeSod(e,r);return i.success?this.trackSuccessfulOperation("analyzeSod"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async handleContractVerified(e){let r=e.payload;(r.contractType==="soap"||r.contractType==="odata")&&await this.memory.set(`enterprise-integration:contract-verified:${r.contractId}`,{contractId:r.contractId,type:r.contractType,passed:r.passed,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",ttl:86400})}async handleQualityGate(e){let r=e.payload;r.checks.find(n=>n.name==="enterprise-integration")||await this.memory.set(`enterprise-integration:quality-gate-warning:${r.gateId}`,{warning:"Enterprise integration testing not included in quality gate",timestamp:new Date().toISOString()},{namespace:"enterprise-integration",ttl:86400})}async handleFaultInjected(e){let r=e.payload;(r.targetService?.includes("middleware")||r.targetService?.includes("esb")||r.targetService?.includes("broker")||r.targetService?.includes("mq"))&&await this.memory.set(`enterprise-integration:fault-correlation:${r.faultId||Date.now()}`,{targetService:r.targetService,faultType:r.faultType,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",ttl:3600})}ensureInitialized(){if(!this._initialized)throw new Error("EnterpriseIntegrationPlugin is not initialized");if(!this.coordinator)throw new Error("EnterpriseIntegrationPlugin coordinator is not available")}handleError(e){let r=y(e),i=this.getHealth();return this.updateHealth({errors:[...i.errors.slice(-9),r.message],status:i.errors.length>=5?"degraded":i.status}),{success:!1,error:r}}trackSuccessfulOperation(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,total:r.agents.total+1,idle:r.agents.idle+1},lastActivity:new Date})}trackFailedOperation(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,failed:r.agents.failed+1},errors:[...r.errors.slice(-9),e.message]})}};function Ab(l,t,e,r){return new Rm(l,t,e,r)}var Pb={"test-generation":(l,t,e,r)=>du(l,t,e,void 0,r),"test-execution":(l,t,e,r)=>Mg(l,t,r),"coverage-analysis":(l,t,e,r)=>Gu(l,t,r),"quality-assessment":(l,t,e,r)=>ed(l,t,e,void 0,r),"defect-intelligence":(l,t,e,r)=>Th(l,t,e,void 0,r),"requirements-validation":(l,t,e,r)=>kh(l,t,e,void 0,r),"code-intelligence":(l,t,e,r)=>wd(l,t,e,void 0,r),"security-compliance":(l,t,e,r)=>pm(l,t,e,void 0,r),"contract-testing":(l,t,e,r)=>Hv(l,t,e,void 0,r),"visual-accessibility":(l,t,e,r)=>nb(l,t,e,void 0,r),"chaos-resilience":(l,t,e,r)=>ob(l,t,e,void 0,r),"learning-optimization":(l,t,e,r)=>Rb(l,t,e,void 0,r),"enterprise-integration":(l,t,e,r)=>Ab(l,t,e),coordination:(l,t,e,r)=>Tb(l,t,e)},Ik={maxConcurrentAgents:Qi.MAX_CONCURRENT_AGENTS,memoryBackend:"hybrid",hnswEnabled:!0,lazyLoading:!0,enabledDomains:[...Ve],dataDir:void 0,enableExperienceBridge:!0,enableDreamScheduler:!0},Tm=class{_eventBus;_coordinator;_plugins;_memory;_config;_startTime;_initialized=!1;_loopTracker;_experienceBridge;_dreamScheduler;_llmRouter;_llmRouterBuild;constructor(t={}){this._config={...Ik,...t},this._startTime=new Date,this._memory=new Yc,this._eventBus=new Xs,this._coordinator=new Zs(this._config.maxConcurrentAgents),this._plugins=new ln(this._eventBus,this._memory,this._config.lazyLoading),this._loopTracker=new ea}get eventBus(){return this._eventBus}get coordinator(){return this._coordinator}get plugins(){return this._plugins}get memory(){return this._memory}get llmRouter(){return this._llmRouter}async initialize(){if(this._initialized)return;let t=Me(),e=this._config.dataDir||Hi.join(t,".agentic-qe");if(this._config.memoryBackend!=="memory"&&!Wc.existsSync(e)&&Wc.mkdirSync(e,{recursive:!0}),this._config.memoryBackend==="memory"){let i=Hi.join(Em("os").tmpdir(),`aqe-test-${Date.now()}-${xb().slice(0,12)}.db`);await Om({dbPath:i})}else this._memory=Am(e),this._plugins=new ln(this._eventBus,this._memory,this._config.lazyLoading);await this._initializeLLMRouter(t);for(let i of this._config.enabledDomains){let n=Pb[i];n&&this._plugins.registerFactory(i,async(s,a)=>Promise.resolve(n(s,a,this._coordinator,this._llmRouter)))}await this._memory.initialize();let r=new ra({agentId:"qe-kernel"});this._eventBus.registerMiddleware(r);try{let i=Hi.join(e,"plugins"),n=new Nm({cacheDir:i}),a=new _m({cache:n}).resolveLoadOrder();for(let o of a.errors)console.warn(`[QEKernel] External plugin ${o.plugin}: ${o.code}: ${o.message}`);for(let o of a.ordered){let c=o.manifest,u=n.get(c.name,c.version);if(!u)continue;let d=Hi.join(u.path,c.entryPoint);for(let m of c.domains){let p=m;if(Pb[p])continue;this._plugins.registerFactory(p,async(b,v)=>{let C=await import(d),S=C.default??C.createPlugin;if(typeof S!="function")throw new Error(`Plugin "${c.name}" entry point must export a default function or "createPlugin" function`);return S(b,v,this._coordinator,this._llmRouter)})}}}catch(i){console.warn("[QEKernel] External plugin discovery failed:",i)}this._config.lazyLoading||await this._plugins.loadAll();try{let{isAgentMemoryBranchingEnabled:i,isRVFPatternStoreEnabled:n}=await import("./feature-flags-5JCSKL2P.js");if(i()&&n()){let{getSharedRvfAdapter:s}=await import("./shared-rvf-adapter-ABY7PAY2.js"),{AgentMemoryBranch:a}=await import("./agent-memory-branch-WWKC2H3G.js"),o=s(e,384);if(o){let c=new a(o,{branchDir:Hi.join(e,"branches")});this._coordinator.setMemoryBranch(c)}}}catch{}try{let{getRvfMigrationStage:i}=await import("./feature-flags-5JCSKL2P.js"),n=i();if(n>=2){let{RvfMigrationCoordinator:s}=await import("./rvf-migration-coordinator-VUIZHTVG.js");await s.getInstance({stage:n}).initialize()}}catch{}if(this._config.enableExperienceBridge!==!1){try{await this._plugins.loadAll()}catch(i){console.warn("[QEKernel] domain plugin pre-load (for bridge subscribers) failed:",i instanceof Error?i.message:i)}try{this._experienceBridge=new ia(this._eventBus,this._memory),await this._experienceBridge.start()}catch(i){console.warn("[QEKernel] CapturedExperienceBridge failed to start:",i instanceof Error?i.message:i),this._experienceBridge=void 0}}if(this._config.enableDreamScheduler!==!1)try{let i=Fs({maxDurationMs:1e4,minConceptsRequired:3});await i.initialize(),this._dreamScheduler=new qm({dreamEngine:i,eventBus:this._eventBus,memoryBackend:this._memory}),await this._dreamScheduler.initialize(),this._dreamScheduler.start()}catch(i){if(console.warn("[QEKernel] DreamScheduler failed to start:",i instanceof Error?i.message:i),this._dreamScheduler)try{await this._dreamScheduler.dispose()}catch{}this._dreamScheduler=void 0}this._initialized=!0}async _initializeLLMRouter(t){let e=(process.env.AQE_LLM_ROUTER_DISABLED??"").trim().toLowerCase();if(e&&e!=="false"&&e!=="0"&&e!=="no"&&e!=="off"){this._llmRouter=void 0;return}let r=this._config.llmRouter??{},i=r.enabled??"auto";if(i===!1){this._llmRouter=void 0;return}try{let n=await Lm({projectRoot:t,override:r.configOverride,providerManager:r.providerManager});if(!n){i===!0&&(console.warn("[QEKernel] llmRouter.enabled=true but no provider available \u2014 continuing without LLM router (domain services will skip LLM enhancement)"),await this._publishLLMRouterEvent("init-no-provider",{reason:"no provider available in env or disk config"})),this._llmRouter=void 0;return}this._llmRouterBuild=n,this._llmRouter=n.router;try{let{setSharedLLMRouter:s}=await import("./base-XPWGYDKD.js");s(n.router)}catch{}}catch(n){let s=n instanceof Error?n.message:String(n);console.warn("[QEKernel] LLM router init failed; continuing without LLM enhancement:",s),await this._publishLLMRouterEvent("init-failed",{error:s,stack:n instanceof Error?n.stack:void 0}),this._llmRouter=void 0}}async _publishLLMRouterEvent(t,e){try{await this._eventBus.publish({id:xb(),type:`kernel.llm-router.${t}`,timestamp:new Date,source:"qe-kernel",payload:e})}catch{}}async dispose(){if(this._dreamScheduler){try{await this._dreamScheduler.dispose()}catch(t){console.warn("[QEKernel] DreamScheduler dispose failed:",t instanceof Error?t.message:t)}this._dreamScheduler=void 0}if(this._experienceBridge&&(await this._experienceBridge.stop(),this._experienceBridge=void 0),await this._plugins.disposeAll(),await this._coordinator.dispose(),await this._eventBus.dispose(),await this._memory.dispose(),this._llmRouter){try{let{resetSharedLLMRouter:t}=await import("./base-XPWGYDKD.js");t()}catch{}this._llmRouter=void 0,this._llmRouterBuild=void 0}this._initialized=!1}getDomainAPI(t){return this._plugins.getPlugin(t)?.getAPI()}async getDomainAPIAsync(t){let e=this._plugins.getPlugin(t);if(!e&&this._config.lazyLoading&&this._config.enabledDomains.includes(t))try{e=await this._plugins.load(t)}catch(r){console.error(`[QEKernel] Failed to lazy load domain ${t}:`,Uc(r));return}return e?.getAPI()}async ensureDomainLoaded(t){if(this._plugins.isLoaded(t))return!0;if(!this._config.enabledDomains.includes(t))return console.warn(`[QEKernel] Domain ${t} is not enabled`),!1;try{return await this._plugins.load(t),!0}catch(e){return console.error(`[QEKernel] Failed to load domain ${t}:`,Uc(e)),!1}}isDomainLoaded(t){return this._plugins.isLoaded(t)}getLoadedDomains(){return this._plugins.getLoaded()}getPendingDomains(){let t=new Set(this._plugins.getLoaded());return this._config.enabledDomains.filter(e=>!t.has(e))}getHealth(){let t=this._coordinator.listAgents(),e={};for(let c of this._plugins.getLoaded()){let u=this._plugins.getPlugin(c);u&&(e[c]=u.getHealth())}for(let c of Ve)if(!e[c]){let u=this._config.enabledDomains.includes(c),d=this._config.lazyLoading&&u;e[c]={status:d?"healthy":u?"degraded":"healthy",agents:{total:0,active:0,idle:0,failed:0},errors:d?[]:u?["Domain not yet loaded"]:[],loaded:!1,lazyLoadable:d}}let r=this._coordinator.getActiveCount(),i=0,n=Number.MAX_SAFE_INTEGER;if(this._memory instanceof Yc){let c=this._memory.getStats();i=c.entries+c.vectors}else i=0;let a=this._eventBus.getMiddlewares().find(c=>c.name==="semantic-anti-drift"),o=a?a.getStats():void 0;return{status:this.determineOverallStatus(e),uptime:Date.now()-this._startTime.getTime(),domains:e,agents:{total:t.length,active:r,maxAllowed:this._config.maxConcurrentAgents},memory:{used:i,available:n},...o?{antiDrift:o}:{}}}determineOverallStatus(t){let e=Object.values(t).map(r=>r.status);return e.some(r=>r==="unhealthy")?"unhealthy":e.some(r=>r==="degraded")?"degraded":"healthy"}getConfig(){return{...this._config}}checkToolCall(t,e,r){if(process.env.AQE_LOOP_DETECTION_ENABLED==="false")return this._loopTracker.trackCall(t,e,r);let i=this._loopTracker.trackCall(t,e,r);if(i.action==="warn"){let n={id:`loop-warn-${t}-${Date.now()}`,type:fl.LOOP_WARNING,timestamp:new Date,source:"coordination",correlationId:t,payload:{agentId:t,toolName:e,callCount:i.callCount,signature:i.signature}};this._eventBus.publish(n)}else if(i.action==="steer"){let n={id:`loop-detected-${t}-${Date.now()}`,type:fl.LOOP_DETECTED,timestamp:new Date,source:"coordination",correlationId:t,payload:{agentId:t,toolName:e,callCount:i.callCount,signature:i.signature,steeringMessage:i.steeringMessage}};this._eventBus.publish(n)}return i}get loopTracker(){return this._loopTracker}};function Hce(l){return new Tm(l)}export{Xs as a,Al as b,Jb as c,ii as d,Cr as e,lg as f,Xt as g,pi as h,iq as i,de as j,nq as k,sq as l,aq as m,oq as n,fi as o,Dh as p,Do as q,Io as r,zh as s,Mr as t,vd as u,Cd as v,Td as w,_o as x,$i as y,Oi as z,Ic as A,Vi as B,Bi as C,Mt as D,zr as E,Br as F,qr as G,je as H,He as I,Tm as J,Hce as K};
3011
+ // Execute action: {{action}}`,variables:r}}extractPatternContext(t){let e=new Set,r,i;for(let n of t){let s=n.state.context;if(s.language&&(r=s.language),s.framework&&(i=s.framework),s.tags&&Array.isArray(s.tags))for(let a of s.tags)e.add(a)}return{language:r,framework:i,tags:Array.from(e)}}detectAnomalies(t){let e=[],r=this.calculateAverageReward(t),i=this.calculateStdDev(t.map(n=>n.reward));for(let n of t){let s=Math.abs(n.reward-r)/(i||1);if(s>this.config.anomalyDeviationThreshold){let a="outlier-reward";n.result.success&&n.reward<r?a="unexpected-success":!n.result.success&&n.reward>r&&(a="unexpected-failure"),e.push({experienceId:n.id,type:a,description:`Reward ${n.reward.toFixed(2)} deviates ${s.toFixed(2)} std from mean ${r.toFixed(2)}`,deviation:s})}}return e}calculateStdDev(t){if(t.length===0)return 0;let e=t.reduce((i,n)=>i+n,0)/t.length,r=t.map(i=>Math.pow(i-e,2));return Math.sqrt(r.reduce((i,n)=>i+n,0)/t.length)}generateRecommendations(t,e,r){let i=[];return e<.5&&i.push("Low success rate detected. Consider reviewing the approach or gathering more training data."),r.length>t.length*.1&&i.push("High anomaly rate detected. Investigate unexpected outcomes for potential improvements."),t.reduce((s,a)=>s+a.result.duration,0)/t.length>6e4&&i.push("Average operation duration is high. Consider optimizing performance."),t.length<10&&i.push("Limited experience data. Collect more data points for better insights."),i.length===0&&i.push("Performance metrics are within acceptable ranges. Continue monitoring."),i}actionsSimilar(t,e){let r=s=>s.toLowerCase().replace(/[^a-z]/g,""),i=r(t),n=r(e);return!!(i===n||i.includes(n)||n.includes(i))}calculateCentroid(t){let e=Be(),r=Be();for(let i of t)for(let[n,s]of Object.entries(i.state.metrics))e[n]=(e[n]||0)+s,r[n]=(r[n]||0)+1;for(let i of Object.keys(e))e[i]/=r[i];return{context:{},metrics:e}}isConstraintViolated(t,e){switch(t.operator){case"lt":return e>=t.value;case"gt":return e<=t.value;case"lte":return e>t.value;case"gte":return e<t.value;case"eq":return e!==t.value;default:return!1}}};k();var yk={maxKnowledgeItems:1e3,relevanceThreshold:.5,transferDecayFactor:.1,crossDomainBoost:.2},Br=class{constructor(t,e={}){this.memory=t;this.config={...yk,...e}}memory;config;async shareKnowledge(t,e){try{await this.memory.set(`learning:knowledge:shared:${t.id}`,t,{namespace:"learning-optimization",persist:!0});for(let r of e)await this.memory.set(`learning:knowledge:access:${r.value}:${t.id}`,{knowledgeId:t.id,agentId:r.value,sharedAt:new Date,accessed:!1},{namespace:"learning-optimization",ttl:86400*7});return await this.recordSharingEvent(t,e),f(void 0)}catch(r){return g(y(r))}}async queryKnowledge(t){try{let e=[],r=await br(this.memory,"learning:knowledge:shared:*",{retrieve:_e,pageSize:this.config.maxKnowledgeItems});for(let i of r){let n=ge(await this.memory.get(i,{namespace:"learning-optimization"}),["createdAt","expiresAt"]);n&&this.matchesQuery(n,t)&&e.push(n)}if(e.sort((i,n)=>n.relevanceScore-i.relevanceScore||(i.id<n.id?-1:i.id>n.id?1:0)),t.embedding&&t.embedding.length>0){let i=await this.memory.vectorSearch(t.embedding,t.limit||10);for(let n of i){let s=ge(await this.memory.get(n.key,{namespace:"learning-optimization"}),["createdAt","expiresAt"]);s&&!e.some(a=>a.id===s.id)&&this.matchesQuery(s,t)&&e.push(s)}}return f(e.slice(0,t.limit||100))}catch(e){return g(y(e))}}async synthesizeKnowledge(t){try{if(t.length<2)return g(new Error("Need at least 2 knowledge items to synthesize"));let e=[];for(let c of t){let u=await this.getKnowledgeById(c);u&&e.push(u)}if(e.length<2)return g(new Error("Not enough valid knowledge items found"));let r=this.determineSynthesizedType(e),i=this.determineSynthesizedDomain(e),n=this.mergeKnowledgeContent(e),s=e.reduce((c,u)=>c+u.relevanceScore,0)/e.length,a=Math.min(1,s+this.config.crossDomainBoost),o={id:w(),type:r,domain:i,content:n,sourceAgentId:e[0].sourceAgentId,targetDomains:this.mergeTargetDomains(e),relevanceScore:a,version:1,createdAt:new Date};return await this.storeKnowledge(o),await this.recordSynthesisEvent(o,t),f(o)}catch(e){return g(y(e))}}async transferKnowledge(t,e){try{if(t.domain===e)return g(new Error("Cannot transfer knowledge to the same domain"));let r=this.calculateTransferredRelevance(t,e);if(r<this.config.relevanceThreshold)return g(new Error(`Transferred relevance ${r} below threshold ${this.config.relevanceThreshold}`));let i=await this.adaptContentForDomain(t.content,t.domain,e),n={id:w(),type:t.type,domain:e,content:i,sourceAgentId:t.sourceAgentId,targetDomains:[e],relevanceScore:r,version:t.version+1,createdAt:new Date};return await this.storeKnowledge(n),await this.recordTransferEvent(t,n),f(n)}catch(r){return g(y(r))}}async validateRelevance(t,e){try{let r=t.relevanceScore;if(e.language&&t.content.metadata?.language===e.language&&(r+=.1),e.framework&&t.content.metadata?.framework===e.framework&&(r+=.1),e.tags.length>0&&t.content.metadata?.tags){let a=t.content.metadata.tags,o=e.tags.filter(c=>a.includes(c));r+=o.length/e.tags.length*.2}let n=(Date.now()-t.createdAt.getTime())/(1e3*60*60*24),s=Math.exp(-this.config.transferDecayFactor*n/30);return r*=s,t.expiresAt&&new Date>t.expiresAt&&(r*=.5),f(Math.min(1,Math.max(0,r)))}catch(r){return g(y(r))}}async createKnowledge(t,e,r,i,n=[],s){try{let a={id:w(),type:t,domain:e,content:{format:this.inferContentFormat(r),data:r,metadata:s},sourceAgentId:i,targetDomains:n,relevanceScore:1,version:1,createdAt:new Date};return await this.storeKnowledge(a),t==="embedding"&&Array.isArray(r)&&await this.memory.storeVector(`learning:knowledge:vector:${a.id}`,r,{knowledgeId:a.id}),f(a)}catch(a){return g(y(a))}}async getKnowledgeById(t){return ge(await this.memory.get(`learning:knowledge:shared:${t}`,{namespace:"learning-optimization"}),["createdAt","expiresAt"])||null}async bulkTransfer(t,e,r){try{let i=`learning:knowledge:project:${t}:`,n=(await br(this.memory,`${i}*`,{retrieve:_e})).filter(a=>a.startsWith(i)&&!a.slice(i.length).includes(":")),s=[];for(let a of n){let o=ge(await this.memory.get(a,_e),["createdAt","expiresAt"]);if(!o||r?.types&&!r.types.includes(o.type)||r?.minRelevance&&o.relevanceScore<r.minRelevance)continue;let c=await this.adaptContentForProject(o.content,t,e),u={...o,id:w(),content:c,relevanceScore:o.relevanceScore*(1-this.config.transferDecayFactor),version:o.version+1,createdAt:new Date};await this.memory.set(`learning:knowledge:project:${e}:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),s.push({knowledgeId:u.id,sourceDomain:o.domain,targetDomain:o.domain,originalRelevance:o.relevanceScore,transferredRelevance:u.relevanceScore,adaptations:["project-context-adapted"]})}return f(s)}catch(i){return g(y(i))}}async storeKnowledge(t){await this.memory.set(`learning:knowledge:shared:${t.id}`,t,{namespace:"learning-optimization",persist:!0}),await this.memory.set(`learning:knowledge:domain:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0}),await this.memory.set(`learning:knowledge:type:${t.type}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0})}matchesQuery(t,e){if(e.type&&t.type!==e.type||e.domain&&t.domain!==e.domain||e.minRelevance!==void 0&&t.relevanceScore<e.minRelevance)return!1;if(e.tags&&e.tags.length>0){let r=t.content.metadata?.tags||[];if(!e.tags.some(n=>r.includes(n)))return!1}return!0}determineSynthesizedType(t){let e=new Map;for(let n of t)e.set(n.type,(e.get(n.type)||0)+1);let r=t[0].type,i=0;for(let[n,s]of e)s>i&&(i=s,r=n);return r}determineSynthesizedDomain(t){let e=new Map;for(let n of t)e.set(n.domain,(e.get(n.domain)||0)+1);let r=t[0].domain,i=0;for(let[n,s]of e)s>i&&(i=s,r=n);return r}mergeKnowledgeContent(t){let e={},r=[];for(let i of t)if(r.push(i.content.data),i.content.metadata)for(let[n,s]of Object.entries(i.content.metadata))if(Array.isArray(s)){let a=e[n]||[];e[n]=[...new Set([...a,...s])]}else e[n]=s;return{format:"json",data:{synthesized:!0,sources:r},metadata:{...e,synthesizedFrom:t.map(i=>i.id),synthesizedAt:new Date().toISOString()}}}mergeTargetDomains(t){let e=new Set;for(let r of t){e.add(r.domain);for(let i of r.targetDomains)e.add(i)}return Array.from(e)}calculateTransferredRelevance(t,e){let r=t.relevanceScore;r*=1-this.config.transferDecayFactor;let i=this.getDomainCompatibility(t.domain,e);return r*=i,t.targetDomains.includes(e)&&(r+=this.config.crossDomainBoost),Math.min(1,Math.max(0,r))}getDomainCompatibility(t,e){let r={"test-generation":["test-execution","coverage-analysis"],"test-execution":["test-generation","coverage-analysis","quality-assessment"],"coverage-analysis":["test-generation","test-execution","quality-assessment"],"quality-assessment":["test-execution","coverage-analysis","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"],"chaos-resilience":["test-execution","quality-assessment"],"learning-optimization":["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence"],"enterprise-integration":["contract-testing","security-compliance","quality-assessment"],coordination:Ve.filter(i=>i!=="coordination")};return t===e?1:r[t]?.includes(e)?.8:.5}async adaptContentForDomain(t,e,r){return{...t,metadata:{...t.metadata||{},adaptedFrom:e,adaptedTo:r,adaptedAt:new Date().toISOString()}}}async adaptContentForProject(t,e,r){return{...t,metadata:{...t.metadata||{},sourceProject:e,targetProject:r,transferredAt:new Date().toISOString()}}}inferContentFormat(t){return typeof t=="string"?"text":Array.isArray(t)&&t.every(e=>typeof e=="number")?"embedding":"json"}async recordSharingEvent(t,e){await this.memory.set(`learning:knowledge:events:share:${t.id}:${Date.now()}`,{type:"share",knowledgeId:t.id,targetAgents:e.map(r=>r.value),timestamp:new Date},{namespace:"learning-optimization",ttl:86400*30})}async recordSynthesisEvent(t,e){await this.memory.set(`learning:knowledge:events:synthesis:${t.id}`,{type:"synthesis",synthesizedId:t.id,sourceIds:e,timestamp:new Date},{namespace:"learning-optimization",ttl:86400*30})}async recordTransferEvent(t,e){await this.memory.set(`learning:knowledge:events:transfer:${e.id}`,{type:"transfer",originalId:t.id,transferredId:e.id,originalDomain:t.domain,targetDomain:e.domain,timestamp:new Date},{namespace:"learning-optimization",ttl:86400*30})}};k();var vk={defaultConfidenceLevel:.95,minSamplesForOptimization:20,maxOptimizationIterations:100,improvementThreshold:.05,explorationRate:.1},As={namespace:"learning-optimization"},bk=.2,wk=.2,Ck=["__proto__","constructor","prototype"];function xs(l){return!Ck.includes(l)}var qr=class{constructor(t,e={}){this.memory=t;this.config={...vk,...e}}memory;config;async optimizeStrategy(t,e,r){try{let{measured:i,assignedExcluded:n}=Mt(r);if(i.length<this.config.minSamplesForOptimization){let T=n>0?` (${n} with an assigned reward excluded)`:"";return g(new Error(`Need at least ${this.config.minSamplesForOptimization} measured experiences for optimization${T}`))}let s=[...i].sort((T,x)=>gb(T)-gb(x)),a=Math.max(1,Math.floor(s.length*bk)),o=s.slice(0,-a),c=s.slice(-a),u=await this.optimizeParameters(t.parameters,o,e),d={name:`${t.name}-optimized`,parameters:u,expectedOutcome:this.predictOutcome(u,o)},m=await this.validateOptimization(t,d,c),p=this.calculateImprovement(this.scoreParameters(t.parameters,c,e),this.scoreParameters(u,c,e),e),h=m.length>0?m.filter(T=>T.passed).length/m.length:0,b=[];p===void 0&&b.push("improvement"),m.length===0&&b.push("confidence");let v={method:"held-out",trainingSamples:o.length,heldOutSamples:c.length,estimated:p===void 0?[]:["improvement"],...b.length>0?{unmeasured:b}:{}},C=this.inferDomainFromExperiences(i),S={id:w(),domain:C,objective:e,currentStrategy:t,optimizedStrategy:d,improvement:p??0,confidence:h,validationResults:m,evaluation:v};return await this.storeOptimizationResult(S),f(S)}catch(i){return g(y(i))}}async runABTest(t,e,r){try{let i=await this.collectStrategyMetrics(t,r.metric),n=await this.collectStrategyMetrics(e,r.metric),s=Math.max(1,r.minSamples);if(i.length<s||n.length<s){let h={winner:"inconclusive",evidenceStatus:"insufficient-evidence",unmeasured:[r.metric,"stdDev","pValue"],strategyAMetrics:{samples:i.length},strategyBMetrics:{samples:n.length},sampleSizeA:i.length,sampleSizeB:n.length};return await this.storeABTestResult(t,e,h),f(h)}let a=this.calculateMean(i),o=this.calculateMean(n),c=this.calculateStdDev(i),u=this.calculateStdDev(n),d=this.calculatePValue(i,n),m;d!==void 0&&d<1-r.confidenceLevel?m=a>o?"A":"B":m="inconclusive";let p={winner:m,strategyAMetrics:{[r.metric]:a,stdDev:c,samples:i.length},strategyBMetrics:{[r.metric]:o,stdDev:u,samples:n.length},...d===void 0?{unmeasured:["pValue"],pValueUnavailableReason:"zero-variance"}:{pValue:d},sampleSizeA:i.length,sampleSizeB:n.length};return await this.storeABTestResult(t,e,p),f(p)}catch(i){return g(y(i))}}async recommendStrategy(t){try{let e=await this.memory.search("learning:strategy:optimized:*",100,{namespace:"learning-optimization"}),r=[];for(let i of e){let n="learning-optimization:",s=i.startsWith(n)?i.slice(n.length):i,a=await this.memory.get(s,{namespace:"learning-optimization"});if(a&&t.tags.includes(a.domain)&&t.tags.includes(a.objective.metric)&&(!t.objective||t.tags.includes(t.objective.metric)&&a.objective.metric===t.objective.metric&&a.objective.direction===t.objective.direction)&&a.confidence>.6){let o=this.scoreContextMatch(a,t),c=a.improvement*a.confidence;r.push({strategy:a.optimizedStrategy,score:o*.4+c*.6})}}return r.length===0?f({name:"default-strategy",parameters:this.getDefaultParameters(t),expectedOutcome:{}}):(r.sort((i,n)=>n.score-i.score),f(r[0].strategy))}catch(e){return g(y(e))}}async evaluateStrategy(t,e){try{let{measured:r,assignedExcluded:i}=Mt(e);if(r.length===0)return f({strategy:t,metrics:{},strengths:[],weaknesses:[],improvementAreas:[],evidenceStatus:"insufficient-evidence",...i>0?{assignedRewardsExcluded:i}:{}});let n={},s=this.calculateSuccessRate(r),a=this.calculateAverageDuration(r),o=this.calculateAverageReward(r);n.success_rate=s,n.avg_duration_ms=a,n.avg_reward=o;let c=[];s>.8&&c.push("High success rate"),a<5e3&&c.push("Fast execution"),o>.7&&c.push("Consistently good rewards");let u=[];s<.5&&u.push("Low success rate needs investigation"),a>3e4&&u.push("Slow execution time"),o<.3&&u.push("Low reward values");let d=this.identifyImprovementAreas(t,n,r),m={strategy:t,metrics:n,strengths:c,weaknesses:u,improvementAreas:d};return await this.storeStrategyEvaluation(m),f(m)}catch(r){return g(y(r))}}async trackMetrics(t,e){try{let r={strategyId:t,metrics:e,timestamp:new Date,samples:1},i=`learning:metrics:history:${t}:${Date.now()}`;return await this.memory.set(i,r,{namespace:"learning-optimization",ttl:86400*30}),await this.updateAggregatedMetrics(t,e),f(void 0)}catch(r){return g(y(r))}}async getMetricsHistory(t,e=100){try{let r=await this.searchLearningKeys(`learning:metrics:history:${t}:*`,e),i=[];for(let n of r){let s=ge(await this.memory.get(n,As),["timestamp"]);s&&i.push(s)}return i.sort((n,s)=>n.timestamp.getTime()-s.timestamp.getTime()),f(i)}catch(r){return g(y(r))}}async gridSearchOptimize(t,e,r){try{let i=this.generateParameterCombinations(t),n={},s=e.direction==="maximize"?-1/0:1/0;for(let a of i){let o=this.scoreParameters(a,r,e);(e.direction==="maximize"?o>s:o<s)&&(s=o,n=a)}return f(n)}catch(i){return g(y(i))}}async searchLearningKeys(t,e){let r=`${As.namespace}:`;return(await this.memory.search(t,e,As)).map(n=>n.startsWith(r)?n.slice(r.length):n)}async optimizeParameters(t,e,r){let i={...t};for(let[n,s]of Object.entries(t))if(xs(n)&&typeof s=="number"){let a=[-.1,-.05,0,.05,.1],o=0,c=this.scoreParameters(i,e,r);for(let u of a){let d={...i,[n]:s*(1+u)},m=this.scoreParameters(d,e,r);(r.direction==="maximize"?m>c:m<c)&&(c=m,o=u)}i[n]=s*(1+o)}return i}scoreParameters(t,e,r){let i=0,n=0;for(let s of e){let a=s.result.success?1:.5,o=this.calculateParamSimilarity(t,s.state.context),c=s.result.outcome[r.metric]??0;i+=o*c*a,n+=a}return n>0?i/n:0}calculateParamSimilarity(t,e){let r=0,i=0;for(let[n,s]of Object.entries(t))if(e[n]!==void 0)if(i++,typeof s=="number"&&typeof e[n]=="number"){let a=Math.abs(s-e[n]),o=Math.max(Math.abs(s),Math.abs(e[n]),1);r+=1-a/o}else s===e[n]&&r++;return i>0?r/i:.5}predictOutcome(t,e){let r={},i={},n={};for(let s of e)if(s.result.success)for(let[a,o]of Object.entries(s.result.outcome))xs(a)&&typeof o=="number"&&(i[a]=(i[a]||0)+o,n[a]=(n[a]||0)+1);for(let[s,a]of Object.entries(i))xs(s)&&(r[s]=a/n[s]);return r}async validateOptimization(t,e,r){let i=[],n=Object.entries(e.expectedOutcome);if(n.length===0)return i;for(let s of r){let a=n.filter(([c])=>typeof s.result.outcome[c]=="number");if(a.length===0)continue;let o=a.every(([c,u])=>{let d=s.result.outcome[c];return Math.abs(d-u)/Math.max(u,1)<wk});i.push({testId:s.id,passed:o,metrics:s.state.metrics})}return i}calculateImprovement(t,e,r){if(t===0)return;let i=e-t,n=r.direction==="maximize"?i/t:-i/t;return Math.max(-1,Math.min(1,n))}inferDomainFromExperiences(t){let e=new Map;for(let n of t)e.set(n.domain,(e.get(n.domain)||0)+1);let r="learning-optimization",i=0;for(let[n,s]of e)s>i&&(i=s,r=n);return r}async collectStrategyMetrics(t,e){let r=await this.searchLearningKeys(`learning:metrics:history:${t.name}:*`,1e3),i=[];for(let n of r){let a=(await this.memory.get(n,As))?.metrics[e];typeof a=="number"&&Number.isFinite(a)&&i.push(a)}return i}calculateMean(t){return t.length===0?0:t.reduce((e,r)=>e+r,0)/t.length}calculateStdDev(t){if(t.length===0)return 0;let e=this.calculateMean(t),r=t.map(i=>Math.pow(i-e,2));return Math.sqrt(r.reduce((i,n)=>i+n,0)/t.length)}calculatePValue(t,e){let r=this.calculateMean(t),i=this.calculateMean(e),n=Math.pow(this.calculateStdDev(t),2),s=Math.pow(this.calculateStdDev(e),2),a=t.length,o=e.length,c=Math.sqrt(n/a+s/o);if(c===0)return;let u=Math.abs(r-i)/c,d=2*(1-this.normalCDF(u));return Math.max(0,Math.min(1,d))}normalCDF(t){let e=.254829592,r=-.284496736,i=1.421413741,n=-1.453152027,s=1.061405429,a=.3275911,o=t<0?-1:1;t=Math.abs(t)/Math.sqrt(2);let c=1/(1+a*t),u=1-((((s*c+n)*c+i)*c+r)*c+e)*c*Math.exp(-t*t);return .5*(1+o*u)}scoreContextMatch(t,e){let r=0,i=0;return e.tags.some(n=>n===t.objective.metric)&&(r+=1),i+=1,e.tags.some(n=>n===t.domain)&&(r+=1),i+=1,i>0?r/i:.5}getDefaultParameters(t){let e={timeout:3e4,retryCount:3,concurrency:4};return t.framework&&(e.framework=t.framework),t.language&&(e.language=t.language),e}calculateSuccessRate(t){return t.length===0?0:t.filter(e=>e.result.success).length/t.length}calculateAverageDuration(t){return t.length===0?0:t.reduce((e,r)=>e+r.result.duration,0)/t.length}calculateAverageReward(t){return t.length===0?0:t.reduce((e,r)=>e+r.reward,0)/t.length}identifyImprovementAreas(t,e,r){let i=[];e.success_rate<.8&&i.push("Increase success rate by tuning parameters"),e.avg_duration_ms>1e4&&i.push("Optimize for faster execution"),e.avg_reward<.5&&i.push("Improve reward through better strategy selection");let n=t.parameters;return n.retryCount<2&&i.push("Consider increasing retry count for resilience"),n.concurrency>8&&i.push("High concurrency may cause resource contention"),i}generateParameterCombinations(t){let e=Object.keys(t);if(e.length===0)return[{}];let r=[];function i(n,s){if(n===e.length){r.push({...s});return}let a=e[n];if(!xs(a)){i(n+1,s);return}for(let o of t[a])s[a]=o,i(n+1,s)}return i(0,{}),r}async updateAggregatedMetrics(t,e){let r=`learning:metrics:aggregated:${t}`,n=(await this.memory.get(r,As))?.metrics||{};for(let[s,a]of Object.entries(e))xs(s)&&(n[s]||(n[s]={sum:0,count:0}),n[s].sum+=a,n[s].count+=1);await this.memory.set(r,{metrics:n,updatedAt:new Date},{namespace:"learning-optimization",persist:!0})}async storeOptimizationResult(t){await this.memory.set(`learning:strategy:optimized:${t.id}`,t,{namespace:"learning-optimization",persist:!0}),await this.memory.set(`learning:strategy:domain:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0})}async storeABTestResult(t,e,r){let i=w();await this.memory.set(`learning:abtest:${i}`,{testId:i,strategyA:t.name,strategyB:e.name,result:r,timestamp:new Date},{namespace:"learning-optimization",persist:!0})}async storeStrategyEvaluation(t){let e=w();await this.memory.set(`learning:evaluation:${e}`,{...t,evaluatedAt:new Date},{namespace:"learning-optimization",ttl:86400*7})}};function gb(l){let t=new Date(l.timestamp).getTime();return Number.isNaN(t)?0:t}k();gr();var Sk={metricsRetentionDays:90,anomalyThreshold:2.5,trendWindowSize:7,alertThresholds:{error_rate:.05,latency_p99:5e3,memory_usage:.9,cpu_usage:.8}},Gr=class{constructor(t,e={}){this.memory=t;this.config={...Sk,...e}}memory;config;async recordMetric(t,e,r,i,n=[]){try{let s={id:w(),name:t,value:e,unit:r,domain:i,tags:n,timestamp:new Date};return await this.memory.set(`production:metric:${s.id}`,s,{namespace:"learning-optimization",ttl:this.config.metricsRetentionDays*86400}),await this.indexMetric(s),await this.checkForAnomalies(s),f(s.id)}catch(s){return g(y(s))}}async recordMetricsBatch(t){try{let e=[];for(let r of t){let i=await this.recordMetric(r.name,r.value,r.unit,r.domain,r.tags);i.success&&e.push(i.value)}return f(e)}catch(e){return g(y(e))}}async getMetricsHistory(t,e,r){try{let i=r?`production:metric:index:${t}:${r}:*`:`production:metric:index:${t}:*`,n=await this.memory.search(i,1e3),s=[];for(let a of n){let o=await this.memory.get(a);if(o){let c=ge(await this.memory.get(`production:metric:${o}`),["timestamp"]);c&&e.contains(c.timestamp)&&s.push(c)}}return s.sort((a,o)=>a.timestamp.getTime()-o.timestamp.getTime()),f(s)}catch(i){return g(y(i))}}async recordIncident(t,e,r,i,n){try{let s={id:w(),severity:t,title:e,description:r,domain:i,metrics:n,startedAt:new Date};return await this.memory.set(`production:incident:${s.id}`,s,{namespace:"learning-optimization",persist:!0}),await this.indexIncident(s),await this.createExperienceFromIncident(s),f(s)}catch(s){return g(y(s))}}async resolveIncident(t,e,r){try{let i=ge(await this.memory.get(`production:incident:${t}`),["startedAt","resolvedAt"]);if(!i)return g(new Error(`Incident ${t} not found`));let n={...i,rootCause:e,resolution:r,resolvedAt:new Date};return await this.memory.set(`production:incident:${t}`,n,{namespace:"learning-optimization",persist:!0}),await this.updateExperienceWithResolution(n),f(n)}catch(i){return g(y(i))}}async getRecentIncidents(t=10,e){try{let r=e?`production:incident:index:domain:${e}:*`:"production:incident:*",i=await this.memory.search(r,t*2),n=[];for(let a of i)if(a.includes(":index:")){let o=await this.memory.get(a);if(o){let c=ge(await this.memory.get(`production:incident:${o}`),["startedAt","resolvedAt"]);c&&n.push(c)}}else{let o=ge(await this.memory.get(a),["startedAt","resolvedAt"]);o&&n.push(o)}n.sort((a,o)=>o.startedAt.getTime()-a.startedAt.getTime());let s=Array.from(new Map(n.map(a=>[a.id,a])).values());return f(s.slice(0,t))}catch(r){return g(y(r))}}async getProductionHealth(){try{let t=["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence","code-intelligence","security-compliance","learning-optimization"],e={},r={},i="healthy",n=0,s=0;for(let d of t){let m=await this.getDomainHealth(d);e[d]=m,m.status==="degraded"&&n++,m.status==="unhealthy"&&s++;for(let[p,h]of Object.entries(m.metrics))r[`${d}_${p}`]=h}s>0?i="unhealthy":n>t.length/3&&(i="degraded");let a=await this.calculateTrends(),o=await this.getRecentIncidents(5),c=o.success?o.value:[],u=this.generateHealthRecommendations(e,r,c);return f({overall:i,domains:e,metrics:r,trends:a,recentIncidents:c,recommendations:u})}catch(t){return g(y(t))}}async getDomainHealth(t){let e=zt.lastNDays(1),r=await this.getMetricsHistory("*",e,t),i=Be();if(r.success)for(let o of r.value)i[o.name],i[o.name]=o.value;let n=await this.getRecentIncidents(100,t),s=n.success?n.value.filter(o=>!o.resolvedAt).length:0,a="healthy";return s>2?a="unhealthy":s>0&&(a="degraded"),i.error_rate>this.config.alertThresholds.error_rate?a="unhealthy":i.latency_p99>this.config.alertThresholds.latency_p99&&(a="degraded"),{status:a,metrics:i,activeIncidents:s}}async calculateTrends(){let t=[],e=["error_rate","latency_p99","success_rate"],r=this.config.trendWindowSize;for(let i of e)for(let n=0;n<r;n++){let s=new Date;s.setDate(s.getDate()-n),s.setHours(0,0,0,0);let a=new Date(s);a.setHours(23,59,59,999);let o=zt.create(s,a),c=await this.getMetricsHistory(i,o);if(c.success&&c.value.length>0){let u=c.value.reduce((d,m)=>d+m.value,0)/c.value.length;t.push({timestamp:s,metric:i,value:u})}}return t}generateHealthRecommendations(t,e,r){let i=[];for(let[a,o]of Object.entries(t))o.status==="unhealthy"?i.push(`Domain ${a} is unhealthy. Review active incidents and metrics.`):o.status==="degraded"&&i.push(`Domain ${a} is degraded. Monitor closely.`);for(let[a,o]of Object.entries(e)){let c=a.split("_").slice(-2).join("_"),u=this.config.alertThresholds[c];u&&o>u&&i.push(`Metric ${a} (${o.toFixed(2)}) exceeds threshold (${u})`)}let n=r.filter(a=>!a.resolvedAt);return n.length>3&&i.push(`${n.length} unresolved incidents require attention`),r.reduce((a,o)=>(a[o.severity]=(a[o.severity]||0)+1,a),{}).critical>2&&i.push("Multiple critical incidents detected. Consider system-wide review."),i.length===0&&i.push("All systems operating within normal parameters."),i}async extractInsights(t,e){try{let r=await this.getMetricsHistory("*",t,e),i=r.success?r.value:[],n=await this.getRecentIncidents(50,e),s=n.success?n.value:[],a=i.length,o=s.filter(p=>p.resolvedAt),c=s.length>0?o.length/s.length:1,u=this.calculateRewardFromIncidents(s),d=this.generateInsightRecommendations(i,s),m=this.detectMetricAnomalies(i);return f({experienceCount:a,successRate:c,avgReward:u,patterns:[],anomalies:m,recommendations:d})}catch(r){return g(y(r))}}async recordMilestone(t,e,r){try{let i={name:t,achievedAt:new Date,domain:e};return await this.memory.set(`production:milestone:${w()}`,{...i,metrics:r},{namespace:"learning-optimization",persist:!0}),f(i)}catch(i){return g(y(i))}}async getRecentMilestones(t=10){try{let e=await this.memory.search("production:milestone:*",t),r=[];for(let i of e){let n=ge(await this.memory.get(i),["achievedAt"]);n&&r.push(n)}return r.sort((i,n)=>n.achievedAt.getTime()-i.achievedAt.getTime()),f(r.slice(0,t))}catch(e){return g(y(e))}}async indexMetric(t){await this.memory.set(`production:metric:index:${t.name}:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",ttl:this.config.metricsRetentionDays*86400})}async indexIncident(t){await this.memory.set(`production:incident:index:domain:${t.domain}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0}),await this.memory.set(`production:incident:index:severity:${t.severity}:${t.id}`,t.id,{namespace:"learning-optimization",persist:!0})}async checkForAnomalies(t){let e=zt.lastNDays(7),r=await this.getMetricsHistory(t.name,e,t.domain);if(!r.success||r.value.length<10)return;let i=r.value.map(o=>o.value),n=i.reduce((o,c)=>o+c,0)/i.length,s=Math.sqrt(i.reduce((o,c)=>o+Math.pow(c-n,2),0)/i.length),a=Math.abs(t.value-n)/(s||1);a>this.config.anomalyThreshold&&await this.memory.set(`production:anomaly:${w()}`,{metricId:t.id,metricName:t.name,value:t.value,mean:n,stdDev:s,deviation:a,timestamp:new Date},{namespace:"learning-optimization",ttl:86400*7})}async createExperienceFromIncident(t){let e={context:{incidentId:t.id,severity:t.severity,domain:t.domain},metrics:t.metrics},r={success:!1,outcome:t.metrics,duration:0},i={id:w(),agentId:{value:"production-intel",domain:"learning-optimization",type:"analyzer"},domain:t.domain,action:`incident-${t.severity}`,state:e,result:r,reward:this.calculateIncidentReward(t),timestamp:t.startedAt};await this.memory.set(`learning:experience:${i.id}`,i,{namespace:"learning-optimization",ttl:86400*30})}async updateExperienceWithResolution(t){if(!t.resolvedAt)return;let e={context:{incidentId:t.id,rootCause:t.rootCause,resolution:t.resolution},metrics:t.metrics},r=t.resolvedAt.getTime()-t.startedAt.getTime(),i={success:!0,outcome:{...t.metrics,resolution_time_ms:r},duration:r},n={id:w(),agentId:{value:"production-intel",domain:"learning-optimization",type:"analyzer"},domain:t.domain,action:`resolution-${t.severity}`,state:e,result:i,reward:1-this.calculateIncidentReward(t),timestamp:t.resolvedAt};await this.memory.set(`learning:experience:${n.id}`,n,{namespace:"learning-optimization",ttl:86400*30})}calculateIncidentReward(t){return-({critical:.9,high:.7,medium:.4,low:.2}[t.severity]||.5)}calculateRewardFromIncidents(t){if(t.length===0)return .8;let e={critical:.1,high:.3,medium:.6,low:.8},r=0,i=0;for(let n of t){let s=e[n.severity]||.5,a=n.resolvedAt?.2:0;r+=s+a,i++}return i>0?r/i:.8}generateInsightRecommendations(t,e){let r=[],i=new Map;for(let n of t){let s=i.get(n.name)||[];s.push(n.value),i.set(n.name,s)}for(let[n,s]of i){let a=this.calculateTrendDirection(s);a==="increasing"&&n.includes("error")?r.push(`${n} is trending upward. Investigate root causes.`):a==="decreasing"&&n.includes("success")&&r.push(`${n} is declining. Review recent changes.`)}if(e.length>0){let n=new Map;for(let s of e)n.set(s.domain,(n.get(s.domain)||0)+1);for(let[s,a]of n)a>3&&r.push(`Domain ${s} has ${a} incidents. Consider preventive measures.`)}return r}detectMetricAnomalies(t){let e=[],r=new Map;for(let i of t){let n=r.get(i.name)||[];n.push(i),r.set(i.name,n)}for(let[i,n]of r){if(n.length<5)continue;let s=n.map(c=>c.value),a=s.reduce((c,u)=>c+u,0)/s.length,o=Math.sqrt(s.reduce((c,u)=>c+Math.pow(u-a,2),0)/s.length);for(let c of n){let u=Math.abs(c.value-a)/(o||1);u>this.config.anomalyThreshold&&e.push({experienceId:c.id,type:"outlier-reward",description:`${i} value ${c.value.toFixed(2)} is ${u.toFixed(1)} std deviations from mean`,deviation:u})}}return e}calculateTrendDirection(t){if(t.length<3)return"stable";let e=t.slice(0,Math.floor(t.length/2)),r=t.slice(Math.floor(t.length/2)),i=e.reduce((a,o)=>a+o,0)/e.length,s=(r.reduce((a,o)=>a+o,0)/r.length-i)/(i||1);return s>.1?"increasing":s<-.1?"decreasing":"stable"}};async function hb(l,t,e){await l.set(`learning:strategy:current:${t}`,e,{namespace:"learning-optimization",persist:!0})}function fb(l,t){let e=l.map(r=>r.result.outcome[t]??0).filter(r=>!isNaN(r));return e.length===0?0:e.reduce((r,i)=>r+i,0)/e.length}function yb(l){return{"test-generation":["test-execution","coverage-analysis"],"test-execution":["test-generation","coverage-analysis","quality-assessment"],"coverage-analysis":["test-generation","test-execution","quality-assessment"],"quality-assessment":["test-execution","coverage-analysis","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"],"chaos-resilience":["test-execution","quality-assessment"],"learning-optimization":Ve.filter(e=>e!=="learning-optimization"),"enterprise-integration":["contract-testing","security-compliance","quality-assessment"],coordination:Ve.filter(e=>e!=="coordination")}[l]||[]}function vb(l){let t=[],e=new Set;for(let r of l){if(e.has(r.id))continue;let i=[r];e.add(r.id);for(let n of l)e.has(n.id)||r.type===n.type&&r.domain===n.domain&&Rk(r.context,n.context)&&(i.push(n),e.add(n.id));i.length>=2&&t.push(i)}return t}function Rk(l,t){return l.tags.some(e=>t.tags.includes(e))}function bb(l,t,e){let r=JSON.stringify({patternCount:l.length,knowledgeCount:t.length,strategyCount:e.length,patternIds:l.map(n=>n.id).sort(),knowledgeIds:t.map(n=>n.id).sort(),strategyIds:e.map(n=>n.id).sort()}),i=0;for(let n=0;n<r.length;n++){let s=r.charCodeAt(n);i=(i<<5)-i+s,i=i&i}return Math.abs(i).toString(16)}_();var ji=A.create("learning-optimization/consensus");async function wb(l,t,e,r){let i=W({id:w(),type:"pattern-recommendation",confidence:t,description:`Verify pattern recommendation: ${l.name} (${l.type}) for domain ${l.domain}`,payload:l,detectedBy:"learning-optimization-coordinator",severity:t>.9?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(ji.info(`Pattern recommendation '${l.name}' verified by consensus`),!0):(ji.warn(`Pattern recommendation '${l.name}' NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}async function Cb(l,t,e,r){let i=W({id:w(),type:"optimization-suggestion",confidence:t,description:`Verify optimization: ${l.metric} from ${l.currentValue} to ${l.targetValue} via ${l.strategy}`,payload:l,detectedBy:"learning-optimization-coordinator",severity:t>.85?"high":"medium"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(ji.info(`Optimization suggestion for '${l.metric}' verified by consensus`),!0):(ji.warn(`Optimization suggestion for '${l.metric}' NOT verified`),!1)}return!0}async function Sb(l,t,e,r){let i=W({id:w(),type:"cross-domain-insight",confidence:t,description:`Verify cross-domain insight: ${l.description}`,payload:l,detectedBy:"learning-optimization-coordinator",severity:"high"});if(e.requiresConsensus(i)){let n=await e.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(ji.info(`Cross-domain insight verified by consensus for ${l.targetDomains.length} target domains`),!0):(ji.warn(`Cross-domain insight NOT verified: ${n.success?n.value.verdict:n.error.message}`),!1)}return!0}var Ak={maxConcurrentWorkflows:3,defaultTimeout:12e4,enableAutoOptimization:!0,publishEvents:!0,learningCycleIntervalMs:36e5,enableDreamScheduler:!0,dreamCycleIntervalMs:36e5,enableExperienceTrigger:!0,experienceThreshold:50,enableQualityGateFailureTrigger:!0,autoApplyHighConfidenceInsights:!1,autoApplyConfidenceThreshold:.8,enableMinCutAwareness:!0,topologyHealthThreshold:.5,pauseOnCriticalTopology:!1,enableConsensus:!0,consensusThreshold:.7,consensusStrategy:"weighted",consensusMinModels:2},Ge=A.create("learning-optimization"),Gc=class extends re{constructor(e,r,i,n={},s){let a={...Ak,...n};super(e,"learning-optimization",a,{verifyFindingTypes:["pattern-recommendation","optimization-suggestion","cross-domain-insight"]});this.memory=r;this.agentCoordinator=i;this.learningService=new zr({memory:r,llmRouter:s}),this.transferService=new Br(r),this.optimizerService=new qr(r),this.productionIntel=new Gr(r)}memory;agentCoordinator;learningService;transferService;optimizerService;productionIntel;sona=null;dreamScheduler=null;async onInitialize(){try{this.sona=await De({domain:"learning-optimization",loadOnInit:!0,autoSaveInterval:6e4,maxPatterns:1e4,minConfidence:.5}),Ge.info("PersistentSONAEngine initialized for pattern learning")}catch(e){Ge.error("Failed to initialize PersistentSONAEngine:",e instanceof Error?e:void 0),Ge.warn("Continuing without SONA pattern persistence"),this.sona=null}if(this.config.enableDreamScheduler)try{let e=await Fs();await e.initialize(),this.dreamScheduler=Gm({dreamEngine:e,eventBus:this.eventBus,memoryBackend:this.memory},{autoScheduleIntervalMs:this.config.dreamCycleIntervalMs,enableExperienceTrigger:this.config.enableExperienceTrigger,experienceThreshold:this.config.experienceThreshold,enableQualityGateFailureTrigger:this.config.enableQualityGateFailureTrigger,autoApplyHighConfidenceInsights:this.config.autoApplyHighConfidenceInsights,insightConfidenceThreshold:this.config.autoApplyConfidenceThreshold}),await this.dreamScheduler.initialize(),this.dreamScheduler.start(),Ge.info("DreamScheduler initialized and started")}catch{Ge.warn("Failed to initialize DreamScheduler:")}this.subscribeToEvents(),await this.loadWorkflowState()}async onDispose(){if(await this.saveWorkflowState(),this.dreamScheduler){try{await this.dreamScheduler.dispose(),Ge.info("DreamScheduler disposed")}catch(e){Ge.error("Error disposing DreamScheduler:",e instanceof Error?e:void 0)}this.dreamScheduler=null}if(this.initialized&&this.sona)try{await this.sona.close()}catch(e){Ge.error("Error closing SONA engine:",e instanceof Error?e:void 0)}}getActiveWorkflows(){return super.getActiveWorkflows()}async runLearningCycle(e){let r=w();try{if(this.startWorkflow(r,"learning-cycle"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&Ge.warn("Topology degraded, using conservative strategy for learning cycle"),this.minCutMixin.shouldPauseOperations())return g(new Error("Learning cycle paused: topology is in critical state"));let i=await this.spawnLearningAgent(r,e);if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);this.addAgentToWorkflow(r,i.value);let n=zt.lastNDays(1),s=await this.getExperiencesForDomain(e,n),a=s.success?Mt(s.value).measured:[];this.updateWorkflowProgress(r,20);let o=await this.learningService.mineExperiences(e,n),c=o.success?o.value.patterns.length:0;this.updateWorkflowProgress(r,50);let u=0,d=[];if(a.length>=10){let h={metric:"success_rate",direction:"maximize",constraints:[]},b=await this.getCurrentStrategy(e),v=await this.optimizerService.optimizeStrategy(b,h,a);if(v.success){u=1;let C=v.value.optimizedStrategy.expectedOutcome[h.metric];typeof C=="number"&&d.push({metric:h.metric,before:this.calculateMetricValue(a,h.metric),after:C,percentChange:v.value.improvement*100,estimated:!0})}}this.updateWorkflowProgress(r,80);let m=0;o.success&&o.value.recommendations.length>0&&(await this.transferService.createKnowledge("heuristic",e,o.value.recommendations,{value:`learning-agent-${r.slice(0,8)}`,domain:"learning-optimization",type:"analyzer"},[e])).success&&(m=1),this.completeWorkflow(r),await this.agentCoordinator.stop(i.value);let p={domain:e,experiencesProcessed:a.length,patternsLearned:c,strategiesOptimized:u,knowledgeGenerated:m,improvements:d};return this.config.publishEvents&&c>0&&await this.publishPatternConsolidated(c,[e]),f(p)}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async optimizeAllStrategies(){let e=w();try{if(this.startWorkflow(e,"optimization"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&Ge.warn("Topology degraded, using conservative optimization strategy"),this.minCutMixin.shouldPauseOperations())return g(new Error("Optimization paused: topology is in critical state"));let r={},i=0,n=0,s=0,a=Ve.filter(c=>c!=="learning-optimization");for(let c=0;c<a.length;c++){let u=a[c];this.updateWorkflowProgress(e,Math.round(c/a.length*100));let d=zt.lastNDays(7),m=await this.getExperiencesForDomain(u,d);if(!m.success||m.value.length<10)continue;let p=m.value,h={metric:"success_rate",direction:"maximize",constraints:[]},b=await this.getCurrentStrategy(u),v=await this.optimizerService.optimizeStrategy(b,h,p);v.success&&(i++,n+=v.value.improvement,s++,r[u]={strategiesOptimized:1,avgImprovement:v.value.improvement,bestStrategy:v.value.optimizedStrategy},await this.storeStrategy(u,v.value.optimizedStrategy))}this.completeWorkflow(e);let o={domainsOptimized:s,totalStrategies:i,avgImprovement:i>0?n/i:0,improvementEstimated:!0,byDomain:r};return this.config.publishEvents&&i>0&&await this.publishOptimizationApplied(o),f(o)}catch(r){return this.failWorkflow(e,String(r)),g(y(r))}}async shareCrossDomainLearnings(){let e=w();try{if(this.startWorkflow(e,"transfer"),this.config.enableMinCutAwareness&&!this.isTopologyHealthy()&&Ge.warn("Topology degraded, limiting cross-domain transfer scope"),this.minCutMixin.shouldPauseOperations())return g(new Error("Cross-domain sharing paused: topology is in critical state"));let r=0,i=[],n=0,s=0,a=0,o=await this.transferService.queryKnowledge({minRelevance:.7,limit:100});if(!o.success)return this.failWorkflow(e,o.error.message),g(o.error);let c=o.value;for(let m of c){let p=this.getRelatedDomains(m.domain);for(let h of p){if(h===m.domain)continue;s++,(await this.transferService.transferKnowledge(m,h)).success&&(a++,r++,i.includes(h)||i.push(h))}this.updateWorkflowProgress(e,Math.round(r/(c.length*2)*100))}let u=await this.learningService.getPatternStats();if(u.success){let m=u.value.topPatterns;if(m.length>=2){let p=this.findSimilarPatterns(m);for(let h of p)h.length>=2&&(await this.learningService.consolidatePatterns(h.map(v=>v.id))).success&&n++}}this.completeWorkflow(e);let d={knowledgeShared:r,domainsUpdated:i,transferSuccessRate:s>0?a/s:null,newPatternsCreated:n};return this.config.publishEvents&&r>0&&await this.publishTransferCompleted(d),f(d)}catch(r){return this.failWorkflow(e,String(r)),g(y(r))}}async getLearningDashboard(){try{let e=await this.learningService.getPatternStats(),r=e.success?e.value:null,i=await this.transferService.queryKnowledge({limit:1e3}),n=i.success?i.value.length:0,s=zt.lastNDays(1),a=0;for(let b of Ve){let v=await this.getExperiencesForDomain(b,s);v.success&&(a+=v.value.length)}let o=await this.productionIntel.getProductionHealth(),c=o.success?o.value.trends:[],u=await this.productionIntel.getRecentMilestones(5),d=u.success?u.value:[],m=r&&r.totalPatterns>0?r.avgSuccessRate*.6+r.avgConfidence*.4:null,p=[];if(r){let b=Object.entries(r.byDomain).filter(([v,C])=>C>0).map(([v,C])=>({domain:v,score:C})).sort((v,C)=>C.score-v.score);p.push(...b.slice(0,3).map(v=>v.domain))}let h={overallLearningRate:m,totalPatterns:r?.totalPatterns||0,totalKnowledge:n,experiencesLast24h:a,topPerformingDomains:p,learningTrend:c,recentMilestones:d};return f(h)}catch(e){return g(y(e))}}learnPattern(e,r,i,n,s,a){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.createPattern(e,r,i,n,s,a)}ensureInitialized(){if(!this.initialized)throw new Error("[LearningOptimizationCoordinator] Not initialized. Call initialize() first.")}ensureSONAAvailable(){if(!this.sona)throw new Error("[LearningOptimizationCoordinator] SONA engine is not available. Pattern persistence failed during initialization.")}async adaptPattern(e,r,i){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.adaptPattern(e,r,i)}getSONAStats(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getStats()}async getSONAPersistedStats(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getPersistedStats()}getSONAPatterns(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getAllPatterns()}getSONAPatternsByType(e){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getPatternsByType(e)}getSONAPatternsByDomain(e){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.getPatternsByDomain(e)}updateSONAPattern(e,r,i){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.updatePattern(e,r,i)}forceSONALearning(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.forceLearn()}isSONAAvailable(){return this.initialized&&this.sona!==null}exportSONAPatterns(){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.exportPatterns()}importSONAPatterns(e){this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.importPatterns(e)}async verifySONAPerformance(e=100){return this.ensureInitialized(),this.ensureSONAAvailable(),this.sona.verifyPerformance(e)}async triggerDreamCycle(e){if(!this.dreamScheduler)throw new Error("[LearningOptimizationCoordinator] DreamScheduler not initialized");let r=await this.dreamScheduler.triggerDream(e);return this.config.publishEvents&&await this.publishDreamCycleCompleted(r.cycle.id,r.cycle.durationMs??0,r.cycle.conceptsProcessed,r.insights.map(i=>({id:i.id,type:i.type,description:i.description,noveltyScore:i.noveltyScore,confidenceScore:i.confidenceScore,actionable:i.actionable,suggestedAction:i.suggestedAction,sourceConcepts:i.sourceConcepts})),r.patternsCreated),r}getDreamStatus(){return this.dreamScheduler?.getStatus()??null}isDreamSchedulerAvailable(){return this.dreamScheduler!==null}getLastDreamResult(){return this.dreamScheduler?.getLastDreamResult()??null}async triggerQuickDream(){if(!this.dreamScheduler)throw new Error("[LearningOptimizationCoordinator] DreamScheduler not initialized");return this.dreamScheduler.triggerQuickDream()}async triggerFullDream(){if(!this.dreamScheduler)throw new Error("[LearningOptimizationCoordinator] DreamScheduler not initialized");return this.dreamScheduler.triggerFullDream()}async exportModels(e){let r=w();try{this.startWorkflow(r,"export");let i=e||Ve,n=[],s=[],a=[],o=await Bc(this.memory,{retrieve:_e});for(let p of o)i.includes(p.domain)&&n.push(p);this.updateWorkflowProgress(r,30);let c=await this.transferService.queryKnowledge({limit:Number.POSITIVE_INFINITY});if(c.success)for(let p of c.value)i.includes(p.domain)&&s.push(p);this.updateWorkflowProgress(r,60);let u=await br(this.memory,"learning:strategy:optimized:*",{retrieve:_e});for(let p of u){let h=await this.memory.get(p,_e);h&&i.includes(h.domain)&&a.push(h)}this.updateWorkflowProgress(r,90);let d=this.calculateChecksum(n,s,a);return this.completeWorkflow(r),f({version:"1.0.0",exportedAt:new Date,patterns:n,knowledge:s,strategies:a,checksum:d})}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async importModels(e){let r=w();try{if(this.startWorkflow(r,"import"),this.calculateChecksum(e.patterns,e.knowledge,e.strategies)!==e.checksum)return this.failWorkflow(r,"Checksum mismatch"),g(new Error("Import failed: checksum mismatch"));let n=0,s=0,a=0,o=[];for(let u of e.patterns){let d=await this.memory.get(`learning:pattern:${u.id}`,{namespace:"learning-optimization"});d?d.confidence<u.confidence?(await this.memory.set(`learning:pattern:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),n++,o.push({type:"pattern",id:u.id,reason:"Existing pattern had lower confidence",resolution:"overwrite"})):o.push({type:"pattern",id:u.id,reason:"Existing pattern has higher confidence",resolution:"skip"}):(await this.memory.set(`learning:pattern:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),n++),this.updateWorkflowProgress(r,Math.round(n/e.patterns.length*30))}for(let u of e.knowledge){let d=await this.memory.get(`learning:knowledge:shared:${u.id}`,_e);d?u.version>d.version?(await this.memory.set(`learning:knowledge:shared:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),s++,o.push({type:"knowledge",id:u.id,reason:"Import has newer version",resolution:"overwrite"})):o.push({type:"knowledge",id:u.id,reason:"Existing knowledge is same or newer version",resolution:"skip"}):(await this.memory.set(`learning:knowledge:shared:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),s++),this.updateWorkflowProgress(r,30+Math.round(s/e.knowledge.length*30))}for(let u of e.strategies){let d=await this.memory.get(`learning:strategy:optimized:${u.id}`,_e);d?u.confidence>d.confidence?(await this.memory.set(`learning:strategy:optimized:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),a++,o.push({type:"strategy",id:u.id,reason:"Import has higher confidence",resolution:"overwrite"})):o.push({type:"strategy",id:u.id,reason:"Existing strategy has higher confidence",resolution:"skip"}):(await this.memory.set(`learning:strategy:optimized:${u.id}`,u,{namespace:"learning-optimization",persist:!0}),a++),this.updateWorkflowProgress(r,60+Math.round(a/e.strategies.length*40))}return this.completeWorkflow(r),f({patternsImported:n,knowledgeImported:s,strategiesImported:a,conflicts:o,resolved:!0})}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}subscribeToEvents(){this.eventBus.subscribe("learning.ExperienceCaptured",this.handleExperienceCaptured.bind(this))}async handleExperienceCaptured(e){let{experience:r}=e.payload;if(!r.success||r.quality<.7)return;let i=r.domain||"learning-optimization";if(await this.learningService.recordExperience({agentId:{value:r.agent||"unknown",domain:i,type:"specialist"},domain:i,action:r.task,state:{context:{experienceId:r.id,trajectoryId:r.trajectoryId,model:r.model},metrics:{durationMs:r.durationMs,stepCount:r.steps.length,quality:r.quality}},result:{success:r.success,outcome:{quality:r.quality,patterns_extracted:r.patterns?.length||0},duration:r.durationMs},reward:r.quality}),r.patterns&&r.patterns.length>0&&r.domain){let n=this.getRelatedDomains(r.domain);for(let s of n)s!==r.domain&&await this.transferService.transferKnowledge({id:`exp-${r.id}`,domain:r.domain,type:"workflow",content:{format:"json",data:{task:r.task,steps:r.steps,quality:r.quality,patterns:r.patterns}},sourceAgentId:{value:r.agent||"experience-capture",domain:r.domain,type:"specialist"},targetDomains:[s],relevanceScore:r.quality,version:1,createdAt:new Date(r.startedAt)},s);Ge.info(`[LearningOptimizationCoordinator] Experience ${r.id} transferred to ${n.length} related domains`)}this.dreamScheduler&&this.dreamScheduler.recordExperience({id:r.id,agentType:r.agent||"unknown",domain:i,taskType:r.task,success:r.success,duration:r.durationMs,context:{quality:r.quality,steps:r.steps.length,patterns:r.patterns?.length||0},timestamp:new Date(r.startedAt)})}async publishPatternConsolidated(e,r){let i={patternCount:e,domains:r,improvements:0},n=N(Ct.PatternConsolidated,"learning-optimization",i);await this.eventBus.publish(n)}async publishTransferCompleted(e){let r={sourceProject:"current",targetProject:"current",patternsTransferred:e.knowledgeShared,successRate:e.transferSuccessRate??0},i=N(Ct.TransferCompleted,"learning-optimization",r);await this.eventBus.publish(i)}async publishOptimizationApplied(e){let r=N(Ct.OptimizationApplied,"learning-optimization",{domainsOptimized:e.domainsOptimized,avgImprovement:e.avgImprovement});await this.eventBus.publish(r)}async publishDreamCycleCompleted(e,r,i,n,s){if(!this.config.publishEvents)return;let a={cycleId:e,durationMs:r,conceptsProcessed:i,insights:n,patternsCreated:s},o=N(Ct.DreamCycleCompleted,"learning-optimization",a);await this.eventBus.publish(o),Ge.info(`[LearningOptimizationCoordinator] Published dream cycle completion: ${n.length} insights for ${i} concepts`)}async spawnLearningAgent(e,r){if(!this.agentCoordinator.canSpawn())return g(new Error("Agent limit reached"));let i={name:`learning-agent-${e.slice(0,8)}`,domain:"learning-optimization",type:"optimizer",capabilities:["pattern-learning","experience-mining",r],config:{workflowId:e,targetDomain:r}};return this.agentCoordinator.spawn(i)}async loadWorkflowState(){let e=await this.memory.get("learning-optimization:coordinator:workflows");if(e)for(let r of e)r.status==="running"&&(r.status="failed",r.error="Coordinator restarted",r.completedAt=new Date),this.workflows.set(r.id,r)}async saveWorkflowState(){let e=Array.from(this.workflows.values());await this.memory.set("learning-optimization:coordinator:workflows",e,{namespace:"learning-optimization",persist:!0})}async getExperiencesForDomain(e,r){let i=await this.memory.search(`learning:experience:index:domain:${e}:*`,500),n=[];for(let s of i){let a=await this.memory.get(s);if(a){let o=ge(await this.memory.get(`learning:experience:${a}`),["timestamp"]);o&&r.contains(o.timestamp)&&n.push(o)}}return f(n)}async getCurrentStrategy(e){let r=`learning:strategy:current:${e}`,i=await this.memory.get(r);return i||{name:`default-${e}`,parameters:{timeout:3e4,retryCount:3,concurrency:4},expectedOutcome:{}}}async storeStrategy(e,r){await hb(this.memory,e,r)}calculateMetricValue(e,r){return fb(e,r)}getRelatedDomains(e){return yb(e)}findSimilarPatterns(e){return vb(e)}calculateChecksum(e,r,i){return bb(e,r,i)}async verifyPatternRecommendation(e,r){return wb(e,r,this.consensusMixin,this.domainName)}async verifyOptimizationSuggestion(e,r){return Cb(e,r,this.consensusMixin,this.domainName)}async verifyCrossDomainInsight(e,r){return Sb(e,r,this.consensusMixin,this.domainName)}};k();var wm=class extends ee{constructor(e,r,i,n={},s){super(e,r);this.agentCoordinator=i;this.llmRouter=s;this.pluginConfig=n}agentCoordinator;llmRouter;coordinator=null;learningService=null;transferService=null;optimizerService=null;productionIntel=null;pluginConfig;get name(){return"learning-optimization"}get version(){return"1.0.0"}get dependencies(){return[]}getAPI(){return{isSONAAvailable:()=>this.coordinator?.isSONAAvailable()??!1,getSONAPersistedStats:async()=>this.coordinator?.isSONAAvailable()?this.coordinator.getSONAPersistedStats():null,runLearningCycle:this.runLearningCycle.bind(this),optimizeAllStrategies:this.optimizeAllStrategies.bind(this),shareCrossDomainLearnings:this.shareCrossDomainLearnings.bind(this),getLearningDashboard:this.getLearningDashboard.bind(this),exportModels:this.exportModels.bind(this),importModels:this.importModels.bind(this),learnPattern:this.learnPattern.bind(this),findMatchingPatterns:this.findMatchingPatterns.bind(this),applyPattern:this.applyPattern.bind(this),updatePatternFeedback:this.updatePatternFeedback.bind(this),getPatternStats:this.getPatternStats.bind(this),queryKnowledge:this.queryKnowledge.bind(this),transferKnowledge:this.transferKnowledge.bind(this),optimizeStrategy:this.optimizeStrategy.bind(this),runABTest:this.runABTest.bind(this),recommendStrategy:this.recommendStrategy.bind(this),evaluateStrategy:this.evaluateStrategy.bind(this),getCoordinator:()=>this.coordinator,getActiveWorkflows:()=>this.coordinator?.getActiveWorkflows()||[],getLearningService:()=>this.learningService,getTransferService:()=>this.transferService,getOptimizerService:()=>this.optimizerService,getProductionIntelService:()=>this.productionIntel}}getTaskHandlers(){return new Map([["run-learning-cycle",async e=>{if(!this.coordinator)return g(new Error("Coordinator not initialized"));let r=e.domain;return r?this.coordinator.runLearningCycle(r):g(new Error("Invalid run-learning-cycle payload: missing domain"))}],["optimize-strategies",async e=>this.coordinator?this.coordinator.optimizeAllStrategies():g(new Error("Coordinator not initialized"))],["share-learnings",async e=>this.coordinator?this.coordinator.shareCrossDomainLearnings():g(new Error("Coordinator not initialized"))],["learn-pattern",async e=>{if(!this.learningService)return g(new Error("Learning service not initialized"));let r=e.experiences;return!r||r.length===0?g(new Error("Invalid learn-pattern payload: missing experiences")):this.learningService.learnPattern(r)}],["query-knowledge",async e=>{if(!this.transferService)return g(new Error("Transfer service not initialized"));let r=e.query;return r?this.transferService.queryKnowledge(r):g(new Error("Invalid query-knowledge payload: missing query"))}]])}async onInitialize(){this.learningService=new zr({memory:this.memory,llmRouter:this.llmRouter},this.pluginConfig.learningService),this.transferService=new Br(this.memory,this.pluginConfig.transferService),this.optimizerService=new qr(this.memory,this.pluginConfig.optimizerService),this.productionIntel=new Gr(this.memory,this.pluginConfig.productionIntel),this.coordinator=new Gc(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.coordinator,this.llmRouter),await this.coordinator.initialize(),this.updateHealth({status:"idle",agents:{total:0,active:0,idle:0,failed:0},lastActivity:new Date,errors:[]})}async onDispose(){this.coordinator&&await this.coordinator.dispose(),this.coordinator=null,this.learningService=null,this.transferService=null,this.optimizerService=null,this.productionIntel=null}subscribeToEvents(){this.eventBus.subscribe("test-generation.TestGenerated",this.handleTestGenerated.bind(this)),this.eventBus.subscribe("test-execution.TestRunCompleted",this.handleTestRunCompleted.bind(this)),this.eventBus.subscribe("coverage-analysis.CoverageGapDetected",this.handleCoverageGap.bind(this)),this.eventBus.subscribe("quality-assessment.QualityGateEvaluated",this.handleQualityGate.bind(this)),this.eventBus.subscribe("defect-intelligence.DefectPredicted",this.handleDefectPredicted.bind(this)),this.eventBus.subscribe("code-intelligence.ImpactAnalysisCompleted",this.handleImpactAnalysis.bind(this))}async onEvent(e){switch(this.updateHealth({lastActivity:new Date}),e.type){case"test-generation.TestGenerated":await this.handleTestGenerated(e);break;case"test-execution.TestRunCompleted":await this.handleTestRunCompleted(e);break;case"coverage-analysis.CoverageGapDetected":await this.handleCoverageGap(e);break;default:break}}async runLearningCycle(e){this.ensureInitialized();try{let r=await this.coordinator.runLearningCycle(e);return r.success?this.trackSuccessfulOperation("learning-cycle"):this.trackFailedOperation("learning-cycle",r.error),r}catch(r){return this.handleError(r)}}async optimizeAllStrategies(){this.ensureInitialized();try{let e=await this.coordinator.optimizeAllStrategies();return e.success?this.trackSuccessfulOperation("optimization"):this.trackFailedOperation("optimization",e.error),e}catch(e){return this.handleError(e)}}async shareCrossDomainLearnings(){this.ensureInitialized();try{return await this.coordinator.shareCrossDomainLearnings()}catch(e){return this.handleError(e)}}async getLearningDashboard(){this.ensureInitialized();try{return await this.coordinator.getLearningDashboard()}catch(e){return this.handleError(e)}}async exportModels(e){this.ensureInitialized();try{return await this.coordinator.exportModels(e)}catch(r){return this.handleError(r)}}async importModels(e){this.ensureInitialized();try{return await this.coordinator.importModels(e)}catch(r){return this.handleError(r)}}async learnPattern(e){this.ensureInitialized();try{return await this.learningService.learnPattern(e)}catch(r){return this.handleError(r)}}async findMatchingPatterns(e,r){this.ensureInitialized();try{return await this.learningService.findMatchingPatterns(e,r)}catch(i){return this.handleError(i)}}async applyPattern(e,r){this.ensureInitialized();try{return await this.learningService.applyPattern(e,r)}catch(i){return this.handleError(i)}}async updatePatternFeedback(e,r){this.ensureInitialized();try{return await this.learningService.updatePatternFeedback(e,r)}catch(i){return this.handleError(i)}}async getPatternStats(e){this.ensureInitialized();try{return await this.learningService.getPatternStats(e)}catch(r){return this.handleError(r)}}async queryKnowledge(e){this.ensureInitialized();try{return await this.transferService.queryKnowledge(e)}catch(r){return this.handleError(r)}}async transferKnowledge(e,r){this.ensureInitialized();try{return await this.transferService.transferKnowledge(e,r)}catch(i){return this.handleError(i)}}async optimizeStrategy(e,r,i){this.ensureInitialized();try{return await this.optimizerService.optimizeStrategy(e,r,i)}catch(n){return this.handleError(n)}}async runABTest(e,r,i){this.ensureInitialized();try{return await this.optimizerService.runABTest(e,r,i)}catch(n){return this.handleError(n)}}async recommendStrategy(e){this.ensureInitialized();try{return await this.optimizerService.recommendStrategy(e)}catch(r){return this.handleError(r)}}async evaluateStrategy(e,r){this.ensureInitialized();try{return await this.optimizerService.evaluateStrategy(e,r)}catch(i){return this.handleError(i)}}async handleTestGenerated(e){let r=e.payload;await this.learningService.recordExperience({agentId:{value:"test-generation",domain:"test-generation",type:"generator"},domain:"test-generation",action:"test-generated",state:{context:{testId:r.testId,testType:r.testType},metrics:{}},result:{success:!0,outcome:{generated:1},duration:0},reward:.8,rewardSource:"assigned",appliedPatternIds:r.patternsUsed})}async handleTestRunCompleted(e){let r=e.payload,i=r.passed+r.failed>0?r.passed/(r.passed+r.failed):0;await this.learningService.recordExperience({agentId:{value:"test-execution",domain:"test-execution",type:"tester"},domain:"test-execution",action:"test-run",state:{context:{runId:r.runId},metrics:{passed:r.passed,failed:r.failed,duration:r.duration}},result:{success:i>.8,outcome:{success_rate:i,passed:r.passed,failed:r.failed},duration:r.duration},reward:i,rewardSource:"measured"}),await this.productionIntel.recordMetric("test_success_rate",i,"ratio","test-execution",["automated"])}async handleCoverageGap(e){if(!Ue(e.payload))return;let r=e.payload;await this.learningService.recordExperience({agentId:{value:"coverage-analysis",domain:"coverage-analysis",type:"analyzer"},domain:"coverage-analysis",action:"gap-detection",state:{context:{gapId:r.gapId,file:r.file},metrics:{riskScore:r.riskScore}},result:{success:!0,outcome:{risk_score:r.riskScore},duration:0},reward:1-r.riskScore,rewardSource:"assigned"})}async handleQualityGate(e){let r=e.payload;await this.learningService.recordExperience({agentId:{value:"quality-assessment",domain:"quality-assessment",type:"validator"},domain:"quality-assessment",action:"gate-evaluation",state:{context:{gateId:r.gateId},metrics:{passed:r.passed?1:0}},result:{success:r.passed,outcome:{gate_passed:r.passed?1:0},duration:0},reward:r.passed?1:0,rewardSource:"measured"})}async handleDefectPredicted(e){let r=e.payload;await this.learningService.recordExperience({agentId:{value:"defect-intelligence",domain:"defect-intelligence",type:"analyzer"},domain:"defect-intelligence",action:"defect-prediction",state:{context:{predictionId:r.predictionId},metrics:{probability:r.probability}},result:{success:!0,outcome:{probability:r.probability},duration:0},reward:.7,rewardSource:"assigned"})}async handleImpactAnalysis(e){let r=e.payload;await this.learningService.recordExperience({agentId:{value:"code-intelligence",domain:"code-intelligence",type:"analyzer"},domain:"code-intelligence",action:"impact-analysis",state:{context:{analysisId:r.analysisId},metrics:{changedFiles:r.changedFiles.length,impactedFiles:r.impactedFiles.length}},result:{success:!0,outcome:{changed_count:r.changedFiles.length,impacted_count:r.impactedFiles.length},duration:0},reward:.8,rewardSource:"assigned"})}ensureInitialized(){if(!this._initialized)throw new Error("LearningOptimizationPlugin is not initialized");if(!this.coordinator||!this.learningService||!this.transferService||!this.optimizerService||!this.productionIntel)throw new Error("LearningOptimizationPlugin services are not available")}handleError(e){let r=y(e),i=this.getHealth();return this.updateHealth({errors:[...i.errors.slice(-9),r.message],status:i.errors.length>=5?"degraded":i.status}),g(r)}trackSuccessfulOperation(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,total:r.agents.total+1,idle:r.agents.idle+1},lastActivity:new Date})}trackFailedOperation(e,r){let i=this.getHealth();this.updateHealth({agents:{...i.agents,failed:i.agents.failed+1},errors:[...i.errors.slice(-9),r.message]})}};function Rb(l,t,e,r,i){return new wm(l,t,e,r,i)}var Cm=class extends ee{constructor(e,r,i,n={}){super(e,r);this.agentCoordinator=i;this.pluginConfig=n}agentCoordinator;workflowOrchestrator=null;pluginConfig;get name(){return"coordination"}get version(){return"1.0.0"}get dependencies(){return Ve.filter(e=>e!=="coordination")}getAPI(){return{listWorkflows:async()=>{if(!this.workflowOrchestrator)throw new Error("Workflow orchestrator not initialized");return this.workflowOrchestrator.listWorkflows()}}}async onInitialize(){this.workflowOrchestrator=pp(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.workflowConfig),await this.workflowOrchestrator.initialize(),this.updateHealth({status:"healthy",agents:{total:0,active:0,idle:0,failed:0}})}async onDispose(){this.workflowOrchestrator&&(await this.workflowOrchestrator.dispose(),this.workflowOrchestrator=null)}async onEvent(e){e.type.startsWith("coordination.")&&await this.handleCoordinationEvent(e)}subscribeToEvents(){this.eventBus.subscribe("coordination.workflow.execute",async e=>{await this.handleEvent(e)})}async handleCoordinationEvent(e){e.type.split(".")[1]==="workflow"&&await this.handleWorkflowEvent(e)}async handleWorkflowEvent(e){this.workflowOrchestrator}};function Tb(l,t,e,r){return new Cm(l,t,e,r)}var je={CoverageAnalyzerService:"coverage-analysis.CoverageAnalyzerService",SecurityScannerService:"security-compliance.SecurityScannerService",isSemgrepAvailable:"security-compliance.isSemgrepAvailable",runSemgrepWithRules:"security-compliance.runSemgrepWithRules",convertSemgrepFindings:"security-compliance.convertSemgrepFindings",createTestGeneratorService:"test-generation.createTestGeneratorService",KnowledgeGraphService:"code-intelligence.KnowledgeGraphService",QualityAnalyzerService:"quality-assessment.QualityAnalyzerService"},Sm=class{factories=new Map;register(t,e){this.factories.set(t,e)}resolve(t){let e=this.factories.get(t);if(!e)throw new Error(`DomainServiceRegistry: service '${t}' not registered. Ensure the domain module is initialized before coordination.`);return e}has(t){return this.factories.has(t)}clear(){this.factories.clear()}keys(){return Array.from(this.factories.keys())}},He=new Sm;He.register(je.createTestGeneratorService,(l,t)=>t?Cr({memory:l,llmRouter:t}):Dl(l));He.register(je.CoverageAnalyzerService,l=>new Xt(l));He.register(je.SecurityScannerService,l=>new mt(l));He.register(je.isSemgrepAvailable,ls);He.register(je.runSemgrepWithRules,Vo);He.register(je.convertSemgrepFindings,zo);He.register(je.KnowledgeGraphService,l=>new Vt(l));k();He.register(je.QualityAnalyzerService,l=>new Dt(l));k();_();k();var jr={SoapOperationTested:"enterprise-integration.SoapOperationTested",MessageFlowTested:"enterprise-integration.MessageFlowTested",BapiTested:"enterprise-integration.BapiTested",IDocValidated:"enterprise-integration.IDocValidated",ODataTested:"enterprise-integration.ODataTested",SodAnalyzed:"enterprise-integration.SodAnalyzed",MiddlewareFlowTested:"enterprise-integration.MiddlewareFlowTested",IntegrationValidationFailed:"enterprise-integration.IntegrationValidationFailed"},Dk={maxConcurrentWorkflows:8,defaultTimeout:12e4,publishEvents:!0,enableMinCutAwareness:!0,topologyHealthThreshold:.5,pauseOnCriticalTopology:!1,enableConsensus:!0,consensusThreshold:.7,consensusStrategy:"weighted",consensusMinModels:2},jc=A.create("enterprise-integration"),Hc=class extends re{constructor(e,r,i,n={}){let s={...Dk,...n};super(e,"enterprise-integration",s,{verifyFindingTypes:["soap-fault","message-ordering-violation","rfc-compatibility-break","idoc-validation-failure","odata-contract-break","sod-conflict"],modelTimeout:12e4});this.memory=r;this.agentCoordinator=i}memory;agentCoordinator;async onInitialize(){this.subscribeToEvents(),jc.info("Enterprise Integration Coordinator initialized")}async onDispose(){}subscribeToEvents(){this.eventBus.subscribe("contract-testing.ContractVerified",this.handleContractVerified.bind(this)),this.eventBus.subscribe("chaos-resilience.FaultInjected",this.handleFaultInjected.bind(this))}getActiveWorkflows(){return super.getActiveWorkflows()}async validateWsdl(e){let r=w();try{if(this.startWorkflow(r,"soap"),this.minCutMixin.shouldPauseOperations())return g(new Error("WSDL validation paused: topology is in critical state"));let i=await this.spawnAgent(r,"qe-soap-tester",{task:"validate-wsdl",url:e});if(!i.success)return this.failWorkflow(r,i.error.message),i;let n={url:e,version:"1.1",services:[],schemas:[]};return await this.memory.set(`enterprise-integration:wsdl:${encodeURIComponent(e)}`,n,{namespace:"enterprise-integration",persist:!0}),this.completeWorkflow(r),f(n)}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async testSoapOperation(e,r,i){let n=w();try{this.startWorkflow(n,"soap");let s=await this.spawnAgent(n,"qe-soap-tester",{task:"test-operation",wsdl:e,operation:r,input:i});if(!s.success)return this.failWorkflow(n,s.error.message),g(s.error);let a={operation:r,passed:!0,request:JSON.stringify(i),response:"",validationErrors:[],duration:0};return this.config.publishEvents&&await this.eventBus.publish(N(jr.SoapOperationTested,this.domainName,{operation:r,wsdlUrl:e.url,passed:a.passed,errors:a.validationErrors.length})),this.completeWorkflow(n),f(a)}catch(s){return this.failWorkflow(n,String(s)),g(y(s))}}async testMessageFlow(e,r){let i=w();try{this.startWorkflow(i,"messaging");let n=await this.spawnAgent(i,"qe-message-broker-tester",{task:"test-message-flow",brokerConfig:e,testCase:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={testCaseId:r.id,passed:!0,sentAt:new Date,receivedAt:new Date,latency:0,actualOutcome:r.expectedOutcome,errors:[]};return this.config.publishEvents&&await this.eventBus.publish(N(jr.MessageFlowTested,this.domainName,{protocol:e.protocol,queue:r.queue,passed:s.passed,latency:s.latency})),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async testDlqHandling(e,r){let i=w();try{this.startWorkflow(i,"messaging");let n=await this.spawnAgent(i,"qe-message-broker-tester",{task:"test-dlq",brokerConfig:e,queue:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={queue:r,messageCount:0,poisonMessages:0,reprocessable:0,errors:[]};return this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async testBapiCall(e,r){let i=w();try{if(this.startWorkflow(i,"rfc"),this.minCutMixin.shouldPauseOperations())return g(new Error("BAPI testing paused: topology is in critical state"));let n=await this.spawnAgent(i,"qe-sap-rfc-tester",{task:"test-bapi",connection:e,bapi:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={bapiName:r.name,passed:!0,returnMessages:[],exportValues:{},tableData:{},duration:0,transactionCommitted:!1};return this.config.publishEvents&&await this.eventBus.publish(N(jr.BapiTested,this.domainName,{bapiName:r.name,passed:s.passed,returnType:s.returnMessages.length>0?s.returnMessages[0].type:"S"})),await this.memory.set(`enterprise-integration:bapi:${r.name}:${Date.now()}`,{bapiName:r.name,importParams:Object.keys(r.importParams),passed:s.passed,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",persist:!0}),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async validateIdoc(e,r){let i=w();try{this.startWorkflow(i,"idoc");let n=await this.spawnAgent(i,"qe-sap-idoc-tester",{task:"validate-idoc",definition:e,content:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={idocType:e.type,direction:"inbound",passed:!0,statusCode:3,statusMessage:"IDoc validated successfully",segmentValidation:[],processingTime:0};return this.config.publishEvents&&await this.eventBus.publish(N(jr.IDocValidated,this.domainName,{idocType:e.type,direction:s.direction,passed:s.passed,statusCode:s.statusCode})),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async validateODataMetadata(e){let r=w();try{this.startWorkflow(r,"odata");let i=await this.spawnAgent(r,"qe-odata-contract-tester",{task:"validate-metadata",serviceUrl:e});if(!i.success)return this.failWorkflow(r,i.error.message),g(i.error);let n={version:"v4",serviceUrl:e,entitySets:[],functionImports:[],actions:[]};return await this.memory.set(`enterprise-integration:odata:${encodeURIComponent(e)}`,n,{namespace:"enterprise-integration",persist:!0}),this.completeWorkflow(r),f(n)}catch(i){return this.failWorkflow(r,String(i)),g(y(i))}}async testODataEntitySet(e,r){let i=w();try{this.startWorkflow(i,"odata");let n=await this.spawnAgent(i,"qe-odata-contract-tester",{task:"test-entity-set",metadata:e,entitySet:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={entitySet:r,operation:"CRUD",passed:!0,statusCode:200,validationErrors:[],duration:0};return this.config.publishEvents&&await this.eventBus.publish(N(jr.ODataTested,this.domainName,{entitySet:r,operation:s.operation,passed:s.passed,version:e.version})),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async validateMessageFlow(e,r){let i=w();try{this.startWorkflow(i,"middleware");let n=await this.spawnAgent(i,"qe-middleware-validator",{task:"validate-flow",flow:e,input:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={flowName:e.name,passed:!0,routingCorrect:!0,transformationCorrect:!0,errorHandlingCorrect:!0,validationErrors:[],duration:0};return this.config.publishEvents&&await this.eventBus.publish(N(jr.MiddlewareFlowTested,this.domainName,{flowName:e.name,passed:s.passed,routingCorrect:s.routingCorrect,transformationCorrect:s.transformationCorrect})),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async validateTransformation(e,r,i){let n=w();try{this.startWorkflow(n,"middleware");let s=await this.spawnAgent(n,"qe-middleware-validator",{task:"validate-transformation",spec:e,input:r,expectedOutput:i});return s.success?(this.completeWorkflow(n),f(!0)):(this.failWorkflow(n,s.error.message),g(s.error))}catch(s){return this.failWorkflow(n,String(s)),g(y(s))}}async analyzeSod(e,r){let i=w();try{this.startWorkflow(i,"sod");let n=await this.spawnAgent(i,"qe-sod-analyzer",{task:"analyze-sod",userId:e,ruleset:r});if(!n.success)return this.failWorkflow(i,n.error.message),g(n.error);let s={userId:e,conflicts:[],riskScore:0,compliant:!0,recommendations:[]};return this.config.publishEvents&&await this.eventBus.publish(N(jr.SodAnalyzed,this.domainName,{userId:e,conflicts:s.conflicts.length,compliant:s.compliant,riskScore:s.riskScore})),await this.memory.set(`enterprise-integration:sod:${e}:${Date.now()}`,{userId:e,ruleset:r.name,conflicts:s.conflicts.length,compliant:s.compliant,riskScore:s.riskScore,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",persist:!0}),this.completeWorkflow(i),f(s)}catch(n){return this.failWorkflow(i,String(n)),g(y(n))}}async spawnAgent(e,r,i){let n={name:`${r}-${e.slice(0,8)}`,domain:"enterprise-integration",type:r,capabilities:[r],config:{workflowId:e,...i}},s=await this.agentCoordinator.spawn(n);return s.success&&this.addAgentToWorkflow(e,s.value),s}async verifyCriticalFinding(e,r){let i=W({id:w(),type:e.type,confidence:r,description:e.description,payload:e.payload,detectedBy:"enterprise-integration-coordinator",severity:r>.9?"critical":"high"});if(this.consensusMixin.requiresConsensus(i)){let n=await this.consensusMixin.verifyFinding(i);return n.success&&n.value.verdict==="verified"?(jc.info(`Finding verified by consensus: ${e.type}`),!0):(jc.warn(`Finding NOT verified: ${e.type}`),!1)}return!0}async handleContractVerified(e){let r=e.payload;(r?.contractType==="soap"||r?.contractType==="odata")&&await this.memory.set(`enterprise-integration:contract-event:${Date.now()}`,{contractId:r.contractId,type:r.contractType,passed:r.passed,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",ttl:86400})}async handleFaultInjected(e){let r=e.payload;(r?.targetService?.includes("middleware")||r?.targetService?.includes("esb"))&&jc.info(`Middleware fault injection detected: ${r.targetService}`)}};var Rm=class extends ee{constructor(e,r,i,n={}){super(e,r);this.agentCoordinator=i;this.pluginConfig=n}agentCoordinator;coordinator=null;pluginConfig;get name(){return"enterprise-integration"}get version(){return"1.0.0"}get dependencies(){return[]}getAPI(){return{validateWsdl:this.validateWsdl.bind(this),testSoapOperation:this.testSoapOperation.bind(this),testMessageFlow:this.testMessageFlow.bind(this),testDlqHandling:this.testDlqHandling.bind(this),testBapiCall:this.testBapiCall.bind(this),validateIdoc:this.validateIdoc.bind(this),validateODataMetadata:this.validateODataMetadata.bind(this),testODataEntitySet:this.testODataEntitySet.bind(this),validateMessageFlow:this.validateMessageFlow.bind(this),validateTransformation:this.validateTransformation.bind(this),analyzeSod:this.analyzeSod.bind(this),getCoordinator:()=>this.coordinator,getActiveWorkflows:()=>this.coordinator?.getActiveWorkflows()||[]}}getTaskHandlers(){return new Map([["enterprise-integration:soap-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.wsdl,i=e.operation,n=e.input;return e.url&&!r?this.coordinator.validateWsdl(e.url):!r||!i?g(new Error("Invalid soap-test payload: missing wsdl or operation")):this.coordinator.testSoapOperation(r,i,n)}],["enterprise-integration:message-broker-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.brokerConfig,i=e.testCase,n=e.queue;return r?n&&!i?this.coordinator.testDlqHandling(r,n):i?this.coordinator.testMessageFlow(r,i):g(new Error("Invalid message-broker-test payload: missing testCase")):g(new Error("Invalid message-broker-test payload: missing brokerConfig"))}],["enterprise-integration:sap-rfc-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.connection,i=e.bapi;return!r||!i?g(new Error("Invalid sap-rfc-test payload: missing connection or bapi")):this.coordinator.testBapiCall(r,i)}],["enterprise-integration:sap-idoc-validate",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.definition,i=e.content;return!r||!i?g(new Error("Invalid sap-idoc-validate payload: missing definition or content")):this.coordinator.validateIdoc(r,i)}],["enterprise-integration:odata-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.serviceUrl,i=e.metadata,n=e.entitySet;return r&&!i?this.coordinator.validateODataMetadata(r):!i||!n?g(new Error("Invalid odata-test payload: missing metadata or entitySet")):this.coordinator.testODataEntitySet(i,n)}],["enterprise-integration:esb-flow-test",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.flow,i=e.input,n=e.spec;if(n){let s=e.transformInput,a=e.expectedOutput;return!s||!a?g(new Error("Invalid esb-flow-test payload: missing transformInput or expectedOutput for transformation")):this.coordinator.validateTransformation(n,s,a)}return!r||!i?g(new Error("Invalid esb-flow-test payload: missing flow or input")):this.coordinator.validateMessageFlow(r,i)}],["enterprise-integration:sod-analyze",async e=>{if(!this.coordinator)return g(new Error("Enterprise integration coordinator not initialized"));let r=e.userId,i=e.ruleset;return!r||!i?g(new Error("Invalid sod-analyze payload: missing userId or ruleset")):this.coordinator.analyzeSod(r,i)}]])}async onInitialize(){this.coordinator=new Hc(this.eventBus,this.memory,this.agentCoordinator,this.pluginConfig.coordinator),await this.coordinator.initialize(),this.updateHealth({status:"idle",agents:{total:0,active:0,idle:0,failed:0},lastActivity:new Date,errors:[]})}async onDispose(){this.coordinator&&await this.coordinator.dispose(),this.coordinator=null}subscribeToEvents(){this.eventBus.subscribe("contract-testing.ContractVerified",this.handleContractVerified.bind(this)),this.eventBus.subscribe("quality-assessment.QualityGateEvaluated",this.handleQualityGate.bind(this)),this.eventBus.subscribe("chaos-resilience.FaultInjected",this.handleFaultInjected.bind(this))}async onEvent(e){switch(this.updateHealth({lastActivity:new Date}),e.type){case"contract-testing.ContractVerified":await this.handleContractVerified(e);break;case"quality-assessment.QualityGateEvaluated":await this.handleQualityGate(e);break;case"chaos-resilience.FaultInjected":await this.handleFaultInjected(e);break;default:break}}async validateWsdl(e){this.ensureInitialized();try{let r=await this.coordinator.validateWsdl(e);return r.success?this.trackSuccessfulOperation("validateWsdl"):this.trackFailedOperation(new Error(r.error.message)),r}catch(r){return this.handleError(r)}}async testSoapOperation(e,r,i){this.ensureInitialized();try{let n=await this.coordinator.testSoapOperation(e,r,i);return n.success?this.trackSuccessfulOperation("testSoapOperation"):this.trackFailedOperation(new Error(n.error.message)),n}catch(n){return this.handleError(n)}}async testMessageFlow(e,r){this.ensureInitialized();try{let i=await this.coordinator.testMessageFlow(e,r);return i.success?this.trackSuccessfulOperation("testMessageFlow"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async testDlqHandling(e,r){this.ensureInitialized();try{let i=await this.coordinator.testDlqHandling(e,r);return i.success?this.trackSuccessfulOperation("testDlqHandling"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async testBapiCall(e,r){this.ensureInitialized();try{let i=await this.coordinator.testBapiCall(e,r);return i.success?this.trackSuccessfulOperation("testBapiCall"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async validateIdoc(e,r){this.ensureInitialized();try{let i=await this.coordinator.validateIdoc(e,r);return i.success?this.trackSuccessfulOperation("validateIdoc"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async validateODataMetadata(e){this.ensureInitialized();try{let r=await this.coordinator.validateODataMetadata(e);return r.success?this.trackSuccessfulOperation("validateODataMetadata"):this.trackFailedOperation(new Error(r.error.message)),r}catch(r){return this.handleError(r)}}async testODataEntitySet(e,r){this.ensureInitialized();try{let i=await this.coordinator.testODataEntitySet(e,r);return i.success?this.trackSuccessfulOperation("testODataEntitySet"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async validateMessageFlow(e,r){this.ensureInitialized();try{let i=await this.coordinator.validateMessageFlow(e,r);return i.success?this.trackSuccessfulOperation("validateMessageFlow"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async validateTransformation(e,r,i){this.ensureInitialized();try{let n=await this.coordinator.validateTransformation(e,r,i);return n.success?this.trackSuccessfulOperation("validateTransformation"):this.trackFailedOperation(new Error(n.error.message)),n}catch(n){return this.handleError(n)}}async analyzeSod(e,r){this.ensureInitialized();try{let i=await this.coordinator.analyzeSod(e,r);return i.success?this.trackSuccessfulOperation("analyzeSod"):this.trackFailedOperation(new Error(i.error.message)),i}catch(i){return this.handleError(i)}}async handleContractVerified(e){let r=e.payload;(r.contractType==="soap"||r.contractType==="odata")&&await this.memory.set(`enterprise-integration:contract-verified:${r.contractId}`,{contractId:r.contractId,type:r.contractType,passed:r.passed,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",ttl:86400})}async handleQualityGate(e){let r=e.payload;r.checks.find(n=>n.name==="enterprise-integration")||await this.memory.set(`enterprise-integration:quality-gate-warning:${r.gateId}`,{warning:"Enterprise integration testing not included in quality gate",timestamp:new Date().toISOString()},{namespace:"enterprise-integration",ttl:86400})}async handleFaultInjected(e){let r=e.payload;(r.targetService?.includes("middleware")||r.targetService?.includes("esb")||r.targetService?.includes("broker")||r.targetService?.includes("mq"))&&await this.memory.set(`enterprise-integration:fault-correlation:${r.faultId||Date.now()}`,{targetService:r.targetService,faultType:r.faultType,timestamp:new Date().toISOString()},{namespace:"enterprise-integration",ttl:3600})}ensureInitialized(){if(!this._initialized)throw new Error("EnterpriseIntegrationPlugin is not initialized");if(!this.coordinator)throw new Error("EnterpriseIntegrationPlugin coordinator is not available")}handleError(e){let r=y(e),i=this.getHealth();return this.updateHealth({errors:[...i.errors.slice(-9),r.message],status:i.errors.length>=5?"degraded":i.status}),{success:!1,error:r}}trackSuccessfulOperation(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,total:r.agents.total+1,idle:r.agents.idle+1},lastActivity:new Date})}trackFailedOperation(e){let r=this.getHealth();this.updateHealth({agents:{...r.agents,failed:r.agents.failed+1},errors:[...r.errors.slice(-9),e.message]})}};function Ab(l,t,e,r){return new Rm(l,t,e,r)}var Pb={"test-generation":(l,t,e,r)=>du(l,t,e,void 0,r),"test-execution":(l,t,e,r)=>Mg(l,t,r),"coverage-analysis":(l,t,e,r)=>Gu(l,t,r),"quality-assessment":(l,t,e,r)=>ed(l,t,e,void 0,r),"defect-intelligence":(l,t,e,r)=>Th(l,t,e,void 0,r),"requirements-validation":(l,t,e,r)=>kh(l,t,e,void 0,r),"code-intelligence":(l,t,e,r)=>wd(l,t,e,void 0,r),"security-compliance":(l,t,e,r)=>pm(l,t,e,void 0,r),"contract-testing":(l,t,e,r)=>Hv(l,t,e,void 0,r),"visual-accessibility":(l,t,e,r)=>nb(l,t,e,void 0,r),"chaos-resilience":(l,t,e,r)=>ob(l,t,e,void 0,r),"learning-optimization":(l,t,e,r)=>Rb(l,t,e,void 0,r),"enterprise-integration":(l,t,e,r)=>Ab(l,t,e),coordination:(l,t,e,r)=>Tb(l,t,e)},Ik={maxConcurrentAgents:Qi.MAX_CONCURRENT_AGENTS,memoryBackend:"hybrid",hnswEnabled:!0,lazyLoading:!0,enabledDomains:[...Ve],dataDir:void 0,enableExperienceBridge:!0,enableDreamScheduler:!0},Tm=class{_eventBus;_coordinator;_plugins;_memory;_config;_startTime;_initialized=!1;_loopTracker;_experienceBridge;_dreamScheduler;_llmRouter;_llmRouterBuild;constructor(t={}){this._config={...Ik,...t},this._startTime=new Date,this._memory=new Yc,this._eventBus=new Xs,this._coordinator=new Zs(this._config.maxConcurrentAgents),this._plugins=new ln(this._eventBus,this._memory,this._config.lazyLoading),this._loopTracker=new ea}get eventBus(){return this._eventBus}get coordinator(){return this._coordinator}get plugins(){return this._plugins}get memory(){return this._memory}get llmRouter(){return this._llmRouter}async initialize(){if(this._initialized)return;let t=Me(),e=this._config.dataDir||Hi.join(t,".agentic-qe");if(this._config.memoryBackend!=="memory"&&!Wc.existsSync(e)&&Wc.mkdirSync(e,{recursive:!0}),this._config.memoryBackend==="memory"){let i=Hi.join(Em("os").tmpdir(),`aqe-test-${Date.now()}-${xb().slice(0,12)}.db`);await Om({dbPath:i})}else this._memory=Am(e),this._plugins=new ln(this._eventBus,this._memory,this._config.lazyLoading);await this._initializeLLMRouter(t);for(let i of this._config.enabledDomains){let n=Pb[i];n&&this._plugins.registerFactory(i,async(s,a)=>Promise.resolve(n(s,a,this._coordinator,this._llmRouter)))}await this._memory.initialize();let r=new ra({agentId:"qe-kernel"});this._eventBus.registerMiddleware(r);try{let i=Hi.join(e,"plugins"),n=new Nm({cacheDir:i}),a=new _m({cache:n}).resolveLoadOrder();for(let o of a.errors)console.warn(`[QEKernel] External plugin ${o.plugin}: ${o.code}: ${o.message}`);for(let o of a.ordered){let c=o.manifest,u=n.get(c.name,c.version);if(!u)continue;let d=Hi.join(u.path,c.entryPoint);for(let m of c.domains){let p=m;if(Pb[p])continue;this._plugins.registerFactory(p,async(b,v)=>{let C=await import(d),S=C.default??C.createPlugin;if(typeof S!="function")throw new Error(`Plugin "${c.name}" entry point must export a default function or "createPlugin" function`);return S(b,v,this._coordinator,this._llmRouter)})}}}catch(i){console.warn("[QEKernel] External plugin discovery failed:",i)}this._config.lazyLoading||await this._plugins.loadAll();try{let{isAgentMemoryBranchingEnabled:i,isRVFPatternStoreEnabled:n}=await import("./feature-flags-H7H33B6C.js");if(i()&&n()){let{getSharedRvfAdapter:s}=await import("./shared-rvf-adapter-VHWQ6US5.js"),{AgentMemoryBranch:a}=await import("./agent-memory-branch-AEXKIGDG.js"),o=s(e,384);if(o){let c=new a(o,{branchDir:Hi.join(e,"branches")});this._coordinator.setMemoryBranch(c)}}}catch{}try{let{getRvfMigrationStage:i}=await import("./feature-flags-H7H33B6C.js"),n=i();if(n>=2){let{RvfMigrationCoordinator:s}=await import("./rvf-migration-coordinator-4ATTHGHD.js");await s.getInstance({stage:n}).initialize()}}catch{}if(this._config.enableExperienceBridge!==!1){try{await this._plugins.loadAll()}catch(i){console.warn("[QEKernel] domain plugin pre-load (for bridge subscribers) failed:",i instanceof Error?i.message:i)}try{this._experienceBridge=new ia(this._eventBus,this._memory),await this._experienceBridge.start()}catch(i){console.warn("[QEKernel] CapturedExperienceBridge failed to start:",i instanceof Error?i.message:i),this._experienceBridge=void 0}}if(this._config.enableDreamScheduler!==!1)try{let i=Fs({maxDurationMs:1e4,minConceptsRequired:3});await i.initialize(),this._dreamScheduler=new qm({dreamEngine:i,eventBus:this._eventBus,memoryBackend:this._memory}),await this._dreamScheduler.initialize(),this._dreamScheduler.start()}catch(i){if(console.warn("[QEKernel] DreamScheduler failed to start:",i instanceof Error?i.message:i),this._dreamScheduler)try{await this._dreamScheduler.dispose()}catch{}this._dreamScheduler=void 0}this._initialized=!0}async _initializeLLMRouter(t){let e=(process.env.AQE_LLM_ROUTER_DISABLED??"").trim().toLowerCase();if(e&&e!=="false"&&e!=="0"&&e!=="no"&&e!=="off"){this._llmRouter=void 0;return}let r=this._config.llmRouter??{},i=r.enabled??"auto";if(i===!1){this._llmRouter=void 0;return}try{let n=await Lm({projectRoot:t,override:r.configOverride,providerManager:r.providerManager});if(!n){i===!0&&(console.warn("[QEKernel] llmRouter.enabled=true but no provider available \u2014 continuing without LLM router (domain services will skip LLM enhancement)"),await this._publishLLMRouterEvent("init-no-provider",{reason:"no provider available in env or disk config"})),this._llmRouter=void 0;return}this._llmRouterBuild=n,this._llmRouter=n.router;try{let{setSharedLLMRouter:s}=await import("./base-OTGSN6IC.js");s(n.router)}catch{}}catch(n){let s=n instanceof Error?n.message:String(n);console.warn("[QEKernel] LLM router init failed; continuing without LLM enhancement:",s),await this._publishLLMRouterEvent("init-failed",{error:s,stack:n instanceof Error?n.stack:void 0}),this._llmRouter=void 0}}async _publishLLMRouterEvent(t,e){try{await this._eventBus.publish({id:xb(),type:`kernel.llm-router.${t}`,timestamp:new Date,source:"qe-kernel",payload:e})}catch{}}async dispose(){if(this._dreamScheduler){try{await this._dreamScheduler.dispose()}catch(t){console.warn("[QEKernel] DreamScheduler dispose failed:",t instanceof Error?t.message:t)}this._dreamScheduler=void 0}if(this._experienceBridge&&(await this._experienceBridge.stop(),this._experienceBridge=void 0),await this._plugins.disposeAll(),await this._coordinator.dispose(),await this._eventBus.dispose(),await this._memory.dispose(),this._llmRouter){try{let{resetSharedLLMRouter:t}=await import("./base-OTGSN6IC.js");t()}catch{}this._llmRouter=void 0,this._llmRouterBuild=void 0}this._initialized=!1}getDomainAPI(t){return this._plugins.getPlugin(t)?.getAPI()}async getDomainAPIAsync(t){let e=this._plugins.getPlugin(t);if(!e&&this._config.lazyLoading&&this._config.enabledDomains.includes(t))try{e=await this._plugins.load(t)}catch(r){console.error(`[QEKernel] Failed to lazy load domain ${t}:`,Uc(r));return}return e?.getAPI()}async ensureDomainLoaded(t){if(this._plugins.isLoaded(t))return!0;if(!this._config.enabledDomains.includes(t))return console.warn(`[QEKernel] Domain ${t} is not enabled`),!1;try{return await this._plugins.load(t),!0}catch(e){return console.error(`[QEKernel] Failed to load domain ${t}:`,Uc(e)),!1}}isDomainLoaded(t){return this._plugins.isLoaded(t)}getLoadedDomains(){return this._plugins.getLoaded()}getPendingDomains(){let t=new Set(this._plugins.getLoaded());return this._config.enabledDomains.filter(e=>!t.has(e))}getHealth(){let t=this._coordinator.listAgents(),e={};for(let c of this._plugins.getLoaded()){let u=this._plugins.getPlugin(c);u&&(e[c]=u.getHealth())}for(let c of Ve)if(!e[c]){let u=this._config.enabledDomains.includes(c),d=this._config.lazyLoading&&u;e[c]={status:d?"healthy":u?"degraded":"healthy",agents:{total:0,active:0,idle:0,failed:0},errors:d?[]:u?["Domain not yet loaded"]:[],loaded:!1,lazyLoadable:d}}let r=this._coordinator.getActiveCount(),i=0,n=Number.MAX_SAFE_INTEGER;if(this._memory instanceof Yc){let c=this._memory.getStats();i=c.entries+c.vectors}else i=0;let a=this._eventBus.getMiddlewares().find(c=>c.name==="semantic-anti-drift"),o=a?a.getStats():void 0;return{status:this.determineOverallStatus(e),uptime:Date.now()-this._startTime.getTime(),domains:e,agents:{total:t.length,active:r,maxAllowed:this._config.maxConcurrentAgents},memory:{used:i,available:n},...o?{antiDrift:o}:{}}}determineOverallStatus(t){let e=Object.values(t).map(r=>r.status);return e.some(r=>r==="unhealthy")?"unhealthy":e.some(r=>r==="degraded")?"degraded":"healthy"}getConfig(){return{...this._config}}checkToolCall(t,e,r){if(process.env.AQE_LOOP_DETECTION_ENABLED==="false")return this._loopTracker.trackCall(t,e,r);let i=this._loopTracker.trackCall(t,e,r);if(i.action==="warn"){let n={id:`loop-warn-${t}-${Date.now()}`,type:fl.LOOP_WARNING,timestamp:new Date,source:"coordination",correlationId:t,payload:{agentId:t,toolName:e,callCount:i.callCount,signature:i.signature}};this._eventBus.publish(n)}else if(i.action==="steer"){let n={id:`loop-detected-${t}-${Date.now()}`,type:fl.LOOP_DETECTED,timestamp:new Date,source:"coordination",correlationId:t,payload:{agentId:t,toolName:e,callCount:i.callCount,signature:i.signature,steeringMessage:i.steeringMessage}};this._eventBus.publish(n)}return i}get loopTracker(){return this._loopTracker}};function Hce(l){return new Tm(l)}export{Xs as a,Al as b,Jb as c,ii as d,Cr as e,lg as f,Xt as g,pi as h,iq as i,de as j,nq as k,sq as l,aq as m,oq as n,fi as o,Dh as p,Do as q,Io as r,zh as s,Mr as t,vd as u,Cd as v,Td as w,_o as x,$i as y,Oi as z,Ic as A,Vi as B,Bi as C,Mt as D,zr as E,Br as F,qr as G,je as H,He as I,Tm as J,Hce as K};