@openclaw/matrix 2026.7.2-beta.7 → 2026.7.34

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 (368) hide show
  1. package/README.md +1 -1
  2. package/dist/{account-selection-kqquRzCf.js → .setup/account-selection-BOQeTqax.mjs} +18 -17
  3. package/dist/{approval-handler.runtime-DSeaIsGa.js → .setup/approval-handler.runtime-CEXm9_-p.mjs} +18 -28
  4. package/dist/{approval-ids-BdJGPAJT.js → .setup/approval-ids-DdFnDB3h.mjs} +1 -1
  5. package/dist/{approval-reaction-auth-BjOpELxu.js → .setup/approval-reaction-auth-CREvd7S7.mjs} +2 -2
  6. package/dist/.setup/approval-reactions-Cltyp8nL.mjs +113 -0
  7. package/dist/.setup/async-lock-BcLS4KOc.mjs +19 -0
  8. package/dist/{channel-vj788dNZ.js → .setup/channel-an4umty1.mjs} +186 -144
  9. package/dist/{channel.runtime-CLoF2S9T.js → .setup/channel.runtime-GHcIBJ7H.mjs} +51 -45
  10. package/dist/{cli-DMqfDE-q.js → .setup/cli-B3WYmv5U.mjs} +882 -901
  11. package/dist/{cli-metadata-C7D53SND.js → .setup/cli-metadata-RUKCn0wJ.mjs} +1 -1
  12. package/dist/{client-6eRENr7k.js → .setup/client-Ct0bUHCo.mjs} +5 -5
  13. package/dist/{shared-CUMWxcMz.js → .setup/client-DFBQtzCe.mjs} +422 -179
  14. package/dist/.setup/client-bootstrap-Be8jvNle.mjs +74 -0
  15. package/dist/{config-schema-Djxw3C6b.js → .setup/config-schema-D9J_vUF6.mjs} +89 -70
  16. package/dist/.setup/credentials-BhZlA0kL.mjs +56 -0
  17. package/dist/.setup/credentials-read-CRHg6XPm.mjs +114 -0
  18. package/dist/{credentials-write.runtime-Be9zNSUw.js → .setup/credentials-write.runtime-dWuLafsk.mjs} +1 -1
  19. package/dist/{crypto-runtime-D9_6J5tZ.js → .setup/crypto-runtime-D-cZa8P0.mjs} +81 -35
  20. package/dist/.setup/crypto-state-store-B43k3z3W.mjs +352 -0
  21. package/dist/{deps-CcVJfvRM.js → .setup/deps-Dy6yreL4.mjs} +92 -25
  22. package/dist/{device-health-B4-YXtJR.js → .setup/device-health-D4LBxuPq.mjs} +1 -6
  23. package/dist/{directory-live-C8dVBiCc.js → .setup/directory-live-BTEYxMwy.mjs} +10 -9
  24. package/dist/.setup/doctor-BGnvMzOR.mjs +169 -0
  25. package/dist/.setup/doctor-contract-DNJw0fdq.mjs +246 -0
  26. package/dist/{draft-stream-CtvOXq0Z.js → .setup/draft-stream-C-_OhpE8.mjs} +1 -6
  27. package/dist/{encryption-guidance-CbEFe38F.js → .setup/encryption-guidance-CpuuwmjL.mjs} +4 -3
  28. package/dist/{env-auth-CQsYbz-p.js → .setup/env-auth-CYJL1jNl.mjs} +2 -2
  29. package/dist/{env-vars-B0NxQnPk.js → .setup/env-vars-KzaYveuy.mjs} +1 -3
  30. package/dist/{exec-approval-resolver-BCgqRtZS.js → .setup/exec-approval-resolver-f9j6staN.mjs} +1 -2
  31. package/dist/{file-sync-store-DiiFsayX.js → .setup/file-sync-store-DU0cnYAz.mjs} +30 -25
  32. package/dist/{http-client-CycYxU9-.js → .setup/http-client-C954In2D.mjs} +45 -25
  33. package/dist/{idb-persistence-B6x7dMsF.js → .setup/idb-persistence-_HKTXkVC.mjs} +76 -78
  34. package/dist/{idb-persistence-lock-DAJ49nZX.js → .setup/idb-persistence-lock-B3fZXyF_.mjs} +1 -1
  35. package/dist/.setup/legacy-crypto-inspector-Byp8LCys.mjs +42 -0
  36. package/dist/.setup/legacy-crypto-restore-YQVoK1B2.mjs +93 -0
  37. package/dist/{logger-D0GCSDQq.js → .setup/logger-DpoogOgz.mjs} +1 -1
  38. package/dist/{logging-DV-p52N0.js → .setup/logging-CgxQOJJP.mjs} +2 -9
  39. package/dist/.setup/matrix-migration.runtime-BDH5c3fN.mjs +530 -0
  40. package/dist/{media-text-BTwzADS_.js → .setup/media-text-Cib-dxkn.mjs} +1 -1
  41. package/dist/{messages-DxQJkhxs.js → .setup/messages-D4DYGHYX.mjs} +15 -67
  42. package/dist/.setup/migration-snapshot-backup-CpgYhiUp.mjs +70 -0
  43. package/dist/.setup/migration-snapshot.runtime-O8qkMVaC.mjs +2 -0
  44. package/dist/{monitor-VyWlSLwo.js → .setup/monitor-DNcW_oAN.mjs} +2525 -2361
  45. package/dist/.setup/probe.runtime-CMPh0mFk.mjs +2 -0
  46. package/dist/{profile-update-CffmyW_4.js → .setup/profile-update-DzOL3Wiw.mjs} +5 -4
  47. package/dist/{reaction-events-B00WSi98.js → .setup/reaction-events-BcvgXxHb.mjs} +14 -64
  48. package/dist/{resolve-targets-nm2L48sh.js → .setup/resolve-targets-Bq80X9Sn.mjs} +3 -3
  49. package/dist/{resolver.runtime-DS6uPaEe.js → .setup/resolver.runtime-CeBHR9-T.mjs} +1 -1
  50. package/dist/{runtime-api-D1xI_cvh.js → .setup/runtime-api-CEsWNdil.mjs} +4 -4
  51. package/dist/.setup/runtime-setter-api-DGMubGUq.mjs +3 -0
  52. package/dist/{sdk-bUytQHx7.js → .setup/sdk-He1quVAq.mjs} +592 -261
  53. package/dist/.setup/secret-contract-api-CiTJ7pd5.mjs +3 -0
  54. package/dist/{secret-contract-M3hRmGO-.js → .setup/secret-contract-phPvlNfV.mjs} +53 -28
  55. package/dist/{send-BldGYG8g.js → .setup/send-CGgl0uTn.mjs} +133 -660
  56. package/dist/{setup-bootstrap-Deleiibz.js → .setup/setup-bootstrap-DUXBC8X2.mjs} +4 -4
  57. package/dist/{setup-core-BVfBv2ai.js → .setup/setup-core-bhdcEo7v.mjs} +239 -189
  58. package/dist/.setup/setup-plugin-api-CAwZ_Bi7.mjs +43 -0
  59. package/dist/.setup/setup-plugin-api-DIFVsOs3.mjs +2 -0
  60. package/dist/{setup-surface-BBq3WeqX.js → .setup/setup-surface-05_G-MnT.mjs} +149 -92
  61. package/dist/{startup-verification-wm3_i88s.js → .setup/startup-verification-BTwIGu1J.mjs} +7 -6
  62. package/dist/.setup/storage-NGZq5zet.mjs +432 -0
  63. package/dist/{storage-paths-gUmSydsW.js → .setup/storage-paths-BWo_ZEMC.mjs} +13 -2
  64. package/dist/{subagent-hooks-dkPAF6Et.js → .setup/subagent-hooks-BSWPJEmo.mjs} +2 -2
  65. package/dist/{thread-binding-api-DRbBZlhS.js → .setup/thread-binding-api-B7UaOoKv.mjs} +1 -1
  66. package/dist/{thread-bindings-DGbl3vDW.js → .setup/thread-bindings-DqmjG2on.mjs} +8 -8
  67. package/dist/{tool-actions.runtime-uu9blSqO.js → .setup/tool-actions.runtime-CXDLk2jg.mjs} +196 -332
  68. package/dist/{verification-DYMQ1QpI.js → .setup/verification-DeWOtZJr.mjs} +4 -3
  69. package/dist/api.js +9 -9
  70. package/dist/auth-presence.js +21 -13
  71. package/dist/channel-plugin-api.js +1 -1
  72. package/dist/cli-metadata.js +1 -1
  73. package/dist/contract-api.js +2 -2
  74. package/dist/doctor-contract-api.js +99 -524
  75. package/dist/helper-api.js +4 -4
  76. package/dist/index.js +1 -1
  77. package/dist/plugin-entry.handlers.runtime.js +2 -2
  78. package/dist/runtime-api.js +8 -8
  79. package/dist/runtime-heavy-api.js +3 -0
  80. package/dist/runtime-setter-api.js +1 -1
  81. package/dist/secret-contract-api.js +1 -1
  82. package/dist/session-binding-contract-api.js +3 -3
  83. package/dist/setup-entry.js +4 -3
  84. package/dist/setup-plugin-api.js +1 -44
  85. package/dist/subagent-hooks-api.js +1 -1
  86. package/dist/thread-binding-api.js +1 -1
  87. package/dist/thread-bindings-runtime.js +1 -1
  88. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/package.json +1 -1
  89. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm.d.ts +2 -14
  90. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.cjs +384 -409
  91. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js +224 -246
  92. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm +0 -0
  93. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts +58 -59
  94. package/node_modules/markdown-it/README.md +18 -294
  95. package/node_modules/markdown-it/bin/markdown-it.mjs +2 -2
  96. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs +3013 -0
  97. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs.map +1 -0
  98. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js +14 -0
  99. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js.map +1 -0
  100. package/node_modules/markdown-it/dist/markdown-it.cjs.js +4420 -0
  101. package/node_modules/markdown-it/dist/markdown-it.cjs.js.map +1 -0
  102. package/node_modules/markdown-it/dist/markdown-it.d.cts +19 -0
  103. package/node_modules/markdown-it/dist/markdown-it.d.mts +950 -0
  104. package/node_modules/markdown-it/dist/{index.cjs.js → markdown-it.mjs} +1504 -1525
  105. package/node_modules/markdown-it/dist/markdown-it.mjs.map +1 -0
  106. package/node_modules/markdown-it/node_modules/argparse/LICENSE +1 -208
  107. package/node_modules/markdown-it/node_modules/argparse/README.md +46 -41
  108. package/node_modules/markdown-it/node_modules/argparse/lib/_colorize.js +72 -0
  109. package/node_modules/markdown-it/node_modules/argparse/lib/argparse.d.ts +292 -0
  110. package/node_modules/markdown-it/node_modules/argparse/{argparse.js → lib/argparse.js} +1142 -1029
  111. package/node_modules/markdown-it/node_modules/argparse/lib/difflib.js +190 -0
  112. package/node_modules/markdown-it/node_modules/argparse/lib/sub.js +4 -4
  113. package/node_modules/markdown-it/node_modules/argparse/lib/textwrap.js +28 -28
  114. package/node_modules/markdown-it/node_modules/argparse/package.json +18 -11
  115. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts +8 -0
  116. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts.map +1 -0
  117. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js +46 -0
  118. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js.map +1 -0
  119. package/node_modules/markdown-it/node_modules/entities/{lib → dist}/decode.d.ts +28 -45
  120. package/node_modules/markdown-it/node_modules/entities/dist/decode.d.ts.map +1 -0
  121. package/node_modules/markdown-it/node_modules/entities/{lib/esm → dist}/decode.js +189 -141
  122. package/node_modules/markdown-it/node_modules/entities/dist/decode.js.map +1 -0
  123. package/node_modules/markdown-it/node_modules/entities/{lib/esm → dist}/encode.d.ts +4 -2
  124. package/node_modules/markdown-it/node_modules/entities/dist/encode.d.ts.map +1 -0
  125. package/node_modules/markdown-it/node_modules/entities/dist/encode.js +90 -0
  126. package/node_modules/markdown-it/node_modules/entities/dist/encode.js.map +1 -0
  127. package/node_modules/markdown-it/node_modules/entities/{lib → dist}/escape.d.ts +15 -10
  128. package/node_modules/markdown-it/node_modules/entities/dist/escape.d.ts.map +1 -0
  129. package/node_modules/markdown-it/node_modules/entities/dist/escape.js +132 -0
  130. package/node_modules/markdown-it/node_modules/entities/dist/escape.js.map +1 -0
  131. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.d.ts +3 -0
  132. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.d.ts.map +1 -0
  133. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js +5 -0
  134. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js.map +1 -0
  135. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.d.ts +3 -0
  136. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.d.ts.map +1 -0
  137. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js +5 -0
  138. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js.map +1 -0
  139. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts +5 -0
  140. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts.map +1 -0
  141. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js +12 -0
  142. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js.map +1 -0
  143. package/node_modules/markdown-it/node_modules/entities/{lib/esm → dist}/index.d.ts +14 -21
  144. package/node_modules/markdown-it/node_modules/entities/dist/index.d.ts.map +1 -0
  145. package/node_modules/markdown-it/node_modules/entities/dist/index.js +91 -0
  146. package/node_modules/markdown-it/node_modules/entities/dist/index.js.map +1 -0
  147. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts +17 -0
  148. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts.map +1 -0
  149. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js +18 -0
  150. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js.map +1 -0
  151. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts +7 -0
  152. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts.map +1 -0
  153. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js +17 -0
  154. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js.map +1 -0
  155. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts +33 -0
  156. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts.map +1 -0
  157. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js +93 -0
  158. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js.map +1 -0
  159. package/node_modules/markdown-it/node_modules/entities/package.json +63 -70
  160. package/node_modules/markdown-it/node_modules/entities/readme.md +54 -45
  161. package/node_modules/markdown-it/node_modules/entities/src/decode-codepoint.ts +50 -0
  162. package/node_modules/markdown-it/node_modules/entities/src/decode.ts +671 -0
  163. package/node_modules/markdown-it/node_modules/entities/src/encode.ts +95 -0
  164. package/node_modules/markdown-it/node_modules/entities/src/escape.ts +160 -0
  165. package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-html.ts +7 -0
  166. package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-xml.ts +7 -0
  167. package/node_modules/markdown-it/node_modules/entities/src/generated/encode-html.ts +18 -0
  168. package/node_modules/markdown-it/node_modules/entities/src/index.ts +162 -0
  169. package/node_modules/markdown-it/node_modules/entities/src/internal/bin-trie-flags.ts +16 -0
  170. package/node_modules/markdown-it/node_modules/entities/src/internal/decode-shared.ts +18 -0
  171. package/node_modules/markdown-it/node_modules/entities/src/internal/encode-shared.ts +123 -0
  172. package/node_modules/markdown-it/node_modules/linkify-it/README.md +49 -86
  173. package/node_modules/markdown-it/node_modules/linkify-it/build/index.cjs.js +636 -825
  174. package/node_modules/markdown-it/node_modules/linkify-it/build/index.cjs.js.map +1 -0
  175. package/node_modules/markdown-it/node_modules/linkify-it/build/index.d.ts +236 -0
  176. package/node_modules/markdown-it/node_modules/linkify-it/build/index.mjs +538 -0
  177. package/node_modules/markdown-it/node_modules/linkify-it/build/index.mjs.map +1 -0
  178. package/node_modules/markdown-it/node_modules/linkify-it/package.json +23 -20
  179. package/node_modules/markdown-it/node_modules/uc.micro/README.md +18 -1
  180. package/node_modules/markdown-it/node_modules/uc.micro/build/index.cjs.js +13 -18
  181. package/node_modules/markdown-it/node_modules/uc.micro/build/index.d.ts +6 -0
  182. package/node_modules/markdown-it/node_modules/uc.micro/build/index.mjs +8 -0
  183. package/node_modules/markdown-it/node_modules/uc.micro/package.json +12 -17
  184. package/node_modules/markdown-it/package.json +47 -30
  185. package/node_modules/matrix-js-sdk/CHANGELOG.md +0 -11
  186. package/node_modules/matrix-js-sdk/package.json +1 -1
  187. package/node_modules/music-metadata/lib/common/Util.d.ts +1 -1
  188. package/node_modules/music-metadata/lib/common/Util.js +1 -7
  189. package/node_modules/music-metadata/lib/id3v2/FrameHeader.js +3 -23
  190. package/node_modules/music-metadata/lib/id3v2/FrameParser.js +2 -2
  191. package/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +1 -1
  192. package/node_modules/music-metadata/lib/mp4/AtomToken.js +13 -38
  193. package/node_modules/music-metadata/lib/mpeg/MpegParser.js +1 -1
  194. package/node_modules/music-metadata/package.json +6 -6
  195. package/node_modules/typebox/build/compile/validator.d.mts +4 -1
  196. package/node_modules/typebox/build/guard/guard.d.mts +1 -1
  197. package/node_modules/typebox/build/guard/guard.mjs +2 -5
  198. package/node_modules/typebox/build/guard/string.mjs +4 -16
  199. package/node_modules/typebox/build/schema/engine/_functions.mjs +15 -34
  200. package/node_modules/typebox/build/type/action/readonly_object.d.mts +0 -5
  201. package/node_modules/typebox/build/type/action/readonly_object.mjs +0 -8
  202. package/node_modules/typebox/build/typebox.d.mts +1 -1
  203. package/node_modules/typebox/build/typebox.mjs +1 -1
  204. package/node_modules/typebox/package.json +1 -1
  205. package/node_modules/typebox/readme.md +32 -29
  206. package/openclaw.plugin.json +146 -152
  207. package/package.json +31 -114
  208. package/dist/accounts-DfngqebB.js +0 -130
  209. package/dist/active-client-DXvz2gCo.js +0 -20
  210. package/dist/approval-reactions-D-BxBK_L.js +0 -202
  211. package/dist/client-Dbso3-0V.js +0 -30
  212. package/dist/client-bootstrap-XsIkHNt0.js +0 -110
  213. package/dist/create-client-BmSU-q-D.js +0 -61
  214. package/dist/credentials-W2EmwRhu.js +0 -65
  215. package/dist/credentials-read-DVmFCm7X.js +0 -77
  216. package/dist/doctor-CM8ijNpW.js +0 -64
  217. package/dist/doctor-contract-BMSJkkAE.js +0 -167
  218. package/dist/inbound-dedupe-CaBLblef.js +0 -48
  219. package/dist/probe.runtime-BuieqmS3.js +0 -3
  220. package/dist/record-shared-CWWx6fvI.js +0 -2
  221. package/dist/recovery-key-store-BNnHvXdk.js +0 -275
  222. package/dist/room-info-CAFZ3Z9J.js +0 -87
  223. package/dist/route-DY6at4qJ.js +0 -161
  224. package/dist/storage-BvAkgzvT.js +0 -685
  225. package/node_modules/markdown-it/dist/index.cjs.js.map +0 -1
  226. package/node_modules/markdown-it/dist/markdown-it.js +0 -3975
  227. package/node_modules/markdown-it/dist/markdown-it.js.map +0 -1
  228. package/node_modules/markdown-it/dist/markdown-it.min.js +0 -3
  229. package/node_modules/markdown-it/dist/markdown-it.min.js.map +0 -1
  230. package/node_modules/markdown-it/index.mjs +0 -1
  231. package/node_modules/markdown-it/lib/common/html_blocks.mjs +0 -67
  232. package/node_modules/markdown-it/lib/common/html_re.mjs +0 -25
  233. package/node_modules/markdown-it/lib/common/utils.mjs +0 -324
  234. package/node_modules/markdown-it/lib/helpers/index.mjs +0 -11
  235. package/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +0 -77
  236. package/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +0 -49
  237. package/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +0 -66
  238. package/node_modules/markdown-it/lib/index.mjs +0 -565
  239. package/node_modules/markdown-it/lib/parser_block.mjs +0 -134
  240. package/node_modules/markdown-it/lib/parser_core.mjs +0 -62
  241. package/node_modules/markdown-it/lib/parser_inline.mjs +0 -197
  242. package/node_modules/markdown-it/lib/presets/commonmark.mjs +0 -88
  243. package/node_modules/markdown-it/lib/presets/default.mjs +0 -47
  244. package/node_modules/markdown-it/lib/presets/zero.mjs +0 -70
  245. package/node_modules/markdown-it/lib/renderer.mjs +0 -322
  246. package/node_modules/markdown-it/lib/ruler.mjs +0 -340
  247. package/node_modules/markdown-it/lib/rules_block/blockquote.mjs +0 -209
  248. package/node_modules/markdown-it/lib/rules_block/code.mjs +0 -30
  249. package/node_modules/markdown-it/lib/rules_block/fence.mjs +0 -94
  250. package/node_modules/markdown-it/lib/rules_block/heading.mjs +0 -51
  251. package/node_modules/markdown-it/lib/rules_block/hr.mjs +0 -40
  252. package/node_modules/markdown-it/lib/rules_block/html_block.mjs +0 -80
  253. package/node_modules/markdown-it/lib/rules_block/lheading.mjs +0 -85
  254. package/node_modules/markdown-it/lib/rules_block/list.mjs +0 -331
  255. package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +0 -48
  256. package/node_modules/markdown-it/lib/rules_block/reference.mjs +0 -212
  257. package/node_modules/markdown-it/lib/rules_block/state_block.mjs +0 -220
  258. package/node_modules/markdown-it/lib/rules_block/table.mjs +0 -228
  259. package/node_modules/markdown-it/lib/rules_core/block.mjs +0 -13
  260. package/node_modules/markdown-it/lib/rules_core/inline.mjs +0 -11
  261. package/node_modules/markdown-it/lib/rules_core/linkify.mjs +0 -134
  262. package/node_modules/markdown-it/lib/rules_core/normalize.mjs +0 -17
  263. package/node_modules/markdown-it/lib/rules_core/replacements.mjs +0 -101
  264. package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +0 -209
  265. package/node_modules/markdown-it/lib/rules_core/state_core.mjs +0 -17
  266. package/node_modules/markdown-it/lib/rules_core/text_join.mjs +0 -43
  267. package/node_modules/markdown-it/lib/rules_inline/autolink.mjs +0 -72
  268. package/node_modules/markdown-it/lib/rules_inline/backticks.mjs +0 -60
  269. package/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +0 -124
  270. package/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +0 -123
  271. package/node_modules/markdown-it/lib/rules_inline/entity.mjs +0 -51
  272. package/node_modules/markdown-it/lib/rules_inline/escape.mjs +0 -83
  273. package/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs +0 -38
  274. package/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +0 -50
  275. package/node_modules/markdown-it/lib/rules_inline/image.mjs +0 -138
  276. package/node_modules/markdown-it/lib/rules_inline/link.mjs +0 -139
  277. package/node_modules/markdown-it/lib/rules_inline/linkify.mjs +0 -63
  278. package/node_modules/markdown-it/lib/rules_inline/newline.mjs +0 -42
  279. package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +0 -154
  280. package/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +0 -127
  281. package/node_modules/markdown-it/lib/rules_inline/text.mjs +0 -86
  282. package/node_modules/markdown-it/lib/token.mjs +0 -191
  283. package/node_modules/markdown-it/node_modules/argparse/CHANGELOG.md +0 -216
  284. package/node_modules/markdown-it/node_modules/entities/lib/decode.d.ts.map +0 -1
  285. package/node_modules/markdown-it/node_modules/entities/lib/decode.js +0 -536
  286. package/node_modules/markdown-it/node_modules/entities/lib/decode.js.map +0 -1
  287. package/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.d.ts +0 -19
  288. package/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.d.ts.map +0 -1
  289. package/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.js +0 -76
  290. package/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.js.map +0 -1
  291. package/node_modules/markdown-it/node_modules/entities/lib/encode.d.ts +0 -22
  292. package/node_modules/markdown-it/node_modules/entities/lib/encode.d.ts.map +0 -1
  293. package/node_modules/markdown-it/node_modules/entities/lib/encode.js +0 -77
  294. package/node_modules/markdown-it/node_modules/entities/lib/encode.js.map +0 -1
  295. package/node_modules/markdown-it/node_modules/entities/lib/escape.d.ts.map +0 -1
  296. package/node_modules/markdown-it/node_modules/entities/lib/escape.js +0 -122
  297. package/node_modules/markdown-it/node_modules/entities/lib/escape.js.map +0 -1
  298. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode.d.ts +0 -211
  299. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode.d.ts.map +0 -1
  300. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode.js.map +0 -1
  301. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.d.ts +0 -19
  302. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.d.ts.map +0 -1
  303. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.js +0 -71
  304. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.js.map +0 -1
  305. package/node_modules/markdown-it/node_modules/entities/lib/esm/encode.d.ts.map +0 -1
  306. package/node_modules/markdown-it/node_modules/entities/lib/esm/encode.js +0 -69
  307. package/node_modules/markdown-it/node_modules/entities/lib/esm/encode.js.map +0 -1
  308. package/node_modules/markdown-it/node_modules/entities/lib/esm/escape.d.ts +0 -43
  309. package/node_modules/markdown-it/node_modules/entities/lib/esm/escape.d.ts.map +0 -1
  310. package/node_modules/markdown-it/node_modules/entities/lib/esm/escape.js +0 -116
  311. package/node_modules/markdown-it/node_modules/entities/lib/esm/escape.js.map +0 -1
  312. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.d.ts +0 -3
  313. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map +0 -1
  314. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.js +0 -7
  315. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.js.map +0 -1
  316. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts +0 -3
  317. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map +0 -1
  318. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.js +0 -7
  319. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +0 -1
  320. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.d.ts +0 -8
  321. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.d.ts.map +0 -1
  322. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.js +0 -10
  323. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.js.map +0 -1
  324. package/node_modules/markdown-it/node_modules/entities/lib/esm/index.d.ts.map +0 -1
  325. package/node_modules/markdown-it/node_modules/entities/lib/esm/index.js +0 -99
  326. package/node_modules/markdown-it/node_modules/entities/lib/esm/index.js.map +0 -1
  327. package/node_modules/markdown-it/node_modules/entities/lib/esm/package.json +0 -1
  328. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.d.ts +0 -3
  329. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.d.ts.map +0 -1
  330. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.js +0 -9
  331. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.js.map +0 -1
  332. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.d.ts +0 -3
  333. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +0 -1
  334. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.js +0 -9
  335. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.js.map +0 -1
  336. package/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.d.ts +0 -8
  337. package/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.d.ts.map +0 -1
  338. package/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.js +0 -12
  339. package/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.js.map +0 -1
  340. package/node_modules/markdown-it/node_modules/entities/lib/index.d.ts +0 -96
  341. package/node_modules/markdown-it/node_modules/entities/lib/index.d.ts.map +0 -1
  342. package/node_modules/markdown-it/node_modules/entities/lib/index.js +0 -126
  343. package/node_modules/markdown-it/node_modules/entities/lib/index.js.map +0 -1
  344. package/node_modules/markdown-it/node_modules/linkify-it/index.mjs +0 -646
  345. package/node_modules/markdown-it/node_modules/linkify-it/lib/re.mjs +0 -193
  346. package/node_modules/markdown-it/node_modules/uc.micro/categories/Cc/regex.mjs +0 -1
  347. package/node_modules/markdown-it/node_modules/uc.micro/categories/Cf/regex.mjs +0 -1
  348. package/node_modules/markdown-it/node_modules/uc.micro/categories/P/regex.mjs +0 -1
  349. package/node_modules/markdown-it/node_modules/uc.micro/categories/S/regex.mjs +0 -1
  350. package/node_modules/markdown-it/node_modules/uc.micro/categories/Z/regex.mjs +0 -1
  351. package/node_modules/markdown-it/node_modules/uc.micro/index.mjs +0 -8
  352. package/node_modules/markdown-it/node_modules/uc.micro/properties/Any/regex.mjs +0 -1
  353. /package/dist/{account-config-BZWN9tGS.js → .setup/account-config-BZWN9tGS.mjs} +0 -0
  354. /package/dist/{backup-health-Dm_YMVFT.js → .setup/backup-health-Dm_YMVFT.mjs} +0 -0
  355. /package/dist/{config-paths-CnREYb1Y.js → .setup/config-paths-CnREYb1Y.mjs} +0 -0
  356. /package/dist/{config-secret-input.runtime-CwsP3--c.js → .setup/config-secret-input.runtime-CwsP3--c.mjs} +0 -0
  357. /package/dist/{crypto-node.runtime-6Aj_ltHQ.js → .setup/crypto-node.runtime-6Aj_ltHQ.mjs} +0 -0
  358. /package/dist/{errors-C47hvAF8.js → .setup/errors-C47hvAF8.mjs} +0 -0
  359. /package/dist/{preflight-audio.runtime-BZxxQsxY.js → .setup/preflight-audio.runtime-BZxxQsxY.mjs} +0 -0
  360. /package/dist/{reaction-common-DkrQdBSZ.js → .setup/reaction-common-DkrQdBSZ.mjs} +0 -0
  361. /package/dist/{rolldown-runtime-8H4AJuhK.js → .setup/rolldown-runtime-8H4AJuhK.mjs} +0 -0
  362. /package/dist/{runtime-6S3DNFNv.js → .setup/runtime-6S3DNFNv.mjs} +0 -0
  363. /package/dist/{runtime-BefyhPWv.js → .setup/runtime-BefyhPWv.mjs} +0 -0
  364. /package/dist/{sync-state-CWbp0QSY.js → .setup/sync-state-CWbp0QSY.mjs} +0 -0
  365. /package/dist/{target-ids-B-5aQxwn.js → .setup/target-ids-B-5aQxwn.mjs} +0 -0
  366. /package/dist/{thread-bindings-shared-CKnY4LSd.js → .setup/thread-bindings-shared-CKnY4LSd.mjs} +0 -0
  367. /package/dist/{timeout-abort-signal-DMrgRFIy.js → .setup/timeout-abort-signal-DMrgRFIy.mjs} +0 -0
  368. /package/dist/{url-validation-GRHde6lq.js → .setup/url-validation-GRHde6lq.mjs} +0 -0
