agentic-qe 3.15.7 → 3.15.8
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/skills-manifest.json +1 -1
- package/CHANGELOG.md +122 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-FC4EY447.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-OS5G7KMQ.js → agent-booster-wasm-W3V5P7LE.js} +2 -2
- package/dist/cli/chunks/{agent-handler-PI4I7PME.js → agent-handler-2NQFHAWE.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-J7TXHX4U.js → agent-memory-branch-457ECHHK.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-AUAL6UBL.js +2 -0
- package/dist/cli/chunks/{arena-FXESDCFR.js → arena-IYBQ3GPY.js} +4 -4
- package/dist/cli/chunks/{arena-OWUGXKNT.js → arena-JV3WSEHU.js} +2 -2
- package/dist/cli/chunks/{audit-EPAWLYIZ.js → audit-5OS3T3K6.js} +3 -3
- package/dist/cli/chunks/base-2XML4WH7.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-IYVR5EQY.js → better-sqlite3-IQKBFVAO.js} +2 -2
- package/dist/cli/chunks/{brain-handler-3W2E6TC6.js → brain-handler-KA3SGAFM.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-HU7VACJ4.js → branch-enumerator-QZDU2VOQ.js} +2 -2
- package/dist/cli/chunks/{browser-72XOR6E2.js → browser-ZL7OLKJQ.js} +2 -2
- package/dist/cli/chunks/browser-workflow-2IFEUAAK.js +2 -0
- package/dist/cli/chunks/{chunk-ZRLNACPY.js → chunk-22DOS3PM.js} +2 -2
- package/dist/cli/chunks/{chunk-QVG4ZDXX.js → chunk-2DPHFCMW.js} +2 -2
- package/dist/cli/chunks/{chunk-JFPXCQNP.js → chunk-2GSAAUW3.js} +1 -1
- package/dist/cli/chunks/{chunk-HPG7354V.js → chunk-2JCLACCS.js} +2 -2
- package/dist/cli/chunks/{chunk-44DPYNPE.js → chunk-2QRGIEQV.js} +1 -1
- package/dist/cli/chunks/{chunk-W4X2VTIY.js → chunk-2UN4JOTN.js} +2 -2
- package/dist/cli/chunks/{chunk-2423JAA5.js → chunk-2ZRNXEVI.js} +1 -1
- package/dist/cli/chunks/{chunk-CXTJ47QS.js → chunk-3LFLO2WK.js} +2 -2
- package/dist/cli/chunks/{chunk-QQT6QENQ.js → chunk-3N627QRU.js} +2 -2
- package/dist/cli/chunks/{chunk-LQOVA4YX.js → chunk-4C3RYBTT.js} +2 -2
- package/dist/cli/chunks/{chunk-5PBRBS7D.js → chunk-4C7KE2EL.js} +2 -2
- package/dist/cli/chunks/{chunk-J43DV3ME.js → chunk-4GUVVGJX.js} +1 -1
- package/dist/cli/chunks/{chunk-EL75G2A3.js → chunk-4GYFONJB.js} +1 -1
- package/dist/cli/chunks/{chunk-MJJC6HUK.js → chunk-4I35ARWW.js} +1 -1
- package/dist/cli/chunks/{chunk-6OS7HREG.js → chunk-4NTLGGXO.js} +1 -1
- package/dist/cli/chunks/{chunk-3RM46XFP.js → chunk-4TZLZRZ4.js} +1 -1
- package/dist/cli/chunks/{chunk-BTYKGVJ5.js → chunk-4YUBWU3E.js} +1 -1
- package/dist/cli/chunks/{chunk-6AYRAOCA.js → chunk-52YRSWPS.js} +2 -2
- package/dist/cli/chunks/{chunk-24CENUT4.js → chunk-5DZDLOY6.js} +3 -3
- package/dist/cli/chunks/{chunk-34JLY3U6.js → chunk-5MBNRTT5.js} +2 -2
- package/dist/cli/chunks/{chunk-SQHLC6I5.js → chunk-5ONJ7AV6.js} +1 -1
- package/dist/cli/chunks/{chunk-Y4SAWE45.js → chunk-5YOO5QSE.js} +1 -1
- package/dist/cli/chunks/{chunk-V2SAEMZY.js → chunk-62T7U25U.js} +1 -1
- package/dist/cli/chunks/{chunk-UIYKR2SA.js → chunk-6CKTLVYV.js} +2 -2
- package/dist/cli/chunks/{chunk-2E3XWKEU.js → chunk-6E7EOHMN.js} +2 -2
- package/dist/cli/chunks/{chunk-DGK6GQMO.js → chunk-6GIC2263.js} +2 -2
- package/dist/cli/chunks/{chunk-2RJYA6WK.js → chunk-767SR7WH.js} +2 -2
- package/dist/cli/chunks/{chunk-RCYLCA7E.js → chunk-7C6FMLQR.js} +2 -2
- package/dist/cli/chunks/{chunk-XTJMY3KS.js → chunk-7CVMT64N.js} +1 -1
- package/dist/cli/chunks/{chunk-JK6B3ULP.js → chunk-7DHSHD5B.js} +2 -2
- package/dist/cli/chunks/{chunk-JYXOFN3E.js → chunk-7H3GNRNA.js} +2 -2
- package/dist/cli/chunks/{chunk-7EX4DEQR.js → chunk-7SLEUVPZ.js} +2 -2
- package/dist/cli/chunks/{chunk-ZLVQSEZK.js → chunk-7XGM7Q2N.js} +2 -2
- package/dist/cli/chunks/{chunk-RNYX4CPI.js → chunk-A2UGPKCS.js} +2 -2
- package/dist/cli/chunks/{chunk-K7W55B7Q.js → chunk-A6GCO6ZU.js} +2 -2
- package/dist/cli/chunks/{chunk-C2MDBBFF.js → chunk-BEVWCF3Q.js} +3 -3
- package/dist/cli/chunks/{chunk-PZG3542B.js → chunk-BLZEOGQE.js} +2 -2
- package/dist/cli/chunks/{chunk-6PKCQXEW.js → chunk-BQUIZ5QT.js} +2 -2
- package/dist/cli/chunks/{chunk-JY4AIEZ7.js → chunk-BTMEOZYY.js} +1 -1
- package/dist/cli/chunks/{chunk-OA4GR3EZ.js → chunk-CDLG3Q2O.js} +2 -2
- package/dist/cli/chunks/{chunk-FVBFASOD.js → chunk-CQ3SBRDP.js} +2 -2
- package/dist/cli/chunks/{chunk-ZUMDDMDE.js → chunk-CQ5G64EA.js} +2 -2
- package/dist/cli/chunks/{chunk-ED32XJ5R.js → chunk-CRUQ6RXU.js} +2 -2
- package/dist/cli/chunks/{chunk-ZTMZFF25.js → chunk-D4IBIMWI.js} +2 -2
- package/dist/cli/chunks/{chunk-QNQSM2OG.js → chunk-D4O3TJI7.js} +2 -2
- package/dist/cli/chunks/{chunk-IYQ7XNE5.js → chunk-DAFMHM64.js} +2 -2
- package/dist/cli/chunks/{chunk-5KS7HA37.js → chunk-DCYUHCPK.js} +1 -1
- package/dist/cli/chunks/{chunk-Q2T5FXEA.js → chunk-DKFSCJEF.js} +2 -2
- package/dist/cli/chunks/{chunk-ONVALAZN.js → chunk-DN3AKAPY.js} +2 -2
- package/dist/cli/chunks/{chunk-LDXQRNTT.js → chunk-DY37YMMQ.js} +1 -1
- package/dist/cli/chunks/{chunk-NZQPP533.js → chunk-EUVSSIGR.js} +3 -3
- package/dist/cli/chunks/{chunk-V5NGBQAQ.js → chunk-FAYXES7R.js} +2 -2
- package/dist/cli/chunks/{chunk-EV2BYY6T.js → chunk-FEN2DHFM.js} +1 -1
- package/dist/cli/chunks/{chunk-TU4LIIOP.js → chunk-FEPFXXI7.js} +2 -2
- package/dist/cli/chunks/{chunk-Y6A46M3B.js → chunk-FJAO4UX2.js} +2 -2
- package/dist/cli/chunks/{chunk-4G2VNW4C.js → chunk-FWXNFPLS.js} +2 -2
- package/dist/cli/chunks/{chunk-DVPGBDBP.js → chunk-G6CLO74Q.js} +3 -3
- package/dist/cli/chunks/{chunk-RORZ5O5Z.js → chunk-G77Q22EN.js} +2 -2
- package/dist/cli/chunks/{chunk-G762PEFO.js → chunk-GENNJRNK.js} +3 -3
- package/dist/cli/chunks/{chunk-XXAVQACL.js → chunk-GGSTLKY5.js} +1 -1
- package/dist/cli/chunks/{chunk-BB7OLQKO.js → chunk-GSOK4M6V.js} +1 -1
- package/dist/cli/chunks/{chunk-PEKDSJBC.js → chunk-HI6OBDDY.js} +2 -2
- package/dist/cli/chunks/{chunk-MMXG3LL6.js → chunk-HNGNRIZZ.js} +2 -2
- package/dist/cli/chunks/{chunk-N4PMPSJJ.js → chunk-HXCGV5UJ.js} +2 -2
- package/dist/cli/chunks/{chunk-YDZJWDR6.js → chunk-I4U7YCXG.js} +3 -3
- package/dist/cli/chunks/{chunk-I7H4IP7T.js → chunk-I77D65X5.js} +2 -2
- package/dist/cli/chunks/{chunk-WXI2STKQ.js → chunk-IJSFZO7P.js} +2 -2
- package/dist/cli/chunks/{chunk-WTLIEBDH.js → chunk-IMSRWNWF.js} +1 -1
- package/dist/cli/chunks/{chunk-634D2ENF.js → chunk-J6LL25QJ.js} +2 -2
- package/dist/cli/chunks/{chunk-LVEX4GID.js → chunk-J7FLNP5L.js} +2 -2
- package/dist/cli/chunks/{chunk-CIFWOMNX.js → chunk-J7RCI25Q.js} +1 -1
- package/dist/cli/chunks/{chunk-HLZATDD2.js → chunk-JFWQFB3S.js} +2 -2
- package/dist/cli/chunks/{chunk-3JD2USUH.js → chunk-JLTGO5BB.js} +2 -2
- package/dist/cli/chunks/{chunk-SX2YSHE7.js → chunk-JWPYMRIX.js} +1 -1
- package/dist/cli/chunks/{chunk-4DIZ5BT6.js → chunk-K4N2MBCE.js} +2 -2
- package/dist/cli/chunks/{chunk-HSDOOFV7.js → chunk-K5R3WUJP.js} +1 -1
- package/dist/cli/chunks/{chunk-LP4AS2E4.js → chunk-KITKQUBX.js} +1 -1
- package/dist/cli/chunks/{chunk-VCA6YYII.js → chunk-KJNUETCB.js} +1 -1
- package/dist/cli/chunks/{chunk-PXZKPUW6.js → chunk-KMVFBYJO.js} +2 -2
- package/dist/cli/chunks/{chunk-IWQQIXHO.js → chunk-KMZW2P3R.js} +2 -2
- package/dist/cli/chunks/{chunk-2AYBYXOA.js → chunk-KNHLOANK.js} +2 -2
- package/dist/cli/chunks/{chunk-JY4WLN3K.js → chunk-KNQUHGNY.js} +2 -2
- package/dist/cli/chunks/{chunk-LGBN7TKC.js → chunk-KVMKYUOE.js} +2 -2
- package/dist/cli/chunks/{chunk-YK3NOC2R.js → chunk-LHRVSK44.js} +2 -2
- package/dist/cli/chunks/{chunk-IARSGAG7.js → chunk-LPSMVBB3.js} +2 -2
- package/dist/cli/chunks/{chunk-CWPRU7ZI.js → chunk-LVHZK7GW.js} +2 -2
- package/dist/cli/chunks/{chunk-T3ZDVU6F.js → chunk-LZWBUVCK.js} +2 -2
- package/dist/cli/chunks/{chunk-MNCF643K.js → chunk-MMY52Y6R.js} +2 -2
- package/dist/cli/chunks/{chunk-YUC7RJGR.js → chunk-MUDBF2JC.js} +1 -1
- package/dist/cli/chunks/{chunk-XEWXYGJI.js → chunk-MV4S3TEC.js} +2 -2
- package/dist/cli/chunks/{chunk-MRHM4COP.js → chunk-NF63NHJH.js} +2 -2
- package/dist/cli/chunks/{chunk-KPOPBUUJ.js → chunk-NHOMVBCI.js} +2 -2
- package/dist/cli/chunks/{chunk-RXAFLK34.js → chunk-NLYUC63R.js} +2 -2
- package/dist/cli/chunks/{chunk-MHZPC4HJ.js → chunk-NQDYOF35.js} +2 -2
- package/dist/cli/chunks/{chunk-OJEZNLB6.js → chunk-NW7HTOSN.js} +2 -2
- package/dist/cli/chunks/{chunk-6JT73S5B.js → chunk-NWFBF3KT.js} +1 -1
- package/dist/cli/chunks/{chunk-REEIFA6A.js → chunk-NZATJ2C6.js} +2 -2
- package/dist/cli/chunks/{chunk-5KCBX225.js → chunk-O4RRVTXN.js} +2 -2
- package/dist/cli/chunks/{chunk-6BO3WCK7.js → chunk-OCLAMZJG.js} +2 -2
- package/dist/cli/chunks/{chunk-ICPALF4Q.js → chunk-OJWEZYLR.js} +2 -2
- package/dist/cli/chunks/{chunk-Z3VJLWRR.js → chunk-OWBFVAEH.js} +2 -2
- package/dist/cli/chunks/{chunk-LDZWIV2O.js → chunk-P2EA62YS.js} +1 -1
- package/dist/cli/chunks/{chunk-IC2WSSD5.js → chunk-P4UT4LBE.js} +3 -3
- package/dist/cli/chunks/{chunk-FTTFJ7SJ.js → chunk-PICEGWGB.js} +1 -1
- package/dist/cli/chunks/{chunk-AXO7OOOA.js → chunk-PIEKGKW6.js} +2 -2
- package/dist/cli/chunks/{chunk-PQV7E7XH.js → chunk-PJGQ2TKN.js} +2 -2
- package/dist/cli/chunks/{chunk-7UCVYYWL.js → chunk-PPIM7B5G.js} +2 -2
- package/dist/cli/chunks/{chunk-UBYCR3O4.js → chunk-PUYQ6EKC.js} +2 -2
- package/dist/cli/chunks/{chunk-2YVJ5OUL.js → chunk-PWA6XBW4.js} +8 -8
- package/dist/cli/chunks/{chunk-VNW5Q2CX.js → chunk-PZ7FJ4UG.js} +2 -2
- package/dist/cli/chunks/{chunk-DCJW2DPL.js → chunk-QFYUZYRA.js} +4 -4
- package/dist/cli/chunks/{chunk-F62EKVVC.js → chunk-R2NHGESM.js} +2 -2
- package/dist/cli/chunks/{chunk-HTWIGQL4.js → chunk-RG42LDOB.js} +2 -2
- package/dist/cli/chunks/{chunk-UCLN6AME.js → chunk-RSMPJWQH.js} +1 -1
- package/dist/cli/chunks/{chunk-HZFT3P5B.js → chunk-SFPGLUXS.js} +1 -1
- package/dist/cli/chunks/{chunk-5Q22XPTH.js → chunk-SHEVM5PF.js} +2 -2
- package/dist/cli/chunks/{chunk-B7M323VL.js → chunk-SJMZZMHP.js} +2 -2
- package/dist/cli/chunks/{chunk-PG64YV6C.js → chunk-ST7ASEJO.js} +11 -11
- package/dist/cli/chunks/{chunk-WUV5RZUI.js → chunk-SWY6KGMF.js} +2 -2
- package/dist/cli/chunks/{chunk-MDC4G323.js → chunk-T2TDTBFV.js} +1 -1
- package/dist/cli/chunks/{chunk-6FEQ73BF.js → chunk-TC52M542.js} +2 -2
- package/dist/cli/chunks/{chunk-PTK66HEY.js → chunk-TMNEK7TP.js} +2 -2
- package/dist/cli/chunks/{chunk-UY3REQOK.js → chunk-U3BWBP6B.js} +2 -2
- package/dist/cli/chunks/{chunk-PUECC4WI.js → chunk-U7CIY3YR.js} +2 -2
- package/dist/cli/chunks/{chunk-LMEU64TR.js → chunk-UDCYQLTD.js} +2 -2
- package/dist/cli/chunks/{chunk-MNZFEIE5.js → chunk-UKKFZJME.js} +1 -1
- package/dist/cli/chunks/{chunk-BTIBXGVQ.js → chunk-UQLAN5TX.js} +4 -4
- package/dist/cli/chunks/{chunk-UUHIEM2M.js → chunk-UTFMMZ57.js} +3 -3
- package/dist/cli/chunks/{chunk-C2CUPJGR.js → chunk-UTNKMPTC.js} +1 -1
- package/dist/cli/chunks/{chunk-ECSLJJOQ.js → chunk-V4QJ3MMT.js} +1 -1
- package/dist/cli/chunks/{chunk-56ZKQYZY.js → chunk-V7VZSNDK.js} +3 -3
- package/dist/cli/chunks/{chunk-AAA4SHEG.js → chunk-VKFVJCIH.js} +1 -1
- package/dist/cli/chunks/{chunk-VKPKYMCT.js → chunk-VQRBBR27.js} +2 -2
- package/dist/cli/chunks/{chunk-SSP2B2WR.js → chunk-VVK4ECVJ.js} +2 -2
- package/dist/cli/chunks/{chunk-T6W5APYP.js → chunk-VWRNG3UK.js} +1 -1
- package/dist/cli/chunks/{chunk-YFOBQSOW.js → chunk-VWSGWYRB.js} +2 -2
- package/dist/cli/chunks/{chunk-PYHYOKYT.js → chunk-W5A36V3Z.js} +2 -2
- package/dist/cli/chunks/{chunk-EB2PP6X2.js → chunk-WAWKAYPY.js} +1 -1
- package/dist/cli/chunks/{chunk-QWLTHFZW.js → chunk-WLXGUQOZ.js} +2 -2
- package/dist/cli/chunks/{chunk-JPHDMHFG.js → chunk-X3HM7SV4.js} +2 -2
- package/dist/cli/chunks/chunk-X6VYQVUM.js +2 -0
- package/dist/cli/chunks/{chunk-MKFQNCXI.js → chunk-X7ZQIFES.js} +2 -2
- package/dist/cli/chunks/{chunk-GY2SAIXP.js → chunk-XOOBLZXR.js} +2 -2
- package/dist/cli/chunks/{chunk-MQ6OF6DU.js → chunk-XZQVC3GD.js} +1 -1
- package/dist/cli/chunks/{chunk-M63QB466.js → chunk-Y5ZBF7MA.js} +2 -2
- package/dist/cli/chunks/{chunk-EDU72RTW.js → chunk-YNQPHRUZ.js} +1 -1
- package/dist/cli/chunks/{chunk-RRPYWBFX.js → chunk-YRH7KMTU.js} +2 -2
- package/dist/cli/chunks/{chunk-CG5DZCOZ.js → chunk-YTYS2XSY.js} +1 -1
- package/dist/cli/chunks/{chunk-G7YTZTGU.js → chunk-YUP3APSN.js} +1 -1
- package/dist/cli/chunks/{chunk-HXBAQKMH.js → chunk-YVWMJZ6O.js} +2 -2
- package/dist/cli/chunks/{chunk-QJE6ZW2X.js → chunk-Z3LDUPLQ.js} +2 -2
- package/dist/cli/chunks/{chunk-JVYPXW6Y.js → chunk-ZBI7PJFX.js} +2 -2
- package/dist/cli/chunks/{chunk-XNSQZ3O7.js → chunk-ZG7UKWBB.js} +2 -2
- package/dist/cli/chunks/{chunk-H4WHDFB5.js → chunk-ZOHS32SI.js} +2 -2
- package/dist/cli/chunks/{chunk-J26GADQE.js → chunk-ZOVAZTXE.js} +342 -342
- package/dist/cli/chunks/{chunk-VUFRTGML.js → chunk-ZWMFKZEQ.js} +2 -2
- package/dist/cli/chunks/{ci-5HEXJZ2C.js → ci-7NUCRGWO.js} +2 -2
- package/dist/cli/chunks/{ci-config-WU4NPDAM.js → ci-config-VQVECCFI.js} +2 -2
- package/dist/cli/chunks/{ci-output-BJQVXX5E.js → ci-output-P7GQ6TKF.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-3BMGTQCB.js → circuit-breaker-5YP6N6HE.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-GVDGJWMU.js → claude-flow-setup-W5H7CMU6.js} +2 -2
- package/dist/cli/chunks/client-RFUSQRUZ.js +2 -0
- package/dist/cli/chunks/{cline-installer-V4MRGWVA.js → cline-installer-OYANSZ54.js} +2 -2
- package/dist/cli/chunks/{code-A3TGQPEO.js → code-OMT4UEZI.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-YJQSYWD3.js → code-index-extractor-M2JEWKNF.js} +2 -2
- package/dist/cli/chunks/{codex-installer-7N7UQPAH.js → codex-installer-YBS6N5O3.js} +2 -2
- package/dist/cli/chunks/{completions-PPGVYLZS.js → completions-U7GS5RG6.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-XZTFLYV5.js → complexity-analyzer-QSXPIUIU.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-Z5I57RAH.js → continuedev-installer-W5TTT743.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-F5YZ6BHB.js → copilot-installer-KC2RT24C.js} +2 -2
- package/dist/cli/chunks/core-handlers-ZC7QB432.js +2 -0
- package/dist/cli/chunks/{cost-tracker-GO33ZQAP.js → cost-tracker-OQPVR6V4.js} +2 -2
- package/dist/cli/chunks/{coverage-GSHKLY74.js → coverage-TCO2A2NX.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-GRBK7YFZ.js +2 -0
- package/dist/cli/chunks/{cursor-installer-JJ7IVJZB.js → cursor-installer-MH7GWD4L.js} +2 -2
- package/dist/cli/chunks/daemon-JER6HE2J.js +12 -0
- package/dist/cli/chunks/{daemon-IRL7QRNE.js → daemon-UJEARJZ2.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-ORXSUHPA.js → dag-attention-scheduler-F3SUJU5O.js} +2 -2
- package/dist/cli/chunks/{detect-RHU62KRI.js → detect-5QTCRB32.js} +2 -2
- package/dist/cli/chunks/{dist-node-3VKV4Z6C.js → dist-node-XKZPHDBO.js} +2 -2
- package/dist/cli/chunks/{domain-handler-SFIML4FK.js → domain-handler-V3UEADKW.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-CJ4FA3OC.js → domain-plugins-7PES4UHZ.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-BCRKPCAA.js → domain-transfer-NF7UJW7B.js} +2 -2
- package/dist/cli/chunks/dream-VALD726W.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-VL3HFLPV.js → embed-and-insert-pattern-D2HWORHF.js} +2 -2
- package/dist/cli/chunks/{eval-GGKRI4P5.js → eval-UF2UBAUC.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-F72TIRQY.js → experience-capture-middleware-2OUCEHHM.js} +3 -3
- package/dist/cli/chunks/{fast-paths-7KOOF3MA.js → fast-paths-KV5DKKHC.js} +2 -2
- package/dist/cli/chunks/{feature-flags-FNHBTHBH.js → feature-flags-6YWMTNO5.js} +2 -2
- package/dist/cli/chunks/{feature-flags-IOZEWWFU.js → feature-flags-MTW6NMR3.js} +2 -2
- package/dist/cli/chunks/file-discovery-VL73ASNI.js +2 -0
- package/dist/cli/chunks/{fleet-QX5KXTRC.js → fleet-GJ66QFXK.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-OH2DOQP7.js → gnn-wrapper-52V6ANOY.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-W67NXTNE.js → heartbeat-handler-X7NHNRC7.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-FSX7A3ZA.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-UX2QT6RL.js +2 -0
- package/dist/cli/chunks/hnsw-index-WRDDAMXH.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-6MLLOGOE.js → hnsw-legacy-bridge-DZBE3KMK.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-4UDISJ3G.js → hnswlib-node-2AWWUJAZ.js} +2 -2
- package/dist/cli/chunks/{hooks-NOQJWQ4P.js → hooks-XLPVROL3.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-O67NGIB5.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-2OD3APVP.js → hypergraph-engine-6TI7YP6P.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-5AZGMBUM.js → hypergraph-handler-DBIBBOXS.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-6VXWWYWM.js +2 -0
- package/dist/cli/chunks/{init-guard-SMGJ45PW.js → init-guard-OSO6MIDD.js} +2 -2
- package/dist/cli/chunks/{init-handler-5T4MP2NM.js → init-handler-7S7IHMUF.js} +6 -6
- package/dist/cli/chunks/init-wizard-VH34J4TL.js +2 -0
- package/dist/cli/chunks/kernel-KJD24NO7.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-RLZYLVQJ.js → kilocode-installer-2KBRFXMA.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-LFZOC7VD.js → kiro-installer-5VFR4OQZ.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-343O2HEZ.js +2 -0
- package/dist/cli/chunks/{learning-XRPGLUWR.js → learning-G5NHL3DV.js} +3 -3
- package/dist/cli/chunks/{llm-router-OMK5HYPH.js → llm-router-4EAPPMHS.js} +4 -4
- package/dist/cli/chunks/llm-router-service-2M4BT2AO.js +2 -0
- package/dist/cli/chunks/{load-XADC7KCU.js → load-UYMZPEY6.js} +2 -2
- package/dist/cli/chunks/load-test-OTQ2JQ5F.js +2 -0
- package/dist/cli/chunks/{mcp-PIBKSSVU.js → mcp-NOTDZBW5.js} +2 -2
- package/dist/cli/chunks/{memory-AP7EZERS.js → memory-QL53YIHP.js} +5 -5
- package/dist/cli/chunks/memory-backend-4QSNRRV6.js +2 -0
- package/dist/cli/chunks/{memory-handlers-MOFDNB6E.js → memory-handlers-YFFYRSM6.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-7JJ2FZ33.js → multi-model-executor-PDDDXF2B.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-ZZZ6EBYJ.js → opencode-installer-75D2SKOT.js} +2 -2
- package/dist/cli/chunks/{orchestrator-2H2YKSGJ.js → orchestrator-3WIZBV4T.js} +5 -5
- package/dist/cli/chunks/pattern-null-store-5USH5MNR.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-7MJJWC2Z.js → pattern-usage-recorder-TEX2JGHA.js} +2 -2
- package/dist/cli/chunks/{pipeline-LIE5BWQY.js → pipeline-7ATPA6LU.js} +2 -2
- package/dist/cli/chunks/{platform-SMYUNLGX.js → platform-WPSKRJE7.js} +2 -2
- package/dist/cli/chunks/{plugin-LJDIXQNT.js → plugin-UUFOVVMU.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-RIDNE5D2.js → prime-radiant-advanced-wasm-PDFSYWKZ.js} +2 -2
- package/dist/cli/chunks/project-root-SRTA6TBL.js +2 -0
- package/dist/cli/chunks/protocol-executor-4WYPCNBS.js +2 -0
- package/dist/cli/chunks/{protocol-handler-YVM66DLI.js → protocol-handler-3VRYRIQB.js} +2 -2
- package/dist/cli/chunks/{prove-ZBDT52GD.js → prove-2NAUROGF.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-I4D6SFS4.js +2 -0
- package/dist/cli/chunks/{quality-DUKXGDDO.js → quality-ZIEI2WGA.js} +2 -2
- package/dist/cli/chunks/{quality-gate-SM3RXF4V.js → quality-gate-KWJO4SWQ.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-24UMTZTE.js +2 -0
- package/dist/cli/chunks/{real-embeddings-4QLQZDB5.js → real-embeddings-TSZ4UIAE.js} +2 -2
- package/dist/cli/chunks/{ref-validation-M3EO32YQ.js → ref-validation-DWFFRETJ.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-S6Q5OLV5.js → roocode-installer-XTZHLUBO.js} +2 -2
- package/dist/cli/chunks/router-AUD4GATI.js +2 -0
- package/dist/cli/chunks/routing-feedback-2FE6SIKQ.js +2 -0
- package/dist/cli/chunks/{routing-handler-55FMUACP.js → routing-handler-GG525TDM.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-QATKAAPK.js → ruvector-commands-QKRJDM7Z.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-P5LEUF25.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-ZCYD5YJS.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-RFXFU6JD.js → rvf-migration-coordinator-FF52OS6Q.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-QGV6BW2W.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-PKDVXQAW.js → rvf-store-integrity-M6DXTAZ4.js} +2 -2
- package/dist/cli/chunks/safe-db-Q6JUKG2A.js +2 -0
- package/dist/cli/chunks/schedule-44OSMGE5.js +2 -0
- package/dist/cli/chunks/scheduler-V3HO2QQT.js +2 -0
- package/dist/cli/chunks/{security-CMRB6WA3.js → security-EHXSW22U.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-YHLLNFHF.js → shared-rvf-adapter-6EH7UVJL.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-4BGDVPQ7.js → shared-rvf-dual-writer-WML274E7.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-N5T7DWMR.js +2 -0
- package/dist/cli/chunks/{standalone-memory-LUHKQAGM.js → standalone-memory-C7QKAXS4.js} +2 -2
- package/dist/cli/chunks/{status-handler-S6S5PNR7.js → status-handler-VLI7MRLM.js} +2 -2
- package/dist/cli/chunks/{structural-health-PQ7NZAJ4.js → structural-health-3LPG6MQN.js} +2 -2
- package/dist/cli/chunks/{sync-S744AEJC.js → sync-4IMMQEPT.js} +2 -2
- package/dist/cli/chunks/{sync-Q6KRQXU6.js → sync-JFJEJBVK.js} +2 -2
- package/dist/cli/chunks/{task-handler-GAMGEHUW.js → task-handler-IED3K6E4.js} +2 -2
- package/dist/cli/chunks/{task-handlers-6CRDEELN.js → task-handlers-FH6DNTHW.js} +3 -3
- package/dist/cli/chunks/{test-FNH67DBK.js → test-GPKT3CKZ.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-NZA5SHK6.js → test-scheduling-Z42XXZP6.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-CXKG55JD.js → token-bootstrap-HMM3AHXM.js} +2 -2
- package/dist/cli/chunks/{token-usage-M7WWEDJX.js → token-usage-6Y2ERYIY.js} +2 -2
- package/dist/cli/chunks/{transformers-2IFMCK6A.js → transformers-MB63T2XO.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-NMNA6RJC.js → tree-sitter-wasm-parser-56GDQCMR.js} +2 -2
- package/dist/cli/chunks/{types-N7FWTOLD.js → types-J4J6QV3I.js} +2 -2
- package/dist/cli/chunks/unified-memory-RQ3Q4CU3.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-ZOP5FEYX.js +2 -0
- package/dist/cli/chunks/unified-persistence-72OCJJKK.js +2 -0
- package/dist/cli/chunks/{upgrade-KDB5RGL7.js → upgrade-U4XU7LFM.js} +2 -2
- package/dist/cli/chunks/{validate-KMUV5FUA.js → validate-B57HA4YK.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-ANZWRCJU.js → validate-swarm-UPPA4M6T.js} +2 -2
- package/dist/cli/chunks/visual-security-7F5UV23J.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-SXXC4NMS.js → web-tree-sitter-GDZMUKOZ.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-2LWSKMBU.js → windsurf-installer-VJRWCHXP.js} +2 -2
- package/dist/cli/chunks/witness-chain-KZ57QUFE.js +2 -0
- package/dist/cli/chunks/{witness-chain-JJMSJFZP.js → witness-chain-LFASSMZK.js} +2 -2
- package/dist/cli/chunks/{witness-chain-repair-OX7VFW6T.js → witness-chain-repair-TPHN4DXN.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-QLSMXHAZ.js → witness-chain-verifier-Z23FVABW.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-3DS4L7LE.js → witness-key-manager-745MJ7WO.js} +2 -2
- package/dist/cli/chunks/{workflow-ARWAMHD3.js → workflow-T245QNQM.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-ZNWEUYBN.js +2 -0
- package/dist/cli/chunks/{wrappers-J6KGTUSJ.js → wrappers-WCAYIQUX.js} +2 -2
- package/dist/coordination/protocols/learning-consolidation.js +6 -12
- package/dist/domains/coverage-analysis/collected-metrics.js +2 -1
- package/dist/domains/learning-optimization/active-patterns.d.ts +55 -0
- package/dist/domains/learning-optimization/active-patterns.js +77 -0
- package/dist/domains/learning-optimization/coordinator.js +12 -9
- package/dist/domains/learning-optimization/services/learning-coordinator.js +15 -17
- package/dist/domains/test-execution/services/retry-handler.js +18 -2
- package/dist/learning/dream/dream-engine.d.ts +27 -1
- package/dist/learning/dream/dream-engine.js +56 -2
- package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -0
- package/dist/learning/dream/rvcow-branch-manager.js +8 -0
- package/dist/learning/dream/speculative-dreamer.d.ts +8 -0
- package/dist/learning/dream/speculative-dreamer.js +8 -0
- package/dist/mcp/background-workers.d.ts +15 -0
- package/dist/mcp/background-workers.js +71 -0
- package/dist/mcp/bundle.js +409 -406
- package/dist/mcp/entry.js +4 -49
- package/dist/workers/daemon.d.ts +5 -0
- package/dist/workers/daemon.js +16 -2
- package/dist/workers/worker-env.d.ts +45 -0
- package/dist/workers/worker-env.js +76 -0
- package/dist/workers/workers/learning-consolidation.d.ts +20 -0
- package/dist/workers/workers/learning-consolidation.js +53 -22
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-PEOUNYXJ.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-DHKZI5RX.js +0 -2
- package/dist/cli/chunks/base-QZWK3D5P.js +0 -2
- package/dist/cli/chunks/browser-workflow-ITPX72RX.js +0 -2
- package/dist/cli/chunks/chunk-VJRZFWR5.js +0 -2
- package/dist/cli/chunks/client-S7GNYTZ5.js +0 -2
- package/dist/cli/chunks/core-handlers-CUEPOQIO.js +0 -2
- package/dist/cli/chunks/cross-domain-router-CXN5QFEV.js +0 -2
- package/dist/cli/chunks/daemon-3DQCKRYO.js +0 -10
- package/dist/cli/chunks/dream-5AUNJW24.js +0 -2
- package/dist/cli/chunks/file-discovery-AYWF357I.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-7ZIDVXIP.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-P77OC7FM.js +0 -2
- package/dist/cli/chunks/hnsw-index-3LBOTQAW.js +0 -2
- package/dist/cli/chunks/hybrid-backend-LOM54PDD.js +0 -2
- package/dist/cli/chunks/impact-analyzer-QSDJVBPS.js +0 -2
- package/dist/cli/chunks/init-wizard-MK2325JJ.js +0 -2
- package/dist/cli/chunks/kernel-2NJQQ2KT.js +0 -2
- package/dist/cli/chunks/knowledge-graph-SDISHO62.js +0 -2
- package/dist/cli/chunks/llm-router-service-YTCMRBAN.js +0 -2
- package/dist/cli/chunks/load-test-RPKHLBCC.js +0 -2
- package/dist/cli/chunks/memory-backend-BZXFO4JZ.js +0 -2
- package/dist/cli/chunks/pattern-null-store-4PRPIOR6.js +0 -2
- package/dist/cli/chunks/project-root-NBIQF63D.js +0 -2
- package/dist/cli/chunks/protocol-executor-BRPGIYWQ.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-GDZACWKW.js +0 -2
- package/dist/cli/chunks/queen-coordinator-LDKLBPD5.js +0 -2
- package/dist/cli/chunks/router-H5YSIRH2.js +0 -2
- package/dist/cli/chunks/routing-feedback-5R36TJDH.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-TT2DBQQQ.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-BCLFJKSK.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-UXI66OQJ.js +0 -2
- package/dist/cli/chunks/safe-db-MSTD2GDH.js +0 -2
- package/dist/cli/chunks/schedule-KST6KIFD.js +0 -2
- package/dist/cli/chunks/scheduler-FTQS6YK3.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-ZX5QFDMR.js +0 -2
- package/dist/cli/chunks/unified-memory-2Z2F446J.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-A4EWYPJQ.js +0 -2
- package/dist/cli/chunks/unified-persistence-Z6N6JZFA.js +0 -2
- package/dist/cli/chunks/visual-security-GXYZV7KR.js +0 -2
- package/dist/cli/chunks/witness-chain-52PEIEGK.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-DORMQMG7.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
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.
|
|
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.8");process.exit(0)}
|
|
2
2
|
var l=class m{vertices=new Map;edges=new Map;adjacencyList=new Map;totalWeight=0;addVertex(e){if(this.vertices.has(e.id)){this.vertices.set(e.id,e);return}this.vertices.set(e.id,e),this.adjacencyList.set(e.id,[])}removeVertex(e){if(!this.vertices.has(e))return!1;let t=this.adjacencyList.get(e)||[];for(let r of t)this.removeEdge(e,r.neighborId);for(let[,r]of this.adjacencyList){let n=r.findIndex(i=>i.neighborId===e);n!==-1&&(this.totalWeight-=r[n].weight,r.splice(n,1))}return this.vertices.delete(e),this.adjacencyList.delete(e),!0}getVertex(e){return this.vertices.get(e)}hasVertex(e){return this.vertices.has(e)}getVertices(){return Array.from(this.vertices.values())}getVertexIds(){return Array.from(this.vertices.keys())}getVerticesByDomain(e){return this.getVertices().filter(t=>t.domain===e)}getVerticesByType(e){return this.getVertices().filter(t=>t.type===e)}addEdge(e){if(!this.vertices.has(e.source))throw new Error(`Source vertex ${e.source} does not exist`);if(!this.vertices.has(e.target))throw new Error(`Target vertex ${e.target} does not exist`);let t=this.edgeKey(e.source,e.target);if(this.edges.has(t)){let r=this.edges.get(t);this.totalWeight-=r.weight,this.removeFromAdjacency(e.source,e.target),r.bidirectional&&this.removeFromAdjacency(e.target,e.source)}this.edges.set(t,e),this.totalWeight+=e.weight,this.addToAdjacency(e.source,e.target,e.weight,e),e.bidirectional&&this.addToAdjacency(e.target,e.source,e.weight,e)}removeEdge(e,t){let r=this.edgeKey(e,t),n=this.edges.get(r);return n?(this.totalWeight-=n.weight,this.edges.delete(r),this.removeFromAdjacency(e,t),n.bidirectional&&this.removeFromAdjacency(t,e),!0):!1}getEdge(e,t){return this.edges.get(this.edgeKey(e,t))}hasEdge(e,t){return this.edges.has(this.edgeKey(e,t))}getEdges(){return Array.from(this.edges.values())}getEdgesForVertex(e){return(this.adjacencyList.get(e)||[]).map(r=>r.edge)}degree(e){return this.adjacencyList.get(e)?.length||0}weightedDegree(e){let t=this.adjacencyList.get(e);return t?t.reduce((r,n)=>r+n.weight,0):0}neighbors(e){return(this.adjacencyList.get(e)||[]).map(r=>({vertex:this.vertices.get(r.neighborId),weight:r.weight})).filter(r=>r.vertex!==void 0)}neighborIds(e){return(this.adjacencyList.get(e)||[]).map(r=>r.neighborId)}getStats(){let e=this.vertices.size,t=this.edges.size,r=0;for(let[,s]of this.adjacencyList)r+=s.length;let n=e>0?r/e:0,i=e>1?e*(e-1)/2:0,a=i>0?t/i:0,o=this.countConnectedComponents(),c=o===1&&e>0;return{vertexCount:e,edgeCount:t,totalWeight:this.totalWeight,averageDegree:n,density:a,isConnected:c,componentCount:o}}countConnectedComponents(){let e=new Set,t=0;for(let r of this.vertices.keys())e.has(r)||(this.dfs(r,e),t++);return t}dfs(e,t){t.add(e);let r=this.adjacencyList.get(e)||[];for(let n of r)t.has(n.neighborId)||this.dfs(n.neighborId,t)}isConnected(){if(this.vertices.size===0||this.vertices.size===1)return!0;let e=new Set,t=this.vertices.keys().next().value;return t===void 0?!0:(this.dfs(t,e),e.size===this.vertices.size)}getConnectedComponent(e){if(!this.vertices.has(e))return[];let t=new Set;return this.dfs(e,t),Array.from(t)}snapshot(){return{timestamp:new Date,vertices:this.getVertices(),edges:this.getEdges(),stats:this.getStats()}}clone(){let e=new m;for(let t of this.vertices.values())e.addVertex({...t});for(let t of this.edges.values())e.addEdge({...t});return e}static fromSnapshot(e){let t=new m;for(let r of e.vertices)t.addVertex(r);for(let r of e.edges)t.addEdge(r);return t}clear(){this.vertices.clear(),this.edges.clear(),this.adjacencyList.clear(),this.totalWeight=0}get vertexCount(){return this.vertices.size}get edgeCount(){return this.edges.size}isEmpty(){return this.vertices.size===0}edgeKey(e,t){return e<t?`${e}:${t}`:`${t}:${e}`}addToAdjacency(e,t,r,n){let i=this.adjacencyList.get(e);i&&(i.find(o=>o.neighborId===t)||i.push({neighborId:t,weight:r,edge:n}))}removeFromAdjacency(e,t){let r=this.adjacencyList.get(e);if(r){let n=r.findIndex(i=>i.neighborId===t);n!==-1&&r.splice(n,1)}}};function p(){return new l}var f=class{approxMinCut(e){let t=Date.now();if(e.isEmpty())return this.emptyResult(t,"weighted-degree");let r=e.getVertexIds(),n=1/0,i=null;for(let o of r){let c=e.weightedDegree(o);c<n&&(n=c,i=o)}if(i===null||r.length===1)return this.emptyResult(t,"weighted-degree");let a=e.getEdgesForVertex(i);return{value:n,sourceSide:[i],targetSide:r.filter(o=>o!==i),cutEdges:a,calculatedAt:new Date,algorithm:"weighted-degree",durationMs:Date.now()-t}}findWeakVertices(e,t){if(e.isEmpty())return[];let r=e.getVertices(),n=[],i=new Map,a=0;for(let g of r){let h=e.weightedDegree(g.id);i.set(g.id,h),a+=h}let o=a/r.length,c=0;for(let g of i.values())c+=(g-o)**2;let s=Math.sqrt(c/r.length),d=1/0;for(let g of i.values())g<d&&(d=g);let u=t??o-s;for(let g of r){let h=i.get(g.id);if(h<=u){let w=this.calculateRiskScore(h,o,s,d),y=this.determineWeakReason(g,h,o,e),v=this.generateStrengtheningActions(g,e,h);n.push({vertexId:g.id,vertex:g,weightedDegree:h,riskScore:w,reason:y,suggestions:v})}}return n.sort((g,h)=>h.riskScore-g.riskScore),n}getMinCutValue(e){if(e.isEmpty())return 0;let t=1/0;for(let r of e.getVertexIds()){let n=e.weightedDegree(r);n<t&&(t=n)}return t===1/0?0:t}isConnectivityCritical(e,t){return this.getMinCutValue(e)<t}getMinDegreeVertex(e){if(e.isEmpty())return null;let t=1/0,r=null;for(let n of e.getVertexIds()){let i=e.weightedDegree(n);i<t&&(t=i,r=n)}return r?{vertexId:r,degree:t}:null}getLocalMinCut(e,t){return e.hasVertex(t)?e.weightedDegree(t):0}findPartitioningPoints(e){if(e.isEmpty()||e.vertexCount<2)return[];let t=this.findArticulationPoints(e),r=[];for(let n of e.getVertices()){let i=this.getLocalMinCut(e,n.id);r.push({vertexId:n.id,localMinCut:i,wouldDisconnect:t.has(n.id)&&e.vertexCount>2})}return r.sort((n,i)=>n.localMinCut-i.localMinCut),r}findArticulationPoints(e){let t=new Map,r=new Map,n=new Map,i=new Set,a=0,o=e.getVertexIds();for(let s of o)t.set(s,-1),r.set(s,-1),n.set(s,null);let c=s=>{let d=0;t.set(s,a),r.set(s,a),a++;for(let u of e.neighborIds(s))t.get(u)===-1?(d++,n.set(u,s),c(u),r.set(s,Math.min(r.get(s),r.get(u))),n.get(s)===null&&d>1&&i.add(s),n.get(s)!==null&&r.get(u)>=t.get(s)&&i.add(s)):u!==n.get(s)&&r.set(s,Math.min(r.get(s),t.get(u)))};for(let s of o)t.get(s)===-1&&c(s);return i}suggestEdgeAdditions(e,t){let r=this.findWeakVertices(e),n=[],i=0,a=e.getVertices().map(o=>({vertex:o,degree:e.weightedDegree(o.id)})).sort((o,c)=>c.degree-o.degree);for(let o of r){if(i>=t)break;let c=new Set(e.neighborIds(o.vertexId));for(let{vertex:s}of a){if(s.id===o.vertexId||c.has(s.id))continue;let d={source:o.vertexId,target:s.id,weight:1,type:"coordination",bidirectional:!0};n.push(d),i+=1;break}}return n}emptyResult(e,t){return{value:0,sourceSide:[],targetSide:[],cutEdges:[],calculatedAt:new Date,algorithm:t,durationMs:Date.now()-e}}calculateRiskScore(e,t,r,n){if(r===0)return .5;let i=(t-e)/r,a=1/(1+Math.exp(-i)),o=n>0?n/e:1;return Math.min(1,a*o)}determineWeakReason(e,t,r,n){return t===0?"Isolated vertex with no connections":n.degree(e.id)===1?"Single connection point (leaf node)":t<r*.5?`Low connectivity (${(t/r*100).toFixed(0)}% of average)`:"Below average connectivity threshold"}generateStrengtheningActions(e,t,r){let n=[],i=new Set(t.neighborIds(e.id)),a=t.getStats().averageDegree,o=Math.max(a,3),c=Math.ceil(o-r),s=t.getVertices().filter(d=>d.id!==e.id&&!i.has(d.id)).sort((d,u)=>t.weightedDegree(u.id)-t.weightedDegree(d.id)).slice(0,c);for(let d of s)n.push({type:"add_edge",targetVertex:d.id,priority:"high",estimatedImprovement:1});return e.type==="agent"&&e.domain&&r<1&&n.push({type:"spawn_agent",domain:e.domain,priority:"critical",estimatedImprovement:2}),i.size>0&&i.size<3&&n.push({type:"increase_weight",weightDelta:.5,priority:"medium",estimatedImprovement:.5*i.size}),n}};function x(){return new f}export{l as a,p as b,f as c,x as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
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.
|
|
2
|
-
import{l as m}from"./chunk-
|
|
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.8");process.exit(0)}
|
|
2
|
+
import{l as m}from"./chunk-TC52M542.js";import{a as l,e as d}from"./chunk-J7FLNP5L.js";d();var c=class extends m{config={name:"qe/tests/load",description:"Run agent load tests to validate fleet scalability. Supports light, medium, and heavy workload profiles. Uses mock agents by default (safe); set mockMode=false to test with real fleet agents (requires fleet_init). Reports bottlenecks and pass/fail criteria.",domain:"test-execution",schema:this.buildSchema(),timeout:3e5};buildSchema(){return{type:"object",properties:{targetAgents:{type:"number",description:"Target number of concurrent agents to simulate",default:10,minimum:1,maximum:200},profile:{type:"string",description:"Workload profile: light, medium, or heavy",enum:["light","medium","heavy"],default:"medium"},durationMs:{type:"number",description:"Test duration in milliseconds",default:3e4,minimum:5e3,maximum:3e5},mockMode:{type:"boolean",description:"Use mock agents (true, default) or real fleet agents (false, requires fleet_init)",default:!0}}}}async execute(t,u){try{let{createAgentLoadTester:r}=await import("./load-UYMZPEY6.js"),a=t.profile||"medium",o=t.targetAgents||10,i=t.durationMs||3e4,n=t.mockMode!==!1,s=await r({maxAgents:o,workloadProfile:a,mockMode:n}).runTest(o,i),e=s.bottlenecks;return{success:!0,data:{testId:u.requestId,profile:a,targetAgents:o,duration:s.duration,mockMode:n,passed:s.success,bottleneckCount:e?.bottlenecks?.length??0,report:{overallSeverity:e?.overallSeverity??"none",hasCritical:e?.hasCritical??!1,checksPerformed:e?.summary?.totalChecks??0,bottlenecksDetected:e?.summary?.detected??0},summary:`Load test (${a}, ${n?"mock":"real"}): ${o} agents, ${i}ms \u2014 ${s.success?"PASSED":"FAILED"}`+(e?.hasCritical?" [CRITICAL BOTTLENECKS]":"")}}}catch(r){return{success:!1,error:l(r)}}}};export{c as a};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{a as T,c as E,d as j,e as b,f as D}from"./chunk-
|
|
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.8");process.exit(0)}
|
|
2
|
+
import{a as T,c as E,d as j,e as b,f as D}from"./chunk-ZWMFKZEQ.js";import*as h from"fs";import*as P from"os";import*as u from"path";import*as f from"fs";import*as _ from"os";import*as l from"path";function V(r=process.env){let e=(r.AQE_COVERAGE_NO_EXEC??"").trim().toLowerCase();return e?e!=="false"&&e!=="0"&&e!=="no"&&e!=="off":!1}var K=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".go",".rs",".java",".rb"]),k=new Set(["node_modules","dist","build","coverage",".git",".claude",".agentic-qe","__pycache__",".venv","target","vendor"]),L=new Set(["tests","test","__tests__","benches","examples","spec"]),H=[/\.test\./i,/\.spec\./i,/_test\./i,/_spec\./i,/^test_/i,/^test\./i,/^conftest\./i];function v(r,e){let n=r.split(l.sep).join("/"),t=l.basename(n);if(H.some(o=>o.test(t)))return!0;let s=n;if(e){let o=l.resolve(e).split(l.sep).join("/"),i=l.resolve(r).split(l.sep).join("/");(i===o||i.startsWith(`${o}/`))&&(s=i.slice(o.length).replace(/^\//,""))}return s.split("/").some(o=>L.has(o))}function Q(r){let e=r.split(""),n=r.length,t=0,s=(o,i)=>{for(let a=o;a<i&&a<n;a++)r[a]!==`
|
|
3
3
|
`&&(e[a]=" ")};for(;t<n;){let o=r[t];if(o==="/"&&r[t+1]==="/"){let a=r.indexOf(`
|
|
4
4
|
`,t),c=a===-1?n:a;s(t,c),t=c;continue}if(o==="/"&&r[t+1]==="*"){let a=0,c=t;for(;t<n;){if(r[t]==="/"&&r[t+1]==="*"){a++,t+=2;continue}if(r[t]==="*"&&r[t+1]==="/"){if(a--,t+=2,a===0)break;continue}t++}s(c,t);continue}let i=/^b?r(#*)"/.exec(r.slice(t,t+300));if(i){let a=`"${i[1]}`,c=t+i[0].length,g=r.indexOf(a,c),p=g===-1?n:g+a.length;s(t,p),t=p;continue}if(o==='"'){let a=t;for(t++;t<n;){if(r[t]==="\\"){t+=2;continue}if(r[t]==='"'){t++;break}t++}s(a,t);continue}if(o==="'"){let a=-1;if(r[t+1]==="\\"){let c=r.indexOf("'",t+2);c!==-1&&c<=t+5&&(a=c+1)}else r[t+2]==="'"&&(a=t+3);if(a!==-1){s(t,a),t=a;continue}}t++}return e.join("")}function Z(r,e){if(e!==".rs")return[];let n=Q(r).split(`
|
|
5
5
|
`),t=[];for(let s=0;s<n.length;s++){if(!/#\s*\[\s*cfg\s*\(\s*test\s*\)\s*\]/.test(n[s]))continue;let o=-1;for(let c=s;c<Math.min(n.length,s+10);c++){let g=n[c],p=g.indexOf("{"),m=g.indexOf(";");if(m!==-1&&(p===-1||m<p))break;if(p!==-1){let y=n.slice(s,c+1).join(" ");/\bmod\s+\w+/.test(y)&&(o=c);break}}if(o===-1)continue;let i=0,a=-1;for(let c=o;c<n.length;c++){for(let g of n[c])g==="{"?i++:g==="}"&&i--;if(i<=0){a=c;break}}t.push([s+1,(a===-1?n.length-1:a)+1]),s=a===-1?n.length:a}return t}function Y(r){if(r.length===0)return 0;let e=r.split(`
|
|
@@ -1,2 +1,2 @@
|
|
|
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.
|
|
2
|
-
import{b as t,d as o}from"./chunk-
|
|
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.8");process.exit(0)}
|
|
2
|
+
import{b as t,d as o}from"./chunk-K5R3WUJP.js";var L={};o(L,{DotProductAttention:()=>d,FlashAttention:()=>u,HyperbolicAttention:()=>f,LinearAttention:()=>h,MoEAttention:()=>_,MultiHeadAttention:()=>A,RuvectorLayer:()=>a,SonaEngine:()=>b,TensorCompress:()=>c,default:()=>n,differentiableSearch:()=>l,getCompressionLevel:()=>p,hierarchicalForward:()=>s,init:()=>m,pipeline:()=>q});import{createRequire as r}from"module";var i,e,n,a,c,l,s,p,m,u,d,A,f,h,_,b,q,g=t(()=>{i=r(import.meta.url),e=i("better-sqlite3"),n=e,{RuvectorLayer:a,TensorCompress:c,differentiableSearch:l,hierarchicalForward:s,getCompressionLevel:p,init:m,FlashAttention:u,DotProductAttention:d,MultiHeadAttention:A,HyperbolicAttention:f,LinearAttention:h,MoEAttention:_,SonaEngine:b,pipeline:q}=e||{}});export{n as a,a as b,c,l as d,s as e,p as f,m as g,u as h,d as i,A as j,f as k,h as l,_ as m,b as n,q as o,L as p,g as q};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{b as C,d as P}from"./chunk-4G2VNW4C.js";import{a as w,d as M}from"./chunk-HTWIGQL4.js";import{a as T}from"./chunk-VJRZFWR5.js";import{e as S}from"./chunk-JYXOFN3E.js";import{a as b,e as $}from"./chunk-LVEX4GID.js";$();M();import{randomUUID as A}from"crypto";var x={topology:"hierarchical",maxConcurrentSkills:10,maxConcurrentModels:3,timeout:3e5,continueOnFailure:!0,retry:{maxRetries:2,retryDelayMs:1e3}},R=class{config;learner;skillValidator=null;workers=new Map;taskQueue=[];isRunning=!1;constructor(e,t){this.config={...x,...e},this.learner=t}setSkillValidator(e){this.skillValidator=e}async validateSkillsParallel(e,t,i){let s=Date.now(),a=i?.trustTier??3,n=i?.validationLevel??"eval",c=this.determineTopology(e.length,t.length),r=this.createValidationTasks(e,t,a,n),o=await this.executeTasksParallel(r,c),l=new Map;for(let u of o){let p=l.get(u.skill)||[];p.push(u),l.set(u.skill,p)}return await this.recordOutcomesToLearner(o,a,n),l}async validateSkillCrossModel(e,t,i){return(await this.validateSkillsParallel([e],t,i)).get(e)||[]}getSummary(e){let t=[],i=new Map,s=new Map;for(let[c,r]of e){i.set(c,r);for(let o of r){t.push(o);let l=s.get(o.model)||[];l.push(o),s.set(o.model,l)}}let a=t.filter(c=>c.errors.length===0&&c.evalPassRate>=.9).length,n=t.reduce((c,r)=>c+r.durationMs,0);return{totalSkills:i.size,totalModels:s.size,successCount:a,failureCount:t.length-a,overallPassRate:t.length>0?a/t.length:0,totalDurationMs:n,avgDurationMs:t.length>0?n/t.length:0,topology:this.config.topology,bySkill:i,byModel:s,results:t}}determineTopology(e,t){if(this.config.topology){let i=e*t;return i>20&&this.config.topology==="mesh"&&console.warn(`[SwarmSkillValidator] Large workload (${i} tasks) may be more efficient with hierarchical topology`),this.config.topology}return e>5||e>t*2?"hierarchical":t>5&&e<=3?"mesh":"hierarchical"}createValidationTasks(e,t,i,s){let a=[];for(let n of e)for(let c of t)a.push({id:`${n}-${c}-${Date.now()}-${A().slice(0,8)}`,skill:n,model:c,trustTier:i,validationLevel:s,timeout:this.config.timeout,retryCount:0});return a}async executeTasksParallel(e,t){this.isRunning=!0,this.taskQueue=[...e];let i=[],s=t==="hierarchical"?this.config.maxConcurrentSkills:Math.min(this.config.maxConcurrentSkills*this.config.maxConcurrentModels,e.length),a=[];for(let n=0;n<Math.min(s,e.length);n++){let c=`worker-${n}`;this.workers.set(c,{id:c,task:null,status:"idle"}),a.push(this.runWorker(c,i))}return await Promise.all(a),this.isRunning=!1,this.workers.clear(),i}async runWorker(e,t){let i=this.workers.get(e);if(i){for(;this.taskQueue.length>0&&this.isRunning;){let s=this.taskQueue.shift();if(!s)break;i.task=s,i.status="running",i.startTime=Date.now();try{let a=await this.executeValidationTask(s);t.push(a),i.result=a,i.status="completed"}catch(a){let n=this.createErrorResult(s,a);this.config.retry&&s.retryCount<this.config.retry.maxRetries&&this.config.continueOnFailure?(s.retryCount++,this.taskQueue.push(s),await this.delay(this.config.retry.retryDelayMs)):(t.push(n),i.result=n,i.status="failed")}}i.task=null,i.status="idle"}}async executeValidationTask(e){let t=Date.now();if(!this.skillValidator)return this.createSimulatedResult(e,t);let i=new Promise((n,c)=>{setTimeout(()=>c(new Error(`Validation timeout after ${e.timeout}ms`)),e.timeout)}),s=await Promise.race([this.skillValidator(e.skill,e.model,{trustTier:e.trustTier,validationLevel:e.validationLevel,timeout:e.timeout}),i]),a=Date.now()-t;return this.outcomeToResult(s,e,a)}outcomeToResult(e,t,i){let s=e.testCaseResults.filter(c=>c.passed).length,a=e.testCaseResults.length,n=a>0?s/a:e.score;return{skill:t.skill,model:t.model,schemaValid:e.validationLevel!=="schema"||e.passed,validatorPassed:e.validationLevel!=="validator"||e.passed,evalPassRate:n,durationMs:i,errors:e.passed?[]:["Validation failed"],trustTier:t.trustTier,validationLevel:t.validationLevel,retryCount:t.retryCount,timestamp:new Date}}createSimulatedResult(e,t){let i=Date.now()-t+w()*100,s=.85+w()*.15;return{skill:e.skill,model:e.model,schemaValid:!0,validatorPassed:s>.8,evalPassRate:s,durationMs:i,errors:s>.8?[]:["Simulated validation failure"],trustTier:e.trustTier,validationLevel:e.validationLevel,retryCount:e.retryCount,timestamp:new Date}}createErrorResult(e,t){let i=b(t);return{skill:e.skill,model:e.model,schemaValid:!1,validatorPassed:!1,evalPassRate:0,durationMs:0,errors:[i],trustTier:e.trustTier,validationLevel:e.validationLevel,retryCount:e.retryCount,timestamp:new Date}}async recordOutcomesToLearner(e,t,i){for(let s of e){let a={skillName:s.skill,trustTier:s.trustTier||t,validationLevel:s.validationLevel||i,model:s.model,passed:s.errors.length===0&&s.evalPassRate>=.9,score:s.evalPassRate,testCaseResults:this.createTestCaseResults(s),timestamp:s.timestamp,runId:`swarm-${Date.now()}`,metadata:{duration:s.durationMs,retryCount:s.retryCount}};await this.learner.recordValidationOutcome(a)}}createTestCaseResults(e){return[{testId:`${e.skill}-${e.model}-aggregate`,passed:e.errors.length===0,expectedPatterns:["valid-output"],actualPatterns:e.errors.length===0?["valid-output"]:[],reasoningQuality:e.evalPassRate,executionTimeMs:e.durationMs,category:"swarm-validation",priority:"high",error:e.errors.length>0?e.errors.join("; "):void 0}]}delay(e){return new Promise(t=>setTimeout(t,e))}getConfig(){return{...this.config}}isValidationRunning(){return this.isRunning}getWorkerStatus(){return Array.from(this.workers.values())}cancel(){this.isRunning=!1,this.taskQueue=[]}};function D(y,e){return new R(y,e)}var F=["security-testing","accessibility-testing","api-testing","performance-testing","visual-regression-testing","mutation-testing","contract-testing","chaos-testing","compliance-testing","penetration-testing"],I=["claude-sonnet","claude-haiku","claude-opus"];P();import{readFileSync as E,writeFileSync as L,existsSync as N}from"fs";var O={varianceThreshold:.04,regressionThreshold:.1,minSamples:3,autoUpdateManifest:!1},k=class{constructor(e,t,i={}){this.learner=e;this.manifestPath=t;this.config={...O,...i}}learner;manifestPath;config;async aggregateResults(e){let t=`agg-${Date.now()}`,i=new Date,s=this.buildSkillResultsMap(e),a=this.calculateSummary(s,e),n=await this.detectCrossModelAnomalies(e),c=await this.detectRegressions(e,this.config.regressionThreshold),r=this.generateRecommendations(s,n,c),o={timestamp:i,runId:t,summary:a,skillResults:s,crossModelAnalysis:n,regressions:c,recommendations:r,metadata:{version:"1.0.0",environment:e[0]?.metadata?.environment,generatedBy:"ValidationResultAggregator",inputs:{runIds:e.map(l=>l.runId),models:[...new Set(e.map(l=>l.model))]}}};return this.config.autoUpdateManifest&&await this.updateManifest(o),o}buildSkillResultsMap(e){let t=new Map;for(let i of e)for(let s of i.outcomes){let a=s.skillName;t.has(a)||t.set(a,{skill:a,trustTier:s.trustTier,passRateByModel:new Map,avgPassRate:0,schemaValid:!0,validatorPassed:!0,evalPassed:!0,issues:[],executionTimeMs:0,testCount:0,passedTests:0,failedTests:0});let n=t.get(a),c=s.testCaseResults.filter(r=>r.passed).length/(s.testCaseResults.length||1);n.passRateByModel.set(i.model,c),n.testCount+=s.testCaseResults.length,n.passedTests+=s.testCaseResults.filter(r=>r.passed).length,n.failedTests+=s.testCaseResults.filter(r=>!r.passed).length,n.executionTimeMs+=s.metadata?.duration||0,s.validationLevel==="schema"&&!s.passed&&(n.schemaValid=!1),s.validationLevel==="validator"&&!s.passed&&(n.validatorPassed=!1),s.validationLevel==="eval"&&!s.passed&&(n.evalPassed=!1);for(let r of s.testCaseResults)!r.passed&&r.error&&n.issues.push({skill:a,model:i.model,severity:r.priority==="critical"?"critical":r.priority==="high"?"high":r.priority==="medium"?"medium":"low",type:this.categorizeIssueType(s.validationLevel,r.error),message:r.error,testId:r.testId})}for(let i of t.values()){let s=Array.from(i.passRateByModel.values());i.avgPassRate=s.length>0?s.reduce((a,n)=>a+n,0)/s.length:0}return t}categorizeIssueType(e,t){return t.toLowerCase().includes("timeout")?"timeout":e==="schema"?"schema_failure":e==="validator"?"validator_failure":e==="eval"?"eval_failure":"error"}calculateSummary(e,t){let i=Array.from(e.values()),s=i.filter(n=>n.avgPassRate>=.9).length,a=i.length>0?i.reduce((n,c)=>n+c.avgPassRate,0)/i.length:0;return{totalSkills:i.length,passedSkills:s,failedSkills:i.length-s,avgPassRate:a,totalDurationMs:t.reduce((n,c)=>n+c.durationMs,0),totalTests:i.reduce((n,c)=>n+c.testCount,0),passedTests:i.reduce((n,c)=>n+c.passedTests,0),failedTests:i.reduce((n,c)=>n+c.failedTests,0),modelsUsed:[...new Set(t.map(n=>n.model))]}}async detectCrossModelAnomalies(e){let t=new Map,i=new Map,s=new Map;for(let d of e){t.has(d.model)||(t.set(d.model,[]),i.set(d.model,{totalTests:0,passedTests:0,skillCount:0}));for(let g of d.outcomes){let h=g.testCaseResults.filter(m=>m.passed).length/(g.testCaseResults.length||1);t.get(d.model).push(h);let f=i.get(d.model);f.totalTests+=g.testCaseResults.length,f.passedTests+=g.testCaseResults.filter(m=>m.passed).length,f.skillCount++,s.has(g.skillName)||s.set(g.skillName,{passRates:[],models:[]}),s.get(g.skillName).passRates.push(h),s.get(g.skillName).models.push(d.model)}}let a=[];for(let d of t.values())a.push(...d);let n=a.length>0?a.reduce((d,g)=>d+g,0)/a.length:0,c=a.length>1?a.reduce((d,g)=>d+Math.pow(g-n,2),0)/a.length:0,r=Math.sqrt(c),o=[],l=new Map;for(let[d,g]of t.entries()){let h=g.reduce((v,V)=>v+V,0)/g.length,f=h-n,m=i.get(d);l.set(d,{avgPassRate:h,skillCount:m.skillCount,totalTests:m.totalTests}),Math.abs(f)>this.config.varianceThreshold*2&&o.push({model:d,type:f<0?"low_performance":"high_variance",description:`Model ${d} has ${(f*100).toFixed(1)}% difference from average`,passRate:h,avgPassRate:n,deviation:Math.abs(f)})}let u=[],p=[];for(let[d,g]of s.entries()){if(g.passRates.length<2)continue;let h=g.passRates.reduce((m,v)=>m+v,0)/g.passRates.length;g.passRates.reduce((m,v)=>m+Math.pow(v-h,2),0)/g.passRates.length<this.config.varianceThreshold?u.push(d):p.push(d)}return{variance:c,stdDeviation:r,anomalies:o,consistentSkills:u,inconsistentSkills:p,modelPerformance:l}}async detectRegressions(e,t){let i=[],s=new Set;for(let a of e)for(let n of a.outcomes){let c=`${n.skillName}-${a.model}`;if(s.has(c))continue;s.add(c);let r=await this.learner.getValidationTrends(n.skillName);if(!r)continue;let o=n.testCaseResults.filter(p=>p.passed).length/(n.testCaseResults.length||1),l=r.recentPassRate,u=l-o;u>=t&&i.push({skill:n.skillName,model:a.model,previousPassRate:l,currentPassRate:o,regressionAmount:u,trend:r.overall,possibleCauses:this.analyzePossibleCauses(n,u),severity:this.categorizeRegressionSeverity(u)})}return i.sort((a,n)=>{let c={critical:0,high:1,medium:2,low:3},r=c[a.severity]-c[n.severity];return r!==0?r:n.regressionAmount-a.regressionAmount})}analyzePossibleCauses(e,t){let i=[],s=e.testCaseResults.filter(c=>!c.passed);if(s.length>0){let c=[...new Set(s.map(r=>r.category).filter(Boolean))];c.length>0&&i.push(`Failures in categories: ${c.join(", ")}`)}let a=s.filter(c=>c.priority==="critical");a.length>0&&i.push(`${a.length} critical test(s) failing`);let n=e.testCaseResults.reduce((c,r)=>c+r.reasoningQuality,0)/(e.testCaseResults.length||1);return n<.7&&i.push(`Low reasoning quality score: ${(n*100).toFixed(1)}%`),t>.3&&i.push("Possible model behavior change or prompt drift"),i.length===0&&i.push("No specific cause identified - review test details"),i}categorizeRegressionSeverity(e){return e>=.5?"critical":e>=.3?"high":e>=.15?"medium":"low"}generateRecommendations(e,t,i){let s=[];if(t.inconsistentSkills.length>0&&s.push(`Review ${t.inconsistentSkills.length} skills with inconsistent cross-model behavior: `+t.inconsistentSkills.slice(0,3).join(", ")+(t.inconsistentSkills.length>3?` and ${t.inconsistentSkills.length-3} more`:"")),t.anomalies.some(r=>r.type==="low_performance")){let r=t.anomalies.filter(o=>o.type==="low_performance").map(o=>o.model);s.push(`Investigate low performance on model(s): ${r.join(", ")}`)}let a=i.filter(r=>r.severity==="critical");a.length>0&&s.push(`URGENT: ${a.length} critical regression(s) detected - immediate review required`);let n=Array.from(e.values()).filter(r=>r.avgPassRate<.9);if(n.length>0){let r=n.filter(l=>!l.schemaValid),o=n.filter(l=>!l.validatorPassed);r.length>0&&s.push(`Fix schema validation for: ${r.map(l=>l.skill).slice(0,3).join(", ")}`),o.length>0&&s.push(`Review validator scripts for: ${o.map(l=>l.skill).slice(0,3).join(", ")}`)}return Array.from(e.values()).reduce((r,o)=>r+o.avgPassRate,0)/e.size<.8&&s.push("Overall pass rate below 80% - consider reviewing skill definitions and test expectations"),s.length===0&&s.push("All validations passing - no immediate action required"),s}async updateManifest(e){if(!N(this.manifestPath))throw new Error(`Manifest file not found: ${this.manifestPath}`);let t=C(E(this.manifestPath,"utf-8"));for(let[s,a]of e.skillResults.entries())if(t.skills&&t.skills[s]){let n=t.skills[s];n.validation||(n.validation={}),n.validation.passRate=a.avgPassRate,n.validation.lastValidated=e.timestamp.toISOString(),n.validation.status=a.avgPassRate>=.9?"passing":"failing",n.validation.passRateByModel=Object.fromEntries(a.passRateByModel)}let i=Array.from(e.skillResults.values());t.validationStatus={passing:i.filter(s=>s.avgPassRate>=.9).length,failing:i.filter(s=>s.avgPassRate<.9).length,unknown:0,skipped:t.summary?.tier0||0},t.generatedAt=new Date().toISOString(),t.lastValidationRun={runId:e.runId,timestamp:e.timestamp.toISOString(),avgPassRate:e.summary.avgPassRate,modelsUsed:e.summary.modelsUsed},L(this.manifestPath,JSON.stringify(t,null,2))}generateMarkdownReport(e){let{summary:t,crossModelAnalysis:i,regressions:s,recommendations:a,skillResults:n}=e,c=(t.avgPassRate>=.9||t.avgPassRate>=.7,"`"),r=[];if(r.push(`# Validation Report
|
|
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.8");process.exit(0)}
|
|
2
|
+
import{b as C,d as P}from"./chunk-FWXNFPLS.js";import{a as w,d as M}from"./chunk-RG42LDOB.js";import{a as T}from"./chunk-X6VYQVUM.js";import{e as S}from"./chunk-7H3GNRNA.js";import{a as b,e as $}from"./chunk-J7FLNP5L.js";$();M();import{randomUUID as A}from"crypto";var x={topology:"hierarchical",maxConcurrentSkills:10,maxConcurrentModels:3,timeout:3e5,continueOnFailure:!0,retry:{maxRetries:2,retryDelayMs:1e3}},R=class{config;learner;skillValidator=null;workers=new Map;taskQueue=[];isRunning=!1;constructor(e,t){this.config={...x,...e},this.learner=t}setSkillValidator(e){this.skillValidator=e}async validateSkillsParallel(e,t,i){let s=Date.now(),a=i?.trustTier??3,n=i?.validationLevel??"eval",c=this.determineTopology(e.length,t.length),r=this.createValidationTasks(e,t,a,n),o=await this.executeTasksParallel(r,c),l=new Map;for(let u of o){let p=l.get(u.skill)||[];p.push(u),l.set(u.skill,p)}return await this.recordOutcomesToLearner(o,a,n),l}async validateSkillCrossModel(e,t,i){return(await this.validateSkillsParallel([e],t,i)).get(e)||[]}getSummary(e){let t=[],i=new Map,s=new Map;for(let[c,r]of e){i.set(c,r);for(let o of r){t.push(o);let l=s.get(o.model)||[];l.push(o),s.set(o.model,l)}}let a=t.filter(c=>c.errors.length===0&&c.evalPassRate>=.9).length,n=t.reduce((c,r)=>c+r.durationMs,0);return{totalSkills:i.size,totalModels:s.size,successCount:a,failureCount:t.length-a,overallPassRate:t.length>0?a/t.length:0,totalDurationMs:n,avgDurationMs:t.length>0?n/t.length:0,topology:this.config.topology,bySkill:i,byModel:s,results:t}}determineTopology(e,t){if(this.config.topology){let i=e*t;return i>20&&this.config.topology==="mesh"&&console.warn(`[SwarmSkillValidator] Large workload (${i} tasks) may be more efficient with hierarchical topology`),this.config.topology}return e>5||e>t*2?"hierarchical":t>5&&e<=3?"mesh":"hierarchical"}createValidationTasks(e,t,i,s){let a=[];for(let n of e)for(let c of t)a.push({id:`${n}-${c}-${Date.now()}-${A().slice(0,8)}`,skill:n,model:c,trustTier:i,validationLevel:s,timeout:this.config.timeout,retryCount:0});return a}async executeTasksParallel(e,t){this.isRunning=!0,this.taskQueue=[...e];let i=[],s=t==="hierarchical"?this.config.maxConcurrentSkills:Math.min(this.config.maxConcurrentSkills*this.config.maxConcurrentModels,e.length),a=[];for(let n=0;n<Math.min(s,e.length);n++){let c=`worker-${n}`;this.workers.set(c,{id:c,task:null,status:"idle"}),a.push(this.runWorker(c,i))}return await Promise.all(a),this.isRunning=!1,this.workers.clear(),i}async runWorker(e,t){let i=this.workers.get(e);if(i){for(;this.taskQueue.length>0&&this.isRunning;){let s=this.taskQueue.shift();if(!s)break;i.task=s,i.status="running",i.startTime=Date.now();try{let a=await this.executeValidationTask(s);t.push(a),i.result=a,i.status="completed"}catch(a){let n=this.createErrorResult(s,a);this.config.retry&&s.retryCount<this.config.retry.maxRetries&&this.config.continueOnFailure?(s.retryCount++,this.taskQueue.push(s),await this.delay(this.config.retry.retryDelayMs)):(t.push(n),i.result=n,i.status="failed")}}i.task=null,i.status="idle"}}async executeValidationTask(e){let t=Date.now();if(!this.skillValidator)return this.createSimulatedResult(e,t);let i=new Promise((n,c)=>{setTimeout(()=>c(new Error(`Validation timeout after ${e.timeout}ms`)),e.timeout)}),s=await Promise.race([this.skillValidator(e.skill,e.model,{trustTier:e.trustTier,validationLevel:e.validationLevel,timeout:e.timeout}),i]),a=Date.now()-t;return this.outcomeToResult(s,e,a)}outcomeToResult(e,t,i){let s=e.testCaseResults.filter(c=>c.passed).length,a=e.testCaseResults.length,n=a>0?s/a:e.score;return{skill:t.skill,model:t.model,schemaValid:e.validationLevel!=="schema"||e.passed,validatorPassed:e.validationLevel!=="validator"||e.passed,evalPassRate:n,durationMs:i,errors:e.passed?[]:["Validation failed"],trustTier:t.trustTier,validationLevel:t.validationLevel,retryCount:t.retryCount,timestamp:new Date}}createSimulatedResult(e,t){let i=Date.now()-t+w()*100,s=.85+w()*.15;return{skill:e.skill,model:e.model,schemaValid:!0,validatorPassed:s>.8,evalPassRate:s,durationMs:i,errors:s>.8?[]:["Simulated validation failure"],trustTier:e.trustTier,validationLevel:e.validationLevel,retryCount:e.retryCount,timestamp:new Date}}createErrorResult(e,t){let i=b(t);return{skill:e.skill,model:e.model,schemaValid:!1,validatorPassed:!1,evalPassRate:0,durationMs:0,errors:[i],trustTier:e.trustTier,validationLevel:e.validationLevel,retryCount:e.retryCount,timestamp:new Date}}async recordOutcomesToLearner(e,t,i){for(let s of e){let a={skillName:s.skill,trustTier:s.trustTier||t,validationLevel:s.validationLevel||i,model:s.model,passed:s.errors.length===0&&s.evalPassRate>=.9,score:s.evalPassRate,testCaseResults:this.createTestCaseResults(s),timestamp:s.timestamp,runId:`swarm-${Date.now()}`,metadata:{duration:s.durationMs,retryCount:s.retryCount}};await this.learner.recordValidationOutcome(a)}}createTestCaseResults(e){return[{testId:`${e.skill}-${e.model}-aggregate`,passed:e.errors.length===0,expectedPatterns:["valid-output"],actualPatterns:e.errors.length===0?["valid-output"]:[],reasoningQuality:e.evalPassRate,executionTimeMs:e.durationMs,category:"swarm-validation",priority:"high",error:e.errors.length>0?e.errors.join("; "):void 0}]}delay(e){return new Promise(t=>setTimeout(t,e))}getConfig(){return{...this.config}}isValidationRunning(){return this.isRunning}getWorkerStatus(){return Array.from(this.workers.values())}cancel(){this.isRunning=!1,this.taskQueue=[]}};function D(y,e){return new R(y,e)}var F=["security-testing","accessibility-testing","api-testing","performance-testing","visual-regression-testing","mutation-testing","contract-testing","chaos-testing","compliance-testing","penetration-testing"],I=["claude-sonnet","claude-haiku","claude-opus"];P();import{readFileSync as E,writeFileSync as L,existsSync as N}from"fs";var O={varianceThreshold:.04,regressionThreshold:.1,minSamples:3,autoUpdateManifest:!1},k=class{constructor(e,t,i={}){this.learner=e;this.manifestPath=t;this.config={...O,...i}}learner;manifestPath;config;async aggregateResults(e){let t=`agg-${Date.now()}`,i=new Date,s=this.buildSkillResultsMap(e),a=this.calculateSummary(s,e),n=await this.detectCrossModelAnomalies(e),c=await this.detectRegressions(e,this.config.regressionThreshold),r=this.generateRecommendations(s,n,c),o={timestamp:i,runId:t,summary:a,skillResults:s,crossModelAnalysis:n,regressions:c,recommendations:r,metadata:{version:"1.0.0",environment:e[0]?.metadata?.environment,generatedBy:"ValidationResultAggregator",inputs:{runIds:e.map(l=>l.runId),models:[...new Set(e.map(l=>l.model))]}}};return this.config.autoUpdateManifest&&await this.updateManifest(o),o}buildSkillResultsMap(e){let t=new Map;for(let i of e)for(let s of i.outcomes){let a=s.skillName;t.has(a)||t.set(a,{skill:a,trustTier:s.trustTier,passRateByModel:new Map,avgPassRate:0,schemaValid:!0,validatorPassed:!0,evalPassed:!0,issues:[],executionTimeMs:0,testCount:0,passedTests:0,failedTests:0});let n=t.get(a),c=s.testCaseResults.filter(r=>r.passed).length/(s.testCaseResults.length||1);n.passRateByModel.set(i.model,c),n.testCount+=s.testCaseResults.length,n.passedTests+=s.testCaseResults.filter(r=>r.passed).length,n.failedTests+=s.testCaseResults.filter(r=>!r.passed).length,n.executionTimeMs+=s.metadata?.duration||0,s.validationLevel==="schema"&&!s.passed&&(n.schemaValid=!1),s.validationLevel==="validator"&&!s.passed&&(n.validatorPassed=!1),s.validationLevel==="eval"&&!s.passed&&(n.evalPassed=!1);for(let r of s.testCaseResults)!r.passed&&r.error&&n.issues.push({skill:a,model:i.model,severity:r.priority==="critical"?"critical":r.priority==="high"?"high":r.priority==="medium"?"medium":"low",type:this.categorizeIssueType(s.validationLevel,r.error),message:r.error,testId:r.testId})}for(let i of t.values()){let s=Array.from(i.passRateByModel.values());i.avgPassRate=s.length>0?s.reduce((a,n)=>a+n,0)/s.length:0}return t}categorizeIssueType(e,t){return t.toLowerCase().includes("timeout")?"timeout":e==="schema"?"schema_failure":e==="validator"?"validator_failure":e==="eval"?"eval_failure":"error"}calculateSummary(e,t){let i=Array.from(e.values()),s=i.filter(n=>n.avgPassRate>=.9).length,a=i.length>0?i.reduce((n,c)=>n+c.avgPassRate,0)/i.length:0;return{totalSkills:i.length,passedSkills:s,failedSkills:i.length-s,avgPassRate:a,totalDurationMs:t.reduce((n,c)=>n+c.durationMs,0),totalTests:i.reduce((n,c)=>n+c.testCount,0),passedTests:i.reduce((n,c)=>n+c.passedTests,0),failedTests:i.reduce((n,c)=>n+c.failedTests,0),modelsUsed:[...new Set(t.map(n=>n.model))]}}async detectCrossModelAnomalies(e){let t=new Map,i=new Map,s=new Map;for(let d of e){t.has(d.model)||(t.set(d.model,[]),i.set(d.model,{totalTests:0,passedTests:0,skillCount:0}));for(let g of d.outcomes){let h=g.testCaseResults.filter(m=>m.passed).length/(g.testCaseResults.length||1);t.get(d.model).push(h);let f=i.get(d.model);f.totalTests+=g.testCaseResults.length,f.passedTests+=g.testCaseResults.filter(m=>m.passed).length,f.skillCount++,s.has(g.skillName)||s.set(g.skillName,{passRates:[],models:[]}),s.get(g.skillName).passRates.push(h),s.get(g.skillName).models.push(d.model)}}let a=[];for(let d of t.values())a.push(...d);let n=a.length>0?a.reduce((d,g)=>d+g,0)/a.length:0,c=a.length>1?a.reduce((d,g)=>d+Math.pow(g-n,2),0)/a.length:0,r=Math.sqrt(c),o=[],l=new Map;for(let[d,g]of t.entries()){let h=g.reduce((v,V)=>v+V,0)/g.length,f=h-n,m=i.get(d);l.set(d,{avgPassRate:h,skillCount:m.skillCount,totalTests:m.totalTests}),Math.abs(f)>this.config.varianceThreshold*2&&o.push({model:d,type:f<0?"low_performance":"high_variance",description:`Model ${d} has ${(f*100).toFixed(1)}% difference from average`,passRate:h,avgPassRate:n,deviation:Math.abs(f)})}let u=[],p=[];for(let[d,g]of s.entries()){if(g.passRates.length<2)continue;let h=g.passRates.reduce((m,v)=>m+v,0)/g.passRates.length;g.passRates.reduce((m,v)=>m+Math.pow(v-h,2),0)/g.passRates.length<this.config.varianceThreshold?u.push(d):p.push(d)}return{variance:c,stdDeviation:r,anomalies:o,consistentSkills:u,inconsistentSkills:p,modelPerformance:l}}async detectRegressions(e,t){let i=[],s=new Set;for(let a of e)for(let n of a.outcomes){let c=`${n.skillName}-${a.model}`;if(s.has(c))continue;s.add(c);let r=await this.learner.getValidationTrends(n.skillName);if(!r)continue;let o=n.testCaseResults.filter(p=>p.passed).length/(n.testCaseResults.length||1),l=r.recentPassRate,u=l-o;u>=t&&i.push({skill:n.skillName,model:a.model,previousPassRate:l,currentPassRate:o,regressionAmount:u,trend:r.overall,possibleCauses:this.analyzePossibleCauses(n,u),severity:this.categorizeRegressionSeverity(u)})}return i.sort((a,n)=>{let c={critical:0,high:1,medium:2,low:3},r=c[a.severity]-c[n.severity];return r!==0?r:n.regressionAmount-a.regressionAmount})}analyzePossibleCauses(e,t){let i=[],s=e.testCaseResults.filter(c=>!c.passed);if(s.length>0){let c=[...new Set(s.map(r=>r.category).filter(Boolean))];c.length>0&&i.push(`Failures in categories: ${c.join(", ")}`)}let a=s.filter(c=>c.priority==="critical");a.length>0&&i.push(`${a.length} critical test(s) failing`);let n=e.testCaseResults.reduce((c,r)=>c+r.reasoningQuality,0)/(e.testCaseResults.length||1);return n<.7&&i.push(`Low reasoning quality score: ${(n*100).toFixed(1)}%`),t>.3&&i.push("Possible model behavior change or prompt drift"),i.length===0&&i.push("No specific cause identified - review test details"),i}categorizeRegressionSeverity(e){return e>=.5?"critical":e>=.3?"high":e>=.15?"medium":"low"}generateRecommendations(e,t,i){let s=[];if(t.inconsistentSkills.length>0&&s.push(`Review ${t.inconsistentSkills.length} skills with inconsistent cross-model behavior: `+t.inconsistentSkills.slice(0,3).join(", ")+(t.inconsistentSkills.length>3?` and ${t.inconsistentSkills.length-3} more`:"")),t.anomalies.some(r=>r.type==="low_performance")){let r=t.anomalies.filter(o=>o.type==="low_performance").map(o=>o.model);s.push(`Investigate low performance on model(s): ${r.join(", ")}`)}let a=i.filter(r=>r.severity==="critical");a.length>0&&s.push(`URGENT: ${a.length} critical regression(s) detected - immediate review required`);let n=Array.from(e.values()).filter(r=>r.avgPassRate<.9);if(n.length>0){let r=n.filter(l=>!l.schemaValid),o=n.filter(l=>!l.validatorPassed);r.length>0&&s.push(`Fix schema validation for: ${r.map(l=>l.skill).slice(0,3).join(", ")}`),o.length>0&&s.push(`Review validator scripts for: ${o.map(l=>l.skill).slice(0,3).join(", ")}`)}return Array.from(e.values()).reduce((r,o)=>r+o.avgPassRate,0)/e.size<.8&&s.push("Overall pass rate below 80% - consider reviewing skill definitions and test expectations"),s.length===0&&s.push("All validations passing - no immediate action required"),s}async updateManifest(e){if(!N(this.manifestPath))throw new Error(`Manifest file not found: ${this.manifestPath}`);let t=C(E(this.manifestPath,"utf-8"));for(let[s,a]of e.skillResults.entries())if(t.skills&&t.skills[s]){let n=t.skills[s];n.validation||(n.validation={}),n.validation.passRate=a.avgPassRate,n.validation.lastValidated=e.timestamp.toISOString(),n.validation.status=a.avgPassRate>=.9?"passing":"failing",n.validation.passRateByModel=Object.fromEntries(a.passRateByModel)}let i=Array.from(e.skillResults.values());t.validationStatus={passing:i.filter(s=>s.avgPassRate>=.9).length,failing:i.filter(s=>s.avgPassRate<.9).length,unknown:0,skipped:t.summary?.tier0||0},t.generatedAt=new Date().toISOString(),t.lastValidationRun={runId:e.runId,timestamp:e.timestamp.toISOString(),avgPassRate:e.summary.avgPassRate,modelsUsed:e.summary.modelsUsed},L(this.manifestPath,JSON.stringify(t,null,2))}generateMarkdownReport(e){let{summary:t,crossModelAnalysis:i,regressions:s,recommendations:a,skillResults:n}=e,c=(t.avgPassRate>=.9||t.avgPassRate>=.7,"`"),r=[];if(r.push(`# Validation Report
|
|
3
3
|
|
|
4
4
|
> ${c} Generated: ${e.timestamp.toISOString()}
|
|
5
5
|
> Run ID: ${e.runId}
|
|
@@ -1,4 +1,4 @@
|
|
|
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.
|
|
2
|
-
import{b as L,d as B}from"./chunk-
|
|
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.8");process.exit(0)}
|
|
2
|
+
import{b as L,d as B}from"./chunk-SHEVM5PF.js";import*as a from"fs";import*as v from"path";import{createRequire as K}from"node:module";var Z=K(import.meta.url),b=Z("semver"),F="3.15.8",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);B();var R=class{cacheDir;keepVersions;constructor(e={}){this.cacheDir=e.cacheDir??L("plugins"),this.keepVersions=e.keepVersions??2}has(e,n){let s=this.versionDir(e,n);return a.existsSync(s)&&a.existsSync(v.join(s,"qe-plugin.json"))}get(e,n){if(!this.has(e,n))return;let s=this.versionDir(e,n),i=a.readFileSync(v.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(v.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=v.join(this.cacheDir,e);if(!a.existsSync(n))return[];let s=[],i=a.readdirSync(n);for(let r of i){let l=v.join(n,r),d=v.join(l,"qe-plugin.json");if(a.existsSync(d))try{let p=a.readFileSync(d,"utf-8"),m=JSON.parse(p);if(!y(m.version)){console.warn(`[PluginCache] Skipping cached plugin ${e}@${r}: invalid version ${JSON.stringify(m.version)}`);continue}let c=a.statSync(l);s.push({manifest:m,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 v.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=v.join(e,i.name),l=v.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 ee=/^[a-z][a-z0-9-]*$/,se=["aqe-core-","agentic-qe-core-"],G=64,T=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"):ne(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>T&&n.push(`description exceeds ${T} 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"):te(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 U(t){let e=typeof t=="string"?JSON.parse(t):t,n=k(e);if(!n.valid)throw new Error(`Invalid plugin manifest:
|
|
3
3
|
- ${n.errors.join(`
|
|
4
4
|
- `)}`);return e}function ne(t,e,n){t.length>G&&e.push(`name must be ${G} characters or fewer`),ee.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 se)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 te(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=F){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(),m=new Set(p),c=new Map,_=0,h=!1,X=()=>{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},A,z=()=>{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=z();return f?(A=f,!1):!0}m.add(u);for(let f of s.get(u)??[]){if(++_>1e4)return h=!0,!1;if(c.set(u,f),X()&&j())return!0;if(c.delete(u),h)return!1}return!1};if(!j()){if(A&&!h)throw new Error(`Dependency cycle detected: ${A.join(" -> ")}`);for(let o of m)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,w=new Set,$=(o,u)=>{if(q.has(o))return;if(w.has(o))throw new Error(`Dependency cycle detected: ${[...u.slice(u.indexOf(o)),o].join(" -> ")}`);w.add(o);let f=c.get(o);for(let g of Object.keys(f.dependencies??{}))$(g,[...u,o]);w.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,m]of d.missing)r.set(p,m);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 ie=["aqe-core-","agentic-qe-core-","agentic-qe-internal-"],Y=new Set(["aqe","agentic-qe","ruflo","claude-flow"]),re=["..","~","/etc/","/proc/","/dev/","node_modules/"];function W(t){let e=[];return oe(t.name,e),ae(t.entryPoint,e),ce(t.hooks,e),ue(t.permissions,e),{safe:e.length===0,violations:e}}function oe(t,e){/[^\x20-\x7E]/.test(t)&&e.push(`Plugin name "${t}" contains non-ASCII characters`),Y.has(t.toLowerCase())&&e.push(`Plugin name "${t}" is a reserved name`);for(let s of ie)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,"");Y.has(n)&&e.push(`Plugin name "${t}" is visually similar to a reserved name`)}function ae(t,e){H(t,"entryPoint",e),(t.startsWith("/")||t.startsWith("\\"))&&e.push("entryPoint must be a relative path, not absolute")}function ce(t,e){if(t)for(let[n,s]of Object.entries(t))H(s,`hook[${n}]`,e)}function H(t,e,n){for(let s of re)t.includes(s)&&n.push(`${e} contains dangerous path pattern "${s}"`);t.includes("\0")&&n.push(`${e} contains null byte (path injection attempt)`)}function ue(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 U(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 J=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=W(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 m=this.cache.store(r,p);return{success:!0,manifest:r,cachePath:m,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{U as a,R as b,J as c};
|