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
|
@@ -14,7 +14,7 @@ import { LearningCoordinatorService } from '../../../domains/learning-optimizati
|
|
|
14
14
|
import { MetricsOptimizerService } from '../../../domains/learning-optimization/services/metrics-optimizer.js';
|
|
15
15
|
import { TransferSpecialistService } from '../../../domains/learning-optimization/services/transfer-specialist.js';
|
|
16
16
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
17
|
-
import {
|
|
17
|
+
import { partitionByRewardSource } from '../../../domains/learning-optimization/reward-source.js';
|
|
18
18
|
// ============================================================================
|
|
19
19
|
// Tool Implementation
|
|
20
20
|
// ============================================================================
|
|
@@ -59,12 +59,18 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
59
59
|
switch (action) {
|
|
60
60
|
case 'learn':
|
|
61
61
|
result.learnResult = await this.executeLearn(domain, experienceIds, context);
|
|
62
|
+
if (result.learnResult.evidenceStatus === 'insufficient-evidence') {
|
|
63
|
+
result.evidenceStatus = 'insufficient-evidence';
|
|
64
|
+
}
|
|
62
65
|
break;
|
|
63
66
|
case 'optimize':
|
|
64
67
|
if (!objective) {
|
|
65
68
|
return { success: false, error: 'Objective is required for optimize action' };
|
|
66
69
|
}
|
|
67
70
|
result.optimizeResult = await this.executeOptimize(domain, objective, context);
|
|
71
|
+
if (result.optimizeResult.evidenceStatus === 'insufficient-evidence') {
|
|
72
|
+
result.evidenceStatus = 'insufficient-evidence';
|
|
73
|
+
}
|
|
68
74
|
break;
|
|
69
75
|
case 'transfer':
|
|
70
76
|
if (!domain || !targetDomain) {
|
|
@@ -74,9 +80,15 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
74
80
|
break;
|
|
75
81
|
case 'patterns':
|
|
76
82
|
result.patternResult = await this.executePatterns(domain, context);
|
|
83
|
+
if (result.patternResult.evidenceStatus === 'insufficient-evidence') {
|
|
84
|
+
result.evidenceStatus = 'insufficient-evidence';
|
|
85
|
+
}
|
|
77
86
|
break;
|
|
78
87
|
case 'dashboard':
|
|
79
88
|
result.dashboardResult = await this.executeDashboard(context);
|
|
89
|
+
if (result.dashboardResult.evidenceStatus === 'insufficient-evidence') {
|
|
90
|
+
result.evidenceStatus = 'insufficient-evidence';
|
|
91
|
+
}
|
|
80
92
|
break;
|
|
81
93
|
default:
|
|
82
94
|
return { success: false, error: `Unknown action: ${action}` };
|
|
@@ -107,14 +119,24 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
107
119
|
status: 'learning',
|
|
108
120
|
message: `Learning from ${experienceIds?.length || 'recent'} experiences`,
|
|
109
121
|
});
|
|
110
|
-
//
|
|
122
|
+
// #1121: learn from the requested experiences; count only those read.
|
|
123
|
+
if (experienceIds && experienceIds.length > 0) {
|
|
124
|
+
return this.learnFromExperienceIds(learningCoordinator, experienceIds);
|
|
125
|
+
}
|
|
126
|
+
// Mine recent experiences
|
|
111
127
|
const timeRange = TimeRange.lastNDays(7);
|
|
112
128
|
const mineResult = await learningCoordinator.mineExperiences(targetDomain, timeRange);
|
|
113
129
|
const newPatterns = [];
|
|
114
130
|
let experiencesProcessed = 0;
|
|
115
|
-
let
|
|
131
|
+
let evidence = {};
|
|
116
132
|
if (mineResult.success) {
|
|
117
133
|
experiencesProcessed = mineResult.value.experienceCount;
|
|
134
|
+
// #1109: patterns come from measured outcomes only; say how many were left out.
|
|
135
|
+
evidence = {
|
|
136
|
+
measuredExperiences: mineResult.value.measuredExperienceCount ?? experiencesProcessed,
|
|
137
|
+
assignedRewardsExcluded: mineResult.value.assignedRewardsExcluded ?? 0,
|
|
138
|
+
...(mineResult.value.evidenceStatus ? { evidenceStatus: mineResult.value.evidenceStatus } : {}),
|
|
139
|
+
};
|
|
118
140
|
// Convert mined patterns to result format
|
|
119
141
|
for (const pattern of mineResult.value.patterns) {
|
|
120
142
|
newPatterns.push({
|
|
@@ -127,33 +149,55 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
127
149
|
successRate: pattern.successRate,
|
|
128
150
|
});
|
|
129
151
|
}
|
|
130
|
-
// Calculate improvement based on success rate vs baseline
|
|
131
|
-
improvement = mineResult.value.successRate > 0.5
|
|
132
|
-
? (mineResult.value.successRate - 0.5) * 20 // Scale to percentage
|
|
133
|
-
: 0;
|
|
134
|
-
}
|
|
135
|
-
// If specific experience IDs provided, record them
|
|
136
|
-
if (experienceIds && experienceIds.length > 0) {
|
|
137
|
-
experiencesProcessed = experienceIds.length;
|
|
138
152
|
}
|
|
139
153
|
// If no patterns were learned, return empty result (not fake data)
|
|
140
154
|
// This is a valid state - no patterns discovered yet
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return {
|
|
144
|
-
experiencesProcessed,
|
|
145
|
-
patternsLearned: 0,
|
|
146
|
-
newPatterns: [],
|
|
147
|
-
improvement: 0,
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
// Mark as real data - we have actual learning results
|
|
155
|
+
// #1109: there is no recorded baseline, so improvement is never computed
|
|
156
|
+
// here. The former (successRate - 0.5) * 20 was an invented scale.
|
|
151
157
|
this.markAsRealData();
|
|
152
158
|
return {
|
|
153
159
|
experiencesProcessed,
|
|
160
|
+
...evidence,
|
|
154
161
|
patternsLearned: newPatterns.length,
|
|
155
162
|
newPatterns,
|
|
156
|
-
improvement,
|
|
163
|
+
improvement: null,
|
|
164
|
+
unmeasured: ['improvement'],
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* #1121: learn from explicitly requested experiences. experiencesProcessed
|
|
169
|
+
* is the number actually read; IDs with no stored experience are counted in
|
|
170
|
+
* experienceIdsNotFound instead of being reported as processed.
|
|
171
|
+
*/
|
|
172
|
+
async learnFromExperienceIds(learningCoordinator, experienceIds) {
|
|
173
|
+
const readResult = await learningCoordinator.getExperiencesByIds(experienceIds);
|
|
174
|
+
if (!readResult.success)
|
|
175
|
+
throw readResult.error;
|
|
176
|
+
const read = readResult.value;
|
|
177
|
+
const { measured, assignedExcluded } = partitionByRewardSource(read);
|
|
178
|
+
const learned = measured.length > 0 ? await learningCoordinator.learnPattern(read) : null;
|
|
179
|
+
const newPatterns = learned?.success
|
|
180
|
+
? [{
|
|
181
|
+
id: learned.value.id,
|
|
182
|
+
type: learned.value.type,
|
|
183
|
+
name: learned.value.name,
|
|
184
|
+
description: learned.value.description,
|
|
185
|
+
confidence: learned.value.confidence,
|
|
186
|
+
usageCount: learned.value.usageCount,
|
|
187
|
+
successRate: learned.value.successRate,
|
|
188
|
+
}]
|
|
189
|
+
: [];
|
|
190
|
+
this.markAsRealData();
|
|
191
|
+
return {
|
|
192
|
+
experiencesProcessed: read.length,
|
|
193
|
+
experienceIdsNotFound: new Set(experienceIds).size - read.length,
|
|
194
|
+
measuredExperiences: measured.length,
|
|
195
|
+
assignedRewardsExcluded: assignedExcluded,
|
|
196
|
+
...(measured.length === 0 ? { evidenceStatus: 'insufficient-evidence' } : {}),
|
|
197
|
+
patternsLearned: newPatterns.length,
|
|
198
|
+
newPatterns,
|
|
199
|
+
improvement: null,
|
|
200
|
+
unmeasured: ['improvement'],
|
|
157
201
|
};
|
|
158
202
|
}
|
|
159
203
|
/**
|
|
@@ -205,30 +249,18 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
205
249
|
// Get recent experiences for optimization
|
|
206
250
|
const targetDomain = domain || 'learning-optimization';
|
|
207
251
|
const timeRange = TimeRange.lastNDays(30);
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
action: 'optimize',
|
|
221
|
-
state: { context: {}, metrics: {} },
|
|
222
|
-
result: {
|
|
223
|
-
success: secureRandom() > 0.3,
|
|
224
|
-
outcome: { [objective.metric]: secureRandomFloat(70, 100) },
|
|
225
|
-
duration: secureRandomFloat(1000, 6000),
|
|
226
|
-
},
|
|
227
|
-
reward: mineResult.value.avgReward,
|
|
228
|
-
timestamp: new Date(),
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
}
|
|
252
|
+
const recorded = await learningCoordinator.getExperiences(targetDomain, timeRange);
|
|
253
|
+
if (!recorded.success)
|
|
254
|
+
throw recorded.error;
|
|
255
|
+
// #1109: an assigned reward is not an observation; leave it out before the
|
|
256
|
+
// sample-count gate so it can neither pad the count nor fail the optimizer.
|
|
257
|
+
const { measured, assignedExcluded } = partitionByRewardSource(recorded.value);
|
|
258
|
+
// Missing objective values are absence of evidence, not zero or a random
|
|
259
|
+
// synthetic observation. Preserve eligible records (including failures).
|
|
260
|
+
const experiences = measured.filter(experience => {
|
|
261
|
+
const value = experience.result.outcome[objective.metric];
|
|
262
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
263
|
+
});
|
|
232
264
|
// Create current strategy
|
|
233
265
|
const currentStrategy = {
|
|
234
266
|
name: `${targetDomain}-current`,
|
|
@@ -237,7 +269,8 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
237
269
|
retryCount: 3,
|
|
238
270
|
timeout: 30000,
|
|
239
271
|
},
|
|
240
|
-
|
|
272
|
+
// #1099: the current strategy's outcome was never measured here.
|
|
273
|
+
expectedOutcome: {},
|
|
241
274
|
};
|
|
242
275
|
// Convert objective to domain type, properly cast constraints
|
|
243
276
|
const domainConstraints = (objective.constraints || []).map(c => ({
|
|
@@ -253,19 +286,32 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
253
286
|
// Run optimization if we have enough experiences
|
|
254
287
|
let bestStrategy = currentStrategy;
|
|
255
288
|
let improvement = 0;
|
|
256
|
-
let confidence = 0
|
|
289
|
+
let confidence = 0;
|
|
257
290
|
let validationResults = [];
|
|
291
|
+
let unmeasured = [];
|
|
292
|
+
let estimated;
|
|
293
|
+
let evaluation;
|
|
258
294
|
if (experiences.length >= 20) {
|
|
259
295
|
const optimizeResult = await metricsOptimizer.optimizeStrategy(currentStrategy, domainObjective, experiences);
|
|
260
|
-
if (optimizeResult.success)
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
296
|
+
if (!optimizeResult.success)
|
|
297
|
+
throw optimizeResult.error;
|
|
298
|
+
bestStrategy = {
|
|
299
|
+
name: optimizeResult.value.optimizedStrategy.name,
|
|
300
|
+
parameters: optimizeResult.value.optimizedStrategy.parameters,
|
|
301
|
+
expectedOutcome: optimizeResult.value.optimizedStrategy.expectedOutcome,
|
|
302
|
+
};
|
|
303
|
+
improvement = optimizeResult.value.improvement * 100; // Convert to percentage
|
|
304
|
+
confidence = optimizeResult.value.confidence;
|
|
305
|
+
validationResults = optimizeResult.value.validationResults;
|
|
306
|
+
const derived = optimizeResult.value.evaluation;
|
|
307
|
+
if (derived) {
|
|
308
|
+
evaluation = {
|
|
309
|
+
method: derived.method,
|
|
310
|
+
trainingSamples: derived.trainingSamples,
|
|
311
|
+
heldOutSamples: derived.heldOutSamples,
|
|
265
312
|
};
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
validationResults = optimizeResult.value.validationResults;
|
|
313
|
+
estimated = derived.estimated;
|
|
314
|
+
unmeasured = [...(derived.unmeasured ?? [])];
|
|
269
315
|
}
|
|
270
316
|
}
|
|
271
317
|
else {
|
|
@@ -274,16 +320,27 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
274
320
|
tags: [targetDomain, objective.metric],
|
|
275
321
|
};
|
|
276
322
|
const recommendResult = await metricsOptimizer.recommendStrategy(contextForRecommendation);
|
|
277
|
-
if (recommendResult.success)
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
}
|
|
323
|
+
if (!recommendResult.success)
|
|
324
|
+
throw recommendResult.error;
|
|
325
|
+
bestStrategy = {
|
|
326
|
+
name: recommendResult.value.name,
|
|
327
|
+
parameters: recommendResult.value.parameters,
|
|
328
|
+
expectedOutcome: recommendResult.value.expectedOutcome,
|
|
329
|
+
};
|
|
330
|
+
unmeasured = ['improvement', 'confidence'];
|
|
331
|
+
}
|
|
332
|
+
if (Object.keys(bestStrategy.expectedOutcome).length === 0) {
|
|
333
|
+
unmeasured.push('expectedOutcome');
|
|
284
334
|
}
|
|
285
335
|
return {
|
|
286
|
-
|
|
336
|
+
inputSource: 'recorded-experiences',
|
|
337
|
+
experiencesUsed: experiences.length,
|
|
338
|
+
...(assignedExcluded > 0 ? { assignedRewardsExcluded: assignedExcluded } : {}),
|
|
339
|
+
strategiesEvaluated: experiences.length >= 20 ? 1 : 0,
|
|
340
|
+
...(experiences.length < 20 ? { evidenceStatus: 'insufficient-evidence' } : {}),
|
|
341
|
+
...(unmeasured.length > 0 ? { unmeasured } : {}),
|
|
342
|
+
...(estimated ? { estimated } : {}),
|
|
343
|
+
...(evaluation ? { evaluation } : {}),
|
|
287
344
|
bestStrategy,
|
|
288
345
|
improvement,
|
|
289
346
|
confidence,
|
|
@@ -342,14 +399,15 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
342
399
|
// Get pattern statistics from the real service
|
|
343
400
|
const statsResult = await learningCoordinator.getPatternStats(domain);
|
|
344
401
|
if (!statsResult.success) {
|
|
345
|
-
//
|
|
402
|
+
// Stats could not be read: nothing is measured, so no averages (#1121).
|
|
346
403
|
return {
|
|
347
404
|
totalPatterns: 0,
|
|
348
405
|
byType: {},
|
|
349
406
|
byDomain: {},
|
|
350
407
|
topPatterns: [],
|
|
351
|
-
avgConfidence:
|
|
352
|
-
avgSuccessRate:
|
|
408
|
+
avgConfidence: null,
|
|
409
|
+
avgSuccessRate: null,
|
|
410
|
+
evidenceStatus: 'insufficient-evidence',
|
|
353
411
|
sona,
|
|
354
412
|
};
|
|
355
413
|
}
|
|
@@ -364,13 +422,17 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
364
422
|
usageCount: p.usageCount,
|
|
365
423
|
successRate: p.successRate,
|
|
366
424
|
}));
|
|
425
|
+
const measured = stats.totalPatterns > 0;
|
|
367
426
|
return {
|
|
368
427
|
totalPatterns: stats.totalPatterns,
|
|
369
428
|
byType: stats.byType,
|
|
370
429
|
byDomain: stats.byDomain,
|
|
371
430
|
topPatterns,
|
|
372
|
-
avgConfidence: stats.avgConfidence,
|
|
373
|
-
avgSuccessRate: stats.avgSuccessRate,
|
|
431
|
+
avgConfidence: measured ? stats.avgConfidence : null,
|
|
432
|
+
avgSuccessRate: measured ? stats.avgSuccessRate : null,
|
|
433
|
+
...(stats.assignedPatternsExcluded ? { assignedPatternsExcluded: stats.assignedPatternsExcluded } : {}),
|
|
434
|
+
...(stats.legacyPatternsExcluded ? { legacyPatternsExcluded: stats.legacyPatternsExcluded } : {}),
|
|
435
|
+
...(measured ? {} : { evidenceStatus: 'insufficient-evidence' }),
|
|
374
436
|
sona,
|
|
375
437
|
};
|
|
376
438
|
}
|
|
@@ -395,16 +457,17 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
395
457
|
'quality-assessment', 'defect-intelligence', 'learning-optimization'
|
|
396
458
|
];
|
|
397
459
|
let experiencesLast24h = 0;
|
|
460
|
+
let assignedRewardsExcluded = 0;
|
|
398
461
|
const domainPerformance = [];
|
|
399
462
|
for (const domain of domains) {
|
|
400
463
|
const mineResult = await learningCoordinator.mineExperiences(domain, recentTimeRange);
|
|
401
464
|
if (mineResult.success) {
|
|
402
465
|
experiencesLast24h += mineResult.value.experienceCount;
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
});
|
|
466
|
+
assignedRewardsExcluded += mineResult.value.assignedRewardsExcluded ?? 0;
|
|
467
|
+
// #1109: only a measured success rate can rank a domain.
|
|
468
|
+
const { successRate } = mineResult.value;
|
|
469
|
+
if (successRate !== null) {
|
|
470
|
+
domainPerformance.push({ domain, successRate });
|
|
408
471
|
}
|
|
409
472
|
}
|
|
410
473
|
}
|
|
@@ -414,8 +477,17 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
414
477
|
.slice(0, 3)
|
|
415
478
|
.map(d => d.domain);
|
|
416
479
|
// Calculate overall learning rate from pattern stats
|
|
480
|
+
// getPatternStats already leaves out patterns learned from assigned rewards.
|
|
417
481
|
const totalPatterns = statsResult.success ? statsResult.value.totalPatterns : 0;
|
|
418
|
-
const
|
|
482
|
+
const assignedPatternsExcluded = statsResult.success
|
|
483
|
+
? statsResult.value.assignedPatternsExcluded ?? 0
|
|
484
|
+
: 0;
|
|
485
|
+
const legacyPatternsExcluded = statsResult.success
|
|
486
|
+
? statsResult.value.legacyPatternsExcluded ?? 0
|
|
487
|
+
: 0;
|
|
488
|
+
const avgSuccessRate = totalPatterns > 0 && statsResult.success
|
|
489
|
+
? statsResult.value.avgSuccessRate
|
|
490
|
+
: null;
|
|
419
491
|
const overallLearningRate = avgSuccessRate;
|
|
420
492
|
// Generate learning trend from weekly pattern mining
|
|
421
493
|
const learningTrend = [];
|
|
@@ -437,28 +509,40 @@ export class LearningOptimizeTool extends MCPToolBase {
|
|
|
437
509
|
value: dayPatterns,
|
|
438
510
|
});
|
|
439
511
|
}
|
|
440
|
-
//
|
|
512
|
+
// Milestones from measured figures. When each was first reached is not
|
|
513
|
+
// recorded, so achievedAt is null rather than an invented date (#1109).
|
|
441
514
|
const recentMilestones = [];
|
|
442
515
|
if (totalPatterns >= 100) {
|
|
443
516
|
recentMilestones.push({
|
|
444
517
|
name: `Reached ${Math.floor(totalPatterns / 50) * 50} patterns`,
|
|
445
|
-
achievedAt:
|
|
518
|
+
achievedAt: null,
|
|
446
519
|
domain: 'learning-optimization',
|
|
447
520
|
});
|
|
448
521
|
}
|
|
449
|
-
if (avgSuccessRate >= 0.8) {
|
|
522
|
+
if (avgSuccessRate !== null && avgSuccessRate >= 0.8) {
|
|
450
523
|
recentMilestones.push({
|
|
451
524
|
name: `${Math.round(avgSuccessRate * 100)}% pattern success rate`,
|
|
452
|
-
achievedAt:
|
|
525
|
+
achievedAt: null,
|
|
453
526
|
domain: topPerformingDomains[0] || 'learning-optimization',
|
|
454
527
|
});
|
|
455
528
|
}
|
|
529
|
+
const unmeasured = [];
|
|
530
|
+
if (overallLearningRate === null)
|
|
531
|
+
unmeasured.push('overallLearningRate');
|
|
532
|
+
if (topPerformingDomains.length === 0)
|
|
533
|
+
unmeasured.push('topPerformingDomains');
|
|
456
534
|
return {
|
|
457
535
|
overallLearningRate,
|
|
458
536
|
totalPatterns,
|
|
459
537
|
totalKnowledge: knowledgeResult.success ? knowledgeResult.value.length : 0,
|
|
460
538
|
experiencesLast24h,
|
|
461
|
-
|
|
539
|
+
...(assignedRewardsExcluded > 0 ? { assignedRewardsExcluded } : {}),
|
|
540
|
+
...(assignedPatternsExcluded > 0 ? { assignedPatternsExcluded } : {}),
|
|
541
|
+
...(legacyPatternsExcluded > 0 ? { legacyPatternsExcluded } : {}),
|
|
542
|
+
topPerformingDomains,
|
|
543
|
+
...(unmeasured.length > 0
|
|
544
|
+
? { evidenceStatus: 'insufficient-evidence', unmeasured }
|
|
545
|
+
: {}),
|
|
462
546
|
learningTrend,
|
|
463
547
|
recentMilestones,
|
|
464
548
|
sona,
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { MCPToolBase } from '../base.js';
|
|
13
13
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
14
|
+
import { MAX_PAYLOAD_FILE_BYTES, requirePayloadPath } from '../../../shared/io/payload-path-guard.js';
|
|
15
|
+
import { findProjectRoot } from '../../../kernel/project-root.js';
|
|
14
16
|
import { getLLMRouter } from '../base.js';
|
|
15
17
|
import { runQualityGate, } from '../../../validation/quality-gate-runner.js';
|
|
16
18
|
import { createRouterFrontierJudge, createUnavailableJudge, } from '../../../validation/frontier-judge.js';
|
|
@@ -32,6 +34,15 @@ export class QualityGateTool extends MCPToolBase {
|
|
|
32
34
|
if (typeof params.artifact !== 'string' || params.artifact.length === 0) {
|
|
33
35
|
return { success: false, error: 'artifact (non-empty string) is required' };
|
|
34
36
|
}
|
|
37
|
+
// #1126: a caller-named anchor must be a regular file inside the project
|
|
38
|
+
// (relative paths resolve against the project root, as the runner does).
|
|
39
|
+
let anchorPath;
|
|
40
|
+
if (params.anchorPath !== undefined) {
|
|
41
|
+
const confined = await requirePayloadPath('qe/quality/gate', 'anchorPath', params.anchorPath, { basePath: findProjectRoot(), maxBytes: MAX_PAYLOAD_FILE_BYTES });
|
|
42
|
+
if (!confined.success)
|
|
43
|
+
return { success: false, error: confined.error.message };
|
|
44
|
+
anchorPath = confined.value;
|
|
45
|
+
}
|
|
35
46
|
const router = await getLLMRouter(context);
|
|
36
47
|
const judge = router
|
|
37
48
|
? createRouterFrontierJudge(router, {
|
|
@@ -47,7 +58,7 @@ export class QualityGateTool extends MCPToolBase {
|
|
|
47
58
|
artifact: params.artifact,
|
|
48
59
|
checklistId: params.checklistId,
|
|
49
60
|
judge,
|
|
50
|
-
anchorPath
|
|
61
|
+
anchorPath,
|
|
51
62
|
verificationManifest: params.verificationManifest,
|
|
52
63
|
});
|
|
53
64
|
return { success: true, data: result };
|
|
@@ -15,6 +15,7 @@ import { MCPToolBase } from '../base.js';
|
|
|
15
15
|
import { createQualityCriteriaService, HTSM_CATEGORIES, NEVER_OMIT_CATEGORIES, } from '../../../domains/requirements-validation/index.js';
|
|
16
16
|
import { existsSync, readFileSync } from 'fs';
|
|
17
17
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
18
|
+
import { MAX_PAYLOAD_FILE_BYTES, requirePayloadPath } from '../../../shared/io/payload-path-guard.js';
|
|
18
19
|
// ============================================================================
|
|
19
20
|
// Tool Implementation
|
|
20
21
|
// ============================================================================
|
|
@@ -121,8 +122,14 @@ export class QualityCriteriaTool extends MCPToolBase {
|
|
|
121
122
|
});
|
|
122
123
|
// Load epic content
|
|
123
124
|
let content = epicContent || '';
|
|
124
|
-
|
|
125
|
-
|
|
125
|
+
// #1126: the epic is returned verbatim in the agent prompt, so read it
|
|
126
|
+
// only from a regular file inside the project.
|
|
127
|
+
if (epicPath) {
|
|
128
|
+
const confined = await requirePayloadPath('quality-criteria', 'epicPath', epicPath, { allowMissing: true, maxBytes: MAX_PAYLOAD_FILE_BYTES });
|
|
129
|
+
if (!confined.success)
|
|
130
|
+
return { success: false, error: confined.error.message };
|
|
131
|
+
if (existsSync(confined.value))
|
|
132
|
+
content = readFileSync(confined.value, 'utf-8');
|
|
126
133
|
}
|
|
127
134
|
if (!content && !epicPath) {
|
|
128
135
|
return {
|
|
@@ -50,7 +50,13 @@ export function createLWWRegister(nodeId, initialValue, initialTimestamp) {
|
|
|
50
50
|
return state.value;
|
|
51
51
|
},
|
|
52
52
|
set(value, timestamp) {
|
|
53
|
-
|
|
53
|
+
let ts = timestamp ?? Date.now();
|
|
54
|
+
// Without an explicit timestamp the write means "now": a second write by
|
|
55
|
+
// this node within one clock tick (or after a backwards clock step) must
|
|
56
|
+
// still supersede its own earlier write, not tie with it and be dropped.
|
|
57
|
+
if (timestamp === undefined && state.version > 0 && state.nodeId === nodeId && ts <= state.timestamp) {
|
|
58
|
+
ts = state.timestamp + 1;
|
|
59
|
+
}
|
|
54
60
|
// Only update if new timestamp wins
|
|
55
61
|
if (state.version === 0 ||
|
|
56
62
|
compareTimestamps(ts, nodeId, state.timestamp, state.nodeId) > 0) {
|
|
@@ -78,6 +84,10 @@ export function createLWWRegister(nodeId, initialValue, initialTimestamp) {
|
|
|
78
84
|
};
|
|
79
85
|
},
|
|
80
86
|
applyState(incoming) {
|
|
87
|
+
// An unwritten register is the merge identity: its placeholder timestamp
|
|
88
|
+
// (0) would otherwise beat a real write at a negative timestamp.
|
|
89
|
+
if (incoming.version === 0)
|
|
90
|
+
return;
|
|
81
91
|
// Only update if incoming timestamp wins
|
|
82
92
|
if (state.version === 0 ||
|
|
83
93
|
compareTimestamps(incoming.timestamp, incoming.nodeId, state.timestamp, state.nodeId) > 0) {
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* @module migration/agent-compat
|
|
8
8
|
* @see docs/adr/adr-048-agent-naming-conventions.md
|
|
9
9
|
*/
|
|
10
|
+
import { getOwn } from '../shared/utils/safe-record.js';
|
|
10
11
|
/**
|
|
11
12
|
* Complete mapping of deprecated V2 agent names to their V3 equivalents with domain info.
|
|
12
13
|
*
|
|
@@ -127,7 +128,8 @@ export const v2AgentMapping = Object.fromEntries(Object.entries(v2AgentMappingWi
|
|
|
127
128
|
* ```
|
|
128
129
|
*/
|
|
129
130
|
export function resolveAgentName(name) {
|
|
130
|
-
|
|
131
|
+
// #1136: own entries only; `constructor` is not a V2 agent name.
|
|
132
|
+
return getOwn(v2AgentMapping, name) ?? name;
|
|
131
133
|
}
|
|
132
134
|
/**
|
|
133
135
|
* Checks if an agent name is a deprecated V2 agent.
|
|
@@ -146,7 +148,7 @@ export function resolveAgentName(name) {
|
|
|
146
148
|
* ```
|
|
147
149
|
*/
|
|
148
150
|
export function isDeprecatedAgent(name) {
|
|
149
|
-
return name
|
|
151
|
+
return Object.hasOwn(v2AgentMapping, name);
|
|
150
152
|
}
|
|
151
153
|
/**
|
|
152
154
|
* Generates a deprecation warning message for a V2 agent name.
|
|
@@ -170,7 +172,7 @@ export function isDeprecatedAgent(name) {
|
|
|
170
172
|
* ```
|
|
171
173
|
*/
|
|
172
174
|
export function getDeprecationWarning(v2Name) {
|
|
173
|
-
const v3Name = v2AgentMapping
|
|
175
|
+
const v3Name = getOwn(v2AgentMapping, v2Name);
|
|
174
176
|
if (!v3Name) {
|
|
175
177
|
return '';
|
|
176
178
|
}
|
|
@@ -211,7 +213,7 @@ export const v3Agents = [
|
|
|
211
213
|
*/
|
|
212
214
|
export function getAgentDomain(agentName) {
|
|
213
215
|
// Check V2 mapping
|
|
214
|
-
const v2Entry = v2AgentMappingWithDomain
|
|
216
|
+
const v2Entry = getOwn(v2AgentMappingWithDomain, agentName);
|
|
215
217
|
if (v2Entry) {
|
|
216
218
|
return v2Entry.domain;
|
|
217
219
|
}
|
|
@@ -261,7 +263,7 @@ export function generateMigrationReport(usedAgents) {
|
|
|
261
263
|
const alreadyV3 = [];
|
|
262
264
|
const unknown = [];
|
|
263
265
|
for (const agent of usedAgents) {
|
|
264
|
-
const v2Entry = v2AgentMappingWithDomain
|
|
266
|
+
const v2Entry = getOwn(v2AgentMappingWithDomain, agent);
|
|
265
267
|
if (v2Entry) {
|
|
266
268
|
needsMigration.push({
|
|
267
269
|
v2Name: agent,
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Dream insights archive table (#1066, #1116)
|
|
3
|
+
*
|
|
4
|
+
* The dream_insights retention sweep copies each stale insight here before it
|
|
5
|
+
* deletes it (#1066). Until #1116 the sweep created the table lazily on its
|
|
6
|
+
* first run, outside the versioned schema; it is now created by the v14
|
|
7
|
+
* migration.
|
|
8
|
+
*
|
|
9
|
+
* Additive and idempotent: `CREATE ... IF NOT EXISTS` only, so a database where
|
|
10
|
+
* an earlier sweep already created the table (with its rows) is left as it
|
|
11
|
+
* is, and an older AQE that still creates it lazily with the same statement
|
|
12
|
+
* keeps working on a migrated database.
|
|
13
|
+
*
|
|
14
|
+
* Same columns as dream_insights plus archive_id and archived_at. `id` is not
|
|
15
|
+
* unique here: an insight that comes back (for example from a brain import)
|
|
16
|
+
* and is swept again gets a second row instead of replacing the first. No
|
|
17
|
+
* foreign key, so deleting a dream cycle does not cascade into the archive.
|
|
18
|
+
*/
|
|
19
|
+
import type { Database as DatabaseType } from 'better-sqlite3';
|
|
20
|
+
export declare const MIGRATION_VERSION = "20261018_add_dream_insights_archive";
|
|
21
|
+
export declare const DREAM_INSIGHTS_ARCHIVE_TABLE = "dream_insights_archive";
|
|
22
|
+
/** The table, exactly as the 3.15.9 sweep created it lazily. */
|
|
23
|
+
export declare const DREAM_INSIGHTS_ARCHIVE_TABLE_SQL = "\n CREATE TABLE IF NOT EXISTS dream_insights_archive (\n archive_id INTEGER PRIMARY KEY AUTOINCREMENT,\n id TEXT NOT NULL,\n cycle_id TEXT,\n insight_type TEXT,\n source_concepts TEXT,\n description TEXT,\n novelty_score REAL,\n confidence_score REAL,\n actionable INTEGER,\n applied INTEGER,\n suggested_action TEXT,\n pattern_id TEXT,\n created_at TEXT,\n archived_at TEXT NOT NULL DEFAULT (datetime('now'))\n )\n";
|
|
24
|
+
export declare const DREAM_INSIGHTS_ARCHIVE_SCHEMA = "\n \n CREATE TABLE IF NOT EXISTS dream_insights_archive (\n archive_id INTEGER PRIMARY KEY AUTOINCREMENT,\n id TEXT NOT NULL,\n cycle_id TEXT,\n insight_type TEXT,\n source_concepts TEXT,\n description TEXT,\n novelty_score REAL,\n confidence_score REAL,\n actionable INTEGER,\n applied INTEGER,\n suggested_action TEXT,\n pattern_id TEXT,\n created_at TEXT,\n archived_at TEXT NOT NULL DEFAULT (datetime('now'))\n )\n;\n -- The sweep's read-back looks copies up by insight id.\n CREATE INDEX IF NOT EXISTS idx_dream_insights_archive_id ON dream_insights_archive(id);\n";
|
|
25
|
+
export declare function applyMigration(db: DatabaseType): void;
|
|
26
|
+
export declare function isMigrationApplied(db: DatabaseType): boolean;
|
|
27
|
+
//# sourceMappingURL=20261018_add_dream_insights_archive.d.ts.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Dream insights archive table (#1066, #1116)
|
|
3
|
+
*
|
|
4
|
+
* The dream_insights retention sweep copies each stale insight here before it
|
|
5
|
+
* deletes it (#1066). Until #1116 the sweep created the table lazily on its
|
|
6
|
+
* first run, outside the versioned schema; it is now created by the v14
|
|
7
|
+
* migration.
|
|
8
|
+
*
|
|
9
|
+
* Additive and idempotent: `CREATE ... IF NOT EXISTS` only, so a database where
|
|
10
|
+
* an earlier sweep already created the table (with its rows) is left as it
|
|
11
|
+
* is, and an older AQE that still creates it lazily with the same statement
|
|
12
|
+
* keeps working on a migrated database.
|
|
13
|
+
*
|
|
14
|
+
* Same columns as dream_insights plus archive_id and archived_at. `id` is not
|
|
15
|
+
* unique here: an insight that comes back (for example from a brain import)
|
|
16
|
+
* and is swept again gets a second row instead of replacing the first. No
|
|
17
|
+
* foreign key, so deleting a dream cycle does not cascade into the archive.
|
|
18
|
+
*/
|
|
19
|
+
export const MIGRATION_VERSION = '20261018_add_dream_insights_archive';
|
|
20
|
+
export const DREAM_INSIGHTS_ARCHIVE_TABLE = 'dream_insights_archive';
|
|
21
|
+
/** The table, exactly as the 3.15.9 sweep created it lazily. */
|
|
22
|
+
export const DREAM_INSIGHTS_ARCHIVE_TABLE_SQL = `
|
|
23
|
+
CREATE TABLE IF NOT EXISTS ${DREAM_INSIGHTS_ARCHIVE_TABLE} (
|
|
24
|
+
archive_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
25
|
+
id TEXT NOT NULL,
|
|
26
|
+
cycle_id TEXT,
|
|
27
|
+
insight_type TEXT,
|
|
28
|
+
source_concepts TEXT,
|
|
29
|
+
description TEXT,
|
|
30
|
+
novelty_score REAL,
|
|
31
|
+
confidence_score REAL,
|
|
32
|
+
actionable INTEGER,
|
|
33
|
+
applied INTEGER,
|
|
34
|
+
suggested_action TEXT,
|
|
35
|
+
pattern_id TEXT,
|
|
36
|
+
created_at TEXT,
|
|
37
|
+
archived_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
38
|
+
)
|
|
39
|
+
`;
|
|
40
|
+
export const DREAM_INSIGHTS_ARCHIVE_SCHEMA = `
|
|
41
|
+
${DREAM_INSIGHTS_ARCHIVE_TABLE_SQL};
|
|
42
|
+
-- The sweep's read-back looks copies up by insight id.
|
|
43
|
+
CREATE INDEX IF NOT EXISTS idx_dream_insights_archive_id ON ${DREAM_INSIGHTS_ARCHIVE_TABLE}(id);
|
|
44
|
+
`;
|
|
45
|
+
export function applyMigration(db) {
|
|
46
|
+
db.exec(DREAM_INSIGHTS_ARCHIVE_SCHEMA);
|
|
47
|
+
}
|
|
48
|
+
export function isMigrationApplied(db) {
|
|
49
|
+
try {
|
|
50
|
+
const result = db.prepare(`SELECT COUNT(*) AS count FROM sqlite_master WHERE type = 'table' AND name = ?`).get(DREAM_INSIGHTS_ARCHIVE_TABLE);
|
|
51
|
+
return result.count === 1;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=20261018_add_dream_insights_archive.js.map
|
|
@@ -118,7 +118,9 @@ export class EMACalibrator {
|
|
|
118
118
|
* Serialize all records for persistence.
|
|
119
119
|
*/
|
|
120
120
|
serialize() {
|
|
121
|
-
|
|
121
|
+
// Null prototype: an agentId of `__proto__` must stay an own key (a plain
|
|
122
|
+
// object would turn the assignment into a prototype change and drop it).
|
|
123
|
+
const result = Object.create(null);
|
|
122
124
|
for (const [key, record] of this.records) {
|
|
123
125
|
result[key] = { ...record };
|
|
124
126
|
}
|
|
@@ -180,6 +180,10 @@ export declare abstract class BaseDomainPlugin implements DomainPlugin {
|
|
|
180
180
|
* Based on registered task handlers
|
|
181
181
|
*/
|
|
182
182
|
canHandleTask(taskType: string): boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Task types this domain executes, from its registered task handlers (#1075)
|
|
185
|
+
*/
|
|
186
|
+
getSupportedTaskTypes(): string[];
|
|
183
187
|
/**
|
|
184
188
|
* Execute a task assigned by Queen Coordinator
|
|
185
189
|
* Routes to the appropriate handler based on task type
|