@archipelagolab/lobi 1.0.6 → 1.0.7

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 (1533) hide show
  1. package/CHANGELOG.md +164 -0
  2. package/SPEC-SUPPORT.md +116 -0
  3. package/api.ts +18 -0
  4. package/auth-presence.ts +56 -0
  5. package/channel-plugin-api.ts +3 -0
  6. package/cli-metadata.ts +11 -0
  7. package/contract-api.ts +17 -0
  8. package/helper-api.ts +3 -0
  9. package/index.test.ts +61 -0
  10. package/index.ts +51 -0
  11. package/openclaw.plugin.json +10 -10
  12. package/package.json +13 -19
  13. package/plugin-entry.handlers.runtime.ts +1 -0
  14. package/runtime-api.ts +54 -0
  15. package/runtime-heavy-api.ts +1 -0
  16. package/secret-contract-api.ts +5 -0
  17. package/setup-entry.ts +13 -0
  18. package/src/account-selection.test.ts +124 -0
  19. package/src/account-selection.ts +220 -0
  20. package/src/actions.account-propagation.test.ts +251 -0
  21. package/src/actions.test.ts +251 -0
  22. package/src/actions.ts +336 -0
  23. package/src/approval-auth.test.ts +23 -0
  24. package/src/approval-auth.ts +25 -0
  25. package/src/approval-handler.runtime.test.ts +46 -0
  26. package/src/approval-handler.runtime.ts +400 -0
  27. package/src/approval-ids.ts +6 -0
  28. package/src/approval-native.test.ts +329 -0
  29. package/src/approval-native.ts +336 -0
  30. package/src/approval-reactions.test.ts +107 -0
  31. package/src/approval-reactions.ts +158 -0
  32. package/src/auth-precedence.ts +61 -0
  33. package/src/channel-account-paths.ts +92 -0
  34. package/src/channel.account-paths.test.ts +102 -0
  35. package/src/channel.directory.test.ts +601 -0
  36. package/src/channel.resolve.test.ts +38 -0
  37. package/src/channel.runtime.ts +16 -0
  38. package/src/channel.setup.test.ts +269 -0
  39. package/src/channel.ts +570 -0
  40. package/src/cli-metadata.ts +19 -0
  41. package/src/cli.test.ts +1015 -0
  42. package/src/cli.ts +1198 -0
  43. package/src/config-adapter.ts +41 -0
  44. package/src/config-schema.test.ts +90 -0
  45. package/src/config-schema.ts +114 -0
  46. package/src/directory-live.test.ts +200 -0
  47. package/src/directory-live.ts +238 -0
  48. package/src/doctor-contract.ts +287 -0
  49. package/src/doctor.test.ts +440 -0
  50. package/src/doctor.ts +262 -0
  51. package/src/env-vars.ts +92 -0
  52. package/src/exec-approval-resolver.test.ts +68 -0
  53. package/src/exec-approval-resolver.ts +23 -0
  54. package/src/exec-approvals.test.ts +483 -0
  55. package/src/exec-approvals.ts +290 -0
  56. package/src/group-mentions.ts +41 -0
  57. package/src/legacy-crypto-inspector-availability.test.ts +81 -0
  58. package/src/legacy-crypto-inspector-availability.ts +60 -0
  59. package/src/legacy-crypto.test.ts +234 -0
  60. package/src/legacy-crypto.ts +549 -0
  61. package/src/legacy-state.test.ts +86 -0
  62. package/src/legacy-state.ts +156 -0
  63. package/src/matrix/account-config.ts +150 -0
  64. package/src/matrix/accounts.readiness.test.ts +27 -0
  65. package/src/matrix/accounts.test.ts +757 -0
  66. package/src/matrix/accounts.ts +194 -0
  67. package/src/matrix/actions/client.test.ts +215 -0
  68. package/src/matrix/actions/client.ts +31 -0
  69. package/src/matrix/actions/devices.test.ts +114 -0
  70. package/src/matrix/actions/devices.ts +34 -0
  71. package/src/matrix/actions/limits.test.ts +15 -0
  72. package/src/matrix/actions/limits.ts +6 -0
  73. package/src/matrix/actions/messages.test.ts +289 -0
  74. package/src/matrix/actions/messages.ts +123 -0
  75. package/src/matrix/actions/pins.test.ts +74 -0
  76. package/src/matrix/actions/pins.ts +64 -0
  77. package/src/matrix/actions/polls.test.ts +71 -0
  78. package/src/matrix/actions/polls.ts +109 -0
  79. package/src/matrix/actions/profile.test.ts +109 -0
  80. package/src/matrix/actions/profile.ts +37 -0
  81. package/src/matrix/actions/reactions.test.ts +135 -0
  82. package/src/matrix/actions/reactions.ts +59 -0
  83. package/src/matrix/actions/room.test.ts +79 -0
  84. package/src/matrix/actions/room.ts +71 -0
  85. package/src/matrix/actions/summary.test.ts +87 -0
  86. package/src/matrix/actions/summary.ts +88 -0
  87. package/src/matrix/actions/types.ts +82 -0
  88. package/src/matrix/actions/verification.test.ts +105 -0
  89. package/src/matrix/actions/verification.ts +237 -0
  90. package/src/matrix/actions.ts +37 -0
  91. package/src/matrix/active-client.ts +26 -0
  92. package/src/matrix/async-lock.ts +18 -0
  93. package/src/matrix/backup-health.ts +115 -0
  94. package/src/matrix/client/config-runtime-api.ts +14 -0
  95. package/src/matrix/client/config-secret-input.runtime.ts +1 -0
  96. package/src/matrix/client/config.ts +979 -0
  97. package/src/matrix/client/create-client.test.ts +115 -0
  98. package/src/matrix/client/create-client.ts +101 -0
  99. package/src/matrix/client/env-auth.ts +6 -0
  100. package/src/matrix/client/file-sync-store.test.ts +265 -0
  101. package/src/matrix/client/file-sync-store.ts +289 -0
  102. package/src/matrix/client/logging.ts +123 -0
  103. package/src/matrix/client/migration-snapshot.runtime.ts +1 -0
  104. package/src/matrix/client/private-network-host.ts +56 -0
  105. package/src/matrix/client/runtime.ts +4 -0
  106. package/src/matrix/client/shared.test.ts +344 -0
  107. package/src/matrix/client/shared.ts +306 -0
  108. package/src/matrix/client/storage.test.ts +634 -0
  109. package/src/matrix/client/storage.ts +544 -0
  110. package/src/matrix/client/types.ts +50 -0
  111. package/src/matrix/client-bootstrap.test.ts +84 -0
  112. package/src/matrix/client-bootstrap.ts +164 -0
  113. package/src/matrix/client-resolver.test-helpers.ts +147 -0
  114. package/src/matrix/client.test.ts +1521 -0
  115. package/src/matrix/client.ts +23 -0
  116. package/src/matrix/config-paths.ts +31 -0
  117. package/src/matrix/config-update.test.ts +237 -0
  118. package/src/matrix/config-update.ts +291 -0
  119. package/src/matrix/credentials-read.ts +206 -0
  120. package/src/matrix/credentials-write.runtime.ts +26 -0
  121. package/src/matrix/credentials.test.ts +501 -0
  122. package/src/matrix/credentials.ts +95 -0
  123. package/src/matrix/deps.test.ts +74 -0
  124. package/src/matrix/deps.ts +225 -0
  125. package/src/matrix/device-health.test.ts +45 -0
  126. package/src/matrix/device-health.ts +31 -0
  127. package/src/matrix/direct-management.test.ts +350 -0
  128. package/src/matrix/direct-management.ts +347 -0
  129. package/src/matrix/direct-room.test.ts +61 -0
  130. package/src/matrix/direct-room.ts +128 -0
  131. package/src/matrix/draft-stream.test.ts +406 -0
  132. package/src/matrix/draft-stream.ts +216 -0
  133. package/src/matrix/encryption-guidance.ts +27 -0
  134. package/src/matrix/errors.ts +21 -0
  135. package/src/matrix/format.test.ts +340 -0
  136. package/src/matrix/format.ts +428 -0
  137. package/src/matrix/legacy-crypto-inspector.ts +95 -0
  138. package/src/matrix/media-errors.ts +20 -0
  139. package/src/matrix/media-text.ts +169 -0
  140. package/src/matrix/monitor/access-state.test.ts +45 -0
  141. package/src/matrix/monitor/access-state.ts +77 -0
  142. package/src/matrix/monitor/ack-config.test.ts +57 -0
  143. package/src/matrix/monitor/ack-config.ts +26 -0
  144. package/src/matrix/monitor/allowlist.test.ts +45 -0
  145. package/src/matrix/monitor/allowlist.ts +94 -0
  146. package/src/matrix/monitor/auto-join.test.ts +203 -0
  147. package/src/matrix/monitor/auto-join.ts +86 -0
  148. package/src/matrix/monitor/config.test.ts +197 -0
  149. package/src/matrix/monitor/config.ts +303 -0
  150. package/src/matrix/monitor/context-summary.ts +43 -0
  151. package/src/matrix/monitor/direct.test.ts +529 -0
  152. package/src/matrix/monitor/direct.ts +270 -0
  153. package/src/matrix/monitor/events.test.ts +1524 -0
  154. package/src/matrix/monitor/events.ts +213 -0
  155. package/src/matrix/monitor/handler.body-for-agent.test.ts +396 -0
  156. package/src/matrix/monitor/handler.group-history.test.ts +648 -0
  157. package/src/matrix/monitor/handler.media-failure.test.ts +267 -0
  158. package/src/matrix/monitor/handler.test-helpers.ts +308 -0
  159. package/src/matrix/monitor/handler.test.ts +2952 -0
  160. package/src/matrix/monitor/handler.thread-root-media.test.ts +82 -0
  161. package/src/matrix/monitor/handler.ts +1679 -0
  162. package/src/matrix/monitor/inbound-dedupe.test.ts +146 -0
  163. package/src/matrix/monitor/inbound-dedupe.ts +267 -0
  164. package/src/matrix/monitor/index.test.ts +920 -0
  165. package/src/matrix/monitor/index.ts +434 -0
  166. package/src/matrix/monitor/legacy-crypto-restore.test.ts +206 -0
  167. package/src/matrix/monitor/legacy-crypto-restore.ts +139 -0
  168. package/src/matrix/monitor/location.ts +100 -0
  169. package/src/matrix/monitor/media.test.ts +159 -0
  170. package/src/matrix/monitor/media.ts +119 -0
  171. package/src/matrix/monitor/mentions.test.ts +289 -0
  172. package/src/matrix/monitor/mentions.ts +177 -0
  173. package/src/matrix/monitor/reaction-events.test.ts +326 -0
  174. package/src/matrix/monitor/reaction-events.ts +187 -0
  175. package/src/matrix/monitor/recent-invite.test.ts +92 -0
  176. package/src/matrix/monitor/recent-invite.ts +30 -0
  177. package/src/matrix/monitor/replies.test.ts +265 -0
  178. package/src/matrix/monitor/replies.ts +136 -0
  179. package/src/matrix/monitor/reply-context.test.ts +276 -0
  180. package/src/matrix/monitor/reply-context.ts +92 -0
  181. package/src/matrix/monitor/room-history.test.ts +258 -0
  182. package/src/matrix/monitor/room-history.ts +301 -0
  183. package/src/matrix/monitor/room-info.test.ts +201 -0
  184. package/src/matrix/monitor/room-info.ts +126 -0
  185. package/src/matrix/monitor/rooms.test.ts +121 -0
  186. package/src/matrix/monitor/rooms.ts +52 -0
  187. package/src/matrix/monitor/route.test.ts +255 -0
  188. package/src/matrix/monitor/route.ts +178 -0
  189. package/src/matrix/monitor/runtime-api.ts +31 -0
  190. package/src/matrix/monitor/startup-verification.test.ts +294 -0
  191. package/src/matrix/monitor/startup-verification.ts +237 -0
  192. package/src/matrix/monitor/startup.test.ts +257 -0
  193. package/src/matrix/monitor/startup.ts +218 -0
  194. package/src/matrix/monitor/status.ts +111 -0
  195. package/src/matrix/monitor/sync-lifecycle.test.ts +224 -0
  196. package/src/matrix/monitor/sync-lifecycle.ts +91 -0
  197. package/src/matrix/monitor/task-runner.ts +38 -0
  198. package/src/matrix/monitor/thread-context.test.ts +149 -0
  199. package/src/matrix/monitor/thread-context.ts +108 -0
  200. package/src/matrix/monitor/threads.test.ts +68 -0
  201. package/src/matrix/monitor/threads.ts +85 -0
  202. package/src/matrix/monitor/types.ts +30 -0
  203. package/src/matrix/monitor/verification-events.ts +627 -0
  204. package/src/matrix/monitor/verification-utils.test.ts +47 -0
  205. package/src/matrix/monitor/verification-utils.ts +46 -0
  206. package/src/matrix/outbound-media-runtime.ts +1 -0
  207. package/src/matrix/poll-summary.ts +110 -0
  208. package/src/matrix/poll-types.test.ts +205 -0
  209. package/src/matrix/poll-types.ts +433 -0
  210. package/src/matrix/probe.runtime.ts +4 -0
  211. package/src/matrix/probe.test.ts +154 -0
  212. package/src/matrix/probe.ts +96 -0
  213. package/src/matrix/profile.test.ts +154 -0
  214. package/src/matrix/profile.ts +184 -0
  215. package/src/matrix/reaction-common.test.ts +96 -0
  216. package/src/matrix/reaction-common.ts +147 -0
  217. package/src/matrix/sdk/crypto-bootstrap.test.ts +505 -0
  218. package/src/matrix/sdk/crypto-bootstrap.ts +341 -0
  219. package/src/matrix/sdk/crypto-facade.test.ts +197 -0
  220. package/src/matrix/sdk/crypto-facade.ts +207 -0
  221. package/src/matrix/sdk/crypto-node.runtime.test.ts +27 -0
  222. package/src/matrix/sdk/crypto-node.runtime.ts +9 -0
  223. package/src/matrix/sdk/crypto-runtime.ts +11 -0
  224. package/src/matrix/sdk/decrypt-bridge.ts +356 -0
  225. package/src/matrix/sdk/event-helpers.test.ts +60 -0
  226. package/src/matrix/sdk/event-helpers.ts +71 -0
  227. package/src/matrix/sdk/http-client.test.ts +134 -0
  228. package/src/matrix/sdk/http-client.ts +87 -0
  229. package/src/matrix/sdk/idb-persistence-lock.ts +51 -0
  230. package/src/matrix/sdk/idb-persistence.lock-order.test.ts +108 -0
  231. package/src/matrix/sdk/idb-persistence.test-helpers.ts +88 -0
  232. package/src/matrix/sdk/idb-persistence.test.ts +149 -0
  233. package/src/matrix/sdk/idb-persistence.ts +283 -0
  234. package/src/matrix/sdk/logger.test.ts +25 -0
  235. package/src/matrix/sdk/logger.ts +108 -0
  236. package/src/matrix/sdk/read-response-with-limit.ts +19 -0
  237. package/src/matrix/sdk/recovery-key-store.test.ts +385 -0
  238. package/src/matrix/sdk/recovery-key-store.ts +430 -0
  239. package/src/matrix/sdk/transport.test.ts +161 -0
  240. package/src/matrix/sdk/transport.ts +344 -0
  241. package/src/matrix/sdk/types.ts +236 -0
  242. package/src/matrix/sdk/verification-manager.test.ts +509 -0
  243. package/src/matrix/sdk/verification-manager.ts +694 -0
  244. package/src/matrix/sdk/verification-status.ts +23 -0
  245. package/src/matrix/sdk.test.ts +2568 -0
  246. package/src/matrix/sdk.ts +1789 -0
  247. package/src/matrix/send/client.test.ts +174 -0
  248. package/src/matrix/send/client.ts +90 -0
  249. package/src/matrix/send/formatting.ts +189 -0
  250. package/src/matrix/send/media.ts +244 -0
  251. package/src/matrix/send/targets.test.ts +254 -0
  252. package/src/matrix/send/targets.ts +104 -0
  253. package/src/matrix/send/types.ts +134 -0
  254. package/src/matrix/send.test.ts +958 -0
  255. package/src/matrix/send.ts +609 -0
  256. package/src/matrix/session-store-metadata.ts +108 -0
  257. package/src/matrix/startup-abort.ts +44 -0
  258. package/src/matrix/sync-state.ts +27 -0
  259. package/src/matrix/target-ids.ts +102 -0
  260. package/src/matrix/thread-bindings-shared.ts +201 -0
  261. package/src/matrix/thread-bindings.test.ts +673 -0
  262. package/src/matrix/thread-bindings.ts +577 -0
  263. package/src/matrix-migration.runtime.ts +9 -0
  264. package/src/migration-config.test.ts +228 -0
  265. package/src/migration-config.ts +243 -0
  266. package/src/migration-snapshot-backup.ts +117 -0
  267. package/src/migration-snapshot.test.ts +184 -0
  268. package/src/migration-snapshot.ts +55 -0
  269. package/src/onboarding.resolve.test.ts +55 -0
  270. package/src/onboarding.test-harness.ts +158 -0
  271. package/src/onboarding.test.ts +665 -0
  272. package/src/onboarding.ts +773 -0
  273. package/src/outbound.test.ts +173 -0
  274. package/src/outbound.ts +78 -0
  275. package/src/plugin-entry.runtime.js +159 -0
  276. package/src/plugin-entry.runtime.test.ts +108 -0
  277. package/src/plugin-entry.runtime.ts +68 -0
  278. package/src/profile-update.ts +68 -0
  279. package/src/record-shared.ts +3 -0
  280. package/src/resolve-targets.test.ts +178 -0
  281. package/src/resolve-targets.ts +175 -0
  282. package/src/resolver.ts +21 -0
  283. package/src/runtime-api.ts +144 -0
  284. package/src/runtime.ts +7 -0
  285. package/src/secret-contract.ts +174 -0
  286. package/src/session-route.test.ts +315 -0
  287. package/src/session-route.ts +113 -0
  288. package/src/setup-bootstrap.ts +94 -0
  289. package/src/setup-config.ts +222 -0
  290. package/src/setup-contract.ts +89 -0
  291. package/src/setup-core.test.ts +326 -0
  292. package/src/setup-core.ts +50 -0
  293. package/src/setup-surface.ts +4 -0
  294. package/src/startup-maintenance.test.ts +227 -0
  295. package/src/startup-maintenance.ts +114 -0
  296. package/src/storage-paths.ts +92 -0
  297. package/src/test-helpers.ts +42 -0
  298. package/src/test-mocks.ts +55 -0
  299. package/src/test-runtime.ts +72 -0
  300. package/src/test-support/monitor-route-test-support.ts +8 -0
  301. package/src/tool-actions.runtime.ts +1 -0
  302. package/src/tool-actions.test.ts +422 -0
  303. package/src/tool-actions.ts +498 -0
  304. package/src/types.ts +230 -0
  305. package/test-api.ts +2 -0
  306. package/thread-bindings-runtime.ts +4 -0
  307. package/tsconfig.json +16 -0
  308. package/LICENSE +0 -17
  309. package/README.md +0 -136
  310. package/dist/APEv2Parser-6EMKXRZS.js +0 -15
  311. package/dist/APEv2Parser-6EMKXRZS.js.map +0 -7
  312. package/dist/APEv2Parser-FYYGMFPI.js +0 -15
  313. package/dist/APEv2Parser-FYYGMFPI.js.map +0 -7
  314. package/dist/AiffParser-E6XWRTXM.js +0 -194
  315. package/dist/AiffParser-E6XWRTXM.js.map +0 -7
  316. package/dist/AiffParser-JHSDQA7T.js +0 -194
  317. package/dist/AiffParser-JHSDQA7T.js.map +0 -7
  318. package/dist/AsfParser-TPCQDEJB.js +0 -620
  319. package/dist/AsfParser-TPCQDEJB.js.map +0 -7
  320. package/dist/AsfParser-WSOH2JQY.js +0 -620
  321. package/dist/AsfParser-WSOH2JQY.js.map +0 -7
  322. package/dist/DsdiffParser-CGD3C3TL.js +0 -192
  323. package/dist/DsdiffParser-CGD3C3TL.js.map +0 -7
  324. package/dist/DsdiffParser-EUWJ4YAR.js +0 -192
  325. package/dist/DsdiffParser-EUWJ4YAR.js.map +0 -7
  326. package/dist/DsfParser-3UTIJVNF.js +0 -114
  327. package/dist/DsfParser-3UTIJVNF.js.map +0 -7
  328. package/dist/DsfParser-R6TPBJIY.js +0 -114
  329. package/dist/DsfParser-R6TPBJIY.js.map +0 -7
  330. package/dist/FlacParser-HLLYPJ76.js +0 -16
  331. package/dist/FlacParser-HLLYPJ76.js.map +0 -7
  332. package/dist/FlacParser-VDASGZ3E.js +0 -16
  333. package/dist/FlacParser-VDASGZ3E.js.map +0 -7
  334. package/dist/MP4Parser-64RGJLUM.js +0 -1145
  335. package/dist/MP4Parser-64RGJLUM.js.map +0 -7
  336. package/dist/MP4Parser-SM7HYL3Z.js +0 -1145
  337. package/dist/MP4Parser-SM7HYL3Z.js.map +0 -7
  338. package/dist/MatroskaParser-O6RXAKYA.js +0 -662
  339. package/dist/MatroskaParser-O6RXAKYA.js.map +0 -7
  340. package/dist/MatroskaParser-X7WRZ6D4.js +0 -662
  341. package/dist/MatroskaParser-X7WRZ6D4.js.map +0 -7
  342. package/dist/MpegParser-B6NX6DS3.js +0 -652
  343. package/dist/MpegParser-B6NX6DS3.js.map +0 -7
  344. package/dist/MpegParser-KXQEC6KD.js +0 -652
  345. package/dist/MpegParser-KXQEC6KD.js.map +0 -7
  346. package/dist/MusepackParser-NURI46TG.js +0 -331
  347. package/dist/MusepackParser-NURI46TG.js.map +0 -7
  348. package/dist/MusepackParser-WUBT63DS.js +0 -331
  349. package/dist/MusepackParser-WUBT63DS.js.map +0 -7
  350. package/dist/OggParser-5IYVBXPS.js +0 -448
  351. package/dist/OggParser-5IYVBXPS.js.map +0 -7
  352. package/dist/OggParser-ZY6E5C2P.js +0 -448
  353. package/dist/OggParser-ZY6E5C2P.js.map +0 -7
  354. package/dist/WavPackParser-5KTCSQEU.js +0 -209
  355. package/dist/WavPackParser-5KTCSQEU.js.map +0 -7
  356. package/dist/WavPackParser-RTEHKSJH.js +0 -209
  357. package/dist/WavPackParser-RTEHKSJH.js.map +0 -7
  358. package/dist/WaveParser-3R2NLXGP.js +0 -300
  359. package/dist/WaveParser-3R2NLXGP.js.map +0 -7
  360. package/dist/WaveParser-RZSHVQPZ.js +0 -300
  361. package/dist/WaveParser-RZSHVQPZ.js.map +0 -7
  362. package/dist/auth-presence.js +0 -46
  363. package/dist/auth-presence.js.map +0 -7
  364. package/dist/channel-plugin-api.js +0 -79
  365. package/dist/channel-plugin-api.js.map +0 -7
  366. package/dist/chunk-22WAAZ6I.js +0 -114
  367. package/dist/chunk-22WAAZ6I.js.map +0 -7
  368. package/dist/chunk-2A6HEFSO.js +0 -676
  369. package/dist/chunk-2A6HEFSO.js.map +0 -7
  370. package/dist/chunk-2GFROLI2.js +0 -261
  371. package/dist/chunk-2GFROLI2.js.map +0 -7
  372. package/dist/chunk-2IQWKATM.js +0 -127
  373. package/dist/chunk-2IQWKATM.js.map +0 -7
  374. package/dist/chunk-2KGHUHKU.js +0 -169
  375. package/dist/chunk-2KGHUHKU.js.map +0 -7
  376. package/dist/chunk-2NEQI4K6.js +0 -171
  377. package/dist/chunk-2NEQI4K6.js.map +0 -7
  378. package/dist/chunk-2OSJ3MTW.js +0 -175
  379. package/dist/chunk-2OSJ3MTW.js.map +0 -7
  380. package/dist/chunk-2Q626TDO.js +0 -27
  381. package/dist/chunk-2Q626TDO.js.map +0 -7
  382. package/dist/chunk-2U6OZ7N2.js +0 -155
  383. package/dist/chunk-2U6OZ7N2.js.map +0 -7
  384. package/dist/chunk-2V6Y4CAN.js +0 -25
  385. package/dist/chunk-2V6Y4CAN.js.map +0 -7
  386. package/dist/chunk-2WHRUMOM.js +0 -321
  387. package/dist/chunk-2WHRUMOM.js.map +0 -7
  388. package/dist/chunk-2Z4IOUDZ.js +0 -129
  389. package/dist/chunk-2Z4IOUDZ.js.map +0 -7
  390. package/dist/chunk-2ZEPAW7U.js +0 -154
  391. package/dist/chunk-2ZEPAW7U.js.map +0 -7
  392. package/dist/chunk-2ZI6JK5O.js +0 -63
  393. package/dist/chunk-2ZI6JK5O.js.map +0 -7
  394. package/dist/chunk-34UY6D6X.js +0 -36
  395. package/dist/chunk-34UY6D6X.js.map +0 -7
  396. package/dist/chunk-3GIK7SAA.js +0 -109
  397. package/dist/chunk-3GIK7SAA.js.map +0 -7
  398. package/dist/chunk-3JD6JSJD.js +0 -111
  399. package/dist/chunk-3JD6JSJD.js.map +0 -7
  400. package/dist/chunk-3OXOEMBS.js +0 -123
  401. package/dist/chunk-3OXOEMBS.js.map +0 -7
  402. package/dist/chunk-3R4ATE4Q.js +0 -176
  403. package/dist/chunk-3R4ATE4Q.js.map +0 -7
  404. package/dist/chunk-3TOEIHG5.js +0 -314
  405. package/dist/chunk-3TOEIHG5.js.map +0 -7
  406. package/dist/chunk-3TRKKAVT.js +0 -130
  407. package/dist/chunk-3TRKKAVT.js.map +0 -7
  408. package/dist/chunk-3UFTTK7C.js +0 -418
  409. package/dist/chunk-3UFTTK7C.js.map +0 -7
  410. package/dist/chunk-3XO6AAIC.js +0 -25
  411. package/dist/chunk-3XO6AAIC.js.map +0 -7
  412. package/dist/chunk-427SAQME.js +0 -321
  413. package/dist/chunk-427SAQME.js.map +0 -7
  414. package/dist/chunk-4CFQNJ7F.js +0 -7
  415. package/dist/chunk-4CFQNJ7F.js.map +0 -7
  416. package/dist/chunk-4COI4L2Y.js +0 -31
  417. package/dist/chunk-4COI4L2Y.js.map +0 -7
  418. package/dist/chunk-4EKKDVG3.js +0 -1662
  419. package/dist/chunk-4EKKDVG3.js.map +0 -7
  420. package/dist/chunk-4JVNTZAI.js +0 -80
  421. package/dist/chunk-4JVNTZAI.js.map +0 -7
  422. package/dist/chunk-4L2QI6AY.js +0 -71
  423. package/dist/chunk-4L2QI6AY.js.map +0 -7
  424. package/dist/chunk-4O3BEYYM.js +0 -187
  425. package/dist/chunk-4O3BEYYM.js.map +0 -7
  426. package/dist/chunk-4OXPPDV6.js +0 -676
  427. package/dist/chunk-4OXPPDV6.js.map +0 -7
  428. package/dist/chunk-4QTZHELX.js +0 -51
  429. package/dist/chunk-4QTZHELX.js.map +0 -7
  430. package/dist/chunk-4U42OJMK.js +0 -217
  431. package/dist/chunk-4U42OJMK.js.map +0 -7
  432. package/dist/chunk-4WCKVGQ5.js +0 -193
  433. package/dist/chunk-4WCKVGQ5.js.map +0 -7
  434. package/dist/chunk-4XXERLFH.js +0 -95
  435. package/dist/chunk-4XXERLFH.js.map +0 -7
  436. package/dist/chunk-4Z2N4GW6.js +0 -247
  437. package/dist/chunk-4Z2N4GW6.js.map +0 -7
  438. package/dist/chunk-4ZY2BOQ4.js +0 -123
  439. package/dist/chunk-4ZY2BOQ4.js.map +0 -7
  440. package/dist/chunk-56HN4SH6.js +0 -46
  441. package/dist/chunk-56HN4SH6.js.map +0 -7
  442. package/dist/chunk-57ROEOHB.js +0 -183
  443. package/dist/chunk-57ROEOHB.js.map +0 -7
  444. package/dist/chunk-5APBBTGW.js +0 -7
  445. package/dist/chunk-5APBBTGW.js.map +0 -7
  446. package/dist/chunk-5BQ6LLNU.js +0 -39
  447. package/dist/chunk-5BQ6LLNU.js.map +0 -7
  448. package/dist/chunk-5LNGMBWW.js +0 -93
  449. package/dist/chunk-5LNGMBWW.js.map +0 -7
  450. package/dist/chunk-5XFQSYZ4.js +0 -52
  451. package/dist/chunk-5XFQSYZ4.js.map +0 -7
  452. package/dist/chunk-62N5N4AC.js +0 -241
  453. package/dist/chunk-62N5N4AC.js.map +0 -7
  454. package/dist/chunk-63QTHDJL.js +0 -52
  455. package/dist/chunk-63QTHDJL.js.map +0 -7
  456. package/dist/chunk-65UUVZ6B.js +0 -151
  457. package/dist/chunk-65UUVZ6B.js.map +0 -7
  458. package/dist/chunk-6COVTMAO.js +0 -3586
  459. package/dist/chunk-6COVTMAO.js.map +0 -7
  460. package/dist/chunk-6EYPDJUD.js +0 -34
  461. package/dist/chunk-6EYPDJUD.js.map +0 -7
  462. package/dist/chunk-6HDYPVA4.js +0 -15
  463. package/dist/chunk-6HDYPVA4.js.map +0 -7
  464. package/dist/chunk-6HX3DEXK.js +0 -178
  465. package/dist/chunk-6HX3DEXK.js.map +0 -7
  466. package/dist/chunk-6NO5VEVV.js +0 -18
  467. package/dist/chunk-6NO5VEVV.js.map +0 -7
  468. package/dist/chunk-6OP3FK5F.js +0 -266
  469. package/dist/chunk-6OP3FK5F.js.map +0 -7
  470. package/dist/chunk-6PZGDVLR.js +0 -465
  471. package/dist/chunk-6PZGDVLR.js.map +0 -7
  472. package/dist/chunk-6RBDFNSX.js +0 -88
  473. package/dist/chunk-6RBDFNSX.js.map +0 -7
  474. package/dist/chunk-6SOGH3TW.js +0 -163
  475. package/dist/chunk-6SOGH3TW.js.map +0 -7
  476. package/dist/chunk-6TWWCETB.js +0 -70
  477. package/dist/chunk-6TWWCETB.js.map +0 -7
  478. package/dist/chunk-6WFHPMUF.js +0 -17
  479. package/dist/chunk-6WFHPMUF.js.map +0 -7
  480. package/dist/chunk-72TGY3LX.js +0 -104
  481. package/dist/chunk-72TGY3LX.js.map +0 -7
  482. package/dist/chunk-76IE55K7.js +0 -392
  483. package/dist/chunk-76IE55K7.js.map +0 -7
  484. package/dist/chunk-77BEEAPD.js +0 -86
  485. package/dist/chunk-77BEEAPD.js.map +0 -7
  486. package/dist/chunk-77JJ6QJK.js +0 -50
  487. package/dist/chunk-77JJ6QJK.js.map +0 -7
  488. package/dist/chunk-7BIUNV33.js +0 -62
  489. package/dist/chunk-7BIUNV33.js.map +0 -7
  490. package/dist/chunk-7F3242AO.js +0 -86
  491. package/dist/chunk-7F3242AO.js.map +0 -7
  492. package/dist/chunk-7FLQSTPG.js +0 -57
  493. package/dist/chunk-7FLQSTPG.js.map +0 -7
  494. package/dist/chunk-7L37R42D.js +0 -52
  495. package/dist/chunk-7L37R42D.js.map +0 -7
  496. package/dist/chunk-7MP46JBP.js +0 -177
  497. package/dist/chunk-7MP46JBP.js.map +0 -7
  498. package/dist/chunk-7MVZYR2T.js +0 -87
  499. package/dist/chunk-7MVZYR2T.js.map +0 -7
  500. package/dist/chunk-7N7ISMPG.js +0 -50
  501. package/dist/chunk-7N7ISMPG.js.map +0 -7
  502. package/dist/chunk-7S7LQQPX.js +0 -127
  503. package/dist/chunk-7S7LQQPX.js.map +0 -7
  504. package/dist/chunk-7TTNY5FK.js +0 -21
  505. package/dist/chunk-7TTNY5FK.js.map +0 -7
  506. package/dist/chunk-7W73QCTR.js +0 -244
  507. package/dist/chunk-7W73QCTR.js.map +0 -7
  508. package/dist/chunk-7XXLU33Y.js +0 -76
  509. package/dist/chunk-7XXLU33Y.js.map +0 -7
  510. package/dist/chunk-7ZP3KYVO.js +0 -104
  511. package/dist/chunk-7ZP3KYVO.js.map +0 -7
  512. package/dist/chunk-AAO7BQEV.js +0 -258
  513. package/dist/chunk-AAO7BQEV.js.map +0 -7
  514. package/dist/chunk-AH4MLRYT.js +0 -91
  515. package/dist/chunk-AH4MLRYT.js.map +0 -7
  516. package/dist/chunk-AHKR32FH.js +0 -7
  517. package/dist/chunk-AHKR32FH.js.map +0 -7
  518. package/dist/chunk-ALKRFDAW.js +0 -94
  519. package/dist/chunk-ALKRFDAW.js.map +0 -7
  520. package/dist/chunk-AQQGAE7N.js +0 -12
  521. package/dist/chunk-AQQGAE7N.js.map +0 -7
  522. package/dist/chunk-ARGF232V.js +0 -32
  523. package/dist/chunk-ARGF232V.js.map +0 -7
  524. package/dist/chunk-ATCJOK3K.js +0 -24
  525. package/dist/chunk-ATCJOK3K.js.map +0 -7
  526. package/dist/chunk-AUUABFHL.js +0 -124
  527. package/dist/chunk-AUUABFHL.js.map +0 -7
  528. package/dist/chunk-AWW3YUGJ.js +0 -193
  529. package/dist/chunk-AWW3YUGJ.js.map +0 -7
  530. package/dist/chunk-AX7VEEWJ.js +0 -158
  531. package/dist/chunk-AX7VEEWJ.js.map +0 -7
  532. package/dist/chunk-B3NTODO7.js +0 -57
  533. package/dist/chunk-B3NTODO7.js.map +0 -7
  534. package/dist/chunk-BAX7Q6GR.js +0 -55
  535. package/dist/chunk-BAX7Q6GR.js.map +0 -7
  536. package/dist/chunk-BBM6BR3Z.js +0 -28
  537. package/dist/chunk-BBM6BR3Z.js.map +0 -7
  538. package/dist/chunk-BHXZMHSX.js +0 -109
  539. package/dist/chunk-BHXZMHSX.js.map +0 -7
  540. package/dist/chunk-BIUXDLVY.js +0 -62
  541. package/dist/chunk-BIUXDLVY.js.map +0 -7
  542. package/dist/chunk-BM7J2W36.js +0 -86
  543. package/dist/chunk-BM7J2W36.js.map +0 -7
  544. package/dist/chunk-BMFZL2P4.js +0 -97
  545. package/dist/chunk-BMFZL2P4.js.map +0 -7
  546. package/dist/chunk-BQXEXK4H.js +0 -114
  547. package/dist/chunk-BQXEXK4H.js.map +0 -7
  548. package/dist/chunk-BU2CTWBG.js +0 -30
  549. package/dist/chunk-BU2CTWBG.js.map +0 -7
  550. package/dist/chunk-BVKSCLF7.js +0 -195
  551. package/dist/chunk-BVKSCLF7.js.map +0 -7
  552. package/dist/chunk-BWA3D22L.js +0 -88
  553. package/dist/chunk-BWA3D22L.js.map +0 -7
  554. package/dist/chunk-CE24RSPL.js +0 -506
  555. package/dist/chunk-CE24RSPL.js.map +0 -7
  556. package/dist/chunk-CEB5S2Z5.js +0 -127
  557. package/dist/chunk-CEB5S2Z5.js.map +0 -7
  558. package/dist/chunk-CEKNTCJD.js +0 -177
  559. package/dist/chunk-CEKNTCJD.js.map +0 -7
  560. package/dist/chunk-CETZGSCP.js +0 -71
  561. package/dist/chunk-CETZGSCP.js.map +0 -7
  562. package/dist/chunk-CGBWMONK.js +0 -412
  563. package/dist/chunk-CGBWMONK.js.map +0 -7
  564. package/dist/chunk-CGFDIH77.js +0 -94
  565. package/dist/chunk-CGFDIH77.js.map +0 -7
  566. package/dist/chunk-CPLEC5LJ.js +0 -26
  567. package/dist/chunk-CPLEC5LJ.js.map +0 -7
  568. package/dist/chunk-CPNIXMGX.js +0 -127
  569. package/dist/chunk-CPNIXMGX.js.map +0 -7
  570. package/dist/chunk-CSJO73LD.js +0 -84
  571. package/dist/chunk-CSJO73LD.js.map +0 -7
  572. package/dist/chunk-CTKBDSL6.js +0 -81
  573. package/dist/chunk-CTKBDSL6.js.map +0 -7
  574. package/dist/chunk-CY6WHUCW.js +0 -54
  575. package/dist/chunk-CY6WHUCW.js.map +0 -7
  576. package/dist/chunk-D4GYYYMW.js +0 -155
  577. package/dist/chunk-D4GYYYMW.js.map +0 -7
  578. package/dist/chunk-D64CZG54.js +0 -78
  579. package/dist/chunk-D64CZG54.js.map +0 -7
  580. package/dist/chunk-D7Q6Z74D.js +0 -123
  581. package/dist/chunk-D7Q6Z74D.js.map +0 -7
  582. package/dist/chunk-DSGPDHF2.js +0 -737
  583. package/dist/chunk-DSGPDHF2.js.map +0 -7
  584. package/dist/chunk-DZIM4OWK.js +0 -17
  585. package/dist/chunk-DZIM4OWK.js.map +0 -7
  586. package/dist/chunk-E3GC4V5V.js +0 -30
  587. package/dist/chunk-E3GC4V5V.js.map +0 -7
  588. package/dist/chunk-E5HPDHCW.js +0 -34
  589. package/dist/chunk-E5HPDHCW.js.map +0 -7
  590. package/dist/chunk-E75BJJZ2.js +0 -635
  591. package/dist/chunk-E75BJJZ2.js.map +0 -7
  592. package/dist/chunk-EBXHW7ZO.js +0 -108
  593. package/dist/chunk-EBXHW7ZO.js.map +0 -7
  594. package/dist/chunk-EE4DHUUZ.js +0 -472
  595. package/dist/chunk-EE4DHUUZ.js.map +0 -7
  596. package/dist/chunk-EHELTAAD.js +0 -198
  597. package/dist/chunk-EHELTAAD.js.map +0 -7
  598. package/dist/chunk-EKXPSI7Z.js +0 -135
  599. package/dist/chunk-EKXPSI7Z.js.map +0 -7
  600. package/dist/chunk-EO35SCFP.js +0 -7
  601. package/dist/chunk-EO35SCFP.js.map +0 -7
  602. package/dist/chunk-ER2XTD2S.js +0 -271
  603. package/dist/chunk-ER2XTD2S.js.map +0 -7
  604. package/dist/chunk-ERCH75SH.js +0 -292
  605. package/dist/chunk-ERCH75SH.js.map +0 -7
  606. package/dist/chunk-ERXO3674.js +0 -54
  607. package/dist/chunk-ERXO3674.js.map +0 -7
  608. package/dist/chunk-EVFWZGFL.js +0 -235
  609. package/dist/chunk-EVFWZGFL.js.map +0 -7
  610. package/dist/chunk-EVPBRKMZ.js +0 -45
  611. package/dist/chunk-EVPBRKMZ.js.map +0 -7
  612. package/dist/chunk-F43CC2X2.js +0 -49
  613. package/dist/chunk-F43CC2X2.js.map +0 -7
  614. package/dist/chunk-F64TXVJJ.js +0 -158
  615. package/dist/chunk-F64TXVJJ.js.map +0 -7
  616. package/dist/chunk-F6AFJHWV.js +0 -45
  617. package/dist/chunk-F6AFJHWV.js.map +0 -7
  618. package/dist/chunk-F6APWSAA.js +0 -51
  619. package/dist/chunk-F6APWSAA.js.map +0 -7
  620. package/dist/chunk-F7LNS7G3.js +0 -235
  621. package/dist/chunk-F7LNS7G3.js.map +0 -7
  622. package/dist/chunk-FCNWR7ZX.js +0 -16352
  623. package/dist/chunk-FCNWR7ZX.js.map +0 -7
  624. package/dist/chunk-FFCG5NRU.js +0 -87
  625. package/dist/chunk-FFCG5NRU.js.map +0 -7
  626. package/dist/chunk-FG4NVFKM.js +0 -455
  627. package/dist/chunk-FG4NVFKM.js.map +0 -7
  628. package/dist/chunk-FHNEN6IR.js +0 -14
  629. package/dist/chunk-FHNEN6IR.js.map +0 -7
  630. package/dist/chunk-FJFC6CRR.js +0 -446
  631. package/dist/chunk-FJFC6CRR.js.map +0 -7
  632. package/dist/chunk-FK6RGYBB.js +0 -46
  633. package/dist/chunk-FK6RGYBB.js.map +0 -7
  634. package/dist/chunk-FMY6KXK6.js +0 -251
  635. package/dist/chunk-FMY6KXK6.js.map +0 -7
  636. package/dist/chunk-FPH56SCM.js +0 -21
  637. package/dist/chunk-FPH56SCM.js.map +0 -7
  638. package/dist/chunk-FQ4R7IOX.js +0 -32
  639. package/dist/chunk-FQ4R7IOX.js.map +0 -7
  640. package/dist/chunk-FQPYAPJJ.js +0 -124
  641. package/dist/chunk-FQPYAPJJ.js.map +0 -7
  642. package/dist/chunk-FQTLJO4W.js +0 -335
  643. package/dist/chunk-FQTLJO4W.js.map +0 -7
  644. package/dist/chunk-FVLJSB2W.js +0 -124
  645. package/dist/chunk-FVLJSB2W.js.map +0 -7
  646. package/dist/chunk-FVSH4Z6T.js +0 -173
  647. package/dist/chunk-FVSH4Z6T.js.map +0 -7
  648. package/dist/chunk-FVWBLEAD.js +0 -44
  649. package/dist/chunk-FVWBLEAD.js.map +0 -7
  650. package/dist/chunk-FYRKBNTI.js +0 -18
  651. package/dist/chunk-FYRKBNTI.js.map +0 -7
  652. package/dist/chunk-FYSARMGS.js +0 -93
  653. package/dist/chunk-FYSARMGS.js.map +0 -7
  654. package/dist/chunk-FZJOJ6P4.js +0 -28
  655. package/dist/chunk-FZJOJ6P4.js.map +0 -7
  656. package/dist/chunk-G46GHNDU.js +0 -4890
  657. package/dist/chunk-G46GHNDU.js.map +0 -7
  658. package/dist/chunk-G4TIS2SC.js +0 -56
  659. package/dist/chunk-G4TIS2SC.js.map +0 -7
  660. package/dist/chunk-GD6L3SLC.js +0 -30
  661. package/dist/chunk-GD6L3SLC.js.map +0 -7
  662. package/dist/chunk-GGWS7NQP.js +0 -247
  663. package/dist/chunk-GGWS7NQP.js.map +0 -7
  664. package/dist/chunk-GI2ZANRY.js +0 -24
  665. package/dist/chunk-GI2ZANRY.js.map +0 -7
  666. package/dist/chunk-GK3XVKXT.js +0 -737
  667. package/dist/chunk-GK3XVKXT.js.map +0 -7
  668. package/dist/chunk-GKOWCDQV.js +0 -699
  669. package/dist/chunk-GKOWCDQV.js.map +0 -7
  670. package/dist/chunk-GLLRCKKE.js +0 -26
  671. package/dist/chunk-GLLRCKKE.js.map +0 -7
  672. package/dist/chunk-GNYG6I36.js +0 -175
  673. package/dist/chunk-GNYG6I36.js.map +0 -7
  674. package/dist/chunk-GRBJYAYF.js +0 -129
  675. package/dist/chunk-GRBJYAYF.js.map +0 -7
  676. package/dist/chunk-GVYGUH2V.js +0 -7
  677. package/dist/chunk-GVYGUH2V.js.map +0 -7
  678. package/dist/chunk-GXDQGBA2.js +0 -106
  679. package/dist/chunk-GXDQGBA2.js.map +0 -7
  680. package/dist/chunk-GZAGAWSU.js +0 -28
  681. package/dist/chunk-GZAGAWSU.js.map +0 -7
  682. package/dist/chunk-H23E72SB.js +0 -163
  683. package/dist/chunk-H23E72SB.js.map +0 -7
  684. package/dist/chunk-H2HY73I6.js +0 -122
  685. package/dist/chunk-H2HY73I6.js.map +0 -7
  686. package/dist/chunk-H5MLA6PA.js +0 -29
  687. package/dist/chunk-H5MLA6PA.js.map +0 -7
  688. package/dist/chunk-H6YVV7GE.js +0 -22
  689. package/dist/chunk-H6YVV7GE.js.map +0 -7
  690. package/dist/chunk-H7KAUMBC.js +0 -635
  691. package/dist/chunk-H7KAUMBC.js.map +0 -7
  692. package/dist/chunk-HDPICD3P.js +0 -4890
  693. package/dist/chunk-HDPICD3P.js.map +0 -7
  694. package/dist/chunk-HGHU3TVL.js +0 -174
  695. package/dist/chunk-HGHU3TVL.js.map +0 -7
  696. package/dist/chunk-HJ5E2JRL.js +0 -88
  697. package/dist/chunk-HJ5E2JRL.js.map +0 -7
  698. package/dist/chunk-HJW3CKZL.js +0 -94
  699. package/dist/chunk-HJW3CKZL.js.map +0 -7
  700. package/dist/chunk-HKF5EBER.js +0 -418
  701. package/dist/chunk-HKF5EBER.js.map +0 -7
  702. package/dist/chunk-HLUR35G5.js +0 -30
  703. package/dist/chunk-HLUR35G5.js.map +0 -7
  704. package/dist/chunk-HNIW2NZU.js +0 -120
  705. package/dist/chunk-HNIW2NZU.js.map +0 -7
  706. package/dist/chunk-HP5HMWOM.js +0 -123
  707. package/dist/chunk-HP5HMWOM.js.map +0 -7
  708. package/dist/chunk-HQSHS6IB.js +0 -88
  709. package/dist/chunk-HQSHS6IB.js.map +0 -7
  710. package/dist/chunk-HSXRCP25.js +0 -171
  711. package/dist/chunk-HSXRCP25.js.map +0 -7
  712. package/dist/chunk-HTV3R73W.js +0 -51
  713. package/dist/chunk-HTV3R73W.js.map +0 -7
  714. package/dist/chunk-I26OPZLO.js +0 -28
  715. package/dist/chunk-I26OPZLO.js.map +0 -7
  716. package/dist/chunk-I7JJQ4BQ.js +0 -30
  717. package/dist/chunk-I7JJQ4BQ.js.map +0 -7
  718. package/dist/chunk-IJ6Y4W7F.js +0 -392
  719. package/dist/chunk-IJ6Y4W7F.js.map +0 -7
  720. package/dist/chunk-IJCMYMZB.js +0 -239
  721. package/dist/chunk-IJCMYMZB.js.map +0 -7
  722. package/dist/chunk-IJH4NOQ4.js +0 -18
  723. package/dist/chunk-IJH4NOQ4.js.map +0 -7
  724. package/dist/chunk-IMHRZQRH.js +0 -76
  725. package/dist/chunk-IMHRZQRH.js.map +0 -7
  726. package/dist/chunk-INNENDEE.js +0 -472
  727. package/dist/chunk-INNENDEE.js.map +0 -7
  728. package/dist/chunk-IOTLSMEQ.js +0 -177
  729. package/dist/chunk-IOTLSMEQ.js.map +0 -7
  730. package/dist/chunk-IQYYEHSM.js +0 -300
  731. package/dist/chunk-IQYYEHSM.js.map +0 -7
  732. package/dist/chunk-IRA5NJ4Q.js +0 -21
  733. package/dist/chunk-IRA5NJ4Q.js.map +0 -7
  734. package/dist/chunk-IU7EXXK7.js +0 -1662
  735. package/dist/chunk-IU7EXXK7.js.map +0 -7
  736. package/dist/chunk-IUXAKDAY.js +0 -102
  737. package/dist/chunk-IUXAKDAY.js.map +0 -7
  738. package/dist/chunk-JB6ZQEVR.js +0 -465
  739. package/dist/chunk-JB6ZQEVR.js.map +0 -7
  740. package/dist/chunk-JCWNMWNY.js +0 -102
  741. package/dist/chunk-JCWNMWNY.js.map +0 -7
  742. package/dist/chunk-JGIZPU2Y.js +0 -39
  743. package/dist/chunk-JGIZPU2Y.js.map +0 -7
  744. package/dist/chunk-JIU4FXA7.js +0 -485
  745. package/dist/chunk-JIU4FXA7.js.map +0 -7
  746. package/dist/chunk-JMYIFYY5.js +0 -233
  747. package/dist/chunk-JMYIFYY5.js.map +0 -7
  748. package/dist/chunk-JSZBX2TA.js +0 -5853
  749. package/dist/chunk-JSZBX2TA.js.map +0 -7
  750. package/dist/chunk-JU2Y33DB.js +0 -60
  751. package/dist/chunk-JU2Y33DB.js.map +0 -7
  752. package/dist/chunk-JVLRI4RU.js +0 -62
  753. package/dist/chunk-JVLRI4RU.js.map +0 -7
  754. package/dist/chunk-JZ3AVNZC.js +0 -44117
  755. package/dist/chunk-JZ3AVNZC.js.map +0 -7
  756. package/dist/chunk-K3HEWOHN.js +0 -30
  757. package/dist/chunk-K3HEWOHN.js.map +0 -7
  758. package/dist/chunk-K5EK4WZV.js +0 -7
  759. package/dist/chunk-K5EK4WZV.js.map +0 -7
  760. package/dist/chunk-KAWXMSYC.js +0 -58
  761. package/dist/chunk-KAWXMSYC.js.map +0 -7
  762. package/dist/chunk-KEGPHS4C.js +0 -80
  763. package/dist/chunk-KEGPHS4C.js.map +0 -7
  764. package/dist/chunk-KHFWQ334.js +0 -138
  765. package/dist/chunk-KHFWQ334.js.map +0 -7
  766. package/dist/chunk-KJW6JLM6.js +0 -95
  767. package/dist/chunk-KJW6JLM6.js.map +0 -7
  768. package/dist/chunk-KSEANSJE.js +0 -40
  769. package/dist/chunk-KSEANSJE.js.map +0 -7
  770. package/dist/chunk-KVU54E6W.js +0 -63
  771. package/dist/chunk-KVU54E6W.js.map +0 -7
  772. package/dist/chunk-KXXVR3DC.js +0 -244
  773. package/dist/chunk-KXXVR3DC.js.map +0 -7
  774. package/dist/chunk-L5OUVMHK.js +0 -174
  775. package/dist/chunk-L5OUVMHK.js.map +0 -7
  776. package/dist/chunk-L5T6XUDP.js +0 -412
  777. package/dist/chunk-L5T6XUDP.js.map +0 -7
  778. package/dist/chunk-LIFXTQ4U.js +0 -7287
  779. package/dist/chunk-LIFXTQ4U.js.map +0 -7
  780. package/dist/chunk-LIVQ7GIO.js +0 -86
  781. package/dist/chunk-LIVQ7GIO.js.map +0 -7
  782. package/dist/chunk-LMD5UTKM.js +0 -169
  783. package/dist/chunk-LMD5UTKM.js.map +0 -7
  784. package/dist/chunk-LO4F6E3N.js +0 -163
  785. package/dist/chunk-LO4F6E3N.js.map +0 -7
  786. package/dist/chunk-LSVKDUNM.js +0 -151
  787. package/dist/chunk-LSVKDUNM.js.map +0 -7
  788. package/dist/chunk-LTXNC6JX.js +0 -27
  789. package/dist/chunk-LTXNC6JX.js.map +0 -7
  790. package/dist/chunk-LUGTGPT6.js +0 -138
  791. package/dist/chunk-LUGTGPT6.js.map +0 -7
  792. package/dist/chunk-LVMK2GPM.js +0 -18
  793. package/dist/chunk-LVMK2GPM.js.map +0 -7
  794. package/dist/chunk-LXVPETLK.js +0 -1405
  795. package/dist/chunk-LXVPETLK.js.map +0 -7
  796. package/dist/chunk-LZNW24OB.js +0 -78
  797. package/dist/chunk-LZNW24OB.js.map +0 -7
  798. package/dist/chunk-LZQFDJNW.js +0 -300
  799. package/dist/chunk-LZQFDJNW.js.map +0 -7
  800. package/dist/chunk-M4VQPIF4.js +0 -5853
  801. package/dist/chunk-M4VQPIF4.js.map +0 -7
  802. package/dist/chunk-M64QE4QC.js +0 -64
  803. package/dist/chunk-M64QE4QC.js.map +0 -7
  804. package/dist/chunk-MAF6PSCJ.js +0 -44
  805. package/dist/chunk-MAF6PSCJ.js.map +0 -7
  806. package/dist/chunk-MBIX6Z7U.js +0 -80
  807. package/dist/chunk-MBIX6Z7U.js.map +0 -7
  808. package/dist/chunk-MDLLXMC3.js +0 -183
  809. package/dist/chunk-MDLLXMC3.js.map +0 -7
  810. package/dist/chunk-MEI5HTWV.js +0 -127
  811. package/dist/chunk-MEI5HTWV.js.map +0 -7
  812. package/dist/chunk-MH74AJ3A.js +0 -82
  813. package/dist/chunk-MH74AJ3A.js.map +0 -7
  814. package/dist/chunk-MIFIM4PI.js +0 -163
  815. package/dist/chunk-MIFIM4PI.js.map +0 -7
  816. package/dist/chunk-MISZB5QJ.js +0 -22
  817. package/dist/chunk-MISZB5QJ.js.map +0 -7
  818. package/dist/chunk-MJ27XQYG.js +0 -125
  819. package/dist/chunk-MJ27XQYG.js.map +0 -7
  820. package/dist/chunk-MJ2GW6SU.js +0 -163
  821. package/dist/chunk-MJ2GW6SU.js.map +0 -7
  822. package/dist/chunk-MLQY5SKR.js +0 -52
  823. package/dist/chunk-MLQY5SKR.js.map +0 -7
  824. package/dist/chunk-MTMHGC3G.js +0 -39
  825. package/dist/chunk-MTMHGC3G.js.map +0 -7
  826. package/dist/chunk-MWBAW3YV.js +0 -244
  827. package/dist/chunk-MWBAW3YV.js.map +0 -7
  828. package/dist/chunk-MYSK3SIM.js +0 -55
  829. package/dist/chunk-MYSK3SIM.js.map +0 -7
  830. package/dist/chunk-MZGGB2YT.js +0 -50
  831. package/dist/chunk-MZGGB2YT.js.map +0 -7
  832. package/dist/chunk-N46MIZXB.js +0 -154
  833. package/dist/chunk-N46MIZXB.js.map +0 -7
  834. package/dist/chunk-N53537P6.js +0 -31
  835. package/dist/chunk-N53537P6.js.map +0 -7
  836. package/dist/chunk-N5CTFOLX.js +0 -40
  837. package/dist/chunk-N5CTFOLX.js.map +0 -7
  838. package/dist/chunk-N5SNGZJV.js +0 -217
  839. package/dist/chunk-N5SNGZJV.js.map +0 -7
  840. package/dist/chunk-NGCTBYQ3.js +0 -181
  841. package/dist/chunk-NGCTBYQ3.js.map +0 -7
  842. package/dist/chunk-NIFG55CE.js +0 -52
  843. package/dist/chunk-NIFG55CE.js.map +0 -7
  844. package/dist/chunk-NJ63ALPX.js +0 -7
  845. package/dist/chunk-NJ63ALPX.js.map +0 -7
  846. package/dist/chunk-NMUX7SGU.js +0 -676
  847. package/dist/chunk-NMUX7SGU.js.map +0 -7
  848. package/dist/chunk-NO7GMLNU.js +0 -292
  849. package/dist/chunk-NO7GMLNU.js.map +0 -7
  850. package/dist/chunk-NTOGVX2Y.js +0 -92
  851. package/dist/chunk-NTOGVX2Y.js.map +0 -7
  852. package/dist/chunk-NZVHE4IT.js +0 -3101
  853. package/dist/chunk-NZVHE4IT.js.map +0 -7
  854. package/dist/chunk-O5IVKDX7.js +0 -30
  855. package/dist/chunk-O5IVKDX7.js.map +0 -7
  856. package/dist/chunk-O7ORICEC.js +0 -82
  857. package/dist/chunk-O7ORICEC.js.map +0 -7
  858. package/dist/chunk-OBMBAM3N.js +0 -73
  859. package/dist/chunk-OBMBAM3N.js.map +0 -7
  860. package/dist/chunk-OFWMLQMU.js +0 -7287
  861. package/dist/chunk-OFWMLQMU.js.map +0 -7
  862. package/dist/chunk-OJ3ZUKBI.js +0 -73
  863. package/dist/chunk-OJ3ZUKBI.js.map +0 -7
  864. package/dist/chunk-OJJBD5K3.js +0 -45
  865. package/dist/chunk-OJJBD5K3.js.map +0 -7
  866. package/dist/chunk-OJTHE4B7.js +0 -50
  867. package/dist/chunk-OJTHE4B7.js.map +0 -7
  868. package/dist/chunk-OKDOVX4B.js +0 -699
  869. package/dist/chunk-OKDOVX4B.js.map +0 -7
  870. package/dist/chunk-OOYPYBTA.js +0 -446
  871. package/dist/chunk-OOYPYBTA.js.map +0 -7
  872. package/dist/chunk-OQP4W4AR.js +0 -105
  873. package/dist/chunk-OQP4W4AR.js.map +0 -7
  874. package/dist/chunk-OVMDMCZ5.js +0 -241
  875. package/dist/chunk-OVMDMCZ5.js.map +0 -7
  876. package/dist/chunk-OVTT2EKA.js +0 -516
  877. package/dist/chunk-OVTT2EKA.js.map +0 -7
  878. package/dist/chunk-OVU43GJK.js +0 -63
  879. package/dist/chunk-OVU43GJK.js.map +0 -7
  880. package/dist/chunk-P3TMARA6.js +0 -18
  881. package/dist/chunk-P3TMARA6.js.map +0 -7
  882. package/dist/chunk-P5N63LBS.js +0 -94
  883. package/dist/chunk-P5N63LBS.js.map +0 -7
  884. package/dist/chunk-PARITZ7F.js +0 -28
  885. package/dist/chunk-PARITZ7F.js.map +0 -7
  886. package/dist/chunk-PBQK4KY4.js +0 -195
  887. package/dist/chunk-PBQK4KY4.js.map +0 -7
  888. package/dist/chunk-PLMOTQ42.js +0 -335
  889. package/dist/chunk-PLMOTQ42.js.map +0 -7
  890. package/dist/chunk-PSL2AHIA.js +0 -27
  891. package/dist/chunk-PSL2AHIA.js.map +0 -7
  892. package/dist/chunk-Q5QT7JBM.js +0 -92
  893. package/dist/chunk-Q5QT7JBM.js.map +0 -7
  894. package/dist/chunk-Q6H5OV2R.js +0 -180
  895. package/dist/chunk-Q6H5OV2R.js.map +0 -7
  896. package/dist/chunk-Q7WA5DCR.js +0 -62
  897. package/dist/chunk-Q7WA5DCR.js.map +0 -7
  898. package/dist/chunk-QAR5POXD.js +0 -472
  899. package/dist/chunk-QAR5POXD.js.map +0 -7
  900. package/dist/chunk-QATEENP2.js +0 -7
  901. package/dist/chunk-QATEENP2.js.map +0 -7
  902. package/dist/chunk-QDT24CIA.js +0 -485
  903. package/dist/chunk-QDT24CIA.js.map +0 -7
  904. package/dist/chunk-QI3NB7D5.js +0 -455
  905. package/dist/chunk-QI3NB7D5.js.map +0 -7
  906. package/dist/chunk-QIDAVXSX.js +0 -106
  907. package/dist/chunk-QIDAVXSX.js.map +0 -7
  908. package/dist/chunk-QKIGQVP2.js +0 -104
  909. package/dist/chunk-QKIGQVP2.js.map +0 -7
  910. package/dist/chunk-QNJENPK2.js +0 -81
  911. package/dist/chunk-QNJENPK2.js.map +0 -7
  912. package/dist/chunk-R5S76YR5.js +0 -12
  913. package/dist/chunk-R5S76YR5.js.map +0 -7
  914. package/dist/chunk-R7ZBOXPS.js +0 -163
  915. package/dist/chunk-R7ZBOXPS.js.map +0 -7
  916. package/dist/chunk-RAL3KX76.js +0 -239
  917. package/dist/chunk-RAL3KX76.js.map +0 -7
  918. package/dist/chunk-REVXXWAS.js +0 -31
  919. package/dist/chunk-REVXXWAS.js.map +0 -7
  920. package/dist/chunk-RFH4HRZP.js +0 -94
  921. package/dist/chunk-RFH4HRZP.js.map +0 -7
  922. package/dist/chunk-RHITG64O.js +0 -50
  923. package/dist/chunk-RHITG64O.js.map +0 -7
  924. package/dist/chunk-RK5HZFP6.js +0 -111
  925. package/dist/chunk-RK5HZFP6.js.map +0 -7
  926. package/dist/chunk-RNGAGYCL.js +0 -49
  927. package/dist/chunk-RNGAGYCL.js.map +0 -7
  928. package/dist/chunk-RPCVN3JA.js +0 -261
  929. package/dist/chunk-RPCVN3JA.js.map +0 -7
  930. package/dist/chunk-RQ26XXFS.js +0 -45
  931. package/dist/chunk-RQ26XXFS.js.map +0 -7
  932. package/dist/chunk-RQQE5DDT.js +0 -193
  933. package/dist/chunk-RQQE5DDT.js.map +0 -7
  934. package/dist/chunk-RSA7PKZH.js +0 -187
  935. package/dist/chunk-RSA7PKZH.js.map +0 -7
  936. package/dist/chunk-RTSINQ4T.js +0 -78
  937. package/dist/chunk-RTSINQ4T.js.map +0 -7
  938. package/dist/chunk-RVOD3ESA.js +0 -38
  939. package/dist/chunk-RVOD3ESA.js.map +0 -7
  940. package/dist/chunk-SAOUP24A.js +0 -70
  941. package/dist/chunk-SAOUP24A.js.map +0 -7
  942. package/dist/chunk-SFZL2TCV.js +0 -55
  943. package/dist/chunk-SFZL2TCV.js.map +0 -7
  944. package/dist/chunk-SH6Y4CGQ.js +0 -175
  945. package/dist/chunk-SH6Y4CGQ.js.map +0 -7
  946. package/dist/chunk-SHBAAFFH.js +0 -74
  947. package/dist/chunk-SHBAAFFH.js.map +0 -7
  948. package/dist/chunk-SJPFUXBV.js +0 -45
  949. package/dist/chunk-SJPFUXBV.js.map +0 -7
  950. package/dist/chunk-SLIUQWAR.js +0 -58
  951. package/dist/chunk-SLIUQWAR.js.map +0 -7
  952. package/dist/chunk-SPNSM6SB.js +0 -36
  953. package/dist/chunk-SPNSM6SB.js.map +0 -7
  954. package/dist/chunk-SQUHLLK5.js +0 -125
  955. package/dist/chunk-SQUHLLK5.js.map +0 -7
  956. package/dist/chunk-SSEX66OL.js +0 -39
  957. package/dist/chunk-SSEX66OL.js.map +0 -7
  958. package/dist/chunk-SWWK35VQ.js +0 -84
  959. package/dist/chunk-SWWK35VQ.js.map +0 -7
  960. package/dist/chunk-SX2LOHOX.js +0 -251
  961. package/dist/chunk-SX2LOHOX.js.map +0 -7
  962. package/dist/chunk-T72EMFTX.js +0 -74
  963. package/dist/chunk-T72EMFTX.js.map +0 -7
  964. package/dist/chunk-TA2QJPPG.js +0 -169
  965. package/dist/chunk-TA2QJPPG.js.map +0 -7
  966. package/dist/chunk-TC5ZVFV6.js +0 -292
  967. package/dist/chunk-TC5ZVFV6.js.map +0 -7
  968. package/dist/chunk-TFD7ZIYD.js +0 -105
  969. package/dist/chunk-TFD7ZIYD.js.map +0 -7
  970. package/dist/chunk-TFEETDNY.js +0 -78
  971. package/dist/chunk-TFEETDNY.js.map +0 -7
  972. package/dist/chunk-TH6ONRWT.js +0 -516
  973. package/dist/chunk-TH6ONRWT.js.map +0 -7
  974. package/dist/chunk-THM2QV25.js +0 -108
  975. package/dist/chunk-THM2QV25.js.map +0 -7
  976. package/dist/chunk-TMQMQ67T.js +0 -81
  977. package/dist/chunk-TMQMQ67T.js.map +0 -7
  978. package/dist/chunk-TPYWUZOR.js +0 -178
  979. package/dist/chunk-TPYWUZOR.js.map +0 -7
  980. package/dist/chunk-TRWT2N6Z.js +0 -15
  981. package/dist/chunk-TRWT2N6Z.js.map +0 -7
  982. package/dist/chunk-TTXEM54Y.js +0 -76
  983. package/dist/chunk-TTXEM54Y.js.map +0 -7
  984. package/dist/chunk-U2O4LE6S.js +0 -22
  985. package/dist/chunk-U2O4LE6S.js.map +0 -7
  986. package/dist/chunk-U44IVNP2.js +0 -91
  987. package/dist/chunk-U44IVNP2.js.map +0 -7
  988. package/dist/chunk-U4LVIY5F.js +0 -1405
  989. package/dist/chunk-U4LVIY5F.js.map +0 -7
  990. package/dist/chunk-U767LCSG.js +0 -78
  991. package/dist/chunk-U767LCSG.js.map +0 -7
  992. package/dist/chunk-U7GKLHU6.js +0 -120
  993. package/dist/chunk-U7GKLHU6.js.map +0 -7
  994. package/dist/chunk-UAB5P5QO.js +0 -60
  995. package/dist/chunk-UAB5P5QO.js.map +0 -7
  996. package/dist/chunk-UDDWLWKZ.js +0 -82
  997. package/dist/chunk-UDDWLWKZ.js.map +0 -7
  998. package/dist/chunk-UEHPJQBL.js +0 -38
  999. package/dist/chunk-UEHPJQBL.js.map +0 -7
  1000. package/dist/chunk-UIBV6IGR.js +0 -31
  1001. package/dist/chunk-UIBV6IGR.js.map +0 -7
  1002. package/dist/chunk-UIYFRUET.js +0 -16352
  1003. package/dist/chunk-UIYFRUET.js.map +0 -7
  1004. package/dist/chunk-UJS3TIVS.js +0 -52
  1005. package/dist/chunk-UJS3TIVS.js.map +0 -7
  1006. package/dist/chunk-UMMPB6FL.js +0 -506
  1007. package/dist/chunk-UMMPB6FL.js.map +0 -7
  1008. package/dist/chunk-UP42ACP7.js +0 -27
  1009. package/dist/chunk-UP42ACP7.js.map +0 -7
  1010. package/dist/chunk-UPEF7ETP.js +0 -92
  1011. package/dist/chunk-UPEF7ETP.js.map +0 -7
  1012. package/dist/chunk-UU5PSBSI.js +0 -176
  1013. package/dist/chunk-UU5PSBSI.js.map +0 -7
  1014. package/dist/chunk-UV63XYFU.js +0 -173
  1015. package/dist/chunk-UV63XYFU.js.map +0 -7
  1016. package/dist/chunk-UWPHOAOC.js +0 -29
  1017. package/dist/chunk-UWPHOAOC.js.map +0 -7
  1018. package/dist/chunk-UXDDOSJC.js +0 -52
  1019. package/dist/chunk-UXDDOSJC.js.map +0 -7
  1020. package/dist/chunk-V3VAOMCO.js +0 -465
  1021. package/dist/chunk-V3VAOMCO.js.map +0 -7
  1022. package/dist/chunk-VA7ENH2S.js +0 -38
  1023. package/dist/chunk-VA7ENH2S.js.map +0 -7
  1024. package/dist/chunk-VBDLTKI2.js +0 -130
  1025. package/dist/chunk-VBDLTKI2.js.map +0 -7
  1026. package/dist/chunk-VCWIKEJ7.js +0 -7
  1027. package/dist/chunk-VCWIKEJ7.js.map +0 -7
  1028. package/dist/chunk-VFPDFLVE.js +0 -516
  1029. package/dist/chunk-VFPDFLVE.js.map +0 -7
  1030. package/dist/chunk-VHG4FNIJ.js +0 -93
  1031. package/dist/chunk-VHG4FNIJ.js.map +0 -7
  1032. package/dist/chunk-VKOO6MIZ.js +0 -51
  1033. package/dist/chunk-VKOO6MIZ.js.map +0 -7
  1034. package/dist/chunk-VKXKRZG7.js +0 -62
  1035. package/dist/chunk-VKXKRZG7.js.map +0 -7
  1036. package/dist/chunk-VPQICZQR.js +0 -93
  1037. package/dist/chunk-VPQICZQR.js.map +0 -7
  1038. package/dist/chunk-VRBJNFPL.js +0 -114
  1039. package/dist/chunk-VRBJNFPL.js.map +0 -7
  1040. package/dist/chunk-VUOLPEUZ.js +0 -7
  1041. package/dist/chunk-VUOLPEUZ.js.map +0 -7
  1042. package/dist/chunk-VUU5KFH3.js +0 -38
  1043. package/dist/chunk-VUU5KFH3.js.map +0 -7
  1044. package/dist/chunk-VVBL5CFF.js +0 -7
  1045. package/dist/chunk-VVBL5CFF.js.map +0 -7
  1046. package/dist/chunk-VYZEQ6KY.js +0 -22
  1047. package/dist/chunk-VYZEQ6KY.js.map +0 -7
  1048. package/dist/chunk-W6SOBS7M.js +0 -138
  1049. package/dist/chunk-W6SOBS7M.js.map +0 -7
  1050. package/dist/chunk-WBPQVWSU.js +0 -198
  1051. package/dist/chunk-WBPQVWSU.js.map +0 -7
  1052. package/dist/chunk-WDOKKRTE.js +0 -7
  1053. package/dist/chunk-WDOKKRTE.js.map +0 -7
  1054. package/dist/chunk-WGXXKFN5.js +0 -7
  1055. package/dist/chunk-WGXXKFN5.js.map +0 -7
  1056. package/dist/chunk-WHPUUP3J.js +0 -25
  1057. package/dist/chunk-WHPUUP3J.js.map +0 -7
  1058. package/dist/chunk-WS6HWBKT.js +0 -30
  1059. package/dist/chunk-WS6HWBKT.js.map +0 -7
  1060. package/dist/chunk-XF7LD6VV.js +0 -122
  1061. package/dist/chunk-XF7LD6VV.js.map +0 -7
  1062. package/dist/chunk-XFTXM3RE.js +0 -64
  1063. package/dist/chunk-XFTXM3RE.js.map +0 -7
  1064. package/dist/chunk-XJABPO2T.js +0 -235
  1065. package/dist/chunk-XJABPO2T.js.map +0 -7
  1066. package/dist/chunk-XK6VF3H7.js +0 -3586
  1067. package/dist/chunk-XK6VF3H7.js.map +0 -7
  1068. package/dist/chunk-XOZPOHLG.js +0 -233
  1069. package/dist/chunk-XOZPOHLG.js.map +0 -7
  1070. package/dist/chunk-XQYIIPOJ.js +0 -266
  1071. package/dist/chunk-XQYIIPOJ.js.map +0 -7
  1072. package/dist/chunk-XR7DPSNX.js +0 -195
  1073. package/dist/chunk-XR7DPSNX.js.map +0 -7
  1074. package/dist/chunk-XYH4JC3U.js +0 -7
  1075. package/dist/chunk-XYH4JC3U.js.map +0 -7
  1076. package/dist/chunk-XZSAN55E.js +0 -58
  1077. package/dist/chunk-XZSAN55E.js.map +0 -7
  1078. package/dist/chunk-Y3KJR4OG.js +0 -64
  1079. package/dist/chunk-Y3KJR4OG.js.map +0 -7
  1080. package/dist/chunk-Y4JKH7FF.js +0 -45
  1081. package/dist/chunk-Y4JKH7FF.js.map +0 -7
  1082. package/dist/chunk-Y6CJN4ID.js +0 -31
  1083. package/dist/chunk-Y6CJN4ID.js.map +0 -7
  1084. package/dist/chunk-YABGJU5M.js +0 -271
  1085. package/dist/chunk-YABGJU5M.js.map +0 -7
  1086. package/dist/chunk-YB5UCHLN.js +0 -314
  1087. package/dist/chunk-YB5UCHLN.js.map +0 -7
  1088. package/dist/chunk-YEJH7ZC2.js +0 -34
  1089. package/dist/chunk-YEJH7ZC2.js.map +0 -7
  1090. package/dist/chunk-YF5DYD3X.js +0 -97
  1091. package/dist/chunk-YF5DYD3X.js.map +0 -7
  1092. package/dist/chunk-YFTE4H54.js +0 -44117
  1093. package/dist/chunk-YFTE4H54.js.map +0 -7
  1094. package/dist/chunk-YGVQZCE7.js +0 -30
  1095. package/dist/chunk-YGVQZCE7.js.map +0 -7
  1096. package/dist/chunk-YNHADHHS.js +0 -138
  1097. package/dist/chunk-YNHADHHS.js.map +0 -7
  1098. package/dist/chunk-YNJYMD43.js +0 -392
  1099. package/dist/chunk-YNJYMD43.js.map +0 -7
  1100. package/dist/chunk-YNYEQGVN.js +0 -251
  1101. package/dist/chunk-YNYEQGVN.js.map +0 -7
  1102. package/dist/chunk-YOAMBAM2.js +0 -70
  1103. package/dist/chunk-YOAMBAM2.js.map +0 -7
  1104. package/dist/chunk-YUPBD27Z.js +0 -70
  1105. package/dist/chunk-YUPBD27Z.js.map +0 -7
  1106. package/dist/chunk-YWE5AQPZ.js +0 -258
  1107. package/dist/chunk-YWE5AQPZ.js.map +0 -7
  1108. package/dist/chunk-YWHH3MB6.js +0 -1405
  1109. package/dist/chunk-YWHH3MB6.js.map +0 -7
  1110. package/dist/chunk-YXJ52FD5.js +0 -271
  1111. package/dist/chunk-YXJ52FD5.js.map +0 -7
  1112. package/dist/chunk-YZ6F5N7R.js +0 -455
  1113. package/dist/chunk-YZ6F5N7R.js.map +0 -7
  1114. package/dist/chunk-YZGORRQN.js +0 -3101
  1115. package/dist/chunk-YZGORRQN.js.map +0 -7
  1116. package/dist/chunk-Z6IVJ6ZW.js +0 -30
  1117. package/dist/chunk-Z6IVJ6ZW.js.map +0 -7
  1118. package/dist/chunk-ZFC44XJJ.js +0 -86
  1119. package/dist/chunk-ZFC44XJJ.js.map +0 -7
  1120. package/dist/chunk-ZFGRQIB6.js +0 -38
  1121. package/dist/chunk-ZFGRQIB6.js.map +0 -7
  1122. package/dist/chunk-ZGAUVPAB.js +0 -14
  1123. package/dist/chunk-ZGAUVPAB.js.map +0 -7
  1124. package/dist/chunk-ZGCATLM5.js +0 -18
  1125. package/dist/chunk-ZGCATLM5.js.map +0 -7
  1126. package/dist/chunk-ZJDJC5TP.js +0 -82
  1127. package/dist/chunk-ZJDJC5TP.js.map +0 -7
  1128. package/dist/chunk-ZJGZNPDK.js +0 -171
  1129. package/dist/chunk-ZJGZNPDK.js.map +0 -7
  1130. package/dist/chunk-ZJHBJWZX.js +0 -699
  1131. package/dist/chunk-ZJHBJWZX.js.map +0 -7
  1132. package/dist/chunk-ZNOTD65D.js +0 -95
  1133. package/dist/chunk-ZNOTD65D.js.map +0 -7
  1134. package/dist/chunk-ZQ2QIFXW.js +0 -122
  1135. package/dist/chunk-ZQ2QIFXW.js.map +0 -7
  1136. package/dist/chunk-ZRMXPQGY.js +0 -241
  1137. package/dist/chunk-ZRMXPQGY.js.map +0 -7
  1138. package/dist/chunk-ZSOPE7DO.js +0 -92
  1139. package/dist/chunk-ZSOPE7DO.js.map +0 -7
  1140. package/dist/chunk-ZVEE5IDC.js +0 -3101
  1141. package/dist/chunk-ZVEE5IDC.js.map +0 -7
  1142. package/dist/chunk-ZY247PXY.js +0 -135
  1143. package/dist/chunk-ZY247PXY.js.map +0 -7
  1144. package/dist/cli-metadata.js +0 -12
  1145. package/dist/cli-metadata.js.map +0 -7
  1146. package/dist/contract-api.js +0 -104
  1147. package/dist/contract-api.js.map +0 -7
  1148. package/dist/dist-DVBXHDB4.js +0 -549
  1149. package/dist/dist-DVBXHDB4.js.map +0 -7
  1150. package/dist/dist-F3K7S5SS.js +0 -549
  1151. package/dist/dist-F3K7S5SS.js.map +0 -7
  1152. package/dist/helper-api.js +0 -51
  1153. package/dist/helper-api.js.map +0 -7
  1154. package/dist/index.js +0 -70
  1155. package/dist/index.js.map +0 -7
  1156. package/dist/magic-string.es-ITIPPYGW.js +0 -1315
  1157. package/dist/magic-string.es-ITIPPYGW.js.map +0 -7
  1158. package/dist/magic-string.es-V5NOGTUV.js +0 -1315
  1159. package/dist/magic-string.es-V5NOGTUV.js.map +0 -7
  1160. package/dist/openclaw.plugin.json +0 -23
  1161. package/dist/package.json +0 -59
  1162. package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js +0 -20
  1163. package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js.map +0 -7
  1164. package/dist/plugin-entry.handlers.runtime-POD4CSHM.js +0 -20
  1165. package/dist/plugin-entry.handlers.runtime-POD4CSHM.js.map +0 -7
  1166. package/dist/plugin-entry.handlers.runtime-YOSG6V6U.js +0 -20
  1167. package/dist/plugin-entry.handlers.runtime-YOSG6V6U.js.map +0 -7
  1168. package/dist/runtime-api.js +0 -104
  1169. package/dist/runtime-api.js.map +0 -7
  1170. package/dist/rust-crypto-7KS7OJ3F.js +0 -5323
  1171. package/dist/rust-crypto-7KS7OJ3F.js.map +0 -7
  1172. package/dist/rust-crypto-H35BXWUU.js +0 -5323
  1173. package/dist/rust-crypto-H35BXWUU.js.map +0 -7
  1174. package/dist/secret-contract-api.js +0 -18
  1175. package/dist/secret-contract-api.js.map +0 -7
  1176. package/dist/setup-entry.js +0 -22
  1177. package/dist/setup-entry.js.map +0 -7
  1178. package/dist/src/account-selection.js +0 -19
  1179. package/dist/src/account-selection.js.map +0 -7
  1180. package/dist/src/actions.js +0 -24
  1181. package/dist/src/actions.js.map +0 -7
  1182. package/dist/src/approval-auth.js +0 -27
  1183. package/dist/src/approval-auth.js.map +0 -7
  1184. package/dist/src/approval-handler.runtime.js +0 -378
  1185. package/dist/src/approval-handler.runtime.js.map +0 -7
  1186. package/dist/src/approval-ids.js +0 -9
  1187. package/dist/src/approval-ids.js.map +0 -7
  1188. package/dist/src/approval-native.js +0 -28
  1189. package/dist/src/approval-native.js.map +0 -7
  1190. package/dist/src/approval-reactions.js +0 -20
  1191. package/dist/src/approval-reactions.js.map +0 -7
  1192. package/dist/src/auth-precedence.js +0 -8
  1193. package/dist/src/auth-precedence.js.map +0 -7
  1194. package/dist/src/channel-account-paths.js +0 -11
  1195. package/dist/src/channel-account-paths.js.map +0 -7
  1196. package/dist/src/channel.js +0 -74
  1197. package/dist/src/channel.js.map +0 -7
  1198. package/dist/src/channel.runtime.js +0 -82
  1199. package/dist/src/channel.runtime.js.map +0 -7
  1200. package/dist/src/cli-metadata.js +0 -8
  1201. package/dist/src/cli-metadata.js.map +0 -7
  1202. package/dist/src/cli.js +0 -936
  1203. package/dist/src/cli.js.map +0 -7
  1204. package/dist/src/config-adapter.js +0 -26
  1205. package/dist/src/config-adapter.js.map +0 -7
  1206. package/dist/src/config-schema.js +0 -8
  1207. package/dist/src/config-schema.js.map +0 -7
  1208. package/dist/src/directory-live.js +0 -35
  1209. package/dist/src/directory-live.js.map +0 -7
  1210. package/dist/src/doctor-contract.js +0 -11
  1211. package/dist/src/doctor-contract.js.map +0 -7
  1212. package/dist/src/doctor.js +0 -42
  1213. package/dist/src/doctor.js.map +0 -7
  1214. package/dist/src/env-vars.js +0 -12
  1215. package/dist/src/env-vars.js.map +0 -7
  1216. package/dist/src/exec-approval-resolver.js +0 -10
  1217. package/dist/src/exec-approval-resolver.js.map +0 -7
  1218. package/dist/src/exec-approvals.js +0 -51
  1219. package/dist/src/exec-approvals.js.map +0 -7
  1220. package/dist/src/group-mentions.js +0 -28
  1221. package/dist/src/group-mentions.js.map +0 -7
  1222. package/dist/src/legacy-crypto-inspector-availability.js +0 -8
  1223. package/dist/src/legacy-crypto-inspector-availability.js.map +0 -7
  1224. package/dist/src/legacy-crypto.js +0 -26
  1225. package/dist/src/legacy-crypto.js.map +0 -7
  1226. package/dist/src/legacy-state.js +0 -24
  1227. package/dist/src/legacy-state.js.map +0 -7
  1228. package/dist/src/matrix/account-config.js +0 -16
  1229. package/dist/src/matrix/account-config.js.map +0 -7
  1230. package/dist/src/matrix/accounts.js +0 -31
  1231. package/dist/src/matrix/accounts.js.map +0 -7
  1232. package/dist/src/matrix/actions/client.js +0 -40
  1233. package/dist/src/matrix/actions/client.js.map +0 -7
  1234. package/dist/src/matrix/actions/devices.js +0 -42
  1235. package/dist/src/matrix/actions/devices.js.map +0 -7
  1236. package/dist/src/matrix/actions/limits.js +0 -8
  1237. package/dist/src/matrix/actions/limits.js.map +0 -7
  1238. package/dist/src/matrix/actions/messages.js +0 -49
  1239. package/dist/src/matrix/actions/messages.js.map +0 -7
  1240. package/dist/src/matrix/actions/pins.js +0 -46
  1241. package/dist/src/matrix/actions/pins.js.map +0 -7
  1242. package/dist/src/matrix/actions/polls.js +0 -37
  1243. package/dist/src/matrix/actions/polls.js.map +0 -7
  1244. package/dist/src/matrix/actions/profile.js +0 -38
  1245. package/dist/src/matrix/actions/profile.js.map +0 -7
  1246. package/dist/src/matrix/actions/reactions.js +0 -40
  1247. package/dist/src/matrix/actions/reactions.js.map +0 -7
  1248. package/dist/src/matrix/actions/room.js +0 -40
  1249. package/dist/src/matrix/actions/room.js.map +0 -7
  1250. package/dist/src/matrix/actions/summary.js +0 -19
  1251. package/dist/src/matrix/actions/summary.js.map +0 -7
  1252. package/dist/src/matrix/actions/types.js +0 -13
  1253. package/dist/src/matrix/actions/types.js.map +0 -7
  1254. package/dist/src/matrix/actions/verification.js +0 -77
  1255. package/dist/src/matrix/actions/verification.js.map +0 -7
  1256. package/dist/src/matrix/actions.js +0 -126
  1257. package/dist/src/matrix/actions.js.map +0 -7
  1258. package/dist/src/matrix/active-client.js +0 -10
  1259. package/dist/src/matrix/active-client.js.map +0 -7
  1260. package/dist/src/matrix/async-lock.js +0 -8
  1261. package/dist/src/matrix/async-lock.js.map +0 -7
  1262. package/dist/src/matrix/backup-health.js +0 -10
  1263. package/dist/src/matrix/backup-health.js.map +0 -7
  1264. package/dist/src/matrix/client/config-runtime-api.js +0 -24
  1265. package/dist/src/matrix/client/config-runtime-api.js.map +0 -7
  1266. package/dist/src/matrix/client/config-secret-input.runtime.js +0 -11
  1267. package/dist/src/matrix/client/config-secret-input.runtime.js.map +0 -7
  1268. package/dist/src/matrix/client/config.js +0 -42
  1269. package/dist/src/matrix/client/config.js.map +0 -7
  1270. package/dist/src/matrix/client/create-client.js +0 -20
  1271. package/dist/src/matrix/client/create-client.js.map +0 -7
  1272. package/dist/src/matrix/client/env-auth.js +0 -26
  1273. package/dist/src/matrix/client/env-auth.js.map +0 -7
  1274. package/dist/src/matrix/client/file-sync-store.js +0 -23
  1275. package/dist/src/matrix/client/file-sync-store.js.map +0 -7
  1276. package/dist/src/matrix/client/logging.js +0 -17
  1277. package/dist/src/matrix/client/logging.js.map +0 -7
  1278. package/dist/src/matrix/client/migration-snapshot.runtime.js +0 -13
  1279. package/dist/src/matrix/client/migration-snapshot.runtime.js.map +0 -7
  1280. package/dist/src/matrix/client/private-network-host.js +0 -8
  1281. package/dist/src/matrix/client/private-network-host.js.map +0 -7
  1282. package/dist/src/matrix/client/runtime.js +0 -8
  1283. package/dist/src/matrix/client/runtime.js.map +0 -7
  1284. package/dist/src/matrix/client/shared.js +0 -34
  1285. package/dist/src/matrix/client/shared.js.map +0 -7
  1286. package/dist/src/matrix/client/storage.js +0 -26
  1287. package/dist/src/matrix/client/storage.js.map +0 -7
  1288. package/dist/src/matrix/client/types.js +0 -7
  1289. package/dist/src/matrix/client/types.js.map +0 -7
  1290. package/dist/src/matrix/client-bootstrap.js +0 -15
  1291. package/dist/src/matrix/client-bootstrap.js.map +0 -7
  1292. package/dist/src/matrix/client-resolver.test-helpers.js +0 -122
  1293. package/dist/src/matrix/client-resolver.test-helpers.js.map +0 -7
  1294. package/dist/src/matrix/client.js +0 -63
  1295. package/dist/src/matrix/client.js.map +0 -7
  1296. package/dist/src/matrix/config-paths.js +0 -12
  1297. package/dist/src/matrix/config-paths.js.map +0 -7
  1298. package/dist/src/matrix/config-update.js +0 -17
  1299. package/dist/src/matrix/config-update.js.map +0 -7
  1300. package/dist/src/matrix/credentials-read.js +0 -22
  1301. package/dist/src/matrix/credentials-read.js.map +0 -7
  1302. package/dist/src/matrix/credentials-write.runtime.js +0 -24
  1303. package/dist/src/matrix/credentials-write.runtime.js.map +0 -7
  1304. package/dist/src/matrix/credentials.js +0 -90
  1305. package/dist/src/matrix/credentials.js.map +0 -7
  1306. package/dist/src/matrix/deps.js +0 -12
  1307. package/dist/src/matrix/deps.js.map +0 -7
  1308. package/dist/src/matrix/device-health.js +0 -10
  1309. package/dist/src/matrix/device-health.js.map +0 -7
  1310. package/dist/src/matrix/direct-management.js +0 -18
  1311. package/dist/src/matrix/direct-management.js.map +0 -7
  1312. package/dist/src/matrix/direct-room.js +0 -18
  1313. package/dist/src/matrix/direct-room.js.map +0 -7
  1314. package/dist/src/matrix/draft-stream.js +0 -33
  1315. package/dist/src/matrix/draft-stream.js.map +0 -7
  1316. package/dist/src/matrix/encryption-guidance.js +0 -17
  1317. package/dist/src/matrix/encryption-guidance.js.map +0 -7
  1318. package/dist/src/matrix/errors.js +0 -12
  1319. package/dist/src/matrix/errors.js.map +0 -7
  1320. package/dist/src/matrix/format.js +0 -13
  1321. package/dist/src/matrix/format.js.map +0 -7
  1322. package/dist/src/matrix/legacy-crypto-inspector.js +0 -72
  1323. package/dist/src/matrix/legacy-crypto-inspector.js.map +0 -7
  1324. package/dist/src/matrix/media-errors.js +0 -12
  1325. package/dist/src/matrix/media-errors.js.map +0 -7
  1326. package/dist/src/matrix/media-text.js +0 -22
  1327. package/dist/src/matrix/media-text.js.map +0 -7
  1328. package/dist/src/matrix/monitor/access-state.js +0 -9
  1329. package/dist/src/matrix/monitor/access-state.js.map +0 -7
  1330. package/dist/src/matrix/monitor/ack-config.js +0 -10
  1331. package/dist/src/matrix/monitor/ack-config.js.map +0 -7
  1332. package/dist/src/matrix/monitor/allowlist.js +0 -12
  1333. package/dist/src/matrix/monitor/allowlist.js.map +0 -7
  1334. package/dist/src/matrix/monitor/auto-join.js +0 -9
  1335. package/dist/src/matrix/monitor/auto-join.js.map +0 -7
  1336. package/dist/src/matrix/monitor/config.js +0 -37
  1337. package/dist/src/matrix/monitor/config.js.map +0 -7
  1338. package/dist/src/matrix/monitor/context-summary.js +0 -13
  1339. package/dist/src/matrix/monitor/context-summary.js.map +0 -7
  1340. package/dist/src/matrix/monitor/direct.js +0 -13
  1341. package/dist/src/matrix/monitor/direct.js.map +0 -7
  1342. package/dist/src/matrix/monitor/events.js +0 -20
  1343. package/dist/src/matrix/monitor/events.js.map +0 -7
  1344. package/dist/src/matrix/monitor/handler.js +0 -76
  1345. package/dist/src/matrix/monitor/handler.js.map +0 -7
  1346. package/dist/src/matrix/monitor/handler.test-helpers.js +0 -268
  1347. package/dist/src/matrix/monitor/handler.test-helpers.js.map +0 -7
  1348. package/dist/src/matrix/monitor/inbound-dedupe.js +0 -17
  1349. package/dist/src/matrix/monitor/inbound-dedupe.js.map +0 -7
  1350. package/dist/src/matrix/monitor/index.js +0 -502
  1351. package/dist/src/matrix/monitor/index.js.map +0 -7
  1352. package/dist/src/matrix/monitor/legacy-crypto-restore.js +0 -99
  1353. package/dist/src/matrix/monitor/legacy-crypto-restore.js.map +0 -7
  1354. package/dist/src/matrix/monitor/location.js +0 -11
  1355. package/dist/src/matrix/monitor/location.js.map +0 -7
  1356. package/dist/src/matrix/monitor/media.js +0 -10
  1357. package/dist/src/matrix/monitor/media.js.map +0 -7
  1358. package/dist/src/matrix/monitor/mentions.js +0 -9
  1359. package/dist/src/matrix/monitor/mentions.js.map +0 -7
  1360. package/dist/src/matrix/monitor/reaction-events.js +0 -38
  1361. package/dist/src/matrix/monitor/reaction-events.js.map +0 -7
  1362. package/dist/src/matrix/monitor/recent-invite.js +0 -10
  1363. package/dist/src/matrix/monitor/recent-invite.js.map +0 -7
  1364. package/dist/src/matrix/monitor/replies.js +0 -33
  1365. package/dist/src/matrix/monitor/replies.js.map +0 -7
  1366. package/dist/src/matrix/monitor/reply-context.js +0 -14
  1367. package/dist/src/matrix/monitor/reply-context.js.map +0 -7
  1368. package/dist/src/matrix/monitor/room-history.js +0 -10
  1369. package/dist/src/matrix/monitor/room-history.js.map +0 -7
  1370. package/dist/src/matrix/monitor/room-info.js +0 -9
  1371. package/dist/src/matrix/monitor/room-info.js.map +0 -7
  1372. package/dist/src/matrix/monitor/rooms.js +0 -9
  1373. package/dist/src/matrix/monitor/rooms.js.map +0 -7
  1374. package/dist/src/matrix/monitor/route.js +0 -12
  1375. package/dist/src/matrix/monitor/route.js.map +0 -7
  1376. package/dist/src/matrix/monitor/runtime-api.js +0 -40
  1377. package/dist/src/matrix/monitor/runtime-api.js.map +0 -7
  1378. package/dist/src/matrix/monitor/startup-verification.js +0 -174
  1379. package/dist/src/matrix/monitor/startup-verification.js.map +0 -7
  1380. package/dist/src/matrix/monitor/startup.js +0 -9
  1381. package/dist/src/matrix/monitor/startup.js.map +0 -7
  1382. package/dist/src/matrix/monitor/status.js +0 -10
  1383. package/dist/src/matrix/monitor/status.js.map +0 -7
  1384. package/dist/src/matrix/monitor/sync-lifecycle.js +0 -9
  1385. package/dist/src/matrix/monitor/sync-lifecycle.js.map +0 -7
  1386. package/dist/src/matrix/monitor/task-runner.js +0 -8
  1387. package/dist/src/matrix/monitor/task-runner.js.map +0 -7
  1388. package/dist/src/matrix/monitor/thread-context.js +0 -14
  1389. package/dist/src/matrix/monitor/thread-context.js.map +0 -7
  1390. package/dist/src/matrix/monitor/threads.js +0 -16
  1391. package/dist/src/matrix/monitor/threads.js.map +0 -7
  1392. package/dist/src/matrix/monitor/types.js +0 -11
  1393. package/dist/src/matrix/monitor/types.js.map +0 -7
  1394. package/dist/src/matrix/monitor/verification-events.js +0 -13
  1395. package/dist/src/matrix/monitor/verification-events.js.map +0 -7
  1396. package/dist/src/matrix/monitor/verification-utils.js +0 -16
  1397. package/dist/src/matrix/monitor/verification-utils.js.map +0 -7
  1398. package/dist/src/matrix/outbound-media-runtime.js +0 -9
  1399. package/dist/src/matrix/outbound-media-runtime.js.map +0 -7
  1400. package/dist/src/matrix/poll-summary.js +0 -14
  1401. package/dist/src/matrix/poll-summary.js.map +0 -7
  1402. package/dist/src/matrix/poll-types.js +0 -55
  1403. package/dist/src/matrix/poll-types.js.map +0 -7
  1404. package/dist/src/matrix/probe.js +0 -9
  1405. package/dist/src/matrix/probe.js.map +0 -7
  1406. package/dist/src/matrix/probe.runtime.js +0 -30
  1407. package/dist/src/matrix/probe.runtime.js.map +0 -7
  1408. package/dist/src/matrix/profile.js +0 -16
  1409. package/dist/src/matrix/profile.js.map +0 -7
  1410. package/dist/src/matrix/reaction-common.js +0 -26
  1411. package/dist/src/matrix/reaction-common.js.map +0 -7
  1412. package/dist/src/matrix/sdk/crypto-bootstrap.js +0 -15
  1413. package/dist/src/matrix/sdk/crypto-bootstrap.js.map +0 -7
  1414. package/dist/src/matrix/sdk/crypto-facade.js +0 -8
  1415. package/dist/src/matrix/sdk/crypto-facade.js.map +0 -7
  1416. package/dist/src/matrix/sdk/crypto-node.runtime.js +0 -14
  1417. package/dist/src/matrix/sdk/crypto-node.runtime.js.map +0 -7
  1418. package/dist/src/matrix/sdk/crypto-runtime.js +0 -84
  1419. package/dist/src/matrix/sdk/crypto-runtime.js.map +0 -7
  1420. package/dist/src/matrix/sdk/decrypt-bridge.js +0 -11
  1421. package/dist/src/matrix/sdk/decrypt-bridge.js.map +0 -7
  1422. package/dist/src/matrix/sdk/event-helpers.js +0 -12
  1423. package/dist/src/matrix/sdk/event-helpers.js.map +0 -7
  1424. package/dist/src/matrix/sdk/http-client.js +0 -13
  1425. package/dist/src/matrix/sdk/http-client.js.map +0 -7
  1426. package/dist/src/matrix/sdk/idb-persistence-lock.js +0 -12
  1427. package/dist/src/matrix/sdk/idb-persistence-lock.js.map +0 -7
  1428. package/dist/src/matrix/sdk/idb-persistence.js +0 -13
  1429. package/dist/src/matrix/sdk/idb-persistence.js.map +0 -7
  1430. package/dist/src/matrix/sdk/idb-persistence.test-helpers.js +0 -83
  1431. package/dist/src/matrix/sdk/idb-persistence.test-helpers.js.map +0 -7
  1432. package/dist/src/matrix/sdk/logger.js +0 -15
  1433. package/dist/src/matrix/sdk/logger.js.map +0 -7
  1434. package/dist/src/matrix/sdk/read-response-with-limit.js +0 -8
  1435. package/dist/src/matrix/sdk/read-response-with-limit.js.map +0 -7
  1436. package/dist/src/matrix/sdk/recovery-key-store.js +0 -14
  1437. package/dist/src/matrix/sdk/recovery-key-store.js.map +0 -7
  1438. package/dist/src/matrix/sdk/transport.js +0 -13
  1439. package/dist/src/matrix/sdk/transport.js.map +0 -7
  1440. package/dist/src/matrix/sdk/types.js +0 -7
  1441. package/dist/src/matrix/sdk/types.js.map +0 -7
  1442. package/dist/src/matrix/sdk/verification-manager.js +0 -11
  1443. package/dist/src/matrix/sdk/verification-manager.js.map +0 -7
  1444. package/dist/src/matrix/sdk/verification-status.js +0 -12
  1445. package/dist/src/matrix/sdk/verification-status.js.map +0 -7
  1446. package/dist/src/matrix/sdk.js +0 -1375
  1447. package/dist/src/matrix/sdk.js.map +0 -7
  1448. package/dist/src/matrix/send/client.js +0 -14
  1449. package/dist/src/matrix/send/client.js.map +0 -7
  1450. package/dist/src/matrix/send/formatting.js +0 -29
  1451. package/dist/src/matrix/send/formatting.js.map +0 -7
  1452. package/dist/src/matrix/send/media.js +0 -26
  1453. package/dist/src/matrix/send/media.js.map +0 -7
  1454. package/dist/src/matrix/send/targets.js +0 -15
  1455. package/dist/src/matrix/send/targets.js.map +0 -7
  1456. package/dist/src/matrix/send/types.js +0 -17
  1457. package/dist/src/matrix/send/types.js.map +0 -7
  1458. package/dist/src/matrix/send.js +0 -51
  1459. package/dist/src/matrix/send.js.map +0 -7
  1460. package/dist/src/matrix/session-store-metadata.js +0 -15
  1461. package/dist/src/matrix/session-store-metadata.js.map +0 -7
  1462. package/dist/src/matrix/startup-abort.js +0 -14
  1463. package/dist/src/matrix/startup-abort.js.map +0 -7
  1464. package/dist/src/matrix/sync-state.js +0 -12
  1465. package/dist/src/matrix/sync-state.js.map +0 -7
  1466. package/dist/src/matrix/target-ids.js +0 -20
  1467. package/dist/src/matrix/target-ids.js.map +0 -7
  1468. package/dist/src/matrix/thread-bindings-shared.js +0 -34
  1469. package/dist/src/matrix/thread-bindings-shared.js.map +0 -7
  1470. package/dist/src/matrix/thread-bindings.js +0 -49
  1471. package/dist/src/matrix/thread-bindings.js.map +0 -7
  1472. package/dist/src/matrix-migration.runtime.js +0 -45
  1473. package/dist/src/matrix-migration.runtime.js.map +0 -7
  1474. package/dist/src/migration-config.js +0 -29
  1475. package/dist/src/migration-config.js.map +0 -7
  1476. package/dist/src/migration-snapshot-backup.js +0 -12
  1477. package/dist/src/migration-snapshot-backup.js.map +0 -7
  1478. package/dist/src/migration-snapshot.js +0 -38
  1479. package/dist/src/migration-snapshot.js.map +0 -7
  1480. package/dist/src/onboarding.js +0 -43
  1481. package/dist/src/onboarding.js.map +0 -7
  1482. package/dist/src/onboarding.test-harness.js +0 -124
  1483. package/dist/src/onboarding.test-harness.js.map +0 -7
  1484. package/dist/src/outbound.js +0 -33
  1485. package/dist/src/outbound.js.map +0 -7
  1486. package/dist/src/plugin-entry.runtime.js +0 -15
  1487. package/dist/src/plugin-entry.runtime.js.map +0 -7
  1488. package/dist/src/profile-update.js +0 -41
  1489. package/dist/src/profile-update.js.map +0 -7
  1490. package/dist/src/record-shared.js +0 -8
  1491. package/dist/src/record-shared.js.map +0 -7
  1492. package/dist/src/resolve-targets.js +0 -34
  1493. package/dist/src/resolve-targets.js.map +0 -7
  1494. package/dist/src/resolver.js +0 -8
  1495. package/dist/src/resolver.js.map +0 -7
  1496. package/dist/src/runtime-api.js +0 -120
  1497. package/dist/src/runtime-api.js.map +0 -7
  1498. package/dist/src/runtime.js +0 -10
  1499. package/dist/src/runtime.js.map +0 -7
  1500. package/dist/src/secret-contract.js +0 -13
  1501. package/dist/src/secret-contract.js.map +0 -7
  1502. package/dist/src/session-route.js +0 -25
  1503. package/dist/src/session-route.js.map +0 -7
  1504. package/dist/src/setup-bootstrap.js +0 -124
  1505. package/dist/src/setup-bootstrap.js.map +0 -7
  1506. package/dist/src/setup-config.js +0 -28
  1507. package/dist/src/setup-config.js.map +0 -7
  1508. package/dist/src/setup-contract.js +0 -16
  1509. package/dist/src/setup-contract.js.map +0 -7
  1510. package/dist/src/setup-core.js +0 -25
  1511. package/dist/src/setup-core.js.map +0 -7
  1512. package/dist/src/setup-surface.js +0 -45
  1513. package/dist/src/setup-surface.js.map +0 -7
  1514. package/dist/src/startup-maintenance.js +0 -29
  1515. package/dist/src/startup-maintenance.js.map +0 -7
  1516. package/dist/src/storage-paths.js +0 -24
  1517. package/dist/src/storage-paths.js.map +0 -7
  1518. package/dist/src/test-helpers.js +0 -49
  1519. package/dist/src/test-helpers.js.map +0 -7
  1520. package/dist/src/test-mocks.js +0 -40
  1521. package/dist/src/test-mocks.js.map +0 -7
  1522. package/dist/src/test-runtime.js +0 -65
  1523. package/dist/src/test-runtime.js.map +0 -7
  1524. package/dist/src/tool-actions.js +0 -68
  1525. package/dist/src/tool-actions.js.map +0 -7
  1526. package/dist/src/tool-actions.runtime.js +0 -73
  1527. package/dist/src/tool-actions.runtime.js.map +0 -7
  1528. package/dist/src/types.js +0 -7
  1529. package/dist/src/types.js.map +0 -7
  1530. package/dist/test-api.js +0 -82
  1531. package/dist/test-api.js.map +0 -7
  1532. package/dist/thread-bindings-runtime.js +0 -15
  1533. package/dist/thread-bindings-runtime.js.map +0 -7
