@openclaw/matrix 2026.6.10-beta.2 → 2026.6.11-beta.2

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 (51) hide show
  1. package/dist/api.js +4 -4
  2. package/dist/{approval-handler.runtime-DRcJ4T3S.js → approval-handler.runtime-CK5HedmU.js} +4 -4
  3. package/dist/{approval-ids-BxDWGGtc.js → approval-ids-gM2AFaP-.js} +1 -1
  4. package/dist/{approval-reaction-auth-BnjVbO3E.js → approval-reaction-auth--lKUos8v.js} +2 -2
  5. package/dist/{channel-CphxlhZu.js → channel-Y_HGdzpZ.js} +9 -9
  6. package/dist/channel-plugin-api.js +1 -1
  7. package/dist/{channel.runtime-BJ1lzNTU.js → channel.runtime-DkbZfBYE.js} +6 -6
  8. package/dist/{cli-ixiQFyMd.js → cli-ZiO7g1vT.js} +11 -11
  9. package/dist/{cli-metadata-CDLKjGQJ.js → cli-metadata-Cn_UFU3u.js} +1 -1
  10. package/dist/cli-metadata.js +1 -1
  11. package/dist/{client-jJYrQqEm.js → client-COdtuzoa.js} +2 -2
  12. package/dist/{client-CNivl1aV.js → client-DnNqVfCX.js} +2 -2
  13. package/dist/{client-bootstrap-B9WG3S-N.js → client-bootstrap-DoOOMP52.js} +1 -1
  14. package/dist/{config-schema-26chdmvB.js → config-schema-o1UmRtMF.js} +1 -1
  15. package/dist/contract-api.js +2 -2
  16. package/dist/{create-client-CA759SO2.js → create-client-DWe5jGGk.js} +3 -3
  17. package/dist/{crypto-runtime-B4WWNpMk.js → crypto-runtime-DaHFPR8x.js} +66 -12
  18. package/dist/{directory-live-DKe-ZwBH.js → directory-live-D4ibL3X0.js} +3 -3
  19. package/dist/doctor-contract-api.js +2 -2
  20. package/dist/{draft-stream-DnXbpWN-.js → draft-stream-aZa1gWNI.js} +1 -1
  21. package/dist/{file-sync-store-ByKRkbHY.js → file-sync-store-1GY-yvy-.js} +4 -7
  22. package/dist/{http-client-nipb5tk1.js → http-client-BBfH0FfA.js} +42 -9
  23. package/dist/index.js +1 -1
  24. package/dist/{legacy-crypto-restore-BSfdJNJn.js → legacy-crypto-restore-DenIM7bT.js} +1 -1
  25. package/dist/{media-text-Dzzc1s2K.js → media-text-DS2lvlA2.js} +1 -1
  26. package/dist/{messages-BO9h35QI.js → messages-CMTiMecS.js} +3 -3
  27. package/dist/{monitor-uKuCaVCL.js → monitor-BpvP2_nj.js} +19 -19
  28. package/dist/plugin-entry.handlers.runtime.js +1 -1
  29. package/dist/probe.runtime-DKRqRegP.js +3 -0
  30. package/dist/{profile-update-KCzyKPsV.js → profile-update-DUh6sAqK.js} +2 -2
  31. package/dist/{reaction-events-BEO6rF08.js → reaction-events-CABcpM-q.js} +1 -1
  32. package/dist/{recovery-key-store-TSlOpcEG.js → recovery-key-store-BGk8c_gf.js} +12 -0
  33. package/dist/{resolve-targets-CwHA0nDu.js → resolve-targets-Byrcsv59.js} +1 -1
  34. package/dist/{resolver.runtime-8XXfvmpi.js → resolver.runtime-Blu9khLB.js} +1 -1
  35. package/dist/{sdk-DLlal_yG.js → sdk-CpYofZkF.js} +17 -5
  36. package/dist/{send-CQoq0bfR.js → send-eoayPB_l.js} +1 -1
  37. package/dist/session-binding-contract-api.js +1 -1
  38. package/dist/{setup-bootstrap-CF0GimJg.js → setup-bootstrap-DRzRwu9E.js} +2 -2
  39. package/dist/{setup-core-0q_2Acbn.js → setup-core-Ub_idsu1.js} +1 -1
  40. package/dist/setup-plugin-api.js +3 -3
  41. package/dist/{setup-surface-CZYAUrKQ.js → setup-surface-CXenmuMm.js} +4 -4
  42. package/dist/{shared-eJVQiO9S.js → shared-CSN0TWWD.js} +3 -3
  43. package/dist/{startup-verification-BNry4Mje.js → startup-verification-Bl_QJ2BQ.js} +1 -1
  44. package/dist/{storage-D3JJ0OzE.js → storage-BSLHjdgS.js} +2 -2
  45. package/dist/{thread-bindings-BIEaF1Nq.js → thread-bindings-DuoPRata.js} +2 -2
  46. package/dist/{tool-actions.runtime-Ce4n5hC2.js → tool-actions.runtime-BwP9E9M0.js} +6 -6
  47. package/dist/{verification-C3Pv2eJF.js → verification-BN8M6A73.js} +1 -1
  48. package/npm-shrinkwrap.json +3 -3
  49. package/openclaw.plugin.json +1 -0
  50. package/package.json +4 -4
  51. package/dist/probe.runtime-w7uM0_6-.js +0 -3
package/dist/api.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-Bv_ZuOu4.js";
2
2
  import { n as listMatrixEnvAccountIds, r as resolveMatrixEnvAccountToken, t as getMatrixScopedEnvVarNames } from "./env-vars-KzaYveuy.js";
3
3
  import { a as resolveMatrixCredentialsPath, c as resolveMatrixLegacyFlatStoreRoot, i as resolveMatrixCredentialsFilename, l as sanitizeMatrixPathSegment, n as resolveMatrixAccountStorageRoot, o as resolveMatrixHomeserverKey, r as resolveMatrixCredentialsDir, s as resolveMatrixLegacyFlatStoragePaths, t as hashMatrixAccessToken } from "./storage-paths-BWo_ZEMC.js";
4
- import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-0q_2Acbn.js";
5
- import { t as matrixPlugin } from "./channel-CphxlhZu.js";
4
+ import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-Ub_idsu1.js";
5
+ import { t as matrixPlugin } from "./channel-Y_HGdzpZ.js";
6
6
  import { d as setMatrixThreadBindingIdleTimeoutBySessionKey, n as getMatrixThreadBindingManager, p as setMatrixThreadBindingMaxAgeBySessionKey, s as resetMatrixThreadBindingsForTests } from "./thread-bindings-shared-CKnY4LSd.js";
7
- import { n as matrixOnboardingAdapter } from "./setup-surface-CZYAUrKQ.js";
8
- import { t as createMatrixThreadBindingManager } from "./thread-bindings-BIEaF1Nq.js";
7
+ import { n as matrixOnboardingAdapter } from "./setup-surface-CXenmuMm.js";
8
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-DuoPRata.js";
9
9
  //#region extensions/matrix/api.ts
10
10
  const matrixSessionBindingAdapterChannels = ["matrix"];
11
11
  //#endregion
@@ -1,9 +1,9 @@
1
- import { g as resolveMatrixAccount } from "./setup-core-0q_2Acbn.js";
2
- import { _ as shouldHandleMatrixApprovalRequest, g as isMatrixAnyApprovalClientEnabled } from "./channel-CphxlhZu.js";
1
+ import { g as resolveMatrixAccount } from "./setup-core-Ub_idsu1.js";
2
+ import { _ as shouldHandleMatrixApprovalRequest, g as isMatrixAnyApprovalClientEnabled } from "./channel-Y_HGdzpZ.js";
3
3
  import { a as resolveMatrixTargetIdentity } from "./target-ids-B-5aQxwn.js";
4
- import { a as sendMessageMatrix, i as reactMatrixMessage, p as repairMatrixDirectRooms, s as sendSingleTextMessageMatrix } from "./send-CQoq0bfR.js";
4
+ import { a as sendMessageMatrix, i as reactMatrixMessage, p as repairMatrixDirectRooms, s as sendSingleTextMessageMatrix } from "./send-eoayPB_l.js";
5
5
  import { a as unregisterMatrixApprovalReactionTarget, n as listMatrixApprovalReactionBindings, r as registerMatrixApprovalReactionTarget, t as buildMatrixApprovalReactionHint } from "./approval-reactions-BRGQgOu2.js";
6
- import { n as editMatrixMessage, t as deleteMatrixMessage } from "./messages-BO9h35QI.js";
6
+ import { n as editMatrixMessage, t as deleteMatrixMessage } from "./messages-CMTiMecS.js";
7
7
  import { listMessageReceiptPlatformIds, resolveMessageReceiptPrimaryId } from "openclaw/plugin-sdk/channel-outbound";
