agentic-qe 3.15.3 → 3.15.5

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 (420) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +139 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/bridge/captured-experience-bridge.js +7 -9
  5. package/dist/cli/bundle.js +5 -5
  6. package/dist/cli/chunks/adapter-EGIPTX5H.js +2 -0
  7. package/dist/cli/chunks/{agent-booster-wasm-CYG3PKHH.js → agent-booster-wasm-CCTTGCQS.js} +2 -2
  8. package/dist/cli/chunks/{agent-handler-WTFYFZKL.js → agent-handler-DHYUF3NX.js} +2 -2
  9. package/dist/cli/chunks/{agent-memory-branch-G6WE3ZXU.js → agent-memory-branch-642W7CYX.js} +2 -2
  10. package/dist/cli/chunks/aqe-learning-engine-WP4GCBDT.js +2 -0
  11. package/dist/cli/chunks/{arena-S72QW44C.js → arena-MUCC7UUN.js} +4 -4
  12. package/dist/cli/chunks/{arena-ZFXQEVUQ.js → arena-NW2JVAFY.js} +2 -2
  13. package/dist/cli/chunks/{audit-KPYIEQJ3.js → audit-VKQTZJAA.js} +3 -3
  14. package/dist/cli/chunks/base-6ORFD62I.js +2 -0
  15. package/dist/cli/chunks/{better-sqlite3-L2M3TI5D.js → better-sqlite3-7ZUFVWLQ.js} +2 -2
  16. package/dist/cli/chunks/{brain-handler-FHKLQTB4.js → brain-handler-7LKAWSBI.js} +3 -3
  17. package/dist/cli/chunks/{branch-enumerator-3BSHOPOK.js → branch-enumerator-HUNXJKM4.js} +2 -2
  18. package/dist/cli/chunks/{browser-JUIJPL6Y.js → browser-ZSZEYUDP.js} +2 -2
  19. package/dist/cli/chunks/browser-workflow-PIXGERWP.js +2 -0
  20. package/dist/cli/chunks/{chunk-VHBZADYK.js → chunk-2KWI3MT3.js} +2 -2
  21. package/dist/cli/chunks/{chunk-35VDOH4Y.js → chunk-2WFTZSRT.js} +1 -1
  22. package/dist/cli/chunks/{chunk-UTALYUMW.js → chunk-2XYTS2WY.js} +2 -2
  23. package/dist/cli/chunks/{chunk-OTTTHNIT.js → chunk-35MDATQE.js} +1 -1
  24. package/dist/cli/chunks/{chunk-Z7UGEQ4G.js → chunk-3AYYGR6W.js} +1 -1
  25. package/dist/cli/chunks/{chunk-LPZAB3N2.js → chunk-3DTEQHFB.js} +3 -3
  26. package/dist/cli/chunks/{chunk-YHZGFWJE.js → chunk-3OAQPN2N.js} +2 -2
  27. package/dist/cli/chunks/{chunk-PUPEKA2J.js → chunk-3QD7U3FY.js} +2 -2
  28. package/dist/cli/chunks/{chunk-3Y4GX5FL.js → chunk-3SH23PS3.js} +2 -2
  29. package/dist/cli/chunks/{chunk-NT6FYFJA.js → chunk-3YASZPLO.js} +2 -2
  30. package/dist/cli/chunks/{chunk-QVNMTMDJ.js → chunk-3YNP33GB.js} +2 -2
  31. package/dist/cli/chunks/{chunk-AQTQ24SK.js → chunk-47GEI2LT.js} +3 -3
  32. package/dist/cli/chunks/{chunk-JJBTM4JO.js → chunk-4AZP7ZCW.js} +2 -2
  33. package/dist/cli/chunks/{chunk-6W6GZHQA.js → chunk-4PT5KNXL.js} +4 -4
  34. package/dist/cli/chunks/{chunk-EQGT4VLC.js → chunk-4UXPDV7E.js} +1 -1
  35. package/dist/cli/chunks/{chunk-SP2JO53K.js → chunk-4XSCZVON.js} +2 -2
  36. package/dist/cli/chunks/{chunk-DWG4TN6A.js → chunk-5BOZCMXZ.js} +1 -1
  37. package/dist/cli/chunks/{chunk-PBUWNMZ2.js → chunk-644DFAGS.js} +1 -1
  38. package/dist/cli/chunks/{chunk-6EQDA4EC.js → chunk-663ZFPUL.js} +2 -2
  39. package/dist/cli/chunks/{chunk-HU474NXP.js → chunk-6JFGB2JB.js} +1 -1
  40. package/dist/cli/chunks/{chunk-AS54N3H7.js → chunk-6LG5UEQE.js} +2 -2
  41. package/dist/cli/chunks/{chunk-3UUMGWHW.js → chunk-6UYN5PHA.js} +4 -4
  42. package/dist/cli/chunks/{chunk-RQUSJEON.js → chunk-6ZIDZ4TJ.js} +2 -2
  43. package/dist/cli/chunks/{chunk-P36IODAM.js → chunk-7BIYJRQJ.js} +2 -2
  44. package/dist/cli/chunks/{chunk-5LEUEWJY.js → chunk-7EZLOC4K.js} +2 -2
  45. package/dist/cli/chunks/{chunk-EBIMVSPH.js → chunk-7YB2KELI.js} +2 -2
  46. package/dist/cli/chunks/{chunk-YCGU2LI7.js → chunk-A2WOQO2N.js} +2 -2
  47. package/dist/cli/chunks/{chunk-HSR53REE.js → chunk-A337MD3C.js} +2 -2
  48. package/dist/cli/chunks/{chunk-ZJW4HRUA.js → chunk-A5J4XJS6.js} +1 -1
  49. package/dist/cli/chunks/{chunk-POTVF6BY.js → chunk-AQN5EDBM.js} +1 -1
  50. package/dist/cli/chunks/{chunk-X335K4SU.js → chunk-AUZXRFOX.js} +2 -2
  51. package/dist/cli/chunks/{chunk-WI7I6LMM.js → chunk-B2UHTA4Q.js} +1 -1
  52. package/dist/cli/chunks/{chunk-W7EHNX3Y.js → chunk-BBL6YXD3.js} +2 -2
  53. package/dist/cli/chunks/chunk-BJ5P4IV2.js +2 -0
  54. package/dist/cli/chunks/{chunk-RDTR43YN.js → chunk-BMWAWZAN.js} +2 -2
  55. package/dist/cli/chunks/chunk-BO4PKNYP.js +102 -0
  56. package/dist/cli/chunks/{chunk-KGS6H2HB.js → chunk-BY646JOM.js} +2 -2
  57. package/dist/cli/chunks/{chunk-PPA53NJB.js → chunk-BYXNHGQC.js} +2 -2
  58. package/dist/cli/chunks/{chunk-RRSZ27A7.js → chunk-BZFT4QDQ.js} +2 -2
  59. package/dist/cli/chunks/{chunk-M3ACHBC7.js → chunk-CFPR24YK.js} +2 -2
  60. package/dist/cli/chunks/{chunk-SRDECRTL.js → chunk-CQMHDAJS.js} +2 -2
  61. package/dist/cli/chunks/{chunk-WW4RJ6BH.js → chunk-CR2JUANW.js} +2 -2
  62. package/dist/cli/chunks/{chunk-QSVNVDA5.js → chunk-CXOXUBYU.js} +1 -1
  63. package/dist/cli/chunks/chunk-D3G2NN7F.js +741 -0
  64. package/dist/cli/chunks/{chunk-RGD2CG23.js → chunk-DEGWCUMY.js} +2 -2
  65. package/dist/cli/chunks/{chunk-AEL4XJGJ.js → chunk-DFPL5N3Q.js} +2 -2
  66. package/dist/cli/chunks/{chunk-FTUNC4EI.js → chunk-DL5JENWD.js} +3 -3
  67. package/dist/cli/chunks/{chunk-DH5NWHH2.js → chunk-DLY4YEN3.js} +2 -2
  68. package/dist/cli/chunks/{chunk-V5NYGDSX.js → chunk-DPV33C77.js} +2 -2
  69. package/dist/cli/chunks/{chunk-A5H7TF7C.js → chunk-DPYDUKVZ.js} +2 -2
  70. package/dist/cli/chunks/{chunk-4JVVVKAX.js → chunk-DTJODGCE.js} +2 -2
  71. package/dist/cli/chunks/{chunk-6AKJ73X3.js → chunk-DWZI3IVB.js} +2 -2
  72. package/dist/cli/chunks/{chunk-7UUSV2SK.js → chunk-DXVZBJE4.js} +1 -1
  73. package/dist/cli/chunks/{chunk-FPFGN2Z5.js → chunk-E4VIVMDL.js} +2 -2
  74. package/dist/cli/chunks/{chunk-GPZH6OPP.js → chunk-EAYQCBXL.js} +3 -3
  75. package/dist/cli/chunks/{chunk-7SWHW5AC.js → chunk-EOR3RECZ.js} +20 -20
  76. package/dist/cli/chunks/chunk-ERGWWI4Y.js +3 -0
  77. package/dist/cli/chunks/{chunk-XXW4KFBB.js → chunk-EUEHBERE.js} +1 -1
  78. package/dist/cli/chunks/{chunk-VUBLJBHQ.js → chunk-EVCFUYYK.js} +2 -2
  79. package/dist/cli/chunks/{chunk-YQ3ZW47V.js → chunk-FBEXG4HD.js} +2 -2
  80. package/dist/cli/chunks/{chunk-HV3ZVUHO.js → chunk-FE3AIZI6.js} +1 -1
  81. package/dist/cli/chunks/{chunk-TBVPNN65.js → chunk-FHUJCVT3.js} +2 -2
  82. package/dist/cli/chunks/{chunk-3ZTBV6M3.js → chunk-FNAYDITO.js} +1 -1
  83. package/dist/cli/chunks/{chunk-JVQK6NGI.js → chunk-FQKEZVN6.js} +2 -2
  84. package/dist/cli/chunks/{chunk-MUSYQF53.js → chunk-FWYJ6UDX.js} +2 -2
  85. package/dist/cli/chunks/{chunk-QUXX2DP7.js → chunk-GGDKOJVF.js} +2 -2
  86. package/dist/cli/chunks/{chunk-VRT736E3.js → chunk-GKPRECLL.js} +2 -2
  87. package/dist/cli/chunks/{chunk-3MNKYCLH.js → chunk-GRIPCYW5.js} +1 -1
  88. package/dist/cli/chunks/{chunk-DE3QNPTG.js → chunk-GTSOFCMQ.js} +1 -1
  89. package/dist/cli/chunks/{chunk-2MEWIXW4.js → chunk-HBYQYGXP.js} +2 -2
  90. package/dist/cli/chunks/{chunk-RWLOERKK.js → chunk-HGBJ2QQ4.js} +2 -2
  91. package/dist/cli/chunks/{chunk-4IYHYHTG.js → chunk-HIUNCO2W.js} +2 -2
  92. package/dist/cli/chunks/{chunk-WSUYEVSY.js → chunk-HLFDC4SF.js} +1 -1
  93. package/dist/cli/chunks/{chunk-OKNMZLGB.js → chunk-HPLMX62I.js} +2 -2
  94. package/dist/cli/chunks/{chunk-Z7JPWXW2.js → chunk-IHFUEPZH.js} +2 -2
  95. package/dist/cli/chunks/{chunk-2TBHPYOU.js → chunk-IJ2EXSMO.js} +2 -2
  96. package/dist/cli/chunks/{chunk-SKHP5WUP.js → chunk-IJOFZBXD.js} +2 -2
  97. package/dist/cli/chunks/{chunk-YW4GM36K.js → chunk-JANLATHN.js} +2 -2
  98. package/dist/cli/chunks/{chunk-BDKQSEEY.js → chunk-JCC7QEKZ.js} +1 -1
  99. package/dist/cli/chunks/{chunk-7PDC4SKR.js → chunk-JI77KJP7.js} +1 -1
  100. package/dist/cli/chunks/{chunk-LEB6O2IN.js → chunk-JNMUVBAJ.js} +2 -2
  101. package/dist/cli/chunks/{chunk-ZI6NJEBY.js → chunk-JYY7AYGA.js} +1 -1
  102. package/dist/cli/chunks/{chunk-ASUXS4N4.js → chunk-KHCALIFP.js} +2 -2
  103. package/dist/cli/chunks/{chunk-ED5HUPUR.js → chunk-KJ3KBP24.js} +2 -2
  104. package/dist/cli/chunks/{chunk-YTRGMILO.js → chunk-KZVJW2SD.js} +2 -2
  105. package/dist/cli/chunks/chunk-L336HFFE.js +2 -0
  106. package/dist/cli/chunks/{chunk-GJB3LPCS.js → chunk-L375O3CZ.js} +2 -2
  107. package/dist/cli/chunks/{chunk-WQZBKLAG.js → chunk-L6SVCNXK.js} +1 -1
  108. package/dist/cli/chunks/{chunk-YGKU2QRC.js → chunk-LNO5IWGH.js} +1 -1
  109. package/dist/cli/chunks/{chunk-APV5UWTU.js → chunk-LRASYSGV.js} +2 -2
  110. package/dist/cli/chunks/{chunk-HW4V7BVV.js → chunk-MB4VFAJC.js} +2 -2
  111. package/dist/cli/chunks/{chunk-366IBPZB.js → chunk-MNQ36MAF.js} +2 -2
  112. package/dist/cli/chunks/{chunk-7TW5UGDP.js → chunk-MQGEZA2A.js} +2 -2
  113. package/dist/cli/chunks/{chunk-CFXROOIU.js → chunk-MS3Z2CP5.js} +2 -2
  114. package/dist/cli/chunks/{chunk-4TM5K6EZ.js → chunk-N2TJNIHA.js} +2 -2
  115. package/dist/cli/chunks/{chunk-DLA3EHKJ.js → chunk-NF6AFIAX.js} +1 -1
  116. package/dist/cli/chunks/{chunk-2GJJGO5D.js → chunk-NLDFNAOS.js} +2 -2
  117. package/dist/cli/chunks/{chunk-UCSGZVJX.js → chunk-NMJVG22Z.js} +1 -1
  118. package/dist/cli/chunks/{chunk-WSND64RL.js → chunk-OGYWWZU7.js} +2 -2
  119. package/dist/cli/chunks/{chunk-FXTZXZCU.js → chunk-ONCH5AXU.js} +3 -3
  120. package/dist/cli/chunks/{chunk-M3ONCPSU.js → chunk-OQDC7GCM.js} +2 -2
  121. package/dist/cli/chunks/{chunk-P6EGRAQG.js → chunk-ORTBRO7F.js} +2 -2
  122. package/dist/cli/chunks/{chunk-D6PUDLJ4.js → chunk-OU4ZAWCC.js} +2 -2
  123. package/dist/cli/chunks/{chunk-AOZJ6UUZ.js → chunk-OW42F2TX.js} +2 -2
  124. package/dist/cli/chunks/{chunk-4N7YXTV3.js → chunk-PCCIZFD7.js} +1 -1
  125. package/dist/cli/chunks/{chunk-OT6SOPAL.js → chunk-PDPEMBFV.js} +2 -2
  126. package/dist/cli/chunks/{chunk-A3IQU2ND.js → chunk-PHAQWAEV.js} +2 -2
  127. package/dist/cli/chunks/{chunk-XV2TIODR.js → chunk-PHP4UJYP.js} +1 -1
  128. package/dist/cli/chunks/{chunk-POVP6O6K.js → chunk-PURHGLEC.js} +1 -1
  129. package/dist/cli/chunks/{chunk-5QUOM357.js → chunk-PVAE65B4.js} +1 -1
  130. package/dist/cli/chunks/{chunk-ZL2GYU7H.js → chunk-QPV3OKX2.js} +2 -2
  131. package/dist/cli/chunks/{chunk-B23ROYST.js → chunk-QXY3IRBW.js} +21 -21
  132. package/dist/cli/chunks/chunk-RCXMUEZN.js +3 -0
  133. package/dist/cli/chunks/{chunk-HVIFA73X.js → chunk-RMJ7PJOS.js} +2 -2
  134. package/dist/cli/chunks/{chunk-OGARNKLS.js → chunk-RUJLVJDE.js} +2 -2
  135. package/dist/cli/chunks/{chunk-UGNTLSBL.js → chunk-RUSLEOMC.js} +2 -2
  136. package/dist/cli/chunks/chunk-SAPIRK2G.js +3 -0
  137. package/dist/cli/chunks/{chunk-F5BREV2Q.js → chunk-SDWMLT7B.js} +5 -5
  138. package/dist/cli/chunks/{chunk-A6PII4R4.js → chunk-SEZLYRCS.js} +1 -1
  139. package/dist/cli/chunks/{chunk-RWQDRPN5.js → chunk-TDLKXLJC.js} +2 -2
  140. package/dist/cli/chunks/{chunk-YJH7UFA2.js → chunk-U4TV75AC.js} +2 -2
  141. package/dist/cli/chunks/{chunk-34Y4CIHD.js → chunk-U6OVPMQX.js} +2 -2
  142. package/dist/cli/chunks/{chunk-L6OSEWOS.js → chunk-UE22ODHN.js} +1 -1
  143. package/dist/cli/chunks/{chunk-IARE5VGI.js → chunk-UXZEVIFX.js} +1 -1
  144. package/dist/cli/chunks/{chunk-OMHISPPF.js → chunk-V7GNUVYI.js} +1 -1
  145. package/dist/cli/chunks/{chunk-HR7RL4PB.js → chunk-VCKDVOPD.js} +2 -2
  146. package/dist/cli/chunks/{chunk-UZDTRCVU.js → chunk-VH3EB6ZG.js} +2 -2
  147. package/dist/cli/chunks/{chunk-6V6XVGCL.js → chunk-VLOIEVER.js} +3 -3
  148. package/dist/cli/chunks/{chunk-XTGVGZ4J.js → chunk-VML4SG3X.js} +3 -3
  149. package/dist/cli/chunks/{chunk-6TYTBQPV.js → chunk-VRJPH3LG.js} +2 -2
  150. package/dist/cli/chunks/{chunk-5WOBFN2T.js → chunk-VYDNLQJN.js} +2 -2
  151. package/dist/cli/chunks/{chunk-U5AVZ3T2.js → chunk-W3ZGNNDV.js} +1 -1
  152. package/dist/cli/chunks/{chunk-YGEC3PSD.js → chunk-WC47GICZ.js} +2 -2
  153. package/dist/cli/chunks/{chunk-WLOHTLHO.js → chunk-WLIYWBQR.js} +2 -2
  154. package/dist/cli/chunks/{chunk-I5VJ3FBC.js → chunk-WN55MNZ2.js} +2 -2
  155. package/dist/cli/chunks/chunk-WOZIXXY5.js +7 -0
  156. package/dist/cli/chunks/{chunk-X33LID2T.js → chunk-WR64BKUE.js} +1 -1
  157. package/dist/cli/chunks/{chunk-VGN46ZT4.js → chunk-WT3JC4A6.js} +2 -2
  158. package/dist/cli/chunks/{chunk-VOKIUF7I.js → chunk-X52TMBHU.js} +1 -1
  159. package/dist/cli/chunks/{chunk-ZATQLTYL.js → chunk-XIE7OHML.js} +1 -1
  160. package/dist/cli/chunks/{chunk-BO43BGHX.js → chunk-XNEEYXR2.js} +2 -2
  161. package/dist/cli/chunks/{chunk-KCBCYF7M.js → chunk-XNHB6TLC.js} +2 -2
  162. package/dist/cli/chunks/{chunk-VX7CQUO7.js → chunk-XQRE2HWM.js} +2 -2
  163. package/dist/cli/chunks/{chunk-CNQUU6CF.js → chunk-Y2E3IJ53.js} +2 -2
  164. package/dist/cli/chunks/{chunk-2M75CW5Q.js → chunk-Y2WMPEUP.js} +2 -2
  165. package/dist/cli/chunks/{chunk-WTMLRMKW.js → chunk-Y7GPLOXB.js} +2 -2
  166. package/dist/cli/chunks/{chunk-O66D4NEJ.js → chunk-YINFES3E.js} +2 -2
  167. package/dist/cli/chunks/{chunk-CF3BPD2R.js → chunk-ZLBBX24Q.js} +163 -164
  168. package/dist/cli/chunks/{chunk-S7D4GD7H.js → chunk-ZT3GUYM5.js} +2 -2
  169. package/dist/cli/chunks/{chunk-D5V6C3XG.js → chunk-ZTC5FBL6.js} +3 -3
  170. package/dist/cli/chunks/ci-KP4GZKJ7.js +81 -0
  171. package/dist/cli/chunks/ci-config-XDDZOOEI.js +2 -0
  172. package/dist/cli/chunks/{ci-output-DPHTFIGX.js → ci-output-7ZUQI4U6.js} +2 -2
  173. package/dist/cli/chunks/{circuit-breaker-PQ65VU2M.js → circuit-breaker-ALXKCFAL.js} +2 -2
  174. package/dist/cli/chunks/{claude-flow-setup-GKHVO7AD.js → claude-flow-setup-RL7K2NI2.js} +2 -2
  175. package/dist/cli/chunks/client-C3KHVRM6.js +2 -0
  176. package/dist/cli/chunks/{cline-installer-HWMQZJ64.js → cline-installer-2Z2QQKC3.js} +2 -2
  177. package/dist/cli/chunks/{code-OTY7BF3D.js → code-QSZTDINQ.js} +4 -4
  178. package/dist/cli/chunks/{code-index-extractor-FG3TMHHR.js → code-index-extractor-5CGR5D3Y.js} +2 -2
  179. package/dist/cli/chunks/{codex-installer-63JARKKS.js → codex-installer-7JLSEDE5.js} +2 -2
  180. package/dist/cli/chunks/{completions-4ZHONFML.js → completions-U4NBSXEB.js} +2 -2
  181. package/dist/cli/chunks/{complexity-analyzer-FYHTJW5Y.js → complexity-analyzer-WYZD2YSY.js} +2 -2
  182. package/dist/cli/chunks/{continuedev-installer-ZAWDSUR3.js → continuedev-installer-UPXINJFT.js} +2 -2
  183. package/dist/cli/chunks/{copilot-installer-5QK565JX.js → copilot-installer-WIVYQRIF.js} +2 -2
  184. package/dist/cli/chunks/core-handlers-KSQM6Q6S.js +2 -0
  185. package/dist/cli/chunks/{cost-tracker-AWWMPPBJ.js → cost-tracker-RIN4JDDM.js} +2 -2
  186. package/dist/cli/chunks/coverage-SPFVHRRU.js +43 -0
  187. package/dist/cli/chunks/coverage-target-GSRBNHXE.js +2 -0
  188. package/dist/cli/chunks/cross-domain-router-CTGNOVCF.js +2 -0
  189. package/dist/cli/chunks/{cursor-installer-3BL7JACV.js → cursor-installer-POM7NGCC.js} +2 -2
  190. package/dist/cli/chunks/{daemon-R6ULBHHF.js → daemon-HFGKQ6LB.js} +3 -3
  191. package/dist/cli/chunks/{daemon-OJ624POF.js → daemon-M5TD5Y6T.js} +4 -4
  192. package/dist/cli/chunks/{dag-attention-scheduler-J6I3LTMY.js → dag-attention-scheduler-HJXM7Q5P.js} +2 -2
  193. package/dist/cli/chunks/{detect-5Q5W33UR.js → detect-XKQGLZYN.js} +2 -2
  194. package/dist/cli/chunks/{dist-node-GJNW56NA.js → dist-node-SSKB53QL.js} +2 -2
  195. package/dist/cli/chunks/{domain-handler-IZQY2G44.js → domain-handler-6BNDHATU.js} +2 -2
  196. package/dist/cli/chunks/{domain-plugins-PIGO3KI2.js → domain-plugins-DOX54YE3.js} +2 -2
  197. package/dist/cli/chunks/{domain-transfer-NU3B4FQG.js → domain-transfer-FW4ZX3Z7.js} +2 -2
  198. package/dist/cli/chunks/dream-MIK2E4UL.js +2 -0
  199. package/dist/cli/chunks/{embed-and-insert-pattern-5QDDRPWV.js → embed-and-insert-pattern-QST77T2B.js} +2 -2
  200. package/dist/cli/chunks/{eval-TB5HOAUY.js → eval-K7E4XXBS.js} +2 -2
  201. package/dist/cli/chunks/{experience-capture-middleware-SIYVLKDE.js → experience-capture-middleware-X66IYSRV.js} +3 -3
  202. package/dist/cli/chunks/{fast-paths-T7QELS6D.js → fast-paths-5JXXTYAG.js} +2 -2
  203. package/dist/cli/chunks/{feature-flags-TNZ7ZAJV.js → feature-flags-2CR3CO23.js} +2 -2
  204. package/dist/cli/chunks/{feature-flags-T3CNNYMJ.js → feature-flags-RB72LHOJ.js} +2 -2
  205. package/dist/cli/chunks/{file-discovery-M45P2ZCY.js → file-discovery-3NHRUQQB.js} +2 -2
  206. package/dist/cli/chunks/{fleet-DSBZPHBZ.js → fleet-SDU7QEOA.js} +3 -3
  207. package/dist/cli/chunks/{gnn-wrapper-EHODCF32.js → gnn-wrapper-AWCFODUV.js} +2 -2
  208. package/dist/cli/chunks/{heartbeat-handler-V5DBVF7V.js → heartbeat-handler-A4PJ3NFP.js} +4 -4
  209. package/dist/cli/chunks/heartbeat-scheduler-OCKRACUW.js +2 -0
  210. package/dist/cli/chunks/hnsw-adapter-X67XG73C.js +2 -0
  211. package/dist/cli/chunks/hnsw-index-I7KCQBQR.js +2 -0
  212. package/dist/cli/chunks/{hnsw-legacy-bridge-IYKDYA2F.js → hnsw-legacy-bridge-KRS7SSFM.js} +2 -2
  213. package/dist/cli/chunks/{hnswlib-node-DKG4LW3X.js → hnswlib-node-OGGCPKPO.js} +2 -2
  214. package/dist/cli/chunks/{hooks-VKNMAILY.js → hooks-XNRNMUBW.js} +10 -10
  215. package/dist/cli/chunks/hybrid-backend-FOUHTKAK.js +2 -0
  216. package/dist/cli/chunks/{hypergraph-engine-AXZVP7A7.js → hypergraph-engine-X35LTXYT.js} +2 -2
  217. package/dist/cli/chunks/{hypergraph-handler-6EO6JN4Z.js → hypergraph-handler-M6THKAG6.js} +3 -3
  218. package/dist/cli/chunks/impact-analyzer-GXYVX46O.js +2 -0
  219. package/dist/cli/chunks/{init-handler-N3NG3RHN.js → init-handler-2AXMXHYF.js} +6 -6
  220. package/dist/cli/chunks/init-wizard-C2MRX2QG.js +2 -0
  221. package/dist/cli/chunks/kernel-Q2IUDIDC.js +2 -0
  222. package/dist/cli/chunks/{kilocode-installer-JICGAHLM.js → kilocode-installer-TEPR2ZJD.js} +2 -2
  223. package/dist/cli/chunks/{kiro-installer-VYBFP6ZH.js → kiro-installer-RUKHGDEE.js} +2 -2
  224. package/dist/cli/chunks/knowledge-graph-E2Z6K5EE.js +2 -0
  225. package/dist/cli/chunks/{learning-3BHEZEPK.js → learning-BEA26RNA.js} +3 -3
  226. package/dist/cli/chunks/{llm-router-GPTEZCUN.js → llm-router-7GECMDCP.js} +4 -4
  227. package/dist/cli/chunks/llm-router-service-YATYFEDD.js +2 -0
  228. package/dist/cli/chunks/{load-W5BIRPU4.js → load-NTJ4Y4ZR.js} +2 -2
  229. package/dist/cli/chunks/load-test-LV77JXWA.js +2 -0
  230. package/dist/cli/chunks/{mcp-EBV4DZPG.js → mcp-4335GTTG.js} +2 -2
  231. package/dist/cli/chunks/{memory-7F6YYKNL.js → memory-HYC4M4XS.js} +5 -5
  232. package/dist/cli/chunks/memory-backend-XME3X3QX.js +2 -0
  233. package/dist/cli/chunks/memory-handlers-VG47X5DX.js +2 -0
  234. package/dist/cli/chunks/{multi-model-executor-3ZIA2YOL.js → multi-model-executor-T7FYKM6T.js} +2 -2
  235. package/dist/cli/chunks/{opencode-installer-2XRZUTLR.js → opencode-installer-3USXVT5M.js} +2 -2
  236. package/dist/cli/chunks/{orchestrator-VSZVJUJW.js → orchestrator-VHUXUYIM.js} +5 -5
  237. package/dist/cli/chunks/pattern-null-store-TAXMLENP.js +2 -0
  238. package/dist/cli/chunks/{pattern-usage-recorder-I2IGVHRL.js → pattern-usage-recorder-CMZLPX2K.js} +2 -2
  239. package/dist/cli/chunks/{pipeline-5G3O6WBY.js → pipeline-BTRZOVSL.js} +2 -2
  240. package/dist/cli/chunks/{platform-6GUFDIA3.js → platform-2MCRKC25.js} +2 -2
  241. package/dist/cli/chunks/{plugin-GYXE4CIC.js → plugin-2VAYWAO3.js} +2 -2
  242. package/dist/cli/chunks/{prime-radiant-advanced-wasm-THX6JLGZ.js → prime-radiant-advanced-wasm-TXFEMBP6.js} +2 -2
  243. package/dist/cli/chunks/{project-root-QJRBKZQU.js → project-root-CFFPBGPX.js} +2 -2
  244. package/dist/cli/chunks/protocol-executor-ML76QAVQ.js +2 -0
  245. package/dist/cli/chunks/{protocol-handler-B54LRU26.js → protocol-handler-DZ26OYVZ.js} +2 -2
  246. package/dist/cli/chunks/{prove-PCY2WQOD.js → prove-QWONEJWX.js} +2 -2
  247. package/dist/cli/chunks/qe-reasoning-bank-LUZH6RYV.js +2 -0
  248. package/dist/cli/chunks/quality-WFH54FY7.js +8 -0
  249. package/dist/cli/chunks/{quality-gate-L3KXL6WE.js → quality-gate-ONJB7XU7.js} +3 -3
  250. package/dist/cli/chunks/queen-coordinator-EWXNIXB6.js +2 -0
  251. package/dist/cli/chunks/{real-embeddings-N3H523PJ.js → real-embeddings-GZV4VKK4.js} +2 -2
  252. package/dist/cli/chunks/{ref-validation-6BKDPHZ7.js → ref-validation-HW5Y55ZC.js} +2 -2
  253. package/dist/cli/chunks/{roocode-installer-NSGGTWXE.js → roocode-installer-5OABDNZT.js} +2 -2
  254. package/dist/cli/chunks/router-MXOBVEBF.js +2 -0
  255. package/dist/cli/chunks/routing-feedback-T6CCRUEK.js +2 -0
  256. package/dist/cli/chunks/{routing-handler-SRQNUBG3.js → routing-handler-CVHVOQTC.js} +2 -2
  257. package/dist/cli/chunks/{ruvector-commands-2IGULGDE.js → ruvector-commands-KKDKFGIQ.js} +2 -2
  258. package/dist/cli/chunks/rvf-dual-writer-WHXVT3V3.js +2 -0
  259. package/dist/cli/chunks/rvf-migration-adapter-JFPWIRCG.js +2 -0
  260. package/dist/cli/chunks/{rvf-migration-coordinator-ZD6WK5CK.js → rvf-migration-coordinator-D4KUBNRZ.js} +2 -2
  261. package/dist/cli/chunks/rvf-native-adapter-KOXR7TJL.js +2 -0
  262. package/dist/cli/chunks/{rvf-store-integrity-QULKUBBI.js → rvf-store-integrity-UGUXKIFX.js} +2 -2
  263. package/dist/cli/chunks/safe-db-CI6IPSIN.js +2 -0
  264. package/dist/cli/chunks/schedule-X4HW6TVJ.js +2 -0
  265. package/dist/cli/chunks/scheduler-KCNJ2ON3.js +2 -0
  266. package/dist/cli/chunks/{security-JW4EBARW.js → security-7723AZZ4.js} +3 -3
  267. package/dist/cli/chunks/{shared-rvf-adapter-VQ7NJTGY.js → shared-rvf-adapter-KEQ5CLNI.js} +2 -2
  268. package/dist/cli/chunks/{shared-rvf-dual-writer-SKTS52HK.js → shared-rvf-dual-writer-ZSHYG5IA.js} +2 -2
  269. package/dist/cli/chunks/sqlite-persistence-PGHU6VUR.js +2 -0
  270. package/dist/cli/chunks/{standalone-memory-3N4YJCSY.js → standalone-memory-MHZEEYMK.js} +2 -2
  271. package/dist/cli/chunks/{status-handler-5BQ2IIDG.js → status-handler-JKXPJ22K.js} +2 -2
  272. package/dist/cli/chunks/{structural-health-WGYR2RJB.js → structural-health-J4RKCYWF.js} +2 -2
  273. package/dist/cli/chunks/{sync-R5OKUBTQ.js → sync-EFWXMA2H.js} +2 -2
  274. package/dist/cli/chunks/{sync-DLKSXTIR.js → sync-PDPORHVN.js} +2 -2
  275. package/dist/cli/chunks/{task-handler-Z5KNTSUX.js → task-handler-VERADM44.js} +2 -2
  276. package/dist/cli/chunks/{task-handlers-RZFMYFSC.js → task-handlers-4RUCWUR2.js} +3 -3
  277. package/dist/cli/chunks/{test-LHWKZJRN.js → test-DMBJFQNL.js} +4 -4
  278. package/dist/cli/chunks/{test-scheduling-EN7WXUMS.js → test-scheduling-LUPTVGCD.js} +3 -3
  279. package/dist/cli/chunks/{token-bootstrap-4V3OO4EC.js → token-bootstrap-S346YBVO.js} +2 -2
  280. package/dist/cli/chunks/{token-usage-PFC2BYBS.js → token-usage-VOA34IKM.js} +2 -2
  281. package/dist/cli/chunks/{transformers-VZCC4SHC.js → transformers-GU4TYAN5.js} +2 -2
  282. package/dist/cli/chunks/{tree-sitter-wasm-parser-ZYDQXGKN.js → tree-sitter-wasm-parser-MZPXAH7C.js} +2 -2
  283. package/dist/cli/chunks/{types-I6AWHZZQ.js → types-K4FLXR2K.js} +2 -2
  284. package/dist/cli/chunks/unified-memory-6CK3TUNQ.js +2 -0
  285. package/dist/cli/chunks/unified-memory-hnsw-A7BWBGYN.js +2 -0
  286. package/dist/cli/chunks/unified-persistence-GEPMDBQZ.js +2 -0
  287. package/dist/cli/chunks/{upgrade-T7SG75PA.js → upgrade-M3ATDRMK.js} +2 -2
  288. package/dist/cli/chunks/{validate-YLYEHTY3.js → validate-AAP773B3.js} +2 -2
  289. package/dist/cli/chunks/{validate-swarm-VTLTRUE3.js → validate-swarm-7RGAZX5F.js} +2 -2
  290. package/dist/cli/chunks/visual-security-L4J7LQWT.js +2 -0
  291. package/dist/cli/chunks/{web-tree-sitter-JUM7ZY5M.js → web-tree-sitter-GQMRHGGI.js} +2 -2
  292. package/dist/cli/chunks/{windsurf-installer-4KS2466T.js → windsurf-installer-HG6HF2GF.js} +2 -2
  293. package/dist/cli/chunks/witness-chain-CDUMX623.js +2 -0
  294. package/dist/cli/chunks/{witness-chain-E4X6TOCT.js → witness-chain-WKU3ZIBQ.js} +2 -2
  295. package/dist/cli/chunks/{witness-chain-repair-MB53OZO6.js → witness-chain-repair-WNYH6O4L.js} +2 -2
  296. package/dist/cli/chunks/{witness-chain-verifier-LBWJHO7Y.js → witness-chain-verifier-Q2KW3QEQ.js} +2 -2
  297. package/dist/cli/chunks/{witness-key-manager-5IHVMXHJ.js → witness-key-manager-NQ5DAAC4.js} +2 -2
  298. package/dist/cli/chunks/{workflow-XUQXIRNE.js → workflow-CX6SHFBW.js} +5 -5
  299. package/dist/cli/chunks/workflow-orchestrator-USJDWVDR.js +2 -0
  300. package/dist/cli/chunks/{wrappers-YVF5SQUN.js → wrappers-CZDI6Z3X.js} +2 -2
  301. package/dist/cli/commands/ci.js +14 -6
  302. package/dist/cli/commands/code.js +1 -0
  303. package/dist/cli/commands/coverage.d.ts +28 -0
  304. package/dist/cli/commands/coverage.js +258 -143
  305. package/dist/cli/commands/quality.d.ts +12 -1
  306. package/dist/cli/commands/quality.js +51 -3
  307. package/dist/cli/commands/workflow.js +3 -0
  308. package/dist/cli/scheduler/persistent-scheduler.d.ts +2 -0
  309. package/dist/cli/scheduler/persistent-scheduler.js +12 -2
  310. package/dist/cli/utils/ci-output.d.ts +14 -4
  311. package/dist/cli/utils/ci-output.js +21 -4
  312. package/dist/cli/utils/coverage-data.d.ts +7 -0
  313. package/dist/cli/utils/coverage-data.js +21 -27
  314. package/dist/contracts/verdicts.d.ts +14 -0
  315. package/dist/contracts/verdicts.js +44 -3
  316. package/dist/coordination/handlers/coverage-handlers.js +121 -120
  317. package/dist/coordination/handlers/coverage-runner.d.ts +121 -0
  318. package/dist/coordination/handlers/coverage-runner.js +367 -0
  319. package/dist/coordination/handlers/coverage-target.d.ts +144 -0
  320. package/dist/coordination/handlers/coverage-target.js +311 -0
  321. package/dist/coordination/handlers/handler-utils.d.ts +9 -0
  322. package/dist/coordination/handlers/handler-utils.js +44 -1
  323. package/dist/coordination/handlers/quality-handlers.js +101 -15
  324. package/dist/coordination/result-saver.js +17 -3
  325. package/dist/coordination/task-executor.d.ts +5 -0
  326. package/dist/coordination/task-executor.js +7 -0
  327. package/dist/domains/code-intelligence/coordinator.d.ts +2 -1
  328. package/dist/domains/code-intelligence/coordinator.js +10 -32
  329. package/dist/domains/code-intelligence/interfaces.d.ts +5 -0
  330. package/dist/domains/code-intelligence/plugin.js +1 -0
  331. package/dist/domains/code-intelligence/project-root-resolver.d.ts +50 -0
  332. package/dist/domains/code-intelligence/project-root-resolver.js +121 -0
  333. package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.d.ts +3 -0
  334. package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +57 -0
  335. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +124 -36
  336. package/dist/domains/coverage-analysis/coordinator.js +4 -1
  337. package/dist/domains/coverage-analysis/interfaces.d.ts +15 -0
  338. package/dist/domains/coverage-analysis/plugin.js +7 -1
  339. package/dist/domains/coverage-analysis/services/coverage-analyzer.d.ts +7 -0
  340. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +29 -9
  341. package/dist/domains/quality-assessment/coordinator-claim-verifier.js +2 -1
  342. package/dist/domains/quality-assessment/coordinator.js +8 -8
  343. package/dist/domains/quality-assessment/coverage-report-event.d.ts +25 -0
  344. package/dist/domains/quality-assessment/coverage-report-event.js +36 -0
  345. package/dist/domains/quality-assessment/evidence-sufficiency.d.ts +57 -0
  346. package/dist/domains/quality-assessment/evidence-sufficiency.js +97 -0
  347. package/dist/domains/quality-assessment/index.d.ts +1 -1
  348. package/dist/domains/quality-assessment/index.js +1 -1
  349. package/dist/domains/quality-assessment/plugin.js +8 -8
  350. package/dist/domains/quality-assessment/quality-evidence.d.ts +50 -2
  351. package/dist/domains/quality-assessment/quality-evidence.js +90 -8
  352. package/dist/domains/quality-assessment/services/quality-analyzer.js +13 -9
  353. package/dist/mcp/bundle.js +457 -453
  354. package/dist/mcp/handlers/domain-handler-configs.d.ts +60 -1
  355. package/dist/mcp/handlers/domain-handler-configs.js +42 -4
  356. package/dist/mcp/handlers/handler-factory.js +3 -0
  357. package/dist/mcp/handlers/wrapped-domain-handlers.js +7 -1
  358. package/dist/mcp/protocol-server.js +3 -2
  359. package/dist/mcp/services/session-store.js +11 -1
  360. package/dist/mcp/tools/coverage-analysis/index.js +1 -0
  361. package/dist/mcp/types.d.ts +24 -0
  362. package/dist/memory/crdt/convergence-tracker.js +14 -24
  363. package/dist/memory/crdt/crdt-store.js +15 -0
  364. package/dist/memory/crdt/lww-register.js +3 -3
  365. package/dist/memory/crdt/or-set.js +18 -0
  366. package/dist/planning/goap-planner.js +18 -10
  367. package/dist/shared/embeddings/embedding-cache.d.ts +3 -3
  368. package/dist/shared/embeddings/embedding-cache.js +8 -8
  369. package/dist/shared/embeddings/nomic-embedder.js +9 -6
  370. package/dist/shared/events/domain-events.d.ts +2 -0
  371. package/dist/shared/llm/cache.js +1 -1
  372. package/package.json +1 -1
  373. package/dist/cli/chunks/adapter-WQSFQES5.js +0 -2
  374. package/dist/cli/chunks/aqe-learning-engine-TDHBBADE.js +0 -2
  375. package/dist/cli/chunks/base-CZSB27VO.js +0 -2
  376. package/dist/cli/chunks/browser-workflow-AEMIS6PA.js +0 -2
  377. package/dist/cli/chunks/chunk-7IJVCDDC.js +0 -96
  378. package/dist/cli/chunks/chunk-INVDDFJC.js +0 -2
  379. package/dist/cli/chunks/chunk-K65X6CQA.js +0 -4
  380. package/dist/cli/chunks/chunk-MZDUBFLP.js +0 -2
  381. package/dist/cli/chunks/chunk-QDQLL2QB.js +0 -3
  382. package/dist/cli/chunks/chunk-QZBFMXO5.js +0 -742
  383. package/dist/cli/chunks/ci-JPISJ25U.js +0 -82
  384. package/dist/cli/chunks/client-BS7I637W.js +0 -2
  385. package/dist/cli/chunks/core-handlers-UG7RMTK5.js +0 -2
  386. package/dist/cli/chunks/coverage-SMFQEGKE.js +0 -27
  387. package/dist/cli/chunks/cross-domain-router-NX7F6TOF.js +0 -2
  388. package/dist/cli/chunks/dream-GYEH57FW.js +0 -2
  389. package/dist/cli/chunks/heartbeat-scheduler-4TJ3T7LR.js +0 -2
  390. package/dist/cli/chunks/hnsw-adapter-PHFK4EAP.js +0 -2
  391. package/dist/cli/chunks/hnsw-index-434XDDBH.js +0 -2
  392. package/dist/cli/chunks/hybrid-backend-DYVJQENQ.js +0 -2
  393. package/dist/cli/chunks/impact-analyzer-CBAST6M2.js +0 -2
  394. package/dist/cli/chunks/init-wizard-DWIJW7HY.js +0 -2
  395. package/dist/cli/chunks/kernel-AQGCS4X2.js +0 -2
  396. package/dist/cli/chunks/knowledge-graph-2ICXFUUV.js +0 -2
  397. package/dist/cli/chunks/llm-router-service-C47RGTH6.js +0 -2
  398. package/dist/cli/chunks/load-test-LRDAW3N6.js +0 -2
  399. package/dist/cli/chunks/memory-backend-UFBAYPQ6.js +0 -2
  400. package/dist/cli/chunks/memory-handlers-OGLJHAAJ.js +0 -2
  401. package/dist/cli/chunks/pattern-null-store-27FCITT3.js +0 -2
  402. package/dist/cli/chunks/protocol-executor-XWXXTMEW.js +0 -2
  403. package/dist/cli/chunks/qe-reasoning-bank-3RMYXENE.js +0 -2
  404. package/dist/cli/chunks/quality-LPVDZC7U.js +0 -7
  405. package/dist/cli/chunks/queen-coordinator-AS6DZ7UJ.js +0 -2
  406. package/dist/cli/chunks/router-OVNLNGHO.js +0 -2
  407. package/dist/cli/chunks/routing-feedback-TBOWEB6H.js +0 -2
  408. package/dist/cli/chunks/rvf-dual-writer-YJYRCYGT.js +0 -2
  409. package/dist/cli/chunks/rvf-migration-adapter-VMRQ2SFO.js +0 -2
  410. package/dist/cli/chunks/rvf-native-adapter-B75L3ALW.js +0 -2
  411. package/dist/cli/chunks/safe-db-CRQHMCV6.js +0 -2
  412. package/dist/cli/chunks/schedule-L3DKJRXU.js +0 -2
  413. package/dist/cli/chunks/scheduler-VRHYUGY5.js +0 -2
  414. package/dist/cli/chunks/sqlite-persistence-JVAZETTL.js +0 -2
  415. package/dist/cli/chunks/unified-memory-WOOCCIUM.js +0 -2
  416. package/dist/cli/chunks/unified-memory-hnsw-PDDHFLUB.js +0 -2
  417. package/dist/cli/chunks/unified-persistence-6ETD3JSC.js +0 -2
  418. package/dist/cli/chunks/visual-security-O4OT2YPY.js +0 -2
  419. package/dist/cli/chunks/witness-chain-67JHPDCN.js +0 -2
  420. package/dist/cli/chunks/workflow-orchestrator-ZVFSNRYZ.js +0 -2
