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
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* Orchestrates learning workflows across all QE domains
|
|
4
4
|
*/
|
|
5
5
|
import { LoggerFactory } from '../../logging/index.js';
|
|
6
|
-
import { readActivePatterns } from './active-patterns.js';
|
|
6
|
+
import { readActivePatterns, LEARNING_NS } from './active-patterns.js';
|
|
7
|
+
import { partitionByRewardSource } from './reward-source.js';
|
|
8
|
+
import { searchAllKeys } from '../../shared/utils/namespaced-search.js';
|
|
7
9
|
import { v4 as uuidv4 } from 'uuid';
|
|
8
10
|
import { toError } from '../../shared/error-utils.js';
|
|
9
11
|
import { rehydrateDates } from '../../shared/utils/kv-date-rehydrate.js';
|
|
@@ -19,7 +21,6 @@ import { BaseDomainCoordinator, } from '../base-domain-coordinator.js';
|
|
|
19
21
|
// CQ-004: Extracted modules
|
|
20
22
|
import * as LearningHelpers from './coordinator-helpers.js';
|
|
21
23
|
import * as ConsensusHelpers from './coordinator-consensus.js';
|
|
22
|
-
import { isMeasuredGapPayload } from '../../shared/events/domain-events.js';
|
|
23
24
|
const DEFAULT_CONFIG = {
|
|
24
25
|
maxConcurrentWorkflows: 3,
|
|
25
26
|
defaultTimeout: 120000, // 2 minutes
|
|
@@ -200,7 +201,10 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
200
201
|
// Get experiences from the last cycle
|
|
201
202
|
const timeRange = TimeRange.lastNDays(1);
|
|
202
203
|
const experiencesResult = await this.getExperiencesForDomain(domain, timeRange);
|
|
203
|
-
|
|
204
|
+
// #1109: the reported `before` value and the optimizer use measured outcomes only.
|
|
205
|
+
const experiences = experiencesResult.success
|
|
206
|
+
? partitionByRewardSource(experiencesResult.value).measured
|
|
207
|
+
: [];
|
|
204
208
|
this.updateWorkflowProgress(workflowId, 20);
|
|
205
209
|
// Mine experiences for patterns
|
|
206
210
|
const insightsResult = await this.learningService.mineExperiences(domain, timeRange);
|
|
@@ -221,12 +225,19 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
221
225
|
const optimizationResult = await this.optimizerService.optimizeStrategy(currentStrategy, objective, experiences);
|
|
222
226
|
if (optimizationResult.success) {
|
|
223
227
|
strategiesOptimized = 1;
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
228
|
+
// #1099: `after` is the fitted expectation and `percentChange` the
|
|
229
|
+
// optimizer's estimate; neither was observed. Report no improvement
|
|
230
|
+
// rather than a 0 stand-in when the metric was never predicted.
|
|
231
|
+
const after = optimizationResult.value.optimizedStrategy.expectedOutcome[objective.metric];
|
|
232
|
+
if (typeof after === 'number') {
|
|
233
|
+
improvements.push({
|
|
234
|
+
metric: objective.metric,
|
|
235
|
+
before: this.calculateMetricValue(experiences, objective.metric),
|
|
236
|
+
after,
|
|
237
|
+
percentChange: optimizationResult.value.improvement * 100,
|
|
238
|
+
estimated: true,
|
|
239
|
+
});
|
|
240
|
+
}
|
|
230
241
|
}
|
|
231
242
|
}
|
|
232
243
|
this.updateWorkflowProgress(workflowId, 80);
|
|
@@ -319,6 +330,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
319
330
|
domainsOptimized,
|
|
320
331
|
totalStrategies,
|
|
321
332
|
avgImprovement: totalStrategies > 0 ? totalImprovement / totalStrategies : 0,
|
|
333
|
+
improvementEstimated: true,
|
|
322
334
|
byDomain,
|
|
323
335
|
};
|
|
324
336
|
// Publish event
|
|
@@ -400,7 +412,8 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
400
412
|
const report = {
|
|
401
413
|
knowledgeShared,
|
|
402
414
|
domainsUpdated,
|
|
403
|
-
|
|
415
|
+
// #1121: with no transfer attempted there is no rate, not 100%.
|
|
416
|
+
transferSuccessRate: totalTransfers > 0 ? successfulTransfers / totalTransfers : null,
|
|
404
417
|
newPatternsCreated,
|
|
405
418
|
};
|
|
406
419
|
// Publish event
|
|
@@ -448,10 +461,12 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
448
461
|
const recentMilestones = milestonesResult.success
|
|
449
462
|
? milestonesResult.value
|
|
450
463
|
: [];
|
|
451
|
-
// Calculate overall learning rate
|
|
452
|
-
|
|
464
|
+
// Calculate overall learning rate. #1121: when pattern stats cannot be
|
|
465
|
+
// read, or no measured pattern exists, there is no rate to report; the
|
|
466
|
+
// former 0.5 fallback was an invented value.
|
|
467
|
+
const overallLearningRate = patternStats && patternStats.totalPatterns > 0
|
|
453
468
|
? patternStats.avgSuccessRate * 0.6 + (patternStats.avgConfidence * 0.4)
|
|
454
|
-
:
|
|
469
|
+
: null;
|
|
455
470
|
// Determine top performing domains
|
|
456
471
|
const topPerformingDomains = [];
|
|
457
472
|
if (patternStats) {
|
|
@@ -743,19 +758,18 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
743
758
|
// Export patterns (#1055: active patterns only — creation provenance
|
|
744
759
|
// and archives share the `learning:pattern:` prefix). One read covers
|
|
745
760
|
// every target domain; the previous per-domain loop exported each
|
|
746
|
-
// pattern once per target domain.
|
|
747
|
-
const activePatterns = await readActivePatterns(this.memory, {
|
|
748
|
-
onTruncated: (scanned) => logger.warn('Pattern export key scan hit its cap; export may be incomplete', { scanned }),
|
|
749
|
-
});
|
|
761
|
+
// pattern once per target domain. #1071: every key is read, no cap.
|
|
762
|
+
const activePatterns = await readActivePatterns(this.memory, { retrieve: LEARNING_NS });
|
|
750
763
|
for (const pattern of activePatterns) {
|
|
751
764
|
if (targetDomains.includes(pattern.domain)) {
|
|
752
765
|
patterns.push(pattern);
|
|
753
766
|
}
|
|
754
767
|
}
|
|
755
768
|
this.updateWorkflowProgress(workflowId, 30);
|
|
756
|
-
// Export knowledge
|
|
769
|
+
// Export knowledge. #1071: no result cap; queryKnowledge reads every
|
|
770
|
+
// shared item before filtering, so other domains cannot crowd these out.
|
|
757
771
|
const knowledgeResult = await this.transferService.queryKnowledge({
|
|
758
|
-
limit:
|
|
772
|
+
limit: Number.POSITIVE_INFINITY,
|
|
759
773
|
});
|
|
760
774
|
if (knowledgeResult.success) {
|
|
761
775
|
for (const item of knowledgeResult.value) {
|
|
@@ -765,10 +779,13 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
765
779
|
}
|
|
766
780
|
}
|
|
767
781
|
this.updateWorkflowProgress(workflowId, 60);
|
|
768
|
-
// Export strategies
|
|
769
|
-
|
|
782
|
+
// Export strategies from the namespace their writers use (#1071), every
|
|
783
|
+
// key, in key order.
|
|
784
|
+
const strategyKeys = await searchAllKeys(this.memory, 'learning:strategy:optimized:*', {
|
|
785
|
+
retrieve: LEARNING_NS,
|
|
786
|
+
});
|
|
770
787
|
for (const key of strategyKeys) {
|
|
771
|
-
const strategy = await this.memory.get(key);
|
|
788
|
+
const strategy = await this.memory.get(key, LEARNING_NS);
|
|
772
789
|
if (strategy && targetDomains.includes(strategy.domain)) {
|
|
773
790
|
strategies.push(strategy);
|
|
774
791
|
}
|
|
@@ -811,7 +828,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
811
828
|
const conflicts = [];
|
|
812
829
|
// Import patterns
|
|
813
830
|
for (const pattern of modelExport.patterns) {
|
|
814
|
-
const existing = await this.memory.get(`learning:pattern:${pattern.id}
|
|
831
|
+
const existing = await this.memory.get(`learning:pattern:${pattern.id}`, { namespace: 'learning-optimization' });
|
|
815
832
|
if (existing) {
|
|
816
833
|
if (existing.confidence < pattern.confidence) {
|
|
817
834
|
// Overwrite with better pattern
|
|
@@ -847,7 +864,8 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
847
864
|
}
|
|
848
865
|
// Import knowledge
|
|
849
866
|
for (const item of modelExport.knowledge) {
|
|
850
|
-
|
|
867
|
+
// #1071: compare against the record in the namespace written below.
|
|
868
|
+
const existing = await this.memory.get(`learning:knowledge:shared:${item.id}`, LEARNING_NS);
|
|
851
869
|
if (existing) {
|
|
852
870
|
if (item.version > existing.version) {
|
|
853
871
|
await this.memory.set(`learning:knowledge:shared:${item.id}`, item, {
|
|
@@ -882,7 +900,8 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
882
900
|
}
|
|
883
901
|
// Import strategies
|
|
884
902
|
for (const strategy of modelExport.strategies) {
|
|
885
|
-
|
|
903
|
+
// #1071: compare against the record in the namespace written below.
|
|
904
|
+
const existing = await this.memory.get(`learning:strategy:optimized:${strategy.id}`, LEARNING_NS);
|
|
886
905
|
if (existing) {
|
|
887
906
|
if (strategy.confidence > existing.confidence) {
|
|
888
907
|
await this.memory.set(`learning:strategy:optimized:${strategy.id}`, strategy, { namespace: 'learning-optimization', persist: true });
|
|
@@ -928,87 +947,13 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
928
947
|
// Event Handling
|
|
929
948
|
// ============================================================================
|
|
930
949
|
subscribeToEvents() {
|
|
931
|
-
//
|
|
932
|
-
|
|
933
|
-
//
|
|
934
|
-
|
|
935
|
-
// Subscribe to quality assessment events
|
|
936
|
-
this.eventBus.subscribe('quality-assessment.QualityGateEvaluated', this.handleQualityGate.bind(this));
|
|
950
|
+
// #1110: TestRunCompleted, CoverageGapDetected and QualityGateEvaluated are
|
|
951
|
+
// recorded by LearningOptimizationPlugin, which owns this coordinator and
|
|
952
|
+
// also records the test-run production metric. Subscribing here as well
|
|
953
|
+
// stored every such event twice.
|
|
937
954
|
// Subscribe to experience capture events (Phase 4 integration)
|
|
938
955
|
this.eventBus.subscribe('learning.ExperienceCaptured', this.handleExperienceCaptured.bind(this));
|
|
939
956
|
}
|
|
940
|
-
async handleTestRunCompleted(event) {
|
|
941
|
-
// Record experience from test run
|
|
942
|
-
const { runId, passed, failed, duration } = event.payload;
|
|
943
|
-
const successRate = (passed + failed) > 0 ? passed / (passed + failed) : 0;
|
|
944
|
-
await this.learningService.recordExperience({
|
|
945
|
-
agentId: {
|
|
946
|
-
value: 'test-execution',
|
|
947
|
-
domain: 'test-execution',
|
|
948
|
-
type: 'tester',
|
|
949
|
-
},
|
|
950
|
-
domain: 'test-execution',
|
|
951
|
-
action: 'test-run',
|
|
952
|
-
state: {
|
|
953
|
-
context: { runId },
|
|
954
|
-
metrics: { passed, failed, duration },
|
|
955
|
-
},
|
|
956
|
-
result: {
|
|
957
|
-
success: successRate > 0.8,
|
|
958
|
-
outcome: { success_rate: successRate, passed, failed },
|
|
959
|
-
duration,
|
|
960
|
-
},
|
|
961
|
-
reward: successRate,
|
|
962
|
-
});
|
|
963
|
-
}
|
|
964
|
-
async handleCoverageGap(event) {
|
|
965
|
-
// #1014: only a gap found in MEASURED coverage is acted on / learned from.
|
|
966
|
-
if (!isMeasuredGapPayload(event.payload))
|
|
967
|
-
return;
|
|
968
|
-
// Record as experience for learning
|
|
969
|
-
const { gapId, file, riskScore } = event.payload;
|
|
970
|
-
await this.learningService.recordExperience({
|
|
971
|
-
agentId: {
|
|
972
|
-
value: 'coverage-analysis',
|
|
973
|
-
domain: 'coverage-analysis',
|
|
974
|
-
type: 'analyzer',
|
|
975
|
-
},
|
|
976
|
-
domain: 'coverage-analysis',
|
|
977
|
-
action: 'gap-detection',
|
|
978
|
-
state: {
|
|
979
|
-
context: { gapId, file },
|
|
980
|
-
metrics: { riskScore },
|
|
981
|
-
},
|
|
982
|
-
result: {
|
|
983
|
-
success: true,
|
|
984
|
-
outcome: { risk_score: riskScore },
|
|
985
|
-
duration: 0,
|
|
986
|
-
},
|
|
987
|
-
reward: 1 - riskScore, // Lower risk = higher reward
|
|
988
|
-
});
|
|
989
|
-
}
|
|
990
|
-
async handleQualityGate(event) {
|
|
991
|
-
const { gateId, passed } = event.payload;
|
|
992
|
-
await this.learningService.recordExperience({
|
|
993
|
-
agentId: {
|
|
994
|
-
value: 'quality-assessment',
|
|
995
|
-
domain: 'quality-assessment',
|
|
996
|
-
type: 'validator',
|
|
997
|
-
},
|
|
998
|
-
domain: 'quality-assessment',
|
|
999
|
-
action: 'gate-evaluation',
|
|
1000
|
-
state: {
|
|
1001
|
-
context: { gateId },
|
|
1002
|
-
metrics: { passed: passed ? 1 : 0 },
|
|
1003
|
-
},
|
|
1004
|
-
result: {
|
|
1005
|
-
success: passed,
|
|
1006
|
-
outcome: { gate_passed: passed ? 1 : 0 },
|
|
1007
|
-
duration: 0,
|
|
1008
|
-
},
|
|
1009
|
-
reward: passed ? 1 : 0,
|
|
1010
|
-
});
|
|
1011
|
-
}
|
|
1012
957
|
/**
|
|
1013
958
|
* Handle experience captured from ExperienceCaptureService
|
|
1014
959
|
* This is the bridge between Phase 4 experience capture and the coordinator
|
|
@@ -1120,7 +1065,8 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
1120
1065
|
sourceProject: 'current',
|
|
1121
1066
|
targetProject: 'current',
|
|
1122
1067
|
patternsTransferred: report.knowledgeShared,
|
|
1123
|
-
|
|
1068
|
+
// Published only after a transfer succeeded, so the rate is measured.
|
|
1069
|
+
successRate: report.transferSuccessRate ?? 0,
|
|
1124
1070
|
};
|
|
1125
1071
|
const event = createEvent(LearningOptimizationEvents.TransferCompleted, 'learning-optimization', payload);
|
|
1126
1072
|
await this.eventBus.publish(event);
|
|
@@ -1232,9 +1178,8 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
|
|
|
1232
1178
|
retryCount: 3,
|
|
1233
1179
|
concurrency: 4,
|
|
1234
1180
|
},
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
},
|
|
1181
|
+
// #1099: the default strategy has never run, so no outcome is expected.
|
|
1182
|
+
expectedOutcome: {},
|
|
1238
1183
|
};
|
|
1239
1184
|
}
|
|
1240
1185
|
async storeStrategy(domain, strategy) {
|
|
@@ -10,5 +10,5 @@ export { LearningCoordinatorService, type LearningCoordinatorConfig as LearningS
|
|
|
10
10
|
export { TransferSpecialistService, type TransferSpecialistConfig, type TransferResult, } from './services/transfer-specialist.js';
|
|
11
11
|
export { MetricsOptimizerService, type MetricsOptimizerConfig, type MetricsSnapshot, } from './services/metrics-optimizer.js';
|
|
12
12
|
export { ProductionIntelService, type ProductionIntelConfig, type ProductionMetric, type ProductionIncident, type ProductionHealth, } from './services/production-intel.js';
|
|
13
|
-
export type { ILearningOptimizationCoordinator, LearningCycleReport, OptimizationReport, CrossDomainSharingReport, LearningDashboard, ModelExport, ImportReport, ImportConflict, Improvement, DomainOptimizationResult, TrendPoint, Milestone, LearnedPattern, PatternType, PatternContext, PatternTemplate, TemplateVariable, PatternStats, IPatternLearningService, Experience, ExperienceResult, StateSnapshot, ResourceUsage, MinedInsights, ExperienceCluster, ExperienceAnomaly, IExperienceMiningService, Knowledge, KnowledgeType, KnowledgeContent, KnowledgeQuery, IKnowledgeSynthesisService, Strategy, OptimizedStrategy, OptimizationObjective, Constraint, ValidationResult, ABTestConfig, ABTestResult, StrategyEvaluation, IStrategyOptimizerService, IPatternRepository, IExperienceRepository, IKnowledgeRepository, IStrategyRepository, PatternLearnedEvent, KnowledgeSharedEvent, StrategyOptimizedEvent, ExperienceRecordedEvent, LearningMilestoneReachedEvent, } from './interfaces.js';
|
|
13
|
+
export type { ILearningOptimizationCoordinator, LearningCycleReport, OptimizationReport, CrossDomainSharingReport, LearningDashboard, ModelExport, ImportReport, ImportConflict, Improvement, DomainOptimizationResult, TrendPoint, Milestone, LearnedPattern, PatternType, PatternContext, PatternTemplate, TemplateVariable, PatternStats, IPatternLearningService, Experience, ExperienceResult, StateSnapshot, ResourceUsage, MinedInsights, ExperienceCluster, ExperienceAnomaly, IExperienceMiningService, Knowledge, KnowledgeType, KnowledgeContent, KnowledgeQuery, IKnowledgeSynthesisService, Strategy, OptimizedStrategy, OptimizationEvaluation, OptimizationObjective, Constraint, ValidationResult, ABTestConfig, ABTestResult, StrategyEvaluation, IStrategyOptimizerService, IPatternRepository, IExperienceRepository, IKnowledgeRepository, IStrategyRepository, PatternLearnedEvent, KnowledgeSharedEvent, StrategyOptimizedEvent, ExperienceRecordedEvent, LearningMilestoneReachedEvent, } from './interfaces.js';
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -23,6 +23,11 @@ export interface LearnedPattern {
|
|
|
23
23
|
readonly template: PatternTemplate;
|
|
24
24
|
readonly createdAt: Date;
|
|
25
25
|
readonly lastUsedAt: Date;
|
|
26
|
+
/**
|
|
27
|
+
* #1109: 'assigned' when the pattern's rates were learned from assigned
|
|
28
|
+
* rewards. Untagged patterns are read by `patternRewardSourceOf`.
|
|
29
|
+
*/
|
|
30
|
+
readonly rewardSource?: 'measured' | 'assigned';
|
|
26
31
|
}
|
|
27
32
|
export type PatternType = 'test-pattern' | 'fix-pattern' | 'optimization-pattern' | 'detection-pattern' | 'workflow-pattern' | 'failure-pattern';
|
|
28
33
|
export interface PatternContext {
|
|
@@ -63,6 +68,13 @@ export interface Experience {
|
|
|
63
68
|
* when real matched-pattern data exists, never a placeholder.
|
|
64
69
|
*/
|
|
65
70
|
readonly appliedPatternIds?: readonly string[];
|
|
71
|
+
/**
|
|
72
|
+
* #1109: whether `result.success` and `reward` come from an observed
|
|
73
|
+
* outcome ('measured') or were assigned by the recorder before any outcome
|
|
74
|
+
* existed ('assigned'). Assigned experiences are kept but excluded from
|
|
75
|
+
* every reported rate. Untagged rows are read by `rewardSourceOf`.
|
|
76
|
+
*/
|
|
77
|
+
readonly rewardSource?: 'measured' | 'assigned';
|
|
66
78
|
}
|
|
67
79
|
export interface StateSnapshot {
|
|
68
80
|
readonly context: Record<string, unknown>;
|
|
@@ -110,9 +122,25 @@ export interface OptimizedStrategy {
|
|
|
110
122
|
readonly objective: OptimizationObjective;
|
|
111
123
|
readonly currentStrategy: Strategy;
|
|
112
124
|
readonly optimizedStrategy: Strategy;
|
|
125
|
+
/** Relative improvement; an estimate, see `evaluation.estimated` (#1099). */
|
|
113
126
|
readonly improvement: number;
|
|
127
|
+
/** Share of held-out experiences matching the fitted expectation. */
|
|
114
128
|
readonly confidence: number;
|
|
115
129
|
readonly validationResults: ValidationResult[];
|
|
130
|
+
readonly evaluation?: OptimizationEvaluation;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* How an optimization's figures were derived (#1099). The optimizer fits on
|
|
134
|
+
* the older experiences and validates on the most recent ones it never saw.
|
|
135
|
+
*/
|
|
136
|
+
export interface OptimizationEvaluation {
|
|
137
|
+
readonly method: 'held-out';
|
|
138
|
+
readonly trainingSamples: number;
|
|
139
|
+
readonly heldOutSamples: number;
|
|
140
|
+
/** Figures that were modelled, not observed: the optimized strategy never ran. */
|
|
141
|
+
readonly estimated: string[];
|
|
142
|
+
/** Figures that could not be computed from the experiences given. */
|
|
143
|
+
readonly unmeasured?: string[];
|
|
116
144
|
}
|
|
117
145
|
export interface OptimizationObjective {
|
|
118
146
|
readonly metric: string;
|
|
@@ -205,6 +233,10 @@ export interface PatternStats {
|
|
|
205
233
|
readonly avgConfidence: number;
|
|
206
234
|
readonly avgSuccessRate: number;
|
|
207
235
|
readonly topPatterns: LearnedPattern[];
|
|
236
|
+
/** #1109: patterns left out of every figure because they were learned from assigned rewards. */
|
|
237
|
+
readonly assignedPatternsExcluded?: number;
|
|
238
|
+
/** #1121: untagged patterns mined before #1120 (rate selected over successes); left out likewise. */
|
|
239
|
+
readonly legacyPatternsExcluded?: number;
|
|
208
240
|
}
|
|
209
241
|
/**
|
|
210
242
|
* Experience Mining Service
|
|
@@ -233,9 +265,16 @@ export interface IExperienceMiningService {
|
|
|
233
265
|
clusterExperiences(experiences: Experience[]): Promise<Result<ExperienceCluster[]>>;
|
|
234
266
|
}
|
|
235
267
|
export interface MinedInsights {
|
|
268
|
+
/** Every experience recorded in the range, measured or assigned. */
|
|
236
269
|
readonly experienceCount: number;
|
|
237
|
-
|
|
238
|
-
readonly
|
|
270
|
+
/** #1109: experiences with a measured outcome; the rates below use only these. */
|
|
271
|
+
readonly measuredExperienceCount?: number;
|
|
272
|
+
/** #1109: experiences left out of the rates because their reward was assigned. */
|
|
273
|
+
readonly assignedRewardsExcluded?: number;
|
|
274
|
+
/** Set when no measured experience exists; the rates are then null. */
|
|
275
|
+
readonly evidenceStatus?: 'insufficient-evidence';
|
|
276
|
+
readonly successRate: number | null;
|
|
277
|
+
readonly avgReward: number | null;
|
|
239
278
|
readonly patterns: LearnedPattern[];
|
|
240
279
|
readonly anomalies: ExperienceAnomaly[];
|
|
241
280
|
readonly recommendations: string[];
|
|
@@ -245,7 +284,8 @@ export interface ExperienceCluster {
|
|
|
245
284
|
readonly centroid: StateSnapshot;
|
|
246
285
|
readonly experiences: Experience[];
|
|
247
286
|
readonly commonActions: string[];
|
|
248
|
-
|
|
287
|
+
/** Over members with a measured outcome; null when every member's reward was assigned. */
|
|
288
|
+
readonly avgReward: number | null;
|
|
249
289
|
}
|
|
250
290
|
export interface ExperienceAnomaly {
|
|
251
291
|
readonly experienceId: string;
|
|
@@ -283,9 +323,15 @@ export interface ABTestConfig {
|
|
|
283
323
|
}
|
|
284
324
|
export interface ABTestResult {
|
|
285
325
|
readonly winner: 'A' | 'B' | 'inconclusive';
|
|
326
|
+
/** Set when either strategy has fewer recorded samples than `minSamples`. */
|
|
327
|
+
readonly evidenceStatus?: 'insufficient-evidence';
|
|
328
|
+
readonly unmeasured?: string[];
|
|
286
329
|
readonly strategyAMetrics: Record<string, number>;
|
|
287
330
|
readonly strategyBMetrics: Record<string, number>;
|
|
288
|
-
|
|
331
|
+
/** Absent when there was not enough recorded evidence to test. */
|
|
332
|
+
readonly pValue?: number;
|
|
333
|
+
/** Why pValue is absent although both arms had enough samples. */
|
|
334
|
+
readonly pValueUnavailableReason?: 'zero-variance';
|
|
289
335
|
readonly sampleSizeA: number;
|
|
290
336
|
readonly sampleSizeB: number;
|
|
291
337
|
}
|
|
@@ -295,6 +341,9 @@ export interface StrategyEvaluation {
|
|
|
295
341
|
readonly strengths: string[];
|
|
296
342
|
readonly weaknesses: string[];
|
|
297
343
|
readonly improvementAreas: string[];
|
|
344
|
+
/** #1109: no measured experience was available, so no metric is reported. */
|
|
345
|
+
readonly evidenceStatus?: 'insufficient-evidence';
|
|
346
|
+
readonly assignedRewardsExcluded?: number;
|
|
298
347
|
}
|
|
299
348
|
/**
|
|
300
349
|
* Knowledge Synthesis Service
|
|
@@ -419,26 +468,33 @@ export interface Improvement {
|
|
|
419
468
|
readonly before: number;
|
|
420
469
|
readonly after: number;
|
|
421
470
|
readonly percentChange: number;
|
|
471
|
+
/** True when `after` and `percentChange` were modelled, not observed (#1099). */
|
|
472
|
+
readonly estimated?: boolean;
|
|
422
473
|
}
|
|
423
474
|
export interface OptimizationReport {
|
|
424
475
|
readonly domainsOptimized: number;
|
|
425
476
|
readonly totalStrategies: number;
|
|
477
|
+
/** Mean of the optimizers' estimated improvements (#1099). */
|
|
426
478
|
readonly avgImprovement: number;
|
|
479
|
+
readonly improvementEstimated?: boolean;
|
|
427
480
|
readonly byDomain: Record<DomainName, DomainOptimizationResult>;
|
|
428
481
|
}
|
|
429
482
|
export interface DomainOptimizationResult {
|
|
430
483
|
readonly strategiesOptimized: number;
|
|
484
|
+
/** Estimated, see OptimizedStrategy.evaluation (#1099). */
|
|
431
485
|
readonly avgImprovement: number;
|
|
432
486
|
readonly bestStrategy: Strategy;
|
|
433
487
|
}
|
|
434
488
|
export interface CrossDomainSharingReport {
|
|
435
489
|
readonly knowledgeShared: number;
|
|
436
490
|
readonly domainsUpdated: DomainName[];
|
|
437
|
-
|
|
491
|
+
/** Null when no transfer was attempted (#1121). */
|
|
492
|
+
readonly transferSuccessRate: number | null;
|
|
438
493
|
readonly newPatternsCreated: number;
|
|
439
494
|
}
|
|
440
495
|
export interface LearningDashboard {
|
|
441
|
-
|
|
496
|
+
/** Null when pattern stats are unavailable or no measured pattern exists (#1121). */
|
|
497
|
+
readonly overallLearningRate: number | null;
|
|
442
498
|
readonly totalPatterns: number;
|
|
443
499
|
readonly totalKnowledge: number;
|
|
444
500
|
readonly experiencesLast24h: number;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Archiving one learned pattern (#1071, #1106)
|
|
3
|
+
*
|
|
4
|
+
* Archiving is a move inside the `learning-optimization` namespace:
|
|
5
|
+
*
|
|
6
|
+
* learning:pattern:<id> -> learning:pattern:archived:<id>
|
|
7
|
+
*
|
|
8
|
+
* Both callers use it: the consolidation protocol's trim path (#1071) and the
|
|
9
|
+
* merge path in `LearningCoordinatorService.consolidatePatterns` (#1106).
|
|
10
|
+
*
|
|
11
|
+
* Safety rules:
|
|
12
|
+
* - Only the active key of the given pattern is deleted.
|
|
13
|
+
* - The active record must still be that pattern (same id, and the same scores
|
|
14
|
+
* and last use) when the archive runs, or nothing is written or deleted.
|
|
15
|
+
* - The archive copy is read back before the active key is deleted, so a
|
|
16
|
+
* failed or partial write never loses the pattern.
|
|
17
|
+
*/
|
|
18
|
+
import type { MemoryBackend } from '../../kernel/interfaces.js';
|
|
19
|
+
import type { LearnedPattern } from './interfaces.js';
|
|
20
|
+
export type ArchiveOutcome = 'archived' | 'missing' | 'failed';
|
|
21
|
+
/**
|
|
22
|
+
* Write the archive copy of one pattern and read it back, without touching
|
|
23
|
+
* the active key. `copied` means the copy is verified and the active record
|
|
24
|
+
* is still the given pattern.
|
|
25
|
+
*/
|
|
26
|
+
export declare function copyPatternToArchive(memory: MemoryBackend, pattern: LearnedPattern, archivedAt?: Date): Promise<'copied' | Exclude<ArchiveOutcome, 'archived'>>;
|
|
27
|
+
/** Remove the active key of a pattern whose archive copy was verified. */
|
|
28
|
+
export declare function removeArchivedPattern(memory: MemoryBackend, pattern: LearnedPattern): Promise<void>;
|
|
29
|
+
/** Move one pattern to its archive key in the learning namespace. */
|
|
30
|
+
export declare function archiveSelectedPattern(memory: MemoryBackend, pattern: LearnedPattern, archivedAt?: Date): Promise<ArchiveOutcome>;
|
|
31
|
+
//# sourceMappingURL=pattern-archive.d.ts.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Archiving one learned pattern (#1071, #1106)
|
|
3
|
+
*
|
|
4
|
+
* Archiving is a move inside the `learning-optimization` namespace:
|
|
5
|
+
*
|
|
6
|
+
* learning:pattern:<id> -> learning:pattern:archived:<id>
|
|
7
|
+
*
|
|
8
|
+
* Both callers use it: the consolidation protocol's trim path (#1071) and the
|
|
9
|
+
* merge path in `LearningCoordinatorService.consolidatePatterns` (#1106).
|
|
10
|
+
*
|
|
11
|
+
* Safety rules:
|
|
12
|
+
* - Only the active key of the given pattern is deleted.
|
|
13
|
+
* - The active record must still be that pattern (same id, and the same scores
|
|
14
|
+
* and last use) when the archive runs, or nothing is written or deleted.
|
|
15
|
+
* - The archive copy is read back before the active key is deleted, so a
|
|
16
|
+
* failed or partial write never loses the pattern.
|
|
17
|
+
*/
|
|
18
|
+
import { LEARNING_NS, LEARNING_PATTERN_KEY_PREFIX, isActivePatternKey } from './active-patterns.js';
|
|
19
|
+
/**
|
|
20
|
+
* Write the archive copy of one pattern and read it back, without touching
|
|
21
|
+
* the active key. `copied` means the copy is verified and the active record
|
|
22
|
+
* is still the given pattern.
|
|
23
|
+
*/
|
|
24
|
+
export async function copyPatternToArchive(memory, pattern, archivedAt = new Date()) {
|
|
25
|
+
const activeKey = `${LEARNING_PATTERN_KEY_PREFIX}${pattern.id}`;
|
|
26
|
+
if (!isActivePatternKey(activeKey))
|
|
27
|
+
return 'missing';
|
|
28
|
+
const current = await memory.get(activeKey, LEARNING_NS);
|
|
29
|
+
if (!current || current.id !== pattern.id || changedSinceSelection(current, pattern))
|
|
30
|
+
return 'missing';
|
|
31
|
+
const archiveKey = `${LEARNING_PATTERN_KEY_PREFIX}archived:${pattern.id}`;
|
|
32
|
+
await memory.set(archiveKey, { ...pattern, archivedAt }, { ...LEARNING_NS, persist: true });
|
|
33
|
+
const copy = await memory.get(archiveKey, LEARNING_NS);
|
|
34
|
+
return copy && copy.id === pattern.id ? 'copied' : 'failed';
|
|
35
|
+
}
|
|
36
|
+
/** Remove the active key of a pattern whose archive copy was verified. */
|
|
37
|
+
export async function removeArchivedPattern(memory, pattern) {
|
|
38
|
+
await memory.delete(`${LEARNING_PATTERN_KEY_PREFIX}${pattern.id}`, LEARNING_NS);
|
|
39
|
+
}
|
|
40
|
+
/** Move one pattern to its archive key in the learning namespace. */
|
|
41
|
+
export async function archiveSelectedPattern(memory, pattern, archivedAt = new Date()) {
|
|
42
|
+
const copied = await copyPatternToArchive(memory, pattern, archivedAt);
|
|
43
|
+
if (copied !== 'copied')
|
|
44
|
+
return copied;
|
|
45
|
+
await removeArchivedPattern(memory, pattern);
|
|
46
|
+
return 'archived';
|
|
47
|
+
}
|
|
48
|
+
/** True when the stored record's scores or last use differ from the selected snapshot. */
|
|
49
|
+
function changedSinceSelection(current, selected) {
|
|
50
|
+
const time = (value) => new Date(value).getTime();
|
|
51
|
+
return (!Object.is(current.usageCount, selected.usageCount) ||
|
|
52
|
+
!Object.is(current.confidence, selected.confidence) ||
|
|
53
|
+
!Object.is(current.successRate, selected.successRate) ||
|
|
54
|
+
!Object.is(time(current.lastUsedAt), time(selected.lastUsedAt)));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=pattern-archive.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Building a consolidated pattern (#1106)
|
|
3
|
+
*
|
|
4
|
+
* Pure: no reads or writes. `LearningCoordinatorService.consolidatePatterns`
|
|
5
|
+
* stores what this returns, and the consolidation protocol's dry run uses it
|
|
6
|
+
* to predict the merged pattern, so a dry run selects the same trims as a
|
|
7
|
+
* real run.
|
|
8
|
+
*/
|
|
9
|
+
import type { LearnedPattern } from './interfaces.js';
|
|
10
|
+
/** Merge similar patterns: best template, combined contexts, weighted scores. */
|
|
11
|
+
export declare function buildConsolidatedPattern(patterns: readonly LearnedPattern[], id: string, now?: Date): LearnedPattern;
|
|
12
|
+
//# sourceMappingURL=pattern-consolidation.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Building a consolidated pattern (#1106)
|
|
3
|
+
*
|
|
4
|
+
* Pure: no reads or writes. `LearningCoordinatorService.consolidatePatterns`
|
|
5
|
+
* stores what this returns, and the consolidation protocol's dry run uses it
|
|
6
|
+
* to predict the merged pattern, so a dry run selects the same trims as a
|
|
7
|
+
* real run.
|
|
8
|
+
*/
|
|
9
|
+
import { isMeasuredPattern } from './reward-source.js';
|
|
10
|
+
/** Usage-weighted mean of one score (equal weights when nothing was used). */
|
|
11
|
+
function usageWeighted(patterns, score) {
|
|
12
|
+
const totalUsage = patterns.reduce((sum, p) => sum + p.usageCount, 0);
|
|
13
|
+
return patterns.reduce((sum, p) => sum + score(p) * (totalUsage > 0 ? p.usageCount / totalUsage : 1 / patterns.length), 0);
|
|
14
|
+
}
|
|
15
|
+
/** Merge similar patterns: best template, combined contexts, weighted scores. */
|
|
16
|
+
export function buildConsolidatedPattern(patterns, id, now = new Date()) {
|
|
17
|
+
const bestPattern = patterns.reduce((best, current) => current.successRate > best.successRate ? current : best);
|
|
18
|
+
const mergedContext = {
|
|
19
|
+
language: bestPattern.context.language,
|
|
20
|
+
framework: bestPattern.context.framework,
|
|
21
|
+
testType: bestPattern.context.testType,
|
|
22
|
+
codeContext: bestPattern.context.codeContext,
|
|
23
|
+
tags: [...new Set(patterns.flatMap((p) => p.context.tags))],
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
id,
|
|
27
|
+
type: bestPattern.type,
|
|
28
|
+
domain: bestPattern.domain,
|
|
29
|
+
name: `consolidated-${bestPattern.name}`,
|
|
30
|
+
description: `Consolidated from ${patterns.length} patterns`,
|
|
31
|
+
confidence: usageWeighted(patterns, (p) => p.confidence),
|
|
32
|
+
usageCount: patterns.reduce((sum, p) => sum + p.usageCount, 0),
|
|
33
|
+
successRate: usageWeighted(patterns, (p) => p.successRate),
|
|
34
|
+
context: mergedContext,
|
|
35
|
+
template: bestPattern.template,
|
|
36
|
+
createdAt: now,
|
|
37
|
+
lastUsedAt: now,
|
|
38
|
+
rewardSource: patterns.every(isMeasuredPattern) ? 'measured' : 'assigned',
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=pattern-consolidation.js.map
|
|
@@ -397,6 +397,8 @@ export class LearningOptimizationPlugin extends BaseDomainPlugin {
|
|
|
397
397
|
duration: 0,
|
|
398
398
|
},
|
|
399
399
|
reward: 0.8,
|
|
400
|
+
// #1109: generation is recorded before any run, so no outcome exists yet.
|
|
401
|
+
rewardSource: 'assigned',
|
|
400
402
|
// ADR-110: real matched-pattern IDs from test-generation/coordinator.ts's
|
|
401
403
|
// GeneratedTests.patternsUsed. This event always represents a successful
|
|
402
404
|
// generation, so nulls won't fire from here in practice — threaded for
|
|
@@ -435,6 +437,7 @@ export class LearningOptimizationPlugin extends BaseDomainPlugin {
|
|
|
435
437
|
duration: payload.duration,
|
|
436
438
|
},
|
|
437
439
|
reward: successRate,
|
|
440
|
+
rewardSource: 'measured',
|
|
438
441
|
});
|
|
439
442
|
// Record production metric
|
|
440
443
|
await this.productionIntel.recordMetric('test_success_rate', successRate, 'ratio', 'test-execution', ['automated']);
|
|
@@ -462,6 +465,8 @@ export class LearningOptimizationPlugin extends BaseDomainPlugin {
|
|
|
462
465
|
duration: 0,
|
|
463
466
|
},
|
|
464
467
|
reward: 1 - payload.riskScore,
|
|
468
|
+
// #1109: finding a gap is not an observed success of the detection.
|
|
469
|
+
rewardSource: 'assigned',
|
|
465
470
|
});
|
|
466
471
|
}
|
|
467
472
|
async handleQualityGate(event) {
|
|
@@ -484,6 +489,7 @@ export class LearningOptimizationPlugin extends BaseDomainPlugin {
|
|
|
484
489
|
duration: 0,
|
|
485
490
|
},
|
|
486
491
|
reward: payload.passed ? 1 : 0,
|
|
492
|
+
rewardSource: 'measured',
|
|
487
493
|
});
|
|
488
494
|
}
|
|
489
495
|
async handleDefectPredicted(event) {
|
|
@@ -505,7 +511,9 @@ export class LearningOptimizationPlugin extends BaseDomainPlugin {
|
|
|
505
511
|
outcome: { probability: payload.probability },
|
|
506
512
|
duration: 0,
|
|
507
513
|
},
|
|
508
|
-
reward: 0.7,
|
|
514
|
+
reward: 0.7,
|
|
515
|
+
// #1109: the prediction has not been confirmed or refuted yet.
|
|
516
|
+
rewardSource: 'assigned',
|
|
509
517
|
});
|
|
510
518
|
}
|
|
511
519
|
async handleImpactAnalysis(event) {
|
|
@@ -534,6 +542,8 @@ export class LearningOptimizationPlugin extends BaseDomainPlugin {
|
|
|
534
542
|
duration: 0,
|
|
535
543
|
},
|
|
536
544
|
reward: 0.8,
|
|
545
|
+
// #1109: the analysis has no observed outcome to score.
|
|
546
|
+
rewardSource: 'assigned',
|
|
537
547
|
});
|
|
538
548
|
}
|
|
539
549
|
// ============================================================================
|