agentic-qe 3.14.5 → 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 +150 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/adapters/ag-ui/event-types.d.ts +1 -1
- package/dist/audit/witness-chain-hash.d.ts +18 -0
- package/dist/audit/witness-chain-hash.js +37 -0
- package/dist/audit/witness-chain-repair.d.ts +71 -0
- package/dist/audit/witness-chain-repair.js +203 -0
- package/dist/audit/witness-chain-verifier.d.ts +152 -0
- package/dist/audit/witness-chain-verifier.js +293 -0
- package/dist/audit/witness-chain.d.ts +10 -43
- package/dist/audit/witness-chain.js +16 -106
- package/dist/audit/witness-findings.js +4 -1
- package/dist/cli/bundle.js +8 -8
- package/dist/cli/chunks/adapter-TVQKH65T.js +2 -0
- package/dist/cli/chunks/agent-booster-wasm-AK2W76RG.js +2 -0
- package/dist/cli/chunks/{agent-handler-V6CZ7Q6S.js → agent-handler-MGZCWHIY.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-ZMD6ULC3.js → agent-memory-branch-JZ54MCSP.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-ULGTVVWE.js +2 -0
- package/dist/cli/chunks/{arena-QLSBESC7.js → arena-CUVH3V7H.js} +2 -2
- package/dist/cli/chunks/{arena-4UPAEHFT.js → arena-YSWTKBCL.js} +4 -4
- package/dist/cli/chunks/audit-LVU76QGA.js +4 -0
- package/dist/cli/chunks/base-W42BURDL.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-4DSBPDRH.js → better-sqlite3-DB3LOJQU.js} +2 -2
- package/dist/cli/chunks/{brain-handler-GBY4EZ4P.js → brain-handler-SD63KOQ6.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-XYBVXCNO.js → branch-enumerator-4MNOPUC7.js} +2 -2
- package/dist/cli/chunks/{browser-32F6MREU.js → browser-OLPNTWQE.js} +2 -2
- package/dist/cli/chunks/browser-workflow-HKGHFFFT.js +2 -0
- package/dist/cli/chunks/{chunk-WLXK2KNU.js → chunk-23CX7JNL.js} +2 -2
- package/dist/cli/chunks/{chunk-O3JTQ7N4.js → chunk-25P6JA6V.js} +1 -1
- package/dist/cli/chunks/{chunk-DO6EI5KB.js → chunk-2G63VIJE.js} +1 -1
- package/dist/cli/chunks/{chunk-G3L5L6YQ.js → chunk-2IMSJ7IO.js} +1 -1
- package/dist/cli/chunks/{chunk-RD6TEZ64.js → chunk-36VKMAMN.js} +2 -2
- package/dist/cli/chunks/{chunk-KIP6WZGV.js → chunk-3M7J4U74.js} +3 -3
- package/dist/cli/chunks/chunk-3QJU4Q4R.js +5 -0
- package/dist/cli/chunks/{chunk-2JGEZHWY.js → chunk-4EKV7PHB.js} +2 -2
- package/dist/cli/chunks/chunk-4INST4ZL.js +4 -0
- package/dist/cli/chunks/{chunk-DPBRWP4J.js → chunk-53BXTTRO.js} +3 -3
- package/dist/cli/chunks/chunk-5D7ZFWDS.js +2 -0
- package/dist/cli/chunks/{chunk-XLAUGSW7.js → chunk-5FSLMYAC.js} +2 -2
- package/dist/cli/chunks/chunk-5GFKTJ65.js +4 -0
- package/dist/cli/chunks/{chunk-WOIGKU2N.js → chunk-5U6N4V5M.js} +11 -11
- package/dist/cli/chunks/{chunk-PSPKSUF6.js → chunk-6EGS77BB.js} +1 -1
- package/dist/cli/chunks/{chunk-QIRL6B3C.js → chunk-6PJPQGF4.js} +2 -2
- package/dist/cli/chunks/{chunk-I6X3EGJI.js → chunk-6RD44SCE.js} +1 -1
- package/dist/cli/chunks/{chunk-IGBEJ4UJ.js → chunk-74IOEOMH.js} +2 -2
- package/dist/cli/chunks/{chunk-E3W6XQ57.js → chunk-77QZHIVX.js} +2 -2
- package/dist/cli/chunks/{chunk-R74ZKREV.js → chunk-7EZ2Z2CK.js} +1 -1
- package/dist/cli/chunks/{chunk-UTBYJ4RF.js → chunk-7MIOK72I.js} +18 -35
- package/dist/cli/chunks/{chunk-URVHZPWY.js → chunk-7QYOTUOX.js} +2 -2
- package/dist/cli/chunks/{chunk-K27SU3RE.js → chunk-A2VUCUTT.js} +2 -2
- package/dist/cli/chunks/{chunk-2KJQ2UQE.js → chunk-A3DK3XNZ.js} +1 -1
- package/dist/cli/chunks/{chunk-5D36YHS3.js → chunk-A5MA7A23.js} +4 -4
- package/dist/cli/chunks/{chunk-WJHWH5D2.js → chunk-AEUEMVJK.js} +2 -2
- package/dist/cli/chunks/{chunk-6CR4VQBQ.js → chunk-AJUBT4NP.js} +2 -2
- package/dist/cli/chunks/chunk-B2YGVSOP.js +27 -0
- package/dist/cli/chunks/{chunk-D6OUCB2H.js → chunk-B4I43GE2.js} +2 -2
- package/dist/cli/chunks/{chunk-WK7B4B6Y.js → chunk-BD7FEUN3.js} +2 -2
- package/dist/cli/chunks/{chunk-OEIQTWQP.js → chunk-BE4KALTE.js} +1 -1
- package/dist/cli/chunks/{chunk-JROVR6YS.js → chunk-BEFTQVEW.js} +2 -2
- package/dist/cli/chunks/{chunk-HBCGYMQU.js → chunk-BLG7SH4A.js} +1 -1
- package/dist/cli/chunks/{chunk-2OMLTYQK.js → chunk-C3FXFU2T.js} +1 -1
- package/dist/cli/chunks/{chunk-6A44AOGN.js → chunk-CBONQM5D.js} +2 -2
- package/dist/cli/chunks/{chunk-73EI4C2E.js → chunk-CQNMGK6Y.js} +2 -2
- package/dist/cli/chunks/{chunk-IIAR5S7Q.js → chunk-CVOQ6ESD.js} +2 -2
- package/dist/cli/chunks/{chunk-6TU7FEMD.js → chunk-DOBKEXMJ.js} +1 -1
- package/dist/cli/chunks/{chunk-BHFR2EXL.js → chunk-DYTQHRUS.js} +1 -1
- package/dist/cli/chunks/{chunk-E4AZXCT5.js → chunk-EADSQN5T.js} +1 -1
- package/dist/cli/chunks/{chunk-CYE2TJFV.js → chunk-EGOIIUBD.js} +2 -2
- package/dist/cli/chunks/{chunk-DKUBQQFG.js → chunk-EIGRV3J6.js} +2 -2
- package/dist/cli/chunks/{chunk-RP2ZKPYV.js → chunk-EJ6MMYLK.js} +1 -1
- package/dist/cli/chunks/{chunk-HSVKZ5KI.js → chunk-ENK44A6Q.js} +2 -2
- package/dist/cli/chunks/{chunk-67YV75XP.js → chunk-EYXE2XKP.js} +2 -2
- package/dist/cli/chunks/{chunk-HYEJJJY3.js → chunk-F2OPFVQH.js} +1 -1
- package/dist/cli/chunks/{chunk-XUR2M2WB.js → chunk-FBZC4IGB.js} +2 -2
- package/dist/cli/chunks/{chunk-BXVAVFGU.js → chunk-FSSR6WBE.js} +2 -2
- package/dist/cli/chunks/{chunk-W2XCZU62.js → chunk-FW4DJ4FJ.js} +1 -1
- package/dist/cli/chunks/{chunk-KKHYJF5U.js → chunk-FYPX5WBJ.js} +1 -1
- package/dist/cli/chunks/{chunk-K7NJHFLZ.js → chunk-G367W7XR.js} +3 -3
- package/dist/cli/chunks/{chunk-IUDWEOLX.js → chunk-GLGKQX2V.js} +2 -2
- package/dist/cli/chunks/{chunk-JVQBWYHW.js → chunk-GV4DYPJP.js} +2 -2
- package/dist/cli/chunks/{chunk-GTKCGPJZ.js → chunk-GVVFTFMB.js} +2 -2
- package/dist/cli/chunks/{chunk-AFEDJ3RU.js → chunk-H5RQPO3X.js} +2 -2
- package/dist/cli/chunks/{chunk-4FWTLJEP.js → chunk-HPWWYT67.js} +2 -2
- package/dist/cli/chunks/{chunk-G3W6BMVJ.js → chunk-HXXHMLJ5.js} +1 -1
- package/dist/cli/chunks/{chunk-NU7UTXMP.js → chunk-HYFQUWNB.js} +2 -2
- package/dist/cli/chunks/chunk-HYOPJHHW.js +2 -0
- package/dist/cli/chunks/{chunk-6LKDHEBY.js → chunk-HZY42OVU.js} +2 -2
- package/dist/cli/chunks/{chunk-C3HQL6S4.js → chunk-IAENZ2DR.js} +2 -2
- package/dist/cli/chunks/{chunk-M23ZOZVY.js → chunk-IEJ7ZV3M.js} +1 -1
- package/dist/cli/chunks/{chunk-RIZVC4XY.js → chunk-IWFFO6VT.js} +2 -2
- package/dist/cli/chunks/chunk-J7AQZLIH.js +21 -0
- package/dist/cli/chunks/{chunk-3KDL6QDK.js → chunk-JHJUSSAU.js} +2 -2
- package/dist/cli/chunks/{chunk-DLF5BOJD.js → chunk-JOZ47MV6.js} +1 -1
- package/dist/cli/chunks/{chunk-ELBZON4V.js → chunk-JZT7BU44.js} +2 -2
- package/dist/cli/chunks/{chunk-3DDXWYMO.js → chunk-KD2BLA5Y.js} +1 -1
- package/dist/cli/chunks/{chunk-VD5IO5EO.js → chunk-KUHLTVWC.js} +1 -1
- package/dist/cli/chunks/{chunk-YDFL445W.js → chunk-LU2EDWQK.js} +2 -2
- package/dist/cli/chunks/chunk-LXZMP3VX.js +736 -0
- package/dist/cli/chunks/{chunk-3YUB5HER.js → chunk-LY7MFGBD.js} +196 -187
- package/dist/cli/chunks/chunk-MM56VPNE.js +180 -0
- package/dist/cli/chunks/{chunk-37TUN44F.js → chunk-MNQN7UZX.js} +2 -2
- package/dist/cli/chunks/{chunk-7DETTOPZ.js → chunk-MQZ53OR3.js} +2 -2
- package/dist/cli/chunks/{chunk-BYG36QC5.js → chunk-MT7UNBZ7.js} +2 -2
- package/dist/cli/chunks/{chunk-JES6R5KP.js → chunk-MZB2UV2O.js} +1 -1
- package/dist/cli/chunks/{chunk-QZMUXJHZ.js → chunk-MZMG6CUJ.js} +2 -2
- package/dist/cli/chunks/chunk-N5XOXPHZ.js +4 -0
- package/dist/cli/chunks/{chunk-RD2VGOUH.js → chunk-NBLDBVAW.js} +1 -1
- package/dist/cli/chunks/{chunk-HVU64GP5.js → chunk-ND4QTZOL.js} +2 -2
- package/dist/cli/chunks/{chunk-SQF6HRXR.js → chunk-NHUGHAY6.js} +1 -1
- package/dist/cli/chunks/{chunk-TUSSPKRM.js → chunk-NOHWJOBS.js} +1 -1
- package/dist/cli/chunks/{chunk-NVYBM3R4.js → chunk-O5V7RHVG.js} +2 -2
- package/dist/cli/chunks/{chunk-6VAZAHQG.js → chunk-O6MO5KMR.js} +2 -2
- package/dist/cli/chunks/{chunk-IUHB5GVS.js → chunk-OAZX6WFU.js} +2 -2
- package/dist/cli/chunks/{chunk-LSUILON7.js → chunk-OEPNNLR4.js} +1 -1
- package/dist/cli/chunks/{chunk-IJHCIXJC.js → chunk-OIDWDGLG.js} +2 -2
- package/dist/cli/chunks/{chunk-CPC7FN52.js → chunk-ON2UTP2U.js} +2 -2
- package/dist/cli/chunks/{chunk-UJWAWIRV.js → chunk-ONR2NXXD.js} +7 -7
- package/dist/cli/chunks/{chunk-7VFY7TUR.js → chunk-OXHF3L2T.js} +2 -2
- package/dist/cli/chunks/{chunk-QYOGD2VW.js → chunk-OZGIOKEA.js} +1 -1
- package/dist/cli/chunks/{chunk-WJTSY5MC.js → chunk-P2UPYSDJ.js} +1 -1
- package/dist/cli/chunks/{chunk-52L77RMG.js → chunk-P7XSPP5D.js} +2 -2
- package/dist/cli/chunks/{chunk-M5AEL7IS.js → chunk-PCJQCEBA.js} +2 -2
- package/dist/cli/chunks/chunk-PELENDDQ.js +2 -0
- package/dist/cli/chunks/{chunk-C3Z4VVHP.js → chunk-PYKY22GC.js} +5 -5
- package/dist/cli/chunks/{chunk-AF4XKLXO.js → chunk-Q3NSU24F.js} +2 -2
- package/dist/cli/chunks/chunk-Q6NTEICT.js +2 -0
- package/dist/cli/chunks/chunk-QFETNCNN.js +12 -0
- package/dist/cli/chunks/{chunk-KYA5LARK.js → chunk-QGOWNVVG.js} +1 -1
- package/dist/cli/chunks/{chunk-Y5L3ES4L.js → chunk-QPLSYEWJ.js} +2 -2
- package/dist/cli/chunks/{chunk-F34OAHOM.js → chunk-QQFQDEUE.js} +2 -2
- package/dist/cli/chunks/{chunk-EFV4ADMO.js → chunk-QUORH2MG.js} +55 -79
- package/dist/cli/chunks/{chunk-QWUXCG2L.js → chunk-QVH5Y7AP.js} +1 -1
- package/dist/cli/chunks/{chunk-I2NENQ44.js → chunk-RC2A4JZ5.js} +2 -2
- package/dist/cli/chunks/{chunk-XZSMZHM2.js → chunk-RDGPXENG.js} +2 -2
- package/dist/cli/chunks/{chunk-N7H767TP.js → chunk-RKI3IQKQ.js} +2 -2
- package/dist/cli/chunks/{chunk-LULD4JV2.js → chunk-RKUAWQOF.js} +2 -2
- package/dist/cli/chunks/chunk-RLW25X66.js +2 -0
- package/dist/cli/chunks/{chunk-UKGXWW64.js → chunk-ROVZSZCS.js} +3 -3
- package/dist/cli/chunks/{chunk-EOR2UT72.js → chunk-RT6O2HW2.js} +2 -2
- package/dist/cli/chunks/{chunk-75QJ5HWE.js → chunk-SM2YJ2AL.js} +2 -2
- package/dist/cli/chunks/{chunk-KO4FNAUR.js → chunk-SRPLERER.js} +3 -3
- package/dist/cli/chunks/{chunk-NRE4NAVA.js → chunk-T77GZF4B.js} +1 -1
- package/dist/cli/chunks/{chunk-R6IU3EWP.js → chunk-TFK2AYIN.js} +2 -2
- package/dist/cli/chunks/chunk-TW3SR4TS.js +2 -0
- package/dist/cli/chunks/{chunk-IYTLXUBO.js → chunk-TXSPBLBT.js} +2 -2
- package/dist/cli/chunks/chunk-UA7TDVL7.js +12 -0
- package/dist/cli/chunks/{chunk-WX6RRIGW.js → chunk-UBJG3IHT.js} +2 -2
- package/dist/cli/chunks/{chunk-NQI7FWCS.js → chunk-UFSVUBTR.js} +2 -2
- package/dist/cli/chunks/{chunk-FUNGTIF2.js → chunk-UOI6ULCH.js} +2 -2
- package/dist/cli/chunks/{chunk-HVXJC3OC.js → chunk-UYUJT6QO.js} +2 -2
- package/dist/cli/chunks/{chunk-KEY43ANX.js → chunk-V5AK56DA.js} +2 -2
- package/dist/cli/chunks/{chunk-XFPPERA2.js → chunk-V6RE4YRQ.js} +2 -2
- package/dist/cli/chunks/{chunk-DDCIYOGT.js → chunk-VW6FRMLW.js} +2 -2
- package/dist/cli/chunks/chunk-VXKWNRGA.js +2 -0
- package/dist/cli/chunks/{chunk-CVMNJSCB.js → chunk-VYDVI6FZ.js} +2 -2
- package/dist/cli/chunks/{chunk-7JZJJA7U.js → chunk-WF6UISKW.js} +3 -3
- package/dist/cli/chunks/{chunk-SQKW3B6B.js → chunk-WIH522AP.js} +1 -1
- package/dist/cli/chunks/{chunk-KLTP5IDB.js → chunk-WOV6XI3A.js} +1 -1
- package/dist/cli/chunks/{chunk-VTOVWHEM.js → chunk-X7ADKL7T.js} +2 -2
- package/dist/cli/chunks/{chunk-SX4JLSLV.js → chunk-XBYQ2BS4.js} +2 -2
- package/dist/cli/chunks/{chunk-E4EYPYR3.js → chunk-XL5KIYE3.js} +2 -2
- package/dist/cli/chunks/{chunk-3VIXOHMS.js → chunk-XWYELBZS.js} +1 -1
- package/dist/cli/chunks/{chunk-YQGPQBCX.js → chunk-XYLQZWF6.js} +2 -2
- package/dist/cli/chunks/{chunk-XEZIIQYJ.js → chunk-Y6AKKQIQ.js} +1 -1
- package/dist/cli/chunks/{chunk-BJPL6THQ.js → chunk-YMW57PEL.js} +1 -1
- package/dist/cli/chunks/{chunk-JSZ663MU.js → chunk-YO4ESCB4.js} +1 -1
- package/dist/cli/chunks/{chunk-AMMQOV35.js → chunk-YRHTQZU4.js} +2 -2
- package/dist/cli/chunks/chunk-Z4Q5PCRZ.js +65 -0
- package/dist/cli/chunks/{chunk-RKOUXVZZ.js → chunk-ZELWDJXT.js} +2 -2
- package/dist/cli/chunks/{chunk-QRCIZFNK.js → chunk-ZQZD55MN.js} +2 -2
- package/dist/cli/chunks/{chunk-UMGFMKDW.js → chunk-ZS4XVJGV.js} +2 -2
- package/dist/cli/chunks/{chunk-6ITZZIQX.js → chunk-ZUB5YOCM.js} +2 -2
- package/dist/cli/chunks/chunk-ZUOVNFXK.js +2 -0
- package/dist/cli/chunks/{chunk-RGGK6VZ7.js → chunk-ZWEKAEEV.js} +1 -1
- package/dist/cli/chunks/{ci-RACDAJMR.js → ci-J3TDK5RA.js} +8 -8
- package/dist/cli/chunks/{ci-output-EHRSZBKG.js → ci-output-RLS32FUY.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-GBV7M5XG.js → circuit-breaker-MRCC7WCM.js} +2 -2
- package/dist/cli/chunks/claude-flow-setup-LIZCEKDF.js +2 -0
- package/dist/cli/chunks/client-3BD2DI4N.js +2 -0
- package/dist/cli/chunks/{cline-installer-W4NMXJSG.js → cline-installer-T7H6R2RC.js} +2 -2
- package/dist/cli/chunks/{code-JWXJMYXB.js → code-XMBLI7OF.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-RVI2IFTM.js → code-index-extractor-QS7BYLEX.js} +2 -2
- package/dist/cli/chunks/{codex-installer-3BORJINH.js → codex-installer-6PGT5FM6.js} +6 -6
- package/dist/cli/chunks/{completions-A55NCTAO.js → completions-2A3WRXY2.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-JCXHGGLY.js → complexity-analyzer-23HOOGJ7.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-PUVFMGYW.js → continuedev-installer-4FSF7B3N.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-4DCMYWHB.js → copilot-installer-A5GRQQUU.js} +2 -2
- package/dist/cli/chunks/core-handlers-C3H2ZCS2.js +2 -0
- package/dist/cli/chunks/{cost-tracker-5TV2GGKY.js → cost-tracker-Z4STQ5VB.js} +2 -2
- package/dist/cli/chunks/{coverage-NNWM7TX3.js → coverage-NUPP6KZZ.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-JCQ7SWDP.js +2 -0
- package/dist/cli/chunks/{cursor-installer-4NCHGJGK.js → cursor-installer-FVJ7ROPJ.js} +2 -2
- package/dist/cli/chunks/{daemon-QIKCXKWO.js → daemon-7ZZA2MMN.js} +4 -4
- package/dist/cli/chunks/{daemon-T4JO4IXP.js → daemon-D662EX5N.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-RPAAIDAD.js → dag-attention-scheduler-IB4TQ2KA.js} +2 -2
- package/dist/cli/chunks/{detect-SBEEVDSN.js → detect-LGLBZN4I.js} +2 -2
- package/dist/cli/chunks/{dist-node-ZHI6NCSU.js → dist-node-Z3OL42YE.js} +2 -2
- package/dist/cli/chunks/{domain-handler-LBC3GJ7Z.js → domain-handler-L3CLNL7U.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-H6IZ5USZ.js → domain-plugins-GQ3V5X6L.js} +2 -2
- package/dist/cli/chunks/domain-transfer-MFCI76IY.js +2 -0
- package/dist/cli/chunks/dream-FTP33IJB.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-AHTR7CRU.js → embed-and-insert-pattern-UGD6USYH.js} +2 -2
- package/dist/cli/chunks/{eval-DZU2KISM.js → eval-3B7UIYGY.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-5IQCWKSL.js → experience-capture-middleware-3RQ4NYY3.js} +3 -3
- package/dist/cli/chunks/{fast-paths-2KLDUWCY.js → fast-paths-QOSAEPYD.js} +2 -2
- package/dist/cli/chunks/{feature-flags-7AC3XDZA.js → feature-flags-3S5TH6P4.js} +2 -2
- package/dist/cli/chunks/{feature-flags-N6UAEZY4.js → feature-flags-TLF4NKOH.js} +2 -2
- package/dist/cli/chunks/{file-discovery-5SDIW4V2.js → file-discovery-AEVMJRNB.js} +2 -2
- package/dist/cli/chunks/{fleet-ZIQCAZ2Y.js → fleet-E6WTXWFL.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-DUMBZJEV.js → gnn-wrapper-MCKH3AUU.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-6HVM6ZMR.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-5DRL5FLX.js → hnsw-legacy-bridge-5GW4SAEI.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-GW67GTCL.js → hnswlib-node-7BLZBK5T.js} +2 -2
- package/dist/cli/chunks/{hooks-QHH6FVO4.js → hooks-F3O2SB6H.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-HT45LBHC.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-7XDCCVG2.js → hypergraph-engine-PV4EKXHB.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-QHF7NOU5.js → hypergraph-handler-VOWO5ZTW.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-AP4AGTG5.js +2 -0
- package/dist/cli/chunks/{init-handler-5UIVOM7K.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-TGGV6K5Q.js → kilocode-installer-HNNJOOPE.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-4XYBHZWW.js → kiro-installer-UZBIQ3IC.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-L26JESGE.js +2 -0
- package/dist/cli/chunks/{learning-STE5W6BS.js → learning-YMLCVFUT.js} +3 -3
- package/dist/cli/chunks/{llm-router-NKF7J3RI.js → llm-router-YWTARCCT.js} +4 -4
- package/dist/cli/chunks/llm-router-service-MWGC43ZA.js +2 -0
- package/dist/cli/chunks/{load-B2T77UJQ.js → load-DKE3F3IP.js} +2 -2
- package/dist/cli/chunks/load-test-H5ISNNM5.js +2 -0
- package/dist/cli/chunks/mcp-5PSGIUCW.js +2 -0
- package/dist/cli/chunks/{memory-WRFZKG56.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-AEEO7IA4.js +14 -0
- package/dist/cli/chunks/{opencode-installer-J36EMQU7.js → opencode-installer-ABBO355U.js} +2 -2
- package/dist/cli/chunks/orchestrator-E36Q7MKE.js +393 -0
- package/dist/cli/chunks/pattern-null-store-GQP6ICWK.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-BVMTWI3E.js → pattern-usage-recorder-H4XKSID4.js} +2 -2
- package/dist/cli/chunks/{pipeline-OWAHDUAQ.js → pipeline-BGFEHXIN.js} +2 -2
- package/dist/cli/chunks/{platform-ANGBFWBV.js → platform-GK7ZVDJI.js} +2 -2
- package/dist/cli/chunks/{plugin-OO7ON2YW.js → plugin-CAH2CKI6.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-HFG3BXWU.js → prime-radiant-advanced-wasm-M5EYRONA.js} +2 -2
- package/dist/cli/chunks/{project-root-LNOYVTYY.js → project-root-BSNZC243.js} +2 -2
- package/dist/cli/chunks/protocol-executor-AD5A4DAI.js +2 -0
- package/dist/cli/chunks/{protocol-handler-CE3Q6LY4.js → protocol-handler-JDSSC2SF.js} +2 -2
- package/dist/cli/chunks/{prove-7XPN53PY.js → prove-ANPTOZJE.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-W3Z2PKTR.js +2 -0
- package/dist/cli/chunks/{quality-TT23JRFX.js → quality-SXWGYRQR.js} +2 -2
- package/dist/cli/chunks/{quality-gate-PPPRP255.js → quality-gate-GYNCA4ZY.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-HQRHLIJX.js +2 -0
- package/dist/cli/chunks/{real-embeddings-EYNZIFJE.js → real-embeddings-WSRYAOZM.js} +2 -2
- package/dist/cli/chunks/{ref-validation-QQR64ZXD.js → ref-validation-AZ3LRWEK.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-UIGS7ZJD.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-6AENUIRG.js → routing-handler-UYDC5MMD.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-5AWMEV34.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-NWRJ7C22.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-ISKRP563.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-325A7FMB.js → security-YKB622PK.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-KMLAV7JK.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-THFDYS2Z.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-UD4MJ6GZ.js → standalone-memory-2DOABVLC.js} +2 -2
- package/dist/cli/chunks/{status-handler-CPFTN4XL.js → status-handler-EXRKETV7.js} +2 -2
- package/dist/cli/chunks/{structural-health-2MG2IVBL.js → structural-health-2SKK6DU6.js} +2 -2
- package/dist/cli/chunks/sync-DQ2YUNI6.js +2 -0
- package/dist/cli/chunks/{sync-EE4VVKOW.js → sync-UW7SX7GO.js} +2 -2
- package/dist/cli/chunks/{task-handler-7H5OYJG4.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-CHQ4ZLLJ.js → test-scheduling-HI23RXFK.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-23SA6SWZ.js +2 -0
- package/dist/cli/chunks/{token-usage-EBXUJNRB.js → token-usage-M7RRDPXO.js} +2 -2
- package/dist/cli/chunks/{transformers-ZEKS2OJZ.js → transformers-4TC35KKS.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-F4LTKAWD.js +2 -0
- package/dist/cli/chunks/{types-KYAA5VLV.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-UJBJ5AYM.js → upgrade-4BGOU5RM.js} +2 -2
- package/dist/cli/chunks/{validate-RUV6YMWS.js → validate-EDWAR63H.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-IVEVMGVM.js → validate-swarm-VI72CPR7.js} +2 -2
- package/dist/cli/chunks/visual-security-2FUM5GLI.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-AVWA6HKE.js → web-tree-sitter-Y5XBRQXF.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-DAH7HI2W.js → windsurf-installer-VEX23WAF.js} +2 -2
- package/dist/cli/chunks/witness-chain-3YNL6YGY.js +2 -0
- 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-TTJYXTBE.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-JSTBMG43.js → witness-key-manager-EM6YXYOY.js} +2 -2
- package/dist/cli/chunks/{workflow-TWOIA6LZ.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/audit.d.ts +20 -2
- package/dist/cli/commands/audit.js +158 -16
- package/dist/cli/commands/ci.js +1 -1
- package/dist/cli/commands/claude-flow-setup.js +5 -4
- 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 +10 -1
- 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/agents-installer.d.ts +4 -0
- package/dist/init/agents-installer.js +24 -11
- package/dist/init/browser-engine-installer.d.ts +5 -5
- package/dist/init/browser-engine-installer.js +28 -6
- package/dist/init/codex-installer.js +4 -2
- package/dist/init/idempotent-write.d.ts +53 -0
- package/dist/init/idempotent-write.js +160 -0
- package/dist/init/init-wizard.d.ts +2 -0
- package/dist/init/orchestrator.js +1 -0
- package/dist/init/phases/05-learning.js +3 -1
- package/dist/init/phases/07-hooks.js +32 -16
- package/dist/init/phases/08-mcp.js +4 -2
- package/dist/init/phases/09-assets.js +8 -18
- package/dist/init/phases/10-workers.js +7 -5
- package/dist/init/phases/12-verification.js +7 -2
- package/dist/init/phases/phase-interface.d.ts +2 -0
- package/dist/init/project-analyzer.d.ts +9 -0
- package/dist/init/project-analyzer.js +20 -1
- package/dist/init/self-configurator.d.ts +5 -3
- package/dist/init/self-configurator.js +18 -29
- package/dist/init/skills-installer.js +4 -2
- package/dist/init/types.d.ts +6 -0
- package/dist/init/types.js +20 -24
- package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +2 -5
- package/dist/integrations/coherence/coherence-service.js +84 -24
- package/dist/integrations/coherence/vote-tally.d.ts +38 -0
- package/dist/integrations/coherence/vote-tally.js +39 -0
- package/dist/integrations/ruvector/shared-rvf-adapter.d.ts +23 -0
- package/dist/integrations/ruvector/shared-rvf-adapter.js +24 -0
- 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/kernel.js +3 -2
- 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 +12 -1
- package/dist/learning/pattern-store.js +45 -30
- package/dist/learning/qe-patterns.d.ts +12 -0
- package/dist/learning/qe-patterns.js +7 -1
- package/dist/learning/qe-reasoning-bank.d.ts +1 -0
- package/dist/learning/qe-reasoning-bank.js +17 -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 +36 -23
- package/dist/learning/sqlite-persistence.d.ts +8 -1
- package/dist/learning/sqlite-persistence.js +58 -33
- package/dist/logging/console-logger.d.ts +2 -5
- package/dist/logging/console-logger.js +10 -46
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.js +1 -0
- package/dist/logging/redaction.d.ts +27 -0
- package/dist/logging/redaction.js +170 -0
- package/dist/mcp/bundle.js +522 -545
- package/dist/mcp/entry.js +52 -6
- package/dist/mcp/handlers/core-handlers.js +5 -4
- 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 +20 -4
- 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/base.d.ts +9 -2
- package/dist/mcp/tools/base.js +7 -0
- package/dist/mcp/tools/coherence/consensus.js +51 -2
- package/dist/mcp/tools/planning/goap-plan.d.ts +20 -7
- package/dist/mcp/tools/planning/goap-plan.js +92 -20
- package/dist/mcp/tools/planning/goap-status.d.ts +37 -12
- package/dist/mcp/tools/planning/goap-status.js +52 -23
- package/dist/mcp/tools/planning/world-state.d.ts +101 -0
- package/dist/mcp/tools/planning/world-state.js +274 -0
- 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 +10 -4
- package/dist/planning/goap-planner.d.ts +60 -4
- package/dist/planning/goap-planner.js +218 -60
- package/dist/planning/index.d.ts +1 -1
- package/dist/planning/index.js +1 -1
- package/dist/planning/plan-executor.d.ts +20 -1
- package/dist/planning/plan-executor.js +209 -100
- package/dist/planning/types.d.ts +16 -0
- package/dist/planning/types.js +17 -0
- 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-IYC62SXA.js +0 -2
- package/dist/cli/chunks/agent-booster-wasm-EDNKP3SP.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-LLOU2IXD.js +0 -2
- package/dist/cli/chunks/audit-CVZQMF55.js +0 -3
- package/dist/cli/chunks/base-P3Z4IKCT.js +0 -2
- package/dist/cli/chunks/browser-workflow-YYHQQ25X.js +0 -2
- package/dist/cli/chunks/chunk-3EZ5DR2R.js +0 -21
- package/dist/cli/chunks/chunk-5WOSWNDN.js +0 -2
- package/dist/cli/chunks/chunk-7CD7PBHY.js +0 -3
- package/dist/cli/chunks/chunk-7X7JYWT4.js +0 -27
- package/dist/cli/chunks/chunk-CZO4BJG5.js +0 -2
- package/dist/cli/chunks/chunk-J27F4NSB.js +0 -2
- package/dist/cli/chunks/chunk-J5UNP6W3.js +0 -2
- package/dist/cli/chunks/chunk-MI5Q55DG.js +0 -65
- package/dist/cli/chunks/chunk-TY5WC3FT.js +0 -12
- package/dist/cli/chunks/chunk-UDHVCKGA.js +0 -5
- package/dist/cli/chunks/chunk-XQSIRBKT.js +0 -180
- package/dist/cli/chunks/chunk-YXP6BKGS.js +0 -730
- package/dist/cli/chunks/chunk-ZBABIZ2D.js +0 -2
- package/dist/cli/chunks/chunk-ZCWERUYB.js +0 -12
- package/dist/cli/chunks/claude-flow-setup-5LVJOFKP.js +0 -2
- package/dist/cli/chunks/client-HUVFA5PF.js +0 -2
- package/dist/cli/chunks/core-handlers-UEXO3VAA.js +0 -2
- package/dist/cli/chunks/cross-domain-router-ODU5IZD6.js +0 -2
- package/dist/cli/chunks/domain-transfer-JZA5TMW3.js +0 -2
- package/dist/cli/chunks/dream-HE3OX42F.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-QUIFGGLX.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-42KB37KP.js +0 -2
- package/dist/cli/chunks/hnsw-index-T2PGO77J.js +0 -2
- package/dist/cli/chunks/hybrid-backend-FRNWYRKH.js +0 -2
- package/dist/cli/chunks/impact-analyzer-A5QYOYBR.js +0 -2
- package/dist/cli/chunks/init-wizard-XBU674YH.js +0 -2
- package/dist/cli/chunks/kernel-DV5MTNZD.js +0 -2
- package/dist/cli/chunks/knowledge-graph-4ACGVJQK.js +0 -2
- package/dist/cli/chunks/llm-router-service-PSMASERT.js +0 -2
- package/dist/cli/chunks/load-test-MRUO2VPF.js +0 -2
- package/dist/cli/chunks/mcp-JGSFCEMH.js +0 -2
- package/dist/cli/chunks/memory-backend-2MPGI6JW.js +0 -2
- package/dist/cli/chunks/memory-handlers-XT4HMITB.js +0 -2
- package/dist/cli/chunks/multi-model-executor-26Q5BSVG.js +0 -14
- package/dist/cli/chunks/orchestrator-D5IFV65I.js +0 -393
- package/dist/cli/chunks/pattern-null-store-TGWUL237.js +0 -2
- package/dist/cli/chunks/protocol-executor-GEVH5KD6.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-DJ2JL6QB.js +0 -2
- package/dist/cli/chunks/queen-coordinator-F7E3AS26.js +0 -2
- package/dist/cli/chunks/router-OZH3QSAU.js +0 -2
- package/dist/cli/chunks/routing-feedback-J2E3ADZB.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-HK525Y5Y.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-Q7FB3BKR.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-5ZRCGUI6.js +0 -2
- package/dist/cli/chunks/safe-db-3OYEPVEH.js +0 -2
- package/dist/cli/chunks/schedule-AG4C2EIQ.js +0 -2
- package/dist/cli/chunks/scheduler-SQS2CZFZ.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-NFL6QSZ6.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-MAKDFSHC.js +0 -2
- package/dist/cli/chunks/sync-MBTW5XBF.js +0 -2
- package/dist/cli/chunks/task-handlers-NH4GJHCJ.js +0 -9
- package/dist/cli/chunks/test-MPHGT4T6.js +0 -33
- package/dist/cli/chunks/token-bootstrap-SSDCYEKK.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-J6ZMAK37.js +0 -2
- package/dist/cli/chunks/unified-memory-DDWMC435.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-4JA7SGBK.js +0 -2
- package/dist/cli/chunks/unified-persistence-F6OSNTXY.js +0 -2
- package/dist/cli/chunks/vibium-HOGMFJ2Z.js +0 -2
- package/dist/cli/chunks/visual-security-25SMBIYT.js +0 -2
- package/dist/cli/chunks/witness-chain-PJOQPFUX.js +0 -2
- package/dist/cli/chunks/witness-chain-ZW6KKUZU.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-UKSIDM7Q.js +0 -2
- package/dist/cli/chunks/wrappers-UR7BLXKV.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
|
|
@@ -115,14 +115,15 @@ export async function handleFleetInit(params) {
|
|
|
115
115
|
try {
|
|
116
116
|
// If already initialized, return existing fleet
|
|
117
117
|
if (state.initialized && state.kernel && state.queen) {
|
|
118
|
+
const effectiveConfig = state.kernel.getConfig();
|
|
118
119
|
return {
|
|
119
120
|
success: true,
|
|
120
121
|
data: {
|
|
121
122
|
fleetId: state.fleetId,
|
|
122
|
-
topology:
|
|
123
|
-
maxAgents:
|
|
124
|
-
//
|
|
125
|
-
enabledDomains:
|
|
123
|
+
topology: state.topology,
|
|
124
|
+
maxAgents: effectiveConfig.maxConcurrentAgents,
|
|
125
|
+
// Report the running kernel, not the later caller's requested domains.
|
|
126
|
+
enabledDomains: effectiveConfig.enabledDomains.filter(d => d !== 'coordination'),
|
|
126
127
|
status: 'ready',
|
|
127
128
|
},
|
|
128
129
|
};
|
|
@@ -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
|
},
|
|
@@ -41,6 +41,9 @@ import { getLoadBalancer, } from './load-balancer.js';
|
|
|
41
41
|
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
|
+
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';
|
|
44
47
|
import { createRequire } from 'module';
|
|
45
48
|
const _require = createRequire(import.meta.url);
|
|
46
49
|
const _pkg = _require('../../package.json');
|
|
@@ -382,10 +385,16 @@ export class MCPProtocolServer {
|
|
|
382
385
|
}
|
|
383
386
|
async handleShutdown() {
|
|
384
387
|
console.error('[MCP] Shutdown requested');
|
|
385
|
-
//
|
|
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.
|
|
386
392
|
setTimeout(() => {
|
|
387
|
-
|
|
388
|
-
|
|
393
|
+
if (requestOwnedShutdown('jsonrpc-shutdown'))
|
|
394
|
+
return;
|
|
395
|
+
const exit = () => process.exit(0);
|
|
396
|
+
setTimeout(exit, 3000).unref();
|
|
397
|
+
this.stop().catch(() => { }).finally(exit);
|
|
389
398
|
}, 100);
|
|
390
399
|
return {};
|
|
391
400
|
}
|
|
@@ -550,7 +559,7 @@ export class MCPProtocolServer {
|
|
|
550
559
|
catch (err) {
|
|
551
560
|
// Preserve the diagnostic for operators without exposing it in the MCP
|
|
552
561
|
// response or AG-UI event. Stderr keeps stdio protocol output valid.
|
|
553
|
-
console.error(`[MCP] Tool ${name} failed:`, err);
|
|
562
|
+
console.error(`[MCP] Tool ${name} failed:`, formatErrorForLog(err));
|
|
554
563
|
const error = err instanceof Error ? err : new Error('Tool execution failed');
|
|
555
564
|
// IMP-08: Detect context overflow (413) and trigger reactive compaction
|
|
556
565
|
const errorMsg = error.message || '';
|
|
@@ -839,6 +848,7 @@ export class MCPProtocolServer {
|
|
|
839
848
|
{ name: 'testType', type: 'string', description: 'Type of tests', enum: ['unit', 'integration', 'e2e'] },
|
|
840
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'] },
|
|
841
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 },
|
|
842
852
|
{ name: 'aiEnhancement', type: 'boolean', description: 'Enable AI-powered enhancement', default: true },
|
|
843
853
|
{ name: 'detectAntiPatterns', type: 'boolean', description: 'Detect and report anti-patterns', default: false },
|
|
844
854
|
],
|
|
@@ -1532,6 +1542,12 @@ export class MCPProtocolServer {
|
|
|
1532
1542
|
enum: param.enum,
|
|
1533
1543
|
};
|
|
1534
1544
|
}
|
|
1545
|
+
if (param.type === 'array' && param.items) {
|
|
1546
|
+
properties[param.name] = {
|
|
1547
|
+
...properties[param.name],
|
|
1548
|
+
items: param.items,
|
|
1549
|
+
};
|
|
1550
|
+
}
|
|
1535
1551
|
if (param.default !== undefined) {
|
|
1536
1552
|
properties[param.name] = {
|
|
1537
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);
|
package/dist/mcp/tools/base.d.ts
CHANGED
|
@@ -153,9 +153,11 @@ export interface MCPToolContext {
|
|
|
153
153
|
kernel?: import('../../kernel/interfaces.js').QEKernel;
|
|
154
154
|
}
|
|
155
155
|
/**
|
|
156
|
-
* Data source tracking for audit/transparency
|
|
156
|
+
* Data source tracking for audit/transparency.
|
|
157
|
+
* 'estimated': computed from real inputs mixed with assumed/default values
|
|
158
|
+
* (the result names which ones) — never presented as fully real (#535).
|
|
157
159
|
*/
|
|
158
|
-
export type DataSource = 'real' | 'demo' | 'fallback';
|
|
160
|
+
export type DataSource = 'real' | 'demo' | 'fallback' | 'estimated';
|
|
159
161
|
/**
|
|
160
162
|
* Logger interface for tool operations
|
|
161
163
|
*/
|
|
@@ -196,6 +198,11 @@ export declare abstract class MCPToolBase<TParams extends Record<string, unknown
|
|
|
196
198
|
* MUST be called when returning sample data for transparency
|
|
197
199
|
*/
|
|
198
200
|
protected markAsDemoData(context: MCPToolContext, reason: string): void;
|
|
201
|
+
/**
|
|
202
|
+
* Mark result as partly derived from assumed/default values (#535). The
|
|
203
|
+
* tool's result must say which values were assumed.
|
|
204
|
+
*/
|
|
205
|
+
protected markAsEstimatedData(): void;
|
|
199
206
|
/**
|
|
200
207
|
* Mark result as coming from real service data
|
|
201
208
|
*/
|
package/dist/mcp/tools/base.js
CHANGED
|
@@ -277,6 +277,13 @@ export class MCPToolBase {
|
|
|
277
277
|
demoMode: context.demoMode,
|
|
278
278
|
});
|
|
279
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Mark result as partly derived from assumed/default values (#535). The
|
|
282
|
+
* tool's result must say which values were assumed.
|
|
283
|
+
*/
|
|
284
|
+
markAsEstimatedData() {
|
|
285
|
+
this.currentDataSource = 'estimated';
|
|
286
|
+
}
|
|
280
287
|
/**
|
|
281
288
|
* Mark result as coming from real service data
|
|
282
289
|
*/
|
|
@@ -10,6 +10,32 @@
|
|
|
10
10
|
import { MCPToolBase, } from '../base.js';
|
|
11
11
|
import { createCoherenceService, wasmLoader, } from '../../../integrations/coherence/index.js';
|
|
12
12
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
13
|
+
import { tallyVotes, describeBreakdown } from '../../../integrations/coherence/vote-tally.js';
|
|
14
|
+
/**
|
|
15
|
+
* Check every vote's shape. Returns an error message naming the first bad
|
|
16
|
+
* field, or null when all votes are usable.
|
|
17
|
+
*/
|
|
18
|
+
function validateVotes(votes) {
|
|
19
|
+
const shape = 'Each vote must be { agentId: string, verdict: string | number | boolean, confidence: number 0-1 }.';
|
|
20
|
+
for (let i = 0; i < votes.length; i++) {
|
|
21
|
+
const vote = votes[i];
|
|
22
|
+
if (typeof vote !== 'object' || vote === null || Array.isArray(vote)) {
|
|
23
|
+
return `votes[${i}] must be an object. ${shape}`;
|
|
24
|
+
}
|
|
25
|
+
const { agentId, verdict, confidence } = vote;
|
|
26
|
+
if (typeof agentId !== 'string' || agentId.trim() === '') {
|
|
27
|
+
return `votes[${i}].agentId must be a non-empty string. ${shape}`;
|
|
28
|
+
}
|
|
29
|
+
const verdictType = typeof verdict;
|
|
30
|
+
if (verdictType !== 'string' && verdictType !== 'number' && verdictType !== 'boolean') {
|
|
31
|
+
return `votes[${i}].verdict is required (string, number, or boolean), got ${verdict === null ? 'null' : verdictType}. ${shape}`;
|
|
32
|
+
}
|
|
33
|
+
if (typeof confidence !== 'number' || !Number.isFinite(confidence) || confidence < 0 || confidence > 1) {
|
|
34
|
+
return `votes[${i}].confidence must be a number between 0 and 1, got ${JSON.stringify(confidence) ?? 'undefined'}. ${shape}`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
13
39
|
// ============================================================================
|
|
14
40
|
// Schema
|
|
15
41
|
// ============================================================================
|
|
@@ -18,7 +44,22 @@ const COHERENCE_CONSENSUS_SCHEMA = {
|
|
|
18
44
|
properties: {
|
|
19
45
|
votes: {
|
|
20
46
|
type: 'array',
|
|
21
|
-
description: 'Array of agent votes to verify for consensus'
|
|
47
|
+
description: 'Array of agent votes to verify for consensus (at least 2). Each vote is an object ' +
|
|
48
|
+
'{ agentId: string, verdict: string | number | boolean, confidence: number 0-1, ' +
|
|
49
|
+
'agentType?: string, reasoning?: string }.',
|
|
50
|
+
items: {
|
|
51
|
+
type: 'object',
|
|
52
|
+
description: 'One agent vote',
|
|
53
|
+
properties: {
|
|
54
|
+
agentId: { type: 'string', description: 'Agent identifier', minLength: 1 },
|
|
55
|
+
agentType: { type: 'string', description: 'Agent type (default: worker)' },
|
|
56
|
+
// `verdict` may be a string, number, or boolean, which this schema
|
|
57
|
+
// type cannot express; it is required below and checked in execute().
|
|
58
|
+
confidence: { type: 'number', description: 'Confidence in the verdict', minimum: 0, maximum: 1 },
|
|
59
|
+
reasoning: { type: 'string', description: 'Optional reasoning text' },
|
|
60
|
+
},
|
|
61
|
+
required: ['agentId', 'verdict', 'confidence'],
|
|
62
|
+
},
|
|
22
63
|
},
|
|
23
64
|
confidenceThreshold: {
|
|
24
65
|
type: 'number',
|
|
@@ -102,6 +143,13 @@ export class CoherenceConsensusTool extends MCPToolBase {
|
|
|
102
143
|
error: 'At least two votes are required to verify consensus',
|
|
103
144
|
};
|
|
104
145
|
}
|
|
146
|
+
// A vote without a usable verdict would be grouped as the string
|
|
147
|
+
// "undefined"; three such votes looked like a unanimous false consensus
|
|
148
|
+
// even for a 2-1 split sent under another key (issue #535).
|
|
149
|
+
const voteError = validateVotes(votes);
|
|
150
|
+
if (voteError) {
|
|
151
|
+
return { success: false, error: voteError };
|
|
152
|
+
}
|
|
105
153
|
try {
|
|
106
154
|
// Get service
|
|
107
155
|
const service = await this.getService();
|
|
@@ -152,7 +200,8 @@ export class CoherenceConsensusTool extends MCPToolBase {
|
|
|
152
200
|
success: true,
|
|
153
201
|
data: {
|
|
154
202
|
...fallbackResult,
|
|
155
|
-
recommendation:
|
|
203
|
+
recommendation: `Running in fallback mode (simple analysis): ${describeBreakdown(tallyVotes(votes))} ` +
|
|
204
|
+
`across ${votes.length} votes. ` +
|
|
156
205
|
'Install prime-radiant-advanced-wasm for spectral consensus analysis.',
|
|
157
206
|
usedFallback: true,
|
|
158
207
|
executionTimeMs: Date.now() - startTime,
|
|
@@ -9,19 +9,21 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { MCPToolBase, MCPToolConfig, MCPToolContext } from '../base.js';
|
|
11
11
|
import { ToolResult } from '../../types.js';
|
|
12
|
-
import {
|
|
12
|
+
import { type WorldStatePatch, type WorldStateProvenance, type WorldStateSources } from './world-state.js';
|
|
13
13
|
/**
|
|
14
14
|
* Parameters for GOAP plan tool
|
|
15
15
|
*/
|
|
16
16
|
export interface GOAPPlanParams {
|
|
17
17
|
/** Goal name (named goal) or custom goal conditions object */
|
|
18
18
|
goal: string | Record<string, unknown>;
|
|
19
|
-
/** Current world state (auto-detected if not provided) */
|
|
20
|
-
currentState?:
|
|
19
|
+
/** Current world state (auto-detected if not provided; may be partial) */
|
|
20
|
+
currentState?: WorldStatePatch;
|
|
21
21
|
/** Plan constraints */
|
|
22
22
|
constraints?: {
|
|
23
23
|
maxCost?: number;
|
|
24
24
|
maxDurationMs?: number;
|
|
25
|
+
/** Maximum number of plan steps (positive integer) */
|
|
26
|
+
maxSteps?: number;
|
|
25
27
|
requiredAgentTypes?: string[];
|
|
26
28
|
excludedActions?: string[];
|
|
27
29
|
};
|
|
@@ -46,6 +48,13 @@ export interface GOAPPlanResult {
|
|
|
46
48
|
stepCount: number;
|
|
47
49
|
reusedFrom?: string;
|
|
48
50
|
similarityScore?: number;
|
|
51
|
+
/**
|
|
52
|
+
* Where each start-state field came from ('live' | 'measured' | 'caller' |
|
|
53
|
+
* 'default'). Issue #535: the plan is only as real as its start state.
|
|
54
|
+
*/
|
|
55
|
+
stateProvenance: WorldStateProvenance;
|
|
56
|
+
/** Start-state fields that were DEFAULT_V3_WORLD_STATE assumptions. */
|
|
57
|
+
defaultedFields: string[];
|
|
49
58
|
}
|
|
50
59
|
/**
|
|
51
60
|
* GOAP Plan MCP Tool
|
|
@@ -53,7 +62,10 @@ export interface GOAPPlanResult {
|
|
|
53
62
|
* Finds optimal action sequences to achieve QE goals using A* search.
|
|
54
63
|
*/
|
|
55
64
|
export declare class GOAPPlanTool extends MCPToolBase<GOAPPlanParams, GOAPPlanResult> {
|
|
65
|
+
private readonly worldStateSources;
|
|
56
66
|
private planner;
|
|
67
|
+
/** World-state sources; injectable for tests (defaults read live state). */
|
|
68
|
+
constructor(worldStateSources?: WorldStateSources);
|
|
57
69
|
readonly config: MCPToolConfig;
|
|
58
70
|
private buildSchema;
|
|
59
71
|
/**
|
|
@@ -67,11 +79,12 @@ export declare class GOAPPlanTool extends MCPToolBase<GOAPPlanParams, GOAPPlanRe
|
|
|
67
79
|
/**
|
|
68
80
|
* Execute the GOAP planning
|
|
69
81
|
*/
|
|
70
|
-
execute(params: GOAPPlanParams,
|
|
82
|
+
execute(params: GOAPPlanParams, _context: MCPToolContext): Promise<ToolResult<GOAPPlanResult>>;
|
|
71
83
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
84
|
+
* Validate `constraints` (issue #535): must be an object, only known keys,
|
|
85
|
+
* numeric limits must be numbers, maxSteps a positive integer, and the
|
|
86
|
+
* list constraints string arrays.
|
|
74
87
|
*/
|
|
75
|
-
private
|
|
88
|
+
private validateConstraints;
|
|
76
89
|
}
|
|
77
90
|
//# sourceMappingURL=goap-plan.d.ts.map
|