8
8
  import { normalizeUniqueStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
@@ -1,4 +1,4 @@
1
- import { a as normalizeMatrixUserId } from "./config-schema-26chdmvB.js";
1
+ import { a as normalizeMatrixUserId } from "./config-schema-o1UmRtMF.js";
2
2
  //#region extensions/matrix/src/approval-ids.ts
3
3
  function normalizeMatrixApproverId(value) {
4
4
  return normalizeMatrixUserId(String(value)) || void 0;
@@ -1,5 +1,5 @@
1
- import { g as resolveMatrixAccount } from "./setup-core-0q_2Acbn.js";
2
- import { t as normalizeMatrixApproverId } from "./approval-ids-BxDWGGtc.js";
1
+ import { g as resolveMatrixAccount } from "./setup-core-Ub_idsu1.js";
2
+ import { t as normalizeMatrixApproverId } from "./approval-ids-gM2AFaP-.js";
3
3
  import { resolveApprovalApprovers } from "openclaw/plugin-sdk/approval-auth-runtime";
4
4
  //#region extensions/matrix/src/approval-reaction-auth.ts
5
5
  function normalizeMatrixExecApproverId(value) {
@@ -1,8 +1,8 @@
1
1
  import { n as requiresExplicitMatrixDefaultAccount } from "./account-selection-Bv_ZuOu4.js";
2
2
  import { a as resolveMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
3
- import { d as resolveSingleAccountPromotionTarget, f as singleAccountKeysToMove, g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, n as matrixSetupAdapter, p as listMatrixAccountIds, t as createMatrixSetupWizardProxy, u as namedAccountPromotionKeys } from "./setup-core-0q_2Acbn.js";
4
- import { a as normalizeMatrixUserId, n as DEFAULT_ACCOUNT_ID$2, r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-26chdmvB.js";
5
- import { t as normalizeMatrixApproverId } from "./approval-ids-BxDWGGtc.js";
3
+ import { d as resolveSingleAccountPromotionTarget, f as singleAccountKeysToMove, g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, n as matrixSetupAdapter, p as listMatrixAccountIds, t as createMatrixSetupWizardProxy, u as namedAccountPromotionKeys } from "./setup-core-Ub_idsu1.js";
4
+ import { a as normalizeMatrixUserId, n as DEFAULT_ACCOUNT_ID$2, r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-o1UmRtMF.js";
5
+ import { t as normalizeMatrixApproverId } from "./approval-ids-gM2AFaP-.js";
6
6
  import { a as resolveMatrixTargetIdentity, i as resolveMatrixDirectUserId, n as normalizeMatrixMessagingTarget, r as normalizeMatrixResolvableTarget } from "./target-ids-B-5aQxwn.js";
7
7
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
8
8
  import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-Dq8OZWHF.js";
@@ -129,7 +129,7 @@ const matrixMessageActions = {
129
129
  return extractToolSend(args, "sendMessage");
130
130
  },
131
131
  handleAction: async (ctx) => {
132
- const { handleMatrixAction } = await import("./tool-actions.runtime-Ce4n5hC2.js");
132
+ const { handleMatrixAction } = await import("./tool-actions.runtime-BwP9E9M0.js");
133
133
  const { action, params, cfg, accountId, mediaLocalRoots } = ctx;
134
134
  const dispatch = async (actionParams) => await handleMatrixAction({
135
135
  ...actionParams,
@@ -594,7 +594,7 @@ const matrixNativeApprovalCapability = createApproverRestrictedNativeApprovalCap
594
594
  accountId,
595
595
  request
596
596
  }),
597
- load: async () => (await import("./approval-handler.runtime-DRcJ4T3S.js")).matrixApprovalNativeRuntime
597
+ load: async () => (await import("./approval-handler.runtime-CK5HedmU.js")).matrixApprovalNativeRuntime
598
598
  })
599
599
  });
600
600
  const splitMatrixApprovalCapability = splitChannelApprovalCapability(matrixNativeApprovalCapability);
@@ -756,7 +756,7 @@ function resolveMatrixGroupToolPolicy(params) {
756
756
  }
757
757
  //#endregion
758
758
  //#region extensions/matrix/src/resolver.ts
759
- const loadMatrixChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./resolver.runtime-8XXfvmpi.js"), "matrixResolverRuntime");
759
+ const loadMatrixChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./resolver.runtime-Blu9khLB.js"), "matrixResolverRuntime");
760
760
  const matrixResolverAdapter = { resolveTargets: async ({ cfg, accountId, inputs, kind, runtime }) => (await loadMatrixChannelRuntime$1()).resolveMatrixTargets({
761
761
  cfg,
762
762
  accountId,
@@ -945,8 +945,8 @@ async function runMatrixStartupMaintenance(params) {
945
945
  //#endregion
946
946
  //#region extensions/matrix/src/channel.ts
947
947
  let matrixStartupLock = Promise.resolve();
948
- const loadMatrixSetupWizard = createLazyRuntimeNamedExport(() => import("./setup-surface-CZYAUrKQ.js").then((n) => n.t), "matrixSetupWizard");
949
- const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-BJ1lzNTU.js"), "matrixChannelRuntime");
948
+ const loadMatrixSetupWizard = createLazyRuntimeNamedExport(() => import("./setup-surface-CXenmuMm.js").then((n) => n.t), "matrixSetupWizard");
949
+ const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-DkbZfBYE.js"), "matrixChannelRuntime");
950
950
  let matrixDoctorModulePromise = null;
951
951
  const loadMatrixDoctorModule = async () => {
952
952
  matrixDoctorModulePromise ??= import("./doctor-BwpkOBwr.js");
@@ -1322,7 +1322,7 @@ const matrixPlugin = createChatChannelPlugin({
1322
1322
  await previousLock;
1323
1323
  let monitorMatrixProvider;
1324
1324
  try {
1325
- monitorMatrixProvider = (await import("./monitor-uKuCaVCL.js")).monitorMatrixProvider;
1325
+ monitorMatrixProvider = (await import("./monitor-BpvP2_nj.js")).monitorMatrixProvider;
1326
1326
  } finally {
1327
1327
  releaseLock();
1328
1328
  }
@@ -1,2 +1,2 @@
1
- import { t as matrixPlugin } from "./channel-CphxlhZu.js";
1
+ import { t as matrixPlugin } from "./channel-Y_HGdzpZ.js";
2
2
  export { matrixPlugin };
@@ -1,10 +1,10 @@
1
- import { a as sendMessageMatrix, c as sendTypingMatrix, o as sendPollMatrix } from "./send-CQoq0bfR.js";
1
+ import { a as sendMessageMatrix, c as sendTypingMatrix, o as sendPollMatrix } from "./send-eoayPB_l.js";
2
2
  import { t as isBunRuntime } from "./runtime-BefyhPWv.js";
3
- import { f as resolveMatrixAuth } from "./shared-eJVQiO9S.js";
4
- import "./client-jJYrQqEm.js";
5
- import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-DKe-ZwBH.js";
3
+ import { f as resolveMatrixAuth } from "./shared-CSN0TWWD.js";
4
+ import "./client-COdtuzoa.js";
5
+ import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-D4ibL3X0.js";
6
6
  import { f as resolveOutboundSendDep, n as chunkTextForOutbound } from "./runtime-api-CsBoesCU.js";
7
- import { t as resolveMatrixTargets } from "./resolve-targets-CwHA0nDu.js";
7
+ import { t as resolveMatrixTargets } from "./resolve-targets-Byrcsv59.js";
8
8
  import { createReplyToFanout } from "openclaw/plugin-sdk/channel-outbound";
9
9
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
10
10
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
@@ -13,7 +13,7 @@ import { resolvePayloadMediaUrls } from "openclaw/plugin-sdk/reply-payload";
13
13
  //#region extensions/matrix/src/matrix/probe.ts
14
14
  let matrixProbeRuntimeDepsPromise;
15
15
  async function loadMatrixProbeRuntimeDeps() {
16
- matrixProbeRuntimeDepsPromise ??= import("./probe.runtime-w7uM0_6-.js").then((runtimeModule) => ({ createMatrixClient: runtimeModule.createMatrixClient }));
16
+ matrixProbeRuntimeDepsPromise ??= import("./probe.runtime-DKRqRegP.js").then((runtimeModule) => ({ createMatrixClient: runtimeModule.createMatrixClient }));
17
17
  return await matrixProbeRuntimeDepsPromise;
18
18
  }
19
19
  async function probeMatrix(params) {
@@ -1,14 +1,14 @@
1
1
  import { a as resolveMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
2
2
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
3
- import { c as resolveMatrixConfigPath, g as resolveMatrixAccount, l as updateMatrixAccountConfig, n as matrixSetupAdapter } from "./setup-core-0q_2Acbn.js";
3
+ import { c as resolveMatrixConfigPath, g as resolveMatrixAccount, l as updateMatrixAccountConfig, n as matrixSetupAdapter } from "./setup-core-Ub_idsu1.js";
4
4
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
5
- import { n as withResolvedActionClient } from "./client-CNivl1aV.js";
6
- import { p as resolveMatrixAuthContext } from "./shared-eJVQiO9S.js";
7
- import "./client-jJYrQqEm.js";
5
+ import { n as withResolvedActionClient } from "./client-DnNqVfCX.js";
6
+ import { p as resolveMatrixAuthContext } from "./shared-CSN0TWWD.js";
7
+ import "./client-COdtuzoa.js";
8
8
  import { i as formatZonedTimestamp } from "./runtime-api-CsBoesCU.js";
9
9
  import { isOpenClawManagedMatrixDevice, summarizeMatrixDeviceHealth } from "./device-health-D4LBxuPq.js";
10
- import { n as updateMatrixOwnProfile, t as applyMatrixProfileUpdate } from "./profile-update-KCzyKPsV.js";
11
- import { a as confirmMatrixVerificationSas, b as verifyMatrixRecoveryKey, c as getMatrixRoomKeyBackupStatus, d as listMatrixVerifications, f as mismatchMatrixVerificationSas, g as runMatrixSelfVerification, h as restoreMatrixRoomKeyBackup, l as getMatrixVerificationSas, m as resetMatrixRoomKeyBackup, n as bootstrapMatrixVerification, p as requestMatrixVerification, r as cancelMatrixVerification, t as acceptMatrixVerification, u as getMatrixVerificationStatus, v as startMatrixVerification } from "./verification-C3Pv2eJF.js";
10
+ import { n as updateMatrixOwnProfile, t as applyMatrixProfileUpdate } from "./profile-update-DUh6sAqK.js";
11
+ import { a as confirmMatrixVerificationSas, b as verifyMatrixRecoveryKey, c as getMatrixRoomKeyBackupStatus, d as listMatrixVerifications, f as mismatchMatrixVerificationSas, g as runMatrixSelfVerification, h as restoreMatrixRoomKeyBackup, l as getMatrixVerificationSas, m as resetMatrixRoomKeyBackup, n as bootstrapMatrixVerification, p as requestMatrixVerification, r as cancelMatrixVerification, t as acceptMatrixVerification, u as getMatrixVerificationStatus, v as startMatrixVerification } from "./verification-BN8M6A73.js";
12
12
  import { t as resolveMatrixRoomKeyBackupIssue } from "./backup-health-Dm_YMVFT.js";
13
13
  import { setMatrixSdkConsoleLogging, setMatrixSdkLogMode } from "./logging-QH-48Gr6.js";
14
14
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
@@ -38,11 +38,11 @@ let matrixCliExitScheduled = false;
38
38
  let matrixActionClientModulePromise;
39
39
  let matrixDirectManagementModulePromise;
40
40
  function loadMatrixActionClientModule() {
41
- matrixActionClientModulePromise ??= import("./client-CNivl1aV.js").then((n) => n.t);
41
+ matrixActionClientModulePromise ??= import("./client-DnNqVfCX.js").then((n) => n.t);
42
42
  return matrixActionClientModulePromise;
43
43
  }
44
44
  function loadMatrixDirectManagementModule() {
45
- matrixDirectManagementModulePromise ??= import("./send-CQoq0bfR.js").then((n) => n.d);
45
+ matrixDirectManagementModulePromise ??= import("./send-eoayPB_l.js").then((n) => n.d);
46
46
  return matrixDirectManagementModulePromise;
47
47
  }
48
48
  function scheduleMatrixCliExit() {
@@ -212,7 +212,7 @@ async function addMatrixAccount(params) {
212
212
  backupVersion: null
213
213
  };
214
214
  if (accountConfig.encryption === true) {
215
- const { maybeBootstrapNewEncryptedMatrixAccount } = await import("./setup-bootstrap-CF0GimJg.js");
215
+ const { maybeBootstrapNewEncryptedMatrixAccount } = await import("./setup-bootstrap-DRzRwu9E.js");
216
216
  verificationBootstrap = await maybeBootstrapNewEncryptedMatrixAccount({
217
217
  previousCfg: cfg,
218
218
  cfg: updated,
@@ -943,7 +943,7 @@ function registerMatrixCli(params) {
943
943
  errorPrefix: "Direct room repair failed"
944
944
  });
945
945
  });
946
- root.command("encryption").description("Set up Matrix end-to-end encryption").command("setup").description("Enable Matrix E2EE, bootstrap verification, and print next steps").option("--account <id>", "Account ID (for multi-account setups)").option("--recovery-key <key>", "Recovery key to apply before bootstrap").option("--force-reset-cross-signing", "Force reset cross-signing identity before bootstrap").option("--verbose", "Show detailed diagnostics").option("--json", "Output as JSON").action(async (options) => {
946
+ root.command("encryption").description("Set up Matrix end-to-end encryption").command("setup").description("Enable Matrix E2EE, bootstrap verification, and print next steps").option("--account <id>", "Account ID (for multi-account setups)").option("--recovery-key <key>", "Recovery key to apply before bootstrap").option("--force-reset-cross-signing", "Force reset cross-signing identity before bootstrap (requires active recovery key)").option("--verbose", "Show detailed diagnostics").option("--json", "Output as JSON").action(async (options) => {
947
947
  await runMatrixCliCommand({
948
948
  verbose: options.verbose === true,
949
949
  json: options.json === true,
@@ -1203,7 +1203,7 @@ function registerMatrixCli(params) {
1203
1203
  })
1204
1204
  });
1205
1205
  });
1206
- verify.command("bootstrap").description("Bootstrap Matrix cross-signing and device verification state").option("--account <id>", "Account ID (for multi-account setups)").option("--recovery-key <key>", "Recovery key to apply before bootstrap (prefer --recovery-key-stdin)").option("--recovery-key-stdin", "Read the Matrix recovery key from stdin").option("--force-reset-cross-signing", "Force reset cross-signing identity before bootstrap").option("--verbose", "Show detailed diagnostics").option("--json", "Output as JSON").action(async (options) => {
1206
+ verify.command("bootstrap").description("Bootstrap Matrix cross-signing and device verification state").option("--account <id>", "Account ID (for multi-account setups)").option("--recovery-key <key>", "Recovery key to apply before bootstrap (prefer --recovery-key-stdin)").option("--recovery-key-stdin", "Read the Matrix recovery key from stdin").option("--force-reset-cross-signing", "Force reset cross-signing identity before bootstrap (requires active recovery key)").option("--verbose", "Show detailed diagnostics").option("--json", "Output as JSON").action(async (options) => {
1207
1207
  const { accountId, cfg } = resolveMatrixCliAccountContext(options.account);
1208
1208
  await runMatrixCliCommand({
1209
1209
  verbose: options.verbose === true,
@@ -2,7 +2,7 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
2
2
  //#region extensions/matrix/src/cli-metadata.ts
3
3
  function registerMatrixCliMetadata(api) {
4
4
  api.registerCli(async ({ program }) => {
5
- const { registerMatrixCli } = await import("./cli-ixiQFyMd.js");
5
+ const { registerMatrixCli } = await import("./cli-ZiO7g1vT.js");
6
6
  registerMatrixCli({ program });
7
7
  }, { descriptors: [{
8
8
  name: "matrix",
@@ -1,2 +1,2 @@
1
- import { n as registerMatrixCliMetadata, t as cli_metadata_default } from "./cli-metadata-CDLKjGQJ.js";
1
+ import { n as registerMatrixCliMetadata, t as cli_metadata_default } from "./cli-metadata-Cn_UFU3u.js";
2
2
  export { cli_metadata_default as default, registerMatrixCliMetadata };
@@ -3,8 +3,8 @@ import { t as getMatrixScopedEnvVarNames } from "./env-vars-KzaYveuy.js";
3
3
  import { i as resolveScopedMatrixEnvConfig, r as resolveMatrixEnvAuthReadiness, t as hasReadyMatrixEnvAuth } from "./env-auth-DIzOApj0.js";
4
4
  import { n as validateMatrixHomeserverUrl, t as resolveValidatedMatrixHomeserverUrl } from "./url-validation-GRHde6lq.js";
5
5
  import { t as isBunRuntime } from "./runtime-BefyhPWv.js";
6
- import { d as backfillMatrixAuthDeviceIdAfterStartup, f as resolveMatrixAuth, i as resolveSharedMatrixClient, m as resolveMatrixConfigForAccount, n as releaseSharedClientInstance, o as stopSharedClientForAccount, p as resolveMatrixAuthContext, r as removeSharedClientInstance, s as stopSharedClientInstance, t as acquireSharedMatrixClient } from "./shared-eJVQiO9S.js";
7
- import { t as createMatrixClient } from "./create-client-CA759SO2.js";
6
+ import { d as backfillMatrixAuthDeviceIdAfterStartup, f as resolveMatrixAuth, i as resolveSharedMatrixClient, m as resolveMatrixConfigForAccount, n as releaseSharedClientInstance, o as stopSharedClientForAccount, p as resolveMatrixAuthContext, r as removeSharedClientInstance, s as stopSharedClientInstance, t as acquireSharedMatrixClient } from "./shared-CSN0TWWD.js";
7
+ import { t as createMatrixClient } from "./create-client-DWe5jGGk.js";
8
8
  //#region extensions/matrix/src/matrix/client.ts
9
9
  var client_exports = /* @__PURE__ */ __exportAll({
10
10
  acquireSharedMatrixClient: () => acquireSharedMatrixClient,
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { u as resolveMatrixRoomId } from "./send-CQoq0bfR.js";
3
- import { n as withResolvedRuntimeMatrixClient } from "./client-bootstrap-B9WG3S-N.js";
2
+ import { u as resolveMatrixRoomId } from "./send-eoayPB_l.js";
3
+ import { n as withResolvedRuntimeMatrixClient } from "./client-bootstrap-DoOOMP52.js";
4
4
  //#region extensions/matrix/src/matrix/actions/client.ts
5
5
  var client_exports = /* @__PURE__ */ __exportAll({
6
6
  withResolvedActionClient: () => withResolvedActionClient,
@@ -10,7 +10,7 @@ var client_bootstrap_exports = /* @__PURE__ */ __exportAll({
10
10
  });
11
11
  let matrixSharedClientRuntimeDepsPromise;
12
12
  async function loadMatrixSharedClientRuntimeDeps() {
13
- matrixSharedClientRuntimeDepsPromise ??= Promise.all([import("./client-jJYrQqEm.js").then((n) => n.t), import("./shared-eJVQiO9S.js").then((n) => n.a)]).then(([clientModule, sharedModule]) => ({
13
+ matrixSharedClientRuntimeDepsPromise ??= Promise.all([import("./client-COdtuzoa.js").then((n) => n.t), import("./shared-CSN0TWWD.js").then((n) => n.a)]).then(([clientModule, sharedModule]) => ({
14
14
  acquireSharedMatrixClient: clientModule.acquireSharedMatrixClient,
15
15
  resolveMatrixAuthContext: clientModule.resolveMatrixAuthContext,
16
16
  releaseSharedClientInstance: sharedModule.releaseSharedClientInstance
@@ -1,5 +1,5 @@
1
1
  import { a as resolveMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
2
- import { g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, p as listMatrixAccountIds } from "./setup-core-0q_2Acbn.js";
2
+ import { g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, p as listMatrixAccountIds } from "./setup-core-Ub_idsu1.js";
3
3
  import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
4
4
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/account-id";
@@ -1,3 +1,3 @@
1
- import { d as resolveSingleAccountPromotionTarget, f as singleAccountKeysToMove, n as matrixSetupAdapter, u as namedAccountPromotionKeys } from "./setup-core-0q_2Acbn.js";
2
- import { n as matrixOnboardingAdapter } from "./setup-surface-CZYAUrKQ.js";
1
+ import { d as resolveSingleAccountPromotionTarget, f as singleAccountKeysToMove, n as matrixSetupAdapter, u as namedAccountPromotionKeys } from "./setup-core-Ub_idsu1.js";
2
+ import { n as matrixOnboardingAdapter } from "./setup-surface-CXenmuMm.js";
3
3
  export { matrixSetupAdapter, matrixOnboardingAdapter as matrixSetupWizard, namedAccountPromotionKeys, resolveSingleAccountPromotionTarget, singleAccountKeysToMove };
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
2
  import { t as resolveValidatedMatrixHomeserverUrl } from "./url-validation-GRHde6lq.js";
3
- import { d as writeStorageMeta, l as resolveMatrixStoragePaths, r as maybeMigrateLegacyStorage } from "./storage-D3JJ0OzE.js";
4
- import "./shared-eJVQiO9S.js";
3
+ import { d as writeStorageMeta, l as resolveMatrixStoragePaths, r as maybeMigrateLegacyStorage } from "./storage-BSLHjdgS.js";
4
+ import "./shared-CSN0TWWD.js";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import fs from "node:fs";
7
7
  import { ssrfPolicyFromDangerouslyAllowPrivateNetwork } from "openclaw/plugin-sdk/ssrf-runtime";
@@ -9,7 +9,7 @@ import { ssrfPolicyFromDangerouslyAllowPrivateNetwork } from "openclaw/plugin-sd
9
9
  var create_client_exports = /* @__PURE__ */ __exportAll({ createMatrixClient: () => createMatrixClient });
10
10
  let matrixCreateClientRuntimeDepsPromise;
11
11
  async function loadMatrixCreateClientRuntimeDeps() {
12
- matrixCreateClientRuntimeDepsPromise ??= Promise.all([import("./sdk-DLlal_yG.js"), import("./logging-QH-48Gr6.js")]).then(([sdkModule, loggingModule]) => ({
12
+ matrixCreateClientRuntimeDepsPromise ??= Promise.all([import("./sdk-CpYofZkF.js"), import("./logging-QH-48Gr6.js")]).then(([sdkModule, loggingModule]) => ({
13
13
  MatrixClient: sdkModule.MatrixClient,
14
14
  ensureMatrixSdkLoggingConfigured: loggingModule.ensureMatrixSdkLoggingConfigured
15
15
  }));
@@ -2,7 +2,7 @@ import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
2
2
  import { t as ensureMatrixCryptoRuntime } from "./deps-BVWGd2XS.js";
3
3
  import { n as LogService, r as noop } from "./logger-D0GCSDQq.js";
4
4
  import { i as restoreIdbFromDisk, n as persistIdbToDisk } from "./idb-persistence-BGY1CJ7J.js";
5
- import { n as isRepairableSecretStorageAccessError } from "./recovery-key-store-TSlOpcEG.js";
5
+ import { n as isRepairableSecretStorageAccessError } from "./recovery-key-store-BGk8c_gf.js";
6
6
  import { resolveDateTimestampMs, resolveTimestampMsToIsoString } from "openclaw/plugin-sdk/number-runtime";
7
7
  import { MatrixEventEvent } from "matrix-js-sdk/lib/matrix.js";
8
8
  import { setTimeout as setTimeout$1 } from "node:timers/promises";
@@ -11,6 +11,53 @@ import "fake-indexeddb/auto";
11
11
  import { CryptoEvent } from "matrix-js-sdk/lib/crypto-api/CryptoEvent.js";
12
12
  import { DecryptionFailureCode } from "matrix-js-sdk/lib/crypto-api/index.js";
13
13
  import { VerificationPhase, VerificationRequestEvent, VerifierEvent } from "matrix-js-sdk/lib/crypto-api/verification.js";
14
+ //#region extensions/matrix/src/matrix/sdk/fake-indexeddb-prune.ts
15
+ const MATRIX_CRYPTO_DATABASE_SUFFIXES = ["::matrix-sdk-crypto", "::matrix-sdk-crypto-meta"];
16
+ const PRUNER_INSTALLED = Symbol.for("openclaw.matrix.fakeIndexedDbTransactionPruner");
17
+ function getRawDatabase(value) {
18
+ if (!value || typeof value !== "object") return;
19
+ const rawDatabase = value["_rawDatabase"];
20
+ if (!rawDatabase || typeof rawDatabase !== "object") return;
21
+ return rawDatabase;
22
+ }
23
+ function isMatrixCryptoDatabase(rawDatabase) {
24
+ if (!rawDatabase || !Array.isArray(rawDatabase.transactions)) return false;
25
+ const databaseName = rawDatabase.name;
26
+ return typeof databaseName === "string" && MATRIX_CRYPTO_DATABASE_SUFFIXES.some((suffix) => databaseName.endsWith(suffix));
27
+ }
28
+ function pruneFinishedFakeIndexedDbTransactions(rawDatabase) {
29
+ const matrixRawDatabase = rawDatabase;
30
+ if (!isMatrixCryptoDatabase(matrixRawDatabase)) return 0;
31
+ const transactions = matrixRawDatabase.transactions;
32
+ const activeTransactions = transactions.filter((transaction) => transaction?.["_state"] !== "finished");
33
+ const removed = transactions.length - activeTransactions.length;
34
+ if (removed > 0) transactions.splice(0, transactions.length, ...activeTransactions);
35
+ return removed;
36
+ }
37
+ function installFakeIndexedDbTransactionPruner() {
38
+ const databasePrototype = globalThis.IDBDatabase?.prototype;
39
+ const originalTransaction = databasePrototype?.transaction;
40
+ if (!databasePrototype || typeof originalTransaction !== "function" || databasePrototype[PRUNER_INSTALLED]) return;
41
+ Object.defineProperty(databasePrototype, PRUNER_INSTALLED, {
42
+ configurable: false,
43
+ enumerable: false,
44
+ value: true
45
+ });
46
+ databasePrototype.transaction = function patchedMatrixFakeIndexedDbTransaction(...args) {
47
+ pruneFinishedFakeIndexedDbTransactions(getRawDatabase(this));
48
+ const transaction = originalTransaction.apply(this, args);
49
+ const rawDatabase = getRawDatabase(transaction?.db) ?? getRawDatabase(this);
50
+ if (isMatrixCryptoDatabase(rawDatabase) && typeof transaction?.addEventListener === "function") {
51
+ const prune = () => {
52
+ pruneFinishedFakeIndexedDbTransactions(rawDatabase);
53
+ };
54
+ transaction.addEventListener("complete", prune);
55
+ transaction.addEventListener("abort", prune);
56
+ }
57
+ return transaction;
58
+ };
59
+ }
60
+ //#endregion
14
61
  //#region extensions/matrix/src/matrix/sdk/verification-status.ts
15
62
  function isMatrixDeviceLocallyVerified(status) {
16
63
  return status?.localVerified === true;
@@ -31,28 +78,29 @@ var MatrixCryptoBootstrapper = class {
31
78
  }
32
79
  async bootstrap(crypto, options = {}) {
33
80
  const strict = options.strict === true;
34
- const deferSecretStorageBootstrapUntilAfterCrossSigning = options.forceResetCrossSigning === true;
81
+ const forceReset = options.forceResetCrossSigning === true;
82
+ const deferSecretStorageBootstrapUntilAfterCrossSigning = forceReset;
83
+ if (forceReset && !await this.deps.canUnlockSecretStorage()) throw new Error("Forced cross-signing reset requires the active Matrix recovery key; supply it before retrying");
35
84
  this.registerVerificationRequestHandler(crypto);
36
85
  if (!deferSecretStorageBootstrapUntilAfterCrossSigning) await this.bootstrapSecretStorage(crypto, {
37
86
  strict,
38
87
  allowSecretStorageRecreateWithoutRecoveryKey: options.allowSecretStorageRecreateWithoutRecoveryKey === true
39
88
  });
40
- let crossSigning = await this.bootstrapCrossSigning(crypto, {
41
- forceResetCrossSigning: options.forceResetCrossSigning === true,
89
+ const crossSigning = await this.bootstrapCrossSigning(crypto, {
90
+ forceResetCrossSigning: forceReset,
42
91
  allowAutomaticCrossSigningReset: options.allowAutomaticCrossSigningReset !== false,
43
- allowSecretStorageRecreateWithoutRecoveryKey: options.allowSecretStorageRecreateWithoutRecoveryKey === true,
92
+ allowSecretStorageRecreateWithoutRecoveryKey: forceReset ? false : options.allowSecretStorageRecreateWithoutRecoveryKey === true,
44
93
  strict
45
94
  });
95
+ if (forceReset && (!crossSigning.ready || !crossSigning.published)) return {
96
+ crossSigningReady: crossSigning.ready,
97
+ crossSigningPublished: crossSigning.published,
98
+ ownDeviceVerified: null
99
+ };
46
100
  await this.bootstrapSecretStorage(crypto, {
47
101
  strict,
48
102
  allowSecretStorageRecreateWithoutRecoveryKey: options.allowSecretStorageRecreateWithoutRecoveryKey === true
49
103
  });
50
- if (deferSecretStorageBootstrapUntilAfterCrossSigning) crossSigning = await this.bootstrapCrossSigning(crypto, {
51
- forceResetCrossSigning: false,
52
- allowAutomaticCrossSigningReset: false,
53
- allowSecretStorageRecreateWithoutRecoveryKey: options.allowSecretStorageRecreateWithoutRecoveryKey === true,
54
- strict
55
- });
56
104
  const ownDeviceVerified = await this.ensureOwnDeviceTrust(crypto, { strict });
57
105
  return {
58
106
  crossSigningReady: crossSigning.ready,
@@ -166,7 +214,10 @@ var MatrixCryptoBootstrapper = class {
166
214
  return await finalize();
167
215
  }
168
216
  LogService.warn("MatrixClientLite", "Forced cross-signing reset failed:", err);
169
- if (options.strict) throw err instanceof Error ? err : new Error(String(err));
217
+ if (options.strict) {
218
+ if (isRepairableSecretStorageAccessError(err)) throw new Error("Forced cross-signing reset cannot access secret storage; restore the Matrix recovery key before retrying", { cause: err });
219
+ throw err instanceof Error ? err : new Error(String(err));
220
+ }
170
221
  return {
171
222
  ready: false,
172
223
  published: false
@@ -1049,4 +1100,7 @@ var MatrixVerificationManager = class {
1049
1100
  }
1050
1101
  };
1051
1102
  //#endregion
1103
+ //#region extensions/matrix/src/matrix/sdk/crypto-runtime.ts
1104
+ installFakeIndexedDbTransactionPruner();
1105
+ //#endregion
1052
1106
  export { MatrixCryptoBootstrapper, MatrixDecryptBridge, MatrixVerificationManager, createMatrixCryptoFacade, isMatrixDeviceOwnerVerified, isMatrixDeviceVerifiedInCurrentClient, persistIdbToDisk, restoreIdbFromDisk };
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
2
  import { n as normalizeMatrixMessagingTarget, t as isMatrixQualifiedUserId } from "./target-ids-B-5aQxwn.js";
3
- import { f as resolveMatrixAuth } from "./shared-eJVQiO9S.js";
4
- import "./client-jJYrQqEm.js";
5
- import { t as MatrixAuthedHttpClient } from "./http-client-nipb5tk1.js";
3
+ import { f as resolveMatrixAuth } from "./shared-CSN0TWWD.js";
4
+ import "./client-COdtuzoa.js";
5
+ import { t as MatrixAuthedHttpClient } from "./http-client-BBfH0FfA.js";
6
6
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  //#region extensions/matrix/src/directory-live.ts
8
8
  var directory_live_exports = /* @__PURE__ */ __exportAll({
@@ -1,7 +1,7 @@
1
1
  import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-Dq8OZWHF.js";
2
2
  import { D as writeMatrixRecoveryKeyStateToStore, S as writeMatrixIdbSnapshotJsonToStore, a as hasMatrixLegacyCryptoMigrationStateInStore, d as openMatrixLegacyCryptoMigrationStoreOptions, f as openMatrixRecoveryKeyStoreOptions, h as readLegacyMatrixRecoveryKeyState, i as hasMatrixIdbSnapshotStateInStore, n as MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME, o as hasMatrixRecoveryKeyStateInStore, p as readLegacyMatrixLegacyCryptoMigrationState, r as MATRIX_RECOVERY_KEY_FILENAME, t as MATRIX_IDB_SNAPSHOT_FILENAME, u as openMatrixIdbSnapshotStoreOptions, w as writeMatrixLegacyCryptoMigrationStateToStore } from "./crypto-state-store-DK2tcEyP.js";
3
- import { a as openMatrixStorageMetaStoreOptions, i as normalizeMatrixStorageMetadata, n as hasMatrixStorageMetaStateInStore, u as writeMatrixStorageMetaStateToStore } from "./storage-D3JJ0OzE.js";
4
- import { a as readLegacyMatrixSyncCacheState, i as openMatrixSyncCacheStoreOptions, o as writeMatrixSyncCacheStateToStore, r as hasMatrixSyncCacheStateInStore } from "./file-sync-store-ByKRkbHY.js";
3
+ import { a as openMatrixStorageMetaStoreOptions, i as normalizeMatrixStorageMetadata, n as hasMatrixStorageMetaStateInStore, u as writeMatrixStorageMetaStateToStore } from "./storage-BSLHjdgS.js";
4
+ import { a as readLegacyMatrixSyncCacheState, i as openMatrixSyncCacheStoreOptions, o as writeMatrixSyncCacheStateToStore, r as hasMatrixSyncCacheStateInStore } from "./file-sync-store-1GY-yvy-.js";
5
5
  import { r as readLegacyMatrixIdbSnapshotState } from "./idb-persistence-BGY1CJ7J.js";
6
6
  import path from "node:path";
7
7
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { n as editMessageMatrix, r as prepareMatrixSingleText, s as sendSingleTextMessageMatrix, y as MsgType } from "./send-CQoq0bfR.js";
1
+ import { n as editMessageMatrix, r as prepareMatrixSingleText, s as sendSingleTextMessageMatrix, y as MsgType } from "./send-eoayPB_l.js";
2
2
  import { createDraftStreamLoop } from "openclaw/plugin-sdk/channel-outbound";
3
3
  //#region extensions/matrix/src/matrix/draft-stream.ts
4
4
  const DEFAULT_THROTTLE_MS = 1e3;
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
2
  import { o as isRecord } from "./account-selection-Bv_ZuOu4.js";
3
3
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
4
4
  import { O as resolveMatrixSqliteStateEnv } from "./crypto-state-store-DK2tcEyP.js";
5
- import { t as claimCurrentTokenStorageState } from "./storage-D3JJ0OzE.js";
5
+ import { t as claimCurrentTokenStorageState } from "./storage-BSLHjdgS.js";
6
6
  import { t as createAsyncLock } from "./async-lock-BcLS4KOc.js";
7
7
  import { n as LogService } from "./logger-D0GCSDQq.js";
8
8
  import path from "node:path";
@@ -94,7 +94,7 @@ var SqliteBackedMatrixSyncStore = class extends MemoryStore {
94
94
  this.dirty = false;
95
95
  this.persistTimer = null;
96
96
  this.persistPromise = null;
97
- this.stateKey = resolveSyncCacheStateKey(storageRootDir);
97
+ this.stateKey = SYNC_CACHE_STATE_KEY;
98
98
  let restoredSavedSync = null;
99
99
  let restoredClientOptions;
100
100
  let restoredCleanShutdown = false;
@@ -283,9 +283,6 @@ function readPersistedStoreFromSyncStore(store, stateKey) {
283
283
  function openMatrixSyncCacheStore(storageRootDir) {
284
284
  return getMatrixRuntime().state.openSyncKeyedStore(openMatrixSyncCacheStoreOptions(storageRootDir));
285
285
  }
286
- function resolveSyncCacheStateKey(_storageRootDir) {
287
- return SYNC_CACHE_STATE_KEY;
288
- }
289
286
  function metaKey(stateKey) {
290
287
  return `${stateKey}:meta`;
291
288
  }
@@ -367,7 +364,7 @@ async function readLegacyMatrixSyncCacheState(storageRootDir) {
367
364
  }
368
365
  }
369
366
  async function hasMatrixSyncCacheStateInStore(params) {
370
- const stateKey = resolveSyncCacheStateKey(params.storageRootDir);
367
+ const stateKey = SYNC_CACHE_STATE_KEY;
371
368
  const meta = await params.store.lookup(metaKey(stateKey));
372
369
  if (!isSyncCacheMeta(meta) || meta.chunkCount <= 0) return false;
373
370
  const chunks = [];
@@ -385,7 +382,7 @@ async function hasMatrixSyncCacheStateInStore(params) {
385
382
  }
386
383
  }
387
384
  async function writeMatrixSyncCacheStateToStore(params) {
388
- const stateKey = resolveSyncCacheStateKey(params.storageRootDir);
385
+ const stateKey = SYNC_CACHE_STATE_KEY;
389
386
  const rows = buildSyncCacheRows(stateKey, params.payload);
390
387
  for (const row of rows.chunks) await params.store.register(row.key, row.value);
391
388
  await params.store.register(rows.meta.key, rows.meta.value);
@@ -88,6 +88,8 @@ async function readResponseWithLimit$1(res, maxBytes, opts) {
88
88
  }
89
89
  //#endregion
90
90
  //#region extensions/matrix/src/matrix/sdk/transport.ts
91
+ const MATRIX_JSON_RESPONSE_MAX_BYTES = 8 * 1024 * 1024;
92
+ const MATRIX_SDK_RESPONSE_MAX_BYTES = 64 * 1024 * 1024;
91
93
  function normalizeEndpoint(endpoint) {
92
94
  if (!endpoint) return "/";
93
95
  return endpoint.startsWith("/") ? endpoint : `/${endpoint}`;
@@ -140,6 +142,21 @@ function buildBufferedResponse(params) {
140
142
  } catch {}
141
143
  return response;
142
144
  }
145
+ async function enforceDeclaredResponseSize(params) {
146
+ const contentLength = params.response.headers.get("content-length");
147
+ if (!contentLength) return;
148
+ let length;
149
+ try {
150
+ length = parseMediaContentLength(contentLength);
151
+ } catch (error) {
152
+ await params.response.body?.cancel(error).catch(() => void 0);
153
+ throw error;
154
+ }
155
+ if (length === null || length <= params.maxBytes) return;
156
+ const error = params.createError(length);
157
+ await params.response.body?.cancel(error).catch(() => void 0);
158
+ throw error;
159
+ }
143
160
  async function fetchWithMatrixDispatcher(params) {
144
161
  return await fetchWithRuntimeDispatcherOrMockedGlobal(params.url, params.init);
145
162
  }
@@ -234,9 +251,15 @@ function createMatrixGuardedFetch(params) {
234
251
  dispatcherPolicy: params.dispatcherPolicy
235
252
  });
236
253
  try {
254
+ await enforceDeclaredResponseSize({
255
+ response,
256
+ maxBytes: MATRIX_SDK_RESPONSE_MAX_BYTES,
257
+ createError: (length) => /* @__PURE__ */ new Error(`Matrix SDK response exceeds size limit (${length} bytes > ${MATRIX_SDK_RESPONSE_MAX_BYTES} bytes)`)
258
+ });
259
+ const body = await readResponseWithLimit$1(response, MATRIX_SDK_RESPONSE_MAX_BYTES, { onOverflow: ({ maxBytes, size }) => /* @__PURE__ */ new Error(`Matrix SDK response exceeds size limit (${size} bytes > ${maxBytes} bytes)`) });
237
260
  return buildBufferedResponse({
238
261
  source: response,
239
- body: await response.arrayBuffer(),
262
+ body: Uint8Array.from(body),
240
263
  url
241
264
  });
242
265
  } finally {
@@ -271,11 +294,11 @@ async function performMatrixRequest(params) {
271
294
  });
272
295
  try {
273
296
  if (params.raw) {
274
- const contentLength = response.headers.get("content-length");
275
- if (params.maxBytes && contentLength) {
276
- const length = parseMediaContentLength(contentLength);
277
- if (length !== null && length > params.maxBytes) throw new MatrixMediaSizeLimitError(`Matrix media exceeds configured size limit (${length} bytes > ${params.maxBytes} bytes)`);
278
- }
297
+ if (params.maxBytes) await enforceDeclaredResponseSize({
298
+ response,
299
+ maxBytes: params.maxBytes,
300
+ createError: (length) => new MatrixMediaSizeLimitError(`Matrix media exceeds configured size limit (${length} bytes > ${params.maxBytes} bytes)`)
301
+ });
279
302
  const bytes = params.maxBytes ? await readResponseWithLimit$1(response, params.maxBytes, {
280
303
  onOverflow: ({ maxBytes, size }) => new MatrixMediaSizeLimitError(`Matrix media exceeds configured size limit (${size} bytes > ${maxBytes} bytes)`),
281
304
  chunkTimeoutMs: params.readIdleTimeoutMs
@@ -286,11 +309,21 @@ async function performMatrixRequest(params) {
286
309
  buffer: bytes
287
310
  };
288
311
  }
289
- const text = await response.text();
312
+ const jsonMaxBytes = params.maxBytes ?? MATRIX_JSON_RESPONSE_MAX_BYTES;
313
+ await enforceDeclaredResponseSize({
314
+ response,
315
+ maxBytes: jsonMaxBytes,
316
+ createError: (length) => /* @__PURE__ */ new Error(`Matrix JSON response exceeds configured size limit (${length} bytes > ${jsonMaxBytes} bytes)`)
317
+ });
318
+ const buffer = await readResponseWithLimit$1(response, jsonMaxBytes, {
319
+ onOverflow: ({ maxBytes, size }) => /* @__PURE__ */ new Error(`Matrix JSON response exceeds configured size limit (${size} bytes > ${maxBytes} bytes)`),
320
+ chunkTimeoutMs: params.readIdleTimeoutMs,
321
+ onIdleTimeout: ({ chunkTimeoutMs }) => /* @__PURE__ */ new Error(`Matrix JSON response stalled: no data received for ${chunkTimeoutMs}ms`)
322
+ });
290
323
  return {
291
324
  response,
292
- text,
293
- buffer: Buffer.from(text, "utf8")
325
+ text: buffer.toString("utf8"),
326
+ buffer
294
327
  };
295
328
  } finally {
296
329
  await release();
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as registerMatrixCliMetadata } from "./cli-metadata-CDLKjGQJ.js";
1
+ import { n as registerMatrixCliMetadata } from "./cli-metadata-Cn_UFU3u.js";
2
2
  import { registerMatrixSubagentHooks } from "./subagent-hooks-api.js";
3
3
  import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
4
4
  //#region extensions/matrix/index.ts
@@ -1,6 +1,6 @@
1
1
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
2
  import { C as writeMatrixLegacyCryptoMigrationState, _ as readMatrixLegacyCryptoMigrationState, s as migrateLegacyMatrixLegacyCryptoMigrationFileToStore } from "./crypto-state-store-DK2tcEyP.js";
3
- import { l as resolveMatrixStoragePaths } from "./storage-D3JJ0OzE.js";
3
+ import { l as resolveMatrixStoragePaths } from "./storage-BSLHjdgS.js";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { C as formatPollResultsAsText, D as parsePollStartContent, O as resolvePollReferenceEventId, S as formatPollAsText, T as isPollStartType, w as isPollEventType, x as buildPollResultsSummary } from "./send-CQoq0bfR.js";
1
+ import { C as formatPollResultsAsText, D as parsePollStartContent, O as resolvePollReferenceEventId, S as formatPollAsText, T as isPollStartType, w as isPollEventType, x as buildPollResultsSummary } from "./send-eoayPB_l.js";
2
2
  import path from "node:path";
3
3
  //#region extensions/matrix/src/matrix/poll-summary.ts
4
4
  function resolveMatrixPollRootEventId(event) {
@@ -1,8 +1,8 @@
1
1
  import { r as isMatrixNotFoundError } from "./errors-C47hvAF8.js";
2
- import { T as isPollStartType, a as sendMessageMatrix, n as editMessageMatrix, w as isPollEventType } from "./send-CQoq0bfR.js";
2
+ import { T as isPollStartType, a as sendMessageMatrix, n as editMessageMatrix, w as isPollEventType } from "./send-eoayPB_l.js";
3
3
  import { n as MATRIX_REACTION_EVENT_TYPE } from "./reaction-common-DkrQdBSZ.js";
4
- import { a as resolveMatrixMessageAttachment, l as resolveMatrixPollRootEventId, o as resolveMatrixMessageBody, s as fetchMatrixPollMessageSummary } from "./media-text-Dzzc1s2K.js";
5
- import { r as withResolvedRoomAction } from "./client-CNivl1aV.js";
4
+ import { a as resolveMatrixMessageAttachment, l as resolveMatrixPollRootEventId, o as resolveMatrixMessageBody, s as fetchMatrixPollMessageSummary } from "./media-text-DS2lvlA2.js";
5
+ import { r as withResolvedRoomAction } from "./client-DnNqVfCX.js";
6
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { resolveIntegerOption } from "openclaw/plugin-sdk/number-runtime";
8
8
  //#region extensions/matrix/src/matrix/actions/limits.ts
@@ -1,23 +1,23 @@
1
1
  import { a as resolveMatrixAccountConfig, i as resolveMatrixAccountAllowlistConfig } from "./account-config-BZWN9tGS.js";
2
2
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
3
- import { m as resolveConfiguredMatrixBotUserIds } from "./setup-core-0q_2Acbn.js";
4
- import { a as buildAllowlistResolutionSummary, c as createTypingCallbacks, d as logInboundDrop, f as logTypingFailure, h as toLocationContext, i as addAllowlistUserEntriesFromConfigEntry, l as formatLocationText, m as summarizeMapping, n as resolveMatrixStoredSessionMeta, o as canonicalizeAllowlistWithResolvedIds, p as patchAllowlistUsersInConfigEntries, r as resolveMatrixRoomConfig, s as createReplyPrefixOptions, u as getAgentScopedMediaLocalRoots } from "./channel-CphxlhZu.js";
5
- import { a as normalizeMatrixUserId, i as normalizeMatrixAllowList, o as resolveMatrixAllowListMatch } from "./config-schema-26chdmvB.js";
3
+ import { m as resolveConfiguredMatrixBotUserIds } from "./setup-core-Ub_idsu1.js";
4
+ import { a as buildAllowlistResolutionSummary, c as createTypingCallbacks, d as logInboundDrop, f as logTypingFailure, h as toLocationContext, i as addAllowlistUserEntriesFromConfigEntry, l as formatLocationText, m as summarizeMapping, n as resolveMatrixStoredSessionMeta, o as canonicalizeAllowlistWithResolvedIds, p as patchAllowlistUsersInConfigEntries, r as resolveMatrixRoomConfig, s as createReplyPrefixOptions, u as getAgentScopedMediaLocalRoots } from "./channel-Y_HGdzpZ.js";
5
+ import { a as normalizeMatrixUserId, i as normalizeMatrixAllowList, o as resolveMatrixAllowListMatch } from "./config-schema-o1UmRtMF.js";
6
6
  import { t as isMatrixQualifiedUserId } from "./target-ids-B-5aQxwn.js";
7
7
  import { r as isMatrixNotFoundError, t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
8
8
  import { O as resolveMatrixSqliteStateEnv } from "./crypto-state-store-DK2tcEyP.js";
9
- import { c as resolveMatrixStateFilePath } from "./storage-D3JJ0OzE.js";
10
- import { D as parsePollStartContent, S as formatPollAsText, T as isPollStartType, _ as readJoinedMatrixMembers, a as sendMessageMatrix, f as promoteMatrixDirectRoomCandidate, g as isStrictDirectMembership, h as hasDirectMatrixMemberFlag, t as chunkMatrixText, v as MATRIX_OPENCLAW_FINALIZED_PREVIEW_KEY, w as isPollEventType } from "./send-CQoq0bfR.js";
11
- import { t as createMatrixThreadBindingManager } from "./thread-bindings-BIEaF1Nq.js";
9
+ import { c as resolveMatrixStateFilePath } from "./storage-BSLHjdgS.js";
10
+ import { D as parsePollStartContent, S as formatPollAsText, T as isPollStartType, _ as readJoinedMatrixMembers, a as sendMessageMatrix, f as promoteMatrixDirectRoomCandidate, g as isStrictDirectMembership, h as hasDirectMatrixMemberFlag, t as chunkMatrixText, v as MATRIX_OPENCLAW_FINALIZED_PREVIEW_KEY, w as isPollEventType } from "./send-eoayPB_l.js";
11
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-DuoPRata.js";
12
12
  import { n as LogService } from "./logger-D0GCSDQq.js";
13
- import { a as resolveMatrixMessageAttachment, c as fetchMatrixPollSnapshot, i as isLikelyBareFilename, n as formatMatrixMediaUnavailableText, o as resolveMatrixMessageBody, r as formatMatrixMessageText, t as formatMatrixMediaTooLargeText } from "./media-text-Dzzc1s2K.js";
13
+ import { a as resolveMatrixMessageAttachment, c as fetchMatrixPollSnapshot, i as isLikelyBareFilename, n as formatMatrixMediaUnavailableText, o as resolveMatrixMessageBody, r as formatMatrixMessageText, t as formatMatrixMediaTooLargeText } from "./media-text-DS2lvlA2.js";
14
14
  import { n as setActiveMatrixClient } from "./active-client-DXvz2gCo.js";
15
15
  import { t as isBunRuntime } from "./runtime-BefyhPWv.js";
16
- import { d as backfillMatrixAuthDeviceIdAfterStartup, f as resolveMatrixAuth, i as resolveSharedMatrixClient, l as isMatrixStartupAbortError, n as releaseSharedClientInstance, p as resolveMatrixAuthContext, u as throwIfMatrixStartupAborted } from "./shared-eJVQiO9S.js";
17
- import "./client-jJYrQqEm.js";
18
- import { i as isMatrixMediaSizeLimitError, r as MatrixMediaSizeLimitError } from "./http-client-nipb5tk1.js";
16
+ import { d as backfillMatrixAuthDeviceIdAfterStartup, f as resolveMatrixAuth, i as resolveSharedMatrixClient, l as isMatrixStartupAbortError, n as releaseSharedClientInstance, p as resolveMatrixAuthContext, u as throwIfMatrixStartupAborted } from "./shared-CSN0TWWD.js";
17
+ import "./client-COdtuzoa.js";
18
+ import { i as isMatrixMediaSizeLimitError, r as MatrixMediaSizeLimitError } from "./http-client-BBfH0FfA.js";
19
19
  import { d as resolveDefaultGroupPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, m as resolveThreadBindingMaxAgeMsForChannel, p as resolveThreadBindingIdleTimeoutMsForChannel, t as GROUP_POLICY_BLOCKED_LABEL, u as resolveAllowlistProviderRuntimeGroupPolicy } from "./runtime-api-CsBoesCU.js";
20
- import { t as resolveMatrixTargets } from "./resolve-targets-CwHA0nDu.js";
20
+ import { t as resolveMatrixTargets } from "./resolve-targets-Byrcsv59.js";
21
21
  import { t as formatMatrixEncryptedEventDisabledWarning } from "./encryption-guidance-Bg3IRYoX.js";
22
22
  import { n as isMatrixReadySyncState, r as isMatrixTerminalSyncState, t as isMatrixDisconnectedSyncState } from "./sync-state-CWbp0QSY.js";
23
23
  import { a as EventType, i as resolveMatrixThreadRouting, n as resolveMatrixReplyToEventId, o as RelationType, r as resolveMatrixThreadRootId, t as resolveMatrixInboundRoute } from "./route-DY6at4qJ.js";
@@ -821,7 +821,7 @@ const SAS_NOTICE_RETRY_DELAY_MS = 750;
821
821
  const VERIFICATION_EVENT_STARTUP_GRACE_MS = 3e4;
822
822
  let matrixDirectRoomDepsPromise;
823
823
  async function loadMatrixDirectRoomDeps() {
824
- matrixDirectRoomDepsPromise ??= Promise.all([import("./send-CQoq0bfR.js").then((n) => n.d), import("./send-CQoq0bfR.js").then((n) => n.m)]).then(([directManagementModule, directRoomModule]) => ({
824
+ matrixDirectRoomDepsPromise ??= Promise.all([import("./send-eoayPB_l.js").then((n) => n.d), import("./send-eoayPB_l.js").then((n) => n.m)]).then(([directManagementModule, directRoomModule]) => ({
825
825
  inspectMatrixDirectRooms: directManagementModule.inspectMatrixDirectRooms,
826
826
  isStrictDirectRoom: directRoomModule.isStrictDirectRoom
827
827
  }));
@@ -2235,7 +2235,7 @@ let sessionBindingRuntimePromise;
2235
2235
  let matrixReactionEventsPromise;
2236
2236
  let matrixDraftStreamPromise;
2237
2237
  function loadMatrixSendModule() {
2238
- matrixSendModulePromise ??= import("./send-CQoq0bfR.js").then((n) => n.l);
2238
+ matrixSendModulePromise ??= import("./send-eoayPB_l.js").then((n) => n.l);
2239
2239
  return matrixSendModulePromise;
2240
2240
  }
2241
2241
  function loadAcpBindingRuntime() {
@@ -2247,11 +2247,11 @@ function loadSessionBindingRuntime() {
2247
2247
  return sessionBindingRuntimePromise;
2248
2248
  }
2249
2249
  function loadMatrixReactionEvents() {
2250
- matrixReactionEventsPromise ??= import("./reaction-events-BEO6rF08.js");
2250
+ matrixReactionEventsPromise ??= import("./reaction-events-CABcpM-q.js");
2251
2251
  return matrixReactionEventsPromise;
2252
2252
  }
2253
2253
  function loadMatrixDraftStream() {
2254
- matrixDraftStreamPromise ??= import("./draft-stream-DnXbpWN-.js");
2254
+ matrixDraftStreamPromise ??= import("./draft-stream-aZa1gWNI.js");
2255
2255
  return matrixDraftStreamPromise;
2256
2256
  }
2257
2257
  async function matrixTextWouldActivateMentions(client, text) {
@@ -4146,11 +4146,11 @@ function createMatrixRoomInfoResolver(client) {
4146
4146
  let matrixStartupMaintenanceDepsPromise;
4147
4147
  async function loadMatrixStartupMaintenanceDeps() {
4148
4148
  matrixStartupMaintenanceDepsPromise ??= Promise.all([
4149
- import("./setup-core-0q_2Acbn.js").then((n) => n.s),
4149
+ import("./setup-core-Ub_idsu1.js").then((n) => n.s),
4150
4150
  import("./device-health-D4LBxuPq.js"),
4151
- import("./setup-core-0q_2Acbn.js").then((n) => n.a),
4152
- import("./legacy-crypto-restore-BSfdJNJn.js"),
4153
- import("./startup-verification-BNry4Mje.js")
4151
+ import("./setup-core-Ub_idsu1.js").then((n) => n.a),
4152
+ import("./legacy-crypto-restore-DenIM7bT.js"),
4153
+ import("./startup-verification-Bl_QJ2BQ.js")
4154
4154
  ]).then(([configUpdateModule, deviceHealthModule, profileModule, legacyCryptoRestoreModule, startupVerificationModule]) => ({
4155
4155
  updateMatrixAccountConfig: configUpdateModule.updateMatrixAccountConfig,
4156
4156
  summarizeMatrixDeviceHealth: deviceHealthModule.summarizeMatrixDeviceHealth,
@@ -3,7 +3,7 @@ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runti
3
3
  //#region extensions/matrix/src/plugin-entry.runtime.ts
4
4
  let matrixVerificationRuntimePromise;
5
5
  function loadMatrixVerificationRuntime() {
6
- matrixVerificationRuntimePromise ??= import("./verification-C3Pv2eJF.js").then((n) => n.y);
6
+ matrixVerificationRuntimePromise ??= import("./verification-BN8M6A73.js").then((n) => n.y);
7
7
  return matrixVerificationRuntimePromise;
8
8
  }
9
9
  function sendError(respond, err) {
@@ -0,0 +1,3 @@
1
+ import { t as createMatrixClient } from "./create-client-DWe5jGGk.js";
2
+ import "./client-COdtuzoa.js";
3
+ export { createMatrixClient };
@@ -1,6 +1,6 @@
1
1
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
- import { c as resolveMatrixConfigPath, l as updateMatrixAccountConfig, o as syncMatrixOwnProfile } from "./setup-core-0q_2Acbn.js";
3
- import { n as withResolvedActionClient } from "./client-CNivl1aV.js";
2
+ import { c as resolveMatrixConfigPath, l as updateMatrixAccountConfig, o as syncMatrixOwnProfile } from "./setup-core-Ub_idsu1.js";
3
+ import { n as withResolvedActionClient } from "./client-DnNqVfCX.js";
4
4
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
5
5
  //#region extensions/matrix/src/matrix/actions/profile.ts
6
6
  async function updateMatrixOwnProfile(opts = {}) {
@@ -7,7 +7,7 @@ import { getSessionBindingService } from "openclaw/plugin-sdk/session-binding-ru
7
7
  let approvalReactionAuthPromise;
8
8
  let execApprovalResolverPromise;
9
9
  function loadApprovalReactionAuth() {
10
- approvalReactionAuthPromise ??= import("./approval-reaction-auth-BnjVbO3E.js");
10
+ approvalReactionAuthPromise ??= import("./approval-reaction-auth--lKUos8v.js");
11
11
  return approvalReactionAuthPromise;
12
12
  }
13
13
  function loadExecApprovalResolver() {
@@ -76,6 +76,18 @@ var MatrixRecoveryKeyStore = class {
76
76
  createdAt: stored.createdAt
77
77
  };
78
78
  }
79
+ getSecretStorageKeyCandidate(keyId) {
80
+ const normalizedKeyId = keyId.trim();
81
+ if (!normalizedKeyId) return null;
82
+ const staged = this.resolveStagedSecretStorageKey([normalizedKeyId]);
83
+ if (staged) return staged[1];
84
+ const stored = this.loadStoredRecoveryKey();
85
+ if (!stored?.privateKeyBase64) return null;
86
+ const privateKey = new Uint8Array(Buffer.from(stored.privateKeyBase64, "base64"));
87
+ if (privateKey.length === 0) return null;
88
+ this.rememberSecretStorageKey(normalizedKeyId, privateKey, stored.keyInfo);
89
+ return privateKey;
90
+ }
79
91
  resolveEncodedRecoveryKeyInput(params) {
80
92
  const encodedPrivateKey = params.encodedPrivateKey.trim();
81
93
  if (!encodedPrivateKey) throw new Error("Matrix recovery key is required");
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
2
  import { n as normalizeMatrixMessagingTarget, t as isMatrixQualifiedUserId } from "./target-ids-B-5aQxwn.js";
3
- import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-DKe-ZwBH.js";
3
+ import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-D4ibL3X0.js";
4
4
  import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  //#region extensions/matrix/src/resolve-targets.ts
6
6
  var resolve_targets_exports = /* @__PURE__ */ __exportAll({ resolveMatrixTargets: () => resolveMatrixTargets });
@@ -1,4 +1,4 @@
1
- import { t as resolveMatrixTargets } from "./resolve-targets-CwHA0nDu.js";
1
+ import { t as resolveMatrixTargets } from "./resolve-targets-Byrcsv59.js";
2
2
  //#region extensions/matrix/src/resolver.runtime.ts
3
3
  const matrixResolverRuntime = { resolveMatrixTargets };
4
4
  //#endregion
@@ -1,13 +1,13 @@
1
1
  import { n as formatMatrixErrorReason, r as isMatrixNotFoundError, t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
2
2
  import { n as LogService, r as noop, t as ConsoleLogger } from "./logger-D0GCSDQq.js";
3
- import { t as SqliteBackedMatrixSyncStore } from "./file-sync-store-ByKRkbHY.js";
3
+ import { t as SqliteBackedMatrixSyncStore } from "./file-sync-store-1GY-yvy-.js";
4
4
  import { t as MATRIX_IDB_PERSIST_INTERVAL_MS } from "./idb-persistence-lock-DAJ49nZX.js";
5
- import { c as createMatrixStartupAbortError, u as throwIfMatrixStartupAborted } from "./shared-eJVQiO9S.js";
6
- import { a as matrixEventToRaw, n as createMatrixGuardedFetch, o as parseMxc, t as MatrixAuthedHttpClient } from "./http-client-nipb5tk1.js";
5
+ import { c as createMatrixStartupAbortError, u as throwIfMatrixStartupAborted } from "./shared-CSN0TWWD.js";
6
+ import { a as matrixEventToRaw, n as createMatrixGuardedFetch, o as parseMxc, t as MatrixAuthedHttpClient } from "./http-client-BBfH0FfA.js";
7
7
  import { n as resolveMatrixRoomKeyBackupReadinessError } from "./backup-health-Dm_YMVFT.js";
8
8
  import { createMatrixJsSdkClientLogger } from "./logging-QH-48Gr6.js";
9
9
  import { n as isMatrixReadySyncState, r as isMatrixTerminalSyncState } from "./sync-state-CWbp0QSY.js";
10
- import { n as isRepairableSecretStorageAccessError, t as MatrixRecoveryKeyStore } from "./recovery-key-store-TSlOpcEG.js";
10
+ import { n as isRepairableSecretStorageAccessError, t as MatrixRecoveryKeyStore } from "./recovery-key-store-BGk8c_gf.js";
11
11
  import { normalizeNullableString, normalizeStringEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
12
12
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
13
13
  import { ClientEvent, Filter, MatrixEventEvent, Preset, createClient } from "matrix-js-sdk/lib/matrix.js";
@@ -95,7 +95,7 @@ function createMatrixExplicitBootstrapOptions(params) {
95
95
  let loadedMatrixCryptoRuntime = null;
96
96
  let matrixCryptoRuntimePromise = null;
97
97
  async function loadMatrixCryptoRuntime() {
98
- matrixCryptoRuntimePromise ??= import("./crypto-runtime-B4WWNpMk.js").then((runtime) => {
98
+ matrixCryptoRuntimePromise ??= import("./crypto-runtime-DaHFPR8x.js").then((runtime) => {
99
99
  loadedMatrixCryptoRuntime = runtime;
100
100
  return runtime;
101
101
  });
@@ -199,6 +199,18 @@ var MatrixClient = class {
199
199
  this.cryptoBootstrapper ??= new runtime.MatrixCryptoBootstrapper({
200
200
  getUserId: () => this.getUserId(),
201
201
  getPassword: () => this.password,
202
+ canUnlockSecretStorage: async () => {
203
+ const secretStorage = this.client.secretStorage;
204
+ if (!secretStorage || typeof secretStorage.getDefaultKeyId !== "function" || typeof secretStorage.getKey !== "function" || typeof secretStorage.checkKey !== "function") return false;
205
+ const defaultKeyId = await secretStorage.getDefaultKeyId();
206
+ if (!defaultKeyId) return false;
207
+ const keyTuple = await secretStorage.getKey(defaultKeyId);
208
+ const key = this.recoveryKeyStore.getSecretStorageKeyCandidate(defaultKeyId);
209
+ if (!keyTuple || !key) return false;
210
+ const keyInfo = keyTuple[1];
211
+ if (!keyInfo.iv?.trim() || !keyInfo.mac?.trim()) return false;
212
+ return await secretStorage.checkKey(key, keyInfo);
213
+ },
202
214
  getDeviceId: () => this.client.getDeviceId(),
203
215
  verificationManager: this.verificationManager,
204
216
  recoveryKeyStore: this.recoveryKeyStore,
@@ -229,7 +229,7 @@ function buildPollResponseContent(pollEventId, answerIds) {
229
229
  //#region extensions/matrix/src/matrix/send/client.ts
230
230
  let matrixSendClientRuntimePromise = null;
231
231
  async function loadMatrixSendClientRuntime() {
232
- matrixSendClientRuntimePromise ??= import("./client-bootstrap-B9WG3S-N.js").then((n) => n.t);
232
+ matrixSendClientRuntimePromise ??= import("./client-bootstrap-DoOOMP52.js").then((n) => n.t);
233
233
  return await matrixSendClientRuntimePromise;
234
234
  }
235
235
  function resolveMediaMaxBytes(accountId, cfg) {
@@ -1,4 +1,4 @@
1
1
  import { r as setMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
2
  import { s as resetMatrixThreadBindingsForTests } from "./thread-bindings-shared-CKnY4LSd.js";
3
- import { t as createMatrixThreadBindingManager } from "./thread-bindings-BIEaF1Nq.js";
3
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-DuoPRata.js";
4
4
  export { createMatrixThreadBindingManager, resetMatrixThreadBindingsForTests, setMatrixRuntime };
@@ -1,7 +1,7 @@
1
1
  import { a as resolveMatrixAccountConfig, n as hasExplicitMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
2
- import "./setup-core-0q_2Acbn.js";
2
+ import "./setup-core-Ub_idsu1.js";
3
3
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
4
- import { n as bootstrapMatrixVerification } from "./verification-C3Pv2eJF.js";
4
+ import { n as bootstrapMatrixVerification } from "./verification-BN8M6A73.js";
5
5
  //#region extensions/matrix/src/setup-bootstrap.ts
6
6
  async function maybeBootstrapNewEncryptedMatrixAccount(params) {
7
7
  const accountConfig = resolveMatrixAccountConfig({
@@ -670,7 +670,7 @@ const matrixSetupAdapter = {
670
670
  input
671
671
  }),
672
672
  afterAccountConfigWritten: async ({ previousCfg, cfg, accountId, runtime }) => {
673
- const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-CF0GimJg.js");
673
+ const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-DRzRwu9E.js");
674
674
  await runMatrixSetupBootstrapAfterConfigWrite({
675
675
  previousCfg,
676
676
  cfg,
@@ -1,5 +1,5 @@
1
- import { g as resolveMatrixAccount, n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-0q_2Acbn.js";
2
- import { r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-26chdmvB.js";
1
+ import { g as resolveMatrixAccount, n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-Ub_idsu1.js";
2
+ import { r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-o1UmRtMF.js";
3
3
  import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
4
4
  const matrixSetupPlugin = {
5
5
  id: "matrix",
@@ -13,7 +13,7 @@ const matrixSetupPlugin = {
13
13
  order: 70,
14
14
  quickstartAllowFrom: true
15
15
  },
16
- setupWizard: createMatrixSetupWizardProxy(async () => ({ matrixSetupWizard: (await import("./setup-surface-CZYAUrKQ.js").then((n) => n.t)).matrixSetupWizard })),
16
+ setupWizard: createMatrixSetupWizardProxy(async () => ({ matrixSetupWizard: (await import("./setup-surface-CXenmuMm.js").then((n) => n.t)).matrixSetupWizard })),
17
17
  setup: matrixSetupAdapter,
18
18
  capabilities: {
19
19
  chatTypes: [
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
2
  import { n as requiresExplicitMatrixDefaultAccount } from "./account-selection-Bv_ZuOu4.js";
3
3
  import { a as resolveMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
4
4
  import { r as resolveMatrixEnvAuthReadiness } from "./env-auth-DIzOApj0.js";
5
- import { g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, i as moveSingleMatrixAccountConfigToNamedAccount, l as updateMatrixAccountConfig, p as listMatrixAccountIds, r as resolveMatrixSetupDmAllowFrom } from "./setup-core-0q_2Acbn.js";
5
+ import { g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, i as moveSingleMatrixAccountConfigToNamedAccount, l as updateMatrixAccountConfig, p as listMatrixAccountIds, r as resolveMatrixSetupDmAllowFrom } from "./setup-core-Ub_idsu1.js";
6
6
  import { t as resolveMatrixConfigFieldPath } from "./config-paths-CnREYb1Y.js";
7
7
  import { n as validateMatrixHomeserverUrl, r as isPrivateOrLoopbackHost, t as resolveValidatedMatrixHomeserverUrl } from "./url-validation-GRHde6lq.js";
8
8
  import { n as ensureMatrixSdkInstalled, r as isMatrixSdkAvailable } from "./deps-BVWGd2XS.js";
@@ -105,7 +105,7 @@ async function promptMatrixAllowFrom(params) {
105
105
  pending.push(part);
106
106
  }
107
107
  if (pending.length > 0) {
108
- const { resolveMatrixTargets } = await import("./resolve-targets-CwHA0nDu.js").then((n) => n.n);
108
+ const { resolveMatrixTargets } = await import("./resolve-targets-Byrcsv59.js").then((n) => n.n);
109
109
  const results = await resolveMatrixTargets({
110
110
  cfg,
111
111
  accountId,
@@ -233,7 +233,7 @@ async function configureMatrixAccessPrompts(params) {
233
233
  resolvedIds.push(cleaned);
234
234
  continue;
235
235
  }
236
- const { listMatrixDirectoryGroupsLive } = await import("./directory-live-DKe-ZwBH.js").then((n) => n.t);
236
+ const { listMatrixDirectoryGroupsLive } = await import("./directory-live-D4ibL3X0.js").then((n) => n.t);
237
237
  const matches = await listMatrixDirectoryGroupsLive({
238
238
  cfg: next,
239
239
  accountId: params.accountId,
@@ -508,7 +508,7 @@ const matrixOnboardingAdapter = {
508
508
  });
509
509
  },
510
510
  afterConfigWritten: async ({ previousCfg, cfg, accountId, runtime }) => {
511
- const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-CF0GimJg.js");
511
+ const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-DRzRwu9E.js");
512
512
  await runMatrixSetupBootstrapAfterConfigWrite({
513
513
  previousCfg,
514
514
  cfg,
@@ -5,7 +5,7 @@ import { o as resolveMatrixBaseConfig, r as listNormalizedMatrixAccountIds, t as
5
5
  import { i as resolveScopedMatrixEnvConfig, n as resolveGlobalMatrixEnvConfig } from "./env-auth-DIzOApj0.js";
6
6
  import { t as resolveMatrixConfigFieldPath } from "./config-paths-CnREYb1Y.js";
7
7
  import { t as resolveValidatedMatrixHomeserverUrl } from "./url-validation-GRHde6lq.js";
8
- import { s as repairCurrentTokenStorageMetaDeviceId } from "./storage-D3JJ0OzE.js";
8
+ import { s as repairCurrentTokenStorageMetaDeviceId } from "./storage-BSLHjdgS.js";
9
9
  import { n as LogService } from "./logger-D0GCSDQq.js";
10
10
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1, normalizeAccountId as normalizeAccountId$1, normalizeOptionalAccountId, normalizeOptionalAccountId as normalizeOptionalAccountId$1 } from "openclaw/plugin-sdk/account-id";
11
11
  import { coerceSecretRef, normalizeResolvedSecretInputString } from "openclaw/plugin-sdk/secret-input-runtime";
@@ -21,7 +21,7 @@ let matrixCredentialsWriteRuntimePromise;
21
21
  let matrixSecretInputDepsPromise;
22
22
  const MATRIX_AUTH_REQUEST_RETRY_RE = /\b(fetch failed|econnreset|econnrefused|enotfound|etimedout|ehostunreach|enetunreach|eai_again|und_err_|socket hang up|network|headers timeout|body timeout|connect timeout)\b/i;
23
23
  async function loadMatrixAuthClientDeps() {
24
- matrixAuthClientDepsPromise ??= Promise.all([import("./sdk-DLlal_yG.js"), import("./logging-QH-48Gr6.js")]).then(([sdkModule, loggingModule]) => ({
24
+ matrixAuthClientDepsPromise ??= Promise.all([import("./sdk-CpYofZkF.js"), import("./logging-QH-48Gr6.js")]).then(([sdkModule, loggingModule]) => ({
25
25
  MatrixClient: sdkModule.MatrixClient,
26
26
  ensureMatrixSdkLoggingConfigured: loggingModule.ensureMatrixSdkLoggingConfigured
27
27
  }));
@@ -501,7 +501,7 @@ var shared_exports = /* @__PURE__ */ __exportAll({
501
501
  });
502
502
  let matrixCreateClientDepsPromise;
503
503
  async function loadMatrixCreateClientDeps() {
504
- matrixCreateClientDepsPromise ??= import("./create-client-CA759SO2.js").then((n) => n.n).then((runtime) => ({ createMatrixClient: runtime.createMatrixClient }));
504
+ matrixCreateClientDepsPromise ??= import("./create-client-DWe5jGGk.js").then((n) => n.n).then((runtime) => ({ createMatrixClient: runtime.createMatrixClient }));
505
505
  return await matrixCreateClientDepsPromise;
506
506
  }
507
507
  const sharedClientStates = /* @__PURE__ */ new Map();
@@ -1,7 +1,7 @@
1
1
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
2
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
3
3
  import { O as resolveMatrixSqliteStateEnv } from "./crypto-state-store-DK2tcEyP.js";
4
- import { l as resolveMatrixStoragePaths, o as recordCurrentStorageMetaDeviceId } from "./storage-D3JJ0OzE.js";
4
+ import { l as resolveMatrixStoragePaths, o as recordCurrentStorageMetaDeviceId } from "./storage-BSLHjdgS.js";
5
5
  import path from "node:path";
6
6
  import { createHash } from "node:crypto";
7
7
  import { timestampMsToIsoString } from "openclaw/plugin-sdk/number-runtime";
@@ -186,7 +186,7 @@ async function maybeMigrateLegacyStorage(params) {
186
186
  const legacy = resolveLegacyStoragePaths(params.env);
187
187
  const hasFlatLegacyStorageFile = fs.existsSync(legacy.storagePath);
188
188
  const hasAccountScopedLegacyStorageFile = fs.existsSync(params.storagePaths.storagePath);
189
- const syncCache = hasFlatLegacyStorageFile || hasAccountScopedLegacyStorageFile ? await import("./file-sync-store-ByKRkbHY.js").then((n) => n.n) : null;
189
+ const syncCache = hasFlatLegacyStorageFile || hasAccountScopedLegacyStorageFile ? await import("./file-sync-store-1GY-yvy-.js").then((n) => n.n) : null;
190
190
  const hasFlatLegacyStorage = hasFlatLegacyStorageFile && await syncCache?.readLegacyMatrixSyncCacheState(legacy.rootDir) !== null;
191
191
  const hasAccountScopedLegacyStorage = hasAccountScopedLegacyStorageFile && await syncCache?.readLegacyMatrixSyncCacheState(params.storagePaths.rootDir) !== null;
192
192
  const hasLegacyCrypto = fs.existsSync(legacy.cryptoPath);
@@ -293,7 +293,7 @@ async function migrateLegacyIdbSnapshotToSqlite(params) {
293
293
  });
294
294
  }
295
295
  async function migrateLegacySyncCacheToSqlite(params) {
296
- const syncCache = await import("./file-sync-store-ByKRkbHY.js").then((n) => n.n);
296
+ const syncCache = await import("./file-sync-store-1GY-yvy-.js").then((n) => n.n);
297
297
  const persisted = await syncCache.readLegacyMatrixSyncCacheState(params.sourceRootDir);
298
298
  if (!persisted) return;
299
299
  const store = getMatrixRuntime().state.openKeyedStore(syncCache.openMatrixSyncCacheStoreOptions(params.targetRootDir));
@@ -1,8 +1,8 @@
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
3
  import { O as resolveMatrixSqliteStateEnv, k as resolveMatrixSqliteStateKey } from "./crypto-state-store-DK2tcEyP.js";
4
- import { c as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-D3JJ0OzE.js";
5
- import { a as sendMessageMatrix } from "./send-CQoq0bfR.js";
4
+ import { c as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-BSLHjdgS.js";
5
+ import { a as sendMessageMatrix } from "./send-eoayPB_l.js";
6
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import path from "node:path";
8
8
  import { createHash } from "node:crypto";
@@ -1,12 +1,12 @@
1
1
  import { a as resolveMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
2
- import "./setup-core-0q_2Acbn.js";
3
- import { E as parsePollStart, T as isPollStartType, b as buildPollResponseContent, i as reactMatrixMessage, u as resolveMatrixRoomId } from "./send-CQoq0bfR.js";
2
+ import "./setup-core-Ub_idsu1.js";
3
+ import { E as parsePollStart, T as isPollStartType, b as buildPollResponseContent, i as reactMatrixMessage, u as resolveMatrixRoomId } from "./send-eoayPB_l.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-CNivl1aV.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-BO9h35QI.js";
5
+ import { n as withResolvedActionClient, r as withResolvedRoomAction } from "./client-DnNqVfCX.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-CMTiMecS.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-KCzyKPsV.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-C3Pv2eJF.js";
8
+ import { t as applyMatrixProfileUpdate } from "./profile-update-DUh6sAqK.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-BN8M6A73.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,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { i as withStartedActionClient, n as withResolvedActionClient } from "./client-CNivl1aV.js";
2
+ import { i as withStartedActionClient, n as withResolvedActionClient } from "./client-DnNqVfCX.js";
3
3
  import { n as formatMatrixEncryptionUnavailableError } from "./encryption-guidance-Bg3IRYoX.js";
4
4
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@openclaw/matrix",
3
- "version": "2026.6.10-beta.2",
3
+ "version": "2026.6.11-beta.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/matrix",
9
- "version": "2026.6.10-beta.2",
9
+ "version": "2026.6.11-beta.2",
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.10-beta.2"
21
+ "openclaw": ">=2026.6.11-beta.2"
22
22
  },
23
23
  "peerDependenciesMeta": {
24
24
  "openclaw": {
@@ -2,6 +2,7 @@
2
2
  "id": "matrix",
3
3
  "name": "Matrix",
4
4
  "description": "OpenClaw Matrix channel plugin for rooms and direct messages.",
5
+ "icon": "https://cdn.simpleicons.org/matrix",
5
6
  "commandAliases": [
6
7
  {
7
8
  "name": "matrix"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/matrix",
3
- "version": "2026.6.10-beta.2",
3
+ "version": "2026.6.11-beta.2",
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.10-beta.2"
21
+ "openclaw": ">=2026.6.11-beta.2"
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.10-beta.2"
87
+ "pluginApi": ">=2026.6.11-beta.2"
88
88
  },
89
89
  "build": {
90
- "openclawVersion": "2026.6.10-beta.2"
90
+ "openclawVersion": "2026.6.11-beta.2"
91
91
  },
92
92
  "release": {
93
93
  "publishToClawHub": true,
@@ -1,3 +0,0 @@
1
- import { t as createMatrixClient } from "./create-client-CA759SO2.js";
2
- import "./client-jJYrQqEm.js";
3
- export { createMatrixClient };