@openclaw/matrix 2026.6.5-beta.1 → 2026.6.5-beta.3

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 (65) hide show
  1. package/dist/{account-selection-DEMtY2cn.js → account-selection-Bv_ZuOu4.js} +2 -3
  2. package/dist/api.js +5 -5
  3. package/dist/{approval-handler.runtime-DBUlR5vu.js → approval-handler.runtime-D88ERXxc.js} +4 -4
  4. package/dist/{approval-ids-BWuh0wZT.js → approval-ids-B2J320aL.js} +1 -1
  5. package/dist/{approval-reaction-auth-NgDjrK6V.js → approval-reaction-auth-ryklScll.js} +2 -2
  6. package/dist/{channel-6UUus7Ba.js → channel-DtT1oc4C.js} +13 -13
  7. package/dist/channel-plugin-api.js +1 -1
  8. package/dist/{channel.runtime-CPXd3XKs.js → channel.runtime-CoCkSJV6.js} +6 -6
  9. package/dist/{cli-CM0h-B_j.js → cli-BX7_GgmS.js} +10 -10
  10. package/dist/{cli-metadata-CW6xSM2K.js → cli-metadata-C9_um_Yj.js} +1 -1
  11. package/dist/cli-metadata.js +1 -1
  12. package/dist/{client-CdP9vWOu.js → client-CPfb6TMG.js} +2 -2
  13. package/dist/{client-bootstrap-D5vrHEms.js → client-bootstrap-Dj2242_Y.js} +1 -1
  14. package/dist/{client-DRRL7Zv5.js → client-dLfa0qNk.js} +2 -2
  15. package/dist/{config-schema-CVJYP50t.js → config-schema-NrB2XGxM.js} +1 -1
  16. package/dist/contract-api.js +4 -4
  17. package/dist/{create-client-B90Sb7LG.js → create-client-MnSzqELZ.js} +4 -4
  18. package/dist/{credentials-Bi0pTJDK.js → credentials-G8lNmiME.js} +1 -1
  19. package/dist/{credentials-read-DpxFOhx0.js → credentials-read-TzTOQPOM.js} +1 -1
  20. package/dist/{credentials-write.runtime-BB5QuM4Z.js → credentials-write.runtime-cZhhyGAZ.js} +1 -1
  21. package/dist/{crypto-runtime-DWVNNqa3.js → crypto-runtime-B4WWNpMk.js} +4 -174
  22. package/dist/crypto-state-store-DK2tcEyP.js +352 -0
  23. package/dist/{directory-live-5uWtLQ41.js → directory-live-C7aYHtRU.js} +2 -2
  24. package/dist/{doctor-BKjr6uua.js → doctor-BwpkOBwr.js} +5 -5
  25. package/dist/{doctor-contract-D9oKDvsJ.js → doctor-contract-Dq8OZWHF.js} +1 -1
  26. package/dist/doctor-contract-api.js +265 -2
  27. package/dist/{draft-stream-DZ2X1RHP.js → draft-stream-PqFfvyV9.js} +1 -1
  28. package/dist/{encryption-guidance-aEUzD940.js → encryption-guidance-D_KhjprO.js} +1 -1
  29. package/dist/file-sync-store-Ni-pkFde.js +402 -0
  30. package/dist/helper-api.js +1 -1
  31. package/dist/idb-persistence-BGY1CJ7J.js +229 -0
  32. package/dist/idb-persistence-lock-DAJ49nZX.js +32 -0
  33. package/dist/index.js +1 -1
  34. package/dist/{legacy-crypto-restore-CbVSppMd.js → legacy-crypto-restore-Bm6HmeN5.js} +36 -28
  35. package/dist/logger-D0GCSDQq.js +78 -0
  36. package/dist/{logging-Cm8vxO3E.js → logging-QH-48Gr6.js} +1 -1
  37. package/dist/{matrix-migration.runtime-RzIEp7RP.js → matrix-migration.runtime-dvxE3e5l.js} +24 -25
  38. package/dist/{media-text-DVhXN81h.js → media-text-D0uvrHo1.js} +1 -1
  39. package/dist/{messages-sk1eTx7H.js → messages-C00n-MG_.js} +3 -3
  40. package/dist/{monitor-DXW0sFfU.js → monitor-BWHn9jy2.js} +21 -19
  41. package/dist/plugin-entry.handlers.runtime.js +1 -1
  42. package/dist/probe.runtime-DcSBLSet.js +3 -0
  43. package/dist/{profile-update-rzynJvpi.js → profile-update-CWvjc5i_.js} +2 -2
  44. package/dist/{reaction-events-DRKzlo8q.js → reaction-events-CdkYjlyo.js} +1 -1
  45. package/dist/{recovery-key-store-D6RbiZMM.js → recovery-key-store-TSlOpcEG.js} +22 -53
  46. package/dist/{resolve-targets-CAwsoBQK.js → resolve-targets-0dT0vJZJ.js} +1 -1
  47. package/dist/{resolver.runtime-phS2hwm9.js → resolver.runtime-BD2ZRhKw.js} +1 -1
  48. package/dist/runtime-api.js +1 -1
  49. package/dist/runtime-heavy-api.js +1 -1
  50. package/dist/{sdk-BdCZ5WwA.js → sdk-CdMhAFz3.js} +9 -202
  51. package/dist/{send-DEgWxp1p.js → send-Bus9xhUh.js} +1 -1
  52. package/dist/{setup-bootstrap-B4xc58Ww.js → setup-bootstrap-C9tUX9Ty.js} +2 -2
  53. package/dist/{setup-core-DJosJdWt.js → setup-core-CUyFBi5x.js} +3 -3
  54. package/dist/setup-plugin-api.js +3 -3
  55. package/dist/{setup-surface-CqxGV1WL.js → setup-surface-BRlTR6to.js} +5 -5
  56. package/dist/{shared-BbT5LdPp.js → shared-Bk7pOHMb.js} +8 -84
  57. package/dist/{startup-verification-D1p_LRmg.js → startup-verification-BoDITB_u.js} +2 -2
  58. package/dist/{storage-DSVcH_zM.js → storage-C10h2piS.js} +122 -26
  59. package/dist/{thread-bindings-gLQYbsB9.js → thread-bindings-CnviJ9Ff.js} +4 -23
  60. package/dist/{tool-actions.runtime-o06m9bgN.js → tool-actions.runtime-dStqVKMT.js} +6 -6
  61. package/dist/{verification-BiA5IWPK.js → verification-jZ1KWtb5.js} +2 -2
  62. package/npm-shrinkwrap.json +3 -3
  63. package/package.json +4 -4
  64. package/dist/probe.runtime-BO0mNIe8.js +0 -3
  65. package/dist/record-shared-CvzjvHRn.js +0 -2