@@ -0,0 +1,1524 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import type { CoreConfig } from "../../types.js";
3
+ import type { MatrixAuth } from "../client.js";
4
+ import type { MatrixClient } from "../sdk.js";
5
+ import type { MatrixVerificationSummary } from "../sdk/verification-manager.js";
6
+ import { registerMatrixMonitorEvents } from "./events.js";
7
+ import type { MatrixRawEvent } from "./types.js";
8
+ import { EventType } from "./types.js";
9
+
10
+ type RoomEventListener = (roomId: string, event: MatrixRawEvent) => void;
11
+ type FailedDecryptListener = (roomId: string, event: MatrixRawEvent, error: Error) => Promise<void>;
12
+ type VerificationSummaryListener = (summary: MatrixVerificationSummary) => void;
13
+
14
+ function getSentNoticeBody(sendMessage: ReturnType<typeof vi.fn>, index = 0): string {
15
+ const calls = sendMessage.mock.calls as unknown[][];
16
+ return getSentNoticeBodyFromCall(calls[index] ?? []);
17
+ }
18
+
19
+ function getSentNoticeBodyFromCall(call: unknown[]): string {
20
+ const payload = (call[1] ?? {}) as { body?: string };
21
+ return payload.body ?? "";
22
+ }
23
+
24
+ function getSentNoticeBodies(sendMessage: ReturnType<typeof vi.fn>): string[] {
25
+ return (sendMessage.mock.calls as unknown[][]).map(getSentNoticeBodyFromCall);
26
+ }
27
+
28
+ function createHarness(params?: {
29
+ cfg?: CoreConfig;
30
+ accountId?: string;
31
+ authEncryption?: boolean;
32
+ cryptoAvailable?: boolean;
33
+ selfUserId?: string;
34
+ selfUserIdError?: Error;
35
+ allowFrom?: string[];
36
+ dmEnabled?: boolean;
37
+ dmPolicy?: "open" | "pairing" | "allowlist" | "disabled";
38
+ storeAllowFrom?: string[];
39
+ accountDataByType?: Record<string, unknown>;
40
+ joinedMembersByRoom?: Record<string, string[]>;
41
+ getJoinedRoomsError?: Error;
42
+ memberStateByRoomUser?: Record<string, Record<string, { is_direct?: boolean }>>;
43
+ verifications?: Array<{
44
+ id: string;
45
+ transactionId?: string;
46
+ roomId?: string;
47
+ otherUserId: string;
48
+ updatedAt?: string;
49
+ completed?: boolean;
50
+ pending?: boolean;
51
+ phase?: number;
52
+ phaseName?: string;
53
+ sas?: {
54
+ decimal?: [number, number, number];
55
+ emoji?: Array<[string, string]>;
56
+ };
57
+ }>;
58
+ ensureVerificationDmTracked?: () => Promise<{
59
+ id: string;
60
+ transactionId?: string;
61
+ roomId?: string;
62
+ otherUserId: string;
63
+ updatedAt?: string;
64
+ completed?: boolean;
65
+ pending?: boolean;
66
+ phase?: number;
67
+ phaseName?: string;
68
+ sas?: {
69
+ decimal?: [number, number, number];
70
+ emoji?: Array<[string, string]>;
71
+ };
72
+ } | null>;
73
+ }) {
74
+ const listeners = new Map<string, (...args: unknown[]) => void>();
75
+ const onRoomMessage = vi.fn(async () => {});
76
+ const listVerifications = vi.fn(async () => params?.verifications ?? []);
77
+ const ensureVerificationDmTracked = vi.fn(
78
+ params?.ensureVerificationDmTracked ?? (async () => null),
79
+ );
80
+ const sendMessage = vi.fn(async (_roomId: string, _payload: { body?: string }) => "$notice");
81
+ const invalidateRoom = vi.fn();
82
+ const rememberInvite = vi.fn();
83
+ const logger = { info: vi.fn(), warn: vi.fn(), error: vi.fn() };
84
+ const formatNativeDependencyHint = vi.fn(() => "install hint");
85
+ const logVerboseMessage = vi.fn();
86
+ const readStoreAllowFrom = vi.fn(async () => params?.storeAllowFrom ?? []);
87
+ const client = {
88
+ on: vi.fn((eventName: string, listener: (...args: unknown[]) => void) => {
89
+ listeners.set(eventName, listener);
90
+ return client;
91
+ }),
92
+ sendMessage,
93
+ getUserId: vi.fn(async () => {
94
+ if (params?.selfUserIdError) {
95
+ throw params.selfUserIdError;
96
+ }
97
+ return params?.selfUserId ?? "@bot:example.org";
98
+ }),
99
+ getJoinedRoomMembers: vi.fn(
100
+ async (roomId: string) =>
101
+ params?.joinedMembersByRoom?.[roomId] ?? ["@bot:example.org", "@alice:example.org"],
102
+ ),
103
+ getJoinedRooms: vi.fn(async () =>
104
+ params?.getJoinedRoomsError
105
+ ? await Promise.reject(params.getJoinedRoomsError)
106
+ : Object.keys(params?.joinedMembersByRoom ?? {}).length > 0
107
+ ? Object.keys(params?.joinedMembersByRoom ?? {})
108
+ : ["!room:example.org"],
109
+ ),
110
+ getAccountData: vi.fn(
111
+ async (eventType: string) =>
112
+ (params?.accountDataByType?.[eventType] as Record<string, unknown> | undefined) ??
113
+ undefined,
114
+ ),
115
+ getRoomStateEvent: vi.fn(
116
+ async (roomId: string, _eventType: string, stateKey: string) =>
117
+ params?.memberStateByRoomUser?.[roomId]?.[stateKey] ?? {},
118
+ ),
119
+ ...(params?.cryptoAvailable === false
120
+ ? {}
121
+ : {
122
+ crypto: {
123
+ listVerifications,
124
+ ensureVerificationDmTracked,
125
+ },
126
+ }),
127
+ } as unknown as MatrixClient;
128
+
129
+ registerMatrixMonitorEvents({
130
+ cfg: params?.cfg ?? { channels: { matrix: {} } },
131
+ client,
132
+ auth: {
133
+ accountId: params?.accountId ?? "default",
134
+ encryption: params?.authEncryption ?? true,
135
+ } as MatrixAuth,
136
+ allowFrom: params?.allowFrom ?? [],
137
+ dmEnabled: params?.dmEnabled ?? true,
138
+ dmPolicy: params?.dmPolicy ?? "open",
139
+ readStoreAllowFrom,
140
+ directTracker: {
141
+ invalidateRoom,
142
+ rememberInvite,
143
+ },
144
+ logVerboseMessage,
145
+ warnedEncryptedRooms: new Set<string>(),
146
+ warnedCryptoMissingRooms: new Set<string>(),
147
+ logger,
148
+ formatNativeDependencyHint,
149
+ onRoomMessage,
150
+ });
151
+
152
+ const roomEventListener = listeners.get("room.event") as RoomEventListener | undefined;
153
+ if (!roomEventListener) {
154
+ throw new Error("room.event listener was not registered");
155
+ }
156
+
157
+ return {
158
+ onRoomMessage,
159
+ sendMessage,
160
+ invalidateRoom,
161
+ rememberInvite,
162
+ roomEventListener,
163
+ listVerifications,
164
+ readStoreAllowFrom,
165
+ logger,
166
+ formatNativeDependencyHint,
167
+ logVerboseMessage,
168
+ roomMessageListener: listeners.get("room.message") as RoomEventListener | undefined,
169
+ failedDecryptListener: listeners.get("room.failed_decryption") as
170
+ | FailedDecryptListener
171
+ | undefined,
172
+ verificationSummaryListener: listeners.get("verification.summary") as
173
+ | VerificationSummaryListener
174
+ | undefined,
175
+ roomInviteListener: listeners.get("room.invite") as RoomEventListener | undefined,
176
+ roomJoinListener: listeners.get("room.join") as RoomEventListener | undefined,
177
+ };
178
+ }
179
+
180
+ describe("registerMatrixMonitorEvents verification routing", () => {
181
+ it("does not repost historical verification completions during startup catch-up", async () => {
182
+ vi.useFakeTimers();
183
+ vi.setSystemTime(new Date("2026-03-14T13:10:00.000Z"));
184
+ try {
185
+ const { sendMessage, roomEventListener } = createHarness();
186
+
187
+ roomEventListener("!room:example.org", {
188
+ event_id: "$done-old",
189
+ sender: "@alice:example.org",
190
+ type: "m.key.verification.done",
191
+ origin_server_ts: Date.now() - 10 * 60 * 1000,
192
+ content: {
193
+ "m.relates_to": { event_id: "$req-old" },
194
+ },
195
+ });
196
+
197
+ await vi.runAllTimersAsync();
198
+ expect(sendMessage).not.toHaveBeenCalled();
199
+ } finally {
200
+ vi.useRealTimers();
201
+ }
202
+ });
203
+
204
+ it("still posts fresh verification completions", async () => {
205
+ const { sendMessage, roomEventListener } = createHarness();
206
+
207
+ roomEventListener("!room:example.org", {
208
+ event_id: "$done-fresh",
209
+ sender: "@alice:example.org",
210
+ type: "m.key.verification.done",
211
+ origin_server_ts: Date.now(),
212
+ content: {
213
+ "m.relates_to": { event_id: "$req-fresh" },
214
+ },
215
+ });
216
+
217
+ await vi.dynamicImportSettled();
218
+ await vi.waitFor(() => {
219
+ expect(sendMessage).toHaveBeenCalledTimes(1);
220
+ });
221
+ expect(getSentNoticeBody(sendMessage)).toContain(
222
+ "Matrix verification completed with @alice:example.org.",
223
+ );
224
+ });
225
+
226
+ it("forwards reaction room events into the shared room handler", async () => {
227
+ const { onRoomMessage, sendMessage, roomEventListener } = createHarness();
228
+
229
+ roomEventListener("!room:example.org", {
230
+ event_id: "$reaction1",
231
+ sender: "@alice:example.org",
232
+ type: EventType.Reaction,
233
+ origin_server_ts: Date.now(),
234
+ content: {
235
+ "m.relates_to": {
236
+ rel_type: "m.annotation",
237
+ event_id: "$msg1",
238
+ key: "👍",
239
+ },
240
+ },
241
+ });
242
+
243
+ await vi.waitFor(() => {
244
+ expect(onRoomMessage).toHaveBeenCalledWith(
245
+ "!room:example.org",
246
+ expect.objectContaining({ event_id: "$reaction1", type: EventType.Reaction }),
247
+ );
248
+ });
249
+ expect(sendMessage).not.toHaveBeenCalled();
250
+ });
251
+
252
+ it("invalidates direct-room membership cache on room member events", async () => {
253
+ const { invalidateRoom, roomEventListener } = createHarness();
254
+
255
+ roomEventListener("!room:example.org", {
256
+ event_id: "$member1",
257
+ sender: "@alice:example.org",
258
+ state_key: "@mallory:example.org",
259
+ type: EventType.RoomMember,
260
+ origin_server_ts: Date.now(),
261
+ content: {
262
+ membership: "join",
263
+ },
264
+ });
265
+
266
+ expect(invalidateRoom).toHaveBeenCalledWith("!room:example.org");
267
+ });
268
+
269
+ it("remembers invite provenance on room invites", async () => {
270
+ const { invalidateRoom, rememberInvite, roomInviteListener } = createHarness();
271
+ if (!roomInviteListener) {
272
+ throw new Error("room.invite listener was not registered");
273
+ }
274
+
275
+ roomInviteListener("!room:example.org", {
276
+ event_id: "$invite1",
277
+ sender: "@alice:example.org",
278
+ type: EventType.RoomMember,
279
+ origin_server_ts: Date.now(),
280
+ content: {
281
+ membership: "invite",
282
+ is_direct: true,
283
+ },
284
+ state_key: "@bot:example.org",
285
+ });
286
+
287
+ expect(invalidateRoom).toHaveBeenCalledWith("!room:example.org");
288
+ expect(rememberInvite).toHaveBeenCalledWith("!room:example.org", "@alice:example.org");
289
+ });
290
+
291
+ it("ignores lifecycle-only invite events emitted with self sender ids", async () => {
292
+ const { invalidateRoom, rememberInvite, roomInviteListener } = createHarness();
293
+ if (!roomInviteListener) {
294
+ throw new Error("room.invite listener was not registered");
295
+ }
296
+
297
+ roomInviteListener("!room:example.org", {
298
+ event_id: "$invite-self",
299
+ sender: "@bot:example.org",
300
+ type: EventType.RoomMember,
301
+ origin_server_ts: Date.now(),
302
+ content: {
303
+ membership: "invite",
304
+ },
305
+ state_key: "@bot:example.org",
306
+ });
307
+
308
+ expect(invalidateRoom).toHaveBeenCalledWith("!room:example.org");
309
+ expect(rememberInvite).not.toHaveBeenCalled();
310
+ });
311
+
312
+ it("remembers invite provenance even when Matrix omits the direct invite hint", async () => {
313
+ const { invalidateRoom, rememberInvite, roomInviteListener } = createHarness();
314
+ if (!roomInviteListener) {
315
+ throw new Error("room.invite listener was not registered");
316
+ }
317
+
318
+ roomInviteListener("!room:example.org", {
319
+ event_id: "$invite-group",
320
+ sender: "@alice:example.org",
321
+ type: EventType.RoomMember,
322
+ origin_server_ts: Date.now(),
323
+ content: {
324
+ membership: "invite",
325
+ },
326
+ state_key: "@bot:example.org",
327
+ });
328
+
329
+ expect(invalidateRoom).toHaveBeenCalledWith("!room:example.org");
330
+ expect(rememberInvite).toHaveBeenCalledWith("!room:example.org", "@alice:example.org");
331
+ });
332
+
333
+ it("does not synthesize invite provenance from room joins", async () => {
334
+ const { invalidateRoom, rememberInvite, roomJoinListener } = createHarness();
335
+ if (!roomJoinListener) {
336
+ throw new Error("room.join listener was not registered");
337
+ }
338
+
339
+ roomJoinListener("!room:example.org", {
340
+ event_id: "$join1",
341
+ sender: "@bot:example.org",
342
+ type: EventType.RoomMember,
343
+ origin_server_ts: Date.now(),
344
+ content: {
345
+ membership: "join",
346
+ },
347
+ state_key: "@bot:example.org",
348
+ });
349
+
350
+ expect(invalidateRoom).toHaveBeenCalledWith("!room:example.org");
351
+ expect(rememberInvite).not.toHaveBeenCalled();
352
+ });
353
+
354
+ it("posts verification request notices directly into the room", async () => {
355
+ const { onRoomMessage, sendMessage, roomMessageListener } = createHarness();
356
+ if (!roomMessageListener) {
357
+ throw new Error("room.message listener was not registered");
358
+ }
359
+ roomMessageListener("!room:example.org", {
360
+ event_id: "$req1",
361
+ sender: "@alice:example.org",
362
+ type: EventType.RoomMessage,
363
+ origin_server_ts: Date.now(),
364
+ content: {
365
+ msgtype: "m.key.verification.request",
366
+ body: "verification request",
367
+ },
368
+ });
369
+
370
+ await vi.waitFor(() => {
371
+ expect(sendMessage).toHaveBeenCalledTimes(1);
372
+ });
373
+ expect(onRoomMessage).not.toHaveBeenCalled();
374
+ const body = getSentNoticeBody(sendMessage, 0);
375
+ expect(body).toContain("Matrix verification request received from @alice:example.org.");
376
+ expect(body).toContain('Open "Verify by emoji"');
377
+ });
378
+
379
+ it("blocks verification request notices when dmPolicy pairing would block the sender", async () => {
380
+ const { onRoomMessage, sendMessage, roomMessageListener, logVerboseMessage } = createHarness({
381
+ dmPolicy: "pairing",
382
+ });
383
+ if (!roomMessageListener) {
384
+ throw new Error("room.message listener was not registered");
385
+ }
386
+
387
+ roomMessageListener("!room:example.org", {
388
+ event_id: "$req-pairing-blocked",
389
+ sender: "@alice:example.org",
390
+ type: EventType.RoomMessage,
391
+ origin_server_ts: Date.now(),
392
+ content: {
393
+ msgtype: "m.key.verification.request",
394
+ body: "verification request",
395
+ },
396
+ });
397
+
398
+ await vi.waitFor(() => {
399
+ expect(logVerboseMessage).toHaveBeenCalledWith(
400
+ expect.stringContaining("blocked verification sender @alice:example.org"),
401
+ );
402
+ });
403
+ expect(sendMessage).not.toHaveBeenCalled();
404
+ expect(onRoomMessage).not.toHaveBeenCalled();
405
+ });
406
+
407
+ it("allows verification notices for pairing-authorized DM senders from the allow store", async () => {
408
+ const { sendMessage, roomMessageListener, readStoreAllowFrom } = createHarness({
409
+ dmPolicy: "pairing",
410
+ storeAllowFrom: ["@alice:example.org"],
411
+ });
412
+ if (!roomMessageListener) {
413
+ throw new Error("room.message listener was not registered");
414
+ }
415
+
416
+ roomMessageListener("!room:example.org", {
417
+ event_id: "$req-pairing-allowed",
418
+ sender: "@alice:example.org",
419
+ type: EventType.RoomMessage,
420
+ origin_server_ts: Date.now(),
421
+ content: {
422
+ msgtype: "m.key.verification.request",
423
+ body: "verification request",
424
+ },
425
+ });
426
+
427
+ await vi.waitFor(() => {
428
+ expect(sendMessage).toHaveBeenCalledTimes(1);
429
+ });
430
+ expect(readStoreAllowFrom).toHaveBeenCalled();
431
+ });
432
+
433
+ it("does not consult the allow store when dmPolicy is open", async () => {
434
+ const { sendMessage, roomMessageListener, readStoreAllowFrom } = createHarness({
435
+ dmPolicy: "open",
436
+ });
437
+ if (!roomMessageListener) {
438
+ throw new Error("room.message listener was not registered");
439
+ }
440
+
441
+ roomMessageListener("!room:example.org", {
442
+ event_id: "$req-open-policy",
443
+ sender: "@alice:example.org",
444
+ type: EventType.RoomMessage,
445
+ origin_server_ts: Date.now(),
446
+ content: {
447
+ msgtype: "m.key.verification.request",
448
+ body: "verification request",
449
+ },
450
+ });
451
+
452
+ await vi.waitFor(() => {
453
+ expect(sendMessage).toHaveBeenCalledTimes(1);
454
+ });
455
+ expect(readStoreAllowFrom).not.toHaveBeenCalled();
456
+ });
457
+
458
+ it("blocks verification notices when Matrix DMs are disabled", async () => {
459
+ const { sendMessage, roomMessageListener, logVerboseMessage } = createHarness({
460
+ dmEnabled: false,
461
+ });
462
+ if (!roomMessageListener) {
463
+ throw new Error("room.message listener was not registered");
464
+ }
465
+
466
+ roomMessageListener("!room:example.org", {
467
+ event_id: "$req-dm-disabled",
468
+ sender: "@alice:example.org",
469
+ type: EventType.RoomMessage,
470
+ origin_server_ts: Date.now(),
471
+ content: {
472
+ msgtype: "m.key.verification.request",
473
+ body: "verification request",
474
+ },
475
+ });
476
+
477
+ await vi.waitFor(() => {
478
+ expect(logVerboseMessage).toHaveBeenCalledWith(
479
+ expect.stringContaining("blocked verification sender @alice:example.org"),
480
+ );
481
+ });
482
+ expect(sendMessage).not.toHaveBeenCalled();
483
+ });
484
+
485
+ it("posts ready-stage guidance for emoji verification", async () => {
486
+ const { sendMessage, roomEventListener } = createHarness();
487
+ roomEventListener("!room:example.org", {
488
+ event_id: "$ready-1",
489
+ sender: "@alice:example.org",
490
+ type: "m.key.verification.ready",
491
+ origin_server_ts: Date.now(),
492
+ content: {
493
+ "m.relates_to": { event_id: "$req-ready-1" },
494
+ },
495
+ });
496
+
497
+ await vi.waitFor(() => {
498
+ expect(sendMessage).toHaveBeenCalledTimes(1);
499
+ });
500
+ const body = getSentNoticeBody(sendMessage, 0);
501
+ expect(body).toContain("Matrix verification is ready with @alice:example.org.");
502
+ expect(body).toContain('Choose "Verify by emoji"');
503
+ });
504
+
505
+ it("posts SAS emoji/decimal details when verification summaries expose them", async () => {
506
+ const {
507
+ sendMessage,
508
+ roomEventListener,
509
+ listVerifications: _listVerifications,
510
+ } = createHarness({
511
+ joinedMembersByRoom: {
512
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
513
+ },
514
+ verifications: [
515
+ {
516
+ id: "verification-1",
517
+ transactionId: "$different-flow-id",
518
+ updatedAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
519
+ otherUserId: "@alice:example.org",
520
+ sas: {
521
+ decimal: [6158, 1986, 3513],
522
+ emoji: [
523
+ ["🎁", "Gift"],
524
+ ["🌍", "Globe"],
525
+ ["🐴", "Horse"],
526
+ ],
527
+ },
528
+ },
529
+ ],
530
+ });
531
+
532
+ roomEventListener("!dm:example.org", {
533
+ event_id: "$start2",
534
+ sender: "@alice:example.org",
535
+ type: "m.key.verification.start",
536
+ origin_server_ts: Date.now(),
537
+ content: {
538
+ "m.relates_to": { event_id: "$req2" },
539
+ },
540
+ });
541
+
542
+ await vi.waitFor(() => {
543
+ const bodies = getSentNoticeBodies(sendMessage);
544
+ expect(bodies.some((body) => body.includes("SAS emoji:"))).toBe(true);
545
+ expect(bodies.some((body) => body.includes("SAS decimal: 6158 1986 3513"))).toBe(true);
546
+ });
547
+ });
548
+
549
+ it("rehydrates an in-progress DM verification before resolving SAS notices", async () => {
550
+ const verifications: Array<{
551
+ id: string;
552
+ transactionId?: string;
553
+ roomId?: string;
554
+ otherUserId: string;
555
+ updatedAt?: string;
556
+ completed?: boolean;
557
+ pending?: boolean;
558
+ phase?: number;
559
+ phaseName?: string;
560
+ sas?: {
561
+ decimal?: [number, number, number];
562
+ emoji?: Array<[string, string]>;
563
+ };
564
+ }> = [];
565
+ const { sendMessage, roomEventListener } = createHarness({
566
+ joinedMembersByRoom: {
567
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
568
+ },
569
+ verifications,
570
+ ensureVerificationDmTracked: async () => {
571
+ verifications.splice(0, verifications.length, {
572
+ id: "verification-rehydrated",
573
+ transactionId: "$req-hydrated",
574
+ roomId: "!dm:example.org",
575
+ otherUserId: "@alice:example.org",
576
+ updatedAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
577
+ phase: 3,
578
+ phaseName: "started",
579
+ pending: true,
580
+ sas: {
581
+ decimal: [2468, 1357, 9753],
582
+ emoji: [
583
+ ["🔔", "Bell"],
584
+ ["📁", "Folder"],
585
+ ["🐴", "Horse"],
586
+ ],
587
+ },
588
+ });
589
+ return verifications[0] ?? null;
590
+ },
591
+ });
592
+
593
+ roomEventListener("!dm:example.org", {
594
+ event_id: "$start-hydrated",
595
+ sender: "@alice:example.org",
596
+ type: "m.key.verification.start",
597
+ origin_server_ts: Date.now(),
598
+ content: {
599
+ "m.relates_to": { event_id: "$req-hydrated" },
600
+ },
601
+ });
602
+
603
+ await vi.waitFor(() => {
604
+ const bodies = getSentNoticeBodies(sendMessage);
605
+ expect(bodies.some((body) => body.includes("SAS decimal: 2468 1357 9753"))).toBe(true);
606
+ });
607
+ });
608
+
609
+ it("posts SAS notices directly from verification summary updates", async () => {
610
+ const { sendMessage, verificationSummaryListener } = createHarness({
611
+ joinedMembersByRoom: {
612
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
613
+ },
614
+ });
615
+ if (!verificationSummaryListener) {
616
+ throw new Error("verification.summary listener was not registered");
617
+ }
618
+
619
+ verificationSummaryListener({
620
+ id: "verification-direct",
621
+ roomId: "!dm:example.org",
622
+ otherUserId: "@alice:example.org",
623
+ isSelfVerification: false,
624
+ initiatedByMe: false,
625
+ phase: 3,
626
+ phaseName: "started",
627
+ pending: true,
628
+ methods: ["m.sas.v1"],
629
+ canAccept: false,
630
+ hasSas: true,
631
+ sas: {
632
+ decimal: [6158, 1986, 3513],
633
+ emoji: [
634
+ ["🎁", "Gift"],
635
+ ["🌍", "Globe"],
636
+ ["🐴", "Horse"],
637
+ ],
638
+ },
639
+ hasReciprocateQr: false,
640
+ completed: false,
641
+ createdAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
642
+ updatedAt: new Date("2026-02-25T21:42:55.000Z").toISOString(),
643
+ });
644
+
645
+ await vi.waitFor(() => {
646
+ expect(sendMessage).toHaveBeenCalledTimes(1);
647
+ });
648
+ const body = getSentNoticeBody(sendMessage, 0);
649
+ expect(body).toContain("Matrix verification SAS with @alice:example.org:");
650
+ expect(body).toContain("SAS decimal: 6158 1986 3513");
651
+ });
652
+
653
+ it("blocks summary SAS notices when dmPolicy allowlist would block the sender", async () => {
654
+ const { sendMessage, verificationSummaryListener, logVerboseMessage } = createHarness({
655
+ dmPolicy: "allowlist",
656
+ joinedMembersByRoom: {
657
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
658
+ },
659
+ });
660
+ if (!verificationSummaryListener) {
661
+ throw new Error("verification.summary listener was not registered");
662
+ }
663
+
664
+ verificationSummaryListener({
665
+ id: "verification-blocked-summary",
666
+ roomId: "!dm:example.org",
667
+ otherUserId: "@alice:example.org",
668
+ isSelfVerification: false,
669
+ initiatedByMe: false,
670
+ phase: 3,
671
+ phaseName: "started",
672
+ pending: true,
673
+ methods: ["m.sas.v1"],
674
+ canAccept: false,
675
+ hasSas: true,
676
+ sas: {
677
+ decimal: [6158, 1986, 3513],
678
+ emoji: [
679
+ ["🎁", "Gift"],
680
+ ["🌍", "Globe"],
681
+ ["🐴", "Horse"],
682
+ ],
683
+ },
684
+ hasReciprocateQr: false,
685
+ completed: false,
686
+ createdAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
687
+ updatedAt: new Date("2026-02-25T21:42:55.000Z").toISOString(),
688
+ });
689
+
690
+ await vi.waitFor(() => {
691
+ expect(logVerboseMessage).toHaveBeenCalledWith(
692
+ expect.stringContaining("blocked verification sender @alice:example.org"),
693
+ );
694
+ });
695
+ expect(sendMessage).not.toHaveBeenCalled();
696
+ });
697
+
698
+ it("posts SAS notices from summary updates using the room mapped by earlier flow events", async () => {
699
+ const { sendMessage, roomEventListener, verificationSummaryListener } = createHarness({
700
+ joinedMembersByRoom: {
701
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
702
+ },
703
+ });
704
+ if (!verificationSummaryListener) {
705
+ throw new Error("verification.summary listener was not registered");
706
+ }
707
+
708
+ roomEventListener("!dm:example.org", {
709
+ event_id: "$start-mapped",
710
+ sender: "@alice:example.org",
711
+ type: "m.key.verification.start",
712
+ origin_server_ts: Date.now(),
713
+ content: {
714
+ transaction_id: "txn-mapped-room",
715
+ "m.relates_to": { event_id: "$req-mapped" },
716
+ },
717
+ });
718
+
719
+ verificationSummaryListener({
720
+ id: "verification-mapped",
721
+ transactionId: "txn-mapped-room",
722
+ otherUserId: "@alice:example.org",
723
+ isSelfVerification: false,
724
+ initiatedByMe: false,
725
+ phase: 3,
726
+ phaseName: "started",
727
+ pending: true,
728
+ methods: ["m.sas.v1"],
729
+ canAccept: false,
730
+ hasSas: true,
731
+ sas: {
732
+ decimal: [1111, 2222, 3333],
733
+ emoji: [
734
+ ["🚀", "Rocket"],
735
+ ["🦋", "Butterfly"],
736
+ ["📕", "Book"],
737
+ ],
738
+ },
739
+ hasReciprocateQr: false,
740
+ completed: false,
741
+ createdAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
742
+ updatedAt: new Date("2026-02-25T21:42:55.000Z").toISOString(),
743
+ });
744
+
745
+ await vi.waitFor(() => {
746
+ const bodies = getSentNoticeBodies(sendMessage);
747
+ expect(bodies.some((body) => body.includes("SAS decimal: 1111 2222 3333"))).toBe(true);
748
+ });
749
+ });
750
+
751
+ it("posts SAS notices from summary updates using the active strict DM when room mapping is missing", async () => {
752
+ const { sendMessage, verificationSummaryListener } = createHarness({
753
+ joinedMembersByRoom: {
754
+ "!dm-active:example.org": ["@alice:example.org", "@bot:example.org"],
755
+ },
756
+ });
757
+ if (!verificationSummaryListener) {
758
+ throw new Error("verification.summary listener was not registered");
759
+ }
760
+
761
+ verificationSummaryListener({
762
+ id: "verification-unmapped",
763
+ otherUserId: "@alice:example.org",
764
+ isSelfVerification: false,
765
+ initiatedByMe: false,
766
+ phase: 3,
767
+ phaseName: "started",
768
+ pending: true,
769
+ methods: ["m.sas.v1"],
770
+ canAccept: false,
771
+ hasSas: true,
772
+ sas: {
773
+ decimal: [4321, 8765, 2109],
774
+ emoji: [
775
+ ["🚀", "Rocket"],
776
+ ["🦋", "Butterfly"],
777
+ ["📕", "Book"],
778
+ ],
779
+ },
780
+ hasReciprocateQr: false,
781
+ completed: false,
782
+ createdAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
783
+ updatedAt: new Date("2026-02-25T21:42:55.000Z").toISOString(),
784
+ });
785
+
786
+ await vi.waitFor(() => {
787
+ expect(sendMessage).toHaveBeenCalledTimes(1);
788
+ });
789
+ const roomId = ((sendMessage.mock.calls as unknown[][])[0]?.[0] ?? "") as string;
790
+ const body = getSentNoticeBody(sendMessage, 0);
791
+ expect(roomId).toBe("!dm-active:example.org");
792
+ expect(body).toContain("SAS decimal: 4321 8765 2109");
793
+ });
794
+
795
+ it("prefers the canonical active DM over the most recent verification room for unmapped SAS summaries", async () => {
796
+ const { sendMessage, roomEventListener, verificationSummaryListener } = createHarness({
797
+ joinedMembersByRoom: {
798
+ "!dm-active:example.org": ["@alice:example.org", "@bot:example.org"],
799
+ "!dm-current:example.org": ["@alice:example.org", "@bot:example.org"],
800
+ },
801
+ });
802
+ if (!verificationSummaryListener) {
803
+ throw new Error("verification.summary listener was not registered");
804
+ }
805
+
806
+ roomEventListener("!dm-current:example.org", {
807
+ event_id: "$start-current",
808
+ sender: "@alice:example.org",
809
+ type: "m.key.verification.start",
810
+ origin_server_ts: Date.now(),
811
+ content: {
812
+ "m.relates_to": { event_id: "$req-current" },
813
+ },
814
+ });
815
+
816
+ await vi.waitFor(() => {
817
+ const bodies = getSentNoticeBodies(sendMessage);
818
+ expect(bodies.some((body) => body.includes("Matrix verification started with"))).toBe(true);
819
+ });
820
+
821
+ verificationSummaryListener({
822
+ id: "verification-current-room",
823
+ otherUserId: "@alice:example.org",
824
+ isSelfVerification: false,
825
+ initiatedByMe: false,
826
+ phase: 3,
827
+ phaseName: "started",
828
+ pending: true,
829
+ methods: ["m.sas.v1"],
830
+ canAccept: false,
831
+ hasSas: true,
832
+ sas: {
833
+ decimal: [2468, 1357, 9753],
834
+ emoji: [
835
+ ["🔔", "Bell"],
836
+ ["📁", "Folder"],
837
+ ["🐴", "Horse"],
838
+ ],
839
+ },
840
+ hasReciprocateQr: false,
841
+ completed: false,
842
+ createdAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
843
+ updatedAt: new Date("2026-02-25T21:42:55.000Z").toISOString(),
844
+ });
845
+
846
+ await vi.waitFor(() => {
847
+ const bodies = getSentNoticeBodies(sendMessage);
848
+ expect(bodies.some((body) => body.includes("SAS decimal: 2468 1357 9753"))).toBe(true);
849
+ });
850
+ const calls = sendMessage.mock.calls as unknown[][];
851
+ const sasCall = calls.find((call) =>
852
+ getSentNoticeBodyFromCall(call).includes("SAS decimal: 2468 1357 9753"),
853
+ );
854
+ expect((sasCall?.[0] ?? "") as string).toBe("!dm-active:example.org");
855
+ });
856
+
857
+ it("retries SAS notice lookup when start arrives before SAS payload is available", async () => {
858
+ vi.useFakeTimers();
859
+ const verifications: Array<{
860
+ id: string;
861
+ transactionId?: string;
862
+ otherUserId: string;
863
+ updatedAt?: string;
864
+ sas?: {
865
+ decimal?: [number, number, number];
866
+ emoji?: Array<[string, string]>;
867
+ };
868
+ }> = [
869
+ {
870
+ id: "verification-race",
871
+ transactionId: "$req-race",
872
+ updatedAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
873
+ otherUserId: "@alice:example.org",
874
+ },
875
+ ];
876
+ const { sendMessage, roomEventListener } = createHarness({
877
+ joinedMembersByRoom: {
878
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
879
+ },
880
+ verifications,
881
+ });
882
+
883
+ try {
884
+ roomEventListener("!dm:example.org", {
885
+ event_id: "$start-race",
886
+ sender: "@alice:example.org",
887
+ type: "m.key.verification.start",
888
+ origin_server_ts: Date.now(),
889
+ content: {
890
+ "m.relates_to": { event_id: "$req-race" },
891
+ },
892
+ });
893
+
894
+ await vi.advanceTimersByTimeAsync(500);
895
+ verifications[0] = {
896
+ ...verifications[0],
897
+ sas: {
898
+ decimal: [1234, 5678, 9012],
899
+ emoji: [
900
+ ["🚀", "Rocket"],
901
+ ["🦋", "Butterfly"],
902
+ ["📕", "Book"],
903
+ ],
904
+ },
905
+ };
906
+ await vi.advanceTimersByTimeAsync(500);
907
+
908
+ await vi.waitFor(() => {
909
+ const bodies = getSentNoticeBodies(sendMessage);
910
+ expect(bodies.some((body) => body.includes("SAS emoji:"))).toBe(true);
911
+ });
912
+ } finally {
913
+ vi.useRealTimers();
914
+ }
915
+ });
916
+
917
+ it("ignores verification notices in unrelated non-DM rooms", async () => {
918
+ const { sendMessage, roomEventListener } = createHarness({
919
+ joinedMembersByRoom: {
920
+ "!group:example.org": ["@alice:example.org", "@bot:example.org", "@ops:example.org"],
921
+ },
922
+ verifications: [
923
+ {
924
+ id: "verification-2",
925
+ transactionId: "$different-flow-id",
926
+ otherUserId: "@alice:example.org",
927
+ updatedAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
928
+ sas: {
929
+ decimal: [6158, 1986, 3513],
930
+ emoji: [
931
+ ["🎁", "Gift"],
932
+ ["🌍", "Globe"],
933
+ ["🐴", "Horse"],
934
+ ],
935
+ },
936
+ },
937
+ ],
938
+ });
939
+
940
+ roomEventListener("!group:example.org", {
941
+ event_id: "$start-group",
942
+ sender: "@alice:example.org",
943
+ type: "m.key.verification.start",
944
+ origin_server_ts: Date.now(),
945
+ content: {
946
+ "m.relates_to": { event_id: "$req-group" },
947
+ },
948
+ });
949
+
950
+ await vi.waitFor(() => {
951
+ expect(sendMessage).toHaveBeenCalledTimes(0);
952
+ });
953
+ });
954
+
955
+ it("routes unmapped verification summaries to the room marked direct in member state", async () => {
956
+ const { sendMessage, verificationSummaryListener } = createHarness({
957
+ joinedMembersByRoom: {
958
+ "!fallback:example.org": ["@alice:example.org", "@bot:example.org"],
959
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
960
+ },
961
+ memberStateByRoomUser: {
962
+ "!dm:example.org": {
963
+ "@bot:example.org": { is_direct: true },
964
+ },
965
+ },
966
+ });
967
+ if (!verificationSummaryListener) {
968
+ throw new Error("verification.summary listener was not registered");
969
+ }
970
+
971
+ verificationSummaryListener({
972
+ id: "verification-explicit-room",
973
+ otherUserId: "@alice:example.org",
974
+ isSelfVerification: false,
975
+ initiatedByMe: false,
976
+ phase: 3,
977
+ phaseName: "started",
978
+ pending: true,
979
+ methods: ["m.sas.v1"],
980
+ canAccept: false,
981
+ hasSas: true,
982
+ sas: {
983
+ decimal: [6158, 1986, 3513],
984
+ emoji: [
985
+ ["🎁", "Gift"],
986
+ ["🌍", "Globe"],
987
+ ["🐴", "Horse"],
988
+ ],
989
+ },
990
+ hasReciprocateQr: false,
991
+ completed: false,
992
+ createdAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
993
+ updatedAt: new Date("2026-02-25T21:42:55.000Z").toISOString(),
994
+ });
995
+
996
+ await vi.waitFor(() => {
997
+ expect(sendMessage).toHaveBeenCalledTimes(1);
998
+ });
999
+ expect((sendMessage.mock.calls as unknown[][])[0]?.[0]).toBe("!dm:example.org");
1000
+ });
1001
+
1002
+ it("prefers the active direct room over a stale remembered strict room for unmapped summaries", async () => {
1003
+ const { sendMessage, roomEventListener, verificationSummaryListener } = createHarness({
1004
+ joinedMembersByRoom: {
1005
+ "!fallback:example.org": ["@alice:example.org", "@bot:example.org"],
1006
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
1007
+ },
1008
+ memberStateByRoomUser: {
1009
+ "!dm:example.org": {
1010
+ "@bot:example.org": { is_direct: true },
1011
+ },
1012
+ },
1013
+ });
1014
+ if (!verificationSummaryListener) {
1015
+ throw new Error("verification.summary listener was not registered");
1016
+ }
1017
+
1018
+ roomEventListener("!fallback:example.org", {
1019
+ event_id: "$start-fallback",
1020
+ sender: "@alice:example.org",
1021
+ type: "m.key.verification.start",
1022
+ origin_server_ts: Date.now(),
1023
+ content: {
1024
+ "m.relates_to": { event_id: "$req-fallback" },
1025
+ },
1026
+ });
1027
+
1028
+ await vi.waitFor(() => {
1029
+ expect(sendMessage).toHaveBeenCalledTimes(1);
1030
+ });
1031
+ sendMessage.mockClear();
1032
+
1033
+ verificationSummaryListener({
1034
+ id: "verification-stale-room",
1035
+ otherUserId: "@alice:example.org",
1036
+ isSelfVerification: false,
1037
+ initiatedByMe: false,
1038
+ phase: 3,
1039
+ phaseName: "started",
1040
+ pending: true,
1041
+ methods: ["m.sas.v1"],
1042
+ canAccept: false,
1043
+ hasSas: true,
1044
+ sas: {
1045
+ decimal: [6158, 1986, 3513],
1046
+ emoji: [
1047
+ ["🎁", "Gift"],
1048
+ ["🌍", "Globe"],
1049
+ ["🐴", "Horse"],
1050
+ ],
1051
+ },
1052
+ hasReciprocateQr: false,
1053
+ completed: false,
1054
+ createdAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
1055
+ updatedAt: new Date("2026-02-25T21:42:55.000Z").toISOString(),
1056
+ });
1057
+
1058
+ await vi.waitFor(() => {
1059
+ expect(sendMessage).toHaveBeenCalledTimes(1);
1060
+ });
1061
+ expect((sendMessage.mock.calls as unknown[][])[0]?.[0]).toBe("!dm:example.org");
1062
+ });
1063
+
1064
+ it("does not emit duplicate SAS notices for the same verification payload", async () => {
1065
+ const { sendMessage, roomEventListener, listVerifications } = createHarness({
1066
+ verifications: [
1067
+ {
1068
+ id: "verification-3",
1069
+ transactionId: "$req3",
1070
+ otherUserId: "@alice:example.org",
1071
+ sas: {
1072
+ decimal: [1111, 2222, 3333],
1073
+ emoji: [
1074
+ ["🚀", "Rocket"],
1075
+ ["🦋", "Butterfly"],
1076
+ ["📕", "Book"],
1077
+ ],
1078
+ },
1079
+ },
1080
+ ],
1081
+ });
1082
+
1083
+ roomEventListener("!room:example.org", {
1084
+ event_id: "$start3",
1085
+ sender: "@alice:example.org",
1086
+ type: "m.key.verification.start",
1087
+ origin_server_ts: Date.now(),
1088
+ content: {
1089
+ "m.relates_to": { event_id: "$req3" },
1090
+ },
1091
+ });
1092
+ await vi.waitFor(() => {
1093
+ expect(sendMessage.mock.calls.length).toBeGreaterThan(0);
1094
+ });
1095
+
1096
+ roomEventListener("!room:example.org", {
1097
+ event_id: "$key3",
1098
+ sender: "@alice:example.org",
1099
+ type: "m.key.verification.key",
1100
+ origin_server_ts: Date.now(),
1101
+ content: {
1102
+ "m.relates_to": { event_id: "$req3" },
1103
+ },
1104
+ });
1105
+ await vi.waitFor(() => {
1106
+ expect(listVerifications).toHaveBeenCalledTimes(2);
1107
+ });
1108
+
1109
+ const sasBodies = getSentNoticeBodies(sendMessage).filter((body) =>
1110
+ body.includes("SAS emoji:"),
1111
+ );
1112
+ expect(sasBodies).toHaveLength(1);
1113
+ });
1114
+
1115
+ it("ignores cancelled verification flows when DM fallback resolves SAS notices", async () => {
1116
+ const { sendMessage, roomEventListener } = createHarness({
1117
+ joinedMembersByRoom: {
1118
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
1119
+ },
1120
+ verifications: [
1121
+ {
1122
+ id: "verification-old-cancelled",
1123
+ transactionId: "$old-flow",
1124
+ otherUserId: "@alice:example.org",
1125
+ updatedAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
1126
+ phaseName: "cancelled",
1127
+ phase: 4,
1128
+ pending: false,
1129
+ sas: {
1130
+ decimal: [1111, 2222, 3333],
1131
+ emoji: [
1132
+ ["🚀", "Rocket"],
1133
+ ["🦋", "Butterfly"],
1134
+ ["📕", "Book"],
1135
+ ],
1136
+ },
1137
+ },
1138
+ {
1139
+ id: "verification-new-active",
1140
+ transactionId: "$different-flow-id",
1141
+ otherUserId: "@alice:example.org",
1142
+ updatedAt: new Date("2026-02-25T21:43:54.000Z").toISOString(),
1143
+ phaseName: "started",
1144
+ phase: 3,
1145
+ pending: true,
1146
+ sas: {
1147
+ decimal: [6158, 1986, 3513],
1148
+ emoji: [
1149
+ ["🎁", "Gift"],
1150
+ ["🌍", "Globe"],
1151
+ ["🐴", "Horse"],
1152
+ ],
1153
+ },
1154
+ },
1155
+ ],
1156
+ });
1157
+
1158
+ roomEventListener("!dm:example.org", {
1159
+ event_id: "$start-active",
1160
+ sender: "@alice:example.org",
1161
+ type: "m.key.verification.start",
1162
+ origin_server_ts: Date.now(),
1163
+ content: {
1164
+ "m.relates_to": { event_id: "$req-active" },
1165
+ },
1166
+ });
1167
+
1168
+ await vi.waitFor(() => {
1169
+ const bodies = getSentNoticeBodies(sendMessage);
1170
+ expect(bodies.some((body) => body.includes("SAS decimal: 6158 1986 3513"))).toBe(true);
1171
+ });
1172
+ const bodies = getSentNoticeBodies(sendMessage);
1173
+ expect(bodies.some((body) => body.includes("SAS decimal: 1111 2222 3333"))).toBe(false);
1174
+ });
1175
+
1176
+ it("preserves strict-room SAS fallback when active DM inspection cannot resolve a room", async () => {
1177
+ const { sendMessage, roomEventListener } = createHarness({
1178
+ joinedMembersByRoom: {
1179
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
1180
+ },
1181
+ getJoinedRoomsError: new Error("temporary joined-room lookup failure"),
1182
+ verifications: [
1183
+ {
1184
+ id: "verification-active",
1185
+ transactionId: "$different-flow-id",
1186
+ otherUserId: "@alice:example.org",
1187
+ updatedAt: new Date("2026-02-25T21:43:54.000Z").toISOString(),
1188
+ phaseName: "started",
1189
+ phase: 3,
1190
+ pending: true,
1191
+ sas: {
1192
+ decimal: [6158, 1986, 3513],
1193
+ emoji: [
1194
+ ["🎁", "Gift"],
1195
+ ["🌍", "Globe"],
1196
+ ["🐴", "Horse"],
1197
+ ],
1198
+ },
1199
+ },
1200
+ ],
1201
+ });
1202
+
1203
+ roomEventListener("!dm:example.org", {
1204
+ event_id: "$start-active",
1205
+ sender: "@alice:example.org",
1206
+ type: "m.key.verification.start",
1207
+ origin_server_ts: Date.now(),
1208
+ content: {
1209
+ "m.relates_to": { event_id: "$req-active" },
1210
+ },
1211
+ });
1212
+
1213
+ await vi.waitFor(() => {
1214
+ const bodies = getSentNoticeBodies(sendMessage);
1215
+ expect(bodies.some((body) => body.includes("SAS decimal: 6158 1986 3513"))).toBe(true);
1216
+ });
1217
+ });
1218
+
1219
+ it("prefers the active verification for the current DM when multiple active summaries exist", async () => {
1220
+ const { sendMessage, roomEventListener } = createHarness({
1221
+ joinedMembersByRoom: {
1222
+ "!dm-current:example.org": ["@alice:example.org", "@bot:example.org"],
1223
+ },
1224
+ verifications: [
1225
+ {
1226
+ id: "verification-other-room",
1227
+ roomId: "!dm-other:example.org",
1228
+ transactionId: "$different-flow-other",
1229
+ otherUserId: "@alice:example.org",
1230
+ updatedAt: new Date("2026-02-25T21:44:54.000Z").toISOString(),
1231
+ phaseName: "started",
1232
+ phase: 3,
1233
+ pending: true,
1234
+ sas: {
1235
+ decimal: [1111, 2222, 3333],
1236
+ emoji: [
1237
+ ["🚀", "Rocket"],
1238
+ ["🦋", "Butterfly"],
1239
+ ["📕", "Book"],
1240
+ ],
1241
+ },
1242
+ },
1243
+ {
1244
+ id: "verification-current-room",
1245
+ roomId: "!dm-current:example.org",
1246
+ transactionId: "$different-flow-current",
1247
+ otherUserId: "@alice:example.org",
1248
+ updatedAt: new Date("2026-02-25T21:43:54.000Z").toISOString(),
1249
+ phaseName: "started",
1250
+ phase: 3,
1251
+ pending: true,
1252
+ sas: {
1253
+ decimal: [6158, 1986, 3513],
1254
+ emoji: [
1255
+ ["🎁", "Gift"],
1256
+ ["🌍", "Globe"],
1257
+ ["🐴", "Horse"],
1258
+ ],
1259
+ },
1260
+ },
1261
+ ],
1262
+ });
1263
+
1264
+ roomEventListener("!dm-current:example.org", {
1265
+ event_id: "$start-room-scoped",
1266
+ sender: "@alice:example.org",
1267
+ type: "m.key.verification.start",
1268
+ origin_server_ts: Date.now(),
1269
+ content: {
1270
+ "m.relates_to": { event_id: "$req-room-scoped" },
1271
+ },
1272
+ });
1273
+
1274
+ await vi.waitFor(() => {
1275
+ const bodies = getSentNoticeBodies(sendMessage);
1276
+ expect(bodies.some((body) => body.includes("SAS decimal: 6158 1986 3513"))).toBe(true);
1277
+ });
1278
+ const bodies = getSentNoticeBodies(sendMessage);
1279
+ expect(bodies.some((body) => body.includes("SAS decimal: 1111 2222 3333"))).toBe(false);
1280
+ });
1281
+
1282
+ it("does not emit SAS notices for cancelled verification events", async () => {
1283
+ const { sendMessage, roomEventListener } = createHarness({
1284
+ joinedMembersByRoom: {
1285
+ "!dm:example.org": ["@alice:example.org", "@bot:example.org"],
1286
+ },
1287
+ verifications: [
1288
+ {
1289
+ id: "verification-cancelled",
1290
+ transactionId: "$req-cancelled",
1291
+ otherUserId: "@alice:example.org",
1292
+ updatedAt: new Date("2026-02-25T21:42:54.000Z").toISOString(),
1293
+ phaseName: "cancelled",
1294
+ phase: 4,
1295
+ pending: false,
1296
+ sas: {
1297
+ decimal: [1111, 2222, 3333],
1298
+ emoji: [
1299
+ ["🚀", "Rocket"],
1300
+ ["🦋", "Butterfly"],
1301
+ ["📕", "Book"],
1302
+ ],
1303
+ },
1304
+ },
1305
+ ],
1306
+ });
1307
+
1308
+ roomEventListener("!dm:example.org", {
1309
+ event_id: "$cancelled-1",
1310
+ sender: "@alice:example.org",
1311
+ type: "m.key.verification.cancel",
1312
+ origin_server_ts: Date.now(),
1313
+ content: {
1314
+ code: "m.mismatched_sas",
1315
+ reason: "The SAS did not match.",
1316
+ "m.relates_to": { event_id: "$req-cancelled" },
1317
+ },
1318
+ });
1319
+
1320
+ await vi.waitFor(() => {
1321
+ expect(sendMessage).toHaveBeenCalledTimes(1);
1322
+ });
1323
+ const body = getSentNoticeBody(sendMessage, 0);
1324
+ expect(body).toContain("Matrix verification cancelled by @alice:example.org");
1325
+ expect(body).not.toContain("SAS decimal:");
1326
+ });
1327
+
1328
+ it("warns once when encrypted events arrive without Matrix encryption enabled", () => {
1329
+ const { logger, roomEventListener } = createHarness({
1330
+ authEncryption: false,
1331
+ });
1332
+
1333
+ roomEventListener("!room:example.org", {
1334
+ event_id: "$enc1",
1335
+ sender: "@alice:example.org",
1336
+ type: EventType.RoomMessageEncrypted,
1337
+ origin_server_ts: Date.now(),
1338
+ content: {},
1339
+ });
1340
+ roomEventListener("!room:example.org", {
1341
+ event_id: "$enc2",
1342
+ sender: "@alice:example.org",
1343
+ type: EventType.RoomMessageEncrypted,
1344
+ origin_server_ts: Date.now(),
1345
+ content: {},
1346
+ });
1347
+
1348
+ expect(logger.warn).toHaveBeenCalledTimes(1);
1349
+ expect(logger.warn).toHaveBeenCalledWith(
1350
+ "matrix: encrypted event received without encryption enabled; set channels.lobi.encryption=true and verify the device to decrypt",
1351
+ { roomId: "!room:example.org" },
1352
+ );
1353
+ });
1354
+
1355
+ it("uses the active Matrix account path in encrypted-event warnings", () => {
1356
+ const { logger, roomEventListener } = createHarness({
1357
+ accountId: "ops",
1358
+ authEncryption: false,
1359
+ cfg: {
1360
+ channels: {
1361
+ matrix: {
1362
+ accounts: {
1363
+ ops: {},
1364
+ },
1365
+ },
1366
+ },
1367
+ },
1368
+ });
1369
+
1370
+ roomEventListener("!room:example.org", {
1371
+ event_id: "$enc1",
1372
+ sender: "@alice:example.org",
1373
+ type: EventType.RoomMessageEncrypted,
1374
+ origin_server_ts: Date.now(),
1375
+ content: {},
1376
+ });
1377
+
1378
+ expect(logger.warn).toHaveBeenCalledWith(
1379
+ "matrix: encrypted event received without encryption enabled; set channels.lobi.accounts.ops.encryption=true and verify the device to decrypt",
1380
+ { roomId: "!room:example.org" },
1381
+ );
1382
+ });
1383
+
1384
+ it("warns once when crypto bindings are unavailable for encrypted rooms", () => {
1385
+ const { formatNativeDependencyHint, logger, roomEventListener } = createHarness({
1386
+ authEncryption: true,
1387
+ cryptoAvailable: false,
1388
+ });
1389
+
1390
+ roomEventListener("!room:example.org", {
1391
+ event_id: "$enc1",
1392
+ sender: "@alice:example.org",
1393
+ type: EventType.RoomMessageEncrypted,
1394
+ origin_server_ts: Date.now(),
1395
+ content: {},
1396
+ });
1397
+ roomEventListener("!room:example.org", {
1398
+ event_id: "$enc2",
1399
+ sender: "@alice:example.org",
1400
+ type: EventType.RoomMessageEncrypted,
1401
+ origin_server_ts: Date.now(),
1402
+ content: {},
1403
+ });
1404
+
1405
+ expect(formatNativeDependencyHint).toHaveBeenCalledTimes(1);
1406
+ expect(logger.warn).toHaveBeenCalledTimes(1);
1407
+ expect(logger.warn).toHaveBeenCalledWith(
1408
+ "matrix: encryption enabled but crypto is unavailable; install hint",
1409
+ { roomId: "!room:example.org" },
1410
+ );
1411
+ });
1412
+
1413
+ it("adds self-device guidance when decrypt failures come from the same Matrix user", async () => {
1414
+ const { logger, failedDecryptListener } = createHarness({
1415
+ accountId: "ops",
1416
+ selfUserId: "@gumadeiras:matrix.example.org",
1417
+ });
1418
+ if (!failedDecryptListener) {
1419
+ throw new Error("room.failed_decryption listener was not registered");
1420
+ }
1421
+
1422
+ await failedDecryptListener(
1423
+ "!room:example.org",
1424
+ {
1425
+ event_id: "$enc-self",
1426
+ sender: "@gumadeiras:matrix.example.org",
1427
+ type: EventType.RoomMessageEncrypted,
1428
+ origin_server_ts: Date.now(),
1429
+ content: {},
1430
+ },
1431
+ new Error("The sender's device has not sent us the keys for this message."),
1432
+ );
1433
+
1434
+ expect(logger.warn).toHaveBeenNthCalledWith(
1435
+ 1,
1436
+ "Failed to decrypt message",
1437
+ expect.objectContaining({
1438
+ roomId: "!room:example.org",
1439
+ eventId: "$enc-self",
1440
+ sender: "@gumadeiras:matrix.example.org",
1441
+ senderMatchesOwnUser: true,
1442
+ }),
1443
+ );
1444
+ expect(logger.warn).toHaveBeenNthCalledWith(
1445
+ 2,
1446
+ "matrix: failed to decrypt a message from this same Matrix user. This usually means another Matrix device did not share the room key, or another OpenClaw runtime is using the same account. Check 'openclaw matrix verify status --verbose --account ops' and 'openclaw matrix devices list --account ops'.",
1447
+ {
1448
+ roomId: "!room:example.org",
1449
+ eventId: "$enc-self",
1450
+ sender: "@gumadeiras:matrix.example.org",
1451
+ },
1452
+ );
1453
+ });
1454
+
1455
+ it("does not add self-device guidance for decrypt failures from another sender", async () => {
1456
+ const { logger, failedDecryptListener } = createHarness({
1457
+ accountId: "ops",
1458
+ selfUserId: "@gumadeiras:matrix.example.org",
1459
+ });
1460
+ if (!failedDecryptListener) {
1461
+ throw new Error("room.failed_decryption listener was not registered");
1462
+ }
1463
+
1464
+ await failedDecryptListener(
1465
+ "!room:example.org",
1466
+ {
1467
+ event_id: "$enc-other",
1468
+ sender: "@alice:matrix.example.org",
1469
+ type: EventType.RoomMessageEncrypted,
1470
+ origin_server_ts: Date.now(),
1471
+ content: {},
1472
+ },
1473
+ new Error("The sender's device has not sent us the keys for this message."),
1474
+ );
1475
+
1476
+ expect(logger.warn).toHaveBeenCalledTimes(1);
1477
+ expect(logger.warn).toHaveBeenCalledWith(
1478
+ "Failed to decrypt message",
1479
+ expect.objectContaining({
1480
+ roomId: "!room:example.org",
1481
+ eventId: "$enc-other",
1482
+ sender: "@alice:matrix.example.org",
1483
+ senderMatchesOwnUser: false,
1484
+ }),
1485
+ );
1486
+ });
1487
+
1488
+ it("does not throw when getUserId fails during decrypt guidance lookup", async () => {
1489
+ const { logger, logVerboseMessage, failedDecryptListener } = createHarness({
1490
+ accountId: "ops",
1491
+ selfUserIdError: new Error("lookup failed"),
1492
+ });
1493
+ if (!failedDecryptListener) {
1494
+ throw new Error("room.failed_decryption listener was not registered");
1495
+ }
1496
+
1497
+ await expect(
1498
+ failedDecryptListener(
1499
+ "!room:example.org",
1500
+ {
1501
+ event_id: "$enc-lookup-fail",
1502
+ sender: "@gumadeiras:matrix.example.org",
1503
+ type: EventType.RoomMessageEncrypted,
1504
+ origin_server_ts: Date.now(),
1505
+ content: {},
1506
+ },
1507
+ new Error("The sender's device has not sent us the keys for this message."),
1508
+ ),
1509
+ ).resolves.toBeUndefined();
1510
+
1511
+ expect(logger.warn).toHaveBeenCalledTimes(1);
1512
+ expect(logger.warn).toHaveBeenCalledWith(
1513
+ "Failed to decrypt message",
1514
+ expect.objectContaining({
1515
+ roomId: "!room:example.org",
1516
+ eventId: "$enc-lookup-fail",
1517
+ senderMatchesOwnUser: false,
1518
+ }),
1519
+ );
1520
+ expect(logVerboseMessage).toHaveBeenCalledWith(
1521
+ "matrix: failed resolving self user id for decrypt warning: Error: lookup failed",
1522
+ );
1523
+ });
1524
+ });