agentic-qe 3.15.8 → 3.15.10
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 +434 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/adapters/a2ui/catalog/component-schemas.js +2 -1
- package/dist/adapters/a2ui/data/json-pointer-resolver.js +10 -5
- package/dist/adapters/a2ui/integration/agui-sync.js +10 -6
- package/dist/adapters/a2ui/integration/surface-state-bridge.js +9 -5
- package/dist/adapters/ag-ui/json-patch.js +10 -6
- package/dist/agents/claim-verifier/claim-verifier-service.js +13 -8
- package/dist/audit/witness-chain.d.ts +1 -1
- package/dist/bridge/captured-experience-bridge.js +12 -13
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-TR5SLAZC.js +2 -0
- package/dist/cli/chunks/agent-booster-wasm-H7ANGXW4.js +2 -0
- package/dist/cli/chunks/{agent-handler-2NQFHAWE.js → agent-handler-SVXSHEET.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-457ECHHK.js → agent-memory-branch-WKQH36XL.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +2 -0
- package/dist/cli/chunks/{arena-JV3WSEHU.js → arena-EKOOFVST.js} +2 -2
- package/dist/cli/chunks/{arena-IYBQ3GPY.js → arena-OPS36NFZ.js} +4 -4
- package/dist/cli/chunks/{audit-5OS3T3K6.js → audit-AO5NDZRI.js} +3 -3
- package/dist/cli/chunks/base-GTB6POYE.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-IQKBFVAO.js → better-sqlite3-TFLVEMMY.js} +2 -2
- package/dist/cli/chunks/{brain-handler-KA3SGAFM.js → brain-handler-ADBBJPYW.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-QZDU2VOQ.js → branch-enumerator-HGHUYYL5.js} +2 -2
- package/dist/cli/chunks/browser-5LU6P4SZ.js +4 -0
- package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +2 -0
- package/dist/cli/chunks/{chunk-CRUQ6RXU.js → chunk-2SXBBUM6.js} +2 -2
- package/dist/cli/chunks/{chunk-4GUVVGJX.js → chunk-2T7RRL6G.js} +1 -1
- package/dist/cli/chunks/{chunk-OJWEZYLR.js → chunk-2XGVTYVX.js} +2 -2
- package/dist/cli/chunks/{chunk-LVHZK7GW.js → chunk-2ZI5FKSF.js} +2 -2
- package/dist/cli/chunks/chunk-2ZMF4NCF.js +4 -0
- package/dist/cli/chunks/{chunk-62T7U25U.js → chunk-37OWRCUN.js} +1 -1
- package/dist/cli/chunks/{chunk-UQLAN5TX.js → chunk-3P34JFQH.js} +5 -5
- package/dist/cli/chunks/{chunk-UDCYQLTD.js → chunk-3Y7SPD72.js} +2 -2
- package/dist/cli/chunks/{chunk-PPIM7B5G.js → chunk-4G63WT4F.js} +2 -2
- package/dist/cli/chunks/chunk-4SJYIX54.js +3 -0
- package/dist/cli/chunks/chunk-5E6GHSTY.js +3 -0
- package/dist/cli/chunks/{chunk-4TZLZRZ4.js → chunk-5LPYV3TK.js} +1 -1
- package/dist/cli/chunks/{chunk-YUP3APSN.js → chunk-62OAY5KJ.js} +1 -1
- package/dist/cli/chunks/{chunk-VQRBBR27.js → chunk-6C3II5OM.js} +2 -2
- package/dist/cli/chunks/{chunk-RG42LDOB.js → chunk-6GP6W46M.js} +2 -2
- package/dist/cli/chunks/{chunk-KMZW2P3R.js → chunk-6KIL6CMD.js} +2 -2
- package/dist/cli/chunks/{chunk-UKKFZJME.js → chunk-6MVVSSID.js} +1 -1
- package/dist/cli/chunks/{chunk-VVK4ECVJ.js → chunk-6P7424AO.js} +2 -2
- package/dist/cli/chunks/{chunk-A2UGPKCS.js → chunk-6PX4OXQO.js} +2 -2
- package/dist/cli/chunks/{chunk-JLTGO5BB.js → chunk-6S3WJGUV.js} +2 -2
- package/dist/cli/chunks/{chunk-GSOK4M6V.js → chunk-6TB6YOCZ.js} +1 -1
- package/dist/cli/chunks/{chunk-VWRNG3UK.js → chunk-6X5DHU6Q.js} +1 -1
- package/dist/cli/chunks/{chunk-5YOO5QSE.js → chunk-6XCMKIZN.js} +1 -1
- package/dist/cli/chunks/{chunk-4C3RYBTT.js → chunk-7LFZ4CHM.js} +2 -2
- package/dist/cli/chunks/{chunk-O4RRVTXN.js → chunk-7OZVZIBE.js} +2 -2
- package/dist/cli/chunks/{chunk-2JCLACCS.js → chunk-7PJIR4ST.js} +2 -2
- package/dist/cli/chunks/{chunk-NWFBF3KT.js → chunk-7TB6FK4B.js} +1 -1
- package/dist/cli/chunks/{chunk-FJAO4UX2.js → chunk-7ZCDZHDB.js} +2 -2
- package/dist/cli/chunks/chunk-A55QKKT2.js +2 -0
- package/dist/cli/chunks/{chunk-ZOVAZTXE.js → chunk-ABFFWZPC.js} +273 -278
- package/dist/cli/chunks/{chunk-FWXNFPLS.js → chunk-ACWFKES2.js} +2 -2
- package/dist/cli/chunks/{chunk-IJSFZO7P.js → chunk-AH3ZD3NJ.js} +2 -2
- package/dist/cli/chunks/{chunk-7SLEUVPZ.js → chunk-AI4VYSFS.js} +2 -2
- package/dist/cli/chunks/chunk-APSRPR4W.js +2 -0
- package/dist/cli/chunks/chunk-ATHWDAXB.js +3 -0
- package/dist/cli/chunks/{chunk-2GSAAUW3.js → chunk-B6LTH6YV.js} +2 -2
- package/dist/cli/chunks/chunk-BQUAE3CP.js +3 -0
- package/dist/cli/chunks/{chunk-7XGM7Q2N.js → chunk-C522H7XR.js} +54 -33
- package/dist/cli/chunks/{chunk-7DHSHD5B.js → chunk-CESIR27V.js} +2 -2
- package/dist/cli/chunks/{chunk-V7VZSNDK.js → chunk-CFBEBXLO.js} +3 -3
- package/dist/cli/chunks/{chunk-NZATJ2C6.js → chunk-CMBLM26R.js} +2 -2
- package/dist/cli/chunks/{chunk-7CVMT64N.js → chunk-CZ2IF6MC.js} +1 -1
- package/dist/cli/chunks/{chunk-YVWMJZ6O.js → chunk-CZGOSJQ4.js} +2 -2
- package/dist/cli/chunks/{chunk-TMNEK7TP.js → chunk-D6DA2KFD.js} +2 -2
- package/dist/cli/chunks/{chunk-UTNKMPTC.js → chunk-DBMNJSBV.js} +1 -1
- package/dist/cli/chunks/{chunk-JFWQFB3S.js → chunk-DE4YJQJF.js} +2 -2
- package/dist/cli/chunks/{chunk-767SR7WH.js → chunk-DEF34AFL.js} +2 -2
- package/dist/cli/chunks/{chunk-ZWMFKZEQ.js → chunk-DKAC3E3B.js} +2 -2
- package/dist/cli/chunks/{chunk-CDLG3Q2O.js → chunk-DMFTELBS.js} +2 -2
- package/dist/cli/chunks/{chunk-P4UT4LBE.js → chunk-DNRWGATA.js} +10 -10
- package/dist/cli/chunks/{chunk-PUYQ6EKC.js → chunk-DT7SIJOA.js} +2 -2
- package/dist/cli/chunks/{chunk-ST7ASEJO.js → chunk-DURHK377.js} +69 -69
- package/dist/cli/chunks/{chunk-V4QJ3MMT.js → chunk-EAU5KDFO.js} +1 -1
- package/dist/cli/chunks/{chunk-BLZEOGQE.js → chunk-EDLFX4ZB.js} +2 -2
- package/dist/cli/chunks/{chunk-ZBI7PJFX.js → chunk-EN2QSKFF.js} +2 -2
- package/dist/cli/chunks/{chunk-U7CIY3YR.js → chunk-ERQKYIP7.js} +2 -2
- package/dist/cli/chunks/{chunk-X7ZQIFES.js → chunk-ESUO3GTJ.js} +2 -2
- package/dist/cli/chunks/{chunk-SHEVM5PF.js → chunk-EWFECZ2U.js} +2 -2
- package/dist/cli/chunks/{chunk-JWPYMRIX.js → chunk-FAUCT5KR.js} +3 -3
- package/dist/cli/chunks/{chunk-KMVFBYJO.js → chunk-FB6TI3BH.js} +2 -2
- package/dist/cli/chunks/{chunk-22DOS3PM.js → chunk-FBXTQNRH.js} +2 -2
- package/dist/cli/chunks/{chunk-W5A36V3Z.js → chunk-FESZBPUB.js} +2 -2
- package/dist/cli/chunks/chunk-FFTPAWM6.js +141 -0
- package/dist/cli/chunks/{chunk-VWSGWYRB.js → chunk-FKL3R5JQ.js} +2 -2
- package/dist/cli/chunks/{chunk-2DPHFCMW.js → chunk-FPUDRSFJ.js} +2 -2
- package/dist/cli/chunks/{chunk-VKFVJCIH.js → chunk-FZOWULMH.js} +1 -1
- package/dist/cli/chunks/{chunk-HXCGV5UJ.js → chunk-G3CZCUPM.js} +2 -2
- package/dist/cli/chunks/{chunk-GENNJRNK.js → chunk-G5I6KGMW.js} +22 -22
- package/dist/cli/chunks/{chunk-J7FLNP5L.js → chunk-GHBNRMSJ.js} +2 -2
- package/dist/cli/chunks/{chunk-I77D65X5.js → chunk-GJHWY3ZX.js} +2 -2
- package/dist/cli/chunks/{chunk-DKFSCJEF.js → chunk-GJMLK5UT.js} +2 -2
- package/dist/cli/chunks/{chunk-52YRSWPS.js → chunk-GRCIBCJ2.js} +2 -2
- package/dist/cli/chunks/{chunk-NW7HTOSN.js → chunk-GWZZ7DAO.js} +2 -2
- package/dist/cli/chunks/{chunk-D4IBIMWI.js → chunk-GZLZCZ42.js} +2 -2
- package/dist/cli/chunks/{chunk-FEN2DHFM.js → chunk-H2PYU7MN.js} +1 -1
- package/dist/cli/chunks/{chunk-4I35ARWW.js → chunk-H32EPIR2.js} +1 -1
- package/dist/cli/chunks/{chunk-MUDBF2JC.js → chunk-H74Q7TJN.js} +1 -1
- package/dist/cli/chunks/chunk-HOZUDE4C.js +2 -0
- package/dist/cli/chunks/{chunk-MMY52Y6R.js → chunk-I33O4BRQ.js} +2 -2
- package/dist/cli/chunks/{chunk-ZG7UKWBB.js → chunk-IKISCIGH.js} +2 -2
- package/dist/cli/chunks/{chunk-SFPGLUXS.js → chunk-IPJ7Q3AJ.js} +1 -1
- package/dist/cli/chunks/{chunk-2ZRNXEVI.js → chunk-IU2IV4NE.js} +1 -1
- package/dist/cli/chunks/{chunk-XOOBLZXR.js → chunk-JHIY4VCC.js} +2 -2
- package/dist/cli/chunks/{chunk-PJGQ2TKN.js → chunk-KG336OV3.js} +2 -2
- package/dist/cli/chunks/{chunk-YRH7KMTU.js → chunk-KI73QCR5.js} +2 -2
- package/dist/cli/chunks/{chunk-FAYXES7R.js → chunk-KNQ2ERFX.js} +2 -2
- package/dist/cli/chunks/{chunk-CQ3SBRDP.js → chunk-KOBVYY6H.js} +2 -2
- package/dist/cli/chunks/{chunk-3N627QRU.js → chunk-KSIWGGJI.js} +8 -8
- package/dist/cli/chunks/{chunk-2UN4JOTN.js → chunk-LMS3Y7JD.js} +2 -2
- package/dist/cli/chunks/{chunk-RSMPJWQH.js → chunk-LQEURY7C.js} +1 -1
- package/dist/cli/chunks/{chunk-NQDYOF35.js → chunk-LRZY4KS2.js} +2 -2
- package/dist/cli/chunks/{chunk-U3BWBP6B.js → chunk-M2QV7PT7.js} +2 -2
- package/dist/cli/chunks/{chunk-WLXGUQOZ.js → chunk-MA7JIQ6U.js} +2 -2
- package/dist/cli/chunks/{chunk-Y5ZBF7MA.js → chunk-MG27QY4D.js} +2 -2
- package/dist/cli/chunks/chunk-MNN5J4GU.js +12 -0
- package/dist/cli/chunks/chunk-N6PIIK6G.js +3 -0
- package/dist/cli/chunks/chunk-NAXGWDVM.js +12 -0
- package/dist/cli/chunks/{chunk-DCYUHCPK.js → chunk-NGKNYIQZ.js} +1 -1
- package/dist/cli/chunks/chunk-NNFZUTDH.js +2 -0
- package/dist/cli/chunks/{chunk-UTFMMZ57.js → chunk-NPPHWFA2.js} +3 -3
- package/dist/cli/chunks/chunk-NSHU347M.js +2 -0
- package/dist/cli/chunks/{chunk-NF63NHJH.js → chunk-NVYIZCSR.js} +2 -2
- package/dist/cli/chunks/{chunk-YNQPHRUZ.js → chunk-NW5JUCCG.js} +1 -1
- package/dist/cli/chunks/{chunk-G6CLO74Q.js → chunk-NZYLNXT6.js} +3 -3
- package/dist/cli/chunks/{chunk-R2NHGESM.js → chunk-OBAREPDC.js} +2 -2
- package/dist/cli/chunks/{chunk-X3HM7SV4.js → chunk-ODJNUMV3.js} +2 -2
- package/dist/cli/chunks/{chunk-OCLAMZJG.js → chunk-OEKP73MC.js} +2 -2
- package/dist/cli/chunks/{chunk-5MBNRTT5.js → chunk-OPFGRS5S.js} +2 -2
- package/dist/cli/chunks/{chunk-K5R3WUJP.js → chunk-OY2AHLSF.js} +1 -1
- package/dist/cli/chunks/{chunk-KJNUETCB.js → chunk-OY3NJNP2.js} +1 -1
- package/dist/cli/chunks/{chunk-P2EA62YS.js → chunk-PCEW6Q2C.js} +1 -1
- package/dist/cli/chunks/{chunk-HNGNRIZZ.js → chunk-PFG6VQ5Z.js} +2 -2
- package/dist/cli/chunks/{chunk-DN3AKAPY.js → chunk-PGYMKGOE.js} +2 -2
- package/dist/cli/chunks/{chunk-BEVWCF3Q.js → chunk-PPSAMXYN.js} +3 -3
- package/dist/cli/chunks/chunk-RK73HB2F.js +2 -0
- package/dist/cli/chunks/{chunk-6E7EOHMN.js → chunk-RPHY2DU6.js} +2 -2
- package/dist/cli/chunks/{chunk-7C6FMLQR.js → chunk-RWWOHCMG.js} +25 -20
- package/dist/cli/chunks/{chunk-5ONJ7AV6.js → chunk-S75EYIJG.js} +1 -1
- package/dist/cli/chunks/chunk-SKQUUE4F.js +5 -0
- package/dist/cli/chunks/chunk-SO45NA4D.js +180 -0
- package/dist/cli/chunks/{chunk-SWY6KGMF.js → chunk-SU5H66SD.js} +2 -2
- package/dist/cli/chunks/{chunk-ZOHS32SI.js → chunk-SY2IB442.js} +2 -2
- package/dist/cli/chunks/{chunk-MV4S3TEC.js → chunk-TBLI254A.js} +2 -2
- package/dist/cli/chunks/{chunk-5DZDLOY6.js → chunk-TNMBRDCA.js} +3 -3
- package/dist/cli/chunks/{chunk-FEPFXXI7.js → chunk-TYFZXDGZ.js} +2 -2
- package/dist/cli/chunks/{chunk-A6GCO6ZU.js → chunk-U4OICXV2.js} +2 -2
- package/dist/cli/chunks/{chunk-G77Q22EN.js → chunk-U53ZB4IX.js} +2 -2
- package/dist/cli/chunks/chunk-UARKIZAS.js +2 -0
- package/dist/cli/chunks/{chunk-6GIC2263.js → chunk-UCJMVXO4.js} +2 -2
- package/dist/cli/chunks/{chunk-DAFMHM64.js → chunk-UHTTW3IT.js} +2 -2
- package/dist/cli/chunks/{chunk-2QRGIEQV.js → chunk-V2M2XCR5.js} +1 -1
- package/dist/cli/chunks/{chunk-XZQVC3GD.js → chunk-V2RSNVMW.js} +1 -1
- package/dist/cli/chunks/{chunk-GGSTLKY5.js → chunk-V6JBOIMX.js} +1 -1
- package/dist/cli/chunks/{chunk-BTMEOZYY.js → chunk-VFKF2XO7.js} +1 -1
- package/dist/cli/chunks/{chunk-4C7KE2EL.js → chunk-VFSYMOAL.js} +2 -2
- package/dist/cli/chunks/{chunk-D4O3TJI7.js → chunk-VJQYDYAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-PZ7FJ4UG.js → chunk-VKRTTFB6.js} +2 -2
- package/dist/cli/chunks/{chunk-CQ5G64EA.js → chunk-VWNFAW2M.js} +2 -2
- package/dist/cli/chunks/{chunk-DY37YMMQ.js → chunk-WBM6N6IM.js} +1 -1
- package/dist/cli/chunks/{chunk-K4N2MBCE.js → chunk-WDQ7IEZY.js} +2 -2
- package/dist/cli/chunks/{chunk-HI6OBDDY.js → chunk-WDVRE6GN.js} +2 -2
- package/dist/cli/chunks/{chunk-PICEGWGB.js → chunk-WQ4PYWSW.js} +1 -1
- package/dist/cli/chunks/{chunk-NHOMVBCI.js → chunk-WSF24I3D.js} +2 -2
- package/dist/cli/chunks/{chunk-LPSMVBB3.js → chunk-XBVUVFJK.js} +2 -2
- package/dist/cli/chunks/{chunk-J6LL25QJ.js → chunk-XEB3NLJR.js} +2 -2
- package/dist/cli/chunks/{chunk-SJMZZMHP.js → chunk-XFVTGAAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-KVMKYUOE.js → chunk-XLZYRTNO.js} +2 -2
- package/dist/cli/chunks/chunk-XUZDBQ5X.js +6 -0
- package/dist/cli/chunks/{chunk-WAWKAYPY.js → chunk-Y76IAYQD.js} +1 -1
- package/dist/cli/chunks/{chunk-3LFLO2WK.js → chunk-YAKGBHO4.js} +2 -2
- package/dist/cli/chunks/{chunk-TC52M542.js → chunk-YBSBABOS.js} +2 -2
- package/dist/cli/chunks/{chunk-BQUIZ5QT.js → chunk-YCGP5VFP.js} +2 -2
- package/dist/cli/chunks/{chunk-T2TDTBFV.js → chunk-YDAQK5UF.js} +1 -1
- package/dist/cli/chunks/{chunk-LHRVSK44.js → chunk-YK3BVZY6.js} +2 -2
- package/dist/cli/chunks/{chunk-QFYUZYRA.js → chunk-YK7JN5N7.js} +4 -4
- package/dist/cli/chunks/{chunk-IMSRWNWF.js → chunk-YKMU4LBV.js} +1 -1
- package/dist/cli/chunks/{chunk-NLYUC63R.js → chunk-YYTGXD3R.js} +2 -2
- package/dist/cli/chunks/{chunk-OWBFVAEH.js → chunk-Z2O2YJAF.js} +2 -2
- package/dist/cli/chunks/{chunk-KITKQUBX.js → chunk-Z7IYW5U7.js} +1 -1
- package/dist/cli/chunks/{chunk-4NTLGGXO.js → chunk-ZG5666GJ.js} +1 -1
- package/dist/cli/chunks/{chunk-4YUBWU3E.js → chunk-ZXPY654C.js} +1 -1
- package/dist/cli/chunks/{ci-7NUCRGWO.js → ci-MSKMVH5X.js} +2 -2
- package/dist/cli/chunks/{ci-config-VQVECCFI.js → ci-config-7ODMNAUM.js} +2 -2
- package/dist/cli/chunks/{ci-output-P7GQ6TKF.js → ci-output-FXZ7ZZW3.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-5YP6N6HE.js → circuit-breaker-4VOUEPOX.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-W5H7CMU6.js → claude-flow-setup-7D4SGLM4.js} +2 -2
- package/dist/cli/chunks/client-POSVREVS.js +2 -0
- package/dist/cli/chunks/{cline-installer-OYANSZ54.js → cline-installer-WRRT7BGQ.js} +2 -2
- package/dist/cli/chunks/{code-OMT4UEZI.js → code-ZDJRIL3S.js} +25 -24
- package/dist/cli/chunks/{code-index-extractor-M2JEWKNF.js → code-index-extractor-4S4SHM56.js} +2 -2
- package/dist/cli/chunks/{codex-installer-YBS6N5O3.js → codex-installer-YTRHNDWR.js} +2 -2
- package/dist/cli/chunks/{completions-U7GS5RG6.js → completions-6N64JUXJ.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-QSXPIUIU.js → complexity-analyzer-I4A26VCJ.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-W5TTT743.js → continuedev-installer-IIDR66LB.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-KC2RT24C.js → copilot-installer-SVVFY3S2.js} +2 -2
- package/dist/cli/chunks/core-handlers-V243GY7X.js +2 -0
- package/dist/cli/chunks/{cost-tracker-OQPVR6V4.js → cost-tracker-VGFS6IBX.js} +2 -2
- package/dist/cli/chunks/{coverage-TCO2A2NX.js → coverage-B7MCGNTE.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +2 -0
- package/dist/cli/chunks/{cursor-installer-MH7GWD4L.js → cursor-installer-UPETT57E.js} +2 -2
- package/dist/cli/chunks/daemon-7BDJHEIJ.js +18 -0
- package/dist/cli/chunks/{daemon-UJEARJZ2.js → daemon-CQFNZLXU.js} +7 -7
- package/dist/cli/chunks/{dag-attention-scheduler-F3SUJU5O.js → dag-attention-scheduler-PJVABHON.js} +2 -2
- package/dist/cli/chunks/{detect-5QTCRB32.js → detect-56SKAGWX.js} +2 -2
- package/dist/cli/chunks/{dist-node-XKZPHDBO.js → dist-node-UYTYUMLN.js} +2 -2
- package/dist/cli/chunks/{domain-handler-V3UEADKW.js → domain-handler-YOYLBYJE.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-7PES4UHZ.js → domain-plugins-7TARX2XF.js} +2 -2
- package/dist/cli/chunks/domain-transfer-AKVSBD6E.js +2 -0
- package/dist/cli/chunks/dream-UA7MKOPQ.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-D2HWORHF.js → embed-and-insert-pattern-IS6HSR66.js} +2 -2
- package/dist/cli/chunks/{eval-UF2UBAUC.js → eval-GNB574IM.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-2OUCEHHM.js → experience-capture-middleware-RCAOCKM7.js} +3 -3
- package/dist/cli/chunks/{fast-paths-KV5DKKHC.js → fast-paths-KTZ5SF54.js} +2 -2
- package/dist/cli/chunks/{feature-flags-MTW6NMR3.js → feature-flags-ITX5LQ57.js} +2 -2
- package/dist/cli/chunks/{feature-flags-6YWMTNO5.js → feature-flags-KFHSR5YF.js} +2 -2
- package/dist/cli/chunks/file-discovery-YCMNKZAK.js +2 -0
- package/dist/cli/chunks/fleet-2Y3ZE6CE.js +46 -0
- package/dist/cli/chunks/{gnn-wrapper-52V6ANOY.js → gnn-wrapper-RLFW3GSX.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-X7NHNRC7.js → heartbeat-handler-EM2URCYZ.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +2 -0
- package/dist/cli/chunks/hnsw-index-DFUNARVD.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-DZBE3KMK.js → hnsw-legacy-bridge-JMHEOIBH.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-2AWWUJAZ.js → hnswlib-node-CBP73QHY.js} +2 -2
- package/dist/cli/chunks/{hooks-XLPVROL3.js → hooks-IP7XE34Z.js} +34 -34
- package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-6TI7YP6P.js → hypergraph-engine-ONAYHU25.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-DBIBBOXS.js → hypergraph-handler-VINJRAID.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +2 -0
- package/dist/cli/chunks/{init-guard-OSO6MIDD.js → init-guard-RYVV5R3Z.js} +2 -2
- package/dist/cli/chunks/{init-handler-7S7IHMUF.js → init-handler-MPRGWMOE.js} +6 -6
- package/dist/cli/chunks/init-wizard-NIMZ4J55.js +2 -0
- package/dist/cli/chunks/kernel-JQK7PRAI.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-2KBRFXMA.js → kilocode-installer-OPD7JBRL.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-5VFR4OQZ.js → kiro-installer-M4OPUNK2.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +2 -0
- package/dist/cli/chunks/{learning-G5NHL3DV.js → learning-4UWTQLMF.js} +24 -24
- package/dist/cli/chunks/{llm-router-4EAPPMHS.js → llm-router-SQ56FF6Z.js} +4 -4
- package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +2 -0
- package/dist/cli/chunks/{load-UYMZPEY6.js → load-HPHKDGGL.js} +2 -2
- package/dist/cli/chunks/load-test-UKNV5MWW.js +2 -0
- package/dist/cli/chunks/mcp-TELMAC7Z.js +2 -0
- package/dist/cli/chunks/{memory-QL53YIHP.js → memory-PFQ3KPVJ.js} +5 -5
- package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +2 -0
- package/dist/cli/chunks/memory-handlers-FCXN437E.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-PDDDXF2B.js → multi-model-executor-3VDRX6TZ.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-75D2SKOT.js → opencode-installer-PJ576R63.js} +2 -2
- package/dist/cli/chunks/{orchestrator-3WIZBV4T.js → orchestrator-72QP4UU7.js} +64 -19
- package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-TEX2JGHA.js → pattern-usage-recorder-754YQW7C.js} +2 -2
- package/dist/cli/chunks/pipeline-AVXY4MVB.js +19 -0
- package/dist/cli/chunks/{platform-WPSKRJE7.js → platform-3E3DXLYB.js} +2 -2
- package/dist/cli/chunks/{plugin-UUFOVVMU.js → plugin-7FUQAKRE.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-PDFSYWKZ.js → prime-radiant-advanced-wasm-NIB4F5NV.js} +2 -2
- package/dist/cli/chunks/project-root-JCAUNL6O.js +2 -0
- package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +2 -0
- package/dist/cli/chunks/{protocol-handler-3VRYRIQB.js → protocol-handler-BQRYMUTG.js} +2 -2
- package/dist/cli/chunks/{prove-2NAUROGF.js → prove-H52QGC6B.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +2 -0
- package/dist/cli/chunks/{quality-ZIEI2WGA.js → quality-QO4XPAUM.js} +2 -2
- package/dist/cli/chunks/{quality-gate-KWJO4SWQ.js → quality-gate-FBKE5E6F.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +2 -0
- package/dist/cli/chunks/{real-embeddings-TSZ4UIAE.js → real-embeddings-RWGOVOXO.js} +2 -2
- package/dist/cli/chunks/{ref-validation-DWFFRETJ.js → ref-validation-LF76ZOBD.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-XTZHLUBO.js → roocode-installer-3BYEBTQ7.js} +2 -2
- package/dist/cli/chunks/router-3DIS5X4R.js +2 -0
- package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +2 -0
- package/dist/cli/chunks/{routing-handler-GG525TDM.js → routing-handler-DST7BVCU.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-QKRJDM7Z.js → ruvector-commands-XE32PGKC.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-FF52OS6Q.js → rvf-migration-coordinator-VP32XC75.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-M6DXTAZ4.js → rvf-store-integrity-SH2AMVI7.js} +2 -2
- package/dist/cli/chunks/safe-db-EVB4ZC7T.js +2 -0
- package/dist/cli/chunks/schedule-ORDDXXY4.js +2 -0
- package/dist/cli/chunks/scheduler-XFLJSFIU.js +2 -0
- package/dist/cli/chunks/{security-EHXSW22U.js → security-VSPNKCDS.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-6EH7UVJL.js → shared-rvf-adapter-HX6AHL3P.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-WML274E7.js → shared-rvf-dual-writer-MX4FC2JE.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +2 -0
- package/dist/cli/chunks/{standalone-memory-C7QKAXS4.js → standalone-memory-O4QUTK6L.js} +2 -2
- package/dist/cli/chunks/{status-handler-VLI7MRLM.js → status-handler-Z2BP6EOG.js} +2 -2
- package/dist/cli/chunks/{structural-health-3LPG6MQN.js → structural-health-R36WNLQG.js} +2 -2
- package/dist/cli/chunks/sync-2ELWUFQU.js +2 -0
- package/dist/cli/chunks/{sync-JFJEJBVK.js → sync-QF5Y3EMZ.js} +2 -2
- package/dist/cli/chunks/{task-handler-IED3K6E4.js → task-handler-43PYE75J.js} +13 -7
- package/dist/cli/chunks/task-handlers-KPWAEMKH.js +9 -0
- package/dist/cli/chunks/{test-GPKT3CKZ.js → test-UWA377D4.js} +16 -16
- package/dist/cli/chunks/test-runner-process-3XZUYST2.js +2 -0
- package/dist/cli/chunks/{test-scheduling-Z42XXZP6.js → test-scheduling-YQZPJRRN.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-F7C6UKTC.js +2 -0
- package/dist/cli/chunks/{token-usage-6Y2ERYIY.js → token-usage-DO6WLMXP.js} +2 -2
- package/dist/cli/chunks/{transformers-MB63T2XO.js → transformers-H5RGFKVO.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +2 -0
- package/dist/cli/chunks/{types-J4J6QV3I.js → types-PJS2FGPF.js} +2 -2
- package/dist/cli/chunks/unified-memory-EHD4VNFW.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +2 -0
- package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +2 -0
- package/dist/cli/chunks/{upgrade-U4XU7LFM.js → upgrade-4IC4F6AB.js} +2 -2
- package/dist/cli/chunks/{validate-B57HA4YK.js → validate-DHUWW7PF.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-UPPA4M6T.js → validate-swarm-OERQNOX5.js} +2 -2
- package/dist/cli/chunks/visual-security-54MLFKWY.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-GDZMUKOZ.js → web-tree-sitter-TV7DMKES.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-VJRWCHXP.js → windsurf-installer-QZPWSH37.js} +2 -2
- package/dist/cli/chunks/witness-chain-LC6Q2W27.js +2 -0
- package/dist/cli/chunks/witness-chain-QUIBAF3W.js +2 -0
- package/dist/cli/chunks/witness-chain-repair-RUXIOE7F.js +2 -0
- package/dist/cli/chunks/{witness-chain-verifier-Z23FVABW.js → witness-chain-verifier-YXENHB42.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-745MJ7WO.js → witness-key-manager-HL26AGFO.js} +2 -2
- package/dist/cli/chunks/{workflow-T245QNQM.js → workflow-EOVVCN2E.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +2 -0
- package/dist/cli/chunks/wrappers-AGODHBOO.js +2 -0
- package/dist/cli/commands/code.js +8 -0
- package/dist/cli/commands/daemon.js +8 -0
- package/dist/cli/commands/fleet.js +27 -15
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
- package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
- package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
- package/dist/cli/commands/learning.js +5 -3
- package/dist/cli/commands/ruvector-commands.js +2 -1
- package/dist/cli/commands/test.js +6 -0
- package/dist/cli/handlers/task-handler.js +21 -1
- package/dist/cli/utils/ci-output.d.ts +9 -0
- package/dist/cli/utils/fleet-operation.d.ts +32 -0
- package/dist/cli/utils/fleet-operation.js +71 -0
- package/dist/cli/utils/fleet-result.d.ts +31 -0
- package/dist/cli/utils/fleet-result.js +124 -0
- package/dist/context/sources/git-source.js +6 -2
- package/dist/coordination/handlers/code-intelligence-handlers.js +74 -7
- package/dist/coordination/handlers/coverage-collection.js +9 -10
- package/dist/coordination/handlers/coverage-handlers.js +31 -4
- package/dist/coordination/handlers/coverage-runner.d.ts +2 -1
- package/dist/coordination/handlers/coverage-runner.js +9 -2
- package/dist/coordination/handlers/coverage-target.d.ts +13 -3
- package/dist/coordination/handlers/coverage-target.js +224 -7
- package/dist/coordination/handlers/handler-types.d.ts +2 -0
- package/dist/coordination/handlers/requirements-handlers.js +16 -2
- package/dist/coordination/handlers/security-handlers.js +11 -1
- package/dist/coordination/handlers/test-execution-handlers.js +57 -12
- package/dist/coordination/index.d.ts +2 -2
- package/dist/coordination/index.js +1 -1
- package/dist/coordination/mincut/queen-integration.d.ts +39 -1
- package/dist/coordination/mincut/queen-integration.js +83 -6
- package/dist/coordination/protocols/learning-consolidation-archive.d.ts +35 -0
- package/dist/coordination/protocols/learning-consolidation-archive.js +34 -0
- package/dist/coordination/protocols/learning-consolidation.d.ts +62 -3
- package/dist/coordination/protocols/learning-consolidation.js +187 -60
- package/dist/coordination/queen-coordinator.d.ts +13 -2
- package/dist/coordination/queen-coordinator.js +43 -8
- package/dist/coordination/queen-event-handlers.js +15 -1
- package/dist/coordination/queen-lifecycle.js +9 -0
- package/dist/coordination/queen-task-management.d.ts +18 -24
- package/dist/coordination/queen-task-management.js +94 -127
- package/dist/coordination/queen-task-queue.d.ts +41 -0
- package/dist/coordination/queen-task-queue.js +194 -0
- package/dist/coordination/queen-types.d.ts +11 -1
- package/dist/coordination/queen-types.js +8 -0
- package/dist/coordination/queen-work-stealing.d.ts +6 -1
- package/dist/coordination/queen-work-stealing.js +7 -4
- package/dist/coordination/result-saver-adapters.d.ts +15 -0
- package/dist/coordination/result-saver-adapters.js +57 -0
- package/dist/coordination/result-saver.d.ts +1 -1
- package/dist/coordination/result-saver.js +8 -5
- package/dist/coordination/task-dag/dag-algorithms.d.ts +33 -0
- package/dist/coordination/task-dag/dag-algorithms.js +162 -0
- package/dist/coordination/task-dag/dag-obligations.d.ts +21 -0
- package/dist/coordination/task-dag/dag-obligations.js +83 -0
- package/dist/coordination/task-dag/dag.d.ts +69 -19
- package/dist/coordination/task-dag/dag.js +215 -269
- package/dist/coordination/task-dag/index.d.ts +12 -4
- package/dist/coordination/task-dag/index.js +11 -3
- package/dist/coordination/task-dag/prerequisite-ledger.d.ts +84 -0
- package/dist/coordination/task-dag/prerequisite-ledger.js +252 -0
- package/dist/coordination/task-dag/scheduler.d.ts +19 -9
- package/dist/coordination/task-dag/scheduler.js +36 -12
- package/dist/coordination/task-dag/types.d.ts +160 -1
- package/dist/coordination/task-dag/types.js +2 -1
- package/dist/coordination/task-executability.d.ts +18 -0
- package/dist/coordination/task-executability.js +31 -0
- package/dist/coordination/task-executor.d.ts +1 -0
- package/dist/coordination/task-executor.js +5 -0
- package/dist/coordination/yaml-pipeline-loader.js +5 -2
- package/dist/domains/code-intelligence/coordinator.js +35 -9
- package/dist/domains/code-intelligence/index-path-guard.d.ts +52 -0
- package/dist/domains/code-intelligence/index-path-guard.js +95 -0
- package/dist/domains/code-intelligence/interfaces.d.ts +12 -0
- package/dist/domains/code-intelligence/plugin.js +5 -1
- package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +6 -0
- package/dist/domains/code-intelligence/services/knowledge-graph.js +42 -5
- package/dist/domains/code-intelligence/services/metric-collector/index.d.ts +2 -2
- package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
- package/dist/domains/contract-testing/coordinator.js +3 -1
- package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
- package/dist/domains/contract-testing/services/contract-validator.js +6 -4
- package/dist/domains/contract-testing/services/schema-validator.js +8 -5
- package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
- package/dist/domains/defect-intelligence/plugin.js +11 -2
- package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
- package/dist/domains/defect-intelligence/prediction-history.js +68 -0
- package/dist/domains/defect-intelligence/services/defect-predictor.js +29 -12
- package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
- package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
- package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
- package/dist/domains/learning-optimization/active-patterns.d.ts +14 -14
- package/dist/domains/learning-optimization/active-patterns.js +17 -14
- package/dist/domains/learning-optimization/coordinator-helpers.js +2 -3
- package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
- package/dist/domains/learning-optimization/coordinator.js +52 -107
- package/dist/domains/learning-optimization/index.d.ts +1 -1
- package/dist/domains/learning-optimization/interfaces.d.ts +62 -6
- package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
- package/dist/domains/learning-optimization/pattern-archive.js +56 -0
- package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
- package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
- package/dist/domains/learning-optimization/plugin.js +11 -1
- package/dist/domains/learning-optimization/reward-source.d.ts +50 -0
- package/dist/domains/learning-optimization/reward-source.js +65 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +7 -5
- package/dist/domains/learning-optimization/services/learning-coordinator.js +98 -75
- package/dist/domains/learning-optimization/services/metrics-optimizer.d.ts +14 -4
- package/dist/domains/learning-optimization/services/metrics-optimizer.js +129 -63
- package/dist/domains/learning-optimization/services/transfer-specialist.js +25 -15
- package/dist/domains/security-compliance/plugin.js +17 -3
- package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
- package/dist/domains/security-compliance/sast-path-guard.js +17 -0
- package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
- package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
- package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
- package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
- package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
- package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
- package/dist/domains/test-execution/coordinator.d.ts +5 -0
- package/dist/domains/test-execution/coordinator.js +35 -20
- package/dist/domains/test-execution/interfaces.d.ts +41 -0
- package/dist/domains/test-execution/plugin.js +19 -4
- package/dist/domains/test-execution/services/flaky-detector.js +9 -7
- package/dist/domains/test-execution/services/retry-handler.js +46 -7
- package/dist/domains/test-execution/services/runner-test-cases.d.ts +32 -0
- package/dist/domains/test-execution/services/runner-test-cases.js +87 -0
- package/dist/domains/test-execution/services/test-executor.d.ts +5 -0
- package/dist/domains/test-execution/services/test-executor.js +31 -9
- package/dist/domains/test-generation/plugin.js +7 -2
- package/dist/domains/test-generation/services/test-data-generator.js +3 -1
- package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
- package/dist/hooks/cross-phase-hooks.js +2 -1
- package/dist/init/fleet-integration.js +2 -0
- package/dist/init/init-wizard-steps.js +2 -0
- package/dist/init/phases/06-code-intelligence.js +2 -0
- package/dist/init/phases/10-workers.js +51 -6
- package/dist/integrations/browser/agent-browser/client.js +37 -52
- package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
- package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
- package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
- package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
- package/dist/integrations/browser/web-content-fetcher.js +9 -3
- package/dist/integrations/vibium/client.js +2 -2
- package/dist/integrations/vibium/runtime.d.ts +1 -1
- package/dist/integrations/vibium/runtime.js +14 -11
- package/dist/kernel/anti-drift-middleware.d.ts +44 -5
- package/dist/kernel/anti-drift-middleware.js +147 -11
- package/dist/kernel/interfaces.d.ts +5 -0
- package/dist/kernel/unified-memory-schemas.d.ts +3 -2
- package/dist/kernel/unified-memory-schemas.js +3 -2
- package/dist/kernel/unified-memory.js +25 -6
- package/dist/learning/dream/dream-commit.d.ts +65 -0
- package/dist/learning/dream/dream-commit.js +104 -0
- package/dist/learning/dream/dream-engine.d.ts +81 -31
- package/dist/learning/dream/dream-engine.js +225 -168
- package/dist/learning/dream/dream-insights-pruner.d.ts +24 -4
- package/dist/learning/dream/dream-insights-pruner.js +85 -11
- package/dist/learning/dream/index.d.ts +3 -2
- package/dist/learning/dream/index.js +3 -1
- package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
- package/dist/learning/dream/rvcow-branch-manager.js +8 -1
- package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
- package/dist/learning/dream/speculative-dreamer.js +64 -111
- package/dist/learning/dream/spreading-activation.d.ts +2 -1
- package/dist/learning/dream/spreading-activation.js +15 -6
- package/dist/learning/experience-capture.d.ts +9 -0
- package/dist/learning/experience-capture.js +18 -4
- package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
- package/dist/learning/qe-reasoning-bank.js +22 -11
- package/dist/learning/skill-validation-learner.d.ts +2 -0
- package/dist/learning/skill-validation-learner.js +29 -21
- package/dist/learning/sqlite-persistence.d.ts +6 -0
- package/dist/learning/sqlite-persistence.js +16 -2
- package/dist/learning/usage-outcome.d.ts +68 -0
- package/dist/learning/usage-outcome.js +84 -0
- package/dist/mcp/background-workers.d.ts +13 -1
- package/dist/mcp/background-workers.js +23 -3
- package/dist/mcp/bundle.js +602 -551
- package/dist/mcp/handlers/core-handlers.js +11 -0
- package/dist/mcp/handlers/domain-handler-configs.d.ts +19 -0
- package/dist/mcp/handlers/domain-handler-configs.js +76 -30
- package/dist/mcp/handlers/handler-factory.d.ts +2 -1
- package/dist/mcp/handlers/handler-factory.js +37 -15
- package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
- package/dist/mcp/handlers/orchestrate-routes.js +88 -0
- package/dist/mcp/handlers/task-handlers.d.ts +3 -0
- package/dist/mcp/handlers/task-handlers.js +69 -6
- package/dist/mcp/handlers/validation-pipeline-handler.js +6 -2
- package/dist/mcp/metrics/metrics-collector.d.ts +11 -9
- package/dist/mcp/metrics/metrics-collector.js +13 -26
- package/dist/mcp/protocol-server.js +10 -3
- package/dist/mcp/security/schema-validator.js +3 -2
- package/dist/mcp/tools/code-intelligence/c4.js +11 -1
- package/dist/mcp/tools/coverage-analysis/index.js +31 -2
- package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
- package/dist/mcp/tools/learning-optimization/dream.js +38 -34
- package/dist/mcp/tools/learning-optimization/optimize.d.ts +52 -5
- package/dist/mcp/tools/learning-optimization/optimize.js +164 -80
- package/dist/mcp/tools/quality-assessment/gate.js +12 -1
- package/dist/mcp/tools/requirements-validation/quality-criteria.js +9 -2
- package/dist/memory/crdt/lww-register.js +11 -1
- package/dist/migration/agent-compat.js +7 -5
- package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
- package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
- package/dist/routing/calibration/ema-calibrator.js +3 -1
- package/dist/shared/base-domain-plugin.d.ts +4 -0
- package/dist/shared/base-domain-plugin.js +6 -0
- package/dist/shared/git/git-analyzer.d.ts +49 -0
- package/dist/shared/git/git-analyzer.js +159 -319
- package/dist/shared/git/git-process.d.ts +22 -0
- package/dist/shared/git/git-process.js +37 -0
- package/dist/shared/git/index.d.ts +1 -0
- package/dist/shared/git/index.js +1 -0
- package/dist/shared/io/payload-path-guard.d.ts +75 -0
- package/dist/shared/io/payload-path-guard.js +190 -0
- package/dist/shared/llm/cache.js +4 -1
- package/dist/shared/llm/router/agent-router-config.js +2 -1
- package/dist/shared/llm/translation/tool-translator.js +2 -1
- package/dist/shared/security/compliance-patterns.js +3 -1
- package/dist/shared/test-runner-args.d.ts +5 -0
- package/dist/shared/test-runner-args.js +6 -1
- package/dist/shared/test-runner-process.d.ts +32 -0
- package/dist/shared/test-runner-process.js +105 -0
- package/dist/shared/test-runner-verdict.d.ts +9 -1
- package/dist/shared/test-runner-verdict.js +15 -4
- package/dist/shared/types/index.d.ts +9 -0
- package/dist/shared/types/index.js +13 -0
- package/dist/shared/utils/namespaced-search.d.ts +56 -0
- package/dist/shared/utils/namespaced-search.js +71 -0
- package/dist/shared/utils/safe-expression-evaluator.js +4 -3
- package/dist/strange-loop/infra-healing/infra-action-executor.js +7 -3
- package/dist/strange-loop/infra-healing/infra-healing-orchestrator.js +10 -9
- package/dist/strange-loop/infra-healing/recovery-playbook.js +13 -3
- package/dist/validation/gate-reexecute.js +7 -4
- package/dist/workers/daemon.d.ts +2 -0
- package/dist/workers/daemon.js +23 -6
- package/dist/workers/namespaced-keys.d.ts +4 -7
- package/dist/workers/namespaced-keys.js +4 -15
- package/dist/workers/quality-daemon/ci-monitor.js +9 -5
- package/dist/workers/quality-daemon/git-watcher.js +9 -9
- package/dist/workers/worker-env.d.ts +16 -8
- package/dist/workers/worker-env.js +25 -12
- package/dist/workers/worker-manager.js +4 -0
- package/dist/workers/workers/defect-predictor.d.ts +8 -3
- package/dist/workers/workers/defect-predictor.js +48 -49
- package/dist/workers/workers/learning-consolidation.d.ts +3 -1
- package/dist/workers/workers/learning-consolidation.js +22 -8
- package/dist/workflows/browser/workflow-loader.js +8 -5
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-FC4EY447.js +0 -2
- package/dist/cli/chunks/agent-booster-wasm-W3V5P7LE.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-AUAL6UBL.js +0 -2
- package/dist/cli/chunks/base-2XML4WH7.js +0 -2
- package/dist/cli/chunks/browser-ZL7OLKJQ.js +0 -4
- package/dist/cli/chunks/browser-workflow-2IFEUAAK.js +0 -2
- package/dist/cli/chunks/chunk-4GYFONJB.js +0 -4
- package/dist/cli/chunks/chunk-6CKTLVYV.js +0 -2
- package/dist/cli/chunks/chunk-7H3GNRNA.js +0 -4
- package/dist/cli/chunks/chunk-EUVSSIGR.js +0 -12
- package/dist/cli/chunks/chunk-I4U7YCXG.js +0 -180
- package/dist/cli/chunks/chunk-J7RCI25Q.js +0 -2
- package/dist/cli/chunks/chunk-KNHLOANK.js +0 -4
- package/dist/cli/chunks/chunk-KNQUHGNY.js +0 -2
- package/dist/cli/chunks/chunk-LZWBUVCK.js +0 -5
- package/dist/cli/chunks/chunk-PIEKGKW6.js +0 -12
- package/dist/cli/chunks/chunk-PWA6XBW4.js +0 -120
- package/dist/cli/chunks/chunk-X6VYQVUM.js +0 -2
- package/dist/cli/chunks/chunk-YTYS2XSY.js +0 -2
- package/dist/cli/chunks/chunk-Z3LDUPLQ.js +0 -6
- package/dist/cli/chunks/client-RFUSQRUZ.js +0 -2
- package/dist/cli/chunks/core-handlers-ZC7QB432.js +0 -2
- package/dist/cli/chunks/cross-domain-router-GRBK7YFZ.js +0 -2
- package/dist/cli/chunks/daemon-JER6HE2J.js +0 -12
- package/dist/cli/chunks/domain-transfer-NF7UJW7B.js +0 -2
- package/dist/cli/chunks/dream-VALD726W.js +0 -2
- package/dist/cli/chunks/file-discovery-VL73ASNI.js +0 -2
- package/dist/cli/chunks/fleet-GJ66QFXK.js +0 -43
- package/dist/cli/chunks/heartbeat-scheduler-FSX7A3ZA.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-UX2QT6RL.js +0 -2
- package/dist/cli/chunks/hnsw-index-WRDDAMXH.js +0 -2
- package/dist/cli/chunks/hybrid-backend-O67NGIB5.js +0 -2
- package/dist/cli/chunks/impact-analyzer-6VXWWYWM.js +0 -2
- package/dist/cli/chunks/init-wizard-VH34J4TL.js +0 -2
- package/dist/cli/chunks/kernel-KJD24NO7.js +0 -2
- package/dist/cli/chunks/knowledge-graph-343O2HEZ.js +0 -2
- package/dist/cli/chunks/llm-router-service-2M4BT2AO.js +0 -2
- package/dist/cli/chunks/load-test-OTQ2JQ5F.js +0 -2
- package/dist/cli/chunks/mcp-NOTDZBW5.js +0 -2
- package/dist/cli/chunks/memory-backend-4QSNRRV6.js +0 -2
- package/dist/cli/chunks/memory-handlers-YFFYRSM6.js +0 -2
- package/dist/cli/chunks/pattern-null-store-5USH5MNR.js +0 -2
- package/dist/cli/chunks/pipeline-7ATPA6LU.js +0 -19
- package/dist/cli/chunks/project-root-SRTA6TBL.js +0 -2
- package/dist/cli/chunks/protocol-executor-4WYPCNBS.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-I4D6SFS4.js +0 -2
- package/dist/cli/chunks/queen-coordinator-24UMTZTE.js +0 -2
- package/dist/cli/chunks/router-AUD4GATI.js +0 -2
- package/dist/cli/chunks/routing-feedback-2FE6SIKQ.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-P5LEUF25.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-ZCYD5YJS.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-QGV6BW2W.js +0 -2
- package/dist/cli/chunks/safe-db-Q6JUKG2A.js +0 -2
- package/dist/cli/chunks/schedule-44OSMGE5.js +0 -2
- package/dist/cli/chunks/scheduler-V3HO2QQT.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-N5T7DWMR.js +0 -2
- package/dist/cli/chunks/sync-4IMMQEPT.js +0 -2
- package/dist/cli/chunks/task-handlers-FH6DNTHW.js +0 -9
- package/dist/cli/chunks/token-bootstrap-HMM3AHXM.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-56GDQCMR.js +0 -2
- package/dist/cli/chunks/unified-memory-RQ3Q4CU3.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-ZOP5FEYX.js +0 -2
- package/dist/cli/chunks/unified-persistence-72OCJJKK.js +0 -2
- package/dist/cli/chunks/visual-security-7F5UV23J.js +0 -2
- package/dist/cli/chunks/witness-chain-KZ57QUFE.js +0 -2
- package/dist/cli/chunks/witness-chain-LFASSMZK.js +0 -2
- package/dist/cli/chunks/witness-chain-repair-TPHN4DXN.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-ZNWEUYBN.js +0 -2
- package/dist/cli/chunks/wrappers-WCAYIQUX.js +0 -2
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agentic QE v3 - Queen Task Management
|
|
3
3
|
* Extracted from queen-coordinator.ts - Task assignment, domain routing,
|
|
4
|
-
* TinyDancer integration,
|
|
4
|
+
* TinyDancer integration, and domain plugin execution. Queue operations and
|
|
5
|
+
* the drain live in queen-task-queue.ts.
|
|
5
6
|
*/
|
|
6
7
|
import type { DomainName, Priority, Result } from '../shared/types';
|
|
7
8
|
import type { AgentCoordinator, DomainPlugin } from '../kernel/interfaces';
|
|
@@ -13,10 +14,7 @@ import type { DomainTeamManager } from './agent-teams/domain-team-manager.js';
|
|
|
13
14
|
import type { TierSelector } from './fleet-tiers/index.js';
|
|
14
15
|
import type { TraceCollector, TraceContext } from './agent-teams/tracing.js';
|
|
15
16
|
import type { QueenTask, TaskExecution, QueenConfig, TaskFilter } from './queen-types.js';
|
|
16
|
-
|
|
17
|
-
* PERF-001 FIX: Comparator for tasks - sorted by createdAt ascending (oldest first / FIFO within priority)
|
|
18
|
-
*/
|
|
19
|
-
export declare const taskComparator: import("../shared/utils/binary-insert").Comparator<QueenTask>;
|
|
17
|
+
export { taskComparator, enqueueTask, removeFromQueues, getQueuePosition, processQueue, } from './queen-task-queue.js';
|
|
20
18
|
/**
|
|
21
19
|
* Interface exposing QueenCoordinator internals needed by task management functions.
|
|
22
20
|
*/
|
|
@@ -43,29 +41,11 @@ export interface QueenTaskContext {
|
|
|
43
41
|
readonly traceCollector: TraceCollector | null;
|
|
44
42
|
readonly taskTraceContexts: Map<string, TraceContext>;
|
|
45
43
|
readonly coExecutionRepo: CoExecutionRepository | null;
|
|
46
|
-
requestAgentSpawn(domain: DomainName, type: string, capabilities: string[]): Promise<Result<string, Error>>;
|
|
44
|
+
requestAgentSpawn(domain: DomainName, type: string, capabilities: string[], taskId?: string): Promise<Result<string, Error>>;
|
|
47
45
|
publishEvent(type: string, payload: Record<string, unknown>): Promise<void>;
|
|
48
46
|
getDomainLoad(domain: DomainName): number;
|
|
49
47
|
getDomainHealth(domain: DomainName): import('../kernel/interfaces').DomainHealth | undefined;
|
|
50
48
|
}
|
|
51
|
-
/**
|
|
52
|
-
* PERF-001 FIX: Use binary insertion O(log n) instead of sort O(n log n)
|
|
53
|
-
*/
|
|
54
|
-
export declare function enqueueTask(taskQueue: Map<Priority, QueenTask[]>, domainQueues: Map<DomainName, QueenTask[]>, task: QueenTask): void;
|
|
55
|
-
/**
|
|
56
|
-
* Remove a task from all queues.
|
|
57
|
-
* PERF-008: Only iterate the task's targetDomains instead of ALL_DOMAINS.
|
|
58
|
-
*/
|
|
59
|
-
export declare function removeFromQueues(taskQueue: Map<Priority, QueenTask[]>, domainQueues: Map<DomainName, QueenTask[]>, task: QueenTask): void;
|
|
60
|
-
/**
|
|
61
|
-
* Get the position of a task within the priority queues.
|
|
62
|
-
*/
|
|
63
|
-
export declare function getQueuePosition(taskQueue: Map<Priority, QueenTask[]>, task: QueenTask): number;
|
|
64
|
-
/**
|
|
65
|
-
* Process the queue: dequeue highest-priority tasks and assign them.
|
|
66
|
-
* CC-002 FIX: Uses atomic counter for capacity check.
|
|
67
|
-
*/
|
|
68
|
-
export declare function processQueue(ctx: QueenTaskContext): Promise<void>;
|
|
69
49
|
/**
|
|
70
50
|
* List tasks with optional filtering.
|
|
71
51
|
*/
|
|
@@ -79,8 +59,22 @@ export declare function assignTask(ctx: QueenTaskContext, task: QueenTask): Prom
|
|
|
79
59
|
* circuit breaker checks, team management, and domain plugin execution.
|
|
80
60
|
*/
|
|
81
61
|
export declare function assignTaskToDomain(ctx: QueenTaskContext, task: QueenTask, domain: DomainName): Promise<Result<string, Error>>;
|
|
62
|
+
/**
|
|
63
|
+
* Work stealing: dispatch a queued task to another domain. It takes a slot
|
|
64
|
+
* like any dispatched task, so its settle leaves the counter balanced, and it
|
|
65
|
+
* is failed with the reason if it cannot be assigned (#1124).
|
|
66
|
+
*
|
|
67
|
+
* Returns whether the task is now running in `domain`. An entry that reached a
|
|
68
|
+
* terminal state while still queued (#1070) is not dispatched at all.
|
|
69
|
+
*/
|
|
70
|
+
export declare function dispatchStolenTask(ctx: QueenTaskContext, task: QueenTask, domain: DomainName): Promise<boolean>;
|
|
82
71
|
/**
|
|
83
72
|
* Check if a domain can handle a given task type.
|
|
84
73
|
*/
|
|
85
74
|
export declare function canDomainHandleTask(domain: DomainName, task: QueenTask): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* #1124: whether a task can run in a domain, i.e. the domain is configured for
|
|
77
|
+
* its type and, for a Queen-owned task, the domain's plugin has a handler.
|
|
78
|
+
*/
|
|
79
|
+
export declare function canDomainExecuteTask(domainPlugins: ReadonlyMap<DomainName, DomainPlugin> | undefined, domain: DomainName, task: QueenTask): boolean;
|
|
86
80
|
//# sourceMappingURL=queen-task-management.d.ts.map
|
|
@@ -1,108 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agentic QE v3 - Queen Task Management
|
|
3
3
|
* Extracted from queen-coordinator.ts - Task assignment, domain routing,
|
|
4
|
-
* TinyDancer integration,
|
|
4
|
+
* TinyDancer integration, and domain plugin execution. Queue operations and
|
|
5
|
+
* the drain live in queen-task-queue.ts.
|
|
5
6
|
*/
|
|
6
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
7
7
|
import { ok, err } from '../shared/types/index.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { toError } from '../shared/error-utils.js';
|
|
9
|
+
import { getTaskDomains } from './queen-types.js';
|
|
10
10
|
import { settleCancelledTask } from './cancelled-task-settlement.js';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* PERF-001 FIX: Comparator for tasks - sorted by createdAt ascending (oldest first / FIFO within priority)
|
|
16
|
-
*/
|
|
17
|
-
export const taskComparator = createdAtComparator();
|
|
18
|
-
// ============================================================================
|
|
19
|
-
// Queue operations
|
|
20
|
-
// ============================================================================
|
|
21
|
-
/**
|
|
22
|
-
* PERF-001 FIX: Use binary insertion O(log n) instead of sort O(n log n)
|
|
23
|
-
*/
|
|
24
|
-
export function enqueueTask(taskQueue, domainQueues, task) {
|
|
25
|
-
const priorityQueue = taskQueue.get(task.priority);
|
|
26
|
-
if (priorityQueue) {
|
|
27
|
-
binaryInsert(priorityQueue, task, taskComparator);
|
|
28
|
-
}
|
|
29
|
-
// Also add to domain-specific queues (unsorted - just for load tracking)
|
|
30
|
-
for (const domain of task.targetDomains) {
|
|
31
|
-
const domainQueue = domainQueues.get(domain);
|
|
32
|
-
if (domainQueue) {
|
|
33
|
-
domainQueue.push(task);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Remove a task from all queues.
|
|
39
|
-
* PERF-008: Only iterate the task's targetDomains instead of ALL_DOMAINS.
|
|
40
|
-
*/
|
|
41
|
-
export function removeFromQueues(taskQueue, domainQueues, task) {
|
|
42
|
-
const priorityQueue = taskQueue.get(task.priority);
|
|
43
|
-
if (priorityQueue) {
|
|
44
|
-
const idx = priorityQueue.findIndex(t => t.id === task.id);
|
|
45
|
-
if (idx !== -1) {
|
|
46
|
-
priorityQueue.splice(idx, 1);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
for (const domain of task.targetDomains) {
|
|
50
|
-
const domainQueue = domainQueues.get(domain);
|
|
51
|
-
if (domainQueue) {
|
|
52
|
-
const idx = domainQueue.findIndex(t => t.id === task.id);
|
|
53
|
-
if (idx !== -1) {
|
|
54
|
-
domainQueue.splice(idx, 1);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Get the position of a task within the priority queues.
|
|
61
|
-
*/
|
|
62
|
-
export function getQueuePosition(taskQueue, task) {
|
|
63
|
-
let position = 0;
|
|
64
|
-
for (const p of ['p0', 'p1', 'p2', 'p3']) {
|
|
65
|
-
const queue = taskQueue.get(p);
|
|
66
|
-
if (queue) {
|
|
67
|
-
if (p === task.priority) {
|
|
68
|
-
position += queue.findIndex(t => t.id === task.id);
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
position += queue.length;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return position;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Process the queue: dequeue highest-priority tasks and assign them.
|
|
78
|
-
* CC-002 FIX: Uses atomic counter for capacity check.
|
|
79
|
-
*/
|
|
80
|
-
export async function processQueue(ctx) {
|
|
81
|
-
if (ctx.runningTaskCounter >= ctx.config.maxConcurrentTasks) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
for (const priority of ['p0', 'p1', 'p2', 'p3']) {
|
|
85
|
-
const queue = ctx.taskQueue.get(priority);
|
|
86
|
-
if (!queue || queue.length === 0)
|
|
87
|
-
continue;
|
|
88
|
-
const task = queue.shift();
|
|
89
|
-
if (task) {
|
|
90
|
-
removeFromQueues(ctx.taskQueue, ctx.domainQueues, task);
|
|
91
|
-
// CC-002 FIX: Increment counter before assigning queued task
|
|
92
|
-
ctx.runningTaskCounter++;
|
|
93
|
-
try {
|
|
94
|
-
await assignTask(ctx, task);
|
|
95
|
-
}
|
|
96
|
-
catch (error) {
|
|
97
|
-
ctx.runningTaskCounter--;
|
|
98
|
-
throw error;
|
|
99
|
-
}
|
|
100
|
-
if (ctx.runningTaskCounter >= ctx.config.maxConcurrentTasks) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
11
|
+
import { findDomainsWithoutHandler, describeMissingHandler } from './task-executability.js';
|
|
12
|
+
import { processQueue, releaseSlot, settleFailedBeforeRun } from './queen-task-queue.js';
|
|
13
|
+
export { taskComparator, enqueueTask, removeFromQueues, getQueuePosition, processQueue, } from './queen-task-queue.js';
|
|
106
14
|
// ============================================================================
|
|
107
15
|
// Task filtering
|
|
108
16
|
// ============================================================================
|
|
@@ -142,7 +50,7 @@ export function listTasks(tasks, filter) {
|
|
|
142
50
|
export async function assignTask(ctx, task) {
|
|
143
51
|
const targetDomains = task.targetDomains.length > 0
|
|
144
52
|
? task.targetDomains
|
|
145
|
-
:
|
|
53
|
+
: getTaskDomains(task.type);
|
|
146
54
|
if (targetDomains.length === 0) {
|
|
147
55
|
return err(new Error(`No domains configured for task type: ${task.type}`));
|
|
148
56
|
}
|
|
@@ -166,6 +74,16 @@ export async function assignTask(ctx, task) {
|
|
|
166
74
|
* circuit breaker checks, team management, and domain plugin execution.
|
|
167
75
|
*/
|
|
168
76
|
export async function assignTaskToDomain(ctx, task, domain) {
|
|
77
|
+
// #1081: a Queen-owned task runs only through its domain plugin's handler.
|
|
78
|
+
// Without one nothing would ever report a result, so fail it now with the
|
|
79
|
+
// reason instead of leaving it running on a held slot. Caller-owned tasks
|
|
80
|
+
// are executed by their caller (#1065) and need no handler here.
|
|
81
|
+
if (task.executionOwner !== 'caller' && ctx.domainPlugins) {
|
|
82
|
+
const gaps = findDomainsWithoutHandler(ctx.domainPlugins, task.type, [domain]);
|
|
83
|
+
if (gaps.length > 0) {
|
|
84
|
+
return failUnexecutableTask(ctx, task, domain, describeMissingHandler(task.type, gaps));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
169
87
|
// V3 Integration: Use TinyDancer for intelligent model routing
|
|
170
88
|
let routeDecision;
|
|
171
89
|
if (ctx.tinyDancerRouter) {
|
|
@@ -179,7 +97,7 @@ export async function assignTaskToDomain(ctx, task, domain) {
|
|
|
179
97
|
description: `${task.type}: ${JSON.stringify(task.payload).slice(0, 200)}`,
|
|
180
98
|
type: task.type,
|
|
181
99
|
domain: domain,
|
|
182
|
-
priority: priorityMap[task.priority],
|
|
100
|
+
priority: Object.hasOwn(priorityMap, task.priority) ? priorityMap[task.priority] : 'normal',
|
|
183
101
|
};
|
|
184
102
|
routeDecision = await ctx.tinyDancerRouter.route(classifiableTask);
|
|
185
103
|
if (ctx.config.enableMetrics) {
|
|
@@ -214,13 +132,13 @@ export async function assignTaskToDomain(ctx, task, domain) {
|
|
|
214
132
|
// preamble can instruct it to call `aqe llm advise` before substantive work
|
|
215
133
|
...(routeDecision?.triggerMultiModel ? ['advisor:triggerMultiModel'] : []),
|
|
216
134
|
];
|
|
217
|
-
const spawnResult = await ctx.requestAgentSpawn(domain, agentType, spawnCapabilities);
|
|
135
|
+
const spawnResult = await ctx.requestAgentSpawn(domain, agentType, spawnCapabilities, task.id);
|
|
218
136
|
// A queued task can be cancelled while routing or agent spawn is awaiting.
|
|
219
137
|
// Do not recreate it as running or dispatch its plugin afterward.
|
|
220
138
|
if (ctx.tasks.get(task.id)?.status === 'cancelled') {
|
|
221
139
|
if (spawnResult.success)
|
|
222
140
|
await ctx.agentCoordinator.stop(spawnResult.value);
|
|
223
|
-
|
|
141
|
+
await releaseSlot(ctx);
|
|
224
142
|
return ok(task.id);
|
|
225
143
|
}
|
|
226
144
|
const agentIds = [];
|
|
@@ -247,6 +165,10 @@ export async function assignTaskToDomain(ctx, task, domain) {
|
|
|
247
165
|
domain,
|
|
248
166
|
agentIds,
|
|
249
167
|
});
|
|
168
|
+
// The MCP factory executes caller-owned tasks itself and publishes their result.
|
|
169
|
+
// Dispatching the plugin here as well would run the same workload twice.
|
|
170
|
+
if (task.executionOwner === 'caller')
|
|
171
|
+
return ok(task.id);
|
|
250
172
|
// INTEGRATION FIX: Invoke domain plugin directly for task execution
|
|
251
173
|
if (ctx.domainPlugins) {
|
|
252
174
|
const plugin = ctx.domainPlugins.get(domain);
|
|
@@ -259,49 +181,83 @@ export async function assignTaskToDomain(ctx, task, domain) {
|
|
|
259
181
|
timeout: task.timeout,
|
|
260
182
|
correlationId: task.correlationId,
|
|
261
183
|
};
|
|
262
|
-
|
|
184
|
+
// #1140: a plugin that throws is treated like one that returns err, so
|
|
185
|
+
// the task is settled here instead of left running on a released slot.
|
|
186
|
+
let execResult;
|
|
187
|
+
try {
|
|
188
|
+
execResult = await plugin.executeTask(request, (result) => handleTaskCompletionCallback(ctx, result));
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
execResult = err(toError(error));
|
|
192
|
+
}
|
|
263
193
|
if (!execResult.success) {
|
|
264
194
|
const cancelled = settleCancelledTask(ctx.tasks, task.id);
|
|
265
195
|
if (cancelled.ignored) {
|
|
266
|
-
if (cancelled.settledNow)
|
|
267
|
-
|
|
268
|
-
await processQueue(ctx);
|
|
269
|
-
}
|
|
196
|
+
if (cancelled.settledNow)
|
|
197
|
+
await releaseSlot(ctx);
|
|
270
198
|
return ok(task.id);
|
|
271
199
|
}
|
|
200
|
+
// #1140: the plugin already reported this task through onComplete,
|
|
201
|
+
// which settled it and released its slot.
|
|
202
|
+
if (ctx.tasks.get(task.id)?.status !== 'running')
|
|
203
|
+
return err(execResult.error);
|
|
272
204
|
ctx.tasks.set(task.id, {
|
|
273
205
|
...execution,
|
|
274
206
|
status: 'failed',
|
|
275
207
|
error: execResult.error.message,
|
|
276
208
|
completedAt: new Date(),
|
|
277
209
|
});
|
|
278
|
-
ctx.runningTaskCounter = Math.max(0, ctx.runningTaskCounter - 1);
|
|
279
210
|
ctx.tasksFailed++;
|
|
280
211
|
ctx.auditLogger.logFail(task.id, agentIds[0], execResult.error.message);
|
|
212
|
+
await ctx.publishEvent('TaskFailed', { taskId: task.id, domain, error: execResult.error.message });
|
|
213
|
+
await releaseSlot(ctx);
|
|
281
214
|
return err(execResult.error);
|
|
282
215
|
}
|
|
283
216
|
return ok(task.id);
|
|
284
217
|
}
|
|
285
|
-
// Fallback: Send event to plugin (for domains not yet updated)
|
|
286
|
-
if (plugin) {
|
|
287
|
-
try {
|
|
288
|
-
await plugin.handleEvent({
|
|
289
|
-
id: uuidv4(),
|
|
290
|
-
type: 'TaskAssigned',
|
|
291
|
-
timestamp: new Date(),
|
|
292
|
-
source: 'queen-coordinator',
|
|
293
|
-
correlationId: task.correlationId,
|
|
294
|
-
payload: { task },
|
|
295
|
-
});
|
|
296
|
-
console.warn(`[Queen] Domain ${domain} has no executeTask handler, using event fallback`);
|
|
297
|
-
}
|
|
298
|
-
catch (error) {
|
|
299
|
-
console.warn(`[Queen] Failed to invoke domain ${domain} event handler:`, error);
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
218
|
}
|
|
303
219
|
return ok(task.id);
|
|
304
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* #1081: settle a Queen-owned task that no handler will execute. It is marked
|
|
223
|
+
* failed with the reason, its slot is released and the queue moves on.
|
|
224
|
+
*/
|
|
225
|
+
async function failUnexecutableTask(ctx, task, domain, reason) {
|
|
226
|
+
const traceCtx = ctx.taskTraceContexts.get(task.id);
|
|
227
|
+
if (ctx.traceCollector && traceCtx) {
|
|
228
|
+
ctx.traceCollector.failSpan(traceCtx.spanId, reason);
|
|
229
|
+
ctx.taskTraceContexts.delete(task.id);
|
|
230
|
+
}
|
|
231
|
+
await settleFailedBeforeRun(ctx, task, domain, reason);
|
|
232
|
+
return ok(task.id);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Work stealing: dispatch a queued task to another domain. It takes a slot
|
|
236
|
+
* like any dispatched task, so its settle leaves the counter balanced, and it
|
|
237
|
+
* is failed with the reason if it cannot be assigned (#1124).
|
|
238
|
+
*
|
|
239
|
+
* Returns whether the task is now running in `domain`. An entry that reached a
|
|
240
|
+
* terminal state while still queued (#1070) is not dispatched at all.
|
|
241
|
+
*/
|
|
242
|
+
export async function dispatchStolenTask(ctx, task, domain) {
|
|
243
|
+
const status = ctx.tasks.get(task.id)?.status;
|
|
244
|
+
if (status !== undefined && status !== 'queued')
|
|
245
|
+
return false;
|
|
246
|
+
ctx.runningTaskCounter++;
|
|
247
|
+
let assigned;
|
|
248
|
+
try {
|
|
249
|
+
assigned = await assignTaskToDomain(ctx, task, domain);
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
ctx.runningTaskCounter = Math.max(0, ctx.runningTaskCounter - 1);
|
|
253
|
+
throw error;
|
|
254
|
+
}
|
|
255
|
+
if (!assigned.success && (ctx.tasks.get(task.id)?.status ?? 'queued') === 'queued') {
|
|
256
|
+
await settleFailedBeforeRun(ctx, task, domain, assigned.error.message);
|
|
257
|
+
}
|
|
258
|
+
const after = ctx.tasks.get(task.id);
|
|
259
|
+
return after?.assignedDomain === domain && (after.status === 'running' || after.status === 'completed');
|
|
260
|
+
}
|
|
305
261
|
// ============================================================================
|
|
306
262
|
// Task completion callback (from domain plugin)
|
|
307
263
|
// ============================================================================
|
|
@@ -369,7 +325,18 @@ async function handleTaskCompletionCallback(ctx, result) {
|
|
|
369
325
|
* Check if a domain can handle a given task type.
|
|
370
326
|
*/
|
|
371
327
|
export function canDomainHandleTask(domain, task) {
|
|
372
|
-
const compatibleDomains =
|
|
328
|
+
const compatibleDomains = getTaskDomains(task.type);
|
|
373
329
|
return compatibleDomains.includes(domain);
|
|
374
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* #1124: whether a task can run in a domain, i.e. the domain is configured for
|
|
333
|
+
* its type and, for a Queen-owned task, the domain's plugin has a handler.
|
|
334
|
+
*/
|
|
335
|
+
export function canDomainExecuteTask(domainPlugins, domain, task) {
|
|
336
|
+
if (!canDomainHandleTask(domain, task))
|
|
337
|
+
return false;
|
|
338
|
+
if (task.executionOwner === 'caller' || !domainPlugins)
|
|
339
|
+
return true;
|
|
340
|
+
return findDomainsWithoutHandler(domainPlugins, task.type, [domain]).length === 0;
|
|
341
|
+
}
|
|
375
342
|
//# sourceMappingURL=queen-task-management.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Queen Task Queue
|
|
3
|
+
* Extracted from queen-task-management.ts - priority queue operations, the
|
|
4
|
+
* queue drain, and handing a released slot back to the queue.
|
|
5
|
+
*/
|
|
6
|
+
import type { DomainName, Priority } from '../shared/types';
|
|
7
|
+
import type { QueenTask } from './queen-types.js';
|
|
8
|
+
import { type QueenTaskContext } from './queen-task-management.js';
|
|
9
|
+
/**
|
|
10
|
+
* PERF-001 FIX: Comparator for tasks - sorted by createdAt ascending (oldest first / FIFO within priority)
|
|
11
|
+
*/
|
|
12
|
+
export declare const taskComparator: import("../shared/utils/binary-insert").Comparator<QueenTask>;
|
|
13
|
+
/**
|
|
14
|
+
* PERF-001 FIX: Use binary insertion O(log n) instead of sort O(n log n)
|
|
15
|
+
*/
|
|
16
|
+
export declare function enqueueTask(taskQueue: Map<Priority, QueenTask[]>, domainQueues: Map<DomainName, QueenTask[]>, task: QueenTask): void;
|
|
17
|
+
/**
|
|
18
|
+
* Remove a task from all queues.
|
|
19
|
+
* PERF-008: Only iterate the task's targetDomains instead of ALL_DOMAINS.
|
|
20
|
+
*/
|
|
21
|
+
export declare function removeFromQueues(taskQueue: Map<Priority, QueenTask[]>, domainQueues: Map<DomainName, QueenTask[]>, task: QueenTask): void;
|
|
22
|
+
/**
|
|
23
|
+
* Get the position of a task within the priority queues.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getQueuePosition(taskQueue: Map<Priority, QueenTask[]>, task: QueenTask): number;
|
|
26
|
+
/**
|
|
27
|
+
* Process the queue: dequeue highest-priority tasks and assign them.
|
|
28
|
+
* CC-002 FIX: Uses atomic counter for capacity check.
|
|
29
|
+
*/
|
|
30
|
+
export declare function processQueue(ctx: QueenTaskContext): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Give back the slot a task held and hand it to the queue: a running drain
|
|
33
|
+
* picks it up on its next scan, otherwise a new drain starts.
|
|
34
|
+
*/
|
|
35
|
+
export declare function releaseSlot(ctx: QueenTaskContext): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Mark a task that never started as failed, publish QueenTaskFailed (#1124)
|
|
38
|
+
* and hand the slot it held to the queue.
|
|
39
|
+
*/
|
|
40
|
+
export declare function settleFailedBeforeRun(ctx: QueenTaskContext, task: QueenTask, domain: DomainName | undefined, reason: string): Promise<void>;
|
|
41
|
+
//# sourceMappingURL=queen-task-queue.d.ts.map
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Queen Task Queue
|
|
3
|
+
* Extracted from queen-task-management.ts - priority queue operations, the
|
|
4
|
+
* queue drain, and handing a released slot back to the queue.
|
|
5
|
+
*/
|
|
6
|
+
import { binaryInsert, createdAtComparator } from '../shared/utils/index.js';
|
|
7
|
+
import { toErrorMessage } from '../shared/error-utils.js';
|
|
8
|
+
import { assignTask } from './queen-task-management.js';
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Task comparator for priority queue binary insertion
|
|
11
|
+
// ============================================================================
|
|
12
|
+
/**
|
|
13
|
+
* PERF-001 FIX: Comparator for tasks - sorted by createdAt ascending (oldest first / FIFO within priority)
|
|
14
|
+
*/
|
|
15
|
+
export const taskComparator = createdAtComparator();
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Queue operations
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* PERF-001 FIX: Use binary insertion O(log n) instead of sort O(n log n)
|
|
21
|
+
*/
|
|
22
|
+
export function enqueueTask(taskQueue, domainQueues, task) {
|
|
23
|
+
const priorityQueue = taskQueue.get(task.priority);
|
|
24
|
+
if (priorityQueue) {
|
|
25
|
+
binaryInsert(priorityQueue, task, taskComparator);
|
|
26
|
+
}
|
|
27
|
+
// Also add to domain-specific queues (unsorted - just for load tracking)
|
|
28
|
+
for (const domain of task.targetDomains) {
|
|
29
|
+
const domainQueue = domainQueues.get(domain);
|
|
30
|
+
if (domainQueue) {
|
|
31
|
+
domainQueue.push(task);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Remove a task from all queues.
|
|
37
|
+
* PERF-008: Only iterate the task's targetDomains instead of ALL_DOMAINS.
|
|
38
|
+
*/
|
|
39
|
+
export function removeFromQueues(taskQueue, domainQueues, task) {
|
|
40
|
+
const priorityQueue = taskQueue.get(task.priority);
|
|
41
|
+
if (priorityQueue) {
|
|
42
|
+
const idx = priorityQueue.findIndex(t => t.id === task.id);
|
|
43
|
+
if (idx !== -1) {
|
|
44
|
+
priorityQueue.splice(idx, 1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
for (const domain of task.targetDomains) {
|
|
48
|
+
const domainQueue = domainQueues.get(domain);
|
|
49
|
+
if (domainQueue) {
|
|
50
|
+
const idx = domainQueue.findIndex(t => t.id === task.id);
|
|
51
|
+
if (idx !== -1) {
|
|
52
|
+
domainQueue.splice(idx, 1);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get the position of a task within the priority queues.
|
|
59
|
+
*/
|
|
60
|
+
export function getQueuePosition(taskQueue, task) {
|
|
61
|
+
let position = 0;
|
|
62
|
+
for (const p of ['p0', 'p1', 'p2', 'p3']) {
|
|
63
|
+
const queue = taskQueue.get(p);
|
|
64
|
+
if (queue) {
|
|
65
|
+
if (p === task.priority) {
|
|
66
|
+
position += queue.findIndex(t => t.id === task.id);
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
position += queue.length;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return position;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Process the queue: dequeue highest-priority tasks and assign them.
|
|
76
|
+
* CC-002 FIX: Uses atomic counter for capacity check.
|
|
77
|
+
*/
|
|
78
|
+
export async function processQueue(ctx) {
|
|
79
|
+
if (ctx.runningTaskCounter >= ctx.config.maxConcurrentTasks) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// #1081: while this drain runs, a task failed at dispatch frees its slot
|
|
83
|
+
// here instead of starting a nested drain (one stack frame per failed task).
|
|
84
|
+
drainDepth.set(ctx.tasks, (drainDepth.get(ctx.tasks) ?? 0) + 1);
|
|
85
|
+
try {
|
|
86
|
+
// #1127: a slot released elsewhere while this drain awaits marks it dirty,
|
|
87
|
+
// so it scans again from p0 rather than leaving the slot unused.
|
|
88
|
+
do {
|
|
89
|
+
drainDirty.delete(ctx.tasks);
|
|
90
|
+
for (const priority of ['p0', 'p1', 'p2', 'p3']) {
|
|
91
|
+
const queue = ctx.taskQueue.get(priority);
|
|
92
|
+
if (!queue || queue.length === 0)
|
|
93
|
+
continue;
|
|
94
|
+
let task = shiftDispatchableTask(ctx, queue);
|
|
95
|
+
while (task) {
|
|
96
|
+
removeFromQueues(ctx.taskQueue, ctx.domainQueues, task);
|
|
97
|
+
// CC-002 FIX: Increment counter before assigning queued task
|
|
98
|
+
ctx.runningTaskCounter++;
|
|
99
|
+
let assigned;
|
|
100
|
+
try {
|
|
101
|
+
assigned = await assignTask(ctx, task);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
ctx.runningTaskCounter = Math.max(0, ctx.runningTaskCounter - 1);
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
// #1081: a queued task that cannot be assigned (no healthy domain, open
|
|
108
|
+
// breaker) has no caller waiting on the result. Fail it with the reason
|
|
109
|
+
// rather than leave it queued forever on a held slot.
|
|
110
|
+
if (!assigned.success && (ctx.tasks.get(task.id)?.status ?? 'queued') === 'queued') {
|
|
111
|
+
await settleFailedBeforeRun(ctx, task, undefined, assigned.error.message);
|
|
112
|
+
}
|
|
113
|
+
if (ctx.runningTaskCounter >= ctx.config.maxConcurrentTasks) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// #1127: fill every free slot, whether this task started, failed
|
|
117
|
+
// before running or was cancelled while it was being assigned.
|
|
118
|
+
task = shiftDispatchableTask(ctx, queue);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
} while (drainDirty.has(ctx.tasks) && ctx.runningTaskCounter < ctx.config.maxConcurrentTasks);
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
const depth = (drainDepth.get(ctx.tasks) ?? 1) - 1;
|
|
125
|
+
if (depth > 0)
|
|
126
|
+
drainDepth.set(ctx.tasks, depth);
|
|
127
|
+
else {
|
|
128
|
+
drainDepth.delete(ctx.tasks);
|
|
129
|
+
drainDirty.delete(ctx.tasks);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Drains in progress per Queen, keyed by its task map (the task context
|
|
135
|
+
* object is rebuilt for every call).
|
|
136
|
+
*/
|
|
137
|
+
const drainDepth = new WeakMap();
|
|
138
|
+
/** #1127: Queens with a slot released while a drain was running. */
|
|
139
|
+
const drainDirty = new WeakSet();
|
|
140
|
+
/**
|
|
141
|
+
* Give back the slot a task held and hand it to the queue: a running drain
|
|
142
|
+
* picks it up on its next scan, otherwise a new drain starts.
|
|
143
|
+
*/
|
|
144
|
+
export async function releaseSlot(ctx) {
|
|
145
|
+
ctx.runningTaskCounter = Math.max(0, ctx.runningTaskCounter - 1);
|
|
146
|
+
if (drainDepth.has(ctx.tasks)) {
|
|
147
|
+
drainDirty.add(ctx.tasks);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// The drain dispatches other tasks. The caller whose task released this
|
|
151
|
+
// slot does not wait for it (#1140), and its failure belongs to none of
|
|
152
|
+
// them, so it must not reach that caller.
|
|
153
|
+
void processQueue(ctx).catch(error => {
|
|
154
|
+
console.warn('[Queen] Queue drain after a released slot failed:', toErrorMessage(error));
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Take the next task that is still waiting to run. A queued task can reach a
|
|
159
|
+
* terminal state without being dequeued, e.g. when its caller executes it
|
|
160
|
+
* directly (#1070). Dispatching it again would flip it back to running and
|
|
161
|
+
* leak a capacity slot, so such entries are dropped from the queues instead.
|
|
162
|
+
*/
|
|
163
|
+
function shiftDispatchableTask(ctx, queue) {
|
|
164
|
+
let task = queue.shift();
|
|
165
|
+
while (task) {
|
|
166
|
+
const status = ctx.tasks.get(task.id)?.status;
|
|
167
|
+
if (status === undefined || status === 'queued')
|
|
168
|
+
return task;
|
|
169
|
+
removeFromQueues(ctx.taskQueue, ctx.domainQueues, task);
|
|
170
|
+
task = queue.shift();
|
|
171
|
+
}
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Mark a task that never started as failed, publish QueenTaskFailed (#1124)
|
|
176
|
+
* and hand the slot it held to the queue.
|
|
177
|
+
*/
|
|
178
|
+
export async function settleFailedBeforeRun(ctx, task, domain, reason) {
|
|
179
|
+
ctx.tasks.set(task.id, {
|
|
180
|
+
taskId: task.id,
|
|
181
|
+
task,
|
|
182
|
+
status: 'failed',
|
|
183
|
+
assignedDomain: domain,
|
|
184
|
+
assignedAgents: [],
|
|
185
|
+
retryCount: ctx.tasks.get(task.id)?.retryCount ?? 0,
|
|
186
|
+
error: reason,
|
|
187
|
+
completedAt: new Date(),
|
|
188
|
+
});
|
|
189
|
+
ctx.tasksFailed++;
|
|
190
|
+
ctx.auditLogger.logFail(task.id, undefined, reason);
|
|
191
|
+
await ctx.publishEvent('TaskFailed', { taskId: task.id, domain, error: reason });
|
|
192
|
+
await releaseSlot(ctx);
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=queen-task-queue.js.map
|
|
@@ -29,6 +29,8 @@ export interface QueenTask {
|
|
|
29
29
|
readonly createdAt: Date;
|
|
30
30
|
readonly requester?: string;
|
|
31
31
|
readonly correlationId?: string;
|
|
32
|
+
/** Trusted caller executes and reports results; Queen still tracks assignment. */
|
|
33
|
+
readonly executionOwner?: 'queen' | 'caller';
|
|
32
34
|
}
|
|
33
35
|
export type TaskType = 'generate-tests' | 'execute-tests' | 'analyze-coverage' | 'assess-quality' | 'predict-defects' | 'validate-requirements' | 'index-code' | 'scan-security' | 'validate-contracts' | 'test-accessibility' | 'run-chaos' | 'optimize-learning' | 'cross-domain-workflow' | 'protocol-execution' | 'ideation-assessment';
|
|
34
36
|
/**
|
|
@@ -134,6 +136,8 @@ export interface HealthIssue {
|
|
|
134
136
|
export interface IQueenCoordinator {
|
|
135
137
|
initialize(): Promise<void>;
|
|
136
138
|
dispose(): Promise<void>;
|
|
139
|
+
/** #1075: reject a task type that no candidate domain plugin executes. */
|
|
140
|
+
validateTaskExecutable(type: TaskType, targetDomains?: readonly DomainName[]): Result<void, Error>;
|
|
137
141
|
submitTask(task: Omit<QueenTask, 'id' | 'createdAt'>): Promise<Result<string, Error>>;
|
|
138
142
|
cancelTask(taskId: string): Promise<Result<void, Error>>;
|
|
139
143
|
getTaskStatus(taskId: string): TaskExecution | undefined;
|
|
@@ -147,7 +151,7 @@ export interface IQueenCoordinator {
|
|
|
147
151
|
triggerWorkStealing(): Promise<number>;
|
|
148
152
|
listAllAgents(): AgentInfo[];
|
|
149
153
|
getAgentsByDomain(domain: DomainName): AgentInfo[];
|
|
150
|
-
requestAgentSpawn(domain: DomainName, type: string, capabilities: string[]): Promise<Result<string, Error>>;
|
|
154
|
+
requestAgentSpawn(domain: DomainName, type: string, capabilities: string[], taskId?: string): Promise<Result<string, Error>>;
|
|
151
155
|
getHealth(): QueenHealth;
|
|
152
156
|
getMetrics(): QueenMetrics;
|
|
153
157
|
executeProtocol(protocolId: string, params?: Record<string, unknown>): Promise<Result<string, Error>>;
|
|
@@ -176,6 +180,12 @@ export interface TaskFilter {
|
|
|
176
180
|
export declare const DOMAIN_GROUPS: DomainGroup[];
|
|
177
181
|
export declare const TASK_DOMAIN_MAP: Record<TaskType, DomainName[]>;
|
|
178
182
|
export declare const DEFAULT_QUEEN_CONFIG: QueenConfig;
|
|
183
|
+
/**
|
|
184
|
+
* Domains configured for a task type, or [] when the type is unknown.
|
|
185
|
+
* Task types arrive from MCP/CLI callers, so the lookup uses own properties
|
|
186
|
+
* only: `constructor` or `__proto__` must not resolve through Object.prototype.
|
|
187
|
+
*/
|
|
188
|
+
export declare function getTaskDomains(type: string): readonly DomainName[];
|
|
179
189
|
/**
|
|
180
190
|
* Initialize the TASK_DOMAIN_MAP entries that need ALL_DOMAINS at runtime.
|
|
181
191
|
* Must be called once ALL_DOMAINS is available.
|
|
@@ -69,6 +69,14 @@ export const DEFAULT_QUEEN_CONFIG = {
|
|
|
69
69
|
// V3 Integration: Enable intelligent model routing by default
|
|
70
70
|
enableRouting: true,
|
|
71
71
|
};
|
|
72
|
+
/**
|
|
73
|
+
* Domains configured for a task type, or [] when the type is unknown.
|
|
74
|
+
* Task types arrive from MCP/CLI callers, so the lookup uses own properties
|
|
75
|
+
* only: `constructor` or `__proto__` must not resolve through Object.prototype.
|
|
76
|
+
*/
|
|
77
|
+
export function getTaskDomains(type) {
|
|
78
|
+
return Object.hasOwn(TASK_DOMAIN_MAP, type) ? TASK_DOMAIN_MAP[type] : [];
|
|
79
|
+
}
|
|
72
80
|
/**
|
|
73
81
|
* Initialize the TASK_DOMAIN_MAP entries that need ALL_DOMAINS at runtime.
|
|
74
82
|
* Must be called once ALL_DOMAINS is available.
|