@@ -0,0 +1,432 @@
1
+ import { a as resolveMatrixDefaultOrOnlyAccountId, n as requiresExplicitMatrixDefaultAccount, o as isRecord } from "./account-selection-BOQeTqax.mjs";
2
+ import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.mjs";
3
+ import { n as resolveMatrixAccountStorageRoot, s as resolveMatrixLegacyFlatStoragePaths } from "./storage-paths-BWo_ZEMC.mjs";
4
+ import { O as resolveMatrixSqliteStateEnv, b as scoreMatrixCryptoStateInStore, g as readMatrixIdbSnapshotJson, l as migrateLegacyMatrixRecoveryKeyFileToStore, n as MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME, r as MATRIX_RECOVERY_KEY_FILENAME, s as migrateLegacyMatrixLegacyCryptoMigrationFileToStore, t as MATRIX_IDB_SNAPSHOT_FILENAME, x as writeMatrixIdbSnapshotJson } from "./crypto-state-store-B43k3z3W.mjs";
5
+ import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
6
+ import fs from "node:fs";
7
+ import os from "node:os";
8
+ import path from "node:path";
9
+ import { loadJsonFile } from "openclaw/plugin-sdk/json-store";
10
+ //#region extensions/matrix/src/matrix/client/storage.ts
11
+ const DEFAULT_ACCOUNT_KEY = "default";
12
+ const STORAGE_META_FILENAME = "storage-meta.json";
13
+ const THREAD_BINDINGS_FILENAME = "thread-bindings.json";
14
+ const STORAGE_META_NAMESPACE = "storage-meta";
15
+ const STORAGE_META_STATE_KEY = "current";
16
+ const STORAGE_META_MAX_ENTRIES = 10;
17
+ function openMatrixStorageMetaStoreOptions(storageRootDir) {
18
+ return {
19
+ namespace: STORAGE_META_NAMESPACE,
20
+ maxEntries: STORAGE_META_MAX_ENTRIES,
21
+ env: resolveMatrixSqliteStateEnv({ stateDir: storageRootDir })
22
+ };
23
+ }
24
+ function openStorageMetaStore(rootDir) {
25
+ return getMatrixRuntime().state.openSyncKeyedStore(openMatrixStorageMetaStoreOptions(rootDir));
26
+ }
27
+ function resolveLegacyStoragePaths(env = process.env) {
28
+ const stateDir = getMatrixRuntime().state.resolveStateDir(env, os.homedir);
29
+ return resolveMatrixLegacyFlatStoragePaths(stateDir);
30
+ }
31
+ function assertLegacyMigrationAccountSelection(params) {
32
+ const cfg = getMatrixRuntime().config.current();
33
+ if (!cfg.channels?.matrix || typeof cfg.channels.matrix !== "object") return;
34
+ if (requiresExplicitMatrixDefaultAccount(cfg)) throw new Error("Legacy Matrix client storage cannot be migrated automatically because multiple Matrix accounts are configured and channels.matrix.defaultAccount is not set.");
35
+ const selectedAccountId = normalizeAccountId(resolveMatrixDefaultOrOnlyAccountId(cfg));
36
+ const currentAccountId = normalizeAccountId(params.accountKey);
37
+ if (selectedAccountId !== currentAccountId) throw new Error(`Legacy Matrix client storage targets account "${selectedAccountId}", but the current client is starting account "${currentAccountId}". Start the selected account first so flat legacy storage is not migrated into the wrong account directory.`);
38
+ }
39
+ function scoreStorageRoot(rootDir) {
40
+ let score = 0;
41
+ const metadata = readStoredRootMetadata(rootDir);
42
+ if (Object.keys(metadata).length > 0) score += 1;
43
+ if (metadata.currentTokenStateClaimed === true) score += 8;
44
+ if (fs.existsSync(path.join(rootDir, "crypto"))) score += 8;
45
+ if (fs.existsSync(path.join(rootDir, THREAD_BINDINGS_FILENAME))) score += 4;
46
+ if (fs.existsSync(path.join(rootDir, "legacy-crypto-migration.json"))) score += 3;
47
+ if (fs.existsSync(path.join(rootDir, "recovery-key.json"))) score += 2;
48
+ if (fs.existsSync(path.join(rootDir, "crypto-idb-snapshot.json"))) score += 2;
49
+ score += scoreMatrixCryptoStateInStore(rootDir);
50
+ return score;
51
+ }
52
+ function resolveStorageRootMtimeMs(rootDir) {
53
+ try {
54
+ return fs.statSync(rootDir).mtimeMs;
55
+ } catch {
56
+ return 0;
57
+ }
58
+ }
59
+ function normalizeMatrixStorageMetadata(value) {
60
+ if (!isRecord(value)) return null;
61
+ const metadata = {};
62
+ if (typeof value.homeserver === "string" && value.homeserver.trim()) metadata.homeserver = value.homeserver.trim();
63
+ if (typeof value.userId === "string" && value.userId.trim()) metadata.userId = value.userId.trim();
64
+ if (typeof value.accountId === "string" && value.accountId.trim()) metadata.accountId = value.accountId.trim();
65
+ if (typeof value.accessTokenHash === "string" && value.accessTokenHash.trim()) metadata.accessTokenHash = value.accessTokenHash.trim();
66
+ if (typeof value.deviceId === "string" && value.deviceId.trim()) metadata.deviceId = value.deviceId.trim();
67
+ if (value.currentTokenStateClaimed === true) metadata.currentTokenStateClaimed = true;
68
+ if (typeof value.createdAt === "string" && value.createdAt.trim()) metadata.createdAt = value.createdAt.trim();
69
+ return Object.keys(metadata).length > 0 ? metadata : null;
70
+ }
71
+ async function hasMatrixStorageMetaStateInStore(params) {
72
+ return normalizeMatrixStorageMetadata(await params.store.lookup(STORAGE_META_STATE_KEY)) !== null;
73
+ }
74
+ async function writeMatrixStorageMetaStateToStore(params) {
75
+ await params.store.register(STORAGE_META_STATE_KEY, params.payload);
76
+ }
77
+ function readStoredRootMetadata(rootDir) {
78
+ if (fs.existsSync(path.join(rootDir, "state", "openclaw.sqlite"))) try {
79
+ const stored = normalizeMatrixStorageMetadata(openStorageMetaStore(rootDir).lookup(STORAGE_META_STATE_KEY));
80
+ if (stored) return stored;
81
+ } catch {}
82
+ return normalizeMatrixStorageMetadata(loadJsonFile(path.join(rootDir, STORAGE_META_FILENAME))) ?? {};
83
+ }
84
+ function isCompatibleStorageRoot(params) {
85
+ const metadata = readStoredRootMetadata(params.candidateRootDir);
86
+ if (metadata.homeserver && metadata.homeserver !== params.homeserver) return false;
87
+ if (metadata.userId && metadata.userId !== params.userId) return false;
88
+ if (metadata.accountId && normalizeAccountId(metadata.accountId) !== normalizeAccountId(params.accountKey)) return false;
89
+ if (params.deviceId && metadata.deviceId && metadata.deviceId.trim() && metadata.deviceId.trim() !== params.deviceId.trim()) return false;
90
+ if (params.requireExplicitDeviceMatch && params.deviceId && (!metadata.deviceId || metadata.deviceId.trim() !== params.deviceId.trim())) return false;
91
+ return true;
92
+ }
93
+ function resolvePreferredMatrixStorageRoot(params) {
94
+ const parentDir = path.dirname(params.canonicalRootDir);
95
+ const bestCurrentScore = scoreStorageRoot(params.canonicalRootDir);
96
+ const bestCurrentMtimeMs = resolveStorageRootMtimeMs(params.canonicalRootDir);
97
+ let best = {
98
+ rootDir: params.canonicalRootDir,
99
+ tokenHash: params.canonicalTokenHash,
100
+ score: bestCurrentScore,
101
+ mtimeMs: bestCurrentMtimeMs
102
+ };
103
+ if (!params.deviceId?.trim()) return {
104
+ rootDir: best.rootDir,
105
+ tokenHash: best.tokenHash
106
+ };
107
+ let siblingEntries;
108
+ try {
109
+ siblingEntries = fs.readdirSync(parentDir, { withFileTypes: true });
110
+ } catch {
111
+ return {
112
+ rootDir: best.rootDir,
113
+ tokenHash: best.tokenHash
114
+ };
115
+ }
116
+ const compatiblePopulatedSiblings = [];
117
+ const populatedTokenHashes = bestCurrentScore > 0 ? [params.canonicalTokenHash] : [];
118
+ for (const entry of siblingEntries.toSorted((a, b) => a.name.localeCompare(b.name))) {
119
+ if (!entry.isDirectory()) continue;
120
+ if (entry.name === params.canonicalTokenHash) continue;
121
+ const candidateRootDir = path.join(parentDir, entry.name);
122
+ if (!isCompatibleStorageRoot({
123
+ candidateRootDir,
124
+ homeserver: params.homeserver,
125
+ userId: params.userId,
126
+ accountKey: params.accountKey,
127
+ deviceId: params.deviceId,
128
+ requireExplicitDeviceMatch: Boolean(params.deviceId)
129
+ })) continue;
130
+ const candidateScore = scoreStorageRoot(candidateRootDir);
131
+ if (candidateScore <= 0) continue;
132
+ populatedTokenHashes.push(entry.name);
133
+ compatiblePopulatedSiblings.push({
134
+ rootDir: candidateRootDir,
135
+ tokenHash: entry.name,
136
+ score: candidateScore,
137
+ mtimeMs: resolveStorageRootMtimeMs(candidateRootDir)
138
+ });
139
+ }
140
+ const canonicalMetadata = readStoredRootMetadata(params.canonicalRootDir);
141
+ if (!(canonicalMetadata.accessTokenHash === params.canonicalTokenHash && canonicalMetadata.deviceId?.trim() === params.deviceId.trim() && canonicalMetadata.currentTokenStateClaimed === true)) {
142
+ for (const candidate of compatiblePopulatedSiblings) if (candidate.score > best.score || best.rootDir !== params.canonicalRootDir && candidate.score === best.score && candidate.mtimeMs > best.mtimeMs) best = {
143
+ rootDir: candidate.rootDir,
144
+ tokenHash: candidate.tokenHash,
145
+ score: candidate.score,
146
+ mtimeMs: candidate.mtimeMs
147
+ };
148
+ }
149
+ if (populatedTokenHashes.length > 1) getMatrixRuntime().logging.getChildLogger({ module: "matrix-storage" }).warn("matrix: multiple populated token-hash storage roots detected", {
150
+ parentDir,
151
+ canonicalTokenHash: params.canonicalTokenHash,
152
+ selectedTokenHash: best.tokenHash,
153
+ populatedTokenHashes,
154
+ populatedSiblingTokenHashes: compatiblePopulatedSiblings.map((root) => root.tokenHash),
155
+ populatedRootCount: populatedTokenHashes.length
156
+ });
157
+ return {
158
+ rootDir: best.rootDir,
159
+ tokenHash: best.tokenHash
160
+ };
161
+ }
162
+ function resolveMatrixStoragePaths(params) {
163
+ const env = params.env ?? process.env;
164
+ const stateDir = params.stateDir ?? getMatrixRuntime().state.resolveStateDir(env, os.homedir);
165
+ const canonical = resolveMatrixAccountStorageRoot({
166
+ stateDir,
167
+ homeserver: params.homeserver,
168
+ userId: params.userId,
169
+ accessToken: params.accessToken,
170
+ accountId: params.accountId
171
+ });
172
+ const { rootDir, tokenHash } = resolvePreferredMatrixStorageRoot({
173
+ canonicalRootDir: canonical.rootDir,
174
+ canonicalTokenHash: canonical.tokenHash,
175
+ homeserver: params.homeserver,
176
+ userId: params.userId,
177
+ accountKey: canonical.accountKey,
178
+ deviceId: params.deviceId
179
+ });
180
+ return {
181
+ rootDir,
182
+ storagePath: path.join(rootDir, "bot-storage.json"),
183
+ cryptoPath: path.join(rootDir, "crypto"),
184
+ recoveryKeyPath: path.join(rootDir, MATRIX_RECOVERY_KEY_FILENAME),
185
+ idbSnapshotPath: path.join(rootDir, MATRIX_IDB_SNAPSHOT_FILENAME),
186
+ accountKey: canonical.accountKey,
187
+ tokenHash
188
+ };
189
+ }
190
+ function resolveMatrixStateFilePath(params) {
191
+ const storagePaths = resolveMatrixStoragePaths({
192
+ homeserver: params.auth.homeserver,
193
+ userId: params.auth.userId,
194
+ accessToken: params.auth.accessToken,
195
+ accountId: params.accountId ?? params.auth.accountId,
196
+ deviceId: params.auth.deviceId,
197
+ env: params.env,
198
+ stateDir: params.stateDir
199
+ });
200
+ return path.join(storagePaths.rootDir, params.filename);
201
+ }
202
+ async function maybeMigrateLegacyStorage(params) {
203
+ const legacy = resolveLegacyStoragePaths(params.env);
204
+ const hasFlatLegacyStorageFile = fs.existsSync(legacy.storagePath);
205
+ const hasAccountScopedLegacyStorageFile = fs.existsSync(params.storagePaths.storagePath);
206
+ const syncCache = hasFlatLegacyStorageFile || hasAccountScopedLegacyStorageFile ? await import("./file-sync-store-DU0cnYAz.mjs").then((n) => n.n) : null;
207
+ const hasFlatLegacyStorage = hasFlatLegacyStorageFile && await syncCache?.readLegacyMatrixSyncCacheState(legacy.rootDir) !== null;
208
+ const hasAccountScopedLegacyStorage = hasAccountScopedLegacyStorageFile && await syncCache?.readLegacyMatrixSyncCacheState(params.storagePaths.rootDir) !== null;
209
+ const hasLegacyCrypto = fs.existsSync(legacy.cryptoPath);
210
+ const hasAccountScopedRecoveryKey = fs.existsSync(params.storagePaths.recoveryKeyPath);
211
+ const hasAccountScopedIdbSnapshot = fs.existsSync(params.storagePaths.idbSnapshotPath);
212
+ const hasAccountScopedLegacyCryptoMigration = fs.existsSync(path.join(params.storagePaths.rootDir, MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME));
213
+ if (!hasFlatLegacyStorage && !hasAccountScopedLegacyStorage && !hasLegacyCrypto && !hasAccountScopedRecoveryKey && !hasAccountScopedIdbSnapshot && !hasAccountScopedLegacyCryptoMigration) return;
214
+ const hasTargetCrypto = fs.existsSync(params.storagePaths.cryptoPath);
215
+ const shouldMigrateCrypto = hasLegacyCrypto && !hasTargetCrypto;
216
+ if (!hasFlatLegacyStorage && !hasAccountScopedLegacyStorage && !shouldMigrateCrypto && !hasAccountScopedRecoveryKey && !hasAccountScopedIdbSnapshot && !hasAccountScopedLegacyCryptoMigration) return;
217
+ if (hasFlatLegacyStorage || hasLegacyCrypto) assertLegacyMigrationAccountSelection({ accountKey: params.storagePaths.accountKey });
218
+ const logger = getMatrixRuntime().logging.getChildLogger({ module: "matrix-storage" });
219
+ const { maybeCreateMatrixMigrationSnapshot } = await import("./migration-snapshot.runtime-O8qkMVaC.mjs");
220
+ await maybeCreateMatrixMigrationSnapshot({
221
+ trigger: "matrix-client-fallback",
222
+ env: params.env,
223
+ log: logger
224
+ });
225
+ fs.mkdirSync(params.storagePaths.rootDir, { recursive: true });
226
+ const moved = [];
227
+ const pendingArchives = [];
228
+ const skippedExistingTargets = [];
229
+ try {
230
+ if (hasAccountScopedLegacyStorage) await migrateLegacySyncCacheToSqlite({
231
+ sourceRootDir: params.storagePaths.rootDir,
232
+ sourcePath: params.storagePaths.storagePath,
233
+ targetRootDir: params.storagePaths.rootDir,
234
+ label: "account sync cache",
235
+ moved,
236
+ pendingArchives
237
+ });
238
+ if (hasFlatLegacyStorage) await migrateLegacySyncCacheToSqlite({
239
+ sourceRootDir: legacy.rootDir,
240
+ sourcePath: legacy.storagePath,
241
+ targetRootDir: params.storagePaths.rootDir,
242
+ label: "flat sync cache",
243
+ moved,
244
+ pendingArchives
245
+ });
246
+ if (shouldMigrateCrypto) moveLegacyStoragePathOrThrow({
247
+ sourcePath: legacy.cryptoPath,
248
+ targetPath: params.storagePaths.cryptoPath,
249
+ label: "crypto store",
250
+ moved
251
+ });
252
+ else if (hasLegacyCrypto) skippedExistingTargets.push(`- crypto store remains at ${legacy.cryptoPath} because ${params.storagePaths.cryptoPath} already exists`);
253
+ if (hasAccountScopedRecoveryKey) {
254
+ migrateLegacyMatrixRecoveryKeyFileToStore(params.storagePaths.rootDir);
255
+ moved.push({
256
+ sourcePath: params.storagePaths.recoveryKeyPath,
257
+ targetPath: `${params.storagePaths.rootDir} SQLite recovery key state`,
258
+ label: "recovery key"
259
+ });
260
+ }
261
+ if (hasAccountScopedLegacyCryptoMigration) {
262
+ migrateLegacyMatrixLegacyCryptoMigrationFileToStore(params.storagePaths.rootDir);
263
+ moved.push({
264
+ sourcePath: path.join(params.storagePaths.rootDir, MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME),
265
+ targetPath: `${params.storagePaths.rootDir} SQLite legacy crypto migration state`,
266
+ label: "legacy crypto migration"
267
+ });
268
+ }
269
+ if (hasAccountScopedIdbSnapshot) await migrateLegacyIdbSnapshotToSqlite({
270
+ storageRootDir: params.storagePaths.rootDir,
271
+ snapshotPath: params.storagePaths.idbSnapshotPath,
272
+ moved,
273
+ pendingArchives
274
+ });
275
+ } catch (err) {
276
+ const rollbackError = rollbackLegacyMoves(moved);
277
+ throw new Error(rollbackError ? `Failed migrating legacy Matrix client storage: ${String(err)}. Rollback also failed: ${rollbackError}` : `Failed migrating legacy Matrix client storage: ${String(err)}`, { cause: err });
278
+ }
279
+ for (const archive of pendingArchives) archiveLegacyStoragePath({
280
+ ...archive,
281
+ skippedExistingTargets
282
+ });
283
+ if (moved.length > 0) logger.info(`matrix: migrated legacy client storage into ${params.storagePaths.rootDir}\n${moved.map((entry) => `- ${entry.label}: ${entry.sourcePath} -> ${entry.targetPath}`).join("\n")}`);
284
+ if (skippedExistingTargets.length > 0) logger.warn?.(`matrix: legacy client storage still exists in the flat path because some account-scoped targets already existed.\n${skippedExistingTargets.join("\n")}`);
285
+ }
286
+ async function migrateLegacyIdbSnapshotToSqlite(params) {
287
+ if (readMatrixIdbSnapshotJson(params.storageRootDir)) {
288
+ params.pendingArchives.push({
289
+ sourcePath: params.snapshotPath,
290
+ label: "IndexedDB snapshot"
291
+ });
292
+ return;
293
+ }
294
+ const { readLegacyMatrixIdbSnapshotState } = await import("./idb-persistence-_HKTXkVC.mjs").then((n) => n.t);
295
+ const snapshot = await readLegacyMatrixIdbSnapshotState(params.storageRootDir);
296
+ if (!snapshot) return;
297
+ writeMatrixIdbSnapshotJson({
298
+ storageRootDir: params.storageRootDir,
299
+ snapshotJson: JSON.stringify(snapshot),
300
+ databaseCount: snapshot.length
301
+ });
302
+ params.moved.push({
303
+ sourcePath: params.snapshotPath,
304
+ targetPath: `${params.storageRootDir} SQLite IndexedDB snapshot state`,
305
+ label: "IndexedDB snapshot"
306
+ });
307
+ params.pendingArchives.push({
308
+ sourcePath: params.snapshotPath,
309
+ label: "IndexedDB snapshot"
310
+ });
311
+ }
312
+ async function migrateLegacySyncCacheToSqlite(params) {
313
+ const syncCache = await import("./file-sync-store-DU0cnYAz.mjs").then((n) => n.n);
314
+ const persisted = await syncCache.readLegacyMatrixSyncCacheState(params.sourceRootDir);
315
+ if (!persisted) return;
316
+ const store = getMatrixRuntime().state.openKeyedStore(syncCache.openMatrixSyncCacheStoreOptions(params.targetRootDir));
317
+ if (!await syncCache.hasMatrixSyncCacheStateInStore({
318
+ storageRootDir: params.targetRootDir,
319
+ store
320
+ })) {
321
+ await syncCache.writeMatrixSyncCacheStateToStore({
322
+ storageRootDir: params.targetRootDir,
323
+ payload: persisted,
324
+ store
325
+ });
326
+ claimCurrentTokenStorageState({ rootDir: params.targetRootDir });
327
+ params.moved.push({
328
+ sourcePath: params.sourcePath,
329
+ targetPath: `${params.targetRootDir} SQLite sync cache`,
330
+ label: params.label
331
+ });
332
+ }
333
+ params.pendingArchives.push({
334
+ sourcePath: params.sourcePath,
335
+ label: params.label
336
+ });
337
+ }
338
+ function archiveLegacyStoragePath(params) {
339
+ const archivedLegacyStoragePath = `${params.sourcePath}.migrated`;
340
+ if (fs.existsSync(archivedLegacyStoragePath)) {
341
+ params.skippedExistingTargets.push(`- ${params.label} remains at ${params.sourcePath} because ${archivedLegacyStoragePath} already exists`);
342
+ return;
343
+ }
344
+ fs.renameSync(params.sourcePath, archivedLegacyStoragePath);
345
+ }
346
+ function moveLegacyStoragePathOrThrow(params) {
347
+ if (!fs.existsSync(params.sourcePath)) return;
348
+ if (fs.existsSync(params.targetPath)) throw new Error(`legacy Matrix ${params.label} target already exists (${params.targetPath}); refusing to overwrite it automatically`);
349
+ fs.renameSync(params.sourcePath, params.targetPath);
350
+ params.moved.push({
351
+ sourcePath: params.sourcePath,
352
+ targetPath: params.targetPath,
353
+ label: params.label
354
+ });
355
+ }
356
+ function rollbackLegacyMoves(moved) {
357
+ for (const entry of moved.toReversed()) try {
358
+ if (!fs.existsSync(entry.targetPath) || fs.existsSync(entry.sourcePath)) continue;
359
+ fs.renameSync(entry.targetPath, entry.sourcePath);
360
+ } catch (err) {
361
+ return `${entry.label} (${entry.targetPath} -> ${entry.sourcePath}): ${String(err)}`;
362
+ }
363
+ return null;
364
+ }
365
+ function writeStoredRootMetadata(rootDir, payload) {
366
+ try {
367
+ const normalized = normalizeMatrixStorageMetadata(payload);
368
+ if (!normalized) return false;
369
+ openStorageMetaStore(rootDir).register(STORAGE_META_STATE_KEY, normalized);
370
+ return true;
371
+ } catch {
372
+ return false;
373
+ }
374
+ }
375
+ function writeStorageMeta(params) {
376
+ const existing = readStoredRootMetadata(params.storagePaths.rootDir);
377
+ return writeStoredRootMetadata(params.storagePaths.rootDir, {
378
+ homeserver: params.homeserver,
379
+ userId: params.userId,
380
+ accountId: params.accountId ?? DEFAULT_ACCOUNT_KEY,
381
+ accessTokenHash: params.storagePaths.tokenHash,
382
+ deviceId: params.deviceId ?? null,
383
+ currentTokenStateClaimed: params.currentTokenStateClaimed ?? existing.currentTokenStateClaimed === true,
384
+ createdAt: existing.createdAt ?? (/* @__PURE__ */ new Date()).toISOString()
385
+ });
386
+ }
387
+ function claimCurrentTokenStorageState(params) {
388
+ const metadata = readStoredRootMetadata(params.rootDir);
389
+ if (!metadata.accessTokenHash?.trim()) return false;
390
+ return writeStoredRootMetadata(params.rootDir, {
391
+ homeserver: metadata.homeserver,
392
+ userId: metadata.userId,
393
+ accountId: metadata.accountId ?? DEFAULT_ACCOUNT_KEY,
394
+ accessTokenHash: metadata.accessTokenHash,
395
+ deviceId: metadata.deviceId ?? null,
396
+ currentTokenStateClaimed: true,
397
+ createdAt: metadata.createdAt ?? (/* @__PURE__ */ new Date()).toISOString()
398
+ });
399
+ }
400
+ function recordCurrentStorageMetaDeviceId(params) {
401
+ const deviceId = params.deviceId.trim();
402
+ if (!deviceId) return false;
403
+ const metadata = readStoredRootMetadata(params.rootDir);
404
+ if (!metadata.accessTokenHash?.trim()) return false;
405
+ return writeStoredRootMetadata(params.rootDir, {
406
+ homeserver: metadata.homeserver,
407
+ userId: metadata.userId,
408
+ accountId: metadata.accountId ?? DEFAULT_ACCOUNT_KEY,
409
+ accessTokenHash: metadata.accessTokenHash,
410
+ deviceId,
411
+ currentTokenStateClaimed: metadata.currentTokenStateClaimed === true,
412
+ createdAt: metadata.createdAt ?? (/* @__PURE__ */ new Date()).toISOString()
413
+ });
414
+ }
415
+ function repairCurrentTokenStorageMetaDeviceId(params) {
416
+ return writeStorageMeta({
417
+ storagePaths: resolveMatrixStoragePaths({
418
+ homeserver: params.homeserver,
419
+ userId: params.userId,
420
+ accessToken: params.accessToken,
421
+ accountId: params.accountId,
422
+ env: params.env,
423
+ stateDir: params.stateDir
424
+ }),
425
+ homeserver: params.homeserver,
426
+ userId: params.userId,
427
+ accountId: params.accountId,
428
+ deviceId: params.deviceId
429
+ });
430
+ }
431
+ //#endregion
432
+ export { openMatrixStorageMetaStoreOptions as a, resolveMatrixStateFilePath as c, writeStorageMeta as d, normalizeMatrixStorageMetadata as i, resolveMatrixStoragePaths as l, hasMatrixStorageMetaStateInStore as n, recordCurrentStorageMetaDeviceId as o, maybeMigrateLegacyStorage as r, repairCurrentTokenStorageMetaDeviceId as s, claimCurrentTokenStorageState as t, writeMatrixStorageMetaStateToStore as u };
@@ -1,7 +1,7 @@
1
1
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
2
2
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
3
- import crypto from "node:crypto";
4
3
  import path from "node:path";
