agentic-qe 3.11.4 → 3.11.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/hooks/aqe-hook.cjs +44 -10
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +58 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/audit/witness-chain.d.ts +25 -0
- package/dist/audit/witness-chain.js +69 -22
- package/dist/audit/witness-key-manager.d.ts +11 -0
- package/dist/audit/witness-key-manager.js +24 -0
- package/dist/cli/brain-commands.js +2 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-KNM5R47J.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-62I6ZNRW.js → agent-booster-wasm-CSTBLNYZ.js} +2 -2
- package/dist/cli/chunks/{agent-handler-E2TZKKBS.js → agent-handler-M4W4GTXN.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-JHAHC2NH.js → agent-memory-branch-VGXFYLSQ.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-MXPJLVR3.js +2 -0
- package/dist/cli/chunks/{arena-72ZV65BR.js → arena-FKSD3LLM.js} +4 -4
- package/dist/cli/chunks/{arena-KLG3YSSR.js → arena-IQBRGWAG.js} +2 -2
- package/dist/cli/chunks/audit-7NSGRR4Z.js +3 -0
- package/dist/cli/chunks/base-X4EXQ2AS.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-LAFK5QZ4.js → better-sqlite3-2KR4LQRU.js} +2 -2
- package/dist/cli/chunks/brain-handler-M6A3UB66.js +89 -0
- package/dist/cli/chunks/{branch-enumerator-C7MPNYT7.js → branch-enumerator-2JGKY4BB.js} +2 -2
- package/dist/cli/chunks/{browser-UUDUDYLR.js → browser-J43WQPJL.js} +2 -2
- package/dist/cli/chunks/browser-workflow-4HX6RP5F.js +2 -0
- package/dist/cli/chunks/{chunk-UJMTKXPI.js → chunk-26WEI3P4.js} +2 -2
- package/dist/cli/chunks/{chunk-TQ373GGI.js → chunk-2XPMATEK.js} +2 -2
- package/dist/cli/chunks/{chunk-QJ5NCYJ3.js → chunk-2XQHG56O.js} +2 -2
- package/dist/cli/chunks/{chunk-EONKMHKO.js → chunk-354367AP.js} +2 -2
- package/dist/cli/chunks/{chunk-THKZVOZV.js → chunk-37ZUF5NX.js} +1 -1
- package/dist/cli/chunks/{chunk-5P7Q5YNC.js → chunk-3I4TCMOJ.js} +1 -1
- package/dist/cli/chunks/{chunk-PQUXFSN6.js → chunk-3JF5A72M.js} +2 -2
- package/dist/cli/chunks/{chunk-B5XUWHKQ.js → chunk-3LY7OCSO.js} +1 -1
- package/dist/cli/chunks/{chunk-HJ24KMC2.js → chunk-3V36WMIO.js} +1 -1
- package/dist/cli/chunks/{chunk-6JUOH6L4.js → chunk-3WR35GFF.js} +2 -2
- package/dist/cli/chunks/{chunk-T76RFXQX.js → chunk-4LODYRNV.js} +2 -2
- package/dist/cli/chunks/{chunk-D5S47YUS.js → chunk-4MHN7JWC.js} +3 -3
- package/dist/cli/chunks/chunk-4QOI5JS7.js +14 -0
- package/dist/cli/chunks/{chunk-63QUN3JK.js → chunk-4RTWPR3X.js} +1 -1
- package/dist/cli/chunks/chunk-4XJ2A3HY.js +65 -0
- package/dist/cli/chunks/{chunk-KUZMVH6N.js → chunk-4Y3LGBKJ.js} +3 -3
- package/dist/cli/chunks/{chunk-JFLSQH2X.js → chunk-52U5BFZP.js} +2 -2
- package/dist/cli/chunks/{chunk-YNK6SUPU.js → chunk-53YOYZW5.js} +2 -2
- package/dist/cli/chunks/{chunk-O7PVZ32A.js → chunk-5WMU7XCF.js} +1 -1
- package/dist/cli/chunks/{chunk-ZKCKOQJI.js → chunk-62OTU2AP.js} +2 -2
- package/dist/cli/chunks/{chunk-3SKIZDKL.js → chunk-62UM7Q5N.js} +1 -1
- package/dist/cli/chunks/{chunk-SFDUT5WM.js → chunk-6Q57K4YD.js} +2 -2
- package/dist/cli/chunks/{chunk-3SBUL72V.js → chunk-6R3YOAKO.js} +2 -2
- package/dist/cli/chunks/chunk-6T65OKUM.js +2 -0
- package/dist/cli/chunks/{chunk-TCVEKRPI.js → chunk-7BCRULCP.js} +2 -2
- package/dist/cli/chunks/{chunk-VKJQAKYG.js → chunk-7DTMENY6.js} +2 -2
- package/dist/cli/chunks/{chunk-XQ6DW5FV.js → chunk-7KXPNNMR.js} +2 -2
- package/dist/cli/chunks/{chunk-N2BJN6AO.js → chunk-7P6X4BFO.js} +3 -3
- package/dist/cli/chunks/{chunk-SL3SNOO2.js → chunk-7YSBATSN.js} +2 -2
- package/dist/cli/chunks/{chunk-5U2WHPXL.js → chunk-ABU64UWB.js} +1 -1
- package/dist/cli/chunks/{chunk-4RHNPRAP.js → chunk-AF6P5RWY.js} +2 -2
- package/dist/cli/chunks/{chunk-4JFH3MVA.js → chunk-AGJOGUP5.js} +1 -1
- package/dist/cli/chunks/{chunk-5Z4FBCBK.js → chunk-AL5VJJN4.js} +1 -1
- package/dist/cli/chunks/{chunk-Z2REKBD6.js → chunk-AOQYORVA.js} +2 -2
- package/dist/cli/chunks/{chunk-X64BEXUY.js → chunk-AOXJFDH5.js} +117 -113
- package/dist/cli/chunks/{chunk-DRMHVY4T.js → chunk-AXKWV5NF.js} +4 -4
- package/dist/cli/chunks/{chunk-3FJZMQJ7.js → chunk-B2VBDMDI.js} +2 -2
- package/dist/cli/chunks/{chunk-ARPBG6FQ.js → chunk-BJLA2IX7.js} +2 -2
- package/dist/cli/chunks/{chunk-6W3QHS45.js → chunk-BLPWJQTY.js} +2 -2
- package/dist/cli/chunks/{chunk-O5NEJIHB.js → chunk-BTLUWH4R.js} +2 -2
- package/dist/cli/chunks/{chunk-Y4AXOHW4.js → chunk-C4EZNOWK.js} +1 -1
- package/dist/cli/chunks/{chunk-FRFVN6AA.js → chunk-C5C4W572.js} +2 -2
- package/dist/cli/chunks/{chunk-7AWK43JN.js → chunk-CDJP6COA.js} +2 -2
- package/dist/cli/chunks/{chunk-VJGHRWMH.js → chunk-CKOF27L7.js} +2 -2
- package/dist/cli/chunks/{chunk-3E7D3A35.js → chunk-D45QLJEL.js} +1 -1
- package/dist/cli/chunks/{chunk-MALOUGSF.js → chunk-DFRRWOEX.js} +2 -2
- package/dist/cli/chunks/{chunk-JDFPAJGB.js → chunk-DLBVADWQ.js} +92 -92
- package/dist/cli/chunks/{chunk-7IKWF2AD.js → chunk-DPL762HU.js} +1 -1
- package/dist/cli/chunks/{chunk-RFQBDMAP.js → chunk-DVW66FPU.js} +1 -1
- package/dist/cli/chunks/{chunk-JPENUVCI.js → chunk-EDOGRFAG.js} +1 -1
- package/dist/cli/chunks/{chunk-HWBMYR5W.js → chunk-EEKG35K5.js} +5 -5
- package/dist/cli/chunks/{chunk-WQZ2WRO4.js → chunk-EK3HPH6A.js} +1 -1
- package/dist/cli/chunks/{chunk-WZYNY3VF.js → chunk-FGD6HINU.js} +1 -1
- package/dist/cli/chunks/{chunk-ZSBJNE35.js → chunk-FGSIID5C.js} +2 -2
- package/dist/cli/chunks/{chunk-TCWR6TDN.js → chunk-FHTYEAQ3.js} +2 -2
- package/dist/cli/chunks/{chunk-BRLUNIR4.js → chunk-FII3WCCY.js} +2 -2
- package/dist/cli/chunks/{chunk-VCUCD3B5.js → chunk-FIPKIIMS.js} +2 -2
- package/dist/cli/chunks/{chunk-6545AS2J.js → chunk-FMNXHVIN.js} +2 -2
- package/dist/cli/chunks/{chunk-VO6YJGB4.js → chunk-G2ZIJZJ7.js} +2 -2
- package/dist/cli/chunks/{chunk-7ADD2ZQL.js → chunk-GODAWJMZ.js} +2 -2
- package/dist/cli/chunks/{chunk-AQIEK4SY.js → chunk-GW6XWMX2.js} +2 -2
- package/dist/cli/chunks/{chunk-GOQ4P2PB.js → chunk-HC6KTVFR.js} +2 -2
- package/dist/cli/chunks/{chunk-2KNFS3L5.js → chunk-HJWT4KME.js} +1 -1
- package/dist/cli/chunks/{chunk-NV3TXXOW.js → chunk-I3ANRYQ6.js} +2 -2
- package/dist/cli/chunks/{chunk-IQBZBUP5.js → chunk-I3NWKPXJ.js} +2 -2
- package/dist/cli/chunks/chunk-IBDQWKI3.js +2 -0
- package/dist/cli/chunks/{chunk-LW5DHT3Z.js → chunk-IU5RSN6M.js} +2 -2
- package/dist/cli/chunks/{chunk-XHRLBJTM.js → chunk-J5XDKVI7.js} +2 -2
- package/dist/cli/chunks/{chunk-QEVX4GWF.js → chunk-J6PFPY7V.js} +2 -2
- package/dist/cli/chunks/{chunk-AE6HXMOG.js → chunk-JATLFS6A.js} +1 -1
- package/dist/cli/chunks/{chunk-HJO4RNOW.js → chunk-JBKZ5TUM.js} +2 -2
- package/dist/cli/chunks/{chunk-7QTB5XIQ.js → chunk-JDSHUECG.js} +2 -2
- package/dist/cli/chunks/{chunk-GRQ36XUH.js → chunk-K4C25BWV.js} +2 -2
- package/dist/cli/chunks/{chunk-BMQDELPA.js → chunk-K4I7UIU5.js} +1 -1
- package/dist/cli/chunks/{chunk-AJXGGTX7.js → chunk-KP3R2M2G.js} +1 -1
- package/dist/cli/chunks/chunk-KQVIWE3W.js +2 -0
- package/dist/cli/chunks/{chunk-ZFCVT43J.js → chunk-KVVJVMDM.js} +2 -2
- package/dist/cli/chunks/{chunk-WMIRAD3J.js → chunk-LOE2JETO.js} +2 -2
- package/dist/cli/chunks/{chunk-54B6P2WS.js → chunk-LPR2R3AN.js} +3 -3
- package/dist/cli/chunks/{chunk-EZRHSHOQ.js → chunk-M6FW56MV.js} +2 -2
- package/dist/cli/chunks/{chunk-IF3HPQNV.js → chunk-MCHEUSY4.js} +1 -1
- package/dist/cli/chunks/{chunk-NBBLPDJX.js → chunk-MEIU7457.js} +2 -2
- package/dist/cli/chunks/{chunk-4BFCLSDN.js → chunk-MHMQ6MCT.js} +2 -2
- package/dist/cli/chunks/{chunk-UQ72K44T.js → chunk-MIU5RUBJ.js} +2 -2
- package/dist/cli/chunks/{chunk-LKURMUBU.js → chunk-MMEXHZUC.js} +37 -12
- package/dist/cli/chunks/{chunk-SRVTNG6L.js → chunk-MTBGOWJA.js} +2 -2
- package/dist/cli/chunks/{chunk-TPMBFARK.js → chunk-NCSXLMDL.js} +67 -22
- package/dist/cli/chunks/{chunk-TU6YN43Q.js → chunk-O7J54OHN.js} +1 -1
- package/dist/cli/chunks/{chunk-JCTCM6IR.js → chunk-OGNTCZKK.js} +1 -1
- package/dist/cli/chunks/{chunk-FSGMRQFC.js → chunk-OS2HHJTM.js} +2 -2
- package/dist/cli/chunks/{chunk-TSWF3AGQ.js → chunk-OS62Y77J.js} +2 -2
- package/dist/cli/chunks/{chunk-VQU7DMEY.js → chunk-PVDXNQPL.js} +2 -2
- package/dist/cli/chunks/{chunk-DNOU2HVQ.js → chunk-PW72M2FE.js} +2 -2
- package/dist/cli/chunks/{chunk-HH6NCBSP.js → chunk-Q5TR6ETB.js} +22 -22
- package/dist/cli/chunks/{chunk-PFWJQPUC.js → chunk-QKK7VBVB.js} +2 -2
- package/dist/cli/chunks/{chunk-JNQN5DNS.js → chunk-RFLHPLET.js} +1 -1
- package/dist/cli/chunks/{chunk-IB3ZPLFA.js → chunk-RJN2RM76.js} +2 -2
- package/dist/cli/chunks/{chunk-PEIQDQXN.js → chunk-RKXZLTWR.js} +2 -2
- package/dist/cli/chunks/{chunk-5VSQAGA2.js → chunk-SE3JFUKP.js} +1 -1
- package/dist/cli/chunks/{chunk-LMJUMUQJ.js → chunk-SK754ZSH.js} +4 -4
- package/dist/cli/chunks/{chunk-UCYTY4LG.js → chunk-SO6G4IX3.js} +2 -2
- package/dist/cli/chunks/{chunk-ICCTQ5LO.js → chunk-SUL3I6QZ.js} +2 -2
- package/dist/cli/chunks/{chunk-G3TFNY4T.js → chunk-TBT3OFRW.js} +2 -2
- package/dist/cli/chunks/{chunk-AYGEWPN4.js → chunk-TEIWJ3GJ.js} +1 -1
- package/dist/cli/chunks/{chunk-YKSWC7I4.js → chunk-TRNBQFFG.js} +8 -20
- package/dist/cli/chunks/{chunk-NSPCZPTB.js → chunk-TTJJ4DQE.js} +2 -2
- package/dist/cli/chunks/{chunk-2WPSMQIL.js → chunk-UBI2EOS3.js} +1 -1
- package/dist/cli/chunks/{chunk-ADFKY3X2.js → chunk-UBY322ED.js} +2 -2
- package/dist/cli/chunks/{chunk-QSDIY3E2.js → chunk-UORTQXJ2.js} +1 -1
- package/dist/cli/chunks/{chunk-ODZSQVEW.js → chunk-URP75DL4.js} +1 -1
- package/dist/cli/chunks/{chunk-37ZDGJ3H.js → chunk-V6NAB5UZ.js} +1 -1
- package/dist/cli/chunks/{chunk-YZ5EQR37.js → chunk-VMFAANWX.js} +2 -2
- package/dist/cli/chunks/{chunk-NFJT7XXR.js → chunk-VMWRMINE.js} +1 -1
- package/dist/cli/chunks/{chunk-MCT4CD5M.js → chunk-VN2HHBZN.js} +2 -2
- package/dist/cli/chunks/{chunk-QMC5MTBV.js → chunk-W72FJA2H.js} +2 -2
- package/dist/cli/chunks/chunk-W7TYKPLY.js +27 -0
- package/dist/cli/chunks/{chunk-YUHM72VQ.js → chunk-WHHQIL4F.js} +2 -2
- package/dist/cli/chunks/{chunk-4YT5YN5G.js → chunk-WMZ2QGGS.js} +2 -2
- package/dist/cli/chunks/{chunk-Q7ORVHJB.js → chunk-WPSK237F.js} +3 -3
- package/dist/cli/chunks/{chunk-ZYZT2CDX.js → chunk-XKQY2Z3Q.js} +1 -1
- package/dist/cli/chunks/{chunk-WNMDWP5A.js → chunk-XLT3FYS7.js} +2 -2
- package/dist/cli/chunks/{chunk-U34OZXD6.js → chunk-XT4TDLOB.js} +2 -2
- package/dist/cli/chunks/{chunk-6GYGAW53.js → chunk-Y25PO65W.js} +2 -2
- package/dist/cli/chunks/{chunk-3SRPFBU7.js → chunk-Y6DWJKHU.js} +3 -3
- package/dist/cli/chunks/{chunk-D6CKKNYC.js → chunk-YBPLJRVT.js} +2 -2
- package/dist/cli/chunks/{chunk-LLUPRGOR.js → chunk-YFCULQBP.js} +2 -2
- package/dist/cli/chunks/{chunk-HT6WAYIR.js → chunk-YGVDP6X7.js} +1 -1
- package/dist/cli/chunks/{chunk-RCPD6F4R.js → chunk-YR2JKBZO.js} +2 -2
- package/dist/cli/chunks/{chunk-P6S6ZVB5.js → chunk-YZSTZUGJ.js} +1 -1
- package/dist/cli/chunks/{chunk-CNF3ZWLM.js → chunk-ZG5UAEEO.js} +2 -2
- package/dist/cli/chunks/{chunk-MWFJC5HR.js → chunk-ZLBY25MB.js} +1 -1
- package/dist/cli/chunks/chunk-ZMPAM4DY.js +2 -0
- package/dist/cli/chunks/{chunk-A4OMK3FO.js → chunk-ZPP57WQU.js} +2 -2
- package/dist/cli/chunks/{chunk-U3AVZGQA.js → chunk-ZXEWTZFR.js} +1 -1
- package/dist/cli/chunks/{ci-HQCRSCC7.js → ci-CBNVLOOQ.js} +2 -2
- package/dist/cli/chunks/{ci-output-YBVXLA6O.js → ci-output-I4HY2FYJ.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-ULGMF2QN.js → circuit-breaker-5VRBKGWL.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-MKZ2LJXK.js → claude-flow-setup-XPJPKHIO.js} +2 -2
- package/dist/cli/chunks/client-AHXNCOHK.js +2 -0
- package/dist/cli/chunks/{cline-installer-WZQ6XBWN.js → cline-installer-OFRDUUWZ.js} +2 -2
- package/dist/cli/chunks/{code-H3KGH45S.js → code-QIZQVB3E.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-NUVEAJ7C.js → code-index-extractor-LMUUWEX4.js} +2 -2
- package/dist/cli/chunks/{codex-installer-JQI6E6CV.js → codex-installer-N2MKIZ2S.js} +2 -2
- package/dist/cli/chunks/{completions-NDF4PFE7.js → completions-Y36S3C5J.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-XCZH66HG.js → complexity-analyzer-73YS3WUD.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-Z4AJGZ7S.js → continuedev-installer-SAOTP6J3.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-K4IPAL7C.js → copilot-installer-A4HXF6HE.js} +2 -2
- package/dist/cli/chunks/core-handlers-EEFLLMAZ.js +2 -0
- package/dist/cli/chunks/{cost-tracker-35KXAB23.js → cost-tracker-P26XUVZS.js} +2 -2
- package/dist/cli/chunks/{coverage-QW5I4TYZ.js → coverage-HVNHSMVJ.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-LT3H4SNJ.js +2 -0
- package/dist/cli/chunks/{cursor-installer-P4Z7RMIZ.js → cursor-installer-46BQFTYZ.js} +2 -2
- package/dist/cli/chunks/{daemon-WQWTCYBM.js → daemon-Y54O3FLT.js} +3 -3
- package/dist/cli/chunks/daemon-YE7K2AZF.js +10 -0
- package/dist/cli/chunks/{dag-attention-scheduler-7XD2VGON.js → dag-attention-scheduler-ETA7YY52.js} +2 -2
- package/dist/cli/chunks/{detect-GZ3P4DI7.js → detect-5WLQ2J3E.js} +2 -2
- package/dist/cli/chunks/{dist-node-6WWAW7OP.js → dist-node-45WW6I7J.js} +2 -2
- package/dist/cli/chunks/{domain-handler-3GTLWARQ.js → domain-handler-J7DQV74M.js} +2 -2
- package/dist/cli/chunks/domain-transfer-GD2EGQVR.js +2 -0
- package/dist/cli/chunks/dream-4K3BK4IG.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-BGIMA77V.js → embed-and-insert-pattern-JELNEA2D.js} +2 -2
- package/dist/cli/chunks/{eval-SXV6DRDD.js → eval-A4PA5G2U.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-TT6WCT2S.js → experience-capture-middleware-MLHTYWTA.js} +3 -3
- package/dist/cli/chunks/{fast-paths-HTAZHEQP.js → fast-paths-QYDTITRV.js} +2 -2
- package/dist/cli/chunks/{feature-flags-WBUKU54W.js → feature-flags-H4MSY26Z.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DIE3Z2B4.js → feature-flags-MQYYRHIK.js} +2 -2
- package/dist/cli/chunks/{file-discovery-SKDETFS3.js → file-discovery-RMFVJNGL.js} +2 -2
- package/dist/cli/chunks/{fleet-WCWEPAVU.js → fleet-7KZQOTAC.js} +4 -4
- package/dist/cli/chunks/{gnn-wrapper-KWZOWBYS.js → gnn-wrapper-NMZFTGVH.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-3AGYHVG2.js → heartbeat-handler-7BQDK7MG.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-IMPPGQUK.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-EIAA6R2L.js +2 -0
- package/dist/cli/chunks/hnsw-index-ZXXP6AXZ.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-6OJJDZHL.js → hnsw-legacy-bridge-TPPGBPKF.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-URULPKRF.js → hnswlib-node-E6NSZPP2.js} +2 -2
- package/dist/cli/chunks/{hooks-OXEBTLXV.js → hooks-CYZIUYSH.js} +48 -52
- package/dist/cli/chunks/hybrid-router-LXWG4MLH.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-NL74PRHD.js → hypergraph-engine-WC6DMTYQ.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-KZ54AEEL.js → hypergraph-handler-GTGA3TXJ.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-TP5LRFYH.js +2 -0
- package/dist/cli/chunks/{init-handler-XKZXRXPG.js → init-handler-N3Z72JNI.js} +6 -6
- package/dist/cli/chunks/init-wizard-AIOA5KOY.js +2 -0
- package/dist/cli/chunks/kernel-SQALRU6Q.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-WISQMJK7.js → kilocode-installer-FUX4V6II.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-O7TBB3GM.js → kiro-installer-ZSNZT7ZR.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-JFVT6SNN.js +2 -0
- package/dist/cli/chunks/{learning-6IZBGVRU.js → learning-UQY64COU.js} +3 -3
- package/dist/cli/chunks/{llm-router-QDMQPPQ7.js → llm-router-CMHGGX6N.js} +4 -4
- package/dist/cli/chunks/llm-router-service-XHFKTH3I.js +2 -0
- package/dist/cli/chunks/{load-KLAJJGL5.js → load-E6WH4QN2.js} +2 -2
- package/dist/cli/chunks/load-test-JEIFJKNN.js +2 -0
- package/dist/cli/chunks/{mcp-SZOPQZIZ.js → mcp-UM5VTW6N.js} +2 -2
- package/dist/cli/chunks/{memory-G3WY74C6.js → memory-7Q3XDUE5.js} +5 -5
- package/dist/cli/chunks/memory-backend-NT7I37CP.js +2 -0
- package/dist/cli/chunks/memory-handlers-746D7NE7.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-TDNQGTOT.js → multi-model-executor-LZENWVRR.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-NGYGEDMV.js → opencode-installer-O2JAIPLF.js} +2 -2
- package/dist/cli/chunks/{orchestrator-KPI5DY2C.js → orchestrator-DKZWXDRI.js} +5 -5
- package/dist/cli/chunks/pattern-null-store-6QU6WHDW.js +2 -0
- package/dist/cli/chunks/pattern-usage-recorder-CLUL4M55.js +2 -0
- package/dist/cli/chunks/{pipeline-CSDCC675.js → pipeline-2VDLTR5J.js} +2 -2
- package/dist/cli/chunks/{platform-Q5XKEVKH.js → platform-4N4Q5XYX.js} +2 -2
- package/dist/cli/chunks/{plugin-XKKR3GVL.js → plugin-GY5AU5CS.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-22QVNKEN.js → prime-radiant-advanced-wasm-TQ4DKDZS.js} +2 -2
- package/dist/cli/chunks/protocol-executor-GT2MZYUU.js +2 -0
- package/dist/cli/chunks/{protocol-handler-REQKTJGG.js → protocol-handler-T3LZ3WRG.js} +2 -2
- package/dist/cli/chunks/{prove-NOFUFSQN.js → prove-OV7S5J4W.js} +2 -2
- package/dist/cli/chunks/provider-manager-OATJ7R3D.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-IJXNQ67O.js +2 -0
- package/dist/cli/chunks/{quality-3DQ2H5TK.js → quality-AXD4NLQA.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-6RBHWCUG.js +2 -0
- package/dist/cli/chunks/{real-embeddings-FCGNYWLL.js → real-embeddings-2PUCC7FG.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-HX3CNRIR.js → roocode-installer-WJ5ARGLW.js} +2 -2
- package/dist/cli/chunks/router-XKQRT5JK.js +2 -0
- package/dist/cli/chunks/routing-feedback-ACPSD4LW.js +2 -0
- package/dist/cli/chunks/{routing-handler-YRZ2LDCR.js → routing-handler-CU6657SZ.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-GCQVBJ4E.js → ruvector-commands-IIF6VSFW.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-B562P3ZC.js → rvf-dual-writer-YMQI7XO2.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-NAGFKCMD.js → rvf-migration-adapter-HDE3PR2W.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-WWFBEJ5Q.js → rvf-migration-coordinator-MQV5OA7K.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-SIWRKE33.js +2 -0
- package/dist/cli/chunks/safe-db-LCPUYMX4.js +2 -0
- package/dist/cli/chunks/schedule-HIQJCWXG.js +2 -0
- package/dist/cli/chunks/scheduler-QE5EJ5LE.js +2 -0
- package/dist/cli/chunks/{security-IFOYTD75.js → security-UM3IGDSM.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-TYD5TQ35.js → shared-rvf-adapter-I3SOJ6M4.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-YGOOVDQZ.js → shared-rvf-dual-writer-KQGC2UO7.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-EU54UTMH.js +2 -0
- package/dist/cli/chunks/status-handler-OX4CJZME.js +46 -0
- package/dist/cli/chunks/{structural-health-KZI6YMKV.js → structural-health-PYUMVBXJ.js} +2 -2
- package/dist/cli/chunks/{sync-Z5BDDBMK.js → sync-2TED3YTY.js} +2 -2
- package/dist/cli/chunks/{sync-ABZNNYRC.js → sync-VALFNTA6.js} +2 -2
- package/dist/cli/chunks/{task-handler-5ACZEPJ7.js → task-handler-VPGAJVPC.js} +2 -2
- package/dist/cli/chunks/{task-handlers-UZWDPL6A.js → task-handlers-IB4UAMU6.js} +3 -3
- package/dist/cli/chunks/{test-APO3MCVV.js → test-OMRJOZB6.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-EFZA5G5C.js → test-scheduling-ZL3YFPBU.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-J2OPLNUK.js → token-bootstrap-DNWZI7SH.js} +2 -2
- package/dist/cli/chunks/{token-usage-VHWVNN4R.js → token-usage-IYO7RGFF.js} +2 -2
- package/dist/cli/chunks/{transformers-PX4HPO75.js → transformers-53ALC34T.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-44HA2Z3F.js → tree-sitter-wasm-parser-WUKJ2I2Q.js} +2 -2
- package/dist/cli/chunks/{types-IMOP7F4R.js → types-47FTEPMV.js} +2 -2
- package/dist/cli/chunks/unified-memory-CJLMC2I4.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-FDGR4D2J.js +2 -0
- package/dist/cli/chunks/unified-persistence-UFH5GLDN.js +2 -0
- package/dist/cli/chunks/{upgrade-OZ3O6ZZI.js → upgrade-QPLMJA5Z.js} +2 -2
- package/dist/cli/chunks/{validate-DRY5BMWX.js → validate-3GVKZOVF.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-QD3LYPUF.js → validate-swarm-XCRTLVM6.js} +2 -2
- package/dist/cli/chunks/{vibium-2J3H2ITD.js → vibium-CH4VPKVZ.js} +2 -2
- package/dist/cli/chunks/visual-security-4ARJ7J2Y.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-KRNUOGKI.js → web-tree-sitter-JDBNAZTV.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-PQIPH3WP.js → windsurf-installer-3MNPVJBP.js} +2 -2
- package/dist/cli/chunks/witness-chain-73QC33ED.js +2 -0
- package/dist/cli/chunks/{witness-chain-HPLOYPS7.js → witness-chain-HR5UBV5J.js} +2 -2
- package/dist/cli/chunks/witness-key-manager-G5SQTIBZ.js +2 -0
- package/dist/cli/chunks/{workflow-OAQ3FWCY.js → workflow-43EMD5FY.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-RKMMPXNA.js +2 -0
- package/dist/cli/chunks/{wrappers-UPIU6S5S.js → wrappers-3N7AYNM3.js} +2 -2
- package/dist/cli/commands/audit.d.ts +12 -0
- package/dist/cli/commands/audit.js +64 -4
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +45 -19
- package/dist/cli/commands/hooks-handlers/hooks-shared.d.ts +13 -0
- package/dist/cli/commands/hooks-handlers/hooks-shared.js +38 -0
- package/dist/cli/commands/hooks-handlers/task-hooks.js +19 -1
- package/dist/cli/handlers/status-handler.d.ts +18 -0
- package/dist/cli/handlers/status-handler.js +47 -0
- package/dist/coordination/mincut/queen-integration.js +24 -7
- package/dist/coordination/protocol-executor.js +2 -1
- package/dist/coordination/queen-lifecycle.js +4 -1
- package/dist/domains/code-intelligence/coordinator.js +10 -6
- package/dist/domains/code-intelligence/services/product-factors-bridge.js +3 -1
- package/dist/domains/defect-intelligence/services/defect-predictor.d.ts +6 -0
- package/dist/domains/defect-intelligence/services/defect-predictor.js +21 -0
- package/dist/domains/learning-optimization/interfaces.d.ts +7 -0
- package/dist/domains/learning-optimization/plugin.js +5 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +10 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.js +57 -0
- package/dist/domains/test-execution/plugin.js +2 -2
- package/dist/domains/test-execution/services/flaky-detector.js +1 -1
- package/dist/domains/test-generation/coordinator.js +22 -8
- package/dist/domains/test-generation/interfaces.d.ts +3 -0
- package/dist/domains/test-generation/services/test-generator.js +9 -1
- package/dist/integrations/ruvector/delta-tracker.js +10 -1
- package/dist/integrations/ruvector/sona-persistence.d.ts +24 -0
- package/dist/integrations/ruvector/sona-persistence.js +76 -0
- package/dist/integrations/ruvector/sona-three-loop.d.ts +15 -0
- package/dist/integrations/ruvector/sona-three-loop.js +17 -0
- package/dist/kernel/unified-memory-schemas.d.ts +2 -2
- package/dist/kernel/unified-memory-schemas.js +48 -2
- package/dist/kernel/unified-memory.d.ts +22 -0
- package/dist/kernel/unified-memory.js +43 -0
- package/dist/learning/aqe-learning-engine.js +3 -1
- package/dist/learning/dream/concept-graph.d.ts +31 -1
- package/dist/learning/dream/concept-graph.js +109 -3
- package/dist/learning/dream/dream-engine.d.ts +13 -1
- package/dist/learning/dream/dream-engine.js +146 -10
- package/dist/learning/dream/index.d.ts +1 -1
- package/dist/learning/dream/types.d.ts +23 -0
- package/dist/learning/pattern-store.d.ts +2 -2
- package/dist/learning/pattern-store.js +14 -3
- package/dist/learning/qe-reasoning-bank.js +34 -31
- package/dist/learning/routing-topology-gate.d.ts +12 -2
- package/dist/learning/routing-topology-gate.js +15 -3
- package/dist/learning/rvf-pattern-store.d.ts +1 -1
- package/dist/learning/rvf-pattern-store.js +21 -8
- package/dist/learning/sqlite-persistence.js +12 -9
- package/dist/mcp/bundle.js +516 -442
- package/dist/mcp/qe-tool-bridge.js +7 -2
- package/dist/mcp/tools/base.d.ts +29 -0
- package/dist/mcp/tools/base.js +25 -0
- package/dist/mcp/tools/coverage-analysis/index.js +6 -4
- package/dist/mcp/tools/learning-optimization/dream.d.ts +4 -13
- package/dist/mcp/tools/learning-optimization/dream.js +10 -96
- package/dist/mcp/tools/planning/goap-execute.d.ts +13 -1
- package/dist/mcp/tools/planning/goap-execute.js +33 -18
- package/dist/mcp/tools/registry.js +7 -2
- package/dist/persistence/rvf-migration-coordinator.js +2 -1
- package/dist/planning/actions/qe-action-library.js +124 -1
- package/dist/planning/goap-planner.d.ts +14 -2
- package/dist/planning/goap-planner.js +51 -9
- package/dist/planning/index.d.ts +1 -1
- package/dist/planning/plan-executor.d.ts +84 -4
- package/dist/planning/plan-executor.js +221 -56
- package/dist/planning/types.d.ts +27 -0
- package/dist/shared/events/domain-events.d.ts +2 -0
- package/dist/workers/workers/learning-consolidation.js +21 -1
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-2HMUXHWY.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-M2NKRVRE.js +0 -2
- package/dist/cli/chunks/audit-EPB7ETMT.js +0 -3
- package/dist/cli/chunks/base-CCHC2DAC.js +0 -2
- package/dist/cli/chunks/brain-handler-FBMYEERK.js +0 -89
- package/dist/cli/chunks/browser-workflow-4DGHFYY3.js +0 -2
- package/dist/cli/chunks/chunk-5AQ7FXYG.js +0 -27
- package/dist/cli/chunks/chunk-KYTFIP6R.js +0 -2
- package/dist/cli/chunks/chunk-MYMIEQSZ.js +0 -65
- package/dist/cli/chunks/chunk-XXRTWG7O.js +0 -2
- package/dist/cli/chunks/chunk-ZSA6V5FH.js +0 -2
- package/dist/cli/chunks/client-2OVEDWGU.js +0 -2
- package/dist/cli/chunks/core-handlers-UXRRYP52.js +0 -2
- package/dist/cli/chunks/cross-domain-router-PV3VQVLO.js +0 -2
- package/dist/cli/chunks/daemon-ESUEM6VB.js +0 -10
- package/dist/cli/chunks/domain-transfer-TQYO3SVG.js +0 -2
- package/dist/cli/chunks/dream-UFUXVJQC.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-MBG3SARO.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-5HXA3QB3.js +0 -2
- package/dist/cli/chunks/hnsw-index-PZRQWBRG.js +0 -2
- package/dist/cli/chunks/hybrid-router-NQRIE2GG.js +0 -2
- package/dist/cli/chunks/impact-analyzer-46347ZDV.js +0 -2
- package/dist/cli/chunks/init-wizard-CJYP4WKO.js +0 -2
- package/dist/cli/chunks/kernel-22KQZ56U.js +0 -2
- package/dist/cli/chunks/knowledge-graph-KM3JDBGR.js +0 -2
- package/dist/cli/chunks/llm-router-service-IFO6GRRO.js +0 -2
- package/dist/cli/chunks/load-test-TTKCYAPB.js +0 -2
- package/dist/cli/chunks/memory-backend-ELHCX2ZT.js +0 -2
- package/dist/cli/chunks/memory-handlers-3SKYQZTL.js +0 -2
- package/dist/cli/chunks/pattern-null-store-TMXAYD43.js +0 -2
- package/dist/cli/chunks/protocol-executor-BPLR5EJC.js +0 -2
- package/dist/cli/chunks/provider-manager-4MMD5QKL.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-P7KNT3WZ.js +0 -2
- package/dist/cli/chunks/queen-coordinator-NBZZ4MGC.js +0 -2
- package/dist/cli/chunks/router-2RXR6J2Q.js +0 -2
- package/dist/cli/chunks/routing-feedback-AVAA76TK.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-X2YDJA55.js +0 -2
- package/dist/cli/chunks/safe-db-4PRU65BK.js +0 -2
- package/dist/cli/chunks/schedule-2AST5CHW.js +0 -2
- package/dist/cli/chunks/scheduler-SW6II7OU.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-OB5NEGAK.js +0 -2
- package/dist/cli/chunks/status-handler-HFPWSCBY.js +0 -45
- package/dist/cli/chunks/unified-memory-X7OJYGSD.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-O6HOD5YL.js +0 -2
- package/dist/cli/chunks/unified-persistence-C332CER2.js +0 -2
- package/dist/cli/chunks/visual-security-MPUG5HPI.js +0 -2
- package/dist/cli/chunks/witness-chain-Q4BZHPDF.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-4NDWECYK.js +0 -2
|
@@ -80,9 +80,14 @@ export function registerMissingQETools(registerFn) {
|
|
|
80
80
|
// lazily for MCP-only contexts) so the MCPToolContext.llmRouter
|
|
81
81
|
// field carries the actual instance rather than relying on each
|
|
82
82
|
// tool's getLLMRouter(context) singleton fallback.
|
|
83
|
-
const { getSharedLLMRouter } = await import('./tools/base.js');
|
|
83
|
+
const { getSharedLLMRouter, getKernel } = await import('./tools/base.js');
|
|
84
84
|
const llmRouter = (await getSharedLLMRouter()) ?? undefined;
|
|
85
|
-
|
|
85
|
+
// A14: forward the fleet_init kernel singleton (if one exists) the
|
|
86
|
+
// same way, so tools that resolve real domain APIs
|
|
87
|
+
// (kernel.getDomainAPI) work through this bridge too, not just
|
|
88
|
+
// through whatever other entry point happens to pass one.
|
|
89
|
+
const kernel = await getKernel();
|
|
90
|
+
const result = await tool.invoke(params, { llmRouter, kernel });
|
|
86
91
|
return result;
|
|
87
92
|
},
|
|
88
93
|
};
|
package/dist/mcp/tools/base.d.ts
CHANGED
|
@@ -67,6 +67,18 @@ export declare function resetSharedLLMRouter(): void;
|
|
|
67
67
|
* the value.
|
|
68
68
|
*/
|
|
69
69
|
export declare function getLLMRouter(context?: MCPToolContext): Promise<import('../../shared/llm/router/hybrid-router.js').HybridRouter | undefined>;
|
|
70
|
+
/**
|
|
71
|
+
* A14: get the initialized kernel from context, or fall back to the
|
|
72
|
+
* fleet_init singleton (`core-handlers.ts`'s module-level fleet state) if
|
|
73
|
+
* one has been initialized in-process. Returns undefined — never throws —
|
|
74
|
+
* when no kernel is available (fleet_init hasn't run); callers must degrade
|
|
75
|
+
* gracefully.
|
|
76
|
+
*
|
|
77
|
+
* Dynamic import here, not a static one: core-handlers.ts transitively
|
|
78
|
+
* imports tools/registry.ts, which imports every tool that extends
|
|
79
|
+
* MCPToolBase (this file) — a static import would be circular.
|
|
80
|
+
*/
|
|
81
|
+
export declare function getKernel(context?: MCPToolContext): Promise<import('../../kernel/interfaces.js').QEKernel | undefined>;
|
|
70
82
|
/**
|
|
71
83
|
* JSON Schema property definition for tool parameters
|
|
72
84
|
*/
|
|
@@ -127,6 +139,17 @@ export interface MCPToolContext {
|
|
|
127
139
|
* bag so isLLMAnalysisAvailable() returns true.
|
|
128
140
|
*/
|
|
129
141
|
llmRouter?: import('../../shared/llm/router/hybrid-router.js').HybridRouter;
|
|
142
|
+
/**
|
|
143
|
+
* A14: initialized kernel instance, for tools that need to reach a real
|
|
144
|
+
* domain plugin's public API (`kernel.getDomainAPI<T>(domain)`) rather
|
|
145
|
+
* than constructing their own service instance — the pattern
|
|
146
|
+
* `DefaultProtocolExecutor` already uses for real (non-mocked) action
|
|
147
|
+
* dispatch. Only populated when `fleet_init` has run in-process and
|
|
148
|
+
* handed its kernel to the MCP runtime (see qe-tool-bridge.ts); undefined
|
|
149
|
+
* otherwise. Tools MUST tolerate an undefined kernel and degrade
|
|
150
|
+
* gracefully (e.g. "run fleet_init first") rather than assume it's set.
|
|
151
|
+
*/
|
|
152
|
+
kernel?: import('../../kernel/interfaces.js').QEKernel;
|
|
130
153
|
}
|
|
131
154
|
/**
|
|
132
155
|
* Data source tracking for audit/transparency
|
|
@@ -229,6 +252,12 @@ export declare abstract class MCPToolBase<TParams extends Record<string, unknown
|
|
|
229
252
|
* lazy build path.
|
|
230
253
|
*/
|
|
231
254
|
llmRouter?: import('../../shared/llm/router/hybrid-router.js').HybridRouter;
|
|
255
|
+
/**
|
|
256
|
+
* A14: optional kernel injection, mirroring the memory/llmRouter
|
|
257
|
+
* pattern — the MCP runtime forwards the fleet_init kernel singleton
|
|
258
|
+
* here (see qe-tool-bridge.ts) when one has been initialized.
|
|
259
|
+
*/
|
|
260
|
+
kernel?: import('../../kernel/interfaces.js').QEKernel;
|
|
232
261
|
}): Promise<ToolResult<TResult>>;
|
|
233
262
|
/**
|
|
234
263
|
* Create result metadata
|
package/dist/mcp/tools/base.js
CHANGED
|
@@ -208,6 +208,30 @@ export async function getLLMRouter(context) {
|
|
|
208
208
|
const shared = await getSharedLLMRouter();
|
|
209
209
|
return shared ?? undefined;
|
|
210
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* A14: get the initialized kernel from context, or fall back to the
|
|
213
|
+
* fleet_init singleton (`core-handlers.ts`'s module-level fleet state) if
|
|
214
|
+
* one has been initialized in-process. Returns undefined — never throws —
|
|
215
|
+
* when no kernel is available (fleet_init hasn't run); callers must degrade
|
|
216
|
+
* gracefully.
|
|
217
|
+
*
|
|
218
|
+
* Dynamic import here, not a static one: core-handlers.ts transitively
|
|
219
|
+
* imports tools/registry.ts, which imports every tool that extends
|
|
220
|
+
* MCPToolBase (this file) — a static import would be circular.
|
|
221
|
+
*/
|
|
222
|
+
export async function getKernel(context) {
|
|
223
|
+
if (context?.kernel) {
|
|
224
|
+
return context.kernel;
|
|
225
|
+
}
|
|
226
|
+
try {
|
|
227
|
+
const { getFleetState } = await import('../handlers/core-handlers.js');
|
|
228
|
+
const state = getFleetState();
|
|
229
|
+
return state.kernel ?? undefined;
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return undefined;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
211
235
|
/**
|
|
212
236
|
* Default console logger
|
|
213
237
|
*/
|
|
@@ -372,6 +396,7 @@ export class MCPToolBase {
|
|
|
372
396
|
demoMode: options.demoMode,
|
|
373
397
|
memory: options.memory,
|
|
374
398
|
llmRouter: options.llmRouter,
|
|
399
|
+
kernel: options.kernel,
|
|
375
400
|
};
|
|
376
401
|
try {
|
|
377
402
|
// Execute the tool
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* This module wraps the REAL coverage-analysis domain services.
|
|
8
8
|
* Uses actual LCOV/JSON parsing and vector-based gap detection.
|
|
9
9
|
*/
|
|
10
|
-
import { MCPToolBase, getSharedMemoryBackend, getLLMRouter } from '../base';
|
|
10
|
+
import { MCPToolBase, getSharedMemoryBackend, getLLMRouter, getKernel } from '../base';
|
|
11
11
|
import { CoverageAnalyzerService } from '../../../domains/coverage-analysis/services/coverage-analyzer';
|
|
12
12
|
import { GapDetectorService } from '../../../domains/coverage-analysis/services/gap-detector';
|
|
13
13
|
import { findAndParseCoverage, parseCoverage, } from '../../../domains/coverage-analysis/services/coverage-parser';
|
|
@@ -396,9 +396,11 @@ export class CoverageGapsTool extends MCPToolBase {
|
|
|
396
396
|
let ghostGaps;
|
|
397
397
|
if (params.includeGhost) {
|
|
398
398
|
try {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
399
|
+
// A14: context.kernel is now a real MCPToolContext field (was
|
|
400
|
+
// previously always undefined — nothing set it — so this branch
|
|
401
|
+
// was dead code regardless of --includeGhost).
|
|
402
|
+
const kernel = await getKernel(context);
|
|
403
|
+
if (kernel?.getDomainAPIAsync) {
|
|
402
404
|
const coordAPI = await kernel.getDomainAPIAsync('coverage-analysis');
|
|
403
405
|
if (coordAPI?.analyzeGhostCoverage) {
|
|
404
406
|
const ghostResult = await coordAPI.analyzeGhostCoverage(domainFiles.map((f) => f.path), target);
|
|
@@ -127,21 +127,12 @@ export declare class DreamCycleTool extends MCPToolBase<DreamCycleParams, DreamC
|
|
|
127
127
|
/**
|
|
128
128
|
* Apply an insight to create a REAL pattern in QEReasoningBank.
|
|
129
129
|
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
* 3. Marks the insight as applied in the engine
|
|
135
|
-
* 4. Returns the REAL pattern ID
|
|
130
|
+
* DreamEngine.applyInsight() is the single implementation (shared with the
|
|
131
|
+
* scheduler's autoApplyInsights) — it creates the real pattern, wires the
|
|
132
|
+
* RVF dual-writer, and updates dream_insights.pattern_id to point at the
|
|
133
|
+
* real row. This handler is a thin wrapper around it.
|
|
136
134
|
*/
|
|
137
135
|
private applyInsight;
|
|
138
|
-
/**
|
|
139
|
-
* Map DreamInsight type to QEPatternType.
|
|
140
|
-
*
|
|
141
|
-
* Dream insights have types like 'cross-domain', 'novel-path', etc.
|
|
142
|
-
* QEPatterns have types like 'test-template', 'coverage-strategy', etc.
|
|
143
|
-
*/
|
|
144
|
-
private mapInsightTypeToPatternType;
|
|
145
136
|
/**
|
|
146
137
|
* Get dream cycle history
|
|
147
138
|
*/
|
|
@@ -269,12 +269,10 @@ export class DreamCycleTool extends MCPToolBase {
|
|
|
269
269
|
/**
|
|
270
270
|
* Apply an insight to create a REAL pattern in QEReasoningBank.
|
|
271
271
|
*
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
* 3. Marks the insight as applied in the engine
|
|
277
|
-
* 4. Returns the REAL pattern ID
|
|
272
|
+
* DreamEngine.applyInsight() is the single implementation (shared with the
|
|
273
|
+
* scheduler's autoApplyInsights) — it creates the real pattern, wires the
|
|
274
|
+
* RVF dual-writer, and updates dream_insights.pattern_id to point at the
|
|
275
|
+
* real row. This handler is a thin wrapper around it.
|
|
278
276
|
*/
|
|
279
277
|
async applyInsight(params, context) {
|
|
280
278
|
if (!params.insightId) {
|
|
@@ -290,92 +288,25 @@ export class DreamCycleTool extends MCPToolBase {
|
|
|
290
288
|
}
|
|
291
289
|
try {
|
|
292
290
|
const engine = await this.getEngine();
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
const insight = pendingInsights.find((i) => i.id === params.insightId);
|
|
296
|
-
if (!insight) {
|
|
297
|
-
// Check if already applied or doesn't exist
|
|
291
|
+
const applyResult = await engine.applyInsight(params.insightId);
|
|
292
|
+
if (!applyResult.success) {
|
|
298
293
|
return {
|
|
299
294
|
success: false,
|
|
300
|
-
error:
|
|
295
|
+
error: applyResult.error,
|
|
301
296
|
data: {
|
|
302
297
|
action: 'apply',
|
|
303
298
|
success: false,
|
|
304
|
-
error:
|
|
299
|
+
error: applyResult.error,
|
|
305
300
|
},
|
|
306
301
|
};
|
|
307
302
|
}
|
|
308
|
-
|
|
309
|
-
return {
|
|
310
|
-
success: false,
|
|
311
|
-
error: 'Insight is not actionable',
|
|
312
|
-
data: {
|
|
313
|
-
action: 'apply',
|
|
314
|
-
success: false,
|
|
315
|
-
error: 'Insight is not actionable',
|
|
316
|
-
},
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
// Step 2: Create a REAL pattern in QEReasoningBank
|
|
320
|
-
const memoryBackend = await getSharedMemoryBackend();
|
|
321
|
-
const reasoningBank = createQEReasoningBank(memoryBackend);
|
|
322
|
-
await reasoningBank.initialize();
|
|
323
|
-
// Wire RVF dual-writer (optional, best-effort)
|
|
324
|
-
try {
|
|
325
|
-
const { getSharedRvfDualWriter } = await import('../../../integrations/ruvector/shared-rvf-dual-writer.js');
|
|
326
|
-
const dualWriter = await getSharedRvfDualWriter();
|
|
327
|
-
if (dualWriter)
|
|
328
|
-
reasoningBank.setRvfDualWriter(dualWriter);
|
|
329
|
-
}
|
|
330
|
-
catch (e) {
|
|
331
|
-
if (process.env.DEBUG)
|
|
332
|
-
this.logger.info('RVF wiring skipped', { error: String(e) });
|
|
333
|
-
}
|
|
334
|
-
// Map insight type to QE pattern type
|
|
335
|
-
const patternType = this.mapInsightTypeToPatternType(insight.type);
|
|
336
|
-
// Create the pattern with proper structure
|
|
337
|
-
const patternResult = await reasoningBank.storePattern({
|
|
338
|
-
patternType,
|
|
339
|
-
name: `Dream Insight: ${insight.type}`,
|
|
340
|
-
description: `${insight.description} (confidence: ${insight.confidenceScore.toFixed(2)})`,
|
|
341
|
-
template: {
|
|
342
|
-
type: 'workflow',
|
|
343
|
-
content: insight.suggestedAction || insight.description,
|
|
344
|
-
variables: [],
|
|
345
|
-
},
|
|
346
|
-
context: {
|
|
347
|
-
tags: ['dream-generated', insight.type, ...insight.sourceConcepts.slice(0, 3)],
|
|
348
|
-
complexity: 'medium',
|
|
349
|
-
},
|
|
350
|
-
});
|
|
351
|
-
if (!patternResult.success) {
|
|
352
|
-
const errorMsg = patternResult.error?.message || 'Unknown error';
|
|
353
|
-
return {
|
|
354
|
-
success: false,
|
|
355
|
-
error: `Failed to create pattern: ${errorMsg}`,
|
|
356
|
-
data: {
|
|
357
|
-
action: 'apply',
|
|
358
|
-
success: false,
|
|
359
|
-
error: `Failed to create pattern: ${errorMsg}`,
|
|
360
|
-
},
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
|
-
const realPatternId = patternResult.value.id;
|
|
364
|
-
// Step 3: Mark insight as applied in the engine
|
|
365
|
-
// This updates the engine's internal database (ignore its fake pattern ID)
|
|
366
|
-
await engine.applyInsight(params.insightId);
|
|
367
|
-
this.logger.info(`Applied insight ${params.insightId} → REAL pattern ${realPatternId} in ReasoningBank`);
|
|
368
|
-
const applyResult = {
|
|
369
|
-
insightId: params.insightId,
|
|
370
|
-
success: true,
|
|
371
|
-
patternId: realPatternId, // Return the REAL pattern ID
|
|
372
|
-
};
|
|
303
|
+
this.logger.info(`Applied insight ${params.insightId} → REAL pattern ${applyResult.patternId} in ReasoningBank`);
|
|
373
304
|
return {
|
|
374
305
|
success: true,
|
|
375
306
|
data: {
|
|
376
307
|
action: 'apply',
|
|
377
308
|
success: true,
|
|
378
|
-
applyResult,
|
|
309
|
+
applyResult: { insightId: params.insightId, ...applyResult },
|
|
379
310
|
},
|
|
380
311
|
};
|
|
381
312
|
}
|
|
@@ -392,23 +323,6 @@ export class DreamCycleTool extends MCPToolBase {
|
|
|
392
323
|
};
|
|
393
324
|
}
|
|
394
325
|
}
|
|
395
|
-
/**
|
|
396
|
-
* Map DreamInsight type to QEPatternType.
|
|
397
|
-
*
|
|
398
|
-
* Dream insights have types like 'cross-domain', 'novel-path', etc.
|
|
399
|
-
* QEPatterns have types like 'test-template', 'coverage-strategy', etc.
|
|
400
|
-
*/
|
|
401
|
-
mapInsightTypeToPatternType(insightType) {
|
|
402
|
-
// Map insight types to the most appropriate pattern type
|
|
403
|
-
const mapping = {
|
|
404
|
-
'cross-domain': 'coverage-strategy', // Cross-domain insights suggest coverage approaches
|
|
405
|
-
'novel-path': 'test-template', // Novel paths suggest new test templates
|
|
406
|
-
'cluster': 'refactor-safe', // Clusters suggest refactoring patterns
|
|
407
|
-
'high-activation': 'assertion-pattern', // High activation suggests important assertions
|
|
408
|
-
'bridge': 'mock-pattern', // Bridges between concepts suggest mocking
|
|
409
|
-
};
|
|
410
|
-
return mapping[insightType] || 'test-template';
|
|
411
|
-
}
|
|
412
326
|
/**
|
|
413
327
|
* Get dream cycle history
|
|
414
328
|
*/
|
|
@@ -58,7 +58,19 @@ export declare class GOAPExecuteTool extends MCPToolBase<GOAPExecuteParams, GOAP
|
|
|
58
58
|
*/
|
|
59
59
|
private getPlanner;
|
|
60
60
|
/**
|
|
61
|
-
* Get or create the plan executor instance
|
|
61
|
+
* Get or create the plan executor instance.
|
|
62
|
+
*
|
|
63
|
+
* A14: previously always built a mock executor (createMockExecutor,
|
|
64
|
+
* successRate: 0.95) regardless of whether real domain services were
|
|
65
|
+
* available — every "real execution" was actually a fabricated coin
|
|
66
|
+
* flip. Now constructs a real PlanExecutor with a getDomainAPI closure:
|
|
67
|
+
* `implemented: true` actions dispatch to the real domain method;
|
|
68
|
+
* `implemented: false` actions fail honestly (see PlanExecutor.executeStep).
|
|
69
|
+
*
|
|
70
|
+
* The closure is passed even when `kernel` is undefined (fleet_init
|
|
71
|
+
* hasn't run) — PlanExecutor.executeRealAction() then reports a clear
|
|
72
|
+
* "domain not available" error per step, which is what the user should
|
|
73
|
+
* see instead of a silent fallback to simulation.
|
|
62
74
|
*/
|
|
63
75
|
private getExecutor;
|
|
64
76
|
/**
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
* @module mcp/tools/planning/goap-execute
|
|
8
8
|
* @version 3.0.0
|
|
9
9
|
*/
|
|
10
|
-
import { MCPToolBase, } from '../base.js';
|
|
10
|
+
import { MCPToolBase, getKernel, } from '../base.js';
|
|
11
11
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
12
|
-
import { getSharedGOAPPlanner,
|
|
12
|
+
import { getSharedGOAPPlanner, PlanExecutor, MockAgentSpawner, } from '../../../planning/index.js';
|
|
13
13
|
// ============================================================================
|
|
14
14
|
// Tool Implementation
|
|
15
15
|
// ============================================================================
|
|
@@ -23,8 +23,11 @@ export class GOAPExecuteTool extends MCPToolBase {
|
|
|
23
23
|
executor = null;
|
|
24
24
|
config = {
|
|
25
25
|
name: 'qe/planning/goap_execute',
|
|
26
|
-
description: 'Execute a GOAP plan
|
|
27
|
-
|
|
26
|
+
description: 'Execute a GOAP plan. Each action dispatches to a real domain API method ' +
|
|
27
|
+
"when the action is marked implemented and a kernel is available (run fleet_init " +
|
|
28
|
+
'first); actions with no real implementation, or with no domain/kernel available, ' +
|
|
29
|
+
'fail with a specific reason rather than reporting a fabricated success. ' +
|
|
30
|
+
'Supports dry-run mode to preview the plan without executing anything.',
|
|
28
31
|
domain: 'coordination',
|
|
29
32
|
schema: this.buildSchema(),
|
|
30
33
|
timeout: 300000, // 5 minutes for plan execution
|
|
@@ -69,21 +72,32 @@ export class GOAPExecuteTool extends MCPToolBase {
|
|
|
69
72
|
return this.planner;
|
|
70
73
|
}
|
|
71
74
|
/**
|
|
72
|
-
* Get or create the plan executor instance
|
|
75
|
+
* Get or create the plan executor instance.
|
|
76
|
+
*
|
|
77
|
+
* A14: previously always built a mock executor (createMockExecutor,
|
|
78
|
+
* successRate: 0.95) regardless of whether real domain services were
|
|
79
|
+
* available — every "real execution" was actually a fabricated coin
|
|
80
|
+
* flip. Now constructs a real PlanExecutor with a getDomainAPI closure:
|
|
81
|
+
* `implemented: true` actions dispatch to the real domain method;
|
|
82
|
+
* `implemented: false` actions fail honestly (see PlanExecutor.executeStep).
|
|
83
|
+
*
|
|
84
|
+
* The closure is passed even when `kernel` is undefined (fleet_init
|
|
85
|
+
* hasn't run) — PlanExecutor.executeRealAction() then reports a clear
|
|
86
|
+
* "domain not available" error per step, which is what the user should
|
|
87
|
+
* see instead of a silent fallback to simulation.
|
|
73
88
|
*/
|
|
74
|
-
async getExecutor() {
|
|
89
|
+
async getExecutor(kernel) {
|
|
75
90
|
if (!this.executor) {
|
|
76
91
|
const planner = await this.getPlanner();
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
});
|
|
92
|
+
const getDomainAPI = (domain) => kernel?.getDomainAPI(domain);
|
|
93
|
+
this.executor = new PlanExecutor(planner, new MockAgentSpawner(), // fallback only for actions with no `implemented` classification (e.g. custom addAction() calls) — see PlanExecutor's backward-compat contract
|
|
94
|
+
undefined, {
|
|
95
|
+
maxRetries: 2,
|
|
96
|
+
stepTimeoutMs: 60000,
|
|
97
|
+
replanOnFailure: true,
|
|
98
|
+
parallelExecution: false,
|
|
99
|
+
recordWorldState: true,
|
|
100
|
+
}, getDomainAPI);
|
|
87
101
|
await this.executor.initialize();
|
|
88
102
|
}
|
|
89
103
|
return this.executor;
|
|
@@ -121,7 +135,7 @@ export class GOAPExecuteTool extends MCPToolBase {
|
|
|
121
135
|
stepsCompleted: plan.actions.length,
|
|
122
136
|
stepsFailed: 0,
|
|
123
137
|
totalDurationMs: plan.estimatedDurationMs,
|
|
124
|
-
steps: plan.actions.map((a
|
|
138
|
+
steps: plan.actions.map((a) => ({
|
|
125
139
|
action: a.name,
|
|
126
140
|
status: 'would-execute',
|
|
127
141
|
retries: 0,
|
|
@@ -131,7 +145,8 @@ export class GOAPExecuteTool extends MCPToolBase {
|
|
|
131
145
|
};
|
|
132
146
|
}
|
|
133
147
|
// Real execution
|
|
134
|
-
const
|
|
148
|
+
const kernel = await getKernel(context);
|
|
149
|
+
const executor = await this.getExecutor(kernel);
|
|
135
150
|
// Check if already executing
|
|
136
151
|
if (executor.isExecuting()) {
|
|
137
152
|
return {
|
|
@@ -173,9 +173,14 @@ export function registerAllQETools(registry) {
|
|
|
173
173
|
// ADR-043: forward the shared HybridRouter so the tool's
|
|
174
174
|
// MCPToolContext.llmRouter is populated explicitly.
|
|
175
175
|
async (params) => {
|
|
176
|
-
const { getSharedLLMRouter } = await import('./base.js');
|
|
176
|
+
const { getSharedLLMRouter, getKernel } = await import('./base.js');
|
|
177
177
|
const llmRouter = (await getSharedLLMRouter()) ?? undefined;
|
|
178
|
-
|
|
178
|
+
// A14: forward the fleet_init kernel singleton (if initialized) so
|
|
179
|
+
// tools that dispatch to real domain APIs (e.g. GOAPExecuteTool)
|
|
180
|
+
// can reach them — this is the actual registration path QE_TOOLS
|
|
181
|
+
// (including the GOAP planning tools) goes through in production.
|
|
182
|
+
const kernel = await getKernel();
|
|
183
|
+
return tool.invoke(params, { llmRouter, kernel });
|
|
179
184
|
});
|
|
180
185
|
}
|
|
181
186
|
}
|
|
@@ -116,7 +116,8 @@ export class RvfMigrationCoordinator {
|
|
|
116
116
|
// Try to attach witness chain
|
|
117
117
|
try {
|
|
118
118
|
const { WitnessChain } = await import('../audit/witness-chain.js');
|
|
119
|
-
const
|
|
119
|
+
const { getDefaultWitnessKeyManager } = await import('../audit/witness-key-manager.js');
|
|
120
|
+
const wc = new WitnessChain(undefined, getDefaultWitnessKeyManager());
|
|
120
121
|
await wc.initialize();
|
|
121
122
|
this.attachWitnessChain(wc);
|
|
122
123
|
}
|