agentic-qe 3.14.1 → 3.14.3
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 +109 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +7 -7
- package/dist/cli/chunks/adapter-AKQYU6UH.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-OY5Y2CUM.js → agent-booster-wasm-TQOMLWWX.js} +2 -2
- package/dist/cli/chunks/{agent-handler-TUOH55LD.js → agent-handler-Q3SEMMI2.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-XM3IYKT3.js → agent-memory-branch-SJXAQSZI.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-MICRPL3N.js +2 -0
- package/dist/cli/chunks/{arena-DOCLIEBL.js → arena-7RC7TBGW.js} +4 -4
- package/dist/cli/chunks/{arena-UMFJZKG7.js → arena-UPB7TKUY.js} +2 -2
- package/dist/cli/chunks/{audit-KZLU5VLW.js → audit-IXN5R4WB.js} +3 -3
- package/dist/cli/chunks/base-DZK36ITB.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-MIEZBNUI.js → better-sqlite3-RP4DEGK3.js} +2 -2
- package/dist/cli/chunks/{brain-handler-6PZN46B7.js → brain-handler-H5OVZ22L.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-XCETHA4F.js → branch-enumerator-VPRWDGFJ.js} +2 -2
- package/dist/cli/chunks/{browser-UEXISDCJ.js → browser-B6E7JPPJ.js} +2 -2
- package/dist/cli/chunks/browser-workflow-ADK54DOE.js +2 -0
- package/dist/cli/chunks/{chunk-PS6Y662P.js → chunk-26GM5CWD.js} +3 -3
- package/dist/cli/chunks/{chunk-IGRTQ6VT.js → chunk-2GNRW3OD.js} +2 -2
- package/dist/cli/chunks/{chunk-QIY43XQJ.js → chunk-2IGT5WNQ.js} +1 -1
- package/dist/cli/chunks/{chunk-LSXQPMPI.js → chunk-2WT7AKKK.js} +2 -2
- package/dist/cli/chunks/{chunk-5F5V4QYU.js → chunk-33VPWGCM.js} +3 -3
- package/dist/cli/chunks/{chunk-KXMW7XTJ.js → chunk-37BASGWC.js} +2 -2
- package/dist/cli/chunks/{chunk-5KP62DC3.js → chunk-3ABRGG3C.js} +2 -2
- package/dist/cli/chunks/{chunk-T7XYQX5G.js → chunk-3P6NCFI2.js} +2 -2
- package/dist/cli/chunks/{chunk-EEJP3WTQ.js → chunk-42VSQ2MX.js} +3 -3
- package/dist/cli/chunks/chunk-44WISFTU.js +2 -0
- package/dist/cli/chunks/{chunk-5T6PAUZD.js → chunk-4C6UJIHB.js} +1 -1
- package/dist/cli/chunks/{chunk-5TYGSQOL.js → chunk-4JBFJTHJ.js} +1 -1
- package/dist/cli/chunks/{chunk-FH7SCX2I.js → chunk-4OUPCTBS.js} +2 -2
- package/dist/cli/chunks/{chunk-UUE5CBZQ.js → chunk-4Q35TI6Z.js} +2 -2
- package/dist/cli/chunks/{chunk-HJD52N32.js → chunk-4RP5VUBI.js} +2 -2
- package/dist/cli/chunks/{chunk-GRVR3Y6I.js → chunk-4TXAP3YH.js} +1 -1
- package/dist/cli/chunks/{chunk-IIBXGHZT.js → chunk-4UDZLD42.js} +2 -2
- package/dist/cli/chunks/{chunk-GO66DCIZ.js → chunk-4W7QVUNO.js} +2 -2
- package/dist/cli/chunks/{chunk-AESYVAPH.js → chunk-4XPPMADQ.js} +2 -2
- package/dist/cli/chunks/{chunk-3FFMUB3B.js → chunk-527HQAY7.js} +2 -2
- package/dist/cli/chunks/chunk-5BLFXQEB.js +96 -0
- package/dist/cli/chunks/{chunk-QMTBWHGR.js → chunk-5DFHE4H5.js} +3 -3
- package/dist/cli/chunks/{chunk-AZUC7E5S.js → chunk-5F6DWHQG.js} +2 -2
- package/dist/cli/chunks/{chunk-6HMNN2Y2.js → chunk-5FOZO7KM.js} +81 -65
- package/dist/cli/chunks/{chunk-L4WATX6B.js → chunk-5IAB5NRZ.js} +2 -2
- package/dist/cli/chunks/{chunk-JMULRLD4.js → chunk-5P3G6ZW4.js} +1 -1
- package/dist/cli/chunks/{chunk-ND6JBUVH.js → chunk-5Y5TC6BY.js} +2 -2
- package/dist/cli/chunks/{chunk-DKSLJZVA.js → chunk-6F2RM6X2.js} +1 -1
- package/dist/cli/chunks/{chunk-J7VAD4RG.js → chunk-72UJXEKQ.js} +2 -2
- package/dist/cli/chunks/{chunk-RCHDSUVU.js → chunk-74PK3NEW.js} +2 -2
- package/dist/cli/chunks/{chunk-FHBGALBG.js → chunk-7BUERZYL.js} +2 -2
- package/dist/cli/chunks/{chunk-IYB3GRXF.js → chunk-7FYMDKQH.js} +174 -169
- package/dist/cli/chunks/{chunk-CBWF42ET.js → chunk-7G6UX2QN.js} +2 -2
- package/dist/cli/chunks/{chunk-GH3NJOTC.js → chunk-7JQHPANT.js} +3 -3
- package/dist/cli/chunks/{chunk-J2VF7ZO7.js → chunk-7SLAZAVU.js} +2 -2
- package/dist/cli/chunks/{chunk-GYTWUOKU.js → chunk-7Y2CEXRS.js} +4 -4
- package/dist/cli/chunks/{chunk-7AF55H2D.js → chunk-AB4U6ZNI.js} +2 -2
- package/dist/cli/chunks/chunk-AWNYEAGB.js +2 -0
- package/dist/cli/chunks/chunk-B2ZONZPZ.js +5 -0
- package/dist/cli/chunks/{chunk-FZ47ZCRL.js → chunk-B5XFDFBT.js} +1 -1
- package/dist/cli/chunks/{chunk-TLD727EF.js → chunk-B7SWW5A6.js} +2 -2
- package/dist/cli/chunks/chunk-BN7DKW5D.js +2 -0
- package/dist/cli/chunks/{chunk-UWRMPRY5.js → chunk-C46DMCWF.js} +1 -1
- package/dist/cli/chunks/{chunk-5NSSJUWW.js → chunk-CB5JPRIZ.js} +2 -2
- package/dist/cli/chunks/{chunk-A6RB34Y6.js → chunk-CBOPBYPU.js} +1 -1
- package/dist/cli/chunks/{chunk-FRRRDCXY.js → chunk-CR3QGHVN.js} +2 -2
- package/dist/cli/chunks/{chunk-J33LKXVH.js → chunk-D4Z2N74A.js} +1 -1
- package/dist/cli/chunks/{chunk-HKU5PPS7.js → chunk-DBA3N742.js} +1 -1
- package/dist/cli/chunks/{chunk-JJ4GUO4K.js → chunk-DX3C5HPN.js} +1 -1
- package/dist/cli/chunks/{chunk-NNJ63W77.js → chunk-E3FBW6G2.js} +1 -1
- package/dist/cli/chunks/{chunk-6Z6Y3YBX.js → chunk-ELU4IC3I.js} +1 -1
- package/dist/cli/chunks/{chunk-MFAN5W27.js → chunk-EY4OQHU3.js} +1 -1
- package/dist/cli/chunks/{chunk-S53ZUAVI.js → chunk-F67AV5P2.js} +2 -2
- package/dist/cli/chunks/chunk-FD2JFEQC.js +2 -0
- package/dist/cli/chunks/chunk-FKG5OQFT.js +2 -0
- package/dist/cli/chunks/{chunk-RXPHQ4ZE.js → chunk-FUE6LL72.js} +2 -2
- package/dist/cli/chunks/{chunk-HPQU6XZH.js → chunk-G5C2XVZC.js} +1 -1
- package/dist/cli/chunks/{chunk-N22LMACN.js → chunk-G6DCESPU.js} +2 -2
- package/dist/cli/chunks/{chunk-VUXHJPUS.js → chunk-G6ZHTF42.js} +2 -2
- package/dist/cli/chunks/{chunk-QM6EJHP5.js → chunk-GNTVFN7D.js} +1 -1
- package/dist/cli/chunks/{chunk-B6Y6AF4M.js → chunk-H5ZRV5K5.js} +2 -2
- package/dist/cli/chunks/{chunk-X5G3UDWP.js → chunk-H6XBM2LY.js} +2 -2
- package/dist/cli/chunks/{chunk-KXTN3FR4.js → chunk-HOQQCY2K.js} +2 -2
- package/dist/cli/chunks/{chunk-NAJCQJSK.js → chunk-HRUU7E3D.js} +2 -2
- package/dist/cli/chunks/{chunk-ODNLKYOM.js → chunk-HXE5NBJG.js} +1 -1
- package/dist/cli/chunks/{chunk-CCZZZBAO.js → chunk-I4NDQGKP.js} +2 -2
- package/dist/cli/chunks/{chunk-SEKOMKNG.js → chunk-IFFZR6GY.js} +1 -1
- package/dist/cli/chunks/{chunk-WFJKLM6Z.js → chunk-IKIITGU5.js} +3 -3
- package/dist/cli/chunks/{chunk-PYAH4K2U.js → chunk-IP7NSFQQ.js} +2 -2
- package/dist/cli/chunks/{chunk-3BRR2FLH.js → chunk-IQEJGZV6.js} +3 -3
- package/dist/cli/chunks/{chunk-HRUQWABO.js → chunk-IU4EBTA2.js} +3 -3
- package/dist/cli/chunks/{chunk-5Y2QFSVZ.js → chunk-JBB7E26R.js} +2 -2
- package/dist/cli/chunks/{chunk-ZAHCVRR7.js → chunk-JRYZKBY2.js} +2 -2
- package/dist/cli/chunks/{chunk-PMUF7WU6.js → chunk-JV4FZUE7.js} +2 -2
- package/dist/cli/chunks/{chunk-PS5NIMWJ.js → chunk-KF63AYXD.js} +2 -2
- package/dist/cli/chunks/{chunk-F7TRO2OM.js → chunk-KPMGTVB4.js} +1 -1
- package/dist/cli/chunks/chunk-L2GKMBDP.js +2 -0
- package/dist/cli/chunks/{chunk-LMPK63PO.js → chunk-LHGNNZ76.js} +3 -3
- package/dist/cli/chunks/{chunk-HBAQVJDP.js → chunk-LKN7JQTW.js} +2 -2
- package/dist/cli/chunks/{chunk-JZUWPDVS.js → chunk-LLVGTEHU.js} +1 -1
- package/dist/cli/chunks/{chunk-7XL2D56F.js → chunk-LS3EUMBP.js} +6 -6
- package/dist/cli/chunks/{chunk-MDLLEUFN.js → chunk-LTBCAFTZ.js} +3 -3
- package/dist/cli/chunks/{chunk-S4WIAKPL.js → chunk-LVLBIKJD.js} +1 -1
- package/dist/cli/chunks/{chunk-ERTGGFXZ.js → chunk-MDZ6RRLX.js} +2 -2
- package/dist/cli/chunks/{chunk-OBLHI4HA.js → chunk-MWWAMDHI.js} +1 -1
- package/dist/cli/chunks/{chunk-45S5553E.js → chunk-MXMFGSWR.js} +2 -2
- package/dist/cli/chunks/{chunk-HCCILQGN.js → chunk-N4H2QOT5.js} +2 -2
- package/dist/cli/chunks/{chunk-L66BWYQH.js → chunk-NBWQBQO5.js} +1 -1
- package/dist/cli/chunks/{chunk-RYHCYTFE.js → chunk-NN76NTOX.js} +1 -1
- package/dist/cli/chunks/{chunk-75SC3GEX.js → chunk-NTSXHZTC.js} +2 -2
- package/dist/cli/chunks/{chunk-PZZX57ZA.js → chunk-OV5EZO3U.js} +2 -2
- package/dist/cli/chunks/{chunk-7GF6IRSU.js → chunk-OVDKWCD7.js} +2 -2
- package/dist/cli/chunks/{chunk-DFXQLHQM.js → chunk-OVPJQWHW.js} +2 -2
- package/dist/cli/chunks/{chunk-Y63V33M6.js → chunk-OY7MLMEX.js} +5 -5
- package/dist/cli/chunks/{chunk-LJ63HPPN.js → chunk-OYMLHX2B.js} +1 -1
- package/dist/cli/chunks/{chunk-FPBQ7BXU.js → chunk-PI74GOE4.js} +2 -2
- package/dist/cli/chunks/{chunk-LQDFWLKK.js → chunk-PZTVH2AS.js} +2 -2
- package/dist/cli/chunks/{chunk-UCJEAK7D.js → chunk-QLWNXBRU.js} +2 -2
- package/dist/cli/chunks/{chunk-O7KF3GBV.js → chunk-R2AFVFRF.js} +1 -1
- package/dist/cli/chunks/{chunk-TF33GKWA.js → chunk-RKJZWWB7.js} +2 -2
- package/dist/cli/chunks/{chunk-FOAFRC2W.js → chunk-ROX7NLS4.js} +2 -2
- package/dist/cli/chunks/{chunk-OBKMLOHU.js → chunk-RTJ2M6V6.js} +2 -2
- package/dist/cli/chunks/{chunk-7AYTM426.js → chunk-SG47AXJG.js} +1 -1
- package/dist/cli/chunks/{chunk-3AYNHOWS.js → chunk-SGXSB7YO.js} +1 -1
- package/dist/cli/chunks/{chunk-Z5YU2TDS.js → chunk-SHGKY3QB.js} +2 -2
- package/dist/cli/chunks/{chunk-TT7DF2GX.js → chunk-SJPZSCZP.js} +2 -2
- package/dist/cli/chunks/{chunk-RUEHSOE6.js → chunk-SQ3PPISY.js} +1 -1
- package/dist/cli/chunks/{chunk-NEEZ6M4W.js → chunk-STRDSVH3.js} +2 -2
- package/dist/cli/chunks/{chunk-DKXSJDII.js → chunk-T35GZXTU.js} +2 -2
- package/dist/cli/chunks/{chunk-KHUO4NCW.js → chunk-T62DH4GG.js} +2 -2
- package/dist/cli/chunks/{chunk-6YIMLUH6.js → chunk-TFHQE6NK.js} +2 -2
- package/dist/cli/chunks/{chunk-ZC3HC6FO.js → chunk-TGLAWI62.js} +1 -1
- package/dist/cli/chunks/{chunk-4MT62HKK.js → chunk-TISSZFHO.js} +1 -1
- package/dist/cli/chunks/{chunk-3XRXUVUI.js → chunk-TJEIOE7F.js} +1 -1
- package/dist/cli/chunks/{chunk-TQ2JZVZ3.js → chunk-TTMHIOQ3.js} +2 -2
- package/dist/cli/chunks/{chunk-VEWYUEVY.js → chunk-UHQY3GK7.js} +2 -2
- package/dist/cli/chunks/{chunk-MZ2PJUN6.js → chunk-UMENRGHK.js} +2 -2
- package/dist/cli/chunks/{chunk-H2DX36SC.js → chunk-UMNYF5EZ.js} +2 -2
- package/dist/cli/chunks/{chunk-SZRDEPUY.js → chunk-UTVRQEZM.js} +3 -3
- package/dist/cli/chunks/{chunk-4ZLFUO4I.js → chunk-UYJHYMEQ.js} +2 -2
- package/dist/cli/chunks/{chunk-6DDMHZWH.js → chunk-V4AOVDCJ.js} +2 -2
- package/dist/cli/chunks/{chunk-CGDW47WP.js → chunk-VIDBBB6F.js} +2 -2
- package/dist/cli/chunks/{chunk-6B77GPWL.js → chunk-VWNHKYK7.js} +2 -2
- package/dist/cli/chunks/{chunk-EPBWFTHH.js → chunk-WYMGK5DX.js} +2 -2
- package/dist/cli/chunks/{chunk-3WSH4HD2.js → chunk-XA7CG3LH.js} +2 -2
- package/dist/cli/chunks/{chunk-FFRKTZYP.js → chunk-XX7HUSX2.js} +2 -2
- package/dist/cli/chunks/{chunk-PMREFRPP.js → chunk-XXCYQXK3.js} +2 -2
- package/dist/cli/chunks/{chunk-EHW62JL2.js → chunk-Y2DVFVGI.js} +1 -1
- package/dist/cli/chunks/{chunk-D6RCRTTR.js → chunk-Y5SQBI2F.js} +2 -2
- package/dist/cli/chunks/{chunk-VVP2ROXD.js → chunk-YAKS3CAB.js} +2 -2
- package/dist/cli/chunks/{chunk-C3XNFIOM.js → chunk-YCBDE2N7.js} +2 -2
- package/dist/cli/chunks/{chunk-RVCMZUSJ.js → chunk-YDNSLLBS.js} +2 -2
- package/dist/cli/chunks/{chunk-TGFJUL6M.js → chunk-YEXPFHV6.js} +2 -2
- package/dist/cli/chunks/{chunk-UN7EHLRV.js → chunk-YGB6R5DW.js} +1 -1
- package/dist/cli/chunks/{chunk-JNSTKE3K.js → chunk-YL7T3VV7.js} +2 -2
- package/dist/cli/chunks/{chunk-3TMUCJNJ.js → chunk-ZHXWGNYM.js} +1 -1
- package/dist/cli/chunks/{chunk-DKUKGBJE.js → chunk-ZK5JKHP4.js} +1 -1
- package/dist/cli/chunks/{chunk-IYIMLLUV.js → chunk-ZN3J6TZD.js} +1 -1
- package/dist/cli/chunks/{chunk-3JMSXOU4.js → chunk-ZUG5MOUB.js} +2 -2
- package/dist/cli/chunks/{ci-Q2VX75PS.js → ci-YVKDQWIX.js} +2 -2
- package/dist/cli/chunks/ci-output-LK3MBXLZ.js +2 -0
- package/dist/cli/chunks/{circuit-breaker-JMRLG2XI.js → circuit-breaker-7AIXACR7.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-IMXYALBU.js → claude-flow-setup-UA7EO6VN.js} +2 -2
- package/dist/cli/chunks/client-M72GXFVQ.js +2 -0
- package/dist/cli/chunks/{cline-installer-HWFASEGE.js → cline-installer-YDDCKKEV.js} +2 -2
- package/dist/cli/chunks/{code-3V37TCAD.js → code-URB7UAKW.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-5V54WGFL.js → code-index-extractor-BL6HWH4Q.js} +2 -2
- package/dist/cli/chunks/{codex-installer-UCA5AVE6.js → codex-installer-2AVEO4EA.js} +2 -2
- package/dist/cli/chunks/{completions-2DMRCQU6.js → completions-RCKBSSSS.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-MMQRXBTD.js → complexity-analyzer-LEDG62YK.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-FAARXP3S.js → continuedev-installer-VOTCEBFH.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-AKQALMB5.js → copilot-installer-NVTGLZX3.js} +2 -2
- package/dist/cli/chunks/core-handlers-C32RAMVI.js +2 -0
- package/dist/cli/chunks/{cost-tracker-AXWHDND5.js → cost-tracker-GJIFB2BM.js} +2 -2
- package/dist/cli/chunks/{coverage-ZLSKKCG5.js → coverage-ZTPJWXWE.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-UGFUCPKC.js +2 -0
- package/dist/cli/chunks/{cursor-installer-UALCQKVD.js → cursor-installer-CMGJQMHX.js} +2 -2
- package/dist/cli/chunks/{daemon-4LNOPJGN.js → daemon-V456IWR3.js} +8 -8
- package/dist/cli/chunks/{daemon-K3DFGCXC.js → daemon-Y2I3YVIU.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-LCQ7MYKC.js → dag-attention-scheduler-ZCBBOD3D.js} +2 -2
- package/dist/cli/chunks/{detect-P7PEN3MZ.js → detect-2GHEA4A3.js} +2 -2
- package/dist/cli/chunks/{dist-node-I72BJC2D.js → dist-node-44AGYJCH.js} +2 -2
- package/dist/cli/chunks/{domain-handler-LROF6KWN.js → domain-handler-IDLIEP6X.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-M2ZSSTPV.js → domain-transfer-KLEXGIRF.js} +2 -2
- package/dist/cli/chunks/dream-UFBBXY5W.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-MTBPUGO4.js → embed-and-insert-pattern-DUW6K35A.js} +2 -2
- package/dist/cli/chunks/{eval-O24ALB3W.js → eval-PR6YWDFM.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-7JXEOGRE.js → experience-capture-middleware-CJJJN7CF.js} +3 -3
- package/dist/cli/chunks/{fast-paths-4CFYJV4U.js → fast-paths-LGLLKX6P.js} +2 -2
- package/dist/cli/chunks/{feature-flags-CHPUA7IM.js → feature-flags-33D3I4DD.js} +2 -2
- package/dist/cli/chunks/{feature-flags-E6PIM6ZB.js → feature-flags-QL4NCEGW.js} +2 -2
- package/dist/cli/chunks/{file-discovery-2ANIAUCP.js → file-discovery-GKCYJPFZ.js} +2 -2
- package/dist/cli/chunks/{fleet-2MQ3OGCP.js → fleet-QNT6X2YI.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-P7JW3622.js → gnn-wrapper-ELSGT67Z.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-WWWZSA7V.js → heartbeat-handler-ZUI3DOOP.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-VQWHSGTY.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-BS3NXWGU.js +2 -0
- package/dist/cli/chunks/hnsw-index-JP26B4HW.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-W634ZOTV.js → hnsw-legacy-bridge-EZMM5JWL.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-SLZDLMKM.js → hnswlib-node-G4CE3EOS.js} +2 -2
- package/dist/cli/chunks/{hooks-3BFAZGG7.js → hooks-LCVXXA55.js} +10 -10
- package/dist/cli/chunks/{hypergraph-engine-XJSGXP2J.js → hypergraph-engine-6Z7RQ3HI.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-RVUWZMOX.js → hypergraph-handler-PLI2GYPK.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-WRE4CWPJ.js +2 -0
- package/dist/cli/chunks/{init-handler-FYOZNNNO.js → init-handler-7VH3QJ5Y.js} +6 -6
- package/dist/cli/chunks/init-wizard-OFOEYB75.js +2 -0
- package/dist/cli/chunks/kernel-MXNFWNUD.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-MAAKFVSB.js → kilocode-installer-U3MW62DE.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-GX3TLZC5.js → kiro-installer-PPEAC44T.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-7JE2TVKJ.js +2 -0
- package/dist/cli/chunks/{learning-T4QZ6C26.js → learning-7B5NITDV.js} +3 -3
- package/dist/cli/chunks/{llm-router-N2M4WXOC.js → llm-router-BNEPT5OB.js} +4 -4
- package/dist/cli/chunks/llm-router-service-GTDVDKSU.js +2 -0
- package/dist/cli/chunks/{load-6RU3G4P2.js → load-VO7ABNHV.js} +2 -2
- package/dist/cli/chunks/load-test-JZ4CLSBF.js +2 -0
- package/dist/cli/chunks/{mcp-EFBO7BAU.js → mcp-THXEINCL.js} +2 -2
- package/dist/cli/chunks/{memory-AXU2M3DN.js → memory-FZTT7ADM.js} +5 -5
- package/dist/cli/chunks/memory-backend-Q54CC5A5.js +2 -0
- package/dist/cli/chunks/memory-handlers-IIBJXKHZ.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-W7AFGVNH.js → multi-model-executor-HEDVOZ6X.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-KJE2RLCH.js → opencode-installer-GQ7J5SBG.js} +2 -2
- package/dist/cli/chunks/{orchestrator-CL6MLGVU.js → orchestrator-66JK2OS5.js} +5 -5
- package/dist/cli/chunks/pattern-null-store-W33O7FYO.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-7SNSJ7K2.js → pattern-usage-recorder-O6XHM2G5.js} +2 -2
- package/dist/cli/chunks/{pipeline-3UU6ON3F.js → pipeline-UOG6UO6D.js} +2 -2
- package/dist/cli/chunks/{platform-SNMPIDIT.js → platform-Q7UH7FZQ.js} +2 -2
- package/dist/cli/chunks/{plugin-65IIUUCU.js → plugin-7OFLNGOS.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-WWWJRLRP.js → prime-radiant-advanced-wasm-OSRDK2FW.js} +2 -2
- package/dist/cli/chunks/protocol-executor-VGN4M7XY.js +2 -0
- package/dist/cli/chunks/{protocol-handler-SEBHCLLJ.js → protocol-handler-WLYTX6FS.js} +2 -2
- package/dist/cli/chunks/{prove-N4X7CCJ4.js → prove-QVNE4V3J.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-7VB5LJGS.js +2 -0
- package/dist/cli/chunks/{quality-LBCJWXMU.js → quality-DNE2RKE5.js} +2 -2
- package/dist/cli/chunks/{quality-gate-KZIQI7QT.js → quality-gate-2K35GCSI.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-HIDMJMMG.js +2 -0
- package/dist/cli/chunks/{real-embeddings-XCZFHFME.js → real-embeddings-SF42ML7G.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-P3O6B7PT.js → roocode-installer-NCEZPF5L.js} +2 -2
- package/dist/cli/chunks/router-CTIJS4D7.js +2 -0
- package/dist/cli/chunks/routing-feedback-LFYYZS5J.js +2 -0
- package/dist/cli/chunks/{routing-handler-OXZ4DOV4.js → routing-handler-4MXXZRYP.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-PSY5IDSL.js → ruvector-commands-WDFMMCMK.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-MNPMIWVM.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-DXOKSSNW.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-4SUT7GTJ.js → rvf-migration-coordinator-JT7ZCJY7.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-PZKUKA7R.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-TCKC22FH.js → rvf-store-integrity-Q3FGYKFT.js} +2 -2
- package/dist/cli/chunks/safe-db-73BLFV2C.js +2 -0
- package/dist/cli/chunks/schedule-YVTGTTI4.js +2 -0
- package/dist/cli/chunks/scheduler-5DSAFIRQ.js +2 -0
- package/dist/cli/chunks/security-CJJ3WJSB.js +13 -0
- package/dist/cli/chunks/{shared-rvf-adapter-ZJFN52C2.js → shared-rvf-adapter-6RGCTLHD.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-V2R37HWV.js → shared-rvf-dual-writer-KIA6Q6MT.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-LRG4IPCU.js +2 -0
- package/dist/cli/chunks/{status-handler-XEKWNVDR.js → status-handler-BADQV2KA.js} +2 -2
- package/dist/cli/chunks/{structural-health-QMIW6WUN.js → structural-health-VMYEYRZG.js} +2 -2
- package/dist/cli/chunks/{sync-H5SXWXPP.js → sync-PXLROLHB.js} +2 -2
- package/dist/cli/chunks/{sync-GDYJ2ULT.js → sync-ULY7T5II.js} +2 -2
- package/dist/cli/chunks/{task-handler-EPLKCQHY.js → task-handler-L7E2I267.js} +2 -2
- package/dist/cli/chunks/{task-handlers-22NTLWTC.js → task-handlers-6DPKE4AK.js} +3 -3
- package/dist/cli/chunks/{test-WHJFRZ3F.js → test-WCLURQUT.js} +11 -11
- package/dist/cli/chunks/test-scheduling-4CNJA6TW.js +15 -0
- package/dist/cli/chunks/{token-bootstrap-BW5WA6PY.js → token-bootstrap-GTI24JAL.js} +2 -2
- package/dist/cli/chunks/{token-usage-4A4O57R6.js → token-usage-DRVG6PKO.js} +2 -2
- package/dist/cli/chunks/{transformers-FYTBRV46.js → transformers-IMDDAMYQ.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-TZIJPLF3.js → tree-sitter-wasm-parser-WBZIHVFA.js} +2 -2
- package/dist/cli/chunks/{types-B2L6LKFA.js → types-TXMY5M2K.js} +2 -2
- package/dist/cli/chunks/unified-memory-VBQ572X4.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-J3L74ZRY.js +2 -0
- package/dist/cli/chunks/unified-persistence-EM2VYRTQ.js +2 -0
- package/dist/cli/chunks/{upgrade-O6U7EA7V.js → upgrade-6ALSDWDD.js} +2 -2
- package/dist/cli/chunks/{validate-FHNZ5XL3.js → validate-XF4ZG3LC.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-YOLLUEHE.js → validate-swarm-P5TAFRDA.js} +2 -2
- package/dist/cli/chunks/{vibium-UXRPEIXB.js → vibium-2XDXKNKZ.js} +2 -2
- package/dist/cli/chunks/visual-security-GX4S7K6O.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-JJ5UIYFD.js → web-tree-sitter-4JVRQPX5.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-I4QMQPIL.js → windsurf-installer-WYJXVDO5.js} +2 -2
- package/dist/cli/chunks/witness-chain-QGKMHCNW.js +2 -0
- package/dist/cli/chunks/{witness-chain-BIJ7WDGS.js → witness-chain-RPZ2SE2V.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-3SMMLJLP.js → witness-key-manager-LXG2VBQQ.js} +2 -2
- package/dist/cli/chunks/{workflow-33PUXXJV.js → workflow-2OYNO7UU.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-KWHIJMFV.js +2 -0
- package/dist/cli/chunks/{wrappers-ASAU36VK.js → wrappers-DIJNNFU6.js} +2 -2
- package/dist/cli/commands/daemon.js +3 -0
- package/dist/cli/commands/security.js +167 -100
- package/dist/cli/commands/test.js +1 -0
- package/dist/cli/foreground-command.d.ts +3 -0
- package/dist/cli/foreground-command.js +22 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/utils/ci-output.d.ts +17 -0
- package/dist/cli/utils/ci-output.js +34 -2
- package/dist/coordination/handlers/handler-types.d.ts +3 -0
- package/dist/coordination/handlers/quality-handlers.js +10 -0
- package/dist/coordination/handlers/security-handlers.js +168 -72
- package/dist/coordination/handlers/test-execution-handlers.js +37 -43
- package/dist/coordination/protocols/security-audit.d.ts +3 -0
- package/dist/coordination/protocols/security-audit.js +61 -39
- package/dist/coordination/result-saver.js +36 -5
- package/dist/coordination/task-executor.d.ts +3 -1
- package/dist/coordination/task-executor.js +4 -0
- package/dist/domains/security-compliance/interfaces.d.ts +5 -0
- package/dist/domains/security-compliance/interfaces.js +0 -6
- package/dist/domains/security-compliance/scan-discovery.d.ts +12 -0
- package/dist/domains/security-compliance/scan-discovery.js +105 -0
- package/dist/domains/security-compliance/scan-evidence.d.ts +57 -0
- package/dist/domains/security-compliance/scan-evidence.js +2 -0
- package/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts +3 -2
- package/dist/domains/security-compliance/services/scanners/sast-scanner.js +109 -65
- package/dist/domains/security-compliance/services/semgrep-integration.d.ts +9 -2
- package/dist/domains/security-compliance/services/semgrep-integration.js +68 -20
- package/dist/domains/test-execution/services/flaky-detector.js +14 -3
- package/dist/domains/test-execution/services/retry-handler.js +18 -8
- package/dist/domains/test-execution/services/test-executor.js +46 -12
- package/dist/init/init-wizard-hooks.js +2 -2
- package/dist/integrations/agentic-flow/reasoning-bank/index.js +3 -20
- package/dist/integrations/coherence/engines/cohomology-adapter.js +100 -30
- package/dist/mcp/bundle.js +499 -478
- package/dist/mcp/handlers/domain-handler-configs.d.ts +22 -1
- package/dist/mcp/handlers/domain-handler-configs.js +50 -19
- package/dist/mcp/handlers/domain-handlers.d.ts +7 -5
- package/dist/mcp/handlers/domain-handlers.js +7 -5
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/protocol-server.js +20 -7
- package/dist/mcp/qe-tool-bridge.js +1 -0
- package/dist/mcp/tool-annotations.d.ts +25 -0
- package/dist/mcp/tool-annotations.js +75 -0
- package/dist/mcp/tool-registry.js +17 -12
- package/dist/mcp/tools/base.d.ts +7 -1
- package/dist/mcp/tools/base.js +8 -0
- package/dist/mcp/tools/registry.d.ts +3 -0
- package/dist/mcp/tools/registry.js +1 -0
- package/dist/mcp/types.d.ts +20 -0
- package/dist/shared/llm/router/hybrid-router.d.ts +4 -0
- package/dist/shared/llm/router/hybrid-router.js +74 -26
- package/dist/shared/llm/router/types.d.ts +9 -2
- package/dist/shared/test-runner-verdict.d.ts +29 -0
- package/dist/shared/test-runner-verdict.js +43 -0
- package/dist/shared/vitest-json-report.d.ts +45 -0
- package/dist/shared/vitest-json-report.js +71 -0
- package/dist/test-scheduling/executors/vitest-executor.js +18 -6
- package/dist/validation/frontier-judge.d.ts +7 -4
- package/dist/validation/frontier-judge.js +11 -6
- package/package.json +8 -7
- package/dist/cli/chunks/adapter-I2N7PEKG.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-U4ALUH6A.js +0 -2
- package/dist/cli/chunks/base-RCYIBNHM.js +0 -2
- package/dist/cli/chunks/browser-workflow-L6TDB5O5.js +0 -2
- package/dist/cli/chunks/chunk-CGZ7LTUK.js +0 -2
- package/dist/cli/chunks/chunk-H5LSXVWY.js +0 -5
- package/dist/cli/chunks/chunk-QAE4BOIV.js +0 -2
- package/dist/cli/chunks/chunk-RXHI6CKK.js +0 -81
- package/dist/cli/chunks/chunk-YXN47QOI.js +0 -2
- package/dist/cli/chunks/ci-output-MD5GTVR2.js +0 -2
- package/dist/cli/chunks/client-L4PIXCGV.js +0 -2
- package/dist/cli/chunks/core-handlers-KROSXP4V.js +0 -2
- package/dist/cli/chunks/cross-domain-router-WMTYBOON.js +0 -2
- package/dist/cli/chunks/dream-AV63YQ2Y.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-5IZUGMC2.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-NV2NNBJL.js +0 -2
- package/dist/cli/chunks/hnsw-index-GRJ3KA2O.js +0 -2
- package/dist/cli/chunks/impact-analyzer-YM4QUWVH.js +0 -2
- package/dist/cli/chunks/init-wizard-YESXGIK6.js +0 -2
- package/dist/cli/chunks/kernel-VH5SKESU.js +0 -2
- package/dist/cli/chunks/knowledge-graph-F3NL4WJV.js +0 -2
- package/dist/cli/chunks/llm-router-service-HQYCJMPK.js +0 -2
- package/dist/cli/chunks/load-test-GWRGKWMN.js +0 -2
- package/dist/cli/chunks/memory-backend-7A2PFKPV.js +0 -2
- package/dist/cli/chunks/memory-handlers-65CXN76C.js +0 -2
- package/dist/cli/chunks/pattern-null-store-K2WPRYCP.js +0 -2
- package/dist/cli/chunks/protocol-executor-TJDLEHND.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-CGRMFPDM.js +0 -2
- package/dist/cli/chunks/queen-coordinator-FKP6QZAQ.js +0 -2
- package/dist/cli/chunks/router-KZ5BISAM.js +0 -2
- package/dist/cli/chunks/routing-feedback-O4Y5TTR6.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-NG3UF3D5.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-PUHVTKQY.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-ODXFKZ6G.js +0 -2
- package/dist/cli/chunks/safe-db-BUQDNH2R.js +0 -2
- package/dist/cli/chunks/schedule-ZXNDZNNB.js +0 -2
- package/dist/cli/chunks/scheduler-YUQQWWW3.js +0 -2
- package/dist/cli/chunks/security-RQGUQGSI.js +0 -14
- package/dist/cli/chunks/sqlite-persistence-HVSX46C7.js +0 -2
- package/dist/cli/chunks/test-scheduling-KZVFZOQN.js +0 -15
- package/dist/cli/chunks/unified-memory-AHN4RVBP.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-XB7JPF74.js +0 -2
- package/dist/cli/chunks/unified-persistence-53KWNFQJ.js +0 -2
- package/dist/cli/chunks/visual-security-CRPYS7L7.js +0 -2
- package/dist/cli/chunks/witness-chain-5WCR2CAS.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-RZWCLTT5.js +0 -2
|
@@ -139,8 +139,11 @@ export class HybridRouter {
|
|
|
139
139
|
async selectProvider(params) {
|
|
140
140
|
await this.ensureInitialized();
|
|
141
141
|
const startTime = Date.now();
|
|
142
|
+
// Strict requests carry their own execution identity. They must neither
|
|
143
|
+
// consume an ordinary cached decision nor replace one used by other callers.
|
|
144
|
+
const cacheDecision = this.config.cacheDecisions && !params.strictModel;
|
|
142
145
|
// Check cache first
|
|
143
|
-
if (
|
|
146
|
+
if (cacheDecision) {
|
|
144
147
|
const cacheKey = this.generateCacheKey(params);
|
|
145
148
|
const cached = this.decisionCache.get(cacheKey);
|
|
146
149
|
if (cached) {
|
|
@@ -152,26 +155,31 @@ export class HybridRouter {
|
|
|
152
155
|
this.routerMetrics.recordCacheMiss();
|
|
153
156
|
}
|
|
154
157
|
let decision;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
158
|
+
if (params.strictModel) {
|
|
159
|
+
decision = this.selectStrict(params);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
switch (this.config.mode) {
|
|
163
|
+
case 'manual':
|
|
164
|
+
decision = await this.selectManual(params);
|
|
165
|
+
break;
|
|
166
|
+
case 'rule-based':
|
|
167
|
+
decision = await this.selectRuleBased(params);
|
|
168
|
+
break;
|
|
169
|
+
case 'cost-optimized':
|
|
170
|
+
decision = await this.selectCostOptimized(params);
|
|
171
|
+
break;
|
|
172
|
+
case 'performance-optimized':
|
|
173
|
+
decision = await this.selectPerformanceOptimized(params);
|
|
174
|
+
break;
|
|
175
|
+
default:
|
|
176
|
+
decision = await this.selectRuleBased(params);
|
|
177
|
+
}
|
|
170
178
|
}
|
|
171
179
|
// Update decision time
|
|
172
180
|
decision.metadata.decisionTimeMs = Date.now() - startTime;
|
|
173
181
|
// Cache the decision
|
|
174
|
-
if (
|
|
182
|
+
if (cacheDecision) {
|
|
175
183
|
const cacheKey = this.generateCacheKey(params);
|
|
176
184
|
this.decisionCache.set(cacheKey, decision);
|
|
177
185
|
}
|
|
@@ -194,6 +202,9 @@ export class HybridRouter {
|
|
|
194
202
|
// applies the same pin independently for advisor escalations.
|
|
195
203
|
const agentName = params.agentType ?? '';
|
|
196
204
|
if (shouldCyberPin(agentName) && (isOpus47(decision.model) || isOpus47(decision.providerModelId))) {
|
|
205
|
+
if (params.strictModel) {
|
|
206
|
+
throw createLLMError(`Strict model request for ${decision.model} conflicts with the cyber verification pin for ${agentName}`, 'MODEL_NOT_FOUND', { provider: decision.providerType, model: decision.model, retryable: false });
|
|
207
|
+
}
|
|
197
208
|
const originalModel = decision.model;
|
|
198
209
|
const originalProviderModelId = decision.providerModelId;
|
|
199
210
|
decision.model = applyCyberPin(agentName, decision.model, CYBER_PIN_CHAT_FALLBACK);
|
|
@@ -313,6 +324,18 @@ export class HybridRouter {
|
|
|
313
324
|
// ============================================================================
|
|
314
325
|
// Provider Selection Methods
|
|
315
326
|
// ============================================================================
|
|
327
|
+
/** Select an explicitly pinned model without rules, shared cache, or fallback. */
|
|
328
|
+
selectStrict(params) {
|
|
329
|
+
if (!params.model?.trim()) {
|
|
330
|
+
throw createLLMError('strictModel requires an explicit nonempty model', 'MODEL_NOT_FOUND', { retryable: false });
|
|
331
|
+
}
|
|
332
|
+
const providerType = (params.preferredProvider ?? this.config.defaultProvider);
|
|
333
|
+
const provider = this.providerManager.getProvider(providerType);
|
|
334
|
+
if (!provider) {
|
|
335
|
+
throw createLLMError(`Strict model provider ${providerType} is unavailable`, 'PROVIDER_UNAVAILABLE', { provider: providerType, model: params.model, retryable: false });
|
|
336
|
+
}
|
|
337
|
+
return this.createDecision(provider, providerType, params.model, 'manual');
|
|
338
|
+
}
|
|
316
339
|
/**
|
|
317
340
|
* Manual selection - use preferredProvider or default
|
|
318
341
|
*/
|
|
@@ -452,7 +475,7 @@ export class HybridRouter {
|
|
|
452
475
|
// surfaced by the rule-based E2E test in
|
|
453
476
|
// tests/e2e/llm-router-real-providers.test.ts.
|
|
454
477
|
const defaultProviderType = this.config.defaultProvider;
|
|
455
|
-
if (defaultProviderType && defaultProviderType !== decision.providerType) {
|
|
478
|
+
if (!params.strictModel && defaultProviderType && defaultProviderType !== decision.providerType) {
|
|
456
479
|
executionOrder.push({
|
|
457
480
|
provider: defaultProviderType,
|
|
458
481
|
model: this.config.defaultModel,
|
|
@@ -464,13 +487,15 @@ export class HybridRouter {
|
|
|
464
487
|
// openrouter/gemini/azure-openai/bedrock from ADR-043) and
|
|
465
488
|
// ProviderManager.createProvider() builds all of them. The narrower
|
|
466
489
|
// list silently excluded users' actual fallback providers.
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
490
|
+
if (!params.strictModel) {
|
|
491
|
+
for (const entry of fallbackChain.entries) {
|
|
492
|
+
if (!entry.enabled)
|
|
493
|
+
continue;
|
|
494
|
+
if (entry.provider === decision.providerType)
|
|
495
|
+
continue;
|
|
496
|
+
for (const model of entry.models) {
|
|
497
|
+
executionOrder.push({ provider: entry.provider, model });
|
|
498
|
+
}
|
|
474
499
|
}
|
|
475
500
|
}
|
|
476
501
|
// Capability-aware guard: when the request needs tools, drop any candidate
|
|
@@ -520,6 +545,17 @@ export class HybridRouter {
|
|
|
520
545
|
// ADR-123: persist the charge to the cross-process ledger so budgets
|
|
521
546
|
// hold across a fleet of processes. ADR-124 M2.3: attribute to the agent.
|
|
522
547
|
this.providerManager.recordResponseSpend(response, params.agentType);
|
|
548
|
+
// A provider can return an unexpected model even when its request was
|
|
549
|
+
// pinned. Account for the completed call, but do not accept that answer
|
|
550
|
+
// as evidence from the requested model (e.g. a frontier quality judge).
|
|
551
|
+
if (params.strictModel) {
|
|
552
|
+
if (response.provider !== providerType) {
|
|
553
|
+
throw createLLMError(`Strict model provider mismatch: expected ${providerType}, received ${response.provider}`, 'PROVIDER_UNAVAILABLE', { provider: providerType, model, retryable: false });
|
|
554
|
+
}
|
|
555
|
+
if (!this.isSameModel(decision.model, response.model)) {
|
|
556
|
+
throw createLLMError(`Strict model mismatch: expected ${decision.model}, received ${response.model}`, 'MODEL_NOT_FOUND', { provider: providerType, model, retryable: false });
|
|
557
|
+
}
|
|
558
|
+
}
|
|
523
559
|
const callLatency = Date.now() - callStartTime;
|
|
524
560
|
// Record success in legacy tracker
|
|
525
561
|
this.metrics.recordSuccess(providerType);
|
|
@@ -585,7 +621,7 @@ export class HybridRouter {
|
|
|
585
621
|
// delay (because no need to wait) but DOES continue to the next
|
|
586
622
|
// entry in executionOrder. Only retryable errors get the delay.
|
|
587
623
|
const nonRetryable = isLLMError(error) && !error.retryable;
|
|
588
|
-
if (!nonRetryable && attempts < fallbackBehavior.maxAttempts) {
|
|
624
|
+
if (!params.strictModel && !nonRetryable && attempts < fallbackBehavior.maxAttempts) {
|
|
589
625
|
await this.delay(fallbackBehavior.delayMs);
|
|
590
626
|
}
|
|
591
627
|
}
|
|
@@ -595,6 +631,18 @@ export class HybridRouter {
|
|
|
595
631
|
// ============================================================================
|
|
596
632
|
// Helper Methods
|
|
597
633
|
// ============================================================================
|
|
634
|
+
/** Compare identity independently of the API transport hosting the model. */
|
|
635
|
+
isSameModel(expected, actual) {
|
|
636
|
+
if (expected === actual)
|
|
637
|
+
return true;
|
|
638
|
+
try {
|
|
639
|
+
return normalizeModelId(expected) === normalizeModelId(actual);
|
|
640
|
+
}
|
|
641
|
+
catch {
|
|
642
|
+
// Unregistered model IDs are only equivalent when they match exactly.
|
|
643
|
+
return false;
|
|
644
|
+
}
|
|
645
|
+
}
|
|
598
646
|
/**
|
|
599
647
|
* Create a routing decision with proper model ID normalization (ADR-043)
|
|
600
648
|
*/
|
|
@@ -686,9 +686,16 @@ export interface ChatParams {
|
|
|
686
686
|
agentType?: string;
|
|
687
687
|
/** Task complexity hint */
|
|
688
688
|
complexity?: TaskComplexity;
|
|
689
|
-
/** Specific model to use (for manual mode) - canonical or provider-specific ID */
|
|
689
|
+
/** Specific model to use (for manual mode or strictModel) - canonical or provider-specific ID */
|
|
690
690
|
model?: string;
|
|
691
|
-
/**
|
|
691
|
+
/**
|
|
692
|
+
* Require the explicit model on preferredProvider (or the configured default).
|
|
693
|
+
* Bypasses routing rules and decision caching, disallows provider/model
|
|
694
|
+
* fallback, and rejects responses from a different provider or model.
|
|
695
|
+
* Equivalent canonical and provider-specific model IDs are accepted.
|
|
696
|
+
*/
|
|
697
|
+
strictModel?: boolean;
|
|
698
|
+
/** Preferred provider (for manual mode or strictModel) - supports extended providers */
|
|
692
699
|
preferredProvider?: ExtendedProviderType;
|
|
693
700
|
/** Required capabilities (legacy) */
|
|
694
701
|
requiredCapabilities?: string[];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** A runner or suite error is not an assertion result. */
|
|
2
|
+
export declare class TestRunnerExecutionError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
interface RunnerCounts {
|
|
6
|
+
passed: number;
|
|
7
|
+
failed: number;
|
|
8
|
+
skipped: number;
|
|
9
|
+
}
|
|
10
|
+
interface RunnerReport {
|
|
11
|
+
success?: boolean;
|
|
12
|
+
numFailedTestSuites?: number;
|
|
13
|
+
numRuntimeErrorTestSuites?: number;
|
|
14
|
+
testResults?: Array<{
|
|
15
|
+
status?: string;
|
|
16
|
+
message?: string;
|
|
17
|
+
assertionResults?: Array<{
|
|
18
|
+
status?: string;
|
|
19
|
+
}>;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Preserve ordinary assertion failures, but reject incomplete/failed execution
|
|
24
|
+
* that assertion counts cannot represent. Process status is authoritative even
|
|
25
|
+
* when a runner emits success=true (for example, Vitest unhandled rejections).
|
|
26
|
+
*/
|
|
27
|
+
export declare function getTestRunnerExecutionError(runner: string, files: string, exitCode: number | null, counts: RunnerCounts, output: string, report?: RunnerReport): TestRunnerExecutionError | undefined;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=test-runner-verdict.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** A runner or suite error is not an assertion result. */
|
|
2
|
+
export class TestRunnerExecutionError extends Error {
|
|
3
|
+
constructor(message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = 'TestRunnerExecutionError';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Preserve ordinary assertion failures, but reject incomplete/failed execution
|
|
10
|
+
* that assertion counts cannot represent. Process status is authoritative even
|
|
11
|
+
* when a runner emits success=true (for example, Vitest unhandled rejections).
|
|
12
|
+
*/
|
|
13
|
+
export function getTestRunnerExecutionError(runner, files, exitCode, counts, output, report) {
|
|
14
|
+
const suites = report?.testResults ?? [];
|
|
15
|
+
const suiteErrors = suites.filter(suite => suite.status === 'failed' && (
|
|
16
|
+
// Jest also uses message for ordinary assertion failures; Vitest reserves
|
|
17
|
+
// it for suite errors such as collection and afterAll failures.
|
|
18
|
+
(runner === 'vitest' && suite.message)
|
|
19
|
+
|| !suite.assertionResults?.some(assertion => assertion.status === 'failed')));
|
|
20
|
+
let reason;
|
|
21
|
+
if (exitCode === null) {
|
|
22
|
+
reason = 'terminated without an exit code';
|
|
23
|
+
}
|
|
24
|
+
else if (counts.passed + counts.failed + counts.skipped === 0) {
|
|
25
|
+
reason = 'reported zero tests';
|
|
26
|
+
}
|
|
27
|
+
else if (suiteErrors.length > 0 || (report?.numRuntimeErrorTestSuites ?? 0) > 0
|
|
28
|
+
|| ((report?.numFailedTestSuites ?? 0) > 0 && counts.failed === 0)) {
|
|
29
|
+
reason = 'reported a suite execution error';
|
|
30
|
+
}
|
|
31
|
+
else if ((exitCode !== 0 || report?.success === false) && counts.failed === 0) {
|
|
32
|
+
reason = 'failed without a failed assertion';
|
|
33
|
+
}
|
|
34
|
+
if (!reason)
|
|
35
|
+
return undefined;
|
|
36
|
+
const diagnostics = [
|
|
37
|
+
...suiteErrors.map(suite => suite.message).filter(Boolean),
|
|
38
|
+
output.trim(),
|
|
39
|
+
].filter(Boolean).join('\n').slice(0, 4000);
|
|
40
|
+
return new TestRunnerExecutionError(`${runner} ${reason} for ${files} (exit code ${exitCode ?? 'unknown'}).` +
|
|
41
|
+
(diagnostics ? `\n${diagnostics}` : ''));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=test-runner-verdict.js.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vitest JSON report handling that works on Vitest 4 and 5.
|
|
3
|
+
*
|
|
4
|
+
* Vitest 5 no longer prints the `--reporter=json` document to stdout; it
|
|
5
|
+
* writes `.vitest/json/output.json` and prints only
|
|
6
|
+
* `JSON report written to <path>`. Vitest 4 prints the document to stdout
|
|
7
|
+
* unless `--outputFile` is given, in which case it behaves like Vitest 5.
|
|
8
|
+
*
|
|
9
|
+
* Passing an explicit `--outputFile` therefore gives one contract on both
|
|
10
|
+
* majors: the report is always in a file we own. Every runner integration
|
|
11
|
+
* that spawns `vitest run --reporter=json` must go through this module
|
|
12
|
+
* instead of parsing stdout directly.
|
|
13
|
+
*/
|
|
14
|
+
export interface VitestJsonReport {
|
|
15
|
+
/** Absolute path the report will be written to. */
|
|
16
|
+
readonly path: string;
|
|
17
|
+
/** CLI arguments to append to `vitest run --reporter=json`. */
|
|
18
|
+
readonly args: readonly string[];
|
|
19
|
+
/**
|
|
20
|
+
* Return the text that carries the JSON document: the report file when the
|
|
21
|
+
* runner wrote one, otherwise the captured stdout (older runners, or a run
|
|
22
|
+
* that died before reporting).
|
|
23
|
+
*/
|
|
24
|
+
read(stdout: string): string;
|
|
25
|
+
/** Remove the temporary report directory. Safe to call more than once. */
|
|
26
|
+
cleanup(): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the JSON document text for a finished Vitest run.
|
|
30
|
+
* Exported separately so the precedence rule is unit-testable without spawning.
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveVitestJsonOutput(stdout: string, reportPath: string | undefined): string;
|
|
33
|
+
/**
|
|
34
|
+
* Create a per-run report location. The directory is unique per call so
|
|
35
|
+
* concurrent runs never read each other's output.
|
|
36
|
+
*/
|
|
37
|
+
export declare function createVitestJsonReport(): VitestJsonReport;
|
|
38
|
+
/**
|
|
39
|
+
* True when a command vector (runner command plus arguments) is a
|
|
40
|
+
* `vitest ... --reporter=json` invocation that has not already been given an
|
|
41
|
+
* output file. Pass the runner command as the first element when the caller
|
|
42
|
+
* configures it separately (for example `testRunner: 'vitest'`).
|
|
43
|
+
*/
|
|
44
|
+
export declare function needsVitestJsonReportFile(args: readonly string[]): boolean;
|
|
45
|
+
//# sourceMappingURL=vitest-json-report.d.ts.map
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vitest JSON report handling that works on Vitest 4 and 5.
|
|
3
|
+
*
|
|
4
|
+
* Vitest 5 no longer prints the `--reporter=json` document to stdout; it
|
|
5
|
+
* writes `.vitest/json/output.json` and prints only
|
|
6
|
+
* `JSON report written to <path>`. Vitest 4 prints the document to stdout
|
|
7
|
+
* unless `--outputFile` is given, in which case it behaves like Vitest 5.
|
|
8
|
+
*
|
|
9
|
+
* Passing an explicit `--outputFile` therefore gives one contract on both
|
|
10
|
+
* majors: the report is always in a file we own. Every runner integration
|
|
11
|
+
* that spawns `vitest run --reporter=json` must go through this module
|
|
12
|
+
* instead of parsing stdout directly.
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, mkdtempSync, readFileSync, rmSync } from 'node:fs';
|
|
15
|
+
import { tmpdir } from 'node:os';
|
|
16
|
+
import { join } from 'node:path';
|
|
17
|
+
/**
|
|
18
|
+
* Resolve the JSON document text for a finished Vitest run.
|
|
19
|
+
* Exported separately so the precedence rule is unit-testable without spawning.
|
|
20
|
+
*/
|
|
21
|
+
export function resolveVitestJsonOutput(stdout, reportPath) {
|
|
22
|
+
if (reportPath && existsSync(reportPath)) {
|
|
23
|
+
try {
|
|
24
|
+
const content = readFileSync(reportPath, 'utf-8');
|
|
25
|
+
if (content.trim().length > 0)
|
|
26
|
+
return content;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// Unreadable report: fall back to stdout below.
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return stdout;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a per-run report location. The directory is unique per call so
|
|
36
|
+
* concurrent runs never read each other's output.
|
|
37
|
+
*/
|
|
38
|
+
export function createVitestJsonReport() {
|
|
39
|
+
const dir = mkdtempSync(join(tmpdir(), 'aqe-vitest-report-'));
|
|
40
|
+
const path = join(dir, 'report.json');
|
|
41
|
+
let cleaned = false;
|
|
42
|
+
return {
|
|
43
|
+
path,
|
|
44
|
+
args: [`--outputFile=${path}`],
|
|
45
|
+
read: (stdout) => resolveVitestJsonOutput(stdout, path),
|
|
46
|
+
cleanup: () => {
|
|
47
|
+
if (cleaned)
|
|
48
|
+
return;
|
|
49
|
+
cleaned = true;
|
|
50
|
+
try {
|
|
51
|
+
rmSync(dir, { recursive: true, force: true });
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Best effort: a leftover temp dir is not worth failing a test run over.
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* True when a command vector (runner command plus arguments) is a
|
|
61
|
+
* `vitest ... --reporter=json` invocation that has not already been given an
|
|
62
|
+
* output file. Pass the runner command as the first element when the caller
|
|
63
|
+
* configures it separately (for example `testRunner: 'vitest'`).
|
|
64
|
+
*/
|
|
65
|
+
export function needsVitestJsonReportFile(args) {
|
|
66
|
+
const isVitest = args.some(arg => /(^|[\\/])vitest(\.cmd|\.js|\.mjs)?$/i.test(arg));
|
|
67
|
+
const jsonReporter = args.some((arg, i) => arg === '--reporter=json' || (arg === '--reporter' && args[i + 1] === 'json'));
|
|
68
|
+
const hasOutputFile = args.some(arg => arg.startsWith('--outputFile'));
|
|
69
|
+
return isVitest && jsonReporter && !hasOutputFile;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=vitest-json-report.js.map
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { spawn } from 'child_process';
|
|
8
8
|
import { safeJsonParse } from '../../shared/safe-json.js';
|
|
9
|
+
import { createVitestJsonReport } from '../../shared/vitest-json-report.js';
|
|
9
10
|
// ============================================================================
|
|
10
11
|
// Vitest Executor Implementation
|
|
11
12
|
// ============================================================================
|
|
@@ -95,16 +96,27 @@ export class VitestPhaseExecutor {
|
|
|
95
96
|
return args;
|
|
96
97
|
}
|
|
97
98
|
async runVitest(args, timeoutMs) {
|
|
98
|
-
|
|
99
|
-
//
|
|
99
|
+
// Vitest 5 writes --reporter=json output to a file instead of stdout; an
|
|
100
|
+
// explicit --outputFile gives Vitest 4 and 5 the same contract.
|
|
101
|
+
const report = createVitestJsonReport();
|
|
102
|
+
let document;
|
|
103
|
+
let exitCode;
|
|
100
104
|
try {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
const run = await this.runCommand(this.config.vitestPath || 'npx', [...args, ...report.args], timeoutMs);
|
|
106
|
+
exitCode = run.exitCode;
|
|
107
|
+
document = report.read(run.stdout);
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
report.cleanup();
|
|
111
|
+
}
|
|
112
|
+
// Parse JSON report from Vitest
|
|
113
|
+
try {
|
|
114
|
+
const jsonStart = document.indexOf('{');
|
|
115
|
+
const jsonEnd = document.lastIndexOf('}');
|
|
104
116
|
if (jsonStart === -1 || jsonEnd === -1) {
|
|
105
117
|
throw new Error('No JSON output from Vitest');
|
|
106
118
|
}
|
|
107
|
-
const jsonStr =
|
|
119
|
+
const jsonStr = document.slice(jsonStart, jsonEnd + 1);
|
|
108
120
|
return safeJsonParse(jsonStr);
|
|
109
121
|
}
|
|
110
122
|
catch (parseError) {
|
|
@@ -53,8 +53,10 @@ export declare function createFrontierJudge(opts: FrontierJudgeOptions): Judge;
|
|
|
53
53
|
/**
|
|
54
54
|
* Build a `complete()` seam backed by the shared HybridRouter, pinned to a
|
|
55
55
|
* frontier model. This is where the ADR-111 "never economize the oracle" rule is
|
|
56
|
-
* enforced: `model` defaults to a frontier Opus and
|
|
57
|
-
*
|
|
56
|
+
* enforced: `model` defaults to a frontier Opus and strict per-request routing
|
|
57
|
+
* prevents shared routing rules or fallback from substituting another model.
|
|
58
|
+
* `preferredProvider` selects a provider explicitly; otherwise the configured
|
|
59
|
+
* default is used. An unavailable or mismatched judge stays inconclusive.
|
|
58
60
|
*/
|
|
59
61
|
export declare function routerComplete(router: HybridRouter, opts?: {
|
|
60
62
|
model?: string;
|
|
@@ -90,8 +92,9 @@ export declare function buildGradePrompt(artifact: string, checklist: Requiremen
|
|
|
90
92
|
/**
|
|
91
93
|
* Parse the model response into a set of 0-based unmet requirement indices.
|
|
92
94
|
* Returns `null` when the response cannot be parsed into the strict contract
|
|
93
|
-
* (so the caller treats it as a non-real opinion).
|
|
94
|
-
*
|
|
95
|
+
* (so the caller treats it as a non-real opinion). Invalid and duplicate entries
|
|
96
|
+
* are ignored when valid indices remain. A nonempty list with no valid indices
|
|
97
|
+
* is unparseable, not evidence that every requirement is met.
|
|
95
98
|
*/
|
|
96
99
|
export declare function parseUnmetIndices(raw: string, total: number): Set<number> | null;
|
|
97
100
|
/** Reject with a timeout error if `p` does not settle within `ms`. */
|
|
@@ -80,8 +80,10 @@ export function createFrontierJudge(opts) {
|
|
|
80
80
|
/**
|
|
81
81
|
* Build a `complete()` seam backed by the shared HybridRouter, pinned to a
|
|
82
82
|
* frontier model. This is where the ADR-111 "never economize the oracle" rule is
|
|
83
|
-
* enforced: `model` defaults to a frontier Opus and
|
|
84
|
-
*
|
|
83
|
+
* enforced: `model` defaults to a frontier Opus and strict per-request routing
|
|
84
|
+
* prevents shared routing rules or fallback from substituting another model.
|
|
85
|
+
* `preferredProvider` selects a provider explicitly; otherwise the configured
|
|
86
|
+
* default is used. An unavailable or mismatched judge stays inconclusive.
|
|
85
87
|
*/
|
|
86
88
|
export function routerComplete(router, opts = {}) {
|
|
87
89
|
const model = opts.model ?? DEFAULT_OPUS_MODEL;
|
|
@@ -89,6 +91,7 @@ export function routerComplete(router, opts = {}) {
|
|
|
89
91
|
const res = await router.chat({
|
|
90
92
|
messages: [{ role: 'user', content: prompt }],
|
|
91
93
|
model,
|
|
94
|
+
strictModel: true,
|
|
92
95
|
preferredProvider: opts.preferredProvider,
|
|
93
96
|
temperature: opts.temperature ?? 0,
|
|
94
97
|
maxTokens: opts.maxTokens ?? 1024,
|
|
@@ -154,16 +157,18 @@ export function buildGradePrompt(artifact, checklist) {
|
|
|
154
157
|
/**
|
|
155
158
|
* Parse the model response into a set of 0-based unmet requirement indices.
|
|
156
159
|
* Returns `null` when the response cannot be parsed into the strict contract
|
|
157
|
-
* (so the caller treats it as a non-real opinion).
|
|
158
|
-
*
|
|
160
|
+
* (so the caller treats it as a non-real opinion). Invalid and duplicate entries
|
|
161
|
+
* are ignored when valid indices remain. A nonempty list with no valid indices
|
|
162
|
+
* is unparseable, not evidence that every requirement is met.
|
|
159
163
|
*/
|
|
160
164
|
export function parseUnmetIndices(raw, total) {
|
|
161
165
|
const obj = extractJsonObject(raw);
|
|
162
166
|
if (obj == null || !Array.isArray(obj.unmet)) {
|
|
163
167
|
return null;
|
|
164
168
|
}
|
|
169
|
+
const unmet = obj.unmet;
|
|
165
170
|
const out = new Set();
|
|
166
|
-
for (const v of
|
|
171
|
+
for (const v of unmet) {
|
|
167
172
|
const n = typeof v === 'number' ? v : typeof v === 'string' ? Number(v.trim()) : NaN;
|
|
168
173
|
if (!Number.isInteger(n))
|
|
169
174
|
continue;
|
|
@@ -171,7 +176,7 @@ export function parseUnmetIndices(raw, total) {
|
|
|
171
176
|
if (idx >= 0 && idx < total)
|
|
172
177
|
out.add(idx);
|
|
173
178
|
}
|
|
174
|
-
return out;
|
|
179
|
+
return unmet.length > 0 && out.size === 0 ? null : out;
|
|
175
180
|
}
|
|
176
181
|
/** Extract the first balanced top-level JSON object from arbitrary model text. */
|
|
177
182
|
function extractJsonObject(raw) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-qe",
|
|
3
|
-
"version": "3.14.
|
|
3
|
+
"version": "3.14.3",
|
|
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",
|
|
@@ -83,7 +83,7 @@
|
|
|
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/**'",
|
|
85
85
|
"test:e2e": "vitest run tests/integration/browser --testTimeout=120000",
|
|
86
|
-
"test:safe": "NODE_OPTIONS='--max-old-space-size=768 --expose-gc' vitest run --
|
|
86
|
+
"test:safe": "NODE_OPTIONS='--max-old-space-size=768 --expose-gc' vitest run --maxWorkers=1",
|
|
87
87
|
"test:dev": "npm run test:unit:fast",
|
|
88
88
|
"test:all": "npm test -- --run",
|
|
89
89
|
"test:mcp": "npm run test:unit:mcp",
|
|
@@ -229,7 +229,7 @@
|
|
|
229
229
|
"rvlite": "^0.2.4"
|
|
230
230
|
},
|
|
231
231
|
"resolutions": {
|
|
232
|
-
"adm-zip": ">=0.6.
|
|
232
|
+
"adm-zip": ">=0.6.1",
|
|
233
233
|
"graceful-fs": "^4.2.11",
|
|
234
234
|
"stack-utils": "^2.0.6",
|
|
235
235
|
"tar": ">=7.5.7",
|
|
@@ -238,7 +238,7 @@
|
|
|
238
238
|
"ws": "^8.21.0"
|
|
239
239
|
},
|
|
240
240
|
"overrides": {
|
|
241
|
-
"adm-zip": ">=0.6.
|
|
241
|
+
"adm-zip": ">=0.6.1",
|
|
242
242
|
"@ruvector/gnn-linux-x64-musl": "npm:@ruvector/gnn-linux-x64-gnu@0.1.25",
|
|
243
243
|
"@ruvector/gnn-linux-arm64-musl": "npm:@ruvector/gnn-linux-arm64-gnu@0.1.25",
|
|
244
244
|
"tar": ">=7.5.7",
|
|
@@ -250,7 +250,8 @@
|
|
|
250
250
|
"@opentelemetry/auto-instrumentations-node": ">=0.75.0",
|
|
251
251
|
"@opentelemetry/exporter-prometheus": ">=0.217.0",
|
|
252
252
|
"@hono/node-server": ">=2.0.5",
|
|
253
|
-
"
|
|
253
|
+
"hono": ">=4.13.5",
|
|
254
|
+
"sharp": ">=0.35.4"
|
|
254
255
|
},
|
|
255
256
|
"devDependencies": {
|
|
256
257
|
"@claude-flow/guidance": "3.0.0-alpha.1",
|
|
@@ -264,7 +265,7 @@
|
|
|
264
265
|
"@types/ws": "^8.18.1",
|
|
265
266
|
"@typescript-eslint/eslint-plugin": "^8.59.3",
|
|
266
267
|
"@typescript-eslint/parser": "^8.59.3",
|
|
267
|
-
"@vitest/coverage-v8": "^
|
|
268
|
+
"@vitest/coverage-v8": "^5.0.1",
|
|
268
269
|
"ajv": "^8.20.0",
|
|
269
270
|
"ajv-formats": "^3.0.1",
|
|
270
271
|
"dotenv": "^17.2.3",
|
|
@@ -274,7 +275,7 @@
|
|
|
274
275
|
"glob": "^13.0.0",
|
|
275
276
|
"msw": "^2.12.7",
|
|
276
277
|
"tsx": "^4.21.0",
|
|
277
|
-
"vitest": "^
|
|
278
|
+
"vitest": "^5.0.1"
|
|
278
279
|
},
|
|
279
280
|
"engines": {
|
|
280
281
|
"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.1");process.exit(0)}
|
|
2
|
-
import{a,b,c}from"./chunk-MDLLEUFN.js";import"./chunk-FRRRDCXY.js";import"./chunk-3AYNHOWS.js";import"./chunk-VVP2ROXD.js";import"./chunk-NAJCQJSK.js";import"./chunk-EHW62JL2.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.1");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f}from"./chunk-3BRR2FLH.js";import"./chunk-H5LSXVWY.js";import"./chunk-HRUQWABO.js";import"./chunk-SEKOMKNG.js";import"./chunk-GYTWUOKU.js";import"./chunk-FHBGALBG.js";import"./chunk-ODNLKYOM.js";import"./chunk-MFAN5W27.js";import"./chunk-L66BWYQH.js";import"./chunk-CCZZZBAO.js";import"./chunk-5KP62DC3.js";import"./chunk-TT7DF2GX.js";import"./chunk-PZZX57ZA.js";import"./chunk-6B77GPWL.js";import"./chunk-LQDFWLKK.js";import"./chunk-PS6Y662P.js";import"./chunk-6YIMLUH6.js";import"./chunk-HJD52N32.js";import"./chunk-AZUC7E5S.js";import"./chunk-CGZ7LTUK.js";import"./chunk-J7VAD4RG.js";import"./chunk-D6RCRTTR.js";import"./chunk-VVP2ROXD.js";import"./chunk-5TYGSQOL.js";import"./chunk-HBAQVJDP.js";import"./chunk-DKSLJZVA.js";import"./chunk-UWRMPRY5.js";import"./chunk-NAJCQJSK.js";import"./chunk-LJ63HPPN.js";import"./chunk-45S5553E.js";import"./chunk-CGDW47WP.js";import"./chunk-FPBQ7BXU.js";import"./chunk-L4WATX6B.js";import"./chunk-7GF6IRSU.js";import"./chunk-3WSH4HD2.js";import"./chunk-TGFJUL6M.js";import"./chunk-PYAH4K2U.js";import"./chunk-DKXSJDII.js";import"./chunk-EHW62JL2.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.1");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-YXN47QOI.js";import"./chunk-RCHDSUVU.js";import"./chunk-6YIMLUH6.js";import"./chunk-HJD52N32.js";import"./chunk-AZUC7E5S.js";import"./chunk-CGZ7LTUK.js";import"./chunk-J7VAD4RG.js";import"./chunk-D6RCRTTR.js";import"./chunk-VVP2ROXD.js";import"./chunk-NAJCQJSK.js";import"./chunk-LJ63HPPN.js";import"./chunk-ND6JBUVH.js";import"./chunk-45S5553E.js";import"./chunk-CGDW47WP.js";import"./chunk-FPBQ7BXU.js";import"./chunk-L4WATX6B.js";import"./chunk-7GF6IRSU.js";import"./chunk-3WSH4HD2.js";import"./chunk-TGFJUL6M.js";import"./chunk-PYAH4K2U.js";import"./chunk-DKXSJDII.js";import"./chunk-EHW62JL2.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.1");process.exit(0)}
|
|
2
|
-
import{a}from"./chunk-X5G3UDWP.js";import"./chunk-YXN47QOI.js";import"./chunk-RCHDSUVU.js";import"./chunk-6YIMLUH6.js";import"./chunk-HJD52N32.js";import"./chunk-AZUC7E5S.js";import"./chunk-CGZ7LTUK.js";import"./chunk-J7VAD4RG.js";import"./chunk-D6RCRTTR.js";import"./chunk-VVP2ROXD.js";import"./chunk-NAJCQJSK.js";import"./chunk-LJ63HPPN.js";import"./chunk-ND6JBUVH.js";import"./chunk-45S5553E.js";import"./chunk-CGDW47WP.js";import"./chunk-FPBQ7BXU.js";import"./chunk-L4WATX6B.js";import"./chunk-7GF6IRSU.js";import"./chunk-3WSH4HD2.js";import"./chunk-TGFJUL6M.js";import"./chunk-PYAH4K2U.js";import"./chunk-DKXSJDII.js";import"./chunk-EHW62JL2.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.1");process.exit(0)}
|
|
2
|
-
import{a as e,b as g,e as r}from"./chunk-J7VAD4RG.js";import{c as o}from"./chunk-EHW62JL2.js";var L=o(()=>{"use strict";e();g();r()});export{L as a};
|