agentic-qe 3.15.4 → 3.15.6

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 (556) hide show
  1. package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/README.md +9 -2
  2. package/.claude/skills/qe-court/evals/qe-court.yaml +3 -2
  3. package/.claude/skills/qe-quality-assessment/schemas/output.json +12 -2
  4. package/.claude/skills/skills-manifest.json +1 -1
  5. package/CHANGELOG.md +191 -0
  6. package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/README.md +9 -2
  7. package/assets/skills/qe-court/evals/qe-court.yaml +3 -2
  8. package/assets/skills/qe-quality-assessment/schemas/output.json +12 -2
  9. package/assets/skills/skills-manifest.json +1 -1
  10. package/dist/bridge/captured-experience-bridge.js +7 -9
  11. package/dist/cli/bundle.js +5 -5
  12. package/dist/cli/chunks/adapter-PP3XIXDV.js +2 -0
  13. package/dist/cli/chunks/{agent-booster-wasm-MHJBRXMK.js → agent-booster-wasm-SY7UCLBL.js} +2 -2
  14. package/dist/cli/chunks/{agent-handler-G64SD7J2.js → agent-handler-KAMYBU3S.js} +2 -2
  15. package/dist/cli/chunks/{agent-memory-branch-G4UXFPKH.js → agent-memory-branch-2CAW3KUM.js} +2 -2
  16. package/dist/cli/chunks/aqe-learning-engine-VDUQJKKY.js +2 -0
  17. package/dist/cli/chunks/{arena-63M3M6EW.js → arena-4OFLJ3R2.js} +2 -2
  18. package/dist/cli/chunks/{arena-QJMKYPHS.js → arena-QCCVIOAH.js} +4 -4
  19. package/dist/cli/chunks/{audit-UDFVTWSX.js → audit-RBDQJQJB.js} +3 -3
  20. package/dist/cli/chunks/base-QSYWWPCE.js +2 -0
  21. package/dist/cli/chunks/{better-sqlite3-JLX2G56I.js → better-sqlite3-5JRACCDQ.js} +2 -2
  22. package/dist/cli/chunks/{brain-handler-PWF32LLW.js → brain-handler-W4QIIRT4.js} +3 -3
  23. package/dist/cli/chunks/{branch-enumerator-PB7QWXDP.js → branch-enumerator-IBNGI572.js} +2 -2
  24. package/dist/cli/chunks/{browser-CYNV2F3U.js → browser-GMSCVAOI.js} +2 -2
  25. package/dist/cli/chunks/browser-workflow-WXXPBSCM.js +2 -0
  26. package/dist/cli/chunks/{chunk-S5D3HCGN.js → chunk-22OZIJAD.js} +2 -2
  27. package/dist/cli/chunks/{chunk-NBMQOP2R.js → chunk-24ZSGYC6.js} +1 -1
  28. package/dist/cli/chunks/{chunk-HFSBONCS.js → chunk-2CIDFR2H.js} +3 -3
  29. package/dist/cli/chunks/{chunk-A4OPQJ4A.js → chunk-2IWPJUVV.js} +5 -5
  30. package/dist/cli/chunks/{chunk-RI4JPBZD.js → chunk-2ZTWPMTK.js} +2 -2
  31. package/dist/cli/chunks/{chunk-ZURYZEHX.js → chunk-34MDMFET.js} +2 -2
  32. package/dist/cli/chunks/chunk-3DJNKNBR.js +742 -0
  33. package/dist/cli/chunks/{chunk-GJVRQBLI.js → chunk-3NJ7O3OH.js} +2 -2
  34. package/dist/cli/chunks/chunk-45MVRQG4.js +2 -0
  35. package/dist/cli/chunks/chunk-46HBVDMU.js +2 -0
  36. package/dist/cli/chunks/{chunk-SCL2OYN7.js → chunk-47Q7JL3V.js} +2 -2
  37. package/dist/cli/chunks/chunk-4CLDYT36.js +2 -0
  38. package/dist/cli/chunks/{chunk-3ZIVBTX6.js → chunk-4KOVHQXK.js} +2 -2
  39. package/dist/cli/chunks/{chunk-BBKLVHDQ.js → chunk-4POOJYXA.js} +1 -1
  40. package/dist/cli/chunks/{chunk-DAYMT7TH.js → chunk-5DH5QI7G.js} +26 -26
  41. package/dist/cli/chunks/{chunk-2534PXIV.js → chunk-5GIJU2ZY.js} +2 -2
  42. package/dist/cli/chunks/{chunk-MBV57LKC.js → chunk-5HAPS6VD.js} +2 -2
  43. package/dist/cli/chunks/{chunk-NIJMLEAX.js → chunk-5LST62QR.js} +2 -2
  44. package/dist/cli/chunks/{chunk-33IUCP34.js → chunk-5MT7DMD7.js} +2 -2
  45. package/dist/cli/chunks/{chunk-LRTF5RMG.js → chunk-5NC7QEJ6.js} +4 -4
  46. package/dist/cli/chunks/{chunk-SJB4KMZS.js → chunk-5UPIL62W.js} +3 -3
  47. package/dist/cli/chunks/{chunk-76PRW2KY.js → chunk-5VUIXDY2.js} +2 -2
  48. package/dist/cli/chunks/chunk-5VZVMO7B.js +3 -0
  49. package/dist/cli/chunks/{chunk-J3RNVHDH.js → chunk-624QRKQX.js} +1 -1
  50. package/dist/cli/chunks/{chunk-N6CRIUTO.js → chunk-66NW3ZB4.js} +2 -2
  51. package/dist/cli/chunks/{chunk-PCWZCXBD.js → chunk-6HWARQWV.js} +2 -2
  52. package/dist/cli/chunks/{chunk-VAXQUD5G.js → chunk-6MXAJBEA.js} +1 -1
  53. package/dist/cli/chunks/{chunk-LOLAEDZD.js → chunk-6R3FBFCJ.js} +2 -2
  54. package/dist/cli/chunks/{chunk-ASKPTGUU.js → chunk-6RDVY26I.js} +2 -2
  55. package/dist/cli/chunks/{chunk-35A22AUL.js → chunk-6T6AHVLF.js} +1 -1
  56. package/dist/cli/chunks/{chunk-IKWAPHJA.js → chunk-6WOZUSSN.js} +2 -2
  57. package/dist/cli/chunks/chunk-72MQCZSM.js +2 -0
  58. package/dist/cli/chunks/chunk-7QVPMH25.js +3 -0
  59. package/dist/cli/chunks/{chunk-5H7MR6HP.js → chunk-7SAMMQVS.js} +1 -1
  60. package/dist/cli/chunks/{chunk-B7J3O2WM.js → chunk-7TJZDRDU.js} +1 -1
  61. package/dist/cli/chunks/{chunk-OFQDM73J.js → chunk-7TVIX4WL.js} +2 -2
  62. package/dist/cli/chunks/{chunk-SZWXUG36.js → chunk-7VTKR44N.js} +2 -2
  63. package/dist/cli/chunks/{chunk-5B5D5KCV.js → chunk-7XTANLTN.js} +1 -1
  64. package/dist/cli/chunks/chunk-7XUB7U6Z.js +4 -0
  65. package/dist/cli/chunks/{chunk-GAXTPQCZ.js → chunk-A74J23QB.js} +2 -2
  66. package/dist/cli/chunks/{chunk-K2VUYRMG.js → chunk-A7ANPS4E.js} +2 -2
  67. package/dist/cli/chunks/{chunk-WO4NSPLX.js → chunk-AJT3XDRD.js} +2 -2
  68. package/dist/cli/chunks/{chunk-LPSE6DOQ.js → chunk-ALCIUWFC.js} +1 -1
  69. package/dist/cli/chunks/{chunk-UK5HY6LC.js → chunk-AUN4FG7V.js} +1 -1
  70. package/dist/cli/chunks/{chunk-MGH4XIHH.js → chunk-AUOSHM63.js} +2 -2
  71. package/dist/cli/chunks/{chunk-HX5KQK7I.js → chunk-AX26QJ6T.js} +2 -2
  72. package/dist/cli/chunks/{chunk-BZWZTGMF.js → chunk-B7RHBKHL.js} +2 -2
  73. package/dist/cli/chunks/{chunk-I5A3HGO6.js → chunk-BAYGQRNP.js} +2 -2
  74. package/dist/cli/chunks/{chunk-3C2BFLYC.js → chunk-BIXRTOH3.js} +18 -18
  75. package/dist/cli/chunks/{chunk-EWUFVWRT.js → chunk-BO7UFNYV.js} +2 -2
  76. package/dist/cli/chunks/{chunk-6TMUZGM2.js → chunk-BUTGIVKW.js} +1 -1
  77. package/dist/cli/chunks/{chunk-2MU4WCMQ.js → chunk-BXATKI5S.js} +2 -2
  78. package/dist/cli/chunks/{chunk-HEDLZWPM.js → chunk-CCL436IU.js} +44 -33
  79. package/dist/cli/chunks/{chunk-6EHVPFHW.js → chunk-CEXNW5TR.js} +1 -1
  80. package/dist/cli/chunks/{chunk-2ICC4H6K.js → chunk-CLAMMGY3.js} +2 -2
  81. package/dist/cli/chunks/{chunk-BPGFCUDO.js → chunk-CR66HNAE.js} +1 -1
  82. package/dist/cli/chunks/{chunk-CFXFGQEN.js → chunk-CZBIREL5.js} +2 -2
  83. package/dist/cli/chunks/{chunk-Z56QTRRB.js → chunk-D5N2O5EH.js} +2 -2
  84. package/dist/cli/chunks/{chunk-M6SJALLA.js → chunk-DA7DGDTI.js} +2 -2
  85. package/dist/cli/chunks/{chunk-R47LNH5W.js → chunk-DLSFT6PO.js} +2 -2
  86. package/dist/cli/chunks/{chunk-6HTO4BLV.js → chunk-DQNUPEY5.js} +2 -2
  87. package/dist/cli/chunks/{chunk-XZ5Z56OP.js → chunk-EECF4CMA.js} +1 -1
  88. package/dist/cli/chunks/{chunk-DFJGXXCL.js → chunk-EF5UHDCG.js} +1 -1
  89. package/dist/cli/chunks/{chunk-PJAXWCFC.js → chunk-EJ4KZFZN.js} +1 -1
  90. package/dist/cli/chunks/{chunk-RA3MI5WK.js → chunk-ELI4GDQO.js} +2 -2
  91. package/dist/cli/chunks/{chunk-BND6M2JX.js → chunk-F3KS3TAB.js} +2 -2
  92. package/dist/cli/chunks/{chunk-RB2SL5GD.js → chunk-F7A2UBZO.js} +2 -2
  93. package/dist/cli/chunks/{chunk-X5S5UEM6.js → chunk-FOJRPEIP.js} +2 -2
  94. package/dist/cli/chunks/{chunk-ZP6ANUP7.js → chunk-FQ5N666N.js} +1 -1
  95. package/dist/cli/chunks/{chunk-LZSLJJII.js → chunk-FU7LNUD7.js} +2 -2
  96. package/dist/cli/chunks/{chunk-FDK2GF4G.js → chunk-GFB6BZWU.js} +2 -2
  97. package/dist/cli/chunks/{chunk-C5EN5WB6.js → chunk-GI5HWS4H.js} +1 -1
  98. package/dist/cli/chunks/{chunk-SIUUAKCE.js → chunk-GNYOHZVV.js} +1 -1
  99. package/dist/cli/chunks/{chunk-OOK6GPJR.js → chunk-GVRFSXY6.js} +2 -2
  100. package/dist/cli/chunks/{chunk-6QPW4OVH.js → chunk-GWM4M5NF.js} +1 -1
  101. package/dist/cli/chunks/{chunk-PMXWDTDK.js → chunk-HAN4MS5T.js} +2 -2
  102. package/dist/cli/chunks/{chunk-WW6WUMS7.js → chunk-HEGGV2PT.js} +2 -2
  103. package/dist/cli/chunks/{chunk-4GLR2S2M.js → chunk-HOEWMEF2.js} +2 -2
  104. package/dist/cli/chunks/{chunk-BY3IL56R.js → chunk-HZFK2Z2Z.js} +1 -1
  105. package/dist/cli/chunks/chunk-I7WAW7TM.js +2 -0
  106. package/dist/cli/chunks/{chunk-LXYTC62V.js → chunk-IEPWO4XP.js} +2 -2
  107. package/dist/cli/chunks/{chunk-3MSBVOYW.js → chunk-ITIJ23K2.js} +2 -2
  108. package/dist/cli/chunks/{chunk-PEA4DVXW.js → chunk-IVJIHZSM.js} +1 -1
  109. package/dist/cli/chunks/{chunk-P7GM3EE7.js → chunk-JAPBSSFY.js} +1 -1
  110. package/dist/cli/chunks/{chunk-SOSJFEFB.js → chunk-JCE76MPP.js} +2 -2
  111. package/dist/cli/chunks/{chunk-YZ2AGC7O.js → chunk-JPJEAK4G.js} +1 -1
  112. package/dist/cli/chunks/{chunk-RG67RZIX.js → chunk-JYKQVYX2.js} +2 -2
  113. package/dist/cli/chunks/{chunk-W6TJXK5Y.js → chunk-K55EAWZ5.js} +2 -2
  114. package/dist/cli/chunks/chunk-KCB6P463.js +3 -0
  115. package/dist/cli/chunks/{chunk-W3PPYNHF.js → chunk-KIDOBLUO.js} +2 -2
  116. package/dist/cli/chunks/{chunk-JL3TI43V.js → chunk-KYVIOC3C.js} +2 -2
  117. package/dist/cli/chunks/{chunk-WEDVLKRB.js → chunk-L2TDHJR3.js} +2 -2
  118. package/dist/cli/chunks/{chunk-5GWTJJEO.js → chunk-L4D3TPFP.js} +1 -1
  119. package/dist/cli/chunks/{chunk-PB2WSCBW.js → chunk-LAY7NCQK.js} +3 -3
  120. package/dist/cli/chunks/{chunk-T3BMCEQR.js → chunk-LCCTJ2PC.js} +2 -2
  121. package/dist/cli/chunks/{chunk-7INP6HZH.js → chunk-LJCEDTUM.js} +3 -3
  122. package/dist/cli/chunks/{chunk-DEJM2P5K.js → chunk-LMAEMVPA.js} +1 -1
  123. package/dist/cli/chunks/{chunk-HCDTLV5J.js → chunk-LZWJ5BMP.js} +2 -2
  124. package/dist/cli/chunks/{chunk-D7RVZ5C2.js → chunk-MP3FSUNB.js} +2 -2
  125. package/dist/cli/chunks/{chunk-ADF6LGHZ.js → chunk-MQCTLTGE.js} +2 -2
  126. package/dist/cli/chunks/{chunk-OHH6BUZK.js → chunk-MQTA6KIO.js} +1 -1
  127. package/dist/cli/chunks/{chunk-ISASRHZP.js → chunk-NBUXM5X6.js} +10 -6
  128. package/dist/cli/chunks/{chunk-KOLHZSEC.js → chunk-NHRF3V4B.js} +2 -2
  129. package/dist/cli/chunks/chunk-NMY4KTWA.js +16 -0
  130. package/dist/cli/chunks/chunk-NYS2GUNO.js +2 -0
  131. package/dist/cli/chunks/{chunk-EGHK6NMH.js → chunk-ONPPBLRB.js} +2 -2
  132. package/dist/cli/chunks/{chunk-YQ6BK7QC.js → chunk-OPDZBRIL.js} +2 -2
  133. package/dist/cli/chunks/{chunk-DPL4ZXTE.js → chunk-OQ4S6B7P.js} +1 -1
  134. package/dist/cli/chunks/{chunk-6HO3XRXE.js → chunk-ORBODZSO.js} +2 -2
  135. package/dist/cli/chunks/{chunk-GLKLEHK3.js → chunk-ORFL3YXB.js} +2 -2
  136. package/dist/cli/chunks/{chunk-I43QRLLB.js → chunk-P7DXVL2S.js} +2 -2
  137. package/dist/cli/chunks/chunk-PEMSXSP2.js +4 -0
  138. package/dist/cli/chunks/chunk-PS6WFCA4.js +6 -0
  139. package/dist/cli/chunks/{chunk-HEKCN5XQ.js → chunk-Q2RBOC7V.js} +2 -2
  140. package/dist/cli/chunks/{chunk-54XTJBHV.js → chunk-QLKUCMZC.js} +1 -1
  141. package/dist/cli/chunks/{chunk-3BDDOFYW.js → chunk-QLYO3H7E.js} +9 -9
  142. package/dist/cli/chunks/{chunk-VMSO6DMF.js → chunk-QS5KZYUZ.js} +2 -2
  143. package/dist/cli/chunks/{chunk-JFQDWAU3.js → chunk-R363XXGH.js} +2 -2
  144. package/dist/cli/chunks/chunk-RD5BYLN7.js +2 -0
  145. package/dist/cli/chunks/{chunk-73PCVMGA.js → chunk-RFDFET3O.js} +2 -2
  146. package/dist/cli/chunks/{chunk-LJRZAALA.js → chunk-RHIQ6QO5.js} +357 -351
  147. package/dist/cli/chunks/chunk-RLB7K7QP.js +2 -0
  148. package/dist/cli/chunks/{chunk-RJ5CZ7B6.js → chunk-RUTO67PT.js} +2 -2
  149. package/dist/cli/chunks/{chunk-DF4Y3HPO.js → chunk-RV6HSMKJ.js} +1 -1
  150. package/dist/cli/chunks/{chunk-54ITMOFM.js → chunk-SOSJWM3E.js} +4 -4
  151. package/dist/cli/chunks/{chunk-5SS2Z7JC.js → chunk-SV5BUYHH.js} +2 -2
  152. package/dist/cli/chunks/{chunk-XHCCH7UC.js → chunk-TL5GV3PR.js} +8 -8
  153. package/dist/cli/chunks/{chunk-ZKXZTIVF.js → chunk-TLUIO37P.js} +2 -2
  154. package/dist/cli/chunks/{chunk-2LL35V3A.js → chunk-TUDENMAE.js} +2 -2
  155. package/dist/cli/chunks/chunk-TVLOED6O.js +2 -0
  156. package/dist/cli/chunks/{chunk-2DRMTRBM.js → chunk-UB6DQGWM.js} +2 -2
  157. package/dist/cli/chunks/chunk-UHHMAKPE.js +3 -0
  158. package/dist/cli/chunks/{chunk-DBIK4OFX.js → chunk-ULCHPPW2.js} +1 -1
  159. package/dist/cli/chunks/chunk-V3OLS2NG.js +2 -0
  160. package/dist/cli/chunks/{chunk-I6E4X3L3.js → chunk-VAYZ5QIE.js} +1 -1
  161. package/dist/cli/chunks/{chunk-G3ZUB3HD.js → chunk-VCONCVSY.js} +3 -3
  162. package/dist/cli/chunks/{chunk-7X2IVMXN.js → chunk-VVF337SV.js} +2 -2
  163. package/dist/cli/chunks/{chunk-EY5IUF7U.js → chunk-WKDWRRDT.js} +2 -2
  164. package/dist/cli/chunks/{chunk-FRBCX46J.js → chunk-X2DR27AY.js} +2 -2
  165. package/dist/cli/chunks/{chunk-I53365HG.js → chunk-X33F7NXH.js} +3 -3
  166. package/dist/cli/chunks/{chunk-MVTUFPM2.js → chunk-XBEI2JBA.js} +2 -2
  167. package/dist/cli/chunks/{chunk-OG4KHX7S.js → chunk-XBFQJZWX.js} +2 -2
  168. package/dist/cli/chunks/{chunk-DVE5SM5G.js → chunk-XFPQIWEH.js} +3 -3
  169. package/dist/cli/chunks/{chunk-RWZ4F44Y.js → chunk-XPB5BVU6.js} +2 -2
  170. package/dist/cli/chunks/{chunk-TVQPYP2Z.js → chunk-XQ53PZEF.js} +3 -3
  171. package/dist/cli/chunks/{chunk-73MTUM6F.js → chunk-XZ46CI35.js} +2 -2
  172. package/dist/cli/chunks/chunk-YLNYPQDR.js +2 -0
  173. package/dist/cli/chunks/{chunk-BY5PLEPZ.js → chunk-YNG7E26C.js} +2 -2
  174. package/dist/cli/chunks/{chunk-YUWUFYHK.js → chunk-YXU35GGD.js} +1 -1
  175. package/dist/cli/chunks/{chunk-B7GJXQD2.js → chunk-ZCP4P6O2.js} +2 -2
  176. package/dist/cli/chunks/{chunk-LGA6J4I4.js → chunk-ZL5LJT7D.js} +2 -2
  177. package/dist/cli/chunks/{chunk-TB22Y3WW.js → chunk-ZOUEQ6DL.js} +1 -1
  178. package/dist/cli/chunks/{chunk-U2E5F3VZ.js → chunk-ZSBD4FUX.js} +2 -2
  179. package/dist/cli/chunks/chunk-ZTB32K5N.js +5 -0
  180. package/dist/cli/chunks/{chunk-WYO5VN2L.js → chunk-ZUTFHGEO.js} +1 -1
  181. package/dist/cli/chunks/ci-GEJCXMBK.js +81 -0
  182. package/dist/cli/chunks/ci-config-2ZVV4OXL.js +2 -0
  183. package/dist/cli/chunks/{ci-output-BMJABAEX.js → ci-output-E45OGVPR.js} +2 -2
  184. package/dist/cli/chunks/{circuit-breaker-GYD5CMJQ.js → circuit-breaker-X73ITYZC.js} +2 -2
  185. package/dist/cli/chunks/{claude-flow-setup-MMOYVBVD.js → claude-flow-setup-W4PPH46C.js} +2 -2
  186. package/dist/cli/chunks/client-6XKSQ4JT.js +2 -0
  187. package/dist/cli/chunks/{cline-installer-B2SOZ44R.js → cline-installer-NUEPMWDE.js} +2 -2
  188. package/dist/cli/chunks/{code-V3FIRAXD.js → code-6WQHBS7G.js} +4 -4
  189. package/dist/cli/chunks/{code-index-extractor-CV6A756Z.js → code-index-extractor-BXQIFIFT.js} +2 -2
  190. package/dist/cli/chunks/{codex-installer-EUC6J47Y.js → codex-installer-Z337R2KH.js} +2 -2
  191. package/dist/cli/chunks/{completions-DQQIBAHR.js → completions-F5DMYFHV.js} +2 -2
  192. package/dist/cli/chunks/{complexity-analyzer-HPXMXP5I.js → complexity-analyzer-W2SYPZDI.js} +2 -2
  193. package/dist/cli/chunks/{continuedev-installer-RCIYXH6V.js → continuedev-installer-ZCHUIFTN.js} +2 -2
  194. package/dist/cli/chunks/{copilot-installer-VUH32SHF.js → copilot-installer-M5JNODXF.js} +2 -2
  195. package/dist/cli/chunks/core-handlers-OJYW4Y6M.js +2 -0
  196. package/dist/cli/chunks/{cost-tracker-YLCKLOAL.js → cost-tracker-LSYTHBHV.js} +2 -2
  197. package/dist/cli/chunks/coverage-PGMRS5SS.js +49 -0
  198. package/dist/cli/chunks/cross-domain-router-QVUPQ2SC.js +2 -0
  199. package/dist/cli/chunks/{cursor-installer-B42FN62K.js → cursor-installer-XPUA73UW.js} +2 -2
  200. package/dist/cli/chunks/{daemon-DECQRQII.js → daemon-ITKDIYMW.js} +5 -5
  201. package/dist/cli/chunks/daemon-QBYTCIMH.js +10 -0
  202. package/dist/cli/chunks/{dag-attention-scheduler-RY7CDYSC.js → dag-attention-scheduler-T55AXLD6.js} +2 -2
  203. package/dist/cli/chunks/{detect-NW53BMJN.js → detect-DR7J6K4O.js} +2 -2
  204. package/dist/cli/chunks/{dist-node-LE6KHXAB.js → dist-node-LAJJBOUT.js} +2 -2
  205. package/dist/cli/chunks/{domain-handler-JGXFT4LW.js → domain-handler-OMSHCRMK.js} +2 -2
  206. package/dist/cli/chunks/{domain-plugins-GY3RYKKK.js → domain-plugins-EQXSKC5K.js} +2 -2
  207. package/dist/cli/chunks/{domain-transfer-CGBRXNTC.js → domain-transfer-FKRAGVSW.js} +2 -2
  208. package/dist/cli/chunks/dream-3UABDRZJ.js +2 -0
  209. package/dist/cli/chunks/embed-and-insert-pattern-JZFPCNL3.js +3 -0
  210. package/dist/cli/chunks/{eval-YPYIZQUR.js → eval-JSNNASBW.js} +2 -2
  211. package/dist/cli/chunks/experience-capture-middleware-UPD3IZBK.js +40 -0
  212. package/dist/cli/chunks/{fast-paths-HYQTAF2S.js → fast-paths-YNMIBS2E.js} +2 -2
  213. package/dist/cli/chunks/{feature-flags-HNSAFFX2.js → feature-flags-SRLXDKBI.js} +2 -2
  214. package/dist/cli/chunks/{feature-flags-YACUH6OW.js → feature-flags-VIR7O4L7.js} +2 -2
  215. package/dist/cli/chunks/file-discovery-ZFGZTKZ4.js +2 -0
  216. package/dist/cli/chunks/{fleet-6M3BP4OO.js → fleet-K2ED46EL.js} +3 -3
  217. package/dist/cli/chunks/{gnn-wrapper-QLD7KHXV.js → gnn-wrapper-QCU4ZRYW.js} +2 -2
  218. package/dist/cli/chunks/{heartbeat-handler-EZP333X4.js → heartbeat-handler-YYQI4WZM.js} +4 -4
  219. package/dist/cli/chunks/heartbeat-scheduler-MJ6MTPDF.js +2 -0
  220. package/dist/cli/chunks/hnsw-adapter-FQWJCFVW.js +2 -0
  221. package/dist/cli/chunks/hnsw-index-NJYKJUHC.js +2 -0
  222. package/dist/cli/chunks/{hnsw-legacy-bridge-47CUCSAU.js → hnsw-legacy-bridge-C5TJSWTZ.js} +2 -2
  223. package/dist/cli/chunks/{hnswlib-node-SVNYDJZH.js → hnswlib-node-SE3MJJYS.js} +2 -2
  224. package/dist/cli/chunks/{hooks-6V5LMWP6.js → hooks-C572SRDH.js} +43 -43
  225. package/dist/cli/chunks/hybrid-backend-SL7RFID7.js +2 -0
  226. package/dist/cli/chunks/{hypergraph-engine-L2FOBIFF.js → hypergraph-engine-35A6G3M5.js} +2 -2
  227. package/dist/cli/chunks/{hypergraph-handler-DU6Z57EE.js → hypergraph-handler-U2756CWI.js} +3 -3
  228. package/dist/cli/chunks/impact-analyzer-5ZJTXPVC.js +2 -0
  229. package/dist/cli/chunks/init-handler-PCLYQUSB.js +88 -0
  230. package/dist/cli/chunks/init-wizard-MQMDSIOF.js +2 -0
  231. package/dist/cli/chunks/kernel-MEJ5GMRH.js +2 -0
  232. package/dist/cli/chunks/{kilocode-installer-NHKYGJ7Q.js → kilocode-installer-32PX5YH7.js} +2 -2
  233. package/dist/cli/chunks/{kiro-installer-24UK6GGR.js → kiro-installer-C4ROMMUS.js} +2 -2
  234. package/dist/cli/chunks/knowledge-graph-XUBZSEZE.js +2 -0
  235. package/dist/cli/chunks/learning-GEPVZGJQ.js +122 -0
  236. package/dist/cli/chunks/{llm-router-XRMI2VMG.js → llm-router-XRKTTJTX.js} +4 -4
  237. package/dist/cli/chunks/llm-router-service-QZAPAEPX.js +2 -0
  238. package/dist/cli/chunks/{load-W5UWL5C7.js → load-XVH6HW7E.js} +2 -2
  239. package/dist/cli/chunks/load-test-OVXIQ3AF.js +2 -0
  240. package/dist/cli/chunks/{mcp-N7ALQ4BL.js → mcp-IULSTM4Z.js} +2 -2
  241. package/dist/cli/chunks/{memory-WV52DLSA.js → memory-6K7IAU4T.js} +5 -5
  242. package/dist/cli/chunks/memory-backend-TRPOMPK4.js +2 -0
  243. package/dist/cli/chunks/memory-handlers-CG6DRLAW.js +2 -0
  244. package/dist/cli/chunks/{multi-model-executor-3FVTZCSO.js → multi-model-executor-VZDUYPLX.js} +2 -2
  245. package/dist/cli/chunks/{opencode-installer-NTPWGHUW.js → opencode-installer-QUTXKNH4.js} +2 -2
  246. package/dist/cli/chunks/orchestrator-PCKKUWOP.js +452 -0
  247. package/dist/cli/chunks/pattern-null-store-JWYBRBZG.js +2 -0
  248. package/dist/cli/chunks/{pattern-usage-recorder-WWXHUH5U.js → pattern-usage-recorder-PX5HQVRL.js} +2 -2
  249. package/dist/cli/chunks/{pipeline-ZOKZFXTH.js → pipeline-O562GTOG.js} +2 -2
  250. package/dist/cli/chunks/{platform-CDNL322F.js → platform-PM7Q2AZS.js} +2 -2
  251. package/dist/cli/chunks/plugin-OTYTFGPY.js +27 -0
  252. package/dist/cli/chunks/{prime-radiant-advanced-wasm-FVJDU2JY.js → prime-radiant-advanced-wasm-6CFXTHC2.js} +2 -2
  253. package/dist/cli/chunks/project-root-VVSTHIP4.js +2 -0
  254. package/dist/cli/chunks/protocol-executor-PXZCLZD3.js +2 -0
  255. package/dist/cli/chunks/{protocol-handler-4YBN5R23.js → protocol-handler-PPGNSAOS.js} +2 -2
  256. package/dist/cli/chunks/{prove-BHDHY664.js → prove-WQ3BKRZG.js} +2 -2
  257. package/dist/cli/chunks/qe-reasoning-bank-42FRS5V3.js +2 -0
  258. package/dist/cli/chunks/quality-C5WUU3AA.js +8 -0
  259. package/dist/cli/chunks/{quality-gate-WANE7TCN.js → quality-gate-WSSRKD5U.js} +3 -3
  260. package/dist/cli/chunks/queen-coordinator-UI3B7DI6.js +2 -0
  261. package/dist/cli/chunks/real-embeddings-CFQE7IRQ.js +2 -0
  262. package/dist/cli/chunks/{ref-validation-S7UWXQIP.js → ref-validation-DHKHXVZT.js} +2 -2
  263. package/dist/cli/chunks/{roocode-installer-TEYOQYL6.js → roocode-installer-3PPODABV.js} +2 -2
  264. package/dist/cli/chunks/router-HYRPWLAY.js +2 -0
  265. package/dist/cli/chunks/routing-feedback-BPZ5R6F3.js +2 -0
  266. package/dist/cli/chunks/{routing-handler-KDTLMRWD.js → routing-handler-JNXTGT6T.js} +2 -2
  267. package/dist/cli/chunks/{ruvector-commands-AOUDXCYE.js → ruvector-commands-6YLROPVP.js} +2 -2
  268. package/dist/cli/chunks/rvf-dual-writer-DEKDQ6KO.js +2 -0
  269. package/dist/cli/chunks/rvf-migration-adapter-L53VBS7I.js +2 -0
  270. package/dist/cli/chunks/rvf-migration-coordinator-4DWB4WRK.js +2 -0
  271. package/dist/cli/chunks/rvf-native-adapter-I6RUGD2D.js +2 -0
  272. package/dist/cli/chunks/{rvf-store-integrity-QI47Y354.js → rvf-store-integrity-YKR2ZNBF.js} +2 -2
  273. package/dist/cli/chunks/safe-db-KS65XDCP.js +2 -0
  274. package/dist/cli/chunks/schedule-KD2VN6GB.js +2 -0
  275. package/dist/cli/chunks/scheduler-ZH3RMUHY.js +2 -0
  276. package/dist/cli/chunks/{security-SN6MWOJT.js → security-PWQTGDRU.js} +3 -3
  277. package/dist/cli/chunks/shared-rvf-adapter-LNRLFP5I.js +2 -0
  278. package/dist/cli/chunks/{shared-rvf-dual-writer-WU7PFKQM.js → shared-rvf-dual-writer-GWU6YQNS.js} +2 -2
  279. package/dist/cli/chunks/sqlite-persistence-6DTVME5D.js +2 -0
  280. package/dist/cli/chunks/{standalone-memory-F6FSRFWC.js → standalone-memory-46KKBSSV.js} +2 -2
  281. package/dist/cli/chunks/{status-handler-DHD5MS4G.js → status-handler-35T5FTDQ.js} +2 -2
  282. package/dist/cli/chunks/{structural-health-P6HPSQMR.js → structural-health-P7QPQWLO.js} +2 -2
  283. package/dist/cli/chunks/{sync-LISJGDSE.js → sync-W6Z4R4PL.js} +2 -2
  284. package/dist/cli/chunks/sync-Y43EWBSY.js +2 -0
  285. package/dist/cli/chunks/{task-handler-ZT44NT5Z.js → task-handler-5CX3ZYT7.js} +2 -2
  286. package/dist/cli/chunks/{task-handlers-R6DQ5324.js → task-handlers-DQZGOJNE.js} +3 -3
  287. package/dist/cli/chunks/{test-MUFHR4JQ.js → test-TPP53VVV.js} +12 -12
  288. package/dist/cli/chunks/{test-scheduling-TAUSLZJP.js → test-scheduling-WBV4UMQH.js} +3 -3
  289. package/dist/cli/chunks/token-bootstrap-GIIDXHLC.js +2 -0
  290. package/dist/cli/chunks/{token-usage-IX65ECBR.js → token-usage-AKK37RB7.js} +2 -2
  291. package/dist/cli/chunks/{transformers-QKPSVW2W.js → transformers-7MASPELS.js} +2 -2
  292. package/dist/cli/chunks/{tree-sitter-wasm-parser-Z7PPA2JO.js → tree-sitter-wasm-parser-YZKD6UGB.js} +2 -2
  293. package/dist/cli/chunks/{types-ULNNGGGH.js → types-AZ3BTXDP.js} +2 -2
  294. package/dist/cli/chunks/unified-memory-FCX7NLFZ.js +2 -0
  295. package/dist/cli/chunks/unified-memory-hnsw-VU5QJK37.js +2 -0
  296. package/dist/cli/chunks/unified-persistence-FM376LGE.js +2 -0
  297. package/dist/cli/chunks/{upgrade-ECI3YUYA.js → upgrade-L7OTDKEK.js} +2 -2
  298. package/dist/cli/chunks/{validate-3JKRUW2S.js → validate-O3QVFIGP.js} +2 -2
  299. package/dist/cli/chunks/{validate-swarm-LZWANCIE.js → validate-swarm-2UGBGLTX.js} +2 -2
  300. package/dist/cli/chunks/visual-security-EU7Y3X46.js +2 -0
  301. package/dist/cli/chunks/{web-tree-sitter-N5V4A6XG.js → web-tree-sitter-J75IYPRO.js} +2 -2
  302. package/dist/cli/chunks/{windsurf-installer-5TBM5B3C.js → windsurf-installer-FQ5DBFCG.js} +2 -2
  303. package/dist/cli/chunks/witness-chain-CSEBT52D.js +2 -0
  304. package/dist/cli/chunks/{witness-chain-MFP3HBWQ.js → witness-chain-I7TN4MXZ.js} +2 -2
  305. package/dist/cli/chunks/witness-chain-repair-D3NE3NQK.js +2 -0
  306. package/dist/cli/chunks/{witness-chain-verifier-SRAT7LVY.js → witness-chain-verifier-RU2WOP5M.js} +2 -2
  307. package/dist/cli/chunks/witness-key-manager-IHQB2FR5.js +2 -0
  308. package/dist/cli/chunks/{workflow-M7TUYYXY.js → workflow-6BWTNVV6.js} +28 -28
  309. package/dist/cli/chunks/workflow-orchestrator-ALNKOM3N.js +2 -0
  310. package/dist/cli/chunks/wrappers-URVP25VU.js +2 -0
  311. package/dist/cli/commands/ci.js +53 -23
  312. package/dist/cli/commands/code.js +1 -0
  313. package/dist/cli/commands/coverage.d.ts +1 -0
  314. package/dist/cli/commands/coverage.js +182 -138
  315. package/dist/cli/commands/daemon.js +7 -1
  316. package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +15 -0
  317. package/dist/cli/commands/hooks-handlers/stats-hooks.js +54 -2
  318. package/dist/cli/commands/learning.js +47 -7
  319. package/dist/cli/commands/quality.d.ts +12 -1
  320. package/dist/cli/commands/quality.js +51 -3
  321. package/dist/cli/commands/test.js +6 -7
  322. package/dist/cli/commands/workflow.js +9 -5
  323. package/dist/cli/handlers/init-guard.d.ts +13 -0
  324. package/dist/cli/handlers/init-guard.js +23 -0
  325. package/dist/cli/handlers/init-handler.d.ts +3 -0
  326. package/dist/cli/handlers/init-handler.js +9 -0
  327. package/dist/cli/handlers/interfaces.js +5 -1
  328. package/dist/cli/scheduler/persistent-scheduler.d.ts +6 -2
  329. package/dist/cli/scheduler/persistent-scheduler.js +107 -41
  330. package/dist/cli/utils/ci-output.d.ts +22 -5
  331. package/dist/cli/utils/ci-output.js +33 -5
  332. package/dist/cli/utils/coverage-data.d.ts +10 -0
  333. package/dist/cli/utils/coverage-data.js +34 -65
  334. package/dist/cli/utils/coverage-verdict.d.ts +130 -0
  335. package/dist/cli/utils/coverage-verdict.js +193 -0
  336. package/dist/cli/utils/file-discovery.js +5 -0
  337. package/dist/contracts/verdicts.d.ts +14 -0
  338. package/dist/contracts/verdicts.js +44 -3
  339. package/dist/coordination/deterministic-actions.js +24 -13
  340. package/dist/coordination/handlers/code-intelligence-handlers.d.ts +8 -0
  341. package/dist/coordination/handlers/code-intelligence-handlers.js +39 -0
  342. package/dist/coordination/handlers/coverage-handlers.js +150 -121
  343. package/dist/coordination/handlers/coverage-runner.d.ts +143 -0
  344. package/dist/coordination/handlers/coverage-runner.js +462 -0
  345. package/dist/coordination/handlers/coverage-target.d.ts +145 -0
  346. package/dist/coordination/handlers/coverage-target.js +314 -0
  347. package/dist/coordination/handlers/handler-types.d.ts +9 -0
  348. package/dist/coordination/handlers/handler-utils.d.ts +23 -1
  349. package/dist/coordination/handlers/handler-utils.js +90 -23
  350. package/dist/coordination/handlers/quality-handlers.js +209 -33
  351. package/dist/coordination/handlers/test-execution-handlers.js +4 -1
  352. package/dist/coordination/protocols/defect-investigation.d.ts +2 -1
  353. package/dist/coordination/protocols/defect-investigation.js +6 -3
  354. package/dist/coordination/protocols/quality-gate.js +10 -6
  355. package/dist/coordination/result-saver.d.ts +22 -0
  356. package/dist/coordination/result-saver.js +130 -46
  357. package/dist/coordination/task-executor.d.ts +12 -0
  358. package/dist/coordination/task-executor.js +37 -1
  359. package/dist/domains/code-intelligence/coordinator.d.ts +2 -1
  360. package/dist/domains/code-intelligence/coordinator.js +10 -32
  361. package/dist/domains/code-intelligence/interfaces.d.ts +5 -0
  362. package/dist/domains/code-intelligence/plugin.js +5 -0
  363. package/dist/domains/code-intelligence/project-root-resolver.d.ts +50 -0
  364. package/dist/domains/code-intelligence/project-root-resolver.js +121 -0
  365. package/dist/domains/code-intelligence/services/metric-collector/index.js +9 -2
  366. package/dist/domains/code-intelligence/services/metric-collector/interfaces.d.ts +21 -0
  367. package/dist/domains/code-intelligence/services/metric-collector/interfaces.js +25 -0
  368. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +12 -0
  369. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +69 -3
  370. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +4 -1
  371. package/dist/domains/coverage-analysis/collected-metrics.d.ts +33 -0
  372. package/dist/domains/coverage-analysis/collected-metrics.js +36 -0
  373. package/dist/domains/coverage-analysis/coordinator.js +22 -7
  374. package/dist/domains/coverage-analysis/interfaces.d.ts +59 -0
  375. package/dist/domains/coverage-analysis/interfaces.js +6 -1
  376. package/dist/domains/coverage-analysis/plugin.js +7 -1
  377. package/dist/domains/coverage-analysis/services/coverage-analyzer.d.ts +7 -0
  378. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +85 -38
  379. package/dist/domains/coverage-analysis/services/gap-detector.js +7 -2
  380. package/dist/domains/defect-intelligence/plugin.js +4 -0
  381. package/dist/domains/defect-intelligence/services/defect-predictor.js +6 -4
  382. package/dist/domains/learning-optimization/coordinator.js +4 -0
  383. package/dist/domains/learning-optimization/plugin.js +4 -0
  384. package/dist/domains/quality-assessment/coordinator-claim-verifier.js +2 -1
  385. package/dist/domains/quality-assessment/coordinator-rl-integration.d.ts +14 -0
  386. package/dist/domains/quality-assessment/coordinator-rl-integration.js +54 -16
  387. package/dist/domains/quality-assessment/coordinator.js +18 -14
  388. package/dist/domains/quality-assessment/coverage-report-event.d.ts +49 -0
  389. package/dist/domains/quality-assessment/coverage-report-event.js +58 -0
  390. package/dist/domains/quality-assessment/evidence-sufficiency.d.ts +57 -0
  391. package/dist/domains/quality-assessment/evidence-sufficiency.js +97 -0
  392. package/dist/domains/quality-assessment/index.d.ts +2 -2
  393. package/dist/domains/quality-assessment/index.js +1 -1
  394. package/dist/domains/quality-assessment/interfaces.d.ts +46 -0
  395. package/dist/domains/quality-assessment/plugin.js +8 -8
  396. package/dist/domains/quality-assessment/quality-evidence.d.ts +98 -4
  397. package/dist/domains/quality-assessment/quality-evidence.js +152 -8
  398. package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +23 -2
  399. package/dist/domains/quality-assessment/services/quality-analyzer.js +203 -116
  400. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +22 -16
  401. package/dist/domains/test-execution/interfaces.d.ts +10 -6
  402. package/dist/domains/test-execution/plugin.js +4 -0
  403. package/dist/domains/test-execution/services/test-executor.js +152 -102
  404. package/dist/domains/test-generation/coordinator.js +4 -0
  405. package/dist/domains/test-generation/plugin.js +4 -0
  406. package/dist/feedback/coverage-learner.js +4 -1
  407. package/dist/feedback/coverage-session-provenance.d.ts +29 -0
  408. package/dist/feedback/coverage-session-provenance.js +39 -0
  409. package/dist/init/orchestrator.js +2 -0
  410. package/dist/init/phases/09-assets.d.ts +4 -0
  411. package/dist/init/phases/09-assets.js +35 -0
  412. package/dist/init/retired-assets.d.ts +86 -0
  413. package/dist/init/retired-assets.js +230 -0
  414. package/dist/init/skills-installer.d.ts +2 -0
  415. package/dist/init/skills-installer.js +4 -0
  416. package/dist/init/types.d.ts +3 -0
  417. package/dist/integrations/ruvector/rvf-native-adapter.d.ts +2 -0
  418. package/dist/integrations/ruvector/rvf-native-adapter.js +5 -0
  419. package/dist/integrations/ruvector/server-client.js +4 -12
  420. package/dist/kernel/project-root.d.ts +17 -0
  421. package/dist/kernel/project-root.js +54 -2
  422. package/dist/kernel/shared-dirs.d.ts +66 -0
  423. package/dist/kernel/shared-dirs.js +168 -0
  424. package/dist/learning/daily-log.js +2 -1
  425. package/dist/learning/experience-capture-middleware.d.ts +22 -0
  426. package/dist/learning/experience-capture-middleware.js +35 -0
  427. package/dist/learning/learnable-result.d.ts +16 -0
  428. package/dist/learning/learnable-result.js +24 -0
  429. package/dist/learning/pattern-mutation-error.d.ts +8 -0
  430. package/dist/learning/pattern-mutation-error.js +12 -0
  431. package/dist/learning/qe-reasoning-bank.d.ts +10 -0
  432. package/dist/learning/qe-reasoning-bank.js +50 -1
  433. package/dist/learning/rvf-reconcile.d.ts +39 -0
  434. package/dist/learning/rvf-reconcile.js +40 -0
  435. package/dist/learning/sqlite-persistence.d.ts +14 -0
  436. package/dist/learning/sqlite-persistence.js +36 -0
  437. package/dist/mcp/bundle.js +524 -507
  438. package/dist/mcp/handlers/domain-handler-configs.d.ts +49 -2
  439. package/dist/mcp/handlers/domain-handler-configs.js +79 -7
  440. package/dist/mcp/handlers/handler-factory.js +43 -14
  441. package/dist/mcp/handlers/wrapped-domain-handlers.js +7 -1
  442. package/dist/mcp/protocol-server.js +30 -4
  443. package/dist/mcp/tool-cache-scope.d.ts +31 -0
  444. package/dist/mcp/tool-cache-scope.js +71 -0
  445. package/dist/mcp/tools/code-intelligence/analyze.js +5 -3
  446. package/dist/mcp/tools/coverage-analysis/index.js +1 -0
  447. package/dist/mcp/types.d.ts +10 -0
  448. package/dist/optimization/session-cache.d.ts +19 -1
  449. package/dist/optimization/session-cache.js +36 -2
  450. package/dist/plugins/cache.js +2 -1
  451. package/dist/plugins/sources/github.js +2 -1
  452. package/dist/plugins/sources/npm.js +2 -1
  453. package/dist/shared/aqe-managed-dirs.d.ts +24 -0
  454. package/dist/shared/aqe-managed-dirs.js +56 -0
  455. package/dist/shared/events/domain-events.d.ts +20 -3
  456. package/dist/shared/events/domain-events.js +4 -0
  457. package/dist/shared/http/http-client.d.ts +6 -0
  458. package/dist/shared/http/http-client.js +13 -15
  459. package/dist/shared/io/file-reader.d.ts +26 -0
  460. package/dist/shared/io/file-reader.js +111 -17
  461. package/dist/shared/llm/providers/response-deadline.d.ts +7 -2
  462. package/dist/shared/llm/providers/response-deadline.js +17 -5
  463. package/dist/shared/metrics/code-metrics.d.ts +24 -0
  464. package/dist/shared/metrics/code-metrics.js +93 -6
  465. package/dist/shared/metrics/index.d.ts +1 -1
  466. package/dist/workers/interfaces.d.ts +9 -1
  467. package/dist/workers/quality-daemon/coverage-delta.d.ts +4 -3
  468. package/dist/workers/quality-daemon/coverage-delta.js +13 -6
  469. package/dist/workers/quality-daemon/index.js +6 -5
  470. package/dist/workers/quality-daemon/notification-service.js +3 -3
  471. package/dist/workers/quality-daemon/persistent-memory.d.ts +2 -2
  472. package/dist/workers/quality-daemon/persistent-memory.js +2 -2
  473. package/dist/workers/worker-manager.js +5 -1
  474. package/dist/workers/workers/coverage-tracker.js +69 -33
  475. package/dist/workers/workers/regression-monitor.d.ts +18 -1
  476. package/dist/workers/workers/regression-monitor.js +276 -117
  477. package/package.json +1 -1
  478. package/dist/cli/chunks/adapter-T54G3TBK.js +0 -2
  479. package/dist/cli/chunks/aqe-learning-engine-HLCJJ3JM.js +0 -2
  480. package/dist/cli/chunks/base-VLD755UU.js +0 -2
  481. package/dist/cli/chunks/browser-workflow-6M6VLWRF.js +0 -2
  482. package/dist/cli/chunks/chunk-5XXLWJU7.js +0 -2
  483. package/dist/cli/chunks/chunk-AHVN3UQZ.js +0 -4
  484. package/dist/cli/chunks/chunk-AOKSLWON.js +0 -742
  485. package/dist/cli/chunks/chunk-CQ3WSTJ2.js +0 -16
  486. package/dist/cli/chunks/chunk-LY53L6NH.js +0 -2
  487. package/dist/cli/chunks/chunk-O7TMY4GS.js +0 -2
  488. package/dist/cli/chunks/chunk-QIAX3JJB.js +0 -3
  489. package/dist/cli/chunks/chunk-RJMBHZYL.js +0 -2
  490. package/dist/cli/chunks/chunk-UORI2CZ4.js +0 -2
  491. package/dist/cli/chunks/chunk-V3NZ23X6.js +0 -2
  492. package/dist/cli/chunks/chunk-WI5AEB7Q.js +0 -2
  493. package/dist/cli/chunks/chunk-XKIFNKHV.js +0 -2
  494. package/dist/cli/chunks/chunk-ZAOQIVHG.js +0 -5
  495. package/dist/cli/chunks/chunk-ZF5JTQEE.js +0 -4
  496. package/dist/cli/chunks/ci-NGMGB43T.js +0 -82
  497. package/dist/cli/chunks/client-FUHNNK5O.js +0 -2
  498. package/dist/cli/chunks/core-handlers-F7TLX4LM.js +0 -2
  499. package/dist/cli/chunks/coverage-IVKDV236.js +0 -27
  500. package/dist/cli/chunks/cross-domain-router-EGWPY67O.js +0 -2
  501. package/dist/cli/chunks/daemon-IPTOSCHM.js +0 -10
  502. package/dist/cli/chunks/dream-V4QN6OF5.js +0 -2
  503. package/dist/cli/chunks/embed-and-insert-pattern-65H4XHWR.js +0 -3
  504. package/dist/cli/chunks/experience-capture-middleware-4JXVF5PL.js +0 -40
  505. package/dist/cli/chunks/file-discovery-R73BYEXB.js +0 -2
  506. package/dist/cli/chunks/heartbeat-scheduler-3N3L6CRM.js +0 -2
  507. package/dist/cli/chunks/hnsw-adapter-2BXJYDXI.js +0 -2
  508. package/dist/cli/chunks/hnsw-index-2DLI5OVO.js +0 -2
  509. package/dist/cli/chunks/hybrid-backend-OW4J65YH.js +0 -2
  510. package/dist/cli/chunks/impact-analyzer-ZH5I2RG6.js +0 -2
  511. package/dist/cli/chunks/init-handler-HETPWU67.js +0 -86
  512. package/dist/cli/chunks/init-wizard-NIKM3ZOK.js +0 -2
  513. package/dist/cli/chunks/kernel-2EOSVM6X.js +0 -2
  514. package/dist/cli/chunks/knowledge-graph-D3BPWNNO.js +0 -2
  515. package/dist/cli/chunks/learning-QLVRZNHT.js +0 -122
  516. package/dist/cli/chunks/llm-router-service-TJPPZFUN.js +0 -2
  517. package/dist/cli/chunks/load-test-RFT7IDOL.js +0 -2
  518. package/dist/cli/chunks/memory-backend-O2O4CFKZ.js +0 -2
  519. package/dist/cli/chunks/memory-handlers-DAEGUDBD.js +0 -2
  520. package/dist/cli/chunks/orchestrator-ORGJ6VAA.js +0 -452
  521. package/dist/cli/chunks/pattern-null-store-TUBNXS34.js +0 -2
  522. package/dist/cli/chunks/plugin-ZVLFNZZ4.js +0 -27
  523. package/dist/cli/chunks/project-root-UCHQH3QL.js +0 -2
  524. package/dist/cli/chunks/protocol-executor-6FQTTO3Y.js +0 -2
  525. package/dist/cli/chunks/qe-reasoning-bank-TKPND56C.js +0 -2
  526. package/dist/cli/chunks/quality-46AK277P.js +0 -7
  527. package/dist/cli/chunks/queen-coordinator-DWMXLPJG.js +0 -2
  528. package/dist/cli/chunks/real-embeddings-56MNGJGJ.js +0 -2
  529. package/dist/cli/chunks/router-QIMUYRCC.js +0 -2
  530. package/dist/cli/chunks/routing-feedback-4OH5ZNF4.js +0 -2
  531. package/dist/cli/chunks/rvf-dual-writer-S6JBZL54.js +0 -2
  532. package/dist/cli/chunks/rvf-migration-adapter-TSGMLMYR.js +0 -2
  533. package/dist/cli/chunks/rvf-migration-coordinator-V74MVBHS.js +0 -2
  534. package/dist/cli/chunks/rvf-native-adapter-Z7QOW47S.js +0 -2
  535. package/dist/cli/chunks/safe-db-JLOVBJNC.js +0 -2
  536. package/dist/cli/chunks/schedule-IM6XOBGR.js +0 -2
  537. package/dist/cli/chunks/scheduler-XL2SVVK5.js +0 -2
  538. package/dist/cli/chunks/shared-rvf-adapter-2LB56LP4.js +0 -2
  539. package/dist/cli/chunks/sqlite-persistence-LWMIIC4U.js +0 -2
  540. package/dist/cli/chunks/sync-SNAXAVCN.js +0 -2
  541. package/dist/cli/chunks/token-bootstrap-UGRH7OPU.js +0 -2
  542. package/dist/cli/chunks/unified-memory-F5IJY7W7.js +0 -2
  543. package/dist/cli/chunks/unified-memory-hnsw-C3WAMAQL.js +0 -2
  544. package/dist/cli/chunks/unified-persistence-EWXXOTCB.js +0 -2
  545. package/dist/cli/chunks/visual-security-CKLTAIAB.js +0 -2
  546. package/dist/cli/chunks/witness-chain-Z6LWFEZS.js +0 -2
  547. package/dist/cli/chunks/witness-chain-repair-5QWRFVUK.js +0 -2
  548. package/dist/cli/chunks/witness-key-manager-FYZXQTLJ.js +0 -2
  549. package/dist/cli/chunks/workflow-orchestrator-OFTAR2NA.js +0 -2
  550. package/dist/cli/chunks/wrappers-COU73OQ6.js +0 -2
  551. /package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.test.ts → budget-tests.ts.fixture} +0 -0
  552. /package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.ts → budget.ts.fixture} +0 -0
  553. /package/.claude/skills/testability-scoring/resources/templates/{testability-scoring.spec.template.js → testability-scoring-spec.template.js} +0 -0
  554. /package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.test.ts → budget-tests.ts.fixture} +0 -0
  555. /package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.ts → budget.ts.fixture} +0 -0
  556. /package/assets/skills/testability-scoring/resources/templates/{testability-scoring.spec.template.js → testability-scoring-spec.template.js} +0 -0
