agentic-qe 3.15.13 → 3.15.15
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/agents/v3/templates/qx-report-template.html +1 -1
- package/.claude/helpers/brain-checkpoint.cjs +124 -5
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +124 -0
- package/assets/agents/v3/templates/qx-report-template.html +1 -1
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-QU6INSKP.js +2 -0
- package/dist/cli/chunks/agent-booster-wasm-EUF4XVUC.js +2 -0
- package/dist/cli/chunks/{agent-handler-AOH6TV7W.js → agent-handler-MOX6PSIQ.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-2P54SF5N.js → agent-memory-branch-AEXKIGDG.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-PAJPENJD.js +2 -0
- package/dist/cli/chunks/{arena-NSVFCAF5.js → arena-IQ5ZZDRF.js} +2 -2
- package/dist/cli/chunks/{arena-X6MOGQHA.js → arena-M7GA3CVG.js} +4 -4
- package/dist/cli/chunks/{audit-27DJLQNM.js → audit-4IPBMKWB.js} +3 -3
- package/dist/cli/chunks/base-OTGSN6IC.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-BU5GXILS.js → better-sqlite3-IKDKJ2IE.js} +2 -2
- package/dist/cli/chunks/brain-handler-5NQUDH4W.js +95 -0
- package/dist/cli/chunks/{branch-enumerator-5CLULOCU.js → branch-enumerator-KSXELWRC.js} +2 -2
- package/dist/cli/chunks/{browser-R4DMU3LN.js → browser-6LACARWE.js} +2 -2
- package/dist/cli/chunks/browser-workflow-WLZGR6SB.js +2 -0
- package/dist/cli/chunks/{chunk-LUZNKJE6.js → chunk-22UKJGGN.js} +3 -3
- package/dist/cli/chunks/{chunk-BLSLEVDI.js → chunk-27HE2BHC.js} +2 -2
- package/dist/cli/chunks/{chunk-K4CZA77U.js → chunk-2CKERSMB.js} +2 -2
- package/dist/cli/chunks/{chunk-YSZ5OE3Z.js → chunk-2IIXCEMS.js} +2 -2
- package/dist/cli/chunks/{chunk-F3YS57NF.js → chunk-2LUTPMBO.js} +2 -2
- package/dist/cli/chunks/{chunk-GHM6MQNK.js → chunk-2ZFLULL4.js} +2 -2
- package/dist/cli/chunks/{chunk-7CMTY45A.js → chunk-337Z52QM.js} +2 -2
- package/dist/cli/chunks/{chunk-W26B7ERY.js → chunk-3CYNZFKH.js} +1 -1
- package/dist/cli/chunks/chunk-3HVFIITW.js +2 -0
- package/dist/cli/chunks/{chunk-K3TLLJMX.js → chunk-3J3RNJNX.js} +1 -1
- package/dist/cli/chunks/{chunk-MAMQA43L.js → chunk-4ATQP3PR.js} +1 -1
- package/dist/cli/chunks/{chunk-YXRASAPI.js → chunk-4D4CWP72.js} +2 -2
- package/dist/cli/chunks/{chunk-GHY6Z6KO.js → chunk-4HKAD25N.js} +3 -3
- package/dist/cli/chunks/{chunk-XNBOGCF3.js → chunk-4X3SWKBA.js} +2 -2
- package/dist/cli/chunks/{chunk-IJUHSJ2U.js → chunk-5AFVEWMT.js} +2 -2
- package/dist/cli/chunks/{chunk-SE4VNN4I.js → chunk-5C62XMJR.js} +3 -3
- package/dist/cli/chunks/{chunk-KDNJ4F3P.js → chunk-5G4UFTV4.js} +2 -2
- package/dist/cli/chunks/{chunk-DVGRPK7A.js → chunk-5I7357KS.js} +2 -2
- package/dist/cli/chunks/{chunk-YZWBNBTW.js → chunk-5KA5TVPR.js} +2 -2
- package/dist/cli/chunks/{chunk-JGZ722G3.js → chunk-5PTAFGJT.js} +2 -2
- package/dist/cli/chunks/{chunk-SVLQRAMF.js → chunk-6BRQPHMZ.js} +1 -1
- package/dist/cli/chunks/{chunk-KDVZND5Q.js → chunk-6KCSKGVY.js} +1 -1
- package/dist/cli/chunks/{chunk-LWR3FV3Y.js → chunk-6LE362LZ.js} +2 -2
- package/dist/cli/chunks/{chunk-WKGTGOYS.js → chunk-6NBRMD25.js} +3 -3
- package/dist/cli/chunks/{chunk-HQZGPJYG.js → chunk-6RBTS3NF.js} +2 -2
- package/dist/cli/chunks/{chunk-WOCGL4QP.js → chunk-6YVMX2TC.js} +2 -2
- package/dist/cli/chunks/{chunk-I3C7JOXC.js → chunk-73PBAWAF.js} +2 -2
- package/dist/cli/chunks/{chunk-75RDHBAX.js → chunk-74YG72NQ.js} +3 -3
- package/dist/cli/chunks/{chunk-O6FGXMHD.js → chunk-76P32JVU.js} +1 -1
- package/dist/cli/chunks/{chunk-LL7LDPXS.js → chunk-7ACCBHRB.js} +1 -1
- package/dist/cli/chunks/{chunk-3LJ7LQMV.js → chunk-7BLZHFKD.js} +1 -1
- package/dist/cli/chunks/{chunk-CM4LSLKR.js → chunk-7O45RQHF.js} +2 -2
- package/dist/cli/chunks/{chunk-NU3W5WFT.js → chunk-7XB3FCKM.js} +2 -2
- package/dist/cli/chunks/{chunk-E56B6IDX.js → chunk-AHMWD6JG.js} +2 -2
- package/dist/cli/chunks/{chunk-G2Q66Z23.js → chunk-AJPROCDW.js} +2 -2
- package/dist/cli/chunks/{chunk-NW7IBHJA.js → chunk-AKZO6GGG.js} +13 -13
- package/dist/cli/chunks/{chunk-IC3TQEOA.js → chunk-AOKKUB5F.js} +1 -1
- package/dist/cli/chunks/{chunk-4OVC4RIL.js → chunk-AP2W7Z3A.js} +1 -1
- package/dist/cli/chunks/{chunk-PHP5UBT4.js → chunk-BBRROA3Z.js} +2 -2
- package/dist/cli/chunks/{chunk-5FKWCZNF.js → chunk-BDKEAGQ2.js} +2 -2
- package/dist/cli/chunks/{chunk-BTVEYBW2.js → chunk-BFQTLF5X.js} +2 -2
- package/dist/cli/chunks/{chunk-HZ5NXFXH.js → chunk-BLL2XU7A.js} +2 -2
- package/dist/cli/chunks/{chunk-UTRV7T2N.js → chunk-BP5T3OEV.js} +2 -2
- package/dist/cli/chunks/{chunk-GB6HBNH2.js → chunk-BQ47GQPK.js} +2 -2
- package/dist/cli/chunks/{chunk-RFNW2LGD.js → chunk-BU4UQR36.js} +2 -2
- package/dist/cli/chunks/{chunk-WO274FRI.js → chunk-BZULJMGH.js} +2 -2
- package/dist/cli/chunks/{chunk-GU5HNCWI.js → chunk-C4KLXFJP.js} +1 -1
- package/dist/cli/chunks/{chunk-LFJALJOA.js → chunk-C4RTAVC6.js} +2 -2
- package/dist/cli/chunks/{chunk-WNQS4WTS.js → chunk-C5CXL3JP.js} +2 -2
- package/dist/cli/chunks/{chunk-MGZ5FJUW.js → chunk-CAOUV5GZ.js} +2 -2
- package/dist/cli/chunks/{chunk-XPRVF4YE.js → chunk-CBK5CT6T.js} +2 -2
- package/dist/cli/chunks/{chunk-JRRXCODW.js → chunk-DEKR3CTS.js} +2 -2
- package/dist/cli/chunks/{chunk-AQSVJNEH.js → chunk-DKX4GNRU.js} +2 -2
- package/dist/cli/chunks/{chunk-6KATY3KS.js → chunk-DUKE27HC.js} +2 -2
- package/dist/cli/chunks/{chunk-W2QWSQVE.js → chunk-DURD37JZ.js} +2 -2
- package/dist/cli/chunks/{chunk-KCW47QR5.js → chunk-E3MRDIZF.js} +1 -1
- package/dist/cli/chunks/{chunk-6Z7PRBSG.js → chunk-E56PVVWC.js} +2 -2
- package/dist/cli/chunks/{chunk-WQL7WCIZ.js → chunk-E5G4WZ2T.js} +1 -1
- package/dist/cli/chunks/{chunk-PB6J6HAA.js → chunk-EBTNMQSS.js} +2 -2
- package/dist/cli/chunks/{chunk-KADFXPPN.js → chunk-EFUJDMNC.js} +2 -2
- package/dist/cli/chunks/{chunk-QPNG5ZN2.js → chunk-EKP2SC77.js} +2 -2
- package/dist/cli/chunks/{chunk-U2FUXDDJ.js → chunk-EMSZVUYA.js} +3 -3
- package/dist/cli/chunks/{chunk-XEAEYC6Y.js → chunk-ERN56H6S.js} +1 -1
- package/dist/cli/chunks/{chunk-DNDL7SOS.js → chunk-FOOW4JVS.js} +2 -2
- package/dist/cli/chunks/{chunk-HOAJUIBQ.js → chunk-FTRSS64D.js} +2 -2
- package/dist/cli/chunks/{chunk-TOQWL2ZF.js → chunk-G242G224.js} +2 -2
- package/dist/cli/chunks/{chunk-VTDFVFST.js → chunk-G6RDCCFV.js} +2 -2
- package/dist/cli/chunks/{chunk-TWDW32W2.js → chunk-GCHYOPRZ.js} +2 -2
- package/dist/cli/chunks/{chunk-MFW5HSG4.js → chunk-GGQGCT4Y.js} +2 -2
- package/dist/cli/chunks/{chunk-G6WDYBLQ.js → chunk-GKSMRBHU.js} +1 -1
- package/dist/cli/chunks/{chunk-CCMKSHAT.js → chunk-GQABPCQE.js} +2 -2
- package/dist/cli/chunks/{chunk-G77ERMUD.js → chunk-GV2QE5TO.js} +1 -1
- package/dist/cli/chunks/{chunk-756CGMEH.js → chunk-H5DER3JY.js} +1 -1
- package/dist/cli/chunks/{chunk-W3PPFHI5.js → chunk-HH4ED4F7.js} +52 -50
- package/dist/cli/chunks/{chunk-3Y2ROSCL.js → chunk-HL2ANKN3.js} +2 -2
- package/dist/cli/chunks/{chunk-T3PGQFDI.js → chunk-HTZSRMHW.js} +2 -2
- package/dist/cli/chunks/{chunk-3QZEGE67.js → chunk-IXL5ZHWJ.js} +1 -1
- package/dist/cli/chunks/{chunk-5ZGM3RMH.js → chunk-J3FP5UGL.js} +1 -1
- package/dist/cli/chunks/{chunk-FZ76G4QJ.js → chunk-JCQGJGGZ.js} +1 -1
- package/dist/cli/chunks/chunk-JCZCJE6X.js +86 -0
- package/dist/cli/chunks/{chunk-YZEXYO4W.js → chunk-JKJOB65O.js} +1 -1
- package/dist/cli/chunks/{chunk-A64JFBWI.js → chunk-JUDUBQHA.js} +2 -2
- package/dist/cli/chunks/{chunk-PIDQVU3L.js → chunk-JW74KRBC.js} +2 -2
- package/dist/cli/chunks/{chunk-EXGMJFAT.js → chunk-K3WZICFA.js} +1 -1
- package/dist/cli/chunks/{chunk-ASQYASNV.js → chunk-K3XBQC3R.js} +1 -1
- package/dist/cli/chunks/{chunk-E7CLYGS7.js → chunk-KCQNFBBR.js} +1 -1
- package/dist/cli/chunks/chunk-KJBPB7P5.js +3 -0
- package/dist/cli/chunks/chunk-KLTMOXIK.js +3 -0
- package/dist/cli/chunks/{chunk-5MDERQH3.js → chunk-L32JNNKL.js} +1 -1
- package/dist/cli/chunks/{chunk-32ZMWEP3.js → chunk-LB2LGEDP.js} +2 -2
- package/dist/cli/chunks/{chunk-42J34YG4.js → chunk-LHMQIZ6B.js} +2 -2
- package/dist/cli/chunks/{chunk-NURIILUB.js → chunk-LJMYRTJ7.js} +1 -1
- package/dist/cli/chunks/{chunk-M6AAGIG7.js → chunk-LNX74WHQ.js} +1 -1
- package/dist/cli/chunks/{chunk-P7A4NKTZ.js → chunk-LTQVUAPH.js} +2 -2
- package/dist/cli/chunks/{chunk-3YNLWPBF.js → chunk-LVABQNRF.js} +2 -2
- package/dist/cli/chunks/{chunk-2G7TVT6W.js → chunk-LYJHUNBK.js} +2 -2
- package/dist/cli/chunks/{chunk-DLD7RUZ4.js → chunk-M4CJCPCQ.js} +2 -2
- package/dist/cli/chunks/{chunk-Q3UDLV5Z.js → chunk-M4WMSCAE.js} +1 -1
- package/dist/cli/chunks/{chunk-UDQSYWVF.js → chunk-MIA447GY.js} +1 -1
- package/dist/cli/chunks/{chunk-RF7HWBHN.js → chunk-MPFPWJTH.js} +2 -2
- package/dist/cli/chunks/{chunk-BK577VL7.js → chunk-MV55NXTD.js} +2 -2
- package/dist/cli/chunks/{chunk-JQGMW45H.js → chunk-NQS3BWS6.js} +1 -1
- package/dist/cli/chunks/{chunk-BEGR4D6N.js → chunk-NWIIYHT6.js} +2 -2
- package/dist/cli/chunks/{chunk-SSU73QAX.js → chunk-O6EWL5DQ.js} +2 -2
- package/dist/cli/chunks/chunk-OBDONJQM.js +2 -0
- package/dist/cli/chunks/chunk-OLZH5LRT.js +141 -0
- package/dist/cli/chunks/{chunk-W3INMZZ6.js → chunk-OQG3UQQ7.js} +1 -1
- package/dist/cli/chunks/{chunk-72ASBE35.js → chunk-PFQCV6YS.js} +3 -3
- package/dist/cli/chunks/{chunk-7YTGHGK4.js → chunk-PS6UMZVK.js} +2 -2
- package/dist/cli/chunks/{chunk-OCAEXYFA.js → chunk-PXATBHWN.js} +2 -2
- package/dist/cli/chunks/{chunk-ARJW4I2O.js → chunk-PYPS65P7.js} +2 -2
- package/dist/cli/chunks/{chunk-SYV2V3PL.js → chunk-Q6I4SIUU.js} +4 -4
- package/dist/cli/chunks/{chunk-H4H2YSFH.js → chunk-QFGYH6HD.js} +1 -1
- package/dist/cli/chunks/{chunk-526QYFJU.js → chunk-QGBGSQ2E.js} +2 -2
- package/dist/cli/chunks/{chunk-YBQH2VOP.js → chunk-QRKTBSZT.js} +2 -2
- package/dist/cli/chunks/{chunk-C7JM7CD3.js → chunk-R6LHJ7ME.js} +2 -2
- package/dist/cli/chunks/{chunk-TSQC2KKZ.js → chunk-RBKUU7WF.js} +2 -2
- package/dist/cli/chunks/{chunk-CE7B5LU7.js → chunk-RDMRY7CT.js} +1 -1
- package/dist/cli/chunks/chunk-RIRZHOS2.js +8 -0
- package/dist/cli/chunks/{chunk-CRWPZT74.js → chunk-SHRI7TKJ.js} +2 -2
- package/dist/cli/chunks/{chunk-KWYH3FI4.js → chunk-SJCKCSN3.js} +1 -1
- package/dist/cli/chunks/{chunk-DFUASIKA.js → chunk-SON6ZRH3.js} +2 -2
- package/dist/cli/chunks/{chunk-J2ZIFFM6.js → chunk-SZAZQZWI.js} +2 -2
- package/dist/cli/chunks/{chunk-HD7YIFOI.js → chunk-T4GE7MPI.js} +2 -2
- package/dist/cli/chunks/{chunk-3Y7TJFHU.js → chunk-T66PPF4D.js} +2 -2
- package/dist/cli/chunks/{chunk-3RZV5DGO.js → chunk-T67R2MUN.js} +2 -2
- package/dist/cli/chunks/{chunk-H4GG2NLO.js → chunk-TDQWTSBS.js} +2 -2
- package/dist/cli/chunks/{chunk-TWJTK4CC.js → chunk-TODNOP7C.js} +2 -2
- package/dist/cli/chunks/{chunk-NZ3GUMB2.js → chunk-TX2CHQD7.js} +2 -2
- package/dist/cli/chunks/{chunk-AL6FBH3E.js → chunk-TZIHDJZD.js} +2 -2
- package/dist/cli/chunks/{chunk-GII6UM3F.js → chunk-U62OUXBF.js} +1 -1
- package/dist/cli/chunks/{chunk-YQFLQE53.js → chunk-UAQZI6N4.js} +2 -2
- package/dist/cli/chunks/{chunk-R7SYRCRP.js → chunk-UE2J6MA5.js} +1 -1
- package/dist/cli/chunks/{chunk-VRHRBAEM.js → chunk-UGYM4U44.js} +1 -1
- package/dist/cli/chunks/{chunk-NT4DBXSX.js → chunk-UJABDXST.js} +2 -2
- package/dist/cli/chunks/{chunk-OFACHK5O.js → chunk-UORB2QDU.js} +9 -9
- package/dist/cli/chunks/{chunk-QDEJ4CI2.js → chunk-UQPA33UK.js} +2 -2
- package/dist/cli/chunks/{chunk-TCBBNUBP.js → chunk-UUBIQR6A.js} +3 -3
- package/dist/cli/chunks/{chunk-NZD4DPSU.js → chunk-UXIY4IAI.js} +2 -2
- package/dist/cli/chunks/{chunk-SG3NX7QE.js → chunk-VCXI4XC4.js} +2 -2
- package/dist/cli/chunks/{chunk-PSFSPGUD.js → chunk-VMAM46HQ.js} +2 -2
- package/dist/cli/chunks/{chunk-3AN5TNGD.js → chunk-VY4U6DPO.js} +3 -3
- package/dist/cli/chunks/{chunk-X7N2JF2X.js → chunk-W27AJ5B4.js} +2 -2
- package/dist/cli/chunks/{chunk-CT6SAVXQ.js → chunk-W5ZJG2OU.js} +2 -2
- package/dist/cli/chunks/{chunk-KV4T4MXK.js → chunk-W62OOK7A.js} +2 -2
- package/dist/cli/chunks/{chunk-5K26BEYB.js → chunk-WNTA4YKE.js} +2 -2
- package/dist/cli/chunks/{chunk-LZYQHVD4.js → chunk-WUOOX7UG.js} +2 -2
- package/dist/cli/chunks/{chunk-7NA7JXNB.js → chunk-WVXJ2QIG.js} +2 -2
- package/dist/cli/chunks/{chunk-KB56CPU4.js → chunk-X33CWRDF.js} +2 -2
- package/dist/cli/chunks/{chunk-7JUC2MVZ.js → chunk-XG4F4XH4.js} +2 -2
- package/dist/cli/chunks/{chunk-ZAKQLAHT.js → chunk-XH4JMX5O.js} +1 -1
- package/dist/cli/chunks/{chunk-X2Z7F4EU.js → chunk-XHHWABJV.js} +2 -2
- package/dist/cli/chunks/{chunk-7PLIEBY7.js → chunk-XHLYGXYE.js} +2 -2
- package/dist/cli/chunks/{chunk-UXZSUMEA.js → chunk-XIVVTYM2.js} +2 -2
- package/dist/cli/chunks/{chunk-MVVB7C2E.js → chunk-XM6ZVFM5.js} +156 -156
- package/dist/cli/chunks/{chunk-VTOBUZL6.js → chunk-XWIAZG3C.js} +2 -2
- package/dist/cli/chunks/{chunk-CV77DMDQ.js → chunk-Y2OX6KGN.js} +2 -2
- package/dist/cli/chunks/{chunk-VRVMIPTM.js → chunk-YUS6TWAL.js} +2 -2
- package/dist/cli/chunks/{chunk-VU5TBX2V.js → chunk-ZIPAB5J6.js} +2 -2
- package/dist/cli/chunks/{chunk-KUAKV3IW.js → chunk-ZSOMUTNL.js} +1 -1
- package/dist/cli/chunks/{chunk-UOC3O6RP.js → chunk-ZWBGYJ7K.js} +2 -2
- package/dist/cli/chunks/{chunk-5VMAV6T6.js → chunk-ZYJB6FML.js} +1 -1
- package/dist/cli/chunks/{ci-ENOASTYB.js → ci-UCUJOSBW.js} +2 -2
- package/dist/cli/chunks/{ci-config-B26OXHQM.js → ci-config-2XILD3XG.js} +2 -2
- package/dist/cli/chunks/{ci-output-JTCLLNOQ.js → ci-output-BL6KWOHW.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-23JMFNM5.js → circuit-breaker-5XLIOXE5.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-ON6L462G.js → claude-flow-setup-4IMP6ACS.js} +2 -2
- package/dist/cli/chunks/client-KKRNPX4F.js +2 -0
- package/dist/cli/chunks/{cline-installer-OWQ4D2FQ.js → cline-installer-RYLHCDK7.js} +2 -2
- package/dist/cli/chunks/{code-2ZRL7SEU.js → code-WY3GJXHX.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-JXSQVM67.js → code-index-extractor-Y4MZBZCW.js} +2 -2
- package/dist/cli/chunks/{codex-installer-7LXZYBSQ.js → codex-installer-SCJ3T3DX.js} +4 -4
- package/dist/cli/chunks/{completions-C2LR623C.js → completions-CN2DXQFU.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-TGQLHCYJ.js → complexity-analyzer-7MDPPIBH.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-RUGD24D2.js → continuedev-installer-GCEJRK34.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-ZLFVLEJP.js → copilot-installer-BHPDSELY.js} +2 -2
- package/dist/cli/chunks/core-handlers-47MPMED7.js +2 -0
- package/dist/cli/chunks/{cost-tracker-RT4QL745.js → cost-tracker-VO5MFWR6.js} +2 -2
- package/dist/cli/chunks/coverage-LYFQYNH6.js +51 -0
- package/dist/cli/chunks/cross-domain-router-U6MBFHEC.js +2 -0
- package/dist/cli/chunks/{cursor-installer-LJKLNFF6.js → cursor-installer-KP4HA7TV.js} +2 -2
- package/dist/cli/chunks/{daemon-BMDXCQT5.js → daemon-7RC7TS57.js} +3 -3
- package/dist/cli/chunks/{daemon-FBH3IRYN.js → daemon-AXLVPKVO.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-JGDED55I.js → dag-attention-scheduler-NKA44RSR.js} +2 -2
- package/dist/cli/chunks/{detect-SZIHIVCJ.js → detect-CMYAJWYF.js} +2 -2
- package/dist/cli/chunks/{dist-node-FV3KWXQ6.js → dist-node-EN3PYEGW.js} +2 -2
- package/dist/cli/chunks/{domain-handler-GI5JWQOV.js → domain-handler-EXSZCX7A.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-BUWY36TL.js → domain-plugins-HCQFSNL7.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-GCY7W5DA.js → domain-transfer-3LGSNTPO.js} +2 -2
- package/dist/cli/chunks/dream-76L6EEN7.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-GPRR3ZGD.js → embed-and-insert-pattern-B6MNHICW.js} +2 -2
- package/dist/cli/chunks/{eval-XPB3IGAP.js → eval-OQELIWJK.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-2E554UB3.js → experience-capture-middleware-SUFILYPW.js} +3 -3
- package/dist/cli/chunks/{fast-paths-ZSMWZPUC.js → fast-paths-UV4NDEWM.js} +2 -2
- package/dist/cli/chunks/{feature-flags-GIWVDVVC.js → feature-flags-CKTYX67J.js} +2 -2
- package/dist/cli/chunks/{feature-flags-N7EOGE5P.js → feature-flags-H7H33B6C.js} +2 -2
- package/dist/cli/chunks/file-discovery-VSFKZ3LJ.js +2 -0
- package/dist/cli/chunks/{fleet-HCHDOUCX.js → fleet-ZJBCAKRG.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-CZNCNXXZ.js → gnn-wrapper-RUE2QZRG.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-6YUIF2YQ.js → heartbeat-handler-XRV327M7.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-NIK3KKEH.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-WJG7LUJJ.js +2 -0
- package/dist/cli/chunks/hnsw-index-D6PRI5HC.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-J3M3IK24.js → hnsw-legacy-bridge-UJID6ZZ4.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-ULGTGDZW.js → hnswlib-node-WS43R4AX.js} +2 -2
- package/dist/cli/chunks/{hooks-C4BUGYUQ.js → hooks-YZNJKXAJ.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-RIUR3I7F.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-WINGVMPG.js → hypergraph-engine-XQJSIMTS.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-GADMWKAU.js → hypergraph-handler-ZD2NYXMR.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-C36YYTJ5.js +2 -0
- package/dist/cli/chunks/{init-guard-K2T4QWAO.js → init-guard-DSRUAVRT.js} +2 -2
- package/dist/cli/chunks/{init-handler-PCZTDZYI.js → init-handler-RJU5QMAP.js} +6 -6
- package/dist/cli/chunks/init-wizard-JCKNGIGT.js +2 -0
- package/dist/cli/chunks/kernel-F7ILJTYD.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-XENXNEIU.js → kilocode-installer-BCPOCVMC.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-3PG2TJ67.js → kiro-installer-GFCWCB2S.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-VTXDBHB2.js +2 -0
- package/dist/cli/chunks/learning-FZTD72CF.js +131 -0
- package/dist/cli/chunks/{llm-router-RKVDEWU2.js → llm-router-GJVKGRJL.js} +4 -4
- package/dist/cli/chunks/llm-router-service-TNOWQINA.js +2 -0
- package/dist/cli/chunks/{load-ITHC564X.js → load-YKTPOYBE.js} +2 -2
- package/dist/cli/chunks/load-test-FPVBK2EV.js +2 -0
- package/dist/cli/chunks/{mcp-TCL5UW3N.js → mcp-LT6R2IKS.js} +2 -2
- package/dist/cli/chunks/{memory-BKDAY2N2.js → memory-4HKKOLRY.js} +5 -5
- package/dist/cli/chunks/memory-backend-2QE7O67A.js +2 -0
- package/dist/cli/chunks/{memory-handlers-WN4FXFOA.js → memory-handlers-X4CMVBXB.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-VHAT7ZPF.js → multi-model-executor-2YPM2WTK.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-E3VM3EEY.js → opencode-installer-WBAJMH5K.js} +2 -2
- package/dist/cli/chunks/{orchestrator-BMQ6X762.js → orchestrator-5W5WVMVJ.js} +109 -25
- package/dist/cli/chunks/pattern-null-store-UI35ORHW.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-GOOR2BV5.js → pattern-usage-recorder-GXRMNPAZ.js} +2 -2
- package/dist/cli/chunks/{pipeline-5NSFQQIX.js → pipeline-2NA4DRDA.js} +2 -2
- package/dist/cli/chunks/{platform-SQM34J5G.js → platform-BGERNQ5V.js} +2 -2
- package/dist/cli/chunks/{plugin-UQJZRMZG.js → plugin-L4EPVENR.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-WMDJOL4S.js → prime-radiant-advanced-wasm-RTQRTPTM.js} +2 -2
- package/dist/cli/chunks/project-root-S7WDFTMU.js +2 -0
- package/dist/cli/chunks/protocol-executor-OPANXQVB.js +2 -0
- package/dist/cli/chunks/{protocol-handler-OBDCVY6X.js → protocol-handler-SYQXM6JK.js} +2 -2
- package/dist/cli/chunks/{prove-XDC7I4XT.js → prove-5O7GPJCU.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-3OTF4DYQ.js +2 -0
- package/dist/cli/chunks/{quality-L4GQ6WX4.js → quality-KIIDHGNF.js} +2 -2
- package/dist/cli/chunks/{quality-gate-MJG66LKN.js → quality-gate-H65VECD3.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-WTYH4TAN.js +2 -0
- package/dist/cli/chunks/{real-embeddings-HW4G2LWL.js → real-embeddings-DYIOLKQ3.js} +2 -2
- package/dist/cli/chunks/{ref-validation-FC7JOJ2C.js → ref-validation-CSBJOMZM.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-KWS4CEIC.js → roocode-installer-G7OVYXEN.js} +2 -2
- package/dist/cli/chunks/router-DBBW4NC2.js +2 -0
- package/dist/cli/chunks/routing-feedback-W35QHCL4.js +2 -0
- package/dist/cli/chunks/{routing-handler-QF4WVB2S.js → routing-handler-ZNZPPI5Y.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-2MTCOUK6.js → ruvector-commands-C6IG3OY3.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-X3NSL25Z.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-TZR7GDOK.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-BREJCXWN.js → rvf-migration-coordinator-4ATTHGHD.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-HD25ZYV5.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-KKC6HOJD.js → rvf-store-integrity-3G6LFLT3.js} +2 -2
- package/dist/cli/chunks/safe-db-ZS2QKANY.js +2 -0
- package/dist/cli/chunks/schedule-ZH6VNA32.js +2 -0
- package/dist/cli/chunks/scheduler-T6CD74B6.js +2 -0
- package/dist/cli/chunks/{security-OSAE7VAP.js → security-A3IMVLFM.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-COUOS665.js → shared-rvf-adapter-VHWQ6US5.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-YXMPZKQE.js → shared-rvf-dual-writer-JB3QS7IG.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-47WU5EKZ.js +2 -0
- package/dist/cli/chunks/{standalone-memory-E6JBMOIL.js → standalone-memory-DDNXCSBD.js} +2 -2
- package/dist/cli/chunks/{status-handler-AFTCIYIX.js → status-handler-2HK7XPEK.js} +2 -2
- package/dist/cli/chunks/{structural-health-2FROCEI4.js → structural-health-DSJVLEPV.js} +2 -2
- package/dist/cli/chunks/{sync-VAYTOWDC.js → sync-3MUV6S5E.js} +2 -2
- package/dist/cli/chunks/{sync-YIQYOFGW.js → sync-NTUR53PI.js} +2 -2
- package/dist/cli/chunks/{task-handler-KVQHDEX3.js → task-handler-74MZN2EO.js} +2 -2
- package/dist/cli/chunks/{task-handlers-MVVECQA6.js → task-handlers-VJR6EHRZ.js} +3 -3
- package/dist/cli/chunks/{test-5JSVTOMY.js → test-O6FK3FVF.js} +4 -4
- package/dist/cli/chunks/test-runner-process-2NPW3UDQ.js +2 -0
- package/dist/cli/chunks/{test-scheduling-HBOHVLI3.js → test-scheduling-Q6QEEOS6.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-5VEPTPFA.js → token-bootstrap-TTRCECLP.js} +2 -2
- package/dist/cli/chunks/{token-usage-TBJHDLY6.js → token-usage-YEEFWSSI.js} +2 -2
- package/dist/cli/chunks/{transformers-VAWYMHMZ.js → transformers-BZCHJJJT.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-RZAND65G.js +2 -0
- package/dist/cli/chunks/{types-R5SDZU2E.js → types-4AOKZYOX.js} +2 -2
- package/dist/cli/chunks/unified-memory-FZ5K2C7W.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-VREWX56M.js +2 -0
- package/dist/cli/chunks/unified-persistence-YZGMKX6B.js +2 -0
- package/dist/cli/chunks/{upgrade-K5PIHXRB.js → upgrade-2MWW6BT2.js} +2 -2
- package/dist/cli/chunks/{validate-RPTS7RYJ.js → validate-PAEV3GT5.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-B2ZL556X.js → validate-swarm-ZIXACK5K.js} +2 -2
- package/dist/cli/chunks/visual-security-GXGSFBVA.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-K4DUJC32.js → web-tree-sitter-VLTXZFAB.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-OK2AJN35.js → windsurf-installer-VELMLOZF.js} +2 -2
- package/dist/cli/chunks/witness-chain-MRJKVCOW.js +2 -0
- package/dist/cli/chunks/witness-chain-WWHJKITG.js +2 -0
- package/dist/cli/chunks/{witness-chain-repair-L6Y5RFXR.js → witness-chain-repair-5SAXPETG.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-N4CW7FZX.js → witness-chain-verifier-MIDWD4JS.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-TDNPS3WD.js → witness-key-manager-OSVCWOB2.js} +2 -2
- package/dist/cli/chunks/{workflow-XRZA3YCY.js → workflow-MK7A7QCX.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-SG7DV72E.js +2 -0
- package/dist/cli/chunks/{wrappers-5JIFWKN6.js → wrappers-5QFMCKXL.js} +2 -2
- package/dist/cli/commands/coverage.js +6 -0
- package/dist/cli/commands/learning-prune.d.ts +14 -0
- package/dist/cli/commands/learning-prune.js +105 -0
- package/dist/cli/commands/learning.js +9 -0
- package/dist/cli/handlers/brain-handler.js +12 -1
- package/dist/cli/utils/coverage-verdict.js +14 -3
- package/dist/context/compaction/index.d.ts +7 -0
- package/dist/context/compaction/index.js +30 -6
- package/dist/coordination/handlers/coverage-evidence.d.ts +19 -0
- package/dist/coordination/handlers/coverage-evidence.js +31 -2
- package/dist/coordination/handlers/coverage-handlers.js +5 -1
- package/dist/coordination/handlers/coverage-target.js +8 -1
- package/dist/coordination/handlers/quality-handlers.js +9 -1
- package/dist/coordination/result-saver-adapters.js +1 -0
- package/dist/coordination/result-saver.js +9 -5
- package/dist/domains/chaos-resilience/services/chaos-engineer.d.ts +1 -0
- package/dist/domains/chaos-resilience/services/chaos-engineer.js +23 -45
- package/dist/domains/coverage-analysis/collected-metrics.d.ts +22 -6
- package/dist/domains/coverage-analysis/collected-metrics.js +37 -12
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +2 -0
- package/dist/domains/defect-intelligence/services/defect-predictor.js +3 -6
- package/dist/domains/quality-assessment/coverage-report-event.d.ts +8 -0
- package/dist/domains/quality-assessment/coverage-report-event.js +22 -1
- package/dist/domains/quality-assessment/interfaces.d.ts +6 -0
- package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +4 -0
- package/dist/domains/quality-assessment/services/quality-analyzer.js +63 -17
- package/dist/domains/test-execution/interfaces.d.ts +5 -0
- package/dist/domains/test-execution/services/test-executor.js +6 -0
- package/dist/init/init-wizard-hooks.d.ts +1 -1
- package/dist/init/init-wizard-hooks.js +7 -8
- package/dist/init/phases/07-hooks.js +90 -6
- package/dist/init/phases/08-mcp.js +9 -0
- package/dist/init/settings-merge.d.ts +13 -0
- package/dist/init/settings-merge.js +49 -2
- package/dist/integrations/agent-booster-wasm/agent_booster_wasm.js +849 -0
- package/dist/integrations/agent-booster-wasm/agent_booster_wasm_bg.wasm +0 -0
- package/dist/integrations/agent-booster-wasm/index.d.ts +8 -0
- package/dist/integrations/agent-booster-wasm/index.js +25 -2
- package/dist/integrations/agent-booster-wasm/package.json +16 -0
- package/dist/integrations/ruvector/brain-rvf-exporter.d.ts +25 -0
- package/dist/integrations/ruvector/brain-rvf-exporter.js +154 -61
- package/dist/learning/dream/dream-engine.d.ts +27 -3
- package/dist/learning/dream/dream-engine.js +97 -28
- package/dist/learning/dream/dream-lock-retry.d.ts +38 -0
- package/dist/learning/dream/dream-lock-retry.js +66 -0
- package/dist/learning/dream/speculative-dreamer.js +1 -1
- package/dist/learning/learning-retention.d.ts +103 -0
- package/dist/learning/learning-retention.js +213 -0
- package/dist/mcp/bundle.js +501 -496
- package/dist/mcp/handlers/domain-handler-configs.d.ts +9 -1
- package/dist/mcp/handlers/domain-handler-configs.js +24 -14
- package/dist/mcp/protocol-server.js +1 -1
- package/dist/mcp/tools/chaos-resilience/inject.d.ts +3 -4
- package/dist/mcp/tools/chaos-resilience/inject.js +11 -81
- package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -0
- package/dist/mcp/tools/learning-optimization/dream.js +4 -0
- package/package.json +4 -2
- package/dist/cli/chunks/adapter-KCQDVYY2.js +0 -2
- package/dist/cli/chunks/agent-booster-wasm-6RRQWMNE.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-SAQOHSGN.js +0 -2
- package/dist/cli/chunks/base-WCACU3FN.js +0 -2
- package/dist/cli/chunks/brain-handler-GTQNHHZS.js +0 -94
- package/dist/cli/chunks/browser-workflow-G6IASEAP.js +0 -2
- package/dist/cli/chunks/chunk-C6JTLKG7.js +0 -141
- package/dist/cli/chunks/chunk-K65CGKLD.js +0 -8
- package/dist/cli/chunks/chunk-MB46UBGY.js +0 -3
- package/dist/cli/chunks/chunk-N4CYAKOX.js +0 -79
- package/dist/cli/chunks/chunk-PT4FMJPQ.js +0 -3
- package/dist/cli/chunks/chunk-S5AZCIZS.js +0 -2
- package/dist/cli/chunks/chunk-UT2VZ33P.js +0 -2
- package/dist/cli/chunks/client-TV3V2YZ5.js +0 -2
- package/dist/cli/chunks/core-handlers-PZT4OLWR.js +0 -2
- package/dist/cli/chunks/coverage-NV3C4IMM.js +0 -50
- package/dist/cli/chunks/cross-domain-router-QOFCZ7G4.js +0 -2
- package/dist/cli/chunks/dream-TRFBGDSQ.js +0 -2
- package/dist/cli/chunks/file-discovery-WCKGMSPZ.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-P44A2OX3.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-ZJQIQJKC.js +0 -2
- package/dist/cli/chunks/hnsw-index-HMG2GH3Z.js +0 -2
- package/dist/cli/chunks/hybrid-backend-B7M74PZG.js +0 -2
- package/dist/cli/chunks/impact-analyzer-PZYOVKQO.js +0 -2
- package/dist/cli/chunks/init-wizard-TZDJQK3U.js +0 -2
- package/dist/cli/chunks/kernel-Y6RRIOKW.js +0 -2
- package/dist/cli/chunks/knowledge-graph-BVD5Z66M.js +0 -2
- package/dist/cli/chunks/learning-6KDH7FK4.js +0 -122
- package/dist/cli/chunks/llm-router-service-KHCAMSUU.js +0 -2
- package/dist/cli/chunks/load-test-RUF7DZA5.js +0 -2
- package/dist/cli/chunks/memory-backend-7ZLFOVGG.js +0 -2
- package/dist/cli/chunks/pattern-null-store-RY6CVYHP.js +0 -2
- package/dist/cli/chunks/project-root-IO5KRNGL.js +0 -2
- package/dist/cli/chunks/protocol-executor-U2CUDWDE.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-DQSSX2IP.js +0 -2
- package/dist/cli/chunks/queen-coordinator-6FN4BZIX.js +0 -2
- package/dist/cli/chunks/router-YUO3I7RU.js +0 -2
- package/dist/cli/chunks/routing-feedback-36SLQGJE.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-FRYZH3WZ.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-XXNITL5I.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-D2WWKJIV.js +0 -2
- package/dist/cli/chunks/safe-db-4RRIGRXD.js +0 -2
- package/dist/cli/chunks/schedule-25RTO4DQ.js +0 -2
- package/dist/cli/chunks/scheduler-BPIOJZ5P.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-EDF47DDX.js +0 -2
- package/dist/cli/chunks/test-runner-process-LEPF2OSS.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-TSZTCMFV.js +0 -2
- package/dist/cli/chunks/unified-memory-TLGSSLMI.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-MSUR7ZOO.js +0 -2
- package/dist/cli/chunks/unified-persistence-VFFOTWK7.js +0 -2
- package/dist/cli/chunks/visual-security-6Q44XNLB.js +0 -2
- package/dist/cli/chunks/witness-chain-KDOMXDQX.js +0 -2
- package/dist/cli/chunks/witness-chain-N3OY2RMH.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-CVNNT2RJ.js +0 -2
|
Binary file
|
|
@@ -41,6 +41,14 @@ export interface TransformOptions {
|
|
|
41
41
|
maxChunks?: number;
|
|
42
42
|
allowFallback?: boolean;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Locate the wasm-bindgen glue (#1241). A relative require resolved against
|
|
46
|
+
* the bundle's directory (dist/mcp/ or dist/cli/chunks/), where the glue does
|
|
47
|
+
* not exist, so WASM never loaded from the published package. Look next to
|
|
48
|
+
* this module first (unbundled src/ or dist/), then in the copy the build
|
|
49
|
+
* places under dist/integrations/agent-booster-wasm/ in the package root.
|
|
50
|
+
*/
|
|
51
|
+
export declare function resolveWasmGlue(metaUrl?: string): string | null;
|
|
44
52
|
/**
|
|
45
53
|
* Map file extension to Language enum
|
|
46
54
|
*/
|
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
* Accuracy: 81% (13/16 test cases)
|
|
9
9
|
*/
|
|
10
10
|
import { createRequire } from 'module';
|
|
11
|
+
import { existsSync } from 'fs';
|
|
12
|
+
import { dirname, join } from 'path';
|
|
13
|
+
import { fileURLToPath } from 'url';
|
|
11
14
|
import { LoggerFactory } from '../../logging/index.js';
|
|
15
|
+
import { findPackageRoot } from '../../init/find-package-root.js';
|
|
12
16
|
const logger = LoggerFactory.create('agent-booster-wasm');
|
|
13
17
|
// Language constants (const object instead of enum for ESM compatibility)
|
|
14
18
|
// This pattern works consistently across tsx dev mode, node, and bundled builds
|
|
@@ -45,6 +49,21 @@ const LanguageNames = {
|
|
|
45
49
|
let wasmModule = null;
|
|
46
50
|
let wasmBooster = null;
|
|
47
51
|
let loadError = null;
|
|
52
|
+
const GLUE_FILE = 'agent_booster_wasm.js';
|
|
53
|
+
/**
|
|
54
|
+
* Locate the wasm-bindgen glue (#1241). A relative require resolved against
|
|
55
|
+
* the bundle's directory (dist/mcp/ or dist/cli/chunks/), where the glue does
|
|
56
|
+
* not exist, so WASM never loaded from the published package. Look next to
|
|
57
|
+
* this module first (unbundled src/ or dist/), then in the copy the build
|
|
58
|
+
* places under dist/integrations/agent-booster-wasm/ in the package root.
|
|
59
|
+
*/
|
|
60
|
+
export function resolveWasmGlue(metaUrl = import.meta.url) {
|
|
61
|
+
const candidates = [join(dirname(fileURLToPath(metaUrl)), GLUE_FILE)];
|
|
62
|
+
const root = findPackageRoot(metaUrl);
|
|
63
|
+
if (root)
|
|
64
|
+
candidates.push(join(root, 'dist', 'integrations', 'agent-booster-wasm', GLUE_FILE));
|
|
65
|
+
return candidates.find((p) => existsSync(p)) ?? null;
|
|
66
|
+
}
|
|
48
67
|
/**
|
|
49
68
|
* Load the WASM module
|
|
50
69
|
*/
|
|
@@ -54,9 +73,13 @@ async function loadWasm() {
|
|
|
54
73
|
if (loadError)
|
|
55
74
|
return false;
|
|
56
75
|
try {
|
|
57
|
-
|
|
76
|
+
const gluePath = resolveWasmGlue();
|
|
77
|
+
if (!gluePath) {
|
|
78
|
+
throw new Error(`${GLUE_FILE} not found next to the module or under dist/integrations/agent-booster-wasm/`);
|
|
79
|
+
}
|
|
80
|
+
// The glue is CommonJS (it reads the .wasm via __dirname), so load it with require.
|
|
58
81
|
const require = createRequire(import.meta.url);
|
|
59
|
-
wasmModule = require(
|
|
82
|
+
wasmModule = require(gluePath);
|
|
60
83
|
if (!wasmModule) {
|
|
61
84
|
throw new Error('WASM module loaded but is null');
|
|
62
85
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent-booster-wasm",
|
|
3
|
+
"collaborators": [
|
|
4
|
+
"Agent Booster Team"
|
|
5
|
+
],
|
|
6
|
+
"description": "WebAssembly bindings for agent-booster",
|
|
7
|
+
"version": "0.1.0",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"files": [
|
|
10
|
+
"agent_booster_wasm_bg.wasm",
|
|
11
|
+
"agent_booster_wasm.js",
|
|
12
|
+
"agent_booster_wasm.d.ts"
|
|
13
|
+
],
|
|
14
|
+
"main": "agent_booster_wasm.js",
|
|
15
|
+
"types": "agent_booster_wasm.d.ts"
|
|
16
|
+
}
|
|
@@ -19,6 +19,8 @@ export interface RvfBrainManifest {
|
|
|
19
19
|
readonly totalRecords?: number;
|
|
20
20
|
/** Per-table row counts used by the recovery-mirror richness guard. */
|
|
21
21
|
readonly tableCounts?: Readonly<Record<string, number>>;
|
|
22
|
+
/** Regenerable cache rows left out of the kernel, per table (#1238). */
|
|
23
|
+
readonly skippedCacheRows?: Readonly<Record<string, number>>;
|
|
22
24
|
};
|
|
23
25
|
readonly domains: readonly string[];
|
|
24
26
|
readonly checksum: string;
|
|
@@ -48,6 +50,8 @@ export interface RvfBrainExportOptions {
|
|
|
48
50
|
readonly signerKeyId?: string;
|
|
49
51
|
/** Explicit operator acknowledgement that a richer existing mirror may be replaced. */
|
|
50
52
|
readonly allowOverwriteRicher?: boolean;
|
|
53
|
+
/** Kernel size ceiling in bytes. Defaults to RVF_MAX_KERNEL_BYTES; lowered only by tests. */
|
|
54
|
+
readonly maxKernelBytes?: number;
|
|
51
55
|
}
|
|
52
56
|
export interface RvfBrainImportOptions {
|
|
53
57
|
readonly mergeStrategy: MergeStrategy;
|
|
@@ -59,6 +63,27 @@ export interface RvfBrainImportResult {
|
|
|
59
63
|
readonly conflicts: number;
|
|
60
64
|
readonly embeddingsRestored: number;
|
|
61
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Largest kernel image @ruvector/rvf-node accepts. One byte more and
|
|
68
|
+
* `embedKernel` fails with a misleading `RVF error 0x0303: FsyncFailed`
|
|
69
|
+
* (#1238; measured 134,217,728 B ok, 134,217,729 B fails).
|
|
70
|
+
*/
|
|
71
|
+
export declare const RVF_MAX_KERNEL_BYTES: number;
|
|
72
|
+
/**
|
|
73
|
+
* Vector ids written by the code-intelligence domain (KG nodes, semantic code
|
|
74
|
+
* index, C4 diagrams). They are derived from source code and rebuilt by
|
|
75
|
+
* `aqe code index`, so they stay out of the brain kernel (#1238).
|
|
76
|
+
*/
|
|
77
|
+
export declare const CODE_INDEX_VECTOR_ID_PREFIX = "code-intelligence:";
|
|
78
|
+
/** Thrown before any native call when the kernel would exceed the RVF limit. */
|
|
79
|
+
export declare class RvfKernelTooLargeError extends Error {
|
|
80
|
+
readonly kernelBytes: number;
|
|
81
|
+
readonly limitBytes: number;
|
|
82
|
+
readonly tableBytes: Readonly<Record<string, number>>;
|
|
83
|
+
readonly complete: boolean;
|
|
84
|
+
readonly code = "RVF_KERNEL_TOO_LARGE";
|
|
85
|
+
constructor(kernelBytes: number, limitBytes: number, tableBytes: Readonly<Record<string, number>>, complete: boolean);
|
|
86
|
+
}
|
|
62
87
|
/** Export brain state to a single `.rvf` file with vector embeddings + kernel. */
|
|
63
88
|
export declare function exportBrainToRvf(db: Database.Database, options: RvfBrainExportOptions, sourceDbLabel?: string): RvfBrainManifest;
|
|
64
89
|
/** Import brain state from a `.rvf` file into a SQLite database. */
|
|
@@ -9,6 +9,54 @@ import { createRvfStore, openRvfStore, openRvfStoreReadonly, isRvfNativeAvailabl
|
|
|
9
9
|
import { sha256, tableExists, queryAll, domainFilterForColumn, runImportTransaction, mergeGenericRow, remapPatternReferences, mergeAppendOnlyRow, TABLE_CONFIGS, TABLE_BLOB_COLUMNS, PK_COLUMNS, CONFIDENCE_COLUMNS, TIMESTAMP_COLUMNS, serializeRowBlobs, deserializeRowBlobs, } from './brain-shared.js';
|
|
10
10
|
import { appendBrainImportWitness } from './brain-import-audit.js';
|
|
11
11
|
// --- Export ---
|
|
12
|
+
/**
|
|
13
|
+
* Largest kernel image @ruvector/rvf-node accepts. One byte more and
|
|
14
|
+
* `embedKernel` fails with a misleading `RVF error 0x0303: FsyncFailed`
|
|
15
|
+
* (#1238; measured 134,217,728 B ok, 134,217,729 B fails).
|
|
16
|
+
*/
|
|
17
|
+
export const RVF_MAX_KERNEL_BYTES = 128 * 1024 * 1024;
|
|
18
|
+
/**
|
|
19
|
+
* Vector ids written by the code-intelligence domain (KG nodes, semantic code
|
|
20
|
+
* index, C4 diagrams). They are derived from source code and rebuilt by
|
|
21
|
+
* `aqe code index`, so they stay out of the brain kernel (#1238).
|
|
22
|
+
*/
|
|
23
|
+
export const CODE_INDEX_VECTOR_ID_PREFIX = 'code-intelligence:';
|
|
24
|
+
const CODE_INDEX_VECTOR_MATCH = `substr(id, 1, ${CODE_INDEX_VECTOR_ID_PREFIX.length}) = ?`;
|
|
25
|
+
function isCodeIndexVectorRow(tableName, row) {
|
|
26
|
+
if (tableName !== 'vectors')
|
|
27
|
+
return false;
|
|
28
|
+
const id = row.id;
|
|
29
|
+
return typeof id === 'string' && id.startsWith(CODE_INDEX_VECTOR_ID_PREFIX);
|
|
30
|
+
}
|
|
31
|
+
/** Thrown before any native call when the kernel would exceed the RVF limit. */
|
|
32
|
+
export class RvfKernelTooLargeError extends Error {
|
|
33
|
+
kernelBytes;
|
|
34
|
+
limitBytes;
|
|
35
|
+
tableBytes;
|
|
36
|
+
complete;
|
|
37
|
+
code = 'RVF_KERNEL_TOO_LARGE';
|
|
38
|
+
constructor(kernelBytes, limitBytes, tableBytes, complete) {
|
|
39
|
+
const largest = Object.entries(tableBytes)
|
|
40
|
+
.filter(([, bytes]) => bytes >= 1024 * 1024)
|
|
41
|
+
.sort((a, b) => b[1] - a[1])
|
|
42
|
+
.slice(0, 3)
|
|
43
|
+
.map(([table, bytes]) => `${table} ${formatMb(bytes)}`)
|
|
44
|
+
.join(', ');
|
|
45
|
+
super(`RVF_KERNEL_TOO_LARGE: the brain kernel needs ${complete ? '' : 'at least '}` +
|
|
46
|
+
`${formatMb(kernelBytes)}, over the ${formatMb(limitBytes)} limit of the native RVF writer.` +
|
|
47
|
+
(largest ? ` Largest tables: ${largest}.` : '') +
|
|
48
|
+
' Nothing was written. ' +
|
|
49
|
+
`Use --format jsonl (no size limit), or reduce the largest learning tables first.`);
|
|
50
|
+
this.kernelBytes = kernelBytes;
|
|
51
|
+
this.limitBytes = limitBytes;
|
|
52
|
+
this.tableBytes = tableBytes;
|
|
53
|
+
this.complete = complete;
|
|
54
|
+
this.name = 'RvfKernelTooLargeError';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function formatMb(bytes) {
|
|
58
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
59
|
+
}
|
|
12
60
|
/**
|
|
13
61
|
* Sidecar suffixes that make up a complete store on disk. `''` is the store
|
|
14
62
|
* itself; the adapter writes `.idmap.json` on close, and we write the manifest.
|
|
@@ -98,52 +146,93 @@ export function exportBrainToRvf(db, options, sourceDbLabel = 'memory.db') {
|
|
|
98
146
|
const tmpPath = `${outPath}.tmp.${process.pid}`;
|
|
99
147
|
sweepStaleTmpFiles(outPath);
|
|
100
148
|
removeStoreFiles(tmpPath);
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
149
|
+
// --- Serialize all tables using TABLE_CONFIGS, before any native call ---
|
|
150
|
+
// Issue #1238: the native writer has a hard kernel ceiling, so each table is
|
|
151
|
+
// serialized once and measured as it goes. An oversized brain fails here,
|
|
152
|
+
// without creating a store or spending time on the rest of the tables.
|
|
153
|
+
const maxKernelBytes = options.maxKernelBytes ?? RVF_MAX_KERNEL_BYTES;
|
|
154
|
+
const allTableData = {};
|
|
155
|
+
const tableJson = [];
|
|
156
|
+
const tableBytes = {};
|
|
157
|
+
const tableCounts = {};
|
|
158
|
+
const skippedCacheRows = {};
|
|
159
|
+
const domainSet = new Set();
|
|
160
|
+
let totalRecords = 0;
|
|
161
|
+
let kernelBytes = 0;
|
|
162
|
+
for (const config of TABLE_CONFIGS) {
|
|
163
|
+
let [where, params] = config.domainColumn
|
|
164
|
+
? domainFilterForColumn(options.domains, config.domainColumn)
|
|
165
|
+
: [undefined, []];
|
|
166
|
+
if (config.tableName === 'vectors' && tableExists(db, 'vectors')) {
|
|
167
|
+
const { n } = db.prepare(`SELECT COUNT(*) AS n FROM vectors WHERE ${CODE_INDEX_VECTOR_MATCH}`).get(CODE_INDEX_VECTOR_ID_PREFIX);
|
|
168
|
+
if (n > 0)
|
|
169
|
+
skippedCacheRows.vectors = n;
|
|
170
|
+
where = `(id IS NULL OR NOT ${CODE_INDEX_VECTOR_MATCH})`;
|
|
171
|
+
params = [CODE_INDEX_VECTOR_ID_PREFIX];
|
|
172
|
+
}
|
|
173
|
+
let rows = queryAll(db, config.tableName, where, params);
|
|
174
|
+
if (options.domains && options.domains.length > 0) {
|
|
175
|
+
const manifestIds = new Set((allTableData.learning_evidence_manifests ?? []).map(row => row.id));
|
|
176
|
+
const patternIds = new Set((allTableData.qe_patterns ?? []).map(row => row.id));
|
|
177
|
+
if (['learning_evidence_segments', 'learning_segment_edges', 'learning_evidence_admissions'].includes(config.tableName)) {
|
|
178
|
+
rows = rows.filter(row => manifestIds.has(row.manifest_id));
|
|
132
179
|
}
|
|
133
|
-
if (config.tableName === '
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
180
|
+
else if (config.tableName === 'pattern_manifest_lineage') {
|
|
181
|
+
rows = rows.filter(row => {
|
|
182
|
+
const lineage = row;
|
|
183
|
+
return manifestIds.has(lineage.manifest_id) && patternIds.has(lineage.pattern_id);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
else if (config.tableName === 'pattern_segment_lineage') {
|
|
187
|
+
rows = rows.filter(row => {
|
|
188
|
+
const lineage = row;
|
|
189
|
+
return manifestIds.has(lineage.manifest_id) && patternIds.has(lineage.pattern_id);
|
|
190
|
+
});
|
|
138
191
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
192
|
+
}
|
|
193
|
+
if (config.tableName === 'qe_patterns') {
|
|
194
|
+
for (const p of rows) {
|
|
195
|
+
if (p.qe_domain)
|
|
196
|
+
domainSet.add(p.qe_domain);
|
|
143
197
|
}
|
|
198
|
+
}
|
|
199
|
+
// Serialize BLOBs to Base64 for JSON storage
|
|
200
|
+
const blobCols = TABLE_BLOB_COLUMNS[config.tableName];
|
|
201
|
+
if (blobCols && blobCols.length > 0) {
|
|
202
|
+
rows = rows.map(r => serializeRowBlobs(r, blobCols));
|
|
203
|
+
}
|
|
204
|
+
// Only these two tables are read back (domain-filtered lineage above).
|
|
205
|
+
if (config.tableName === 'qe_patterns' || config.tableName === 'learning_evidence_manifests') {
|
|
144
206
|
allTableData[config.tableName] = rows;
|
|
145
|
-
totalRecords += rows.length;
|
|
146
207
|
}
|
|
208
|
+
tableCounts[config.tableName] = rows.length;
|
|
209
|
+
totalRecords += rows.length;
|
|
210
|
+
const json = JSON.stringify(rows);
|
|
211
|
+
tableJson.push([config.tableName, json]);
|
|
212
|
+
tableBytes[config.tableName] = Buffer.byteLength(json);
|
|
213
|
+
kernelBytes += tableBytes[config.tableName];
|
|
214
|
+
if (kernelBytes > maxKernelBytes) {
|
|
215
|
+
throw new RvfKernelTooLargeError(kernelBytes, maxKernelBytes, tableBytes, false);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Same bytes JSON.stringify would produce for { version, format, exportedAt,
|
|
219
|
+
// sourceDb, domains, tables }, assembled from the per-table JSON above.
|
|
220
|
+
const exportedAt = new Date().toISOString();
|
|
221
|
+
const domains = [...domainSet].sort();
|
|
222
|
+
const brainJson = `{"version":"3.0","format":"rvf","exportedAt":${JSON.stringify(exportedAt)},` +
|
|
223
|
+
`"sourceDb":${JSON.stringify(sourceDbLabel)},"domains":${JSON.stringify(domains)},"tables":{` +
|
|
224
|
+
tableJson.map(([tableName, json]) => `${JSON.stringify(tableName)}:${json}`).join(',') +
|
|
225
|
+
'}}';
|
|
226
|
+
tableJson.length = 0;
|
|
227
|
+
const kernelBuffer = Buffer.from(brainJson);
|
|
228
|
+
if (kernelBuffer.length > maxKernelBytes) {
|
|
229
|
+
throw new RvfKernelTooLargeError(kernelBuffer.length, maxKernelBytes, tableBytes, true);
|
|
230
|
+
}
|
|
231
|
+
const checksum = sha256(brainJson);
|
|
232
|
+
// Create RVF container via adapter (handles idmap automatically)
|
|
233
|
+
const rvf = createRvfStore(tmpPath, dimension);
|
|
234
|
+
let closed = false;
|
|
235
|
+
try {
|
|
147
236
|
// --- Ingest vector embeddings into HNSW ---
|
|
148
237
|
let embeddingCount = 0;
|
|
149
238
|
const embeddingEntries = [];
|
|
@@ -175,17 +264,6 @@ export function exportBrainToRvf(db, options, sourceDbLabel = 'memory.db') {
|
|
|
175
264
|
embeddingCount = result.accepted;
|
|
176
265
|
}
|
|
177
266
|
// --- Embed full brain data as kernel ---
|
|
178
|
-
const brainData = {
|
|
179
|
-
version: '3.0',
|
|
180
|
-
format: 'rvf',
|
|
181
|
-
exportedAt: new Date().toISOString(),
|
|
182
|
-
sourceDb: sourceDbLabel,
|
|
183
|
-
domains: [...domainSet].sort(),
|
|
184
|
-
tables: allTableData,
|
|
185
|
-
};
|
|
186
|
-
const brainJson = JSON.stringify(brainData);
|
|
187
|
-
const checksum = sha256(brainJson);
|
|
188
|
-
const kernelBuffer = Buffer.from(brainJson);
|
|
189
267
|
rvf.embedKernel(kernelBuffer);
|
|
190
268
|
// Optional Ed25519 signing
|
|
191
269
|
const signature = options.sign ? rvf.sign(kernelBuffer) ?? undefined : undefined;
|
|
@@ -199,18 +277,19 @@ export function exportBrainToRvf(db, options, sourceDbLabel = 'memory.db') {
|
|
|
199
277
|
const manifest = {
|
|
200
278
|
version: '3.0',
|
|
201
279
|
format: 'rvf',
|
|
202
|
-
exportedAt
|
|
280
|
+
exportedAt,
|
|
203
281
|
sourceDb: sourceDbLabel,
|
|
204
282
|
stats: {
|
|
205
|
-
patternCount:
|
|
283
|
+
patternCount: tableCounts['qe_patterns'] ?? 0,
|
|
206
284
|
embeddingCount,
|
|
207
|
-
qValueCount:
|
|
208
|
-
dreamInsightCount:
|
|
209
|
-
witnessChainLength:
|
|
285
|
+
qValueCount: tableCounts['rl_q_values'] ?? 0,
|
|
286
|
+
dreamInsightCount: tableCounts['dream_insights'] ?? 0,
|
|
287
|
+
witnessChainLength: tableCounts['witness_chain'] ?? 0,
|
|
210
288
|
totalRecords,
|
|
211
|
-
tableCounts
|
|
289
|
+
tableCounts,
|
|
290
|
+
...(Object.keys(skippedCacheRows).length > 0 ? { skippedCacheRows } : {}),
|
|
212
291
|
},
|
|
213
|
-
domains
|
|
292
|
+
domains,
|
|
214
293
|
checksum,
|
|
215
294
|
rvfStatus: {
|
|
216
295
|
totalVectors: status.totalVectors,
|
|
@@ -243,7 +322,9 @@ export function exportBrainToRvf(db, options, sourceDbLabel = 'memory.db') {
|
|
|
243
322
|
if (existsSync(outPath) && !options.allowOverwriteRicher) {
|
|
244
323
|
let existing;
|
|
245
324
|
try {
|
|
246
|
-
|
|
325
|
+
// Code-index vectors are no longer exported (#1238), so an older mirror
|
|
326
|
+
// that still holds them is compared on the rows both exports carry.
|
|
327
|
+
existing = readBrainInfo(outPath, true);
|
|
247
328
|
}
|
|
248
329
|
catch (error) {
|
|
249
330
|
if (hasReadableBrainKernel(outPath) || !isKnownUnusableRvfError(error)) {
|
|
@@ -468,6 +549,13 @@ export function importBrainFromRvf(db, rvfPath, options) {
|
|
|
468
549
|
// --- Info ---
|
|
469
550
|
/** Read brain info from an RVF file without importing. */
|
|
470
551
|
export function brainInfoFromRvf(rvfPath) {
|
|
552
|
+
return readBrainInfo(rvfPath, false);
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* `excludeCodeIndex` drops code-index vector rows from `tableCounts`, which
|
|
556
|
+
* makes them comparable with the counts of a current export.
|
|
557
|
+
*/
|
|
558
|
+
function readBrainInfo(rvfPath, excludeCodeIndex) {
|
|
471
559
|
if (!isRvfNativeAvailable()) {
|
|
472
560
|
throw new Error('@ruvector/rvf-node is not available.');
|
|
473
561
|
}
|
|
@@ -499,7 +587,12 @@ export function brainInfoFromRvf(rvfPath) {
|
|
|
499
587
|
const tableCounts = t && typeof t === 'object' && !Array.isArray(t)
|
|
500
588
|
? Object.fromEntries(Object.entries(t)
|
|
501
589
|
.filter((entry) => Array.isArray(entry[1]))
|
|
502
|
-
.map(([tableName, rows]) => [
|
|
590
|
+
.map(([tableName, rows]) => [
|
|
591
|
+
tableName,
|
|
592
|
+
excludeCodeIndex
|
|
593
|
+
? rows.filter(row => !isCodeIndexVectorRow(tableName, row)).length
|
|
594
|
+
: rows.length,
|
|
595
|
+
]))
|
|
503
596
|
: undefined;
|
|
504
597
|
return {
|
|
505
598
|
version: '3.0',
|
|
@@ -14,11 +14,18 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @module learning/dream/dream-engine
|
|
16
16
|
*/
|
|
17
|
+
/**
|
|
18
|
+
* #1239: how long retention waits for a locked database. better-sqlite3 waits
|
|
19
|
+
* synchronously, and retention is optional (the next dream retries), so it
|
|
20
|
+
* gives up quickly instead of using the engine's 60 s commit wait.
|
|
21
|
+
*/
|
|
22
|
+
export declare const RETENTION_BUSY_TIMEOUT_MS = 1000;
|
|
17
23
|
import { type ActivationConfig } from './spreading-activation.js';
|
|
18
24
|
import { type InsightConfig, type DreamInsight } from './insight-generator.js';
|
|
19
25
|
import { type Branch, type ValidationResult, type ValidationThresholds } from './rvcow-branch-manager.js';
|
|
20
26
|
import { type ComputedDream } from './dream-commit.js';
|
|
21
27
|
import type { WitnessChain } from '../../audit/witness-chain.js';
|
|
28
|
+
import { type DreamRetentionReport } from '../learning-retention.js';
|
|
22
29
|
import type { DreamCycle, PatternImportData, FailureImportData, SuccessImportData } from './types.js';
|
|
23
30
|
/**
|
|
24
31
|
* Complete DreamEngine configuration
|
|
@@ -66,6 +73,12 @@ export interface DreamCycleResult {
|
|
|
66
73
|
patternsCreated: number;
|
|
67
74
|
/** #1060: how long the single commit transaction held the write lock, in ms. */
|
|
68
75
|
commitDurationMs?: number;
|
|
76
|
+
/**
|
|
77
|
+
* #1239: dream retention after the commit, with row counts. Off by default
|
|
78
|
+
* (AQE_DREAM_RETENTION); while off, the steps are a dry run showing what
|
|
79
|
+
* they would remove.
|
|
80
|
+
*/
|
|
81
|
+
retention?: DreamRetentionReport;
|
|
69
82
|
/**
|
|
70
83
|
* #1060: the uncommitted results of a `dream(…, { commit: false })` run.
|
|
71
84
|
* Pass the result to DreamEngine.commitDreamResult() to write them.
|
|
@@ -199,11 +212,22 @@ export declare class DreamEngine {
|
|
|
199
212
|
* #1060: write the results of a `dream(…, { commit: false })` run, in the
|
|
200
213
|
* same single transaction a normal dream uses. Returns the commit duration
|
|
201
214
|
* in ms. Throws (and writes nothing) if the engine is closed or the write
|
|
202
|
-
* fails.
|
|
215
|
+
* fails. #1253: async, because a locked database is retried without
|
|
216
|
+
* blocking the process.
|
|
217
|
+
*/
|
|
218
|
+
commitDreamResult(result: DreamCycleResult): Promise<number>;
|
|
219
|
+
/**
|
|
220
|
+
* Commit a computed dream, then record it in the witness chain (#1060) and
|
|
221
|
+
* run the default retention steps (#1239).
|
|
203
222
|
*/
|
|
204
|
-
commitDreamResult(result: DreamCycleResult): number;
|
|
205
|
-
/** Commit a computed dream, then record it in the witness chain (#1060). */
|
|
206
223
|
private commitComputed;
|
|
224
|
+
/**
|
|
225
|
+
* #1239: after a committed dream, drop failed cycles past their retention
|
|
226
|
+
* window and outcome concepts beyond the cap when AQE_DREAM_RETENTION=on;
|
|
227
|
+
* otherwise only count what that would remove. The dream is already
|
|
228
|
+
* committed, so a failure here (a locked database, say) is only logged.
|
|
229
|
+
*/
|
|
230
|
+
private runDefaultRetention;
|
|
207
231
|
/**
|
|
208
232
|
* #1060: build a synchronous handler that stops a still-running dream and
|
|
209
233
|
* records its cycle as 'interrupted'. It runs from close() and from a
|