agentic-qe 3.14.4 → 3.14.5
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 +93 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/audit/witness-chain.d.ts +1 -1
- package/dist/audit/witness-chain.js +29 -22
- package/dist/cli/bundle.js +13 -10
- package/dist/cli/chunks/adapter-IYC62SXA.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-5PC7D2FW.js → agent-booster-wasm-EDNKP3SP.js} +2 -2
- package/dist/cli/chunks/{agent-handler-RDNTK4CA.js → agent-handler-V6CZ7Q6S.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-NAAMBWIR.js → agent-memory-branch-ZMD6ULC3.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-LLOU2IXD.js +2 -0
- package/dist/cli/chunks/{arena-HXTWJ5YY.js → arena-4UPAEHFT.js} +4 -4
- package/dist/cli/chunks/{arena-KXFHRWX4.js → arena-QLSBESC7.js} +2 -2
- package/dist/cli/chunks/{audit-YSGA7UWT.js → audit-CVZQMF55.js} +3 -3
- package/dist/cli/chunks/base-P3Z4IKCT.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-UICJZIDG.js → better-sqlite3-4DSBPDRH.js} +2 -2
- package/dist/cli/chunks/brain-handler-GBY4EZ4P.js +94 -0
- package/dist/cli/chunks/{branch-enumerator-SS7UNVIA.js → branch-enumerator-XYBVXCNO.js} +2 -2
- package/dist/cli/chunks/{browser-77GI6KBE.js → browser-32F6MREU.js} +2 -2
- package/dist/cli/chunks/browser-workflow-YYHQQ25X.js +2 -0
- package/dist/cli/chunks/{chunk-FGYMFUE2.js → chunk-2JGEZHWY.js} +2 -2
- package/dist/cli/chunks/{chunk-MOBNBMFW.js → chunk-2KJQ2UQE.js} +1 -1
- package/dist/cli/chunks/{chunk-C2WU3533.js → chunk-2OMLTYQK.js} +1 -1
- package/dist/cli/chunks/{chunk-CU46J64M.js → chunk-37TUN44F.js} +2 -2
- package/dist/cli/chunks/{chunk-Z3RHREWF.js → chunk-3DDXWYMO.js} +1 -1
- package/dist/cli/chunks/{chunk-Q5DO24IJ.js → chunk-3EZ5DR2R.js} +3 -3
- package/dist/cli/chunks/{chunk-WLG5AJ4N.js → chunk-3KDL6QDK.js} +2 -2
- package/dist/cli/chunks/{chunk-MTZH7AHC.js → chunk-3VIXOHMS.js} +1 -1
- package/dist/cli/chunks/{chunk-ISDMD6EU.js → chunk-3YUB5HER.js} +96 -96
- package/dist/cli/chunks/{chunk-CDKG6EI7.js → chunk-4FWTLJEP.js} +2 -2
- package/dist/cli/chunks/{chunk-HDSAM2RE.js → chunk-52L77RMG.js} +2 -2
- package/dist/cli/chunks/{chunk-MEGDYJPV.js → chunk-5D36YHS3.js} +4 -4
- package/dist/cli/chunks/{chunk-T6BVLVI5.js → chunk-5WOSWNDN.js} +1 -1
- package/dist/cli/chunks/{chunk-M2JBBZQB.js → chunk-67YV75XP.js} +2 -2
- package/dist/cli/chunks/{chunk-KHFNNVJA.js → chunk-6A44AOGN.js} +2 -2
- package/dist/cli/chunks/{chunk-IPR4QP3H.js → chunk-6CR4VQBQ.js} +2 -2
- package/dist/cli/chunks/{chunk-XRT2WRMS.js → chunk-6ITZZIQX.js} +2 -2
- package/dist/cli/chunks/{chunk-4OYFXLBK.js → chunk-6LKDHEBY.js} +2 -2
- package/dist/cli/chunks/{chunk-FLYOJOKN.js → chunk-6TU7FEMD.js} +1 -1
- package/dist/cli/chunks/{chunk-6QYNWR7U.js → chunk-6VAZAHQG.js} +2 -2
- package/dist/cli/chunks/{chunk-TWAWHOP7.js → chunk-73EI4C2E.js} +2 -2
- package/dist/cli/chunks/{chunk-5R3QL7WN.js → chunk-75QJ5HWE.js} +2 -2
- package/dist/cli/chunks/{chunk-Y3MW3YBC.js → chunk-7CD7PBHY.js} +2 -2
- package/dist/cli/chunks/chunk-7DETTOPZ.js +14 -0
- package/dist/cli/chunks/{chunk-KSKEF7LZ.js → chunk-7JZJJA7U.js} +3 -3
- package/dist/cli/chunks/{chunk-AIHDEEJO.js → chunk-7VFY7TUR.js} +2 -2
- package/dist/cli/chunks/chunk-7X7JYWT4.js +27 -0
- package/dist/cli/chunks/chunk-AF4XKLXO.js +2 -0
- package/dist/cli/chunks/{chunk-6KJABXAR.js → chunk-AFEDJ3RU.js} +2 -2
- package/dist/cli/chunks/{chunk-5SJHQ2CO.js → chunk-AMMQOV35.js} +2 -2
- package/dist/cli/chunks/{chunk-6VRA2QGL.js → chunk-BHFR2EXL.js} +1 -1
- package/dist/cli/chunks/{chunk-ZBAKA4YB.js → chunk-BJPL6THQ.js} +1 -1
- package/dist/cli/chunks/{chunk-DOTK76IJ.js → chunk-BXVAVFGU.js} +2 -2
- package/dist/cli/chunks/{chunk-MNW6QGNJ.js → chunk-BYG36QC5.js} +2 -2
- package/dist/cli/chunks/chunk-C3HQL6S4.js +2 -0
- package/dist/cli/chunks/{chunk-PZJOPURC.js → chunk-C3Z4VVHP.js} +5 -5
- package/dist/cli/chunks/{chunk-OULHKEVH.js → chunk-CPC7FN52.js} +2 -2
- package/dist/cli/chunks/{chunk-BFP7KO7P.js → chunk-CVMNJSCB.js} +2 -2
- package/dist/cli/chunks/{chunk-AUXFKCQL.js → chunk-CYE2TJFV.js} +2 -2
- package/dist/cli/chunks/{chunk-7D777LTF.js → chunk-CZO4BJG5.js} +2 -2
- package/dist/cli/chunks/{chunk-VD6QRULW.js → chunk-D6OUCB2H.js} +2 -2
- package/dist/cli/chunks/{chunk-6UWGMOND.js → chunk-DDCIYOGT.js} +2 -2
- package/dist/cli/chunks/{chunk-STJCATGN.js → chunk-DKUBQQFG.js} +2 -2
- package/dist/cli/chunks/{chunk-M4WJKGVK.js → chunk-DLF5BOJD.js} +1 -1
- package/dist/cli/chunks/{chunk-DA5K5754.js → chunk-DO6EI5KB.js} +1 -1
- package/dist/cli/chunks/{chunk-BDESSCVR.js → chunk-DPBRWP4J.js} +3 -3
- package/dist/cli/chunks/{chunk-HV2J7KKQ.js → chunk-E3W6XQ57.js} +2 -2
- package/dist/cli/chunks/{chunk-MDWCE7YW.js → chunk-E4AZXCT5.js} +1 -1
- package/dist/cli/chunks/{chunk-F3SBRQC6.js → chunk-E4EYPYR3.js} +2 -2
- package/dist/cli/chunks/{chunk-55RWDRJD.js → chunk-EFV4ADMO.js} +4 -4
- package/dist/cli/chunks/{chunk-5YPYDPBJ.js → chunk-ELBZON4V.js} +2 -2
- package/dist/cli/chunks/{chunk-PO3IXGMQ.js → chunk-EOR2UT72.js} +2 -2
- package/dist/cli/chunks/{chunk-EDJ3O7RH.js → chunk-F34OAHOM.js} +2 -2
- package/dist/cli/chunks/{chunk-XRYF6JV7.js → chunk-FUNGTIF2.js} +2 -2
- package/dist/cli/chunks/{chunk-EKQ673SA.js → chunk-G3L5L6YQ.js} +1 -1
- package/dist/cli/chunks/{chunk-NJBGXDQ7.js → chunk-G3W6BMVJ.js} +1 -1
- package/dist/cli/chunks/{chunk-CIZ5JPDC.js → chunk-GTKCGPJZ.js} +3 -3
- package/dist/cli/chunks/{chunk-QGIU2WRL.js → chunk-HBCGYMQU.js} +1 -1
- package/dist/cli/chunks/{chunk-V3QLFNA2.js → chunk-HSVKZ5KI.js} +4 -4
- package/dist/cli/chunks/{chunk-BGE6FOLM.js → chunk-HVU64GP5.js} +2 -2
- package/dist/cli/chunks/chunk-HVXJC3OC.js +2 -0
- package/dist/cli/chunks/{chunk-MIQTXNBG.js → chunk-HYEJJJY3.js} +1 -1
- package/dist/cli/chunks/{chunk-CLTMDCSE.js → chunk-I2NENQ44.js} +2 -2
- package/dist/cli/chunks/{chunk-SGYJ4NFZ.js → chunk-I6X3EGJI.js} +1 -1
- package/dist/cli/chunks/{chunk-BOARZKU3.js → chunk-IGBEJ4UJ.js} +2 -2
- package/dist/cli/chunks/{chunk-FWGOHAAB.js → chunk-IIAR5S7Q.js} +2 -2
- package/dist/cli/chunks/{chunk-DHJPWQBR.js → chunk-IJHCIXJC.js} +2 -2
- package/dist/cli/chunks/{chunk-UEM7ZF5K.js → chunk-IUDWEOLX.js} +2 -2
- package/dist/cli/chunks/chunk-IUHB5GVS.js +3 -0
- package/dist/cli/chunks/{chunk-M5QUBZY6.js → chunk-IYTLXUBO.js} +2 -2
- package/dist/cli/chunks/chunk-J27F4NSB.js +2 -0
- package/dist/cli/chunks/{chunk-G6T45OIC.js → chunk-J5UNP6W3.js} +2 -2
- package/dist/cli/chunks/{chunk-3UPAMMCB.js → chunk-JES6R5KP.js} +1 -1
- package/dist/cli/chunks/{chunk-ZBQY5GLF.js → chunk-JROVR6YS.js} +2 -2
- package/dist/cli/chunks/chunk-JSZ663MU.js +2 -0
- package/dist/cli/chunks/{chunk-PFR4G3DJ.js → chunk-JVQBWYHW.js} +2 -2
- package/dist/cli/chunks/{chunk-JBNEE5UH.js → chunk-K27SU3RE.js} +2 -2
- package/dist/cli/chunks/{chunk-JZ3ORVZ3.js → chunk-K7NJHFLZ.js} +3 -3
- package/dist/cli/chunks/{chunk-3VOQRIQM.js → chunk-KEY43ANX.js} +2 -2
- package/dist/cli/chunks/chunk-KIP6WZGV.js +13 -0
- package/dist/cli/chunks/{chunk-UDHKLT4C.js → chunk-KKHYJF5U.js} +1 -1
- package/dist/cli/chunks/{chunk-ZNEMGX5O.js → chunk-KLTP5IDB.js} +1 -1
- package/dist/cli/chunks/{chunk-ONII3572.js → chunk-KO4FNAUR.js} +3 -3
- package/dist/cli/chunks/{chunk-TSRSV3LD.js → chunk-KYA5LARK.js} +1 -1
- package/dist/cli/chunks/{chunk-2JW3BCGG.js → chunk-LSUILON7.js} +1 -1
- package/dist/cli/chunks/chunk-LULD4JV2.js +15 -0
- package/dist/cli/chunks/{chunk-FRH6VAUS.js → chunk-M23ZOZVY.js} +1 -1
- package/dist/cli/chunks/{chunk-R5NE6B2M.js → chunk-M5AEL7IS.js} +2 -2
- package/dist/cli/chunks/chunk-MI5Q55DG.js +65 -0
- package/dist/cli/chunks/chunk-N7H767TP.js +4 -0
- package/dist/cli/chunks/{chunk-RJCYCLZV.js → chunk-NQI7FWCS.js} +2 -2
- package/dist/cli/chunks/{chunk-CXQPR5MY.js → chunk-NRE4NAVA.js} +1 -1
- package/dist/cli/chunks/{chunk-ODKLFVYC.js → chunk-NU7UTXMP.js} +2 -2
- package/dist/cli/chunks/{chunk-MVPCNSPY.js → chunk-NVYBM3R4.js} +2 -2
- package/dist/cli/chunks/{chunk-MVNP7GIR.js → chunk-O3JTQ7N4.js} +1 -1
- package/dist/cli/chunks/{chunk-6CQN24ZK.js → chunk-OEIQTWQP.js} +1 -1
- package/dist/cli/chunks/{chunk-U5K45TFH.js → chunk-PSPKSUF6.js} +1 -1
- package/dist/cli/chunks/{chunk-CDHQFHRP.js → chunk-QIRL6B3C.js} +2 -2
- package/dist/cli/chunks/{chunk-OSLYSG3B.js → chunk-QRCIZFNK.js} +2 -2
- package/dist/cli/chunks/{chunk-BOZZYWCR.js → chunk-QWUXCG2L.js} +1 -1
- package/dist/cli/chunks/{chunk-HIYXCDEP.js → chunk-QYOGD2VW.js} +1 -1
- package/dist/cli/chunks/{chunk-A4FYONNU.js → chunk-QZMUXJHZ.js} +2 -2
- package/dist/cli/chunks/{chunk-3TW5W5LX.js → chunk-R6IU3EWP.js} +2 -2
- package/dist/cli/chunks/{chunk-3X3DJZJJ.js → chunk-R74ZKREV.js} +1 -1
- package/dist/cli/chunks/{chunk-HIVA55CJ.js → chunk-RD2VGOUH.js} +1 -1
- package/dist/cli/chunks/{chunk-TPGED2IF.js → chunk-RD6TEZ64.js} +2 -2
- package/dist/cli/chunks/{chunk-4MHXCAG2.js → chunk-RGGK6VZ7.js} +1 -1
- package/dist/cli/chunks/{chunk-UGVHCMUN.js → chunk-RIZVC4XY.js} +3 -3
- package/dist/cli/chunks/{chunk-R4VL6E65.js → chunk-RKOUXVZZ.js} +2 -2
- package/dist/cli/chunks/{chunk-IFCLB7FJ.js → chunk-RP2ZKPYV.js} +1 -1
- package/dist/cli/chunks/{chunk-34WO57CW.js → chunk-SQF6HRXR.js} +1 -1
- package/dist/cli/chunks/{chunk-YNXS6CGV.js → chunk-SQKW3B6B.js} +1 -1
- package/dist/cli/chunks/{chunk-TDZ53WO2.js → chunk-SX4JLSLV.js} +2 -2
- package/dist/cli/chunks/{chunk-PAWXJ73E.js → chunk-TUSSPKRM.js} +1 -1
- package/dist/cli/chunks/{chunk-DFZCKIGY.js → chunk-TY5WC3FT.js} +3 -3
- package/dist/cli/chunks/{chunk-J6GNQS62.js → chunk-UDHVCKGA.js} +2 -2
- package/dist/cli/chunks/{chunk-CIKSHTEQ.js → chunk-UJWAWIRV.js} +4 -4
- package/dist/cli/chunks/{chunk-XJ7QNVI5.js → chunk-UKGXWW64.js} +3 -3
- package/dist/cli/chunks/{chunk-64PFWE2F.js → chunk-UMGFMKDW.js} +2 -2
- package/dist/cli/chunks/{chunk-DPFRKBOG.js → chunk-URVHZPWY.js} +2 -2
- package/dist/cli/chunks/{chunk-MCUJEZT6.js → chunk-UTBYJ4RF.js} +2 -2
- package/dist/cli/chunks/{chunk-HUWNIPZ5.js → chunk-VD5IO5EO.js} +1 -1
- package/dist/cli/chunks/{chunk-7ZIOFPL3.js → chunk-VTOVWHEM.js} +2 -2
- package/dist/cli/chunks/{chunk-SRKETSFF.js → chunk-W2XCZU62.js} +1 -1
- package/dist/cli/chunks/{chunk-CNG6GQEZ.js → chunk-WJHWH5D2.js} +2 -2
- package/dist/cli/chunks/{chunk-ZJ26AQA5.js → chunk-WJTSY5MC.js} +1 -1
- package/dist/cli/chunks/{chunk-OCWWP5PL.js → chunk-WK7B4B6Y.js} +2 -2
- package/dist/cli/chunks/{chunk-KPA7MZ6C.js → chunk-WLXK2KNU.js} +2 -2
- package/dist/cli/chunks/{chunk-ZBJ4XOOV.js → chunk-WOIGKU2N.js} +4 -4
- package/dist/cli/chunks/{chunk-ZZDIMOOV.js → chunk-WX6RRIGW.js} +2 -2
- package/dist/cli/chunks/{chunk-STM3UDNO.js → chunk-XEZIIQYJ.js} +2 -2
- package/dist/cli/chunks/{chunk-3QHGWY7T.js → chunk-XFPPERA2.js} +2 -2
- package/dist/cli/chunks/{chunk-VIHTL3U2.js → chunk-XLAUGSW7.js} +2 -2
- package/dist/cli/chunks/{chunk-XC7DYDSY.js → chunk-XQSIRBKT.js} +2 -2
- package/dist/cli/chunks/{chunk-GPLQ6DOK.js → chunk-XUR2M2WB.js} +2 -2
- package/dist/cli/chunks/{chunk-KCZR45PA.js → chunk-XZSMZHM2.js} +2 -2
- package/dist/cli/chunks/{chunk-ZNPKDCZR.js → chunk-Y5L3ES4L.js} +2 -2
- package/dist/cli/chunks/{chunk-W7BWUTVV.js → chunk-YDFL445W.js} +2 -2
- package/dist/cli/chunks/{chunk-AWWNB2T7.js → chunk-YQGPQBCX.js} +2 -2
- package/dist/cli/chunks/{chunk-DAEFDCJ4.js → chunk-YXP6BKGS.js} +17 -17
- package/dist/cli/chunks/{chunk-OBAP2TXZ.js → chunk-ZBABIZ2D.js} +2 -2
- package/dist/cli/chunks/{chunk-CSU5NYOX.js → chunk-ZCWERUYB.js} +4 -4
- package/dist/cli/chunks/{ci-464KPQNP.js → ci-RACDAJMR.js} +2 -2
- package/dist/cli/chunks/{ci-output-I7FX2RSO.js → ci-output-EHRSZBKG.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-3FW237WW.js → circuit-breaker-GBV7M5XG.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-6JKMBPGU.js → claude-flow-setup-5LVJOFKP.js} +2 -2
- package/dist/cli/chunks/client-HUVFA5PF.js +2 -0
- package/dist/cli/chunks/{cline-installer-UWFHT6VY.js → cline-installer-W4NMXJSG.js} +2 -2
- package/dist/cli/chunks/{code-KQSUT3FS.js → code-JWXJMYXB.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-PABBNUSC.js → code-index-extractor-RVI2IFTM.js} +2 -2
- package/dist/cli/chunks/codex-installer-3BORJINH.js +14 -0
- package/dist/cli/chunks/{completions-7RWHAUAR.js → completions-A55NCTAO.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-XPOAF33E.js → complexity-analyzer-JCXHGGLY.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-V4F2FIZP.js → continuedev-installer-PUVFMGYW.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-JMICURQB.js → copilot-installer-4DCMYWHB.js} +2 -2
- package/dist/cli/chunks/core-handlers-UEXO3VAA.js +2 -0
- package/dist/cli/chunks/{cost-tracker-5OFHEYFJ.js → cost-tracker-5TV2GGKY.js} +2 -2
- package/dist/cli/chunks/{coverage-QKN57JDS.js → coverage-NNWM7TX3.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-ODU5IZD6.js +2 -0
- package/dist/cli/chunks/{cursor-installer-GBJ7YXSM.js → cursor-installer-4NCHGJGK.js} +2 -2
- package/dist/cli/chunks/{daemon-IAVSO6HK.js → daemon-QIKCXKWO.js} +4 -4
- package/dist/cli/chunks/{daemon-GKP7CMEK.js → daemon-T4JO4IXP.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-S225TCI7.js → dag-attention-scheduler-RPAAIDAD.js} +2 -2
- package/dist/cli/chunks/{detect-IUYH422U.js → detect-SBEEVDSN.js} +2 -2
- package/dist/cli/chunks/{dist-node-2YRE6A7C.js → dist-node-ZHI6NCSU.js} +2 -2
- package/dist/cli/chunks/{domain-handler-PL2TZC6H.js → domain-handler-LBC3GJ7Z.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-HCGLXKIT.js → domain-plugins-H6IZ5USZ.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-KQJRUPXA.js → domain-transfer-JZA5TMW3.js} +2 -2
- package/dist/cli/chunks/dream-HE3OX42F.js +2 -0
- package/dist/cli/chunks/embed-and-insert-pattern-AHTR7CRU.js +3 -0
- package/dist/cli/chunks/{eval-WCK7KNFN.js → eval-DZU2KISM.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-2MSQWSAR.js → experience-capture-middleware-5IQCWKSL.js} +4 -4
- package/dist/cli/chunks/{fast-paths-VYOSIBKF.js → fast-paths-2KLDUWCY.js} +2 -2
- package/dist/cli/chunks/{feature-flags-UJRHFBRX.js → feature-flags-7AC3XDZA.js} +2 -2
- package/dist/cli/chunks/{feature-flags-WCFUKHNQ.js → feature-flags-N6UAEZY4.js} +2 -2
- package/dist/cli/chunks/{file-discovery-JDGL4ZWS.js → file-discovery-5SDIW4V2.js} +2 -2
- package/dist/cli/chunks/{fleet-ROXVMZ2F.js → fleet-ZIQCAZ2Y.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-NIO4ZCO3.js → gnn-wrapper-DUMBZJEV.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-PI42WD3C.js → heartbeat-handler-6HVM6ZMR.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-QUIFGGLX.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-42KB37KP.js +2 -0
- package/dist/cli/chunks/hnsw-index-T2PGO77J.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-YLC7SPK2.js → hnsw-legacy-bridge-5DRL5FLX.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-LG6OS3B7.js → hnswlib-node-GW67GTCL.js} +2 -2
- package/dist/cli/chunks/{hooks-WVALP5GX.js → hooks-QHH6FVO4.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-FRNWYRKH.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-GJEMW3EG.js → hypergraph-engine-7XDCCVG2.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-BLF6LXEV.js → hypergraph-handler-QHF7NOU5.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-A5QYOYBR.js +2 -0
- package/dist/cli/chunks/{init-handler-K25RWRYY.js → init-handler-5UIVOM7K.js} +6 -6
- package/dist/cli/chunks/init-wizard-XBU674YH.js +2 -0
- package/dist/cli/chunks/kernel-DV5MTNZD.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-BXN6WZ7G.js → kilocode-installer-TGGV6K5Q.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-PM362DLN.js → kiro-installer-4XYBHZWW.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-4ACGVJQK.js +2 -0
- package/dist/cli/chunks/{learning-CPERDDRG.js → learning-STE5W6BS.js} +3 -3
- package/dist/cli/chunks/{llm-router-GOAV5FPI.js → llm-router-NKF7J3RI.js} +4 -4
- package/dist/cli/chunks/llm-router-service-PSMASERT.js +2 -0
- package/dist/cli/chunks/{load-2BG6SHAK.js → load-B2T77UJQ.js} +2 -2
- package/dist/cli/chunks/load-test-MRUO2VPF.js +2 -0
- package/dist/cli/chunks/mcp-JGSFCEMH.js +2 -0
- package/dist/cli/chunks/{memory-4NHBYT6S.js → memory-WRFZKG56.js} +6 -6
- package/dist/cli/chunks/memory-backend-2MPGI6JW.js +2 -0
- package/dist/cli/chunks/memory-handlers-XT4HMITB.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-KCWSGCDT.js → multi-model-executor-26Q5BSVG.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-ATZLLK74.js → opencode-installer-J36EMQU7.js} +2 -2
- package/dist/cli/chunks/{orchestrator-RKB7XJRG.js → orchestrator-D5IFV65I.js} +18 -18
- package/dist/cli/chunks/pattern-null-store-TGWUL237.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-7VE4XDAI.js → pattern-usage-recorder-BVMTWI3E.js} +2 -2
- package/dist/cli/chunks/{pipeline-LQZSNDD2.js → pipeline-OWAHDUAQ.js} +2 -2
- package/dist/cli/chunks/platform-ANGBFWBV.js +2 -0
- package/dist/cli/chunks/{plugin-EJ6K2MGU.js → plugin-OO7ON2YW.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-OIHTKJMN.js → prime-radiant-advanced-wasm-HFG3BXWU.js} +2 -2
- package/dist/cli/chunks/project-root-LNOYVTYY.js +2 -0
- package/dist/cli/chunks/protocol-executor-GEVH5KD6.js +2 -0
- package/dist/cli/chunks/{protocol-handler-NRBROAU7.js → protocol-handler-CE3Q6LY4.js} +2 -2
- package/dist/cli/chunks/{prove-EJOGEGD3.js → prove-7XPN53PY.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-DJ2JL6QB.js +2 -0
- package/dist/cli/chunks/{quality-E55UC73D.js → quality-TT23JRFX.js} +2 -2
- package/dist/cli/chunks/{quality-gate-OIQATNT3.js → quality-gate-PPPRP255.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-F7E3AS26.js +2 -0
- package/dist/cli/chunks/real-embeddings-EYNZIFJE.js +2 -0
- package/dist/cli/chunks/{ref-validation-OPO6J7OL.js → ref-validation-QQR64ZXD.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-ODY5KRWU.js → roocode-installer-UIGS7ZJD.js} +2 -2
- package/dist/cli/chunks/router-OZH3QSAU.js +2 -0
- package/dist/cli/chunks/routing-feedback-J2E3ADZB.js +2 -0
- package/dist/cli/chunks/{routing-handler-KQM6VWLC.js → routing-handler-6AENUIRG.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-U2GVV6PF.js → ruvector-commands-5AWMEV34.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-HK525Y5Y.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-Q7FB3BKR.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-NWRJ7C22.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-5ZRCGUI6.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-KMIHD3LP.js → rvf-store-integrity-ISKRP563.js} +2 -2
- package/dist/cli/chunks/safe-db-3OYEPVEH.js +2 -0
- package/dist/cli/chunks/schedule-AG4C2EIQ.js +2 -0
- package/dist/cli/chunks/scheduler-SQS2CZFZ.js +2 -0
- package/dist/cli/chunks/{security-P5NM353C.js → security-325A7FMB.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-LVIUOO4S.js → shared-rvf-adapter-NFL6QSZ6.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-2CSG7C4W.js → shared-rvf-dual-writer-THFDYS2Z.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-MAKDFSHC.js +2 -0
- package/dist/cli/chunks/standalone-memory-UD4MJ6GZ.js +2 -0
- package/dist/cli/chunks/{status-handler-6TU6O37R.js → status-handler-CPFTN4XL.js} +2 -2
- package/dist/cli/chunks/{structural-health-KBIJSTXJ.js → structural-health-2MG2IVBL.js} +2 -2
- package/dist/cli/chunks/{sync-LNHI5SB7.js → sync-EE4VVKOW.js} +2 -2
- package/dist/cli/chunks/{sync-UHOX6RJW.js → sync-MBTW5XBF.js} +2 -2
- package/dist/cli/chunks/task-handler-7H5OYJG4.js +54 -0
- package/dist/cli/chunks/task-handlers-NH4GJHCJ.js +9 -0
- package/dist/cli/chunks/{test-DHAAI3DU.js → test-MPHGT4T6.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-XDBZ3QC2.js → test-scheduling-CHQ4ZLLJ.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-SSDCYEKK.js +2 -0
- package/dist/cli/chunks/{token-usage-Q2YG5YQN.js → token-usage-EBXUJNRB.js} +2 -2
- package/dist/cli/chunks/{transformers-F5UQTQCY.js → transformers-ZEKS2OJZ.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-DEGOHS6F.js → tree-sitter-wasm-parser-J6ZMAK37.js} +2 -2
- package/dist/cli/chunks/{types-JQ7EQO5Q.js → types-KYAA5VLV.js} +2 -2
- package/dist/cli/chunks/unified-memory-DDWMC435.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-4JA7SGBK.js +2 -0
- package/dist/cli/chunks/unified-persistence-F6OSNTXY.js +2 -0
- package/dist/cli/chunks/{upgrade-TJRVGHGD.js → upgrade-UJBJ5AYM.js} +2 -2
- package/dist/cli/chunks/{validate-BWPCVHBN.js → validate-RUV6YMWS.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-QVVKCQLP.js → validate-swarm-IVEVMGVM.js} +2 -2
- package/dist/cli/chunks/{vibium-ZFATIWHO.js → vibium-HOGMFJ2Z.js} +2 -2
- package/dist/cli/chunks/visual-security-25SMBIYT.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-KPLY7ONR.js → web-tree-sitter-AVWA6HKE.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-H7XM7ISA.js → windsurf-installer-DAH7HI2W.js} +2 -2
- package/dist/cli/chunks/{witness-chain-RRN6NDCH.js → witness-chain-PJOQPFUX.js} +2 -2
- package/dist/cli/chunks/witness-chain-ZW6KKUZU.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-DFRL42GE.js → witness-key-manager-JSTBMG43.js} +2 -2
- package/dist/cli/chunks/{workflow-2ZQO6WYI.js → workflow-TWOIA6LZ.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-UKSIDM7Q.js +2 -0
- package/dist/cli/chunks/{wrappers-SUS6XEJD.js → wrappers-UR7BLXKV.js} +2 -2
- package/dist/cli/commands/mcp.js +6 -0
- package/dist/cli/commands/memory.d.ts +1 -1
- package/dist/cli/commands/memory.js +8 -8
- package/dist/cli/commands/platform.js +15 -2
- package/dist/cli/commands/upgrade.d.ts +3 -3
- package/dist/cli/commands/upgrade.js +3 -3
- package/dist/cli/handlers/init-handler.d.ts +10 -0
- package/dist/cli/handlers/task-handler.js +24 -3
- package/dist/cli/helpers/standalone-memory.d.ts +12 -0
- package/dist/cli/helpers/standalone-memory.js +46 -0
- package/dist/cli/index.js +37 -41
- package/dist/cli/log-gate.d.ts +66 -0
- package/dist/cli/log-gate.js +170 -0
- package/dist/init/codex-installer.js +18 -6
- package/dist/init/orchestrator.js +1 -0
- package/dist/init/phases/09-assets.d.ts +10 -0
- package/dist/init/phases/09-assets.js +3 -0
- package/dist/init/token-bootstrap.d.ts +1 -1
- package/dist/init/token-bootstrap.js +12 -2
- package/dist/init/types.d.ts +10 -0
- package/dist/integrations/ruvector/brain-exporter.js +17 -0
- package/dist/integrations/ruvector/brain-import-audit.d.ts +20 -0
- package/dist/integrations/ruvector/brain-import-audit.js +22 -0
- package/dist/integrations/ruvector/brain-rvf-exporter.js +16 -0
- package/dist/integrations/ruvector/brain-shared.js +1 -1
- package/dist/integrations/ruvector/rvf-dual-writer.js +6 -1
- package/dist/kernel/hybrid-backend.d.ts +6 -0
- package/dist/kernel/hybrid-backend.js +18 -0
- package/dist/kernel/kernel.js +9 -14
- package/dist/kernel/project-root.d.ts +1 -1
- package/dist/kernel/project-root.js +24 -3
- package/dist/learning/embedder-identity-store.js +4 -3
- package/dist/learning/pattern-store.js +5 -1
- package/dist/learning/real-embeddings.d.ts +8 -0
- package/dist/learning/real-embeddings.js +16 -0
- package/dist/learning/rvf-pattern-store.js +10 -3
- package/dist/mcp/bundle.js +442 -442
- package/dist/mcp/entry.js +2 -0
- package/dist/mcp/handlers/memory-handlers.d.ts +6 -1
- package/dist/mcp/handlers/memory-handlers.js +44 -22
- package/dist/mcp/handlers/task-handlers.js +14 -1
- package/dist/mcp/protocol-server.js +1 -0
- package/dist/mcp/services/session-store.js +5 -1
- package/dist/plugins/cache.d.ts +2 -0
- package/dist/plugins/cache.js +15 -2
- package/dist/plugins/lifecycle.js +15 -2
- package/dist/plugins/manifest.js +7 -5
- package/dist/plugins/resolver.d.ts +13 -22
- package/dist/plugins/resolver.js +169 -61
- package/dist/plugins/version-policy.d.ts +13 -0
- package/dist/plugins/version-policy.js +18 -0
- package/dist/shared/types/index.d.ts +6 -0
- package/dist/shared/types/index.js +8 -0
- package/package.json +2 -1
- package/dist/cli/chunks/adapter-TNNNJRDG.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-5ZRMYJLB.js +0 -2
- package/dist/cli/chunks/base-KWZHOPSH.js +0 -2
- package/dist/cli/chunks/brain-handler-ET6YAP4B.js +0 -90
- package/dist/cli/chunks/browser-workflow-2FZTKDUL.js +0 -2
- package/dist/cli/chunks/chunk-33YYYWBQ.js +0 -4
- package/dist/cli/chunks/chunk-5Z6XZV7K.js +0 -65
- package/dist/cli/chunks/chunk-6J62K3SW.js +0 -2
- package/dist/cli/chunks/chunk-6TPKK7LD.js +0 -15
- package/dist/cli/chunks/chunk-DEYLEDJN.js +0 -27
- package/dist/cli/chunks/chunk-KGT36Z42.js +0 -14
- package/dist/cli/chunks/chunk-NA7B2QYB.js +0 -2
- package/dist/cli/chunks/chunk-NDPFGIMJ.js +0 -13
- package/dist/cli/chunks/chunk-PEPFCPES.js +0 -2
- package/dist/cli/chunks/chunk-TT23RRB7.js +0 -2
- package/dist/cli/chunks/chunk-XWMZ6D6N.js +0 -2
- package/dist/cli/chunks/client-7E4LM2WW.js +0 -2
- package/dist/cli/chunks/codex-installer-CQ24DTP5.js +0 -14
- package/dist/cli/chunks/core-handlers-IFG3757P.js +0 -2
- package/dist/cli/chunks/cross-domain-router-EK7W4PGP.js +0 -2
- package/dist/cli/chunks/dream-NFSCSLY7.js +0 -2
- package/dist/cli/chunks/embed-and-insert-pattern-ZPAG7235.js +0 -3
- package/dist/cli/chunks/heartbeat-scheduler-ZATCDJDK.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-WXQABRCA.js +0 -2
- package/dist/cli/chunks/hnsw-index-TPSWLEA5.js +0 -2
- package/dist/cli/chunks/impact-analyzer-HNIU45P5.js +0 -2
- package/dist/cli/chunks/init-wizard-JUIPBMHG.js +0 -2
- package/dist/cli/chunks/kernel-5BOZQ754.js +0 -2
- package/dist/cli/chunks/knowledge-graph-EWDAENWM.js +0 -2
- package/dist/cli/chunks/llm-router-service-3YT7JGBS.js +0 -2
- package/dist/cli/chunks/load-test-BP2CPLIV.js +0 -2
- package/dist/cli/chunks/mcp-5TTB37DC.js +0 -2
- package/dist/cli/chunks/memory-backend-4PYQBPRM.js +0 -2
- package/dist/cli/chunks/memory-handlers-2B27NITS.js +0 -2
- package/dist/cli/chunks/pattern-null-store-OYOQOV2O.js +0 -2
- package/dist/cli/chunks/platform-OD5H5U6G.js +0 -2
- package/dist/cli/chunks/protocol-executor-3ATJTXWG.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-LLMYZT4X.js +0 -2
- package/dist/cli/chunks/queen-coordinator-RN7L6KG5.js +0 -2
- package/dist/cli/chunks/real-embeddings-FPFFNOSZ.js +0 -2
- package/dist/cli/chunks/router-MDHITQ2V.js +0 -2
- package/dist/cli/chunks/routing-feedback-5XLNJ3Y3.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-JBW4O3II.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-BPPQL4XJ.js +0 -2
- package/dist/cli/chunks/rvf-migration-coordinator-V2GHCJKN.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-S4562CG5.js +0 -2
- package/dist/cli/chunks/safe-db-FIRHSXVF.js +0 -2
- package/dist/cli/chunks/schedule-RVXFB4HK.js +0 -2
- package/dist/cli/chunks/scheduler-IKKAMAOO.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-SQ3HCUQ7.js +0 -2
- package/dist/cli/chunks/task-handler-AVDHMLGI.js +0 -49
- package/dist/cli/chunks/task-handlers-KYK4VTRA.js +0 -9
- package/dist/cli/chunks/token-bootstrap-GUTTLPZX.js +0 -2
- package/dist/cli/chunks/unified-memory-CXHLHB5I.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-I7WAE54M.js +0 -2
- package/dist/cli/chunks/unified-persistence-6CPF65WI.js +0 -2
- package/dist/cli/chunks/visual-security-GNPHME5H.js +0 -2
- package/dist/cli/chunks/witness-chain-VT4UHHBR.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-DB3HIECD.js +0 -2
package/dist/mcp/entry.js
CHANGED
|
@@ -21,6 +21,7 @@ import { initializeExperienceCapture, stopCleanupTimer } from '../learning/exper
|
|
|
21
21
|
import { createInfraHealingOrchestratorSync, ShellCommandRunner } from '../strange-loop/infra-healing/index.js';
|
|
22
22
|
import { setInfraHealingOrchestrator, handleFleetInit } from './handlers/index.js';
|
|
23
23
|
import { parallelPrefetch } from '../boot/parallel-prefetch.js';
|
|
24
|
+
import { initFeatureFlagsFromEnv } from '../integrations/ruvector/feature-flags.js';
|
|
24
25
|
import { readFileSync } from 'node:fs';
|
|
25
26
|
import { resolve, dirname } from 'node:path';
|
|
26
27
|
import { fileURLToPath } from 'node:url';
|
|
@@ -29,6 +30,7 @@ const pkg = require('../../package.json');
|
|
|
29
30
|
let server = null;
|
|
30
31
|
let httpServer = null;
|
|
31
32
|
async function main() {
|
|
33
|
+
initFeatureFlagsFromEnv();
|
|
32
34
|
// Output startup message BEFORE suppressing stderr (Claude Code health check needs this)
|
|
33
35
|
const version = pkg.version;
|
|
34
36
|
process.stderr.write(`[agentic-qe-v3] MCP server starting v${version}\n`);
|
|
@@ -6,7 +6,12 @@
|
|
|
6
6
|
* and ComplianceReporter for violation tracking.
|
|
7
7
|
*/
|
|
8
8
|
import { ToolResult, MemoryStoreParams, MemoryStoreResult, MemoryRetrieveParams, MemoryRetrieveResult, MemoryQueryParams } from '../types';
|
|
9
|
-
import type { VectorSearchProvenance } from '../../kernel/interfaces.js';
|
|
9
|
+
import type { MemoryBackend, VectorSearchProvenance } from '../../kernel/interfaces.js';
|
|
10
|
+
/**
|
|
11
|
+
* Register (or clear) a standalone memory backend for the memory handlers.
|
|
12
|
+
* An initialized fleet always takes precedence over it.
|
|
13
|
+
*/
|
|
14
|
+
export declare function setStandaloneMemoryBackend(backend: MemoryBackend | null): void;
|
|
10
15
|
export declare function handleMemoryStore(params: MemoryStoreParams): Promise<ToolResult<MemoryStoreResult>>;
|
|
11
16
|
export declare function handleMemoryRetrieve(params: MemoryRetrieveParams): Promise<ToolResult<MemoryRetrieveResult>>;
|
|
12
17
|
interface MemoryQueryResult {
|
|
@@ -12,16 +12,38 @@ import { memoryWriteGateIntegration, createMemoryPattern, isMemoryWriteGateEnabl
|
|
|
12
12
|
// Real transformer embeddings for semantic search (384-dim, matches ExperienceReplay)
|
|
13
13
|
import { computeRealEmbedding } from '../../learning/real-embeddings.js';
|
|
14
14
|
// ============================================================================
|
|
15
|
+
// Memory Backend Resolution
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Backend used when no fleet is initialized. The CLI memory subcommands set
|
|
19
|
+
* this so they can run against .agentic-qe/memory.db without booting the
|
|
20
|
+
* kernel, Queen Coordinator, and every domain coordinator.
|
|
21
|
+
*/
|
|
22
|
+
let standaloneMemory = null;
|
|
23
|
+
/**
|
|
24
|
+
* Register (or clear) a standalone memory backend for the memory handlers.
|
|
25
|
+
* An initialized fleet always takes precedence over it.
|
|
26
|
+
*/
|
|
27
|
+
export function setStandaloneMemoryBackend(backend) {
|
|
28
|
+
standaloneMemory = backend;
|
|
29
|
+
}
|
|
30
|
+
function getMemoryBackend() {
|
|
31
|
+
if (isFleetInitialized()) {
|
|
32
|
+
return getFleetState().kernel.memory;
|
|
33
|
+
}
|
|
34
|
+
return standaloneMemory;
|
|
35
|
+
}
|
|
36
|
+
// ============================================================================
|
|
15
37
|
// Memory Store Handler
|
|
16
38
|
// ============================================================================
|
|
17
39
|
export async function handleMemoryStore(params) {
|
|
18
|
-
|
|
40
|
+
const memory = getMemoryBackend();
|
|
41
|
+
if (!memory) {
|
|
19
42
|
return {
|
|
20
43
|
success: false,
|
|
21
44
|
error: 'Fleet not initialized. Call fleet_init first.',
|
|
22
45
|
};
|
|
23
46
|
}
|
|
24
|
-
const { kernel } = getFleetState();
|
|
25
47
|
try {
|
|
26
48
|
const namespace = params.namespace || 'default';
|
|
27
49
|
// Build namespaced key ourselves since get/delete interface doesn't support namespace
|
|
@@ -57,7 +79,7 @@ export async function handleMemoryStore(params) {
|
|
|
57
79
|
console.warn(`[MemoryHandler] Write allowed with warning: ${decision.reason}`);
|
|
58
80
|
}
|
|
59
81
|
}
|
|
60
|
-
await
|
|
82
|
+
await memory.set(fullKey, params.value, {
|
|
61
83
|
ttl: params.ttl,
|
|
62
84
|
});
|
|
63
85
|
// Store vector embedding for semantic search (HNSW)
|
|
@@ -66,7 +88,7 @@ export async function handleMemoryStore(params) {
|
|
|
66
88
|
try {
|
|
67
89
|
const textForEmbedding = `${params.key} ${JSON.stringify(params.value)}`;
|
|
68
90
|
const embedding = await computeRealEmbedding(textForEmbedding);
|
|
69
|
-
await
|
|
91
|
+
await memory.storeVector(fullKey, embedding, {
|
|
70
92
|
key: params.key,
|
|
71
93
|
namespace,
|
|
72
94
|
storedAt: Date.now(),
|
|
@@ -117,17 +139,17 @@ export async function handleMemoryStore(params) {
|
|
|
117
139
|
// Memory Retrieve Handler
|
|
118
140
|
// ============================================================================
|
|
119
141
|
export async function handleMemoryRetrieve(params) {
|
|
120
|
-
|
|
142
|
+
const memory = getMemoryBackend();
|
|
143
|
+
if (!memory) {
|
|
121
144
|
return {
|
|
122
145
|
success: false,
|
|
123
146
|
error: 'Fleet not initialized. Call fleet_init first.',
|
|
124
147
|
};
|
|
125
148
|
}
|
|
126
|
-
const { kernel } = getFleetState();
|
|
127
149
|
try {
|
|
128
150
|
const namespace = params.namespace || 'default';
|
|
129
151
|
const fullKey = `${namespace}:${params.key}`;
|
|
130
|
-
const value = await
|
|
152
|
+
const value = await memory.get(fullKey);
|
|
131
153
|
if (value === undefined) {
|
|
132
154
|
return {
|
|
133
155
|
success: true,
|
|
@@ -168,13 +190,13 @@ function isNaturalLanguageQuery(pattern) {
|
|
|
168
190
|
return pattern.includes(' ') && !pattern.includes('*') && !pattern.includes('?');
|
|
169
191
|
}
|
|
170
192
|
export async function handleMemoryQuery(params) {
|
|
171
|
-
|
|
193
|
+
const memory = getMemoryBackend();
|
|
194
|
+
if (!memory) {
|
|
172
195
|
return {
|
|
173
196
|
success: false,
|
|
174
197
|
error: 'Fleet not initialized. Call fleet_init first.',
|
|
175
198
|
};
|
|
176
199
|
}
|
|
177
|
-
const { kernel } = getFleetState();
|
|
178
200
|
try {
|
|
179
201
|
const namespace = params.namespace || 'default';
|
|
180
202
|
const limit = params.limit || 100;
|
|
@@ -188,7 +210,7 @@ export async function handleMemoryQuery(params) {
|
|
|
188
210
|
// Generate real 384-dim transformer embedding for accurate cosine similarity search
|
|
189
211
|
const embedding = await computeRealEmbedding(params.pattern);
|
|
190
212
|
const keyPrefix = namespace !== 'default' ? `${namespace}:` : undefined;
|
|
191
|
-
const filtered = await
|
|
213
|
+
const filtered = await memory.vectorSearch(embedding, limit + offset, keyPrefix);
|
|
192
214
|
const paginatedResults = filtered.slice(offset, offset + limit);
|
|
193
215
|
const entries = paginatedResults.map(r => {
|
|
194
216
|
const parts = r.key.split(':');
|
|
@@ -205,7 +227,7 @@ export async function handleMemoryQuery(params) {
|
|
|
205
227
|
total: filtered.length,
|
|
206
228
|
hasMore: offset + limit < filtered.length,
|
|
207
229
|
searchType: 'semantic',
|
|
208
|
-
searchProvenance:
|
|
230
|
+
searchProvenance: memory.getVectorSearchProvenance?.(),
|
|
209
231
|
},
|
|
210
232
|
};
|
|
211
233
|
}
|
|
@@ -218,7 +240,7 @@ export async function handleMemoryQuery(params) {
|
|
|
218
240
|
const pattern = params.pattern
|
|
219
241
|
? `${namespace}:${params.pattern}`
|
|
220
242
|
: `${namespace}:*`;
|
|
221
|
-
const keys = await
|
|
243
|
+
const keys = await memory.search(pattern, limit + offset);
|
|
222
244
|
// Apply pagination
|
|
223
245
|
const paginatedKeys = keys.slice(offset, offset + limit);
|
|
224
246
|
const entries = paginatedKeys.map((key) => {
|
|
@@ -246,17 +268,17 @@ export async function handleMemoryQuery(params) {
|
|
|
246
268
|
}
|
|
247
269
|
}
|
|
248
270
|
export async function handleMemoryDelete(params) {
|
|
249
|
-
|
|
271
|
+
const memory = getMemoryBackend();
|
|
272
|
+
if (!memory) {
|
|
250
273
|
return {
|
|
251
274
|
success: false,
|
|
252
275
|
error: 'Fleet not initialized. Call fleet_init first.',
|
|
253
276
|
};
|
|
254
277
|
}
|
|
255
|
-
const { kernel } = getFleetState();
|
|
256
278
|
try {
|
|
257
279
|
const namespace = params.namespace || 'default';
|
|
258
280
|
const fullKey = `${namespace}:${params.key}`;
|
|
259
|
-
const deleted = await
|
|
281
|
+
const deleted = await memory.delete(fullKey);
|
|
260
282
|
return {
|
|
261
283
|
success: true,
|
|
262
284
|
data: {
|
|
@@ -274,21 +296,21 @@ export async function handleMemoryDelete(params) {
|
|
|
274
296
|
}
|
|
275
297
|
}
|
|
276
298
|
export async function handleMemoryUsage() {
|
|
277
|
-
|
|
299
|
+
const memory = getMemoryBackend();
|
|
300
|
+
if (!memory) {
|
|
278
301
|
return {
|
|
279
302
|
success: false,
|
|
280
303
|
error: 'Fleet not initialized. Call fleet_init first.',
|
|
281
304
|
};
|
|
282
305
|
}
|
|
283
|
-
const { kernel } = getFleetState();
|
|
284
306
|
try {
|
|
285
307
|
// Estimate stats by searching for all keys
|
|
286
|
-
const allKeys = await
|
|
308
|
+
const allKeys = await memory.search('*', 10000);
|
|
287
309
|
// Issue N4: Query real vector count from SQLite instead of hardcoding 0
|
|
288
310
|
let vectorCount = 0;
|
|
289
311
|
let namespaceCount = 1;
|
|
290
312
|
try {
|
|
291
|
-
const backend =
|
|
313
|
+
const backend = memory;
|
|
292
314
|
if (backend.getVectorStats) {
|
|
293
315
|
const stats = await backend.getVectorStats();
|
|
294
316
|
vectorCount = stats?.vectorCount ?? 0;
|
|
@@ -322,13 +344,13 @@ export async function handleMemoryUsage() {
|
|
|
322
344
|
}
|
|
323
345
|
}
|
|
324
346
|
export async function handleMemoryShare(params) {
|
|
325
|
-
|
|
347
|
+
const memory = getMemoryBackend();
|
|
348
|
+
if (!memory) {
|
|
326
349
|
return {
|
|
327
350
|
success: false,
|
|
328
351
|
error: 'Fleet not initialized. Call fleet_init first.',
|
|
329
352
|
};
|
|
330
353
|
}
|
|
331
|
-
const { kernel } = getFleetState();
|
|
332
354
|
try {
|
|
333
355
|
// Store shared knowledge for each target agent
|
|
334
356
|
const sharedKey = `shared:${params.knowledgeDomain}:${Date.now()}`;
|
|
@@ -368,7 +390,7 @@ export async function handleMemoryShare(params) {
|
|
|
368
390
|
}
|
|
369
391
|
}
|
|
370
392
|
}
|
|
371
|
-
await
|
|
393
|
+
await memory.set(sharedKey, sharedContent, {
|
|
372
394
|
namespace: 'agent-knowledge',
|
|
373
395
|
});
|
|
374
396
|
// ADR-058: Register pattern after successful share
|
|
@@ -10,6 +10,7 @@ import { getTaskRouter, } from '../services/task-router.js';
|
|
|
10
10
|
import { getReasoningBankService, startTaskTrajectory, endTaskTrajectory, } from '../services/reasoning-bank-service.js';
|
|
11
11
|
import { scoreUnjudgedTrajectories } from './trajectory-judge.js';
|
|
12
12
|
import { toErrorMessage } from '../../shared/error-utils.js';
|
|
13
|
+
import { ALL_DOMAINS, isDomainName } from '../../shared/types/index.js';
|
|
13
14
|
// ============================================================================
|
|
14
15
|
// Task Type to Workflow Mapping (Issue #206)
|
|
15
16
|
// Maps TaskTypes to their associated workflow IDs for auto-execution
|
|
@@ -30,12 +31,24 @@ export async function handleTaskSubmit(params) {
|
|
|
30
31
|
error: 'Fleet not initialized. Call fleet_init first.',
|
|
31
32
|
};
|
|
32
33
|
}
|
|
34
|
+
// #734 D: reject unknown domains instead of accepting work no domain runs.
|
|
35
|
+
// Parity with `aqe task submit --domain`.
|
|
36
|
+
const targetDomains = params.targetDomains ?? [];
|
|
37
|
+
if (!Array.isArray(targetDomains) || !targetDomains.every(isDomainName)) {
|
|
38
|
+
const unknown = Array.isArray(targetDomains)
|
|
39
|
+
? targetDomains.filter((d) => !isDomainName(d)).map(String)
|
|
40
|
+
: [String(targetDomains)];
|
|
41
|
+
return {
|
|
42
|
+
success: false,
|
|
43
|
+
error: `Unknown domain: ${unknown.join(', ')}. Valid domains: ${ALL_DOMAINS.join(', ')}`,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
33
46
|
const { queen } = getFleetState();
|
|
34
47
|
try {
|
|
35
48
|
const result = await queen.submitTask({
|
|
36
49
|
type: params.type,
|
|
37
50
|
priority: params.priority || 'p1',
|
|
38
|
-
targetDomains
|
|
51
|
+
targetDomains,
|
|
39
52
|
payload: params.payload || {},
|
|
40
53
|
timeout: params.timeout || 300000,
|
|
41
54
|
});
|
|
@@ -649,6 +649,7 @@ export class MCPProtocolServer {
|
|
|
649
649
|
parameters: [
|
|
650
650
|
{ name: 'type', type: 'string', description: 'Task type', required: true },
|
|
651
651
|
{ name: 'priority', type: 'string', description: 'Task priority', enum: ['p0', 'p1', 'p2', 'p3'], default: 'p1' },
|
|
652
|
+
{ name: 'targetDomains', type: 'array', description: 'Target domains (e.g. ["coverage-analysis"]); unknown domains are rejected' },
|
|
652
653
|
{ name: 'payload', type: 'object', description: 'Task payload data' },
|
|
653
654
|
],
|
|
654
655
|
},
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import { randomUUID } from 'crypto';
|
|
12
12
|
import * as fs from 'fs';
|
|
13
13
|
import * as path from 'path';
|
|
14
|
+
import { findProjectRoot } from '../../kernel/project-root.js';
|
|
14
15
|
// ============================================================================
|
|
15
16
|
// Session Store
|
|
16
17
|
// ============================================================================
|
|
@@ -33,7 +34,10 @@ export class SessionStore {
|
|
|
33
34
|
// write .agentic-qe/sessions/*.jsonl to disk.
|
|
34
35
|
persistDisabled = process.env.AQE_MEMORY_BACKEND === 'memory';
|
|
35
36
|
constructor(sessionDir) {
|
|
36
|
-
|
|
37
|
+
// #735: a cwd-relative default created `<subdir>/.agentic-qe/sessions`
|
|
38
|
+
// on the first MCP tool call, which later runs then adopted as the
|
|
39
|
+
// nearest project store. Anchor the default at the project root.
|
|
40
|
+
this.sessionDir = sessionDir ?? path.join(findProjectRoot(), DEFAULT_SESSION_DIR);
|
|
37
41
|
}
|
|
38
42
|
/**
|
|
39
43
|
* Start a new session. Returns the sessionId (UUID).
|
package/dist/plugins/cache.d.ts
CHANGED
|
@@ -37,6 +37,8 @@ export declare class PluginCache {
|
|
|
37
37
|
listVersions(name: string): CachedPlugin[];
|
|
38
38
|
/** List all cached plugins (latest version of each). */
|
|
39
39
|
listAll(): CachedPlugin[];
|
|
40
|
+
/** Every cached candidate, for constraint-aware dependency resolution. */
|
|
41
|
+
listCandidates(): CachedPlugin[];
|
|
40
42
|
private versionDir;
|
|
41
43
|
private pruneOldVersions;
|
|
42
44
|
private copyDir;
|
package/dist/plugins/cache.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as fs from 'fs';
|
|
9
9
|
import * as path from 'path';
|
|
10
|
+
import { validVersion, newestVersionFirst } from './version-policy.js';
|
|
10
11
|
// ============================================================================
|
|
11
12
|
// PluginCache
|
|
12
13
|
// ============================================================================
|
|
@@ -79,6 +80,12 @@ export class PluginCache {
|
|
|
79
80
|
try {
|
|
80
81
|
const raw = fs.readFileSync(manifestPath, 'utf-8');
|
|
81
82
|
const manifest = JSON.parse(raw);
|
|
83
|
+
if (!validVersion(manifest.version)) {
|
|
84
|
+
// Older releases admitted versions SemVer now rejects (e.g. 01.0.0);
|
|
85
|
+
// say why the plugin disappeared instead of dropping it silently.
|
|
86
|
+
console.warn(`[PluginCache] Skipping cached plugin ${name}@${entry}: invalid version ${JSON.stringify(manifest.version)}`);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
82
89
|
const stat = fs.statSync(fullPath);
|
|
83
90
|
results.push({
|
|
84
91
|
manifest,
|
|
@@ -102,13 +109,19 @@ export class PluginCache {
|
|
|
102
109
|
for (const name of entries) {
|
|
103
110
|
const versions = this.listVersions(name);
|
|
104
111
|
if (versions.length > 0) {
|
|
105
|
-
// Return the latest version
|
|
106
|
-
versions.sort((a, b) =>
|
|
112
|
+
// Return the latest version by npm SemVer precedence.
|
|
113
|
+
versions.sort((a, b) => newestVersionFirst(a.manifest.version, b.manifest.version));
|
|
107
114
|
results.push(versions[0]);
|
|
108
115
|
}
|
|
109
116
|
}
|
|
110
117
|
return results;
|
|
111
118
|
}
|
|
119
|
+
/** Every cached candidate, for constraint-aware dependency resolution. */
|
|
120
|
+
listCandidates() {
|
|
121
|
+
if (!fs.existsSync(this.cacheDir))
|
|
122
|
+
return [];
|
|
123
|
+
return fs.readdirSync(this.cacheDir).flatMap(name => this.listVersions(name));
|
|
124
|
+
}
|
|
112
125
|
// --------------------------------------------------------------------------
|
|
113
126
|
// Internal
|
|
114
127
|
// --------------------------------------------------------------------------
|
|
@@ -94,6 +94,19 @@ export class PluginLifecycleManager {
|
|
|
94
94
|
securityViolations: security.violations,
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
|
+
// Admit only the requested dependency closure, using all cached candidates.
|
|
98
|
+
// Force this manifest's version so an older cached copy cannot mask failure.
|
|
99
|
+
try {
|
|
100
|
+
const candidates = this.cache.listCandidates().map(c => c.manifest)
|
|
101
|
+
.filter(c => c.name !== manifest.name);
|
|
102
|
+
const resolution = this.resolver.resolve([...candidates, manifest], [manifest.name]);
|
|
103
|
+
if (resolution.errors.length) {
|
|
104
|
+
return { success: false, manifest, errors: resolution.errors.map(e => `${e.code}: ${e.message}`), securityViolations: [] };
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
return { success: false, manifest, errors: [error instanceof Error ? error.message : String(error)], securityViolations: [] };
|
|
109
|
+
}
|
|
97
110
|
// 5. Check if already cached
|
|
98
111
|
if (this.cache.has(manifest.name, manifest.version)) {
|
|
99
112
|
const cached = this.cache.get(manifest.name, manifest.version);
|
|
@@ -162,8 +175,8 @@ export class PluginLifecycleManager {
|
|
|
162
175
|
* Resolve load order for all cached plugins.
|
|
163
176
|
*/
|
|
164
177
|
resolveLoadOrder() {
|
|
165
|
-
const all = this.cache.
|
|
166
|
-
return this.resolver.
|
|
178
|
+
const all = this.cache.listCandidates();
|
|
179
|
+
return this.resolver.resolveAvailable(all.map(c => c.manifest));
|
|
167
180
|
}
|
|
168
181
|
/**
|
|
169
182
|
* Register a plugin source.
|
package/dist/plugins/manifest.js
CHANGED
|
@@ -5,13 +5,12 @@
|
|
|
5
5
|
* plugins must provide. Includes validation logic for name, version,
|
|
6
6
|
* entry point, and permissions.
|
|
7
7
|
*/
|
|
8
|
+
import { validVersion, validRange } from './version-policy.js';
|
|
8
9
|
// ============================================================================
|
|
9
10
|
// Constants
|
|
10
11
|
// ============================================================================
|
|
11
12
|
/** Regex for valid plugin names: lowercase, alphanumeric, hyphens */
|
|
12
13
|
const VALID_NAME_REGEX = /^[a-z][a-z0-9-]*$/;
|
|
13
|
-
/** Regex for semver: major.minor.patch with optional pre-release */
|
|
14
|
-
const SEMVER_REGEX = /^\d+\.\d+\.\d+(-[a-zA-Z0-9.]+)?$/;
|
|
15
14
|
/** Reserved name prefixes that third-party plugins cannot use */
|
|
16
15
|
const RESERVED_PREFIXES = ['aqe-core-', 'agentic-qe-core-'];
|
|
17
16
|
/** Maximum name length */
|
|
@@ -41,7 +40,7 @@ export function validateManifest(manifest) {
|
|
|
41
40
|
if (!m.version || typeof m.version !== 'string') {
|
|
42
41
|
errors.push('version is required and must be a string');
|
|
43
42
|
}
|
|
44
|
-
else if (!
|
|
43
|
+
else if (!validVersion(m.version)) {
|
|
45
44
|
errors.push(`version "${m.version}" is not valid semver (expected: major.minor.patch)`);
|
|
46
45
|
}
|
|
47
46
|
if (!m.description || typeof m.description !== 'string') {
|
|
@@ -80,6 +79,9 @@ export function validateManifest(manifest) {
|
|
|
80
79
|
if (typeof depVersion !== 'string') {
|
|
81
80
|
errors.push(`Dependency "${depName}" must have a string version range`);
|
|
82
81
|
}
|
|
82
|
+
else if (!validRange(depVersion)) {
|
|
83
|
+
errors.push(`Dependency "${depName}" has an invalid semver range`);
|
|
84
|
+
}
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
87
|
}
|
|
@@ -100,8 +102,8 @@ export function validateManifest(manifest) {
|
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
if (m.minAqeVersion !== undefined) {
|
|
103
|
-
if (typeof m.minAqeVersion !== 'string' || !
|
|
104
|
-
|
|
105
|
+
if (typeof m.minAqeVersion !== 'string' || !validVersion(m.minAqeVersion)) {
|
|
106
|
+
errors.push('minAqeVersion must be valid semver');
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
109
|
if (m.permissions !== undefined) {
|
|
@@ -1,37 +1,28 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agentic QE v3 - Plugin Dependency Resolver (IMP-09)
|
|
3
|
-
*
|
|
4
|
-
* DFS dependency resolution with cycle detection.
|
|
5
|
-
* Given a set of plugin manifests, produces a topologically-sorted
|
|
6
|
-
* load order where dependencies are loaded before dependents.
|
|
7
|
-
*/
|
|
1
|
+
/** Constraint-aware plugin selection followed by dependency-safe ordering. */
|
|
8
2
|
import type { QEPluginManifest } from './manifest';
|
|
3
|
+
import { type PluginVersionFailure } from './version-policy';
|
|
9
4
|
export interface ResolvedPlugin {
|
|
10
5
|
manifest: QEPluginManifest;
|
|
11
|
-
/** Order index (0 = load first) */
|
|
12
6
|
order: number;
|
|
13
7
|
}
|
|
14
8
|
export interface ResolutionResult {
|
|
15
|
-
/** Plugins in dependency-safe load order */
|
|
16
9
|
ordered: ResolvedPlugin[];
|
|
17
|
-
/** Unresolvable dependencies (plugin -> missing deps) */
|
|
18
10
|
missing: Map<string, string[]>;
|
|
11
|
+
errors: PluginVersionFailure[];
|
|
12
|
+
selectedVersions: Record<string, string>;
|
|
13
|
+
aqeVersion: string;
|
|
19
14
|
}
|
|
20
15
|
export declare class PluginResolver {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
resolve(manifests: QEPluginManifest[]): ResolutionResult;
|
|
29
|
-
/**
|
|
30
|
-
* Check if a specific plugin can be loaded given the currently loaded set.
|
|
31
|
-
*/
|
|
32
|
-
canLoad(manifest: QEPluginManifest, loaded: Set<string>): {
|
|
16
|
+
private readonly aqeVersion;
|
|
17
|
+
constructor(aqeVersion?: string);
|
|
18
|
+
resolve(manifests: QEPluginManifest[], roots?: readonly string[]): ResolutionResult;
|
|
19
|
+
/** Startup is best-effort: retain admitted roots when another root fails. */
|
|
20
|
+
resolveAvailable(manifests: QEPluginManifest[]): ResolutionResult;
|
|
21
|
+
/** Version-constrained dependencies require versions, not a legacy name-only Set. */
|
|
22
|
+
canLoad(manifest: QEPluginManifest, loaded: ReadonlyMap<string, string> | Set<string>): {
|
|
33
23
|
canLoad: boolean;
|
|
34
24
|
missingDeps: string[];
|
|
35
25
|
};
|
|
26
|
+
private validateVersions;
|
|
36
27
|
}
|
|
37
28
|
//# sourceMappingURL=resolver.d.ts.map
|