@@ -1,16 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{a as q}from"./chunk-V3NZ23X6.js";import{r as Q,s as V}from"./chunk-BY5PLEPZ.js";import{i as N}from"./chunk-PEA4DVXW.js";import{a as F,c as y,d}from"./chunk-54XTJBHV.js";import{a as h,b as M,e as H}from"./chunk-JL3TI43V.js";import{f as U}from"./chunk-5H7MR6HP.js";H();var v={WorkflowStarted:"workflow.WorkflowStarted",WorkflowCompleted:"workflow.WorkflowCompleted",WorkflowFailed:"workflow.WorkflowFailed",WorkflowCancelled:"workflow.WorkflowCancelled",StepStarted:"workflow.StepStarted",StepCompleted:"workflow.StepCompleted",StepFailed:"workflow.StepFailed",StepSkipped:"workflow.StepSkipped",StepAwaitingApproval:"workflow.StepAwaitingApproval",StepApproved:"workflow.StepApproved",StepRejected:"workflow.StepRejected"},T={maxConcurrentWorkflows:10,defaultStepTimeout:6e4,defaultWorkflowTimeout:6e5,enableEventTriggers:!0,persistExecutions:!0};import{createHash as K}from"node:crypto";function R(s){if(["__proto__","constructor","prototype"].includes(s.id))throw new Error(`parallel_output_invalid_path: unsafe step ID ${s.id}`);let e=[{stepId:s.id,path:s.id,segments:[s.id]}];for(let t of Object.values(s.outputMapping??{}).sort()){let i=t.split(".");if(i.some(r=>!r||["__proto__","constructor","prototype"].includes(r)))throw new Error(`parallel_output_invalid_path: ${s.id} maps to ${t}`);e.push({stepId:s.id,path:t,segments:i})}return e}function $(s){let e=s.flatMap(R),t=[];for(let i=0;i<e.length;i++)for(let r=i+1;r<e.length;r++){let o=e[i],a=e[r];if(o.stepId===a.stepId)continue;let n=Math.min(o.segments.length,a.segments.length);o.segments.slice(0,n).every((c,l)=>c===a.segments[l])&&t.push({pathA:o.path,stepA:o.stepId,pathB:a.path,stepB:a.stepId,kind:o.segments.length===a.segments.length?"exact":"ancestor-descendant"})}return t}function L(s){let e=[];for(let t of s){let i=[...Object.values(t.inputMapping??{}),t.condition?.path,t.skipCondition?.path].filter(r=>typeof r=="string");for(let r of i)for(let o of s){if(o.id===t.id)continue;if(r==="results"){e.push({stepId:t.id,sourcePath:r,otherStepId:o.id});continue}if(!r.startsWith("results."))continue;let a=r.slice(8).split(".");R(o).some(c=>{let l=Math.min(a.length,c.segments.length);return c.segments.slice(0,l).every((g,S)=>g===a[S])})&&e.push({stepId:t.id,sourcePath:r,otherStepId:o.id})}}return e}function E(s,e){if(s===null||typeof s=="string"||typeof s=="boolean")return s;if(typeof s=="number")return["number",String(s)];if(typeof s=="bigint")return["bigint",String(s)];if(s===void 0)return["undefined"];if(typeof s!="object")throw new Error("parallel_output_unhashable");if(e.has(s))throw new Error("parallel_output_cyclic");e.add(s);try{if(s instanceof Date)return["date",s.toISOString()];if(s instanceof ArrayBuffer)return["bytes",Buffer.from(s).toString("base64")];if(ArrayBuffer.isView(s))return["bytes",s.constructor.name,Buffer.from(s.buffer,s.byteOffset,s.byteLength).toString("base64")];if(Array.isArray(s))return["array",s.map(i=>E(i,e))];if(s instanceof Set)return["set",[...s].map(r=>E(r,e)).sort((r,o)=>JSON.stringify(r).localeCompare(JSON.stringify(o)))];if(s instanceof Map)return["map",[...s].map(([r,o])=>[E(r,e),E(o,e)]).sort((r,o)=>JSON.stringify(r).localeCompare(JSON.stringify(o)))];let t=s;return["object",Object.keys(t).sort().map(i=>[i,E(t[i],e)])]}finally{e.delete(s)}}function x(s){let e=JSON.stringify(E(s,new Set));return K("sha256").update(e).digest("hex")}function P(){try{let{getUnifiedMemory:s}=(V(),U(Q)),e=s();return e.isInitialized()?e.getDatabase():null}catch{return null}}var J={id:"quality-gate-check",domain:"quality-assessment",action:"gate-check",async execute(s){let e=typeof s.coverageMin=="number"?s.coverageMin:80,t=typeof s.testsPassingMin=="number"?s.testsPassingMin:90,i=typeof s.maxBugs=="number"?s.maxBugs:5,r=typeof s.currentCoverage=="number"?s.currentCoverage:null,o=typeof s.currentTestsPassingRate=="number"?s.currentTestsPassingRate:null,a=typeof s.currentBugs=="number"?s.currentBugs:null;if(r===null||o===null||a===null){let f=P();if(f)try{if(r===null&&(r=f.prepare("SELECT after_lines FROM coverage_sessions ORDER BY created_at DESC LIMIT 1").get()?.after_lines??0),o===null){let k=f.prepare(`SELECT COUNT(*) as total,
3
- SUM(CASE WHEN passed = 1 THEN 1 ELSE 0 END) as passed
4
- FROM test_outcomes
5
- WHERE created_at > datetime('now', '-7 days')`).get();o=k&&k.total>0?k.passed/k.total*100:0}a===null&&(a=f.prepare(`SELECT COUNT(*) as bugs FROM test_outcomes
6
- WHERE passed = 0 AND flaky = 0
7
- AND created_at > datetime('now', '-7 days')`).get()?.bugs??0)}catch{}}r=r??0,o=o??0,a=a??0;let n=r>=e,c=o>=t,l=a<=i,g=n&&c&&l,S=Math.min(r/e,1),I=Math.min(o/t,1),p=i>0?Math.max(0,1-a/i):a===0?1:0,w=(S+I+p)/3;return y({passed:g,score:Math.round(w*100)/100,source:typeof s.currentCoverage=="number"?"input":"database",details:{coverage:{current:r,threshold:e,passed:n},testsPassing:{current:o,threshold:t,passed:c},bugs:{current:a,threshold:i,passed:l}}})}},X={id:"coverage-threshold",domain:"coverage-analysis",action:"threshold-check",async execute(s){let e=typeof s.minCoverage=="number"?s.minCoverage:80,t=typeof s.currentCoverage=="number"?s.currentCoverage:null,i="input";if(t===null){i="database";let a=P();if(a)try{t=a.prepare("SELECT after_lines FROM coverage_sessions ORDER BY created_at DESC LIMIT 1").get()?.after_lines??0}catch{t=0}else t=0}let r=t>=e,o=r?0:Math.round((e-t)*100)/100;return y({currentCoverage:t,passed:r,gap:o,minCoverage:e,source:i})}},Y={id:"pattern-health",domain:"learning-optimization",action:"health-check",async execute(s){let e=typeof s.totalPatterns=="number"?s.totalPatterns:null,t=typeof s.activePatterns=="number"?s.activePatterns:null,i=typeof s.avgConfidence=="number"?s.avgConfidence:null,r="input";if(e===null||t===null||i===null){r="database";let c=P();if(c)try{let l=c.prepare(`
8
- SELECT COUNT(*) as total,
9
- SUM(CASE WHEN deprecated_at IS NULL AND confidence >= 0.3 THEN 1 ELSE 0 END) as active,
10
- AVG(confidence) as avg_conf
11
- FROM qe_patterns
12
- `).get();e=e??l?.total??0,t=t??l?.active??0,i=i??l?.avg_conf??0}catch{}}e=e??0,t=t??0,i=i??0;let o=Math.min(e/100,1),a=e>0?t/e:0,n=Math.round((o*.3+a*.3+i*.4)*100)/100;return y({totalPatterns:e,activePatterns:t,avgConfidence:i,healthScore:n,source:r})}},Z={id:"routing-accuracy",domain:"learning-optimization",action:"routing-check",async execute(s){let e=typeof s.totalOutcomes=="number"?s.totalOutcomes:null,t=typeof s.successfulOutcomes=="number"?s.successfulOutcomes:null,i=typeof s.confidenceCorrelation=="number"?s.confidenceCorrelation:null,r="input";if(e===null||t===null){r="database";let a=P();if(a)try{let n=a.prepare(`
13
- SELECT COUNT(*) as total,
14
- SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) as successful
15
- FROM routing_outcomes
16
- `).get();e=e??n?.total??0,t=t??n?.successful??0}catch{}}e=e??0,t=t??0,i=i??0;let o=e>0?Math.round(t/e*1e4)/100:0;return y({successRate:o,totalOutcomes:e,successfulOutcomes:t,confidenceCorrelation:i,source:r})}},ee=[J,X,Y,Z];function B(s,e){return ee.find(t=>t.domain===s&&t.action===e)}function z(){return[te(),re(),ie(),ne(),oe(),se()]}var j=["comprehensive-testing","defect-prevention","pre-release","continuous-learning","morning-sync","qcsd-ideation-swarm"];function te(){return{id:"comprehensive-testing",name:"Comprehensive Testing Workflow",description:"test-generation -> test-execution -> coverage-analysis -> quality-assessment",version:"1.0.0",tags:["testing","quality"],steps:[{id:"generate-tests",name:"Generate Tests",domain:"test-generation",action:"generateTests",inputMapping:{sourceFiles:"input.sourceFiles",framework:"input.framework"},outputMapping:{testFiles:"generatedTests.files",testCount:"generatedTests.count"},timeout:12e4,retry:{maxAttempts:2,backoffMs:1e3}},{id:"execute-tests",name:"Execute Tests",domain:"test-execution",action:"execute",dependsOn:["generate-tests"],inputMapping:{testFiles:"results.generatedTests.files"},outputMapping:{runId:"execution.runId",passed:"execution.passed",failed:"execution.failed"},timeout:3e5},{id:"analyze-coverage",name:"Analyze Coverage",domain:"coverage-analysis",action:"analyze",dependsOn:["execute-tests"],inputMapping:{runId:"results.execution.runId"},outputMapping:{line:"coverage.line",branch:"coverage.branch",overall:"coverage.overall"}},{id:"assess-quality",name:"Assess Quality",domain:"quality-assessment",action:"evaluateGate",dependsOn:["analyze-coverage"],inputMapping:{coverage:"results.coverage",testResults:"results.execution"},outputMapping:{passed:"quality.gatePassed",score:"quality.score"}},{id:"generate-more-tests",name:"Generate Additional Tests",domain:"test-generation",action:"generateTests",dependsOn:["analyze-coverage"],condition:{path:"results.coverage.overall",operator:"lt",value:80},inputMapping:{sourceFiles:"input.sourceFiles",targetCoverage:"input.targetCoverage"},continueOnFailure:!0}]}}function re(){return{id:"defect-prevention",name:"Defect Prevention Workflow",description:"code-intelligence (impact) -> defect-intelligence (predict) -> test-generation (for risky areas)",version:"1.0.0",tags:["defect","prevention","ai"],steps:[{id:"analyze-impact",name:"Analyze Code Impact",domain:"code-intelligence",action:"analyzeImpact",inputMapping:{changedFiles:"input.changedFiles"},outputMapping:{impactedFiles:"impact.files",impactedTests:"impact.tests",riskLevel:"impact.riskLevel"},timeout:6e4},{id:"predict-defects",name:"Predict Defects",domain:"defect-intelligence",action:"predictDefects",dependsOn:["analyze-impact"],inputMapping:{files:"results.impact.files"},outputMapping:{predictions:"defects.predictions",highRiskFiles:"defects.highRiskFiles"}},{id:"generate-targeted-tests",name:"Generate Targeted Tests",domain:"test-generation",action:"generateTests",dependsOn:["predict-defects"],condition:{path:"results.defects.highRiskFiles",operator:"exists",value:!0},inputMapping:{sourceFiles:"results.defects.highRiskFiles",priority:"input.priority"}}],triggers:[{eventType:"code-intelligence.ImpactAnalysisCompleted",inputMapping:{changedFiles:"event.changedFiles"}}]}}function ie(){return{id:"pre-release",name:"Pre-Release Workflow",description:"security-audit -> quality-gate -> deployment-advisor",version:"1.0.0",tags:["release","security","deployment"],steps:[{id:"security-audit",name:"Security Audit",domain:"security-compliance",action:"runAudit",inputMapping:{targetFiles:"input.targetFiles",includeDependencies:"input.includeDependencies"},outputMapping:{vulnerabilities:"security.vulnerabilities",riskScore:"security.riskScore",passed:"security.passed"},timeout:18e4},{id:"quality-gate",name:"Quality Gate Evaluation",domain:"quality-assessment",action:"evaluateGate",dependsOn:["security-audit"],inputMapping:{securityResults:"results.security",releaseCandidate:"input.releaseCandidate"},outputMapping:{passed:"quality.gatePassed",checks:"quality.checks"}},{id:"deployment-advice",name:"Get Deployment Advice",domain:"quality-assessment",action:"getDeploymentAdvice",dependsOn:["quality-gate"],inputMapping:{releaseCandidate:"input.releaseCandidate",qualityResults:"results.quality",securityResults:"results.security"},outputMapping:{decision:"deployment.decision",recommendations:"deployment.recommendations",riskScore:"deployment.riskScore"}}],triggers:[{eventType:"quality-assessment.QualityGateEvaluated",condition:{path:"event.passed",operator:"eq",value:!0}}]}}function ne(){return{id:"continuous-learning",name:"Continuous Learning Workflow",description:"Collect patterns -> consolidate -> transfer -> optimize",version:"1.0.0",tags:["learning","optimization","ai"],steps:[{id:"collect-patterns",name:"Collect Patterns",domain:"learning-optimization",action:"runLearningCycle",inputMapping:{domain:"input.targetDomain"},outputMapping:{patternsLearned:"learning.patterns",experiencesProcessed:"learning.experiences"}},{id:"consolidate-patterns",name:"Consolidate Patterns",domain:"learning-optimization",action:"shareCrossDomainLearnings",dependsOn:["collect-patterns"],condition:{path:"results.learning.patterns",operator:"gt",value:0},outputMapping:{knowledgeShared:"consolidation.shared",domainsUpdated:"consolidation.domains"}},{id:"transfer-knowledge",name:"Transfer Knowledge",domain:"learning-optimization",action:"shareCrossDomainLearnings",dependsOn:["consolidate-patterns"],outputMapping:{transferSuccessRate:"transfer.successRate",newPatternsCreated:"transfer.newPatterns"}},{id:"optimize-strategies",name:"Optimize Strategies",domain:"learning-optimization",action:"optimizeAllStrategies",dependsOn:["transfer-knowledge"],outputMapping:{domainsOptimized:"optimization.domains",avgImprovement:"optimization.improvement"}}]}}function oe(){return{id:"morning-sync",name:"Morning Sync Protocol",description:"Daily quality synchronization across all domains",version:"1.0.0",tags:["protocol","daily","sync"],steps:[{id:"collect-metrics",name:"Collect Quality Metrics",domain:"quality-assessment",action:"analyzeQuality",inputMapping:{sourceFiles:"input.sourceFiles"},outputMapping:{score:"metrics.qualityScore"}},{id:"analyze-trends",name:"Analyze Coverage Trends",domain:"coverage-analysis",action:"getTrend",inputMapping:{timeRange:"input.timeRange",granularity:"input.granularity"},outputMapping:{trend:"trends.coverage",forecast:"trends.forecast"}},{id:"check-security",name:"Check Security Posture",domain:"security-compliance",action:"getSecurityPosture",outputMapping:{overallScore:"security.score",criticalIssues:"security.critical",recommendations:"security.recommendations"}},{id:"get-defect-predictions",name:"Get Defect Predictions",domain:"defect-intelligence",action:"predictDefects",inputMapping:{files:"input.changedFiles"},outputMapping:{predictions:"defects.predictions"}},{id:"generate-learning-report",name:"Generate Learning Dashboard",domain:"learning-optimization",action:"getLearningDashboard",dependsOn:["collect-metrics","analyze-trends","check-security","get-defect-predictions"],outputMapping:{learningRate:"learning.rate",topDomains:"learning.topDomains"}}]}}function se(){return{id:"qcsd-ideation-swarm",name:"QCSD Ideation Swarm",description:"Quality Conscious Software Delivery ideation phase: [url-extraction] -> [flag-detection] -> quality-criteria (HTSM) -> [testability, risk, requirements, security*, accessibility*, qx*] in parallel -> aggregated report. Supports live website URLs with conditional agent spawning based on HAS_UI, HAS_SECURITY, HAS_UX flags.",version:"3.0.0",tags:["qcsd","ideation","quality-criteria","htsm","shift-left","url-analysis"],steps:[{id:"website-content-extraction",name:"Website Content Extraction",domain:"requirements-validation",action:"extractWebsiteContent",inputMapping:{url:"input.url"},outputMapping:{extractedDescription:"extraction.description",extractedFeatures:"extraction.features",extractedAcceptanceCriteria:"extraction.acceptanceCriteria",detectedFlags:"extraction.flags",isWebsite:"extraction.isWebsite"},timeout:6e4,continueOnFailure:!0},{id:"quality-criteria-analysis",name:"HTSM Quality Criteria Analysis",domain:"requirements-validation",action:"analyzeQualityCriteria",dependsOn:["website-content-extraction"],inputMapping:{targetId:"input.targetId",targetType:"input.targetType",description:"results.website-content-extraction.extractedDescription || input.description",acceptanceCriteria:"results.website-content-extraction.extractedAcceptanceCriteria || input.acceptanceCriteria"},outputMapping:{qualityCriteria:"qualityCriteria.criteria",qualityScore:"qualityCriteria.score"},timeout:18e4,retry:{maxAttempts:2,backoffMs:2e3}},{id:"testability-assessment",name:"Testability Scoring (10 Principles)",domain:"requirements-validation",action:"assessTestability",dependsOn:["quality-criteria-analysis"],inputMapping:{targetId:"input.targetId",description:"results.website-content-extraction.extractedDescription || input.description",acceptanceCriteria:"results.website-content-extraction.extractedAcceptanceCriteria || input.acceptanceCriteria"},outputMapping:{overallScore:"testability.overallScore",principles:"testability.principles",blockers:"testability.blockers",recommendations:"testability.recommendations"},timeout:12e4,continueOnFailure:!0},{id:"risk-assessment",name:"Quality Risk Assessment",domain:"requirements-validation",action:"assessRisks",dependsOn:["quality-criteria-analysis"],inputMapping:{targetId:"input.targetId",targetType:"input.targetType",description:"results.website-content-extraction.extractedDescription || input.description"},outputMapping:{overallRisk:"risks.overallRisk",riskScore:"risks.riskScore",factors:"risks.factors",mitigations:"risks.mitigations"},timeout:9e4,continueOnFailure:!0},{id:"requirements-validation",name:"Requirements & Acceptance Criteria Validation",domain:"requirements-validation",action:"validateRequirements",dependsOn:["quality-criteria-analysis"],inputMapping:{targetId:"input.targetId",description:"results.website-content-extraction.extractedDescription || input.description",acceptanceCriteria:"results.website-content-extraction.extractedAcceptanceCriteria || input.acceptanceCriteria"},outputMapping:{valid:"requirements.valid",issues:"requirements.issues",suggestions:"requirements.suggestions"},timeout:9e4,continueOnFailure:!0},{id:"security-threat-modeling",name:"Early Security Threat Modeling (STRIDE)",domain:"security-compliance",action:"modelSecurityThreats",dependsOn:["quality-criteria-analysis"],condition:{path:"results.website-content-extraction.detectedFlags.hasSecurity || input.securityCritical",operator:"eq",value:!0},inputMapping:{targetId:"input.targetId",description:"results.website-content-extraction.extractedDescription || input.description",securityCritical:"results.website-content-extraction.detectedFlags.hasSecurity || input.securityCritical"},outputMapping:{threats:"security.threats",overallRisk:"security.overallRisk",recommendations:"security.recommendations"},timeout:12e4,continueOnFailure:!0},{id:"accessibility-audit",name:"Accessibility Audit (WCAG 2.2)",domain:"visual-accessibility",action:"auditAccessibility",dependsOn:["quality-criteria-analysis"],condition:{path:"results.website-content-extraction.detectedFlags.hasUI || input.hasUI",operator:"eq",value:!0},inputMapping:{targetId:"input.targetId",url:"input.url",description:"results.website-content-extraction.extractedDescription || input.description",features:"results.website-content-extraction.extractedFeatures"},outputMapping:{wcagLevel:"accessibility.wcagLevel",violations:"accessibility.violations",recommendations:"accessibility.recommendations"},timeout:18e4,continueOnFailure:!0},{id:"quality-experience-analysis",name:"Quality Experience Analysis (QX Partner)",domain:"coordination",action:"analyzeQualityExperience",dependsOn:["quality-criteria-analysis"],condition:{path:"results.website-content-extraction.detectedFlags.hasUX || input.hasUX",operator:"eq",value:!0},inputMapping:{targetId:"input.targetId",url:"input.url",description:"results.website-content-extraction.extractedDescription || input.description",features:"results.website-content-extraction.extractedFeatures"},outputMapping:{journeys:"qx.journeys",frictionPoints:"qx.frictionPoints",recommendations:"qx.recommendations"},timeout:15e4,continueOnFailure:!0},{id:"aggregate-ideation-report",name:"Generate Ideation Report",domain:"requirements-validation",action:"generateIdeationReport",dependsOn:["quality-criteria-analysis","testability-assessment","risk-assessment","requirements-validation","security-threat-modeling","accessibility-audit","quality-experience-analysis"],inputMapping:{targetId:"input.targetId",targetType:"input.targetType"},outputMapping:{report:"ideation.report",readyForDevelopment:"ideation.readyForDevelopment",blockers:"ideation.blockers",recommendations:"ideation.recommendations",testStrategy:"ideation.testStrategy"},timeout:6e4},{id:"store-ideation-learnings",name:"Store Ideation Learnings",domain:"learning-optimization",action:"storeIdeationLearnings",dependsOn:["aggregate-ideation-report"],inputMapping:{targetId:"input.targetId",report:"results.ideation.report"},outputMapping:{stored:"learning.stored",patternId:"learning.patternId"},continueOnFailure:!0}],triggers:[{eventType:"requirements-validation.EpicCreated",inputMapping:{targetId:"event.epicId",targetType:"event.type",description:"event.description",acceptanceCriteria:"event.acceptanceCriteria"}},{eventType:"requirements-validation.SprintPlanningStarted",inputMapping:{targetId:"event.sprintId",targetType:"event.type",description:"event.description",acceptanceCriteria:"event.acceptanceCriteria"}}]}}var O=class{constructor(e,t,i,r={}){this.eventBus=e;this.memory=t;this.agentCoordinator=i;this.config={...T,...r}}eventBus;memory;agentCoordinator;config;workflows=new Map;executions=new Map;actionRegistry={};eventSubscriptions=[];approvalGates=new Map;initialized=!1;async initialize(){this.initialized||(this.registerBuiltInWorkflows(),this.config.enableEventTriggers&&this.setupEventTriggers(),await this.loadPersistedWorkflows(),this.initialized=!0)}async dispose(){for(let e of this.executions.values())e.status==="running"&&await this.cancelWorkflow(e.executionId);for(let e of this.eventSubscriptions)e.unsubscribe();await this.persistWorkflows(),this.initialized=!1}registerWorkflow(e){try{let t=this.validateWorkflowDefinition(e);return t.success?(this.workflows.set(e.id,e),this.config.enableEventTriggers&&e.triggers&&this.registerWorkflowTriggers(e),y(void 0)):t}catch(t){return d(M(t))}}unregisterWorkflow(e){if(!this.workflows.has(e))return d(new Error(`Workflow not found: ${e}`));let t=Array.from(this.executions.values()).filter(i=>i.workflowId===e&&i.status==="running");return t.length>0?d(new Error(`Cannot unregister workflow with ${t.length} active execution(s)`)):(this.workflows.delete(e),y(void 0))}async executeWorkflow(e,t={},i){let r=this.workflows.get(e);if(!r)return d(new Error(`Workflow not found: ${e}`));if(Array.from(this.executions.values()).filter(g=>g.status==="running").length>=this.config.maxConcurrentWorkflows)return d(new Error(`Maximum concurrent workflows (${this.config.maxConcurrentWorkflows}) reached`));let a=N(),n=new Date,c={input:t,results:{},metadata:{executionId:a,workflowId:e,correlationId:i||a,startedAt:n}},l={executionId:a,workflowId:e,workflowName:r.name,status:"running",startedAt:n,progress:0,currentSteps:[],completedSteps:[],failedSteps:[],skippedSteps:[],context:c,stepResults:new Map,parallelCompositionReceipts:[]};return this.executions.set(a,l),await this.publishWorkflowStarted(l,r),this.runWorkflow(r,l).catch(async g=>{l.status="failed",l.error=h(g),l.completedAt=new Date,l.duration=l.completedAt.getTime()-n.getTime(),await this.publishWorkflowFailed(l,"unknown",String(g))}),y(a)}getWorkflowStatus(e){return this.executions.get(e)}async cancelWorkflow(e){let t=this.executions.get(e);return t?t.status!=="running"&&t.status!=="paused"?d(new Error(`Cannot cancel workflow in status: ${t.status}`)):(t.status="cancelled",t.completedAt=new Date,t.duration=t.completedAt.getTime()-t.startedAt.getTime(),this.closeApprovalGates(e,"Workflow cancelled"),await this.publishEvent(v.WorkflowCancelled,{executionId:e,workflowId:t.workflowId,workflowName:t.workflowName},t.context.metadata.correlationId),y(void 0)):d(new Error(`Execution not found: ${e}`))}async pauseWorkflow(e){let t=this.executions.get(e);return t?t.status!=="running"?d(new Error(`Cannot pause workflow in status: ${t.status}`)):(t.status="paused",y(void 0)):d(new Error(`Execution not found: ${e}`))}async resumeWorkflow(e){let t=this.executions.get(e);if(!t)return d(new Error(`Execution not found: ${e}`));if(t.status!=="paused")return d(new Error(`Cannot resume workflow in status: ${t.status}`));let i=this.workflows.get(t.workflowId);return i?(t.status="running",this.runWorkflow(i,t).catch(async r=>{t.status="failed",t.error=h(r)}),y(void 0)):d(new Error(`Workflow definition not found: ${t.workflowId}`))}listWorkflows(){return Array.from(this.workflows.values()).map(e=>({id:e.id,name:e.name,description:e.description,version:e.version,stepCount:e.steps.length,tags:e.tags,triggers:e.triggers?.map(t=>t.eventType)}))}getActiveExecutions(){return Array.from(this.executions.values()).filter(e=>e.status==="running"||e.status==="paused")}getWorkflow(e){return this.workflows.get(e)}approveStep(e,t){let i=`${e}:${t}`,r=this.approvalGates.get(i);return r?(r.resolve({approved:!0}),this.approvalGates.delete(i),!0):!1}rejectStep(e,t,i){let r=`${e}:${t}`,o=this.approvalGates.get(r);return o?(o.resolve({approved:!1,reason:i}),this.approvalGates.delete(r),!0):!1}isActionRegistered(e,t){return!!this.actionRegistry[e]?.[t]}getRegisteredActions(e){return Object.keys(this.actionRegistry[e]||{})}getDomainsWithActions(){return Object.keys(this.actionRegistry)}async spawnWorkflowAgent(e,t,i){return this.agentCoordinator.canSpawn()?this.agentCoordinator.spawn({name:`workflow-agent-${e.slice(0,8)}-${t}`,domain:i,type:"coordinator",capabilities:["workflow-execution",t],config:{workflowId:e,stepId:t}}):d(new Error("Agent limit reached"))}async stopWorkflowAgent(e){return this.agentCoordinator.stop(e)}getAvailableAgentCapacity(){return this.agentCoordinator.canSpawn()?this.config.maxConcurrentWorkflows-this.getActiveExecutions().length:0}registerAction(e,t,i){let r=["__proto__","constructor","prototype"];if(r.includes(e)||r.includes(t))throw new Error("Invalid domain or action name: contains dangerous prototype key");this.actionRegistry[e]||(this.actionRegistry[e]={}),this.actionRegistry[e][t]=i}async executeFromBehaviorTree(e){let t=new Date;try{let i=await e.tick(),r=new Date,o=r.getTime()-t.getTime();return{status:i==="SUCCESS"?"completed":i==="RUNNING"?"running":"failed",startedAt:t,completedAt:r,duration:o,treeStatus:i,treeName:e.name}}catch(i){let r=new Date,o=r.getTime()-t.getTime();return{status:"failed",startedAt:t,completedAt:r,duration:o,treeStatus:"FAILURE",treeName:e.name,error:h(i)}}}async runWorkflow(e,t){let i=e.timeout||this.config.defaultWorkflowTimeout,r,o=new Promise((a,n)=>{r=setTimeout(()=>n(new Error(`Workflow timeout after ${i}ms`)),i)});try{await Promise.race([this.executeSteps(e,t),o]),t.status==="running"&&(t.status="completed",t.completedAt=new Date,t.duration=t.completedAt.getTime()-t.startedAt.getTime(),t.progress=100,await this.publishWorkflowCompleted(t))}catch(a){if(t.status==="running"){t.status="failed",t.error=h(a),this.closeApprovalGates(t.executionId,"Workflow failed"),t.completedAt=new Date,t.duration=t.completedAt.getTime()-t.startedAt.getTime();let n=t.currentSteps[0]||"unknown";t.currentSteps=[],await this.publishWorkflowFailed(t,n,h(a))}}finally{r&&clearTimeout(r)}this.config.persistExecutions&&await this.persistExecution(t)}async executeSteps(e,t){let i=e.steps,r=new Set(t.completedSteps),o=new Set(t.skippedSteps),a=new Set(t.failedSteps),n=i.filter(c=>!r.has(c.id)&&!o.has(c.id)&&!a.has(c.id));for(;n.length>0&&t.status==="running";){let c=n.filter(p=>(p.dependsOn||[]).every(f=>r.has(f)||o.has(f)));if(c.length===0)break;let l=c.filter(p=>!p.dependsOn?.length),g=c.filter(p=>p.dependsOn?.length);if(l.length===1&&g.unshift(l[0]),l.length>1){t.currentSteps=l.map(u=>u.id);let p={version:1,workflowId:e.id,workflowRevision:`${e.version}:${x(e)}`,executionId:t.executionId,groupId:l.map(u=>u.id).join("|"),steps:[],conflicts:[],strategy:"rejected",disposition:"invalid"};t.parallelCompositionReceipts??=[],t.parallelCompositionReceipts.push(p);try{p.steps=l.map(u=>({stepId:u.id,disposition:"not_started",writes:R(u).map(m=>m.path)})),p.conflicts=$(l)}catch(u){throw new Error(`parallel_output_invalid_path: ${h(u)}`)}if(p.conflicts.length>0)throw p.disposition="conflict",new Error(`parallel_output_conflict: ${p.conflicts.map(u=>`${u.stepA}.${u.pathA} \u2194 ${u.stepB}.${u.pathB}`).join(", ")}`);let w=L(l);if(w.length>0)throw new Error(`parallel_dependency_error: ${w.map(u=>`${u.stepId} reads ${u.sourcePath} from concurrent step ${u.otherStepId}`).join(", ")}`);let f,k,D;try{f=structuredClone(t.context),D=x(f.results),k=l.map(()=>structuredClone(f))}catch(u){throw new Error(`parallel_context_uncloneable: ${h(u)}`)}let _=await Promise.allSettled(l.map((u,m)=>this.executeStep(u,t,e,k[m],!0))),A;for(let u=0;u<l.length;u++){let m=l[u],b=_[u];if(b.status==="fulfilled"){let C=b.value;if(t.stepResults.set(m.id,C),C.status==="completed"){r.add(m.id),t.completedSteps.push(m.id),p.steps[u].disposition="succeeded";try{p.steps[u].outputHash=x(C.output)}catch(G){throw new Error(`parallel_output_unhashable: ${h(G)}`)}}else C.status==="skipped"?(o.add(m.id),t.skippedSteps.push(m.id),p.steps[u].disposition="skipped"):C.status==="failed"&&(a.add(m.id),t.failedSteps.push(m.id),p.steps[u].disposition="failed",m.continueOnFailure||(A??=C.error??"Unknown error"))}else a.add(m.id),t.failedSteps.push(m.id),p.steps[u].disposition="failed",m.continueOnFailure||(A??=h(b.reason));let W=n.indexOf(m);W!==-1&&n.splice(W,1)}if(t.status!=="running"||A!==void 0){if(p.disposition="partial",A!==void 0)throw new Error(A);if(t.status!=="running")return}else try{let u={...f,results:structuredClone(f.results)};for(let b=0;b<l.length;b++){let W=_[b];W.status==="fulfilled"&&W.value.status==="completed"&&this.mapStepOutput(l[b],W.value.output,u)}let m=x(u.results);if(t.status!=="running"){p.disposition="partial";return}if(x(t.context.results)!==D)throw new Error("parallel_context_changed: shared results changed before composition");t.context.results=u.results,p.combinedStateHash=m,p.strategy="disjoint",p.disposition="composed"}catch(u){throw p.disposition="invalid",new Error(`parallel_output_invalid: ${h(u)}`)}}for(let p of g){if(t.status!=="running")break;t.currentSteps=[p.id];let w=await this.executeStep(p,t,e);if(w.status==="completed")r.add(p.id),t.completedSteps.push(p.id);else if(w.status==="skipped")o.add(p.id),t.skippedSteps.push(p.id);else if(w.status==="failed"&&(a.add(p.id),t.failedSteps.push(p.id),!p.continueOnFailure)){t.status="failed",t.error=w.error;return}let f=n.indexOf(p);f!==-1&&n.splice(f,1)}let S=i.length,I=r.size+o.size+a.size;t.progress=Math.round(I/S*100)}t.currentSteps=[]}async executeStep(e,t,i,r=t.context,o=!1){let a=new Date,n={stepId:e.id,status:"pending",startedAt:a};try{if(e.skipCondition&&this.evaluateCondition(e.skipCondition,r))return n.status="skipped",n.completedAt=new Date,n.duration=n.completedAt.getTime()-a.getTime(),o||t.stepResults.set(e.id,n),await this.publishStepSkipped(t,e),n;if(e.condition&&!this.evaluateCondition(e.condition,r))return n.status="skipped",n.completedAt=new Date,n.duration=n.completedAt.getTime()-a.getTime(),o||t.stepResults.set(e.id,n),await this.publishStepSkipped(t,e),n;n.status="running",await this.publishStepStarted(t,e);let c=this.buildStepInput(e,r);if(e.approval){n.status="awaiting_approval",t.stepResults.set(e.id,n);let p=await this.waitForApproval(e,t);if(!p.approved||t.status!=="running")return n.status="failed",n.error=p.reason||"Step rejected at approval gate",n.completedAt=new Date,n.duration=n.completedAt.getTime()-a.getTime(),await this.publishStepFailed(t,e,n.error),n;n.status="running"}let l,g=e.retry?.maxAttempts||1,S=e.retry?.backoffMs||1e3,I=e.retry?.backoffMultiplier||2;for(let p=1;p<=g;p++){n.retryCount=p-1;try{let w=e.timeout||this.config.defaultStepTimeout,f=await this.executeStepAction(e,c,r,w);o||this.mapStepOutput(e,f,r);let k;try{k=o?structuredClone(f):f}catch(D){throw new Error(`parallel_output_uncloneable: ${h(D)}`)}return n.status="completed",n.output=k,n.completedAt=new Date,n.duration=n.completedAt.getTime()-a.getTime(),o||t.stepResults.set(e.id,n),await this.publishStepCompleted(t,e,n),n}catch(w){if(l=M(w),l.message.startsWith("parallel_output_uncloneable:"))break;p<g&&(await this.delay(S),S*=I)}}return n.status="failed",n.error=l?.message||"Unknown error",n.completedAt=new Date,n.duration=n.completedAt.getTime()-a.getTime(),o||t.stepResults.set(e.id,n),e.rollback&&await this.executeRollback(e.rollback,r),await this.publishStepFailed(t,e,n.error),n}catch(c){return n.status="failed",n.error=h(c),n.completedAt=new Date,n.duration=n.completedAt.getTime()-a.getTime(),o||t.stepResults.set(e.id,n),await this.publishStepFailed(t,e,n.error),n}}async executeStepAction(e,t,i,r){let o=new Promise((c,l)=>{setTimeout(()=>l(new Error(`Step timeout after ${r}ms`)),r)}),a=B(e.domain,e.action);if(a){let c=await Promise.race([a.execute(t,i),o]);if(!c.success)throw c.error;return c.value}let n=this.actionRegistry[e.domain];if(n?.[e.action]){let c=await Promise.race([n[e.action](t,i),o]);if(!c.success)throw c.error;return c.value}throw new Error(`Action '${e.action}' not registered for domain '${e.domain}'. Register it using orchestrator.registerAction('${e.domain}', '${e.action}', handler)`)}async executeRollback(e,t){try{let i=this.actionRegistry[e.domain];if(!i?.[e.action]){console.warn(`Rollback action '${e.action}' not registered for domain '${e.domain}'. Skipping rollback.`);return}let r=await i[e.action](e.input||{},t);r.success||console.error(`Rollback failed for ${e.domain}.${e.action}:`,r.error)}catch(i){console.error(`Rollback failed for ${e.domain}.${e.action}:`,i)}}buildStepInput(e,t){let i={};if(e.inputMapping)for(let[r,o]of Object.entries(e.inputMapping)){let a=this.getValueByPath(t,o);a!==void 0&&(i[r]=a)}return i}mapStepOutput(e,t,i){if(Object.defineProperty(i.results,e.id,{value:t,writable:!0,enumerable:!0,configurable:!0}),e.outputMapping&&typeof t=="object"&&t!==null)for(let[r,o]of Object.entries(e.outputMapping)){let a=this.getValueByPath(t,r);a!==void 0&&this.setValueByPath(i.results,o,a)}}getValueByPath(e,t){let i=t.split("."),r=e;for(let o of i){if(r==null)return;if(typeof r=="object")r=r[o];else return}return r}setValueByPath(e,t,i){let r=t.split("."),o=new Set(["__proto__","constructor","prototype"]);for(let c of r)if(o.has(c))throw new Error("Invalid path: contains dangerous prototype key");let a=e;for(let c=0;c<r.length-1;c++){let l=r[c];Object.hasOwn(a,l)||Object.defineProperty(a,l,{value:Object.create(null),writable:!0,enumerable:!0,configurable:!0}),a=a[l]}let n=r[r.length-1];Object.defineProperty(a,n,{value:i,writable:!0,enumerable:!0,configurable:!0})}evaluateCondition(e,t){let i=this.getValueByPath(t,e.path);switch(e.operator){case"eq":return i===e.value;case"neq":return i!==e.value;case"gt":return typeof i=="number"&&i>e.value;case"gte":return typeof i=="number"&&i>=e.value;case"lt":return typeof i=="number"&&i<e.value;case"lte":return typeof i=="number"&&i<=e.value;case"contains":return Array.isArray(i)?i.includes(e.value):typeof i=="string"?i.includes(String(e.value)):!1;case"exists":return i!=null;default:return!1}}async publishEvent(e,t,i){let r=q(e,"learning-optimization",t,i);await this.eventBus.publish(r)}async publishWorkflowStarted(e,t){await this.publishEvent(v.WorkflowStarted,{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName,stepCount:t.steps.length},e.context.metadata.correlationId)}async publishWorkflowCompleted(e){await this.publishEvent(v.WorkflowCompleted,{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName,duration:e.duration||0,completedSteps:e.completedSteps.length,skippedSteps:e.skippedSteps.length},e.context.metadata.correlationId)}async publishWorkflowFailed(e,t,i){await this.publishEvent(v.WorkflowFailed,{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName,failedStep:t,error:i},e.context.metadata.correlationId)}async publishStepStarted(e,t){await this.publishEvent(v.StepStarted,{executionId:e.executionId,workflowId:e.workflowId,stepId:t.id,stepName:t.name,domain:t.domain},e.context.metadata.correlationId)}async publishStepCompleted(e,t,i){await this.publishEvent(v.StepCompleted,{executionId:e.executionId,workflowId:e.workflowId,stepId:t.id,stepName:t.name,domain:t.domain,duration:i.duration},e.context.metadata.correlationId)}async publishStepFailed(e,t,i){await this.publishEvent(v.StepFailed,{executionId:e.executionId,workflowId:e.workflowId,stepId:t.id,stepName:t.name,domain:t.domain,error:i},e.context.metadata.correlationId)}async publishStepSkipped(e,t){await this.publishEvent(v.StepSkipped,{executionId:e.executionId,workflowId:e.workflowId,stepId:t.id,stepName:t.name,domain:t.domain},e.context.metadata.correlationId)}validateWorkflowDefinition(e){if(!e.id)return d(new Error("Workflow ID is required"));if(!e.name)return d(new Error("Workflow name is required"));if(!e.steps||e.steps.length===0)return d(new Error("Workflow must have at least one step"));let t=new Set;for(let r of e.steps){if(!r.id)return d(new Error("Step ID is required"));if(t.has(r.id))return d(new Error(`Duplicate step ID: ${r.id}`));if(t.add(r.id),!r.domain)return d(new Error(`Step ${r.id} must have a domain`));if(!F.includes(r.domain))return d(new Error(`Invalid domain for step ${r.id}: ${r.domain}`));if(!r.action)return d(new Error(`Step ${r.id} must have an action`));if(r.approval&&typeof r.approval=="object"){let{expiresAfter:o,autoApproveAfter:a}=r.approval;if(o!==void 0&&a!==void 0)return d(new Error(`Step ${r.id} sets both approval expiry fields`));let n=o??a;if(n!==void 0&&(!Number.isSafeInteger(n)||n<0||n>2147483647))return d(new Error(`Step ${r.id} has an invalid approval expiry`))}if(r.dependsOn){for(let o of r.dependsOn)if(!e.steps.some(a=>a.id===o))return d(new Error(`Step ${r.id} depends on unknown step: ${o}`))}}let i=this.detectCircularDependencies(e.steps);return i?d(new Error(`Circular dependency detected: ${i}`)):y(void 0)}detectCircularDependencies(e){let t=new Set,i=new Set,r=(o,a)=>{if(i.has(o))return[...a,o].join(" -> ");if(t.has(o))return null;t.add(o),i.add(o);let n=e.find(c=>c.id===o);if(n?.dependsOn)for(let c of n.dependsOn){let l=r(c,[...a,o]);if(l)return l}return i.delete(o),null};for(let o of e){let a=r(o.id,[]);if(a)return a}return null}setupEventTriggers(){let e=this.eventBus.subscribe("*",async t=>{await this.handleEventForTriggers(t)});this.eventSubscriptions.push(e)}registerWorkflowTriggers(e){}async handleEventForTriggers(e){for(let t of this.workflows.values())if(t.triggers)for(let i of t.triggers){if(i.eventType!==e.type||i.sourceDomain&&i.sourceDomain!==e.source)continue;if(i.condition){let o={input:{event:e.payload},results:{},metadata:{executionId:"",workflowId:t.id,startedAt:new Date}};if(!this.evaluateCondition(i.condition,o))continue}let r={};if(i.inputMapping)for(let[o,a]of Object.entries(i.inputMapping)){let n=this.getValueByPath({event:e.payload},a);n!==void 0&&(r[o]=n)}else r.triggerEvent=e.payload;await this.executeWorkflow(t.id,r,e.correlationId)}}registerBuiltInWorkflows(){let e=z();for(let t of e)this.registerWorkflow(t)}async loadPersistedWorkflows(){try{let e=await this.memory.search("workflow:definition:*",100);for(let t of e){let i=await this.memory.get(t);i&&!this.workflows.has(i.id)&&this.workflows.set(i.id,i)}}catch(e){console.error("Failed to load persisted workflows:",e)}}async persistWorkflows(){try{for(let e of this.workflows.values())j.includes(e.id)||await this.memory.set(`workflow:definition:${e.id}`,e,{namespace:"coordination",persist:!0})}catch(e){console.error("Failed to persist workflows:",e)}}async persistExecution(e){try{let t={...e,stepResults:Object.fromEntries(e.stepResults)};await this.memory.set(`workflow:execution:${e.executionId}`,t,{namespace:"coordination",ttl:86400*7})}catch(t){console.error("Failed to persist execution:",t)}}closeApprovalGates(e,t){for(let[i,r]of this.approvalGates.entries())i.startsWith(`${e}:`)&&r.resolve({approved:!1,reason:t})}async waitForApproval(e,t){if(t.status!=="running")return{approved:!1,reason:`Workflow is ${t.status}`};let i=typeof e.approval=="object"?e.approval:{},r=i.expiresAfter??i.autoApproveAfter??3e5,o=i.message??`Awaiting approval for step: ${e.name}`;if(!Number.isSafeInteger(r)||r<0||r>2147483647)return{approved:!1,reason:"Invalid approval expiry"};let a=`${t.executionId}:${e.id}`,n,c=new Promise(l=>{let g={resolve:S=>{this.approvalGates.get(a)===g&&(this.approvalGates.delete(a),n&&clearTimeout(n),l(S))}};this.approvalGates.set(a,g),r>0&&(n=setTimeout(()=>{g.resolve({approved:!1,reason:"Approval expired"})},r))});try{await this.publishEvent(v.StepAwaitingApproval,{executionId:t.executionId,workflowId:t.workflowId,stepId:e.id,stepName:e.name,domain:e.domain,message:o,expiresAfter:r>0?r:void 0},t.context.metadata.correlationId)}catch(l){throw this.approvalGates.get(a)?.resolve({approved:!1,reason:"Approval event failed"}),l}return c}delay(e){return new Promise(t=>setTimeout(t,e))}};function xe(s,e,t,i){return new O(s,e,t,i)}export{v as a,T as b,O as c,xe as d};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{g}from"./chunk-DAYMT7TH.js";import{i as h}from"./chunk-PEA4DVXW.js";import{c as p,d}from"./chunk-54XTJBHV.js";import{b as m,e as f}from"./chunk-JL3TI43V.js";f();var I={maxDepth:5,riskWeights:{directImpact:.4,transitiveImpact:.2,testCoverage:.2,criticalPath:.15,dependencyCount:.05},testPatterns:["**/*.test.ts","**/*.test.tsx","**/*.spec.ts","**/*.spec.tsx","**/test_*.py","**/*_test.py","**/*_test.go"],criticalPaths:["**/auth/**","**/security/**","**/payment/**","**/api/**","**/core/**"],namespace:"code-intelligence:impact"},u=class{constructor(e,t,i={}){this.memory=e;this.config={...I,...i},this.knowledgeGraph=t||new g(e)}memory;config;knowledgeGraph;async analyzeImpact(e){try{let{changedFiles:t,depth:i=this.config.maxDepth,includeTests:r=!0}=e;if(t.length===0)return p({directImpact:[],transitiveImpact:[],impactedTests:[],riskLevel:"info",recommendations:[]});let n=await this.analyzeDirectImpact(t),l=await this.analyzeTransitiveImpact(t,n,i),s=[];if(r){let a=await this.getImpactedTests(t);a.success&&(s=a.value)}let c={directImpact:n,transitiveImpact:l,impactedTests:s,riskLevel:"info",recommendations:[]};return c.riskLevel=this.calculateRiskLevel(c),c.recommendations=this.getRecommendations(c),await this.storeAnalysis(t,c),p(c)}catch(t){return d(m(t))}}async getImpactedTests(e){try{let t=new Set;for(let i of e){if(this.isTestFile(i)){t.add(i);continue}let r=await this.knowledgeGraph.mapDependencies({files:[i],direction:"incoming",depth:3});if(r.success)for(let s of r.value.nodes)this.isTestFile(s.path)&&t.add(s.path);let n=this.getBaseName(i),l=[`${n}.test`,`${n}.spec`,`test_${n}`,`${n}_test`];for(let s of l){let c=await this.memory.search(`code-intelligence:kg:node:*${s}*`,10,{namespace:"code-intelligence:kg"});for(let a of c){let o=await this.memory.get(a,{namespace:"code-intelligence:kg"});o?.properties?.path&&this.isTestFile(o.properties.path)&&t.add(o.properties.path)}}}return p(Array.from(t))}catch(t){return d(m(t))}}calculateRiskLevel(e){let t=this.config.riskWeights,i=0,r=Math.min(1,e.directImpact.length/10);i+=r*t.directImpact;let n=Math.min(1,e.transitiveImpact.length/20);i+=n*t.transitiveImpact;let l=e.impactedTests.length>0?Math.max(0,1-e.impactedTests.length/(e.directImpact.length||1)):1;i+=l*t.testCoverage;let s=this.countCriticalFiles([...e.directImpact.map(o=>o.file),...e.transitiveImpact.map(o=>o.file)]),c=Math.min(1,s/5);i+=c*t.criticalPath;let a=this.calculateAverageRiskScore([...e.directImpact,...e.transitiveImpact]);return i+=a*t.dependencyCount,i>=.8?"critical":i>=.6?"high":i>=.4?"medium":i>=.2?"low":"info"}getRecommendations(e){let t=[];(e.riskLevel==="critical"||e.riskLevel==="high")&&t.push("This change has significant impact - consider peer review before merging"),e.impactedTests.length===0&&e.directImpact.length>0?t.push("No tests found for impacted files - add test coverage"):e.impactedTests.length<e.directImpact.length/2&&t.push("Test coverage appears low for impacted files"),e.impactedTests.length>0&&(e.impactedTests.length<=10?t.push(`Run these ${e.impactedTests.length} tests: ${e.impactedTests.slice(0,3).join(", ")}${e.impactedTests.length>3?"...":""}`):t.push(`Run all ${e.impactedTests.length} impacted tests before deployment`));let i=[...e.directImpact,...e.transitiveImpact].filter(n=>this.isCriticalPath(n.file));i.length>0&&t.push(`${i.length} critical path files affected - extra scrutiny recommended`),e.transitiveImpact.length>10&&t.push("Large transitive impact - consider breaking down into smaller changes");let r=[...e.directImpact,...e.transitiveImpact].filter(n=>n.riskScore>=.7);return r.length>0&&t.push(`${r.length} high-risk files impacted: ${r.slice(0,2).map(n=>this.getFileName(n.file)).join(", ")}`),t}async analyzeDirectImpact(e){let t=[];for(let i of e){let r=await this.knowledgeGraph.mapDependencies({files:[i],direction:"incoming",depth:1});if(r.success){let{nodes:n,edges:l}=r.value;for(let s of n){if(s.path===i)continue;let c=l.find(o=>o.target===s.id||o.source===s.id),a=this.calculateFileRiskScore(s.path,s.inDegree,s.outDegree);t.push({file:s.path,reason:`Directly ${c?.type||"depends on"} ${this.getFileName(i)}`,distance:1,riskScore:a})}}}return this.deduplicateImpact(t)}async analyzeTransitiveImpact(e,t,i){let r=[],n=new Set([...e,...t.map(s=>s.file)]),l=t.map(s=>({file:s.file,distance:1}));for(;l.length>0;){let s=l.shift();if(s.distance>=i)continue;let c=await this.knowledgeGraph.mapDependencies({files:[s.file],direction:"incoming",depth:1});if(c.success)for(let a of c.value.nodes){if(n.has(a.path)||a.path===s.file)continue;n.add(a.path);let o=this.calculateFileRiskScore(a.path,a.inDegree,a.outDegree,s.distance+1);r.push({file:a.path,reason:`Transitively depends via ${this.getFileName(s.file)}`,distance:s.distance+1,riskScore:o}),l.push({file:a.path,distance:s.distance+1})}}return this.deduplicateImpact(r)}calculateFileRiskScore(e,t,i,r=1){let n=0;return n+=Math.min(.3,t/20),n+=Math.min(.2,i/30),this.isCriticalPath(e)&&(n+=.3),this.isEntryPoint(e)&&(n+=.2),n=n*Math.pow(.8,r-1),Math.min(1,Math.max(0,n))}calculateAverageRiskScore(e){return e.length===0?0:e.reduce((i,r)=>i+r.riskScore,0)/e.length}countCriticalFiles(e){return e.filter(t=>this.isCriticalPath(t)).length}isTestFile(e){return[/\.test\.[tj]sx?$/,/\.spec\.[tj]sx?$/,/_test\.[tj]sx?$/,/test_.*\.py$/,/.*_test\.py$/,/.*_test\.go$/].some(i=>i.test(e))}isCriticalPath(e){return this.config.criticalPaths.map(i=>i.replace(/\*\*/g,".*").replace(/\*/g,"[^/]*")).some(i=>new RegExp(i).test(e))}isEntryPoint(e){return[/\/index\.[tj]sx?$/,/\/main\.[tj]sx?$/,/\/app\.[tj]sx?$/,/^src\/[^/]+\.[tj]sx?$/,/\/server\.[tj]sx?$/,/\/__init__\.py$/,/\/main\.go$/].some(i=>i.test(e))}getBaseName(e){return this.getFileName(e).replace(/\.[^.]+$/,"")}getFileName(e){return e.split(/[/\\]/).pop()||e}deduplicateImpact(e){let t=new Map;for(let i of e){let r=t.get(i.file);(!r||i.distance<r.distance)&&t.set(i.file,i)}return Array.from(t.values()).sort((i,r)=>r.riskScore!==i.riskScore?r.riskScore-i.riskScore:i.distance-r.distance)}async storeAnalysis(e,t){let i=h();await this.memory.set(`${this.config.namespace}:analysis:${i}`,{id:i,changedFiles:e,analysis:t,timestamp:new Date().toISOString()},{namespace:this.config.namespace,persist:!0})}};export{u as a};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{b as g}from"./chunk-5H7MR6HP.js";import*as s from"fs";import*as f from"os";import*as t from"path";function j(){l=null,p=null}function m(a,n){let i=t.relative(n,a);return i===""||!i.startsWith("..")&&!t.isAbsolute(i)}function v(a=process.cwd()){if(process.env.AQE_PROJECT_ROOT)return process.env.AQE_PROJECT_ROOT;let n=t.resolve(a);if(l&&p===n)return l;p=n;let i=t.parse(n).root,c=null;try{c=t.resolve(f.homedir())}catch{c=null}let e=n,r=null,o=null,u=null;for(;e!==i;){let h=e===c&&e!==n&&!m(n,t.join(e,".agentic-qe"));o===null&&!h&&s.existsSync(t.join(e,".agentic-qe"))&&r===null&&(r=e),s.existsSync(t.join(e,".git"))&&o===null&&(o=e),s.existsSync(t.join(e,"package.json"))&&(u=e),e=t.dirname(e)}return r?l=r:o?l=o:u?l=u:l=n,l}var l,p,d=g(()=>{l=null,p=null});export{j as a,v as b,d as c};
@@ -1,3 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{b as F,d as K}from"./chunk-S5D3HCGN.js";import{a as T}from"./chunk-54XTJBHV.js";import{a as R,e as j}from"./chunk-JL3TI43V.js";import{randomUUID as te}from"crypto";import*as u from"fs";import*as g from"path";import*as v from"os";import*as P from"fs";var G={"aqe test generate":{domain:"test-generation",action:"generateTests"},"aqe test execute":{domain:"test-execution",action:"execute"},"aqe coverage analyze":{domain:"coverage-analysis",action:"analyze"},"aqe coverage gaps":{domain:"coverage-analysis",action:"detectGaps"},"aqe quality gate":{domain:"quality-assessment",action:"evaluateGate"},"aqe quality assess":{domain:"quality-assessment",action:"analyzeQuality"},"aqe security scan":{domain:"security-compliance",action:"runSASTScan"},"aqe security audit":{domain:"security-compliance",action:"runAudit"},"aqe defect predict":{domain:"defect-intelligence",action:"predictDefects"},"aqe code index":{domain:"code-intelligence",action:"index"},"aqe code impact":{domain:"code-intelligence",action:"analyzeImpact"},"aqe contract validate":{domain:"contract-testing",action:"validateContract"},"aqe chaos test":{domain:"chaos-resilience",action:"runChaosTest"},"aqe requirements validate":{domain:"requirements-validation",action:"validateRequirements"},"aqe visual test":{domain:"visual-accessibility",action:"runVisualTest"},"aqe accessibility test":{domain:"visual-accessibility",action:"runAccessibilityTest"},"aqe learn optimize":{domain:"learning-optimization",action:"optimizeAllStrategies"}},x={daily:"0 0 * * *",weekly:"0 0 * * 0",hourly:"0 * * * *",minutely:"* * * * *"},C=1e4,I=20,O=1e4,H=["__proto__","constructor","prototype"];function _(i){return!H.includes(i)}function B(i){let e=i.split(`
3
- `);if(e.length>C)throw new Error(`YAML content exceeds maximum allowed lines (${C}). File has ${e.length} lines.`);for(let n=0;n<e.length;n++)if(e[n].length>O)throw new Error(`YAML line ${n+1} exceeds maximum allowed length (${O} characters).`);let s={};for(let n=0;n<e.length;n++){let r=e[n];if(r.trim()===""||r.trim().startsWith("#")||r.search(/\S/)!==0)continue;let c=r.match(/^([\w_-]+):\s*(.+)$/);if(c){let[,a,d]=c;_(a)&&(s[a]=y(d))}}let t=["tags","stages","triggers"];for(let n of t){let r=new RegExp(`^${n}:\\s*$`),o=-1;for(let h=0;h<e.length;h++){let l=e[h];if(!(l.trim()===""||l.trim().startsWith("#"))&&r.test(l.trim())){o=h;break}}if(o===-1)continue;let c=[];s[n]=c;let a=e[o].search(/\S/),d=o+1;for(;d<e.length;){let h=e[d];if(h.trim()===""||h.trim().startsWith("#")){d++;continue}let l=h.search(/\S/),f=h.trim();if(l<=a&&!f.startsWith("-"))break;if(f.startsWith("- ")){let m=f.slice(2).trim();if(!m.includes(":")){c.push(y(m)),d++;continue}let p={},w=m.match(/^([\w_-]+):\s*(.*)$/);if(w){let[,S,k]=w;p[S]=y(k)}let V=l;for(d++;d<e.length;){let S=e[d];if(S.trim()===""||S.trim().startsWith("#")){d++;continue}let k=S.search(/\S/),U=S.trim();if(k<=V)break;let A=U.match(/^([\w_-]+):\s*(.*)$/);if(A){let[,L,E]=A;if(E===""){let M=X(e,d+1,k,1);p[L]=M.value,d=M.nextLine;continue}else p[L]=y(E)}d++}c.push(p)}else d++}}return s}function X(i,e,s,t=0){if(t>I)throw new Error(`YAML nesting exceeds maximum allowed depth (${I}).`);let n={},r=null,o=null,c=e;for(;c<i.length;){let d=i[c];if(d.trim()===""||d.trim().startsWith("#")){c++;continue}let h=d.search(/\S/),l=d.trim();if(h<=s)break;if(l.startsWith("- ")){let m=l.slice(2).trim();o&&!Array.isArray(n[o])&&(n[o]=[]),o?n[o].push(y(m)):(r||(r=[]),r.push(y(m))),c++;continue}let f=l.match(/^([\w_-]+):\s*(.*)$/);if(f){let[,m,p]=f;if(!_(m)){c++;continue}p===""?(o=m,n[m]=[]):(n[m]=y(p),o=null)}c++}if(r&&Object.keys(n).length===0)return{value:r,nextLine:c};let a=Object.keys(n);return a.length===1&&Array.isArray(n[a[0]])?{value:n[a[0]],nextLine:c}:{value:n,nextLine:c}}function y(i){if(i==="")return"";if(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))return i.slice(1,-1);if(i==="true")return!0;if(i==="false")return!1;if(i==="null"||i==="~")return null;let e=Number(i);return!isNaN(e)&&i!==""?e:i.startsWith("[")&&i.endsWith("]")?i.slice(1,-1).split(",").map(t=>y(t.trim())):i}function le(i){let e=[];if(!P.existsSync(i))return{success:!1,errors:[`File not found: ${i}`]};let s;try{s=P.readFileSync(i,"utf-8")}catch(t){return{success:!1,errors:[`Failed to read file: ${t}`]}}return J(s,i)}function J(i,e){let s=[],t;try{t=B(i)}catch(o){return{success:!1,errors:[`Invalid YAML syntax: ${o}`]}}if((!t.name||typeof t.name!="string")&&s.push('Pipeline must have a "name" field'),(!t.stages||!Array.isArray(t.stages))&&s.push('Pipeline must have a "stages" array'),s.length>0)return{success:!1,errors:s};let n={name:t.name,description:t.description,version:t.version||"1.0.0",schedule:t.schedule,stages:t.stages.map((o,c)=>{let a=o;return{name:a.name||`stage-${c}`,command:a.command,params:a.params,depends_on:a.depends_on,condition:a.condition,timeout:a.timeout,retry:a.retry,continue_on_failure:a.continue_on_failure}}),triggers:t.triggers,tags:t.tags,timeout:t.timeout};for(let o=0;o<n.stages.length;o++){let c=n.stages[o];c.command||s.push(`Stage ${o+1} (${c.name}) must have a "command" field`)}if(s.length>0)return{success:!1,pipeline:n,errors:s};let r=Q(n,e);return{success:!0,pipeline:n,workflow:r,errors:[]}}function Q(i,e){let s=`pipeline-${i.name.replace(/\s+/g,"-").toLowerCase()}`,t=i.stages.map((r,o)=>{let c=q(r.command),a={};if(r.params)for(let[h,l]of Object.entries(r.params))_(h)&&(a[h]=`input.${h}`);let d={id:`stage-${r.name.replace(/\s+/g,"-").toLowerCase()}`,name:r.name,domain:c.domain,action:c.action,inputMapping:Object.keys(a).length>0?a:void 0,dependsOn:r.depends_on?.map(h=>`stage-${h.replace(/\s+/g,"-").toLowerCase()}`),timeout:r.timeout?r.timeout*1e3:void 0,continueOnFailure:r.continue_on_failure};return r.condition&&(d.condition={path:r.condition.path,operator:r.condition.operator,value:r.condition.value}),r.retry&&(d.retry={maxAttempts:r.retry.max_attempts||3,backoffMs:(r.retry.backoff_seconds||1)*1e3}),d}),n=i.triggers?.map(r=>{let o={eventType:Z(r),sourceDomain:r.source_domain};return r.condition&&(o.condition={path:r.condition.path,operator:r.condition.operator,value:r.condition.value}),o});return{id:s,name:i.name,description:i.description||`Pipeline from ${e||"inline YAML"}`,version:i.version||"1.0.0",steps:t,triggers:n,tags:i.tags,timeout:i.timeout?i.timeout*1e3:void 0}}function q(i){let e=i.trim().replace(/\s+/g," ").toLowerCase();for(let[s,t]of Object.entries(G))if(e.startsWith(s.toLowerCase()))return t;return e.includes("test")&&e.includes("generate")?{domain:"test-generation",action:"generateTests"}:e.includes("test")&&(e.includes("execute")||e.includes("run"))?{domain:"test-execution",action:"execute"}:e.includes("coverage")?{domain:"coverage-analysis",action:"analyze"}:e.includes("quality")||e.includes("gate")?{domain:"quality-assessment",action:"evaluateGate"}:e.includes("security")||e.includes("scan")?{domain:"security-compliance",action:"runSASTScan"}:e.includes("defect")||e.includes("predict")?{domain:"defect-intelligence",action:"predictDefects"}:{domain:"learning-optimization",action:"runLearningCycle"}}function Z(i){let e=i.event.toLowerCase();return e==="push"?"code-intelligence.CodePushed":e==="pull_request"||e==="pr"?"code-intelligence.PullRequestOpened":e==="schedule"?"workflow.ScheduleTrigger":e==="quality_gate"?"quality-assessment.QualityGateEvaluated":e==="test_complete"?"test-execution.TestRunCompleted":e}function ue(i){let e=[],s=[];if(i.name||e.push({path:"name",message:"Pipeline name is required",severity:"error"}),!i.stages||i.stages.length===0)e.push({path:"stages",message:"Pipeline must have at least one stage",severity:"error"});else{let t=new Set;for(let r=0;r<i.stages.length;r++){let o=i.stages[r],c=`stages[${r}]`;if(t.has(o.name)&&e.push({path:`${c}.name`,message:`Duplicate stage name: ${o.name}`,severity:"error"}),t.add(o.name),o.command?q(o.command).domain==="learning-optimization"&&!o.command.toLowerCase().includes("learn")&&s.push({path:`${c}.command`,message:`Command "${o.command}" not recognized, will default to learning-optimization domain`,severity:"warning"}):e.push({path:`${c}.command`,message:"Stage must have a command",severity:"error"}),o.depends_on)for(let a of o.depends_on)i.stages.some(d=>d.name===a)||e.push({path:`${c}.depends_on`,message:`Unknown dependency: ${a}`,severity:"error"});o.timeout!==void 0&&o.timeout<=0&&e.push({path:`${c}.timeout`,message:"Timeout must be a positive number",severity:"error"}),o.retry&&o.retry.max_attempts!==void 0&&o.retry.max_attempts<1&&e.push({path:`${c}.retry.max_attempts`,message:"max_attempts must be at least 1",severity:"error"})}let n=ee(i.stages);n&&e.push({path:"stages",message:`Circular dependency detected: ${n}`,severity:"error"})}if(i.schedule&&(D(i.schedule)||e.push({path:"schedule",message:`Invalid cron expression: ${i.schedule}`,severity:"error"})),i.triggers)for(let t=0;t<i.triggers.length;t++){let n=i.triggers[t],r=`triggers[${t}]`;n.event||e.push({path:`${r}.event`,message:"Trigger must have an event type",severity:"error"}),n.source_domain&&!T.includes(n.source_domain)&&s.push({path:`${r}.source_domain`,message:`Unknown domain: ${n.source_domain}`,severity:"warning"})}return{valid:e.length===0,errors:e,warnings:s}}function ee(i){let e=new Set,s=new Set,t=(n,r)=>{if(s.has(n))return[...r,n].join(" -> ");if(e.has(n))return null;e.add(n),s.add(n);let o=i.find(c=>c.name===n);if(o?.depends_on)for(let c of o.depends_on){let a=t(c,[...r,n]);if(a)return a}return s.delete(n),null};for(let n of i){let r=t(n.name,[]);if(r)return r}return null}function D(i){return W(i)!==void 0}function W(i){let s=(Object.hasOwn(x,i)?x[i]:i).trim().split(/\s+/);if(s.length!==5)return;let t=[[0,59],[0,23],[1,31],[1,12],[0,7]],n=[/^(\*|[0-5]?\d)(-[0-5]?\d)?(\/\d+)?$/,/^(\*|1?\d|2[0-3])(-\d+)?(\/\d+)?$/,/^(\*|[1-9]|[12]\d|3[01])(-\d+)?(\/\d+)?$/,/^(\*|[1-9]|1[0-2])(-\d+)?(\/\d+)?$/,/^(\*|[0-7])(-[0-7])?(\/\d+)?$/],r=[];for(let o=0;o<s.length;o++){let[c,a]=t[o],d=new Set;for(let h of s[o].split(",")){if(!n[o].test(h))return;let l=/^(\*|\d+)(?:-(\d+))?(?:\/(\d+))?$/.exec(h);if(!l||l[1]==="*"&&l[2]!==void 0)return;let f=l[1]==="*"?c:Number(l[1]),m=l[2]!==void 0?Number(l[2]):l[1]==="*"||l[3]!==void 0?a:f,p=l[3]===void 0?1:Number(l[3]);if(!Number.isSafeInteger(f)||!Number.isSafeInteger(m)||!Number.isSafeInteger(p)||p<=0||f<c||m>a||f>m)return;for(let w=f;w<=m;w+=p)d.add(o===4&&w===7?0:w)}r.push(d)}return{fields:r,wildcardDay:s[2].startsWith("*")||s[4].startsWith("*")}}function he(i){let e={"@daily":"Daily at midnight","@weekly":"Weekly on Sunday at midnight","@hourly":"Every hour","@minutely":"Every minute"};if(e[i])return e[i];if(Object.keys(x).includes(i))return{daily:"Daily at midnight",weekly:"Weekly on Sunday at midnight",hourly:"Every hour",minutely:"Every minute"}[i]||i;let s=i.trim().split(/\s+/);if(s.length!==5)return i;let[t,n,r,o,c]=s;return t==="0"&&n==="0"&&r==="*"&&o==="*"&&c==="*"?"Daily at midnight":t==="0"&&r==="*"&&o==="*"&&c==="*"?`Daily at ${n}:00`:t!=="*"&&n!=="*"&&r==="*"&&o==="*"?`Daily at ${n}:${t.padStart(2,"0")}`:n==="*"&&t==="0"?"Every hour":t!=="*"&&n==="*"?`Every hour at minute ${t}`:i}function b(i,e=new Date){let s=W(i);if(!s)throw new Error(`Invalid cron expression: ${i}`);if(!Number.isFinite(e.getTime()))throw new Error("Invalid schedule start date");let[t,n,r,o,c]=s.fields,a=new Date(Math.floor(e.getTime()/6e4)*6e4+6e4),d=new Date(e);d.setFullYear(e.getFullYear()+400);let h=Number.isFinite(d.getTime())?d.getTime():864e13;for(;Number.isFinite(a.getTime())&&a.getTime()<=h;){let l=r.has(a.getDate()),f=c.has(a.getDay());if(!(o.has(a.getMonth()+1)&&(s.wildcardDay?l&&f:l||f))){a.setHours(24,0,0,0);continue}if(n.has(a.getHours())&&t.has(a.getMinutes()))return a;a=new Date(a.getTime()+6e4)}throw new Error(`No matching cron date within a 400-year Gregorian cycle and the supported Date range: ${i}`)}K();j();var ne=".aqe",ie="schedules.json",se="1.0.0",N=5e3,re=50,Y=10*1024*1024,$=class{schedulesPath;debug;lockFile;initialized=!1;constructor(e={}){e.schedulesPath&&this.validateSchedulesPath(e.schedulesPath),this.schedulesPath=e.schedulesPath??this.getDefaultSchedulesPath(),this.lockFile=`${this.schedulesPath}.lock`,this.debug=e.debug??!1}validateSchedulesPath(e){let s=v.homedir(),t=g.resolve(e),n=g.resolve(s);if(t.startsWith(n+g.sep)||t===n)return;let r=process.cwd(),o=g.resolve(r);if(t.startsWith(o+g.sep)||t===o)return;let c=v.tmpdir(),a=g.resolve(c);if(!(t.startsWith(a+g.sep)||t===a))throw new Error(`Security: Custom schedulesPath must be within home directory (${s}), current working directory (${r}), or temp directory (${c}). Provided path: ${e}`)}getDefaultSchedulesPath(){let e=v.homedir();return g.join(e,ne,ie)}async initialize(){if(this.initialized)return;let e=g.dirname(this.schedulesPath);u.existsSync(e)||(u.mkdirSync(e,{recursive:!0}),this.log(`Created directory: ${e}`)),this.initialized=!0}async loadSchedules(){if(await this.initialize(),!u.existsSync(this.schedulesPath))return this.log("Schedules file does not exist, returning empty array"),[];try{let e=u.readFileSync(this.schedulesPath,"utf-8"),s=this.parseSchedulesFile(e);return this.log(`Loaded ${s.schedules.length} schedules`),s.schedules}catch(e){return await this.handleCorruptFile(e),[]}}async saveSchedule(e){await this.initialize(),await this.withFileLock(async()=>{let s=await this.loadSchedulesUnsafe(),t=s.findIndex(n=>n.id===e.id);t>=0?(s[t]=e,this.log(`Updated schedule: ${e.id}`)):(s.push(e),this.log(`Added schedule: ${e.id}`)),await this.writeSchedules(s)})}async removeSchedule(e){await this.initialize(),await this.withFileLock(async()=>{let s=await this.loadSchedulesUnsafe(),t=s.filter(n=>n.id!==e);if(t.length===s.length){this.log(`Schedule not found: ${e}`);return}await this.writeSchedules(t),this.log(`Removed schedule: ${e}`)})}async getSchedules(){return this.loadSchedules()}async getSchedule(e){return(await this.loadSchedules()).find(t=>t.id===e)}async getDueSchedules(){let e=await this.loadSchedules(),s=new Date;return e.filter(t=>t.enabled?new Date(t.nextRun)<=s:!1)}async markExecuted(e){await this.initialize(),await this.withFileLock(async()=>{let s=await this.loadSchedulesUnsafe(),t=s.find(r=>r.id===e);if(!t)throw new Error(`Schedule not found: ${e}`);let n=new Date;t.lastRun=n.toISOString(),t.nextRun=b(t.schedule,n).toISOString(),await this.writeSchedules(s),this.log(`Marked executed: ${e}, next run: ${t.nextRun}`)})}async setEnabled(e,s){await this.initialize(),await this.withFileLock(async()=>{let t=await this.loadSchedulesUnsafe(),n=t.find(r=>r.id===e);if(!n)throw new Error(`Schedule not found: ${e}`);n.enabled=s,s&&(n.nextRun=b(n.schedule,new Date).toISOString()),await this.writeSchedules(t),this.log(`Set enabled=${s}: ${e}`)})}async getEnabledSchedules(){return(await this.loadSchedules()).filter(s=>s.enabled)}async getSchedulesByWorkflow(e){return(await this.loadSchedules()).filter(t=>t.workflowId===e)}async clearAll(){await this.initialize(),await this.withFileLock(async()=>{await this.writeSchedules([]),this.log("Cleared all schedules")})}async getStats(){let e=await this.loadSchedules(),s=new Date;return{total:e.length,enabled:e.filter(t=>t.enabled).length,disabled:e.filter(t=>!t.enabled).length,due:e.filter(t=>t.enabled&&new Date(t.nextRun)<=s).length}}async loadSchedulesUnsafe(){if(!u.existsSync(this.schedulesPath))return[];try{let e=u.readFileSync(this.schedulesPath,"utf-8");return this.parseSchedulesFile(e).schedules}catch{return[]}}parseSchedulesFile(e){let s=Buffer.byteLength(e,"utf-8");if(s>Y)throw new Error(`Schedules file exceeds maximum allowed size (${Y/(1024*1024)}MB). File is ${(s/(1024*1024)).toFixed(2)}MB.`);let t=F(e);if(!t.schedules||!Array.isArray(t.schedules))throw new Error("Invalid schedules file: missing schedules array");for(let n of t.schedules){if(!n.id||!n.workflowId||!Object.prototype.hasOwnProperty.call(n,"schedule"))throw new Error("Invalid schedule entry: missing required fields");typeof n.schedule!="string"||!D(n.schedule)?(n.disabledReason=`Invalid cron expression: ${n.schedule}`,n.enabled&&console.warn(`[PersistentScheduler] Disabled schedule ${n.id}: ${n.disabledReason}`),n.enabled=!1):delete n.disabledReason}return t}async writeSchedules(e){let s={version:se,updatedAt:new Date().toISOString(),schedules:e},t=JSON.stringify(s,null,2);u.writeFileSync(this.schedulesPath,t,"utf-8"),this.log(`Wrote ${e.length} schedules to disk`)}async handleCorruptFile(e){let s=R(e);this.log(`Corrupt schedules file detected: ${s}`);let t=`${this.schedulesPath}.corrupt.${Date.now()}`;try{u.existsSync(this.schedulesPath)&&(u.copyFileSync(this.schedulesPath,t),this.log(`Backed up corrupt file to: ${t}`))}catch(n){this.log(`Failed to backup corrupt file: ${n}`)}try{u.existsSync(this.schedulesPath)&&(u.unlinkSync(this.schedulesPath),this.log("Removed corrupt schedules file"))}catch(n){this.log(`Failed to remove corrupt file: ${n}`)}}async withFileLock(e){await this.acquireLock();try{return await e()}finally{this.releaseLock()}}async acquireLock(){let e=Date.now();for(;u.existsSync(this.lockFile);){try{let s=u.statSync(this.lockFile);if(Date.now()-s.mtimeMs>N){u.unlinkSync(this.lockFile),this.log("Removed stale lock file");break}}catch{break}if(Date.now()-e>N)throw new Error("Timeout waiting for scheduler lock");await this.sleep(re)}try{u.writeFileSync(this.lockFile,`${process.pid}:${Date.now()}`,{flag:"wx"})}catch(s){if(s.code==="EEXIST")return this.acquireLock();throw s}}releaseLock(){try{u.existsSync(this.lockFile)&&u.unlinkSync(this.lockFile)}catch(e){console.debug("[PersistentScheduler] Lock release error:",e instanceof Error?e.message:e)}}sleep(e){return new Promise(s=>setTimeout(s,e))}log(e){this.debug&&console.log(`[PersistentScheduler] ${e}`)}};function oe(i={}){return new $(i)}function z(){let i=Date.now().toString(36),e=te().slice(0,8);return`sched-${i}-${e}`}function ae(i){let e=new Date;return{id:z(),workflowId:i.workflowId,pipelinePath:i.pipelinePath,schedule:i.schedule,scheduleDescription:i.scheduleDescription,nextRun:b(i.schedule,e).toISOString(),enabled:i.enabled??!0,createdAt:e.toISOString()}}export{le as a,ue as b,he as c,$ as d,oe as e,z as f,ae as g};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import r from"chalk";function s(e){switch(e){case"healthy":case"completed":return r.green(e);case"idle":return r.cyan(e);case"degraded":case"running":return r.yellow(e);case"unhealthy":case"failed":return r.red(e);default:return r.gray(e)}}function a(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:e<36e5?`${(e/6e4).toFixed(1)}m`:`${(e/36e5).toFixed(1)}h`}function l(e){let t=Math.floor(e/36e5),n=Math.floor(e%36e5/6e4),o=Math.floor(e%6e4/1e3);return`${t}h ${n}m ${o}s`}export{s as a,a as b,l as c};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{existsSync as d,readFileSync as g,readdirSync as _,statSync as w}from"fs";import{join as o,extname as T}from"path";var E=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".pyw",".go",".rs",".java",".kt",".kts",".rb",".cs",".php",".swift",".c",".h",".cpp",".hpp",".cc",".scala"]),v=[".test.",".spec.","_test.","_spec."],F=new Set(["node_modules","dist","build","coverage",".git","__pycache__",".venv","venv",".tox",".mypy_cache","target",".gradle","vendor",".bundle",".next",".nuxt",".output"]);function O(s,n={}){let{maxDepth:r=6,includeTests:m=!1,testsOnly:x=!1,extraExtensions:y=[]}=n;if(!d(s))return[];let c=w(s);if(c.isFile())return[s];if(!c.isDirectory())return[];let S=new Set(y.map(e=>e.startsWith(".")?e:`.${e}`)),i=[];function a(e,u){if(u>r)return;let l;try{l=_(e,{withFileTypes:!0})}catch{return}for(let t of l)if(t.isDirectory()){if(F.has(t.name))continue;a(o(e,t.name),u+1)}else if(t.isFile()){let p=T(t.name).toLowerCase();if(!(E.has(p)||S.has(p))||t.name.endsWith(".d.ts"))continue;let f=v.some(h=>t.name.includes(h))||t.name.startsWith("test_");x?f&&i.push(o(e,t.name)):(m||!f)&&i.push(o(e,t.name))}}return a(s,0),i}function D(s,n){return n!=="node"&&n!=="node-test"?s:s.filter(r=>{try{return!/@playwright\/test|require\(\s*['"]playwright['"]\s*\)/.test(g(r,"utf8"))}catch{return!0}})}export{E as a,O as b,D as c};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{i as e}from"./chunk-PEA4DVXW.js";function g(t,n,r,a){return{id:e(),type:t,timestamp:new Date,source:n,correlationId:a,payload:r}}var i={TestGenerated:"test-generation.TestGenerated",TestSuiteCreated:"test-generation.TestSuiteCreated",PatternLearned:"test-generation.PatternLearned",GenerationFailed:"test-generation.GenerationFailed"},s={TestRunStarted:"test-execution.TestRunStarted",TestRunCompleted:"test-execution.TestRunCompleted",FlakyTestDetected:"test-execution.FlakyTestDetected",RetryTriggered:"test-execution.RetryTriggered"},o={CoverageReportCreated:"coverage-analysis.CoverageReportCreated",CoverageGapDetected:"coverage-analysis.CoverageGapDetected",RiskZoneIdentified:"coverage-analysis.RiskZoneIdentified"},d={QualityGateEvaluated:"quality-assessment.QualityGateEvaluated",DeploymentApproved:"quality-assessment.DeploymentApproved",DeploymentBlocked:"quality-assessment.DeploymentBlocked"},l={DefectPredicted:"defect-intelligence.DefectPredicted",RootCauseIdentified:"defect-intelligence.RootCauseIdentified",RegressionRiskAnalyzed:"defect-intelligence.RegressionRiskAnalyzed"},c={KnowledgeGraphUpdated:"code-intelligence.KnowledgeGraphUpdated",ImpactAnalysisCompleted:"code-intelligence.ImpactAnalysisCompleted",SemanticSearchCompleted:"code-intelligence.SemanticSearchCompleted",C4DiagramsGenerated:"code-intelligence.C4DiagramsGenerated"},m={VulnerabilityDetected:"security-compliance.VulnerabilityDetected",ComplianceValidated:"security-compliance.ComplianceValidated",SecurityAuditCompleted:"security-compliance.SecurityAuditCompleted"},p={PatternConsolidated:"learning-optimization.PatternConsolidated",TransferCompleted:"learning-optimization.TransferCompleted",OptimizationApplied:"learning-optimization.OptimizationApplied",DreamCycleCompleted:"learning-optimization.dream.completed"},y={...i,...s,...o,...d,...l,...c,...m,...p};export{g as a,i as b,s as c,o as d,d as e,l as f,c as g,m as h,p as i};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{b as h,d as v,f as T}from"./chunk-5H7MR6HP.js";var y={};v(y,{DotProductAttention:()=>z,FlashAttention:()=>k,HyperbolicAttention:()=>C,LinearAttention:()=>j,MoEAttention:()=>W,MultiHeadAttention:()=>F,RuvectorLayer:()=>O,SonaEngine:()=>K,TensorCompress:()=>E,default:()=>I,differentiableSearch:()=>L,getCompressionLevel:()=>B,hierarchicalForward:()=>V,init:()=>D,pipeline:()=>q});import{createRequire as A}from"module";var _,g,I,O,E,L,V,B,D,k,z,F,C,j,W,K,q,R=h(()=>{_=A(import.meta.url),g=_("@ruvector/rvf-node"),I=g,{RuvectorLayer:O,TensorCompress:E,differentiableSearch:L,hierarchicalForward:V,getCompressionLevel:B,init:D,FlashAttention:k,DotProductAttention:z,MultiHeadAttention:F,HyperbolicAttention:C,LinearAttention:j,MoEAttention:W,SonaEngine:K,pipeline:q}=g||{}});var Z={};v(Z,{createRvfStore:()=>$,isRvfNativeAvailable:()=>X,openRvfStore:()=>G,openRvfStoreReadonly:()=>U});import{readFileSync as J,writeFileSync as H,copyFileSync as Q,existsSync as Y}from"fs";function c(){if(S)return m;S=!0;try{let s=(R(),T(y));!s.RvfDatabase&&s.default&&s.default.RvfDatabase&&(s=s.default),m=s}catch{m=null}return m}function w(s){return`${s}.idmap.json`}function N(s){let e=w(s),t=new Map,n=new Map,i=1;if(Y(e))try{let r=JSON.parse(J(e,"utf-8"));i=r.nextLabel;for(let[a,p]of r.entries)t.set(a,p),n.set(p,a)}catch{}return{strToNum:t,numToStr:n,nextLabel:i}}function b(s,e,t){let n={nextLabel:t,entries:Array.from(e.entries())};H(w(s),JSON.stringify(n),"utf-8")}function $(s,e){let t=c();if(!t)throw new Error("@ruvector/rvf-node is not available \u2014 install the package or check platform compatibility");let n=t.RvfDatabase.create(s,{dimension:e}),i=n.dimension();return new d(n,s,i,new Map,new Map,1)}function G(s){let e=c();if(!e)throw new Error("@ruvector/rvf-node is not available \u2014 install the package or check platform compatibility");let t=e.RvfDatabase.open(s),n=t.dimension(),{strToNum:i,numToStr:r,nextLabel:a}=N(s);return new d(t,s,n,i,r,a)}function U(s){let e=c();if(!e)throw new Error("@ruvector/rvf-node is not available \u2014 install the package or check platform compatibility");let t=e.RvfDatabase.openReadonly(s),n=t.dimension(),{strToNum:i,numToStr:r,nextLabel:a}=N(s);return new d(t,s,n,i,r,a)}function X(){return process.env.AQE_MEMORY_BACKEND==="memory"?!1:c()!==null}var m,S,d,P=h(()=>{m=null,S=!1;d=class s{db;_path;_dimension;strToNum;numToStr;nextLabel;_open;constructor(e,t,n,i,r,a){this.db=e,this._path=t,this._dimension=n,this.strToNum=i,this.numToStr=r,this.nextLabel=a,this._open=!0}ingest(e){if(this.ensureOpen(),e.length===0)return{accepted:0,rejected:0};let t=this._dimension,n=new Float32Array(e.length*t),i=[],r=[];for(let o=0;o<e.length;o++){let{id:u,vector:f,metadata:x}=e[o],l=this.strToNum.get(u);l===void 0&&(l=this.nextLabel++,this.strToNum.set(u,l),this.numToStr.set(l,u)),i.push(l),r.push(x);let M=f instanceof Float32Array?f:new Float32Array(f);n.set(M.subarray(0,t),o*t)}let a;if(r.some(o=>o!==void 0)&&typeof this.db.ingestBatchWithMetadata=="function"){let o=r.map(u=>u?JSON.stringify(u):"");a=this.db.ingestBatchWithMetadata(n,i,o)}else a=this.db.ingestBatch(n,i);return this.persistIdMap(),{accepted:a.accepted,rejected:a.rejected}}search(e,t){this.ensureOpen();let n=e instanceof Float32Array?e:new Float32Array(e);return this.db.query(n,t).map(r=>{let a=this.numToStr.get(r.id);return a===void 0?null:{id:a,distance:r.distance,score:1/(1+r.distance)}}).filter(r=>r!==null)}delete(e){this.ensureOpen();let t=[];for(let i of e){let r=this.strToNum.get(i);r!==void 0&&t.push(r)}if(t.length===0)return 0;let n=this.db.delete(t);for(let i of e){let r=this.strToNum.get(i);r!==void 0&&(this.strToNum.delete(i),this.numToStr.delete(r))}return this.persistIdMap(),n.deleted}fork(e){this.ensureOpen(),Q(this._path,e);let t=new Map(this.strToNum),n=new Map(this.numToStr);b(e,t,this.nextLabel);let r=c().RvfDatabase.open(e);return new s(r,e,this._dimension,t,n,this.nextLabel)}status(){this.ensureOpen();let e=this.db.status(),n=this.db.segments().filter(i=>i.segType==="witness");return{totalVectors:e.totalVectors,totalSegments:e.totalSegments,fileSizeBytes:e.fileSize,epoch:e.currentEpoch,witnessValid:n.length>0,witnessEntries:n.length,deadSpaceRatio:typeof e.deadSpaceRatio=="number"?e.deadSpaceRatio:0}}dimension(){return this._dimension}size(){return this.ensureOpen(),this.db.status().totalVectors}compact(){this.ensureOpen();try{let e=this.db.compact();return e&&typeof e=="object"?{segmentsCompacted:typeof e.segmentsCompacted=="number"?e.segmentsCompacted:0,bytesReclaimed:typeof e.bytesReclaimed=="number"?e.bytesReclaimed:0,epoch:typeof e.epoch=="number"?e.epoch:0}:{segmentsCompacted:0,bytesReclaimed:0,epoch:0}}catch{return null}}close(){this._open&&(this.db.close(),this._open=!1)}isOpen(){return this._open}path(){return this._path}embedKernel(e){return this.ensureOpen(),this.db.embedKernel(0,99,0,e,0,"")}extractKernel(){return this.ensureOpen(),this.db.extractKernel()}verifyWitness(){this.ensureOpen();let e=this.tryNative("verifyWitness");return e?{valid:e.valid??!0,totalEntries:e.totalEntries??0,errors:Array.isArray(e.errors)?e.errors:[]}:{valid:!0,totalEntries:0,errors:[]}}sign(e){this.ensureOpen();let t=this.tryNative("sign",e);return typeof t=="string"?t:null}fileId(){this.ensureOpen();let e=this.tryNative("fileId");return typeof e=="string"?e:null}parentId(){this.ensureOpen();let e=this.tryNative("parentId");return typeof e=="string"?e:null}lineageDepth(){this.ensureOpen();let e=this.tryNative("lineageDepth");return typeof e=="number"?e:0}indexStats(){let e=this.status();return{totalVectors:e.totalVectors,dimension:this._dimension,totalSegments:e.totalSegments,fileSizeBytes:e.fileSizeBytes,epoch:e.epoch,witnessValid:e.witnessValid,witnessEntries:e.witnessEntries,idMapSize:this.strToNum.size}}freeze(){this.ensureOpen();let e=this.tryNative("freeze");return typeof e=="number"?e:0}derive(e){this.ensureOpen();let t=c();if(typeof this.db.derive=="function")try{let n=this.db.derive(e),i=new Map(this.strToNum),r=new Map(this.numToStr);return b(e,i,this.nextLabel),new s(n,e,this._dimension,i,r,this.nextLabel)}catch{}return this.fork(e)}ensureOpen(){if(!this._open)throw new Error("RVF database is closed")}tryNative(e,...t){if(typeof this.db[e]!="function")return null;try{return this.db[e](...t)}catch{return null}}persistIdMap(){b(this._path,this.strToNum,this.nextLabel)}}});export{$ as a,G as b,U as c,X as d,Z as e,P as f};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- var c="quality-assessment";var o=["coverage","testsPassing","criticalBugs","codeSmells","securityVulnerabilities","technicalDebt","duplications"],u={coverage:{direction:"min",value:80,severity:"high"},testsPassing:{direction:"min",value:95,severity:"critical"},criticalBugs:{direction:"max",value:0,severity:"critical"},codeSmells:{direction:"max",value:20,severity:"medium"},securityVulnerabilities:{direction:"max",value:0,severity:"critical"},technicalDebt:{direction:"max",value:5,severity:"medium"},duplications:{direction:"max",value:5,severity:"low"}};function l(t){return`quality-evidence:${t}:latest`}function d(t,r,a){if(typeof t!="string")throw new Error("Measured quality evidence is malformed: measuredAt is required.");let e=Date.parse(t);if(!Number.isFinite(e))throw new Error("Measured quality evidence is malformed: measuredAt is invalid.");if(e>r+6e4)throw new Error("Measured quality evidence is malformed: measuredAt is in the future.");if(r-e>a)throw new Error("Measured quality evidence is stale. Run the relevant quality analyzers again.");return e}function m(t,r,a,e){if(!t||typeof t!="object")throw new Error(`No measured quality evidence found for ${r}.`);let i=t;if(i.schemaVersion!==1||i.metric!==r||!Number.isFinite(i.value)||i.value<0||typeof i.source!="string"||i.source.trim().length===0)throw new Error(`Measured quality evidence for ${r} is malformed or incomplete.`);d(i.measuredAt,a,e)}async function v(t,r,a){let e=Date.now();if(d(a.measuredAt,e,Number.POSITIVE_INFINITY),a.source.trim().length===0)throw new Error("Quality evidence source is required.");for(let i of o){let n=r[i];if(n===void 0)continue;if(!Number.isFinite(n)||n<0)throw new Error(`Quality evidence value for ${i} must be a non-negative finite number.`);let s={schemaVersion:1,metric:i,value:n,measuredAt:a.measuredAt,source:a.source};await t.set(l(i),s,{namespace:c,persist:!0})}}async function y(t,r={}){let a=r.now??Date.now(),e=r.maxAgeMs??864e5,i={};for(let n of o){let s=await t.get(l(n),{namespace:c});m(s,n,a,e),i[n]=s.value}return i}function f(t,r={}){if(r.coverage!==void 0&&(!Number.isFinite(r.coverage)||r.coverage<0||r.coverage>100))throw new Error("Coverage quality threshold must be a finite number between 0 and 100.");let a=o.map(e=>{let i=e==="coverage"&&r.coverage!==void 0?{...u[e],value:r.coverage}:u[e],n=t[e];return{name:e,value:n,threshold:i.value,direction:i.direction,severity:i.severity,passed:i.direction==="min"?n>=i.value:n<=i.value}});return{passed:a.every(e=>e.passed),checks:a,recommendations:a.filter(e=>!e.passed).map(e=>`${e.name} failed its measured ${e.direction} threshold.`)}}export{u as a,v as b,y as c,f as d};
@@ -1,5 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{a as R}from"./chunk-BY3IL56R.js";var P="quality-daemon",x=class{constructor(e){this.backend=e}backend;async get(e){return this.backend.kvGet(e,P)}async set(e,t){await this.backend.kvSet(e,t,P)}async search(e){return this.backend.kvSearch(e,P)}};import{cpus as ee,freemem as te,totalmem as ie,loadavg as oe}from"os";var p=class{queues={now:[],next:[],later:[]};_maxSize;constructor(e=1e3){this._maxSize=e}enqueue(e){return this.size>=this._maxSize&&(this.pruneExpired(),this.size>=this._maxSize)?!1:(this.queues[e.priority].push(e),!0)}dequeue(){let e=Date.now();for(let t of["now","next","later"]){let i=this.queues[t];for(;i.length>0;){let o=i.shift();if(!(o.ttlMs&&e-o.createdAt>o.ttlMs))return o}}}peek(){let e=Date.now();for(let t of["now","next","later"]){let i=this.queues[t];for(let o of i)if(!o.ttlMs||e-o.createdAt<=o.ttlMs)return o}}drainPriority(e){let t=this.queues[e].splice(0),i=Date.now();return t.filter(o=>!o.ttlMs||i-o.createdAt<=o.ttlMs)}pruneExpired(){let e=0,t=Date.now();for(let i of["now","next","later"]){let o=this.queues[i].length;this.queues[i]=this.queues[i].filter(r=>!r.ttlMs||t-r.createdAt<=r.ttlMs),e+=o-this.queues[i].length}return e}get size(){return this.queues.now.length+this.queues.next.length+this.queues.later.length}get depths(){return{now:this.queues.now.length,next:this.queues.next.length,later:this.queues.later.length}}get isEmpty(){return this.size===0}clear(){this.queues.now=[],this.queues.next=[],this.queues.later=[]}};import{watch as Q}from"fs";import{execFile as $}from"child_process";import{promisify as H}from"util";import{resolve as q,join as z}from"path";import{existsSync as E,readFileSync as L}from"fs";var _=H($),U={repoRoot:process.cwd(),debounceMs:500,maxChangedFiles:200,pollIntervalMs:5e3},g=class{constructor(e,t){this.queue=e;this.options={...U,...t}}queue;watcher;pollTimer;options;lastKnownHeads=new Map;debounceTimer;_running=!1;_polling=!1;get running(){return this._running}async start(){if(this._running)return;let e=q(this.options.repoRoot,".git","refs","heads");if(!E(e))throw new Error(`Git refs directory not found: ${e}`);await this.snapshotHeads(),process.platform==="darwin"||process.platform==="win32"?this.watcher=Q(e,{recursive:!0},(i,o)=>{o&&this.handleRefChange(o)}):(this.pollTimer=setInterval(()=>{this.poll().catch(i=>{console.debug("[GitWatcher] Poll error:",i)})},this.options.pollIntervalMs),this.pollTimer.unref?.()),this._running=!0}stop(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=void 0),this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=void 0),this.watcher&&(this.watcher.close(),this.watcher=void 0),this._running=!1}async poll(){if(this._polling)return[];this._polling=!0;let e=[];try{let{stdout:t}=await _("git",["for-each-ref","--format=%(refname:short) %(objectname:short)","refs/heads/"],{cwd:this.options.repoRoot});for(let i of t.trim().split(`
3
- `)){if(!i)continue;let[o,r]=i.split(" "),n=this.lastKnownHeads.get(o);n&&n!==r&&(e.push(o),await this.enqueueCommitAnalysis(o,r)),this.lastKnownHeads.set(o,r)}}catch{}finally{this._polling=!1}return e}handleRefChange(e){this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.processRefChange(e).catch(t=>{console.debug("[GitWatcher] Error processing ref change:",t)})},this.options.debounceMs)}async processRefChange(e){let t=e.replace(/\\/g,"/"),i=q(this.options.repoRoot,".git","refs","heads"),o=z(i,e),r;try{r=L(o,"utf-8").trim()}catch{return}this.lastKnownHeads.get(t)!==r&&(this.lastKnownHeads.set(t,r),await this.enqueueCommitAnalysis(t,r))}async enqueueCommitAnalysis(e,t){if(R(t,"commit hash"))return;let i=[];try{let{stdout:n}=await _("git",["diff-tree","--no-commit-id","--name-only","-r",t],{cwd:this.options.repoRoot});i=n.trim().split(`
4
- `).filter(Boolean).slice(0,this.options.maxChangedFiles)}catch{}let o={type:"git_commit",branch:e,commitHash:t,changedFiles:i},r={id:`git-${t}-${Date.now()}`,priority:"next",payload:o,createdAt:Date.now(),source:"git-watcher",ttlMs:300*1e3};this.queue.enqueue(r)}async snapshotHeads(){try{let{stdout:e}=await _("git",["for-each-ref","--format=%(refname:short) %(objectname:short)","refs/heads/"],{cwd:this.options.repoRoot});for(let t of e.trim().split(`
5
- `)){if(!t)continue;let[i,o]=t.split(" ");this.lastKnownHeads.set(i,o)}}catch{}}};var j={regressionThreshold:2,gapThreshold:60,memoryPrefix:"quality-daemon:coverage"},f=class{constructor(e,t){this.queue=e;this.options={...j,...t}}queue;options;async analyze(e,t,i){let o=await t.get(`${this.options.memoryPrefix}:snapshot`);if(await t.set(`${this.options.memoryPrefix}:snapshot`,e),!o)return{regressionDetected:!1,overallDelta:{line:0,branch:0,function:0,statement:0},affectedFiles:[],newGaps:[]};let r=o,n={line:e.overall.line-r.overall.line,branch:e.overall.branch-r.overall.branch,function:e.overall.function-r.overall.function,statement:e.overall.statement-r.overall.statement},s=n.line<-this.options.regressionThreshold||n.branch<-this.options.regressionThreshold,a=i??Object.keys(e.files),u=[],c=[];for(let d of a){let l=e.files[d],m=r.files[d];if(!l)continue;let M=m?l.line-m.line:0,I=m?l.branch-m.branch:0,D=m?l.uncoveredLines.filter(T=>!m.uncoveredLines.includes(T)):l.uncoveredLines;if((M!==0||I!==0||D.length>0)&&u.push({file:d,lineDelta:M,branchDelta:I,newUncoveredLines:D}),l.line<this.options.gapThreshold){let T=this.computeRiskScore(l,D.length);c.push({file:d,uncoveredLines:l.uncoveredLines,currentCoverage:l.line,riskScore:T})}}return(s||c.length>0)&&this.enqueueTestSuggestion(e,r,c),await t.set(`${this.options.memoryPrefix}:delta`,{timestamp:Date.now(),overallDelta:n,regressionDetected:s,affectedFileCount:u.length,gapCount:c.length}),{regressionDetected:s,overallDelta:n,affectedFiles:u,newGaps:c}}async buildSnapshot(e){let t=await e.get("coverage:latest");if(t)return{timestamp:Date.now(),overall:{line:t.line,branch:t.branch,function:t.function,statement:t.statement},files:t.files??{}}}computeRiskScore(e,t){let o=1-Math.min(100,Math.max(0,e.line))/100,r=Math.min(t/50,1);return Math.min(1,o*.6+r*.4)}enqueueTestSuggestion(e,t,i){let o={type:"coverage_delta",previousSnapshot:`snapshot-${t.timestamp}`,currentSnapshot:`snapshot-${e.timestamp}`},r={id:`coverage-delta-${Date.now()}`,priority:i.some(n=>n.riskScore>.8)?"now":"next",payload:o,createdAt:Date.now(),source:"coverage-delta",ttlMs:600*1e3};this.queue.enqueue(r)}};import{execFile as B}from"child_process";import{promisify as J}from"util";var K=J(B),V={runsPerWorkflow:10,flakyThreshold:3,repo:""},y=class{constructor(e,t){this.queue=e;this.options={...V,...t}}queue;options;async check(){let e=await this.fetchRecentRuns(),t=this.groupByWorkflow(e),i=[],o=[],r=0;for(let[s,a]of Object.entries(t)){let u=a.filter(m=>m.conclusion==="failure").length,c=a.length>0?(a.length-u)/a.length*100:100,d=this.countConsecutiveFailures(a),l=a[0]?.conclusion??"unknown";l==="failure"&&r++,d>=this.options.flakyThreshold&&(o.push(s),this.enqueueFailureAlert(s,a[0])),i.push({name:s,recentRuns:a.length,failedRuns:u,successRate:Math.round(c*10)/10,lastConclusion:l,consecutiveFailures:d})}let n=this.calculateHealthScore(i);return{timestamp:Date.now(),workflows:i,failingWorkflows:r,flakyWorkflows:o,healthScore:n}}async fetchRecentRuns(){try{let e=["run","list","--limit",String(this.options.runsPerWorkflow*5),"--json","name,status,conclusion,headBranch,number,databaseId,createdAt"];this.options.repo&&e.push("--repo",this.options.repo);let{stdout:t}=await K("gh",e,{timeout:15e3});return JSON.parse(t).map(o=>({name:o.name,status:o.status,conclusion:o.conclusion??"pending",headBranch:o.headBranch,runNumber:o.number,databaseId:o.databaseId,createdAt:o.createdAt}))}catch{return[]}}groupByWorkflow(e){let t={};for(let i of e)t[i.name]||(t[i.name]=[]),t[i.name].push(i);for(let i of Object.keys(t))t[i]=t[i].slice(0,this.options.runsPerWorkflow);return t}countConsecutiveFailures(e){let t=0;for(let i of e)if(i.conclusion==="failure")t++;else break;return t}calculateHealthScore(e){if(e.length===0)return 100;let t=e.reduce((i,o)=>i+o.successRate,0)/e.length;return Math.round(t)}enqueueFailureAlert(e,t){let i={type:"ci_failure",workflowName:e,runId:t.databaseId,conclusion:t.conclusion},o={id:`ci-failure-${e}-${Date.now()}`,priority:"now",payload:i,createdAt:Date.now(),source:"ci-monitor",ttlMs:1800*1e3};this.queue.enqueue(o)}};var Y={memoryPrefix:"quality-daemon:suggestions",maxSuggestions:100,minRiskScore:.3},v=class{options;constructor(e){this.options={...Y,...e}}async suggest(e,t,i){let o=[],r=e.filter(s=>s.riskScore>=this.options.minRiskScore);for(let s of r){let a=t.includes(s.file),u=this.determinePriority(s,a),c=this.determineTestType(s.file),d=this.estimateEffort(s);o.push({id:`suggestion-${Date.now()}-${o.length}`,file:s.file,uncoveredLines:s.uncoveredLines.slice(0,50),suggestedTestType:c,description:this.generateDescription(s,c),priority:u,estimatedEffort:d,createdAt:Date.now(),status:"pending"})}o.sort((s,a)=>{let u={high:0,medium:1,low:2};return u[s.priority]-u[a.priority]});let n=o.slice(0,this.options.maxSuggestions);return await this.storeSuggestions(n,i),n}async getPending(e){return(await e.get(`${this.options.memoryPrefix}:list`)??[]).filter(i=>i.status==="pending")}async updateStatus(e,t,i){let o=await i.get(`${this.options.memoryPrefix}:list`);if(!o)return!1;let r=o.findIndex(s=>s.id===e);if(r===-1)return!1;let n=o.map((s,a)=>a===r?{...s,status:t}:s);return await i.set(`${this.options.memoryPrefix}:list`,n),!0}determinePriority(e,t){return e.riskScore>.8?"high":t||e.riskScore>.5?"medium":"low"}determineTestType(e){return e.includes("/api/")||e.includes("/routes/")||e.includes("/handlers/")?"integration":e.includes("/e2e/")||e.includes("/pages/")||e.includes("/views/")?"e2e":"unit"}estimateEffort(e){return e.uncoveredLines.length<=10?"small":e.uncoveredLines.length<=50?"medium":"large"}generateDescription(e,t){let i=e.uncoveredLines.length,o=Math.round(e.currentCoverage);return`Add ${t} tests for ${e.file} (${i} uncovered lines, ${o}% coverage, risk ${(e.riskScore*100).toFixed(0)}%)`}async storeSuggestions(e,t){let r=[...(await t.get(`${this.options.memoryPrefix}:list`)??[]).filter(n=>n.status!=="pending"),...e].slice(-this.options.maxSuggestions);await t.set(`${this.options.memoryPrefix}:list`,r),await t.set(`${this.options.memoryPrefix}:count`,{pending:e.length,total:r.length,lastUpdated:Date.now()})}};var X={memoryPrefix:"quality-daemon:nightly",maxEntryAge:6048e5,nightlyHour:2},w=class{constructor(e,t){this.queue=e;this.options={...X,...t}}queue;options;lastRunDate;shouldRun(){let e=new Date,t=e.toISOString().split("T")[0];return this.lastRunDate===t?!1:e.getHours()>=this.options.nightlyHour}scheduleIfDue(){if(!this.shouldRun())return!1;let e={type:"nightly",tasks:["consolidate_patterns","prune_expired","generate_report"]},t={id:`nightly-${Date.now()}`,priority:"later",payload:e,createdAt:Date.now(),source:"nightly-consolidation",ttlMs:720*60*1e3};return this.queue.enqueue(t)}async execute(e,t){let i=Date.now(),o=new Date().toISOString().split("T")[0],r=await this.consolidatePatterns(e),n=await this.pruneExpired(e),s=this.generateReport(o,t);await e.set(`${this.options.memoryPrefix}:report:${o}`,s),this.lastRunDate=o;let a={timestamp:Date.now(),patternsConsolidated:r,entriesPruned:n,reportGenerated:!0,durationMs:Date.now()-i};return await e.set(`${this.options.memoryPrefix}:last-result`,a),a}async getLastResult(e){return e.get(`${this.options.memoryPrefix}:last-result`)}async consolidatePatterns(e){let t=await e.search("quality-daemon:*"),i=0;return await e.get("quality-daemon:suggestions:count")&&i++,await e.get("quality-daemon:coverage:delta")&&i++,i}async pruneExpired(e){let t=await e.search("quality-daemon:*"),i=0,o=Date.now();for(let r of t){if(r.endsWith(":snapshot")||r.endsWith(":list"))continue;let n=await e.get(r);n&&typeof n.timestamp=="number"&&o-n.timestamp>this.options.maxEntryAge&&(await e.set(r,{pruned:!0,prunedAt:o}),i++)}return i}generateReport(e,t){return{date:e,coverageHealth:t.coverageHealth??0,ciHealth:t.ciHealth??0,commitsAnalyzed:t.commitsAnalyzed??0,suggestionsGenerated:t.suggestionsGenerated??0,notificationsSent:t.notificationsSent??0,queueDepthAvg:t.queueDepthAvg??0,daemonUptime:t.uptimeSeconds??0}}};import{writeFileSync as W,mkdirSync as A,readdirSync as S,readFileSync as N,unlinkSync as F}from"fs";import{join as b,resolve as Z}from"path";var O={notificationsDir:Z(process.cwd(),".agentic-qe","notifications"),maxNotifications:200},k=class{notificationsDir;maxNotifications;webhookUrl;urlValidator;_sentCount=0;constructor(e){this.notificationsDir=e?.notificationsDir??O.notificationsDir,this.maxNotifications=e?.maxNotifications??O.maxNotifications,this.webhookUrl=e?.webhookUrl,this.urlValidator=e?.urlValidator}get sentCount(){return this._sentCount}initialize(){A(this.notificationsDir,{recursive:!0})}async send(e){let t={...e,id:`notif-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,timestamp:Date.now(),read:!1};return this.writeToFile(t),this.webhookUrl&&await this.sendWebhook(t),this._sentCount++,this.pruneOldNotifications(),t}list(e){let t=e?.limit??50;try{let i=S(this.notificationsDir).filter(r=>r.endsWith(".json")).sort().reverse(),o=[];for(let r of i){if(o.length>=t)break;try{let n=N(b(this.notificationsDir,r),"utf-8"),s=JSON.parse(n);if(e?.unreadOnly&&s.read||e?.type&&s.type!==e.type)continue;o.push(s)}catch{}}return o}catch{return[]}}markRead(e){try{let t=S(this.notificationsDir).filter(n=>n.endsWith(`-${e}.json`));if(t.length===0)return!1;let i=b(this.notificationsDir,t[0]),r={...JSON.parse(N(i,"utf-8")),read:!0};return W(i,JSON.stringify(r,null,2)),!0}catch{return!1}}clear(){try{let e=S(this.notificationsDir).filter(t=>t.endsWith(".json"));for(let t of e)F(b(this.notificationsDir,t));return e.length}catch{return 0}}writeToFile(e){try{A(this.notificationsDir,{recursive:!0});let t=`${e.timestamp}-${e.id}.json`,i=b(this.notificationsDir,t);W(i,JSON.stringify(e,null,2))}catch(t){console.debug("[NotificationService] Failed to write notification:",t)}}async sendWebhook(e){if(this.webhookUrl){if(this.urlValidator&&!this.urlValidator(this.webhookUrl)){console.warn("[NotificationService] Webhook URL blocked by SSRF guard:",this.webhookUrl);return}try{let t=await fetch(this.webhookUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:AbortSignal.timeout(5e3)});t.ok||console.debug(`[NotificationService] Webhook returned ${t.status}`)}catch(t){console.debug("[NotificationService] Webhook delivery failed:",t)}}}pruneOldNotifications(){try{let e=S(this.notificationsDir).filter(i=>i.endsWith(".json")).sort();if(e.length<=this.maxNotifications)return;let t=e.slice(0,e.length-this.maxNotifications);for(let i of t)F(b(this.notificationsDir,i))}catch{}}};var C={tickIntervalMs:3e4,ciPollIntervalMs:5*6e4,coverageCheckIntervalMs:2*6e4,cpuThreshold:.7,memoryThreshold:.8},G=class{queue;gitWatcher;coverageDelta;ciMonitor;testSuggester;nightlyConsolidation;notificationService;tickTimer;_running=!1;_startedAt=0;_tickCount=0;_lastTickAt;_throttled=!1;_commitsAnalyzed=0;_suggestionsGenerated=0;_ciHealth=100;_coverageHealth=100;_lastCICheck;_lastCoverageCheck;_memory;config;constructor(e){this.config={tickIntervalMs:e?.tickIntervalMs??C.tickIntervalMs,ciPollIntervalMs:e?.ciPollIntervalMs??C.ciPollIntervalMs,coverageCheckIntervalMs:e?.coverageCheckIntervalMs??C.coverageCheckIntervalMs,cpuThreshold:e?.cpuThreshold??C.cpuThreshold,memoryThreshold:e?.memoryThreshold??C.memoryThreshold},this.queue=new p,this.gitWatcher=new g(this.queue,e?.git),this.coverageDelta=new f(this.queue,e?.coverage),this.ciMonitor=new y(this.queue,e?.ci),this.testSuggester=new v(e?.suggestions),this.nightlyConsolidation=new w(this.queue,e?.nightly),this.notificationService=new k(e?.notifications)}get running(){return this._running}async start(e){this._running||(this._memory=e,this._running=!0,this._startedAt=Date.now(),this.notificationService.initialize(),await this.gitWatcher.start().catch(t=>{console.debug("[QualityDaemon] Git watcher failed to start:",t)}),this.scheduleTick())}async stop(){this._running&&(this._running=!1,this.tickTimer&&(clearTimeout(this.tickTimer),this.tickTimer=void 0),this.gitWatcher.stop(),this._memory&&await this._memory.set("quality-daemon:state",{stoppedAt:Date.now(),tickCount:this._tickCount,commitsAnalyzed:this._commitsAnalyzed,suggestionsGenerated:this._suggestionsGenerated}))}getStatus(){return{running:this._running,uptimeSeconds:this._running?Math.floor((Date.now()-this._startedAt)/1e3):0,tickCount:this._tickCount,queueDepth:this.queue.depths,lastTickAt:this._lastTickAt,throttled:this._throttled,commitsAnalyzed:this._commitsAnalyzed,suggestionsGenerated:this._suggestionsGenerated,notificationsSent:this.notificationService.sentCount,ciHealth:this._ciHealth,coverageHealth:this._coverageHealth,lastCICheck:this._lastCICheck,lastCoverageCheck:this._lastCoverageCheck}}scheduleTick(){this._running&&(this.tickTimer=setTimeout(()=>this.tick(),this.config.tickIntervalMs),this.tickTimer.unref?.())}async tick(){if(!(!this._running||!this._memory)){if(this._tickCount++,this._lastTickAt=Date.now(),this._throttled=this.isResourceConstrained(),this._throttled){await this.processNowItems(this._memory),this.scheduleTick();return}await this.processQueue(this._memory),await this.runPeriodicChecks(this._memory),this.nightlyConsolidation.scheduleIfDue(),this.queue.pruneExpired(),this.scheduleTick()}}async processQueue(e){let t=0,i=10;for(;t<i&&!this.queue.isEmpty;){let o=this.queue.dequeue();if(!o)break;await this.handleQueueItem(o,e),t++}}async processNowItems(e){let t=this.queue.drainPriority("now");for(let i of t)await this.handleQueueItem(i,e)}async handleQueueItem(e,t){let i=e.payload;switch(i.type){case"git_commit":{this._commitsAnalyzed++;let o=await this.coverageDelta.buildSnapshot(t);if(o){let r=await this.coverageDelta.analyze(o,t,i.changedFiles);if(r.regressionDetected&&await this.notificationService.send({type:"coverage_drop",title:"Coverage Regression Detected",message:`Line coverage delta: ${r.overallDelta.line.toFixed(1)}% (${r.affectedFiles.length} files affected)`,severity:"high",metadata:{delta:r.overallDelta,commit:i.commitHash}}),r.newGaps.length>0){let n=await this.testSuggester.suggest(r.newGaps,i.changedFiles,t);this._suggestionsGenerated+=n.length,n.length>0&&await this.notificationService.send({type:"suggestion_available",title:"New Test Suggestions Available",message:`${n.length} test suggestions generated for uncovered code`,severity:"info",metadata:{count:n.length}})}}break}case"coverage_delta":{let o=await this.testSuggester.getPending(t);o.length>0&&await this.notificationService.send({type:"suggestion_available",title:"Test Suggestions Pending",message:`${o.length} test suggestions awaiting review`,severity:"info",metadata:{count:o.length}});break}case"gate_failure":await this.notificationService.send({type:"gate_failure",title:`Quality Gate Failed: ${i.gateName}`,message:`Score ${i.score} below threshold ${i.threshold}`,severity:"critical",metadata:{gate:i.gateName,score:i.score,threshold:i.threshold}});break;case"ci_failure":await this.notificationService.send({type:"ci_failure",title:`CI Failure: ${i.workflowName}`,message:`Workflow ${i.workflowName} run #${i.runId} concluded: ${i.conclusion}`,severity:"high",metadata:{workflow:i.workflowName,runId:i.runId}});break;case"nightly":{let o={coverageHealth:this._coverageHealth,ciHealth:this._ciHealth,commitsAnalyzed:this._commitsAnalyzed,suggestionsGenerated:this._suggestionsGenerated,notificationsSent:this.notificationService.sentCount,queueDepthAvg:this.queue.size,uptimeSeconds:Math.floor((Date.now()-this._startedAt)/1e3)};await this.nightlyConsolidation.execute(t,o);break}default:console.warn("[QualityDaemon] Unhandled payload type:",i.type)}}async runPeriodicChecks(e){let t=Date.now();if(!this._lastCICheck||t-this._lastCICheck>=this.config.ciPollIntervalMs)try{let i=await this.ciMonitor.check();this._ciHealth=i.healthScore,this._lastCICheck=t,i.flakyWorkflows.length>0&&await this.notificationService.send({type:"flaky_detected",title:"Flaky Workflows Detected",message:`${i.flakyWorkflows.length} workflows showing repeated failures: ${i.flakyWorkflows.join(", ")}`,severity:"medium",metadata:{workflows:i.flakyWorkflows}})}catch{}if(!this._lastCoverageCheck||t-this._lastCoverageCheck>=this.config.coverageCheckIntervalMs)try{let i=await this.coverageDelta.buildSnapshot(e);i&&(this._coverageHealth=Math.round((i.overall.line+i.overall.branch+i.overall.function+i.overall.statement)/4),this._lastCoverageCheck=t)}catch{}}isResourceConstrained(){if(1-te()/ie()>this.config.memoryThreshold)return!0;let t=ee().length;return(t>0?oe()[0]/t:0)>this.config.cpuThreshold}};export{x as a,G as b};
@@ -1,4 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import*as h from"fs";import*as M from"path";var S=["coverage/coverage-final.json","coverage/coverage-summary.json",".coverage/coverage-final.json"];function x(s){for(let v of S){let i=M.join(s,v);if(h.existsSync(i))try{let n=JSON.parse(h.readFileSync(i,"utf-8"));if(n.total&&n.total.lines)return L(n,s);let o=new Map;for(let[r,C]of Object.entries(n)){let c=C,g=Object.keys(c.s),u=g.filter(a=>c.s[a]>0).length,b=Object.keys(c.b),p=0,m=0;for(let a of b)for(let y of c.b[a])p++,y>0&&m++;let e=Object.keys(c.f),t=e.filter(a=>c.f[a]>0).length,f=new Set,d=new Set;for(let a of g){let y=c.statementMap[a];for(let F=y.start.line;F<=y.end.line;F++)d.add(F),c.s[a]>0&&f.add(F)}let l=[...d].filter(a=>!f.has(a)).sort((a,y)=>a-y);o.set(r,{path:r,lines:{covered:f.size,total:d.size},branches:{covered:m,total:p},functions:{covered:t,total:e.length},statements:{covered:u,total:g.length},uncoveredLines:l,uncoveredBranches:l.slice(0,Math.floor(l.length/2))})}return o.size>0?o:null}catch{continue}}return null}function L(s,v){let i=new Map;for(let[n,o]of Object.entries(s)){if(n==="total")continue;let r=o;i.set(n,{path:n,lines:{covered:r.lines.covered,total:r.lines.total},branches:{covered:r.branches.covered,total:r.branches.total},functions:{covered:r.functions.covered,total:r.functions.total},statements:{covered:r.statements.covered,total:r.statements.total},uncoveredLines:[],uncoveredBranches:[]})}return i.size>0?i:null}function B(s,v){let n=v.split(`
3
- `).length,r=[s.replace(".ts",".test.ts").replace("/src/","/tests/"),s.replace(".ts",".spec.ts").replace("/src/","/tests/"),s.replace(".ts",".test.ts"),s.replace("/src/","/test/").replace(".ts",".test.ts")].some(d=>h.existsSync(d)),C=(v.match(/\bexport\b/g)||[]).length,c=(v.match(/\b(function|=>)\b/g)||[]).length,g=(v.match(/\b(if|switch|case|\?\?|\|\|)\b/g)||[]).length,u;if(r){let d=Math.min(g*.005,.15),l=Math.min(n*1e-4,.1);u=.85-d-l}else u=.2+(C>5?.1:0);u=Math.max(.05,Math.min(.95,u));let b=Math.floor(n*u),p=Math.max(c,1),m=Math.max(g,1),e=Math.floor(b*.7),t=Math.floor(p*u*.9),f=Array.from({length:n-b},(d,l)=>l+b+1);return{path:s,lines:{covered:b,total:n},branches:{covered:Math.min(e,m),total:m},functions:{covered:Math.min(t,p),total:p},statements:{covered:b,total:n},uncoveredLines:f,uncoveredBranches:f.slice(0,Math.floor(f.length/2))}}function j(s,v){let i=v||process.cwd(),n=x(i),o=[],r=!1;if(n&&n.size>0){r=!0;for(let e of s){let t=M.resolve(e),f=n.get(t)||n.get(e)||n.get(M.relative(i,t));if(f)o.push({...f,path:e});else{let l=(h.existsSync(e)?h.readFileSync(e,"utf-8"):"").split(`
4
- `).length;o.push({path:e,lines:{covered:0,total:l},branches:{covered:0,total:1},functions:{covered:0,total:1},statements:{covered:0,total:l},uncoveredLines:Array.from({length:l},(a,y)=>y+1),uncoveredBranches:[]})}}}else for(let e of s){let t=h.existsSync(e)?h.readFileSync(e,"utf-8"):"";o.push(B(e,t))}let C=o.reduce((e,t)=>e+t.lines.total,0),c=o.reduce((e,t)=>e+t.lines.covered,0),g=o.reduce((e,t)=>e+t.branches.total,0),u=o.reduce((e,t)=>e+t.branches.covered,0),b=o.reduce((e,t)=>e+t.functions.total,0),p=o.reduce((e,t)=>e+t.functions.covered,0),m=(e,t)=>t>0?Math.round(e/t*100):0;return{files:o,summary:{line:m(c,C),branch:m(u,g),function:m(p,b),statement:m(c,C),files:o.length},instrumented:r}}export{j as a};
@@ -1,82 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{a as Y}from"./chunk-ZF5JTQEE.js";import{d as O,e as k}from"./chunk-HEDLZWPM.js";import{c as N,d as Q}from"./chunk-XKIFNKHV.js";import"./chunk-5H7MR6HP.js";import{Command as se}from"commander";import d from"chalk";import*as S from"fs";import*as w from"path";import*as R from"fs";import*as h from"path";import{isCollection as H,isScalar as J,parseDocument as K,visit as V}from"yaml";var E={version:"1",name:"aqe-ci",phases:[{name:"Test Generation",type:"test",enabled:!0,config:{target:".",framework:"vitest",type:"unit"},continueOnFailure:!1,timeout:300},{name:"Coverage Analysis",type:"coverage",enabled:!0,config:{target:".",threshold:80},continueOnFailure:!0,timeout:300},{name:"Security Scan",type:"security",enabled:!0,config:{sast:!0},continueOnFailure:!0,timeout:300},{name:"Quality Gate",type:"quality-gate",enabled:!0,config:{},continueOnFailure:!1,timeout:60}],output:{format:"json",directory:".aqe-ci-output",combinedReport:!0},qualityGate:{enforced:!0,thresholds:{coverage:80,security:"medium",quality:70}}},Z=[".aqe-ci.yml",".aqe-ci.yaml","aqe-ci.yml","aqe-ci.yaml"];function T(n=process.cwd()){let r=h.resolve(n);for(let s=0;s<10;s++){for(let a of Z){let e=h.join(r,a);if(R.existsSync(e))return e}let u=h.dirname(r);if(u===r)break;r=u}return null}function L(n){if(!R.existsSync(n))return{success:!1,errors:[`Config file not found: ${n}`]};let r;try{r=R.readFileSync(n,"utf-8")}catch(s){return{success:!1,errors:[`Failed to read config: ${s}`]}}return ne(r,n)}var U=1e4,W=1e4,j=20,ee=new Set(["__proto__","constructor","prototype"]);function F(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)&&(Object.getPrototypeOf(n)===Object.prototype||Object.getPrototypeOf(n)===null)}function te(n){let r=n.split(`
3
- `);if(r.length>U)throw new Error(`YAML exceeds maximum allowed lines (${U})`);if(r.some(e=>e.length>W))throw new Error(`YAML exceeds maximum line length (${W})`);let s=K(n,{prettyErrors:!1,merge:!0});if(s.errors.length)throw new Error(s.errors.map(e=>e.message).join("; "));V(s,{Collection:(e,i,c)=>{if(c.filter(H).length>=j)throw new Error(`YAML exceeds maximum depth (${j})`)},Pair:(e,i)=>{if(J(i.key)&&ee.has(String(i.key.value)))throw new Error(`Unsafe YAML key: ${i.key.value}`)}});let u=s.contents===null?{}:s.toJS({maxAliasCount:100});function a(e,i,c){if(!(e===null||typeof e!="object")){if(i>j)throw new Error(`YAML exceeds maximum depth (${j})`);if(c.has(e))throw new Error("Cyclic YAML aliases are not supported");c.add(e);for(let m of Object.values(e))a(m,i+1,c);c.delete(e)}}if(a(u,0,new Set),!F(u))throw new Error("CI config must be a YAML mapping");return u}function ne(n,r){let s;try{s=te(n)}catch(l){return{success:!1,errors:[`Invalid YAML: ${l}`]}}let u=[],a=M();function e(l,t,o,g){let p=l[t];return p===void 0?o:typeof p!="string"||!p.trim()?(u.push(`${g} must be a non-empty string`),o):p}function i(l,t,o,g){let p=l[t];return p===void 0?o:typeof p!="boolean"?(u.push(`${g} must be a boolean`),o):p}if(s.version!==void 0&&(typeof s.version=="number"&&Number.isFinite(s.version)?a.version=String(s.version):a.version=e(s,"version",a.version,"version")),a.name=e(s,"name",a.name,"name"),s.output!==void 0&&(F(s.output)?(a.output.format=e(s.output,"format",a.output.format,"output.format"),a.output.directory=e(s.output,"directory",a.output.directory,"output.directory"),a.output.combinedReport=i(s.output,"combined_report",a.output.combinedReport,"output.combined_report")):u.push("output must be a mapping")),s.quality_gate!==void 0)if(!F(s.quality_gate))u.push("quality_gate must be a mapping");else{let l=s.quality_gate;if(a.qualityGate.enforced=i(l,"enforced",a.qualityGate.enforced,"quality_gate.enforced"),l.thresholds!==void 0)if(!F(l.thresholds))u.push("quality_gate.thresholds must be a mapping");else{for(let t of["coverage","quality"]){let o=l.thresholds[t];o!==void 0&&(typeof o!="number"||!Number.isFinite(o)||o<0||o>100?u.push(`quality_gate.thresholds.${t} must be a finite number between 0 and 100`):a.qualityGate.thresholds[t]=o)}if(l.thresholds.security!==void 0){let t=l.thresholds.security;typeof t!="string"||!["none","low","medium","high"].includes(t)?u.push("quality_gate.thresholds.security must be none, low, medium or high"):a.qualityGate.thresholds.security=t}}}if(s.phases!==void 0)if(a.phases=[],!Array.isArray(s.phases))u.push("phases must be a sequence");else for(let[l,t]of s.phases.entries()){if(!F(t)){u.push(`Phase ${l+1} must be a mapping`);continue}t.name===void 0&&u.push(`Phase ${l+1} must have a name`);let o=e(t,"name","",`Phase ${l+1} name`),g=["test","coverage","security","quality-gate","code-intelligence","custom"];if(!g.includes(t.type)){u.push(`Phase "${o}" has invalid type "${t.type}". Valid: ${g.join(", ")}`);continue}let p=300;t.timeout!==void 0&&(typeof t.timeout!="number"||!Number.isFinite(t.timeout)||t.timeout<=0?u.push(`Phase "${o}" timeout must be a positive finite number`):p=t.timeout),t.config!==void 0&&!F(t.config)&&u.push(`Phase "${o}" config must be a mapping`),a.phases.push({name:o,type:t.type,timeout:p,enabled:i(t,"enabled",!0,`Phase "${o}" enabled`),continueOnFailure:i(t,"continue_on_failure",!1,`Phase "${o}" continue_on_failure`),config:F(t.config)?{...t.config}:{}})}a.phases.length===0&&u.push("Config must have at least one phase");let c=h.resolve(r?h.dirname(r):process.cwd());function m(l){let t=l,o=[];for(;!R.existsSync(t);){let g=h.dirname(t);if(g===t)break;o.unshift(h.basename(t)),t=g}return h.resolve(R.realpathSync(t),...o)}function b(l,t){if(typeof l!="string"||!l.trim()||l.includes("\0")){u.push(`${t} must be a non-empty relative path`);return}let o=h.resolve(c,l),g=h.relative(c,o);if(h.isAbsolute(l)||h.win32.isAbsolute(l)||g===".."||g.startsWith(`..${h.sep}`)||h.isAbsolute(g)){u.push(`${t} must stay inside the project and use a relative path`);return}try{let p=h.relative(m(c),m(o));if(p===".."||p.startsWith(`..${h.sep}`)||h.isAbsolute(p)){u.push(`${t} must stay inside the project (symlink escapes are not allowed)`);return}}catch(p){u.push(`${t} cannot be resolved safely: ${p}`);return}return r?o:l}a.output.directory=b(a.output.directory,"output.directory")??a.output.directory;for(let l of a.phases)if(l.config.target!==void 0){let t=b(l.config.target,`Phase "${l.name}" config.target`);t!==void 0&&(l.config.target=t)}return u.length>0?{success:!1,config:a,errors:u}:{success:!0,config:a,errors:[],configPath:r}}function M(){return{...E,phases:E.phases.map(n=>({...n,config:{...n.config}})),output:{...E.output},qualityGate:{...E.qualityGate,thresholds:{...E.qualityGate.thresholds}}}}async function oe(n,r,s,u,a){let e=Date.now(),i=[];if(!n.enabled)return{phase:n.name,type:n.type,status:"skipped",duration:0,exitCode:0,summary:"Phase disabled",artifacts:[]};try{let c={},m="passed",b="";switch(n.type){case"test":{let t=await r.kernel.getDomainAPIAsync("test-generation");if(!t)return D(n,e,"failed",1,"Test generation domain not available",i);let o=n.config.target||".",{walkSourceFiles:g}=await import("./file-discovery-R73BYEXB.js"),p=w.resolve(o),q=g(p,{includeTests:!1}),$=await t.generateTests({sourceFiles:q,testType:n.config.type||"unit",framework:n.config.framework||"vitest",coverageTarget:80});if($.success&&$.value){let C=$.value;c={testsGenerated:C.tests.length,coverageEstimate:C.coverageEstimate},b=`Generated ${C.tests.length} tests (${C.coverageEstimate==null?"coverage unmeasured":`est. ${C.coverageEstimate}% coverage`})`;let y=w.join(s,"test-generation.json");S.writeFileSync(y,k(C),"utf-8"),i.push(y)}else m="failed",b=$.error?.message||"Test generation failed";break}case"coverage":{let t=await r.kernel.getDomainAPIAsync("coverage-analysis");if(!t)return D(n,e,"failed",1,"Coverage analysis domain not available",i);let o=n.config.target||".",g=n.config.threshold||80,{walkSourceFiles:p}=await import("./file-discovery-R73BYEXB.js"),q=w.resolve(o),$=p(q,{includeTests:!1}),C=Y($),y=await t.analyze({coverageData:C,threshold:g,includeFileDetails:!0});if(y.success&&y.value){let I=y.value;c={...I.summary,meetsThreshold:I.meetsThreshold,threshold:g},m=I.meetsThreshold?"passed":"warning",b=`Line: ${I.summary.line}%, Branch: ${I.summary.branch}% \u2014 ${I.meetsThreshold?"meets":"below"} ${g}% threshold`;let x=w.join(s,"coverage.json");S.writeFileSync(x,k(y.value),"utf-8"),i.push(x)}else m="failed",b=y.error?.message||"Coverage analysis failed";break}case"security":{let t=await r.kernel.getDomainAPIAsync("security-compliance");if(!t)return D(n,e,"failed",1,"Security domain not available",i);let o=n.config.target||".",{walkSourceFiles:g}=await import("./file-discovery-R73BYEXB.js"),p=w.resolve(o),q=g(p,{includeTests:!0}),$=await t.runSASTScan(q);if($.success&&$.value){let C=$.value,y=C.vulnerabilities||[],I=y.filter(f=>f.severity==="high"||f.severity==="critical").length;c={vulnerabilities:y.length,high:I},m=I>0?"failed":y.length>0?"warning":"passed",b=y.length===0?"No vulnerabilities found":`${y.length} vulnerabilities (${I} high/critical)`;let{toSARIF:x}=await import("./ci-output-BMJABAEX.js"),G=w.join(s,"security.sarif");S.writeFileSync(G,x({vulnerabilities:y,target:o,scanType:"SAST"}),"utf-8"),i.push(G);let A=w.join(s,"security.json");S.writeFileSync(A,k(C),"utf-8"),i.push(A)}else m="failed",b=$.error?.message||"Security scan failed";break}case"quality-gate":{try{let o=await N(r.kernel.memory),g=Q(o,{coverage:a});c={...g,metrics:o,evidenceStatus:"measured"},m=g.passed?"passed":"failed",b=`Quality gate: ${g.passed?"PASSED":"FAILED"} (${g.checks.filter(p=>p.passed).length}/${g.checks.length} measured checks passed)`}catch(o){m="failed",b=`Quality gate: ${o instanceof Error?o.message:String(o)}`,c={passed:!1,evidenceStatus:"unavailable",error:b,checks:[]}}let t=w.join(s,`quality-gate-${u+1}.json`);S.writeFileSync(t,k(c),"utf-8"),i.push(t);break}case"code-intelligence":{let t=await r.kernel.getDomainAPIAsync("code-intelligence");if(!t)return D(n,e,"failed",1,"Code intelligence domain not available",i);let o=n.config.target||".",{walkSourceFiles:g}=await import("./file-discovery-R73BYEXB.js"),p=w.resolve(o),q=g(p,{includeTests:!1}),$=await t.index({paths:q,incremental:!0});if($.success&&$.value){let C=$.value;c=C,b=`Indexed ${C.filesIndexed} files, ${C.nodesCreated} nodes`;let y=w.join(s,"code-intelligence.json");S.writeFileSync(y,k(C),"utf-8"),i.push(y)}else m="warning",b=$.error?.message||"Code intelligence indexing incomplete";break}default:b=`Custom phase "${n.name}" \u2014 no built-in handler`,m="warning"}let l=Date.now()-e;return{phase:n.name,type:n.type,status:m,duration:l,exitCode:m==="failed"?1:0,summary:b,artifacts:i,details:c}}catch(c){let m=Date.now()-e;return{phase:n.name,type:n.type,status:"failed",duration:m,exitCode:1,summary:`Error: ${c instanceof Error?c.message:String(c)}`,artifacts:i}}}function D(n,r,s,u,a,e){return{phase:n.name,type:n.type,status:s,duration:Date.now()-r,exitCode:u,summary:a,artifacts:e}}function z(n){let r=`# AQE CI/CD Report
4
-
5
- `;r+=`**Status:** ${n.overallStatus==="passed"?"PASSED":n.overallStatus==="warning"?"WARNING":"FAILED"}
6
- `,r+=`**Duration:** ${(n.duration/1e3).toFixed(1)}s
7
- `,r+=`**Quality Gate:** ${X(n)}
8
-
9
- `,r+=`## Phases
10
-
11
- `,r+=`| Phase | Type | Status | Duration | Summary |
12
- `,r+=`|-------|------|--------|----------|---------|
13
- `;for(let s of n.phases){let u=s.status==="passed"?"PASS":s.status==="failed"?"FAIL":s.status==="warning"?"WARN":"SKIP";r+=`| ${s.phase} | ${s.type} | ${u} | ${(s.duration/1e3).toFixed(1)}s | ${s.summary} |
14
- `}r+=`
15
- ## Artifacts
16
-
17
- `;for(let s of n.phases)if(s.artifacts.length>0){r+=`### ${s.phase}
18
- `;for(let u of s.artifacts)r+=`- \`${w.basename(u)}\`
19
- `;r+=`
20
- `}return r}function X(n){return`${n.qualityGateStatus==="not-run"?"Not run":n.qualityGatePassed?"Passed":"Failed"} (${n.qualityGateEnforced?"enforced":"advisory"})`}function ge(n,r,s){let u=new se("ci").description("CI/CD pipeline orchestration");return u.command("run").description("Execute CI pipeline from .aqe-ci.yml").option("-c, --config <path>","Path to .aqe-ci.yml config file").option("--phase <phases>","Run only specific phases (comma-separated)").option("--no-quality-gate","Skip quality gate enforcement").option("-F, --format <format>","Output format (text|json|markdown)","text").option("-o, --output <path>","Write combined report to file").action(async a=>{if(await s())try{let e,i=null;if(a.config){let f=L(w.resolve(a.config));if(!f.success){console.error(d.red(`
21
- Config errors:`));for(let v of f.errors)console.error(d.red(` - ${v}`));await r(1);return}e=f.config,i=a.config}else if(i=T(),i){let f=L(i);if(!f.success){console.error(d.red(`
22
- Config errors:`));for(let v of f.errors)console.error(d.red(` - ${v}`));await r(1);return}e=f.config}else e=M(),i="(defaults)";let c;if(a.phase!==void 0){let f=a.phase.split(",").map(P=>P.trim().toLowerCase()),v=f.filter(P=>!P||!e.phases.some(_=>P===_.name.toLowerCase()||P===_.type));v.length>0&&(c=`Unknown or empty CI phase selector: ${v.map(P=>P||"(empty)").join(", ")}. Available phases: ${e.phases.map(P=>`${P.name} (${P.type})`).join(", ")}`),e.phases=e.phases.filter(P=>f.includes(P.name.toLowerCase())||f.includes(P.type))}a.qualityGate===!1&&(e.qualityGate.enforced=!1);let m=a.format,b=new Date;m==="text"&&(console.log(d.blue(`
23
- AQE CI Pipeline
24
- `)),console.log(d.gray(` Config: ${i}`)),console.log(d.gray(` Phases: ${e.phases.length}`)),console.log(d.gray(` Quality Gate: ${e.qualityGate.enforced?"enforced":"advisory"}
25
- `)));let l=w.resolve(e.output.directory);S.mkdirSync(l,{recursive:!0});let t=w.join(l,"quality-gate.json");S.writeFileSync(t,k({passed:!1,status:"not-run",evidenceStatus:"not-run",enforced:e.qualityGate.enforced,phases:[]}),"utf-8"),c&&console.error(d.red(c));let o=[];for(let f of c?[]:e.phases){if(m==="text"){let P=` [${o.length+1}/${e.phases.length}] ${f.name}...`;process.stdout.write(d.cyan(P))}let v=await oe(f,n,l,o.length,e.qualityGate.thresholds.coverage);if(o.push(v),m==="text"){let P=v.status==="passed"?d.green:v.status==="failed"?d.red:v.status==="warning"?d.yellow:d.gray,_=v.status.toUpperCase(),B=`${(v.duration/1e3).toFixed(1)}s`;process.stdout.write(`\r [${o.length}/${e.phases.length}] ${f.name} ${P(_)} (${B})
26
- `),v.summary&&console.log(d.gray(` ${v.summary}`))}if(v.status==="failed"&&(v.type!=="quality-gate"||e.qualityGate.enforced)&&!f.continueOnFailure){m==="text"&&console.log(d.red(`
27
- Pipeline stopped: "${f.name}" failed (continue_on_failure: false)
28
- `));break}}let g=c!==void 0||o.some(f=>f.status==="failed"&&f.type!=="quality-gate"),p=o.some(f=>f.status==="warning"||f.type==="quality-gate"&&f.status==="failed"&&!e.qualityGate.enforced),q=o.filter(f=>f.type==="quality-gate"),$=e.phases.filter(f=>f.type==="quality-gate").length,C=q.length>0&&q.length===$&&q.every(f=>f.status==="passed"),y=C?"passed":q.some(f=>f.status==="failed")?"failed":"not-run",I=g||e.qualityGate.enforced&&!C?"failed":p?"warning":"passed",x=new Date,G=x.getTime()-b.getTime(),A={config:i||"(defaults)",startedAt:b,completedAt:x,duration:G,phases:o,qualityGatePassed:C,qualityGateStatus:y,qualityGateEnforced:e.qualityGate.enforced,overallStatus:I,exitCode:I==="failed"?1:0,...c?{configurationError:c}:{}};if(S.writeFileSync(t,k({...q.length===1?q[0].details:{},passed:C,status:y,enforced:e.qualityGate.enforced,...y==="not-run"?{evidenceStatus:"not-run"}:{},phases:q}),"utf-8"),e.output.combinedReport){let f=w.join(l,"ci-report.md");S.writeFileSync(f,z(A),"utf-8");let v=w.join(l,"ci-report.json");S.writeFileSync(v,k(A),"utf-8")}if(m==="json")O(k(A),a.output);else if(m==="markdown")O(z(A),a.output);else{console.log("");let f=I==="passed"?d.green:I==="failed"?d.red:d.yellow;console.log(` ${f(`Pipeline: ${I.toUpperCase()}`)} (${(G/1e3).toFixed(1)}s)`),console.log(` Quality Gate: ${X(A)}`),console.log(d.gray(` Artifacts: ${l}/`)),console.log("")}await r(A.exitCode)}catch(e){console.error(d.red(`
29
- CI pipeline failed:`),e),await r(1)}}),u.command("init").description("Create a .aqe-ci.yml config file").option("--force","Overwrite existing config").action(async a=>{let e=T();if(e&&!a.force){console.log(d.yellow(`
30
- Config already exists: ${e}`)),console.log(d.gray(` Use --force to overwrite
31
- `)),await r(0);return}let i=`# AQE CI/CD Pipeline Configuration
32
- # Documentation: https://github.com/proffesor-for-testing/agentic-qe
33
-
34
- version: '1'
35
- name: ${w.basename(process.cwd())}
36
-
37
- phases:
38
- - name: Test Generation
39
- type: test
40
- config:
41
- target: .
42
- framework: vitest
43
- type: unit
44
- timeout: 300
45
-
46
- - name: Coverage Analysis
47
- type: coverage
48
- continue_on_failure: true
49
- config:
50
- target: .
51
- threshold: 80
52
- timeout: 300
53
-
54
- - name: Security Scan
55
- type: security
56
- continue_on_failure: true
57
- config:
58
- sast: true
59
- timeout: 300
60
-
61
- - name: Quality Gate
62
- type: quality-gate
63
- timeout: 60
64
-
65
- output:
66
- format: json
67
- directory: .aqe-ci-output
68
- combined_report: true
69
-
70
- quality_gate:
71
- enforced: true
72
- thresholds:
73
- coverage: 80
74
- security: medium
75
- quality: 70
76
- `,c=w.join(process.cwd(),".aqe-ci.yml");S.writeFileSync(c,i,"utf-8"),console.log(d.green(`
77
- Created: ${c}`)),console.log(d.gray(" Edit the file to customize your CI pipeline")),console.log(d.gray(` Run: aqe ci run
78
- `)),await r(0)}),u.command("validate").description("Validate .aqe-ci.yml config").option("-c, --config <path>","Path to config file").action(async a=>{let e=a.config?w.resolve(a.config):T();if(!e){console.log(d.red(`
79
- No .aqe-ci.yml found`)),console.log(d.gray(` Run: aqe ci init
80
- `)),await r(1);return}let i=L(e);if(i.success){console.log(d.green(`
81
- Config valid: ${e}`)),console.log(d.gray(` Phases: ${i.config.phases.length}`));for(let c of i.config.phases){let m=c.enabled?d.green("*"):d.gray("o");console.log(` ${m} ${c.name} (${c.type})`)}console.log(d.gray(` Quality Gate: ${i.config.qualityGate.enforced?"enforced":"advisory"}`)),console.log(""),await r(0)}else{console.log(d.red(`
82
- Config invalid: ${e}`));for(let c of i.errors)console.log(d.red(` - ${c}`));console.log(""),await r(1)}}),u}export{ge as createCICommand};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{c as a,d as b,e as c}from"./chunk-3MSBVOYW.js";import"./chunk-R47LNH5W.js";import"./chunk-ZKXZTIVF.js";import"./chunk-JL3TI43V.js";import"./chunk-5H7MR6HP.js";c();export{a as VibiumClientImpl,b as VibiumClientProvider};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h,k as i,l as j,m as k,n as l}from"./chunk-AOKSLWON.js";import"./chunk-73MTUM6F.js";import"./chunk-HFSBONCS.js";import"./chunk-HEKCN5XQ.js";import"./chunk-N6CRIUTO.js";import"./chunk-76PRW2KY.js";import"./chunk-XZ5Z56OP.js";import"./chunk-RWZ4F44Y.js";import"./chunk-MVTUFPM2.js";import"./chunk-2MU4WCMQ.js";import"./chunk-OOK6GPJR.js";import"./chunk-GAXTPQCZ.js";import"./chunk-JFQDWAU3.js";import"./chunk-3BDDOFYW.js";import"./chunk-DFJGXXCL.js";import"./chunk-VAXQUD5G.js";import"./chunk-GLKLEHK3.js";import"./chunk-3ZIVBTX6.js";import"./chunk-PMXWDTDK.js";import"./chunk-ZURYZEHX.js";import"./chunk-MBV57LKC.js";import"./chunk-LJRZAALA.js";import"./chunk-AHVN3UQZ.js";import"./chunk-PB2WSCBW.js";import"./chunk-I43QRLLB.js";import"./chunk-XKIFNKHV.js";import"./chunk-RI4JPBZD.js";import"./chunk-DEJM2P5K.js";import"./chunk-WYO5VN2L.js";import"./chunk-LPSE6DOQ.js";import"./chunk-P7GM3EE7.js";import"./chunk-TB22Y3WW.js";import"./chunk-CQ3WSTJ2.js";import"./chunk-V3NZ23X6.js";import"./chunk-SJB4KMZS.js";import"./chunk-ZP6ANUP7.js";import"./chunk-C5EN5WB6.js";import"./chunk-B7GJXQD2.js";import"./chunk-2LL35V3A.js";import"./chunk-CFXFGQEN.js";import"./chunk-BPGFCUDO.js";import"./chunk-EWUFVWRT.js";import"./chunk-YUWUFYHK.js";import"./chunk-7INP6HZH.js";import"./chunk-BND6M2JX.js";import"./chunk-OHH6BUZK.js";import"./chunk-BY3IL56R.js";import"./chunk-LY53L6NH.js";import"./chunk-DAYMT7TH.js";import"./chunk-EY5IUF7U.js";import"./chunk-3MSBVOYW.js";import"./chunk-R47LNH5W.js";import"./chunk-ZKXZTIVF.js";import"./chunk-A4OPQJ4A.js";import"./chunk-5SS2Z7JC.js";import"./chunk-LOLAEDZD.js";import"./chunk-M6SJALLA.js";import"./chunk-TVQPYP2Z.js";import"./chunk-6HO3XRXE.js";import"./chunk-GJVRQBLI.js";import"./chunk-SZWXUG36.js";import"./chunk-LGA6J4I4.js";import"./chunk-MGH4XIHH.js";import"./chunk-NBMQOP2R.js";import"./chunk-VMSO6DMF.js";import"./chunk-J3RNVHDH.js";import"./chunk-2534PXIV.js";import"./chunk-XHCCH7UC.js";import"./chunk-SIUUAKCE.js";import"./chunk-54ITMOFM.js";import"./chunk-PCWZCXBD.js";import"./chunk-YZ2AGC7O.js";import"./chunk-6TMUZGM2.js";import"./chunk-DF4Y3HPO.js";import"./chunk-FDK2GF4G.js";import"./chunk-BZWZTGMF.js";import"./chunk-UK5HY6LC.js";import"./chunk-4GLR2S2M.js";import"./chunk-RG67RZIX.js";import"./chunk-W3PPYNHF.js";import"./chunk-SCL2OYN7.js";import"./chunk-DBIK4OFX.js";import"./chunk-3C2BFLYC.js";import"./chunk-T3BMCEQR.js";import"./chunk-YQ6BK7QC.js";import"./chunk-EGHK6NMH.js";import"./chunk-SOSJFEFB.js";import"./chunk-IKWAPHJA.js";import"./chunk-ASKPTGUU.js";import"./chunk-WEDVLKRB.js";import"./chunk-ISASRHZP.js";import"./chunk-PJAXWCFC.js";import"./chunk-2ICC4H6K.js";import"./chunk-BY5PLEPZ.js";import"./chunk-FRBCX46J.js";import"./chunk-S5D3HCGN.js";import"./chunk-6HTO4BLV.js";import"./chunk-HCDTLV5J.js";import"./chunk-RJ5CZ7B6.js";import"./chunk-W6TJXK5Y.js";import"./chunk-NIJMLEAX.js";import"./chunk-OG4KHX7S.js";import"./chunk-RB2SL5GD.js";import"./chunk-U2E5F3VZ.js";import"./chunk-DVE5SM5G.js";import"./chunk-33IUCP34.js";import"./chunk-PEA4DVXW.js";import"./chunk-D7RVZ5C2.js";import"./chunk-54XTJBHV.js";import"./chunk-WW6WUMS7.js";import"./chunk-5XXLWJU7.js";import"./chunk-LXYTC62V.js";import"./chunk-Z56QTRRB.js";import"./chunk-JL3TI43V.js";import"./chunk-K2VUYRMG.js";import"./chunk-2DRMTRBM.js";import"./chunk-O7TMY4GS.js";import"./chunk-5B5D5KCV.js";import"./chunk-WI5AEB7Q.js";import"./chunk-WO4NSPLX.js";import"./chunk-X5S5UEM6.js";import"./chunk-5H7MR6HP.js";export{c as adoptExternalFleet,e as assignAgentLevel,k as disposeFleet,f as getAgentLevel,g as getAllAgentLevels,a as getFleetState,d as getFleetTopology,l as handleAQEHealth,j as handleFleetHealth,h as handleFleetInit,i as handleFleetStatus,b as isFleetInitialized};
@@ -1,27 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{a as V}from"./chunk-ZF5JTQEE.js";import{a as u,b as j,c as F,d as x,e as N,f as O,g as L,h as D,i as B,j as M}from"./chunk-35A22AUL.js";import{b as I}from"./chunk-UORI2CZ4.js";import{d as P,e as W,h as G}from"./chunk-HEDLZWPM.js";import"./chunk-5H7MR6HP.js";import{Command as q}from"commander";import e from"chalk";var R={low:{minRisk:.7,maxGaps:10,description:"Only critical gaps with high risk scores"},medium:{minRisk:.5,maxGaps:20,description:"Moderate gaps including medium risk items"},high:{minRisk:.3,maxGaps:50,description:"All gaps including low risk items"}},$=class extends M{constructor(t={}){super(t)}getTitle(){return"Coverage Analysis Wizard"}getSubtitle(){return"Analyze code coverage with O(log n) gap detection"}getConfirmationPrompt(){return"Proceed with coverage analysis?"}isNonInteractive(){return this.options.nonInteractive??!1}getCommands(){return[new D({id:"target",stepNumber:"1/7",title:"Target Directory",description:"Enter the directory or file to analyze for coverage",examples:"src/, ./lib, coverage/lcov.info",defaultValue:this.options.defaultTarget||".",suggestionsProvider:j.getCoverageTargets,validatePath:!0}),new x({id:"sensitivity",stepNumber:"2/7",title:"Gap Detection Sensitivity",description:"Select how sensitive the gap detection should be",options:[{key:"1",value:"low",label:"low",description:R.low.description},{key:"2",value:"medium",label:"medium",description:R.medium.description},{key:"3",value:"high",label:"high",description:R.high.description}],defaultValue:this.options.defaultSensitivity||"medium",validValues:["low","medium","high"]}),new x({id:"format",stepNumber:"3/7",title:"Report Format",description:"Select the output format for the coverage report",options:[{key:"1",value:"json",label:"json",description:"JSON - Machine-readable, good for CI/CD pipelines"},{key:"2",value:"html",label:"html",description:"HTML - Interactive, visual report with charts"},{key:"3",value:"markdown",label:"markdown",description:"Markdown - Documentation-friendly format"},{key:"4",value:"text",label:"text",description:"Text - Simple console output"}],defaultValue:this.options.defaultFormat||"json",validValues:["json","html","markdown","text"]}),new N({id:"priorityFocus",stepNumber:"4/7",title:"Priority Focus Areas",description:"Select coverage metrics to prioritize (comma-separated or numbers)",instructions:"Example: 1,2 or functions,branches",options:[{key:"1",value:"functions",label:"functions",description:"Functions - Focus on function coverage"},{key:"2",value:"branches",label:"branches",description:"Branches - Focus on branch/decision coverage"},{key:"3",value:"lines",label:"lines",description:"Lines - Focus on line coverage"},{key:"4",value:"statements",label:"statements",description:"Statements - Focus on statement coverage"}],defaultValue:this.options.defaultPriorityFocus||["functions","branches"],validValues:["functions","branches","lines","statements"]}),new O({id:"riskScoring",stepNumber:"5/7",title:"Enable risk scoring",description:"Enable risk scoring to prioritize coverage gaps by potential impact",additionalInfo:"Risk scores consider code complexity, change frequency, and criticality",defaultValue:this.options.defaultRiskScoring??!0}),new L({id:"threshold",stepNumber:"6/7",title:"Coverage threshold %",description:"Set the minimum coverage percentage required. Files below this threshold will be flagged.",presets:[{key:"1",value:60,label:"60% - Legacy/maintenance projects"},{key:"2",value:70,label:"70% - Standard projects"},{key:"3",value:80,label:"80% - Quality-focused projects"},{key:"4",value:90,label:"90% - Critical/high-reliability projects"}],defaultValue:this.options.defaultThreshold||80,min:0,max:100}),new B({id:"patterns",stepNumber:"7/7",title:"File Patterns (Optional)",description:"Specify patterns to include or exclude from analysis. Leave blank to analyze all files."})]}buildResult(t){let h=t.patterns;return{target:t.target,sensitivity:t.sensitivity,format:t.format,priorityFocus:t.priorityFocus,riskScoring:t.riskScoring,threshold:t.threshold,includePatterns:h?.include,excludePatterns:h?.exclude,cancelled:!1}}printSummary(t){u.printSummaryHeader();let h=F.relativePath(t.target,this.cwd);u.printSummaryField("Target",h),u.printSummaryField("Sensitivity",t.sensitivity),u.printSummaryField("Report Format",t.format),u.printSummaryField("Priority Focus",t.priorityFocus.join(", ")),u.printSummaryField("Risk Scoring",F.enabledDisabled(t.riskScoring)),u.printSummaryField("Threshold",F.percentage(t.threshold)),t.includePatterns&&t.includePatterns.length>0&&u.printSummaryField("Include",t.includePatterns.join(", ")),t.excludePatterns&&t.excludePatterns.length>0&&u.printSummaryField("Exclude",t.excludePatterns.join(", "));let b=R[t.sensitivity];u.printDerivedSettings({"Min risk score":String(b.minRisk),"Max gaps shown":String(b.maxGaps)})}getDefaults(){return{target:this.options.defaultTarget||this.cwd,sensitivity:this.options.defaultSensitivity||"medium",format:this.options.defaultFormat||"json",priorityFocus:this.options.defaultPriorityFocus||["functions","branches"],riskScoring:this.options.defaultRiskScoring??!0,threshold:this.options.defaultThreshold||80,cancelled:!1}}getCancelled(){return{target:".",sensitivity:"medium",format:"json",priorityFocus:["functions","branches"],riskScoring:!0,threshold:80,cancelled:!0}}};async function E(p={}){return new $(p).run()}function z(p){return p>=80?e.green:p>=50?e.yellow:e.red}function te(p,t,h){let b=new q("coverage").description("Coverage analysis shortcut").argument("[target]","Target file or directory",".").option("--risk","Include risk scoring").option("--gaps","Detect coverage gaps").option("--threshold <percent>","Coverage threshold percentage","80").option("--sensitivity <level>","Gap detection sensitivity (low|medium|high)","medium").option("--wizard","Run interactive coverage analysis wizard").option("--ghost","Include ghost intent coverage analysis (detect untested behavioral intents)").option("-F, --format <format>","Output format (text|json|markdown)","text").option("-o, --output <path>","Write output to file").action(async(y,i)=>{let g=y,w=i.risk,k=i.gaps,d=parseInt(i.threshold,10);if(i.wizard)try{let s=await E({defaultTarget:y!=="."?y:void 0,defaultThreshold:i.threshold!=="80"?parseInt(i.threshold,10):void 0,defaultRiskScoring:i.risk,defaultSensitivity:i.sensitivity!=="medium"?i.sensitivity:void 0});s.cancelled&&(console.log(e.yellow(`
3
- Coverage analysis cancelled.
4
- `)),await t(0)),g=s.target,w=s.riskScoring,k=!0,d=s.threshold,console.log(e.green(`
5
- Starting coverage analysis...
6
- `))}catch(s){console.error(e.red(`
7
- Wizard error:`),s),await t(1)}if(await h())try{console.log(e.blue(`
8
- Analyzing coverage for ${g}...
9
- `));let s=await p.kernel.getDomainAPIAsync("coverage-analysis");if(!s){console.log(e.red("Coverage analysis domain not available"));return}let v=(await import("path")).resolve(g),S=I(v,{includeTests:!1});if(S.length===0){console.log(e.yellow("No source files found"));return}console.log(e.gray(` Analyzing ${S.length} files...
10
- `));let c=V(S);c.instrumented?console.log(e.green(` Using instrumented coverage data (V8/istanbul)
11
- `)):(console.log(e.yellow(" No instrumented coverage found \u2014 using heuristic estimation")),console.log(e.gray(` Run tests with coverage first: npm test -- --coverage
12
- `)));let m=await s.analyze({coverageData:c,threshold:d,includeFileDetails:!0}),f=i.format,a;if(m.success&&m.value){let o=m.value;if(a={summary:o.summary,meetsThreshold:o.meetsThreshold,threshold:d,recommendations:o.recommendations},f==="text"){let n=r=>typeof r=="number"?r.toFixed(1):r;if(console.log(e.cyan(" Coverage Summary:")),console.log(` Lines: ${z(o.summary.line)(n(o.summary.line)+"%")}`),console.log(` Branches: ${z(o.summary.branch)(n(o.summary.branch)+"%")}`),console.log(` Functions: ${z(o.summary.function)(n(o.summary.function)+"%")}`),console.log(` Statements: ${z(o.summary.statement)(n(o.summary.statement)+"%")}`),console.log(`
13
- Threshold: ${o.meetsThreshold?e.green(`Met (${d}%)`):e.red(`Not met (${d}%)`)}`),o.recommendations.length>0){console.log(e.cyan(`
14
- Recommendations:`));for(let r of o.recommendations)console.log(e.gray(` - ${r}`))}}}if(k){console.log(e.cyan(`
15
- Coverage Gaps:`));let o=await s.detectGaps({coverageData:c,minCoverage:d,prioritize:w?"risk":"size"});if(o.success&&o.value){let n=o.value;a&&(a.gaps=n.gaps.map(r=>({file:r.file.replace(process.cwd()+"/",""),lines:r.lines,riskScore:r.riskScore,severity:r.severity}))),console.log(e.gray(` Total uncovered lines: ${n.totalUncoveredLines}`)),console.log(e.gray(` Estimated effort: ${n.estimatedEffort} hours
16
- `));for(let r of n.gaps.slice(0,8)){let l=r.severity==="high"?e.red:r.severity==="medium"?e.yellow:e.gray,C=r.file.replace(process.cwd()+"/","");console.log(` ${l(`[${r.severity}]`)} ${e.white(C)}`),console.log(e.gray(` ${r.lines.length} uncovered lines, Risk: ${(r.riskScore*100).toFixed(0)}%`))}n.gaps.length>8&&console.log(e.gray(` ... and ${n.gaps.length-8} more gaps`))}}if(i.ghost||k){console.log(e.cyan(`
17
- Ghost Intent Coverage (ADR-059):`));try{let o=c.files.map(r=>r.path),n=await s.analyzeGhostCoverage(o,g);if(n.success&&n.value){let r=n.value;console.log(e.gray(` Phantom gaps detected: ${r.gaps.length}`)),console.log(e.gray(` Ghost score: ${(r.totalGhostScore*100).toFixed(1)}%`)),console.log(e.gray(` Coverage completeness: ${(r.coverageCompleteness*100).toFixed(1)}%
18
- `));for(let l of r.gaps.slice(0,8)){let C=l.severity==="critical"?e.red:l.severity==="high"?e.red:l.severity==="medium"?e.yellow:e.gray;console.log(` ${C(`[${l.severity}]`)} ${e.white(l.category)}`),console.log(e.gray(` ${l.description}`))}r.gaps.length>8&&console.log(e.gray(` ... and ${r.gaps.length-8} more phantom gaps`))}else console.log(e.dim(" Ghost analysis not available (requires HNSW index)"))}catch{console.log(e.dim(" Ghost analysis skipped (analyzer not initialized)"))}}if(w){console.log(e.cyan(`
19
- Risk Analysis:`));let o=[...c.files].sort((n,r)=>n.lines.covered/n.lines.total-r.lines.covered/r.lines.total).slice(0,5);for(let n of o){let r=await s.calculateRisk({file:n.path,uncoveredLines:n.uncoveredLines});if(r.success&&r.value){let l=r.value,C=l.riskLevel==="high"?e.red:l.riskLevel==="medium"?e.yellow:e.green,A=n.path.replace(process.cwd()+"/","");console.log(` ${C(`[${l.riskLevel}]`)} ${e.white(A)}`),console.log(e.gray(` Risk: ${(l.overallRisk*100).toFixed(0)}%, Coverage: ${Math.round(n.lines.covered/n.lines.total*100)}%`))}}}if(a&&f==="json"?P(W(a),i.output):a&&f==="markdown"?P(G(a),i.output):f==="text"&&console.log(e.green(`
20
- Coverage analysis complete
21
- `)),a&&!a.meetsThreshold&&await t(1),a){let o=(a.summary.line+a.summary.branch+a.summary.function+a.summary.statement)/4;o<d+5&&o>=d&&await t(2)}await t(0)}catch(s){console.error(e.red(`
22
- Failed:`),s),await t(1)}});return b.command("gaps").description("Enumerate unhandled branches in source files").argument("<file>","Source file to analyze").option("--mechanical","Exhaustive mode: report all branches without filtering").option("--json","Output as JSON").option("--markdown","Output as markdown report").action(async(y,i)=>{try{let{readFileSync:g,existsSync:w}=await import("fs"),k=await import("path"),{enumerateBranches:d,formatBranchReport:s,formatBranchJSON:T}=await import("./branch-enumerator-PB7QWXDP.js"),v=k.resolve(y);w(v)||(console.error(e.red(`
23
- File not found: ${v}
24
- `)),await t(1));let S=g(v,"utf-8"),c=d(S,v);if(i.json)console.log(T(c));else if(i.markdown)console.log(s(c));else{if(console.log(`
25
- ${e.cyan("Branch Enumeration:")} ${e.white(y)}`),console.log(e.gray(`Found ${c.unhandledCount} unhandled branches (${c.duration}ms)
26
- `)),c.branches.length>0){console.log(e.dim("Line | Severity | Construct | Trigger")),console.log(e.dim("-----|----------|---------------------------|--------"));for(let m of c.branches){let f=m.severity==="high"?e.red:m.severity==="medium"?e.yellow:e.gray;console.log(`${String(m.line).padStart(4)} | ${f(m.severity.padEnd(8))} | ${m.construct.padEnd(25)} | ${m.triggerCondition}`)}}else console.log(e.green("No unhandled branches detected."));console.log("")}await t(0)}catch(g){console.error(e.red(`
27
- Branch enumeration failed:`),g),await t(1)}}),b}export{te as createCoverageCommand};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.4");process.exit(0)}
2
- import{a,b}from"./chunk-EWUFVWRT.js";import"./chunk-YUWUFYHK.js";import"./chunk-PEA4DVXW.js";import"./chunk-54XTJBHV.js";import"./chunk-5H7MR6HP.js";export{a as CrossDomainEventRouter,b as createCrossDomainRouter};