@archipelagolab/lobi 1.0.5 → 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.
Files changed (567) hide show
  1. package/dist/APEv2Parser-FYYGMFPI.js +15 -0
  2. package/dist/APEv2Parser-FYYGMFPI.js.map +7 -0
  3. package/dist/AiffParser-JHSDQA7T.js +194 -0
  4. package/dist/AiffParser-JHSDQA7T.js.map +7 -0
  5. package/dist/AsfParser-TPCQDEJB.js +620 -0
  6. package/dist/AsfParser-TPCQDEJB.js.map +7 -0
  7. package/dist/DsdiffParser-CGD3C3TL.js +192 -0
  8. package/dist/DsdiffParser-CGD3C3TL.js.map +7 -0
  9. package/dist/DsfParser-3UTIJVNF.js +114 -0
  10. package/dist/DsfParser-3UTIJVNF.js.map +7 -0
  11. package/dist/FlacParser-HLLYPJ76.js +16 -0
  12. package/dist/FlacParser-HLLYPJ76.js.map +7 -0
  13. package/dist/MP4Parser-SM7HYL3Z.js +1145 -0
  14. package/dist/MP4Parser-SM7HYL3Z.js.map +7 -0
  15. package/dist/MatroskaParser-X7WRZ6D4.js +662 -0
  16. package/dist/MatroskaParser-X7WRZ6D4.js.map +7 -0
  17. package/dist/MpegParser-KXQEC6KD.js +652 -0
  18. package/dist/MpegParser-KXQEC6KD.js.map +7 -0
  19. package/dist/MusepackParser-NURI46TG.js +331 -0
  20. package/dist/MusepackParser-NURI46TG.js.map +7 -0
  21. package/dist/OggParser-5IYVBXPS.js +448 -0
  22. package/dist/OggParser-5IYVBXPS.js.map +7 -0
  23. package/dist/WavPackParser-RTEHKSJH.js +209 -0
  24. package/dist/WavPackParser-RTEHKSJH.js.map +7 -0
  25. package/dist/WaveParser-3R2NLXGP.js +300 -0
  26. package/dist/WaveParser-3R2NLXGP.js.map +7 -0
  27. package/dist/auth-presence.js +2 -2
  28. package/dist/channel-plugin-api.js +68 -68
  29. package/dist/chunk-2GFROLI2.js +261 -0
  30. package/dist/chunk-2GFROLI2.js.map +7 -0
  31. package/dist/chunk-2IQWKATM.js +127 -0
  32. package/dist/chunk-2IQWKATM.js.map +7 -0
  33. package/dist/chunk-2V6Y4CAN.js +25 -0
  34. package/dist/chunk-2V6Y4CAN.js.map +7 -0
  35. package/dist/chunk-2WHRUMOM.js +321 -0
  36. package/dist/chunk-2WHRUMOM.js.map +7 -0
  37. package/dist/chunk-3GIK7SAA.js +109 -0
  38. package/dist/chunk-3GIK7SAA.js.map +7 -0
  39. package/dist/chunk-3OXOEMBS.js +123 -0
  40. package/dist/chunk-3OXOEMBS.js.map +7 -0
  41. package/dist/chunk-3R4ATE4Q.js +176 -0
  42. package/dist/chunk-3R4ATE4Q.js.map +7 -0
  43. package/dist/chunk-4CFQNJ7F.js +7 -0
  44. package/dist/chunk-4CFQNJ7F.js.map +7 -0
  45. package/dist/chunk-4COI4L2Y.js +31 -0
  46. package/dist/chunk-4COI4L2Y.js.map +7 -0
  47. package/dist/chunk-4EKKDVG3.js +1662 -0
  48. package/dist/chunk-4EKKDVG3.js.map +7 -0
  49. package/dist/chunk-4L2QI6AY.js +71 -0
  50. package/dist/chunk-4L2QI6AY.js.map +7 -0
  51. package/dist/chunk-4OXPPDV6.js +676 -0
  52. package/dist/chunk-4OXPPDV6.js.map +7 -0
  53. package/dist/chunk-4QTZHELX.js +51 -0
  54. package/dist/chunk-4QTZHELX.js.map +7 -0
  55. package/dist/chunk-4U42OJMK.js +217 -0
  56. package/dist/chunk-4U42OJMK.js.map +7 -0
  57. package/dist/chunk-4WCKVGQ5.js +193 -0
  58. package/dist/chunk-4WCKVGQ5.js.map +7 -0
  59. package/dist/chunk-4XXERLFH.js +95 -0
  60. package/dist/chunk-4XXERLFH.js.map +7 -0
  61. package/dist/chunk-4ZY2BOQ4.js +123 -0
  62. package/dist/chunk-4ZY2BOQ4.js.map +7 -0
  63. package/dist/chunk-57ROEOHB.js +183 -0
  64. package/dist/chunk-57ROEOHB.js.map +7 -0
  65. package/dist/chunk-5BQ6LLNU.js +39 -0
  66. package/dist/chunk-5BQ6LLNU.js.map +7 -0
  67. package/dist/chunk-63QTHDJL.js +52 -0
  68. package/dist/chunk-63QTHDJL.js.map +7 -0
  69. package/dist/chunk-65UUVZ6B.js +151 -0
  70. package/dist/chunk-65UUVZ6B.js.map +7 -0
  71. package/dist/chunk-6COVTMAO.js +3586 -0
  72. package/dist/chunk-6COVTMAO.js.map +7 -0
  73. package/dist/chunk-6EYPDJUD.js +34 -0
  74. package/dist/chunk-6EYPDJUD.js.map +7 -0
  75. package/dist/chunk-6HDYPVA4.js +15 -0
  76. package/dist/chunk-6HDYPVA4.js.map +7 -0
  77. package/dist/chunk-6OP3FK5F.js +266 -0
  78. package/dist/chunk-6OP3FK5F.js.map +7 -0
  79. package/dist/chunk-6RBDFNSX.js +88 -0
  80. package/dist/chunk-6RBDFNSX.js.map +7 -0
  81. package/dist/chunk-6TWWCETB.js +70 -0
  82. package/dist/chunk-6TWWCETB.js.map +7 -0
  83. package/dist/chunk-6WFHPMUF.js +17 -0
  84. package/dist/chunk-6WFHPMUF.js.map +7 -0
  85. package/dist/chunk-77BEEAPD.js +86 -0
  86. package/dist/chunk-77BEEAPD.js.map +7 -0
  87. package/dist/chunk-77JJ6QJK.js +50 -0
  88. package/dist/chunk-77JJ6QJK.js.map +7 -0
  89. package/dist/chunk-7BIUNV33.js +62 -0
  90. package/dist/chunk-7BIUNV33.js.map +7 -0
  91. package/dist/chunk-7L37R42D.js +52 -0
  92. package/dist/chunk-7L37R42D.js.map +7 -0
  93. package/dist/chunk-7ZP3KYVO.js +104 -0
  94. package/dist/chunk-7ZP3KYVO.js.map +7 -0
  95. package/dist/chunk-ARGF232V.js +32 -0
  96. package/dist/chunk-ARGF232V.js.map +7 -0
  97. package/dist/chunk-ATCJOK3K.js +24 -0
  98. package/dist/chunk-ATCJOK3K.js.map +7 -0
  99. package/dist/chunk-AUUABFHL.js +124 -0
  100. package/dist/chunk-AUUABFHL.js.map +7 -0
  101. package/dist/chunk-B3NTODO7.js +57 -0
  102. package/dist/chunk-B3NTODO7.js.map +7 -0
  103. package/dist/chunk-BM7J2W36.js +86 -0
  104. package/dist/chunk-BM7J2W36.js.map +7 -0
  105. package/dist/chunk-CEB5S2Z5.js +127 -0
  106. package/dist/chunk-CEB5S2Z5.js.map +7 -0
  107. package/dist/chunk-CEKNTCJD.js +177 -0
  108. package/dist/chunk-CEKNTCJD.js.map +7 -0
  109. package/dist/chunk-CGFDIH77.js +94 -0
  110. package/dist/chunk-CGFDIH77.js.map +7 -0
  111. package/dist/chunk-CPLEC5LJ.js +26 -0
  112. package/dist/chunk-CPLEC5LJ.js.map +7 -0
  113. package/dist/chunk-D4GYYYMW.js +155 -0
  114. package/dist/chunk-D4GYYYMW.js.map +7 -0
  115. package/dist/chunk-D64CZG54.js +78 -0
  116. package/dist/chunk-D64CZG54.js.map +7 -0
  117. package/dist/chunk-DSGPDHF2.js +737 -0
  118. package/dist/chunk-DSGPDHF2.js.map +7 -0
  119. package/dist/chunk-EBXHW7ZO.js +108 -0
  120. package/dist/chunk-EBXHW7ZO.js.map +7 -0
  121. package/dist/chunk-EO35SCFP.js +7 -0
  122. package/dist/chunk-EO35SCFP.js.map +7 -0
  123. package/dist/chunk-ER2XTD2S.js +271 -0
  124. package/dist/chunk-ER2XTD2S.js.map +7 -0
  125. package/dist/chunk-ERXO3674.js +54 -0
  126. package/dist/chunk-ERXO3674.js.map +7 -0
  127. package/dist/chunk-F43CC2X2.js +49 -0
  128. package/dist/chunk-F43CC2X2.js.map +7 -0
  129. package/dist/chunk-F64TXVJJ.js +158 -0
  130. package/dist/chunk-F64TXVJJ.js.map +7 -0
  131. package/dist/chunk-F6APWSAA.js +51 -0
  132. package/dist/chunk-F6APWSAA.js.map +7 -0
  133. package/dist/chunk-F7LNS7G3.js +235 -0
  134. package/dist/chunk-F7LNS7G3.js.map +7 -0
  135. package/dist/chunk-FCNWR7ZX.js +16352 -0
  136. package/dist/chunk-FCNWR7ZX.js.map +7 -0
  137. package/dist/chunk-FFCG5NRU.js +87 -0
  138. package/dist/chunk-FFCG5NRU.js.map +7 -0
  139. package/dist/chunk-FJFC6CRR.js +446 -0
  140. package/dist/chunk-FJFC6CRR.js.map +7 -0
  141. package/dist/chunk-FK6RGYBB.js +46 -0
  142. package/dist/chunk-FK6RGYBB.js.map +7 -0
  143. package/dist/chunk-FMY6KXK6.js +251 -0
  144. package/dist/chunk-FMY6KXK6.js.map +7 -0
  145. package/dist/chunk-FPH56SCM.js +21 -0
  146. package/dist/chunk-FPH56SCM.js.map +7 -0
  147. package/dist/chunk-FVSH4Z6T.js +173 -0
  148. package/dist/chunk-FVSH4Z6T.js.map +7 -0
  149. package/dist/chunk-FVWBLEAD.js +44 -0
  150. package/dist/chunk-FVWBLEAD.js.map +7 -0
  151. package/dist/chunk-FYSARMGS.js +93 -0
  152. package/dist/chunk-FYSARMGS.js.map +7 -0
  153. package/dist/chunk-FZJOJ6P4.js +28 -0
  154. package/dist/chunk-FZJOJ6P4.js.map +7 -0
  155. package/dist/chunk-G46GHNDU.js +4890 -0
  156. package/dist/chunk-G46GHNDU.js.map +7 -0
  157. package/dist/chunk-G4TIS2SC.js +56 -0
  158. package/dist/chunk-G4TIS2SC.js.map +7 -0
  159. package/dist/chunk-GGWS7NQP.js +247 -0
  160. package/dist/chunk-GGWS7NQP.js.map +7 -0
  161. package/dist/chunk-GRBJYAYF.js +129 -0
  162. package/dist/chunk-GRBJYAYF.js.map +7 -0
  163. package/dist/chunk-GXDQGBA2.js +106 -0
  164. package/dist/chunk-GXDQGBA2.js.map +7 -0
  165. package/dist/chunk-H2HY73I6.js +122 -0
  166. package/dist/chunk-H2HY73I6.js.map +7 -0
  167. package/dist/chunk-H5MLA6PA.js +29 -0
  168. package/dist/chunk-H5MLA6PA.js.map +7 -0
  169. package/dist/chunk-H7KAUMBC.js +635 -0
  170. package/dist/chunk-H7KAUMBC.js.map +7 -0
  171. package/dist/chunk-HGHU3TVL.js +174 -0
  172. package/dist/chunk-HGHU3TVL.js.map +7 -0
  173. package/dist/chunk-HJ5E2JRL.js +88 -0
  174. package/dist/chunk-HJ5E2JRL.js.map +7 -0
  175. package/dist/chunk-HJW3CKZL.js +94 -0
  176. package/dist/chunk-HJW3CKZL.js.map +7 -0
  177. package/dist/chunk-HKF5EBER.js +418 -0
  178. package/dist/chunk-HKF5EBER.js.map +7 -0
  179. package/dist/chunk-HLUR35G5.js +30 -0
  180. package/dist/chunk-HLUR35G5.js.map +7 -0
  181. package/dist/chunk-HNIW2NZU.js +120 -0
  182. package/dist/chunk-HNIW2NZU.js.map +7 -0
  183. package/dist/chunk-HSXRCP25.js +171 -0
  184. package/dist/chunk-HSXRCP25.js.map +7 -0
  185. package/dist/chunk-I26OPZLO.js +28 -0
  186. package/dist/chunk-I26OPZLO.js.map +7 -0
  187. package/dist/chunk-I7JJQ4BQ.js +30 -0
  188. package/dist/chunk-I7JJQ4BQ.js.map +7 -0
  189. package/dist/chunk-IJ6Y4W7F.js +392 -0
  190. package/dist/chunk-IJ6Y4W7F.js.map +7 -0
  191. package/dist/chunk-IJH4NOQ4.js +18 -0
  192. package/dist/chunk-IJH4NOQ4.js.map +7 -0
  193. package/dist/chunk-IMHRZQRH.js +76 -0
  194. package/dist/chunk-IMHRZQRH.js.map +7 -0
  195. package/dist/chunk-JB6ZQEVR.js +465 -0
  196. package/dist/chunk-JB6ZQEVR.js.map +7 -0
  197. package/dist/chunk-JCWNMWNY.js +102 -0
  198. package/dist/chunk-JCWNMWNY.js.map +7 -0
  199. package/dist/chunk-JGIZPU2Y.js +39 -0
  200. package/dist/chunk-JGIZPU2Y.js.map +7 -0
  201. package/dist/chunk-JIU4FXA7.js +485 -0
  202. package/dist/chunk-JIU4FXA7.js.map +7 -0
  203. package/dist/chunk-JU2Y33DB.js +60 -0
  204. package/dist/chunk-JU2Y33DB.js.map +7 -0
  205. package/dist/chunk-JVLRI4RU.js +62 -0
  206. package/dist/chunk-JVLRI4RU.js.map +7 -0
  207. package/dist/chunk-JZ3AVNZC.js +44117 -0
  208. package/dist/chunk-JZ3AVNZC.js.map +7 -0
  209. package/dist/chunk-K3HEWOHN.js +30 -0
  210. package/dist/chunk-K3HEWOHN.js.map +7 -0
  211. package/dist/chunk-K5EK4WZV.js +7 -0
  212. package/dist/chunk-K5EK4WZV.js.map +7 -0
  213. package/dist/chunk-KAWXMSYC.js +58 -0
  214. package/dist/chunk-KAWXMSYC.js.map +7 -0
  215. package/dist/chunk-KEGPHS4C.js +80 -0
  216. package/dist/chunk-KEGPHS4C.js.map +7 -0
  217. package/dist/chunk-KXXVR3DC.js +244 -0
  218. package/dist/chunk-KXXVR3DC.js.map +7 -0
  219. package/dist/chunk-L5T6XUDP.js +412 -0
  220. package/dist/chunk-L5T6XUDP.js.map +7 -0
  221. package/dist/chunk-LIFXTQ4U.js +7287 -0
  222. package/dist/chunk-LIFXTQ4U.js.map +7 -0
  223. package/dist/chunk-LMD5UTKM.js +169 -0
  224. package/dist/chunk-LMD5UTKM.js.map +7 -0
  225. package/dist/chunk-LTXNC6JX.js +27 -0
  226. package/dist/chunk-LTXNC6JX.js.map +7 -0
  227. package/dist/chunk-LUGTGPT6.js +138 -0
  228. package/dist/chunk-LUGTGPT6.js.map +7 -0
  229. package/dist/chunk-LZQFDJNW.js +300 -0
  230. package/dist/chunk-LZQFDJNW.js.map +7 -0
  231. package/dist/chunk-M4VQPIF4.js +5853 -0
  232. package/dist/chunk-M4VQPIF4.js.map +7 -0
  233. package/dist/chunk-M64QE4QC.js +64 -0
  234. package/dist/chunk-M64QE4QC.js.map +7 -0
  235. package/dist/chunk-MJ2GW6SU.js +163 -0
  236. package/dist/chunk-MJ2GW6SU.js.map +7 -0
  237. package/dist/chunk-MYSK3SIM.js +55 -0
  238. package/dist/chunk-MYSK3SIM.js.map +7 -0
  239. package/dist/chunk-N46MIZXB.js +154 -0
  240. package/dist/chunk-N46MIZXB.js.map +7 -0
  241. package/dist/chunk-N53537P6.js +31 -0
  242. package/dist/chunk-N53537P6.js.map +7 -0
  243. package/dist/chunk-N5CTFOLX.js +40 -0
  244. package/dist/chunk-N5CTFOLX.js.map +7 -0
  245. package/dist/chunk-NIFG55CE.js +52 -0
  246. package/dist/chunk-NIFG55CE.js.map +7 -0
  247. package/dist/chunk-NJ63ALPX.js +7 -0
  248. package/dist/chunk-NJ63ALPX.js.map +7 -0
  249. package/dist/chunk-NZVHE4IT.js +3101 -0
  250. package/dist/chunk-NZVHE4IT.js.map +7 -0
  251. package/dist/chunk-O7ORICEC.js +82 -0
  252. package/dist/chunk-O7ORICEC.js.map +7 -0
  253. package/dist/chunk-OBMBAM3N.js +73 -0
  254. package/dist/chunk-OBMBAM3N.js.map +7 -0
  255. package/dist/chunk-OJJBD5K3.js +45 -0
  256. package/dist/chunk-OJJBD5K3.js.map +7 -0
  257. package/dist/chunk-OKDOVX4B.js +699 -0
  258. package/dist/chunk-OKDOVX4B.js.map +7 -0
  259. package/dist/chunk-OVMDMCZ5.js +241 -0
  260. package/dist/chunk-OVMDMCZ5.js.map +7 -0
  261. package/dist/chunk-OVU43GJK.js +63 -0
  262. package/dist/chunk-OVU43GJK.js.map +7 -0
  263. package/dist/chunk-P3TMARA6.js +18 -0
  264. package/dist/chunk-P3TMARA6.js.map +7 -0
  265. package/dist/chunk-PLMOTQ42.js +335 -0
  266. package/dist/chunk-PLMOTQ42.js.map +7 -0
  267. package/dist/chunk-Q6H5OV2R.js +180 -0
  268. package/dist/chunk-Q6H5OV2R.js.map +7 -0
  269. package/dist/chunk-QAR5POXD.js +472 -0
  270. package/dist/chunk-QAR5POXD.js.map +7 -0
  271. package/dist/chunk-R5S76YR5.js +12 -0
  272. package/dist/chunk-R5S76YR5.js.map +7 -0
  273. package/dist/chunk-R7ZBOXPS.js +163 -0
  274. package/dist/chunk-R7ZBOXPS.js.map +7 -0
  275. package/dist/chunk-RAL3KX76.js +239 -0
  276. package/dist/chunk-RAL3KX76.js.map +7 -0
  277. package/dist/chunk-RHITG64O.js +50 -0
  278. package/dist/chunk-RHITG64O.js.map +7 -0
  279. package/dist/chunk-RK5HZFP6.js +111 -0
  280. package/dist/chunk-RK5HZFP6.js.map +7 -0
  281. package/dist/chunk-RQ26XXFS.js +45 -0
  282. package/dist/chunk-RQ26XXFS.js.map +7 -0
  283. package/dist/chunk-RSA7PKZH.js +187 -0
  284. package/dist/chunk-RSA7PKZH.js.map +7 -0
  285. package/dist/chunk-RTSINQ4T.js +78 -0
  286. package/dist/chunk-RTSINQ4T.js.map +7 -0
  287. package/dist/chunk-SH6Y4CGQ.js +175 -0
  288. package/dist/chunk-SH6Y4CGQ.js.map +7 -0
  289. package/dist/chunk-SHBAAFFH.js +74 -0
  290. package/dist/chunk-SHBAAFFH.js.map +7 -0
  291. package/dist/chunk-SPNSM6SB.js +36 -0
  292. package/dist/chunk-SPNSM6SB.js.map +7 -0
  293. package/dist/chunk-SQUHLLK5.js +125 -0
  294. package/dist/chunk-SQUHLLK5.js.map +7 -0
  295. package/dist/chunk-SWWK35VQ.js +84 -0
  296. package/dist/chunk-SWWK35VQ.js.map +7 -0
  297. package/dist/chunk-TC5ZVFV6.js +292 -0
  298. package/dist/chunk-TC5ZVFV6.js.map +7 -0
  299. package/dist/chunk-TFD7ZIYD.js +105 -0
  300. package/dist/chunk-TFD7ZIYD.js.map +7 -0
  301. package/dist/chunk-TH6ONRWT.js +516 -0
  302. package/dist/chunk-TH6ONRWT.js.map +7 -0
  303. package/dist/chunk-TMQMQ67T.js +81 -0
  304. package/dist/chunk-TMQMQ67T.js.map +7 -0
  305. package/dist/chunk-TPYWUZOR.js +178 -0
  306. package/dist/chunk-TPYWUZOR.js.map +7 -0
  307. package/dist/chunk-U2O4LE6S.js +22 -0
  308. package/dist/chunk-U2O4LE6S.js.map +7 -0
  309. package/dist/chunk-U44IVNP2.js +91 -0
  310. package/dist/chunk-U44IVNP2.js.map +7 -0
  311. package/dist/chunk-UDDWLWKZ.js +82 -0
  312. package/dist/chunk-UDDWLWKZ.js.map +7 -0
  313. package/dist/chunk-UMMPB6FL.js +506 -0
  314. package/dist/chunk-UMMPB6FL.js.map +7 -0
  315. package/dist/chunk-UP42ACP7.js +27 -0
  316. package/dist/chunk-UP42ACP7.js.map +7 -0
  317. package/dist/chunk-UPEF7ETP.js +92 -0
  318. package/dist/chunk-UPEF7ETP.js.map +7 -0
  319. package/dist/chunk-VBDLTKI2.js +130 -0
  320. package/dist/chunk-VBDLTKI2.js.map +7 -0
  321. package/dist/chunk-VCWIKEJ7.js +7 -0
  322. package/dist/chunk-VCWIKEJ7.js.map +7 -0
  323. package/dist/chunk-VPQICZQR.js +93 -0
  324. package/dist/chunk-VPQICZQR.js.map +7 -0
  325. package/dist/chunk-VRBJNFPL.js +114 -0
  326. package/dist/chunk-VRBJNFPL.js.map +7 -0
  327. package/dist/chunk-VUU5KFH3.js +38 -0
  328. package/dist/chunk-VUU5KFH3.js.map +7 -0
  329. package/dist/chunk-VVBL5CFF.js +7 -0
  330. package/dist/chunk-VVBL5CFF.js.map +7 -0
  331. package/dist/chunk-VYZEQ6KY.js +22 -0
  332. package/dist/chunk-VYZEQ6KY.js.map +7 -0
  333. package/dist/chunk-WBPQVWSU.js +198 -0
  334. package/dist/chunk-WBPQVWSU.js.map +7 -0
  335. package/dist/chunk-WS6HWBKT.js +30 -0
  336. package/dist/chunk-WS6HWBKT.js.map +7 -0
  337. package/dist/chunk-XOZPOHLG.js +233 -0
  338. package/dist/chunk-XOZPOHLG.js.map +7 -0
  339. package/dist/chunk-XR7DPSNX.js +195 -0
  340. package/dist/chunk-XR7DPSNX.js.map +7 -0
  341. package/dist/chunk-XYH4JC3U.js +7 -0
  342. package/dist/chunk-XYH4JC3U.js.map +7 -0
  343. package/dist/chunk-YB5UCHLN.js +314 -0
  344. package/dist/chunk-YB5UCHLN.js.map +7 -0
  345. package/dist/chunk-YF5DYD3X.js +97 -0
  346. package/dist/chunk-YF5DYD3X.js.map +7 -0
  347. package/dist/chunk-YGVQZCE7.js +30 -0
  348. package/dist/chunk-YGVQZCE7.js.map +7 -0
  349. package/dist/chunk-YNHADHHS.js +138 -0
  350. package/dist/chunk-YNHADHHS.js.map +7 -0
  351. package/dist/chunk-YOAMBAM2.js +70 -0
  352. package/dist/chunk-YOAMBAM2.js.map +7 -0
  353. package/dist/chunk-YWE5AQPZ.js +258 -0
  354. package/dist/chunk-YWE5AQPZ.js.map +7 -0
  355. package/dist/chunk-YWHH3MB6.js +1405 -0
  356. package/dist/chunk-YWHH3MB6.js.map +7 -0
  357. package/dist/chunk-YZ6F5N7R.js +455 -0
  358. package/dist/chunk-YZ6F5N7R.js.map +7 -0
  359. package/dist/chunk-ZFGRQIB6.js +38 -0
  360. package/dist/chunk-ZFGRQIB6.js.map +7 -0
  361. package/dist/chunk-ZGAUVPAB.js +14 -0
  362. package/dist/chunk-ZGAUVPAB.js.map +7 -0
  363. package/dist/chunk-ZGCATLM5.js +18 -0
  364. package/dist/chunk-ZGCATLM5.js.map +7 -0
  365. package/dist/chunk-ZSOPE7DO.js +92 -0
  366. package/dist/chunk-ZSOPE7DO.js.map +7 -0
  367. package/dist/chunk-ZY247PXY.js +135 -0
  368. package/dist/chunk-ZY247PXY.js.map +7 -0
  369. package/dist/cli-metadata.js +3 -3
  370. package/dist/contract-api.js +64 -64
  371. package/dist/dist-DVBXHDB4.js +549 -0
  372. package/dist/dist-DVBXHDB4.js.map +7 -0
  373. package/dist/helper-api.js +6 -6
  374. package/dist/index.js +8 -9
  375. package/dist/index.js.map +1 -1
  376. package/dist/magic-string.es-ITIPPYGW.js +1315 -0
  377. package/dist/magic-string.es-ITIPPYGW.js.map +7 -0
  378. package/dist/package.json +1 -1
  379. package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js +20 -0
  380. package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js.map +7 -0
  381. package/dist/runtime-api.js +9 -9
  382. package/dist/rust-crypto-7KS7OJ3F.js +5323 -0
  383. package/dist/rust-crypto-7KS7OJ3F.js.map +7 -0
  384. package/dist/secret-contract-api.js +3 -3
  385. package/dist/setup-entry.js +2 -3
  386. package/dist/setup-entry.js.map +1 -1
  387. package/dist/src/account-selection.js +5 -5
  388. package/dist/src/actions.js +18 -18
  389. package/dist/src/approval-auth.js +19 -19
  390. package/dist/src/approval-handler.runtime.js +55 -55
  391. package/dist/src/approval-ids.js +3 -3
  392. package/dist/src/approval-native.js +22 -22
  393. package/dist/src/approval-reactions.js +2 -2
  394. package/dist/src/auth-precedence.js +2 -2
  395. package/dist/src/channel-account-paths.js +3 -3
  396. package/dist/src/channel.js +68 -68
  397. package/dist/src/channel.runtime.js +51 -51
  398. package/dist/src/cli-metadata.js +2 -2
  399. package/dist/src/cli.js +63 -63
  400. package/dist/src/config-adapter.js +18 -18
  401. package/dist/src/config-schema.js +2 -2
  402. package/dist/src/directory-live.js +27 -27
  403. package/dist/src/doctor-contract.js +3 -3
  404. package/dist/src/doctor.js +24 -24
  405. package/dist/src/env-vars.js +2 -2
  406. package/dist/src/exec-approval-resolver.js +2 -2
  407. package/dist/src/exec-approvals.js +20 -20
  408. package/dist/src/group-mentions.js +20 -20
  409. package/dist/src/legacy-crypto-inspector-availability.js +2 -2
  410. package/dist/src/legacy-crypto.js +18 -18
  411. package/dist/src/legacy-state.js +16 -16
  412. package/dist/src/matrix/account-config.js +2 -2
  413. package/dist/src/matrix/accounts.js +16 -16
  414. package/dist/src/matrix/actions/client.js +30 -30
  415. package/dist/src/matrix/actions/devices.js +32 -32
  416. package/dist/src/matrix/actions/limits.js +2 -2
  417. package/dist/src/matrix/actions/messages.js +37 -37
  418. package/dist/src/matrix/actions/pins.js +36 -36
  419. package/dist/src/matrix/actions/polls.js +31 -31
  420. package/dist/src/matrix/actions/profile.js +32 -32
  421. package/dist/src/matrix/actions/reactions.js +32 -32
  422. package/dist/src/matrix/actions/room.js +32 -32
  423. package/dist/src/matrix/actions/summary.js +9 -9
  424. package/dist/src/matrix/actions/types.js +3 -3
  425. package/dist/src/matrix/actions/verification.js +37 -37
  426. package/dist/src/matrix/actions.js +51 -51
  427. package/dist/src/matrix/active-client.js +2 -2
  428. package/dist/src/matrix/async-lock.js +2 -2
  429. package/dist/src/matrix/backup-health.js +2 -2
  430. package/dist/src/matrix/client/config-runtime-api.js +3 -3
  431. package/dist/src/matrix/client/config-secret-input.runtime.js +1 -1
  432. package/dist/src/matrix/client/config.js +13 -13
  433. package/dist/src/matrix/client/create-client.js +14 -14
  434. package/dist/src/matrix/client/env-auth.js +14 -14
  435. package/dist/src/matrix/client/file-sync-store.js +17 -17
  436. package/dist/src/matrix/client/logging.js +5 -5
  437. package/dist/src/matrix/client/migration-snapshot.runtime.js +2 -2
  438. package/dist/src/matrix/client/private-network-host.js +2 -2
  439. package/dist/src/matrix/client/runtime.js +2 -2
  440. package/dist/src/matrix/client/shared.js +16 -16
  441. package/dist/src/matrix/client/storage.js +8 -8
  442. package/dist/src/matrix/client/types.js +1 -1
  443. package/dist/src/matrix/client-bootstrap.js +5 -5
  444. package/dist/src/matrix/client-resolver.test-helpers.js +2 -2
  445. package/dist/src/matrix/client.js +19 -19
  446. package/dist/src/matrix/config-paths.js +2 -2
  447. package/dist/src/matrix/config-update.js +4 -4
  448. package/dist/src/matrix/credentials-read.js +8 -8
  449. package/dist/src/matrix/credentials-write.runtime.js +1 -1
  450. package/dist/src/matrix/credentials.js +10 -10
  451. package/dist/src/matrix/deps.js +2 -2
  452. package/dist/src/matrix/device-health.js +2 -2
  453. package/dist/src/matrix/direct-management.js +6 -6
  454. package/dist/src/matrix/direct-room.js +2 -2
  455. package/dist/src/matrix/draft-stream.js +27 -27
  456. package/dist/src/matrix/encryption-guidance.js +7 -7
  457. package/dist/src/matrix/errors.js +2 -2
  458. package/dist/src/matrix/format.js +3 -3
  459. package/dist/src/matrix/legacy-crypto-inspector.js +3 -4
  460. package/dist/src/matrix/legacy-crypto-inspector.js.map +1 -1
  461. package/dist/src/matrix/media-errors.js +2 -2
  462. package/dist/src/matrix/media-text.js +2 -2
  463. package/dist/src/matrix/monitor/access-state.js +3 -3
  464. package/dist/src/matrix/monitor/ack-config.js +4 -4
  465. package/dist/src/matrix/monitor/allowlist.js +2 -2
  466. package/dist/src/matrix/monitor/auto-join.js +3 -3
  467. package/dist/src/matrix/monitor/config.js +31 -31
  468. package/dist/src/matrix/monitor/context-summary.js +5 -5
  469. package/dist/src/matrix/monitor/direct.js +7 -7
  470. package/dist/src/matrix/monitor/events.js +14 -14
  471. package/dist/src/matrix/monitor/handler.js +70 -70
  472. package/dist/src/matrix/monitor/handler.test-helpers.js +71 -71
  473. package/dist/src/matrix/monitor/inbound-dedupe.js +11 -11
  474. package/dist/src/matrix/monitor/index.js +100 -100
  475. package/dist/src/matrix/monitor/legacy-crypto-restore.js +8 -8
  476. package/dist/src/matrix/monitor/location.js +5 -5
  477. package/dist/src/matrix/monitor/media.js +4 -4
  478. package/dist/src/matrix/monitor/mentions.js +3 -3
  479. package/dist/src/matrix/monitor/reaction-events.js +30 -30
  480. package/dist/src/matrix/monitor/recent-invite.js +4 -4
  481. package/dist/src/matrix/monitor/replies.js +27 -27
  482. package/dist/src/matrix/monitor/reply-context.js +6 -6
  483. package/dist/src/matrix/monitor/room-history.js +2 -2
  484. package/dist/src/matrix/monitor/room-info.js +3 -3
  485. package/dist/src/matrix/monitor/rooms.js +3 -3
  486. package/dist/src/matrix/monitor/route.js +6 -6
  487. package/dist/src/matrix/monitor/runtime-api.js +2 -2
  488. package/dist/src/matrix/monitor/startup-verification.js +9 -9
  489. package/dist/src/matrix/monitor/startup.js +3 -3
  490. package/dist/src/matrix/monitor/status.js +4 -4
  491. package/dist/src/matrix/monitor/sync-lifecycle.js +3 -3
  492. package/dist/src/matrix/monitor/task-runner.js +2 -2
  493. package/dist/src/matrix/monitor/thread-context.js +6 -6
  494. package/dist/src/matrix/monitor/threads.js +4 -4
  495. package/dist/src/matrix/monitor/types.js +3 -3
  496. package/dist/src/matrix/monitor/verification-events.js +7 -7
  497. package/dist/src/matrix/monitor/verification-utils.js +2 -2
  498. package/dist/src/matrix/outbound-media-runtime.js +3 -3
  499. package/dist/src/matrix/poll-summary.js +4 -4
  500. package/dist/src/matrix/poll-types.js +3 -3
  501. package/dist/src/matrix/probe.js +3 -3
  502. package/dist/src/matrix/probe.runtime.js +19 -19
  503. package/dist/src/matrix/profile.js +2 -2
  504. package/dist/src/matrix/reaction-common.js +2 -2
  505. package/dist/src/matrix/sdk/crypto-bootstrap.js +9 -9
  506. package/dist/src/matrix/sdk/crypto-facade.js +2 -2
  507. package/dist/src/matrix/sdk/crypto-node.runtime.js +2 -3
  508. package/dist/src/matrix/sdk/crypto-node.runtime.js.map +1 -1
  509. package/dist/src/matrix/sdk/crypto-runtime.js +16 -16
  510. package/dist/src/matrix/sdk/decrypt-bridge.js +5 -5
  511. package/dist/src/matrix/sdk/event-helpers.js +2 -2
  512. package/dist/src/matrix/sdk/http-client.js +7 -7
  513. package/dist/src/matrix/sdk/idb-persistence-lock.js +2 -2
  514. package/dist/src/matrix/sdk/idb-persistence.js +5 -5
  515. package/dist/src/matrix/sdk/idb-persistence.test-helpers.js +1 -1
  516. package/dist/src/matrix/sdk/logger.js +3 -3
  517. package/dist/src/matrix/sdk/read-response-with-limit.js +2 -2
  518. package/dist/src/matrix/sdk/recovery-key-store.js +6 -6
  519. package/dist/src/matrix/sdk/transport.js +5 -5
  520. package/dist/src/matrix/sdk/types.js +1 -1
  521. package/dist/src/matrix/sdk/verification-manager.js +5 -5
  522. package/dist/src/matrix/sdk/verification-status.js +2 -2
  523. package/dist/src/matrix/sdk.js +31 -31
  524. package/dist/src/matrix/send/client.js +4 -4
  525. package/dist/src/matrix/send/formatting.js +7 -7
  526. package/dist/src/matrix/send/media.js +12 -12
  527. package/dist/src/matrix/send/targets.js +7 -7
  528. package/dist/src/matrix/send/types.js +3 -3
  529. package/dist/src/matrix/send.js +26 -26
  530. package/dist/src/matrix/session-store-metadata.js +3 -3
  531. package/dist/src/matrix/startup-abort.js +2 -2
  532. package/dist/src/matrix/sync-state.js +2 -2
  533. package/dist/src/matrix/target-ids.js +2 -2
  534. package/dist/src/matrix/thread-bindings-shared.js +2 -2
  535. package/dist/src/matrix/thread-bindings.js +34 -34
  536. package/dist/src/matrix-migration.runtime.js +22 -22
  537. package/dist/src/migration-config.js +15 -15
  538. package/dist/src/migration-snapshot-backup.js +2 -2
  539. package/dist/src/migration-snapshot.js +21 -21
  540. package/dist/src/onboarding.js +37 -37
  541. package/dist/src/onboarding.test-harness.js +2 -2
  542. package/dist/src/outbound.js +27 -27
  543. package/dist/src/plugin-entry.runtime.js +3 -3
  544. package/dist/src/profile-update.js +35 -35
  545. package/dist/src/record-shared.js +2 -2
  546. package/dist/src/resolve-targets.js +28 -28
  547. package/dist/src/resolver.js +2 -2
  548. package/dist/src/runtime-api.js +2 -2
  549. package/dist/src/runtime.js +2 -2
  550. package/dist/src/secret-contract.js +3 -3
  551. package/dist/src/session-route.js +19 -19
  552. package/dist/src/setup-bootstrap.js +46 -46
  553. package/dist/src/setup-config.js +18 -18
  554. package/dist/src/setup-contract.js +2 -2
  555. package/dist/src/setup-core.js +19 -19
  556. package/dist/src/setup-surface.js +38 -38
  557. package/dist/src/startup-maintenance.js +23 -23
  558. package/dist/src/storage-paths.js +2 -2
  559. package/dist/src/test-helpers.js +1 -1
  560. package/dist/src/test-mocks.js +2 -2
  561. package/dist/src/test-runtime.js +3 -3
  562. package/dist/src/tool-actions.js +62 -62
  563. package/dist/src/tool-actions.runtime.js +62 -62
  564. package/dist/src/types.js +1 -1
  565. package/dist/test-api.js +68 -68
  566. package/dist/thread-bindings-runtime.js +2 -2
  567. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/legacy-crypto.ts"],
