@archipelagolab/lobi 1.0.1 → 1.0.6
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/dist/APEv2Parser-6EMKXRZS.js +15 -0
- package/dist/APEv2Parser-6EMKXRZS.js.map +7 -0
- package/dist/APEv2Parser-FYYGMFPI.js +15 -0
- package/dist/APEv2Parser-FYYGMFPI.js.map +7 -0
- package/dist/AiffParser-E6XWRTXM.js +194 -0
- package/dist/AiffParser-E6XWRTXM.js.map +7 -0
- package/dist/AiffParser-JHSDQA7T.js +194 -0
- package/dist/AiffParser-JHSDQA7T.js.map +7 -0
- package/dist/AsfParser-TPCQDEJB.js +620 -0
- package/dist/AsfParser-TPCQDEJB.js.map +7 -0
- package/dist/AsfParser-WSOH2JQY.js +620 -0
- package/dist/AsfParser-WSOH2JQY.js.map +7 -0
- package/dist/DsdiffParser-CGD3C3TL.js +192 -0
- package/dist/DsdiffParser-CGD3C3TL.js.map +7 -0
- package/dist/DsdiffParser-EUWJ4YAR.js +192 -0
- package/dist/DsdiffParser-EUWJ4YAR.js.map +7 -0
- package/dist/DsfParser-3UTIJVNF.js +114 -0
- package/dist/DsfParser-3UTIJVNF.js.map +7 -0
- package/dist/DsfParser-R6TPBJIY.js +114 -0
- package/dist/DsfParser-R6TPBJIY.js.map +7 -0
- package/dist/FlacParser-HLLYPJ76.js +16 -0
- package/dist/FlacParser-HLLYPJ76.js.map +7 -0
- package/dist/FlacParser-VDASGZ3E.js +16 -0
- package/dist/FlacParser-VDASGZ3E.js.map +7 -0
- package/dist/MP4Parser-64RGJLUM.js +1145 -0
- package/dist/MP4Parser-64RGJLUM.js.map +7 -0
- package/dist/MP4Parser-SM7HYL3Z.js +1145 -0
- package/dist/MP4Parser-SM7HYL3Z.js.map +7 -0
- package/dist/MatroskaParser-O6RXAKYA.js +662 -0
- package/dist/MatroskaParser-O6RXAKYA.js.map +7 -0
- package/dist/MatroskaParser-X7WRZ6D4.js +662 -0
- package/dist/MatroskaParser-X7WRZ6D4.js.map +7 -0
- package/dist/MpegParser-B6NX6DS3.js +652 -0
- package/dist/MpegParser-B6NX6DS3.js.map +7 -0
- package/dist/MpegParser-KXQEC6KD.js +652 -0
- package/dist/MpegParser-KXQEC6KD.js.map +7 -0
- package/dist/MusepackParser-NURI46TG.js +331 -0
- package/dist/MusepackParser-NURI46TG.js.map +7 -0
- package/dist/MusepackParser-WUBT63DS.js +331 -0
- package/dist/MusepackParser-WUBT63DS.js.map +7 -0
- package/dist/OggParser-5IYVBXPS.js +448 -0
- package/dist/OggParser-5IYVBXPS.js.map +7 -0
- package/dist/OggParser-ZY6E5C2P.js +448 -0
- package/dist/OggParser-ZY6E5C2P.js.map +7 -0
- package/dist/WavPackParser-5KTCSQEU.js +209 -0
- package/dist/WavPackParser-5KTCSQEU.js.map +7 -0
- package/dist/WavPackParser-RTEHKSJH.js +209 -0
- package/dist/WavPackParser-RTEHKSJH.js.map +7 -0
- package/dist/WaveParser-3R2NLXGP.js +300 -0
- package/dist/WaveParser-3R2NLXGP.js.map +7 -0
- package/dist/WaveParser-RZSHVQPZ.js +300 -0
- package/dist/WaveParser-RZSHVQPZ.js.map +7 -0
- package/dist/auth-presence.js +46 -0
- package/dist/auth-presence.js.map +7 -0
- package/dist/channel-plugin-api.js +79 -0
- package/dist/channel-plugin-api.js.map +7 -0
- package/dist/chunk-22WAAZ6I.js +114 -0
- package/dist/chunk-22WAAZ6I.js.map +7 -0
- package/dist/chunk-2A6HEFSO.js +676 -0
- package/dist/chunk-2A6HEFSO.js.map +7 -0
- package/dist/chunk-2GFROLI2.js +261 -0
- package/dist/chunk-2GFROLI2.js.map +7 -0
- package/dist/chunk-2IQWKATM.js +127 -0
- package/dist/chunk-2IQWKATM.js.map +7 -0
- package/dist/chunk-2KGHUHKU.js +169 -0
- package/dist/chunk-2KGHUHKU.js.map +7 -0
- package/dist/chunk-2NEQI4K6.js +171 -0
- package/dist/chunk-2NEQI4K6.js.map +7 -0
- package/dist/chunk-2OSJ3MTW.js +175 -0
- package/dist/chunk-2OSJ3MTW.js.map +7 -0
- package/dist/chunk-2Q626TDO.js +27 -0
- package/dist/chunk-2Q626TDO.js.map +7 -0
- package/dist/chunk-2U6OZ7N2.js +155 -0
- package/dist/chunk-2U6OZ7N2.js.map +7 -0
- package/dist/chunk-2V6Y4CAN.js +25 -0
- package/dist/chunk-2V6Y4CAN.js.map +7 -0
- package/dist/chunk-2WHRUMOM.js +321 -0
- package/dist/chunk-2WHRUMOM.js.map +7 -0
- package/dist/chunk-2Z4IOUDZ.js +129 -0
- package/dist/chunk-2Z4IOUDZ.js.map +7 -0
- package/dist/chunk-2ZEPAW7U.js +154 -0
- package/dist/chunk-2ZEPAW7U.js.map +7 -0
- package/dist/chunk-2ZI6JK5O.js +63 -0
- package/dist/chunk-2ZI6JK5O.js.map +7 -0
- package/dist/chunk-34UY6D6X.js +36 -0
- package/dist/chunk-34UY6D6X.js.map +7 -0
- package/dist/chunk-3GIK7SAA.js +109 -0
- package/dist/chunk-3GIK7SAA.js.map +7 -0
- package/dist/chunk-3JD6JSJD.js +111 -0
- package/dist/chunk-3JD6JSJD.js.map +7 -0
- package/dist/chunk-3OXOEMBS.js +123 -0
- package/dist/chunk-3OXOEMBS.js.map +7 -0
- package/dist/chunk-3R4ATE4Q.js +176 -0
- package/dist/chunk-3R4ATE4Q.js.map +7 -0
- package/dist/chunk-3TOEIHG5.js +314 -0
- package/dist/chunk-3TOEIHG5.js.map +7 -0
- package/dist/chunk-3TRKKAVT.js +130 -0
- package/dist/chunk-3TRKKAVT.js.map +7 -0
- package/dist/chunk-3UFTTK7C.js +418 -0
- package/dist/chunk-3UFTTK7C.js.map +7 -0
- package/dist/chunk-3XO6AAIC.js +25 -0
- package/dist/chunk-3XO6AAIC.js.map +7 -0
- package/dist/chunk-427SAQME.js +321 -0
- package/dist/chunk-427SAQME.js.map +7 -0
- package/dist/chunk-4CFQNJ7F.js +7 -0
- package/dist/chunk-4CFQNJ7F.js.map +7 -0
- package/dist/chunk-4COI4L2Y.js +31 -0
- package/dist/chunk-4COI4L2Y.js.map +7 -0
- package/dist/chunk-4EKKDVG3.js +1662 -0
- package/dist/chunk-4EKKDVG3.js.map +7 -0
- package/dist/chunk-4JVNTZAI.js +80 -0
- package/dist/chunk-4JVNTZAI.js.map +7 -0
- package/dist/chunk-4L2QI6AY.js +71 -0
- package/dist/chunk-4L2QI6AY.js.map +7 -0
- package/dist/chunk-4O3BEYYM.js +187 -0
- package/dist/chunk-4O3BEYYM.js.map +7 -0
- package/dist/chunk-4OXPPDV6.js +676 -0
- package/dist/chunk-4OXPPDV6.js.map +7 -0
- package/dist/chunk-4QTZHELX.js +51 -0
- package/dist/chunk-4QTZHELX.js.map +7 -0
- package/dist/chunk-4U42OJMK.js +217 -0
- package/dist/chunk-4U42OJMK.js.map +7 -0
- package/dist/chunk-4WCKVGQ5.js +193 -0
- package/dist/chunk-4WCKVGQ5.js.map +7 -0
- package/dist/chunk-4XXERLFH.js +95 -0
- package/dist/chunk-4XXERLFH.js.map +7 -0
- package/dist/chunk-4Z2N4GW6.js +247 -0
- package/dist/chunk-4Z2N4GW6.js.map +7 -0
- package/dist/chunk-4ZY2BOQ4.js +123 -0
- package/dist/chunk-4ZY2BOQ4.js.map +7 -0
- package/dist/chunk-56HN4SH6.js +46 -0
- package/dist/chunk-56HN4SH6.js.map +7 -0
- package/dist/chunk-57ROEOHB.js +183 -0
- package/dist/chunk-57ROEOHB.js.map +7 -0
- package/dist/chunk-5APBBTGW.js +7 -0
- package/dist/chunk-5APBBTGW.js.map +7 -0
- package/dist/chunk-5BQ6LLNU.js +39 -0
- package/dist/chunk-5BQ6LLNU.js.map +7 -0
- package/dist/chunk-5LNGMBWW.js +93 -0
- package/dist/chunk-5LNGMBWW.js.map +7 -0
- package/dist/chunk-5XFQSYZ4.js +52 -0
- package/dist/chunk-5XFQSYZ4.js.map +7 -0
- package/dist/chunk-62N5N4AC.js +241 -0
- package/dist/chunk-62N5N4AC.js.map +7 -0
- package/dist/chunk-63QTHDJL.js +52 -0
- package/dist/chunk-63QTHDJL.js.map +7 -0
- package/dist/chunk-65UUVZ6B.js +151 -0
- package/dist/chunk-65UUVZ6B.js.map +7 -0
- package/dist/chunk-6COVTMAO.js +3586 -0
- package/dist/chunk-6COVTMAO.js.map +7 -0
- package/dist/chunk-6EYPDJUD.js +34 -0
- package/dist/chunk-6EYPDJUD.js.map +7 -0
- package/dist/chunk-6HDYPVA4.js +15 -0
- package/dist/chunk-6HDYPVA4.js.map +7 -0
- package/dist/chunk-6HX3DEXK.js +178 -0
- package/dist/chunk-6HX3DEXK.js.map +7 -0
- package/dist/chunk-6NO5VEVV.js +18 -0
- package/dist/chunk-6NO5VEVV.js.map +7 -0
- package/dist/chunk-6OP3FK5F.js +266 -0
- package/dist/chunk-6OP3FK5F.js.map +7 -0
- package/dist/chunk-6PZGDVLR.js +465 -0
- package/dist/chunk-6PZGDVLR.js.map +7 -0
- package/dist/chunk-6RBDFNSX.js +88 -0
- package/dist/chunk-6RBDFNSX.js.map +7 -0
- package/dist/chunk-6SOGH3TW.js +163 -0
- package/dist/chunk-6SOGH3TW.js.map +7 -0
- package/dist/chunk-6TWWCETB.js +70 -0
- package/dist/chunk-6TWWCETB.js.map +7 -0
- package/dist/chunk-6WFHPMUF.js +17 -0
- package/dist/chunk-6WFHPMUF.js.map +7 -0
- package/dist/chunk-72TGY3LX.js +104 -0
- package/dist/chunk-72TGY3LX.js.map +7 -0
- package/dist/chunk-76IE55K7.js +392 -0
- package/dist/chunk-76IE55K7.js.map +7 -0
- package/dist/chunk-77BEEAPD.js +86 -0
- package/dist/chunk-77BEEAPD.js.map +7 -0
- package/dist/chunk-77JJ6QJK.js +50 -0
- package/dist/chunk-77JJ6QJK.js.map +7 -0
- package/dist/chunk-7BIUNV33.js +62 -0
- package/dist/chunk-7BIUNV33.js.map +7 -0
- package/dist/chunk-7F3242AO.js +86 -0
- package/dist/chunk-7F3242AO.js.map +7 -0
- package/dist/chunk-7FLQSTPG.js +57 -0
- package/dist/chunk-7FLQSTPG.js.map +7 -0
- package/dist/chunk-7L37R42D.js +52 -0
- package/dist/chunk-7L37R42D.js.map +7 -0
- package/dist/chunk-7MP46JBP.js +177 -0
- package/dist/chunk-7MP46JBP.js.map +7 -0
- package/dist/chunk-7MVZYR2T.js +87 -0
- package/dist/chunk-7MVZYR2T.js.map +7 -0
- package/dist/chunk-7N7ISMPG.js +50 -0
- package/dist/chunk-7N7ISMPG.js.map +7 -0
- package/dist/chunk-7S7LQQPX.js +127 -0
- package/dist/chunk-7S7LQQPX.js.map +7 -0
- package/dist/chunk-7TTNY5FK.js +21 -0
- package/dist/chunk-7TTNY5FK.js.map +7 -0
- package/dist/chunk-7W73QCTR.js +244 -0
- package/dist/chunk-7W73QCTR.js.map +7 -0
- package/dist/chunk-7XXLU33Y.js +76 -0
- package/dist/chunk-7XXLU33Y.js.map +7 -0
- package/dist/chunk-7ZP3KYVO.js +104 -0
- package/dist/chunk-7ZP3KYVO.js.map +7 -0
- package/dist/chunk-AAO7BQEV.js +258 -0
- package/dist/chunk-AAO7BQEV.js.map +7 -0
- package/dist/chunk-AH4MLRYT.js +91 -0
- package/dist/chunk-AH4MLRYT.js.map +7 -0
- package/dist/chunk-AHKR32FH.js +7 -0
- package/dist/chunk-AHKR32FH.js.map +7 -0
- package/dist/chunk-ALKRFDAW.js +94 -0
- package/dist/chunk-ALKRFDAW.js.map +7 -0
- package/dist/chunk-AQQGAE7N.js +12 -0
- package/dist/chunk-AQQGAE7N.js.map +7 -0
- package/dist/chunk-ARGF232V.js +32 -0
- package/dist/chunk-ARGF232V.js.map +7 -0
- package/dist/chunk-ATCJOK3K.js +24 -0
- package/dist/chunk-ATCJOK3K.js.map +7 -0
- package/dist/chunk-AUUABFHL.js +124 -0
- package/dist/chunk-AUUABFHL.js.map +7 -0
- package/dist/chunk-AWW3YUGJ.js +193 -0
- package/dist/chunk-AWW3YUGJ.js.map +7 -0
- package/dist/chunk-AX7VEEWJ.js +158 -0
- package/dist/chunk-AX7VEEWJ.js.map +7 -0
- package/dist/chunk-B3NTODO7.js +57 -0
- package/dist/chunk-B3NTODO7.js.map +7 -0
- package/dist/chunk-BAX7Q6GR.js +55 -0
- package/dist/chunk-BAX7Q6GR.js.map +7 -0
- package/dist/chunk-BBM6BR3Z.js +28 -0
- package/dist/chunk-BBM6BR3Z.js.map +7 -0
- package/dist/chunk-BHXZMHSX.js +109 -0
- package/dist/chunk-BHXZMHSX.js.map +7 -0
- package/dist/chunk-BIUXDLVY.js +62 -0
- package/dist/chunk-BIUXDLVY.js.map +7 -0
- package/dist/chunk-BM7J2W36.js +86 -0
- package/dist/chunk-BM7J2W36.js.map +7 -0
- package/dist/chunk-BMFZL2P4.js +97 -0
- package/dist/chunk-BMFZL2P4.js.map +7 -0
- package/dist/chunk-BQXEXK4H.js +114 -0
- package/dist/chunk-BQXEXK4H.js.map +7 -0
- package/dist/chunk-BU2CTWBG.js +30 -0
- package/dist/chunk-BU2CTWBG.js.map +7 -0
- package/dist/chunk-BVKSCLF7.js +195 -0
- package/dist/chunk-BVKSCLF7.js.map +7 -0
- package/dist/chunk-BWA3D22L.js +88 -0
- package/dist/chunk-BWA3D22L.js.map +7 -0
- package/dist/chunk-CE24RSPL.js +506 -0
- package/dist/chunk-CE24RSPL.js.map +7 -0
- package/dist/chunk-CEB5S2Z5.js +127 -0
- package/dist/chunk-CEB5S2Z5.js.map +7 -0
- package/dist/chunk-CEKNTCJD.js +177 -0
- package/dist/chunk-CEKNTCJD.js.map +7 -0
- package/dist/chunk-CETZGSCP.js +71 -0
- package/dist/chunk-CETZGSCP.js.map +7 -0
- package/dist/chunk-CGBWMONK.js +412 -0
- package/dist/chunk-CGBWMONK.js.map +7 -0
- package/dist/chunk-CGFDIH77.js +94 -0
- package/dist/chunk-CGFDIH77.js.map +7 -0
- package/dist/chunk-CPLEC5LJ.js +26 -0
- package/dist/chunk-CPLEC5LJ.js.map +7 -0
- package/dist/chunk-CPNIXMGX.js +127 -0
- package/dist/chunk-CPNIXMGX.js.map +7 -0
- package/dist/chunk-CSJO73LD.js +84 -0
- package/dist/chunk-CSJO73LD.js.map +7 -0
- package/dist/chunk-CTKBDSL6.js +81 -0
- package/dist/chunk-CTKBDSL6.js.map +7 -0
- package/dist/chunk-CY6WHUCW.js +54 -0
- package/dist/chunk-CY6WHUCW.js.map +7 -0
- package/dist/chunk-D4GYYYMW.js +155 -0
- package/dist/chunk-D4GYYYMW.js.map +7 -0
- package/dist/chunk-D64CZG54.js +78 -0
- package/dist/chunk-D64CZG54.js.map +7 -0
- package/dist/chunk-D7Q6Z74D.js +123 -0
- package/dist/chunk-D7Q6Z74D.js.map +7 -0
- package/dist/chunk-DSGPDHF2.js +737 -0
- package/dist/chunk-DSGPDHF2.js.map +7 -0
- package/dist/chunk-DZIM4OWK.js +17 -0
- package/dist/chunk-DZIM4OWK.js.map +7 -0
- package/dist/chunk-E3GC4V5V.js +30 -0
- package/dist/chunk-E3GC4V5V.js.map +7 -0
- package/dist/chunk-E5HPDHCW.js +34 -0
- package/dist/chunk-E5HPDHCW.js.map +7 -0
- package/dist/chunk-E75BJJZ2.js +635 -0
- package/dist/chunk-E75BJJZ2.js.map +7 -0
- package/dist/chunk-EBXHW7ZO.js +108 -0
- package/dist/chunk-EBXHW7ZO.js.map +7 -0
- package/dist/chunk-EE4DHUUZ.js +472 -0
- package/dist/chunk-EE4DHUUZ.js.map +7 -0
- package/dist/chunk-EHELTAAD.js +198 -0
- package/dist/chunk-EHELTAAD.js.map +7 -0
- package/dist/chunk-EKXPSI7Z.js +135 -0
- package/dist/chunk-EKXPSI7Z.js.map +7 -0
- package/dist/chunk-EO35SCFP.js +7 -0
- package/dist/chunk-EO35SCFP.js.map +7 -0
- package/dist/chunk-ER2XTD2S.js +271 -0
- package/dist/chunk-ER2XTD2S.js.map +7 -0
- package/dist/chunk-ERCH75SH.js +292 -0
- package/dist/chunk-ERCH75SH.js.map +7 -0
- package/dist/chunk-ERXO3674.js +54 -0
- package/dist/chunk-ERXO3674.js.map +7 -0
- package/dist/chunk-EVFWZGFL.js +235 -0
- package/dist/chunk-EVFWZGFL.js.map +7 -0
- package/dist/chunk-EVPBRKMZ.js +45 -0
- package/dist/chunk-EVPBRKMZ.js.map +7 -0
- package/dist/chunk-F43CC2X2.js +49 -0
- package/dist/chunk-F43CC2X2.js.map +7 -0
- package/dist/chunk-F64TXVJJ.js +158 -0
- package/dist/chunk-F64TXVJJ.js.map +7 -0
- package/dist/chunk-F6AFJHWV.js +45 -0
- package/dist/chunk-F6AFJHWV.js.map +7 -0
- package/dist/chunk-F6APWSAA.js +51 -0
- package/dist/chunk-F6APWSAA.js.map +7 -0
- package/dist/chunk-F7LNS7G3.js +235 -0
- package/dist/chunk-F7LNS7G3.js.map +7 -0
- package/dist/chunk-FCNWR7ZX.js +16352 -0
- package/dist/chunk-FCNWR7ZX.js.map +7 -0
- package/dist/chunk-FFCG5NRU.js +87 -0
- package/dist/chunk-FFCG5NRU.js.map +7 -0
- package/dist/chunk-FG4NVFKM.js +455 -0
- package/dist/chunk-FG4NVFKM.js.map +7 -0
- package/dist/chunk-FHNEN6IR.js +14 -0
- package/dist/chunk-FHNEN6IR.js.map +7 -0
- package/dist/chunk-FJFC6CRR.js +446 -0
- package/dist/chunk-FJFC6CRR.js.map +7 -0
- package/dist/chunk-FK6RGYBB.js +46 -0
- package/dist/chunk-FK6RGYBB.js.map +7 -0
- package/dist/chunk-FMY6KXK6.js +251 -0
- package/dist/chunk-FMY6KXK6.js.map +7 -0
- package/dist/chunk-FPH56SCM.js +21 -0
- package/dist/chunk-FPH56SCM.js.map +7 -0
- package/dist/chunk-FQ4R7IOX.js +32 -0
- package/dist/chunk-FQ4R7IOX.js.map +7 -0
- package/dist/chunk-FQPYAPJJ.js +124 -0
- package/dist/chunk-FQPYAPJJ.js.map +7 -0
- package/dist/chunk-FQTLJO4W.js +335 -0
- package/dist/chunk-FQTLJO4W.js.map +7 -0
- package/dist/chunk-FVLJSB2W.js +124 -0
- package/dist/chunk-FVLJSB2W.js.map +7 -0
- package/dist/chunk-FVSH4Z6T.js +173 -0
- package/dist/chunk-FVSH4Z6T.js.map +7 -0
- package/dist/chunk-FVWBLEAD.js +44 -0
- package/dist/chunk-FVWBLEAD.js.map +7 -0
- package/dist/chunk-FYRKBNTI.js +18 -0
- package/dist/chunk-FYRKBNTI.js.map +7 -0
- package/dist/chunk-FYSARMGS.js +93 -0
- package/dist/chunk-FYSARMGS.js.map +7 -0
- package/dist/chunk-FZJOJ6P4.js +28 -0
- package/dist/chunk-FZJOJ6P4.js.map +7 -0
- package/dist/chunk-G46GHNDU.js +4890 -0
- package/dist/chunk-G46GHNDU.js.map +7 -0
- package/dist/chunk-G4TIS2SC.js +56 -0
- package/dist/chunk-G4TIS2SC.js.map +7 -0
- package/dist/chunk-GD6L3SLC.js +30 -0
- package/dist/chunk-GD6L3SLC.js.map +7 -0
- package/dist/chunk-GGWS7NQP.js +247 -0
- package/dist/chunk-GGWS7NQP.js.map +7 -0
- package/dist/chunk-GI2ZANRY.js +24 -0
- package/dist/chunk-GI2ZANRY.js.map +7 -0
- package/dist/chunk-GK3XVKXT.js +737 -0
- package/dist/chunk-GK3XVKXT.js.map +7 -0
- package/dist/chunk-GKOWCDQV.js +699 -0
- package/dist/chunk-GKOWCDQV.js.map +7 -0
- package/dist/chunk-GLLRCKKE.js +26 -0
- package/dist/chunk-GLLRCKKE.js.map +7 -0
- package/dist/chunk-GNYG6I36.js +175 -0
- package/dist/chunk-GNYG6I36.js.map +7 -0
- package/dist/chunk-GRBJYAYF.js +129 -0
- package/dist/chunk-GRBJYAYF.js.map +7 -0
- package/dist/chunk-GVYGUH2V.js +7 -0
- package/dist/chunk-GVYGUH2V.js.map +7 -0
- package/dist/chunk-GXDQGBA2.js +106 -0
- package/dist/chunk-GXDQGBA2.js.map +7 -0
- package/dist/chunk-GZAGAWSU.js +28 -0
- package/dist/chunk-GZAGAWSU.js.map +7 -0
- package/dist/chunk-H23E72SB.js +163 -0
- package/dist/chunk-H23E72SB.js.map +7 -0
- package/dist/chunk-H2HY73I6.js +122 -0
- package/dist/chunk-H2HY73I6.js.map +7 -0
- package/dist/chunk-H5MLA6PA.js +29 -0
- package/dist/chunk-H5MLA6PA.js.map +7 -0
- package/dist/chunk-H6YVV7GE.js +22 -0
- package/dist/chunk-H6YVV7GE.js.map +7 -0
- package/dist/chunk-H7KAUMBC.js +635 -0
- package/dist/chunk-H7KAUMBC.js.map +7 -0
- package/dist/chunk-HDPICD3P.js +4890 -0
- package/dist/chunk-HDPICD3P.js.map +7 -0
- package/dist/chunk-HGHU3TVL.js +174 -0
- package/dist/chunk-HGHU3TVL.js.map +7 -0
- package/dist/chunk-HJ5E2JRL.js +88 -0
- package/dist/chunk-HJ5E2JRL.js.map +7 -0
- package/dist/chunk-HJW3CKZL.js +94 -0
- package/dist/chunk-HJW3CKZL.js.map +7 -0
- package/dist/chunk-HKF5EBER.js +418 -0
- package/dist/chunk-HKF5EBER.js.map +7 -0
- package/dist/chunk-HLUR35G5.js +30 -0
- package/dist/chunk-HLUR35G5.js.map +7 -0
- package/dist/chunk-HNIW2NZU.js +120 -0
- package/dist/chunk-HNIW2NZU.js.map +7 -0
- package/dist/chunk-HP5HMWOM.js +123 -0
- package/dist/chunk-HP5HMWOM.js.map +7 -0
- package/dist/chunk-HQSHS6IB.js +88 -0
- package/dist/chunk-HQSHS6IB.js.map +7 -0
- package/dist/chunk-HSXRCP25.js +171 -0
- package/dist/chunk-HSXRCP25.js.map +7 -0
- package/dist/chunk-HTV3R73W.js +51 -0
- package/dist/chunk-HTV3R73W.js.map +7 -0
- package/dist/chunk-I26OPZLO.js +28 -0
- package/dist/chunk-I26OPZLO.js.map +7 -0
- package/dist/chunk-I7JJQ4BQ.js +30 -0
- package/dist/chunk-I7JJQ4BQ.js.map +7 -0
- package/dist/chunk-IJ6Y4W7F.js +392 -0
- package/dist/chunk-IJ6Y4W7F.js.map +7 -0
- package/dist/chunk-IJCMYMZB.js +239 -0
- package/dist/chunk-IJCMYMZB.js.map +7 -0
- package/dist/chunk-IJH4NOQ4.js +18 -0
- package/dist/chunk-IJH4NOQ4.js.map +7 -0
- package/dist/chunk-IMHRZQRH.js +76 -0
- package/dist/chunk-IMHRZQRH.js.map +7 -0
- package/dist/chunk-INNENDEE.js +472 -0
- package/dist/chunk-INNENDEE.js.map +7 -0
- package/dist/chunk-IOTLSMEQ.js +177 -0
- package/dist/chunk-IOTLSMEQ.js.map +7 -0
- package/dist/chunk-IQYYEHSM.js +300 -0
- package/dist/chunk-IQYYEHSM.js.map +7 -0
- package/dist/chunk-IRA5NJ4Q.js +21 -0
- package/dist/chunk-IRA5NJ4Q.js.map +7 -0
- package/dist/chunk-IU7EXXK7.js +1662 -0
- package/dist/chunk-IU7EXXK7.js.map +7 -0
- package/dist/chunk-IUXAKDAY.js +102 -0
- package/dist/chunk-IUXAKDAY.js.map +7 -0
- package/dist/chunk-JB6ZQEVR.js +465 -0
- package/dist/chunk-JB6ZQEVR.js.map +7 -0
- package/dist/chunk-JCWNMWNY.js +102 -0
- package/dist/chunk-JCWNMWNY.js.map +7 -0
- package/dist/chunk-JGIZPU2Y.js +39 -0
- package/dist/chunk-JGIZPU2Y.js.map +7 -0
- package/dist/chunk-JIU4FXA7.js +485 -0
- package/dist/chunk-JIU4FXA7.js.map +7 -0
- package/dist/chunk-JMYIFYY5.js +233 -0
- package/dist/chunk-JMYIFYY5.js.map +7 -0
- package/dist/chunk-JSZBX2TA.js +5853 -0
- package/dist/chunk-JSZBX2TA.js.map +7 -0
- package/dist/chunk-JU2Y33DB.js +60 -0
- package/dist/chunk-JU2Y33DB.js.map +7 -0
- package/dist/chunk-JVLRI4RU.js +62 -0
- package/dist/chunk-JVLRI4RU.js.map +7 -0
- package/dist/chunk-JZ3AVNZC.js +44117 -0
- package/dist/chunk-JZ3AVNZC.js.map +7 -0
- package/dist/chunk-K3HEWOHN.js +30 -0
- package/dist/chunk-K3HEWOHN.js.map +7 -0
- package/dist/chunk-K5EK4WZV.js +7 -0
- package/dist/chunk-K5EK4WZV.js.map +7 -0
- package/dist/chunk-KAWXMSYC.js +58 -0
- package/dist/chunk-KAWXMSYC.js.map +7 -0
- package/dist/chunk-KEGPHS4C.js +80 -0
- package/dist/chunk-KEGPHS4C.js.map +7 -0
- package/dist/chunk-KHFWQ334.js +138 -0
- package/dist/chunk-KHFWQ334.js.map +7 -0
- package/dist/chunk-KJW6JLM6.js +95 -0
- package/dist/chunk-KJW6JLM6.js.map +7 -0
- package/dist/chunk-KSEANSJE.js +40 -0
- package/dist/chunk-KSEANSJE.js.map +7 -0
- package/dist/chunk-KVU54E6W.js +63 -0
- package/dist/chunk-KVU54E6W.js.map +7 -0
- package/dist/chunk-KXXVR3DC.js +244 -0
- package/dist/chunk-KXXVR3DC.js.map +7 -0
- package/dist/chunk-L5OUVMHK.js +174 -0
- package/dist/chunk-L5OUVMHK.js.map +7 -0
- package/dist/chunk-L5T6XUDP.js +412 -0
- package/dist/chunk-L5T6XUDP.js.map +7 -0
- package/dist/chunk-LIFXTQ4U.js +7287 -0
- package/dist/chunk-LIFXTQ4U.js.map +7 -0
- package/dist/chunk-LIVQ7GIO.js +86 -0
- package/dist/chunk-LIVQ7GIO.js.map +7 -0
- package/dist/chunk-LMD5UTKM.js +169 -0
- package/dist/chunk-LMD5UTKM.js.map +7 -0
- package/dist/chunk-LO4F6E3N.js +163 -0
- package/dist/chunk-LO4F6E3N.js.map +7 -0
- package/dist/chunk-LSVKDUNM.js +151 -0
- package/dist/chunk-LSVKDUNM.js.map +7 -0
- package/dist/chunk-LTXNC6JX.js +27 -0
- package/dist/chunk-LTXNC6JX.js.map +7 -0
- package/dist/chunk-LUGTGPT6.js +138 -0
- package/dist/chunk-LUGTGPT6.js.map +7 -0
- package/dist/chunk-LVMK2GPM.js +18 -0
- package/dist/chunk-LVMK2GPM.js.map +7 -0
- package/dist/chunk-LXVPETLK.js +1405 -0
- package/dist/chunk-LXVPETLK.js.map +7 -0
- package/dist/chunk-LZNW24OB.js +78 -0
- package/dist/chunk-LZNW24OB.js.map +7 -0
- package/dist/chunk-LZQFDJNW.js +300 -0
- package/dist/chunk-LZQFDJNW.js.map +7 -0
- package/dist/chunk-M4VQPIF4.js +5853 -0
- package/dist/chunk-M4VQPIF4.js.map +7 -0
- package/dist/chunk-M64QE4QC.js +64 -0
- package/dist/chunk-M64QE4QC.js.map +7 -0
- package/dist/chunk-MAF6PSCJ.js +44 -0
- package/dist/chunk-MAF6PSCJ.js.map +7 -0
- package/dist/chunk-MBIX6Z7U.js +80 -0
- package/dist/chunk-MBIX6Z7U.js.map +7 -0
- package/dist/chunk-MDLLXMC3.js +183 -0
- package/dist/chunk-MDLLXMC3.js.map +7 -0
- package/dist/chunk-MEI5HTWV.js +127 -0
- package/dist/chunk-MEI5HTWV.js.map +7 -0
- package/dist/chunk-MH74AJ3A.js +82 -0
- package/dist/chunk-MH74AJ3A.js.map +7 -0
- package/dist/chunk-MIFIM4PI.js +163 -0
- package/dist/chunk-MIFIM4PI.js.map +7 -0
- package/dist/chunk-MISZB5QJ.js +22 -0
- package/dist/chunk-MISZB5QJ.js.map +7 -0
- package/dist/chunk-MJ27XQYG.js +125 -0
- package/dist/chunk-MJ27XQYG.js.map +7 -0
- package/dist/chunk-MJ2GW6SU.js +163 -0
- package/dist/chunk-MJ2GW6SU.js.map +7 -0
- package/dist/chunk-MLQY5SKR.js +52 -0
- package/dist/chunk-MLQY5SKR.js.map +7 -0
- package/dist/chunk-MTMHGC3G.js +39 -0
- package/dist/chunk-MTMHGC3G.js.map +7 -0
- package/dist/chunk-MWBAW3YV.js +244 -0
- package/dist/chunk-MWBAW3YV.js.map +7 -0
- package/dist/chunk-MYSK3SIM.js +55 -0
- package/dist/chunk-MYSK3SIM.js.map +7 -0
- package/dist/chunk-MZGGB2YT.js +50 -0
- package/dist/chunk-MZGGB2YT.js.map +7 -0
- package/dist/chunk-N46MIZXB.js +154 -0
- package/dist/chunk-N46MIZXB.js.map +7 -0
- package/dist/chunk-N53537P6.js +31 -0
- package/dist/chunk-N53537P6.js.map +7 -0
- package/dist/chunk-N5CTFOLX.js +40 -0
- package/dist/chunk-N5CTFOLX.js.map +7 -0
- package/dist/chunk-N5SNGZJV.js +217 -0
- package/dist/chunk-N5SNGZJV.js.map +7 -0
- package/dist/chunk-NGCTBYQ3.js +181 -0
- package/dist/chunk-NGCTBYQ3.js.map +7 -0
- package/dist/chunk-NIFG55CE.js +52 -0
- package/dist/chunk-NIFG55CE.js.map +7 -0
- package/dist/chunk-NJ63ALPX.js +7 -0
- package/dist/chunk-NJ63ALPX.js.map +7 -0
- package/dist/chunk-NMUX7SGU.js +676 -0
- package/dist/chunk-NMUX7SGU.js.map +7 -0
- package/dist/chunk-NO7GMLNU.js +292 -0
- package/dist/chunk-NO7GMLNU.js.map +7 -0
- package/dist/chunk-NTOGVX2Y.js +92 -0
- package/dist/chunk-NTOGVX2Y.js.map +7 -0
- package/dist/chunk-NZVHE4IT.js +3101 -0
- package/dist/chunk-NZVHE4IT.js.map +7 -0
- package/dist/chunk-O5IVKDX7.js +30 -0
- package/dist/chunk-O5IVKDX7.js.map +7 -0
- package/dist/chunk-O7ORICEC.js +82 -0
- package/dist/chunk-O7ORICEC.js.map +7 -0
- package/dist/chunk-OBMBAM3N.js +73 -0
- package/dist/chunk-OBMBAM3N.js.map +7 -0
- package/dist/chunk-OFWMLQMU.js +7287 -0
- package/dist/chunk-OFWMLQMU.js.map +7 -0
- package/dist/chunk-OJ3ZUKBI.js +73 -0
- package/dist/chunk-OJ3ZUKBI.js.map +7 -0
- package/dist/chunk-OJJBD5K3.js +45 -0
- package/dist/chunk-OJJBD5K3.js.map +7 -0
- package/dist/chunk-OJTHE4B7.js +50 -0
- package/dist/chunk-OJTHE4B7.js.map +7 -0
- package/dist/chunk-OKDOVX4B.js +699 -0
- package/dist/chunk-OKDOVX4B.js.map +7 -0
- package/dist/chunk-OOYPYBTA.js +446 -0
- package/dist/chunk-OOYPYBTA.js.map +7 -0
- package/dist/chunk-OQP4W4AR.js +105 -0
- package/dist/chunk-OQP4W4AR.js.map +7 -0
- package/dist/chunk-OVMDMCZ5.js +241 -0
- package/dist/chunk-OVMDMCZ5.js.map +7 -0
- package/dist/chunk-OVTT2EKA.js +516 -0
- package/dist/chunk-OVTT2EKA.js.map +7 -0
- package/dist/chunk-OVU43GJK.js +63 -0
- package/dist/chunk-OVU43GJK.js.map +7 -0
- package/dist/chunk-P3TMARA6.js +18 -0
- package/dist/chunk-P3TMARA6.js.map +7 -0
- package/dist/chunk-P5N63LBS.js +94 -0
- package/dist/chunk-P5N63LBS.js.map +7 -0
- package/dist/chunk-PARITZ7F.js +28 -0
- package/dist/chunk-PARITZ7F.js.map +7 -0
- package/dist/chunk-PBQK4KY4.js +195 -0
- package/dist/chunk-PBQK4KY4.js.map +7 -0
- package/dist/chunk-PLMOTQ42.js +335 -0
- package/dist/chunk-PLMOTQ42.js.map +7 -0
- package/dist/chunk-PSL2AHIA.js +27 -0
- package/dist/chunk-PSL2AHIA.js.map +7 -0
- package/dist/chunk-Q5QT7JBM.js +92 -0
- package/dist/chunk-Q5QT7JBM.js.map +7 -0
- package/dist/chunk-Q6H5OV2R.js +180 -0
- package/dist/chunk-Q6H5OV2R.js.map +7 -0
- package/dist/chunk-Q7WA5DCR.js +62 -0
- package/dist/chunk-Q7WA5DCR.js.map +7 -0
- package/dist/chunk-QAR5POXD.js +472 -0
- package/dist/chunk-QAR5POXD.js.map +7 -0
- package/dist/chunk-QATEENP2.js +7 -0
- package/dist/chunk-QATEENP2.js.map +7 -0
- package/dist/chunk-QDT24CIA.js +485 -0
- package/dist/chunk-QDT24CIA.js.map +7 -0
- package/dist/chunk-QI3NB7D5.js +455 -0
- package/dist/chunk-QI3NB7D5.js.map +7 -0
- package/dist/chunk-QIDAVXSX.js +106 -0
- package/dist/chunk-QIDAVXSX.js.map +7 -0
- package/dist/chunk-QKIGQVP2.js +104 -0
- package/dist/chunk-QKIGQVP2.js.map +7 -0
- package/dist/chunk-QNJENPK2.js +81 -0
- package/dist/chunk-QNJENPK2.js.map +7 -0
- package/dist/chunk-R5S76YR5.js +12 -0
- package/dist/chunk-R5S76YR5.js.map +7 -0
- package/dist/chunk-R7ZBOXPS.js +163 -0
- package/dist/chunk-R7ZBOXPS.js.map +7 -0
- package/dist/chunk-RAL3KX76.js +239 -0
- package/dist/chunk-RAL3KX76.js.map +7 -0
- package/dist/chunk-REVXXWAS.js +31 -0
- package/dist/chunk-REVXXWAS.js.map +7 -0
- package/dist/chunk-RFH4HRZP.js +94 -0
- package/dist/chunk-RFH4HRZP.js.map +7 -0
- package/dist/chunk-RHITG64O.js +50 -0
- package/dist/chunk-RHITG64O.js.map +7 -0
- package/dist/chunk-RK5HZFP6.js +111 -0
- package/dist/chunk-RK5HZFP6.js.map +7 -0
- package/dist/chunk-RNGAGYCL.js +49 -0
- package/dist/chunk-RNGAGYCL.js.map +7 -0
- package/dist/chunk-RPCVN3JA.js +261 -0
- package/dist/chunk-RPCVN3JA.js.map +7 -0
- package/dist/chunk-RQ26XXFS.js +45 -0
- package/dist/chunk-RQ26XXFS.js.map +7 -0
- package/dist/chunk-RQQE5DDT.js +193 -0
- package/dist/chunk-RQQE5DDT.js.map +7 -0
- package/dist/chunk-RSA7PKZH.js +187 -0
- package/dist/chunk-RSA7PKZH.js.map +7 -0
- package/dist/chunk-RTSINQ4T.js +78 -0
- package/dist/chunk-RTSINQ4T.js.map +7 -0
- package/dist/chunk-RVOD3ESA.js +38 -0
- package/dist/chunk-RVOD3ESA.js.map +7 -0
- package/dist/chunk-SAOUP24A.js +70 -0
- package/dist/chunk-SAOUP24A.js.map +7 -0
- package/dist/chunk-SFZL2TCV.js +55 -0
- package/dist/chunk-SFZL2TCV.js.map +7 -0
- package/dist/chunk-SH6Y4CGQ.js +175 -0
- package/dist/chunk-SH6Y4CGQ.js.map +7 -0
- package/dist/chunk-SHBAAFFH.js +74 -0
- package/dist/chunk-SHBAAFFH.js.map +7 -0
- package/dist/chunk-SJPFUXBV.js +45 -0
- package/dist/chunk-SJPFUXBV.js.map +7 -0
- package/dist/chunk-SLIUQWAR.js +58 -0
- package/dist/chunk-SLIUQWAR.js.map +7 -0
- package/dist/chunk-SPNSM6SB.js +36 -0
- package/dist/chunk-SPNSM6SB.js.map +7 -0
- package/dist/chunk-SQUHLLK5.js +125 -0
- package/dist/chunk-SQUHLLK5.js.map +7 -0
- package/dist/chunk-SSEX66OL.js +39 -0
- package/dist/chunk-SSEX66OL.js.map +7 -0
- package/dist/chunk-SWWK35VQ.js +84 -0
- package/dist/chunk-SWWK35VQ.js.map +7 -0
- package/dist/chunk-SX2LOHOX.js +251 -0
- package/dist/chunk-SX2LOHOX.js.map +7 -0
- package/dist/chunk-T72EMFTX.js +74 -0
- package/dist/chunk-T72EMFTX.js.map +7 -0
- package/dist/chunk-TA2QJPPG.js +169 -0
- package/dist/chunk-TA2QJPPG.js.map +7 -0
- package/dist/chunk-TC5ZVFV6.js +292 -0
- package/dist/chunk-TC5ZVFV6.js.map +7 -0
- package/dist/chunk-TFD7ZIYD.js +105 -0
- package/dist/chunk-TFD7ZIYD.js.map +7 -0
- package/dist/chunk-TFEETDNY.js +78 -0
- package/dist/chunk-TFEETDNY.js.map +7 -0
- package/dist/chunk-TH6ONRWT.js +516 -0
- package/dist/chunk-TH6ONRWT.js.map +7 -0
- package/dist/chunk-THM2QV25.js +108 -0
- package/dist/chunk-THM2QV25.js.map +7 -0
- package/dist/chunk-TMQMQ67T.js +81 -0
- package/dist/chunk-TMQMQ67T.js.map +7 -0
- package/dist/chunk-TPYWUZOR.js +178 -0
- package/dist/chunk-TPYWUZOR.js.map +7 -0
- package/dist/chunk-TRWT2N6Z.js +15 -0
- package/dist/chunk-TRWT2N6Z.js.map +7 -0
- package/dist/chunk-TTXEM54Y.js +76 -0
- package/dist/chunk-TTXEM54Y.js.map +7 -0
- package/dist/chunk-U2O4LE6S.js +22 -0
- package/dist/chunk-U2O4LE6S.js.map +7 -0
- package/dist/chunk-U44IVNP2.js +91 -0
- package/dist/chunk-U44IVNP2.js.map +7 -0
- package/dist/chunk-U4LVIY5F.js +1405 -0
- package/dist/chunk-U4LVIY5F.js.map +7 -0
- package/dist/chunk-U767LCSG.js +78 -0
- package/dist/chunk-U767LCSG.js.map +7 -0
- package/dist/chunk-U7GKLHU6.js +120 -0
- package/dist/chunk-U7GKLHU6.js.map +7 -0
- package/dist/chunk-UAB5P5QO.js +60 -0
- package/dist/chunk-UAB5P5QO.js.map +7 -0
- package/dist/chunk-UDDWLWKZ.js +82 -0
- package/dist/chunk-UDDWLWKZ.js.map +7 -0
- package/dist/chunk-UEHPJQBL.js +38 -0
- package/dist/chunk-UEHPJQBL.js.map +7 -0
- package/dist/chunk-UIBV6IGR.js +31 -0
- package/dist/chunk-UIBV6IGR.js.map +7 -0
- package/dist/chunk-UIYFRUET.js +16352 -0
- package/dist/chunk-UIYFRUET.js.map +7 -0
- package/dist/chunk-UJS3TIVS.js +52 -0
- package/dist/chunk-UJS3TIVS.js.map +7 -0
- package/dist/chunk-UMMPB6FL.js +506 -0
- package/dist/chunk-UMMPB6FL.js.map +7 -0
- package/dist/chunk-UP42ACP7.js +27 -0
- package/dist/chunk-UP42ACP7.js.map +7 -0
- package/dist/chunk-UPEF7ETP.js +92 -0
- package/dist/chunk-UPEF7ETP.js.map +7 -0
- package/dist/chunk-UU5PSBSI.js +176 -0
- package/dist/chunk-UU5PSBSI.js.map +7 -0
- package/dist/chunk-UV63XYFU.js +173 -0
- package/dist/chunk-UV63XYFU.js.map +7 -0
- package/dist/chunk-UWPHOAOC.js +29 -0
- package/dist/chunk-UWPHOAOC.js.map +7 -0
- package/dist/chunk-UXDDOSJC.js +52 -0
- package/dist/chunk-UXDDOSJC.js.map +7 -0
- package/dist/chunk-V3VAOMCO.js +465 -0
- package/dist/chunk-V3VAOMCO.js.map +7 -0
- package/dist/chunk-VA7ENH2S.js +38 -0
- package/dist/chunk-VA7ENH2S.js.map +7 -0
- package/dist/chunk-VBDLTKI2.js +130 -0
- package/dist/chunk-VBDLTKI2.js.map +7 -0
- package/dist/chunk-VCWIKEJ7.js +7 -0
- package/dist/chunk-VCWIKEJ7.js.map +7 -0
- package/dist/chunk-VFPDFLVE.js +516 -0
- package/dist/chunk-VFPDFLVE.js.map +7 -0
- package/dist/chunk-VHG4FNIJ.js +93 -0
- package/dist/chunk-VHG4FNIJ.js.map +7 -0
- package/dist/chunk-VKOO6MIZ.js +51 -0
- package/dist/chunk-VKOO6MIZ.js.map +7 -0
- package/dist/chunk-VKXKRZG7.js +62 -0
- package/dist/chunk-VKXKRZG7.js.map +7 -0
- package/dist/chunk-VPQICZQR.js +93 -0
- package/dist/chunk-VPQICZQR.js.map +7 -0
- package/dist/chunk-VRBJNFPL.js +114 -0
- package/dist/chunk-VRBJNFPL.js.map +7 -0
- package/dist/chunk-VUOLPEUZ.js +7 -0
- package/dist/chunk-VUOLPEUZ.js.map +7 -0
- package/dist/chunk-VUU5KFH3.js +38 -0
- package/dist/chunk-VUU5KFH3.js.map +7 -0
- package/dist/chunk-VVBL5CFF.js +7 -0
- package/dist/chunk-VVBL5CFF.js.map +7 -0
- package/dist/chunk-VYZEQ6KY.js +22 -0
- package/dist/chunk-VYZEQ6KY.js.map +7 -0
- package/dist/chunk-W6SOBS7M.js +138 -0
- package/dist/chunk-W6SOBS7M.js.map +7 -0
- package/dist/chunk-WBPQVWSU.js +198 -0
- package/dist/chunk-WBPQVWSU.js.map +7 -0
- package/dist/chunk-WDOKKRTE.js +7 -0
- package/dist/chunk-WDOKKRTE.js.map +7 -0
- package/dist/chunk-WGXXKFN5.js +7 -0
- package/dist/chunk-WGXXKFN5.js.map +7 -0
- package/dist/chunk-WHPUUP3J.js +25 -0
- package/dist/chunk-WHPUUP3J.js.map +7 -0
- package/dist/chunk-WS6HWBKT.js +30 -0
- package/dist/chunk-WS6HWBKT.js.map +7 -0
- package/dist/chunk-XF7LD6VV.js +122 -0
- package/dist/chunk-XF7LD6VV.js.map +7 -0
- package/dist/chunk-XFTXM3RE.js +64 -0
- package/dist/chunk-XFTXM3RE.js.map +7 -0
- package/dist/chunk-XJABPO2T.js +235 -0
- package/dist/chunk-XJABPO2T.js.map +7 -0
- package/dist/chunk-XK6VF3H7.js +3586 -0
- package/dist/chunk-XK6VF3H7.js.map +7 -0
- package/dist/chunk-XOZPOHLG.js +233 -0
- package/dist/chunk-XOZPOHLG.js.map +7 -0
- package/dist/chunk-XQYIIPOJ.js +266 -0
- package/dist/chunk-XQYIIPOJ.js.map +7 -0
- package/dist/chunk-XR7DPSNX.js +195 -0
- package/dist/chunk-XR7DPSNX.js.map +7 -0
- package/dist/chunk-XYH4JC3U.js +7 -0
- package/dist/chunk-XYH4JC3U.js.map +7 -0
- package/dist/chunk-XZSAN55E.js +58 -0
- package/dist/chunk-XZSAN55E.js.map +7 -0
- package/dist/chunk-Y3KJR4OG.js +64 -0
- package/dist/chunk-Y3KJR4OG.js.map +7 -0
- package/dist/chunk-Y4JKH7FF.js +45 -0
- package/dist/chunk-Y4JKH7FF.js.map +7 -0
- package/dist/chunk-Y6CJN4ID.js +31 -0
- package/dist/chunk-Y6CJN4ID.js.map +7 -0
- package/dist/chunk-YABGJU5M.js +271 -0
- package/dist/chunk-YABGJU5M.js.map +7 -0
- package/dist/chunk-YB5UCHLN.js +314 -0
- package/dist/chunk-YB5UCHLN.js.map +7 -0
- package/dist/chunk-YEJH7ZC2.js +34 -0
- package/dist/chunk-YEJH7ZC2.js.map +7 -0
- package/dist/chunk-YF5DYD3X.js +97 -0
- package/dist/chunk-YF5DYD3X.js.map +7 -0
- package/dist/chunk-YFTE4H54.js +44117 -0
- package/dist/chunk-YFTE4H54.js.map +7 -0
- package/dist/chunk-YGVQZCE7.js +30 -0
- package/dist/chunk-YGVQZCE7.js.map +7 -0
- package/dist/chunk-YNHADHHS.js +138 -0
- package/dist/chunk-YNHADHHS.js.map +7 -0
- package/dist/chunk-YNJYMD43.js +392 -0
- package/dist/chunk-YNJYMD43.js.map +7 -0
- package/dist/chunk-YNYEQGVN.js +251 -0
- package/dist/chunk-YNYEQGVN.js.map +7 -0
- package/dist/chunk-YOAMBAM2.js +70 -0
- package/dist/chunk-YOAMBAM2.js.map +7 -0
- package/dist/chunk-YUPBD27Z.js +70 -0
- package/dist/chunk-YUPBD27Z.js.map +7 -0
- package/dist/chunk-YWE5AQPZ.js +258 -0
- package/dist/chunk-YWE5AQPZ.js.map +7 -0
- package/dist/chunk-YWHH3MB6.js +1405 -0
- package/dist/chunk-YWHH3MB6.js.map +7 -0
- package/dist/chunk-YXJ52FD5.js +271 -0
- package/dist/chunk-YXJ52FD5.js.map +7 -0
- package/dist/chunk-YZ6F5N7R.js +455 -0
- package/dist/chunk-YZ6F5N7R.js.map +7 -0
- package/dist/chunk-YZGORRQN.js +3101 -0
- package/dist/chunk-YZGORRQN.js.map +7 -0
- package/dist/chunk-Z6IVJ6ZW.js +30 -0
- package/dist/chunk-Z6IVJ6ZW.js.map +7 -0
- package/dist/chunk-ZFC44XJJ.js +86 -0
- package/dist/chunk-ZFC44XJJ.js.map +7 -0
- package/dist/chunk-ZFGRQIB6.js +38 -0
- package/dist/chunk-ZFGRQIB6.js.map +7 -0
- package/dist/chunk-ZGAUVPAB.js +14 -0
- package/dist/chunk-ZGAUVPAB.js.map +7 -0
- package/dist/chunk-ZGCATLM5.js +18 -0
- package/dist/chunk-ZGCATLM5.js.map +7 -0
- package/dist/chunk-ZJDJC5TP.js +82 -0
- package/dist/chunk-ZJDJC5TP.js.map +7 -0
- package/dist/chunk-ZJGZNPDK.js +171 -0
- package/dist/chunk-ZJGZNPDK.js.map +7 -0
- package/dist/chunk-ZJHBJWZX.js +699 -0
- package/dist/chunk-ZJHBJWZX.js.map +7 -0
- package/dist/chunk-ZNOTD65D.js +95 -0
- package/dist/chunk-ZNOTD65D.js.map +7 -0
- package/dist/chunk-ZQ2QIFXW.js +122 -0
- package/dist/chunk-ZQ2QIFXW.js.map +7 -0
- package/dist/chunk-ZRMXPQGY.js +241 -0
- package/dist/chunk-ZRMXPQGY.js.map +7 -0
- package/dist/chunk-ZSOPE7DO.js +92 -0
- package/dist/chunk-ZSOPE7DO.js.map +7 -0
- package/dist/chunk-ZVEE5IDC.js +3101 -0
- package/dist/chunk-ZVEE5IDC.js.map +7 -0
- package/dist/chunk-ZY247PXY.js +135 -0
- package/dist/chunk-ZY247PXY.js.map +7 -0
- package/dist/cli-metadata.js +12 -0
- package/dist/cli-metadata.js.map +7 -0
- package/dist/contract-api.js +104 -0
- package/dist/contract-api.js.map +7 -0
- package/dist/dist-DVBXHDB4.js +549 -0
- package/dist/dist-DVBXHDB4.js.map +7 -0
- package/dist/dist-F3K7S5SS.js +549 -0
- package/dist/dist-F3K7S5SS.js.map +7 -0
- package/dist/helper-api.js +51 -0
- package/dist/helper-api.js.map +7 -0
- package/dist/index.js +70 -0
- package/dist/index.js.map +7 -0
- package/dist/magic-string.es-ITIPPYGW.js +1315 -0
- package/dist/magic-string.es-ITIPPYGW.js.map +7 -0
- package/dist/magic-string.es-V5NOGTUV.js +1315 -0
- package/dist/magic-string.es-V5NOGTUV.js.map +7 -0
- package/dist/openclaw.plugin.json +23 -0
- package/dist/package.json +59 -0
- package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js +20 -0
- package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js.map +7 -0
- package/dist/plugin-entry.handlers.runtime-POD4CSHM.js +20 -0
- package/dist/plugin-entry.handlers.runtime-POD4CSHM.js.map +7 -0
- package/dist/plugin-entry.handlers.runtime-YOSG6V6U.js +20 -0
- package/dist/plugin-entry.handlers.runtime-YOSG6V6U.js.map +7 -0
- package/dist/runtime-api.js +104 -0
- package/dist/runtime-api.js.map +7 -0
- package/dist/rust-crypto-7KS7OJ3F.js +5323 -0
- package/dist/rust-crypto-7KS7OJ3F.js.map +7 -0
- package/dist/rust-crypto-H35BXWUU.js +5323 -0
- package/dist/rust-crypto-H35BXWUU.js.map +7 -0
- package/dist/secret-contract-api.js +18 -0
- package/dist/secret-contract-api.js.map +7 -0
- package/dist/setup-entry.js +22 -0
- package/dist/setup-entry.js.map +7 -0
- package/dist/src/account-selection.js +19 -0
- package/dist/src/account-selection.js.map +7 -0
- package/dist/src/actions.js +24 -0
- package/dist/src/actions.js.map +7 -0
- package/dist/src/approval-auth.js +27 -0
- package/dist/src/approval-auth.js.map +7 -0
- package/dist/src/approval-handler.runtime.js +378 -0
- package/dist/src/approval-handler.runtime.js.map +7 -0
- package/dist/src/approval-ids.js +9 -0
- package/dist/src/approval-ids.js.map +7 -0
- package/dist/src/approval-native.js +28 -0
- package/dist/src/approval-native.js.map +7 -0
- package/dist/src/approval-reactions.js +20 -0
- package/dist/src/approval-reactions.js.map +7 -0
- package/dist/src/auth-precedence.js +8 -0
- package/dist/src/auth-precedence.js.map +7 -0
- package/dist/src/channel-account-paths.js +11 -0
- package/dist/src/channel-account-paths.js.map +7 -0
- package/dist/src/channel.js +74 -0
- package/dist/src/channel.js.map +7 -0
- package/dist/src/channel.runtime.js +82 -0
- package/dist/src/channel.runtime.js.map +7 -0
- package/dist/src/cli-metadata.js +8 -0
- package/dist/src/cli-metadata.js.map +7 -0
- package/dist/src/cli.js +936 -0
- package/dist/src/cli.js.map +7 -0
- package/dist/src/config-adapter.js +26 -0
- package/dist/src/config-adapter.js.map +7 -0
- package/dist/src/config-schema.js +8 -0
- package/dist/src/config-schema.js.map +7 -0
- package/dist/src/directory-live.js +35 -0
- package/dist/src/directory-live.js.map +7 -0
- package/dist/src/doctor-contract.js +11 -0
- package/dist/src/doctor-contract.js.map +7 -0
- package/dist/src/doctor.js +42 -0
- package/dist/src/doctor.js.map +7 -0
- package/dist/src/env-vars.js +12 -0
- package/dist/src/env-vars.js.map +7 -0
- package/dist/src/exec-approval-resolver.js +10 -0
- package/dist/src/exec-approval-resolver.js.map +7 -0
- package/dist/src/exec-approvals.js +51 -0
- package/dist/src/exec-approvals.js.map +7 -0
- package/dist/src/group-mentions.js +28 -0
- package/dist/src/group-mentions.js.map +7 -0
- package/dist/src/legacy-crypto-inspector-availability.js +8 -0
- package/dist/src/legacy-crypto-inspector-availability.js.map +7 -0
- package/dist/src/legacy-crypto.js +26 -0
- package/dist/src/legacy-crypto.js.map +7 -0
- package/dist/src/legacy-state.js +24 -0
- package/dist/src/legacy-state.js.map +7 -0
- package/dist/src/matrix/account-config.js +16 -0
- package/dist/src/matrix/account-config.js.map +7 -0
- package/dist/src/matrix/accounts.js +31 -0
- package/dist/src/matrix/accounts.js.map +7 -0
- package/dist/src/matrix/actions/client.js +40 -0
- package/dist/src/matrix/actions/client.js.map +7 -0
- package/dist/src/matrix/actions/devices.js +42 -0
- package/dist/src/matrix/actions/devices.js.map +7 -0
- package/dist/src/matrix/actions/limits.js +8 -0
- package/dist/src/matrix/actions/limits.js.map +7 -0
- package/dist/src/matrix/actions/messages.js +49 -0
- package/dist/src/matrix/actions/messages.js.map +7 -0
- package/dist/src/matrix/actions/pins.js +46 -0
- package/dist/src/matrix/actions/pins.js.map +7 -0
- package/dist/src/matrix/actions/polls.js +37 -0
- package/dist/src/matrix/actions/polls.js.map +7 -0
- package/dist/src/matrix/actions/profile.js +38 -0
- package/dist/src/matrix/actions/profile.js.map +7 -0
- package/dist/src/matrix/actions/reactions.js +40 -0
- package/dist/src/matrix/actions/reactions.js.map +7 -0
- package/dist/src/matrix/actions/room.js +40 -0
- package/dist/src/matrix/actions/room.js.map +7 -0
- package/dist/src/matrix/actions/summary.js +19 -0
- package/dist/src/matrix/actions/summary.js.map +7 -0
- package/dist/src/matrix/actions/types.js +13 -0
- package/dist/src/matrix/actions/types.js.map +7 -0
- package/dist/src/matrix/actions/verification.js +77 -0
- package/dist/src/matrix/actions/verification.js.map +7 -0
- package/dist/src/matrix/actions.js +126 -0
- package/dist/src/matrix/actions.js.map +7 -0
- package/dist/src/matrix/active-client.js +10 -0
- package/dist/src/matrix/active-client.js.map +7 -0
- package/dist/src/matrix/async-lock.js +8 -0
- package/dist/src/matrix/async-lock.js.map +7 -0
- package/dist/src/matrix/backup-health.js +10 -0
- package/dist/src/matrix/backup-health.js.map +7 -0
- package/dist/src/matrix/client/config-runtime-api.js +24 -0
- package/dist/src/matrix/client/config-runtime-api.js.map +7 -0
- package/dist/src/matrix/client/config-secret-input.runtime.js +11 -0
- package/dist/src/matrix/client/config-secret-input.runtime.js.map +7 -0
- package/dist/src/matrix/client/config.js +42 -0
- package/dist/src/matrix/client/config.js.map +7 -0
- package/dist/src/matrix/client/create-client.js +20 -0
- package/dist/src/matrix/client/create-client.js.map +7 -0
- package/dist/src/matrix/client/env-auth.js +26 -0
- package/dist/src/matrix/client/env-auth.js.map +7 -0
- package/dist/src/matrix/client/file-sync-store.js +23 -0
- package/dist/src/matrix/client/file-sync-store.js.map +7 -0
- package/dist/src/matrix/client/logging.js +17 -0
- package/dist/src/matrix/client/logging.js.map +7 -0
- package/dist/src/matrix/client/migration-snapshot.runtime.js +13 -0
- package/dist/src/matrix/client/migration-snapshot.runtime.js.map +7 -0
- package/dist/src/matrix/client/private-network-host.js +8 -0
- package/dist/src/matrix/client/private-network-host.js.map +7 -0
- package/dist/src/matrix/client/runtime.js +8 -0
- package/dist/src/matrix/client/runtime.js.map +7 -0
- package/dist/src/matrix/client/shared.js +34 -0
- package/dist/src/matrix/client/shared.js.map +7 -0
- package/dist/src/matrix/client/storage.js +26 -0
- package/dist/src/matrix/client/storage.js.map +7 -0
- package/dist/src/matrix/client/types.js +7 -0
- package/dist/src/matrix/client/types.js.map +7 -0
- package/dist/src/matrix/client-bootstrap.js +15 -0
- package/dist/src/matrix/client-bootstrap.js.map +7 -0
- package/dist/src/matrix/client-resolver.test-helpers.js +122 -0
- package/dist/src/matrix/client-resolver.test-helpers.js.map +7 -0
- package/dist/src/matrix/client.js +63 -0
- package/dist/src/matrix/client.js.map +7 -0
- package/dist/src/matrix/config-paths.js +12 -0
- package/dist/src/matrix/config-paths.js.map +7 -0
- package/dist/src/matrix/config-update.js +17 -0
- package/dist/src/matrix/config-update.js.map +7 -0
- package/dist/src/matrix/credentials-read.js +22 -0
- package/dist/src/matrix/credentials-read.js.map +7 -0
- package/dist/src/matrix/credentials-write.runtime.js +24 -0
- package/dist/src/matrix/credentials-write.runtime.js.map +7 -0
- package/dist/src/matrix/credentials.js +90 -0
- package/dist/src/matrix/credentials.js.map +7 -0
- package/dist/src/matrix/deps.js +12 -0
- package/dist/src/matrix/deps.js.map +7 -0
- package/dist/src/matrix/device-health.js +10 -0
- package/dist/src/matrix/device-health.js.map +7 -0
- package/dist/src/matrix/direct-management.js +18 -0
- package/dist/src/matrix/direct-management.js.map +7 -0
- package/dist/src/matrix/direct-room.js +18 -0
- package/dist/src/matrix/direct-room.js.map +7 -0
- package/dist/src/matrix/draft-stream.js +33 -0
- package/dist/src/matrix/draft-stream.js.map +7 -0
- package/dist/src/matrix/encryption-guidance.js +17 -0
- package/dist/src/matrix/encryption-guidance.js.map +7 -0
- package/dist/src/matrix/errors.js +12 -0
- package/dist/src/matrix/errors.js.map +7 -0
- package/dist/src/matrix/format.js +13 -0
- package/dist/src/matrix/format.js.map +7 -0
- package/dist/src/matrix/legacy-crypto-inspector.js +72 -0
- package/dist/src/matrix/legacy-crypto-inspector.js.map +7 -0
- package/dist/src/matrix/media-errors.js +12 -0
- package/dist/src/matrix/media-errors.js.map +7 -0
- package/dist/src/matrix/media-text.js +22 -0
- package/dist/src/matrix/media-text.js.map +7 -0
- package/dist/src/matrix/monitor/access-state.js +9 -0
- package/dist/src/matrix/monitor/access-state.js.map +7 -0
- package/dist/src/matrix/monitor/ack-config.js +10 -0
- package/dist/src/matrix/monitor/ack-config.js.map +7 -0
- package/dist/src/matrix/monitor/allowlist.js +12 -0
- package/dist/src/matrix/monitor/allowlist.js.map +7 -0
- package/dist/src/matrix/monitor/auto-join.js +9 -0
- package/dist/src/matrix/monitor/auto-join.js.map +7 -0
- package/dist/src/matrix/monitor/config.js +37 -0
- package/dist/src/matrix/monitor/config.js.map +7 -0
- package/dist/src/matrix/monitor/context-summary.js +13 -0
- package/dist/src/matrix/monitor/context-summary.js.map +7 -0
- package/dist/src/matrix/monitor/direct.js +13 -0
- package/dist/src/matrix/monitor/direct.js.map +7 -0
- package/dist/src/matrix/monitor/events.js +20 -0
- package/dist/src/matrix/monitor/events.js.map +7 -0
- package/dist/src/matrix/monitor/handler.js +76 -0
- package/dist/src/matrix/monitor/handler.js.map +7 -0
- package/dist/src/matrix/monitor/handler.test-helpers.js +268 -0
- package/dist/src/matrix/monitor/handler.test-helpers.js.map +7 -0
- package/dist/src/matrix/monitor/inbound-dedupe.js +17 -0
- package/dist/src/matrix/monitor/inbound-dedupe.js.map +7 -0
- package/dist/src/matrix/monitor/index.js +502 -0
- package/dist/src/matrix/monitor/index.js.map +7 -0
- package/dist/src/matrix/monitor/legacy-crypto-restore.js +99 -0
- package/dist/src/matrix/monitor/legacy-crypto-restore.js.map +7 -0
- package/dist/src/matrix/monitor/location.js +11 -0
- package/dist/src/matrix/monitor/location.js.map +7 -0
- package/dist/src/matrix/monitor/media.js +10 -0
- package/dist/src/matrix/monitor/media.js.map +7 -0
- package/dist/src/matrix/monitor/mentions.js +9 -0
- package/dist/src/matrix/monitor/mentions.js.map +7 -0
- package/dist/src/matrix/monitor/reaction-events.js +38 -0
- package/dist/src/matrix/monitor/reaction-events.js.map +7 -0
- package/dist/src/matrix/monitor/recent-invite.js +10 -0
- package/dist/src/matrix/monitor/recent-invite.js.map +7 -0
- package/dist/src/matrix/monitor/replies.js +33 -0
- package/dist/src/matrix/monitor/replies.js.map +7 -0
- package/dist/src/matrix/monitor/reply-context.js +14 -0
- package/dist/src/matrix/monitor/reply-context.js.map +7 -0
- package/dist/src/matrix/monitor/room-history.js +10 -0
- package/dist/src/matrix/monitor/room-history.js.map +7 -0
- package/dist/src/matrix/monitor/room-info.js +9 -0
- package/dist/src/matrix/monitor/room-info.js.map +7 -0
- package/dist/src/matrix/monitor/rooms.js +9 -0
- package/dist/src/matrix/monitor/rooms.js.map +7 -0
- package/dist/src/matrix/monitor/route.js +12 -0
- package/dist/src/matrix/monitor/route.js.map +7 -0
- package/dist/src/matrix/monitor/runtime-api.js +40 -0
- package/dist/src/matrix/monitor/runtime-api.js.map +7 -0
- package/dist/src/matrix/monitor/startup-verification.js +174 -0
- package/dist/src/matrix/monitor/startup-verification.js.map +7 -0
- package/dist/src/matrix/monitor/startup.js +9 -0
- package/dist/src/matrix/monitor/startup.js.map +7 -0
- package/dist/src/matrix/monitor/status.js +10 -0
- package/dist/src/matrix/monitor/status.js.map +7 -0
- package/dist/src/matrix/monitor/sync-lifecycle.js +9 -0
- package/dist/src/matrix/monitor/sync-lifecycle.js.map +7 -0
- package/dist/src/matrix/monitor/task-runner.js +8 -0
- package/dist/src/matrix/monitor/task-runner.js.map +7 -0
- package/dist/src/matrix/monitor/thread-context.js +14 -0
- package/dist/src/matrix/monitor/thread-context.js.map +7 -0
- package/dist/src/matrix/monitor/threads.js +16 -0
- package/dist/src/matrix/monitor/threads.js.map +7 -0
- package/dist/src/matrix/monitor/types.js +11 -0
- package/dist/src/matrix/monitor/types.js.map +7 -0
- package/dist/src/matrix/monitor/verification-events.js +13 -0
- package/dist/src/matrix/monitor/verification-events.js.map +7 -0
- package/dist/src/matrix/monitor/verification-utils.js +16 -0
- package/dist/src/matrix/monitor/verification-utils.js.map +7 -0
- package/dist/src/matrix/outbound-media-runtime.js +9 -0
- package/dist/src/matrix/outbound-media-runtime.js.map +7 -0
- package/dist/src/matrix/poll-summary.js +14 -0
- package/dist/src/matrix/poll-summary.js.map +7 -0
- package/dist/src/matrix/poll-types.js +55 -0
- package/dist/src/matrix/poll-types.js.map +7 -0
- package/dist/src/matrix/probe.js +9 -0
- package/dist/src/matrix/probe.js.map +7 -0
- package/dist/src/matrix/probe.runtime.js +30 -0
- package/dist/src/matrix/probe.runtime.js.map +7 -0
- package/dist/src/matrix/profile.js +16 -0
- package/dist/src/matrix/profile.js.map +7 -0
- package/dist/src/matrix/reaction-common.js +26 -0
- package/dist/src/matrix/reaction-common.js.map +7 -0
- package/dist/src/matrix/sdk/crypto-bootstrap.js +15 -0
- package/dist/src/matrix/sdk/crypto-bootstrap.js.map +7 -0
- package/dist/src/matrix/sdk/crypto-facade.js +8 -0
- package/dist/src/matrix/sdk/crypto-facade.js.map +7 -0
- package/dist/src/matrix/sdk/crypto-node.runtime.js +14 -0
- package/dist/src/matrix/sdk/crypto-node.runtime.js.map +7 -0
- package/dist/src/matrix/sdk/crypto-runtime.js +84 -0
- package/dist/src/matrix/sdk/crypto-runtime.js.map +7 -0
- package/dist/src/matrix/sdk/decrypt-bridge.js +11 -0
- package/dist/src/matrix/sdk/decrypt-bridge.js.map +7 -0
- package/dist/src/matrix/sdk/event-helpers.js +12 -0
- package/dist/src/matrix/sdk/event-helpers.js.map +7 -0
- package/dist/src/matrix/sdk/http-client.js +13 -0
- package/dist/src/matrix/sdk/http-client.js.map +7 -0
- package/dist/src/matrix/sdk/idb-persistence-lock.js +12 -0
- package/dist/src/matrix/sdk/idb-persistence-lock.js.map +7 -0
- package/dist/src/matrix/sdk/idb-persistence.js +13 -0
- package/dist/src/matrix/sdk/idb-persistence.js.map +7 -0
- package/dist/src/matrix/sdk/idb-persistence.test-helpers.js +83 -0
- package/dist/src/matrix/sdk/idb-persistence.test-helpers.js.map +7 -0
- package/dist/src/matrix/sdk/logger.js +15 -0
- package/dist/src/matrix/sdk/logger.js.map +7 -0
- package/dist/src/matrix/sdk/read-response-with-limit.js +8 -0
- package/dist/src/matrix/sdk/read-response-with-limit.js.map +7 -0
- package/dist/src/matrix/sdk/recovery-key-store.js +14 -0
- package/dist/src/matrix/sdk/recovery-key-store.js.map +7 -0
- package/dist/src/matrix/sdk/transport.js +13 -0
- package/dist/src/matrix/sdk/transport.js.map +7 -0
- package/dist/src/matrix/sdk/types.js +7 -0
- package/dist/src/matrix/sdk/types.js.map +7 -0
- package/dist/src/matrix/sdk/verification-manager.js +11 -0
- package/dist/src/matrix/sdk/verification-manager.js.map +7 -0
- package/dist/src/matrix/sdk/verification-status.js +12 -0
- package/dist/src/matrix/sdk/verification-status.js.map +7 -0
- package/dist/src/matrix/sdk.js +1375 -0
- package/dist/src/matrix/sdk.js.map +7 -0
- package/dist/src/matrix/send/client.js +14 -0
- package/dist/src/matrix/send/client.js.map +7 -0
- package/dist/src/matrix/send/formatting.js +29 -0
- package/dist/src/matrix/send/formatting.js.map +7 -0
- package/dist/src/matrix/send/media.js +26 -0
- package/dist/src/matrix/send/media.js.map +7 -0
- package/dist/src/matrix/send/targets.js +15 -0
- package/dist/src/matrix/send/targets.js.map +7 -0
- package/dist/src/matrix/send/types.js +17 -0
- package/dist/src/matrix/send/types.js.map +7 -0
- package/dist/src/matrix/send.js +51 -0
- package/dist/src/matrix/send.js.map +7 -0
- package/dist/src/matrix/session-store-metadata.js +15 -0
- package/dist/src/matrix/session-store-metadata.js.map +7 -0
- package/dist/src/matrix/startup-abort.js +14 -0
- package/dist/src/matrix/startup-abort.js.map +7 -0
- package/dist/src/matrix/sync-state.js +12 -0
- package/dist/src/matrix/sync-state.js.map +7 -0
- package/dist/src/matrix/target-ids.js +20 -0
- package/dist/src/matrix/target-ids.js.map +7 -0
- package/dist/src/matrix/thread-bindings-shared.js +34 -0
- package/dist/src/matrix/thread-bindings-shared.js.map +7 -0
- package/dist/src/matrix/thread-bindings.js +49 -0
- package/dist/src/matrix/thread-bindings.js.map +7 -0
- package/dist/src/matrix-migration.runtime.js +45 -0
- package/dist/src/matrix-migration.runtime.js.map +7 -0
- package/dist/src/migration-config.js +29 -0
- package/dist/src/migration-config.js.map +7 -0
- package/dist/src/migration-snapshot-backup.js +12 -0
- package/dist/src/migration-snapshot-backup.js.map +7 -0
- package/dist/src/migration-snapshot.js +38 -0
- package/dist/src/migration-snapshot.js.map +7 -0
- package/dist/src/onboarding.js +43 -0
- package/dist/src/onboarding.js.map +7 -0
- package/dist/src/onboarding.test-harness.js +124 -0
- package/dist/src/onboarding.test-harness.js.map +7 -0
- package/dist/src/outbound.js +33 -0
- package/dist/src/outbound.js.map +7 -0
- package/dist/src/plugin-entry.runtime.js +15 -0
- package/dist/src/plugin-entry.runtime.js.map +7 -0
- package/dist/src/profile-update.js +41 -0
- package/dist/src/profile-update.js.map +7 -0
- package/dist/src/record-shared.js +8 -0
- package/dist/src/record-shared.js.map +7 -0
- package/dist/src/resolve-targets.js +34 -0
- package/dist/src/resolve-targets.js.map +7 -0
- package/dist/src/resolver.js +8 -0
- package/dist/src/resolver.js.map +7 -0
- package/dist/src/runtime-api.js +120 -0
- package/dist/src/runtime-api.js.map +7 -0
- package/dist/src/runtime.js +10 -0
- package/dist/src/runtime.js.map +7 -0
- package/dist/src/secret-contract.js +13 -0
- package/dist/src/secret-contract.js.map +7 -0
- package/dist/src/session-route.js +25 -0
- package/dist/src/session-route.js.map +7 -0
- package/dist/src/setup-bootstrap.js +124 -0
- package/dist/src/setup-bootstrap.js.map +7 -0
- package/dist/src/setup-config.js +28 -0
- package/dist/src/setup-config.js.map +7 -0
- package/dist/src/setup-contract.js +16 -0
- package/dist/src/setup-contract.js.map +7 -0
- package/dist/src/setup-core.js +25 -0
- package/dist/src/setup-core.js.map +7 -0
- package/dist/src/setup-surface.js +45 -0
- package/dist/src/setup-surface.js.map +7 -0
- package/dist/src/startup-maintenance.js +29 -0
- package/dist/src/startup-maintenance.js.map +7 -0
- package/dist/src/storage-paths.js +24 -0
- package/dist/src/storage-paths.js.map +7 -0
- package/dist/src/test-helpers.js +49 -0
- package/dist/src/test-helpers.js.map +7 -0
- package/dist/src/test-mocks.js +40 -0
- package/dist/src/test-mocks.js.map +7 -0
- package/dist/src/test-runtime.js +65 -0
- package/dist/src/test-runtime.js.map +7 -0
- package/dist/src/tool-actions.js +68 -0
- package/dist/src/tool-actions.js.map +7 -0
- package/dist/src/tool-actions.runtime.js +73 -0
- package/dist/src/tool-actions.runtime.js.map +7 -0
- package/dist/src/types.js +7 -0
- package/dist/src/types.js.map +7 -0
- package/dist/test-api.js +82 -0
- package/dist/test-api.js.map +7 -0
- package/dist/thread-bindings-runtime.js +15 -0
- package/dist/thread-bindings-runtime.js.map +7 -0
- package/package.json +12 -6
- package/CHANGELOG.md +0 -164
- package/ENDOFFILE +0 -0
- package/EOF +0 -0
- package/SPEC-SUPPORT.md +0 -116
- package/YAMLEND +0 -0
- package/api.ts +0 -18
- package/archipelagolab-lobi-1.0.0.tgz +0 -0
- package/archipelagolab-lobi-1.0.1.tgz +0 -0
- package/auth-presence.ts +0 -56
- package/channel-plugin-api.ts +0 -3
- package/cli-metadata.ts +0 -11
- package/contract-api.ts +0 -17
- package/docs/CHECKLIST.md +0 -83
- package/docs/FORK_SDK_GUIDE.md +0 -279
- package/helper-api.ts +0 -3
- package/index.test.ts +0 -61
- package/index.ts +0 -65
- package/plugin-entry.handlers.runtime.ts +0 -1
- package/runtime-api.ts +0 -54
- package/runtime-heavy-api.ts +0 -1
- package/scripts/migrate-to-lobi.sh +0 -72
- package/secret-contract-api.ts +0 -5
- package/setup-entry.ts +0 -13
- package/src/account-selection.test.ts +0 -124
- package/src/account-selection.ts +0 -226
- package/src/actions.account-propagation.test.ts +0 -251
- package/src/actions.test.ts +0 -251
- package/src/actions.ts +0 -336
- package/src/approval-auth.test.ts +0 -23
- package/src/approval-auth.ts +0 -25
- package/src/approval-handler.runtime.test.ts +0 -46
- package/src/approval-handler.runtime.ts +0 -400
- package/src/approval-ids.ts +0 -6
- package/src/approval-native.test.ts +0 -329
- package/src/approval-native.ts +0 -336
- package/src/approval-reactions.test.ts +0 -107
- package/src/approval-reactions.ts +0 -158
- package/src/auth-precedence.ts +0 -61
- package/src/channel-account-paths.ts +0 -92
- package/src/channel.account-paths.test.ts +0 -102
- package/src/channel.directory.test.ts +0 -601
- package/src/channel.resolve.test.ts +0 -38
- package/src/channel.runtime.ts +0 -16
- package/src/channel.setup.test.ts +0 -269
- package/src/channel.ts +0 -570
- package/src/cli-metadata.ts +0 -19
- package/src/cli.test.ts +0 -1015
- package/src/cli.ts +0 -1198
- package/src/config-adapter.ts +0 -41
- package/src/config-schema.test.ts +0 -90
- package/src/config-schema.ts +0 -114
- package/src/directory-live.test.ts +0 -200
- package/src/directory-live.ts +0 -238
- package/src/doctor-contract.ts +0 -287
- package/src/doctor.test.ts +0 -440
- package/src/doctor.ts +0 -262
- package/src/env-vars.ts +0 -92
- package/src/exec-approval-resolver.test.ts +0 -68
- package/src/exec-approval-resolver.ts +0 -23
- package/src/exec-approvals.test.ts +0 -483
- package/src/exec-approvals.ts +0 -290
- package/src/group-mentions.ts +0 -41
- package/src/legacy-crypto-inspector-availability.test.ts +0 -81
- package/src/legacy-crypto-inspector-availability.ts +0 -60
- package/src/legacy-crypto.test.ts +0 -234
- package/src/legacy-crypto.ts +0 -549
- package/src/legacy-state.test.ts +0 -86
- package/src/legacy-state.ts +0 -156
- package/src/matrix/account-config.ts +0 -150
- package/src/matrix/accounts.readiness.test.ts +0 -27
- package/src/matrix/accounts.test.ts +0 -757
- package/src/matrix/accounts.ts +0 -194
- package/src/matrix/actions/client.test.ts +0 -215
- package/src/matrix/actions/client.ts +0 -31
- package/src/matrix/actions/devices.test.ts +0 -114
- package/src/matrix/actions/devices.ts +0 -34
- package/src/matrix/actions/limits.test.ts +0 -15
- package/src/matrix/actions/limits.ts +0 -6
- package/src/matrix/actions/messages.test.ts +0 -289
- package/src/matrix/actions/messages.ts +0 -123
- package/src/matrix/actions/pins.test.ts +0 -74
- package/src/matrix/actions/pins.ts +0 -64
- package/src/matrix/actions/polls.test.ts +0 -71
- package/src/matrix/actions/polls.ts +0 -109
- package/src/matrix/actions/profile.test.ts +0 -109
- package/src/matrix/actions/profile.ts +0 -37
- package/src/matrix/actions/reactions.test.ts +0 -135
- package/src/matrix/actions/reactions.ts +0 -59
- package/src/matrix/actions/room.test.ts +0 -79
- package/src/matrix/actions/room.ts +0 -71
- package/src/matrix/actions/summary.test.ts +0 -87
- package/src/matrix/actions/summary.ts +0 -88
- package/src/matrix/actions/types.ts +0 -82
- package/src/matrix/actions/verification.test.ts +0 -105
- package/src/matrix/actions/verification.ts +0 -237
- package/src/matrix/actions.ts +0 -37
- package/src/matrix/active-client.ts +0 -26
- package/src/matrix/async-lock.ts +0 -18
- package/src/matrix/backup-health.ts +0 -115
- package/src/matrix/client/config-runtime-api.ts +0 -14
- package/src/matrix/client/config-secret-input.runtime.ts +0 -1
- package/src/matrix/client/config.ts +0 -982
- package/src/matrix/client/create-client.test.ts +0 -115
- package/src/matrix/client/create-client.ts +0 -101
- package/src/matrix/client/env-auth.ts +0 -6
- package/src/matrix/client/file-sync-store.test.ts +0 -265
- package/src/matrix/client/file-sync-store.ts +0 -289
- package/src/matrix/client/logging.ts +0 -123
- package/src/matrix/client/migration-snapshot.runtime.ts +0 -1
- package/src/matrix/client/private-network-host.ts +0 -56
- package/src/matrix/client/runtime.ts +0 -4
- package/src/matrix/client/shared.test.ts +0 -344
- package/src/matrix/client/shared.ts +0 -306
- package/src/matrix/client/storage.test.ts +0 -634
- package/src/matrix/client/storage.ts +0 -544
- package/src/matrix/client/types.ts +0 -50
- package/src/matrix/client-bootstrap.test.ts +0 -84
- package/src/matrix/client-bootstrap.ts +0 -164
- package/src/matrix/client-resolver.test-helpers.ts +0 -147
- package/src/matrix/client.test.ts +0 -1521
- package/src/matrix/client.ts +0 -23
- package/src/matrix/config-paths.ts +0 -31
- package/src/matrix/config-update.test.ts +0 -237
- package/src/matrix/config-update.ts +0 -291
- package/src/matrix/credentials-read.ts +0 -206
- package/src/matrix/credentials-write.runtime.ts +0 -26
- package/src/matrix/credentials.test.ts +0 -501
- package/src/matrix/credentials.ts +0 -95
- package/src/matrix/deps.test.ts +0 -74
- package/src/matrix/deps.ts +0 -225
- package/src/matrix/device-health.test.ts +0 -45
- package/src/matrix/device-health.ts +0 -31
- package/src/matrix/direct-management.test.ts +0 -350
- package/src/matrix/direct-management.ts +0 -347
- package/src/matrix/direct-room.test.ts +0 -61
- package/src/matrix/direct-room.ts +0 -128
- package/src/matrix/draft-stream.test.ts +0 -406
- package/src/matrix/draft-stream.ts +0 -216
- package/src/matrix/encryption-guidance.ts +0 -27
- package/src/matrix/errors.ts +0 -21
- package/src/matrix/format.test.ts +0 -340
- package/src/matrix/format.ts +0 -428
- package/src/matrix/legacy-crypto-inspector.ts +0 -95
- package/src/matrix/media-errors.ts +0 -20
- package/src/matrix/media-text.ts +0 -169
- package/src/matrix/monitor/access-state.test.ts +0 -45
- package/src/matrix/monitor/access-state.ts +0 -77
- package/src/matrix/monitor/ack-config.test.ts +0 -57
- package/src/matrix/monitor/ack-config.ts +0 -26
- package/src/matrix/monitor/allowlist.test.ts +0 -45
- package/src/matrix/monitor/allowlist.ts +0 -94
- package/src/matrix/monitor/auto-join.test.ts +0 -203
- package/src/matrix/monitor/auto-join.ts +0 -86
- package/src/matrix/monitor/config.test.ts +0 -197
- package/src/matrix/monitor/config.ts +0 -303
- package/src/matrix/monitor/context-summary.ts +0 -43
- package/src/matrix/monitor/direct.test.ts +0 -529
- package/src/matrix/monitor/direct.ts +0 -270
- package/src/matrix/monitor/events.test.ts +0 -1524
- package/src/matrix/monitor/events.ts +0 -213
- package/src/matrix/monitor/handler.body-for-agent.test.ts +0 -396
- package/src/matrix/monitor/handler.group-history.test.ts +0 -648
- package/src/matrix/monitor/handler.media-failure.test.ts +0 -267
- package/src/matrix/monitor/handler.test-helpers.ts +0 -308
- package/src/matrix/monitor/handler.test.ts +0 -2952
- package/src/matrix/monitor/handler.thread-root-media.test.ts +0 -82
- package/src/matrix/monitor/handler.ts +0 -1679
- package/src/matrix/monitor/inbound-dedupe.test.ts +0 -146
- package/src/matrix/monitor/inbound-dedupe.ts +0 -267
- package/src/matrix/monitor/index.test.ts +0 -920
- package/src/matrix/monitor/index.ts +0 -434
- package/src/matrix/monitor/legacy-crypto-restore.test.ts +0 -206
- package/src/matrix/monitor/legacy-crypto-restore.ts +0 -139
- package/src/matrix/monitor/location.ts +0 -100
- package/src/matrix/monitor/media.test.ts +0 -159
- package/src/matrix/monitor/media.ts +0 -119
- package/src/matrix/monitor/mentions.test.ts +0 -289
- package/src/matrix/monitor/mentions.ts +0 -177
- package/src/matrix/monitor/reaction-events.test.ts +0 -326
- package/src/matrix/monitor/reaction-events.ts +0 -187
- package/src/matrix/monitor/recent-invite.test.ts +0 -92
- package/src/matrix/monitor/recent-invite.ts +0 -30
- package/src/matrix/monitor/replies.test.ts +0 -265
- package/src/matrix/monitor/replies.ts +0 -136
- package/src/matrix/monitor/reply-context.test.ts +0 -276
- package/src/matrix/monitor/reply-context.ts +0 -92
- package/src/matrix/monitor/room-history.test.ts +0 -258
- package/src/matrix/monitor/room-history.ts +0 -301
- package/src/matrix/monitor/room-info.test.ts +0 -201
- package/src/matrix/monitor/room-info.ts +0 -126
- package/src/matrix/monitor/rooms.test.ts +0 -121
- package/src/matrix/monitor/rooms.ts +0 -52
- package/src/matrix/monitor/route.test.ts +0 -255
- package/src/matrix/monitor/route.ts +0 -178
- package/src/matrix/monitor/runtime-api.ts +0 -31
- package/src/matrix/monitor/startup-verification.test.ts +0 -294
- package/src/matrix/monitor/startup-verification.ts +0 -237
- package/src/matrix/monitor/startup.test.ts +0 -257
- package/src/matrix/monitor/startup.ts +0 -218
- package/src/matrix/monitor/status.ts +0 -111
- package/src/matrix/monitor/sync-lifecycle.test.ts +0 -224
- package/src/matrix/monitor/sync-lifecycle.ts +0 -91
- package/src/matrix/monitor/task-runner.ts +0 -38
- package/src/matrix/monitor/thread-context.test.ts +0 -149
- package/src/matrix/monitor/thread-context.ts +0 -108
- package/src/matrix/monitor/threads.test.ts +0 -68
- package/src/matrix/monitor/threads.ts +0 -85
- package/src/matrix/monitor/types.ts +0 -30
- package/src/matrix/monitor/verification-events.ts +0 -627
- package/src/matrix/monitor/verification-utils.test.ts +0 -47
- package/src/matrix/monitor/verification-utils.ts +0 -46
- package/src/matrix/outbound-media-runtime.ts +0 -1
- package/src/matrix/poll-summary.ts +0 -110
- package/src/matrix/poll-types.test.ts +0 -205
- package/src/matrix/poll-types.ts +0 -433
- package/src/matrix/probe.runtime.ts +0 -4
- package/src/matrix/probe.test.ts +0 -154
- package/src/matrix/probe.ts +0 -96
- package/src/matrix/profile.test.ts +0 -154
- package/src/matrix/profile.ts +0 -184
- package/src/matrix/reaction-common.test.ts +0 -96
- package/src/matrix/reaction-common.ts +0 -147
- package/src/matrix/sdk/crypto-bootstrap.test.ts +0 -505
- package/src/matrix/sdk/crypto-bootstrap.ts +0 -341
- package/src/matrix/sdk/crypto-facade.test.ts +0 -197
- package/src/matrix/sdk/crypto-facade.ts +0 -207
- package/src/matrix/sdk/crypto-node.runtime.test.ts +0 -27
- package/src/matrix/sdk/crypto-node.runtime.ts +0 -9
- package/src/matrix/sdk/crypto-runtime.ts +0 -11
- package/src/matrix/sdk/decrypt-bridge.ts +0 -356
- package/src/matrix/sdk/event-helpers.test.ts +0 -60
- package/src/matrix/sdk/event-helpers.ts +0 -71
- package/src/matrix/sdk/http-client.test.ts +0 -134
- package/src/matrix/sdk/http-client.ts +0 -87
- package/src/matrix/sdk/idb-persistence-lock.ts +0 -51
- package/src/matrix/sdk/idb-persistence.lock-order.test.ts +0 -108
- package/src/matrix/sdk/idb-persistence.test-helpers.ts +0 -88
- package/src/matrix/sdk/idb-persistence.test.ts +0 -149
- package/src/matrix/sdk/idb-persistence.ts +0 -283
- package/src/matrix/sdk/logger.test.ts +0 -25
- package/src/matrix/sdk/logger.ts +0 -108
- package/src/matrix/sdk/read-response-with-limit.ts +0 -19
- package/src/matrix/sdk/recovery-key-store.test.ts +0 -385
- package/src/matrix/sdk/recovery-key-store.ts +0 -430
- package/src/matrix/sdk/transport.test.ts +0 -161
- package/src/matrix/sdk/transport.ts +0 -344
- package/src/matrix/sdk/types.ts +0 -236
- package/src/matrix/sdk/verification-manager.test.ts +0 -509
- package/src/matrix/sdk/verification-manager.ts +0 -694
- package/src/matrix/sdk/verification-status.ts +0 -23
- package/src/matrix/sdk.test.ts +0 -2568
- package/src/matrix/sdk.ts +0 -1789
- package/src/matrix/send/client.test.ts +0 -174
- package/src/matrix/send/client.ts +0 -90
- package/src/matrix/send/formatting.ts +0 -189
- package/src/matrix/send/media.ts +0 -244
- package/src/matrix/send/targets.test.ts +0 -254
- package/src/matrix/send/targets.ts +0 -104
- package/src/matrix/send/types.ts +0 -134
- package/src/matrix/send.test.ts +0 -958
- package/src/matrix/send.ts +0 -609
- package/src/matrix/session-store-metadata.ts +0 -108
- package/src/matrix/startup-abort.ts +0 -44
- package/src/matrix/sync-state.ts +0 -27
- package/src/matrix/target-ids.ts +0 -102
- package/src/matrix/thread-bindings-shared.ts +0 -201
- package/src/matrix/thread-bindings.test.ts +0 -673
- package/src/matrix/thread-bindings.ts +0 -577
- package/src/matrix-migration.runtime.ts +0 -9
- package/src/migration-config.test.ts +0 -228
- package/src/migration-config.ts +0 -243
- package/src/migration-snapshot-backup.ts +0 -117
- package/src/migration-snapshot.test.ts +0 -184
- package/src/migration-snapshot.ts +0 -55
- package/src/onboarding.resolve.test.ts +0 -55
- package/src/onboarding.test-harness.ts +0 -158
- package/src/onboarding.test.ts +0 -665
- package/src/onboarding.ts +0 -773
- package/src/outbound.test.ts +0 -173
- package/src/outbound.ts +0 -78
- package/src/plugin-entry.runtime.js +0 -159
- package/src/plugin-entry.runtime.test.ts +0 -108
- package/src/plugin-entry.runtime.ts +0 -68
- package/src/profile-update.ts +0 -68
- package/src/record-shared.ts +0 -3
- package/src/resolve-targets.test.ts +0 -178
- package/src/resolve-targets.ts +0 -175
- package/src/resolver.ts +0 -21
- package/src/runtime-api.ts +0 -144
- package/src/runtime.ts +0 -7
- package/src/secret-contract.ts +0 -174
- package/src/session-route.test.ts +0 -315
- package/src/session-route.ts +0 -113
- package/src/setup-bootstrap.ts +0 -94
- package/src/setup-config.ts +0 -222
- package/src/setup-contract.ts +0 -89
- package/src/setup-core.test.ts +0 -326
- package/src/setup-core.ts +0 -50
- package/src/setup-surface.ts +0 -4
- package/src/startup-maintenance.test.ts +0 -227
- package/src/startup-maintenance.ts +0 -114
- package/src/storage-paths.ts +0 -92
- package/src/test-helpers.ts +0 -42
- package/src/test-mocks.ts +0 -55
- package/src/test-runtime.ts +0 -72
- package/src/test-support/monitor-route-test-support.ts +0 -8
- package/src/tool-actions.runtime.ts +0 -1
- package/src/tool-actions.test.ts +0 -422
- package/src/tool-actions.ts +0 -498
- package/src/types.ts +0 -230
- package/test-api.ts +0 -2
- package/thread-bindings-runtime.ts +0 -4
- package/tsconfig.json +0 -16
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/matrix/monitor/handler.ts"],
|
|
4
|
+
"sourcesContent": ["import { resolveControlCommandGate } from \"openclaw/plugin-sdk/command-auth\";\nimport {\n loadSessionStore,\n resolveChannelContextVisibilityMode,\n resolveSessionStoreEntry,\n} from \"openclaw/plugin-sdk/config-runtime\";\nimport { getSessionBindingService } from \"openclaw/plugin-sdk/conversation-runtime\";\nimport { evaluateSupplementalContextVisibility } from \"openclaw/plugin-sdk/security-runtime\";\nimport { normalizeOptionalString } from \"openclaw/plugin-sdk/text-runtime\";\nimport type {\n CoreConfig,\n MatrixRoomConfig,\n MatrixStreamingMode,\n ReplyToMode,\n} from \"../../types.js\";\nimport { createMatrixDraftStream } from \"../draft-stream.js\";\nimport { formatMatrixErrorMessage } from \"../errors.js\";\nimport { isMatrixMediaSizeLimitError } from \"../media-errors.js\";\nimport {\n formatMatrixMediaTooLargeText,\n formatMatrixMediaUnavailableText,\n formatMatrixMessageText,\n resolveMatrixMessageAttachment,\n resolveMatrixMessageBody,\n} from \"../media-text.js\";\nimport { fetchMatrixPollSnapshot, type MatrixPollSnapshot } from \"../poll-summary.js\";\nimport {\n formatPollAsText,\n isPollEventType,\n isPollStartType,\n parsePollStartContent,\n} from \"../poll-types.js\";\nimport type { LocationMessageEventContent, MatrixClient } from \"../sdk.js\";\nimport {\n editMessageMatrix,\n reactMatrixMessage,\n sendMessageMatrix,\n sendReadReceiptMatrix,\n sendTypingMatrix,\n} from \"../send.js\";\nimport { MATRIX_OPENCLAW_FINALIZED_PREVIEW_KEY } from \"../send/types.js\";\nimport { resolveMatrixStoredSessionMeta } from \"../session-store-metadata.js\";\nimport { resolveMatrixMonitorAccessState } from \"./access-state.js\";\nimport { resolveMatrixAckReactionConfig } from \"./ack-config.js\";\nimport { resolveMatrixAllowListMatch } from \"./allowlist.js\";\nimport type { MatrixInboundEventDeduper } from \"./inbound-dedupe.js\";\nimport { resolveMatrixLocation, type MatrixLocationPayload } from \"./location.js\";\nimport { downloadMatrixMedia } from \"./media.js\";\nimport { resolveMentions } from \"./mentions.js\";\nimport { handleInboundMatrixReaction } from \"./reaction-events.js\";\nimport { deliverMatrixReplies } from \"./replies.js\";\nimport { createMatrixReplyContextResolver } from \"./reply-context.js\";\nimport { createRoomHistoryTracker } from \"./room-history.js\";\nimport type { HistoryEntry } from \"./room-history.js\";\nimport { resolveMatrixRoomConfig } from \"./rooms.js\";\nimport { resolveMatrixInboundRoute } from \"./route.js\";\nimport {\n createReplyPrefixOptions,\n createTypingCallbacks,\n ensureConfiguredAcpBindingReady,\n formatAllowlistMatchMeta,\n getAgentScopedMediaLocalRoots,\n logInboundDrop,\n logTypingFailure,\n type BlockReplyContext,\n type PluginRuntime,\n type ReplyPayload,\n type RuntimeEnv,\n type RuntimeLogger,\n} from \"./runtime-api.js\";\nimport { createMatrixThreadContextResolver } from \"./thread-context.js\";\nimport {\n resolveMatrixReplyToEventId,\n resolveMatrixThreadRootId,\n resolveMatrixThreadRouting,\n} from \"./threads.js\";\nimport type { MatrixRawEvent, RoomMessageEventContent } from \"./types.js\";\nimport { EventType, RelationType } from \"./types.js\";\nimport { isMatrixVerificationRoomMessage } from \"./verification-utils.js\";\n\nconst ALLOW_FROM_STORE_CACHE_TTL_MS = 30_000;\nconst PAIRING_REPLY_COOLDOWN_MS = 5 * 60_000;\nconst MAX_TRACKED_PAIRING_REPLY_SENDERS = 512;\nconst MAX_TRACKED_SHARED_DM_CONTEXT_NOTICES = 512;\ntype MatrixAllowBotsMode = \"off\" | \"mentions\" | \"all\";\n\nasync function redactMatrixDraftEvent(\n client: MatrixClient,\n roomId: string,\n draftEventId: string,\n): Promise<void> {\n await client.redactEvent(roomId, draftEventId).catch(() => {});\n}\n\nfunction buildMatrixFinalizedPreviewContent(): Record<string, unknown> {\n return { [MATRIX_OPENCLAW_FINALIZED_PREVIEW_KEY]: true };\n}\n\nexport type MatrixMonitorHandlerParams = {\n client: MatrixClient;\n core: PluginRuntime;\n cfg: CoreConfig;\n accountId: string;\n runtime: RuntimeEnv;\n logger: RuntimeLogger;\n logVerboseMessage: (message: string) => void;\n allowFrom: string[];\n groupAllowFrom?: string[];\n roomsConfig?: Record<string, MatrixRoomConfig>;\n accountAllowBots?: boolean | \"mentions\";\n configuredBotUserIds?: ReadonlySet<string>;\n groupPolicy: \"open\" | \"allowlist\" | \"disabled\";\n replyToMode: ReplyToMode;\n threadReplies: \"off\" | \"inbound\" | \"always\";\n /** DM-specific threadReplies override. Falls back to threadReplies when absent. */\n dmThreadReplies?: \"off\" | \"inbound\" | \"always\";\n /** DM session grouping behavior. */\n dmSessionScope?: \"per-user\" | \"per-room\";\n streaming: MatrixStreamingMode;\n blockStreamingEnabled: boolean;\n dmEnabled: boolean;\n dmPolicy: \"open\" | \"pairing\" | \"allowlist\" | \"disabled\";\n textLimit: number;\n mediaMaxBytes: number;\n historyLimit: number;\n startupMs: number;\n startupGraceMs: number;\n dropPreStartupMessages: boolean;\n inboundDeduper?: Pick<MatrixInboundEventDeduper, \"claimEvent\" | \"commitEvent\" | \"releaseEvent\">;\n directTracker: {\n isDirectMessage: (params: {\n roomId: string;\n senderId: string;\n selfUserId: string;\n }) => Promise<boolean>;\n };\n getRoomInfo: (\n roomId: string,\n opts?: { includeAliases?: boolean },\n ) => Promise<{ name?: string; canonicalAlias?: string; altAliases: string[] }>;\n getMemberDisplayName: (roomId: string, userId: string) => Promise<string>;\n needsRoomAliasesForConfig: boolean;\n};\n\nfunction resolveMatrixMentionPrecheckText(params: {\n eventType: string;\n content: RoomMessageEventContent;\n locationText?: string | null;\n}): string {\n if (params.locationText?.trim()) {\n return params.locationText.trim();\n }\n if (typeof params.content.body === \"string\" && params.content.body.trim()) {\n return params.content.body.trim();\n }\n if (isPollStartType(params.eventType)) {\n const parsed = parsePollStartContent(params.content as never);\n if (parsed) {\n return formatPollAsText(parsed);\n }\n }\n return \"\";\n}\n\nfunction resolveMatrixInboundBodyText(params: {\n rawBody: string;\n filename?: string;\n mediaPlaceholder?: string;\n msgtype?: string;\n hadMediaUrl: boolean;\n mediaDownloadFailed: boolean;\n mediaSizeLimitExceeded?: boolean;\n}): string {\n if (params.mediaPlaceholder) {\n return params.rawBody || params.mediaPlaceholder;\n }\n if (!params.mediaDownloadFailed || !params.hadMediaUrl) {\n return params.rawBody;\n }\n if (params.mediaSizeLimitExceeded) {\n return formatMatrixMediaTooLargeText({\n body: params.rawBody,\n filename: params.filename,\n msgtype: params.msgtype,\n });\n }\n return formatMatrixMediaUnavailableText({\n body: params.rawBody,\n filename: params.filename,\n msgtype: params.msgtype,\n });\n}\n\nfunction markTrackedRoomIfFirst(set: Set<string>, roomId: string): boolean {\n if (set.has(roomId)) {\n return false;\n }\n set.add(roomId);\n if (set.size > MAX_TRACKED_SHARED_DM_CONTEXT_NOTICES) {\n const oldest = set.keys().next().value;\n if (typeof oldest === \"string\") {\n set.delete(oldest);\n }\n }\n return true;\n}\n\nfunction resolveMatrixSharedDmContextNotice(params: {\n storePath: string;\n sessionKey: string;\n roomId: string;\n accountId: string;\n dmSessionScope?: \"per-user\" | \"per-room\";\n sentRooms: Set<string>;\n logVerboseMessage: (message: string) => void;\n}): string | null {\n if ((params.dmSessionScope ?? \"per-user\") === \"per-room\") {\n return null;\n }\n if (params.sentRooms.has(params.roomId)) {\n return null;\n }\n\n try {\n const store = loadSessionStore(params.storePath);\n const currentSession = resolveMatrixStoredSessionMeta(\n resolveSessionStoreEntry({\n store,\n sessionKey: params.sessionKey,\n }).existing,\n );\n if (!currentSession) {\n return null;\n }\n if (currentSession.channel && currentSession.channel !== \"matrix\") {\n return null;\n }\n if (currentSession.accountId && currentSession.accountId !== params.accountId) {\n return null;\n }\n if (!currentSession.directUserId) {\n return null;\n }\n if (!currentSession.roomId || currentSession.roomId === params.roomId) {\n return null;\n }\n\n return [\n \"This Matrix DM is sharing a session with another Matrix DM room.\",\n \"Use /focus here for a one-off isolated thread session when thread bindings are enabled, or set\",\n \"channels.lobi.dm.sessionScope to per-room to isolate each Matrix DM room.\",\n ].join(\" \");\n } catch (err) {\n params.logVerboseMessage(\n `matrix: failed checking shared DM session notice room=${params.roomId} (${String(err)})`,\n );\n return null;\n }\n}\n\nfunction resolveMatrixPendingHistoryText(params: {\n mentionPrecheckText: string;\n content: RoomMessageEventContent;\n mediaUrl?: string;\n}): string {\n if (params.mentionPrecheckText) {\n return params.mentionPrecheckText;\n }\n if (!params.mediaUrl) {\n return \"\";\n }\n const body = typeof params.content.body === \"string\" ? params.content.body.trim() : undefined;\n const filename =\n typeof params.content.filename === \"string\" ? params.content.filename.trim() : undefined;\n const msgtype = typeof params.content.msgtype === \"string\" ? params.content.msgtype : undefined;\n return (\n formatMatrixMessageText({\n body: resolveMatrixMessageBody({ body, filename, msgtype }),\n attachment: resolveMatrixMessageAttachment({ body, filename, msgtype }),\n }) ?? \"\"\n );\n}\n\nfunction resolveMatrixAllowBotsMode(value?: boolean | \"mentions\"): MatrixAllowBotsMode {\n if (value === true) {\n return \"all\";\n }\n if (value === \"mentions\") {\n return \"mentions\";\n }\n return \"off\";\n}\n\nexport function createMatrixRoomMessageHandler(params: MatrixMonitorHandlerParams) {\n const {\n client,\n core,\n cfg,\n accountId,\n runtime,\n logger,\n logVerboseMessage,\n allowFrom,\n groupAllowFrom = [],\n roomsConfig,\n accountAllowBots,\n configuredBotUserIds = new Set<string>(),\n groupPolicy,\n replyToMode,\n threadReplies,\n dmThreadReplies,\n dmSessionScope,\n streaming,\n blockStreamingEnabled,\n dmEnabled,\n dmPolicy,\n textLimit,\n mediaMaxBytes,\n historyLimit,\n startupMs,\n startupGraceMs,\n dropPreStartupMessages,\n inboundDeduper,\n directTracker,\n getRoomInfo,\n getMemberDisplayName,\n needsRoomAliasesForConfig,\n } = params;\n const contextVisibilityMode = resolveChannelContextVisibilityMode({\n cfg,\n channel: \"matrix\",\n accountId,\n });\n let cachedStoreAllowFrom: {\n value: string[];\n expiresAtMs: number;\n } | null = null;\n const pairingReplySentAtMsBySender = new Map<string, number>();\n const resolveThreadContext = createMatrixThreadContextResolver({\n client,\n getMemberDisplayName,\n logVerboseMessage,\n });\n const resolveReplyContext = createMatrixReplyContextResolver({\n client,\n getMemberDisplayName,\n logVerboseMessage,\n });\n const roomHistoryTracker = createRoomHistoryTracker();\n const roomIngressTails = new Map<string, Promise<void>>();\n const sharedDmContextNoticeRooms = new Set<string>();\n\n const readStoreAllowFrom = async (): Promise<string[]> => {\n const now = Date.now();\n if (cachedStoreAllowFrom && now < cachedStoreAllowFrom.expiresAtMs) {\n return cachedStoreAllowFrom.value;\n }\n const value = await core.channel.pairing\n .readAllowFromStore({\n channel: \"matrix\",\n env: process.env,\n accountId,\n })\n .catch(() => []);\n cachedStoreAllowFrom = {\n value,\n expiresAtMs: now + ALLOW_FROM_STORE_CACHE_TTL_MS,\n };\n return value;\n };\n\n const shouldSendPairingReply = (senderId: string, created: boolean): boolean => {\n const now = Date.now();\n if (created) {\n pairingReplySentAtMsBySender.set(senderId, now);\n return true;\n }\n const lastSentAtMs = pairingReplySentAtMsBySender.get(senderId);\n if (typeof lastSentAtMs === \"number\" && now - lastSentAtMs < PAIRING_REPLY_COOLDOWN_MS) {\n return false;\n }\n pairingReplySentAtMsBySender.set(senderId, now);\n if (pairingReplySentAtMsBySender.size > MAX_TRACKED_PAIRING_REPLY_SENDERS) {\n const oldestSender = pairingReplySentAtMsBySender.keys().next().value;\n if (typeof oldestSender === \"string\") {\n pairingReplySentAtMsBySender.delete(oldestSender);\n }\n }\n return true;\n };\n\n const runRoomIngress = async <T>(roomId: string, task: () => Promise<T>): Promise<T> => {\n const previous = roomIngressTails.get(roomId) ?? Promise.resolve();\n let releaseCurrent!: () => void;\n const current = new Promise<void>((resolve) => {\n releaseCurrent = resolve;\n });\n const chain = previous.catch(() => {}).then(() => current);\n roomIngressTails.set(roomId, chain);\n await previous.catch(() => {});\n try {\n return await task();\n } finally {\n releaseCurrent();\n if (roomIngressTails.get(roomId) === chain) {\n roomIngressTails.delete(roomId);\n }\n }\n };\n\n return async (roomId: string, event: MatrixRawEvent) => {\n const eventId = typeof event.event_id === \"string\" ? event.event_id.trim() : \"\";\n let claimedInboundEvent = false;\n let draftStreamRef: ReturnType<typeof createMatrixDraftStream> | undefined;\n let draftConsumed = false;\n try {\n const eventType = event.type;\n if (eventType === EventType.RoomMessageEncrypted) {\n // Encrypted payloads are emitted separately after decryption.\n return;\n }\n\n const isPollEvent = isPollEventType(eventType);\n const isReactionEvent = eventType === EventType.Reaction;\n const locationContent = event.content as LocationMessageEventContent;\n const isLocationEvent =\n eventType === EventType.Location ||\n (eventType === EventType.RoomMessage && locationContent.msgtype === EventType.Location);\n if (\n eventType !== EventType.RoomMessage &&\n !isPollEvent &&\n !isLocationEvent &&\n !isReactionEvent\n ) {\n return;\n }\n logVerboseMessage(\n `matrix: inbound event room=${roomId} type=${eventType} id=${event.event_id ?? \"unknown\"}`,\n );\n if (event.unsigned?.redacted_because) {\n return;\n }\n const senderId = event.sender;\n if (!senderId) {\n return;\n }\n const eventTs = event.origin_server_ts;\n const eventAge = event.unsigned?.age;\n const commitInboundEventIfClaimed = async () => {\n if (!claimedInboundEvent || !inboundDeduper || !eventId) {\n return;\n }\n await inboundDeduper.commitEvent({ roomId, eventId });\n claimedInboundEvent = false;\n };\n const readIngressPrefix = async () => {\n const selfUserId = await client.getUserId();\n if (senderId === selfUserId) {\n return undefined;\n }\n if (dropPreStartupMessages) {\n if (typeof eventTs === \"number\" && eventTs < startupMs - startupGraceMs) {\n return undefined;\n }\n if (\n typeof eventTs !== \"number\" &&\n typeof eventAge === \"number\" &&\n eventAge > startupGraceMs\n ) {\n return undefined;\n }\n }\n\n let content = event.content as RoomMessageEventContent;\n\n if (\n eventType === EventType.RoomMessage &&\n isMatrixVerificationRoomMessage({\n msgtype: (content as { msgtype?: unknown }).msgtype,\n body: content.body,\n })\n ) {\n logVerboseMessage(`matrix: skip verification/system room message room=${roomId}`);\n return undefined;\n }\n\n const locationPayload: MatrixLocationPayload | null = resolveMatrixLocation({\n eventType,\n content: content as LocationMessageEventContent,\n });\n\n const relates = content[\"m.relates_to\"];\n if (relates && \"rel_type\" in relates && relates.rel_type === RelationType.Replace) {\n return undefined;\n }\n if (eventId && inboundDeduper) {\n claimedInboundEvent = inboundDeduper.claimEvent({ roomId, eventId });\n if (!claimedInboundEvent) {\n logVerboseMessage(`matrix: skip duplicate inbound event room=${roomId} id=${eventId}`);\n return undefined;\n }\n }\n\n const isDirectMessage = await directTracker.isDirectMessage({\n roomId,\n senderId,\n selfUserId,\n });\n return { content, isDirectMessage, locationPayload, selfUserId };\n };\n const continueIngress = async (params: {\n content: RoomMessageEventContent;\n isDirectMessage: boolean;\n locationPayload: MatrixLocationPayload | null;\n selfUserId: string;\n }) => {\n let content = params.content;\n const isDirectMessage = params.isDirectMessage;\n const isRoom = !isDirectMessage;\n const { locationPayload, selfUserId } = params;\n if (isRoom && groupPolicy === \"disabled\") {\n await commitInboundEventIfClaimed();\n return undefined;\n }\n\n const roomInfoForConfig =\n isRoom && needsRoomAliasesForConfig\n ? await getRoomInfo(roomId, { includeAliases: true })\n : undefined;\n const roomAliasesForConfig = roomInfoForConfig\n ? [roomInfoForConfig.canonicalAlias ?? \"\", ...roomInfoForConfig.altAliases].filter(\n Boolean,\n )\n : [];\n const roomConfigInfo = isRoom\n ? resolveMatrixRoomConfig({\n rooms: roomsConfig,\n roomId,\n aliases: roomAliasesForConfig,\n })\n : undefined;\n const roomConfig = roomConfigInfo?.config;\n const allowBotsMode = resolveMatrixAllowBotsMode(roomConfig?.allowBots ?? accountAllowBots);\n const isConfiguredBotSender = configuredBotUserIds.has(senderId);\n const roomMatchMeta = roomConfigInfo\n ? `matchKey=${roomConfigInfo.matchKey ?? \"none\"} matchSource=${\n roomConfigInfo.matchSource ?? \"none\"\n }`\n : \"matchKey=none matchSource=none\";\n\n if (isConfiguredBotSender && allowBotsMode === \"off\") {\n logVerboseMessage(\n `matrix: drop configured bot sender=${senderId} (allowBots=false${isDirectMessage ? \"\" : `, ${roomMatchMeta}`})`,\n );\n await commitInboundEventIfClaimed();\n return undefined;\n }\n\n if (isRoom && roomConfig && !roomConfigInfo?.allowed) {\n logVerboseMessage(`matrix: room disabled room=${roomId} (${roomMatchMeta})`);\n await commitInboundEventIfClaimed();\n return undefined;\n }\n if (isRoom && groupPolicy === \"allowlist\") {\n if (!roomConfigInfo?.allowlistConfigured) {\n logVerboseMessage(`matrix: drop room message (no allowlist, ${roomMatchMeta})`);\n await commitInboundEventIfClaimed();\n return undefined;\n }\n if (!roomConfig) {\n logVerboseMessage(`matrix: drop room message (not in allowlist, ${roomMatchMeta})`);\n await commitInboundEventIfClaimed();\n return undefined;\n }\n }\n\n let senderNamePromise: Promise<string> | null = null;\n const getSenderName = async (): Promise<string> => {\n senderNamePromise ??= getMemberDisplayName(roomId, senderId).catch(() => senderId);\n return await senderNamePromise;\n };\n const storeAllowFrom = await readStoreAllowFrom();\n const roomUsers = roomConfig?.users ?? [];\n const accessState = resolveMatrixMonitorAccessState({\n allowFrom,\n storeAllowFrom,\n groupAllowFrom,\n roomUsers,\n senderId,\n isRoom,\n });\n const {\n effectiveGroupAllowFrom,\n effectiveRoomUsers,\n groupAllowConfigured,\n directAllowMatch,\n roomUserMatch,\n groupAllowMatch,\n commandAuthorizers,\n } = accessState;\n\n if (isDirectMessage) {\n if (!dmEnabled || dmPolicy === \"disabled\") {\n await commitInboundEventIfClaimed();\n return undefined;\n }\n if (dmPolicy !== \"open\") {\n const allowMatchMeta = formatAllowlistMatchMeta(directAllowMatch);\n if (!directAllowMatch.allowed) {\n if (!isReactionEvent && dmPolicy === \"pairing\") {\n const senderName = await getSenderName();\n const { code, created } = await core.channel.pairing.upsertPairingRequest({\n channel: \"matrix\",\n id: senderId,\n accountId,\n meta: { name: senderName },\n });\n if (shouldSendPairingReply(senderId, created)) {\n const pairingReply = core.channel.pairing.buildPairingReply({\n channel: \"matrix\",\n idLine: `Your Matrix user id: ${senderId}`,\n code,\n });\n logVerboseMessage(\n created\n ? `matrix pairing request sender=${senderId} name=${senderName ?? \"unknown\"} (${allowMatchMeta})`\n : `matrix pairing reminder sender=${senderId} name=${senderName ?? \"unknown\"} (${allowMatchMeta})`,\n );\n try {\n await sendMessageMatrix(\n `room:${roomId}`,\n created\n ? pairingReply\n : `${pairingReply}\\n\\nPairing request is still pending approval. Reusing existing code.`,\n {\n client,\n cfg,\n accountId,\n },\n );\n await commitInboundEventIfClaimed();\n } catch (err) {\n logVerboseMessage(\n `matrix pairing reply failed for ${senderId}: ${String(err)}`,\n );\n return undefined;\n }\n } else {\n logVerboseMessage(\n `matrix pairing reminder suppressed sender=${senderId} (cooldown)`,\n );\n await commitInboundEventIfClaimed();\n }\n }\n if (isReactionEvent || dmPolicy !== \"pairing\") {\n logVerboseMessage(\n `matrix: blocked ${isReactionEvent ? \"reaction\" : \"dm\"} sender ${senderId} (dmPolicy=${dmPolicy}, ${allowMatchMeta})`,\n );\n await commitInboundEventIfClaimed();\n }\n return undefined;\n }\n }\n }\n\n if (isRoom && roomUserMatch && !roomUserMatch.allowed) {\n logVerboseMessage(\n `matrix: blocked sender ${senderId} (room users allowlist, ${roomMatchMeta}, ${formatAllowlistMatchMeta(\n roomUserMatch,\n )})`,\n );\n await commitInboundEventIfClaimed();\n return undefined;\n }\n if (\n isRoom &&\n groupPolicy === \"allowlist\" &&\n effectiveRoomUsers.length === 0 &&\n groupAllowConfigured &&\n groupAllowMatch &&\n !groupAllowMatch.allowed\n ) {\n logVerboseMessage(\n `matrix: blocked sender ${senderId} (groupAllowFrom, ${roomMatchMeta}, ${formatAllowlistMatchMeta(\n groupAllowMatch,\n )})`,\n );\n await commitInboundEventIfClaimed();\n return undefined;\n }\n if (isRoom) {\n logVerboseMessage(`matrix: allow room ${roomId} (${roomMatchMeta})`);\n }\n\n if (isReactionEvent) {\n const senderName = await getSenderName();\n await handleInboundMatrixReaction({\n client,\n core,\n cfg,\n accountId,\n roomId,\n event,\n senderId,\n senderLabel: senderName,\n selfUserId,\n isDirectMessage,\n logVerboseMessage,\n });\n await commitInboundEventIfClaimed();\n return undefined;\n }\n\n let pollSnapshotPromise: Promise<MatrixPollSnapshot | null> | null = null;\n const getPollSnapshot = async (): Promise<MatrixPollSnapshot | null> => {\n if (!isPollEvent) {\n return null;\n }\n pollSnapshotPromise ??= fetchMatrixPollSnapshot(client, roomId, event).catch((err) => {\n logVerboseMessage(\n `matrix: failed resolving poll snapshot room=${roomId} id=${event.event_id ?? \"unknown\"}: ${String(err)}`,\n );\n return null;\n });\n return await pollSnapshotPromise;\n };\n\n const mentionPrecheckText = resolveMatrixMentionPrecheckText({\n eventType,\n content,\n locationText: locationPayload?.text,\n });\n const contentUrl =\n \"url\" in content && typeof content.url === \"string\" ? content.url : undefined;\n const contentFile =\n \"file\" in content && content.file && typeof content.file === \"object\"\n ? content.file\n : undefined;\n const mediaUrl = contentUrl ?? contentFile?.url;\n const pendingHistoryText = resolveMatrixPendingHistoryText({\n mentionPrecheckText,\n content,\n mediaUrl,\n });\n const pendingHistoryPollText =\n !pendingHistoryText && isPollEvent && historyLimit > 0\n ? (await getPollSnapshot())?.text\n : \"\";\n if (!mentionPrecheckText && !mediaUrl && !isPollEvent) {\n await commitInboundEventIfClaimed();\n return undefined;\n }\n\n const _messageId = event.event_id ?? \"\";\n const _threadRootId = resolveMatrixThreadRootId({ event, content });\n const thread = resolveMatrixThreadRouting({\n isDirectMessage,\n threadReplies,\n dmThreadReplies,\n messageId: _messageId,\n threadRootId: _threadRootId,\n });\n const {\n route: _route,\n configuredBinding: _configuredBinding,\n runtimeBindingId: _runtimeBindingId,\n } = resolveMatrixInboundRoute({\n cfg,\n accountId,\n roomId,\n senderId,\n isDirectMessage,\n dmSessionScope,\n threadId: thread.threadId,\n eventTs: eventTs ?? undefined,\n resolveAgentRoute: core.channel.routing.resolveAgentRoute,\n });\n const hasExplicitSessionBinding = _configuredBinding !== null || _runtimeBindingId !== null;\n const agentMentionRegexes = core.channel.mentions.buildMentionRegexes(cfg, _route.agentId);\n const selfDisplayName = content.formatted_body\n ? await getMemberDisplayName(roomId, selfUserId).catch(() => undefined)\n : undefined;\n const { wasMentioned, hasExplicitMention } = resolveMentions({\n content,\n userId: selfUserId,\n displayName: selfDisplayName,\n text: mentionPrecheckText,\n mentionRegexes: agentMentionRegexes,\n });\n if (\n isConfiguredBotSender &&\n allowBotsMode === \"mentions\" &&\n !isDirectMessage &&\n !wasMentioned\n ) {\n logVerboseMessage(\n `matrix: drop configured bot sender=${senderId} (allowBots=mentions, missing mention, ${roomMatchMeta})`,\n );\n await commitInboundEventIfClaimed();\n return undefined;\n }\n const allowTextCommands = core.channel.commands.shouldHandleTextCommands({\n cfg,\n surface: \"matrix\",\n });\n const useAccessGroups = cfg.commands?.useAccessGroups !== false;\n const hasControlCommandInMessage = core.channel.text.hasControlCommand(\n mentionPrecheckText,\n cfg,\n );\n const commandGate = resolveControlCommandGate({\n useAccessGroups,\n authorizers: commandAuthorizers,\n allowTextCommands,\n hasControlCommand: hasControlCommandInMessage,\n });\n const commandAuthorized = commandGate.commandAuthorized;\n if (isRoom && commandGate.shouldBlock) {\n logInboundDrop({\n log: logVerboseMessage,\n channel: \"matrix\",\n reason: \"control command (unauthorized)\",\n target: senderId,\n });\n await commitInboundEventIfClaimed();\n return undefined;\n }\n const shouldRequireMention = isRoom\n ? roomConfig?.autoReply === true\n ? false\n : roomConfig?.autoReply === false\n ? true\n : typeof roomConfig?.requireMention === \"boolean\"\n ? roomConfig?.requireMention\n : true\n : false;\n const shouldBypassMention =\n allowTextCommands &&\n isRoom &&\n shouldRequireMention &&\n !wasMentioned &&\n !hasExplicitMention &&\n commandAuthorized &&\n hasControlCommandInMessage;\n const canDetectMention = agentMentionRegexes.length > 0 || hasExplicitMention;\n if (isRoom && shouldRequireMention && !wasMentioned && !shouldBypassMention) {\n const pendingHistoryBody = pendingHistoryText || pendingHistoryPollText;\n if (historyLimit > 0 && pendingHistoryBody) {\n const pendingEntry: HistoryEntry = {\n sender: senderId,\n body: pendingHistoryBody,\n timestamp: eventTs ?? undefined,\n messageId: _messageId,\n };\n roomHistoryTracker.recordPending(roomId, pendingEntry);\n }\n logger.info(\"skipping room message\", { roomId, reason: \"no-mention\" });\n await commitInboundEventIfClaimed();\n return undefined;\n }\n\n if (isPollEvent) {\n const pollSnapshot = await getPollSnapshot();\n if (!pollSnapshot) {\n return undefined;\n }\n content = {\n msgtype: \"m.text\",\n body: pollSnapshot.text,\n } as unknown as RoomMessageEventContent;\n }\n\n let media: {\n path: string;\n contentType?: string;\n placeholder: string;\n } | null = null;\n let mediaDownloadFailed = false;\n let mediaSizeLimitExceeded = false;\n const finalContentUrl =\n \"url\" in content && typeof content.url === \"string\" ? content.url : undefined;\n const finalContentFile =\n \"file\" in content && content.file && typeof content.file === \"object\"\n ? content.file\n : undefined;\n const finalMediaUrl = finalContentUrl ?? finalContentFile?.url;\n const contentBody = typeof content.body === \"string\" ? content.body.trim() : \"\";\n const contentFilename = typeof content.filename === \"string\" ? content.filename.trim() : \"\";\n const originalFilename = contentFilename || contentBody || undefined;\n const contentInfo =\n \"info\" in content && content.info && typeof content.info === \"object\"\n ? (content.info as { mimetype?: string; size?: number })\n : undefined;\n const contentType = contentInfo?.mimetype;\n const contentSize = typeof contentInfo?.size === \"number\" ? contentInfo.size : undefined;\n if (finalMediaUrl?.startsWith(\"mxc://\")) {\n try {\n media = await downloadMatrixMedia({\n client,\n mxcUrl: finalMediaUrl,\n contentType,\n sizeBytes: contentSize,\n maxBytes: mediaMaxBytes,\n file: finalContentFile,\n originalFilename,\n });\n } catch (err) {\n mediaDownloadFailed = true;\n if (isMatrixMediaSizeLimitError(err)) {\n mediaSizeLimitExceeded = true;\n }\n const errorText = formatMatrixErrorMessage(err);\n logVerboseMessage(\n `matrix: media download failed room=${roomId} id=${event.event_id ?? \"unknown\"} type=${content.msgtype} error=${errorText}`,\n );\n logger.warn(\"matrix media download failed\", {\n roomId,\n eventId: event.event_id,\n msgtype: content.msgtype,\n encrypted: Boolean(finalContentFile),\n error: errorText,\n });\n }\n }\n\n const rawBody = locationPayload?.text ?? contentBody;\n const bodyText = resolveMatrixInboundBodyText({\n rawBody,\n filename: typeof content.filename === \"string\" ? content.filename : undefined,\n mediaPlaceholder: media?.placeholder,\n msgtype: content.msgtype,\n hadMediaUrl: Boolean(finalMediaUrl),\n mediaDownloadFailed,\n mediaSizeLimitExceeded,\n });\n if (!bodyText) {\n await commitInboundEventIfClaimed();\n return undefined;\n }\n const senderName = await getSenderName();\n if (_configuredBinding) {\n const ensured = await ensureConfiguredAcpBindingReady({\n cfg,\n configuredBinding: _configuredBinding,\n });\n if (!ensured.ok) {\n logInboundDrop({\n log: logVerboseMessage,\n channel: \"matrix\",\n reason: \"configured ACP binding unavailable\",\n target: _configuredBinding.spec.conversationId,\n });\n return undefined;\n }\n }\n if (_runtimeBindingId) {\n getSessionBindingService().touch(_runtimeBindingId, eventTs ?? undefined);\n }\n const preparedTrigger =\n isRoom && historyLimit > 0\n ? roomHistoryTracker.prepareTrigger(_route.agentId, roomId, historyLimit, {\n sender: senderName,\n body: bodyText,\n timestamp: eventTs ?? undefined,\n messageId: _messageId,\n })\n : undefined;\n const inboundHistory = preparedTrigger?.history;\n const triggerSnapshot = preparedTrigger;\n\n return {\n route: _route,\n hasExplicitSessionBinding,\n roomConfig,\n isDirectMessage,\n isRoom,\n shouldRequireMention,\n wasMentioned,\n shouldBypassMention,\n canDetectMention,\n commandAuthorized,\n inboundHistory,\n senderName,\n bodyText,\n media,\n locationPayload,\n messageId: _messageId,\n triggerSnapshot,\n threadRootId: _threadRootId,\n thread,\n effectiveGroupAllowFrom,\n effectiveRoomUsers,\n };\n };\n const ingressResult =\n historyLimit > 0\n ? await runRoomIngress(roomId, async () => {\n const prefix = await readIngressPrefix();\n if (!prefix) {\n return undefined;\n }\n if (prefix.isDirectMessage) {\n return { deferredPrefix: prefix } as const;\n }\n return { ingressResult: await continueIngress(prefix) } as const;\n })\n : undefined;\n const resolvedIngressResult =\n historyLimit > 0\n ? ingressResult?.deferredPrefix\n ? await continueIngress(ingressResult.deferredPrefix)\n : ingressResult?.ingressResult\n : await (async () => {\n const prefix = await readIngressPrefix();\n if (!prefix) {\n return undefined;\n }\n return await continueIngress(prefix);\n })();\n if (!resolvedIngressResult) {\n return;\n }\n\n const {\n route: _route,\n hasExplicitSessionBinding,\n roomConfig,\n isDirectMessage,\n isRoom,\n shouldRequireMention,\n wasMentioned,\n shouldBypassMention,\n canDetectMention,\n commandAuthorized,\n inboundHistory,\n senderName,\n bodyText,\n media,\n locationPayload,\n messageId: _messageId,\n triggerSnapshot,\n threadRootId: _threadRootId,\n thread,\n effectiveGroupAllowFrom,\n effectiveRoomUsers,\n } = resolvedIngressResult;\n\n // Keep the per-room ingress gate focused on ordering-sensitive state updates.\n // Prompt/session enrichment below can run concurrently after the history snapshot is fixed.\n const replyToEventId = resolveMatrixReplyToEventId(event.content as RoomMessageEventContent);\n const threadTarget = thread.threadId;\n const isRoomContextSenderAllowed = (contextSenderId?: string): boolean => {\n if (!isRoom || !contextSenderId) {\n return true;\n }\n if (effectiveRoomUsers.length > 0) {\n return resolveMatrixAllowListMatch({\n allowList: effectiveRoomUsers,\n userId: contextSenderId,\n }).allowed;\n }\n if (groupPolicy === \"allowlist\" && effectiveGroupAllowFrom.length > 0) {\n return resolveMatrixAllowListMatch({\n allowList: effectiveGroupAllowFrom,\n userId: contextSenderId,\n }).allowed;\n }\n return true;\n };\n const shouldIncludeRoomContextSender = (\n kind: \"thread\" | \"quote\" | \"history\",\n contextSenderId?: string,\n ): boolean =>\n evaluateSupplementalContextVisibility({\n mode: contextVisibilityMode,\n kind,\n senderAllowed: isRoomContextSenderAllowed(contextSenderId),\n }).include;\n let threadContext = _threadRootId\n ? await resolveThreadContext({ roomId, threadRootId: _threadRootId })\n : undefined;\n let threadContextBlockedByPolicy = false;\n if (\n threadContext?.senderId &&\n !shouldIncludeRoomContextSender(\"thread\", threadContext.senderId)\n ) {\n logVerboseMessage(`matrix: drop thread root context (mode=${contextVisibilityMode})`);\n threadContextBlockedByPolicy = true;\n threadContext = undefined;\n }\n let replyContext: Awaited<ReturnType<typeof resolveReplyContext>> | undefined;\n if (replyToEventId && replyToEventId === _threadRootId && threadContext?.summary) {\n replyContext = {\n replyToBody: threadContext.summary,\n replyToSender: threadContext.senderLabel,\n replyToSenderId: threadContext.senderId,\n };\n } else if (\n replyToEventId &&\n replyToEventId === _threadRootId &&\n threadContextBlockedByPolicy\n ) {\n replyContext = await resolveReplyContext({ roomId, eventId: replyToEventId });\n } else {\n replyContext = replyToEventId\n ? await resolveReplyContext({ roomId, eventId: replyToEventId })\n : undefined;\n }\n if (\n replyContext?.replyToSenderId &&\n !shouldIncludeRoomContextSender(\"quote\", replyContext.replyToSenderId)\n ) {\n logVerboseMessage(`matrix: drop reply context (mode=${contextVisibilityMode})`);\n replyContext = undefined;\n }\n const roomInfo = isRoom ? await getRoomInfo(roomId) : undefined;\n const roomName = roomInfo?.name;\n const envelopeFrom = isDirectMessage ? senderName : (roomName ?? roomId);\n const textWithId = `${bodyText}\\n[matrix event id: ${_messageId} room: ${roomId}]`;\n const storePath = core.channel.session.resolveStorePath(cfg.session?.store, {\n agentId: _route.agentId,\n });\n const envelopeOptions = core.channel.reply.resolveEnvelopeFormatOptions(cfg);\n const previousTimestamp = core.channel.session.readSessionUpdatedAt({\n storePath,\n sessionKey: _route.sessionKey,\n });\n const sharedDmNoticeSessionKey = threadTarget\n ? _route.mainSessionKey || _route.sessionKey\n : _route.sessionKey;\n const sharedDmContextNotice = isDirectMessage\n ? hasExplicitSessionBinding\n ? null\n : resolveMatrixSharedDmContextNotice({\n storePath,\n sessionKey: sharedDmNoticeSessionKey,\n roomId,\n accountId: _route.accountId,\n dmSessionScope,\n sentRooms: sharedDmContextNoticeRooms,\n logVerboseMessage,\n })\n : null;\n const body = core.channel.reply.formatAgentEnvelope({\n channel: \"Matrix\",\n from: envelopeFrom,\n timestamp: eventTs ?? undefined,\n previousTimestamp,\n envelope: envelopeOptions,\n body: textWithId,\n });\n const groupSystemPrompt = normalizeOptionalString(roomConfig?.systemPrompt);\n const ctxPayload = core.channel.reply.finalizeInboundContext({\n Body: body,\n RawBody: bodyText,\n CommandBody: bodyText,\n InboundHistory: inboundHistory && inboundHistory.length > 0 ? inboundHistory : undefined,\n From: isDirectMessage ? `matrix:${senderId}` : `matrix:channel:${roomId}`,\n To: `room:${roomId}`,\n SessionKey: _route.sessionKey,\n AccountId: _route.accountId,\n ChatType: isDirectMessage ? \"direct\" : \"channel\",\n ConversationLabel: envelopeFrom,\n SenderName: senderName,\n SenderId: senderId,\n SenderUsername: senderId.split(\":\")[0]?.replace(/^@/, \"\"),\n GroupSubject: isRoom ? (roomName ?? roomId) : undefined,\n GroupId: isRoom ? roomId : undefined,\n GroupSystemPrompt: isRoom ? groupSystemPrompt : undefined,\n Provider: \"matrix\" as const,\n Surface: \"matrix\" as const,\n WasMentioned: isRoom ? wasMentioned : undefined,\n MessageSid: _messageId,\n ReplyToId: threadTarget ? undefined : (replyToEventId ?? undefined),\n ReplyToBody: replyContext?.replyToBody,\n ReplyToSender: replyContext?.replyToSender,\n MessageThreadId: threadTarget,\n ThreadStarterBody: threadContext?.threadStarterBody,\n Timestamp: eventTs ?? undefined,\n MediaPath: media?.path,\n MediaType: media?.contentType,\n MediaUrl: media?.path,\n ...locationPayload?.context,\n CommandAuthorized: commandAuthorized,\n CommandSource: \"text\" as const,\n NativeChannelId: roomId,\n NativeDirectUserId: isDirectMessage ? senderId : undefined,\n OriginatingChannel: \"matrix\" as const,\n OriginatingTo: `room:${roomId}`,\n });\n\n await core.channel.session.recordInboundSession({\n storePath,\n sessionKey: ctxPayload.SessionKey ?? _route.sessionKey,\n ctx: ctxPayload,\n updateLastRoute: isDirectMessage\n ? {\n sessionKey: _route.mainSessionKey,\n channel: \"matrix\",\n to: `room:${roomId}`,\n accountId: _route.accountId,\n }\n : undefined,\n onRecordError: (err) => {\n logger.warn(\"failed updating session meta\", {\n error: String(err),\n storePath,\n sessionKey: ctxPayload.SessionKey ?? _route.sessionKey,\n });\n },\n });\n\n if (sharedDmContextNotice && markTrackedRoomIfFirst(sharedDmContextNoticeRooms, roomId)) {\n client\n .sendMessage(roomId, {\n msgtype: \"m.notice\",\n body: sharedDmContextNotice,\n })\n .catch((err) => {\n logVerboseMessage(\n `matrix: failed sending shared DM session notice room=${roomId}: ${String(err)}`,\n );\n });\n }\n\n const preview = bodyText.slice(0, 200).replace(/\\n/g, \"\\\\n\");\n logVerboseMessage(`matrix inbound: room=${roomId} from=${senderId} preview=\"${preview}\"`);\n\n const replyTarget = ctxPayload.To;\n if (!replyTarget) {\n runtime.error?.(\"matrix: missing reply target\");\n return;\n }\n\n const { ackReaction, ackReactionScope: ackScope } = resolveMatrixAckReactionConfig({\n cfg,\n agentId: _route.agentId,\n accountId,\n });\n const shouldAckReaction = () =>\n Boolean(\n ackReaction &&\n core.channel.reactions.shouldAckReaction({\n scope: ackScope,\n isDirect: isDirectMessage,\n isGroup: isRoom,\n isMentionableGroup: isRoom,\n requireMention: shouldRequireMention,\n canDetectMention,\n effectiveWasMentioned: wasMentioned || shouldBypassMention,\n shouldBypassMention,\n }),\n );\n if (shouldAckReaction() && _messageId) {\n reactMatrixMessage(roomId, _messageId, ackReaction, client).catch((err) => {\n logVerboseMessage(`matrix react failed for room ${roomId}: ${String(err)}`);\n });\n }\n\n if (_messageId) {\n sendReadReceiptMatrix(roomId, _messageId, client).catch((err) => {\n logVerboseMessage(\n `matrix: read receipt failed room=${roomId} id=${_messageId}: ${String(err)}`,\n );\n });\n }\n\n const tableMode = core.channel.text.resolveMarkdownTableMode({\n cfg,\n channel: \"matrix\",\n accountId: _route.accountId,\n });\n const mediaLocalRoots = getAgentScopedMediaLocalRoots(cfg, _route.agentId);\n let finalReplyDeliveryFailed = false;\n let nonFinalReplyDeliveryFailed = false;\n const { onModelSelected, ...prefixOptions } = createReplyPrefixOptions({\n cfg,\n agentId: _route.agentId,\n channel: \"matrix\",\n accountId: _route.accountId,\n });\n const typingCallbacks = createTypingCallbacks({\n start: () => sendTypingMatrix(roomId, true, undefined, client),\n stop: () => sendTypingMatrix(roomId, false, undefined, client),\n onStartError: (err) => {\n logTypingFailure({\n log: logVerboseMessage,\n channel: \"matrix\",\n action: \"start\",\n target: roomId,\n error: err,\n });\n },\n onStopError: (err) => {\n logTypingFailure({\n log: logVerboseMessage,\n channel: \"matrix\",\n action: \"stop\",\n target: roomId,\n error: err,\n });\n },\n });\n const draftStreamingEnabled = streaming !== \"off\";\n const quietDraftStreaming = streaming === \"quiet\";\n const draftReplyToId = replyToMode !== \"off\" && !threadTarget ? _messageId : undefined;\n const draftStream = draftStreamingEnabled\n ? createMatrixDraftStream({\n roomId,\n client,\n cfg,\n mode: quietDraftStreaming ? \"quiet\" : \"partial\",\n threadId: threadTarget,\n replyToId: draftReplyToId,\n preserveReplyId: replyToMode === \"all\",\n accountId: _route.accountId,\n log: logVerboseMessage,\n })\n : undefined;\n draftStreamRef = draftStream;\n type PendingDraftBoundary = {\n messageGeneration: number;\n endOffset: number;\n };\n // Track the current draft block start plus any queued block-end offsets\n // inside the model's cumulative partial text so multiple block\n // boundaries can drain in order even when Matrix delivery lags behind.\n let currentDraftMessageGeneration = 0;\n let currentDraftBlockOffset = 0;\n let latestDraftFullText = \"\";\n const pendingDraftBoundaries: PendingDraftBoundary[] = [];\n const latestQueuedDraftBoundaryOffsets = new Map<number, number>();\n let currentDraftReplyToId = draftReplyToId;\n // Set after the first final payload consumes or discards the draft event\n // so subsequent finals go through normal delivery.\n\n const getDisplayableDraftText = () => {\n const nextDraftBoundaryOffset = pendingDraftBoundaries.find(\n (boundary) => boundary.messageGeneration === currentDraftMessageGeneration,\n )?.endOffset;\n if (nextDraftBoundaryOffset === undefined) {\n return latestDraftFullText.slice(currentDraftBlockOffset);\n }\n return latestDraftFullText.slice(currentDraftBlockOffset, nextDraftBoundaryOffset);\n };\n\n const updateDraftFromLatestFullText = () => {\n const blockText = getDisplayableDraftText();\n if (blockText) {\n draftStream?.update(blockText);\n }\n };\n\n const queueDraftBlockBoundary = (payload: ReplyPayload, context?: BlockReplyContext) => {\n const payloadTextLength = payload.text?.length ?? 0;\n const messageGeneration = context?.assistantMessageIndex ?? currentDraftMessageGeneration;\n const lastQueuedDraftBoundaryOffset =\n latestQueuedDraftBoundaryOffsets.get(messageGeneration) ?? 0;\n // Logical block boundaries must follow emitted block text, not whichever\n // later partial preview has already arrived by the time the async\n // boundary callback drains.\n const nextDraftBoundaryOffset = lastQueuedDraftBoundaryOffset + payloadTextLength;\n latestQueuedDraftBoundaryOffsets.set(messageGeneration, nextDraftBoundaryOffset);\n pendingDraftBoundaries.push({\n messageGeneration,\n endOffset: nextDraftBoundaryOffset,\n });\n };\n\n const advanceDraftBlockBoundary = (options?: { fallbackToLatestEnd?: boolean }) => {\n const completedBoundary = pendingDraftBoundaries.shift();\n if (completedBoundary) {\n if (\n !pendingDraftBoundaries.some(\n (entry) => entry.messageGeneration === completedBoundary.messageGeneration,\n )\n ) {\n latestQueuedDraftBoundaryOffsets.delete(completedBoundary.messageGeneration);\n }\n if (completedBoundary.messageGeneration === currentDraftMessageGeneration) {\n currentDraftBlockOffset = completedBoundary.endOffset;\n }\n return;\n }\n if (options?.fallbackToLatestEnd) {\n currentDraftBlockOffset = latestDraftFullText.length;\n }\n };\n\n const resetDraftBlockOffsets = () => {\n currentDraftMessageGeneration += 1;\n currentDraftBlockOffset = 0;\n latestDraftFullText = \"\";\n };\n\n const { dispatcher, replyOptions, markDispatchIdle, markRunComplete } =\n core.channel.reply.createReplyDispatcherWithTyping({\n ...prefixOptions,\n humanDelay: core.channel.reply.resolveHumanDelayConfig(cfg, _route.agentId),\n deliver: async (payload: ReplyPayload, info: { kind: string }) => {\n if (draftStream && info.kind !== \"tool\" && !payload.isCompactionNotice) {\n const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;\n\n await draftStream.stop();\n const draftEventId = draftStream.eventId();\n\n if (draftConsumed) {\n await deliverMatrixReplies({\n cfg,\n replies: [payload],\n roomId,\n client,\n runtime,\n textLimit,\n replyToMode,\n threadId: threadTarget,\n accountId: _route.accountId,\n mediaLocalRoots,\n tableMode,\n });\n return;\n }\n\n const payloadReplyToId = normalizeOptionalString(payload.replyToId);\n const payloadReplyMismatch =\n replyToMode !== \"off\" &&\n !threadTarget &&\n payloadReplyToId !== currentDraftReplyToId;\n const mustDeliverFinalNormally = draftStream.mustDeliverFinalNormally();\n\n if (\n draftEventId &&\n payload.text &&\n !hasMedia &&\n !payloadReplyMismatch &&\n !mustDeliverFinalNormally\n ) {\n try {\n const requiresFinalEdit =\n quietDraftStreaming || !draftStream.matchesPreparedText(payload.text);\n if (requiresFinalEdit) {\n await editMessageMatrix(roomId, draftEventId, payload.text, {\n client,\n cfg,\n threadId: threadTarget,\n accountId: _route.accountId,\n extraContent: quietDraftStreaming\n ? buildMatrixFinalizedPreviewContent()\n : undefined,\n });\n } else if (!(await draftStream.finalizeLive())) {\n throw new Error(\"Matrix draft live finalize failed\");\n }\n } catch {\n await redactMatrixDraftEvent(client, roomId, draftEventId);\n await deliverMatrixReplies({\n cfg,\n replies: [payload],\n roomId,\n client,\n runtime,\n textLimit,\n replyToMode,\n threadId: threadTarget,\n accountId: _route.accountId,\n mediaLocalRoots,\n tableMode,\n });\n }\n draftConsumed = true;\n } else if (draftEventId && hasMedia && !payloadReplyMismatch) {\n let textEditOk = !mustDeliverFinalNormally;\n const payloadText = payload.text;\n const payloadTextMatchesDraft =\n typeof payloadText === \"string\" && draftStream.matchesPreparedText(payloadText);\n const reusesDraftTextUnchanged =\n typeof payloadText === \"string\" &&\n Boolean(payloadText.trim()) &&\n payloadTextMatchesDraft;\n const requiresFinalTextEdit =\n quietDraftStreaming ||\n (typeof payloadText === \"string\" && !payloadTextMatchesDraft);\n if (textEditOk && payloadText && requiresFinalTextEdit) {\n textEditOk = await editMessageMatrix(roomId, draftEventId, payloadText, {\n client,\n cfg,\n threadId: threadTarget,\n accountId: _route.accountId,\n extraContent: quietDraftStreaming\n ? buildMatrixFinalizedPreviewContent()\n : undefined,\n }).then(\n () => true,\n () => false,\n );\n } else if (textEditOk && reusesDraftTextUnchanged) {\n textEditOk = await draftStream.finalizeLive();\n }\n const reusesDraftAsFinalText = Boolean(payload.text?.trim()) && textEditOk;\n if (!reusesDraftAsFinalText) {\n await redactMatrixDraftEvent(client, roomId, draftEventId);\n }\n await deliverMatrixReplies({\n cfg,\n replies: [\n { ...payload, text: reusesDraftAsFinalText ? undefined : payload.text },\n ],\n roomId,\n client,\n runtime,\n textLimit,\n replyToMode,\n threadId: threadTarget,\n accountId: _route.accountId,\n mediaLocalRoots,\n tableMode,\n });\n draftConsumed = true;\n } else {\n const draftRedacted =\n Boolean(draftEventId) && (payloadReplyMismatch || mustDeliverFinalNormally);\n if (draftRedacted && draftEventId) {\n await redactMatrixDraftEvent(client, roomId, draftEventId);\n }\n const deliveredFallback = await deliverMatrixReplies({\n cfg,\n replies: [payload],\n roomId,\n client,\n runtime,\n textLimit,\n replyToMode,\n threadId: threadTarget,\n accountId: _route.accountId,\n mediaLocalRoots,\n tableMode,\n });\n if (draftRedacted || deliveredFallback) {\n draftConsumed = true;\n }\n }\n\n if (info.kind === \"block\") {\n draftConsumed = false;\n advanceDraftBlockBoundary({ fallbackToLatestEnd: true });\n draftStream.reset();\n currentDraftReplyToId = replyToMode === \"all\" ? draftReplyToId : undefined;\n updateDraftFromLatestFullText();\n\n // Re-assert typing so the user still sees the indicator while\n // the next block generates.\n await sendTypingMatrix(roomId, true, undefined, client).catch(() => {});\n }\n } else {\n await deliverMatrixReplies({\n cfg,\n replies: [payload],\n roomId,\n client,\n runtime,\n textLimit,\n replyToMode,\n threadId: threadTarget,\n accountId: _route.accountId,\n mediaLocalRoots,\n tableMode,\n });\n }\n },\n onError: (err: unknown, info: { kind: \"tool\" | \"block\" | \"final\" }) => {\n if (info.kind === \"final\") {\n finalReplyDeliveryFailed = true;\n } else {\n nonFinalReplyDeliveryFailed = true;\n }\n if (info.kind === \"block\") {\n advanceDraftBlockBoundary({ fallbackToLatestEnd: true });\n }\n runtime.error?.(`matrix ${info.kind} reply failed: ${String(err)}`);\n },\n onReplyStart: typingCallbacks.onReplyStart,\n onIdle: typingCallbacks.onIdle,\n });\n\n const { queuedFinal, counts } = await core.channel.reply.withReplyDispatcher({\n dispatcher,\n onSettled: () => {\n markDispatchIdle();\n },\n run: async () => {\n try {\n return await core.channel.reply.dispatchReplyFromConfig({\n ctx: ctxPayload,\n cfg,\n dispatcher,\n replyOptions: {\n ...replyOptions,\n skillFilter: roomConfig?.skills,\n // Keep block streaming enabled when explicitly requested, even\n // with draft previews on. The draft remains the live preview\n // for the current assistant block, while block deliveries\n // finalize completed blocks into their own preserved events.\n disableBlockStreaming: !blockStreamingEnabled,\n onPartialReply: draftStream\n ? (payload) => {\n latestDraftFullText = payload.text ?? \"\";\n updateDraftFromLatestFullText();\n }\n : undefined,\n onBlockReplyQueued: draftStream\n ? (payload, context) => {\n if (payload.isCompactionNotice === true) {\n return;\n }\n queueDraftBlockBoundary(payload, context);\n }\n : undefined,\n // Reset draft boundary bookkeeping on assistant message\n // boundaries so post-tool blocks stream from a fresh\n // cumulative payload (payload.text resets upstream).\n onAssistantMessageStart: draftStream\n ? () => {\n resetDraftBlockOffsets();\n }\n : undefined,\n onModelSelected,\n },\n });\n } finally {\n markRunComplete();\n }\n },\n });\n if (finalReplyDeliveryFailed) {\n logVerboseMessage(\n `matrix: final reply delivery failed room=${roomId} id=${_messageId}; leaving event uncommitted`,\n );\n // Do not advance watermark \u2014 the event will be retried and should see the same history.\n return;\n }\n if (!queuedFinal && nonFinalReplyDeliveryFailed) {\n logVerboseMessage(\n `matrix: non-final reply delivery failed room=${roomId} id=${_messageId}; leaving event uncommitted`,\n );\n // Do not advance watermark \u2014 the event will be retried.\n return;\n }\n // Advance the per-agent watermark now that the reply succeeded (or no reply was needed).\n // Only advance to the snapshot position \u2014 messages added during async processing remain\n // visible for the next trigger.\n if (isRoom && triggerSnapshot) {\n roomHistoryTracker.consumeHistory(_route.agentId, roomId, triggerSnapshot, _messageId);\n }\n if (!queuedFinal) {\n await commitInboundEventIfClaimed();\n return;\n }\n const finalCount = counts.final;\n logVerboseMessage(\n `matrix: delivered ${finalCount} reply${finalCount === 1 ? \"\" : \"ies\"} to ${replyTarget}`,\n );\n await commitInboundEventIfClaimed();\n } catch (err) {\n runtime.error?.(`matrix handler failed: ${String(err)}`);\n } finally {\n // Stop the draft stream timer so partial drafts don't leak if the\n // model run throws or times out mid-stream.\n if (draftStreamRef) {\n const draftEventId = await draftStreamRef.stop().catch(() => undefined);\n if (draftEventId && !draftConsumed) {\n await redactMatrixDraftEvent(client, roomId, draftEventId);\n }\n }\n if (claimedInboundEvent && inboundDeduper && eventId) {\n inboundDeduper.releaseEvent({ roomId, eventId });\n }\n }\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["locationPayload", "isDirectMessage", "params", "isRoom", "roomConfig", "effectiveGroupAllowFrom", "effectiveRoomUsers", "senderName", "_messageId", "_threadRootId", "thread", "_route", "hasExplicitSessionBinding", "wasMentioned", "commandAuthorized", "shouldRequireMention", "shouldBypassMention", "canDetectMention", "media", "bodyText", "inboundHistory", "triggerSnapshot"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EventType
|
|
3
|
+
} from "./chunk-E3GC4V5V.js";
|
|
4
|
+
import {
|
|
5
|
+
withResolvedActionClient,
|
|
6
|
+
withResolvedRoomAction
|
|
7
|
+
} from "./chunk-Y6CJN4ID.js";
|
|
8
|
+
import {
|
|
9
|
+
resolveMatrixRoomId
|
|
10
|
+
} from "./chunk-THM2QV25.js";
|
|
11
|
+
import {
|
|
12
|
+
init_shims
|
|
13
|
+
} from "./chunk-7FLQSTPG.js";
|
|
14
|
+
|
|
15
|
+
// src/matrix/actions/room.ts
|
|
16
|
+
init_shims();
|
|
17
|
+
async function getMatrixMemberInfo(userId, opts = {}) {
|
|
18
|
+
return await withResolvedActionClient(opts, async (client) => {
|
|
19
|
+
const roomId = opts.roomId ? await resolveMatrixRoomId(client, opts.roomId) : void 0;
|
|
20
|
+
const profile = await client.getUserProfile(userId);
|
|
21
|
+
return {
|
|
22
|
+
userId,
|
|
23
|
+
profile: {
|
|
24
|
+
displayName: profile?.displayname ?? null,
|
|
25
|
+
avatarUrl: profile?.avatar_url ?? null
|
|
26
|
+
},
|
|
27
|
+
membership: null,
|
|
28
|
+
// Would need separate room state query
|
|
29
|
+
powerLevel: null,
|
|
30
|
+
// Would need separate power levels state query
|
|
31
|
+
displayName: profile?.displayname ?? null,
|
|
32
|
+
roomId: roomId ?? null
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async function getMatrixRoomInfo(roomId, opts = {}) {
|
|
37
|
+
return await withResolvedRoomAction(roomId, opts, async (client, resolvedRoom) => {
|
|
38
|
+
let name = null;
|
|
39
|
+
let topic = null;
|
|
40
|
+
let canonicalAlias = null;
|
|
41
|
+
let memberCount = null;
|
|
42
|
+
try {
|
|
43
|
+
const nameState = await client.getRoomStateEvent(resolvedRoom, "m.room.name", "");
|
|
44
|
+
name = typeof nameState?.name === "string" ? nameState.name : null;
|
|
45
|
+
} catch {
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const topicState = await client.getRoomStateEvent(resolvedRoom, EventType.RoomTopic, "");
|
|
49
|
+
topic = typeof topicState?.topic === "string" ? topicState.topic : null;
|
|
50
|
+
} catch {
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const aliasState = await client.getRoomStateEvent(resolvedRoom, "m.room.canonical_alias", "");
|
|
54
|
+
canonicalAlias = typeof aliasState?.alias === "string" ? aliasState.alias : null;
|
|
55
|
+
} catch {
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const members = await client.getJoinedRoomMembers(resolvedRoom);
|
|
59
|
+
memberCount = members.length;
|
|
60
|
+
} catch {
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
roomId: resolvedRoom,
|
|
64
|
+
name,
|
|
65
|
+
topic,
|
|
66
|
+
canonicalAlias,
|
|
67
|
+
altAliases: [],
|
|
68
|
+
// Would need separate query
|
|
69
|
+
memberCount
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export {
|
|
75
|
+
getMatrixMemberInfo,
|
|
76
|
+
getMatrixRoomInfo
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=chunk-U767LCSG.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/matrix/actions/room.ts"],
|
|
4
|
+
"sourcesContent": ["import { resolveMatrixRoomId } from \"../send.js\";\nimport { withResolvedActionClient, withResolvedRoomAction } from \"./client.js\";\nimport { EventType, type MatrixActionClientOpts } from \"./types.js\";\n\nexport async function getMatrixMemberInfo(\n userId: string,\n opts: MatrixActionClientOpts & { roomId?: string } = {},\n) {\n return await withResolvedActionClient(opts, async (client) => {\n const roomId = opts.roomId ? await resolveMatrixRoomId(client, opts.roomId) : undefined;\n const profile = await client.getUserProfile(userId);\n // Membership and power levels are not included in profile calls; fetch state separately if needed.\n return {\n userId,\n profile: {\n displayName: profile?.displayname ?? null,\n avatarUrl: profile?.avatar_url ?? null,\n },\n membership: null, // Would need separate room state query\n powerLevel: null, // Would need separate power levels state query\n displayName: profile?.displayname ?? null,\n roomId: roomId ?? null,\n };\n });\n}\n\nexport async function getMatrixRoomInfo(roomId: string, opts: MatrixActionClientOpts = {}) {\n return await withResolvedRoomAction(roomId, opts, async (client, resolvedRoom) => {\n let name: string | null = null;\n let topic: string | null = null;\n let canonicalAlias: string | null = null;\n let memberCount: number | null = null;\n\n try {\n const nameState = await client.getRoomStateEvent(resolvedRoom, \"m.room.name\", \"\");\n name = typeof nameState?.name === \"string\" ? nameState.name : null;\n } catch {\n // ignore\n }\n\n try {\n const topicState = await client.getRoomStateEvent(resolvedRoom, EventType.RoomTopic, \"\");\n topic = typeof topicState?.topic === \"string\" ? topicState.topic : null;\n } catch {\n // ignore\n }\n\n try {\n const aliasState = await client.getRoomStateEvent(resolvedRoom, \"m.room.canonical_alias\", \"\");\n canonicalAlias = typeof aliasState?.alias === \"string\" ? aliasState.alias : null;\n } catch {\n // ignore\n }\n\n try {\n const members = await client.getJoinedRoomMembers(resolvedRoom);\n memberCount = members.length;\n } catch {\n // ignore\n }\n\n return {\n roomId: resolvedRoom,\n name,\n topic,\n canonicalAlias,\n altAliases: [], // Would need separate query\n memberCount,\n };\n });\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAIA,eAAsB,oBACpB,QACA,OAAqD,CAAC,GACtD;AACA,SAAO,MAAM,yBAAyB,MAAM,OAAO,WAAW;AAC5D,UAAM,SAAS,KAAK,SAAS,MAAM,oBAAoB,QAAQ,KAAK,MAAM,IAAI;AAC9E,UAAM,UAAU,MAAM,OAAO,eAAe,MAAM;AAElD,WAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,QACP,aAAa,SAAS,eAAe;AAAA,QACrC,WAAW,SAAS,cAAc;AAAA,MACpC;AAAA,MACA,YAAY;AAAA;AAAA,MACZ,YAAY;AAAA;AAAA,MACZ,aAAa,SAAS,eAAe;AAAA,MACrC,QAAQ,UAAU;AAAA,IACpB;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,kBAAkB,QAAgB,OAA+B,CAAC,GAAG;AACzF,SAAO,MAAM,uBAAuB,QAAQ,MAAM,OAAO,QAAQ,iBAAiB;AAChF,QAAI,OAAsB;AAC1B,QAAI,QAAuB;AAC3B,QAAI,iBAAgC;AACpC,QAAI,cAA6B;AAEjC,QAAI;AACF,YAAM,YAAY,MAAM,OAAO,kBAAkB,cAAc,eAAe,EAAE;AAChF,aAAO,OAAO,WAAW,SAAS,WAAW,UAAU,OAAO;AAAA,IAChE,QAAQ;AAAA,IAER;AAEA,QAAI;AACF,YAAM,aAAa,MAAM,OAAO,kBAAkB,cAAc,UAAU,WAAW,EAAE;AACvF,cAAQ,OAAO,YAAY,UAAU,WAAW,WAAW,QAAQ;AAAA,IACrE,QAAQ;AAAA,IAER;AAEA,QAAI;AACF,YAAM,aAAa,MAAM,OAAO,kBAAkB,cAAc,0BAA0B,EAAE;AAC5F,uBAAiB,OAAO,YAAY,UAAU,WAAW,WAAW,QAAQ;AAAA,IAC9E,QAAQ;AAAA,IAER;AAEA,QAAI;AACF,YAAM,UAAU,MAAM,OAAO,qBAAqB,YAAY;AAC9D,oBAAc,QAAQ;AAAA,IACxB,QAAQ;AAAA,IAER;AAEA,WAAO;AAAA,MACL,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,CAAC;AAAA;AAAA,MACb;AAAA,IACF;AAAA,EACF,CAAC;AACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import {
|
|
2
|
+
init_shims
|
|
3
|
+
} from "./chunk-7FLQSTPG.js";
|
|
4
|
+
|
|
5
|
+
// src/matrix/sdk/crypto-facade.ts
|
|
6
|
+
init_shims();
|
|
7
|
+
var matrixCryptoNodeRuntimePromise = null;
|
|
8
|
+
async function loadMatrixCryptoNodeRuntime() {
|
|
9
|
+
matrixCryptoNodeRuntimePromise ??= import("./src/matrix/sdk/crypto-node.runtime.js");
|
|
10
|
+
return await matrixCryptoNodeRuntimePromise;
|
|
11
|
+
}
|
|
12
|
+
function createMatrixCryptoFacade(deps) {
|
|
13
|
+
return {
|
|
14
|
+
prepare: async (_joinedRooms) => {
|
|
15
|
+
},
|
|
16
|
+
updateSyncData: async (_toDeviceMessages, _otkCounts, _unusedFallbackKeyAlgs, _changedDeviceLists, _leftDeviceLists) => {
|
|
17
|
+
},
|
|
18
|
+
isRoomEncrypted: async (roomId) => {
|
|
19
|
+
const room = deps.client.getRoom(roomId);
|
|
20
|
+
if (room?.hasEncryptionStateEvent()) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const event = await deps.getRoomStateEvent(roomId, "m.room.encryption", "");
|
|
25
|
+
return typeof event.algorithm === "string" && event.algorithm.length > 0;
|
|
26
|
+
} catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
requestOwnUserVerification: async () => {
|
|
31
|
+
const crypto = deps.client.getCrypto();
|
|
32
|
+
return await deps.verificationManager.requestOwnUserVerification(crypto);
|
|
33
|
+
},
|
|
34
|
+
encryptMedia: async (buffer) => {
|
|
35
|
+
const { Attachment } = await loadMatrixCryptoNodeRuntime();
|
|
36
|
+
const encrypted = Attachment.encrypt(new Uint8Array(buffer));
|
|
37
|
+
const mediaInfoJson = encrypted.mediaEncryptionInfo;
|
|
38
|
+
if (!mediaInfoJson) {
|
|
39
|
+
throw new Error("Matrix media encryption failed: missing media encryption info");
|
|
40
|
+
}
|
|
41
|
+
const parsed = JSON.parse(mediaInfoJson);
|
|
42
|
+
return {
|
|
43
|
+
buffer: Buffer.from(encrypted.encryptedData),
|
|
44
|
+
file: {
|
|
45
|
+
key: parsed.key,
|
|
46
|
+
iv: parsed.iv,
|
|
47
|
+
hashes: parsed.hashes,
|
|
48
|
+
v: parsed.v
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
},
|
|
52
|
+
decryptMedia: async (file, opts) => {
|
|
53
|
+
const { Attachment, EncryptedAttachment } = await loadMatrixCryptoNodeRuntime();
|
|
54
|
+
const encrypted = await deps.downloadContent(file.url, opts);
|
|
55
|
+
const metadata = {
|
|
56
|
+
url: file.url,
|
|
57
|
+
key: file.key,
|
|
58
|
+
iv: file.iv,
|
|
59
|
+
hashes: file.hashes,
|
|
60
|
+
v: file.v
|
|
61
|
+
};
|
|
62
|
+
const attachment = new EncryptedAttachment(
|
|
63
|
+
new Uint8Array(encrypted),
|
|
64
|
+
JSON.stringify(metadata)
|
|
65
|
+
);
|
|
66
|
+
const decrypted = Attachment.decrypt(attachment);
|
|
67
|
+
return Buffer.from(decrypted);
|
|
68
|
+
},
|
|
69
|
+
getRecoveryKey: async () => {
|
|
70
|
+
return deps.recoveryKeyStore.getRecoveryKeySummary();
|
|
71
|
+
},
|
|
72
|
+
listVerifications: async () => {
|
|
73
|
+
return deps.verificationManager.listVerifications();
|
|
74
|
+
},
|
|
75
|
+
ensureVerificationDmTracked: async ({ roomId, userId }) => {
|
|
76
|
+
const crypto = deps.client.getCrypto();
|
|
77
|
+
const request = typeof crypto?.findVerificationRequestDMInProgress === "function" ? crypto.findVerificationRequestDMInProgress(roomId, userId) : void 0;
|
|
78
|
+
if (!request) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
return deps.verificationManager.trackVerificationRequest(request);
|
|
82
|
+
},
|
|
83
|
+
requestVerification: async (params) => {
|
|
84
|
+
const crypto = deps.client.getCrypto();
|
|
85
|
+
return await deps.verificationManager.requestVerification(crypto, params);
|
|
86
|
+
},
|
|
87
|
+
acceptVerification: async (id) => {
|
|
88
|
+
return await deps.verificationManager.acceptVerification(id);
|
|
89
|
+
},
|
|
90
|
+
cancelVerification: async (id, params) => {
|
|
91
|
+
return await deps.verificationManager.cancelVerification(id, params);
|
|
92
|
+
},
|
|
93
|
+
startVerification: async (id, method = "sas") => {
|
|
94
|
+
return await deps.verificationManager.startVerification(id, method);
|
|
95
|
+
},
|
|
96
|
+
generateVerificationQr: async (id) => {
|
|
97
|
+
return await deps.verificationManager.generateVerificationQr(id);
|
|
98
|
+
},
|
|
99
|
+
scanVerificationQr: async (id, qrDataBase64) => {
|
|
100
|
+
return await deps.verificationManager.scanVerificationQr(id, qrDataBase64);
|
|
101
|
+
},
|
|
102
|
+
confirmVerificationSas: async (id) => {
|
|
103
|
+
return await deps.verificationManager.confirmVerificationSas(id);
|
|
104
|
+
},
|
|
105
|
+
mismatchVerificationSas: async (id) => {
|
|
106
|
+
return deps.verificationManager.mismatchVerificationSas(id);
|
|
107
|
+
},
|
|
108
|
+
confirmVerificationReciprocateQr: async (id) => {
|
|
109
|
+
return deps.verificationManager.confirmVerificationReciprocateQr(id);
|
|
110
|
+
},
|
|
111
|
+
getVerificationSas: async (id) => {
|
|
112
|
+
return deps.verificationManager.getVerificationSas(id);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export {
|
|
118
|
+
createMatrixCryptoFacade
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=chunk-U7GKLHU6.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/matrix/sdk/crypto-facade.ts"],
|
|
4
|
+
"sourcesContent": ["import type { MatrixRecoveryKeyStore } from \"./recovery-key-store.js\";\nimport type { EncryptedFile } from \"./types.js\";\nimport type {\n MatrixVerificationCryptoApi,\n MatrixVerificationManager,\n MatrixVerificationMethod,\n MatrixVerificationSummary,\n} from \"./verification-manager.js\";\n\ntype MatrixCryptoFacadeClient = {\n getRoom: (roomId: string) => { hasEncryptionStateEvent: () => boolean } | null;\n getCrypto: () => unknown;\n};\n\nexport type MatrixCryptoFacade = {\n prepare: (joinedRooms: string[]) => Promise<void>;\n updateSyncData: (\n toDeviceMessages: unknown,\n otkCounts: unknown,\n unusedFallbackKeyAlgs: unknown,\n changedDeviceLists: unknown,\n leftDeviceLists: unknown,\n ) => Promise<void>;\n isRoomEncrypted: (roomId: string) => Promise<boolean>;\n requestOwnUserVerification: () => Promise<MatrixVerificationSummary | null>;\n encryptMedia: (buffer: Buffer) => Promise<{ buffer: Buffer; file: Omit<EncryptedFile, \"url\"> }>;\n decryptMedia: (\n file: EncryptedFile,\n opts?: { maxBytes?: number; readIdleTimeoutMs?: number },\n ) => Promise<Buffer>;\n getRecoveryKey: () => Promise<{\n encodedPrivateKey?: string;\n keyId?: string | null;\n createdAt?: string;\n } | null>;\n listVerifications: () => Promise<MatrixVerificationSummary[]>;\n ensureVerificationDmTracked: (params: {\n roomId: string;\n userId: string;\n }) => Promise<MatrixVerificationSummary | null>;\n requestVerification: (params: {\n ownUser?: boolean;\n userId?: string;\n deviceId?: string;\n roomId?: string;\n }) => Promise<MatrixVerificationSummary>;\n acceptVerification: (id: string) => Promise<MatrixVerificationSummary>;\n cancelVerification: (\n id: string,\n params?: { reason?: string; code?: string },\n ) => Promise<MatrixVerificationSummary>;\n startVerification: (\n id: string,\n method?: MatrixVerificationMethod,\n ) => Promise<MatrixVerificationSummary>;\n generateVerificationQr: (id: string) => Promise<{ qrDataBase64: string }>;\n scanVerificationQr: (id: string, qrDataBase64: string) => Promise<MatrixVerificationSummary>;\n confirmVerificationSas: (id: string) => Promise<MatrixVerificationSummary>;\n mismatchVerificationSas: (id: string) => Promise<MatrixVerificationSummary>;\n confirmVerificationReciprocateQr: (id: string) => Promise<MatrixVerificationSummary>;\n getVerificationSas: (\n id: string,\n ) => Promise<{ decimal?: [number, number, number]; emoji?: Array<[string, string]> }>;\n};\n\ntype MatrixCryptoNodeRuntime = typeof import(\"./crypto-node.runtime.js\");\nlet matrixCryptoNodeRuntimePromise: Promise<MatrixCryptoNodeRuntime> | null = null;\n\nasync function loadMatrixCryptoNodeRuntime(): Promise<MatrixCryptoNodeRuntime> {\n // Keep the native crypto package out of the main CLI startup graph.\n matrixCryptoNodeRuntimePromise ??= import(\"./crypto-node.runtime.js\");\n return await matrixCryptoNodeRuntimePromise;\n}\n\nexport function createMatrixCryptoFacade(deps: {\n client: MatrixCryptoFacadeClient;\n verificationManager: MatrixVerificationManager;\n recoveryKeyStore: MatrixRecoveryKeyStore;\n getRoomStateEvent: (\n roomId: string,\n eventType: string,\n stateKey?: string,\n ) => Promise<Record<string, unknown>>;\n downloadContent: (\n mxcUrl: string,\n opts?: { maxBytes?: number; readIdleTimeoutMs?: number },\n ) => Promise<Buffer>;\n}): MatrixCryptoFacade {\n return {\n prepare: async (_joinedRooms: string[]) => {\n // matrix-js-sdk performs crypto prep during startup; no extra work required here.\n },\n updateSyncData: async (\n _toDeviceMessages: unknown,\n _otkCounts: unknown,\n _unusedFallbackKeyAlgs: unknown,\n _changedDeviceLists: unknown,\n _leftDeviceLists: unknown,\n ) => {\n // compatibility no-op\n },\n isRoomEncrypted: async (roomId: string): Promise<boolean> => {\n const room = deps.client.getRoom(roomId);\n if (room?.hasEncryptionStateEvent()) {\n return true;\n }\n try {\n const event = await deps.getRoomStateEvent(roomId, \"m.room.encryption\", \"\");\n return typeof event.algorithm === \"string\" && event.algorithm.length > 0;\n } catch {\n return false;\n }\n },\n requestOwnUserVerification: async () => {\n const crypto = deps.client.getCrypto() as MatrixVerificationCryptoApi | undefined;\n return await deps.verificationManager.requestOwnUserVerification(crypto);\n },\n encryptMedia: async (\n buffer: Buffer,\n ): Promise<{ buffer: Buffer; file: Omit<EncryptedFile, \"url\"> }> => {\n const { Attachment } = await loadMatrixCryptoNodeRuntime();\n const encrypted = Attachment.encrypt(new Uint8Array(buffer));\n const mediaInfoJson = encrypted.mediaEncryptionInfo;\n if (!mediaInfoJson) {\n throw new Error(\"Matrix media encryption failed: missing media encryption info\");\n }\n const parsed = JSON.parse(mediaInfoJson) as EncryptedFile;\n return {\n buffer: Buffer.from(encrypted.encryptedData),\n file: {\n key: parsed.key,\n iv: parsed.iv,\n hashes: parsed.hashes,\n v: parsed.v,\n },\n };\n },\n decryptMedia: async (\n file: EncryptedFile,\n opts?: { maxBytes?: number; readIdleTimeoutMs?: number },\n ): Promise<Buffer> => {\n const { Attachment, EncryptedAttachment } = await loadMatrixCryptoNodeRuntime();\n const encrypted = await deps.downloadContent(file.url, opts);\n const metadata: EncryptedFile = {\n url: file.url,\n key: file.key,\n iv: file.iv,\n hashes: file.hashes,\n v: file.v,\n };\n const attachment = new EncryptedAttachment(\n new Uint8Array(encrypted),\n JSON.stringify(metadata),\n );\n const decrypted = Attachment.decrypt(attachment);\n return Buffer.from(decrypted);\n },\n getRecoveryKey: async () => {\n return deps.recoveryKeyStore.getRecoveryKeySummary();\n },\n listVerifications: async () => {\n return deps.verificationManager.listVerifications();\n },\n ensureVerificationDmTracked: async ({ roomId, userId }) => {\n const crypto = deps.client.getCrypto() as MatrixVerificationCryptoApi | undefined;\n const request =\n typeof crypto?.findVerificationRequestDMInProgress === \"function\"\n ? crypto.findVerificationRequestDMInProgress(roomId, userId)\n : undefined;\n if (!request) {\n return null;\n }\n return deps.verificationManager.trackVerificationRequest(request);\n },\n requestVerification: async (params) => {\n const crypto = deps.client.getCrypto() as MatrixVerificationCryptoApi | undefined;\n return await deps.verificationManager.requestVerification(crypto, params);\n },\n acceptVerification: async (id) => {\n return await deps.verificationManager.acceptVerification(id);\n },\n cancelVerification: async (id, params) => {\n return await deps.verificationManager.cancelVerification(id, params);\n },\n startVerification: async (id, method = \"sas\") => {\n return await deps.verificationManager.startVerification(id, method);\n },\n generateVerificationQr: async (id) => {\n return await deps.verificationManager.generateVerificationQr(id);\n },\n scanVerificationQr: async (id, qrDataBase64) => {\n return await deps.verificationManager.scanVerificationQr(id, qrDataBase64);\n },\n confirmVerificationSas: async (id) => {\n return await deps.verificationManager.confirmVerificationSas(id);\n },\n mismatchVerificationSas: async (id) => {\n return deps.verificationManager.mismatchVerificationSas(id);\n },\n confirmVerificationReciprocateQr: async (id) => {\n return deps.verificationManager.confirmVerificationReciprocateQr(id);\n },\n getVerificationSas: async (id) => {\n return deps.verificationManager.getVerificationSas(id);\n },\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RelationType
|
|
3
|
+
} from "./chunk-GLLRCKKE.js";
|
|
4
|
+
import {
|
|
5
|
+
init_shims
|
|
6
|
+
} from "./chunk-7FLQSTPG.js";
|
|
7
|
+
|
|
8
|
+
// src/matrix/monitor/threads.ts
|
|
9
|
+
init_shims();
|
|
10
|
+
import { resolveThreadSessionKeys } from "openclaw/plugin-sdk/routing";
|
|
11
|
+
function resolveMatrixThreadSessionKeys(params) {
|
|
12
|
+
return resolveThreadSessionKeys({
|
|
13
|
+
...params,
|
|
14
|
+
// Matrix event IDs are opaque and case-sensitive; keep the exact thread root.
|
|
15
|
+
normalizeThreadId: (threadId) => threadId
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function resolveMatrixRelatedReplyToEventId(relates) {
|
|
19
|
+
if (!relates || typeof relates !== "object") {
|
|
20
|
+
return void 0;
|
|
21
|
+
}
|
|
22
|
+
if ("m.in_reply_to" in relates && typeof relates["m.in_reply_to"] === "object" && relates["m.in_reply_to"] && "event_id" in relates["m.in_reply_to"] && typeof relates["m.in_reply_to"].event_id === "string") {
|
|
23
|
+
return relates["m.in_reply_to"].event_id;
|
|
24
|
+
}
|
|
25
|
+
return void 0;
|
|
26
|
+
}
|
|
27
|
+
function resolveMatrixThreadRouting(params) {
|
|
28
|
+
const effectiveThreadReplies = params.isDirectMessage && params.dmThreadReplies !== void 0 ? params.dmThreadReplies : params.threadReplies;
|
|
29
|
+
const messageId = params.messageId.trim();
|
|
30
|
+
const threadRootId = params.threadRootId?.trim();
|
|
31
|
+
const inboundThreadId = threadRootId && threadRootId !== messageId ? threadRootId : void 0;
|
|
32
|
+
const threadId = effectiveThreadReplies === "off" ? void 0 : effectiveThreadReplies === "inbound" ? inboundThreadId : inboundThreadId ?? (messageId || void 0);
|
|
33
|
+
return {
|
|
34
|
+
threadId
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function resolveMatrixThreadRootId(params) {
|
|
38
|
+
const relates = params.content["m.relates_to"];
|
|
39
|
+
if (!relates || typeof relates !== "object") {
|
|
40
|
+
return void 0;
|
|
41
|
+
}
|
|
42
|
+
if ("rel_type" in relates && relates.rel_type === RelationType.Thread) {
|
|
43
|
+
if ("event_id" in relates && typeof relates.event_id === "string") {
|
|
44
|
+
return relates.event_id;
|
|
45
|
+
}
|
|
46
|
+
return resolveMatrixRelatedReplyToEventId(relates);
|
|
47
|
+
}
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
function resolveMatrixReplyToEventId(content) {
|
|
51
|
+
return resolveMatrixRelatedReplyToEventId(content["m.relates_to"]);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
resolveMatrixThreadSessionKeys,
|
|
56
|
+
resolveMatrixThreadRouting,
|
|
57
|
+
resolveMatrixThreadRootId,
|
|
58
|
+
resolveMatrixReplyToEventId
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=chunk-UAB5P5QO.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/matrix/monitor/threads.ts"],
|
|
4
|
+
"sourcesContent": ["import { resolveThreadSessionKeys } from \"openclaw/plugin-sdk/routing\";\nimport type { MatrixRawEvent, RoomMessageEventContent } from \"./types.js\";\nimport { RelationType } from \"./types.js\";\n\nexport type MatrixThreadReplies = \"off\" | \"inbound\" | \"always\";\n\nexport type MatrixThreadRouting = {\n threadId?: string;\n};\n\nexport function resolveMatrixThreadSessionKeys(params: {\n baseSessionKey: string;\n threadId?: string | null;\n parentSessionKey?: string;\n useSuffix?: boolean;\n}): { sessionKey: string; parentSessionKey?: string } {\n return resolveThreadSessionKeys({\n ...params,\n // Matrix event IDs are opaque and case-sensitive; keep the exact thread root.\n normalizeThreadId: (threadId) => threadId,\n });\n}\n\nfunction resolveMatrixRelatedReplyToEventId(relates: unknown): string | undefined {\n if (!relates || typeof relates !== \"object\") {\n return undefined;\n }\n if (\n \"m.in_reply_to\" in relates &&\n typeof relates[\"m.in_reply_to\"] === \"object\" &&\n relates[\"m.in_reply_to\"] &&\n \"event_id\" in relates[\"m.in_reply_to\"] &&\n typeof relates[\"m.in_reply_to\"].event_id === \"string\"\n ) {\n return relates[\"m.in_reply_to\"].event_id;\n }\n return undefined;\n}\n\nexport function resolveMatrixThreadRouting(params: {\n isDirectMessage: boolean;\n threadReplies: MatrixThreadReplies;\n dmThreadReplies?: MatrixThreadReplies;\n messageId: string;\n threadRootId?: string;\n}): MatrixThreadRouting {\n const effectiveThreadReplies =\n params.isDirectMessage && params.dmThreadReplies !== undefined\n ? params.dmThreadReplies\n : params.threadReplies;\n const messageId = params.messageId.trim();\n const threadRootId = params.threadRootId?.trim();\n const inboundThreadId = threadRootId && threadRootId !== messageId ? threadRootId : undefined;\n const threadId =\n effectiveThreadReplies === \"off\"\n ? undefined\n : effectiveThreadReplies === \"inbound\"\n ? inboundThreadId\n : (inboundThreadId ?? (messageId || undefined));\n\n return {\n threadId,\n };\n}\n\nexport function resolveMatrixThreadRootId(params: {\n event: MatrixRawEvent;\n content: RoomMessageEventContent;\n}): string | undefined {\n const relates = params.content[\"m.relates_to\"];\n if (!relates || typeof relates !== \"object\") {\n return undefined;\n }\n if (\"rel_type\" in relates && relates.rel_type === RelationType.Thread) {\n if (\"event_id\" in relates && typeof relates.event_id === \"string\") {\n return relates.event_id;\n }\n return resolveMatrixRelatedReplyToEventId(relates);\n }\n return undefined;\n}\n\nexport function resolveMatrixReplyToEventId(content: RoomMessageEventContent): string | undefined {\n return resolveMatrixRelatedReplyToEventId(content[\"m.relates_to\"]);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAAA;AAAA,SAAS,gCAAgC;AAUlC,SAAS,+BAA+B,QAKO;AACpD,SAAO,yBAAyB;AAAA,IAC9B,GAAG;AAAA;AAAA,IAEH,mBAAmB,CAAC,aAAa;AAAA,EACnC,CAAC;AACH;AAEA,SAAS,mCAAmC,SAAsC;AAChF,MAAI,CAAC,WAAW,OAAO,YAAY,UAAU;AAC3C,WAAO;AAAA,EACT;AACA,MACE,mBAAmB,WACnB,OAAO,QAAQ,eAAe,MAAM,YACpC,QAAQ,eAAe,KACvB,cAAc,QAAQ,eAAe,KACrC,OAAO,QAAQ,eAAe,EAAE,aAAa,UAC7C;AACA,WAAO,QAAQ,eAAe,EAAE;AAAA,EAClC;AACA,SAAO;AACT;AAEO,SAAS,2BAA2B,QAMnB;AACtB,QAAM,yBACJ,OAAO,mBAAmB,OAAO,oBAAoB,SACjD,OAAO,kBACP,OAAO;AACb,QAAM,YAAY,OAAO,UAAU,KAAK;AACxC,QAAM,eAAe,OAAO,cAAc,KAAK;AAC/C,QAAM,kBAAkB,gBAAgB,iBAAiB,YAAY,eAAe;AACpF,QAAM,WACJ,2BAA2B,QACvB,SACA,2BAA2B,YACzB,kBACC,oBAAoB,aAAa;AAE1C,SAAO;AAAA,IACL;AAAA,EACF;AACF;AAEO,SAAS,0BAA0B,QAGnB;AACrB,QAAM,UAAU,OAAO,QAAQ,cAAc;AAC7C,MAAI,CAAC,WAAW,OAAO,YAAY,UAAU;AAC3C,WAAO;AAAA,EACT;AACA,MAAI,cAAc,WAAW,QAAQ,aAAa,aAAa,QAAQ;AACrE,QAAI,cAAc,WAAW,OAAO,QAAQ,aAAa,UAAU;AACjE,aAAO,QAAQ;AAAA,IACjB;AACA,WAAO,mCAAmC,OAAO;AAAA,EACnD;AACA,SAAO;AACT;AAEO,SAAS,4BAA4B,SAAsD;AAChG,SAAO,mCAAmC,QAAQ,cAAc,CAAC;AACnE;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import {
|
|
2
|
+
init_shims
|
|
3
|
+
} from "./chunk-G4TIS2SC.js";
|
|
4
|
+
|
|
5
|
+
// src/storage-paths.ts
|
|
6
|
+
init_shims();
|
|
7
|
+
import crypto from "node:crypto";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
10
|
+
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime";
|
|
11
|
+
function sanitizeMatrixPathSegment(value) {
|
|
12
|
+
const cleaned = normalizeLowercaseStringOrEmpty(value).replace(/[^a-z0-9._-]+/g, "_").replace(/^_+|_+$/g, "");
|
|
13
|
+
return cleaned || "unknown";
|
|
14
|
+
}
|
|
15
|
+
function resolveMatrixHomeserverKey(homeserver) {
|
|
16
|
+
try {
|
|
17
|
+
const url = new URL(homeserver);
|
|
18
|
+
if (url.host) {
|
|
19
|
+
return sanitizeMatrixPathSegment(url.host);
|
|
20
|
+
}
|
|
21
|
+
} catch {
|
|
22
|
+
}
|
|
23
|
+
return sanitizeMatrixPathSegment(homeserver);
|
|
24
|
+
}
|
|
25
|
+
function hashMatrixAccessToken(accessToken) {
|
|
26
|
+
return crypto.createHash("sha256").update(accessToken).digest("hex").slice(0, 16);
|
|
27
|
+
}
|
|
28
|
+
function resolveMatrixCredentialsFilename(accountId) {
|
|
29
|
+
const normalized = normalizeAccountId(accountId);
|
|
30
|
+
return normalized === DEFAULT_ACCOUNT_ID ? "credentials.json" : `credentials-${normalized}.json`;
|
|
31
|
+
}
|
|
32
|
+
function resolveMatrixCredentialsDir(stateDir) {
|
|
33
|
+
return path.join(stateDir, "credentials", "lobi");
|
|
34
|
+
}
|
|
35
|
+
function resolveMatrixCredentialsPath(params) {
|
|
36
|
+
return path.join(
|
|
37
|
+
resolveMatrixCredentialsDir(params.stateDir),
|
|
38
|
+
resolveMatrixCredentialsFilename(params.accountId)
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
function resolveMatrixLegacyFlatStoreRoot(stateDir) {
|
|
42
|
+
return path.join(stateDir, "lobi");
|
|
43
|
+
}
|
|
44
|
+
function resolveMatrixLegacyFlatStoragePaths(stateDir) {
|
|
45
|
+
const rootDir = resolveMatrixLegacyFlatStoreRoot(stateDir);
|
|
46
|
+
return {
|
|
47
|
+
rootDir,
|
|
48
|
+
storagePath: path.join(rootDir, "bot-storage.json"),
|
|
49
|
+
cryptoPath: path.join(rootDir, "crypto")
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function resolveMatrixAccountStorageRoot(params) {
|
|
53
|
+
const accountKey = sanitizeMatrixPathSegment(params.accountId ?? DEFAULT_ACCOUNT_ID);
|
|
54
|
+
const userKey = sanitizeMatrixPathSegment(params.userId);
|
|
55
|
+
const serverKey = resolveMatrixHomeserverKey(params.homeserver);
|
|
56
|
+
const tokenHash = hashMatrixAccessToken(params.accessToken);
|
|
57
|
+
return {
|
|
58
|
+
rootDir: path.join(
|
|
59
|
+
params.stateDir,
|
|
60
|
+
"lobi",
|
|
61
|
+
"accounts",
|
|
62
|
+
accountKey,
|
|
63
|
+
`${serverKey}__${userKey}`,
|
|
64
|
+
tokenHash
|
|
65
|
+
),
|
|
66
|
+
accountKey,
|
|
67
|
+
tokenHash
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export {
|
|
72
|
+
sanitizeMatrixPathSegment,
|
|
73
|
+
resolveMatrixHomeserverKey,
|
|
74
|
+
hashMatrixAccessToken,
|
|
75
|
+
resolveMatrixCredentialsFilename,
|
|
76
|
+
resolveMatrixCredentialsDir,
|
|
77
|
+
resolveMatrixCredentialsPath,
|
|
78
|
+
resolveMatrixLegacyFlatStoreRoot,
|
|
79
|
+
resolveMatrixLegacyFlatStoragePaths,
|
|
80
|
+
resolveMatrixAccountStorageRoot
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=chunk-UDDWLWKZ.js.map
|