agentic-qe 3.14.6 → 3.14.7
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 +74 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +8 -8
- package/dist/cli/chunks/adapter-TVQKH65T.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-2YGML6OU.js → agent-booster-wasm-AK2W76RG.js} +2 -2
- package/dist/cli/chunks/{agent-handler-D5SSQYNU.js → agent-handler-MGZCWHIY.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-YHPLTITV.js → agent-memory-branch-JZ54MCSP.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-ULGTVVWE.js +2 -0
- package/dist/cli/chunks/{arena-7BGOXGXO.js → arena-CUVH3V7H.js} +2 -2
- package/dist/cli/chunks/{arena-MCE6EU7K.js → arena-YSWTKBCL.js} +4 -4
- package/dist/cli/chunks/{audit-BMWTQECB.js → audit-LVU76QGA.js} +3 -3
- package/dist/cli/chunks/base-W42BURDL.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-PMUNGASU.js → better-sqlite3-DB3LOJQU.js} +2 -2
- package/dist/cli/chunks/{brain-handler-QPUFYX7F.js → brain-handler-SD63KOQ6.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-WKFDGRN4.js → branch-enumerator-4MNOPUC7.js} +2 -2
- package/dist/cli/chunks/{browser-VY5HKH5X.js → browser-OLPNTWQE.js} +2 -2
- package/dist/cli/chunks/browser-workflow-HKGHFFFT.js +2 -0
- package/dist/cli/chunks/{chunk-62N4NUJH.js → chunk-23CX7JNL.js} +2 -2
- package/dist/cli/chunks/{chunk-MW2GGZZ5.js → chunk-25P6JA6V.js} +1 -1
- package/dist/cli/chunks/{chunk-RSXXCL4A.js → chunk-2G63VIJE.js} +1 -1
- package/dist/cli/chunks/{chunk-3NIG7S5W.js → chunk-2IMSJ7IO.js} +1 -1
- package/dist/cli/chunks/{chunk-I33ERSGB.js → chunk-36VKMAMN.js} +2 -2
- package/dist/cli/chunks/{chunk-2TMWAQQ3.js → chunk-3M7J4U74.js} +3 -3
- package/dist/cli/chunks/{chunk-CM7U6TAX.js → chunk-3QJU4Q4R.js} +2 -2
- package/dist/cli/chunks/{chunk-H5BS5VH7.js → chunk-4EKV7PHB.js} +2 -2
- package/dist/cli/chunks/{chunk-IG5GNEC6.js → chunk-4INST4ZL.js} +1 -1
- package/dist/cli/chunks/{chunk-YHKEDEAA.js → chunk-53BXTTRO.js} +3 -3
- package/dist/cli/chunks/{chunk-ENGZ4D5V.js → chunk-5D7ZFWDS.js} +2 -2
- package/dist/cli/chunks/{chunk-DZ3AUAAB.js → chunk-5FSLMYAC.js} +2 -2
- package/dist/cli/chunks/{chunk-FBMN7B46.js → chunk-5GFKTJ65.js} +2 -2
- package/dist/cli/chunks/{chunk-NMAIY4PX.js → chunk-5U6N4V5M.js} +11 -11
- package/dist/cli/chunks/{chunk-B6D2CHEH.js → chunk-6EGS77BB.js} +1 -1
- package/dist/cli/chunks/{chunk-NQZ5AR3D.js → chunk-6PJPQGF4.js} +2 -2
- package/dist/cli/chunks/{chunk-ICTXTNQZ.js → chunk-6RD44SCE.js} +1 -1
- package/dist/cli/chunks/{chunk-2NPKIBAZ.js → chunk-74IOEOMH.js} +2 -2
- package/dist/cli/chunks/{chunk-RTFO5UQH.js → chunk-77QZHIVX.js} +2 -2
- package/dist/cli/chunks/{chunk-D45SG6CP.js → chunk-7EZ2Z2CK.js} +1 -1
- package/dist/cli/chunks/{chunk-UNFFDHER.js → chunk-7MIOK72I.js} +10 -32
- package/dist/cli/chunks/{chunk-HNFVJP4I.js → chunk-7QYOTUOX.js} +2 -2
- package/dist/cli/chunks/{chunk-Q7EAGKAE.js → chunk-A2VUCUTT.js} +2 -2
- package/dist/cli/chunks/{chunk-TVYY3OCX.js → chunk-A3DK3XNZ.js} +1 -1
- package/dist/cli/chunks/{chunk-RETBYIAC.js → chunk-A5MA7A23.js} +4 -4
- package/dist/cli/chunks/{chunk-DUYOVM5I.js → chunk-AEUEMVJK.js} +2 -2
- package/dist/cli/chunks/{chunk-6U7LNMWZ.js → chunk-AJUBT4NP.js} +2 -2
- package/dist/cli/chunks/{chunk-7CUQCCMD.js → chunk-B2YGVSOP.js} +2 -2
- package/dist/cli/chunks/{chunk-SNOBH4AZ.js → chunk-B4I43GE2.js} +2 -2
- package/dist/cli/chunks/{chunk-VMNWDJIZ.js → chunk-BD7FEUN3.js} +2 -2
- package/dist/cli/chunks/{chunk-HM6ZSCPI.js → chunk-BE4KALTE.js} +1 -1
- package/dist/cli/chunks/{chunk-WGM35YWL.js → chunk-BEFTQVEW.js} +2 -2
- package/dist/cli/chunks/{chunk-SMDN3BQZ.js → chunk-BLG7SH4A.js} +1 -1
- package/dist/cli/chunks/{chunk-AJRUJAAK.js → chunk-C3FXFU2T.js} +1 -1
- package/dist/cli/chunks/{chunk-IQO7UCFR.js → chunk-CBONQM5D.js} +2 -2
- package/dist/cli/chunks/{chunk-L4RUBPLR.js → chunk-CQNMGK6Y.js} +2 -2
- package/dist/cli/chunks/{chunk-NHWGMJAP.js → chunk-CVOQ6ESD.js} +2 -2
- package/dist/cli/chunks/{chunk-P6OYS755.js → chunk-DOBKEXMJ.js} +1 -1
- package/dist/cli/chunks/{chunk-QZANMBIT.js → chunk-DYTQHRUS.js} +1 -1
- package/dist/cli/chunks/{chunk-FZOBD67M.js → chunk-EADSQN5T.js} +1 -1
- package/dist/cli/chunks/{chunk-DHVX5UB2.js → chunk-EGOIIUBD.js} +2 -2
- package/dist/cli/chunks/{chunk-6OS76PHI.js → chunk-EIGRV3J6.js} +2 -2
- package/dist/cli/chunks/{chunk-CD542DNJ.js → chunk-EJ6MMYLK.js} +1 -1
- package/dist/cli/chunks/{chunk-ELLBS5RP.js → chunk-ENK44A6Q.js} +2 -2
- package/dist/cli/chunks/{chunk-VGFFFKGK.js → chunk-EYXE2XKP.js} +2 -2
- package/dist/cli/chunks/{chunk-72KXSMWI.js → chunk-F2OPFVQH.js} +1 -1
- package/dist/cli/chunks/{chunk-DK4XN4CU.js → chunk-FBZC4IGB.js} +2 -2
- package/dist/cli/chunks/{chunk-MUOG6QXR.js → chunk-FSSR6WBE.js} +2 -2
- package/dist/cli/chunks/{chunk-DPYSUDAO.js → chunk-FW4DJ4FJ.js} +1 -1
- package/dist/cli/chunks/{chunk-ZVWVV4EX.js → chunk-FYPX5WBJ.js} +1 -1
- package/dist/cli/chunks/{chunk-7J6QC567.js → chunk-G367W7XR.js} +3 -3
- package/dist/cli/chunks/{chunk-IAF6T27S.js → chunk-GLGKQX2V.js} +2 -2
- package/dist/cli/chunks/{chunk-JXGFRBUO.js → chunk-GV4DYPJP.js} +2 -2
- package/dist/cli/chunks/{chunk-BPEDWS6O.js → chunk-GVVFTFMB.js} +2 -2
- package/dist/cli/chunks/{chunk-CF2ISEOJ.js → chunk-H5RQPO3X.js} +2 -2
- package/dist/cli/chunks/{chunk-GSF6MB64.js → chunk-HPWWYT67.js} +2 -2
- package/dist/cli/chunks/{chunk-RG52OKAM.js → chunk-HXXHMLJ5.js} +1 -1
- package/dist/cli/chunks/{chunk-SESK3ARK.js → chunk-HYFQUWNB.js} +2 -2
- package/dist/cli/chunks/{chunk-7D3V65N5.js → chunk-HYOPJHHW.js} +1 -1
- package/dist/cli/chunks/{chunk-7LPR6HJG.js → chunk-HZY42OVU.js} +2 -2
- package/dist/cli/chunks/{chunk-SDRHUMJB.js → chunk-IAENZ2DR.js} +2 -2
- package/dist/cli/chunks/{chunk-B6MOJC3X.js → chunk-IEJ7ZV3M.js} +1 -1
- package/dist/cli/chunks/{chunk-UCFQALXO.js → chunk-IWFFO6VT.js} +2 -2
- package/dist/cli/chunks/chunk-J7AQZLIH.js +21 -0
- package/dist/cli/chunks/{chunk-H52HZ67P.js → chunk-JHJUSSAU.js} +2 -2
- package/dist/cli/chunks/{chunk-2YXGBZWV.js → chunk-JOZ47MV6.js} +1 -1
- package/dist/cli/chunks/{chunk-EAY2JMZG.js → chunk-JZT7BU44.js} +2 -2
- package/dist/cli/chunks/{chunk-BVR7RMC5.js → chunk-KD2BLA5Y.js} +1 -1
- package/dist/cli/chunks/{chunk-BAMN2CHI.js → chunk-KUHLTVWC.js} +1 -1
- package/dist/cli/chunks/{chunk-5QQSIGUA.js → chunk-LU2EDWQK.js} +2 -2
- package/dist/cli/chunks/{chunk-D6CJIGRU.js → chunk-LXZMP3VX.js} +54 -54
- package/dist/cli/chunks/{chunk-GPYVDFB3.js → chunk-LY7MFGBD.js} +196 -187
- package/dist/cli/chunks/{chunk-W6HXLH5G.js → chunk-MM56VPNE.js} +2 -2
- package/dist/cli/chunks/{chunk-E6G2RD5H.js → chunk-MNQN7UZX.js} +2 -2
- package/dist/cli/chunks/{chunk-ZCRTRYXK.js → chunk-MQZ53OR3.js} +2 -2
- package/dist/cli/chunks/{chunk-3HZS4M3O.js → chunk-MT7UNBZ7.js} +2 -2
- package/dist/cli/chunks/{chunk-XAS3XRYM.js → chunk-MZB2UV2O.js} +1 -1
- package/dist/cli/chunks/{chunk-GDSXITFH.js → chunk-MZMG6CUJ.js} +2 -2
- package/dist/cli/chunks/{chunk-6SQM2MUX.js → chunk-N5XOXPHZ.js} +2 -2
- package/dist/cli/chunks/{chunk-5OOMJGFN.js → chunk-NBLDBVAW.js} +1 -1
- package/dist/cli/chunks/{chunk-PI7TJS62.js → chunk-ND4QTZOL.js} +2 -2
- package/dist/cli/chunks/{chunk-H6ZM3PUT.js → chunk-NHUGHAY6.js} +1 -1
- package/dist/cli/chunks/{chunk-5VFPCSK7.js → chunk-NOHWJOBS.js} +1 -1
- package/dist/cli/chunks/{chunk-DBDPRORT.js → chunk-O5V7RHVG.js} +2 -2
- package/dist/cli/chunks/{chunk-UQ32JHES.js → chunk-O6MO5KMR.js} +2 -2
- package/dist/cli/chunks/{chunk-WO4QMXIG.js → chunk-OAZX6WFU.js} +2 -2
- package/dist/cli/chunks/{chunk-GGRHV6D7.js → chunk-OEPNNLR4.js} +1 -1
- package/dist/cli/chunks/{chunk-AIRGNL55.js → chunk-OIDWDGLG.js} +2 -2
- package/dist/cli/chunks/{chunk-V4DM6ELU.js → chunk-ON2UTP2U.js} +2 -2
- package/dist/cli/chunks/{chunk-MBRHSU6W.js → chunk-ONR2NXXD.js} +10 -10
- package/dist/cli/chunks/{chunk-WCJBU2KI.js → chunk-OXHF3L2T.js} +2 -2
- package/dist/cli/chunks/{chunk-AVBJYI5I.js → chunk-OZGIOKEA.js} +1 -1
- package/dist/cli/chunks/{chunk-YFBSPLJG.js → chunk-P2UPYSDJ.js} +1 -1
- package/dist/cli/chunks/{chunk-C6KWXUFJ.js → chunk-P7XSPP5D.js} +2 -2
- package/dist/cli/chunks/{chunk-QDFTT3RF.js → chunk-PCJQCEBA.js} +2 -2
- package/dist/cli/chunks/chunk-PELENDDQ.js +2 -0
- package/dist/cli/chunks/{chunk-257E2A5M.js → chunk-PYKY22GC.js} +5 -5
- package/dist/cli/chunks/{chunk-LL3IGZBI.js → chunk-Q3NSU24F.js} +2 -2
- package/dist/cli/chunks/{chunk-Y3LZ35OG.js → chunk-Q6NTEICT.js} +2 -2
- package/dist/cli/chunks/chunk-QFETNCNN.js +12 -0
- package/dist/cli/chunks/{chunk-SE4WIB26.js → chunk-QGOWNVVG.js} +1 -1
- package/dist/cli/chunks/{chunk-6RE3X4V5.js → chunk-QPLSYEWJ.js} +2 -2
- package/dist/cli/chunks/{chunk-FWASDOT2.js → chunk-QQFQDEUE.js} +2 -2
- package/dist/cli/chunks/{chunk-2JVWITNK.js → chunk-QUORH2MG.js} +55 -79
- package/dist/cli/chunks/{chunk-5J6W7SIA.js → chunk-QVH5Y7AP.js} +1 -1
- package/dist/cli/chunks/{chunk-YSLL6VSL.js → chunk-RC2A4JZ5.js} +2 -2
- package/dist/cli/chunks/{chunk-IB27QACC.js → chunk-RDGPXENG.js} +2 -2
- package/dist/cli/chunks/{chunk-PX5YDCRH.js → chunk-RKI3IQKQ.js} +2 -2
- package/dist/cli/chunks/{chunk-BMAPORJ7.js → chunk-RKUAWQOF.js} +2 -2
- package/dist/cli/chunks/chunk-RLW25X66.js +2 -0
- package/dist/cli/chunks/{chunk-RFNPJK6N.js → chunk-ROVZSZCS.js} +3 -3
- package/dist/cli/chunks/{chunk-MQROI74N.js → chunk-RT6O2HW2.js} +2 -2
- package/dist/cli/chunks/{chunk-Y3UOUNHM.js → chunk-SM2YJ2AL.js} +2 -2
- package/dist/cli/chunks/{chunk-BBT64TII.js → chunk-SRPLERER.js} +3 -3
- package/dist/cli/chunks/{chunk-YS4FCTWF.js → chunk-T77GZF4B.js} +1 -1
- package/dist/cli/chunks/{chunk-IV5UZOHH.js → chunk-TFK2AYIN.js} +2 -2
- package/dist/cli/chunks/chunk-TW3SR4TS.js +2 -0
- package/dist/cli/chunks/{chunk-7Z5LHRC3.js → chunk-TXSPBLBT.js} +2 -2
- package/dist/cli/chunks/chunk-UA7TDVL7.js +12 -0
- package/dist/cli/chunks/{chunk-3EZOZN25.js → chunk-UBJG3IHT.js} +2 -2
- package/dist/cli/chunks/{chunk-QW6VMTBR.js → chunk-UFSVUBTR.js} +2 -2
- package/dist/cli/chunks/{chunk-ZEV3YTO7.js → chunk-UOI6ULCH.js} +2 -2
- package/dist/cli/chunks/{chunk-JZOS5FCX.js → chunk-UYUJT6QO.js} +2 -2
- package/dist/cli/chunks/{chunk-3EA536JF.js → chunk-V5AK56DA.js} +2 -2
- package/dist/cli/chunks/{chunk-UKA2KOXE.js → chunk-V6RE4YRQ.js} +2 -2
- package/dist/cli/chunks/{chunk-RZZCUIAI.js → chunk-VW6FRMLW.js} +2 -2
- package/dist/cli/chunks/chunk-VXKWNRGA.js +2 -0
- package/dist/cli/chunks/{chunk-6SH5VZUD.js → chunk-VYDVI6FZ.js} +2 -2
- package/dist/cli/chunks/{chunk-BJTJLJRZ.js → chunk-WF6UISKW.js} +3 -3
- package/dist/cli/chunks/{chunk-ZL6SYKUK.js → chunk-WIH522AP.js} +1 -1
- package/dist/cli/chunks/{chunk-JIXUMYKZ.js → chunk-WOV6XI3A.js} +1 -1
- package/dist/cli/chunks/{chunk-JBTPOIAC.js → chunk-X7ADKL7T.js} +2 -2
- package/dist/cli/chunks/{chunk-JVNTSNWU.js → chunk-XBYQ2BS4.js} +2 -2
- package/dist/cli/chunks/{chunk-Z7WODOTH.js → chunk-XL5KIYE3.js} +2 -2
- package/dist/cli/chunks/{chunk-JMONHE4B.js → chunk-XWYELBZS.js} +1 -1
- package/dist/cli/chunks/{chunk-SJUXE4IC.js → chunk-XYLQZWF6.js} +2 -2
- package/dist/cli/chunks/{chunk-KNNISEDY.js → chunk-Y6AKKQIQ.js} +1 -1
- package/dist/cli/chunks/{chunk-CCK4BF76.js → chunk-YMW57PEL.js} +1 -1
- package/dist/cli/chunks/{chunk-64VGZQLB.js → chunk-YO4ESCB4.js} +1 -1
- package/dist/cli/chunks/{chunk-ZSPU4MOS.js → chunk-YRHTQZU4.js} +2 -2
- package/dist/cli/chunks/chunk-Z4Q5PCRZ.js +65 -0
- package/dist/cli/chunks/{chunk-Q5XTSMWR.js → chunk-ZELWDJXT.js} +2 -2
- package/dist/cli/chunks/{chunk-SPV2VKC5.js → chunk-ZQZD55MN.js} +2 -2
- package/dist/cli/chunks/{chunk-66VWCR67.js → chunk-ZS4XVJGV.js} +2 -2
- package/dist/cli/chunks/{chunk-6LIHFV7O.js → chunk-ZUB5YOCM.js} +2 -2
- package/dist/cli/chunks/chunk-ZUOVNFXK.js +2 -0
- package/dist/cli/chunks/{chunk-7NITCZWD.js → chunk-ZWEKAEEV.js} +1 -1
- package/dist/cli/chunks/{ci-W6K6G2KZ.js → ci-J3TDK5RA.js} +8 -8
- package/dist/cli/chunks/{ci-output-LDT24TS3.js → ci-output-RLS32FUY.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-F5V4KITU.js → circuit-breaker-MRCC7WCM.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-DT6WQQVD.js → claude-flow-setup-LIZCEKDF.js} +2 -2
- package/dist/cli/chunks/client-3BD2DI4N.js +2 -0
- package/dist/cli/chunks/{cline-installer-G7TJOAEX.js → cline-installer-T7H6R2RC.js} +2 -2
- package/dist/cli/chunks/{code-PGE6A42V.js → code-XMBLI7OF.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-RNITH372.js → code-index-extractor-QS7BYLEX.js} +2 -2
- package/dist/cli/chunks/{codex-installer-LBX77AI3.js → codex-installer-6PGT5FM6.js} +2 -2
- package/dist/cli/chunks/{completions-4AWLAARX.js → completions-2A3WRXY2.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-ZPNSS476.js → complexity-analyzer-23HOOGJ7.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-UAPWX6OA.js → continuedev-installer-4FSF7B3N.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-BJN2YJGI.js → copilot-installer-A5GRQQUU.js} +2 -2
- package/dist/cli/chunks/core-handlers-C3H2ZCS2.js +2 -0
- package/dist/cli/chunks/{cost-tracker-MHP2VJ63.js → cost-tracker-Z4STQ5VB.js} +2 -2
- package/dist/cli/chunks/{coverage-PQB4IEFG.js → coverage-NUPP6KZZ.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-JCQ7SWDP.js +2 -0
- package/dist/cli/chunks/{cursor-installer-ZXBWYAS3.js → cursor-installer-FVJ7ROPJ.js} +2 -2
- package/dist/cli/chunks/{daemon-N2BEGEFY.js → daemon-7ZZA2MMN.js} +4 -4
- package/dist/cli/chunks/{daemon-64C7R6OJ.js → daemon-D662EX5N.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-SPZDAPNL.js → dag-attention-scheduler-IB4TQ2KA.js} +2 -2
- package/dist/cli/chunks/{detect-LXJBSSZW.js → detect-LGLBZN4I.js} +2 -2
- package/dist/cli/chunks/{dist-node-U3TKZ2IZ.js → dist-node-Z3OL42YE.js} +2 -2
- package/dist/cli/chunks/{domain-handler-3DDWUVSR.js → domain-handler-L3CLNL7U.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-JJVWI4OQ.js → domain-plugins-GQ3V5X6L.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-M36KUJ2U.js → domain-transfer-MFCI76IY.js} +2 -2
- package/dist/cli/chunks/dream-FTP33IJB.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-JPAR7TXX.js → embed-and-insert-pattern-UGD6USYH.js} +2 -2
- package/dist/cli/chunks/{eval-SOLG23EA.js → eval-3B7UIYGY.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-T7G2VOOD.js → experience-capture-middleware-3RQ4NYY3.js} +3 -3
- package/dist/cli/chunks/{fast-paths-32N3ELI4.js → fast-paths-QOSAEPYD.js} +2 -2
- package/dist/cli/chunks/{feature-flags-NAHKLDRN.js → feature-flags-3S5TH6P4.js} +2 -2
- package/dist/cli/chunks/{feature-flags-APJDQ4N7.js → feature-flags-TLF4NKOH.js} +2 -2
- package/dist/cli/chunks/{file-discovery-YKVM3MDB.js → file-discovery-AEVMJRNB.js} +2 -2
- package/dist/cli/chunks/{fleet-55M5CJS4.js → fleet-E6WTXWFL.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-UD6E6S6Z.js → gnn-wrapper-MCKH3AUU.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-OYVW3VSC.js → heartbeat-handler-U7XENHRR.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-HXBJVJL2.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-TU6WG2ME.js +2 -0
- package/dist/cli/chunks/hnsw-index-MS5KODD7.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-HBYIS3ZW.js → hnsw-legacy-bridge-5GW4SAEI.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-EQPM42OU.js → hnswlib-node-7BLZBK5T.js} +2 -2
- package/dist/cli/chunks/{hooks-5ZSSJWO6.js → hooks-F3O2SB6H.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-HT45LBHC.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-XBGVQ4PD.js → hypergraph-engine-PV4EKXHB.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-CAWAQ673.js → hypergraph-handler-VOWO5ZTW.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-AP4AGTG5.js +2 -0
- package/dist/cli/chunks/{init-handler-PRHXSARK.js → init-handler-ENJ5ONJX.js} +16 -14
- package/dist/cli/chunks/init-wizard-I5DFZUQL.js +2 -0
- package/dist/cli/chunks/kernel-MISPSPPA.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-F7LXBM7I.js → kilocode-installer-HNNJOOPE.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-NM723ZRG.js → kiro-installer-UZBIQ3IC.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-L26JESGE.js +2 -0
- package/dist/cli/chunks/{learning-5QYIDHH3.js → learning-YMLCVFUT.js} +3 -3
- package/dist/cli/chunks/{llm-router-43HKWPSX.js → llm-router-YWTARCCT.js} +4 -4
- package/dist/cli/chunks/llm-router-service-MWGC43ZA.js +2 -0
- package/dist/cli/chunks/{load-5YDBWSCS.js → load-DKE3F3IP.js} +2 -2
- package/dist/cli/chunks/load-test-H5ISNNM5.js +2 -0
- package/dist/cli/chunks/{mcp-UMAPMNMY.js → mcp-5PSGIUCW.js} +2 -2
- package/dist/cli/chunks/{memory-FWCPCQFP.js → memory-3L3O6JMM.js} +5 -5
- package/dist/cli/chunks/memory-backend-HWDNOBKW.js +2 -0
- package/dist/cli/chunks/memory-handlers-ZFDVQZM5.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-2XTBGLE4.js → multi-model-executor-AEEO7IA4.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-GIXOJ6NS.js → opencode-installer-ABBO355U.js} +2 -2
- package/dist/cli/chunks/{orchestrator-VW6BKHLI.js → orchestrator-E36Q7MKE.js} +17 -17
- package/dist/cli/chunks/pattern-null-store-GQP6ICWK.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-7CEUC3J7.js → pattern-usage-recorder-H4XKSID4.js} +2 -2
- package/dist/cli/chunks/{pipeline-IGUQPPPO.js → pipeline-BGFEHXIN.js} +2 -2
- package/dist/cli/chunks/{platform-2P636I7B.js → platform-GK7ZVDJI.js} +2 -2
- package/dist/cli/chunks/{plugin-NY6SWDPE.js → plugin-CAH2CKI6.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-2UUDTIO2.js → prime-radiant-advanced-wasm-M5EYRONA.js} +2 -2
- package/dist/cli/chunks/{project-root-IOISG5KX.js → project-root-BSNZC243.js} +2 -2
- package/dist/cli/chunks/protocol-executor-AD5A4DAI.js +2 -0
- package/dist/cli/chunks/{protocol-handler-ZTPCRQ5W.js → protocol-handler-JDSSC2SF.js} +2 -2
- package/dist/cli/chunks/{prove-SQX5A3IG.js → prove-ANPTOZJE.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-W3Z2PKTR.js +2 -0
- package/dist/cli/chunks/{quality-DROILKRY.js → quality-SXWGYRQR.js} +2 -2
- package/dist/cli/chunks/{quality-gate-PWKWDJY2.js → quality-gate-GYNCA4ZY.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-HQRHLIJX.js +2 -0
- package/dist/cli/chunks/{real-embeddings-P5U3MGYC.js → real-embeddings-WSRYAOZM.js} +2 -2
- package/dist/cli/chunks/{ref-validation-KY73NQXD.js → ref-validation-AZ3LRWEK.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-6JPPRB3W.js → roocode-installer-2QKGFIEU.js} +2 -2
- package/dist/cli/chunks/router-MTP5LH4H.js +2 -0
- package/dist/cli/chunks/routing-feedback-GWETVB4L.js +2 -0
- package/dist/cli/chunks/{routing-handler-VTJIVFUO.js → routing-handler-UYDC5MMD.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-C6RPSJJO.js → ruvector-commands-QXADPVEY.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-4UE5S7WP.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-PHH3HF4Q.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-R53URRIO.js → rvf-migration-coordinator-GD4NBFKT.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-KTLZBUWV.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-MMXN5TEJ.js → rvf-store-integrity-7SXG66IL.js} +2 -2
- package/dist/cli/chunks/safe-db-FWWGAPVE.js +2 -0
- package/dist/cli/chunks/schedule-TPA4V4D5.js +2 -0
- package/dist/cli/chunks/scheduler-5ZTEPNDD.js +2 -0
- package/dist/cli/chunks/{security-3B3R2NL4.js → security-YKB622PK.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-VIJB7JUS.js → shared-rvf-adapter-KMLAV7JK.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-UVWGDUWC.js → shared-rvf-dual-writer-OYY27DFV.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-HPTT624C.js +2 -0
- package/dist/cli/chunks/{standalone-memory-M4LWAAYZ.js → standalone-memory-2DOABVLC.js} +2 -2
- package/dist/cli/chunks/{status-handler-YYFV6OZL.js → status-handler-EXRKETV7.js} +2 -2
- package/dist/cli/chunks/{structural-health-27E6LLKB.js → structural-health-2SKK6DU6.js} +2 -2
- package/dist/cli/chunks/sync-DQ2YUNI6.js +2 -0
- package/dist/cli/chunks/{sync-J3LJ56WN.js → sync-UW7SX7GO.js} +2 -2
- package/dist/cli/chunks/{task-handler-4MCEBQZL.js → task-handler-LYQ6WYUY.js} +2 -2
- package/dist/cli/chunks/task-handlers-DIJO232S.js +9 -0
- package/dist/cli/chunks/test-WRHZMUCW.js +33 -0
- package/dist/cli/chunks/{test-scheduling-ZJBFRZ3J.js → test-scheduling-HI23RXFK.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-23SA6SWZ.js +2 -0
- package/dist/cli/chunks/{token-usage-3X5WMTG2.js → token-usage-M7RRDPXO.js} +2 -2
- package/dist/cli/chunks/{transformers-MVL4C5IX.js → transformers-4TC35KKS.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-SLW65ZFO.js → tree-sitter-wasm-parser-F4LTKAWD.js} +2 -2
- package/dist/cli/chunks/{types-TG5P3CRS.js → types-NBXV6LXQ.js} +2 -2
- package/dist/cli/chunks/unified-memory-OVFEPRPS.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-KKRSCZHR.js +2 -0
- package/dist/cli/chunks/unified-persistence-7GLR4RI3.js +2 -0
- package/dist/cli/chunks/{upgrade-ETBHDEPY.js → upgrade-4BGOU5RM.js} +2 -2
- package/dist/cli/chunks/{validate-C2A73LZK.js → validate-EDWAR63H.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-67XN42ML.js → validate-swarm-VI72CPR7.js} +2 -2
- package/dist/cli/chunks/visual-security-2FUM5GLI.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-USJN77P4.js → web-tree-sitter-Y5XBRQXF.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-5GGZXGJW.js → windsurf-installer-VEX23WAF.js} +2 -2
- package/dist/cli/chunks/{witness-chain-IWS5ZHHL.js → witness-chain-3YNL6YGY.js} +2 -2
- package/dist/cli/chunks/witness-chain-MH6GA5L6.js +2 -0
- package/dist/cli/chunks/witness-chain-repair-MJZGZRWT.js +2 -0
- package/dist/cli/chunks/{witness-chain-verifier-3GEADWPE.js → witness-chain-verifier-TTJYXTBE.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-ZWEIK3VJ.js → witness-key-manager-EM6YXYOY.js} +2 -2
- package/dist/cli/chunks/{workflow-KHMVVBBA.js → workflow-2RBDOM7V.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-H6G65YKU.js +2 -0
- package/dist/cli/chunks/wrappers-5OTAVVOV.js +2 -0
- package/dist/cli/commands/ci.js +1 -1
- package/dist/cli/commands/test.js +18 -3
- package/dist/cli/handlers/init-handler.d.ts +2 -0
- package/dist/cli/handlers/init-handler.js +8 -2
- package/dist/cli/index.js +8 -0
- package/dist/coordination/handlers/test-execution-handlers.js +13 -8
- package/dist/coordination/index.d.ts +1 -1
- package/dist/coordination/queen-event-handlers.js +9 -6
- package/dist/coordination/result-saver.js +1 -1
- package/dist/coordination/services/index.d.ts +1 -1
- package/dist/coordination/services/task-audit-logger.d.ts +38 -13
- package/dist/coordination/services/task-audit-logger.js +33 -5
- package/dist/coordination/task-executor.d.ts +5 -0
- package/dist/coordination/task-executor.js +10 -5
- package/dist/domains/test-generation/coordinator.js +6 -5
- package/dist/domains/test-generation/interfaces.d.ts +11 -1
- package/dist/domains/test-generation/services/behavior-example-validation.d.ts +36 -0
- package/dist/domains/test-generation/services/behavior-example-validation.js +89 -0
- package/dist/domains/test-generation/services/behavior-examples.d.ts +8 -0
- package/dist/domains/test-generation/services/behavior-examples.js +65 -0
- package/dist/domains/test-generation/services/test-generator.d.ts +1 -1
- package/dist/domains/test-generation/services/test-generator.js +59 -30
- package/dist/domains/visual-accessibility/services/axe-core-audit.d.ts +0 -15
- package/dist/domains/visual-accessibility/services/axe-core-audit.js +12 -10
- package/dist/init/browser-engine-installer.d.ts +5 -5
- package/dist/init/browser-engine-installer.js +28 -6
- package/dist/init/init-wizard.d.ts +2 -0
- package/dist/init/orchestrator.js +1 -0
- package/dist/init/phases/09-assets.js +8 -18
- package/dist/init/phases/phase-interface.d.ts +2 -0
- package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +2 -5
- package/dist/integrations/vibium/client.d.ts +1 -0
- package/dist/integrations/vibium/client.js +24 -11
- package/dist/integrations/vibium/runtime.d.ts +14 -0
- package/dist/integrations/vibium/runtime.js +94 -0
- package/dist/kernel/pattern-fts-self-heal.d.ts +63 -0
- package/dist/kernel/pattern-fts-self-heal.js +193 -0
- package/dist/kernel/process-lifecycle.d.ts +60 -0
- package/dist/kernel/process-lifecycle.js +91 -0
- package/dist/kernel/unified-memory-schemas.d.ts +15 -1
- package/dist/kernel/unified-memory-schemas.js +53 -25
- package/dist/kernel/unified-memory.js +31 -34
- package/dist/kernel/unified-persistence.js +12 -6
- package/dist/learning/experience-capture.d.ts +2 -1
- package/dist/learning/experience-capture.js +23 -8
- package/dist/learning/pattern-store.d.ts +1 -1
- package/dist/learning/pattern-store.js +27 -30
- package/dist/learning/qe-patterns.d.ts +6 -0
- package/dist/learning/qe-reasoning-bank.d.ts +1 -0
- package/dist/learning/qe-reasoning-bank.js +14 -4
- package/dist/learning/real-qe-reasoning-bank.d.ts +9 -4
- package/dist/learning/real-qe-reasoning-bank.js +28 -4
- package/dist/learning/rvf-pattern-store.js +19 -19
- package/dist/learning/sqlite-persistence.js +9 -24
- package/dist/mcp/bundle.js +508 -545
- package/dist/mcp/entry.js +52 -6
- package/dist/mcp/handlers/domain-handler-configs.js +12 -4
- package/dist/mcp/handlers/task-handlers.js +11 -7
- package/dist/mcp/protocol-server.js +18 -3
- package/dist/mcp/services/reasoning-bank-service.d.ts +6 -1
- package/dist/mcp/services/reasoning-bank-service.js +5 -1
- package/dist/mcp/tools/test-execution/e2e-execute.js +9 -1
- package/dist/mcp/tools/test-generation/generate.d.ts +6 -1
- package/dist/mcp/tools/test-generation/generate.js +8 -0
- package/dist/mcp/types.d.ts +6 -2
- package/dist/shared/error-utils.d.ts +15 -0
- package/dist/shared/error-utils.js +21 -0
- package/dist/shared/events/domain-events.d.ts +2 -1
- package/package.json +10 -6
- package/dist/cli/chunks/adapter-UYOJPTOX.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-JR5AVQXR.js +0 -2
- package/dist/cli/chunks/base-DRZ2LS6X.js +0 -2
- package/dist/cli/chunks/browser-workflow-CJ7T3MXF.js +0 -2
- package/dist/cli/chunks/chunk-4N23RFDU.js +0 -2
- package/dist/cli/chunks/chunk-AHKELLIO.js +0 -12
- package/dist/cli/chunks/chunk-MJS53PRX.js +0 -2
- package/dist/cli/chunks/chunk-PZPWRQ2M.js +0 -21
- package/dist/cli/chunks/chunk-QGA55PFM.js +0 -12
- package/dist/cli/chunks/chunk-TCHGOB2N.js +0 -2
- package/dist/cli/chunks/chunk-Z6GGIRQQ.js +0 -65
- package/dist/cli/chunks/client-KHWJT6FB.js +0 -2
- package/dist/cli/chunks/core-handlers-HING5RRG.js +0 -2
- package/dist/cli/chunks/cross-domain-router-PQTD6AZN.js +0 -2
- package/dist/cli/chunks/dream-WUGRSNCV.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-33XX5XNQ.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-XQPERX3H.js +0 -2
- package/dist/cli/chunks/hnsw-index-2GNXTWHH.js +0 -2
- package/dist/cli/chunks/hybrid-backend-CCF7URKI.js +0 -2
- package/dist/cli/chunks/impact-analyzer-HGKAZWIG.js +0 -2
- package/dist/cli/chunks/init-wizard-72MFBI3G.js +0 -2
- package/dist/cli/chunks/kernel-BRCBVMSK.js +0 -2
- package/dist/cli/chunks/knowledge-graph-DG44IPEI.js +0 -2
- package/dist/cli/chunks/llm-router-service-24KXFX32.js +0 -2
- package/dist/cli/chunks/load-test-N4TAYJY3.js +0 -2
- package/dist/cli/chunks/memory-backend-NVYFYVAU.js +0 -2
- package/dist/cli/chunks/memory-handlers-UTWCNCHL.js +0 -2
- package/dist/cli/chunks/pattern-null-store-SBPNYDBR.js +0 -2
- package/dist/cli/chunks/protocol-executor-IBYEII5Q.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-7IETWW6W.js +0 -2
- package/dist/cli/chunks/queen-coordinator-NHUK2MWJ.js +0 -2
- package/dist/cli/chunks/router-SRSO3IHF.js +0 -2
- package/dist/cli/chunks/routing-feedback-PASRE5HY.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-4M4J67OU.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-TSXGT5LF.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-MOF3E7BR.js +0 -2
- package/dist/cli/chunks/safe-db-QJLFO33B.js +0 -2
- package/dist/cli/chunks/schedule-YIVXW5O2.js +0 -2
- package/dist/cli/chunks/scheduler-AON7DWSJ.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-75VHKKQB.js +0 -2
- package/dist/cli/chunks/sync-26CEGSTC.js +0 -2
- package/dist/cli/chunks/task-handlers-GYBAWKE2.js +0 -9
- package/dist/cli/chunks/test-MPC5HRH5.js +0 -33
- package/dist/cli/chunks/token-bootstrap-2Y2XITBX.js +0 -2
- package/dist/cli/chunks/unified-memory-UCQ6AB32.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-IXYUMKRR.js +0 -2
- package/dist/cli/chunks/unified-persistence-7E6JQ4FZ.js +0 -2
- package/dist/cli/chunks/vibium-NILGKHLN.js +0 -2
- package/dist/cli/chunks/visual-security-4VZXPEVG.js +0 -2
- package/dist/cli/chunks/witness-chain-JQA2VPZI.js +0 -2
- package/dist/cli/chunks/witness-chain-repair-4UA7IPS3.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-GI5NQH7C.js +0 -2
- package/dist/cli/chunks/wrappers-N6XIK5PT.js +0 -2
package/dist/mcp/entry.js
CHANGED
|
@@ -22,6 +22,9 @@ import { createInfraHealingOrchestratorSync, ShellCommandRunner } from '../stran
|
|
|
22
22
|
import { setInfraHealingOrchestrator, handleFleetInit } from './handlers/index.js';
|
|
23
23
|
import { parallelPrefetch } from '../boot/parallel-prefetch.js';
|
|
24
24
|
import { initFeatureFlagsFromEnv } from '../integrations/ruvector/feature-flags.js';
|
|
25
|
+
import { resetSharedRvfAdapter } from '../integrations/ruvector/shared-rvf-adapter.js';
|
|
26
|
+
import { resetSharedRvfDualWriter } from '../integrations/ruvector/shared-rvf-dual-writer.js';
|
|
27
|
+
import { claimProcessLifecycle, closeRegisteredStores } from '../kernel/process-lifecycle.js';
|
|
25
28
|
import { readFileSync } from 'node:fs';
|
|
26
29
|
import { resolve, dirname } from 'node:path';
|
|
27
30
|
import { fileURLToPath } from 'node:url';
|
|
@@ -29,6 +32,41 @@ const require = createRequire(import.meta.url);
|
|
|
29
32
|
const pkg = require('../../package.json');
|
|
30
33
|
let server = null;
|
|
31
34
|
let httpServer = null;
|
|
35
|
+
/**
|
|
36
|
+
* Close the shared RVF stores (#801). Closing the native handle is what removes
|
|
37
|
+
* its own `patterns.rvf.lock` marker; an adapter that never opened (or another
|
|
38
|
+
* live process's store) is untouched. Both resets are synchronous and
|
|
39
|
+
* idempotent: each handle is closed at most once however many shutdown paths
|
|
40
|
+
* reach this.
|
|
41
|
+
*/
|
|
42
|
+
function releaseSharedRvfStores() {
|
|
43
|
+
// Dual writer first, then the adapter, each independent of the other's failure.
|
|
44
|
+
try {
|
|
45
|
+
resetSharedRvfDualWriter();
|
|
46
|
+
}
|
|
47
|
+
catch { /* best effort */ }
|
|
48
|
+
try {
|
|
49
|
+
resetSharedRvfAdapter();
|
|
50
|
+
}
|
|
51
|
+
catch { /* best effort */ }
|
|
52
|
+
}
|
|
53
|
+
let processStoresReleased = false;
|
|
54
|
+
/**
|
|
55
|
+
* Release every process-wide store exactly once, on every shutdown path:
|
|
56
|
+
* the shared RVF stores first, then the kernel's unified persistence/memory
|
|
57
|
+
* (registered closers), whose close() checkpoints the memory.db WAL. All
|
|
58
|
+
* synchronous, so the process 'exit' backstop can run it too; never throws.
|
|
59
|
+
*/
|
|
60
|
+
function releaseProcessStores() {
|
|
61
|
+
if (processStoresReleased)
|
|
62
|
+
return;
|
|
63
|
+
processStoresReleased = true;
|
|
64
|
+
releaseSharedRvfStores();
|
|
65
|
+
try {
|
|
66
|
+
closeRegisteredStores();
|
|
67
|
+
}
|
|
68
|
+
catch { /* best effort */ }
|
|
69
|
+
}
|
|
32
70
|
async function main() {
|
|
33
71
|
initFeatureFlagsFromEnv();
|
|
34
72
|
// Output startup message BEFORE suppressing stderr (Claude Code health check needs this)
|
|
@@ -76,18 +114,26 @@ async function main() {
|
|
|
76
114
|
if (server) {
|
|
77
115
|
await server.stop();
|
|
78
116
|
}
|
|
79
|
-
// Close data stores AFTER server has drained connections
|
|
80
|
-
try {
|
|
81
|
-
const { resetSharedRvfDualWriter } = await import('../integrations/ruvector/shared-rvf-dual-writer.js');
|
|
82
|
-
resetSharedRvfDualWriter();
|
|
83
|
-
}
|
|
84
|
-
catch { /* ignore */ }
|
|
85
117
|
}
|
|
86
118
|
catch { /* best-effort — the watchdog still guarantees exit */ }
|
|
119
|
+
finally {
|
|
120
|
+
// Close data stores AFTER the server has drained connections, and even
|
|
121
|
+
// when a step above threw. Shared pattern-store consumers leave
|
|
122
|
+
// singleton disposal to this lifecycle; memory.db closes last.
|
|
123
|
+
releaseProcessStores();
|
|
124
|
+
}
|
|
87
125
|
process.exit(0);
|
|
88
126
|
};
|
|
127
|
+
// #801: this server owns the process lifecycle. The kernel stores' and the
|
|
128
|
+
// `aqe` CLI wrapper's SIGINT/SIGTERM handlers, and the JSON-RPC `shutdown`
|
|
129
|
+
// method, route to this one shutdown instead of calling process.exit()
|
|
130
|
+
// underneath it (which skipped the drain and leaked patterns.rvf.lock).
|
|
131
|
+
claimProcessLifecycle({ name: 'mcp', shutdown: (reason) => { void shutdown(reason); } });
|
|
89
132
|
process.on('SIGINT', () => { void shutdown('SIGINT'); });
|
|
90
133
|
process.on('SIGTERM', () => { void shutdown('SIGTERM'); });
|
|
134
|
+
// Last line of defence for exits that bypass shutdown() (the watchdog, or a
|
|
135
|
+
// process.exit elsewhere): 'exit' listeners run synchronously on every exit.
|
|
136
|
+
process.on('exit', releaseProcessStores);
|
|
91
137
|
// Issue #513: when the parent (e.g. the Claude Code session) exits, our stdin
|
|
92
138
|
// reaches EOF. An orphaned stdio MCP server has no parent to serve, so exit
|
|
93
139
|
// instead of lingering at high CPU. Guarded to a piped stdin so an
|
|
@@ -10,6 +10,7 @@ import { generateV2LearningFeedback, analyzeComplexity, generateV2AIInsights, ge
|
|
|
10
10
|
import { MetricsCollector } from '../metrics/index.js';
|
|
11
11
|
import { DEFAULT_FRAMEWORKS, FRAMEWORK_TO_LANGUAGE, } from '../../shared/types/test-frameworks.js';
|
|
12
12
|
import { buildRiskDecisionFromQualityGate, validateRiskDecision, } from '../../contracts/verdicts.js';
|
|
13
|
+
import { validateBehaviorExamples } from '../../domains/test-generation/services/behavior-example-validation.js';
|
|
13
14
|
const SUPPORTED_LANGUAGES = Object.keys(DEFAULT_FRAMEWORKS);
|
|
14
15
|
/**
|
|
15
16
|
* Normalize a language string from MCP input. Returns the canonical
|
|
@@ -77,8 +78,13 @@ export const testGenerateConfig = {
|
|
|
77
78
|
else {
|
|
78
79
|
framework = DEFAULT_FRAMEWORKS[language];
|
|
79
80
|
}
|
|
81
|
+
// #795: validate caller fixtures here, before the task reaches the
|
|
82
|
+
// domain. Throwing from mapToPayload returns a clean tool error without
|
|
83
|
+
// submitting a task, so malformed input cannot trip the domain breaker.
|
|
84
|
+
const behaviorExamples = validateBehaviorExamples(params.behaviorExamples);
|
|
80
85
|
return {
|
|
81
86
|
sourceCode: params.sourceCode,
|
|
87
|
+
behaviorExamples,
|
|
82
88
|
filePath: params.filePath,
|
|
83
89
|
language,
|
|
84
90
|
framework,
|
|
@@ -124,6 +130,8 @@ export const testGenerateConfig = {
|
|
|
124
130
|
estimatedDuration: t.type === 'integration' ? 2000 : 1000,
|
|
125
131
|
aiGenerated: llmEnhanced,
|
|
126
132
|
testCode: t.testCode,
|
|
133
|
+
generationMode: t.generationMode,
|
|
134
|
+
generationLimits: t.generationLimits,
|
|
127
135
|
sourceFile: t.sourceFile,
|
|
128
136
|
testFile: t.testFile || t.file,
|
|
129
137
|
}))
|
|
@@ -135,11 +143,11 @@ export const testGenerateConfig = {
|
|
|
135
143
|
suggestions: antiPatterns.map(ap => `Fix: ${ap.type} - ${ap.suggestion}`),
|
|
136
144
|
aiInsights,
|
|
137
145
|
coverage: {
|
|
138
|
-
predicted: data.coverageEstimate
|
|
146
|
+
predicted: data.coverageEstimate ?? null,
|
|
139
147
|
// #567: a template scaffold's coverage prediction is a guess, not a
|
|
140
148
|
// 0.9-confidence estimate. Don't dress it up as one.
|
|
141
|
-
confidence: llmEnhanced ? 0.9 : 0
|
|
142
|
-
achievable: true,
|
|
149
|
+
confidence: data.coverageEstimate == null ? 0 : llmEnhanced ? 0.9 : 0,
|
|
150
|
+
achievable: data.coverageEstimate == null ? null : true,
|
|
143
151
|
},
|
|
144
152
|
properties: tests.filter(t => t.type === 'property').map(t => ({
|
|
145
153
|
name: t.name,
|
|
@@ -152,7 +160,7 @@ export const testGenerateConfig = {
|
|
|
152
160
|
taskId,
|
|
153
161
|
status: 'completed',
|
|
154
162
|
testsGenerated: tests.length,
|
|
155
|
-
coverageEstimate: data.coverageEstimate
|
|
163
|
+
coverageEstimate: data.coverageEstimate ?? null,
|
|
156
164
|
patternsUsed: data.patternsUsed || ['assertion-patterns', 'mock-generation', 'edge-case-detection'],
|
|
157
165
|
duration,
|
|
158
166
|
savedFiles,
|
|
@@ -250,7 +250,7 @@ export async function handleTaskOrchestrate(params) {
|
|
|
250
250
|
// routing — the catalog of consolidated long-term patterns was never
|
|
251
251
|
// consulted for new tasks. Fail-soft: empty array on error.
|
|
252
252
|
const patternHintMatches = await reasoningBankService
|
|
253
|
-
.
|
|
253
|
+
.searchPatternMatches(params.task, {
|
|
254
254
|
limit: 5,
|
|
255
255
|
domain: params.context?.project ?? inferredDomain,
|
|
256
256
|
})
|
|
@@ -289,13 +289,15 @@ export async function handleTaskOrchestrate(params) {
|
|
|
289
289
|
// workflow branch routes through executeWorkflow, so the same catalog
|
|
290
290
|
// of consolidated long-term patterns should reach it.
|
|
291
291
|
patternHints: patternHintMatches.length > 0
|
|
292
|
-
? patternHintMatches.map(p => ({
|
|
292
|
+
? patternHintMatches.map(({ pattern: p, similarity, score, matchType, canReuse }) => ({
|
|
293
293
|
patternId: p.id,
|
|
294
294
|
name: p.name,
|
|
295
295
|
description: p.description,
|
|
296
296
|
confidence: p.confidence,
|
|
297
|
-
similarity
|
|
298
|
-
|
|
297
|
+
similarity,
|
|
298
|
+
score,
|
|
299
|
+
matchType,
|
|
300
|
+
canReuse,
|
|
299
301
|
}))
|
|
300
302
|
: undefined,
|
|
301
303
|
};
|
|
@@ -371,13 +373,15 @@ export async function handleTaskOrchestrate(params) {
|
|
|
371
373
|
} : undefined,
|
|
372
374
|
// HNSW A pattern hints for the executing agent
|
|
373
375
|
patternHints: patternHintMatches.length > 0
|
|
374
|
-
? patternHintMatches.map(p => ({
|
|
376
|
+
? patternHintMatches.map(({ pattern: p, similarity, score, matchType, canReuse }) => ({
|
|
375
377
|
patternId: p.id,
|
|
376
378
|
name: p.name,
|
|
377
379
|
description: p.description,
|
|
378
380
|
confidence: p.confidence,
|
|
379
|
-
similarity
|
|
380
|
-
|
|
381
|
+
similarity,
|
|
382
|
+
score,
|
|
383
|
+
matchType,
|
|
384
|
+
canReuse,
|
|
381
385
|
}))
|
|
382
386
|
: undefined,
|
|
383
387
|
},
|
|
@@ -42,6 +42,8 @@ import { getPerformanceMonitor, } from './performance-monitor.js';
|
|
|
42
42
|
// ADR-062: Loop detection for MCP tool calls
|
|
43
43
|
import { ToolCallSignatureTracker } from '../kernel/anti-drift-middleware.js';
|
|
44
44
|
import { formatErrorForLog } from '../logging/redaction.js';
|
|
45
|
+
import { BEHAVIOR_EXAMPLE_ITEM_SCHEMA } from '../domains/test-generation/services/behavior-example-validation.js';
|
|
46
|
+
import { requestOwnedShutdown } from '../kernel/process-lifecycle.js';
|
|
45
47
|
import { createRequire } from 'module';
|
|
46
48
|
const _require = createRequire(import.meta.url);
|
|
47
49
|
const _pkg = _require('../../package.json');
|
|
@@ -383,10 +385,16 @@ export class MCPProtocolServer {
|
|
|
383
385
|
}
|
|
384
386
|
async handleShutdown() {
|
|
385
387
|
console.error('[MCP] Shutdown requested');
|
|
386
|
-
//
|
|
388
|
+
// Reply first, then shut down. #801: the entry point's lifecycle owner
|
|
389
|
+
// runs the same graceful shutdown as stdin EOF and signals (drains the
|
|
390
|
+
// server, then releases the shared RVF stores). Without an owner (an
|
|
391
|
+
// embedded server), await stop() under a bounded cap before exiting.
|
|
387
392
|
setTimeout(() => {
|
|
388
|
-
|
|
389
|
-
|
|
393
|
+
if (requestOwnedShutdown('jsonrpc-shutdown'))
|
|
394
|
+
return;
|
|
395
|
+
const exit = () => process.exit(0);
|
|
396
|
+
setTimeout(exit, 3000).unref();
|
|
397
|
+
this.stop().catch(() => { }).finally(exit);
|
|
390
398
|
}, 100);
|
|
391
399
|
return {};
|
|
392
400
|
}
|
|
@@ -840,6 +848,7 @@ export class MCPProtocolServer {
|
|
|
840
848
|
{ name: 'testType', type: 'string', description: 'Type of tests', enum: ['unit', 'integration', 'e2e'] },
|
|
841
849
|
{ name: 'framework', type: 'string', description: 'Test framework to use. If omitted, derived from `language`.', enum: ['jest', 'vitest', 'mocha', 'pytest', 'node-test', 'junit5', 'testng', 'xunit', 'nunit', 'go-test', 'rust-test', 'swift-testing', 'xctest', 'kotlin-junit', 'flutter-test', 'jest-rn'] },
|
|
842
850
|
{ name: 'coverageGoal', type: 'number', description: 'Target coverage percentage (0-100)', default: 80 },
|
|
851
|
+
{ name: 'behaviorExamples', type: 'array', description: 'Trusted specification fixtures: [{functionName: "add", args: [2,3], expected: 5}]. Named JS/TS functions with required simple parameters; unit vitest/jest/node-test. No source-derived oracle. Omit for scaffolding.', items: BEHAVIOR_EXAMPLE_ITEM_SCHEMA },
|
|
843
852
|
{ name: 'aiEnhancement', type: 'boolean', description: 'Enable AI-powered enhancement', default: true },
|
|
844
853
|
{ name: 'detectAntiPatterns', type: 'boolean', description: 'Detect and report anti-patterns', default: false },
|
|
845
854
|
],
|
|
@@ -1533,6 +1542,12 @@ export class MCPProtocolServer {
|
|
|
1533
1542
|
enum: param.enum,
|
|
1534
1543
|
};
|
|
1535
1544
|
}
|
|
1545
|
+
if (param.type === 'array' && param.items) {
|
|
1546
|
+
properties[param.name] = {
|
|
1547
|
+
...properties[param.name],
|
|
1548
|
+
items: param.items,
|
|
1549
|
+
};
|
|
1550
|
+
}
|
|
1536
1551
|
if (param.default !== undefined) {
|
|
1537
1552
|
properties[param.name] = {
|
|
1538
1553
|
...properties[param.name],
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - Synchronous learning (no fire-and-forget)
|
|
13
13
|
*/
|
|
14
14
|
import { type Trajectory, type TrajectoryStep as TrackerTrajectoryStep, type TrajectoryOptions, type ExperienceGuidance, type EnhancedReasoningBankAdapterStats } from '../../integrations/agentic-flow/reasoning-bank/index.js';
|
|
15
|
-
import { type RealQERoutingRequest, type RealQERoutingResult, type RealQEReasoningBankStats } from '../../learning/real-qe-reasoning-bank.js';
|
|
15
|
+
import { type RealQERoutingRequest, type RealQERoutingResult, type RealQEReasoningBankStats, type RealQEPatternSearchResult } from '../../learning/real-qe-reasoning-bank.js';
|
|
16
16
|
import type { QEPattern, QEDomain } from '../../learning/qe-patterns.js';
|
|
17
17
|
/**
|
|
18
18
|
* Task outcome record for learning
|
|
@@ -203,6 +203,11 @@ export declare class ReasoningBankService {
|
|
|
203
203
|
limit?: number;
|
|
204
204
|
domain?: QEDomain;
|
|
205
205
|
}): Promise<QEPattern[]>;
|
|
206
|
+
/** Preserve measured relevance and vector reuse safety for orchestration. */
|
|
207
|
+
searchPatternMatches(query: string, options?: {
|
|
208
|
+
limit?: number;
|
|
209
|
+
domain?: QEDomain;
|
|
210
|
+
}): Promise<RealQEPatternSearchResult[]>;
|
|
206
211
|
/**
|
|
207
212
|
* Get service statistics
|
|
208
213
|
*/
|
|
@@ -492,6 +492,10 @@ export class ReasoningBankService {
|
|
|
492
492
|
* Search for similar patterns
|
|
493
493
|
*/
|
|
494
494
|
async searchPatterns(query, options) {
|
|
495
|
+
return (await this.searchPatternMatches(query, options)).map(match => match.pattern);
|
|
496
|
+
}
|
|
497
|
+
/** Preserve measured relevance and vector reuse safety for orchestration. */
|
|
498
|
+
async searchPatternMatches(query, options) {
|
|
495
499
|
if (this.disposed) {
|
|
496
500
|
return [];
|
|
497
501
|
}
|
|
@@ -504,7 +508,7 @@ export class ReasoningBankService {
|
|
|
504
508
|
console.error('[ReasoningBankService] Search returned error:', results.error);
|
|
505
509
|
return [];
|
|
506
510
|
}
|
|
507
|
-
return results.value
|
|
511
|
+
return results.value;
|
|
508
512
|
}
|
|
509
513
|
catch (error) {
|
|
510
514
|
console.error('[ReasoningBankService] Search failed:', error);
|
|
@@ -36,15 +36,20 @@ export class E2EExecuteTool extends MCPToolBase {
|
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
const startTime = Date.now();
|
|
39
|
+
let vibiumClient;
|
|
39
40
|
try {
|
|
40
41
|
// Get E2E runner from domain
|
|
41
42
|
const { createE2ETestRunnerService } = await import('../../../domains/test-execution/index.js');
|
|
42
43
|
const { createVibiumClient } = await import('../../../integrations/vibium/index.js');
|
|
43
44
|
// Create Vibium client
|
|
44
|
-
|
|
45
|
+
vibiumClient = await createVibiumClient({
|
|
45
46
|
enabled: true,
|
|
47
|
+
fallbackEnabled: false,
|
|
46
48
|
});
|
|
47
49
|
// Create E2E runner
|
|
50
|
+
if (!await vibiumClient.isAvailable()) {
|
|
51
|
+
throw new Error('Browser unavailable; run aqe init --browser-engine');
|
|
52
|
+
}
|
|
48
53
|
const runner = createE2ETestRunnerService(vibiumClient, runnerConfig);
|
|
49
54
|
// Execute test case or suite
|
|
50
55
|
if (testCase) {
|
|
@@ -106,6 +111,9 @@ export class E2EExecuteTool extends MCPToolBase {
|
|
|
106
111
|
error: `E2E test execution failed: ${toErrorMessage(error)}`,
|
|
107
112
|
};
|
|
108
113
|
}
|
|
114
|
+
finally {
|
|
115
|
+
await vibiumClient?.dispose();
|
|
116
|
+
}
|
|
109
117
|
}
|
|
110
118
|
}
|
|
111
119
|
// ============================================================================
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { MCPToolBase, MCPToolConfig, MCPToolContext } from '../base';
|
|
10
10
|
import { ToolResult } from '../../types';
|
|
11
|
+
import { GenerateTestsRequest } from '../../../domains/test-generation/interfaces';
|
|
11
12
|
export interface TestGenerateParams {
|
|
13
|
+
behaviorExamples?: GenerateTestsRequest['behaviorExamples'];
|
|
12
14
|
sourceFiles: string[];
|
|
13
15
|
testType?: 'unit' | 'integration' | 'e2e';
|
|
14
16
|
framework?: 'jest' | 'vitest' | 'mocha' | 'pytest' | 'node-test';
|
|
@@ -21,7 +23,8 @@ export interface TestGenerateParams {
|
|
|
21
23
|
}
|
|
22
24
|
export interface TestGenerateResult {
|
|
23
25
|
tests: GeneratedTest[];
|
|
24
|
-
|
|
26
|
+
/** null means unmeasured; never coerce unknown coverage to measured zero. */
|
|
27
|
+
coverageEstimate: number | null;
|
|
25
28
|
patternsUsed: string[];
|
|
26
29
|
suggestions: string[];
|
|
27
30
|
antiPatterns?: AntiPattern[];
|
|
@@ -34,6 +37,8 @@ export interface GeneratedTest {
|
|
|
34
37
|
testCode: string;
|
|
35
38
|
type: 'unit' | 'integration' | 'e2e';
|
|
36
39
|
assertions: number;
|
|
40
|
+
generationMode?: string;
|
|
41
|
+
generationLimits?: string[];
|
|
37
42
|
}
|
|
38
43
|
export interface AntiPattern {
|
|
39
44
|
name: string;
|
|
@@ -10,6 +10,7 @@ import { MCPToolBase, getSharedMemoryBackend, getLLMRouter } from '../base.js';
|
|
|
10
10
|
import { createTestGeneratorServiceWithDependencies } from '../../../domains/test-generation/services/test-generator.js';
|
|
11
11
|
import { TokenOptimizerService } from '../../../optimization/token-optimizer-service.js';
|
|
12
12
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
13
|
+
import { BEHAVIOR_EXAMPLE_ITEM_SCHEMA, validateBehaviorExamples } from '../../../domains/test-generation/services/behavior-example-validation.js';
|
|
13
14
|
// ============================================================================
|
|
14
15
|
// Tool Implementation
|
|
15
16
|
// ============================================================================
|
|
@@ -45,6 +46,9 @@ export class TestGenerateTool extends MCPToolBase {
|
|
|
45
46
|
async execute(params, context) {
|
|
46
47
|
const { sourceFiles, testType = 'unit', framework = 'vitest', language = 'typescript', coverageTarget = 80, patterns = [], aiEnhancement = true, detectAntiPatterns = false, } = params;
|
|
47
48
|
try {
|
|
49
|
+
// #795: reject malformed caller fixtures at the tool boundary, before
|
|
50
|
+
// any service or domain work runs.
|
|
51
|
+
const behaviorExamples = validateBehaviorExamples(params.behaviorExamples);
|
|
48
52
|
// Stream progress updates
|
|
49
53
|
this.emitStream(context, {
|
|
50
54
|
status: 'analyzing',
|
|
@@ -79,6 +83,7 @@ export class TestGenerateTool extends MCPToolBase {
|
|
|
79
83
|
const service = await this.getService(context);
|
|
80
84
|
// Build the domain request from MCP params
|
|
81
85
|
const domainRequest = {
|
|
86
|
+
behaviorExamples,
|
|
82
87
|
sourceFiles,
|
|
83
88
|
testType: testType,
|
|
84
89
|
framework: framework,
|
|
@@ -103,6 +108,8 @@ export class TestGenerateTool extends MCPToolBase {
|
|
|
103
108
|
testCode: test.testCode,
|
|
104
109
|
type: test.type,
|
|
105
110
|
assertions: test.assertions,
|
|
111
|
+
generationMode: test.generationMode,
|
|
112
|
+
generationLimits: test.generationLimits,
|
|
106
113
|
}));
|
|
107
114
|
this.emitStream(context, {
|
|
108
115
|
status: 'generating',
|
|
@@ -150,6 +157,7 @@ export class TestGenerateTool extends MCPToolBase {
|
|
|
150
157
|
const TEST_GENERATE_SCHEMA = {
|
|
151
158
|
type: 'object',
|
|
152
159
|
properties: {
|
|
160
|
+
behaviorExamples: { type: 'array', description: 'Trusted JSON specification fixtures: functionName, args, expected', items: BEHAVIOR_EXAMPLE_ITEM_SCHEMA },
|
|
153
161
|
sourceFiles: {
|
|
154
162
|
type: 'array',
|
|
155
163
|
description: 'Array of source file paths to generate tests for',
|
package/dist/mcp/types.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export interface ToolParameter {
|
|
|
14
14
|
required?: boolean;
|
|
15
15
|
default?: unknown;
|
|
16
16
|
enum?: string[];
|
|
17
|
+
/** JSON Schema for array elements (only meaningful when type is 'array'). */
|
|
18
|
+
items?: Record<string, unknown>;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* Optional safety metadata advertised by an MCP tool.
|
|
@@ -171,6 +173,7 @@ export interface TestGenerateParams {
|
|
|
171
173
|
framework?: string;
|
|
172
174
|
testType?: 'unit' | 'integration' | 'e2e' | 'property-based';
|
|
173
175
|
coverageGoal?: number;
|
|
176
|
+
behaviorExamples?: import('../domains/test-generation/interfaces').BehaviorExample[];
|
|
174
177
|
aiEnhancement?: boolean;
|
|
175
178
|
detectAntiPatterns?: boolean;
|
|
176
179
|
}
|
|
@@ -467,14 +470,15 @@ export interface TestGenerateResult {
|
|
|
467
470
|
status: string;
|
|
468
471
|
duration: number;
|
|
469
472
|
testsGenerated: number;
|
|
470
|
-
|
|
473
|
+
/** null means unmeasured; never coerce unknown coverage to measured zero. */
|
|
474
|
+
coverageEstimate: number | null;
|
|
471
475
|
antiPatternsDetected?: number;
|
|
472
476
|
suggestions?: string[];
|
|
473
477
|
savedFiles?: string[];
|
|
474
478
|
patternsUsed?: string[];
|
|
475
479
|
/**
|
|
476
480
|
* #567: true when the ADR-051 LLM branch actually ran. When false the tests
|
|
477
|
-
*
|
|
481
|
+
* come from deterministic fixtures or scaffolding — see `generationMode`/`note`.
|
|
478
482
|
*/
|
|
479
483
|
llmEnhanced?: boolean;
|
|
480
484
|
/** #567: set to 'deterministic-template' when no LLM enhancement was applied. */
|
|
@@ -13,4 +13,19 @@ export declare function toErrorMessage(error: unknown): string;
|
|
|
13
13
|
* Coerce unknown error value to an Error instance.
|
|
14
14
|
*/
|
|
15
15
|
export declare function toError(error: unknown): Error;
|
|
16
|
+
/**
|
|
17
|
+
* A request was rejected because the caller's input is invalid (a malformed
|
|
18
|
+
* argument, an unknown function name, an unsupported option combination).
|
|
19
|
+
*
|
|
20
|
+
* The failure is deterministic and says nothing about the health of the
|
|
21
|
+
* component that rejected it, so it must not be retried and must not count
|
|
22
|
+
* toward a domain circuit breaker (ADR-064). The marker survives being
|
|
23
|
+
* flattened to a message string via `callerError` on TaskFailed events.
|
|
24
|
+
*/
|
|
25
|
+
export declare class CallerInputError extends Error {
|
|
26
|
+
readonly callerError: true;
|
|
27
|
+
constructor(message: string);
|
|
28
|
+
}
|
|
29
|
+
/** True when `error` is (or is marked as) a caller-input error. */
|
|
30
|
+
export declare function isCallerInputError(error: unknown): boolean;
|
|
16
31
|
//# sourceMappingURL=error-utils.d.ts.map
|
|
@@ -17,4 +17,25 @@ export function toErrorMessage(error) {
|
|
|
17
17
|
export function toError(error) {
|
|
18
18
|
return error instanceof Error ? error : new Error(String(error));
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* A request was rejected because the caller's input is invalid (a malformed
|
|
22
|
+
* argument, an unknown function name, an unsupported option combination).
|
|
23
|
+
*
|
|
24
|
+
* The failure is deterministic and says nothing about the health of the
|
|
25
|
+
* component that rejected it, so it must not be retried and must not count
|
|
26
|
+
* toward a domain circuit breaker (ADR-064). The marker survives being
|
|
27
|
+
* flattened to a message string via `callerError` on TaskFailed events.
|
|
28
|
+
*/
|
|
29
|
+
export class CallerInputError extends Error {
|
|
30
|
+
callerError = true;
|
|
31
|
+
constructor(message) {
|
|
32
|
+
super(message);
|
|
33
|
+
this.name = 'CallerInputError';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** True when `error` is (or is marked as) a caller-input error. */
|
|
37
|
+
export function isCallerInputError(error) {
|
|
38
|
+
return error instanceof CallerInputError
|
|
39
|
+
|| (typeof error === 'object' && error !== null && error.callerError === true);
|
|
40
|
+
}
|
|
20
41
|
//# sourceMappingURL=error-utils.js.map
|
|
@@ -17,7 +17,8 @@ export interface TestSuiteCreatedPayload {
|
|
|
17
17
|
suiteId: string;
|
|
18
18
|
testCount: number;
|
|
19
19
|
sourceFiles: string[];
|
|
20
|
-
|
|
20
|
+
/** null means unmeasured; never coerce unknown coverage to measured zero. */
|
|
21
|
+
coverageEstimate: number | null;
|
|
21
22
|
}
|
|
22
23
|
export declare const TestGenerationEvents: {
|
|
23
24
|
readonly TestGenerated: "test-generation.TestGenerated";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-qe",
|
|
3
|
-
"version": "3.14.
|
|
3
|
+
"version": "3.14.7",
|
|
4
4
|
"description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"mcp": "tsx src/mcp/entry.ts",
|
|
79
79
|
"test": "NODE_OPTIONS='--max-old-space-size=1024 --expose-gc' vitest run",
|
|
80
80
|
"test:unit": "npm run test:unit:fast && npm run test:unit:heavy && npm run test:unit:mcp",
|
|
81
|
-
"test:unit:fast": "vitest run --exclude='**/qe-reasoning-bank.test.ts' --exclude='**/
|
|
81
|
+
"test:unit:fast": "vitest run --exclude='**/qe-reasoning-bank.test.ts' --exclude='**/aqe-learning-engine.test.ts' --exclude='**/aqe-learning-engine-patterns.test.ts' tests/unit/adapters tests/unit/shared tests/unit/cli tests/unit/learning tests/unit/kernel tests/unit/workers tests/unit/routing tests/unit/strange-loop tests/unit/sync tests/unit/feedback tests/unit/error-paths tests/unit/early-exit tests/unit/causal-discovery tests/unit/neural-optimizer tests/unit/test-scheduling tests/unit/logging tests/unit/validation tests/unit/memory tests/unit/performance tests/unit/scripts tests/unit/planning tests/context",
|
|
82
82
|
"test:unit:heavy": "vitest run tests/unit/coordination tests/unit/domains tests/unit/integrations tests/unit/optimization tests/unit/init --exclude='**/browser/**' --exclude='**/*.e2e.test.ts' --exclude='**/vibium/**' --exclude='**/browser-swarm-coordinator.test.ts'",
|
|
83
83
|
"test:unit:mcp": "vitest run tests/unit/mcp --exclude='**/mcp/handlers/domain-handlers.test.ts' --fileParallelism=false",
|
|
84
84
|
"test:ci": "vitest run --exclude='**/browser/**' --exclude='**/*.e2e.test.ts' --exclude='**/vibium/**' --exclude='**/integration/browser/**' --exclude='**/browser-swarm-coordinator.test.ts' --exclude='**/mcp/handlers/domain-handlers.test.ts' --exclude='**/fixtures/init-corpus/**'",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"test:journeys:ci": "vitest run tests/integration/ --exclude='**/browser/**' --exclude='**/browser-integration/**' --exclude='**/integration/mcp/**' --exclude='**/integration/sync/**' --exclude='**/integration/learning/**' --exclude='**/integration/domains/**' --exclude='**/integration/llm/**' --exclude='**/integration/n8n/**' --exclude='**/*.e2e.test.ts'",
|
|
116
116
|
"test:watch": "vitest",
|
|
117
117
|
"performance:gate": "npx tsx src/performance/run-gates.ts",
|
|
118
|
-
"test:integration:browser": "VIBIUM_REAL_TESTS=true vitest run
|
|
118
|
+
"test:integration:browser": "VIBIUM_REAL_TESTS=true vitest run --config config/vitest.browser.config.ts",
|
|
119
119
|
"benchmark:token-reduction": "vitest bench tests/benchmarks/code-intelligence-token-reduction.bench.ts",
|
|
120
120
|
"benchmark:self-learning": "tsx scripts/benchmark-self-learning.ts",
|
|
121
121
|
"benchmark:rabitq": "tsx scripts/benchmark-rabitq.ts",
|
|
@@ -196,13 +196,13 @@
|
|
|
196
196
|
"semver": "^7.8.5",
|
|
197
197
|
"typescript": "^5.9.3",
|
|
198
198
|
"uuid": "^14.0.0",
|
|
199
|
-
"vibium": "^0.1.2",
|
|
200
199
|
"web-tree-sitter": "~0.26.8",
|
|
201
200
|
"yaml": "^2.8.2"
|
|
202
201
|
},
|
|
203
202
|
"peerDependencies": {
|
|
204
203
|
"@claude-flow/browser": "3.0.0-alpha.1",
|
|
205
|
-
"@claude-flow/guidance": "3.0.0-alpha.1"
|
|
204
|
+
"@claude-flow/guidance": "3.0.0-alpha.1",
|
|
205
|
+
"vibium": "^26.8.21"
|
|
206
206
|
},
|
|
207
207
|
"peerDependenciesMeta": {
|
|
208
208
|
"@claude-flow/browser": {
|
|
@@ -210,6 +210,9 @@
|
|
|
210
210
|
},
|
|
211
211
|
"@claude-flow/guidance": {
|
|
212
212
|
"optional": true
|
|
213
|
+
},
|
|
214
|
+
"vibium": {
|
|
215
|
+
"optional": true
|
|
213
216
|
}
|
|
214
217
|
},
|
|
215
218
|
"optionalDependencies": {
|
|
@@ -276,7 +279,8 @@
|
|
|
276
279
|
"glob": "^13.0.0",
|
|
277
280
|
"msw": "^2.12.7",
|
|
278
281
|
"tsx": "^4.21.0",
|
|
279
|
-
"vitest": "^5.0.1"
|
|
282
|
+
"vitest": "^5.0.1",
|
|
283
|
+
"vibium": "^26.8.21"
|
|
280
284
|
},
|
|
281
285
|
"engines": {
|
|
282
286
|
"node": ">=22.13.0",
|
|
@@ -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.14.6");process.exit(0)}
|
|
2
|
-
import{a,b,c}from"./chunk-RFNPJK6N.js";import"./chunk-YSLL6VSL.js";import"./chunk-2YXGBZWV.js";import"./chunk-AIRGNL55.js";import"./chunk-MJS53PRX.js";import"./chunk-64VGZQLB.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.6");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f}from"./chunk-AHKELLIO.js";import"./chunk-CM7U6TAX.js";import"./chunk-MBRHSU6W.js";import"./chunk-Z6GGIRQQ.js";import"./chunk-CD542DNJ.js";import"./chunk-7LPR6HJG.js";import"./chunk-7D3V65N5.js";import"./chunk-CCK4BF76.js";import"./chunk-YFBSPLJG.js";import"./chunk-7CUQCCMD.js";import"./chunk-3HZS4M3O.js";import"./chunk-Y3LZ35OG.js";import"./chunk-JVNTSNWU.js";import"./chunk-SMDN3BQZ.js";import"./chunk-6U7LNMWZ.js";import"./chunk-I33ERSGB.js";import"./chunk-IG5GNEC6.js";import"./chunk-UNFFDHER.js";import"./chunk-2TMWAQQ3.js";import"./chunk-2JVWITNK.js";import"./chunk-Q5XTSMWR.js";import"./chunk-AIRGNL55.js";import"./chunk-QW6VMTBR.js";import"./chunk-SDRHUMJB.js";import"./chunk-5J6W7SIA.js";import"./chunk-KNNISEDY.js";import"./chunk-TCHGOB2N.js";import"./chunk-FBMN7B46.js";import"./chunk-ENGZ4D5V.js";import"./chunk-MJS53PRX.js";import"./chunk-DPYSUDAO.js";import"./chunk-PI7TJS62.js";import"./chunk-EAY2JMZG.js";import"./chunk-C6KWXUFJ.js";import"./chunk-IB27QACC.js";import"./chunk-6SH5VZUD.js";import"./chunk-SESK3ARK.js";import"./chunk-SNOBH4AZ.js";import"./chunk-IQO7UCFR.js";import"./chunk-DUYOVM5I.js";import"./chunk-64VGZQLB.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.6");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-5QQSIGUA.js";import"./chunk-BMAPORJ7.js";import"./chunk-2JVWITNK.js";import"./chunk-Q5XTSMWR.js";import"./chunk-AIRGNL55.js";import"./chunk-QW6VMTBR.js";import"./chunk-SDRHUMJB.js";import"./chunk-TCHGOB2N.js";import"./chunk-FBMN7B46.js";import"./chunk-ENGZ4D5V.js";import"./chunk-MJS53PRX.js";import"./chunk-DPYSUDAO.js";import"./chunk-WCJBU2KI.js";import"./chunk-PI7TJS62.js";import"./chunk-EAY2JMZG.js";import"./chunk-C6KWXUFJ.js";import"./chunk-IB27QACC.js";import"./chunk-6SH5VZUD.js";import"./chunk-SESK3ARK.js";import"./chunk-SNOBH4AZ.js";import"./chunk-IQO7UCFR.js";import"./chunk-DUYOVM5I.js";import"./chunk-64VGZQLB.js";export{l as MCPToolBase,k as defaultToolLogger,j as getKernel,i as getLLMRouter,e as getMemoryBackend,g as getSharedLLMRouter,c as getSharedMemoryBackend,a as isMemoryOnlyMode,b as registerRvfResetFn,h as resetSharedLLMRouter,d as resetSharedMemoryBackend,f as setSharedLLMRouter};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.6");process.exit(0)}
|
|
2
|
-
import{a}from"./chunk-RTFO5UQH.js";import"./chunk-5QQSIGUA.js";import"./chunk-BMAPORJ7.js";import"./chunk-2JVWITNK.js";import"./chunk-Q5XTSMWR.js";import"./chunk-AIRGNL55.js";import"./chunk-QW6VMTBR.js";import"./chunk-SDRHUMJB.js";import"./chunk-TCHGOB2N.js";import"./chunk-FBMN7B46.js";import"./chunk-ENGZ4D5V.js";import"./chunk-MJS53PRX.js";import"./chunk-DPYSUDAO.js";import"./chunk-WCJBU2KI.js";import"./chunk-PI7TJS62.js";import"./chunk-EAY2JMZG.js";import"./chunk-C6KWXUFJ.js";import"./chunk-IB27QACC.js";import"./chunk-6SH5VZUD.js";import"./chunk-SESK3ARK.js";import"./chunk-SNOBH4AZ.js";import"./chunk-IQO7UCFR.js";import"./chunk-DUYOVM5I.js";import"./chunk-64VGZQLB.js";export{a as BrowserWorkflowTool};
|
|
@@ -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.14.6");process.exit(0)}
|
|
2
|
-
import{h as s,k as o,m as c,o as m}from"./chunk-2JVWITNK.js";import{a,c as d}from"./chunk-MJS53PRX.js";import{a as r,e as l}from"./chunk-6SH5VZUD.js";d();m();l();var u={dbPath:s.dbPath,walMode:!0,mmapSize:r.MMAP_SIZE_BYTES,cacheSize:r.CACHE_SIZE_KB,busyTimeout:r.BUSY_TIMEOUT_MS},n=class e{static instance=null;static instancePromise=null;unifiedMemory=null;config;initialized=!1;initPromise=null;constructor(i){this.config={...u,...i}}static getInstance(i){return e.instance||(e.instance=new e(i)),e.instance}static async getInstanceAsync(i){return e.instance?.initialized?e.instance:(e.instancePromise||(e.instancePromise=(async()=>{let t=e.getInstance(i);return await t.initialize(),t})()),e.instancePromise)}static resetInstance(){e.instance&&(e.instance.close(),e.instance=null),e.instancePromise=null,c()}async initialize(){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInitialize()),this.initPromise}async _doInitialize(){if(!this.initialized)try{let i={dbPath:this.config.dbPath,walMode:this.config.walMode,busyTimeout:this.config.busyTimeout,mmapSize:this.config.mmapSize,cacheSize:this.config.cacheSize};this.unifiedMemory=o(i),await this.unifiedMemory.initialize(),this.initialized=!0,console.log(`[UnifiedPersistence] Initialized via UnifiedMemoryManager: ${this.config.dbPath}`)}catch(i){throw this.initPromise=null,new Error(`Failed to initialize UnifiedPersistenceManager: ${a(i)}`)}}getDatabase(){if(!this.unifiedMemory||!this.initialized)throw new Error("UnifiedPersistenceManager not initialized");return this.unifiedMemory.getDatabase()}isInitialized(){return this.initialized}getDbPath(){return this.config.dbPath}prepare(i,t){if(!this.unifiedMemory)throw new Error("Database not initialized");return this.unifiedMemory.prepare(i,t)}transaction(i){if(!this.unifiedMemory)throw new Error("Database not initialized");return this.unifiedMemory.transaction(i)}getStats(){if(!this.unifiedMemory)throw new Error("Database not initialized");let i=this.unifiedMemory.getStats();return{tables:i.tables,fileSize:i.fileSize,walSize:i.walSize}}vacuum(){this.getDatabase().exec("VACUUM")}checkpoint(){this.getDatabase().pragma("wal_checkpoint(TRUNCATE)")}close(){this.initialized=!1,console.log("[UnifiedPersistence] Facade closed")}};function g(e){return n.getInstance(e)}async function U(e){let i=g(e);return await i.initialize(),i}function z(){n.resetInstance()}var f=!1;function h(){if(f)return;f=!0;let e=()=>{try{let i=n.instance;i&&i.close()}catch(i){console.debug("[UnifiedPersistence] Cleanup error:",i instanceof Error?i.message:i)}};process.on("beforeExit",e),process.on("SIGINT",()=>{e(),process.exit(0)}),process.on("SIGTERM",()=>{e(),process.exit(0)})}h();export{u as a,n as b,g as c,U as d,z as e};
|