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
|
@@ -25,7 +25,8 @@ import { registerStoreCloser } from '../../kernel/process-lifecycle.js';
|
|
|
25
25
|
import { ConceptGraph } from './concept-graph.js';
|
|
26
26
|
import { SpreadingActivation, } from './spreading-activation.js';
|
|
27
27
|
import { InsightGenerator, } from './insight-generator.js';
|
|
28
|
-
import {
|
|
28
|
+
import { DEFAULT_VALIDATION_THRESHOLDS, } from './rvcow-branch-manager.js';
|
|
29
|
+
import { commitDream, markAbandonedCycles, ABANDONED_CYCLE_GRACE_MS, } from './dream-commit.js';
|
|
29
30
|
/**
|
|
30
31
|
* Default DreamEngine configuration
|
|
31
32
|
*/
|
|
@@ -44,10 +45,24 @@ export const DEFAULT_DREAM_CONFIG = {
|
|
|
44
45
|
minConfidence: 0.5,
|
|
45
46
|
maxInsightsPerCycle: 10,
|
|
46
47
|
},
|
|
47
|
-
// #1060:
|
|
48
|
+
// #1060: deprecated and ignored; see DreamConfig.enableBranching.
|
|
48
49
|
enableBranching: false,
|
|
49
50
|
branchValidationThresholds: { ...DEFAULT_VALIDATION_THRESHOLDS },
|
|
50
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* #1060: the longest dream the MCP tool runs (its durationMs cap). The
|
|
54
|
+
* abandoned-cycle sweep waits at least this long plus the grace period.
|
|
55
|
+
*/
|
|
56
|
+
const MAX_TOOL_DREAM_MS = 60_000;
|
|
57
|
+
/** #1060: a second dream on the same engine while one is running. */
|
|
58
|
+
export class DreamAlreadyRunningError extends Error {
|
|
59
|
+
cycleId;
|
|
60
|
+
constructor(cycleId) {
|
|
61
|
+
super(`A dream cycle is already running (cycle ${cycleId}); wait for it to finish or cancel it`);
|
|
62
|
+
this.cycleId = cycleId;
|
|
63
|
+
this.name = 'DreamAlreadyRunningError';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
51
66
|
// ============================================================================
|
|
52
67
|
// ConceptGraph Adapter
|
|
53
68
|
// ============================================================================
|
|
@@ -64,6 +79,8 @@ class ConceptGraphAdapter {
|
|
|
64
79
|
nodeCache = new Map();
|
|
65
80
|
edgeCache = new Map();
|
|
66
81
|
activationLevels = new Map();
|
|
82
|
+
/** #1060: each node's level when loaded, for the commit's conflict check. */
|
|
83
|
+
loadedLevels = new Map();
|
|
67
84
|
constructor(graph) {
|
|
68
85
|
this.graph = graph;
|
|
69
86
|
}
|
|
@@ -77,6 +94,7 @@ class ConceptGraphAdapter {
|
|
|
77
94
|
this.nodeCache.clear();
|
|
78
95
|
this.edgeCache.clear();
|
|
79
96
|
this.activationLevels.clear();
|
|
97
|
+
this.loadedLevels.clear();
|
|
80
98
|
// Load nodes (all or capped)
|
|
81
99
|
let nodes = await this.graph.getActiveNodes(0);
|
|
82
100
|
if (maxNodes && nodes.length > maxNodes) {
|
|
@@ -87,6 +105,7 @@ class ConceptGraphAdapter {
|
|
|
87
105
|
for (const node of nodes) {
|
|
88
106
|
this.nodeCache.set(node.id, node);
|
|
89
107
|
this.activationLevels.set(node.id, node.activationLevel);
|
|
108
|
+
this.loadedLevels.set(node.id, node.activationLevel);
|
|
90
109
|
}
|
|
91
110
|
// Load edges for each node
|
|
92
111
|
for (const node of nodes) {
|
|
@@ -96,13 +115,17 @@ class ConceptGraphAdapter {
|
|
|
96
115
|
}
|
|
97
116
|
}
|
|
98
117
|
/**
|
|
99
|
-
*
|
|
118
|
+
* Final activation levels with the levels loaded, written by commitDream()
|
|
119
|
+
* in the cycle's single transaction (#1060) instead of one awaited UPDATE
|
|
120
|
+
* per node. The loaded level lets the commit skip a node a foreground write
|
|
121
|
+
* changed during the dream.
|
|
100
122
|
*/
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
123
|
+
activationEntries() {
|
|
124
|
+
return Array.from(this.activationLevels.entries(), ([id, level]) => [
|
|
125
|
+
id,
|
|
126
|
+
level,
|
|
127
|
+
this.loadedLevels.get(id),
|
|
128
|
+
]);
|
|
106
129
|
}
|
|
107
130
|
// SpreadingConceptGraph interface implementation
|
|
108
131
|
getConcept(id) {
|
|
@@ -207,21 +230,26 @@ export class DreamEngine {
|
|
|
207
230
|
persistence = null;
|
|
208
231
|
graph = null;
|
|
209
232
|
db = null;
|
|
210
|
-
branchManager = null;
|
|
211
233
|
/** #1060: marks the in-flight dream cycle interrupted (set while dreaming). */
|
|
212
234
|
interruptActiveDream = null;
|
|
235
|
+
/** #1060: the in-flight dream, so close() can wait for it to stop. */
|
|
236
|
+
activeDream = null;
|
|
237
|
+
/** #1060: stops the in-flight dream's activation loop. */
|
|
238
|
+
activeAbort = null;
|
|
213
239
|
currentCycle = null;
|
|
214
240
|
initialized = false;
|
|
215
241
|
cancelled = false;
|
|
242
|
+
/** #1060: how many times cancelDream() was called (see cancelCount). */
|
|
243
|
+
cancelRequests = 0;
|
|
244
|
+
/** #1060: set by close() until the engine is initialized again. */
|
|
245
|
+
closing = false;
|
|
216
246
|
branchEventListeners = [];
|
|
217
247
|
/** Optional witness chain for audit trail of dream decisions (ADR-070) */
|
|
218
248
|
_witnessChain = null;
|
|
219
249
|
set witnessChain(wc) { this._witnessChain = wc; }
|
|
220
|
-
/**
|
|
250
|
+
/** @deprecated #1060: branching is ignored, so the RVF adapter is unused. */
|
|
221
251
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
222
|
-
|
|
223
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
224
|
-
set rvfAdapter(adapter) { this._rvfAdapter = adapter; }
|
|
252
|
+
set rvfAdapter(_adapter) { }
|
|
225
253
|
constructor(config) {
|
|
226
254
|
this.config = { ...DEFAULT_DREAM_CONFIG, ...config };
|
|
227
255
|
}
|
|
@@ -253,17 +281,18 @@ export class DreamEngine {
|
|
|
253
281
|
// Initialize concept graph (shares same unified persistence)
|
|
254
282
|
this.graph = new ConceptGraph();
|
|
255
283
|
await this.graph.initialize();
|
|
256
|
-
//
|
|
284
|
+
// #1060: branching is deprecated; dream results commit in one transaction.
|
|
257
285
|
if (this.config.enableBranching) {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
}
|
|
286
|
+
dreamLogger.warn('DreamConfig.enableBranching is deprecated and ignored (#1060): dream results are ' +
|
|
287
|
+
'committed in one short transaction instead of a SAVEPOINT held across the dream');
|
|
288
|
+
}
|
|
289
|
+
// #1060: a process that exited mid-dream left its cycle 'running'.
|
|
290
|
+
const abandoned = markAbandonedCycles(this.db, Math.max(this.config.maxDurationMs, MAX_TOOL_DREAM_MS) + ABANDONED_CYCLE_GRACE_MS);
|
|
291
|
+
if (abandoned > 0) {
|
|
292
|
+
dreamLogger.info('Marked abandoned dream cycles as interrupted', { abandoned });
|
|
265
293
|
}
|
|
266
294
|
this.initialized = true;
|
|
295
|
+
this.closing = false;
|
|
267
296
|
console.log(`[DreamEngine] Initialized: ${this.persistence.getDbPath()}`);
|
|
268
297
|
}
|
|
269
298
|
catch (error) {
|
|
@@ -330,16 +359,27 @@ export class DreamEngine {
|
|
|
330
359
|
* 4. Generates insights from activation patterns
|
|
331
360
|
* 5. Persists the cycle and insights
|
|
332
361
|
*
|
|
362
|
+
* The cycle row is written as 'running' when the dream starts. Another
|
|
363
|
+
* process's DreamEngine.initialize() marks a cycle still 'running' after
|
|
364
|
+
* max(its config.maxDurationMs, 60 s) + ABANDONED_CYCLE_GRACE_MS (10 min),
|
|
365
|
+
* i.e. 11 minutes by default, as interrupted ('abandoned: process exited').
|
|
366
|
+
* The MCP tool and the CLI cap dreams at 60 s. A library caller that runs
|
|
367
|
+
* dreams longer than about 10 minutes (graph loading included) should give
|
|
368
|
+
* every engine sharing the database a maxDurationMs at least that long, or
|
|
369
|
+
* a live cycle can be marked interrupted. Its commit still records the
|
|
370
|
+
* final status, and nothing is deleted.
|
|
371
|
+
*
|
|
333
372
|
* @param durationMs - Maximum duration in milliseconds (default: config.maxDurationMs)
|
|
334
373
|
* @returns Dream cycle result with insights and statistics
|
|
335
374
|
*/
|
|
336
|
-
async dream(durationMs) {
|
|
375
|
+
async dream(durationMs, options = {}) {
|
|
337
376
|
this.ensureInitialized();
|
|
338
|
-
this.
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
377
|
+
if (this.closing)
|
|
378
|
+
throw new Error('Dream engine is closing; no new dream is started');
|
|
379
|
+
// #1060: one dream at a time per engine; a second request is refused.
|
|
380
|
+
if (this.activeDream)
|
|
381
|
+
throw new DreamAlreadyRunningError(this.activeDream.cycleId);
|
|
382
|
+
const cycle = {
|
|
343
383
|
id: uuidv4(),
|
|
344
384
|
startTime: new Date(),
|
|
345
385
|
conceptsProcessed: 0,
|
|
@@ -347,92 +387,81 @@ export class DreamEngine {
|
|
|
347
387
|
insightsGenerated: 0,
|
|
348
388
|
status: 'running',
|
|
349
389
|
};
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
const branchName = `dream-${this.currentCycle.id}-${Date.now()}`;
|
|
355
|
-
branch = this.branchManager.createBranch(branchName);
|
|
356
|
-
this.emitBranchEvent('dream:branch_created', branch);
|
|
390
|
+
const run = this.runDream(cycle, durationMs ?? this.config.maxDurationMs, options);
|
|
391
|
+
this.activeDream = { cycleId: cycle.id, done: run.catch(() => undefined) };
|
|
392
|
+
try {
|
|
393
|
+
return await run;
|
|
357
394
|
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
395
|
+
finally {
|
|
396
|
+
if (this.activeDream?.cycleId === cycle.id)
|
|
397
|
+
this.activeDream = null;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* #1060: compute, then commit. Everything up to the commit reads the
|
|
402
|
+
* database or works in memory; the results are written by commitDream() in
|
|
403
|
+
* one synchronous transaction, so no lock is held across an await and no
|
|
404
|
+
* foreground write can join the dream's writes or be rolled back with them.
|
|
405
|
+
*/
|
|
406
|
+
async runDream(cycle, maxDuration, options) {
|
|
407
|
+
const db = this.db;
|
|
408
|
+
const graph = this.graph;
|
|
409
|
+
const startTime = Date.now();
|
|
410
|
+
const abort = new AbortController();
|
|
411
|
+
this.activeAbort = abort;
|
|
412
|
+
this.cancelled = false;
|
|
413
|
+
this.currentCycle = cycle;
|
|
414
|
+
const commitResults = options.commit !== false;
|
|
415
|
+
// If the engine closes or the process shuts down mid-dream, stop the dream
|
|
416
|
+
// and record the cycle as interrupted instead of leaving it 'running'.
|
|
417
|
+
// Registered before the first await, so a close() or shutdown right after
|
|
418
|
+
// dream() is called still reaches this dream.
|
|
419
|
+
const interrupt = this.createCycleInterrupter(cycle, startTime, abort);
|
|
361
420
|
this.interruptActiveDream = interrupt;
|
|
362
421
|
const unregisterShutdownGuard = registerStoreCloser(interrupt);
|
|
422
|
+
// The engine still owns this database and nobody asked the dream to stop.
|
|
423
|
+
const live = () => !this.cancelled && !abort.signal.aborted && this.db === db;
|
|
424
|
+
let committed = false;
|
|
363
425
|
try {
|
|
426
|
+
if (commitResults)
|
|
427
|
+
await this.saveCycle(cycle);
|
|
428
|
+
if (!live())
|
|
429
|
+
throw new Error('Dream cycle cancelled');
|
|
364
430
|
// 1. Check we have enough concepts
|
|
365
|
-
const
|
|
366
|
-
|
|
367
|
-
|
|
431
|
+
const minConcepts = options.minConceptsRequired ?? this.config.minConceptsRequired;
|
|
432
|
+
const allNodes = await graph.getActiveNodes(0);
|
|
433
|
+
if (allNodes.length < minConcepts) {
|
|
434
|
+
throw new Error(`Insufficient concepts: ${allNodes.length} < ${minConcepts}`);
|
|
368
435
|
}
|
|
369
|
-
// 2.
|
|
370
|
-
//
|
|
371
|
-
|
|
372
|
-
// so fewer nodes significantly reduces initialization time.
|
|
373
|
-
const adapter = new ConceptGraphAdapter(this.graph);
|
|
436
|
+
// 2. Load the graph into memory. Each node requires DB queries for
|
|
437
|
+
// edges, so the node count is capped to keep wall-clock time reasonable.
|
|
438
|
+
const adapter = new ConceptGraphAdapter(graph);
|
|
374
439
|
await adapter.loadIntoMemory(30);
|
|
375
|
-
// 3.
|
|
376
|
-
const activation = new SpreadingActivation(adapter,
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
this.currentCycle.durationMs = Date.now() - startTime;
|
|
383
|
-
await this.updateCycle(this.currentCycle);
|
|
440
|
+
// 3. Spreading activation (the "dreaming"), in memory only.
|
|
441
|
+
const activation = new SpreadingActivation(adapter, {
|
|
442
|
+
...this.config.activationConfig,
|
|
443
|
+
...options.activationConfig,
|
|
444
|
+
});
|
|
445
|
+
const activationResult = await activation.dream(maxDuration, abort.signal);
|
|
446
|
+
if (!live())
|
|
384
447
|
throw new Error('Dream cycle cancelled');
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
// 4. Persist activation levels
|
|
389
|
-
await adapter.persistActivations();
|
|
390
|
-
// 5. Generate insights from activation
|
|
448
|
+
cycle.conceptsProcessed = activationResult.nodesActivated;
|
|
449
|
+
cycle.associationsFound = activationResult.novelAssociations.length;
|
|
450
|
+
// 4. Insights, in memory only.
|
|
391
451
|
const generator = new InsightGenerator(adapter, this.config.insightConfig);
|
|
392
|
-
const insights = await generator.generateFromActivation(
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
// ADR-069: Validate and merge/discard the RVCOW branch
|
|
404
|
-
if (branch && this.branchManager) {
|
|
405
|
-
const validation = this.branchManager.validateBranch(branch);
|
|
406
|
-
if (validation.passed) {
|
|
407
|
-
this.branchManager.mergeBranch(branch);
|
|
408
|
-
this.emitBranchEvent('dream:branch_merged', branch, validation);
|
|
409
|
-
try {
|
|
410
|
-
this._witnessChain?.append('DREAM_MERGE', {
|
|
411
|
-
cycleId: this.currentCycle.id, branchName: branch.name,
|
|
412
|
-
}, 'dream-engine');
|
|
413
|
-
}
|
|
414
|
-
catch { /* best-effort witness */ }
|
|
415
|
-
}
|
|
416
|
-
else {
|
|
417
|
-
this.branchManager.discardBranch(branch);
|
|
418
|
-
this.emitBranchEvent('dream:branch_discarded', branch, validation);
|
|
419
|
-
try {
|
|
420
|
-
this._witnessChain?.append('DREAM_DISCARD', {
|
|
421
|
-
cycleId: this.currentCycle.id, branchName: branch.name,
|
|
422
|
-
reason: validation.reason,
|
|
423
|
-
}, 'dream-engine');
|
|
424
|
-
}
|
|
425
|
-
catch { /* best-effort witness */ }
|
|
426
|
-
dreamLogger.warn('Dream branch discarded: quality validation failed', {
|
|
427
|
-
cycleId: this.currentCycle.id,
|
|
428
|
-
reason: validation.reason,
|
|
429
|
-
});
|
|
430
|
-
// Still return results so caller sees what happened
|
|
431
|
-
}
|
|
432
|
-
branch = null; // Prevent double-discard in catch
|
|
433
|
-
}
|
|
452
|
+
const insights = await generator.generateFromActivation(cycle.id, activationResult);
|
|
453
|
+
if (!live())
|
|
454
|
+
throw new Error('Dream cycle cancelled');
|
|
455
|
+
// 5. Commit activations, insights and the final cycle row together.
|
|
456
|
+
// live() was checked synchronously just above, so the dream is
|
|
457
|
+
// still wanted and the engine still owns the database.
|
|
458
|
+
cycle.insightsGenerated = insights.length;
|
|
459
|
+
cycle.endTime = new Date();
|
|
460
|
+
cycle.durationMs = Date.now() - startTime;
|
|
461
|
+
cycle.status = 'completed';
|
|
462
|
+
const computed = { cycle, activations: adapter.activationEntries(), insights };
|
|
434
463
|
const result = {
|
|
435
|
-
cycle: { ...
|
|
464
|
+
cycle: { ...cycle },
|
|
436
465
|
insights,
|
|
437
466
|
activationStats: {
|
|
438
467
|
totalIterations: activationResult.iterations,
|
|
@@ -441,59 +470,93 @@ export class DreamEngine {
|
|
|
441
470
|
},
|
|
442
471
|
patternsCreated: 0, // Updated when insights are applied
|
|
443
472
|
};
|
|
444
|
-
|
|
473
|
+
if (!commitResults) {
|
|
474
|
+
committed = true; // nothing to record: the caller decides
|
|
475
|
+
return { ...result, pending: computed };
|
|
476
|
+
}
|
|
477
|
+
result.commitDurationMs = this.commitComputed(db, computed);
|
|
478
|
+
committed = true;
|
|
445
479
|
return result;
|
|
446
480
|
}
|
|
447
481
|
catch (error) {
|
|
448
|
-
//
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
482
|
+
// Nothing of the dream was committed. An interrupted cycle was already
|
|
483
|
+
// recorded by the interrupter; anything else is recorded as failed.
|
|
484
|
+
if (!committed && cycle.status !== 'interrupted') {
|
|
485
|
+
cycle.status = this.cancelled ? 'interrupted' : 'failed';
|
|
486
|
+
cycle.error = toErrorMessage(error);
|
|
487
|
+
cycle.endTime = new Date();
|
|
488
|
+
cycle.durationMs = Date.now() - startTime;
|
|
489
|
+
if (commitResults && this.db === db) {
|
|
490
|
+
try {
|
|
491
|
+
this.updateCycleSync(cycle);
|
|
492
|
+
}
|
|
493
|
+
catch { /* best effort */ }
|
|
456
494
|
}
|
|
457
495
|
}
|
|
458
|
-
if (
|
|
459
|
-
|
|
460
|
-
this.
|
|
496
|
+
if (!committed && commitResults) {
|
|
497
|
+
try {
|
|
498
|
+
this._witnessChain?.append('DREAM_DISCARD', {
|
|
499
|
+
cycleId: cycle.id, reason: toErrorMessage(error),
|
|
500
|
+
}, 'dream-engine');
|
|
461
501
|
}
|
|
462
|
-
|
|
463
|
-
this.currentCycle.endTime = new Date();
|
|
464
|
-
this.currentCycle.durationMs = Date.now() - startTime;
|
|
465
|
-
await this.updateCycle(this.currentCycle);
|
|
502
|
+
catch { /* best-effort witness */ }
|
|
466
503
|
}
|
|
467
|
-
this.currentCycle = null;
|
|
468
504
|
throw error;
|
|
469
505
|
}
|
|
470
506
|
finally {
|
|
471
507
|
unregisterShutdownGuard();
|
|
472
508
|
if (this.interruptActiveDream === interrupt)
|
|
473
509
|
this.interruptActiveDream = null;
|
|
510
|
+
if (this.currentCycle === cycle)
|
|
511
|
+
this.currentCycle = null;
|
|
512
|
+
if (this.activeAbort === abort)
|
|
513
|
+
this.activeAbort = null;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* #1060: write the results of a `dream(…, { commit: false })` run, in the
|
|
518
|
+
* same single transaction a normal dream uses. Returns the commit duration
|
|
519
|
+
* in ms. Throws (and writes nothing) if the engine is closed or the write
|
|
520
|
+
* fails.
|
|
521
|
+
*/
|
|
522
|
+
commitDreamResult(result) {
|
|
523
|
+
this.ensureInitialized();
|
|
524
|
+
if (this.closing) {
|
|
525
|
+
throw new Error('Dream engine is closing; nothing is committed');
|
|
526
|
+
}
|
|
527
|
+
if (!result.pending) {
|
|
528
|
+
throw new Error('Dream result has nothing pending to commit (it was already committed)');
|
|
474
529
|
}
|
|
530
|
+
const duration = this.commitComputed(this.db, result.pending);
|
|
531
|
+
result.pending = undefined;
|
|
532
|
+
result.commitDurationMs = duration;
|
|
533
|
+
return duration;
|
|
534
|
+
}
|
|
535
|
+
/** Commit a computed dream, then record it in the witness chain (#1060). */
|
|
536
|
+
commitComputed(db, computed) {
|
|
537
|
+
const commit = commitDream(db, computed);
|
|
538
|
+
try {
|
|
539
|
+
this._witnessChain?.append('DREAM_COMMIT', {
|
|
540
|
+
cycleId: computed.cycle.id,
|
|
541
|
+
insights: commit.insightsWritten,
|
|
542
|
+
activations: commit.activationsWritten,
|
|
543
|
+
commitDurationMs: commit.commitDurationMs,
|
|
544
|
+
}, 'dream-engine');
|
|
545
|
+
}
|
|
546
|
+
catch { /* best-effort witness */ }
|
|
547
|
+
return commit.commitDurationMs;
|
|
475
548
|
}
|
|
476
549
|
/**
|
|
477
|
-
* #1060: build a synchronous handler that
|
|
478
|
-
* 'interrupted'. It runs from close() and from a
|
|
479
|
-
* which runs before the shared database closes
|
|
480
|
-
*
|
|
481
|
-
* first so foreground writes made on the shared connection during the
|
|
482
|
-
* dream are committed rather than lost with the connection.
|
|
550
|
+
* #1060: build a synchronous handler that stops a still-running dream and
|
|
551
|
+
* records its cycle as 'interrupted'. It runs from close() and from a
|
|
552
|
+
* process store closer, which runs before the shared database closes
|
|
553
|
+
* (closers run newest first). Nothing of the dream is committed afterwards.
|
|
483
554
|
*/
|
|
484
|
-
createCycleInterrupter(cycle, startTime,
|
|
555
|
+
createCycleInterrupter(cycle, startTime, abort) {
|
|
485
556
|
return () => {
|
|
557
|
+
abort.abort();
|
|
486
558
|
if (cycle.status !== 'running' || !this.db)
|
|
487
559
|
return;
|
|
488
|
-
const branch = getBranch();
|
|
489
|
-
if (branch && this.branchManager) {
|
|
490
|
-
try {
|
|
491
|
-
this.branchManager.mergeBranch(branch);
|
|
492
|
-
}
|
|
493
|
-
catch {
|
|
494
|
-
// Branch already resolved; nothing to release
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
560
|
cycle.status = 'interrupted';
|
|
498
561
|
cycle.error = 'Interrupted: engine closed or process shut down during the dream cycle';
|
|
499
562
|
cycle.endTime = new Date();
|
|
@@ -767,11 +830,21 @@ export class DreamEngine {
|
|
|
767
830
|
// ==========================================================================
|
|
768
831
|
// Dream Control
|
|
769
832
|
// ==========================================================================
|
|
833
|
+
/**
|
|
834
|
+
* #1060: number of cancelDream() calls so far. A caller that runs several
|
|
835
|
+
* dreams in a row (SpeculativeDreamer) compares it to stop after a cancel.
|
|
836
|
+
*/
|
|
837
|
+
get cancelCount() {
|
|
838
|
+
return this.cancelRequests;
|
|
839
|
+
}
|
|
770
840
|
/**
|
|
771
841
|
* Cancel the running dream cycle.
|
|
772
842
|
*/
|
|
773
843
|
async cancelDream() {
|
|
774
844
|
this.cancelled = true;
|
|
845
|
+
this.cancelRequests++;
|
|
846
|
+
// #1060: stop the activation loop now; nothing of the dream is committed.
|
|
847
|
+
this.activeAbort?.abort();
|
|
775
848
|
}
|
|
776
849
|
/**
|
|
777
850
|
* Check if a dream is currently running.
|
|
@@ -799,9 +872,6 @@ export class DreamEngine {
|
|
|
799
872
|
`);
|
|
800
873
|
stmt.run(cycle.id, cycle.startTime.toISOString(), cycle.endTime?.toISOString() ?? null, cycle.durationMs ?? null, cycle.conceptsProcessed, cycle.associationsFound, cycle.insightsGenerated, cycle.status, cycle.error ?? null, cycle.startTime.toISOString());
|
|
801
874
|
}
|
|
802
|
-
async updateCycle(cycle) {
|
|
803
|
-
this.updateCycleSync(cycle);
|
|
804
|
-
}
|
|
805
875
|
updateCycleSync(cycle) {
|
|
806
876
|
if (!this.db)
|
|
807
877
|
return;
|
|
@@ -813,19 +883,6 @@ export class DreamEngine {
|
|
|
813
883
|
`);
|
|
814
884
|
stmt.run(cycle.endTime?.toISOString() ?? null, cycle.durationMs ?? null, cycle.conceptsProcessed, cycle.associationsFound, cycle.insightsGenerated, cycle.status, cycle.error ?? null, cycle.id);
|
|
815
885
|
}
|
|
816
|
-
async saveInsight(insight) {
|
|
817
|
-
if (!this.db)
|
|
818
|
-
return;
|
|
819
|
-
const stmt = this.db.prepare(`
|
|
820
|
-
INSERT INTO dream_insights
|
|
821
|
-
(id, cycle_id, insight_type, source_concepts, description, novelty_score,
|
|
822
|
-
confidence_score, actionable, applied, suggested_action, pattern_id)
|
|
823
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
824
|
-
`);
|
|
825
|
-
stmt.run(insight.id, insight.cycleId, insight.type, JSON.stringify(insight.sourceConcepts), insight.description, insight.noveltyScore, insight.confidenceScore, insight.actionable ? 1 : 0, 0, // Not applied yet
|
|
826
|
-
insight.suggestedAction ?? null, null // No pattern yet
|
|
827
|
-
);
|
|
828
|
-
}
|
|
829
886
|
async getInsightRowById(id) {
|
|
830
887
|
if (!this.db)
|
|
831
888
|
return null;
|
|
@@ -837,27 +894,17 @@ export class DreamEngine {
|
|
|
837
894
|
// Branch Management (ADR-069)
|
|
838
895
|
// ==========================================================================
|
|
839
896
|
/**
|
|
840
|
-
*
|
|
897
|
+
* @deprecated #1060: branching is ignored; always null.
|
|
841
898
|
*/
|
|
842
899
|
getBranchManager() {
|
|
843
|
-
return
|
|
900
|
+
return null;
|
|
844
901
|
}
|
|
845
902
|
/**
|
|
846
|
-
*
|
|
903
|
+
* @deprecated #1060: branching is ignored, so no branch event is emitted.
|
|
847
904
|
*/
|
|
848
905
|
onBranchEvent(listener) {
|
|
849
906
|
this.branchEventListeners.push(listener);
|
|
850
907
|
}
|
|
851
|
-
emitBranchEvent(event, branch, detail) {
|
|
852
|
-
for (const listener of this.branchEventListeners) {
|
|
853
|
-
try {
|
|
854
|
-
listener(event, branch, detail);
|
|
855
|
-
}
|
|
856
|
-
catch {
|
|
857
|
-
// Swallow listener errors
|
|
858
|
-
}
|
|
859
|
-
}
|
|
860
|
-
}
|
|
861
908
|
// ==========================================================================
|
|
862
909
|
// Cleanup
|
|
863
910
|
// ==========================================================================
|
|
@@ -865,17 +912,27 @@ export class DreamEngine {
|
|
|
865
912
|
* Release resources (does NOT close the shared database)
|
|
866
913
|
*/
|
|
867
914
|
async close() {
|
|
868
|
-
// #1060: a dream still in flight
|
|
869
|
-
//
|
|
915
|
+
// #1060: stop a dream still in flight and record it as interrupted, then
|
|
916
|
+
// wait (briefly) for it to unwind before letting go of the database.
|
|
917
|
+
// A close counts as a cancel, so a caller running several dreams in a row
|
|
918
|
+
// (SpeculativeDreamer) stops instead of committing an earlier result.
|
|
919
|
+
this.closing = true;
|
|
920
|
+
this.cancelRequests++;
|
|
870
921
|
this.interruptActiveDream?.();
|
|
871
922
|
this.interruptActiveDream = null;
|
|
923
|
+
this.activeAbort?.abort();
|
|
924
|
+
const inFlight = this.activeDream?.done;
|
|
925
|
+
if (inFlight) {
|
|
926
|
+
let timer;
|
|
927
|
+
await Promise.race([inFlight, new Promise((resolve) => { timer = setTimeout(resolve, 2000); })]);
|
|
928
|
+
clearTimeout(timer);
|
|
929
|
+
}
|
|
872
930
|
if (this.graph) {
|
|
873
931
|
await this.graph.close();
|
|
874
932
|
this.graph = null;
|
|
875
933
|
}
|
|
876
934
|
this.db = null;
|
|
877
935
|
this.persistence = null;
|
|
878
|
-
this.branchManager = null;
|
|
879
936
|
this.initialized = false;
|
|
880
937
|
this.currentCycle = null;
|
|
881
938
|
}
|
|
@@ -14,10 +14,18 @@
|
|
|
14
14
|
* `getPendingInsights` target and vector embeddings (if attached) grow
|
|
15
15
|
* unbounded.
|
|
16
16
|
*
|
|
17
|
-
* Strategy:
|
|
17
|
+
* Strategy: move out of `dream_insights` only insights that:
|
|
18
18
|
* - have never been applied (`applied = 0`), AND
|
|
19
19
|
* - are older than the retention window (default 30 days)
|
|
20
20
|
*
|
|
21
|
+
* #1066: rows are archived, not lost. In one write transaction (BEGIN
|
|
22
|
+
* IMMEDIATE, so it waits on busy_timeout instead of failing on lock upgrade)
|
|
23
|
+
* each qualifying row is copied to `dream_insights_archive`, the copies are
|
|
24
|
+
* read back, and only rows whose copy is present are deleted. If the
|
|
25
|
+
* read-back does not match, the transaction rolls back and nothing is
|
|
26
|
+
* deleted. The archive has its own key, so an insight swept twice keeps both
|
|
27
|
+
* copies.
|
|
28
|
+
*
|
|
21
29
|
* Applied insights stay forever — they're part of the audit trail for
|
|
22
30
|
* pattern changes. Recently-created insights stay regardless of applied
|
|
23
31
|
* state — they might still be picked up by a future `applyInsight` pass.
|
|
@@ -27,6 +35,7 @@
|
|
|
27
35
|
* with the rest of its lifecycle work.
|
|
28
36
|
*/
|
|
29
37
|
import type { Database as DatabaseType } from 'better-sqlite3';
|
|
38
|
+
import { DREAM_INSIGHTS_ARCHIVE_TABLE } from '../../migrations/20261018_add_dream_insights_archive.js';
|
|
30
39
|
export interface PruneStaleDreamInsightsOptions {
|
|
31
40
|
/**
|
|
32
41
|
* How many days old an `applied = 0` insight must be before it's
|
|
@@ -38,12 +47,23 @@ export interface PruneStaleDreamInsightsOptions {
|
|
|
38
47
|
export interface PruneResult {
|
|
39
48
|
/** Number of rows deleted. Zero if the table is empty or no rows qualify. */
|
|
40
49
|
pruned: number;
|
|
50
|
+
/** Number of rows copied to `dream_insights_archive` before the delete. */
|
|
51
|
+
archived: number;
|
|
52
|
+
/**
|
|
53
|
+
* #1116: stale rows left in place because their `id` is NULL. The archive
|
|
54
|
+
* needs an id (NOT NULL) and the delete matches on it, so such a row can be
|
|
55
|
+
* neither copied nor removed safely; before #1116 it made every sweep fail.
|
|
56
|
+
*/
|
|
57
|
+
skippedNullId: number;
|
|
41
58
|
}
|
|
59
|
+
export { DREAM_INSIGHTS_ARCHIVE_TABLE };
|
|
42
60
|
/**
|
|
43
|
-
*
|
|
61
|
+
* Archive, then delete, stale unapplied insights. Idempotent — safe to call
|
|
62
|
+
* on every tick.
|
|
44
63
|
*
|
|
45
|
-
* Returns `{ pruned: 0 }` if the table doesn't exist (init hasn't
|
|
46
|
-
* the dream schema yet) or if no rows qualify.
|
|
64
|
+
* Returns `{ pruned: 0, archived: 0, skippedNullId: 0 }` if the table doesn't exist (init hasn't
|
|
65
|
+
* created the dream schema yet) or if no rows qualify. Throws, with nothing
|
|
66
|
+
* deleted, if the archive copy cannot be verified.
|
|
47
67
|
*/
|
|
48
68
|
export declare function pruneStaleDreamInsights(db: DatabaseType, options?: PruneStaleDreamInsightsOptions): PruneResult;
|
|
49
69
|
//# sourceMappingURL=dream-insights-pruner.d.ts.map
|