@@ -1,6 +1,7 @@
1
- import { a as resolveMatrixDefaultOrOnlyAccountId, n as requiresExplicitMatrixDefaultAccount } from "./account-selection-DEMtY2cn.js";
1
+ import { a as resolveMatrixDefaultOrOnlyAccountId, n as requiresExplicitMatrixDefaultAccount } from "./account-selection-Bv_ZuOu4.js";
2
2
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
3
3
  import { n as resolveMatrixAccountStorageRoot, s as resolveMatrixLegacyFlatStoragePaths } from "./storage-paths-BWo_ZEMC.js";
4
+ import { b as scoreMatrixCryptoStateInStore, g as readMatrixIdbSnapshotJson, l as migrateLegacyMatrixRecoveryKeyFileToStore, n as MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME, r as MATRIX_RECOVERY_KEY_FILENAME, s as migrateLegacyMatrixLegacyCryptoMigrationFileToStore, t as MATRIX_IDB_SNAPSHOT_FILENAME, x as writeMatrixIdbSnapshotJson } from "./crypto-state-store-DK2tcEyP.js";
4
5
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
5
6
  import fs from "node:fs";
6
7
  import os from "node:os";
@@ -10,15 +11,8 @@ import { loadJsonFile, saveJsonFile } from "openclaw/plugin-sdk/json-store";
10
11
  const DEFAULT_ACCOUNT_KEY = "default";