@@ -19,15 +19,15 @@ export declare class EmbeddingCache {
19
19
  /**
20
20
  * Get cached embedding if available
21
21
  */
22
- get(content: string, model: string): number[] | null;
22
+ get(content: string, model: string, namespace?: string): number[] | null;
23
23
  /**
24
24
  * Store embedding in cache
25
25
  */
26
- set(content: string, model: string, embedding: number[]): void;
26
+ set(content: string, model: string, embedding: number[], namespace?: string): void;
27
27
  /**
28
28
  * Check if embedding exists in cache
29
29
  */
30
- has(content: string, model: string): boolean;
30
+ has(content: string, model: string, namespace?: string): boolean;
31
31
  /**
32
32
  * Get cache statistics
33
33
  */
@@ -20,16 +20,16 @@ export class EmbeddingCache {
20
20
  /**
21
21
  * Generate SHA-256 hash of content for cache key
22
22
  */
23
- hashContent(content, model) {
23
+ hashContent(content, model, namespace) {
24
24
  return createHash('sha256')
25
- .update(JSON.stringify([model, content]))
25
+ .update(JSON.stringify(namespace === undefined ? [model, content] : [model, namespace, content]))
26
26
  .digest('hex');
27
27
  }
28
28
  /**
29
29
  * Get cached embedding if available
30
30
  */
31
- get(content, model) {
32
- const key = this.hashContent(content, model);
31
+ get(content, model, namespace) {
32
+ const key = this.hashContent(content, model, namespace);
33
33
  const entry = this.cache.get(key);
34
34
  if (entry) {
35
35
  this.hits++;
@@ -44,8 +44,8 @@ export class EmbeddingCache {
44
44
  /**
45
45
  * Store embedding in cache
46
46
  */
47
- set(content, model, embedding) {
48
- const key = this.hashContent(content, model);
47
+ set(content, model, embedding, namespace) {
48
+ const key = this.hashContent(content, model, namespace);
49
49
  // Evict oldest entry if cache is full (LRU)
50
50
  if (this.cache.size >= this.maxSize && !this.cache.has(key)) {
51
51
  const firstKey = this.cache.keys().next().value;
@@ -63,8 +63,8 @@ export class EmbeddingCache {
63
63
  /**
64
64
  * Check if embedding exists in cache
65
65
  */
66
- has(content, model) {
67
- const key = this.hashContent(content, model);
66
+ has(content, model, namespace) {
67
+ const key = this.hashContent(content, model, namespace);
68
68
  return this.cache.has(key);
69
69
  }
70
70
  /**
@@ -15,6 +15,9 @@ import { EmbeddingCache } from './embedding-cache.js';
15
15
  import { toErrorMessage } from '../error-utils.js';
16
16
  import { EMBEDDING_CONFIG, } from './types.js';
17
17
  const PSEUDO_EMBEDDING_MODEL = 'pseudo-embedding';
18
+ // Unversioned real-model entries may predate fallback provenance separation.
19
+ const VERIFIED_MODEL_CACHE_NAMESPACE = 'verified-backend-v1';
20
+ const cacheNamespace = (model) => model === EMBEDDING_CONFIG.MODEL ? VERIFIED_MODEL_CACHE_NAMESPACE : undefined;
18
21
  /**
19
22
  * Nomic Embedder for generating code embeddings via Ollama
20
23
  */
@@ -53,10 +56,10 @@ export class NomicEmbedder {
53
56
  async embed(text) {
54
57
  // Prefer genuine cached vectors, then select the active backend before a
55
58
  // single counted lookup so alternate namespaces do not inflate misses.
56
- let model = this.cache.has(text, EMBEDDING_CONFIG.MODEL) ||
59
+ let model = this.cache.has(text, EMBEDDING_CONFIG.MODEL, VERIFIED_MODEL_CACHE_NAMESPACE) ||
57
60
  await this.isOllamaAvailable() || !this.enableFallback
58
61
  ? EMBEDDING_CONFIG.MODEL : PSEUDO_EMBEDDING_MODEL;
59
- const cached = this.cache.get(text, model);
62
+ const cached = this.cache.get(text, model, cacheNamespace(model));
60
63
  if (cached) {
61
64
  return cached;
62
65
  }
@@ -75,7 +78,7 @@ export class NomicEmbedder {
75
78
  `Please run: ollama pull ${EMBEDDING_CONFIG.MODEL}`);
76
79
  }
77
80
  // Cache result
78
- this.cache.set(text, model, embedding);
81
+ this.cache.set(text, model, embedding, cacheNamespace(model));
79
82
  return embedding;
80
83
  }
81
84
  /**
@@ -188,9 +191,9 @@ export class NomicEmbedder {
188
191
  const formattedText = this.formatForEmbedding(chunk);
189
192
  const chunkStartTime = Date.now();
190
193
  // Check cache
191
- const cachedModel = useOllama || this.cache.has(formattedText, EMBEDDING_CONFIG.MODEL)
194
+ const cachedModel = useOllama || this.cache.has(formattedText, EMBEDDING_CONFIG.MODEL, VERIFIED_MODEL_CACHE_NAMESPACE)
192
195
  ? EMBEDDING_CONFIG.MODEL : PSEUDO_EMBEDDING_MODEL;
193
- const cachedEmbedding = this.cache.get(formattedText, cachedModel);
196
+ const cachedEmbedding = this.cache.get(formattedText, cachedModel, cacheNamespace(cachedModel));
194
197
  if (cachedEmbedding) {
195
198
  return {
196
199
  chunkId: chunk.id,
@@ -211,7 +214,7 @@ export class NomicEmbedder {
211
214
  }
212
215
  // Cache the result
213
216
  const model = useOllama ? EMBEDDING_CONFIG.MODEL : PSEUDO_EMBEDDING_MODEL;
214
- this.cache.set(formattedText, model, embedding);
217
+ this.cache.set(formattedText, model, embedding, cacheNamespace(model));
215
218
  return {
216
219
  chunkId: chunk.id,
217
220
  embedding,
@@ -58,6 +58,8 @@ export interface CoverageReportPayload {
58
58
  function: number;
59
59
  statement: number;
60
60
  files: number;
61
+ /** False for a static estimate; consumers must not store it as coverage (#1008). */
62
+ measured?: boolean;
61
63
  }
62
64
  export interface CoverageGapPayload {
63
65
  gapId: string;
@@ -276,7 +276,7 @@ export class LLMResponseCache {
276
276
  * Cache a generation response
277
277
  */
278
278
  setGeneration(input, response, options, ttlMs) {
279
- if (!this.config.cacheGenerations) {
279
+ if (!this.config.cacheGenerations || response.finishReason === 'content_filter') {
280
280
  return;
281
281
  }
282
282
  const key = LLMCache.generateKey('generation', input, options);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-qe",
3
- "version": "3.15.3",
3
+ "version": "3.15.5",
4
4
  "description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -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.3");process.exit(0)}
2
- import{a,b,c}from"./chunk-XTGVGZ4J.js";import"./chunk-ED5HUPUR.js";import"./chunk-3MNKYCLH.js";import"./chunk-UGNTLSBL.js";import"./chunk-2GJJGO5D.js";import"./chunk-WSUYEVSY.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
@@ -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.3");process.exit(0)}
2
- import{a,b,c,d,e,f}from"./chunk-FTUNC4EI.js";import"./chunk-2M75CW5Q.js";import"./chunk-D5V6C3XG.js";import"./chunk-EQGT4VLC.js";import"./chunk-6W6GZHQA.js";import"./chunk-JJBTM4JO.js";import"./chunk-ZJW4HRUA.js";import"./chunk-3ZTBV6M3.js";import"./chunk-OMHISPPF.js";import"./chunk-AOZJ6UUZ.js";import"./chunk-OT6SOPAL.js";import"./chunk-UCSGZVJX.js";import"./chunk-TBVPNN65.js";import"./chunk-QUXX2DP7.js";import"./chunk-WQZBKLAG.js";import"./chunk-6EQDA4EC.js";import"./chunk-7SWHW5AC.js";import"./chunk-OGARNKLS.js";import"./chunk-UGNTLSBL.js";import"./chunk-ASUXS4N4.js";import"./chunk-UTALYUMW.js";import"./chunk-NT6FYFJA.js";import"./chunk-7TW5UGDP.js";import"./chunk-D6PUDLJ4.js";import"./chunk-M3ONCPSU.js";import"./chunk-HVIFA73X.js";import"./chunk-GPZH6OPP.js";import"./chunk-CNQUU6CF.js";import"./chunk-POTVF6BY.js";import"./chunk-Z7UGEQ4G.js";import"./chunk-WSND64RL.js";import"./chunk-INVDDFJC.js";import"./chunk-FPFGN2Z5.js";import"./chunk-WLOHTLHO.js";import"./chunk-2GJJGO5D.js";import"./chunk-6TYTBQPV.js";import"./chunk-PUPEKA2J.js";import"./chunk-YTRGMILO.js";import"./chunk-L6OSEWOS.js";import"./chunk-4TM5K6EZ.js";import"./chunk-Z7JPWXW2.js";import"./chunk-34Y4CIHD.js";import"./chunk-WSUYEVSY.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
@@ -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.3");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-AS54N3H7.js";import"./chunk-YHZGFWJE.js";import"./chunk-GJB3LPCS.js";import"./chunk-7SWHW5AC.js";import"./chunk-OGARNKLS.js";import"./chunk-UGNTLSBL.js";import"./chunk-ASUXS4N4.js";import"./chunk-UTALYUMW.js";import"./chunk-NT6FYFJA.js";import"./chunk-7TW5UGDP.js";import"./chunk-D6PUDLJ4.js";import"./chunk-M3ONCPSU.js";import"./chunk-HVIFA73X.js";import"./chunk-CNQUU6CF.js";import"./chunk-POTVF6BY.js";import"./chunk-WSND64RL.js";import"./chunk-INVDDFJC.js";import"./chunk-FPFGN2Z5.js";import"./chunk-WLOHTLHO.js";import"./chunk-2GJJGO5D.js";import"./chunk-6TYTBQPV.js";import"./chunk-YTRGMILO.js";import"./chunk-Z7JPWXW2.js";import"./chunk-34Y4CIHD.js";import"./chunk-WSUYEVSY.js";export{l as MCPToolBase,k as defaultToolLogger,j as getKernel,i as getLLMRouter,e as getMemoryBackend,g as getSharedLLMRouter,c as getSharedMemoryBackend,a as isMemoryOnlyMode,b as registerRvfResetFn,h as resetSharedLLMRouter,d as resetSharedMemoryBackend,f as setSharedLLMRouter};
@@ -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.3");process.exit(0)}
2
- import{a}from"./chunk-OKNMZLGB.js";import"./chunk-AS54N3H7.js";import"./chunk-YHZGFWJE.js";import"./chunk-GJB3LPCS.js";import"./chunk-7SWHW5AC.js";import"./chunk-OGARNKLS.js";import"./chunk-UGNTLSBL.js";import"./chunk-ASUXS4N4.js";import"./chunk-UTALYUMW.js";import"./chunk-NT6FYFJA.js";import"./chunk-7TW5UGDP.js";import"./chunk-D6PUDLJ4.js";import"./chunk-M3ONCPSU.js";import"./chunk-HVIFA73X.js";import"./chunk-CNQUU6CF.js";import"./chunk-POTVF6BY.js";import"./chunk-WSND64RL.js";import"./chunk-INVDDFJC.js";import"./chunk-FPFGN2Z5.js";import"./chunk-WLOHTLHO.js";import"./chunk-2GJJGO5D.js";import"./chunk-6TYTBQPV.js";import"./chunk-YTRGMILO.js";import"./chunk-Z7JPWXW2.js";import"./chunk-34Y4CIHD.js";import"./chunk-WSUYEVSY.js";export{a as BrowserWorkflowTool};
@@ -1,96 +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.3");process.exit(0)}
2
- import{writeFileSync as d,readFileSync as m}from"node:fs";import{resolve as f,dirname as u,join as g}from"node:path";import{mkdirSync as h}from"node:fs";import{fileURLToPath as v}from"node:url";function y(){try{let e=typeof __dirname<"u"?__dirname:u(v(import.meta.url));for(let n=0;n<5;n++){let t=g(e,"package.json");try{let o=JSON.parse(m(t,"utf-8"));if(o.version)return o.version}catch{}e=u(e)}}catch{}return"unknown"}function l(e){return e.status??e.evidence?.completeness??"unverified"}var R=["-F, --format <format>","Output format (text|json|sarif|junit|markdown)","text"],T=["-o, --output <path>","Write output to file instead of stdout"];function w(e,n,t){if(n){let o=f(n);h(u(o),{recursive:!0}),d(o,e,"utf-8"),t&&console.log(t),console.log(`Output written to: ${o}`)}else console.log(e)}function $(e){return JSON.stringify(e,null,2)}var S="https://raw.githubusercontent.com/oasis-tcs/sarif-spec/main/sarif-2.1/schema/sarif-schema-2.1.0.json";function F(e){let n=l(e),t=s=>{switch(s.toLowerCase()){case"critical":case"high":return"error";case"medium":return"warning";case"low":case"info":return"note";default:return"warning"}},o=new Map,r=[];for(let s of e.vulnerabilities){let a=s.ruleId||`AQE/${s.type.replace(/\s+/g,"-").toLowerCase()}`;o.has(a)||o.set(a,{id:a,name:s.type,shortDescription:s.type,...s.cweId?{helpUri:`https://cwe.mitre.org/data/definitions/${s.cweId.replace("CWE-","")}.html`}:{}}),r.push({ruleId:a,level:t(s.severity),message:{text:s.message},locations:[{physicalLocation:{artifactLocation:{uri:s.file,uriBaseId:"%SRCROOT%"},region:{startLine:s.line,startColumn:1}}}],...s.cweId?{taxa:[{id:s.cweId,toolComponent:{name:"CWE"}}]}:{}})}let i={$schema:S,version:"2.1.0",runs:[{tool:{driver:{name:"agentic-qe",version:y(),informationUri:"https://github.com/proffesor-for-testing/agentic-qe",rules:Array.from(o.values()).map(s=>({id:s.id,name:s.name,shortDescription:{text:s.shortDescription},...s.helpUri?{helpUri:s.helpUri}:{},defaultConfiguration:{level:"warning"}}))}},results:r,properties:{securityScan:{status:n,target:e.target,scanType:e.scanType,coverage:e.evidence?e.coverage:void 0,evidence:e.evidence,discovery:e.discovery,checks:e.checks}},invocations:[{executionSuccessful:n==="complete",...n==="complete"?{}:{toolExecutionNotifications:[{level:"warning",message:{text:`Security analysis ${n}; findings do not establish complete coverage.`}}]}}]}]};return JSON.stringify(i,null,2)}function c(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}function A(e){let n=e.tests||[],t=e.passed+e.failed+e.skipped,o=(e.duration/1e3).toFixed(3),r=`<?xml version="1.0" encoding="UTF-8"?>
3
- `;if(r+=`<testsuites tests="${t}" failures="${e.failed}" errors="0" time="${o}">
4
- `,r+=` <testsuite name="aqe-test-run" tests="${t}" failures="${e.failed}" errors="0" skipped="${e.skipped}" time="${o}" id="${c(e.runId)}">
5
- `,n.length>0)for(let i of n){let s=(i.duration/1e3).toFixed(3),a=c(i.suite||i.file||"aqe"),p=c(i.name);r+=` <testcase classname="${a}" name="${p}" time="${s}"`,!i.passed&&i.error?(r+=`>
6
- `,r+=` <failure message="${c(i.error)}">${c(i.error)}</failure>
7
- `,r+=` </testcase>
8
- `):r+=` />
9
- `}else{for(let i=0;i<e.passed;i++)r+=` <testcase classname="aqe" name="test-${i+1}" time="0" />
10
- `;for(let i=0;i<e.failed;i++)r+=` <testcase classname="aqe" name="failed-test-${i+1}" time="0">
11
- `,r+=` <failure message="Test failed">Test failed</failure>
12
- `,r+=` </testcase>
13
- `;for(let i=0;i<e.skipped;i++)r+=` <testcase classname="aqe" name="skipped-test-${i+1}" time="0">
14
- `,r+=` <skipped />
15
- `,r+=` </testcase>
16
- `}return r+=` </testsuite>
17
- `,r+=`</testsuites>
18
- `,r}function I(e){let n=`# Coverage Report
19
-
20
- `;if(n+=`| Metric | Value | Status |
21
- `,n+=`|--------|-------|--------|
22
- `,n+=`| Lines | ${e.summary.line}% | ${e.summary.line>=e.threshold?"\u2705":"\u274C"} |
23
- `,n+=`| Branches | ${e.summary.branch}% | ${e.summary.branch>=e.threshold?"\u2705":"\u274C"} |
24
- `,n+=`| Functions | ${e.summary.function}% | ${e.summary.function>=e.threshold?"\u2705":"\u274C"} |
25
- `,n+=`| Statements | ${e.summary.statement}% | ${e.summary.statement>=e.threshold?"\u2705":"\u274C"} |
26
- `,n+=`
27
- **Threshold:** ${e.threshold}% \u2014 ${e.meetsThreshold?"\u2705 Met":"\u274C Not met"}
28
- `,e.gaps&&e.gaps.length>0){n+=`
29
- ## Coverage Gaps
30
-
31
- `,n+=`| File | Uncovered Lines | Risk | Severity |
32
- `,n+=`|------|----------------|------|----------|
33
- `;for(let t of e.gaps.slice(0,20))n+=`| ${t.file} | ${t.lines.length} | ${(t.riskScore*100).toFixed(0)}% | ${t.severity} |
34
- `}if(e.recommendations&&e.recommendations.length>0){n+=`
35
- ## Recommendations
36
-
37
- `;for(let t of e.recommendations)n+=`- ${t}
38
- `}return n}function O(e){let n=`# Quality Gate Report
39
-
40
- `;n+=`**Result:** ${e.passed?"\u2705 PASSED":"\u274C FAILED"}
41
- `,n+=`**Score:** ${e.score}
42
-
43
- `,n+=`## Checks
44
-
45
- `,n+=`| Check | Value | Threshold | Status |
46
- `,n+=`|-------|-------|-----------|--------|
47
- `;for(let t of e.checks)n+=`| ${t.name} | ${t.value} | ${t.threshold} | ${t.passed?"\u2705":"\u274C"} |
48
- `;if(e.recommendations&&e.recommendations.length>0){n+=`
49
- ## Recommendations
50
-
51
- `;for(let t of e.recommendations)n+=`- ${t}
52
- `}return n}function E(e){let n=`# Security Scan Report
53
-
54
- `;if(n+=`**Target:** ${e.target}
55
- `,n+=`**Scan Type:** ${e.scanType}
56
- `,n+=`**Execution:** ${l(e)}
57
- `,n+=`**Vulnerabilities Found:** ${e.vulnerabilities.length}
58
-
59
- `,e.checks?.length){n+=`## Check execution
60
-
61
- `;for(let t of e.checks)n+=`- **${t.name}:** ${t.status}${t.reason?` \u2014 ${t.reason}`:""}
62
- `;n+=`
63
- `}if(e.coverage&&e.evidence&&(n+=`**Analyzed files:** ${e.coverage.filesScanned}
64
- `,n+=`**Analyzed lines:** ${e.coverage.linesScanned}
65
- `,n+=`**Rules applied:** ${e.coverage.rulesApplied}${e.coverage.rulesAppliedScope?` (${e.coverage.rulesAppliedScope})`:""}
66
-
67
- `),(e.evidence||e.discovery)&&(n+=`## Execution receipts
68
-
69
- \`\`\`json
70
- ${$({evidence:e.evidence,discovery:e.discovery})}
71
- \`\`\`
72
-
73
- `),e.vulnerabilities.length>0){n+=`## Vulnerabilities
74
-
75
- `,n+=`| Severity | Type | File | Line | Message |
76
- `,n+=`|----------|------|------|------|---------|
77
- `;for(let t of e.vulnerabilities)n+=`| ${t.severity} | ${t.type} | ${t.file} | ${t.line} | ${t.message} |
78
- `}if(e.compliance&&(n+=`
79
- ## Compliance
80
-
81
- `,n+=`**Status:** ${e.compliance.compliant?"\u2705 Compliant":"\u274C Non-compliant"}
82
- `,e.compliance.issues))for(let t of e.compliance.issues)n+=`- **${t.framework}:** ${t.issue}
83
- `;return n}function L(e){let n=e.passed+e.failed+e.skipped,t=`# Test Run Report
84
-
85
- `;return t+=`**Run ID:** ${e.runId}
86
- `,t+=`**Duration:** ${e.duration}ms
87
-
88
- `,t+=`| Metric | Count |
89
- `,t+=`|--------|-------|
90
- `,t+=`| Total | ${n} |
91
- `,t+=`| Passed | ${e.passed} |
92
- `,t+=`| Failed | ${e.failed} |
93
- `,t+=`| Skipped | ${e.skipped} |
94
- `,t+=`
95
- **Result:** ${e.failed===0?"\u2705 All tests passed":"\u274C Some tests failed"}
96
- `,t}export{l as a,R as b,T as c,w as d,$ as e,F as f,A as g,I as h,O as i,E as j,L as k};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
2
- import{a as e,c as r,d as g,g as t}from"./chunk-FPFGN2Z5.js";import{b as o}from"./chunk-WSUYEVSY.js";var L=o(()=>{"use strict";e();g();t();r()});export{L as a};
@@ -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.3");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,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.3");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,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.3");process.exit(0)}
2
- import{b as F,d as j}from"./chunk-UGNTLSBL.js";import{a as T}from"./chunk-Z7UGEQ4G.js";import{a as M,e as V}from"./chunk-2GJJGO5D.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 K={"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,R=20,I=1e4,G=["__proto__","constructor","prototype"];function _(n){return!G.includes(n)}function H(n){let e=n.split(`
3
- `);if(e.length>C)throw new Error(`YAML content exceeds maximum allowed lines (${C}). File has ${e.length} lines.`);for(let s=0;s<e.length;s++)if(e[s].length>I)throw new Error(`YAML line ${s+1} exceeds maximum allowed length (${I} characters).`);let i={};for(let s=0;s<e.length;s++){let r=e[s];if(r.trim()===""||r.trim().startsWith("#")||r.search(/\S/)!==0)continue;let c=r.match(/^([\w_-]+):\s*(.+)$/);if(c){let[,a,d]=c;_(a)&&(i[a]=y(d))}}let t=["tags","stages","triggers"];for(let s of t){let r=new RegExp(`^${s}:\\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=[];i[s]=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 z=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<=z)break;let D=U.match(/^([\w_-]+):\s*(.*)$/);if(D){let[,A,L]=D;if(L===""){let E=B(e,d+1,k,1);p[A]=E.value,d=E.nextLine;continue}else p[A]=y(L)}d++}c.push(p)}else d++}}return i}function B(n,e,i,t=0){if(t>R)throw new Error(`YAML nesting exceeds maximum allowed depth (${R}).`);let s={},r=null,o=null,c=e;for(;c<n.length;){let d=n[c];if(d.trim()===""||d.trim().startsWith("#")){c++;continue}let h=d.search(/\S/),l=d.trim();if(h<=i)break;if(l.startsWith("- ")){let m=l.slice(2).trim();o&&!Array.isArray(s[o])&&(s[o]=[]),o?s[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,s[m]=[]):(s[m]=y(p),o=null)}c++}if(r&&Object.keys(s).length===0)return{value:r,nextLine:c};let a=Object.keys(s);return a.length===1&&Array.isArray(s[a[0]])?{value:s[a[0]],nextLine:c}:{value:s,nextLine:c}}function y(n){if(n==="")return"";if(n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))return n.slice(1,-1);if(n==="true")return!0;if(n==="false")return!1;if(n==="null"||n==="~")return null;let e=Number(n);return!isNaN(e)&&n!==""?e:n.startsWith("[")&&n.endsWith("]")?n.slice(1,-1).split(",").map(t=>y(t.trim())):n}function le(n){let e=[];if(!P.existsSync(n))return{success:!1,errors:[`File not found: ${n}`]};let i;try{i=P.readFileSync(n,"utf-8")}catch(t){return{success:!1,errors:[`Failed to read file: ${t}`]}}return X(i,n)}function X(n,e){let i=[],t;try{t=H(n)}catch(o){return{success:!1,errors:[`Invalid YAML syntax: ${o}`]}}if((!t.name||typeof t.name!="string")&&i.push('Pipeline must have a "name" field'),(!t.stages||!Array.isArray(t.stages))&&i.push('Pipeline must have a "stages" array'),i.length>0)return{success:!1,errors:i};let s={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<s.stages.length;o++){let c=s.stages[o];c.command||i.push(`Stage ${o+1} (${c.name}) must have a "command" field`)}if(i.length>0)return{success:!1,pipeline:s,errors:i};let r=J(s,e);return{success:!0,pipeline:s,workflow:r,errors:[]}}function J(n,e){let i=`pipeline-${n.name.replace(/\s+/g,"-").toLowerCase()}`,t=n.stages.map((r,o)=>{let c=O(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}),s=n.triggers?.map(r=>{let o={eventType:Q(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:i,name:n.name,description:n.description||`Pipeline from ${e||"inline YAML"}`,version:n.version||"1.0.0",steps:t,triggers:s,tags:n.tags,timeout:n.timeout?n.timeout*1e3:void 0}}function O(n){let e=n.trim().replace(/\s+/g," ").toLowerCase();for(let[i,t]of Object.entries(K))if(e.startsWith(i.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 Q(n){let e=n.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(n){let e=[],i=[];if(n.name||e.push({path:"name",message:"Pipeline name is required",severity:"error"}),!n.stages||n.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<n.stages.length;r++){let o=n.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?O(o.command).domain==="learning-optimization"&&!o.command.toLowerCase().includes("learn")&&i.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)n.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 s=Z(n.stages);s&&e.push({path:"stages",message:`Circular dependency detected: ${s}`,severity:"error"})}if(n.schedule&&(ee(n.schedule)||e.push({path:"schedule",message:`Invalid cron expression: ${n.schedule}`,severity:"error"})),n.triggers)for(let t=0;t<n.triggers.length;t++){let s=n.triggers[t],r=`triggers[${t}]`;s.event||e.push({path:`${r}.event`,message:"Trigger must have an event type",severity:"error"}),s.source_domain&&!T.includes(s.source_domain)&&i.push({path:`${r}.source_domain`,message:`Unknown domain: ${s.source_domain}`,severity:"warning"})}return{valid:e.length===0,errors:e,warnings:i}}function Z(n){let e=new Set,i=new Set,t=(s,r)=>{if(i.has(s))return[...r,s].join(" -> ");if(e.has(s))return null;e.add(s),i.add(s);let o=n.find(c=>c.name===s);if(o?.depends_on)for(let c of o.depends_on){let a=t(c,[...r,s]);if(a)return a}return i.delete(s),null};for(let s of n){let r=t(s.name,[]);if(r)return r}return null}function ee(n){return q(n)!==void 0}function q(n){let i=(Object.hasOwn(x,n)?x[n]:n).trim().split(/\s+/);if(i.length!==5)return;let t=[[0,59],[0,23],[1,31],[1,12],[0,7]],s=[/^(\*|[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<i.length;o++){let[c,a]=t[o],d=new Set;for(let h of i[o].split(",")){if(!s[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:i[2].startsWith("*")||i[4].startsWith("*")}}function he(n){let e={"@daily":"Daily at midnight","@weekly":"Weekly on Sunday at midnight","@hourly":"Every hour","@minutely":"Every minute"};if(e[n])return e[n];if(Object.keys(x).includes(n))return{daily:"Daily at midnight",weekly:"Weekly on Sunday at midnight",hourly:"Every hour",minutely:"Every minute"}[n]||n;let i=n.trim().split(/\s+/);if(i.length!==5)return n;let[t,s,r,o,c]=i;return t==="0"&&s==="0"&&r==="*"&&o==="*"&&c==="*"?"Daily at midnight":t==="0"&&r==="*"&&o==="*"&&c==="*"?`Daily at ${s}:00`:t!=="*"&&s!=="*"&&r==="*"&&o==="*"?`Daily at ${s}:${t.padStart(2,"0")}`:s==="*"&&t==="0"?"Every hour":t!=="*"&&s==="*"?`Every hour at minute ${t}`:n}function b(n,e=new Date){let i=q(n);if(!i)throw new Error(`Invalid cron expression: ${n}`);if(!Number.isFinite(e.getTime()))throw new Error("Invalid schedule start date");let[t,s,r,o,c]=i.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)&&(i.wildcardDay?l&&f:l||f))){a.setHours(24,0,0,0);continue}if(s.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: ${n}`)}j();V();var ne=".aqe",ie="schedules.json",se="1.0.0",W=5e3,re=50,N=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 i=v.homedir(),t=g.resolve(e),s=g.resolve(i);if(t.startsWith(s+g.sep)||t===s)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 (${i}), 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"),i=this.parseSchedulesFile(e);return this.log(`Loaded ${i.schedules.length} schedules`),i.schedules}catch(e){return await this.handleCorruptFile(e),[]}}async saveSchedule(e){await this.initialize(),await this.withFileLock(async()=>{let i=await this.loadSchedulesUnsafe(),t=i.findIndex(s=>s.id===e.id);t>=0?(i[t]=e,this.log(`Updated schedule: ${e.id}`)):(i.push(e),this.log(`Added schedule: ${e.id}`)),await this.writeSchedules(i)})}async removeSchedule(e){await this.initialize(),await this.withFileLock(async()=>{let i=await this.loadSchedulesUnsafe(),t=i.filter(s=>s.id!==e);if(t.length===i.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(),i=new Date;return e.filter(t=>t.enabled?new Date(t.nextRun)<=i:!1)}async markExecuted(e){await this.initialize(),await this.withFileLock(async()=>{let i=await this.loadSchedulesUnsafe(),t=i.find(r=>r.id===e);if(!t)throw new Error(`Schedule not found: ${e}`);let s=new Date;t.lastRun=s.toISOString(),t.nextRun=b(t.schedule,s).toISOString(),await this.writeSchedules(i),this.log(`Marked executed: ${e}, next run: ${t.nextRun}`)})}async setEnabled(e,i){await this.initialize(),await this.withFileLock(async()=>{let t=await this.loadSchedulesUnsafe(),s=t.find(r=>r.id===e);if(!s)throw new Error(`Schedule not found: ${e}`);s.enabled=i,i&&(s.nextRun=b(s.schedule,new Date).toISOString()),await this.writeSchedules(t),this.log(`Set enabled=${i}: ${e}`)})}async getEnabledSchedules(){return(await this.loadSchedules()).filter(i=>i.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(),i=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)<=i).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 i=Buffer.byteLength(e,"utf-8");if(i>N)throw new Error(`Schedules file exceeds maximum allowed size (${N/(1024*1024)}MB). File is ${(i/(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 s of t.schedules)if(!s.id||!s.workflowId||!s.schedule)throw new Error("Invalid schedule entry: missing required fields");return t}async writeSchedules(e){let i={version:se,updatedAt:new Date().toISOString(),schedules:e},t=JSON.stringify(i,null,2);u.writeFileSync(this.schedulesPath,t,"utf-8"),this.log(`Wrote ${e.length} schedules to disk`)}async handleCorruptFile(e){let i=M(e);this.log(`Corrupt schedules file detected: ${i}`);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(s){this.log(`Failed to backup corrupt file: ${s}`)}try{u.existsSync(this.schedulesPath)&&(u.unlinkSync(this.schedulesPath),this.log("Removed corrupt schedules file"))}catch(s){this.log(`Failed to remove corrupt file: ${s}`)}}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 i=u.statSync(this.lockFile);if(Date.now()-i.mtimeMs>W){u.unlinkSync(this.lockFile),this.log("Removed stale lock file");break}}catch{break}if(Date.now()-e>W)throw new Error("Timeout waiting for scheduler lock");await this.sleep(re)}try{u.writeFileSync(this.lockFile,`${process.pid}:${Date.now()}`,{flag:"wx"})}catch(i){if(i.code==="EEXIST")return this.acquireLock();throw i}}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(i=>setTimeout(i,e))}log(e){this.debug&&console.log(`[PersistentScheduler] ${e}`)}};function oe(n={}){return new $(n)}function Y(){let n=Date.now().toString(36),e=te().slice(0,8);return`sched-${n}-${e}`}function ae(n){let e=new Date;return{id:Y(),workflowId:n.workflowId,pipelinePath:n.pipelinePath,schedule:n.schedule,scheduleDescription:n.scheduleDescription,nextRun:b(n.schedule,e).toISOString(),enabled:n.enabled??!0,createdAt:e.toISOString()}}export{le as a,ue as b,he as c,$ as d,oe as e,Y as f,ae as g};