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
|
@@ -9,7 +9,16 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { MCPToolBase, } from '../base.js';
|
|
11
11
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
12
|
-
import { getSharedGOAPPlanner,
|
|
12
|
+
import { getSharedGOAPPlanner, validateMaxSteps, } from '../../../planning/index.js';
|
|
13
|
+
import { detectWorldState, overlayCallerState, validateWorldStatePatch, defaultedFields, } from './world-state.js';
|
|
14
|
+
/** Constraint keys goap_plan understands; anything else is rejected (#535). */
|
|
15
|
+
const KNOWN_CONSTRAINT_KEYS = [
|
|
16
|
+
'maxCost',
|
|
17
|
+
'maxDurationMs',
|
|
18
|
+
'maxSteps',
|
|
19
|
+
'requiredAgentTypes',
|
|
20
|
+
'excludedActions',
|
|
21
|
+
];
|
|
13
22
|
// ============================================================================
|
|
14
23
|
// Tool Implementation
|
|
15
24
|
// ============================================================================
|
|
@@ -19,7 +28,13 @@ import { getSharedGOAPPlanner, DEFAULT_V3_WORLD_STATE, } from '../../../planning
|
|
|
19
28
|
* Finds optimal action sequences to achieve QE goals using A* search.
|
|
20
29
|
*/
|
|
21
30
|
export class GOAPPlanTool extends MCPToolBase {
|
|
31
|
+
worldStateSources;
|
|
22
32
|
planner = null;
|
|
33
|
+
/** World-state sources; injectable for tests (defaults read live state). */
|
|
34
|
+
constructor(worldStateSources = {}) {
|
|
35
|
+
super();
|
|
36
|
+
this.worldStateSources = worldStateSources;
|
|
37
|
+
}
|
|
23
38
|
config = {
|
|
24
39
|
name: 'qe/planning/goap_plan',
|
|
25
40
|
description: 'Find optimal action plan to achieve a QE goal using A* search. ' +
|
|
@@ -52,6 +67,11 @@ export class GOAPPlanTool extends MCPToolBase {
|
|
|
52
67
|
type: 'number',
|
|
53
68
|
description: 'Maximum total duration in milliseconds',
|
|
54
69
|
},
|
|
70
|
+
maxSteps: {
|
|
71
|
+
type: 'number',
|
|
72
|
+
description: 'Maximum number of steps (actions) in the plan; positive integer',
|
|
73
|
+
minimum: 1,
|
|
74
|
+
},
|
|
55
75
|
requiredAgentTypes: {
|
|
56
76
|
type: 'array',
|
|
57
77
|
description: 'Only use actions that these agent types can execute',
|
|
@@ -87,12 +107,18 @@ export class GOAPPlanTool extends MCPToolBase {
|
|
|
87
107
|
/**
|
|
88
108
|
* Execute the GOAP planning
|
|
89
109
|
*/
|
|
90
|
-
async execute(params,
|
|
110
|
+
async execute(params, _context) {
|
|
91
111
|
try {
|
|
112
|
+
// Issue #535: nested constraint properties aren't covered by the base
|
|
113
|
+
// schema validation (and the MCP bridge only exposes top-level
|
|
114
|
+
// params), so validate them here instead of silently ignoring them.
|
|
115
|
+
const constraintError = this.validateConstraints(params.constraints);
|
|
116
|
+
if (constraintError) {
|
|
117
|
+
return { success: false, error: constraintError };
|
|
118
|
+
}
|
|
92
119
|
const planner = await this.getPlanner();
|
|
93
120
|
// Resolve goal to conditions
|
|
94
121
|
let goalConditions;
|
|
95
|
-
let goalName;
|
|
96
122
|
if (typeof params.goal === 'string') {
|
|
97
123
|
// Look up named goal
|
|
98
124
|
const namedGoals = await planner.getGoals();
|
|
@@ -105,20 +131,34 @@ export class GOAPPlanTool extends MCPToolBase {
|
|
|
105
131
|
};
|
|
106
132
|
}
|
|
107
133
|
goalConditions = found.conditions;
|
|
108
|
-
goalName = found.name;
|
|
109
134
|
}
|
|
110
135
|
else {
|
|
111
136
|
// Use custom goal conditions
|
|
112
137
|
goalConditions = params.goal;
|
|
113
|
-
goalName = 'custom';
|
|
114
138
|
}
|
|
115
|
-
//
|
|
116
|
-
|
|
139
|
+
// Issue #535: start from the live/measured world state (not a static
|
|
140
|
+
// DEFAULT_V3_WORLD_STATE copy), overlaid with any caller-supplied
|
|
141
|
+
// fields, and keep track of which values are assumptions.
|
|
142
|
+
if (params.currentState !== undefined) {
|
|
143
|
+
const stateError = validateWorldStatePatch(params.currentState, [
|
|
144
|
+
...planner.getReferencedStateKeys(),
|
|
145
|
+
...Object.keys(goalConditions),
|
|
146
|
+
]);
|
|
147
|
+
if (stateError) {
|
|
148
|
+
return { success: false, error: `Invalid currentState: ${stateError}` };
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const detected = params.currentState
|
|
152
|
+
? overlayCallerState(await detectWorldState(this.worldStateSources), params.currentState)
|
|
153
|
+
: await detectWorldState(this.worldStateSources);
|
|
154
|
+
const currentState = detected.state;
|
|
155
|
+
const defaulted = defaultedFields(detected.provenance);
|
|
117
156
|
// Build constraints
|
|
118
157
|
const constraints = params.constraints
|
|
119
158
|
? {
|
|
120
159
|
maxCost: params.constraints.maxCost,
|
|
121
160
|
maxDurationMs: params.constraints.maxDurationMs,
|
|
161
|
+
maxSteps: params.constraints.maxSteps,
|
|
122
162
|
requiredAgentTypes: params.constraints.requiredAgentTypes,
|
|
123
163
|
excludedActions: params.constraints.excludedActions,
|
|
124
164
|
}
|
|
@@ -126,14 +166,23 @@ export class GOAPPlanTool extends MCPToolBase {
|
|
|
126
166
|
// Find plan using A* search
|
|
127
167
|
const plan = await planner.findPlan(currentState, goalConditions, constraints);
|
|
128
168
|
if (!plan) {
|
|
169
|
+
const stepHint = constraints?.maxSteps !== undefined
|
|
170
|
+
? ` (maxSteps: ${constraints.maxSteps} — the goal may need more steps)`
|
|
171
|
+
: '';
|
|
129
172
|
return {
|
|
130
173
|
success: false,
|
|
131
|
-
error:
|
|
174
|
+
error: `No valid plan found for the given goal and constraints${stepHint}. ` +
|
|
132
175
|
'Try relaxing constraints or seeding more actions.',
|
|
133
176
|
};
|
|
134
177
|
}
|
|
135
|
-
//
|
|
136
|
-
|
|
178
|
+
// The search is real; the start state is only 'real' if nothing in it
|
|
179
|
+
// was an assumed default.
|
|
180
|
+
if (defaulted.length === 0) {
|
|
181
|
+
this.markAsRealData();
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this.markAsEstimatedData();
|
|
185
|
+
}
|
|
137
186
|
return {
|
|
138
187
|
success: true,
|
|
139
188
|
data: {
|
|
@@ -151,6 +200,8 @@ export class GOAPPlanTool extends MCPToolBase {
|
|
|
151
200
|
stepCount: plan.actions.length,
|
|
152
201
|
reusedFrom: plan.reusedFrom,
|
|
153
202
|
similarityScore: plan.similarityScore,
|
|
203
|
+
stateProvenance: detected.provenance,
|
|
204
|
+
defaultedFields: defaulted,
|
|
154
205
|
},
|
|
155
206
|
};
|
|
156
207
|
}
|
|
@@ -162,17 +213,38 @@ export class GOAPPlanTool extends MCPToolBase {
|
|
|
162
213
|
}
|
|
163
214
|
}
|
|
164
215
|
/**
|
|
165
|
-
*
|
|
166
|
-
*
|
|
216
|
+
* Validate `constraints` (issue #535): must be an object, only known keys,
|
|
217
|
+
* numeric limits must be numbers, maxSteps a positive integer, and the
|
|
218
|
+
* list constraints string arrays.
|
|
167
219
|
*/
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
220
|
+
validateConstraints(constraints) {
|
|
221
|
+
if (constraints === undefined || constraints === null)
|
|
222
|
+
return null;
|
|
223
|
+
if (typeof constraints !== 'object' || Array.isArray(constraints)) {
|
|
224
|
+
return 'constraints must be an object';
|
|
225
|
+
}
|
|
226
|
+
const c = constraints;
|
|
227
|
+
const unknownKeys = Object.keys(c).filter((k) => !KNOWN_CONSTRAINT_KEYS.includes(k));
|
|
228
|
+
if (unknownKeys.length > 0) {
|
|
229
|
+
return (`Unknown constraint(s): ${unknownKeys.join(', ')}. ` +
|
|
230
|
+
`Supported constraints: ${KNOWN_CONSTRAINT_KEYS.join(', ')}`);
|
|
231
|
+
}
|
|
232
|
+
for (const key of ['maxCost', 'maxDurationMs']) {
|
|
233
|
+
const v = c[key];
|
|
234
|
+
if (v !== undefined && (typeof v !== 'number' || !Number.isFinite(v) || v < 0)) {
|
|
235
|
+
return `constraints.${key} must be a non-negative number, got ${String(v)}`;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
const stepsError = validateMaxSteps(c.maxSteps);
|
|
239
|
+
if (stepsError)
|
|
240
|
+
return stepsError;
|
|
241
|
+
for (const key of ['requiredAgentTypes', 'excludedActions']) {
|
|
242
|
+
const v = c[key];
|
|
243
|
+
if (v !== undefined && (!Array.isArray(v) || !v.every((x) => typeof x === 'string'))) {
|
|
244
|
+
return `constraints.${key} must be an array of strings`;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return null;
|
|
176
248
|
}
|
|
177
249
|
}
|
|
178
250
|
//# sourceMappingURL=goap-plan.js.map
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { MCPToolBase, MCPToolConfig, MCPToolContext } from '../base.js';
|
|
11
11
|
import { ToolResult } from '../../types.js';
|
|
12
|
+
import { type WorldStateProvenance, type WorldStateSources } from './world-state.js';
|
|
12
13
|
/**
|
|
13
14
|
* Status type to query
|
|
14
15
|
*/
|
|
@@ -29,28 +30,44 @@ export interface GOAPStatusParams {
|
|
|
29
30
|
[key: string]: unknown;
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
32
|
-
* World state status result
|
|
33
|
+
* World state status result.
|
|
34
|
+
*
|
|
35
|
+
* Issue #535: values that are not observed from a live source are reported
|
|
36
|
+
* as `null` (not the planner's optimistic defaults such as securityScore
|
|
37
|
+
* 100), and `provenance` names the source of every field.
|
|
33
38
|
*/
|
|
34
39
|
export interface WorldStateResult {
|
|
35
40
|
coverage: {
|
|
36
|
-
line: number;
|
|
37
|
-
branch: number;
|
|
38
|
-
function: number;
|
|
41
|
+
line: number | null;
|
|
42
|
+
branch: number | null;
|
|
43
|
+
function: number | null;
|
|
39
44
|
measured: boolean;
|
|
45
|
+
/** Coverage report the values were read from, when measured. */
|
|
46
|
+
report?: {
|
|
47
|
+
source: string;
|
|
48
|
+
measuredAt: string;
|
|
49
|
+
};
|
|
40
50
|
};
|
|
41
51
|
quality: {
|
|
42
|
-
testsPassing: number;
|
|
43
|
-
securityScore: number;
|
|
44
|
-
performanceScore: number;
|
|
52
|
+
testsPassing: number | null;
|
|
53
|
+
securityScore: number | null;
|
|
54
|
+
performanceScore: number | null;
|
|
45
55
|
};
|
|
46
56
|
fleet: {
|
|
57
|
+
/** Whether a fleet (fleet_init) is running in this MCP server process. */
|
|
58
|
+
initialized: boolean;
|
|
47
59
|
activeAgents: number;
|
|
48
|
-
maxAgents: number;
|
|
60
|
+
maxAgents: number | null;
|
|
61
|
+
availableAgents: string[];
|
|
49
62
|
};
|
|
50
63
|
resources: {
|
|
51
|
-
timeRemaining: number;
|
|
52
|
-
parallelSlots: number;
|
|
64
|
+
timeRemaining: number | null;
|
|
65
|
+
parallelSlots: number | null;
|
|
53
66
|
};
|
|
67
|
+
/** Dotted field path -> 'live' | 'measured' | 'caller' | 'default'. */
|
|
68
|
+
provenance: WorldStateProvenance;
|
|
69
|
+
/** Fields the planner would fill with DEFAULT_V3_WORLD_STATE assumptions. */
|
|
70
|
+
defaultedFields: string[];
|
|
54
71
|
}
|
|
55
72
|
/**
|
|
56
73
|
* Goals status result
|
|
@@ -132,8 +149,11 @@ export type GOAPStatusResult = {
|
|
|
132
149
|
* Query GOAP system status for world state, goals, actions, or plans.
|
|
133
150
|
*/
|
|
134
151
|
export declare class GOAPStatusTool extends MCPToolBase<GOAPStatusParams, GOAPStatusResult> {
|
|
152
|
+
private readonly worldStateSources;
|
|
135
153
|
private planner;
|
|
136
154
|
private executor;
|
|
155
|
+
/** World-state sources; injectable for tests (defaults read live state). */
|
|
156
|
+
constructor(worldStateSources?: WorldStateSources);
|
|
137
157
|
readonly config: MCPToolConfig;
|
|
138
158
|
private buildSchema;
|
|
139
159
|
/**
|
|
@@ -151,9 +171,14 @@ export declare class GOAPStatusTool extends MCPToolBase<GOAPStatusParams, GOAPSt
|
|
|
151
171
|
/**
|
|
152
172
|
* Execute the status query
|
|
153
173
|
*/
|
|
154
|
-
execute(params: GOAPStatusParams,
|
|
174
|
+
execute(params: GOAPStatusParams, _context: MCPToolContext): Promise<ToolResult<GOAPStatusResult>>;
|
|
155
175
|
/**
|
|
156
|
-
* Get current world state
|
|
176
|
+
* Get current world state.
|
|
177
|
+
*
|
|
178
|
+
* Issue #535: previously returned a static DEFAULT_V3_WORLD_STATE copy
|
|
179
|
+
* (fleet.activeAgents always 0) and called markAsRealData() on it. Now
|
|
180
|
+
* reads the live fleet and any coverage report, reports unobserved values
|
|
181
|
+
* as null, and only claims 'real' when nothing was defaulted.
|
|
157
182
|
*/
|
|
158
183
|
private getWorldState;
|
|
159
184
|
/**
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { MCPToolBase, } from '../base.js';
|
|
11
11
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
12
|
-
import { getSharedGOAPPlanner, createMockExecutor,
|
|
12
|
+
import { getSharedGOAPPlanner, createMockExecutor, getAllQEActions, } from '../../../planning/index.js';
|
|
13
|
+
import { detectWorldState, defaultedFields, } from './world-state.js';
|
|
13
14
|
// ============================================================================
|
|
14
15
|
// Tool Implementation
|
|
15
16
|
// ============================================================================
|
|
@@ -19,8 +20,14 @@ import { getSharedGOAPPlanner, createMockExecutor, DEFAULT_V3_WORLD_STATE, getAl
|
|
|
19
20
|
* Query GOAP system status for world state, goals, actions, or plans.
|
|
20
21
|
*/
|
|
21
22
|
export class GOAPStatusTool extends MCPToolBase {
|
|
23
|
+
worldStateSources;
|
|
22
24
|
planner = null;
|
|
23
25
|
executor = null;
|
|
26
|
+
/** World-state sources; injectable for tests (defaults read live state). */
|
|
27
|
+
constructor(worldStateSources = {}) {
|
|
28
|
+
super();
|
|
29
|
+
this.worldStateSources = worldStateSources;
|
|
30
|
+
}
|
|
24
31
|
config = {
|
|
25
32
|
name: 'qe/planning/goap_status',
|
|
26
33
|
description: 'Get GOAP system status: world state, available goals, actions, or plans. ' +
|
|
@@ -93,7 +100,7 @@ export class GOAPStatusTool extends MCPToolBase {
|
|
|
93
100
|
/**
|
|
94
101
|
* Execute the status query
|
|
95
102
|
*/
|
|
96
|
-
async execute(params,
|
|
103
|
+
async execute(params, _context) {
|
|
97
104
|
try {
|
|
98
105
|
switch (params.type) {
|
|
99
106
|
case 'world':
|
|
@@ -121,37 +128,60 @@ export class GOAPStatusTool extends MCPToolBase {
|
|
|
121
128
|
}
|
|
122
129
|
}
|
|
123
130
|
/**
|
|
124
|
-
* Get current world state
|
|
131
|
+
* Get current world state.
|
|
132
|
+
*
|
|
133
|
+
* Issue #535: previously returned a static DEFAULT_V3_WORLD_STATE copy
|
|
134
|
+
* (fleet.activeAgents always 0) and called markAsRealData() on it. Now
|
|
135
|
+
* reads the live fleet and any coverage report, reports unobserved values
|
|
136
|
+
* as null, and only claims 'real' when nothing was defaulted.
|
|
125
137
|
*/
|
|
126
138
|
async getWorldState() {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const
|
|
130
|
-
|
|
139
|
+
const detected = await detectWorldState(this.worldStateSources);
|
|
140
|
+
const { state, provenance } = detected;
|
|
141
|
+
const observed = (field) => provenance[field] !== 'default';
|
|
142
|
+
const valueIfObserved = (field, value) => observed(field) ? value : null;
|
|
143
|
+
const defaulted = defaultedFields(provenance);
|
|
144
|
+
const exposedFields = [
|
|
145
|
+
'coverage.line', 'coverage.branch', 'coverage.function',
|
|
146
|
+
'quality.testsPassing', 'quality.securityScore', 'quality.performanceScore',
|
|
147
|
+
'fleet.activeAgents', 'fleet.maxAgents',
|
|
148
|
+
'resources.timeRemaining', 'resources.parallelSlots',
|
|
149
|
+
];
|
|
150
|
+
if (exposedFields.every(observed)) {
|
|
151
|
+
this.markAsRealData();
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
this.markAsEstimatedData();
|
|
155
|
+
}
|
|
131
156
|
return {
|
|
132
157
|
success: true,
|
|
133
158
|
data: {
|
|
134
159
|
type: 'world',
|
|
135
160
|
data: {
|
|
136
161
|
coverage: {
|
|
137
|
-
line: state.coverage.line,
|
|
138
|
-
branch: state.coverage.branch,
|
|
139
|
-
function: state.coverage.function,
|
|
162
|
+
line: valueIfObserved('coverage.line', state.coverage.line),
|
|
163
|
+
branch: valueIfObserved('coverage.branch', state.coverage.branch),
|
|
164
|
+
function: valueIfObserved('coverage.function', state.coverage.function),
|
|
140
165
|
measured: state.coverage.measured,
|
|
166
|
+
...(detected.coverageReport ? { report: detected.coverageReport } : {}),
|
|
141
167
|
},
|
|
142
168
|
quality: {
|
|
143
|
-
testsPassing: state.quality.testsPassing,
|
|
144
|
-
securityScore: state.quality.securityScore,
|
|
145
|
-
performanceScore: state.quality.performanceScore,
|
|
169
|
+
testsPassing: valueIfObserved('quality.testsPassing', state.quality.testsPassing),
|
|
170
|
+
securityScore: valueIfObserved('quality.securityScore', state.quality.securityScore),
|
|
171
|
+
performanceScore: valueIfObserved('quality.performanceScore', state.quality.performanceScore),
|
|
146
172
|
},
|
|
147
173
|
fleet: {
|
|
174
|
+
initialized: detected.fleetInitialized,
|
|
148
175
|
activeAgents: state.fleet.activeAgents,
|
|
149
|
-
maxAgents: state.fleet.maxAgents,
|
|
176
|
+
maxAgents: valueIfObserved('fleet.maxAgents', state.fleet.maxAgents),
|
|
177
|
+
availableAgents: [...state.fleet.availableAgents],
|
|
150
178
|
},
|
|
151
179
|
resources: {
|
|
152
|
-
timeRemaining: state.resources.timeRemaining,
|
|
153
|
-
parallelSlots: state.resources.parallelSlots,
|
|
180
|
+
timeRemaining: valueIfObserved('resources.timeRemaining', state.resources.timeRemaining),
|
|
181
|
+
parallelSlots: valueIfObserved('resources.parallelSlots', state.resources.parallelSlots),
|
|
154
182
|
},
|
|
183
|
+
provenance,
|
|
184
|
+
defaultedFields: defaulted,
|
|
155
185
|
},
|
|
156
186
|
},
|
|
157
187
|
};
|
|
@@ -184,7 +214,6 @@ export class GOAPStatusTool extends MCPToolBase {
|
|
|
184
214
|
* Get available actions
|
|
185
215
|
*/
|
|
186
216
|
async getActions(category, limit = 50) {
|
|
187
|
-
const planner = await this.getPlanner();
|
|
188
217
|
// Get actions from the library
|
|
189
218
|
let actions = [];
|
|
190
219
|
// Get actions from the action library
|
|
@@ -224,18 +253,18 @@ export class GOAPStatusTool extends MCPToolBase {
|
|
|
224
253
|
*/
|
|
225
254
|
async getPlans(status, limit = 20) {
|
|
226
255
|
const planner = await this.getPlanner();
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
256
|
+
const [{ plans, count }, reuseStats] = await Promise.all([
|
|
257
|
+
planner.listPlanSummaries(status, limit),
|
|
258
|
+
planner.getPlanReuseStats(),
|
|
259
|
+
]);
|
|
231
260
|
this.markAsRealData();
|
|
232
261
|
return {
|
|
233
262
|
success: true,
|
|
234
263
|
data: {
|
|
235
264
|
type: 'plans',
|
|
236
265
|
data: {
|
|
237
|
-
plans
|
|
238
|
-
count
|
|
266
|
+
plans,
|
|
267
|
+
count,
|
|
239
268
|
reuseStats: {
|
|
240
269
|
totalPlans: reuseStats.totalPlans,
|
|
241
270
|
reusedPlans: reuseStats.reusedPlans,
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GOAP world-state detection for the planning MCP tools (issue #535).
|
|
3
|
+
*
|
|
4
|
+
* `goap_status {type:"world"}` and `goap_plan`'s auto-detected start state
|
|
5
|
+
* used to return a static copy of DEFAULT_V3_WORLD_STATE (fleet frozen at
|
|
6
|
+
* `activeAgents: 0`, coverage 0, securityScore 100, ...) and label it as real
|
|
7
|
+
* data. This module builds the state from sources that are actually live in
|
|
8
|
+
* the MCP server process and records, per field, where each value came from:
|
|
9
|
+
*
|
|
10
|
+
* - 'live' — read from the running fleet (the same queen/kernel state
|
|
11
|
+
* `agent_list` reads)
|
|
12
|
+
* - 'measured' — read from a coverage report on disk
|
|
13
|
+
* (`coverage/coverage-summary.json`, istanbul json-summary)
|
|
14
|
+
* - 'caller' — supplied by the caller (goap_plan `currentState`)
|
|
15
|
+
* - 'default' — not measured; the planner's DEFAULT_V3_WORLD_STATE value
|
|
16
|
+
* is used as an assumption and must not be reported as real
|
|
17
|
+
*
|
|
18
|
+
* @module mcp/tools/planning/world-state
|
|
19
|
+
*/
|
|
20
|
+
import { type V3WorldState } from '../../../planning/index.js';
|
|
21
|
+
export type WorldStateFieldSource = 'live' | 'measured' | 'caller' | 'default';
|
|
22
|
+
/** Dotted world-state field path -> where its value came from. */
|
|
23
|
+
export type WorldStateProvenance = Record<string, WorldStateFieldSource>;
|
|
24
|
+
/** Snapshot of the in-process fleet (queen + kernel). */
|
|
25
|
+
export interface FleetSnapshot {
|
|
26
|
+
/** Agents with status 'running' (same definition as queen.getHealth()). */
|
|
27
|
+
activeAgents: number;
|
|
28
|
+
/** Kernel's configured concurrent-agent cap (fleet_init maxAgents). */
|
|
29
|
+
maxAgents: number;
|
|
30
|
+
/** Distinct agent types currently idle or running. */
|
|
31
|
+
availableAgents: string[];
|
|
32
|
+
}
|
|
33
|
+
/** Line/branch/function coverage percentages read from a report file. */
|
|
34
|
+
export interface CoverageSnapshot {
|
|
35
|
+
line: number;
|
|
36
|
+
branch: number;
|
|
37
|
+
function: number;
|
|
38
|
+
/** Report path relative to the project root, for traceability. */
|
|
39
|
+
source: string;
|
|
40
|
+
/** Report file modification time (ISO). */
|
|
41
|
+
measuredAt: string;
|
|
42
|
+
}
|
|
43
|
+
export interface DetectedWorldState {
|
|
44
|
+
state: V3WorldState;
|
|
45
|
+
provenance: WorldStateProvenance;
|
|
46
|
+
/** True when a fleet is initialized in this process. */
|
|
47
|
+
fleetInitialized: boolean;
|
|
48
|
+
/** Coverage report the coverage fields came from, if any. */
|
|
49
|
+
coverageReport?: {
|
|
50
|
+
source: string;
|
|
51
|
+
measuredAt: string;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Caller-supplied (partial) world state: any subset of each section's
|
|
56
|
+
* fields, plus planner flag keys the action library uses (e.g.
|
|
57
|
+
* `coverage.gapsIdentified`).
|
|
58
|
+
*/
|
|
59
|
+
export type WorldStatePatch = {
|
|
60
|
+
[S in keyof V3WorldState]?: Partial<V3WorldState[S]> & Record<string, unknown>;
|
|
61
|
+
};
|
|
62
|
+
export interface WorldStateSources {
|
|
63
|
+
readFleet?: () => Promise<FleetSnapshot | null>;
|
|
64
|
+
readCoverage?: () => CoverageSnapshot | null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Read the in-process fleet via core-handlers' fleet state — the same queen
|
|
68
|
+
* `agent_list` reads. Returns null when no fleet is initialized. Dynamic
|
|
69
|
+
* import: core-handlers transitively imports the tool registry, which
|
|
70
|
+
* imports this module's callers (a static import would be circular).
|
|
71
|
+
*/
|
|
72
|
+
export declare function readLiveFleet(): Promise<FleetSnapshot | null>;
|
|
73
|
+
/**
|
|
74
|
+
* Read `coverage/coverage-summary.json` (istanbul/v8 json-summary reporter)
|
|
75
|
+
* under the project root. Fixed relative path — no caller-controlled input
|
|
76
|
+
* reaches the filesystem. Returns null when absent, oversized, or malformed.
|
|
77
|
+
*/
|
|
78
|
+
export declare function readCoverageSummary(projectRoot?: string): CoverageSnapshot | null;
|
|
79
|
+
/**
|
|
80
|
+
* Build the current world state from live/measured sources, falling back to
|
|
81
|
+
* DEFAULT_V3_WORLD_STATE per field and recording which is which.
|
|
82
|
+
*/
|
|
83
|
+
export declare function detectWorldState(sources?: WorldStateSources): Promise<DetectedWorldState>;
|
|
84
|
+
/**
|
|
85
|
+
* Validate a caller-supplied world state (issue #535, codex review): known
|
|
86
|
+
* fields must match the V3WorldState schema (types, 0-100 percentages,
|
|
87
|
+
* enums); other keys are accepted only if a loaded planner action (seeded
|
|
88
|
+
* or custom), the seeded library, or the goal references them (planner
|
|
89
|
+
* flags such as `coverage.gapsIdentified`) and hold a primitive value.
|
|
90
|
+
* Returns an error message, or null when valid.
|
|
91
|
+
*/
|
|
92
|
+
export declare function validateWorldStatePatch(provided: unknown, extraAllowedKeys?: Iterable<string>): string | null;
|
|
93
|
+
/**
|
|
94
|
+
* Overlay a caller-supplied (possibly partial) world state onto a detected
|
|
95
|
+
* one, section by section, marking every overridden leaf as 'caller'.
|
|
96
|
+
* Callers must run validateWorldStatePatch() first; this only merges.
|
|
97
|
+
*/
|
|
98
|
+
export declare function overlayCallerState(detected: DetectedWorldState, provided: WorldStatePatch): DetectedWorldState;
|
|
99
|
+
/** Field paths whose values are assumptions rather than observations. */
|
|
100
|
+
export declare function defaultedFields(provenance: WorldStateProvenance): string[];
|
|
101
|
+
//# sourceMappingURL=world-state.d.ts.map
|