11
12
  const STORAGE_META_FILENAME = "storage-meta.json";
12
13
  const THREAD_BINDINGS_FILENAME = "thread-bindings.json";
13
- const LEGACY_CRYPTO_MIGRATION_FILENAME = "legacy-crypto-migration.json";
14
- const RECOVERY_KEY_FILENAME = "recovery-key.json";
15
- const IDB_SNAPSHOT_FILENAME = "crypto-idb-snapshot.json";
16
14
  function resolveLegacyStoragePaths(env = process.env) {
17
- const legacy = resolveMatrixLegacyFlatStoragePaths(getMatrixRuntime().state.resolveStateDir(env, os.homedir));
18
- return {
19
- storagePath: legacy.storagePath,
20
- cryptoPath: legacy.cryptoPath
21
- };
15
+ return resolveMatrixLegacyFlatStoragePaths(getMatrixRuntime().state.resolveStateDir(env, os.homedir));
22
16
  }
23
17
  function assertLegacyMigrationAccountSelection(params) {
24
18
  const cfg = getMatrixRuntime().config.current();
@@ -30,12 +24,13 @@ function assertLegacyMigrationAccountSelection(params) {
30
24
  }
31
25
  function scoreStorageRoot(rootDir) {
32
26
  let score = 0;
33
- if (fs.existsSync(path.join(rootDir, "bot-storage.json"))) score += 8;
27
+ if (readStoredRootMetadata(rootDir).currentTokenStateClaimed === true) score += 8;
34
28
  if (fs.existsSync(path.join(rootDir, "crypto"))) score += 8;
35
29
  if (fs.existsSync(path.join(rootDir, THREAD_BINDINGS_FILENAME))) score += 4;
36
- if (fs.existsSync(path.join(rootDir, LEGACY_CRYPTO_MIGRATION_FILENAME))) score += 3;
37
- if (fs.existsSync(path.join(rootDir, RECOVERY_KEY_FILENAME))) score += 2;
38
- if (fs.existsSync(path.join(rootDir, IDB_SNAPSHOT_FILENAME))) score += 2;
30
+ if (fs.existsSync(path.join(rootDir, "legacy-crypto-migration.json"))) score += 3;
31
+ if (fs.existsSync(path.join(rootDir, "recovery-key.json"))) score += 2;
32
+ if (fs.existsSync(path.join(rootDir, "crypto-idb-snapshot.json"))) score += 2;
33
+ score += scoreMatrixCryptoStateInStore(rootDir);
39
34
  if (fs.existsSync(path.join(rootDir, STORAGE_META_FILENAME))) score += 1;
40
35
  return score;
41
36
  }
@@ -145,8 +140,8 @@ function resolveMatrixStoragePaths(params) {
145
140
  storagePath: path.join(rootDir, "bot-storage.json"),
146
141
  cryptoPath: path.join(rootDir, "crypto"),
147
142
  metaPath: path.join(rootDir, STORAGE_META_FILENAME),
148
- recoveryKeyPath: path.join(rootDir, "recovery-key.json"),
149
- idbSnapshotPath: path.join(rootDir, IDB_SNAPSHOT_FILENAME),
143
+ recoveryKeyPath: path.join(rootDir, MATRIX_RECOVERY_KEY_FILENAME),
144
+ idbSnapshotPath: path.join(rootDir, MATRIX_IDB_SNAPSHOT_FILENAME),
150
145
  accountKey: canonical.accountKey,
151
146
  tokenHash
152
147
  };
@@ -165,15 +160,20 @@ function resolveMatrixStateFilePath(params) {
165
160
  }
166
161
  async function maybeMigrateLegacyStorage(params) {
167
162
  const legacy = resolveLegacyStoragePaths(params.env);
168
- const hasLegacyStorage = fs.existsSync(legacy.storagePath);
163
+ const hasFlatLegacyStorageFile = fs.existsSync(legacy.storagePath);
164
+ const hasAccountScopedLegacyStorageFile = fs.existsSync(params.storagePaths.storagePath);
165
+ const syncCache = hasFlatLegacyStorageFile || hasAccountScopedLegacyStorageFile ? await import("./file-sync-store-Ni-pkFde.js").then((n) => n.n) : null;
166
+ const hasFlatLegacyStorage = hasFlatLegacyStorageFile && await syncCache?.readLegacyMatrixSyncCacheState(legacy.rootDir) !== null;
167
+ const hasAccountScopedLegacyStorage = hasAccountScopedLegacyStorageFile && await syncCache?.readLegacyMatrixSyncCacheState(params.storagePaths.rootDir) !== null;
169
168
  const hasLegacyCrypto = fs.existsSync(legacy.cryptoPath);
170
- if (!hasLegacyStorage && !hasLegacyCrypto) return;
171
- const hasTargetStorage = fs.existsSync(params.storagePaths.storagePath);
169
+ const hasAccountScopedRecoveryKey = fs.existsSync(params.storagePaths.recoveryKeyPath);
170
+ const hasAccountScopedIdbSnapshot = fs.existsSync(params.storagePaths.idbSnapshotPath);
171
+ const hasAccountScopedLegacyCryptoMigration = fs.existsSync(path.join(params.storagePaths.rootDir, MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME));
172
+ if (!hasFlatLegacyStorage && !hasAccountScopedLegacyStorage && !hasLegacyCrypto && !hasAccountScopedRecoveryKey && !hasAccountScopedIdbSnapshot && !hasAccountScopedLegacyCryptoMigration) return;
172
173
  const hasTargetCrypto = fs.existsSync(params.storagePaths.cryptoPath);
173
- const shouldMigrateStorage = hasLegacyStorage && !hasTargetStorage;
174
174
  const shouldMigrateCrypto = hasLegacyCrypto && !hasTargetCrypto;
175
- if (!shouldMigrateStorage && !shouldMigrateCrypto) return;
176
- assertLegacyMigrationAccountSelection({ accountKey: params.storagePaths.accountKey });
175
+ if (!hasFlatLegacyStorage && !hasAccountScopedLegacyStorage && !shouldMigrateCrypto && !hasAccountScopedRecoveryKey && !hasAccountScopedIdbSnapshot && !hasAccountScopedLegacyCryptoMigration) return;
176
+ if (hasFlatLegacyStorage || hasLegacyCrypto) assertLegacyMigrationAccountSelection({ accountKey: params.storagePaths.accountKey });
177
177
  const logger = getMatrixRuntime().logging.getChildLogger({ module: "matrix-storage" });
178
178
  const { maybeCreateMatrixMigrationSnapshot } = await import("./migration-snapshot.runtime-VGD4QfeS.js");
179
179
  await maybeCreateMatrixMigrationSnapshot({
@@ -183,15 +183,25 @@ async function maybeMigrateLegacyStorage(params) {
183
183
  });
184
184
  fs.mkdirSync(params.storagePaths.rootDir, { recursive: true });
185
185
  const moved = [];
186
+ const pendingArchives = [];
186
187
  const skippedExistingTargets = [];
187
188
  try {
188
- if (shouldMigrateStorage) moveLegacyStoragePathOrThrow({
189
+ if (hasAccountScopedLegacyStorage) await migrateLegacySyncCacheToSqlite({
190
+ sourceRootDir: params.storagePaths.rootDir,
191
+ sourcePath: params.storagePaths.storagePath,
192
+ targetRootDir: params.storagePaths.rootDir,
193
+ label: "account sync cache",
194
+ moved,
195
+ pendingArchives
196
+ });
197
+ if (hasFlatLegacyStorage) await migrateLegacySyncCacheToSqlite({
198
+ sourceRootDir: legacy.rootDir,
189
199
  sourcePath: legacy.storagePath,
190
- targetPath: params.storagePaths.storagePath,
191
- label: "sync store",
192
- moved
200
+ targetRootDir: params.storagePaths.rootDir,
201
+ label: "flat sync cache",
202
+ moved,
203
+ pendingArchives
193
204
  });
194
- else if (hasLegacyStorage) skippedExistingTargets.push(`- sync store remains at ${legacy.storagePath} because ${params.storagePaths.storagePath} already exists`);
195
205
  if (shouldMigrateCrypto) moveLegacyStoragePathOrThrow({
196
206
  sourcePath: legacy.cryptoPath,
197
207
  targetPath: params.storagePaths.cryptoPath,
@@ -199,13 +209,99 @@ async function maybeMigrateLegacyStorage(params) {
199
209
  moved
200
210
  });
201
211
  else if (hasLegacyCrypto) skippedExistingTargets.push(`- crypto store remains at ${legacy.cryptoPath} because ${params.storagePaths.cryptoPath} already exists`);
212
+ if (hasAccountScopedRecoveryKey) {
213
+ migrateLegacyMatrixRecoveryKeyFileToStore(params.storagePaths.rootDir);
214
+ moved.push({
215
+ sourcePath: params.storagePaths.recoveryKeyPath,
216
+ targetPath: `${params.storagePaths.rootDir} SQLite recovery key state`,
217
+ label: "recovery key"
218
+ });
219
+ }
220
+ if (hasAccountScopedLegacyCryptoMigration) {
221
+ migrateLegacyMatrixLegacyCryptoMigrationFileToStore(params.storagePaths.rootDir);
222
+ moved.push({
223
+ sourcePath: path.join(params.storagePaths.rootDir, MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME),
224
+ targetPath: `${params.storagePaths.rootDir} SQLite legacy crypto migration state`,
225
+ label: "legacy crypto migration"
226
+ });
227
+ }
228
+ if (hasAccountScopedIdbSnapshot) await migrateLegacyIdbSnapshotToSqlite({
229
+ storageRootDir: params.storagePaths.rootDir,
230
+ snapshotPath: params.storagePaths.idbSnapshotPath,
231
+ moved,
232
+ pendingArchives
233
+ });
202
234
  } catch (err) {
203
235
  const rollbackError = rollbackLegacyMoves(moved);
204
236
  throw new Error(rollbackError ? `Failed migrating legacy Matrix client storage: ${String(err)}. Rollback also failed: ${rollbackError}` : `Failed migrating legacy Matrix client storage: ${String(err)}`, { cause: err });
205
237
  }
238
+ for (const archive of pendingArchives) archiveLegacyStoragePath({
239
+ ...archive,
240
+ skippedExistingTargets
241
+ });
206
242
  if (moved.length > 0) logger.info(`matrix: migrated legacy client storage into ${params.storagePaths.rootDir}\n${moved.map((entry) => `- ${entry.label}: ${entry.sourcePath} -> ${entry.targetPath}`).join("\n")}`);
207
243
  if (skippedExistingTargets.length > 0) logger.warn?.(`matrix: legacy client storage still exists in the flat path because some account-scoped targets already existed.\n${skippedExistingTargets.join("\n")}`);
208
244
  }
245
+ async function migrateLegacyIdbSnapshotToSqlite(params) {
246
+ if (readMatrixIdbSnapshotJson(params.storageRootDir)) {
247
+ params.pendingArchives.push({
248
+ sourcePath: params.snapshotPath,
249
+ label: "IndexedDB snapshot"
250
+ });
251
+ return;
252
+ }
253
+ const { readLegacyMatrixIdbSnapshotState } = await import("./idb-persistence-BGY1CJ7J.js").then((n) => n.t);
254
+ const snapshot = await readLegacyMatrixIdbSnapshotState(params.storageRootDir);
255
+ if (!snapshot) return;
256
+ writeMatrixIdbSnapshotJson({
257
+ storageRootDir: params.storageRootDir,
258
+ snapshotJson: JSON.stringify(snapshot),
259
+ databaseCount: snapshot.length
260
+ });
261
+ params.moved.push({
262
+ sourcePath: params.snapshotPath,
263
+ targetPath: `${params.storageRootDir} SQLite IndexedDB snapshot state`,
264
+ label: "IndexedDB snapshot"
265
+ });
266
+ params.pendingArchives.push({
267
+ sourcePath: params.snapshotPath,
268
+ label: "IndexedDB snapshot"
269
+ });
270
+ }
271
+ async function migrateLegacySyncCacheToSqlite(params) {
272
+ const syncCache = await import("./file-sync-store-Ni-pkFde.js").then((n) => n.n);
273
+ const persisted = await syncCache.readLegacyMatrixSyncCacheState(params.sourceRootDir);
274
+ if (!persisted) return;
275
+ const store = getMatrixRuntime().state.openKeyedStore(syncCache.openMatrixSyncCacheStoreOptions(params.targetRootDir));
276
+ if (!await syncCache.hasMatrixSyncCacheStateInStore({
277
+ storageRootDir: params.targetRootDir,
278
+ store
279
+ })) {
280
+ await syncCache.writeMatrixSyncCacheStateToStore({
281
+ storageRootDir: params.targetRootDir,
282
+ payload: persisted,
283
+ store
284
+ });
285
+ claimCurrentTokenStorageState({ rootDir: params.targetRootDir });
286
+ params.moved.push({
287
+ sourcePath: params.sourcePath,
288
+ targetPath: `${params.targetRootDir} SQLite sync cache`,
289
+ label: params.label
290
+ });
291
+ }
292
+ params.pendingArchives.push({
293
+ sourcePath: params.sourcePath,
294
+ label: params.label
295
+ });
296
+ }
297
+ function archiveLegacyStoragePath(params) {
298
+ const archivedLegacyStoragePath = `${params.sourcePath}.migrated`;
299
+ if (fs.existsSync(archivedLegacyStoragePath)) {
300
+ params.skippedExistingTargets.push(`- ${params.label} remains at ${params.sourcePath} because ${archivedLegacyStoragePath} already exists`);
301
+ return;
302
+ }
303
+ fs.renameSync(params.sourcePath, archivedLegacyStoragePath);
304
+ }
209
305
  function moveLegacyStoragePathOrThrow(params) {
210
306
  if (!fs.existsSync(params.sourcePath)) return;
211
307
  if (fs.existsSync(params.targetPath)) throw new Error(`legacy Matrix ${params.label} target already exists (${params.targetPath}); refusing to overwrite it automatically`);
@@ -1,34 +1,15 @@
1
1
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
2
  import { a as listBindingsForAccount, c as resolveBindingKey, f as setMatrixThreadBindingManagerEntry, h as toSessionBindingRecord, l as resolveEffectiveBindingExpiry, m as toMatrixBindingTargetKind, o as removeBindingRecord, r as getMatrixThreadBindingManagerEntry, t as deleteMatrixThreadBindingManagerEntry, u as setBindingRecord } from "./thread-bindings-shared-CKnY4LSd.js";
3
- import { a as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-DSVcH_zM.js";
4
- import { a as sendMessageMatrix } from "./send-DEgWxp1p.js";
3
+ import { O as resolveMatrixSqliteStateEnv, k as resolveMatrixSqliteStateKey } from "./crypto-state-store-DK2tcEyP.js";
4
+ import { a as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-C10h2piS.js";
5
+ import { a as sendMessageMatrix } from "./send-Bus9xhUh.js";
5
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
- import os from "node:os";
7
7
  import path from "node:path";
8
8
  import { createHash } from "node:crypto";
9
9
  import { registerSessionBindingAdapter, resolveThreadBindingFarewellText, unregisterSessionBindingAdapter } from "openclaw/plugin-sdk/thread-bindings-session-runtime";
10
10
  import { readJsonFileWithFallback } from "openclaw/plugin-sdk/json-store";
11
11
  import fs from "node:fs/promises";
12
12
  import { resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
13
- //#region extensions/matrix/src/matrix/sqlite-state.ts
14
- function resolveStateDirOverride(options) {
15
- if (!options) return;
16
- if (options.stateDir) return options.stateDir;
17
- if (options.stateRootDir) return options.stateRootDir;
18
- return getMatrixRuntime().state.resolveStateDir(options.env ?? process.env, os.homedir);
19
- }
20
- function resolveMatrixSqliteStateKey(options) {
21
- return resolveStateDirOverride(options) ?? "";
22
- }
23
- function resolveMatrixSqliteStateEnv(options) {
24
- const stateDir = resolveStateDirOverride(options);
25
- if (!stateDir) return options?.env;
26
- return {
27
- ...options?.env ?? process.env,
28
- OPENCLAW_STATE_DIR: stateDir
29
- };
30
- }
31
- //#endregion
32
13
  //#region extensions/matrix/src/matrix/thread-bindings.ts
33
14
  const STORE_VERSION = 1;
34
15
  const THREAD_BINDINGS_NAMESPACE = "thread-bindings";
@@ -452,4 +433,4 @@ async function createMatrixThreadBindingManager(params) {
452
433
  return manager;
453
434
  }
454
435
  //#endregion
455
- export { resolveMatrixSqliteStateEnv as n, createMatrixThreadBindingManager as t };
436
+ export { createMatrixThreadBindingManager as t };
@@ -1,12 +1,12 @@
1
1
  import { c as resolveMatrixAccountConfig } from "./config-paths-ZBCMwSos.js";
2
- import "./setup-core-DJosJdWt.js";
3
- import { E as parsePollStart, T as isPollStartType, b as buildPollResponseContent, i as reactMatrixMessage, u as resolveMatrixRoomId } from "./send-DEgWxp1p.js";
2
+ import "./setup-core-CUyFBi5x.js";
3
+ import { E as parsePollStart, T as isPollStartType, b as buildPollResponseContent, i as reactMatrixMessage, u as resolveMatrixRoomId } from "./send-Bus9xhUh.js";
4
4
  import { i as buildMatrixReactionRelationsPath, o as selectOwnMatrixReactionEventIds, s as summarizeMatrixReactionEvents } from "./reaction-common-DkrQdBSZ.js";
5
- import { n as withResolvedActionClient, r as withResolvedRoomAction } from "./client-CdP9vWOu.js";
6
- import { a as fetchEventSummary, c as resolveMatrixActionLimit, i as sendMatrixMessage, n as editMatrixMessage, o as readPinnedEvents, r as readMatrixMessages, s as EventType, t as deleteMatrixMessage } from "./messages-sk1eTx7H.js";
5
+ import { n as withResolvedActionClient, r as withResolvedRoomAction } from "./client-CPfb6TMG.js";
6
+ import { a as fetchEventSummary, c as resolveMatrixActionLimit, i as sendMatrixMessage, n as editMatrixMessage, o as readPinnedEvents, r as readMatrixMessages, s as EventType, t as deleteMatrixMessage } from "./messages-C00n-MG_.js";
7
7
  import { a as jsonResult, c as readStringArrayParam, l as readStringParam, o as readPositiveIntegerParam, r as createActionGate, s as readReactionParams } from "./runtime-api-CsBoesCU.js";
8
- import { t as applyMatrixProfileUpdate } from "./profile-update-rzynJvpi.js";
9
- import { _ as scanMatrixVerificationQr, a as confirmMatrixVerificationSas, b as verifyMatrixRecoveryKey, c as getMatrixRoomKeyBackupStatus, d as listMatrixVerifications, f as mismatchMatrixVerificationSas, h as restoreMatrixRoomKeyBackup, i as confirmMatrixVerificationReciprocateQr, l as getMatrixVerificationSas, n as bootstrapMatrixVerification, o as generateMatrixVerificationQr, p as requestMatrixVerification, r as cancelMatrixVerification, s as getMatrixEncryptionStatus, t as acceptMatrixVerification, u as getMatrixVerificationStatus, v as startMatrixVerification } from "./verification-BiA5IWPK.js";
8
+ import { t as applyMatrixProfileUpdate } from "./profile-update-CWvjc5i_.js";
9
+ import { _ as scanMatrixVerificationQr, a as confirmMatrixVerificationSas, b as verifyMatrixRecoveryKey, c as getMatrixRoomKeyBackupStatus, d as listMatrixVerifications, f as mismatchMatrixVerificationSas, h as restoreMatrixRoomKeyBackup, i as confirmMatrixVerificationReciprocateQr, l as getMatrixVerificationSas, n as bootstrapMatrixVerification, o as generateMatrixVerificationQr, p as requestMatrixVerification, r as cancelMatrixVerification, s as getMatrixEncryptionStatus, t as acceptMatrixVerification, u as getMatrixVerificationStatus, v as startMatrixVerification } from "./verification-jZ1KWtb5.js";
10
10
  import { normalizeOptionalLowercaseString, uniqueStrings, uniqueValues } from "openclaw/plugin-sdk/string-coerce-runtime";
11
11
  //#region extensions/matrix/src/matrix/actions/polls.ts
12
12
  function normalizeOptionIndexes(indexes) {
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { i as withStartedActionClient, n as withResolvedActionClient } from "./client-CdP9vWOu.js";
3
- import { n as formatMatrixEncryptionUnavailableError } from "./encryption-guidance-aEUzD940.js";
2
+ import { i as withStartedActionClient, n as withResolvedActionClient } from "./client-CPfb6TMG.js";
3
+ import { n as formatMatrixEncryptionUnavailableError } from "./encryption-guidance-D_KhjprO.js";
4
4
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
6
6
  import { setTimeout } from "node:timers/promises";
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@openclaw/matrix",
3
- "version": "2026.6.5-beta.1",
3
+ "version": "2026.6.5-beta.3",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/matrix",
9
- "version": "2026.6.5-beta.1",
9
+ "version": "2026.6.5-beta.3",
10
10
  "dependencies": {
11
11
  "@matrix-org/matrix-sdk-crypto-nodejs": "0.6.0",
12
12
  "@matrix-org/matrix-sdk-crypto-wasm": "18.3.0",
@@ -18,7 +18,7 @@
18
18
  "zod": "4.4.3"
19
19
  },
20
20
  "peerDependencies": {
21
- "openclaw": ">=2026.6.5-beta.1"
21
+ "openclaw": ">=2026.6.5-beta.3"
22
22
  },
23
23
  "peerDependenciesMeta": {
24
24
  "openclaw": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/matrix",
3
- "version": "2026.6.5-beta.1",
3
+ "version": "2026.6.5-beta.3",
4
4
  "description": "OpenClaw Matrix channel plugin for rooms and direct messages.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,7 +18,7 @@
18
18
  "zod": "4.4.3"
19
19
  },
20
20
  "peerDependencies": {
21
- "openclaw": ">=2026.6.5-beta.1"
21
+ "openclaw": ">=2026.6.5-beta.3"
22
22
  },
23
23
  "peerDependenciesMeta": {
24
24
  "openclaw": {
@@ -84,10 +84,10 @@
84
84
  "allowInvalidConfigRecovery": true
85
85
  },
86
86
  "compat": {
87
- "pluginApi": ">=2026.6.5-beta.1"
87
+ "pluginApi": ">=2026.6.5-beta.3"
88
88
  },
89
89
  "build": {
90
- "openclawVersion": "2026.6.5-beta.1"
90
+ "openclawVersion": "2026.6.5-beta.3"
91
91
  },
92
92
  "release": {
93
93
  "publishToClawHub": true,
@@ -1,3 +0,0 @@
1
- import { t as createMatrixClient } from "./create-client-B90Sb7LG.js";
2
- import "./client-DRRL7Zv5.js";
3
- export { createMatrixClient };
@@ -1,2 +0,0 @@
1
- import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
2
- export { isRecord as t };