4
+ "sourcesContent": ["import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport type { OpenClawConfig } from \"openclaw/plugin-sdk/config-runtime\";\nimport { writeJsonFileAtomically as writeJsonFileAtomicallyImpl } from \"openclaw/plugin-sdk/json-store\";\nimport { resolveStateDir } from \"openclaw/plugin-sdk/state-paths\";\nimport { resolveConfiguredMatrixAccountIds } from \"./account-selection.js\";\nimport { isMatrixLegacyCryptoInspectorAvailable } from \"./legacy-crypto-inspector-availability.js\";\nimport { formatMatrixErrorMessage } from \"./matrix/errors.js\";\nimport {\n resolveLegacyMatrixFlatStoreTarget,\n resolveMatrixMigrationAccountTarget,\n} from \"./migration-config.js\";\nimport { resolveMatrixLegacyFlatStoragePaths } from \"./storage-paths.js\";\n\nconst MATRIX_LEGACY_CRYPTO_INSPECTOR_UNAVAILABLE_MESSAGE =\n \"Legacy Matrix encrypted state was detected, but the Matrix crypto inspector is unavailable.\";\n\ntype MatrixLegacyCryptoCounts = {\n total: number;\n backedUp: number;\n};\n\ntype MatrixLegacyCryptoSummary = {\n deviceId: string | null;\n roomKeyCounts: MatrixLegacyCryptoCounts | null;\n backupVersion: string | null;\n decryptionKeyBase64: string | null;\n};\n\ntype MatrixLegacyCryptoMigrationState = {\n version: 1;\n source: \"matrix-bot-sdk-rust\";\n accountId: string;\n deviceId: string | null;\n roomKeyCounts: MatrixLegacyCryptoCounts | null;\n backupVersion: string | null;\n decryptionKeyImported: boolean;\n restoreStatus: \"pending\" | \"completed\" | \"manual-action-required\";\n detectedAt: string;\n restoredAt?: string;\n importedCount?: number;\n totalCount?: number;\n lastError?: string | null;\n};\n\ntype MatrixLegacyCryptoPlan = {\n accountId: string;\n rootDir: string;\n recoveryKeyPath: string;\n statePath: string;\n legacyCryptoPath: string;\n homeserver: string;\n userId: string;\n accessToken: string;\n deviceId: string | null;\n};\n\ntype MatrixLegacyCryptoDetection = {\n inspectorAvailable: boolean;\n plans: MatrixLegacyCryptoPlan[];\n warnings: string[];\n};\n\ntype MatrixLegacyCryptoPreparationResult = {\n migrated: boolean;\n changes: string[];\n warnings: string[];\n};\n\ntype MatrixLegacyCryptoPrepareDeps = {\n inspectLegacyStore: MatrixLegacyCryptoInspector;\n writeJsonFileAtomically: typeof writeJsonFileAtomicallyImpl;\n};\n\ntype MatrixLegacyCryptoInspectorParams = {\n cryptoRootDir: string;\n userId: string;\n deviceId: string;\n log?: (message: string) => void;\n};\n\ntype MatrixLegacyCryptoInspectorResult = {\n deviceId: string | null;\n roomKeyCounts: {\n total: number;\n backedUp: number;\n } | null;\n backupVersion: string | null;\n decryptionKeyBase64: string | null;\n};\n\ntype MatrixLegacyCryptoInspector = (\n params: MatrixLegacyCryptoInspectorParams,\n) => Promise<MatrixLegacyCryptoInspectorResult>;\n\ntype MatrixLegacyBotSdkMetadata = {\n deviceId: string | null;\n};\n\ntype MatrixStoredRecoveryKey = {\n version: 1;\n createdAt: string;\n keyId?: string | null;\n encodedPrivateKey?: string;\n privateKeyBase64: string;\n keyInfo?: {\n passphrase?: unknown;\n name?: string;\n };\n};\n\nasync function loadMatrixLegacyCryptoInspector(): Promise<MatrixLegacyCryptoInspector> {\n const module = await import(\"./matrix/legacy-crypto-inspector.js\");\n return module.inspectLegacyMatrixCryptoStore as MatrixLegacyCryptoInspector;\n}\n\nfunction detectLegacyBotSdkCryptoStore(cryptoRootDir: string): {\n detected: boolean;\n warning?: string;\n} {\n try {\n const stat = fs.statSync(cryptoRootDir);\n if (!stat.isDirectory()) {\n return {\n detected: false,\n warning:\n `Legacy Matrix encrypted state path exists but is not a directory: ${cryptoRootDir}. ` +\n \"OpenClaw skipped automatic crypto migration for that path.\",\n };\n }\n } catch (err) {\n return {\n detected: false,\n warning:\n `Failed reading legacy Matrix encrypted state path (${cryptoRootDir}): ${String(err)}. ` +\n \"OpenClaw skipped automatic crypto migration for that path.\",\n };\n }\n\n try {\n return {\n detected:\n fs.existsSync(path.join(cryptoRootDir, \"bot-sdk.json\")) ||\n fs.existsSync(path.join(cryptoRootDir, \"matrix-sdk-crypto.sqlite3\")) ||\n fs\n .readdirSync(cryptoRootDir, { withFileTypes: true })\n .some(\n (entry) =>\n entry.isDirectory() &&\n fs.existsSync(path.join(cryptoRootDir, entry.name, \"matrix-sdk-crypto.sqlite3\")),\n ),\n };\n } catch (err) {\n return {\n detected: false,\n warning:\n `Failed scanning legacy Matrix encrypted state path (${cryptoRootDir}): ${String(err)}. ` +\n \"OpenClaw skipped automatic crypto migration for that path.\",\n };\n }\n}\n\nfunction resolveMatrixAccountIds(cfg: OpenClawConfig): string[] {\n return resolveConfiguredMatrixAccountIds(cfg);\n}\n\nfunction resolveLegacyMatrixFlatStorePlan(params: {\n cfg: OpenClawConfig;\n env: NodeJS.ProcessEnv;\n}): MatrixLegacyCryptoPlan | { warning: string } | null {\n const legacy = resolveMatrixLegacyFlatStoragePaths(resolveStateDir(params.env, os.homedir));\n if (!fs.existsSync(legacy.cryptoPath)) {\n return null;\n }\n const legacyStore = detectLegacyBotSdkCryptoStore(legacy.cryptoPath);\n if (legacyStore.warning) {\n return { warning: legacyStore.warning };\n }\n if (!legacyStore.detected) {\n return null;\n }\n\n const target = resolveLegacyMatrixFlatStoreTarget({\n cfg: params.cfg,\n env: params.env,\n detectedPath: legacy.cryptoPath,\n detectedKind: \"encrypted state\",\n });\n if (\"warning\" in target) {\n return target;\n }\n\n const metadata = loadLegacyBotSdkMetadata(legacy.cryptoPath);\n return {\n accountId: target.accountId,\n rootDir: target.rootDir,\n recoveryKeyPath: path.join(target.rootDir, \"recovery-key.json\"),\n statePath: path.join(target.rootDir, \"legacy-crypto-migration.json\"),\n legacyCryptoPath: legacy.cryptoPath,\n homeserver: target.homeserver,\n userId: target.userId,\n accessToken: target.accessToken,\n deviceId: metadata.deviceId ?? target.storedDeviceId,\n };\n}\n\nfunction loadLegacyBotSdkMetadata(cryptoRootDir: string): MatrixLegacyBotSdkMetadata {\n const metadataPath = path.join(cryptoRootDir, \"bot-sdk.json\");\n const fallback: MatrixLegacyBotSdkMetadata = { deviceId: null };\n try {\n if (!fs.existsSync(metadataPath)) {\n return fallback;\n }\n const parsed = JSON.parse(fs.readFileSync(metadataPath, \"utf8\")) as {\n deviceId?: unknown;\n };\n return {\n deviceId:\n typeof parsed.deviceId === \"string\" && parsed.deviceId.trim() ? parsed.deviceId : null,\n };\n } catch {\n return fallback;\n }\n}\n\nfunction resolveMatrixLegacyCryptoPlans(params: {\n cfg: OpenClawConfig;\n env: NodeJS.ProcessEnv;\n}): Omit<MatrixLegacyCryptoDetection, \"inspectorAvailable\"> {\n const warnings: string[] = [];\n const plans: MatrixLegacyCryptoPlan[] = [];\n\n const flatPlan = resolveLegacyMatrixFlatStorePlan(params);\n if (flatPlan) {\n if (\"warning\" in flatPlan) {\n warnings.push(flatPlan.warning);\n } else {\n plans.push(flatPlan);\n }\n }\n\n for (const accountId of resolveMatrixAccountIds(params.cfg)) {\n const target = resolveMatrixMigrationAccountTarget({\n cfg: params.cfg,\n env: params.env,\n accountId,\n });\n if (!target) {\n continue;\n }\n const legacyCryptoPath = path.join(target.rootDir, \"crypto\");\n if (!fs.existsSync(legacyCryptoPath)) {\n continue;\n }\n const detectedStore = detectLegacyBotSdkCryptoStore(legacyCryptoPath);\n if (detectedStore.warning) {\n warnings.push(detectedStore.warning);\n continue;\n }\n if (!detectedStore.detected) {\n continue;\n }\n if (\n plans.some(\n (plan) =>\n plan.accountId === accountId &&\n path.resolve(plan.legacyCryptoPath) === path.resolve(legacyCryptoPath),\n )\n ) {\n continue;\n }\n const metadata = loadLegacyBotSdkMetadata(legacyCryptoPath);\n plans.push({\n accountId: target.accountId,\n rootDir: target.rootDir,\n recoveryKeyPath: path.join(target.rootDir, \"recovery-key.json\"),\n statePath: path.join(target.rootDir, \"legacy-crypto-migration.json\"),\n legacyCryptoPath,\n homeserver: target.homeserver,\n userId: target.userId,\n accessToken: target.accessToken,\n deviceId: metadata.deviceId ?? target.storedDeviceId,\n });\n }\n\n return { plans, warnings };\n}\n\nfunction loadStoredRecoveryKey(filePath: string): MatrixStoredRecoveryKey | null {\n try {\n if (!fs.existsSync(filePath)) {\n return null;\n }\n return JSON.parse(fs.readFileSync(filePath, \"utf8\")) as MatrixStoredRecoveryKey;\n } catch {\n return null;\n }\n}\n\nfunction loadLegacyCryptoMigrationState(filePath: string): MatrixLegacyCryptoMigrationState | null {\n try {\n if (!fs.existsSync(filePath)) {\n return null;\n }\n return JSON.parse(fs.readFileSync(filePath, \"utf8\")) as MatrixLegacyCryptoMigrationState;\n } catch {\n return null;\n }\n}\n\nasync function persistLegacyMigrationState(params: {\n filePath: string;\n state: MatrixLegacyCryptoMigrationState;\n writeJsonFileAtomically: typeof writeJsonFileAtomicallyImpl;\n}): Promise<void> {\n await params.writeJsonFileAtomically(params.filePath, params.state);\n}\n\nexport function detectLegacyMatrixCrypto(params: {\n cfg: OpenClawConfig;\n env?: NodeJS.ProcessEnv;\n}): MatrixLegacyCryptoDetection {\n const detection = resolveMatrixLegacyCryptoPlans({\n cfg: params.cfg,\n env: params.env ?? process.env,\n });\n const inspectorAvailable =\n detection.plans.length === 0 || isMatrixLegacyCryptoInspectorAvailable();\n if (!inspectorAvailable && detection.plans.length > 0) {\n return {\n inspectorAvailable,\n plans: detection.plans,\n warnings: [...detection.warnings, MATRIX_LEGACY_CRYPTO_INSPECTOR_UNAVAILABLE_MESSAGE],\n };\n }\n return {\n inspectorAvailable,\n plans: detection.plans,\n warnings: detection.warnings,\n };\n}\n\nexport async function autoPrepareLegacyMatrixCrypto(params: {\n cfg: OpenClawConfig;\n env?: NodeJS.ProcessEnv;\n log?: { info?: (message: string) => void; warn?: (message: string) => void };\n deps?: Partial<MatrixLegacyCryptoPrepareDeps>;\n}): Promise<MatrixLegacyCryptoPreparationResult> {\n const env = params.env ?? process.env;\n const detection = params.deps?.inspectLegacyStore\n ? resolveMatrixLegacyCryptoPlans({ cfg: params.cfg, env })\n : detectLegacyMatrixCrypto({ cfg: params.cfg, env });\n const inspectorAvailable =\n \"inspectorAvailable\" in detection ? detection.inspectorAvailable : true;\n const warnings = [...detection.warnings];\n const changes: string[] = [];\n const writeJsonFileAtomically =\n params.deps?.writeJsonFileAtomically ?? writeJsonFileAtomicallyImpl;\n if (detection.plans.length === 0) {\n if (warnings.length > 0) {\n params.log?.warn?.(\n `matrix: legacy encrypted-state warnings:\\n${warnings.map((entry) => `- ${entry}`).join(\"\\n\")}`,\n );\n }\n return {\n migrated: false,\n changes,\n warnings,\n };\n }\n if (!params.deps?.inspectLegacyStore && !inspectorAvailable) {\n if (warnings.length > 0) {\n params.log?.warn?.(\n `matrix: legacy encrypted-state warnings:\\n${warnings.map((entry) => `- ${entry}`).join(\"\\n\")}`,\n );\n }\n return {\n migrated: false,\n changes,\n warnings,\n };\n }\n\n let inspectLegacyStore = params.deps?.inspectLegacyStore;\n if (!inspectLegacyStore) {\n try {\n inspectLegacyStore = await loadMatrixLegacyCryptoInspector();\n } catch (err) {\n const message = formatMatrixErrorMessage(err);\n if (!warnings.includes(message)) {\n warnings.push(message);\n }\n if (warnings.length > 0) {\n params.log?.warn?.(\n `matrix: legacy encrypted-state warnings:\\n${warnings.map((entry) => `- ${entry}`).join(\"\\n\")}`,\n );\n }\n return {\n migrated: false,\n changes,\n warnings,\n };\n }\n }\n if (!inspectLegacyStore) {\n return {\n migrated: false,\n changes,\n warnings,\n };\n }\n\n for (const plan of detection.plans) {\n const existingState = loadLegacyCryptoMigrationState(plan.statePath);\n if (existingState?.version === 1) {\n continue;\n }\n if (!plan.deviceId) {\n warnings.push(\n `Legacy Matrix encrypted state detected at ${plan.legacyCryptoPath}, but no device ID was found for account \"${plan.accountId}\". ` +\n `OpenClaw will continue, but old encrypted history cannot be recovered automatically.`,\n );\n continue;\n }\n\n let summary: MatrixLegacyCryptoSummary;\n try {\n summary = await inspectLegacyStore({\n cryptoRootDir: plan.legacyCryptoPath,\n userId: plan.userId,\n deviceId: plan.deviceId,\n log: params.log?.info,\n });\n } catch (err) {\n warnings.push(\n `Failed inspecting legacy Matrix encrypted state for account \"${plan.accountId}\" (${plan.legacyCryptoPath}): ${String(err)}`,\n );\n continue;\n }\n\n let decryptionKeyImported = false;\n if (summary.decryptionKeyBase64) {\n const existingRecoveryKey = loadStoredRecoveryKey(plan.recoveryKeyPath);\n if (\n existingRecoveryKey?.privateKeyBase64 &&\n existingRecoveryKey.privateKeyBase64 !== summary.decryptionKeyBase64\n ) {\n warnings.push(\n `Legacy Matrix backup key was found for account \"${plan.accountId}\", but ${plan.recoveryKeyPath} already contains a different recovery key. Leaving the existing file unchanged.`,\n );\n } else if (!existingRecoveryKey?.privateKeyBase64) {\n const payload: MatrixStoredRecoveryKey = {\n version: 1,\n createdAt: new Date().toISOString(),\n keyId: null,\n privateKeyBase64: summary.decryptionKeyBase64,\n };\n try {\n await writeJsonFileAtomically(plan.recoveryKeyPath, payload);\n changes.push(\n `Imported Matrix legacy backup key for account \"${plan.accountId}\": ${plan.recoveryKeyPath}`,\n );\n decryptionKeyImported = true;\n } catch (err) {\n warnings.push(\n `Failed writing Matrix recovery key for account \"${plan.accountId}\" (${plan.recoveryKeyPath}): ${String(err)}`,\n );\n }\n } else {\n decryptionKeyImported = true;\n }\n }\n\n const localOnlyKeys =\n summary.roomKeyCounts && summary.roomKeyCounts.total > summary.roomKeyCounts.backedUp\n ? summary.roomKeyCounts.total - summary.roomKeyCounts.backedUp\n : 0;\n if (localOnlyKeys > 0) {\n warnings.push(\n `Legacy Matrix encrypted state for account \"${plan.accountId}\" contains ${localOnlyKeys} room key(s) that were never backed up. ` +\n \"Backed-up keys can be restored automatically, but local-only encrypted history may remain unavailable after upgrade.\",\n );\n }\n if (!summary.decryptionKeyBase64 && (summary.roomKeyCounts?.backedUp ?? 0) > 0) {\n warnings.push(\n `Legacy Matrix encrypted state for account \"${plan.accountId}\" has backed-up room keys, but no local backup decryption key was found. ` +\n `Ask the operator to run \"openclaw matrix verify backup restore --recovery-key <key>\" after upgrade if they have the recovery key.`,\n );\n }\n if (!summary.decryptionKeyBase64 && (summary.roomKeyCounts?.total ?? 0) > 0) {\n warnings.push(\n `Legacy Matrix encrypted state for account \"${plan.accountId}\" cannot be fully converted automatically because the old rust crypto store does not expose all local room keys for export.`,\n );\n }\n // If recovery-key persistence failed, leave the migration state absent so the next startup can retry.\n if (\n summary.decryptionKeyBase64 &&\n !decryptionKeyImported &&\n !loadStoredRecoveryKey(plan.recoveryKeyPath)\n ) {\n continue;\n }\n\n const state: MatrixLegacyCryptoMigrationState = {\n version: 1,\n source: \"matrix-bot-sdk-rust\",\n accountId: plan.accountId,\n deviceId: summary.deviceId,\n roomKeyCounts: summary.roomKeyCounts,\n backupVersion: summary.backupVersion,\n decryptionKeyImported,\n restoreStatus: decryptionKeyImported ? \"pending\" : \"manual-action-required\",\n detectedAt: new Date().toISOString(),\n lastError: null,\n };\n try {\n await persistLegacyMigrationState({\n filePath: plan.statePath,\n state,\n writeJsonFileAtomically,\n });\n changes.push(\n `Prepared Matrix legacy encrypted-state migration for account \"${plan.accountId}\": ${plan.statePath}`,\n );\n } catch (err) {\n warnings.push(\n `Failed writing Matrix legacy encrypted-state migration record for account \"${plan.accountId}\" (${plan.statePath}): ${String(err)}`,\n );\n }\n }\n\n if (changes.length > 0) {\n params.log?.info?.(\n `matrix: prepared encrypted-state upgrade.\\n${changes.map((entry) => `- ${entry}`).join(\"\\n\")}`,\n );\n }\n if (warnings.length > 0) {\n params.log?.warn?.(\n `matrix: legacy encrypted-state warnings:\\n${warnings.map((entry) => `- ${entry}`).join(\"\\n\")}`,\n );\n }\n\n return {\n migrated: changes.length > 0,\n changes,\n warnings,\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,18 @@
1
+ import {
2
+ init_shims
3
+ } from "./chunk-G4TIS2SC.js";
4
+
5
+ // src/matrix/sdk/read-response-with-limit.ts
6
+ init_shims();
7
+ import { readResponseWithLimit as readSharedResponseWithLimit } from "openclaw/plugin-sdk/media-runtime";
8
+ async function readResponseWithLimit(res, maxBytes, opts) {
9
+ return await readSharedResponseWithLimit(res, maxBytes, {
10
+ ...opts,
11
+ onIdleTimeout: opts?.onIdleTimeout ?? (({ chunkTimeoutMs }) => new Error(`Matrix media download stalled: no data received for ${chunkTimeoutMs}ms`))
12
+ });
13
+ }
14
+
15
+ export {
16
+ readResponseWithLimit
17
+ };
18
+ //# sourceMappingURL=chunk-IJH4NOQ4.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/matrix/sdk/read-response-with-limit.ts"],
4
+ "sourcesContent": ["import { readResponseWithLimit as readSharedResponseWithLimit } from \"openclaw/plugin-sdk/media-runtime\";\n\nexport async function readResponseWithLimit(\n res: Response,\n maxBytes: number,\n opts?: {\n onOverflow?: (params: { size: number; maxBytes: number; res: Response }) => Error;\n chunkTimeoutMs?: number;\n onIdleTimeout?: (params: { chunkTimeoutMs: number }) => Error;\n },\n): Promise<Buffer> {\n return await readSharedResponseWithLimit(res, maxBytes, {\n ...opts,\n onIdleTimeout:\n opts?.onIdleTimeout ??\n (({ chunkTimeoutMs }) =>\n new Error(`Matrix media download stalled: no data received for ${chunkTimeoutMs}ms`)),\n });\n}\n"],
5
+ "mappings": ";;;;;AAAA;AAAA,SAAS,yBAAyB,mCAAmC;AAErE,eAAsB,sBACpB,KACA,UACA,MAKiB;AACjB,SAAO,MAAM,4BAA4B,KAAK,UAAU;AAAA,IACtD,GAAG;AAAA,IACH,eACE,MAAM,kBACL,CAAC,EAAE,eAAe,MACjB,IAAI,MAAM,uDAAuD,cAAc,IAAI;AAAA,EACzF,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,76 @@
1
+ import {
2
+ formatMatrixErrorMessage
3
+ } from "./chunk-H5MLA6PA.js";
4
+ import {
5
+ init_shims
6
+ } from "./chunk-G4TIS2SC.js";
7
+
8
+ // src/plugin-entry.runtime.ts
9
+ init_shims();
10
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
11
+ function sendError(respond, err) {
12
+ respond(false, { error: formatMatrixErrorMessage(err) });
13
+ }
14
+ async function ensureMatrixCryptoRuntime(...args) {
15
+ const { ensureMatrixCryptoRuntime: ensureRuntime } = await import("./src/matrix/deps.js");
16
+ await ensureRuntime(...args);
17
+ }
18
+ async function handleVerifyRecoveryKey({
19
+ params,
20
+ respond
21
+ }) {
22
+ try {
23
+ const { verifyMatrixRecoveryKey } = await import("./src/matrix/actions/verification.js");
24
+ const key = normalizeOptionalString(params?.key);
25
+ if (!key) {
26
+ respond(false, { error: "key required" });
27
+ return;
28
+ }
29
+ const accountId = normalizeOptionalString(params?.accountId);
30
+ const result = await verifyMatrixRecoveryKey(key, { accountId });
31
+ respond(result.success, result);
32
+ } catch (err) {
33
+ sendError(respond, err);
34
+ }
35
+ }
36
+ async function handleVerificationBootstrap({
37
+ params,
38
+ respond
39
+ }) {
40
+ try {
41
+ const { bootstrapMatrixVerification } = await import("./src/matrix/actions/verification.js");
42
+ const accountId = normalizeOptionalString(params?.accountId);
43
+ const recoveryKey = typeof params?.recoveryKey === "string" ? params.recoveryKey : void 0;
44
+ const forceResetCrossSigning = params?.forceResetCrossSigning === true;
45
+ const result = await bootstrapMatrixVerification({
46
+ accountId,
47
+ recoveryKey,
48
+ forceResetCrossSigning
49
+ });
50
+ respond(result.success, result);
51
+ } catch (err) {
52
+ sendError(respond, err);
53
+ }
54
+ }
55
+ async function handleVerificationStatus({
56
+ params,
57
+ respond
58
+ }) {
59
+ try {
60
+ const { getMatrixVerificationStatus } = await import("./src/matrix/actions/verification.js");
61
+ const accountId = normalizeOptionalString(params?.accountId);
62
+ const includeRecoveryKey = params?.includeRecoveryKey === true;
63
+ const status = await getMatrixVerificationStatus({ accountId, includeRecoveryKey });
64
+ respond(true, status);
65
+ } catch (err) {
66
+ sendError(respond, err);
67
+ }
68
+ }
69
+
70
+ export {
71
+ ensureMatrixCryptoRuntime,
72
+ handleVerifyRecoveryKey,
73
+ handleVerificationBootstrap,
74
+ handleVerificationStatus
75
+ };
76
+ //# sourceMappingURL=chunk-IMHRZQRH.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/plugin-entry.runtime.ts"],
4
+ "sourcesContent": ["import type { GatewayRequestHandlerOptions } from \"openclaw/plugin-sdk/gateway-runtime\";\nimport { normalizeOptionalString } from \"openclaw/plugin-sdk/text-runtime\";\nimport { formatMatrixErrorMessage } from \"./matrix/errors.js\";\n\nfunction sendError(respond: (ok: boolean, payload?: unknown) => void, err: unknown) {\n respond(false, { error: formatMatrixErrorMessage(err) });\n}\n\nexport async function ensureMatrixCryptoRuntime(\n ...args: Parameters<typeof import(\"./matrix/deps.js\").ensureMatrixCryptoRuntime>\n): Promise<void> {\n const { ensureMatrixCryptoRuntime: ensureRuntime } = await import(\"./matrix/deps.js\");\n await ensureRuntime(...args);\n}\n\nexport async function handleVerifyRecoveryKey({\n params,\n respond,\n}: GatewayRequestHandlerOptions): Promise<void> {\n try {\n const { verifyMatrixRecoveryKey } = await import(\"./matrix/actions/verification.js\");\n const key = normalizeOptionalString(params?.key);\n if (!key) {\n respond(false, { error: \"key required\" });\n return;\n }\n const accountId = normalizeOptionalString(params?.accountId);\n const result = await verifyMatrixRecoveryKey(key, { accountId });\n respond(result.success, result);\n } catch (err) {\n sendError(respond, err);\n }\n}\n\nexport async function handleVerificationBootstrap({\n params,\n respond,\n}: GatewayRequestHandlerOptions): Promise<void> {\n try {\n const { bootstrapMatrixVerification } = await import(\"./matrix/actions/verification.js\");\n const accountId = normalizeOptionalString(params?.accountId);\n const recoveryKey = typeof params?.recoveryKey === \"string\" ? params.recoveryKey : undefined;\n const forceResetCrossSigning = params?.forceResetCrossSigning === true;\n const result = await bootstrapMatrixVerification({\n accountId,\n recoveryKey,\n forceResetCrossSigning,\n });\n respond(result.success, result);\n } catch (err) {\n sendError(respond, err);\n }\n}\n\nexport async function handleVerificationStatus({\n params,\n respond,\n}: GatewayRequestHandlerOptions): Promise<void> {\n try {\n const { getMatrixVerificationStatus } = await import(\"./matrix/actions/verification.js\");\n const accountId = normalizeOptionalString(params?.accountId);\n const includeRecoveryKey = params?.includeRecoveryKey === true;\n const status = await getMatrixVerificationStatus({ accountId, includeRecoveryKey });\n respond(true, status);\n } catch (err) {\n sendError(respond, err);\n }\n}\n"],
5
+ "mappings": ";;;;;;;;AAAA;AACA,SAAS,+BAA+B;AAGxC,SAAS,UAAU,SAAmD,KAAc;AAClF,UAAQ,OAAO,EAAE,OAAO,yBAAyB,GAAG,EAAE,CAAC;AACzD;AAEA,eAAsB,6BACjB,MACY;AACf,QAAM,EAAE,2BAA2B,cAAc,IAAI,MAAM,OAAO,sBAAkB;AACpF,QAAM,cAAc,GAAG,IAAI;AAC7B;AAEA,eAAsB,wBAAwB;AAAA,EAC5C;AAAA,EACA;AACF,GAAgD;AAC9C,MAAI;AACF,UAAM,EAAE,wBAAwB,IAAI,MAAM,OAAO,sCAAkC;AACnF,UAAM,MAAM,wBAAwB,QAAQ,GAAG;AAC/C,QAAI,CAAC,KAAK;AACR,cAAQ,OAAO,EAAE,OAAO,eAAe,CAAC;AACxC;AAAA,IACF;AACA,UAAM,YAAY,wBAAwB,QAAQ,SAAS;AAC3D,UAAM,SAAS,MAAM,wBAAwB,KAAK,EAAE,UAAU,CAAC;AAC/D,YAAQ,OAAO,SAAS,MAAM;AAAA,EAChC,SAAS,KAAK;AACZ,cAAU,SAAS,GAAG;AAAA,EACxB;AACF;AAEA,eAAsB,4BAA4B;AAAA,EAChD;AAAA,EACA;AACF,GAAgD;AAC9C,MAAI;AACF,UAAM,EAAE,4BAA4B,IAAI,MAAM,OAAO,sCAAkC;AACvF,UAAM,YAAY,wBAAwB,QAAQ,SAAS;AAC3D,UAAM,cAAc,OAAO,QAAQ,gBAAgB,WAAW,OAAO,cAAc;AACnF,UAAM,yBAAyB,QAAQ,2BAA2B;AAClE,UAAM,SAAS,MAAM,4BAA4B;AAAA,MAC/C;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,YAAQ,OAAO,SAAS,MAAM;AAAA,EAChC,SAAS,KAAK;AACZ,cAAU,SAAS,GAAG;AAAA,EACxB;AACF;AAEA,eAAsB,yBAAyB;AAAA,EAC7C;AAAA,EACA;AACF,GAAgD;AAC9C,MAAI;AACF,UAAM,EAAE,4BAA4B,IAAI,MAAM,OAAO,sCAAkC;AACvF,UAAM,YAAY,wBAAwB,QAAQ,SAAS;AAC3D,UAAM,qBAAqB,QAAQ,uBAAuB;AAC1D,UAAM,SAAS,MAAM,4BAA4B,EAAE,WAAW,mBAAmB,CAAC;AAClF,YAAQ,MAAM,MAAM;AAAA,EACtB,SAAS,KAAK;AACZ,cAAU,SAAS,GAAG;AAAA,EACxB;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,465 @@
1
+ import {
2
+ listMatrixPins,
3
+ pinMatrixMessage,
4
+ unpinMatrixMessage
5
+ } from "./chunk-OVU43GJK.js";
6
+ import {
7
+ voteMatrixPoll
8
+ } from "./chunk-4XXERLFH.js";
9
+ import {
10
+ listMatrixReactions,
11
+ removeMatrixReactions
12
+ } from "./chunk-63QTHDJL.js";
13
+ import {
14
+ getMatrixMemberInfo,
15
+ getMatrixRoomInfo
16
+ } from "./chunk-RTSINQ4T.js";
17
+ import {
18
+ applyMatrixProfileUpdate
19
+ } from "./chunk-JVLRI4RU.js";
20
+ import {
21
+ acceptMatrixVerification,
22
+ bootstrapMatrixVerification,
23
+ cancelMatrixVerification,
24
+ confirmMatrixVerificationReciprocateQr,
25
+ confirmMatrixVerificationSas,
26
+ generateMatrixVerificationQr,
27
+ getMatrixEncryptionStatus,
28
+ getMatrixRoomKeyBackupStatus,
29
+ getMatrixVerificationSas,
30
+ getMatrixVerificationStatus,
31
+ listMatrixVerifications,
32
+ mismatchMatrixVerificationSas,
33
+ requestMatrixVerification,
34
+ restoreMatrixRoomKeyBackup,
35
+ scanMatrixVerificationQr,
36
+ startMatrixVerification,
37
+ verifyMatrixRecoveryKey
38
+ } from "./chunk-4WCKVGQ5.js";
39
+ import {
40
+ deleteMatrixMessage,
41
+ editMatrixMessage,
42
+ readMatrixMessages,
43
+ sendMatrixMessage
44
+ } from "./chunk-VRBJNFPL.js";
45
+ import {
46
+ reactMatrixMessage
47
+ } from "./chunk-QAR5POXD.js";
48
+ import {
49
+ createActionGate,
50
+ jsonResult,
51
+ readNumberParam,
52
+ readReactionParams,
53
+ readStringArrayParam,
54
+ readStringParam
55
+ } from "./chunk-HGHU3TVL.js";
56
+ import {
57
+ resolveMatrixAccountConfig
58
+ } from "./chunk-3OXOEMBS.js";
59
+ import {
60
+ init_shims
61
+ } from "./chunk-G4TIS2SC.js";
62
+
63
+ // src/tool-actions.ts
64
+ init_shims();
65
+ import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/text-runtime";
66
+ var messageActions = /* @__PURE__ */ new Set(["sendMessage", "editMessage", "deleteMessage", "readMessages"]);
67
+ var reactionActions = /* @__PURE__ */ new Set(["react", "reactions"]);
68
+ var pinActions = /* @__PURE__ */ new Set(["pinMessage", "unpinMessage", "listPins"]);
69
+ var pollActions = /* @__PURE__ */ new Set(["pollVote"]);
70
+ var profileActions = /* @__PURE__ */ new Set(["setProfile"]);
71
+ var verificationActions = /* @__PURE__ */ new Set([
72
+ "encryptionStatus",
73
+ "verificationList",
74
+ "verificationRequest",
75
+ "verificationAccept",
76
+ "verificationCancel",
77
+ "verificationStart",
78
+ "verificationGenerateQr",
79
+ "verificationScanQr",
80
+ "verificationSas",
81
+ "verificationConfirm",
82
+ "verificationMismatch",
83
+ "verificationConfirmQr",
84
+ "verificationStatus",
85
+ "verificationBootstrap",
86
+ "verificationRecoveryKey",
87
+ "verificationBackupStatus",
88
+ "verificationBackupRestore"
89
+ ]);
90
+ function readRoomId(params, required = true) {
91
+ const direct = readStringParam(params, "roomId") ?? readStringParam(params, "channelId");
92
+ if (direct) {
93
+ return direct;
94
+ }
95
+ if (!required) {
96
+ return readStringParam(params, "to") ?? "";
97
+ }
98
+ return readStringParam(params, "to", { required: true });
99
+ }
100
+ function toSnakeCaseKey(key) {
101
+ return normalizeOptionalLowercaseString(
102
+ key.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z0-9])([A-Z])/g, "$1_$2")
103
+ );
104
+ }
105
+ function readRawParam(params, key) {
106
+ if (Object.hasOwn(params, key)) {
107
+ return params[key];
108
+ }
109
+ const snakeKey = toSnakeCaseKey(key);
110
+ if (snakeKey !== key && Object.hasOwn(params, snakeKey)) {
111
+ return params[snakeKey];
112
+ }
113
+ return void 0;
114
+ }
115
+ function readStringAliasParam(params, keys, options = {}) {
116
+ for (const key of keys) {
117
+ const raw = readRawParam(params, key);
118
+ if (typeof raw !== "string") {
119
+ continue;
120
+ }
121
+ const trimmed = raw.trim();
122
+ if (trimmed) {
123
+ return trimmed;
124
+ }
125
+ }
126
+ if (options.required) {
127
+ throw new Error(`${keys[0]} required`);
128
+ }
129
+ return void 0;
130
+ }
131
+ function readNumericArrayParam(params, key, options = {}) {
132
+ const { integer = false } = options;
133
+ const raw = readRawParam(params, key);
134
+ if (raw === void 0) {
135
+ return [];
136
+ }
137
+ return (Array.isArray(raw) ? raw : [raw]).map((value) => {
138
+ if (typeof value === "number" && Number.isFinite(value)) {
139
+ return value;
140
+ }
141
+ if (typeof value === "string") {
142
+ const trimmed = value.trim();
143
+ if (!trimmed) {
144
+ return null;
145
+ }
146
+ const parsed = Number(trimmed);
147
+ return Number.isFinite(parsed) ? parsed : null;
148
+ }
149
+ return null;
150
+ }).filter((value) => value !== null).map((value) => integer ? Math.trunc(value) : value);
151
+ }
152
+ async function handleMatrixAction(params, cfg, opts = {}) {
153
+ const action = readStringParam(params, "action", { required: true });
154
+ const accountId = readStringParam(params, "accountId") ?? void 0;
155
+ const isActionEnabled = createActionGate(resolveMatrixAccountConfig({ cfg, accountId }).actions);
156
+ const clientOpts = {
157
+ cfg,
158
+ ...accountId ? { accountId } : {}
159
+ };
160
+ if (reactionActions.has(action)) {
161
+ if (!isActionEnabled("reactions")) {
162
+ throw new Error("Matrix reactions are disabled.");
163
+ }
164
+ const roomId = readRoomId(params);
165
+ const messageId = readStringParam(params, "messageId", { required: true });
166
+ if (action === "react") {
167
+ const { emoji, remove, isEmpty } = readReactionParams(params, {
168
+ removeErrorMessage: "Emoji is required to remove a Matrix reaction."
169
+ });
170
+ if (remove || isEmpty) {
171
+ const result = await removeMatrixReactions(roomId, messageId, {
172
+ ...clientOpts,
173
+ emoji: remove ? emoji : void 0
174
+ });
175
+ return jsonResult({ ok: true, removed: result.removed });
176
+ }
177
+ await reactMatrixMessage(roomId, messageId, emoji, clientOpts);
178
+ return jsonResult({ ok: true, added: emoji });
179
+ }
180
+ const limit = readNumberParam(params, "limit", { integer: true });
181
+ const reactions = await listMatrixReactions(roomId, messageId, {
182
+ ...clientOpts,
183
+ limit: limit ?? void 0
184
+ });
185
+ return jsonResult({ ok: true, reactions });
186
+ }
187
+ if (pollActions.has(action)) {
188
+ const roomId = readRoomId(params);
189
+ const pollId = readStringAliasParam(params, ["pollId", "messageId"], { required: true });
190
+ if (!pollId) {
191
+ throw new Error("pollId required");
192
+ }
193
+ const optionId = readStringParam(params, "pollOptionId");
194
+ const optionIndex = readNumberParam(params, "pollOptionIndex", { integer: true });
195
+ const optionIds = [
196
+ ...readStringArrayParam(params, "pollOptionIds") ?? [],
197
+ ...optionId ? [optionId] : []
198
+ ];
199
+ const optionIndexes = [
200
+ ...readNumericArrayParam(params, "pollOptionIndexes", { integer: true }),
201
+ ...optionIndex !== void 0 ? [optionIndex] : []
202
+ ];
203
+ const result = await voteMatrixPoll(roomId, pollId, {
204
+ ...clientOpts,
205
+ optionIds,
206
+ optionIndexes
207
+ });
208
+ return jsonResult({ ok: true, result });
209
+ }
210
+ if (messageActions.has(action)) {
211
+ if (!isActionEnabled("messages")) {
212
+ throw new Error("Matrix messages are disabled.");
213
+ }
214
+ switch (action) {
215
+ case "sendMessage": {
216
+ const to = readStringParam(params, "to", { required: true });
217
+ const mediaUrl = readStringParam(params, "mediaUrl", { trim: false }) ?? readStringParam(params, "media", { trim: false }) ?? readStringParam(params, "filePath", { trim: false }) ?? readStringParam(params, "path", { trim: false });
218
+ const content = readStringParam(params, "content", {
219
+ required: !mediaUrl,
220
+ allowEmpty: true
221
+ });
222
+ const replyToId = readStringParam(params, "replyToId") ?? readStringParam(params, "replyTo");
223
+ const threadId = readStringParam(params, "threadId");
224
+ const audioAsVoice = typeof readRawParam(params, "audioAsVoice") === "boolean" ? readRawParam(params, "audioAsVoice") : typeof readRawParam(params, "asVoice") === "boolean" ? readRawParam(params, "asVoice") : void 0;
225
+ const result = await sendMatrixMessage(to, content, {
226
+ mediaUrl: mediaUrl ?? void 0,
227
+ mediaLocalRoots: opts.mediaLocalRoots,
228
+ replyToId: replyToId ?? void 0,
229
+ threadId: threadId ?? void 0,
230
+ audioAsVoice,
231
+ ...clientOpts
232
+ });
233
+ return jsonResult({ ok: true, result });
234
+ }
235
+ case "editMessage": {
236
+ const roomId = readRoomId(params);
237
+ const messageId = readStringParam(params, "messageId", { required: true });
238
+ const content = readStringParam(params, "content", { required: true });
239
+ const result = await editMatrixMessage(roomId, messageId, content, clientOpts);
240
+ return jsonResult({ ok: true, result });
241
+ }
242
+ case "deleteMessage": {
243
+ const roomId = readRoomId(params);
244
+ const messageId = readStringParam(params, "messageId", { required: true });
245
+ const reason = readStringParam(params, "reason");
246
+ await deleteMatrixMessage(roomId, messageId, {
247
+ reason: reason ?? void 0,
248
+ ...clientOpts
249
+ });
250
+ return jsonResult({ ok: true, deleted: true });
251
+ }
252
+ case "readMessages": {
253
+ const roomId = readRoomId(params);
254
+ const limit = readNumberParam(params, "limit", { integer: true });
255
+ const before = readStringParam(params, "before");
256
+ const after = readStringParam(params, "after");
257
+ const result = await readMatrixMessages(roomId, {
258
+ limit: limit ?? void 0,
259
+ before: before ?? void 0,
260
+ after: after ?? void 0,
261
+ ...clientOpts
262
+ });
263
+ return jsonResult({ ok: true, ...result });
264
+ }
265
+ default:
266
+ break;
267
+ }
268
+ }
269
+ if (pinActions.has(action)) {
270
+ if (!isActionEnabled("pins")) {
271
+ throw new Error("Matrix pins are disabled.");
272
+ }
273
+ const roomId = readRoomId(params);
274
+ if (action === "pinMessage") {
275
+ const messageId = readStringParam(params, "messageId", { required: true });
276
+ const result2 = await pinMatrixMessage(roomId, messageId, clientOpts);
277
+ return jsonResult({ ok: true, pinned: result2.pinned });
278
+ }
279
+ if (action === "unpinMessage") {
280
+ const messageId = readStringParam(params, "messageId", { required: true });
281
+ const result2 = await unpinMatrixMessage(roomId, messageId, clientOpts);
282
+ return jsonResult({ ok: true, pinned: result2.pinned });
283
+ }
284
+ const result = await listMatrixPins(roomId, clientOpts);
285
+ return jsonResult({ ok: true, pinned: result.pinned, events: result.events });
286
+ }
287
+ if (profileActions.has(action)) {
288
+ if (!isActionEnabled("profile")) {
289
+ throw new Error("Matrix profile updates are disabled.");
290
+ }
291
+ const avatarPath = readStringParam(params, "avatarPath") ?? readStringParam(params, "path") ?? readStringParam(params, "filePath");
292
+ const result = await applyMatrixProfileUpdate({
293
+ cfg,
294
+ account: accountId,
295
+ displayName: readStringParam(params, "displayName") ?? readStringParam(params, "name"),
296
+ avatarUrl: readStringParam(params, "avatarUrl"),
297
+ avatarPath,
298
+ mediaLocalRoots: opts.mediaLocalRoots
299
+ });
300
+ return jsonResult({ ok: true, ...result });
301
+ }
302
+ if (action === "memberInfo") {
303
+ if (!isActionEnabled("memberInfo")) {
304
+ throw new Error("Matrix member info is disabled.");
305
+ }
306
+ const userId = readStringParam(params, "userId", { required: true });
307
+ const roomId = readStringParam(params, "roomId") ?? readStringParam(params, "channelId");
308
+ const result = await getMatrixMemberInfo(userId, {
309
+ roomId: roomId ?? void 0,
310
+ ...clientOpts
311
+ });
312
+ return jsonResult({ ok: true, member: result });
313
+ }
314
+ if (action === "channelInfo") {
315
+ if (!isActionEnabled("channelInfo")) {
316
+ throw new Error("Matrix room info is disabled.");
317
+ }
318
+ const roomId = readRoomId(params);
319
+ const result = await getMatrixRoomInfo(roomId, clientOpts);
320
+ return jsonResult({ ok: true, room: result });
321
+ }
322
+ if (verificationActions.has(action)) {
323
+ if (!isActionEnabled("verification")) {
324
+ throw new Error("Matrix verification actions are disabled.");
325
+ }
326
+ const requestId = readStringParam(params, "requestId") ?? readStringParam(params, "verificationId") ?? readStringParam(params, "id");
327
+ if (action === "encryptionStatus") {
328
+ const includeRecoveryKey = params.includeRecoveryKey === true;
329
+ const status = await getMatrixEncryptionStatus({ includeRecoveryKey, ...clientOpts });
330
+ return jsonResult({ ok: true, status });
331
+ }
332
+ if (action === "verificationStatus") {
333
+ const includeRecoveryKey = params.includeRecoveryKey === true;
334
+ const status = await getMatrixVerificationStatus({ includeRecoveryKey, ...clientOpts });
335
+ return jsonResult({ ok: true, status });
336
+ }
337
+ if (action === "verificationBootstrap") {
338
+ const recoveryKey = readStringParam(params, "recoveryKey", { trim: false }) ?? readStringParam(params, "key", { trim: false });
339
+ const result = await bootstrapMatrixVerification({
340
+ recoveryKey: recoveryKey ?? void 0,
341
+ forceResetCrossSigning: params.forceResetCrossSigning === true,
342
+ ...clientOpts
343
+ });
344
+ return jsonResult({ ok: result.success, result });
345
+ }
346
+ if (action === "verificationRecoveryKey") {
347
+ const recoveryKey = readStringParam(params, "recoveryKey", { trim: false }) ?? readStringParam(params, "key", { trim: false });
348
+ const result = await verifyMatrixRecoveryKey(
349
+ readStringParam({ recoveryKey }, "recoveryKey", { required: true, trim: false }),
350
+ clientOpts
351
+ );
352
+ return jsonResult({ ok: result.success, result });
353
+ }
354
+ if (action === "verificationBackupStatus") {
355
+ const status = await getMatrixRoomKeyBackupStatus(clientOpts);
356
+ return jsonResult({ ok: true, status });
357
+ }
358
+ if (action === "verificationBackupRestore") {
359
+ const recoveryKey = readStringParam(params, "recoveryKey", { trim: false }) ?? readStringParam(params, "key", { trim: false });
360
+ const result = await restoreMatrixRoomKeyBackup({
361
+ recoveryKey: recoveryKey ?? void 0,
362
+ ...clientOpts
363
+ });
364
+ return jsonResult({ ok: result.success, result });
365
+ }
366
+ if (action === "verificationList") {
367
+ const verifications = await listMatrixVerifications(clientOpts);
368
+ return jsonResult({ ok: true, verifications });
369
+ }
370
+ if (action === "verificationRequest") {
371
+ const userId = readStringParam(params, "userId");
372
+ const deviceId = readStringParam(params, "deviceId");
373
+ const roomId = readStringParam(params, "roomId") ?? readStringParam(params, "channelId");
374
+ const ownUser = typeof params.ownUser === "boolean" ? params.ownUser : void 0;
375
+ const verification = await requestMatrixVerification({
376
+ ownUser,
377
+ userId: userId ?? void 0,
378
+ deviceId: deviceId ?? void 0,
379
+ roomId: roomId ?? void 0,
380
+ ...clientOpts
381
+ });
382
+ return jsonResult({ ok: true, verification });
383
+ }
384
+ if (action === "verificationAccept") {
385
+ const verification = await acceptMatrixVerification(
386
+ readStringParam({ requestId }, "requestId", { required: true }),
387
+ clientOpts
388
+ );
389
+ return jsonResult({ ok: true, verification });
390
+ }
391
+ if (action === "verificationCancel") {
392
+ const reason = readStringParam(params, "reason");
393
+ const code = readStringParam(params, "code");
394
+ const verification = await cancelMatrixVerification(
395
+ readStringParam({ requestId }, "requestId", { required: true }),
396
+ { reason: reason ?? void 0, code: code ?? void 0, ...clientOpts }
397
+ );
398
+ return jsonResult({ ok: true, verification });
399
+ }
400
+ if (action === "verificationStart") {
401
+ const methodRaw = readStringParam(params, "method");
402
+ const method = normalizeOptionalLowercaseString(methodRaw);
403
+ if (method && method !== "sas") {
404
+ throw new Error(
405
+ "Matrix verificationStart only supports method=sas; use verificationGenerateQr/verificationScanQr for QR flows."
406
+ );
407
+ }
408
+ const verification = await startMatrixVerification(
409
+ readStringParam({ requestId }, "requestId", { required: true }),
410
+ { method: "sas", ...clientOpts }
411
+ );
412
+ return jsonResult({ ok: true, verification });
413
+ }
414
+ if (action === "verificationGenerateQr") {
415
+ const qr = await generateMatrixVerificationQr(
416
+ readStringParam({ requestId }, "requestId", { required: true }),
417
+ clientOpts
418
+ );
419
+ return jsonResult({ ok: true, ...qr });
420
+ }
421
+ if (action === "verificationScanQr") {
422
+ const qrDataBase64 = readStringParam(params, "qrDataBase64") ?? readStringParam(params, "qrData") ?? readStringParam(params, "qr");
423
+ const verification = await scanMatrixVerificationQr(
424
+ readStringParam({ requestId }, "requestId", { required: true }),
425
+ readStringParam({ qrDataBase64 }, "qrDataBase64", { required: true }),
426
+ clientOpts
427
+ );
428
+ return jsonResult({ ok: true, verification });
429
+ }
430
+ if (action === "verificationSas") {
431
+ const sas = await getMatrixVerificationSas(
432
+ readStringParam({ requestId }, "requestId", { required: true }),
433
+ clientOpts
434
+ );
435
+ return jsonResult({ ok: true, sas });
436
+ }
437
+ if (action === "verificationConfirm") {
438
+ const verification = await confirmMatrixVerificationSas(
439
+ readStringParam({ requestId }, "requestId", { required: true }),
440
+ clientOpts
441
+ );
442
+ return jsonResult({ ok: true, verification });
443
+ }
444
+ if (action === "verificationMismatch") {
445
+ const verification = await mismatchMatrixVerificationSas(
446
+ readStringParam({ requestId }, "requestId", { required: true }),
447
+ clientOpts
448
+ );
449
+ return jsonResult({ ok: true, verification });
450
+ }
451
+ if (action === "verificationConfirmQr") {
452
+ const verification = await confirmMatrixVerificationReciprocateQr(
453
+ readStringParam({ requestId }, "requestId", { required: true }),
454
+ clientOpts
455
+ );
456
+ return jsonResult({ ok: true, verification });
457
+ }
458
+ }
459
+ throw new Error(`Unsupported Matrix action: ${action}`);
460
+ }
461
+
462
+ export {
463
+ handleMatrixAction
464
+ };
465
+ //# sourceMappingURL=chunk-JB6ZQEVR.js.map