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
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Experience reward provenance (#1109)
|
|
3
|
+
*
|
|
4
|
+
* Some event handlers record an experience before any outcome has been
|
|
5
|
+
* observed: a generated test, a defect prediction, an impact analysis or a
|
|
6
|
+
* detected coverage gap is stored with a fixed `success: true` and a reward
|
|
7
|
+
* the handler chose. Those experiences are kept, but they are tagged
|
|
8
|
+
* `rewardSource: 'assigned'` and excluded from every reported success rate,
|
|
9
|
+
* confidence, ranking, milestone, average reward and anomaly baseline.
|
|
10
|
+
*
|
|
11
|
+
* Reading rule for rows written before the tag existed:
|
|
12
|
+
* - `rewardSource` present: it is authoritative.
|
|
13
|
+
* - absent, and the row was written by one of the event handlers that always
|
|
14
|
+
* assigned its reward (matched on agent + action below): `assigned`.
|
|
15
|
+
* - absent otherwise: `measured`. Every other writer derived success and
|
|
16
|
+
* reward from an observed outcome (test-run pass rate, quality-gate verdict,
|
|
17
|
+
* captured task quality).
|
|
18
|
+
*
|
|
19
|
+
* Patterns learned before the tag existed are read the same way: a pattern
|
|
20
|
+
* whose template lists only actions from those handlers, in the handler's own
|
|
21
|
+
* domain, was mined from assigned rewards (its 100% rate came from them).
|
|
22
|
+
* Every other untagged pattern predates #1120 and is not measured either
|
|
23
|
+
* (see patternEvidenceOf).
|
|
24
|
+
*/
|
|
25
|
+
import type { Experience, LearnedPattern } from './interfaces.js';
|
|
26
|
+
export type RewardSource = 'measured' | 'assigned';
|
|
27
|
+
type ProvenanceFields = Pick<Experience, 'agentId' | 'action' | 'rewardSource'>;
|
|
28
|
+
export declare function rewardSourceOf(experience: ProvenanceFields): RewardSource;
|
|
29
|
+
export declare function isMeasuredExperience(experience: ProvenanceFields): boolean;
|
|
30
|
+
/** Split experiences into those with a measured outcome and a count of the rest. */
|
|
31
|
+
export declare function partitionByRewardSource<T extends ProvenanceFields>(experiences: readonly T[]): {
|
|
32
|
+
measured: T[];
|
|
33
|
+
assignedExcluded: number;
|
|
34
|
+
};
|
|
35
|
+
type PatternProvenanceFields = Pick<LearnedPattern, 'domain' | 'template' | 'rewardSource'>;
|
|
36
|
+
export declare function patternRewardSourceOf(pattern: PatternProvenanceFields): RewardSource;
|
|
37
|
+
/**
|
|
38
|
+
* Where a stored pattern's success rate came from (#1121).
|
|
39
|
+
* - `measured` / `assigned`: tagged when the pattern was learned (#1109 on).
|
|
40
|
+
* - `pre-1120`: untagged and not mined from assigned rewards. Before #1120,
|
|
41
|
+
* mining dropped failed runs from each action group, so the rate of every
|
|
42
|
+
* untagged pattern started at 100% by selection, not by observation. Such
|
|
43
|
+
* patterns are kept, never rewritten, and never reported as measured; the
|
|
44
|
+
* next learn run mines a tagged replacement from the recorded outcomes.
|
|
45
|
+
*/
|
|
46
|
+
export type PatternEvidence = RewardSource | 'pre-1120';
|
|
47
|
+
export declare function patternEvidenceOf(pattern: PatternProvenanceFields): PatternEvidence;
|
|
48
|
+
export declare function isMeasuredPattern(pattern: PatternProvenanceFields): boolean;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=reward-source.d.ts.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Experience reward provenance (#1109)
|
|
3
|
+
*
|
|
4
|
+
* Some event handlers record an experience before any outcome has been
|
|
5
|
+
* observed: a generated test, a defect prediction, an impact analysis or a
|
|
6
|
+
* detected coverage gap is stored with a fixed `success: true` and a reward
|
|
7
|
+
* the handler chose. Those experiences are kept, but they are tagged
|
|
8
|
+
* `rewardSource: 'assigned'` and excluded from every reported success rate,
|
|
9
|
+
* confidence, ranking, milestone, average reward and anomaly baseline.
|
|
10
|
+
*
|
|
11
|
+
* Reading rule for rows written before the tag existed:
|
|
12
|
+
* - `rewardSource` present: it is authoritative.
|
|
13
|
+
* - absent, and the row was written by one of the event handlers that always
|
|
14
|
+
* assigned its reward (matched on agent + action below): `assigned`.
|
|
15
|
+
* - absent otherwise: `measured`. Every other writer derived success and
|
|
16
|
+
* reward from an observed outcome (test-run pass rate, quality-gate verdict,
|
|
17
|
+
* captured task quality).
|
|
18
|
+
*
|
|
19
|
+
* Patterns learned before the tag existed are read the same way: a pattern
|
|
20
|
+
* whose template lists only actions from those handlers, in the handler's own
|
|
21
|
+
* domain, was mined from assigned rewards (its 100% rate came from them).
|
|
22
|
+
* Every other untagged pattern predates #1120 and is not measured either
|
|
23
|
+
* (see patternEvidenceOf).
|
|
24
|
+
*/
|
|
25
|
+
/** `agentId.value:action` pairs whose untagged rows carry an assigned reward. */
|
|
26
|
+
const LEGACY_ASSIGNED = new Set([
|
|
27
|
+
'test-generation:test-generated',
|
|
28
|
+
'coverage-analysis:gap-detection',
|
|
29
|
+
'defect-intelligence:defect-prediction',
|
|
30
|
+
'code-intelligence:impact-analysis',
|
|
31
|
+
]);
|
|
32
|
+
export function rewardSourceOf(experience) {
|
|
33
|
+
if (experience.rewardSource)
|
|
34
|
+
return experience.rewardSource;
|
|
35
|
+
return LEGACY_ASSIGNED.has(`${experience.agentId?.value}:${experience.action}`)
|
|
36
|
+
? 'assigned'
|
|
37
|
+
: 'measured';
|
|
38
|
+
}
|
|
39
|
+
export function isMeasuredExperience(experience) {
|
|
40
|
+
return rewardSourceOf(experience) === 'measured';
|
|
41
|
+
}
|
|
42
|
+
/** Split experiences into those with a measured outcome and a count of the rest. */
|
|
43
|
+
export function partitionByRewardSource(experiences) {
|
|
44
|
+
const measured = experiences.filter(isMeasuredExperience);
|
|
45
|
+
return { measured, assignedExcluded: experiences.length - measured.length };
|
|
46
|
+
}
|
|
47
|
+
const COMMON_ACTIONS_LINE = /^\/\/ Common actions: (.*)$/m;
|
|
48
|
+
export function patternRewardSourceOf(pattern) {
|
|
49
|
+
if (pattern.rewardSource)
|
|
50
|
+
return pattern.rewardSource;
|
|
51
|
+
const line = COMMON_ACTIONS_LINE.exec(pattern.template?.content ?? '');
|
|
52
|
+
const actions = line ? line[1].split(',').map((a) => a.trim()).filter(Boolean) : [];
|
|
53
|
+
const allAssigned = actions.length > 0
|
|
54
|
+
&& actions.every((action) => LEGACY_ASSIGNED.has(`${pattern.domain}:${action}`));
|
|
55
|
+
return allAssigned ? 'assigned' : 'measured';
|
|
56
|
+
}
|
|
57
|
+
export function patternEvidenceOf(pattern) {
|
|
58
|
+
if (pattern.rewardSource)
|
|
59
|
+
return pattern.rewardSource;
|
|
60
|
+
return patternRewardSourceOf(pattern) === 'assigned' ? 'assigned' : 'pre-1120';
|
|
61
|
+
}
|
|
62
|
+
export function isMeasuredPattern(pattern) {
|
|
63
|
+
return patternEvidenceOf(pattern) === 'measured';
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=reward-source.js.map
|
|
@@ -120,7 +120,7 @@ export declare class LearningCoordinatorService implements IPatternLearningServi
|
|
|
120
120
|
/**
|
|
121
121
|
* Learn a pattern from a set of experiences
|
|
122
122
|
*/
|
|
123
|
-
learnPattern(
|
|
123
|
+
learnPattern(input: Experience[]): Promise<Result<LearnedPattern>>;
|
|
124
124
|
/**
|
|
125
125
|
* Find patterns matching the given context
|
|
126
126
|
*/
|
|
@@ -153,9 +153,14 @@ export declare class LearningCoordinatorService implements IPatternLearningServi
|
|
|
153
153
|
*/
|
|
154
154
|
private getNullStore;
|
|
155
155
|
private recordPatternNulls;
|
|
156
|
+
/** Read recorded input without the pattern-mining side effects. */
|
|
157
|
+
getExperiences(domain: DomainName, timeRange: TimeRange): Promise<Result<Experience[]>>;
|
|
156
158
|
/**
|
|
157
|
-
*
|
|
159
|
+
* Read recorded experiences by ID (#1121). IDs with no stored experience
|
|
160
|
+
* are skipped, so the result length is the number actually read.
|
|
158
161
|
*/
|
|
162
|
+
getExperiencesByIds(ids: readonly string[]): Promise<Result<Experience[]>>;
|
|
163
|
+
/** Mine experiences for insights. */
|
|
159
164
|
mineExperiences(domain: DomainName, timeRange: TimeRange): Promise<Result<MinedInsights>>;
|
|
160
165
|
/**
|
|
161
166
|
* Calculate reward for an experience result
|
|
@@ -174,7 +179,6 @@ export declare class LearningCoordinatorService implements IPatternLearningServi
|
|
|
174
179
|
*/
|
|
175
180
|
clusterExperiences(experiences: Experience[]): Promise<Result<ExperienceCluster[]>>;
|
|
176
181
|
private storePattern;
|
|
177
|
-
private archivePattern;
|
|
178
182
|
private updatePatternUsage;
|
|
179
183
|
private recordPatternCreation;
|
|
180
184
|
private indexExperience;
|
|
@@ -187,8 +191,6 @@ export declare class LearningCoordinatorService implements IPatternLearningServi
|
|
|
187
191
|
private inferPatternType;
|
|
188
192
|
private generatePatternTemplate;
|
|
189
193
|
private extractPatternContext;
|
|
190
|
-
private calculateConsolidatedConfidence;
|
|
191
|
-
private calculateWeightedSuccessRate;
|
|
192
194
|
private detectAnomalies;
|
|
193
195
|
private calculateStdDev;
|
|
194
196
|
private generateRecommendations;
|
|
@@ -8,6 +8,9 @@ import { ok, err } from '../../../shared/types/index.js';
|
|
|
8
8
|
import { rehydrateDates } from '../../../shared/utils/kv-date-rehydrate.js';
|
|
9
9
|
import { toError } from '../../../shared/error-utils.js';
|
|
10
10
|
import { readActivePatterns } from '../active-patterns.js';
|
|
11
|
+
import { isMeasuredPattern, partitionByRewardSource, patternEvidenceOf } from '../reward-source.js';
|
|
12
|
+
import { copyPatternToArchive, removeArchivedPattern } from '../pattern-archive.js';
|
|
13
|
+
import { buildConsolidatedPattern } from '../pattern-consolidation.js';
|
|
11
14
|
import { createQEFlashAttention, } from '../../../integrations/ruvector/wrappers.js';
|
|
12
15
|
import { getClaudeModelForTier } from '../../../shared/llm/model-registry.js';
|
|
13
16
|
import { createSafeRecord } from '../../../shared/utils/safe-record.js';
|
|
@@ -39,10 +42,7 @@ const LEARNING_NS = { namespace: 'learning-optimization' };
|
|
|
39
42
|
* provenance and archived patterns written by this service.
|
|
40
43
|
*/
|
|
41
44
|
function readActiveLearnedPatterns(memory) {
|
|
42
|
-
return readActivePatterns(memory, {
|
|
43
|
-
retrieve: LEARNING_NS,
|
|
44
|
-
onTruncated: (scanned) => logger.warn('Active pattern key scan hit its cap; results may be incomplete', { scanned }),
|
|
45
|
-
});
|
|
45
|
+
return readActivePatterns(memory, { retrieve: LEARNING_NS });
|
|
46
46
|
}
|
|
47
47
|
export class LearningCoordinatorService {
|
|
48
48
|
config;
|
|
@@ -216,10 +216,15 @@ Provide:
|
|
|
216
216
|
/**
|
|
217
217
|
* Learn a pattern from a set of experiences
|
|
218
218
|
*/
|
|
219
|
-
async learnPattern(
|
|
219
|
+
async learnPattern(input) {
|
|
220
220
|
try {
|
|
221
|
+
// #1109: an assigned reward is not evidence that the action succeeded.
|
|
222
|
+
const { measured: experiences, assignedExcluded } = partitionByRewardSource(input);
|
|
221
223
|
if (experiences.length < this.config.minExperiencesForPattern) {
|
|
222
|
-
|
|
224
|
+
const excluded = assignedExcluded > 0
|
|
225
|
+
? ` (${assignedExcluded} with an assigned reward excluded)`
|
|
226
|
+
: '';
|
|
227
|
+
return err(new Error(`Need at least ${this.config.minExperiencesForPattern} measured experiences to learn a pattern${excluded}`));
|
|
223
228
|
}
|
|
224
229
|
// Analyze experiences to extract common patterns
|
|
225
230
|
const commonActions = this.extractCommonActions(experiences);
|
|
@@ -246,6 +251,7 @@ Provide:
|
|
|
246
251
|
template,
|
|
247
252
|
createdAt: new Date(),
|
|
248
253
|
lastUsedAt: new Date(),
|
|
254
|
+
rewardSource: 'measured',
|
|
249
255
|
};
|
|
250
256
|
// Store pattern in memory
|
|
251
257
|
await this.storePattern(pattern);
|
|
@@ -262,7 +268,8 @@ Provide:
|
|
|
262
268
|
*/
|
|
263
269
|
async findMatchingPatterns(context, limit = 10) {
|
|
264
270
|
try {
|
|
265
|
-
|
|
271
|
+
// #1109: a pattern learned from assigned rewards has no observed rate to rank by.
|
|
272
|
+
const patterns = (await readActiveLearnedPatterns(this.memory)).filter((pattern) => isMeasuredPattern(pattern) && this.matchesContext(pattern, context));
|
|
266
273
|
// Sort by confidence and usage
|
|
267
274
|
patterns.sort((a, b) => {
|
|
268
275
|
const scoreA = a.confidence * 0.6 + (a.successRate * 0.4);
|
|
@@ -349,33 +356,28 @@ Provide:
|
|
|
349
356
|
return err(new Error('Not enough valid patterns found'));
|
|
350
357
|
}
|
|
351
358
|
// Merge patterns - take best template, combine contexts
|
|
352
|
-
const
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
usageCount: patterns.reduce((sum, p) => sum + p.usageCount, 0),
|
|
368
|
-
successRate: this.calculateWeightedSuccessRate(patterns),
|
|
369
|
-
context: mergedContext,
|
|
370
|
-
template: bestPattern.template,
|
|
371
|
-
createdAt: new Date(),
|
|
372
|
-
lastUsedAt: new Date(),
|
|
373
|
-
};
|
|
374
|
-
// Store consolidated pattern
|
|
359
|
+
const consolidatedPattern = buildConsolidatedPattern(patterns, uuidv4());
|
|
360
|
+
// #1106: all or nothing. Every source pattern's archive copy is written
|
|
361
|
+
// and read back first; then the consolidated pattern is stored and read
|
|
362
|
+
// back; only then are the source patterns removed from the active set.
|
|
363
|
+
// If any step fails, no source pattern is deleted.
|
|
364
|
+
const archivedAt = new Date();
|
|
365
|
+
let notCopied = 0;
|
|
366
|
+
for (const pattern of patterns) {
|
|
367
|
+
if (await copyPatternToArchive(this.memory, pattern, archivedAt) !== 'copied')
|
|
368
|
+
notCopied++;
|
|
369
|
+
}
|
|
370
|
+
if (notCopied > 0) {
|
|
371
|
+
return err(new Error(`${notCopied} of ${patterns.length} source patterns could not be archived (archive copy not verified); ` +
|
|
372
|
+
'nothing was merged and every source pattern was left active'));
|
|
373
|
+
}
|
|
375
374
|
await this.storePattern(consolidatedPattern);
|
|
376
|
-
|
|
375
|
+
const stored = await this.memory.get(`learning:pattern:${consolidatedPattern.id}`, LEARNING_NS);
|
|
376
|
+
if (!stored || stored.id !== consolidatedPattern.id) {
|
|
377
|
+
return err(new Error('Consolidated pattern could not be read back; nothing was merged and every source pattern was left active'));
|
|
378
|
+
}
|
|
377
379
|
for (const pattern of patterns) {
|
|
378
|
-
await this.
|
|
380
|
+
await removeArchivedPattern(this.memory, pattern);
|
|
379
381
|
}
|
|
380
382
|
return ok(consolidatedPattern);
|
|
381
383
|
}
|
|
@@ -388,7 +390,11 @@ Provide:
|
|
|
388
390
|
*/
|
|
389
391
|
async getPatternStats(domain) {
|
|
390
392
|
try {
|
|
391
|
-
const
|
|
393
|
+
const inDomain = (await readActiveLearnedPatterns(this.memory)).filter((pattern) => !domain || pattern.domain === domain);
|
|
394
|
+
// #1109/#1121: every figure below describes patterns with measured rates only.
|
|
395
|
+
const patterns = inDomain.filter(isMeasuredPattern);
|
|
396
|
+
const legacyPatternsExcluded = inDomain.filter((p) => patternEvidenceOf(p) === 'pre-1120').length;
|
|
397
|
+
const assignedPatternsExcluded = inDomain.length - patterns.length - legacyPatternsExcluded;
|
|
392
398
|
const byType = {
|
|
393
399
|
'test-pattern': 0,
|
|
394
400
|
'fix-pattern': 0,
|
|
@@ -431,6 +437,8 @@ Provide:
|
|
|
431
437
|
avgConfidence: patterns.length > 0 ? totalConfidence / patterns.length : 0,
|
|
432
438
|
avgSuccessRate: patterns.length > 0 ? totalSuccessRate / patterns.length : 0,
|
|
433
439
|
topPatterns,
|
|
440
|
+
...(assignedPatternsExcluded > 0 ? { assignedPatternsExcluded } : {}),
|
|
441
|
+
...(legacyPatternsExcluded > 0 ? { legacyPatternsExcluded } : {}),
|
|
434
442
|
});
|
|
435
443
|
}
|
|
436
444
|
catch (error) {
|
|
@@ -518,20 +526,57 @@ Provide:
|
|
|
518
526
|
}
|
|
519
527
|
}
|
|
520
528
|
}
|
|
529
|
+
/** Read recorded input without the pattern-mining side effects. */
|
|
530
|
+
async getExperiences(domain, timeRange) {
|
|
531
|
+
try {
|
|
532
|
+
return ok(await this.getExperiencesByDomainAndTime(domain, timeRange));
|
|
533
|
+
}
|
|
534
|
+
catch (error) {
|
|
535
|
+
return err(toError(error));
|
|
536
|
+
}
|
|
537
|
+
}
|
|
521
538
|
/**
|
|
522
|
-
*
|
|
539
|
+
* Read recorded experiences by ID (#1121). IDs with no stored experience
|
|
540
|
+
* are skipped, so the result length is the number actually read.
|
|
523
541
|
*/
|
|
542
|
+
async getExperiencesByIds(ids) {
|
|
543
|
+
try {
|
|
544
|
+
const experiences = [];
|
|
545
|
+
for (const id of new Set(ids)) {
|
|
546
|
+
const experience = await this.memory.get(`learning:experience:${id}`, LEARNING_NS);
|
|
547
|
+
if (experience)
|
|
548
|
+
experiences.push(experience);
|
|
549
|
+
}
|
|
550
|
+
return ok(experiences);
|
|
551
|
+
}
|
|
552
|
+
catch (error) {
|
|
553
|
+
return err(toError(error));
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
/** Mine experiences for insights. */
|
|
524
557
|
async mineExperiences(domain, timeRange) {
|
|
525
558
|
try {
|
|
526
|
-
const
|
|
559
|
+
const recorded = await this.getExperiencesByDomainAndTime(domain, timeRange);
|
|
560
|
+
// #1109: rates, rewards, patterns and anomalies use measured outcomes only.
|
|
561
|
+
const { measured: experiences, assignedExcluded } = partitionByRewardSource(recorded);
|
|
562
|
+
const counts = {
|
|
563
|
+
experienceCount: recorded.length,
|
|
564
|
+
measuredExperienceCount: experiences.length,
|
|
565
|
+
assignedRewardsExcluded: assignedExcluded,
|
|
566
|
+
};
|
|
527
567
|
if (experiences.length === 0) {
|
|
528
568
|
return ok({
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
569
|
+
...counts,
|
|
570
|
+
evidenceStatus: 'insufficient-evidence',
|
|
571
|
+
successRate: null,
|
|
572
|
+
avgReward: null,
|
|
532
573
|
patterns: [],
|
|
533
574
|
anomalies: [],
|
|
534
|
-
recommendations: [
|
|
575
|
+
recommendations: [
|
|
576
|
+
recorded.length === 0
|
|
577
|
+
? 'No experiences found in the given time range'
|
|
578
|
+
: `No measured outcomes in the given time range; ${assignedExcluded} experience(s) with an assigned reward were not scored`,
|
|
579
|
+
],
|
|
535
580
|
});
|
|
536
581
|
}
|
|
537
582
|
const successRate = this.calculateSuccessRate(experiences);
|
|
@@ -540,7 +585,7 @@ Provide:
|
|
|
540
585
|
const anomalies = this.detectAnomalies(experiences);
|
|
541
586
|
const recommendations = this.generateRecommendations(experiences, successRate, anomalies);
|
|
542
587
|
return ok({
|
|
543
|
-
|
|
588
|
+
...counts,
|
|
544
589
|
successRate,
|
|
545
590
|
avgReward,
|
|
546
591
|
patterns,
|
|
@@ -586,7 +631,10 @@ Provide:
|
|
|
586
631
|
try {
|
|
587
632
|
const keys = await this.memory.search(`learning:experience:index:agent:${agentId.value}:*`, limit, LEARNING_NS);
|
|
588
633
|
const experiences = [];
|
|
589
|
-
for (const
|
|
634
|
+
for (const found of keys) {
|
|
635
|
+
// In-memory search includes its namespace; SQLite returns a bare key.
|
|
636
|
+
const prefix = 'learning-optimization:';
|
|
637
|
+
const key = found.startsWith(prefix) ? found.slice(prefix.length) : found;
|
|
590
638
|
const experienceId = await this.memory.get(key, LEARNING_NS);
|
|
591
639
|
if (experienceId) {
|
|
592
640
|
// #493: rehydrate `timestamp` at the kv-read seam — the sort
|
|
@@ -637,7 +685,8 @@ Provide:
|
|
|
637
685
|
if (clusterExperiences.length >= 2) {
|
|
638
686
|
const centroid = this.calculateCentroid(clusterExperiences);
|
|
639
687
|
const commonActions = this.extractCommonActions(clusterExperiences);
|
|
640
|
-
const
|
|
688
|
+
const { measured } = partitionByRewardSource(clusterExperiences);
|
|
689
|
+
const avgReward = measured.length > 0 ? this.calculateAverageReward(measured) : null;
|
|
641
690
|
result.push({
|
|
642
691
|
id: `cluster-${clusterId++}`,
|
|
643
692
|
centroid,
|
|
@@ -662,17 +711,6 @@ Provide:
|
|
|
662
711
|
persist: true,
|
|
663
712
|
});
|
|
664
713
|
}
|
|
665
|
-
async archivePattern(patternId) {
|
|
666
|
-
const key = `learning:pattern:${patternId}`;
|
|
667
|
-
const pattern = await this.memory.get(key, LEARNING_NS);
|
|
668
|
-
if (pattern) {
|
|
669
|
-
await this.memory.set(`learning:pattern:archived:${patternId}`, pattern, {
|
|
670
|
-
namespace: 'learning-optimization',
|
|
671
|
-
persist: true,
|
|
672
|
-
});
|
|
673
|
-
await this.memory.delete(key, LEARNING_NS);
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
714
|
async updatePatternUsage(patternId) {
|
|
677
715
|
const key = `learning:pattern:${patternId}`;
|
|
678
716
|
const pattern = await this.memory.get(key, LEARNING_NS);
|
|
@@ -704,7 +742,10 @@ Provide:
|
|
|
704
742
|
async getExperiencesByDomainAndTime(domain, timeRange) {
|
|
705
743
|
const keys = await this.memory.search(`learning:experience:index:domain:${domain}:*`, 1000, LEARNING_NS);
|
|
706
744
|
const experiences = [];
|
|
707
|
-
for (const
|
|
745
|
+
for (const found of keys) {
|
|
746
|
+
// In-memory search includes its namespace; SQLite returns a bare key.
|
|
747
|
+
const prefix = 'learning-optimization:';
|
|
748
|
+
const key = found.startsWith(prefix) ? found.slice(prefix.length) : found;
|
|
708
749
|
const experienceId = await this.memory.get(key, LEARNING_NS);
|
|
709
750
|
if (experienceId) {
|
|
710
751
|
const experience = await this.memory.get(`learning:experience:${experienceId}`, LEARNING_NS);
|
|
@@ -728,10 +769,10 @@ Provide:
|
|
|
728
769
|
return experiences;
|
|
729
770
|
}
|
|
730
771
|
async extractPatternsFromExperiences(experiences) {
|
|
731
|
-
// Group
|
|
732
|
-
|
|
772
|
+
// Group by action type. Failures stay in their group so a pattern's
|
|
773
|
+
// success rate is the observed rate, not 100% by selection (#1109).
|
|
733
774
|
const actionGroups = new Map();
|
|
734
|
-
for (const exp of
|
|
775
|
+
for (const exp of experiences) {
|
|
735
776
|
const existing = actionGroups.get(exp.action) || [];
|
|
736
777
|
existing.push(exp);
|
|
737
778
|
actionGroups.set(exp.action, existing);
|
|
@@ -860,24 +901,6 @@ Provide:
|
|
|
860
901
|
tags: Array.from(tags),
|
|
861
902
|
};
|
|
862
903
|
}
|
|
863
|
-
calculateConsolidatedConfidence(patterns) {
|
|
864
|
-
const totalUsage = patterns.reduce((sum, p) => sum + p.usageCount, 0);
|
|
865
|
-
let weightedConfidence = 0;
|
|
866
|
-
for (const pattern of patterns) {
|
|
867
|
-
const weight = totalUsage > 0 ? pattern.usageCount / totalUsage : 1 / patterns.length;
|
|
868
|
-
weightedConfidence += pattern.confidence * weight;
|
|
869
|
-
}
|
|
870
|
-
return weightedConfidence;
|
|
871
|
-
}
|
|
872
|
-
calculateWeightedSuccessRate(patterns) {
|
|
873
|
-
const totalUsage = patterns.reduce((sum, p) => sum + p.usageCount, 0);
|
|
874
|
-
let weightedRate = 0;
|
|
875
|
-
for (const pattern of patterns) {
|
|
876
|
-
const weight = totalUsage > 0 ? pattern.usageCount / totalUsage : 1 / patterns.length;
|
|
877
|
-
weightedRate += pattern.successRate * weight;
|
|
878
|
-
}
|
|
879
|
-
return weightedRate;
|
|
880
|
-
}
|
|
881
904
|
detectAnomalies(experiences) {
|
|
882
905
|
const anomalies = [];
|
|
883
906
|
const avgReward = this.calculateAverageReward(experiences);
|
|
@@ -35,7 +35,7 @@ export declare class MetricsOptimizerService implements IStrategyOptimizerServic
|
|
|
35
35
|
/**
|
|
36
36
|
* Optimize a strategy for a given objective
|
|
37
37
|
*/
|
|
38
|
-
optimizeStrategy(currentStrategy: Strategy, objective: OptimizationObjective,
|
|
38
|
+
optimizeStrategy(currentStrategy: Strategy, objective: OptimizationObjective, input: Experience[]): Promise<Result<OptimizedStrategy>>;
|
|
39
39
|
/**
|
|
40
40
|
* Run A/B test between two strategies
|
|
41
41
|
*/
|
|
@@ -47,7 +47,7 @@ export declare class MetricsOptimizerService implements IStrategyOptimizerServic
|
|
|
47
47
|
/**
|
|
48
48
|
* Evaluate strategy performance
|
|
49
49
|
*/
|
|
50
|
-
evaluateStrategy(strategy: Strategy,
|
|
50
|
+
evaluateStrategy(strategy: Strategy, input: Experience[]): Promise<Result<StrategyEvaluation>>;
|
|
51
51
|
/**
|
|
52
52
|
* Track metrics for a strategy
|
|
53
53
|
*/
|
|
@@ -60,18 +60,28 @@ export declare class MetricsOptimizerService implements IStrategyOptimizerServic
|
|
|
60
60
|
* Calculate optimal parameters using grid search
|
|
61
61
|
*/
|
|
62
62
|
gridSearchOptimize(parameterRanges: Record<string, number[]>, objective: OptimizationObjective, experiences: Experience[]): Promise<Result<Record<string, unknown>>>;
|
|
63
|
-
|
|
63
|
+
/**
|
|
64
|
+
* Keys matching `pattern` under LEARNING_NS, ready for a namespaced get().
|
|
65
|
+
* In-memory search includes its namespace; SQLite returns a bare key.
|
|
66
|
+
*/
|
|
67
|
+
private searchLearningKeys;
|
|
64
68
|
private optimizeParameters;
|
|
65
69
|
private scoreParameters;
|
|
66
70
|
private calculateParamSimilarity;
|
|
67
71
|
private predictOutcome;
|
|
68
72
|
private validateOptimization;
|
|
73
|
+
/** Relative change; undefined when there is no baseline to compare with. */
|
|
69
74
|
private calculateImprovement;
|
|
70
|
-
private calculateOptimizationConfidence;
|
|
71
75
|
private inferDomainFromExperiences;
|
|
76
|
+
/**
|
|
77
|
+
* Values of `metric` recorded for this strategy through trackMetrics(),
|
|
78
|
+
* whose strategy id is the strategy name. Only recorded observations are
|
|
79
|
+
* returned; the caller decides whether there are enough (#1099).
|
|
80
|
+
*/
|
|
72
81
|
private collectStrategyMetrics;
|
|
73
82
|
private calculateMean;
|
|
74
83
|
private calculateStdDev;
|
|
84
|
+
/** Undefined when neither group varies: the test statistic is undefined. */
|
|
75
85
|
private calculatePValue;
|
|
76
86
|
private normalCDF;
|
|
77
87
|
private scoreContextMatch;
|