agentic-qe 3.15.5 → 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.
- package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/README.md +9 -2
- package/.claude/skills/qe-court/evals/qe-court.yaml +3 -2
- package/.claude/skills/qe-quality-assessment/schemas/output.json +12 -2
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +121 -0
- package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/README.md +9 -2
- package/assets/skills/qe-court/evals/qe-court.yaml +3 -2
- package/assets/skills/qe-quality-assessment/schemas/output.json +12 -2
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-PP3XIXDV.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-CCTTGCQS.js → agent-booster-wasm-SY7UCLBL.js} +2 -2
- package/dist/cli/chunks/{agent-handler-DHYUF3NX.js → agent-handler-KAMYBU3S.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-642W7CYX.js → agent-memory-branch-2CAW3KUM.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-VDUQJKKY.js +2 -0
- package/dist/cli/chunks/{arena-NW2JVAFY.js → arena-4OFLJ3R2.js} +2 -2
- package/dist/cli/chunks/{arena-MUCC7UUN.js → arena-QCCVIOAH.js} +4 -4
- package/dist/cli/chunks/{audit-VKQTZJAA.js → audit-RBDQJQJB.js} +3 -3
- package/dist/cli/chunks/base-QSYWWPCE.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-7ZUFVWLQ.js → better-sqlite3-5JRACCDQ.js} +2 -2
- package/dist/cli/chunks/{brain-handler-7LKAWSBI.js → brain-handler-W4QIIRT4.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-HUNXJKM4.js → branch-enumerator-IBNGI572.js} +2 -2
- package/dist/cli/chunks/{browser-ZSZEYUDP.js → browser-GMSCVAOI.js} +2 -2
- package/dist/cli/chunks/browser-workflow-WXXPBSCM.js +2 -0
- package/dist/cli/chunks/{chunk-RUSLEOMC.js → chunk-22OZIJAD.js} +2 -2
- package/dist/cli/chunks/{chunk-WR64BKUE.js → chunk-24ZSGYC6.js} +1 -1
- package/dist/cli/chunks/{chunk-CR2JUANW.js → chunk-2CIDFR2H.js} +3 -3
- package/dist/cli/chunks/{chunk-SDWMLT7B.js → chunk-2IWPJUVV.js} +5 -5
- package/dist/cli/chunks/{chunk-VYDNLQJN.js → chunk-2ZTWPMTK.js} +2 -2
- package/dist/cli/chunks/{chunk-WN55MNZ2.js → chunk-34MDMFET.js} +2 -2
- package/dist/cli/chunks/{chunk-D3G2NN7F.js → chunk-3DJNKNBR.js} +66 -65
- package/dist/cli/chunks/{chunk-XQRE2HWM.js → chunk-3NJ7O3OH.js} +2 -2
- package/dist/cli/chunks/chunk-45MVRQG4.js +2 -0
- package/dist/cli/chunks/chunk-46HBVDMU.js +2 -0
- package/dist/cli/chunks/{chunk-MNQ36MAF.js → chunk-47Q7JL3V.js} +2 -2
- package/dist/cli/chunks/chunk-4CLDYT36.js +2 -0
- package/dist/cli/chunks/{chunk-ORTBRO7F.js → chunk-4KOVHQXK.js} +2 -2
- package/dist/cli/chunks/{chunk-B2UHTA4Q.js → chunk-4POOJYXA.js} +1 -1
- package/dist/cli/chunks/{chunk-QXY3IRBW.js → chunk-5DH5QI7G.js} +26 -26
- package/dist/cli/chunks/{chunk-7BIYJRQJ.js → chunk-5GIJU2ZY.js} +2 -2
- package/dist/cli/chunks/{chunk-6LG5UEQE.js → chunk-5HAPS6VD.js} +2 -2
- package/dist/cli/chunks/{chunk-OU4ZAWCC.js → chunk-5LST62QR.js} +2 -2
- package/dist/cli/chunks/{chunk-Y2E3IJ53.js → chunk-5MT7DMD7.js} +2 -2
- package/dist/cli/chunks/{chunk-6UYN5PHA.js → chunk-5NC7QEJ6.js} +4 -4
- package/dist/cli/chunks/{chunk-3DTEQHFB.js → chunk-5UPIL62W.js} +3 -3
- package/dist/cli/chunks/{chunk-YINFES3E.js → chunk-5VUIXDY2.js} +2 -2
- package/dist/cli/chunks/chunk-5VZVMO7B.js +3 -0
- package/dist/cli/chunks/{chunk-JCC7QEKZ.js → chunk-624QRKQX.js} +1 -1
- package/dist/cli/chunks/{chunk-HIUNCO2W.js → chunk-66NW3ZB4.js} +2 -2
- package/dist/cli/chunks/{chunk-4AZP7ZCW.js → chunk-6HWARQWV.js} +2 -2
- package/dist/cli/chunks/{chunk-LNO5IWGH.js → chunk-6MXAJBEA.js} +1 -1
- package/dist/cli/chunks/{chunk-XNEEYXR2.js → chunk-6R3FBFCJ.js} +2 -2
- package/dist/cli/chunks/{chunk-ZT3GUYM5.js → chunk-6RDVY26I.js} +2 -2
- package/dist/cli/chunks/{chunk-W3ZGNNDV.js → chunk-6T6AHVLF.js} +1 -1
- package/dist/cli/chunks/{chunk-JANLATHN.js → chunk-6WOZUSSN.js} +2 -2
- package/dist/cli/chunks/chunk-72MQCZSM.js +2 -0
- package/dist/cli/chunks/chunk-7QVPMH25.js +3 -0
- package/dist/cli/chunks/{chunk-HLFDC4SF.js → chunk-7SAMMQVS.js} +1 -1
- package/dist/cli/chunks/{chunk-644DFAGS.js → chunk-7TJZDRDU.js} +1 -1
- package/dist/cli/chunks/{chunk-BYXNHGQC.js → chunk-7TVIX4WL.js} +2 -2
- package/dist/cli/chunks/{chunk-FBEXG4HD.js → chunk-7VTKR44N.js} +2 -2
- package/dist/cli/chunks/{chunk-UE22ODHN.js → chunk-7XTANLTN.js} +1 -1
- package/dist/cli/chunks/chunk-7XUB7U6Z.js +4 -0
- package/dist/cli/chunks/{chunk-HPLMX62I.js → chunk-A74J23QB.js} +2 -2
- package/dist/cli/chunks/{chunk-VRJPH3LG.js → chunk-A7ANPS4E.js} +2 -2
- package/dist/cli/chunks/{chunk-IHFUEPZH.js → chunk-AJT3XDRD.js} +2 -2
- package/dist/cli/chunks/{chunk-EUEHBERE.js → chunk-ALCIUWFC.js} +1 -1
- package/dist/cli/chunks/{chunk-NMJVG22Z.js → chunk-AUN4FG7V.js} +1 -1
- package/dist/cli/chunks/{chunk-DWZI3IVB.js → chunk-AUOSHM63.js} +2 -2
- package/dist/cli/chunks/{chunk-7EZLOC4K.js → chunk-AX26QJ6T.js} +2 -2
- package/dist/cli/chunks/{chunk-PDPEMBFV.js → chunk-B7RHBKHL.js} +2 -2
- package/dist/cli/chunks/{chunk-DEGWCUMY.js → chunk-BAYGQRNP.js} +2 -2
- package/dist/cli/chunks/{chunk-ONCH5AXU.js → chunk-BIXRTOH3.js} +18 -18
- package/dist/cli/chunks/{chunk-U4TV75AC.js → chunk-BO7UFNYV.js} +2 -2
- package/dist/cli/chunks/{chunk-FNAYDITO.js → chunk-BUTGIVKW.js} +1 -1
- package/dist/cli/chunks/{chunk-HBYQYGXP.js → chunk-BXATKI5S.js} +2 -2
- package/dist/cli/chunks/{chunk-BO4PKNYP.js → chunk-CCL436IU.js} +32 -27
- package/dist/cli/chunks/{chunk-XIE7OHML.js → chunk-CEXNW5TR.js} +1 -1
- package/dist/cli/chunks/{chunk-663ZFPUL.js → chunk-CLAMMGY3.js} +2 -2
- package/dist/cli/chunks/{chunk-PVAE65B4.js → chunk-CR66HNAE.js} +1 -1
- package/dist/cli/chunks/{chunk-LRASYSGV.js → chunk-CZBIREL5.js} +2 -2
- package/dist/cli/chunks/{chunk-WLIYWBQR.js → chunk-D5N2O5EH.js} +2 -2
- package/dist/cli/chunks/{chunk-A337MD3C.js → chunk-DA7DGDTI.js} +2 -2
- package/dist/cli/chunks/{chunk-WC47GICZ.js → chunk-DLSFT6PO.js} +2 -2
- package/dist/cli/chunks/{chunk-KHCALIFP.js → chunk-DQNUPEY5.js} +2 -2
- package/dist/cli/chunks/{chunk-GTSOFCMQ.js → chunk-EECF4CMA.js} +1 -1
- package/dist/cli/chunks/{chunk-5BOZCMXZ.js → chunk-EF5UHDCG.js} +1 -1
- package/dist/cli/chunks/{chunk-L6SVCNXK.js → chunk-EJ4KZFZN.js} +1 -1
- package/dist/cli/chunks/{chunk-CFPR24YK.js → chunk-ELI4GDQO.js} +2 -2
- package/dist/cli/chunks/{chunk-KJ3KBP24.js → chunk-F3KS3TAB.js} +2 -2
- package/dist/cli/chunks/{chunk-RMJ7PJOS.js → chunk-F7A2UBZO.js} +2 -2
- package/dist/cli/chunks/{chunk-U6OVPMQX.js → chunk-FOJRPEIP.js} +2 -2
- package/dist/cli/chunks/{chunk-JYY7AYGA.js → chunk-FQ5N666N.js} +1 -1
- package/dist/cli/chunks/{chunk-4XSCZVON.js → chunk-FU7LNUD7.js} +2 -2
- package/dist/cli/chunks/{chunk-OW42F2TX.js → chunk-GFB6BZWU.js} +2 -2
- package/dist/cli/chunks/{chunk-JI77KJP7.js → chunk-GI5HWS4H.js} +1 -1
- package/dist/cli/chunks/{chunk-4UXPDV7E.js → chunk-GNYOHZVV.js} +1 -1
- package/dist/cli/chunks/{chunk-VCKDVOPD.js → chunk-GVRFSXY6.js} +2 -2
- package/dist/cli/chunks/{chunk-PURHGLEC.js → chunk-GWM4M5NF.js} +1 -1
- package/dist/cli/chunks/{chunk-BY646JOM.js → chunk-HAN4MS5T.js} +2 -2
- package/dist/cli/chunks/{chunk-OGYWWZU7.js → chunk-HEGGV2PT.js} +2 -2
- package/dist/cli/chunks/{chunk-FHUJCVT3.js → chunk-HOEWMEF2.js} +2 -2
- package/dist/cli/chunks/{chunk-CXOXUBYU.js → chunk-HZFK2Z2Z.js} +1 -1
- package/dist/cli/chunks/chunk-I7WAW7TM.js +2 -0
- package/dist/cli/chunks/{chunk-E4VIVMDL.js → chunk-IEPWO4XP.js} +2 -2
- package/dist/cli/chunks/{chunk-DTJODGCE.js → chunk-ITIJ23K2.js} +2 -2
- package/dist/cli/chunks/{chunk-AQN5EDBM.js → chunk-IVJIHZSM.js} +1 -1
- package/dist/cli/chunks/{chunk-PHP4UJYP.js → chunk-JAPBSSFY.js} +1 -1
- package/dist/cli/chunks/{chunk-A2WOQO2N.js → chunk-JCE76MPP.js} +2 -2
- package/dist/cli/chunks/{chunk-A5J4XJS6.js → chunk-JPJEAK4G.js} +1 -1
- package/dist/cli/chunks/{chunk-3OAQPN2N.js → chunk-JYKQVYX2.js} +2 -2
- package/dist/cli/chunks/{chunk-MQGEZA2A.js → chunk-K55EAWZ5.js} +2 -2
- package/dist/cli/chunks/chunk-KCB6P463.js +3 -0
- package/dist/cli/chunks/{chunk-L375O3CZ.js → chunk-KIDOBLUO.js} +2 -2
- package/dist/cli/chunks/{chunk-NLDFNAOS.js → chunk-KYVIOC3C.js} +2 -2
- package/dist/cli/chunks/{chunk-CQMHDAJS.js → chunk-L2TDHJR3.js} +2 -2
- package/dist/cli/chunks/{chunk-FE3AIZI6.js → chunk-L4D3TPFP.js} +1 -1
- package/dist/cli/chunks/{chunk-VLOIEVER.js → chunk-LAY7NCQK.js} +3 -3
- package/dist/cli/chunks/{chunk-WT3JC4A6.js → chunk-LCCTJ2PC.js} +2 -2
- package/dist/cli/chunks/{chunk-VML4SG3X.js → chunk-LJCEDTUM.js} +3 -3
- package/dist/cli/chunks/{chunk-NF6AFIAX.js → chunk-LMAEMVPA.js} +1 -1
- package/dist/cli/chunks/{chunk-2XYTS2WY.js → chunk-LZWJ5BMP.js} +2 -2
- package/dist/cli/chunks/{chunk-PHAQWAEV.js → chunk-MP3FSUNB.js} +2 -2
- package/dist/cli/chunks/{chunk-IJ2EXSMO.js → chunk-MQCTLTGE.js} +2 -2
- package/dist/cli/chunks/{chunk-GRIPCYW5.js → chunk-MQTA6KIO.js} +1 -1
- package/dist/cli/chunks/{chunk-GGDKOJVF.js → chunk-NBUXM5X6.js} +10 -6
- package/dist/cli/chunks/{chunk-DPYDUKVZ.js → chunk-NHRF3V4B.js} +2 -2
- package/dist/cli/chunks/chunk-NMY4KTWA.js +16 -0
- package/dist/cli/chunks/chunk-NYS2GUNO.js +2 -0
- package/dist/cli/chunks/{chunk-AUZXRFOX.js → chunk-ONPPBLRB.js} +2 -2
- package/dist/cli/chunks/{chunk-HGBJ2QQ4.js → chunk-OPDZBRIL.js} +2 -2
- package/dist/cli/chunks/{chunk-DXVZBJE4.js → chunk-OQ4S6B7P.js} +1 -1
- package/dist/cli/chunks/{chunk-Y2WMPEUP.js → chunk-ORBODZSO.js} +2 -2
- package/dist/cli/chunks/{chunk-IJOFZBXD.js → chunk-ORFL3YXB.js} +2 -2
- package/dist/cli/chunks/{chunk-BMWAWZAN.js → chunk-P7DXVL2S.js} +2 -2
- package/dist/cli/chunks/chunk-PEMSXSP2.js +4 -0
- package/dist/cli/chunks/chunk-PS6WFCA4.js +6 -0
- package/dist/cli/chunks/{chunk-DPV33C77.js → chunk-Q2RBOC7V.js} +2 -2
- package/dist/cli/chunks/{chunk-3AYYGR6W.js → chunk-QLKUCMZC.js} +1 -1
- package/dist/cli/chunks/{chunk-EVCFUYYK.js → chunk-QLYO3H7E.js} +9 -9
- package/dist/cli/chunks/{chunk-3SH23PS3.js → chunk-QS5KZYUZ.js} +2 -2
- package/dist/cli/chunks/{chunk-3YNP33GB.js → chunk-R363XXGH.js} +2 -2
- package/dist/cli/chunks/chunk-RD5BYLN7.js +2 -0
- package/dist/cli/chunks/{chunk-MS3Z2CP5.js → chunk-RFDFET3O.js} +2 -2
- package/dist/cli/chunks/{chunk-ZLBBX24Q.js → chunk-RHIQ6QO5.js} +357 -351
- package/dist/cli/chunks/chunk-RLB7K7QP.js +2 -0
- package/dist/cli/chunks/{chunk-3YASZPLO.js → chunk-RUTO67PT.js} +2 -2
- package/dist/cli/chunks/{chunk-V7GNUVYI.js → chunk-RV6HSMKJ.js} +1 -1
- package/dist/cli/chunks/{chunk-4PT5KNXL.js → chunk-SOSJWM3E.js} +4 -4
- package/dist/cli/chunks/{chunk-6ZIDZ4TJ.js → chunk-SV5BUYHH.js} +2 -2
- package/dist/cli/chunks/{chunk-ZTC5FBL6.js → chunk-TL5GV3PR.js} +8 -8
- package/dist/cli/chunks/{chunk-GKPRECLL.js → chunk-TLUIO37P.js} +2 -2
- package/dist/cli/chunks/{chunk-FWYJ6UDX.js → chunk-TUDENMAE.js} +2 -2
- package/dist/cli/chunks/chunk-TVLOED6O.js +2 -0
- package/dist/cli/chunks/{chunk-3QD7U3FY.js → chunk-UB6DQGWM.js} +2 -2
- package/dist/cli/chunks/{chunk-SAPIRK2G.js → chunk-UHHMAKPE.js} +1 -1
- package/dist/cli/chunks/{chunk-35MDATQE.js → chunk-ULCHPPW2.js} +1 -1
- package/dist/cli/chunks/chunk-V3OLS2NG.js +2 -0
- package/dist/cli/chunks/{chunk-UXZEVIFX.js → chunk-VAYZ5QIE.js} +1 -1
- package/dist/cli/chunks/{chunk-VH3EB6ZG.js → chunk-VCONCVSY.js} +3 -3
- package/dist/cli/chunks/{chunk-QPV3OKX2.js → chunk-VVF337SV.js} +2 -2
- package/dist/cli/chunks/{chunk-XNHB6TLC.js → chunk-WKDWRRDT.js} +2 -2
- package/dist/cli/chunks/{chunk-RUJLVJDE.js → chunk-X2DR27AY.js} +2 -2
- package/dist/cli/chunks/{chunk-47GEI2LT.js → chunk-X33F7NXH.js} +3 -3
- package/dist/cli/chunks/{chunk-MB4VFAJC.js → chunk-XBEI2JBA.js} +2 -2
- package/dist/cli/chunks/{chunk-OQDC7GCM.js → chunk-XBFQJZWX.js} +2 -2
- package/dist/cli/chunks/{chunk-EAYQCBXL.js → chunk-XFPQIWEH.js} +3 -3
- package/dist/cli/chunks/{chunk-2KWI3MT3.js → chunk-XPB5BVU6.js} +2 -2
- package/dist/cli/chunks/{chunk-DL5JENWD.js → chunk-XQ53PZEF.js} +3 -3
- package/dist/cli/chunks/{chunk-BZFT4QDQ.js → chunk-XZ46CI35.js} +2 -2
- package/dist/cli/chunks/chunk-YLNYPQDR.js +2 -0
- package/dist/cli/chunks/{chunk-EOR3RECZ.js → chunk-YNG7E26C.js} +2 -2
- package/dist/cli/chunks/{chunk-6JFGB2JB.js → chunk-YXU35GGD.js} +1 -1
- package/dist/cli/chunks/{chunk-JNMUVBAJ.js → chunk-ZCP4P6O2.js} +2 -2
- package/dist/cli/chunks/{chunk-Y7GPLOXB.js → chunk-ZL5LJT7D.js} +2 -2
- package/dist/cli/chunks/{chunk-PCCIZFD7.js → chunk-ZOUEQ6DL.js} +1 -1
- package/dist/cli/chunks/{chunk-FQKEZVN6.js → chunk-ZSBD4FUX.js} +2 -2
- package/dist/cli/chunks/chunk-ZTB32K5N.js +5 -0
- package/dist/cli/chunks/{chunk-X52TMBHU.js → chunk-ZUTFHGEO.js} +1 -1
- package/dist/cli/chunks/ci-GEJCXMBK.js +81 -0
- package/dist/cli/chunks/{ci-config-XDDZOOEI.js → ci-config-2ZVV4OXL.js} +2 -2
- package/dist/cli/chunks/{ci-output-7ZUQI4U6.js → ci-output-E45OGVPR.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-ALXKCFAL.js → circuit-breaker-X73ITYZC.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-RL7K2NI2.js → claude-flow-setup-W4PPH46C.js} +2 -2
- package/dist/cli/chunks/client-6XKSQ4JT.js +2 -0
- package/dist/cli/chunks/{cline-installer-2Z2QQKC3.js → cline-installer-NUEPMWDE.js} +2 -2
- package/dist/cli/chunks/{code-QSZTDINQ.js → code-6WQHBS7G.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-5CGR5D3Y.js → code-index-extractor-BXQIFIFT.js} +2 -2
- package/dist/cli/chunks/{codex-installer-7JLSEDE5.js → codex-installer-Z337R2KH.js} +2 -2
- package/dist/cli/chunks/{completions-U4NBSXEB.js → completions-F5DMYFHV.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-WYZD2YSY.js → complexity-analyzer-W2SYPZDI.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-UPXINJFT.js → continuedev-installer-ZCHUIFTN.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-WIVYQRIF.js → copilot-installer-M5JNODXF.js} +2 -2
- package/dist/cli/chunks/core-handlers-OJYW4Y6M.js +2 -0
- package/dist/cli/chunks/{cost-tracker-RIN4JDDM.js → cost-tracker-LSYTHBHV.js} +2 -2
- package/dist/cli/chunks/coverage-PGMRS5SS.js +49 -0
- package/dist/cli/chunks/cross-domain-router-QVUPQ2SC.js +2 -0
- package/dist/cli/chunks/{cursor-installer-POM7NGCC.js → cursor-installer-XPUA73UW.js} +2 -2
- package/dist/cli/chunks/{daemon-HFGKQ6LB.js → daemon-ITKDIYMW.js} +5 -5
- package/dist/cli/chunks/daemon-QBYTCIMH.js +10 -0
- package/dist/cli/chunks/{dag-attention-scheduler-HJXM7Q5P.js → dag-attention-scheduler-T55AXLD6.js} +2 -2
- package/dist/cli/chunks/{detect-XKQGLZYN.js → detect-DR7J6K4O.js} +2 -2
- package/dist/cli/chunks/{dist-node-SSKB53QL.js → dist-node-LAJJBOUT.js} +2 -2
- package/dist/cli/chunks/{domain-handler-6BNDHATU.js → domain-handler-OMSHCRMK.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-DOX54YE3.js → domain-plugins-EQXSKC5K.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-FW4ZX3Z7.js → domain-transfer-FKRAGVSW.js} +2 -2
- package/dist/cli/chunks/dream-3UABDRZJ.js +2 -0
- package/dist/cli/chunks/embed-and-insert-pattern-JZFPCNL3.js +3 -0
- package/dist/cli/chunks/{eval-K7E4XXBS.js → eval-JSNNASBW.js} +2 -2
- package/dist/cli/chunks/experience-capture-middleware-UPD3IZBK.js +40 -0
- package/dist/cli/chunks/{fast-paths-5JXXTYAG.js → fast-paths-YNMIBS2E.js} +2 -2
- package/dist/cli/chunks/{feature-flags-2CR3CO23.js → feature-flags-SRLXDKBI.js} +2 -2
- package/dist/cli/chunks/{feature-flags-RB72LHOJ.js → feature-flags-VIR7O4L7.js} +2 -2
- package/dist/cli/chunks/file-discovery-ZFGZTKZ4.js +2 -0
- package/dist/cli/chunks/{fleet-SDU7QEOA.js → fleet-K2ED46EL.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-AWCFODUV.js → gnn-wrapper-QCU4ZRYW.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-A4PJ3NFP.js → heartbeat-handler-YYQI4WZM.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-MJ6MTPDF.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-FQWJCFVW.js +2 -0
- package/dist/cli/chunks/hnsw-index-NJYKJUHC.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-KRS7SSFM.js → hnsw-legacy-bridge-C5TJSWTZ.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-OGGCPKPO.js → hnswlib-node-SE3MJJYS.js} +2 -2
- package/dist/cli/chunks/{hooks-XNRNMUBW.js → hooks-C572SRDH.js} +43 -43
- package/dist/cli/chunks/hybrid-backend-SL7RFID7.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-X35LTXYT.js → hypergraph-engine-35A6G3M5.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-M6THKAG6.js → hypergraph-handler-U2756CWI.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-5ZJTXPVC.js +2 -0
- package/dist/cli/chunks/init-handler-PCLYQUSB.js +88 -0
- package/dist/cli/chunks/init-wizard-MQMDSIOF.js +2 -0
- package/dist/cli/chunks/kernel-MEJ5GMRH.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-TEPR2ZJD.js → kilocode-installer-32PX5YH7.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-RUKHGDEE.js → kiro-installer-C4ROMMUS.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-XUBZSEZE.js +2 -0
- package/dist/cli/chunks/learning-GEPVZGJQ.js +122 -0
- package/dist/cli/chunks/{llm-router-7GECMDCP.js → llm-router-XRKTTJTX.js} +4 -4
- package/dist/cli/chunks/llm-router-service-QZAPAEPX.js +2 -0
- package/dist/cli/chunks/{load-NTJ4Y4ZR.js → load-XVH6HW7E.js} +2 -2
- package/dist/cli/chunks/load-test-OVXIQ3AF.js +2 -0
- package/dist/cli/chunks/{mcp-4335GTTG.js → mcp-IULSTM4Z.js} +2 -2
- package/dist/cli/chunks/{memory-HYC4M4XS.js → memory-6K7IAU4T.js} +5 -5
- package/dist/cli/chunks/memory-backend-TRPOMPK4.js +2 -0
- package/dist/cli/chunks/memory-handlers-CG6DRLAW.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-T7FYKM6T.js → multi-model-executor-VZDUYPLX.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-3USXVT5M.js → opencode-installer-QUTXKNH4.js} +2 -2
- package/dist/cli/chunks/orchestrator-PCKKUWOP.js +452 -0
- package/dist/cli/chunks/pattern-null-store-JWYBRBZG.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-CMZLPX2K.js → pattern-usage-recorder-PX5HQVRL.js} +2 -2
- package/dist/cli/chunks/{pipeline-BTRZOVSL.js → pipeline-O562GTOG.js} +2 -2
- package/dist/cli/chunks/{platform-2MCRKC25.js → platform-PM7Q2AZS.js} +2 -2
- package/dist/cli/chunks/plugin-OTYTFGPY.js +27 -0
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-TXFEMBP6.js → prime-radiant-advanced-wasm-6CFXTHC2.js} +2 -2
- package/dist/cli/chunks/project-root-VVSTHIP4.js +2 -0
- package/dist/cli/chunks/protocol-executor-PXZCLZD3.js +2 -0
- package/dist/cli/chunks/{protocol-handler-DZ26OYVZ.js → protocol-handler-PPGNSAOS.js} +2 -2
- package/dist/cli/chunks/{prove-QWONEJWX.js → prove-WQ3BKRZG.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-42FRS5V3.js +2 -0
- package/dist/cli/chunks/{quality-WFH54FY7.js → quality-C5WUU3AA.js} +2 -2
- package/dist/cli/chunks/{quality-gate-ONJB7XU7.js → quality-gate-WSSRKD5U.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-UI3B7DI6.js +2 -0
- package/dist/cli/chunks/real-embeddings-CFQE7IRQ.js +2 -0
- package/dist/cli/chunks/{ref-validation-HW5Y55ZC.js → ref-validation-DHKHXVZT.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-5OABDNZT.js → roocode-installer-3PPODABV.js} +2 -2
- package/dist/cli/chunks/router-HYRPWLAY.js +2 -0
- package/dist/cli/chunks/routing-feedback-BPZ5R6F3.js +2 -0
- package/dist/cli/chunks/{routing-handler-CVHVOQTC.js → routing-handler-JNXTGT6T.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-KKDKFGIQ.js → ruvector-commands-6YLROPVP.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-DEKDQ6KO.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-L53VBS7I.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-4DWB4WRK.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-I6RUGD2D.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-UGUXKIFX.js → rvf-store-integrity-YKR2ZNBF.js} +2 -2
- package/dist/cli/chunks/safe-db-KS65XDCP.js +2 -0
- package/dist/cli/chunks/schedule-KD2VN6GB.js +2 -0
- package/dist/cli/chunks/scheduler-ZH3RMUHY.js +2 -0
- package/dist/cli/chunks/{security-7723AZZ4.js → security-PWQTGDRU.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-LNRLFP5I.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-ZSHYG5IA.js → shared-rvf-dual-writer-GWU6YQNS.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-6DTVME5D.js +2 -0
- package/dist/cli/chunks/{standalone-memory-MHZEEYMK.js → standalone-memory-46KKBSSV.js} +2 -2
- package/dist/cli/chunks/{status-handler-JKXPJ22K.js → status-handler-35T5FTDQ.js} +2 -2
- package/dist/cli/chunks/{structural-health-J4RKCYWF.js → structural-health-P7QPQWLO.js} +2 -2
- package/dist/cli/chunks/{sync-PDPORHVN.js → sync-W6Z4R4PL.js} +2 -2
- package/dist/cli/chunks/sync-Y43EWBSY.js +2 -0
- package/dist/cli/chunks/{task-handler-VERADM44.js → task-handler-5CX3ZYT7.js} +2 -2
- package/dist/cli/chunks/{task-handlers-4RUCWUR2.js → task-handlers-DQZGOJNE.js} +3 -3
- package/dist/cli/chunks/{test-DMBJFQNL.js → test-TPP53VVV.js} +12 -12
- package/dist/cli/chunks/{test-scheduling-LUPTVGCD.js → test-scheduling-WBV4UMQH.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-GIIDXHLC.js +2 -0
- package/dist/cli/chunks/{token-usage-VOA34IKM.js → token-usage-AKK37RB7.js} +2 -2
- package/dist/cli/chunks/{transformers-GU4TYAN5.js → transformers-7MASPELS.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-MZPXAH7C.js → tree-sitter-wasm-parser-YZKD6UGB.js} +2 -2
- package/dist/cli/chunks/{types-K4FLXR2K.js → types-AZ3BTXDP.js} +2 -2
- package/dist/cli/chunks/unified-memory-FCX7NLFZ.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-VU5QJK37.js +2 -0
- package/dist/cli/chunks/unified-persistence-FM376LGE.js +2 -0
- package/dist/cli/chunks/{upgrade-M3ATDRMK.js → upgrade-L7OTDKEK.js} +2 -2
- package/dist/cli/chunks/{validate-AAP773B3.js → validate-O3QVFIGP.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-7RGAZX5F.js → validate-swarm-2UGBGLTX.js} +2 -2
- package/dist/cli/chunks/visual-security-EU7Y3X46.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-GQMRHGGI.js → web-tree-sitter-J75IYPRO.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-HG6HF2GF.js → windsurf-installer-FQ5DBFCG.js} +2 -2
- package/dist/cli/chunks/witness-chain-CSEBT52D.js +2 -0
- package/dist/cli/chunks/{witness-chain-WKU3ZIBQ.js → witness-chain-I7TN4MXZ.js} +2 -2
- package/dist/cli/chunks/witness-chain-repair-D3NE3NQK.js +2 -0
- package/dist/cli/chunks/{witness-chain-verifier-Q2KW3QEQ.js → witness-chain-verifier-RU2WOP5M.js} +2 -2
- package/dist/cli/chunks/witness-key-manager-IHQB2FR5.js +2 -0
- package/dist/cli/chunks/{workflow-CX6SHFBW.js → workflow-6BWTNVV6.js} +28 -28
- package/dist/cli/chunks/workflow-orchestrator-ALNKOM3N.js +2 -0
- package/dist/cli/chunks/wrappers-URVP25VU.js +2 -0
- package/dist/cli/commands/ci.js +47 -25
- package/dist/cli/commands/coverage.d.ts +1 -28
- package/dist/cli/commands/coverage.js +63 -134
- package/dist/cli/commands/daemon.js +7 -1
- package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +15 -0
- package/dist/cli/commands/hooks-handlers/stats-hooks.js +54 -2
- package/dist/cli/commands/learning.js +47 -7
- package/dist/cli/commands/test.js +6 -7
- package/dist/cli/commands/workflow.js +9 -5
- package/dist/cli/handlers/init-guard.d.ts +13 -0
- package/dist/cli/handlers/init-guard.js +23 -0
- package/dist/cli/handlers/init-handler.d.ts +3 -0
- package/dist/cli/handlers/init-handler.js +9 -0
- package/dist/cli/handlers/interfaces.js +5 -1
- package/dist/cli/scheduler/persistent-scheduler.d.ts +6 -2
- package/dist/cli/scheduler/persistent-scheduler.js +107 -41
- package/dist/cli/utils/ci-output.d.ts +8 -1
- package/dist/cli/utils/ci-output.js +13 -2
- package/dist/cli/utils/coverage-data.d.ts +3 -0
- package/dist/cli/utils/coverage-data.js +14 -39
- package/dist/cli/utils/coverage-verdict.d.ts +130 -0
- package/dist/cli/utils/coverage-verdict.js +193 -0
- package/dist/cli/utils/file-discovery.js +5 -0
- package/dist/coordination/deterministic-actions.js +24 -13
- package/dist/coordination/handlers/code-intelligence-handlers.d.ts +8 -0
- package/dist/coordination/handlers/code-intelligence-handlers.js +39 -0
- package/dist/coordination/handlers/coverage-handlers.js +34 -6
- package/dist/coordination/handlers/coverage-runner.d.ts +22 -0
- package/dist/coordination/handlers/coverage-runner.js +105 -10
- package/dist/coordination/handlers/coverage-target.d.ts +1 -0
- package/dist/coordination/handlers/coverage-target.js +4 -1
- package/dist/coordination/handlers/handler-types.d.ts +9 -0
- package/dist/coordination/handlers/handler-utils.d.ts +14 -1
- package/dist/coordination/handlers/handler-utils.js +46 -22
- package/dist/coordination/handlers/quality-handlers.js +108 -18
- package/dist/coordination/handlers/test-execution-handlers.js +4 -1
- package/dist/coordination/protocols/defect-investigation.d.ts +2 -1
- package/dist/coordination/protocols/defect-investigation.js +6 -3
- package/dist/coordination/protocols/quality-gate.js +10 -6
- package/dist/coordination/result-saver.d.ts +22 -0
- package/dist/coordination/result-saver.js +113 -43
- package/dist/coordination/task-executor.d.ts +7 -0
- package/dist/coordination/task-executor.js +32 -3
- package/dist/domains/code-intelligence/plugin.js +4 -0
- package/dist/domains/code-intelligence/services/metric-collector/index.js +9 -2
- package/dist/domains/code-intelligence/services/metric-collector/interfaces.d.ts +21 -0
- package/dist/domains/code-intelligence/services/metric-collector/interfaces.js +25 -0
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +12 -0
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +69 -3
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +4 -1
- package/dist/domains/coverage-analysis/collected-metrics.d.ts +33 -0
- package/dist/domains/coverage-analysis/collected-metrics.js +36 -0
- package/dist/domains/coverage-analysis/coordinator.js +18 -6
- package/dist/domains/coverage-analysis/interfaces.d.ts +44 -0
- package/dist/domains/coverage-analysis/interfaces.js +6 -1
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +61 -34
- package/dist/domains/coverage-analysis/services/gap-detector.js +7 -2
- package/dist/domains/defect-intelligence/plugin.js +4 -0
- package/dist/domains/defect-intelligence/services/defect-predictor.js +6 -4
- package/dist/domains/learning-optimization/coordinator.js +4 -0
- package/dist/domains/learning-optimization/plugin.js +4 -0
- package/dist/domains/quality-assessment/coordinator-rl-integration.d.ts +14 -0
- package/dist/domains/quality-assessment/coordinator-rl-integration.js +54 -16
- package/dist/domains/quality-assessment/coordinator.js +10 -6
- package/dist/domains/quality-assessment/coverage-report-event.d.ts +32 -8
- package/dist/domains/quality-assessment/coverage-report-event.js +28 -6
- package/dist/domains/quality-assessment/index.d.ts +1 -1
- package/dist/domains/quality-assessment/interfaces.d.ts +46 -0
- package/dist/domains/quality-assessment/quality-evidence.d.ts +48 -2
- package/dist/domains/quality-assessment/quality-evidence.js +62 -0
- package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +23 -2
- package/dist/domains/quality-assessment/services/quality-analyzer.js +192 -109
- package/dist/domains/security-compliance/services/scanners/dast-scanner.js +22 -16
- package/dist/domains/test-execution/interfaces.d.ts +10 -6
- package/dist/domains/test-execution/plugin.js +4 -0
- package/dist/domains/test-execution/services/test-executor.js +152 -102
- package/dist/domains/test-generation/coordinator.js +4 -0
- package/dist/domains/test-generation/plugin.js +4 -0
- package/dist/feedback/coverage-learner.js +4 -1
- package/dist/feedback/coverage-session-provenance.d.ts +29 -0
- package/dist/feedback/coverage-session-provenance.js +39 -0
- package/dist/init/orchestrator.js +2 -0
- package/dist/init/phases/09-assets.d.ts +4 -0
- package/dist/init/phases/09-assets.js +35 -0
- package/dist/init/retired-assets.d.ts +86 -0
- package/dist/init/retired-assets.js +230 -0
- package/dist/init/skills-installer.d.ts +2 -0
- package/dist/init/skills-installer.js +4 -0
- package/dist/init/types.d.ts +3 -0
- package/dist/integrations/ruvector/rvf-native-adapter.d.ts +2 -0
- package/dist/integrations/ruvector/rvf-native-adapter.js +5 -0
- package/dist/integrations/ruvector/server-client.js +4 -12
- package/dist/kernel/project-root.d.ts +17 -0
- package/dist/kernel/project-root.js +54 -2
- package/dist/kernel/shared-dirs.d.ts +66 -0
- package/dist/kernel/shared-dirs.js +168 -0
- package/dist/learning/daily-log.js +2 -1
- package/dist/learning/experience-capture-middleware.d.ts +22 -0
- package/dist/learning/experience-capture-middleware.js +35 -0
- package/dist/learning/learnable-result.d.ts +16 -0
- package/dist/learning/learnable-result.js +24 -0
- package/dist/learning/pattern-mutation-error.d.ts +8 -0
- package/dist/learning/pattern-mutation-error.js +12 -0
- package/dist/learning/qe-reasoning-bank.d.ts +10 -0
- package/dist/learning/qe-reasoning-bank.js +50 -1
- package/dist/learning/rvf-reconcile.d.ts +39 -0
- package/dist/learning/rvf-reconcile.js +40 -0
- package/dist/learning/sqlite-persistence.d.ts +14 -0
- package/dist/learning/sqlite-persistence.js +36 -0
- package/dist/mcp/bundle.js +516 -504
- package/dist/mcp/handlers/domain-handler-configs.d.ts +31 -1
- package/dist/mcp/handlers/domain-handler-configs.js +37 -3
- package/dist/mcp/handlers/handler-factory.js +40 -14
- package/dist/mcp/protocol-server.js +27 -2
- package/dist/mcp/tool-cache-scope.d.ts +31 -0
- package/dist/mcp/tool-cache-scope.js +71 -0
- package/dist/mcp/tools/code-intelligence/analyze.js +5 -3
- package/dist/mcp/types.d.ts +4 -0
- package/dist/optimization/session-cache.d.ts +19 -1
- package/dist/optimization/session-cache.js +36 -2
- package/dist/plugins/cache.js +2 -1
- package/dist/plugins/sources/github.js +2 -1
- package/dist/plugins/sources/npm.js +2 -1
- package/dist/shared/aqe-managed-dirs.d.ts +24 -0
- package/dist/shared/aqe-managed-dirs.js +56 -0
- package/dist/shared/events/domain-events.d.ts +18 -3
- package/dist/shared/events/domain-events.js +4 -0
- package/dist/shared/http/http-client.d.ts +6 -0
- package/dist/shared/http/http-client.js +13 -15
- package/dist/shared/io/file-reader.d.ts +26 -0
- package/dist/shared/io/file-reader.js +111 -17
- package/dist/shared/llm/providers/response-deadline.d.ts +7 -2
- package/dist/shared/llm/providers/response-deadline.js +17 -5
- package/dist/shared/metrics/code-metrics.d.ts +24 -0
- package/dist/shared/metrics/code-metrics.js +93 -6
- package/dist/shared/metrics/index.d.ts +1 -1
- package/dist/workers/interfaces.d.ts +9 -1
- package/dist/workers/quality-daemon/coverage-delta.d.ts +4 -3
- package/dist/workers/quality-daemon/coverage-delta.js +13 -6
- package/dist/workers/quality-daemon/index.js +6 -5
- package/dist/workers/quality-daemon/notification-service.js +3 -3
- package/dist/workers/quality-daemon/persistent-memory.d.ts +2 -2
- package/dist/workers/quality-daemon/persistent-memory.js +2 -2
- package/dist/workers/worker-manager.js +5 -1
- package/dist/workers/workers/coverage-tracker.js +69 -33
- package/dist/workers/workers/regression-monitor.d.ts +18 -1
- package/dist/workers/workers/regression-monitor.js +276 -117
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-EGIPTX5H.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-WP4GCBDT.js +0 -2
- package/dist/cli/chunks/base-6ORFD62I.js +0 -2
- package/dist/cli/chunks/browser-workflow-PIXGERWP.js +0 -2
- package/dist/cli/chunks/chunk-2WFTZSRT.js +0 -2
- package/dist/cli/chunks/chunk-7YB2KELI.js +0 -5
- package/dist/cli/chunks/chunk-BBL6YXD3.js +0 -2
- package/dist/cli/chunks/chunk-BJ5P4IV2.js +0 -2
- package/dist/cli/chunks/chunk-DFPL5N3Q.js +0 -16
- package/dist/cli/chunks/chunk-DLY4YEN3.js +0 -2
- package/dist/cli/chunks/chunk-ERGWWI4Y.js +0 -3
- package/dist/cli/chunks/chunk-KZVJW2SD.js +0 -2
- package/dist/cli/chunks/chunk-L336HFFE.js +0 -2
- package/dist/cli/chunks/chunk-N2TJNIHA.js +0 -2
- package/dist/cli/chunks/chunk-RCXMUEZN.js +0 -3
- package/dist/cli/chunks/chunk-SEZLYRCS.js +0 -2
- package/dist/cli/chunks/chunk-TDLKXLJC.js +0 -4
- package/dist/cli/chunks/chunk-WOZIXXY5.js +0 -7
- package/dist/cli/chunks/ci-KP4GZKJ7.js +0 -81
- package/dist/cli/chunks/client-C3KHVRM6.js +0 -2
- package/dist/cli/chunks/core-handlers-KSQM6Q6S.js +0 -2
- package/dist/cli/chunks/coverage-SPFVHRRU.js +0 -43
- package/dist/cli/chunks/coverage-target-GSRBNHXE.js +0 -2
- package/dist/cli/chunks/cross-domain-router-CTGNOVCF.js +0 -2
- package/dist/cli/chunks/daemon-M5TD5Y6T.js +0 -10
- package/dist/cli/chunks/dream-MIK2E4UL.js +0 -2
- package/dist/cli/chunks/embed-and-insert-pattern-QST77T2B.js +0 -3
- package/dist/cli/chunks/experience-capture-middleware-X66IYSRV.js +0 -40
- package/dist/cli/chunks/file-discovery-3NHRUQQB.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-OCKRACUW.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-X67XG73C.js +0 -2
- package/dist/cli/chunks/hnsw-index-I7KCQBQR.js +0 -2
- package/dist/cli/chunks/hybrid-backend-FOUHTKAK.js +0 -2
- package/dist/cli/chunks/impact-analyzer-GXYVX46O.js +0 -2
- package/dist/cli/chunks/init-handler-2AXMXHYF.js +0 -86
- package/dist/cli/chunks/init-wizard-C2MRX2QG.js +0 -2
- package/dist/cli/chunks/kernel-Q2IUDIDC.js +0 -2
- package/dist/cli/chunks/knowledge-graph-E2Z6K5EE.js +0 -2
- package/dist/cli/chunks/learning-BEA26RNA.js +0 -122
- package/dist/cli/chunks/llm-router-service-YATYFEDD.js +0 -2
- package/dist/cli/chunks/load-test-LV77JXWA.js +0 -2
- package/dist/cli/chunks/memory-backend-XME3X3QX.js +0 -2
- package/dist/cli/chunks/memory-handlers-VG47X5DX.js +0 -2
- package/dist/cli/chunks/orchestrator-VHUXUYIM.js +0 -452
- package/dist/cli/chunks/pattern-null-store-TAXMLENP.js +0 -2
- package/dist/cli/chunks/plugin-2VAYWAO3.js +0 -27
- package/dist/cli/chunks/project-root-CFFPBGPX.js +0 -2
- package/dist/cli/chunks/protocol-executor-ML76QAVQ.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-LUZH6RYV.js +0 -2
- package/dist/cli/chunks/queen-coordinator-EWXNIXB6.js +0 -2
- package/dist/cli/chunks/real-embeddings-GZV4VKK4.js +0 -2
- package/dist/cli/chunks/router-MXOBVEBF.js +0 -2
- package/dist/cli/chunks/routing-feedback-T6CCRUEK.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-WHXVT3V3.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-JFPWIRCG.js +0 -2
- package/dist/cli/chunks/rvf-migration-coordinator-D4KUBNRZ.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-KOXR7TJL.js +0 -2
- package/dist/cli/chunks/safe-db-CI6IPSIN.js +0 -2
- package/dist/cli/chunks/schedule-X4HW6TVJ.js +0 -2
- package/dist/cli/chunks/scheduler-KCNJ2ON3.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-KEQ5CLNI.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-PGHU6VUR.js +0 -2
- package/dist/cli/chunks/sync-EFWXMA2H.js +0 -2
- package/dist/cli/chunks/token-bootstrap-S346YBVO.js +0 -2
- package/dist/cli/chunks/unified-memory-6CK3TUNQ.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-A7BWBGYN.js +0 -2
- package/dist/cli/chunks/unified-persistence-GEPMDBQZ.js +0 -2
- package/dist/cli/chunks/visual-security-L4J7LQWT.js +0 -2
- package/dist/cli/chunks/witness-chain-CDUMX623.js +0 -2
- package/dist/cli/chunks/witness-chain-repair-WNYH6O4L.js +0 -2
- package/dist/cli/chunks/witness-key-manager-NQ5DAAC4.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-USJDWVDR.js +0 -2
- package/dist/cli/chunks/wrappers-CZDI6Z3X.js +0 -2
- /package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.test.ts → budget-tests.ts.fixture} +0 -0
- /package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.ts → budget.ts.fixture} +0 -0
- /package/.claude/skills/testability-scoring/resources/templates/{testability-scoring.spec.template.js → testability-scoring-spec.template.js} +0 -0
- /package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.test.ts → budget-tests.ts.fixture} +0 -0
- /package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.ts → budget.ts.fixture} +0 -0
- /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.5");process.exit(0)}
|
|
2
|
-
import{a as q}from"./chunk-DLY4YEN3.js";import{r as Q,s as V}from"./chunk-EOR3RECZ.js";import{i as N}from"./chunk-AQN5EDBM.js";import{a as F,c as y,d}from"./chunk-3AYYGR6W.js";import{a as h,b as M,e as H}from"./chunk-NLDFNAOS.js";import{f as U}from"./chunk-HLFDC4SF.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.5");process.exit(0)}
|
|
2
|
-
import{i as e}from"./chunk-AQN5EDBM.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,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.5");process.exit(0)}
|
|
2
|
-
import*as h from"fs";import*as p from"path";var x=["coverage/coverage-final.json","coverage/coverage-summary.json",".coverage/coverage-final.json"];function S(r){for(let o of x){let s=p.join(r,o);if(h.existsSync(s))try{let t=JSON.parse(h.readFileSync(s,"utf-8"));if(t.total&&t.total.lines)return L(t,r);let a=new Map;for(let[e,i]of Object.entries(t)){let n=i,l=Object.keys(n.s),u=l.filter(c=>n.s[c]>0).length,f=Object.keys(n.b),d=0,C=0;for(let c of f)for(let g of n.b[c])d++,g>0&&C++;let y=Object.keys(n.f),F=y.filter(c=>n.f[c]>0).length,b=new Set,m=new Set;for(let c of l){let g=n.statementMap[c];for(let M=g.start.line;M<=g.end.line;M++)m.add(M),n.s[c]>0&&b.add(M)}let v=[...m].filter(c=>!b.has(c)).sort((c,g)=>c-g);a.set(e,{path:e,lines:{covered:b.size,total:m.size},branches:{covered:C,total:d},functions:{covered:F,total:y.length},statements:{covered:u,total:l.length},uncoveredLines:v,uncoveredBranches:v.slice(0,Math.floor(v.length/2))})}return a.size>0?a:null}catch{continue}}return null}function L(r,o){let s=new Map;for(let[t,a]of Object.entries(r)){if(t==="total")continue;let e=a;s.set(t,{path:t,lines:{covered:e.lines.covered,total:e.lines.total},branches:{covered:e.branches.covered,total:e.branches.total},functions:{covered:e.functions.covered,total:e.functions.total},statements:{covered:e.statements.covered,total:e.statements.total},uncoveredLines:[],uncoveredBranches:[]})}return s.size>0?s:null}function j(r,o){let t=o.split(`
|
|
3
|
-
`).length,e=[r.replace(".ts",".test.ts").replace("/src/","/tests/"),r.replace(".ts",".spec.ts").replace("/src/","/tests/"),r.replace(".ts",".test.ts"),r.replace("/src/","/test/").replace(".ts",".test.ts")].some(m=>h.existsSync(m)),i=(o.match(/\bexport\b/g)||[]).length,n=(o.match(/\b(function|=>)\b/g)||[]).length,l=(o.match(/\b(if|switch|case|\?\?|\|\|)\b/g)||[]).length,u;if(e){let m=Math.min(l*.005,.15),v=Math.min(t*1e-4,.1);u=.85-m-v}else u=.2+(i>5?.1:0);u=Math.max(.05,Math.min(.95,u));let f=Math.floor(t*u),d=Math.max(n,1),C=Math.max(l,1),y=Math.floor(f*.7),F=Math.floor(d*u*.9),b=Array.from({length:t-f},(m,v)=>v+f+1);return{path:r,lines:{covered:f,total:t},branches:{covered:Math.min(y,C),total:C},functions:{covered:Math.min(F,d),total:d},statements:{covered:f,total:t},uncoveredLines:b,uncoveredBranches:b.slice(0,Math.floor(b.length/2))}}function R(r){let o=e=>r.reduce((i,n)=>i+e(n),0),s=(e,i)=>i>0?Math.round(e/i*100):0,t=o(e=>e.lines.total),a=o(e=>e.lines.covered);return{line:s(a,t),branch:s(o(e=>e.branches.covered),o(e=>e.branches.total)),function:s(o(e=>e.functions.covered),o(e=>e.functions.total)),statement:s(a,t),files:r.length}}function w(r,o){let s=o||process.cwd(),t=S(s),a=[],e=[],i=!1;if(t&&t.size>0){i=!0;for(let n of r){let l=p.resolve(n),u=t.get(l)||t.get(n)||t.get(p.relative(s,l));u?a.push({...u,path:n}):e.push(n)}}else for(let n of r){let l=h.existsSync(n)?h.readFileSync(n,"utf-8"):"";a.push(j(n,l))}return{files:a,summary:R(a),instrumented:i,...e.length>0?{unmeasuredFiles:e}:{}}}export{R as a,w as b};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.5");process.exit(0)}
|
|
2
|
-
import{b as g}from"./chunk-HLFDC4SF.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,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.5");process.exit(0)}
|
|
2
|
-
import{a as e,c as r,d as g,g as t}from"./chunk-E4VIVMDL.js";import{b as o}from"./chunk-HLFDC4SF.js";var L=o(()=>{"use strict";e();g();t();r()});export{L as a};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.5");process.exit(0)}
|
|
2
|
-
import{b as h,d as v,f as T}from"./chunk-HLFDC4SF.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,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.5");process.exit(0)}
|
|
2
|
-
import{b as F,d as K}from"./chunk-RUSLEOMC.js";import{a as T}from"./chunk-3AYYGR6W.js";import{a as R,e as j}from"./chunk-NLDFNAOS.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.5");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,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.5");process.exit(0)}
|
|
2
|
-
import*as a from"fs";import*as m from"path";import{createRequire as z}from"node:module";var B=z(import.meta.url),b=B("semver"),L="3.15.5",y=t=>typeof t=="string"&&b.valid(t)===t.split("+")[0],E=t=>b.validRange(t)!==null,x=(t,e)=>b.satisfies(t,e),C=(t,e)=>b.compare(t,e),N=(t,e)=>C(e,t)||t.localeCompare(e);var R=class{cacheDir;keepVersions;constructor(e={}){this.cacheDir=e.cacheDir??m.join(process.cwd(),".agentic-qe","plugins"),this.keepVersions=e.keepVersions??2}has(e,n){let s=this.versionDir(e,n);return a.existsSync(s)&&a.existsSync(m.join(s,"qe-plugin.json"))}get(e,n){if(!this.has(e,n))return;let s=this.versionDir(e,n),i=a.readFileSync(m.join(s,"qe-plugin.json"),"utf-8"),r=JSON.parse(i),l=a.statSync(s);return{manifest:r,path:s,cachedAt:l.birthtime.toISOString()}}store(e,n){let s=this.versionDir(e.name,e.version);if(a.existsSync(s))return s;a.mkdirSync(s,{recursive:!0});try{this.copyDir(n,s),a.writeFileSync(m.join(s,"qe-plugin.json"),JSON.stringify(e,null,2))}catch(i){throw a.rmSync(s,{recursive:!0,force:!0}),i}return this.pruneOldVersions(e.name),s}remove(e,n){let s=this.versionDir(e,n);return a.existsSync(s)?(a.rmSync(s,{recursive:!0,force:!0}),!0):!1}listVersions(e){let n=m.join(this.cacheDir,e);if(!a.existsSync(n))return[];let s=[],i=a.readdirSync(n);for(let r of i){let l=m.join(n,r),d=m.join(l,"qe-plugin.json");if(a.existsSync(d))try{let p=a.readFileSync(d,"utf-8"),v=JSON.parse(p);if(!y(v.version)){console.warn(`[PluginCache] Skipping cached plugin ${e}@${r}: invalid version ${JSON.stringify(v.version)}`);continue}let c=a.statSync(l);s.push({manifest:v,path:l,cachedAt:c.birthtime.toISOString()})}catch{}}return s}listAll(){if(!a.existsSync(this.cacheDir))return[];let e=[],n=a.readdirSync(this.cacheDir);for(let s of n){let i=this.listVersions(s);i.length>0&&(i.sort((r,l)=>N(r.manifest.version,l.manifest.version)),e.push(i[0]))}return e}listCandidates(){return a.existsSync(this.cacheDir)?a.readdirSync(this.cacheDir).flatMap(e=>this.listVersions(e)):[]}versionDir(e,n){return m.join(this.cacheDir,e,n)}pruneOldVersions(e){let n=this.listVersions(e);if(n.length<=this.keepVersions)return;n.sort((i,r)=>i.cachedAt.localeCompare(r.cachedAt));let s=n.slice(0,n.length-this.keepVersions);for(let i of s)a.rmSync(i.path,{recursive:!0,force:!0})}copyDir(e,n){if(!a.existsSync(e))return;let s=a.readdirSync(e,{withFileTypes:!0});for(let i of s){let r=m.join(e,i.name),l=m.join(n,i.name);if(i.isDirectory()){if(i.name===".git"||i.name==="node_modules")continue;a.mkdirSync(l,{recursive:!0}),this.copyDir(r,l)}else a.copyFileSync(r,l)}}};var K=/^[a-z][a-z0-9-]*$/,Z=["aqe-core-","agentic-qe-core-"],F=64,G=500;function k(t){let e=[],n=[];if(!t||typeof t!="object")return{valid:!1,errors:["Manifest must be a non-null object"],warnings:[]};let s=t;if(!s.name||typeof s.name!="string"?e.push("name is required and must be a string"):ee(s.name,e,n),!s.version||typeof s.version!="string"?e.push("version is required and must be a string"):y(s.version)||e.push(`version "${s.version}" is not valid semver (expected: major.minor.patch)`),!s.description||typeof s.description!="string"?e.push("description is required and must be a string"):s.description.length>G&&n.push(`description exceeds ${G} characters`),(!s.author||typeof s.author!="string")&&e.push("author is required and must be a string"),!Array.isArray(s.domains)||s.domains.length===0)e.push("domains is required and must be a non-empty array");else for(let i of s.domains)if(typeof i!="string"){e.push("Each domain must be a string");break}if(!s.entryPoint||typeof s.entryPoint!="string"?e.push("entryPoint is required and must be a string"):se(s.entryPoint,e),s.dependencies!==void 0)if(typeof s.dependencies!="object"||s.dependencies===null||Array.isArray(s.dependencies))e.push("dependencies must be an object mapping plugin names to semver ranges");else for(let[i,r]of Object.entries(s.dependencies))typeof r!="string"?e.push(`Dependency "${i}" must have a string version range`):E(r)||e.push(`Dependency "${i}" has an invalid semver range`);if(s.hooks!==void 0)if(typeof s.hooks!="object"||s.hooks===null||Array.isArray(s.hooks))e.push("hooks must be an object mapping event names to handler paths");else for(let[,i]of Object.entries(s.hooks)){if(typeof i!="string"){e.push("Hook handler paths must be strings");break}i.includes("..")&&e.push(`Hook handler path "${i}" must not contain ".." (path traversal)`)}if(s.minAqeVersion!==void 0&&(typeof s.minAqeVersion!="string"||!y(s.minAqeVersion))&&e.push("minAqeVersion must be valid semver"),s.permissions!==void 0){if(!Array.isArray(s.permissions))e.push("permissions must be an array of strings");else for(let i of s.permissions)if(typeof i!="string"){e.push("Each permission must be a string");break}}return{valid:e.length===0,errors:e,warnings:n}}function T(t){let e=typeof t=="string"?JSON.parse(t):t,n=k(e);if(!n.valid)throw new Error(`Invalid plugin manifest:
|
|
3
|
-
- ${n.errors.join(`
|
|
4
|
-
- `)}`);return e}function ee(t,e,n){t.length>F&&e.push(`name must be ${F} characters or fewer`),K.test(t)||e.push("name must be lowercase alphanumeric with hyphens, starting with a letter"),/[^\x00-\x7F]/.test(t)&&e.push("name must contain only ASCII characters");for(let s of Z)t.startsWith(s)&&e.push(`name cannot start with reserved prefix "${s}"`);["plugin","test","tool"].includes(t)&&n.push(`name "${t}" is very generic \u2014 consider a more descriptive name`)}function se(t,e){t.includes("..")&&e.push('entryPoint must not contain ".." (path traversal)'),(t.startsWith("/")||t.startsWith("\\"))&&e.push("entryPoint must be a relative path"),!t.endsWith(".js")&&!t.endsWith(".ts")&&!t.endsWith(".mjs")&&e.push("entryPoint must end in .js, .ts, or .mjs")}var I=class{constructor(e=L){this.aqeVersion=e}aqeVersion;resolve(e,n){let s=new Map,i=new Map;for(let o of e){let u=s.get(o.name)??[];s.set(o.name,u);let f=this.validateVersions(o);f?i.set(o.name,[...i.get(o.name)??[],f]):u.push(o)}for(let o of s.values())o.sort((u,f)=>N(u.version,f.version));let r=new Map,l=[],d=o=>({ordered:o.map((u,f)=>({manifest:u,order:f})),missing:r,errors:l,selectedVersions:Object.fromEntries(o.map(u=>[u.name,u.version])),aqeVersion:this.aqeVersion}),p=[...n??s.keys()].sort(),v=new Set(p),c=new Map,_=0,h=!1,J=()=>{for(let o of c.values())for(let[u,f]of Object.entries(o.dependencies??{})){let g=c.get(u);if(!(g?[g]:s.get(u)??[]).some(M=>x(M.version,f)))return!1}return!0},w,X=()=>{let o=new Set,u=new Set,f=(g,P)=>{if(u.has(g))return[...P.slice(P.indexOf(g)),g];if(!o.has(g)){u.add(g);for(let M of Object.keys(c.get(g)?.dependencies??{})){let Q=f(M,[...P,g]);if(Q)return Q}u.delete(g),o.add(g)}};for(let g of c.keys()){let P=f(g,[]);if(P)return P}},j=()=>{let o=new Set(p);for(let f of c.values())for(let g of Object.keys(f.dependencies??{}))o.add(g);let u=[...o].sort().find(f=>!c.has(f));if(!u){let f=X();return f?(w=f,!1):!0}v.add(u);for(let f of s.get(u)??[]){if(++_>1e4)return h=!0,!1;if(c.set(u,f),J()&&j())return!0;if(c.delete(u),h)return!1}return!1};if(!j()){if(w&&!h)throw new Error(`Dependency cycle detected: ${w.join(" -> ")}`);for(let o of v)s.get(o)?.length||l.push(...i.get(o)??[]);for(let[o,u]of s){let f=[...new Set(u.flatMap(g=>Object.keys(g.dependencies??{})))].filter(g=>!s.has(g));f.length&&r.set(o,f)}return l.push({code:h?"RESOLUTION_LIMIT":r.size?"MISSING_DEPENDENCY":"UNSATISFIED_DEPENDENCY_RANGE",plugin:p.join(", "),message:h?"Plugin dependency search exceeded 10000 candidates":"No cached plugin selection satisfies all dependency ranges"}),d([])}let O=[],q=new Set,A=new Set,$=(o,u)=>{if(q.has(o))return;if(A.has(o))throw new Error(`Dependency cycle detected: ${[...u.slice(u.indexOf(o)),o].join(" -> ")}`);A.add(o);let f=c.get(o);for(let g of Object.keys(f.dependencies??{}))$(g,[...u,o]);A.delete(o),q.add(o),O.push(f)};for(let o of[...c.keys()].sort())$(o,[]);return d(O)}resolveAvailable(e){let n=[],s=this.resolve(e,[]),i=[],r=new Map;for(let l of[...new Set(e.map(d=>d.name))].sort())try{let d=this.resolve(e,[...n,l]);if(d.errors.length){i.push(...d.errors.map(p=>({...p,plugin:l})));for(let[p,v]of d.missing)r.set(p,v);continue}n.push(l),s=d}catch(d){i.push({code:"DEPENDENCY_CYCLE",plugin:l,message:d instanceof Error?d.message:String(d)})}return{...s,errors:i,missing:r}}canLoad(e,n){let s=Object.entries(e.dependencies??{}).filter(([i,r])=>{let l=n instanceof Set?void 0:n.get(i);return!l||!E(r)||!x(l,r)}).map(([i])=>i);return{canLoad:!this.validateVersions(e)&&s.length===0,missingDeps:s}}validateVersions(e){if(!y(e.version))return{code:"INVALID_PLUGIN_VERSION",plugin:e.name,message:"Invalid plugin version"};for(let n of Object.values(e.dependencies??{}))if(!E(n))return{code:"INVALID_DEPENDENCY_RANGE",plugin:e.name,message:"Invalid dependency range"};if(e.minAqeVersion&&(!y(e.minAqeVersion)||!y(this.aqeVersion)||C(this.aqeVersion,e.minAqeVersion)<0))return{code:"AQE_VERSION_INCOMPATIBLE",plugin:e.name,message:`Requires AQE ${e.minAqeVersion}; running ${this.aqeVersion}`}}};var ne=["aqe-core-","agentic-qe-core-","agentic-qe-internal-"],U=new Set(["aqe","agentic-qe","ruflo","claude-flow"]),te=["..","~","/etc/","/proc/","/dev/","node_modules/"];function Y(t){let e=[];return ie(t.name,e),re(t.entryPoint,e),oe(t.hooks,e),ae(t.permissions,e),{safe:e.length===0,violations:e}}function ie(t,e){/[^\x20-\x7E]/.test(t)&&e.push(`Plugin name "${t}" contains non-ASCII characters`),U.has(t.toLowerCase())&&e.push(`Plugin name "${t}" is a reserved name`);for(let s of ne)t.toLowerCase().startsWith(s)&&e.push(`Plugin name "${t}" uses reserved prefix "${s}"`);let n=t.toLowerCase().replace(/[0o]/g,"o").replace(/[1il]/g,"l").replace(/[-_]/g,"");U.has(n)&&e.push(`Plugin name "${t}" is visually similar to a reserved name`)}function re(t,e){W(t,"entryPoint",e),(t.startsWith("/")||t.startsWith("\\"))&&e.push("entryPoint must be a relative path, not absolute")}function oe(t,e){if(t)for(let[n,s]of Object.entries(t))W(s,`hook[${n}]`,e)}function W(t,e,n){for(let s of te)t.includes(s)&&n.push(`${e} contains dangerous path pattern "${s}"`);t.includes("\0")&&n.push(`${e} contains null byte (path injection attempt)`)}function ae(t,e){if(!t)return;let n=["fs:write-root","net:arbitrary","exec:shell"];for(let s of t)n.includes(s)&&e.push(`Plugin requests dangerous permission: ${s}`)}import*as S from"fs";import*as V from"path";var D=class{type="local";async resolve(e){let n=V.resolve(e),s=V.join(n,"qe-plugin.json");if(!S.existsSync(s))throw new Error(`No qe-plugin.json found at ${s}`);let i=S.readFileSync(s,"utf-8");return T(i)}async getPluginPath(e){let n=V.resolve(e);if(!S.existsSync(n))throw new Error(`Plugin directory does not exist: ${n}`);return n}};var H=class{cache;resolver;sources=new Map;constructor(e={}){this.cache=e.cache??new R,this.resolver=new I;let n=new D;if(this.sources.set("local",n),e.sources)for(let s of e.sources)this.sources.set(s.type,s)}async install(e,n="local"){if(process.env.AQE_PLUGINS_DISABLED==="true")return{success:!1,errors:["Plugin loading is disabled (AQE_PLUGINS_DISABLED=true)"],securityViolations:[]};let s=[],i=this.sources.get(n);if(!i)return{success:!1,errors:[`Unknown source type: ${n}. Available: ${[...this.sources.keys()].join(", ")}`],securityViolations:[]};let r;try{r=await i.resolve(e)}catch(c){return{success:!1,errors:[`Failed to resolve plugin: ${c instanceof Error?c.message:String(c)}`],securityViolations:[]}}let l=k(r);if(!l.valid)return{success:!1,manifest:r,errors:l.errors,securityViolations:[]};let d=Y(r);if(!d.safe)return{success:!1,manifest:r,errors:["Plugin failed security checks"],securityViolations:d.violations};try{let c=this.cache.listCandidates().map(h=>h.manifest).filter(h=>h.name!==r.name),_=this.resolver.resolve([...c,r],[r.name]);if(_.errors.length)return{success:!1,manifest:r,errors:_.errors.map(h=>`${h.code}: ${h.message}`),securityViolations:[]}}catch(c){return{success:!1,manifest:r,errors:[c instanceof Error?c.message:String(c)],securityViolations:[]}}if(this.cache.has(r.name,r.version)){let c=this.cache.get(r.name,r.version);return{success:!0,manifest:r,cachePath:c.path,errors:[],securityViolations:[]}}let p;try{p=await i.getPluginPath(e)}catch(c){return{success:!1,manifest:r,errors:[`Failed to get plugin path: ${c instanceof Error?c.message:String(c)}`],securityViolations:[]}}let v=this.cache.store(r,p);return{success:!0,manifest:r,cachePath:v,errors:s,securityViolations:[]}}remove(e,n){if(n)return this.cache.remove(e,n);let s=this.cache.listVersions(e),i=!1;for(let r of s)this.cache.remove(e,r.manifest.version)&&(i=!0);return i}list(){return this.cache.listAll().map(n=>({name:n.manifest.name,version:n.manifest.version,description:n.manifest.description,domains:n.manifest.domains,source:"cached",cachePath:n.path}))}resolveLoadOrder(){let e=this.cache.listCandidates();return this.resolver.resolveAvailable(e.map(n=>n.manifest))}registerSource(e){this.sources.set(e.type,e)}};export{T as a,R as b,H as c};
|
|
@@ -1,7 +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.5");process.exit(0)}
|
|
2
|
-
import{b as X,d as ue}from"./chunk-RUSLEOMC.js";import*as T from"fs";import*as le from"os";import*as d from"path";ue();import*as A from"fs/promises";import*as F from"path";async function Z(s){let t=[F.join(s,"coverage","coverage-final.json"),F.join(s,"coverage","lcov.info"),F.join(s,".nyc_output","coverage-final.json"),F.join(s,"coverage-final.json"),F.join(s,"coverage","coverage-summary.json"),F.join(s,"coverage.xml"),F.join(s,"htmlcov","status.json"),F.join(s,"cobertura-coverage.xml")];for(let e of t)try{let n=await A.readFile(e,"utf-8");if(e.endsWith("coverage-summary.json"))return K(n);if(e.endsWith(".json"))return G(n);if(e.endsWith(".info"))return z(n);if(e.endsWith(".xml"))return V(n)}catch{}return null}function G(s){let t=X(s),e=[],n=0,a=0,r=0,o=0,i=0,c=0,f=0,l=0;for(let[p,b]of Object.entries(t)){let C=b,m=C.statementMap||{},R=C.s||{},w=C.branchMap||{},N=C.b||{},u=C.f||{},S=Object.keys(R).length,x=Object.values(R).filter(v=>v>0).length,y=Object.values(N).flat().length,L=Object.values(N).flat().filter(v=>v>0).length,j=Object.keys(u).length,_=Object.values(u).filter(v=>v>0).length,k=Object.keys(m).length,I=Object.values(R).filter(v=>v>0).length,O=[];for(let[v,D]of Object.entries(R))if(D===0){let M=m[v];M?.start?.line&&O.push(M.start.line)}let B=[];for(let[v,D]of Object.entries(N)){let M=w[v];D.forEach((P,E)=>{P===0&&M?.locations?.[E]?.start?.line&&B.push(M.locations[E].start.line)})}e.push({path:p,lines:{covered:x,total:S},branches:{covered:L,total:y},functions:{covered:_,total:j},statements:{covered:I,total:k},uncoveredLines:Array.from(new Set(O)).sort((v,D)=>v-D),uncoveredBranches:Array.from(new Set(B)).sort((v,D)=>v-D)}),n+=S,a+=x,r+=y,o+=L,i+=j,c+=_,f+=k,l+=I}return{files:e,summary:{line:n>0?a/n*100:0,branch:r>0?o/r*100:0,function:i>0?c/i*100:0,statement:f>0?l/f*100:0,files:e.length}}}function K(s){let t=X(s),e=o=>({covered:Number(o?.covered)||0,total:Number(o?.total)||0}),n=[];for(let[o,i]of Object.entries(t))o==="total"||typeof i!="object"||i===null||!i.lines||n.push({path:o,lines:e(i.lines),branches:e(i.branches),functions:e(i.functions),statements:e(i.statements??i.lines),uncoveredLines:[],uncoveredBranches:[]});let a=o=>n.reduce((i,c)=>({covered:i.covered+o(c).covered,total:i.total+o(c).total}),{covered:0,total:0}),r=o=>o.total>0?o.covered/o.total*100:0;return{files:n,summary:{line:r(a(o=>o.lines)),branch:r(a(o=>o.branches)),function:r(a(o=>o.functions)),statement:r(a(o=>o.statements)),files:n.length}}}function z(s){let t=[],e=s.split(`
|
|
3
|
-
`),n=null,a=0,r=0,o=0,i=0,c=0,f=0,l=[],p=[];for(let u of e)if(u.startsWith("SF:"))n=u.slice(3);else if(u.startsWith("LF:"))a=parseInt(u.slice(3),10);else if(u.startsWith("LH:"))r=parseInt(u.slice(3),10);else if(u.startsWith("BRF:"))o=parseInt(u.slice(4),10);else if(u.startsWith("BRH:"))i=parseInt(u.slice(4),10);else if(u.startsWith("FNF:"))c=parseInt(u.slice(4),10);else if(u.startsWith("FNH:"))f=parseInt(u.slice(4),10);else if(u.startsWith("DA:")){let[S,x]=u.slice(3).split(",").map(y=>parseInt(y,10));x===0&&l.push(S)}else if(u.startsWith("BRDA:")){let S=u.slice(5).split(","),x=parseInt(S[0],10),y=S[3];(y==="0"||y==="-")&&p.push(x)}else u==="end_of_record"&&n&&(t.push({path:n,lines:{covered:r,total:a},branches:{covered:i,total:o},functions:{covered:f,total:c},statements:{covered:r,total:a},uncoveredLines:Array.from(new Set(l)),uncoveredBranches:Array.from(new Set(p))}),n=null,a=r=0,o=i=0,c=f=0,l.length=0,p.length=0);let b=0,C=0,m=0,R=0,w=0,N=0;for(let u of t)b+=u.lines.total,C+=u.lines.covered,m+=u.branches.total,R+=u.branches.covered,w+=u.functions.total,N+=u.functions.covered;return{files:t,summary:{line:b>0?C/b*100:0,branch:m>0?R/m*100:0,function:w>0?N/w*100:0,statement:b>0?C/b*100:0,files:t.length}}}function V(s){let t=[];function e(m,R){let w=m.match(new RegExp(`${R}=["']([^"']*)["']`));return w?w[1]:null}let n=/<class\s[^>]*?>/g,a;for(;(a=n.exec(s))!==null;){let m=a[0],R=e(m,"filename");if(!R)continue;let w=parseFloat(e(m,"line-rate")||"NaN"),N=parseFloat(e(m,"branch-rate")||"NaN"),u=a.index,S=s.indexOf("</class>",u),x=S>u?s.slice(u,S):"",y=0,L=0,j=0,_=0,k=0,I=0,O=[],B=[],v=/<line\s([^>]*?)\/>/g,D;for(;(D=v.exec(x))!==null;){let E=D[1],W=parseInt(e(E,"number")||"0",10),U=parseInt(e(E,"hits")||"0",10),H=e(E,"branch")==="true",$=e(E,"condition-coverage");y++,U>0?L++:O.push(W),H&&(j++,($?parseInt($,10):U>0?100:0)===100?_++:B.push(W))}let M=/<method\s([^>]*?)>/g,P;for(;(P=M.exec(x))!==null;){k++;let E=P.index,W=x.indexOf("</method>",E);if(W>E){let U=x.slice(E,W),H=/<line\s([^>]*?)\/>/g,$=!1,q;for(;(q=H.exec(U))!==null;)if(parseInt(e(q[1],"hits")||"0",10)>0){$=!0;break}$&&I++}}y===0&&!isNaN(w)&&(y=100,L=Math.round(Math.max(0,Math.min(1,w))*100)),t.push({path:R,lines:{covered:L,total:y},branches:{covered:_,total:j},functions:{covered:I,total:k},statements:{covered:L,total:y},uncoveredLines:O,uncoveredBranches:B})}let r=0,o=0,i=0,c=0,f=0,l=0;for(let m of t)r+=m.lines.total,o+=m.lines.covered,i+=m.branches.total,c+=m.branches.covered,f+=m.functions.total,l+=m.functions.covered;let p=s.match(/<coverage\s[^>]*?>/),b=p?parseFloat(e(p[0],"line-rate")||"NaN")*100:NaN,C=p?parseFloat(e(p[0],"branch-rate")||"NaN")*100:NaN;return{files:t,summary:{line:isNaN(b)?r>0?o/r*100:0:b,branch:isNaN(C)?i>0?c/i*100:0:C,function:f>0?l/f*100:0,statement:r>0?o/r*100:0,files:t.length}}}async function Ne(s,t={}){let e=[],{includeTests:n=!0,languages:a,maxFiles:r=5e3}=t,o=[".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".pyw",".go",".rs",".java",".kt",".kts",".rb",".cs",".php",".swift",".c",".h",".cpp",".hpp",".cc",".scala"];if(a&&a.length>0){o=[];for(let c of a)c==="typescript"&&o.push(".ts",".tsx"),c==="javascript"&&o.push(".js",".jsx",".mjs",".cjs"),c==="python"&&o.push(".py",".pyw"),c==="go"&&o.push(".go"),c==="rust"&&o.push(".rs"),c==="java"&&o.push(".java"),c==="kotlin"&&o.push(".kt",".kts"),c==="ruby"&&o.push(".rb"),(c==="csharp"||c==="c#")&&o.push(".cs"),c==="php"&&o.push(".php"),c==="swift"&&o.push(".swift"),(c==="c"||c==="cpp"||c==="c++")&&o.push(".c",".h",".cpp",".hpp",".cc"),c==="scala"&&o.push(".scala")}async function i(c){try{let f=await A.readdir(c,{withFileTypes:!0});for(let l of f){let p=F.join(c,l.name);if(l.isDirectory()){if(["node_modules",".git","dist","build","coverage",".nyc_output","__pycache__",".venv","venv",".tox",".mypy_cache","target",".gradle","vendor",".bundle",".agentic-qe",".claude",".cache",".npm",".yarn",".next",".nuxt",".svelte-kit","out",".turbo","tmp","temp",".tmp"].includes(l.name))continue;if(e.length>=r)return;await i(p)}else if(l.isFile()){let b=F.extname(l.name);if(!o.includes(b)||!n&&(l.name.includes(".test.")||l.name.includes(".spec.")||l.name.endsWith("_test.ts")||l.name.endsWith("_test.js")||p.includes("/__tests__/")||p.includes("/test/")||p.includes("/tests/")))continue;if(e.length>=r)return;e.push(p)}}}catch{}}try{if((await A.stat(s)).isFile())return[s];await i(s)}catch{}return e}function Le(s){let t=new Set,e={injection:"Use parameterized queries and input validation to prevent injection attacks",xss:"Sanitize user input and use Content-Security-Policy headers","sensitive-data":"Never hardcode secrets; use environment variables or secret managers","access-control":"Implement proper authentication and authorization checks","security-misconfiguration":"Review and harden security configurations","insecure-deserialization":"Avoid deserializing untrusted data; use safe alternatives","broken-auth":"Use strong authentication mechanisms and secure session management",dependencies:"Keep dependencies updated and regularly audit for vulnerabilities"};for(let r of s){let o=e[r.category];o&&t.add(o)}let n=s.some(r=>r.severity==="critical"),a=s.some(r=>r.severity==="high");return n&&t.add("CRITICAL: Address critical vulnerabilities immediately before deployment"),a&&t.add("Prioritize fixing high-severity issues in the next sprint"),t.size===0&&s.length===0&&t.add("No vulnerabilities found - maintain current security practices"),Array.from(t)}import*as g from"fs";import*as te from"os";import*as h from"path";function fe(s=process.env){let t=(s.AQE_COVERAGE_NO_EXEC??"").trim().toLowerCase();return t?t!=="false"&&t!=="0"&&t!=="no"&&t!=="off":!1}var he=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".go",".rs",".java",".rb"]),ne=new Set(["node_modules","dist","build","coverage",".git",".claude",".agentic-qe","__pycache__",".venv","target","vendor"]),se=new Set(["tests","test","__tests__","benches","examples","spec"]),pe=[/\.test\./i,/\.spec\./i,/_test\./i,/_spec\./i,/^test_/i,/^test\./i,/^conftest\./i];function J(s,t){let e=s.split(h.sep).join("/"),n=h.basename(e);if(pe.some(r=>r.test(n)))return!0;let a=e;if(t){let r=h.resolve(t).split(h.sep).join("/"),o=h.resolve(s).split(h.sep).join("/");(o===r||o.startsWith(`${r}/`))&&(a=o.slice(r.length).replace(/^\//,""))}return a.split("/").some(r=>se.has(r))}function de(s){let t=s.split(""),e=s.length,n=0,a=(r,o)=>{for(let i=r;i<o&&i<e;i++)s[i]!==`
|
|
4
|
-
`&&(t[i]=" ")};for(;n<e;){let r=s[n];if(r==="/"&&s[n+1]==="/"){let i=s.indexOf(`
|
|
5
|
-
`,n),c=i===-1?e:i;a(n,c),n=c;continue}if(r==="/"&&s[n+1]==="*"){let i=0,c=n;for(;n<e;){if(s[n]==="/"&&s[n+1]==="*"){i++,n+=2;continue}if(s[n]==="*"&&s[n+1]==="/"){if(i--,n+=2,i===0)break;continue}n++}a(c,n);continue}let o=/^b?r(#*)"/.exec(s.slice(n,n+300));if(o){let i=`"${o[1]}`,c=n+o[0].length,f=s.indexOf(i,c),l=f===-1?e:f+i.length;a(n,l),n=l;continue}if(r==='"'){let i=n;for(n++;n<e;){if(s[n]==="\\"){n+=2;continue}if(s[n]==='"'){n++;break}n++}a(i,n);continue}if(r==="'"){let i=-1;if(s[n+1]==="\\"){let c=s.indexOf("'",n+2);c!==-1&&c<=n+5&&(i=c+1)}else s[n+2]==="'"&&(i=n+3);if(i!==-1){a(n,i),n=i;continue}}n++}return t.join("")}function me(s,t){if(t!==".rs")return[];let e=de(s).split(`
|
|
6
|
-
`),n=[];for(let a=0;a<e.length;a++){if(!/#\s*\[\s*cfg\s*\(\s*test\s*\)\s*\]/.test(e[a]))continue;let r=-1;for(let c=a;c<Math.min(e.length,a+10);c++){let f=e[c],l=f.indexOf("{"),p=f.indexOf(";");if(p!==-1&&(l===-1||p<l))break;if(l!==-1){let b=e.slice(a,c+1).join(" ");/\bmod\s+\w+/.test(b)&&(r=c);break}}if(r===-1)continue;let o=0,i=-1;for(let c=r;c<e.length;c++){for(let f of e[c])f==="{"?o++:f==="}"&&o--;if(o<=0){i=c;break}}n.push([a+1,(i===-1?e.length-1:i)+1]),a=i===-1?e.length:i}return n}function ge(s){if(s.length===0)return 0;let t=s.split(`
|
|
7
|
-
`);return t[t.length-1]===""&&t.pop(),t.length}function re(s,t=6){let e=h.resolve(s);try{if(!g.existsSync(e))return null;g.statSync(e).isDirectory()||(e=h.dirname(e))}catch{return null}for(let n=0;n<=t;n++){if(g.existsSync(h.join(e,"Cargo.toml")))return g.realpathSync(e);let a=h.dirname(e);if(a===e)break;e=a}return null}function oe(s,t=0){if(t>4)return!1;let e;try{e=g.readdirSync(s,{withFileTypes:!0})}catch{return!1}for(let n of e)if(n.isFile()&&h.extname(n.name)===".rs")return!0;for(let n of e)if(n.isDirectory()&&!ne.has(n.name)&&oe(h.join(s,n.name),t+1))return!0;return!1}function Me(s){let t=re(s);if(t===null)return!1;let e=h.resolve(s);return e===t||oe(e)}async function Ae(s,t={}){if(fe())return null;let{execSync:e}=await import("child_process"),n=t.timeoutMs??3e5,a=re(s);if(!a)return null;try{e("cargo llvm-cov --version",{cwd:a,timeout:3e4,stdio:["pipe","pipe","pipe"]})}catch{return null}let r=h.join(g.mkdtempSync(h.join(te.tmpdir(),"aqe-rust-cov-")),"lcov.info");try{if(e(`cargo llvm-cov --lcov --output-path ${JSON.stringify(r)}`,{cwd:a,timeout:n,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),!g.existsSync(r))return null;let i=z(g.readFileSync(r,"utf-8")).files.filter(l=>!J(l.path,a));if(i.length===0)return null;let c=ae(i),f=i.some(l=>l.branches.total>0);return{data:c,provenance:{method:"cargo-llvm-cov",estimated:!1,branchDataCollected:f,functionDataCollected:i.some(l=>l.functions.total>0),notes:f?[]:["cargo-llvm-cov reported no branch data (Rust branch coverage requires a nightly toolchain with -Z coverage-options=branch). Branch coverage is reported as null rather than assumed."]}}}catch{return null}finally{try{g.rmSync(h.dirname(r),{recursive:!0,force:!0})}catch{}}}var Y={".rs":{fn:/\bfn\s+\w+/g,branch:/\b(if|match|while|for)\b|\?\?|\|\||&&/g},".go":{fn:/\bfunc\s+\w*/g,branch:/\b(if|switch|case|for|select)\b|\|\||&&/g},".py":{fn:/\b(def|lambda)\b/g,branch:/\b(if|elif|for|while|except)\b|\band\b|\bor\b/g},".java":{fn:/\b(public|private|protected|static)[\w<>,\s[\]]+\w+\s*\(/g,branch:/\b(if|switch|case|for|while|catch)\b|\|\||&&/g},".rb":{fn:/\bdef\s+\w+/g,branch:/\b(if|elsif|unless|case|when|while)\b|\|\||&&/g},default:{fn:/\bfunction\b|=>|\b\w+\s*\([^)]*\)\s*\{/g,branch:/\b(if|switch|case|for|while|catch)\b|\?\?|\|\||&&/g}};function ve(s){return Y[s]??Y.default}function ee(s,t){return(s.match(new RegExp(t.source,t.flags))||[]).length}function ae(s){let t=r=>s.reduce((o,i)=>o+r(i),0),e=(r,o)=>o>0?Math.round(r/o*100):0,n=t(r=>r.lines.total),a=t(r=>r.lines.covered);return{files:s,summary:{line:e(a,n),branch:e(t(r=>r.branches.covered),t(r=>r.branches.total)),function:e(t(r=>r.functions.covered),t(r=>r.functions.total)),statement:e(a,n),files:s.length}}}function be(s){let t=[],e=s;function n(a,r){if(r>6)return;let o;try{o=g.readdirSync(a,{withFileTypes:!0})}catch{return}for(let i of o){let c=h.join(a,i.name);if(i.isDirectory()){if(ne.has(i.name)||se.has(i.name))continue;n(c,r+1)}else if(i.isFile()){if(!he.has(h.extname(i.name))||J(c,e))continue;t.push(c)}}}return n(s,0),t}function Ie(s){if(!g.existsSync(s)||!g.statSync(s).isDirectory())return null;let t=be(s);if(t.length===0)return null;let e=t.map(n=>{let a="";try{a=g.readFileSync(n,"utf-8")}catch{}let r=h.extname(n),o=ge(a),i=me(a,r),c=j=>i.some(([_,k])=>j>=_&&j<=k),f=i.reduce((j,[_,k])=>j+(k-_+1),0),l=Math.max(o-f,0),p=ve(r),b=ee(a,p.fn),C=i.length>0,m=ye(n),R=C||m,w=ee(a,p.branch),N=Math.min(w*.005,.15),u=Math.min(l*1e-4,.1),S=Math.max(.05,Math.min(.95,R?.85-N-u:.2)),x=Math.floor(l*S),y=[];for(let j=1;j<=o;j++)c(j)||y.push(j);let L=y.slice(x);return{path:n,lines:{covered:x,total:l},branches:{covered:0,total:0},functions:{covered:0,total:b},statements:{covered:x,total:l},uncoveredLines:L,uncoveredBranches:[]}});return{data:ae(e),provenance:{method:"static-estimation",estimated:!0,branchDataCollected:!1,functionDataCollected:!1,notes:["No instrumentation ran. These numbers are a STATIC ESTIMATE derived from source shape (file size, declaration counts, presence of a test file) \u2014 they are not measured coverage and must not be reported as such.","Branch and function coverage were not collected and are reported as null."]}}}function ye(s){let t=h.extname(s),e=s.slice(0,-t.length);return[`${e}.test${t}`,`${e}.spec${t}`,`${e}_test${t}`,`${e}.test${t}`.replace("/src/","/tests/"),`${e}.spec${t}`.replace("/src/","/tests/"),`${e}${t}`.replace("/src/","/tests/")].some(a=>{try{return g.existsSync(a)}catch{return!1}})}var Ce=["package.json","pyproject.toml","setup.py","setup.cfg","go.mod","Cargo.toml","pom.xml","build.gradle","build.gradle.kts",".git"];function ie(s,t=12){let e;try{let r=d.resolve(s);if(!T.existsSync(r))return null;let o=T.realpathSync(r);e=T.statSync(o).isDirectory()?o:d.dirname(o)}catch{return null}let n=null;try{n=T.realpathSync(le.homedir())}catch{n=null}let a=e;for(let r=0;r<=t;r++){if(n!==null&&e===n&&e!==a)return null;if(Ce.some(i=>T.existsSync(d.join(e,i))))return e;let o=d.dirname(e);if(o===e)return null;e=o}return null}var xe=new Set(["lcov.info","coverage-final.json","coverage-summary.json","coverage.xml","cobertura-coverage.xml","cobertura.xml"]);function je(s){let t=d.basename(s).toLowerCase();return xe.has(t)||t.endsWith(".lcov")||t.endsWith(".lcov.info")}async function Re(s){let t;try{t=await T.promises.readFile(s,"utf-8")}catch{return null}if(t.trim().length===0)return null;try{let e=d.basename(s).toLowerCase(),n;if(e.endsWith(".json")){let a=JSON.parse(t);if(Se(a))n=K(t);else if(we(a))n=G(t);else return null}else e.endsWith(".xml")?n=V(t):n=z(t);return n.files.length>0?n:null}catch{return null}}function we(s){let t=Object.values(s);return t.length>0&&t.every(e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&typeof e.s=="object"&&typeof e.statementMap=="object")}function Se(s){let t=s.total;return typeof t=="object"&&t!==null&&typeof t.lines=="object"}function Fe(s,t){let e=d.relative(t,s);return e===""||!e.startsWith("..")&&!d.isAbsolute(e)}function Q(s){try{return T.realpathSync(s)}catch{return d.resolve(s)}}function Te(s,t,e){let n=Q(t),a=Q(e);return a===n?[...s.files]:s.files.filter(r=>{let o=d.isAbsolute(r.path)?Q(r.path):d.resolve(n,r.path);return Fe(o,a)})}function ce(s,t,e,n={}){if(n.numTotalTests===0)return{status:"no-data",reason:"no-tests-ran"};let a=Te(s,t,e);if(a.length===0)return{status:"no-data",reason:"target-not-covered"};let r=a.filter(o=>!J(o.path,t));return r.length===0?{status:"no-data",reason:"test-only-report"}:{status:"measured",files:r}}async function $e(s){let t=d.resolve(s),e;try{e=T.statSync(t)}catch{return{status:"target-missing",target:t}}if(e.isFile()&&je(t)){let r=d.dirname(t),o=ie(r)??(d.basename(r)==="coverage"?d.dirname(r):r),i=await Re(t),c=i?ce(i,o,o):{status:"no-data",reason:"unreadable-report"};return{status:"evaluated",target:t,projectRoot:o,source:"report-file",evaluation:c}}let n=ie(t)??(e.isDirectory()?t:d.dirname(t)),a=await Z(n);return a?{status:"evaluated",target:t,projectRoot:n,source:"project-report",evaluation:ce(a,n,t)}:{status:"no-report",target:t,projectRoot:n}}function ze(s,t,e){let n=[s.line,s.statement];e.branch&&n.push(s.branch),e.function&&n.push(s.function);let a=n.reduce((r,o)=>r+o,0)/n.length;return{overall:a,meetsThreshold:a>=t}}var Ee=/^Coverage is [\d.]+% below threshold/i;function Pe(s,t,e,n){let a=s.filter(r=>!Ee.test(r)&&(n.branch||!/branch coverage/i.test(r))&&(n.function||!/function coverage/i.test(r)));return t.meetsThreshold?a:[`Coverage is ${(e-t.overall).toFixed(1)}% below threshold. Focus on high-risk files first.`,...a]}function Ue(s){return s==="target-not-covered"||s==="no-tests-ran"}function Je(s,t,e){switch(s){case"target-missing":return`Target does not exist: ${t}`;case"unreadable-report":return`Unreadable coverage report: ${t}. It could not be parsed or lists no files. Supported: lcov.info, istanbul coverage-final.json / coverage-summary.json, Cobertura XML. Raw V8 output is not supported \u2014 convert it with c8 or your runner's istanbul reporter.`;case"test-only-report":return"The coverage report contains only test files, so there is no production coverage to report. Coverage OF a test file is not a meaningful metric. Check that your coverage tool is instrumenting your source directory.";case"target-not-covered":return`Target is UNMEASURED: the coverage data for project ${e??"?"} has no entry for any production file under ${t}. This is not 0% coverage \u2014 no measurement exists for it. Check your coverage tool's include/exclude settings, or regenerate the report.`;case"no-tests-ran":return`Target is UNMEASURED: the test runner reported running 0 tests from ${e??"?"}. This is not 0% coverage.`}}export{Ne as a,Le as b,fe as c,re as d,Me as e,Ae as f,Ie as g,ie as h,je as i,Re as j,Te as k,ce as l,$e as m,ze as n,Pe as o,Ue as p,Je as q};
|
|
@@ -1,81 +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.5");process.exit(0)}
|
|
2
|
-
import{b as _}from"./chunk-ERGWWI4Y.js";import{d as x,e as q}from"./chunk-BO4PKNYP.js";import{a as A,b as j,d as L}from"./chunk-SAPIRK2G.js";import{e as E,g as D,i as Q}from"./chunk-BJ5P4IV2.js";import"./chunk-HLFDC4SF.js";import{Command as W}from"commander";import a from"chalk";import*as P from"fs";import*as u from"path";async function z(s,n,c,b,m){let e=Date.now(),r=[];if(!s.enabled)return{phase:s.name,type:s.type,status:"skipped",duration:0,exitCode:0,summary:"Phase disabled",artifacts:[]};try{let o={},l="passed",y="";switch(s.type){case"test":{let h=await n.kernel.getDomainAPIAsync("test-generation");if(!h)return T(s,e,"failed",1,"Test generation domain not available",r);let i=s.config.target||".",{walkSourceFiles:w}=await import("./file-discovery-3NHRUQQB.js"),S=u.resolve(i),C=w(S,{includeTests:!1}),p=await h.generateTests({sourceFiles:C,testType:s.config.type||"unit",framework:s.config.framework||"vitest",coverageTarget:80});if(p.success&&p.value){let f=p.value;o={testsGenerated:f.tests.length,coverageEstimate:f.coverageEstimate},y=`Generated ${f.tests.length} tests (${f.coverageEstimate==null?"coverage unmeasured":`est. ${f.coverageEstimate}% coverage`})`;let g=u.join(c,"test-generation.json");P.writeFileSync(g,q(f),"utf-8"),r.push(g)}else l="failed",y=p.error?.message||"Test generation failed";break}case"coverage":{let h=await n.kernel.getDomainAPIAsync("coverage-analysis");if(!h)return T(s,e,"failed",1,"Coverage analysis domain not available",r);let i=s.config.target||".",w=s.config.threshold||80,{walkSourceFiles:S}=await import("./file-discovery-3NHRUQQB.js"),C=u.resolve(i),p=S(C,{includeTests:!1}),{findCoverageProjectRoot:f}=await import("./coverage-target-GSRBNHXE.js"),g=_(p,f(C)??process.cwd()),$=await h.analyze({coverageData:g,threshold:w,includeFileDetails:!0,measured:g.instrumented});if($.success&&$.value){let I=$.value;o={...I.summary,meetsThreshold:I.meetsThreshold,threshold:w},l=I.meetsThreshold?"passed":"warning",y=`Line: ${I.summary.line}%, Branch: ${I.summary.branch}% \u2014 ${I.meetsThreshold?"meets":"below"} ${w}% threshold`;let F=u.join(c,"coverage.json");P.writeFileSync(F,q($.value),"utf-8"),r.push(F)}else l="failed",y=$.error?.message||"Coverage analysis failed";break}case"security":{let h=await n.kernel.getDomainAPIAsync("security-compliance");if(!h)return T(s,e,"failed",1,"Security domain not available",r);let i=s.config.target||".",{walkSourceFiles:w}=await import("./file-discovery-3NHRUQQB.js"),S=u.resolve(i),C=w(S,{includeTests:!0}),p=await h.runSASTScan(C);if(p.success&&p.value){let f=p.value,g=f.vulnerabilities||[],$=g.filter(t=>t.severity==="high"||t.severity==="critical").length;o={vulnerabilities:g.length,high:$},l=$>0?"failed":g.length>0?"warning":"passed",y=g.length===0?"No vulnerabilities found":`${g.length} vulnerabilities (${$} high/critical)`;let{toSARIF:I}=await import("./ci-output-7ZUQI4U6.js"),F=u.join(c,"security.sarif");P.writeFileSync(F,I({vulnerabilities:g,target:i,scanType:"SAST"}),"utf-8"),r.push(F);let k=u.join(c,"security.json");P.writeFileSync(k,q(f),"utf-8"),r.push(k)}else l="failed",y=p.error?.message||"Security scan failed";break}case"quality-gate":{try{let i=await D(n.kernel.memory),w=Q(i,{coverage:m});o={...w,metrics:i,evidenceStatus:"measured"},l=w.passed?"passed":"failed",y=`Quality gate: ${w.passed?"PASSED":"FAILED"} (${w.checks.filter(S=>S.passed).length}/${w.checks.length} measured checks passed)`}catch(i){l="failed",y=`Quality gate: ${i instanceof Error?i.message:String(i)}`,o=i instanceof E?{...i.toDetails(),error:y,checks:[]}:{passed:!1,evidenceStatus:"unavailable",error:y,checks:[]}}let h=u.join(c,`quality-gate-${b+1}.json`);P.writeFileSync(h,q(o),"utf-8"),r.push(h);break}case"code-intelligence":{let h=await n.kernel.getDomainAPIAsync("code-intelligence");if(!h)return T(s,e,"failed",1,"Code intelligence domain not available",r);let i=s.config.target||".",{walkSourceFiles:w}=await import("./file-discovery-3NHRUQQB.js"),S=u.resolve(i),C=w(S,{includeTests:!1}),p=await h.index({paths:C,target:S,incremental:!0});if(p.success&&p.value){let f=p.value;o=f,y=`Indexed ${f.filesIndexed} files, ${f.nodesCreated} nodes`;let g=u.join(c,"code-intelligence.json");P.writeFileSync(g,q(f),"utf-8"),r.push(g)}else l="warning",y=p.error?.message||"Code intelligence indexing incomplete";break}default:y=`Custom phase "${s.name}" \u2014 no built-in handler`,l="warning"}let R=Date.now()-e;return{phase:s.name,type:s.type,status:l,duration:R,exitCode:l==="failed"?1:0,summary:y,artifacts:r,details:o}}catch(o){let l=Date.now()-e;return{phase:s.name,type:s.type,status:"failed",duration:l,exitCode:1,summary:`Error: ${o instanceof Error?o.message:String(o)}`,artifacts:r}}}function T(s,n,c,b,m,e){return{phase:s.name,type:s.type,status:c,duration:Date.now()-n,exitCode:b,summary:m,artifacts:e}}function N(s){let n=`# AQE CI/CD Report
|
|
3
|
-
|
|
4
|
-
`;n+=`**Status:** ${s.overallStatus==="passed"?"PASSED":s.overallStatus==="warning"?"WARNING":"FAILED"}
|
|
5
|
-
`,n+=`**Duration:** ${(s.duration/1e3).toFixed(1)}s
|
|
6
|
-
`,n+=`**Quality Gate:** ${O(s)}
|
|
7
|
-
|
|
8
|
-
`,n+=`## Phases
|
|
9
|
-
|
|
10
|
-
`,n+=`| Phase | Type | Status | Duration | Summary |
|
|
11
|
-
`,n+=`|-------|------|--------|----------|---------|
|
|
12
|
-
`;for(let c of s.phases){let b=c.status==="passed"?"PASS":c.status==="failed"?"FAIL":c.status==="warning"?"WARN":"SKIP";n+=`| ${c.phase} | ${c.type} | ${b} | ${(c.duration/1e3).toFixed(1)}s | ${c.summary} |
|
|
13
|
-
`}n+=`
|
|
14
|
-
## Artifacts
|
|
15
|
-
|
|
16
|
-
`;for(let c of s.phases)if(c.artifacts.length>0){n+=`### ${c.phase}
|
|
17
|
-
`;for(let b of c.artifacts)n+=`- \`${u.basename(b)}\`
|
|
18
|
-
`;n+=`
|
|
19
|
-
`}return n}function O(s){return`${s.qualityGateStatus==="not-run"?"Not run":s.qualityGatePassed?"Passed":"Failed"} (${s.qualityGateEnforced?"enforced":"advisory"})`}function X(s,n,c){let b=new W("ci").description("CI/CD pipeline orchestration");return b.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 m=>{if(await c())try{let e,r=null;if(m.config){let t=j(u.resolve(m.config));if(!t.success){console.error(a.red(`
|
|
20
|
-
Config errors:`));for(let d of t.errors)console.error(a.red(` - ${d}`));await n(1);return}e=t.config,r=m.config}else if(r=A(),r){let t=j(r);if(!t.success){console.error(a.red(`
|
|
21
|
-
Config errors:`));for(let d of t.errors)console.error(a.red(` - ${d}`));await n(1);return}e=t.config}else e=L(),r="(defaults)";let o;if(m.phase!==void 0){let t=m.phase.split(",").map(v=>v.trim().toLowerCase()),d=t.filter(v=>!v||!e.phases.some(G=>v===G.name.toLowerCase()||v===G.type));d.length>0&&(o=`Unknown or empty CI phase selector: ${d.map(v=>v||"(empty)").join(", ")}. Available phases: ${e.phases.map(v=>`${v.name} (${v.type})`).join(", ")}`),e.phases=e.phases.filter(v=>t.includes(v.name.toLowerCase())||t.includes(v.type))}m.qualityGate===!1&&(e.qualityGate.enforced=!1);let l=m.format,y=new Date;l==="text"&&(console.log(a.blue(`
|
|
22
|
-
AQE CI Pipeline
|
|
23
|
-
`)),console.log(a.gray(` Config: ${r}`)),console.log(a.gray(` Phases: ${e.phases.length}`)),console.log(a.gray(` Quality Gate: ${e.qualityGate.enforced?"enforced":"advisory"}
|
|
24
|
-
`)));let R=u.resolve(e.output.directory);P.mkdirSync(R,{recursive:!0});let h=u.join(R,"quality-gate.json");P.writeFileSync(h,q({passed:!1,status:"not-run",evidenceStatus:"not-run",enforced:e.qualityGate.enforced,phases:[]}),"utf-8"),o&&console.error(a.red(o));let i=[];for(let t of o?[]:e.phases){if(l==="text"){let v=` [${i.length+1}/${e.phases.length}] ${t.name}...`;process.stdout.write(a.cyan(v))}let d=await z(t,s,R,i.length,e.qualityGate.thresholds.coverage);if(i.push(d),l==="text"){let v=d.status==="passed"?a.green:d.status==="failed"?a.red:d.status==="warning"?a.yellow:a.gray,G=d.status.toUpperCase(),U=`${(d.duration/1e3).toFixed(1)}s`;process.stdout.write(`\r [${i.length}/${e.phases.length}] ${t.name} ${v(G)} (${U})
|
|
25
|
-
`),d.summary&&console.log(a.gray(` ${d.summary}`))}if(d.status==="failed"&&(d.type!=="quality-gate"||e.qualityGate.enforced)&&!t.continueOnFailure){l==="text"&&console.log(a.red(`
|
|
26
|
-
Pipeline stopped: "${t.name}" failed (continue_on_failure: false)
|
|
27
|
-
`));break}}let w=o!==void 0||i.some(t=>t.status==="failed"&&t.type!=="quality-gate"),S=i.some(t=>t.status==="warning"||t.type==="quality-gate"&&t.status==="failed"&&!e.qualityGate.enforced),C=i.filter(t=>t.type==="quality-gate"),p=e.phases.filter(t=>t.type==="quality-gate").length,f=C.length>0&&C.length===p&&C.every(t=>t.status==="passed"),g=f?"passed":C.some(t=>t.status==="failed")?"failed":"not-run",$=w||e.qualityGate.enforced&&!f?"failed":S?"warning":"passed",I=new Date,F=I.getTime()-y.getTime(),k={config:r||"(defaults)",startedAt:y,completedAt:I,duration:F,phases:i,qualityGatePassed:f,qualityGateStatus:g,qualityGateEnforced:e.qualityGate.enforced,overallStatus:$,exitCode:$==="failed"?1:0,...o?{configurationError:o}:{}};if(P.writeFileSync(h,q({...C.length===1?C[0].details:{},passed:f,status:g,enforced:e.qualityGate.enforced,...g==="not-run"?{evidenceStatus:"not-run"}:{},phases:C}),"utf-8"),e.output.combinedReport){let t=u.join(R,"ci-report.md");P.writeFileSync(t,N(k),"utf-8");let d=u.join(R,"ci-report.json");P.writeFileSync(d,q(k),"utf-8")}if(l==="json")x(q(k),m.output);else if(l==="markdown")x(N(k),m.output);else{console.log("");let t=$==="passed"?a.green:$==="failed"?a.red:a.yellow;console.log(` ${t(`Pipeline: ${$.toUpperCase()}`)} (${(F/1e3).toFixed(1)}s)`),console.log(` Quality Gate: ${O(k)}`),console.log(a.gray(` Artifacts: ${R}/`)),console.log("")}await n(k.exitCode)}catch(e){console.error(a.red(`
|
|
28
|
-
CI pipeline failed:`),e),await n(1)}}),b.command("init").description("Create a .aqe-ci.yml config file").option("--force","Overwrite existing config").action(async m=>{let e=A();if(e&&!m.force){console.log(a.yellow(`
|
|
29
|
-
Config already exists: ${e}`)),console.log(a.gray(` Use --force to overwrite
|
|
30
|
-
`)),await n(0);return}let r=`# AQE CI/CD Pipeline Configuration
|
|
31
|
-
# Documentation: https://github.com/proffesor-for-testing/agentic-qe
|
|
32
|
-
|
|
33
|
-
version: '1'
|
|
34
|
-
name: ${u.basename(process.cwd())}
|
|
35
|
-
|
|
36
|
-
phases:
|
|
37
|
-
- name: Test Generation
|
|
38
|
-
type: test
|
|
39
|
-
config:
|
|
40
|
-
target: .
|
|
41
|
-
framework: vitest
|
|
42
|
-
type: unit
|
|
43
|
-
timeout: 300
|
|
44
|
-
|
|
45
|
-
- name: Coverage Analysis
|
|
46
|
-
type: coverage
|
|
47
|
-
continue_on_failure: true
|
|
48
|
-
config:
|
|
49
|
-
target: .
|
|
50
|
-
threshold: 80
|
|
51
|
-
timeout: 300
|
|
52
|
-
|
|
53
|
-
- name: Security Scan
|
|
54
|
-
type: security
|
|
55
|
-
continue_on_failure: true
|
|
56
|
-
config:
|
|
57
|
-
sast: true
|
|
58
|
-
timeout: 300
|
|
59
|
-
|
|
60
|
-
- name: Quality Gate
|
|
61
|
-
type: quality-gate
|
|
62
|
-
timeout: 60
|
|
63
|
-
|
|
64
|
-
output:
|
|
65
|
-
format: json
|
|
66
|
-
directory: .aqe-ci-output
|
|
67
|
-
combined_report: true
|
|
68
|
-
|
|
69
|
-
quality_gate:
|
|
70
|
-
enforced: true
|
|
71
|
-
thresholds:
|
|
72
|
-
coverage: 80
|
|
73
|
-
security: medium
|
|
74
|
-
quality: 70
|
|
75
|
-
`,o=u.join(process.cwd(),".aqe-ci.yml");P.writeFileSync(o,r,"utf-8"),console.log(a.green(`
|
|
76
|
-
Created: ${o}`)),console.log(a.gray(" Edit the file to customize your CI pipeline")),console.log(a.gray(` Run: aqe ci run
|
|
77
|
-
`)),await n(0)}),b.command("validate").description("Validate .aqe-ci.yml config").option("-c, --config <path>","Path to config file").action(async m=>{let e=m.config?u.resolve(m.config):A();if(!e){console.log(a.red(`
|
|
78
|
-
No .aqe-ci.yml found`)),console.log(a.gray(` Run: aqe ci init
|
|
79
|
-
`)),await n(1);return}let r=j(e);if(r.success){console.log(a.green(`
|
|
80
|
-
Config valid: ${e}`)),console.log(a.gray(` Phases: ${r.config.phases.length}`));for(let o of r.config.phases){let l=o.enabled?a.green("*"):a.gray("o");console.log(` ${l} ${o.name} (${o.type})`)}console.log(a.gray(` Quality Gate: ${r.config.qualityGate.enforced?"enforced":"advisory"}`)),console.log(""),await n(0)}else{console.log(a.red(`
|
|
81
|
-
Config invalid: ${e}`));for(let o of r.errors)console.log(a.red(` - ${o}`));console.log(""),await n(1)}}),b}export{X 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.5");process.exit(0)}
|
|
2
|
-
import{c as a,d as b,e as c}from"./chunk-DTJODGCE.js";import"./chunk-WC47GICZ.js";import"./chunk-GKPRECLL.js";import"./chunk-NLDFNAOS.js";import"./chunk-HLFDC4SF.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.5");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-D3G2NN7F.js";import"./chunk-BZFT4QDQ.js";import"./chunk-DPV33C77.js";import"./chunk-HIUNCO2W.js";import"./chunk-CR2JUANW.js";import"./chunk-YINFES3E.js";import"./chunk-GTSOFCMQ.js";import"./chunk-2KWI3MT3.js";import"./chunk-EVCFUYYK.js";import"./chunk-5BOZCMXZ.js";import"./chunk-LNO5IWGH.js";import"./chunk-MB4VFAJC.js";import"./chunk-WN55MNZ2.js";import"./chunk-HBYQYGXP.js";import"./chunk-VCKDVOPD.js";import"./chunk-HPLMX62I.js";import"./chunk-6LG5UEQE.js";import"./chunk-3YNP33GB.js";import"./chunk-IJOFZBXD.js";import"./chunk-ORTBRO7F.js";import"./chunk-BY646JOM.js";import"./chunk-WOZIXXY5.js";import"./chunk-ZLBBX24Q.js";import"./chunk-TDLKXLJC.js";import"./chunk-VLOIEVER.js";import"./chunk-BMWAWZAN.js";import"./chunk-BJ5P4IV2.js";import"./chunk-VYDNLQJN.js";import"./chunk-NF6AFIAX.js";import"./chunk-X52TMBHU.js";import"./chunk-EUEHBERE.js";import"./chunk-PHP4UJYP.js";import"./chunk-PCCIZFD7.js";import"./chunk-DFPL5N3Q.js";import"./chunk-DLY4YEN3.js";import"./chunk-3DTEQHFB.js";import"./chunk-JYY7AYGA.js";import"./chunk-JI77KJP7.js";import"./chunk-JNMUVBAJ.js";import"./chunk-FWYJ6UDX.js";import"./chunk-LRASYSGV.js";import"./chunk-PVAE65B4.js";import"./chunk-U4TV75AC.js";import"./chunk-6JFGB2JB.js";import"./chunk-VML4SG3X.js";import"./chunk-KJ3KBP24.js";import"./chunk-GRIPCYW5.js";import"./chunk-CXOXUBYU.js";import"./chunk-BBL6YXD3.js";import"./chunk-QXY3IRBW.js";import"./chunk-XNHB6TLC.js";import"./chunk-DTJODGCE.js";import"./chunk-WC47GICZ.js";import"./chunk-GKPRECLL.js";import"./chunk-SDWMLT7B.js";import"./chunk-6ZIDZ4TJ.js";import"./chunk-XNEEYXR2.js";import"./chunk-A337MD3C.js";import"./chunk-DL5JENWD.js";import"./chunk-Y2WMPEUP.js";import"./chunk-XQRE2HWM.js";import"./chunk-FBEXG4HD.js";import"./chunk-Y7GPLOXB.js";import"./chunk-DWZI3IVB.js";import"./chunk-WR64BKUE.js";import"./chunk-3SH23PS3.js";import"./chunk-JCC7QEKZ.js";import"./chunk-7BIYJRQJ.js";import"./chunk-ZTC5FBL6.js";import"./chunk-4UXPDV7E.js";import"./chunk-4PT5KNXL.js";import"./chunk-4AZP7ZCW.js";import"./chunk-FNAYDITO.js";import"./chunk-A5J4XJS6.js";import"./chunk-V7GNUVYI.js";import"./chunk-OW42F2TX.js";import"./chunk-PDPEMBFV.js";import"./chunk-NMJVG22Z.js";import"./chunk-FHUJCVT3.js";import"./chunk-3OAQPN2N.js";import"./chunk-L375O3CZ.js";import"./chunk-MNQ36MAF.js";import"./chunk-ONCH5AXU.js";import"./chunk-WT3JC4A6.js";import"./chunk-35MDATQE.js";import"./chunk-HGBJ2QQ4.js";import"./chunk-AUZXRFOX.js";import"./chunk-A2WOQO2N.js";import"./chunk-JANLATHN.js";import"./chunk-ZT3GUYM5.js";import"./chunk-CQMHDAJS.js";import"./chunk-GGDKOJVF.js";import"./chunk-L6SVCNXK.js";import"./chunk-663ZFPUL.js";import"./chunk-EOR3RECZ.js";import"./chunk-RUJLVJDE.js";import"./chunk-RUSLEOMC.js";import"./chunk-KHCALIFP.js";import"./chunk-2XYTS2WY.js";import"./chunk-3YASZPLO.js";import"./chunk-MQGEZA2A.js";import"./chunk-OU4ZAWCC.js";import"./chunk-OQDC7GCM.js";import"./chunk-RMJ7PJOS.js";import"./chunk-FQKEZVN6.js";import"./chunk-EAYQCBXL.js";import"./chunk-Y2E3IJ53.js";import"./chunk-AQN5EDBM.js";import"./chunk-PHAQWAEV.js";import"./chunk-3AYYGR6W.js";import"./chunk-OGYWWZU7.js";import"./chunk-L336HFFE.js";import"./chunk-E4VIVMDL.js";import"./chunk-WLIYWBQR.js";import"./chunk-NLDFNAOS.js";import"./chunk-VRJPH3LG.js";import"./chunk-3QD7U3FY.js";import"./chunk-KZVJW2SD.js";import"./chunk-UE22ODHN.js";import"./chunk-N2TJNIHA.js";import"./chunk-IHFUEPZH.js";import"./chunk-U6OVPMQX.js";import"./chunk-HLFDC4SF.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,43 +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.5");process.exit(0)}
|
|
2
|
-
import{a as Y,b as K}from"./chunk-ERGWWI4Y.js";import{a as m,b as U,c as P,d as G,e as q,f as H,g as J,h as X,i as _,j as Q}from"./chunk-W3ZGNNDV.js";import{b as V}from"./chunk-2WFTZSRT.js";import{d as B,e as W,h as A}from"./chunk-BO4PKNYP.js";import{m as O,n as L,o as E,p as M,q as D}from"./chunk-WOZIXXY5.js";import"./chunk-RUSLEOMC.js";import"./chunk-HLFDC4SF.js";import{Command as oe}from"commander";import e from"chalk";var $={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"}},N=class extends Q{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 X({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:U.getCoverageTargets,validatePath:!0}),new G({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:$.low.description},{key:"2",value:"medium",label:"medium",description:$.medium.description},{key:"3",value:"high",label:"high",description:$.high.description}],defaultValue:this.options.defaultSensitivity||"medium",validValues:["low","medium","high"]}),new G({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 q({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 H({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 J({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 _({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 g=t.patterns;return{target:t.target,sensitivity:t.sensitivity,format:t.format,priorityFocus:t.priorityFocus,riskScoring:t.riskScoring,threshold:t.threshold,includePatterns:g?.include,excludePatterns:g?.exclude,cancelled:!1}}printSummary(t){m.printSummaryHeader();let g=P.relativePath(t.target,this.cwd);m.printSummaryField("Target",g),m.printSummaryField("Sensitivity",t.sensitivity),m.printSummaryField("Report Format",t.format),m.printSummaryField("Priority Focus",t.priorityFocus.join(", ")),m.printSummaryField("Risk Scoring",P.enabledDisabled(t.riskScoring)),m.printSummaryField("Threshold",P.percentage(t.threshold)),t.includePatterns&&t.includePatterns.length>0&&m.printSummaryField("Include",t.includePatterns.join(", ")),t.excludePatterns&&t.excludePatterns.length>0&&m.printSummaryField("Exclude",t.excludePatterns.join(", "));let p=$[t.sensitivity];m.printDerivedSettings({"Min risk score":String(p.minRisk),"Max gaps shown":String(p.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 Z(c={}){return new N(c).run()}import*as te from"path";function re(c){return c.instrumented?{branch:c.files.some(t=>t.branches.total>0),function:c.files.some(t=>t.functions.total>0)}:{branch:!0,function:!0}}var ee=3;async function ne(c){let t=await O(c);if(t.status==="target-missing")return{kind:"no-data",reason:"target-missing",message:D("target-missing",c,null)};if(t.status==="evaluated"){let{evaluation:p,projectRoot:y}=t;if(p.status==="measured"){let i=p.files;return{kind:"data",data:{files:i,summary:Y(i),instrumented:!0}}}return{kind:"no-data",reason:p.reason,message:D(p.reason,c,y)}}let g=V(t.target,{includeTests:!1});return g.length===0?{kind:"no-sources"}:(console.log(e.gray(` Analyzing ${g.length} files...
|
|
3
|
-
`)),{kind:"data",data:K(g,t.projectRoot)})}function ie(c){return c>=80?e.green:c>=50?e.yellow:e.red}function fe(c,t,g){let p=new oe("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").addHelpText("after",`
|
|
4
|
-
Target: a directory, a source file, or an existing coverage report
|
|
5
|
-
(lcov.info, coverage-final.json, coverage-summary.json, Cobertura XML).
|
|
6
|
-
Reports are read from the target's project root (nearest package.json / .git).
|
|
7
|
-
|
|
8
|
-
Threshold: judged on the metrics the report actually collected. A metric with
|
|
9
|
-
no data (e.g. a report without branch data) is shown as n/a and is excluded
|
|
10
|
-
from the threshold, not counted as 0%.
|
|
11
|
-
|
|
12
|
-
Exit codes:
|
|
13
|
-
0 coverage meets the threshold (by more than 5%)
|
|
14
|
-
1 coverage below the threshold, or an error (missing target, unreadable report)
|
|
15
|
-
2 coverage within 5% above the threshold
|
|
16
|
-
${ee} UNMEASURED: no coverage measurement exists for the target
|
|
17
|
-
(not in the report, the runner ran 0 tests, or only test files were reported)`).action(async(y,i)=>{let b=y,C=i.risk,F=i.gaps,u=parseInt(i.threshold,10);if(i.wizard)try{let s=await Z({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(`
|
|
18
|
-
Coverage analysis cancelled.
|
|
19
|
-
`)),await t(0)),b=s.target,C=s.riskScoring,F=!0,u=s.threshold,console.log(e.green(`
|
|
20
|
-
Starting coverage analysis...
|
|
21
|
-
`))}catch(s){console.error(e.red(`
|
|
22
|
-
Wizard error:`),s),await t(1)}let T=i.format!=="text",R=console.log;T&&(console.log=(...s)=>console.error(...s));let w=s=>{console.log=R,B(s,i.output)};try{if(!await g())return;try{console.log(e.blue(`
|
|
23
|
-
Analyzing coverage for ${b}...
|
|
24
|
-
`));let s=await c.kernel.getDomainAPIAsync("coverage-analysis");if(!s){console.log(e.red("Coverage analysis domain not available"));return}let v=te.resolve(b),l=await ne(v);if(l.kind==="no-sources"){console.log(e.yellow("No source files found"));return}if(l.kind==="no-data"){let a=l.reason==="target-missing"||l.reason==="unreadable-report";i.format==="json"?w(W({summary:{line:null,branch:null,function:null,statement:null},meetsThreshold:null,threshold:u,measured:!1,unmeasured:M(l.reason),reason:l.reason,target:v,warning:l.message})):console.log((a?e.red:e.yellow)(` ${l.message}
|
|
25
|
-
`)),await t(a?1:ee);return}let d=l.data;d.instrumented?(console.log(e.green(` Using instrumented coverage data (V8/istanbul)
|
|
26
|
-
`)),d.unmeasuredFiles?.length&&console.log(e.yellow(` ${d.unmeasuredFiles.length} file(s) not in the coverage report \u2014 UNMEASURED, excluded from the figures
|
|
27
|
-
`))):(console.log(e.yellow(" No instrumented coverage found \u2014 using heuristic estimation")),console.log(e.gray(` Run tests with coverage first: npm test -- --coverage
|
|
28
|
-
`)));let j=await s.analyze({coverageData:d,threshold:u,includeFileDetails:!0,measured:d.instrumented}),x=i.format,h,I=0;if(j.success&&j.value){let a=j.value,r=re(d),o=L(a.summary,u,r),n={...a.summary,branch:r.branch?a.summary.branch:null,function:r.function?a.summary.function:null},f=E(a.recommendations,o,u,r);if(I=o.overall,h={summary:n,meetsThreshold:o.meetsThreshold,threshold:u,recommendations:f},x==="text"){let S=k=>k===null?"n/a (not collected)":k.toFixed(1)+"%",z=k=>k===null?e.gray:ie(k);if(console.log(e.cyan(" Coverage Summary:")),console.log(` Lines: ${z(n.line)(S(n.line))}`),console.log(` Branches: ${z(n.branch)(S(n.branch))}`),console.log(` Functions: ${z(n.function)(S(n.function))}`),console.log(` Statements: ${z(n.statement)(S(n.statement))}`),console.log(`
|
|
29
|
-
Threshold: ${o.meetsThreshold?e.green(`Met (${u}%)`):e.red(`Not met (${u}%)`)}`),f.length>0){console.log(e.cyan(`
|
|
30
|
-
Recommendations:`));for(let k of f)console.log(e.gray(` - ${k}`))}}}if(F){console.log(e.cyan(`
|
|
31
|
-
Coverage Gaps:`));let a=await s.detectGaps({coverageData:d,minCoverage:u,prioritize:C?"risk":"size"});if(a.success&&a.value){let r=a.value;h&&(h.gaps=r.gaps.map(o=>({file:o.file.replace(process.cwd()+"/",""),lines:o.lines,riskScore:o.riskScore,severity:o.severity}))),console.log(e.gray(` Total uncovered lines: ${r.totalUncoveredLines}`)),console.log(e.gray(` Estimated effort: ${r.estimatedEffort} hours
|
|
32
|
-
`));for(let o of r.gaps.slice(0,8)){let n=o.severity==="high"?e.red:o.severity==="medium"?e.yellow:e.gray,f=o.file.replace(process.cwd()+"/","");console.log(` ${n(`[${o.severity}]`)} ${e.white(f)}`),console.log(e.gray(` ${o.lines.length} uncovered lines, Risk: ${(o.riskScore*100).toFixed(0)}%`))}r.gaps.length>8&&console.log(e.gray(` ... and ${r.gaps.length-8} more gaps`))}}if(i.ghost||F){console.log(e.cyan(`
|
|
33
|
-
Ghost Intent Coverage (ADR-059):`));try{let a=d.files.map(o=>o.path),r=await s.analyzeGhostCoverage(a,b);if(r.success&&r.value){let o=r.value;console.log(e.gray(` Phantom gaps detected: ${o.gaps.length}`)),console.log(e.gray(` Ghost score: ${(o.totalGhostScore*100).toFixed(1)}%`)),console.log(e.gray(` Coverage completeness: ${(o.coverageCompleteness*100).toFixed(1)}%
|
|
34
|
-
`));for(let n of o.gaps.slice(0,8)){let f=n.severity==="critical"?e.red:n.severity==="high"?e.red:n.severity==="medium"?e.yellow:e.gray;console.log(` ${f(`[${n.severity}]`)} ${e.white(n.category)}`),console.log(e.gray(` ${n.description}`))}o.gaps.length>8&&console.log(e.gray(` ... and ${o.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(C){console.log(e.cyan(`
|
|
35
|
-
Risk Analysis:`));let a=[...d.files].sort((r,o)=>r.lines.covered/r.lines.total-o.lines.covered/o.lines.total).slice(0,5);for(let r of a){let o=await s.calculateRisk({file:r.path,uncoveredLines:r.uncoveredLines});if(o.success&&o.value){let n=o.value,f=n.riskLevel==="high"?e.red:n.riskLevel==="medium"?e.yellow:e.green,S=r.path.replace(process.cwd()+"/","");console.log(` ${f(`[${n.riskLevel}]`)} ${e.white(S)}`),console.log(e.gray(` Risk: ${(n.overallRisk*100).toFixed(0)}%, Coverage: ${Math.round(r.lines.covered/r.lines.total*100)}%`))}}}if(h&&x==="json"?w(W(h)):h&&x==="markdown"?w(A(h)):x==="text"&&console.log(e.green(`
|
|
36
|
-
Coverage analysis complete
|
|
37
|
-
`)),h&&!h.meetsThreshold&&await t(1),h){let a=I;a<u+5&&a>=u&&await t(2)}await t(0)}catch(s){console.error(e.red(`
|
|
38
|
-
Failed:`),s),await t(1)}}finally{console.log=R}});return p.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:b,existsSync:C}=await import("fs"),F=await import("path"),{enumerateBranches:u,formatBranchReport:T,formatBranchJSON:R}=await import("./branch-enumerator-HUNXJKM4.js"),w=F.resolve(y);C(w)||(console.error(e.red(`
|
|
39
|
-
File not found: ${w}
|
|
40
|
-
`)),await t(1));let s=b(w,"utf-8"),v=u(s,w);if(i.json)console.log(R(v));else if(i.markdown)console.log(T(v));else{if(console.log(`
|
|
41
|
-
${e.cyan("Branch Enumeration:")} ${e.white(y)}`),console.log(e.gray(`Found ${v.unhandledCount} unhandled branches (${v.duration}ms)
|
|
42
|
-
`)),v.branches.length>0){console.log(e.dim("Line | Severity | Construct | Trigger")),console.log(e.dim("-----|----------|---------------------------|--------"));for(let l of v.branches){let d=l.severity==="high"?e.red:l.severity==="medium"?e.yellow:e.gray;console.log(`${String(l.line).padStart(4)} | ${d(l.severity.padEnd(8))} | ${l.construct.padEnd(25)} | ${l.triggerCondition}`)}}else console.log(e.green("No unhandled branches detected."));console.log("")}await t(0)}catch(b){console.error(e.red(`
|
|
43
|
-
Branch enumeration failed:`),b),await t(1)}}),p}export{ee as EXIT_UNMEASURED,fe as createCoverageCommand,ne as resolveCliCoverageData};
|
|
@@ -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.5");process.exit(0)}
|
|
2
|
-
import{h as a,i as b,j as c,k as d,l as e,m as f,n as g,o as h,p as i,q as j}from"./chunk-WOZIXXY5.js";import"./chunk-RUSLEOMC.js";import"./chunk-HLFDC4SF.js";export{j as describeNoData,e as evaluateCoverageForTarget,a as findCoverageProjectRoot,b as isCoverageReportFile,i as isUnmeasured,c as loadCoverageReportFile,h as reconcileRecommendations,f as resolveExistingCoverage,d as scopeCoverageToTarget,g as thresholdVerdict};
|
|
@@ -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.5");process.exit(0)}
|
|
2
|
-
import{a,b}from"./chunk-U4TV75AC.js";import"./chunk-6JFGB2JB.js";import"./chunk-AQN5EDBM.js";import"./chunk-3AYYGR6W.js";import"./chunk-HLFDC4SF.js";export{a as CrossDomainEventRouter,b as createCrossDomainRouter};
|