4
+ import crypto from "node:crypto";
5
5
  //#region extensions/matrix/src/storage-paths.ts
6
6
  function sanitizeMatrixPathSegment(value) {
7
7
  return normalizeLowercaseStringOrEmpty(value).replace(/[^a-z0-9._-]+/g, "_").replace(/^_+|_+$/g, "") || "unknown";
@@ -26,6 +26,17 @@ function resolveMatrixCredentialsDir(stateDir) {
26
26
  function resolveMatrixCredentialsPath(params) {
27
27
  return path.join(resolveMatrixCredentialsDir(params.stateDir), resolveMatrixCredentialsFilename(params.accountId));
28
28
  }
29
+ function resolveMatrixLegacyFlatStoreRoot(stateDir) {
30
+ return path.join(stateDir, "matrix");
31
+ }
32
+ function resolveMatrixLegacyFlatStoragePaths(stateDir) {
33
+ const rootDir = resolveMatrixLegacyFlatStoreRoot(stateDir);
34
+ return {
35
+ rootDir,
36
+ storagePath: path.join(rootDir, "bot-storage.json"),
37
+ cryptoPath: path.join(rootDir, "crypto")
38
+ };
39
+ }
29
40
  function resolveMatrixAccountStorageRoot(params) {
30
41
  const accountKey = sanitizeMatrixPathSegment(params.accountId ?? DEFAULT_ACCOUNT_ID);
31
42
  const userKey = sanitizeMatrixPathSegment(params.userId);
@@ -38,4 +49,4 @@ function resolveMatrixAccountStorageRoot(params) {
38
49
  };
39
50
  }
40
51
  //#endregion
41
- export { resolveMatrixCredentialsPath as a, resolveMatrixCredentialsFilename as i, resolveMatrixAccountStorageRoot as n, resolveMatrixHomeserverKey as o, resolveMatrixCredentialsDir as r, sanitizeMatrixPathSegment as s, hashMatrixAccessToken as t };
52
+ export { resolveMatrixCredentialsPath as a, resolveMatrixLegacyFlatStoreRoot as c, resolveMatrixCredentialsFilename as i, sanitizeMatrixPathSegment as l, resolveMatrixAccountStorageRoot as n, resolveMatrixHomeserverKey as o, resolveMatrixCredentialsDir as r, resolveMatrixLegacyFlatStoragePaths as s, hashMatrixAccessToken as t };
@@ -1,5 +1,5 @@
1
- import { a as resolveMatrixTargetIdentity } from "./target-ids-B-5aQxwn.js";
2
- import { a as listBindingsForAccount, c as resolveBindingKey, i as listAllBindings, n as getMatrixThreadBindingManager, o as removeBindingRecord } from "./thread-bindings-shared-CKnY4LSd.js";
1
+ import { a as resolveMatrixTargetIdentity } from "./target-ids-B-5aQxwn.mjs";
2
+ import { a as listBindingsForAccount, c as resolveBindingKey, i as listAllBindings, n as getMatrixThreadBindingManager, o as removeBindingRecord } from "./thread-bindings-shared-CKnY4LSd.mjs";
3
3
  import { formatThreadBindingDisabledError, formatThreadBindingSpawnDisabledError, resolveThreadBindingSpawnPolicy } from "openclaw/plugin-sdk/conversation-runtime";
4
4
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
@@ -1,4 +1,4 @@
1
- import { a as resolveMatrixTargetIdentity } from "./target-ids-B-5aQxwn.js";
1
+ import { a as resolveMatrixTargetIdentity } from "./target-ids-B-5aQxwn.mjs";
2
2
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  //#region extensions/matrix/src/thread-binding-api.ts
4
4
  const defaultTopLevelPlacement = "child";
@@ -1,14 +1,14 @@
1
- import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
- import { a as listBindingsForAccount, c as resolveBindingKey, f as setMatrixThreadBindingManagerEntry, h as toSessionBindingRecord, l as resolveEffectiveBindingExpiry, m as toMatrixBindingTargetKind, o as removeBindingRecord, r as getMatrixThreadBindingManagerEntry, t as deleteMatrixThreadBindingManagerEntry, u as setBindingRecord } from "./thread-bindings-shared-CKnY4LSd.js";
3
- import { M as resolveMatrixSqliteStateEnv, N as resolveMatrixSqliteStateKey, c as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-BvAkgzvT.js";
4
- import { r as sendMessageMatrix } from "./send-BldGYG8g.js";
1
+ import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.mjs";
2
+ import { a as listBindingsForAccount, c as resolveBindingKey, f as setMatrixThreadBindingManagerEntry, h as toSessionBindingRecord, l as resolveEffectiveBindingExpiry, m as toMatrixBindingTargetKind, o as removeBindingRecord, r as getMatrixThreadBindingManagerEntry, t as deleteMatrixThreadBindingManagerEntry, u as setBindingRecord } from "./thread-bindings-shared-CKnY4LSd.mjs";
3
+ import { O as resolveMatrixSqliteStateEnv, k as resolveMatrixSqliteStateKey } from "./crypto-state-store-B43k3z3W.mjs";
4
+ import { c as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-NGZq5zet.mjs";
5
+ import { a as sendMessageMatrix } from "./send-CGgl0uTn.mjs";
5
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
- import { createHash } from "node:crypto";
7
7
  import path from "node:path";
8
+ import { createHash } from "node:crypto";
8
9
  import { registerSessionBindingAdapter, resolveThreadBindingFarewellText, unregisterSessionBindingAdapter } from "openclaw/plugin-sdk/thread-bindings-session-runtime";
9
- import fs from "node:fs/promises";
10
- import { resolveDefaultAgentId } from "openclaw/plugin-sdk/agent-runtime";
11
10
  import { readJsonFileWithFallback } from "openclaw/plugin-sdk/json-store";
11
+ import fs from "node:fs/promises";
12
12
  import { resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
13
13
  //#region extensions/matrix/src/matrix/thread-bindings.ts
14
14
  const STORE_VERSION = 1;
@@ -354,7 +354,7 @@ async function createMatrixThreadBindingManager(params) {
354
354
  ...boundParentConversationId ? { parentConversationId: boundParentConversationId } : {},
355
355
  targetKind: toMatrixBindingTargetKind(input.targetKind),
356
356
  targetSessionKey,
357
- agentId: normalizeOptionalString(input.metadata?.agentId) || resolveAgentIdFromSessionKey(targetSessionKey, resolveDefaultAgentId(params.cfg)),
357
+ agentId: normalizeOptionalString(input.metadata?.agentId) || resolveAgentIdFromSessionKey(targetSessionKey),
358
358
  label: normalizeOptionalString(input.metadata?.label) || void 0,
359
359
  boundBy: normalizeOptionalString(input.metadata?.boundBy) || "system",
360
360
  boundAt: now,