@openclaw/matrix 2026.6.34 → 2026.6.35

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 (49) hide show
  1. package/dist/api.js +4 -4
  2. package/dist/{approval-handler.runtime-NM2VK9st.js → approval-handler.runtime-BjBtbrdi.js} +4 -4
  3. package/dist/{approval-ids-gM2AFaP-.js → approval-ids-D_MGByp6.js} +1 -1
  4. package/dist/{approval-reaction-auth--lKUos8v.js → approval-reaction-auth-DTQnRx4G.js} +2 -2
  5. package/dist/{channel-DBu5bvBi.js → channel-R4ZIKMwT.js} +16 -13
  6. package/dist/channel-plugin-api.js +1 -1
  7. package/dist/{channel.runtime-DkbZfBYE.js → channel.runtime-HNV3MjVm.js} +6 -6
  8. package/dist/{cli-ZiO7g1vT.js → cli-Dpi-JiMX.js} +9 -9
  9. package/dist/{cli-metadata-Cn_UFU3u.js → cli-metadata-CQ0Fu1Zr.js} +1 -1
  10. package/dist/cli-metadata.js +1 -1
  11. package/dist/{client-COdtuzoa.js → client-BtISa2BM.js} +2 -2
  12. package/dist/{client-bootstrap-DoOOMP52.js → client-bootstrap-Cp6Nwuoi.js} +1 -1
  13. package/dist/{client-DnNqVfCX.js → client-rYWNQvAN.js} +2 -2
  14. package/dist/{config-schema-o1UmRtMF.js → config-schema-BcOo_2Py.js} +1 -1
  15. package/dist/contract-api.js +2 -2
  16. package/dist/{create-client-DWe5jGGk.js → create-client-Cy0BcHFg.js} +2 -2
  17. package/dist/{crypto-runtime-DaHFPR8x.js → crypto-runtime-e0bRP6dB.js} +55 -10
  18. package/dist/{deps-BVWGd2XS.js → deps-DoQ5mpwP.js} +20 -2
  19. package/dist/{directory-live-D4ibL3X0.js → directory-live-CJzQ5za7.js} +2 -2
  20. package/dist/{doctor-BwpkOBwr.js → doctor-wP-H47UF.js} +1 -1
  21. package/dist/{draft-stream-aZa1gWNI.js → draft-stream-C4X8Txw_.js} +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/{legacy-crypto-inspector-tJOj25VL.js → legacy-crypto-inspector-Dl4lMAei.js} +1 -1
  24. package/dist/{matrix-migration.runtime-dvxE3e5l.js → matrix-migration.runtime-BQ69V3CR.js} +1 -1
  25. package/dist/{media-text-DS2lvlA2.js → media-text-BkdnLpBE.js} +1 -1
  26. package/dist/{messages-CMTiMecS.js → messages-BFuuCO_k.js} +4 -3
  27. package/dist/{monitor-BLr_siHV.js → monitor-BIXV9yRC.js} +15 -15
  28. package/dist/plugin-entry.handlers.runtime.js +1 -1
  29. package/dist/probe.runtime-HSFW4DUU.js +3 -0
  30. package/dist/{profile-update-DUh6sAqK.js → profile-update-sMwJwi8I.js} +2 -2
  31. package/dist/{reaction-events-CABcpM-q.js → reaction-events-C690uBKS.js} +1 -1
  32. package/dist/{resolve-targets-Byrcsv59.js → resolve-targets-CwHoq7hn.js} +1 -1
  33. package/dist/{resolver.runtime-Blu9khLB.js → resolver.runtime-C_uuPsry.js} +1 -1
  34. package/dist/runtime-api.js +1 -1
  35. package/dist/runtime-heavy-api.js +1 -1
  36. package/dist/{sdk-CpYofZkF.js → sdk-DaHsa7DR.js} +2 -2
  37. package/dist/{send-eoayPB_l.js → send-BMwJ5LY2.js} +1 -1
  38. package/dist/session-binding-contract-api.js +1 -1
  39. package/dist/{setup-bootstrap-DRzRwu9E.js → setup-bootstrap-D8DQwEcO.js} +2 -2
  40. package/dist/{setup-core-Ub_idsu1.js → setup-core-CVo-64kh.js} +1 -1
  41. package/dist/setup-plugin-api.js +3 -3
  42. package/dist/{setup-surface-CXenmuMm.js → setup-surface-Du6-iuN4.js} +5 -5
  43. package/dist/{shared-CSN0TWWD.js → shared-QI0RpVnw.js} +2 -2
  44. package/dist/{thread-bindings-DuoPRata.js → thread-bindings-d512FOPe.js} +1 -1
  45. package/dist/{tool-actions.runtime-BwP9E9M0.js → tool-actions.runtime-CuxC5hpa.js} +7 -6
  46. package/dist/{verification-BN8M6A73.js → verification-DBPeo1wO.js} +1 -1
  47. package/npm-shrinkwrap.json +3 -3
  48. package/package.json +4 -4
  49. package/dist/probe.runtime-DKRqRegP.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-Ub_idsu1.js";
5
- import { t as matrixPlugin } from "./channel-DBu5bvBi.js";
4
+ import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-CVo-64kh.js";
5
+ import { t as matrixPlugin } from "./channel-R4ZIKMwT.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-CXenmuMm.js";
8
- import { t as createMatrixThreadBindingManager } from "./thread-bindings-DuoPRata.js";
7
+ import { n as matrixOnboardingAdapter } from "./setup-surface-Du6-iuN4.js";
8
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-d512FOPe.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-Ub_idsu1.js";
2
- import { _ as shouldHandleMatrixApprovalRequest, g as isMatrixAnyApprovalClientEnabled } from "./channel-DBu5bvBi.js";
1
+ import { g as resolveMatrixAccount } from "./setup-core-CVo-64kh.js";
2
+ import { _ as shouldHandleMatrixApprovalRequest, g as isMatrixAnyApprovalClientEnabled } from "./channel-R4ZIKMwT.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-eoayPB_l.js";
4
+ import { a as sendMessageMatrix, i as reactMatrixMessage, p as repairMatrixDirectRooms, s as sendSingleTextMessageMatrix } from "./send-BMwJ5LY2.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-CMTiMecS.js";
6
+ import { n as editMatrixMessage, t as deleteMatrixMessage } from "./messages-BFuuCO_k.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-o1UmRtMF.js";
1
+ import { a as normalizeMatrixUserId } from "./config-schema-BcOo_2Py.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-Ub_idsu1.js";
2
- import { t as normalizeMatrixApproverId } from "./approval-ids-gM2AFaP-.js";
1
+ import { g as resolveMatrixAccount } from "./setup-core-CVo-64kh.js";
2
+ import { t as normalizeMatrixApproverId } from "./approval-ids-D_MGByp6.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,14 +1,14 @@
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-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";
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-CVo-64kh.js";
4
+ import { a as normalizeMatrixUserId, n as DEFAULT_ACCOUNT_ID$2, r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-BcOo_2Py.js";
5
+ import { t as normalizeMatrixApproverId } from "./approval-ids-D_MGByp6.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";
9
9
  import { d as setMatrixThreadBindingIdleTimeoutBySessionKey, p as setMatrixThreadBindingMaxAgeBySessionKey } from "./thread-bindings-shared-CKnY4LSd.js";
10
10
  import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-DTgQyQxc.js";
11
- import { i as autoPrepareLegacyMatrixCrypto, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus } from "./matrix-migration.runtime-dvxE3e5l.js";
11
+ import { i as autoPrepareLegacyMatrixCrypto, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus } from "./matrix-migration.runtime-BQ69V3CR.js";
12
12
  import { t as maybeCreateMatrixMigrationSnapshot } from "./migration-snapshot-backup-YcCrSjbE.js";
13
13
  import { n as resolveMatrixInboundConversation } from "./thread-binding-api-DRbBZlhS.js";
14
14
  import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
@@ -129,12 +129,15 @@ const matrixMessageActions = {
129
129
  return extractToolSend(args, "sendMessage");
130
130
  },
131
131
  handleAction: async (ctx) => {
132
- const { handleMatrixAction } = await import("./tool-actions.runtime-BwP9E9M0.js");
133
- const { action, params, cfg, accountId, mediaLocalRoots } = ctx;
132
+ const { handleMatrixAction } = await import("./tool-actions.runtime-CuxC5hpa.js");
133
+ const { action, params, cfg, accountId, mediaAccess, mediaLocalRoots } = ctx;
134
134
  const dispatch = async (actionParams) => await handleMatrixAction({
135
135
  ...actionParams,
136
136
  ...accountId ? { accountId } : {}
137
- }, cfg, { mediaLocalRoots });
137
+ }, cfg, {
138
+ ...mediaAccess ? { mediaAccess } : {},
139
+ mediaLocalRoots
140
+ });
138
141
  const resolveRoomId = () => readStringParam(params, "roomId") ?? readStringParam(params, "channelId") ?? readStringParam(params, "to", { required: true });
139
142
  if (action === "send") {
140
143
  const to = readStringParam(params, "to", { required: true });
@@ -594,7 +597,7 @@ const matrixNativeApprovalCapability = createApproverRestrictedNativeApprovalCap
594
597
  accountId,
595
598
  request
596
599
  }),
597
- load: async () => (await import("./approval-handler.runtime-NM2VK9st.js")).matrixApprovalNativeRuntime
600
+ load: async () => (await import("./approval-handler.runtime-BjBtbrdi.js")).matrixApprovalNativeRuntime
598
601
  })
599
602
  });
600
603
  const splitMatrixApprovalCapability = splitChannelApprovalCapability(matrixNativeApprovalCapability);
@@ -756,7 +759,7 @@ function resolveMatrixGroupToolPolicy(params) {
756
759
  }
757
760
  //#endregion
758
761
  //#region extensions/matrix/src/resolver.ts
759
- const loadMatrixChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./resolver.runtime-Blu9khLB.js"), "matrixResolverRuntime");
762
+ const loadMatrixChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./resolver.runtime-C_uuPsry.js"), "matrixResolverRuntime");
760
763
  const matrixResolverAdapter = { resolveTargets: async ({ cfg, accountId, inputs, kind, runtime }) => (await loadMatrixChannelRuntime$1()).resolveMatrixTargets({
761
764
  cfg,
762
765
  accountId,
@@ -945,11 +948,11 @@ async function runMatrixStartupMaintenance(params) {
945
948
  //#endregion
946
949
  //#region extensions/matrix/src/channel.ts
947
950
  let matrixStartupLock = Promise.resolve();
948
- const loadMatrixSetupWizard = createLazyRuntimeNamedExport(() => import("./setup-surface-CXenmuMm.js").then((n) => n.t), "matrixSetupWizard");
949
- const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-DkbZfBYE.js"), "matrixChannelRuntime");
951
+ const loadMatrixSetupWizard = createLazyRuntimeNamedExport(() => import("./setup-surface-Du6-iuN4.js").then((n) => n.t), "matrixSetupWizard");
952
+ const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-HNV3MjVm.js"), "matrixChannelRuntime");
950
953
  let matrixDoctorModulePromise = null;
951
954
  const loadMatrixDoctorModule = async () => {
952
- matrixDoctorModulePromise ??= import("./doctor-BwpkOBwr.js");
955
+ matrixDoctorModulePromise ??= import("./doctor-wP-H47UF.js");
953
956
  return await matrixDoctorModulePromise;
954
957
  };
955
958
  const meta = {
@@ -1323,7 +1326,7 @@ const matrixPlugin = createChatChannelPlugin({
1323
1326
  await previousLock;
1324
1327
  let monitorMatrixProvider;
1325
1328
  try {
1326
- monitorMatrixProvider = (await import("./monitor-BLr_siHV.js")).monitorMatrixProvider;
1329
+ monitorMatrixProvider = (await import("./monitor-BIXV9yRC.js")).monitorMatrixProvider;
1327
1330
  } finally {
1328
1331
  releaseLock();
1329
1332
  }
@@ -1,2 +1,2 @@
1
- import { t as matrixPlugin } from "./channel-DBu5bvBi.js";
1
+ import { t as matrixPlugin } from "./channel-R4ZIKMwT.js";
2
2
  export { matrixPlugin };
@@ -1,10 +1,10 @@
1
- import { a as sendMessageMatrix, c as sendTypingMatrix, o as sendPollMatrix } from "./send-eoayPB_l.js";
1
+ import { a as sendMessageMatrix, c as sendTypingMatrix, o as sendPollMatrix } from "./send-BMwJ5LY2.js";
2
2
  import { t as isBunRuntime } from "./runtime-BefyhPWv.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";
3
+ import { f as resolveMatrixAuth } from "./shared-QI0RpVnw.js";
4
+ import "./client-BtISa2BM.js";
5
+ import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-CJzQ5za7.js";
6
6
  import { f as resolveOutboundSendDep, n as chunkTextForOutbound } from "./runtime-api-CsBoesCU.js";
7
- import { t as resolveMatrixTargets } from "./resolve-targets-Byrcsv59.js";
7
+ import { t as resolveMatrixTargets } from "./resolve-targets-CwHoq7hn.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-DKRqRegP.js").then((runtimeModule) => ({ createMatrixClient: runtimeModule.createMatrixClient }));
16
+ matrixProbeRuntimeDepsPromise ??= import("./probe.runtime-HSFW4DUU.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-Ub_idsu1.js";
3
+ import { c as resolveMatrixConfigPath, g as resolveMatrixAccount, l as updateMatrixAccountConfig, n as matrixSetupAdapter } from "./setup-core-CVo-64kh.js";
4
4
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
5
- import { n as withResolvedActionClient } from "./client-DnNqVfCX.js";
6
- import { p as resolveMatrixAuthContext } from "./shared-CSN0TWWD.js";
7
- import "./client-COdtuzoa.js";
5
+ import { n as withResolvedActionClient } from "./client-rYWNQvAN.js";
6
+ import { p as resolveMatrixAuthContext } from "./shared-QI0RpVnw.js";
7
+ import "./client-BtISa2BM.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-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";
10
+ import { n as updateMatrixOwnProfile, t as applyMatrixProfileUpdate } from "./profile-update-sMwJwi8I.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-DBPeo1wO.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-DnNqVfCX.js").then((n) => n.t);
41
+ matrixActionClientModulePromise ??= import("./client-rYWNQvAN.js").then((n) => n.t);
42
42
  return matrixActionClientModulePromise;
43
43
  }
44
44
  function loadMatrixDirectManagementModule() {
45
- matrixDirectManagementModulePromise ??= import("./send-eoayPB_l.js").then((n) => n.d);
45
+ matrixDirectManagementModulePromise ??= import("./send-BMwJ5LY2.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-DRzRwu9E.js");
215
+ const { maybeBootstrapNewEncryptedMatrixAccount } = await import("./setup-bootstrap-D8DQwEcO.js");
216
216
  verificationBootstrap = await maybeBootstrapNewEncryptedMatrixAccount({
217
217
  previousCfg: cfg,
218
218
  cfg: updated,
@@ -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-ZiO7g1vT.js");
5
+ const { registerMatrixCli } = await import("./cli-Dpi-JiMX.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-Cn_UFU3u.js";
1
+ import { n as registerMatrixCliMetadata, t as cli_metadata_default } from "./cli-metadata-CQ0Fu1Zr.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-CSN0TWWD.js";
7
- import { t as createMatrixClient } from "./create-client-DWe5jGGk.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-QI0RpVnw.js";
7
+ import { t as createMatrixClient } from "./create-client-Cy0BcHFg.js";
8
8
  //#region extensions/matrix/src/matrix/client.ts
9
9
  var client_exports = /* @__PURE__ */ __exportAll({
10
10
  acquireSharedMatrixClient: () => acquireSharedMatrixClient,
@@ -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-COdtuzoa.js").then((n) => n.t), import("./shared-CSN0TWWD.js").then((n) => n.a)]).then(([clientModule, sharedModule]) => ({
13
+ matrixSharedClientRuntimeDepsPromise ??= Promise.all([import("./client-BtISa2BM.js").then((n) => n.t), import("./shared-QI0RpVnw.js").then((n) => n.a)]).then(([clientModule, sharedModule]) => ({
14
14
  acquireSharedMatrixClient: clientModule.acquireSharedMatrixClient,
15
15
  resolveMatrixAuthContext: clientModule.resolveMatrixAuthContext,
16
16
  releaseSharedClientInstance: sharedModule.releaseSharedClientInstance
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { u as resolveMatrixRoomId } from "./send-eoayPB_l.js";
3
- import { n as withResolvedRuntimeMatrixClient } from "./client-bootstrap-DoOOMP52.js";
2
+ import { u as resolveMatrixRoomId } from "./send-BMwJ5LY2.js";
3
+ import { n as withResolvedRuntimeMatrixClient } from "./client-bootstrap-Cp6Nwuoi.js";
4
4
  //#region extensions/matrix/src/matrix/actions/client.ts
5
5
  var client_exports = /* @__PURE__ */ __exportAll({
6
6
  withResolvedActionClient: () => withResolvedActionClient,
@@ -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-Ub_idsu1.js";
2
+ import { g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, p as listMatrixAccountIds } from "./setup-core-CVo-64kh.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-Ub_idsu1.js";
2
- import { n as matrixOnboardingAdapter } from "./setup-surface-CXenmuMm.js";
1
+ import { d as resolveSingleAccountPromotionTarget, f as singleAccountKeysToMove, n as matrixSetupAdapter, u as namedAccountPromotionKeys } from "./setup-core-CVo-64kh.js";
2
+ import { n as matrixOnboardingAdapter } from "./setup-surface-Du6-iuN4.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
3
  import { d as writeStorageMeta, l as resolveMatrixStoragePaths, r as maybeMigrateLegacyStorage } from "./storage-BSLHjdgS.js";
4
- import "./shared-CSN0TWWD.js";
4
+ import "./shared-QI0RpVnw.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-CpYofZkF.js"), import("./logging-QH-48Gr6.js")]).then(([sdkModule, loggingModule]) => ({
12
+ matrixCreateClientRuntimeDepsPromise ??= Promise.all([import("./sdk-DaHsa7DR.js"), import("./logging-QH-48Gr6.js")]).then(([sdkModule, loggingModule]) => ({
13
13
  MatrixClient: sdkModule.MatrixClient,
14
14
  ensureMatrixSdkLoggingConfigured: loggingModule.ensureMatrixSdkLoggingConfigured
15
15
  }));
@@ -1,5 +1,5 @@
1
1
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
2
- import { t as ensureMatrixCryptoRuntime } from "./deps-BVWGd2XS.js";
2
+ import { t as ensureMatrixCryptoRuntime } from "./deps-DoQ5mpwP.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
5
  import { n as isRepairableSecretStorageAccessError } from "./recovery-key-store-BGk8c_gf.js";
@@ -462,6 +462,8 @@ function createMatrixCryptoFacade(deps) {
462
462
  const MATRIX_DECRYPT_RETRY_BASE_DELAY_MS = 1500;
463
463
  const MATRIX_DECRYPT_RETRY_MAX_DELAY_MS = 3e4;
464
464
  const MATRIX_DECRYPT_RETRY_MAX_ATTEMPTS = 8;
465
+ const MATRIX_DECRYPT_EXHAUSTED_RETRY_TTL_MS = 60 * 6e4;
466
+ const MATRIX_DECRYPT_EXHAUSTED_RETRY_MAX_ENTRIES = 512;
465
467
  function resolveDecryptRetryKey(roomId, eventId) {
466
468
  if (!roomId || !eventId) return null;
467
469
  return `${roomId}|${eventId}`;
@@ -486,10 +488,11 @@ var MatrixDecryptBridge = class {
486
488
  this.decryptedMessageDedupe = /* @__PURE__ */ new Map();
487
489
  this.decryptRetries = /* @__PURE__ */ new Map();
488
490
  this.failedDecryptionsNotified = /* @__PURE__ */ new Set();
489
- this.exhaustedDecryptRetries = /* @__PURE__ */ new Set();
491
+ this.exhaustedDecryptRetries = /* @__PURE__ */ new Map();
490
492
  this.activeRetryRuns = 0;
491
493
  this.retryIdleResolvers = /* @__PURE__ */ new Set();
492
494
  this.cryptoRetrySignalsBound = false;
495
+ this.stopped = false;
493
496
  }
494
497
  shouldEmitUnencryptedMessage(roomId, eventId) {
495
498
  if (!eventId) return true;
@@ -499,6 +502,7 @@ var MatrixDecryptBridge = class {
499
502
  return false;
500
503
  }
501
504
  attachEncryptedEvent(event, roomId) {
505
+ if (this.stopped) return;
502
506
  if (this.trackedEncryptedEvents.has(event)) return;
503
507
  this.trackedEncryptedEvents.add(event);
504
508
  event.on(MatrixEventEvent.Decrypted, (decryptedEvent, err) => {
@@ -518,7 +522,21 @@ var MatrixDecryptBridge = class {
518
522
  });
519
523
  }
520
524
  }
521
- retryPendingNow(reason) {
525
+ retryPendingNow(reason, options) {
526
+ if (this.stopped) return;
527
+ if (options?.includeExhausted) {
528
+ this.pruneExhaustedDecryptRetries(Date.now());
529
+ for (const [retryKey, state] of this.exhaustedDecryptRetries) {
530
+ if (this.decryptRetries.has(retryKey)) continue;
531
+ this.exhaustedDecryptRetries.delete(retryKey);
532
+ this.decryptRetries.set(retryKey, {
533
+ ...state,
534
+ attempts: 0,
535
+ inFlight: false,
536
+ timer: null
537
+ });
538
+ }
539
+ }
522
540
  const pending = Array.from(this.decryptRetries.entries());
523
541
  if (pending.length === 0) return;
524
542
  LogService.debug("MatrixClientLite", `Retrying pending decryptions due to ${reason}`);
@@ -534,14 +552,14 @@ var MatrixDecryptBridge = class {
534
552
  bindCryptoRetrySignals(crypto) {
535
553
  if (!crypto || this.cryptoRetrySignalsBound) return;
536
554
  this.cryptoRetrySignalsBound = true;
537
- const trigger = (reason) => {
538
- this.retryPendingNow(reason);
555
+ const trigger = (reason, options) => {
556
+ this.retryPendingNow(reason, options);
539
557
  };
540
558
  crypto.on(CryptoEvent.KeyBackupDecryptionKeyCached, () => {
541
- trigger("crypto.keyBackupDecryptionKeyCached");
559
+ trigger("crypto.keyBackupDecryptionKeyCached", { includeExhausted: true });
542
560
  });
543
561
  crypto.on(CryptoEvent.RehydrationCompleted, () => {
544
- trigger("dehydration.RehydrationCompleted");
562
+ trigger("dehydration.RehydrationCompleted", { includeExhausted: true });
545
563
  });
546
564
  crypto.on(CryptoEvent.DevicesUpdated, () => {
547
565
  trigger("crypto.devicesUpdated");
@@ -551,7 +569,9 @@ var MatrixDecryptBridge = class {
551
569
  });
552
570
  }
553
571
  stop() {
572
+ this.stopped = true;
554
573
  for (const retryKey of this.decryptRetries.keys()) this.clearDecryptRetry(retryKey);
574
+ this.exhaustedDecryptRetries.clear();
555
575
  }
556
576
  async drainPendingDecryptions(reason) {
557
577
  for (let attempts = 0; attempts < MATRIX_DECRYPT_RETRY_MAX_ATTEMPTS; attempts += 1) {
@@ -562,6 +582,7 @@ var MatrixDecryptBridge = class {
562
582
  }
563
583
  }
564
584
  handleEncryptedEventDecrypted(params) {
585
+ if (this.stopped) return;
565
586
  const decryptedRoomId = params.decryptedEvent.getRoomId() || params.roomId;
566
587
  const decryptedRaw = this.deps.toRaw(params.decryptedEvent);
567
588
  const retryEventId = decryptedRaw.event_id || params.encryptedEvent.getId() || "";
@@ -599,6 +620,7 @@ var MatrixDecryptBridge = class {
599
620
  this.deps.emitFailedDecryption(roomId, event, error);
600
621
  }
601
622
  scheduleDecryptRetry(params) {
623
+ if (this.stopped) return;
602
624
  const retryKey = resolveDecryptRetryKey(params.roomId, params.eventId);
603
625
  if (!retryKey) return;
604
626
  const existing = this.decryptRetries.get(retryKey);
@@ -609,7 +631,17 @@ var MatrixDecryptBridge = class {
609
631
  const retry = this.decryptRetries.get(retryKey);
610
632
  if (retry?.timer) clearTimeout(retry.timer);
611
633
  this.decryptRetries.delete(retryKey);
612
- this.exhaustedDecryptRetries.add(retryKey);
634
+ const exhaustedAt = Date.now();
635
+ this.exhaustedDecryptRetries.set(retryKey, {
636
+ event: params.event,
637
+ roomId: params.roomId,
638
+ eventId: params.eventId,
639
+ attempts: attempts - 1,
640
+ inFlight: false,
641
+ timer: null,
642
+ exhaustedAt
643
+ });
644
+ this.pruneExhaustedDecryptRetries(exhaustedAt);
613
645
  LogService.debug("MatrixClientLite", `Giving up decryption retry for ${params.eventId} in ${params.roomId} after ${attempts - 1} attempts`);
614
646
  return;
615
647
  }
@@ -633,20 +665,25 @@ var MatrixDecryptBridge = class {
633
665
  state.inFlight = true;
634
666
  state.timer = null;
635
667
  this.activeRetryRuns += 1;
636
- if (!(typeof this.deps.client.decryptEventIfNeeded === "function")) {
668
+ const retryEvent = state.event;
669
+ const retryCrypto = this.deps.client.getCrypto?.();
670
+ const canAttemptDecryption = retryCrypto !== void 0 && retryCrypto !== null && typeof retryEvent.attemptDecryption === "function";
671
+ if (!(canAttemptDecryption || typeof this.deps.client.decryptEventIfNeeded === "function")) {
637
672
  this.clearDecryptRetry(retryKey);
638
673
  this.activeRetryRuns = Math.max(0, this.activeRetryRuns - 1);
639
674
  this.resolveRetryIdleIfNeeded();
640
675
  return;
641
676
  }
642
677
  try {
643
- await this.deps.client.decryptEventIfNeeded?.(state.event, { isRetry: true });
678
+ if (canAttemptDecryption) await retryEvent.attemptDecryption?.(retryCrypto, { isRetry: true });
679
+ else await this.deps.client.decryptEventIfNeeded?.(state.event, { isRetry: true });
644
680
  } catch {} finally {
645
681
  state.inFlight = false;
646
682
  this.activeRetryRuns = Math.max(0, this.activeRetryRuns - 1);
647
683
  this.resolveRetryIdleIfNeeded();
648
684
  }
649
685
  if (this.decryptRetries.get(retryKey) !== state) return;
686
+ if (this.stopped) return;
650
687
  if (isDecryptionFailure(state.event)) {
651
688
  if (!shouldRetryDecryptionFailure(state.event)) {
652
689
  this.clearDecryptRetry(retryKey);
@@ -668,6 +705,14 @@ var MatrixDecryptBridge = class {
668
705
  this.exhaustedDecryptRetries.delete(retryKey);
669
706
  this.failedDecryptionsNotified.delete(retryKey);
670
707
  }
708
+ pruneExhaustedDecryptRetries(now) {
709
+ for (const [retryKey, state] of this.exhaustedDecryptRetries) if (now - state.exhaustedAt > MATRIX_DECRYPT_EXHAUSTED_RETRY_TTL_MS) this.exhaustedDecryptRetries.delete(retryKey);
710
+ while (this.exhaustedDecryptRetries.size > MATRIX_DECRYPT_EXHAUSTED_RETRY_MAX_ENTRIES) {
711
+ const oldest = this.exhaustedDecryptRetries.keys().next().value;
712
+ if (oldest === void 0) break;
713
+ this.exhaustedDecryptRetries.delete(oldest);
714
+ }
715
+ }
671
716
  rememberDecryptedMessage(roomId, eventId) {
672
717
  if (!eventId) return;
673
718
  const now = Date.now();
@@ -11,6 +11,7 @@ const REQUIRED_MATRIX_PACKAGES = [
11
11
  ];
12
12
  const MIN_MATRIX_CRYPTO_NATIVE_BINDING_BYTES = 1e6;
13
13
  const MATRIX_COMMAND_OUTPUT_TAIL_BYTES = 64 * 1024;
14
+ const MATRIX_STREAM_ERROR_KILL_GRACE_MS = 1e3;
14
15
  function resolveMissingMatrixPackages(resolveFn) {
15
16
  const resolve = resolveFn ?? defaultResolveFn;
16
17
  return REQUIRED_MATRIX_PACKAGES.filter((pkg) => {
@@ -65,6 +66,8 @@ async function runFixedCommandWithTimeout(params) {
65
66
  let stderr = "";
66
67
  let settled = false;
67
68
  let timer = null;
69
+ let streamKillTimer = null;
70
+ let streamErrorMessage = null;
68
71
  const killChildOnExit = () => {
69
72
  if (!settled && proc.exitCode === null) proc.kill("SIGTERM");
70
73
  };
@@ -72,6 +75,7 @@ async function runFixedCommandWithTimeout(params) {
72
75
  if (settled) return;
73
76
  settled = true;
74
77
  if (timer) clearTimeout(timer);
78
+ if (streamKillTimer) clearTimeout(streamKillTimer);
75
79
  process.off("exit", killChildOnExit);
76
80
  resolve(result);
77
81
  };
@@ -82,8 +86,20 @@ async function runFixedCommandWithTimeout(params) {
82
86
  proc.stderr?.on("data", (chunk) => {
83
87
  stderr = appendBoundedOutputTail(stderr, chunk);
84
88
  });
89
+ const failReadableStream = (streamName) => (error) => {
90
+ if (settled || streamErrorMessage) return;
91
+ streamErrorMessage = `${streamName} stream failed: ${formatErrorMessage(error)}`;
92
+ if (proc.exitCode === null) proc.kill("SIGTERM");
93
+ streamKillTimer = setTimeout(() => {
94
+ if (!settled && proc.exitCode === null) proc.kill("SIGKILL");
95
+ }, MATRIX_STREAM_ERROR_KILL_GRACE_MS);
96
+ streamKillTimer.unref?.();
97
+ };
98
+ proc.stdout?.on("error", failReadableStream("stdout"));
99
+ proc.stderr?.on("error", failReadableStream("stderr"));
85
100
  timer = setTimeout(() => {
86
101
  proc.kill("SIGKILL");
102
+ if (streamErrorMessage) return;
87
103
  finalize({
88
104
  code: 124,
89
105
  stdout,
@@ -91,6 +107,7 @@ async function runFixedCommandWithTimeout(params) {
91
107
  });
92
108
  }, params.timeoutMs);
93
109
  proc.on("error", (err) => {
110
+ if (streamErrorMessage) return;
94
111
  finalize({
95
112
  code: 1,
96
113
  stdout,
@@ -98,10 +115,11 @@ async function runFixedCommandWithTimeout(params) {
98
115
  });
99
116
  });
100
117
  proc.on("close", (code) => {
118
+ const streamErrorStderr = streamErrorMessage ? stderr ? appendBoundedOutputTail(stderr, `\n${streamErrorMessage}`) : streamErrorMessage : stderr;
101
119
  finalize({
102
- code: code ?? 1,
120
+ code: streamErrorMessage ? 1 : code ?? 1,
103
121
  stdout,
104
- stderr
122
+ stderr: streamErrorStderr
105
123
  });
106
124
  });
107
125
  });
@@ -1,7 +1,7 @@
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-CSN0TWWD.js";
4
- import "./client-COdtuzoa.js";
3
+ import { f as resolveMatrixAuth } from "./shared-QI0RpVnw.js";
4
+ import "./client-BtISa2BM.js";
5
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
@@ -1,6 +1,6 @@
1
1
  import { o as isRecord } from "./account-selection-Bv_ZuOu4.js";
2
2
  import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-Dq8OZWHF.js";
3
- import { i as autoPrepareLegacyMatrixCrypto, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus } from "./matrix-migration.runtime-dvxE3e5l.js";
3
+ import { i as autoPrepareLegacyMatrixCrypto, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus } from "./matrix-migration.runtime-BQ69V3CR.js";
4
4
  import { t as maybeCreateMatrixMigrationSnapshot } from "./migration-snapshot-backup-YcCrSjbE.js";
5
5
  import { detectPluginInstallPathIssue, formatPluginInstallPathIssue, removePluginFromConfig } from "openclaw/plugin-sdk/runtime-doctor";
6
6
  //#region extensions/matrix/src/doctor.ts
@@ -1,4 +1,4 @@
1
- import { n as editMessageMatrix, r as prepareMatrixSingleText, s as sendSingleTextMessageMatrix, y as MsgType } from "./send-eoayPB_l.js";
1
+ import { n as editMessageMatrix, r as prepareMatrixSingleText, s as sendSingleTextMessageMatrix, y as MsgType } from "./send-BMwJ5LY2.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;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as registerMatrixCliMetadata } from "./cli-metadata-Cn_UFU3u.js";
1
+ import { n as registerMatrixCliMetadata } from "./cli-metadata-CQ0Fu1Zr.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,4 +1,4 @@
1
- import { t as ensureMatrixCryptoRuntime } from "./deps-BVWGd2XS.js";
1
+ import { t as ensureMatrixCryptoRuntime } from "./deps-DoQ5mpwP.js";
2
2
  import { createRequire } from "node:module";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
@@ -250,7 +250,7 @@ function isMatrixLegacyCryptoInspectorAvailable() {
250
250
  //#region extensions/matrix/src/legacy-crypto.ts
251
251
  const MATRIX_LEGACY_CRYPTO_INSPECTOR_UNAVAILABLE_MESSAGE = "Legacy Matrix encrypted state was detected, but the Matrix crypto inspector is unavailable.";
252
252
  async function loadMatrixLegacyCryptoInspector() {
253
- return (await import("./legacy-crypto-inspector-tJOj25VL.js")).inspectLegacyMatrixCryptoStore;
253
+ return (await import("./legacy-crypto-inspector-Dl4lMAei.js")).inspectLegacyMatrixCryptoStore;
254
254
  }
255
255
  function detectLegacyBotSdkCryptoStore(cryptoRootDir) {
256
256
  try {
@@ -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-eoayPB_l.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-BMwJ5LY2.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-eoayPB_l.js";
2
+ import { T as isPollStartType, a as sendMessageMatrix, n as editMessageMatrix, w as isPollEventType } from "./send-BMwJ5LY2.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-DS2lvlA2.js";
5
- import { r as withResolvedRoomAction } from "./client-DnNqVfCX.js";
4
+ import { a as resolveMatrixMessageAttachment, l as resolveMatrixPollRootEventId, o as resolveMatrixMessageBody, s as fetchMatrixPollMessageSummary } from "./media-text-BkdnLpBE.js";
5
+ import { r as withResolvedRoomAction } from "./client-rYWNQvAN.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
@@ -79,6 +79,7 @@ async function sendMatrixMessage(to, content, opts = {}) {
79
79
  return await sendMessageMatrix(to, content, {
80
80
  cfg: opts.cfg,
81
81
  mediaUrl: opts.mediaUrl,
82
+ mediaAccess: opts.mediaAccess,
82
83
  mediaLocalRoots: opts.mediaLocalRoots,
83
84
  replyToId: opts.replyToId,
84
85
  threadId: opts.threadId,
@@ -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-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-DBu5bvBi.js";
5
- import { a as normalizeMatrixUserId, i as normalizeMatrixAllowList, o as resolveMatrixAllowListMatch } from "./config-schema-o1UmRtMF.js";
3
+ import { m as resolveConfiguredMatrixBotUserIds } from "./setup-core-CVo-64kh.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-R4ZIKMwT.js";
5
+ import { a as normalizeMatrixUserId, i as normalizeMatrixAllowList, o as resolveMatrixAllowListMatch } from "./config-schema-BcOo_2Py.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
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";
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-BMwJ5LY2.js";
11
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-d512FOPe.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-DS2lvlA2.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-BkdnLpBE.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-CSN0TWWD.js";
17
- import "./client-COdtuzoa.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-QI0RpVnw.js";
17
+ import "./client-BtISa2BM.js";
18
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-Byrcsv59.js";
20
+ import { t as resolveMatrixTargets } from "./resolve-targets-CwHoq7hn.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-eoayPB_l.js").then((n) => n.d), import("./send-eoayPB_l.js").then((n) => n.m)]).then(([directManagementModule, directRoomModule]) => ({
824
+ matrixDirectRoomDepsPromise ??= Promise.all([import("./send-BMwJ5LY2.js").then((n) => n.d), import("./send-BMwJ5LY2.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-eoayPB_l.js").then((n) => n.l);
2238
+ matrixSendModulePromise ??= import("./send-BMwJ5LY2.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-CABcpM-q.js");
2250
+ matrixReactionEventsPromise ??= import("./reaction-events-C690uBKS.js");
2251
2251
  return matrixReactionEventsPromise;
2252
2252
  }
2253
2253
  function loadMatrixDraftStream() {
2254
- matrixDraftStreamPromise ??= import("./draft-stream-aZa1gWNI.js");
2254
+ matrixDraftStreamPromise ??= import("./draft-stream-C4X8Txw_.js");
2255
2255
  return matrixDraftStreamPromise;
2256
2256
  }
2257
2257
  async function matrixTextWouldActivateMentions(client, text) {
@@ -4149,9 +4149,9 @@ function createMatrixRoomInfoResolver(client) {
4149
4149
  let matrixStartupMaintenanceDepsPromise;
4150
4150
  async function loadMatrixStartupMaintenanceDeps() {
4151
4151
  matrixStartupMaintenanceDepsPromise ??= Promise.all([
4152
- import("./setup-core-Ub_idsu1.js").then((n) => n.s),
4152
+ import("./setup-core-CVo-64kh.js").then((n) => n.s),
4153
4153
  import("./device-health-D4LBxuPq.js"),
4154
- import("./setup-core-Ub_idsu1.js").then((n) => n.a),
4154
+ import("./setup-core-CVo-64kh.js").then((n) => n.a),
4155
4155
  import("./legacy-crypto-restore-DenIM7bT.js"),
4156
4156
  import("./startup-verification-Bl_QJ2BQ.js")
4157
4157
  ]).then(([configUpdateModule, deviceHealthModule, profileModule, legacyCryptoRestoreModule, startupVerificationModule]) => ({
@@ -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-BN8M6A73.js").then((n) => n.y);
6
+ matrixVerificationRuntimePromise ??= import("./verification-DBPeo1wO.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-Cy0BcHFg.js";
2
+ import "./client-BtISa2BM.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-Ub_idsu1.js";
3
- import { n as withResolvedActionClient } from "./client-DnNqVfCX.js";
2
+ import { c as resolveMatrixConfigPath, l as updateMatrixAccountConfig, o as syncMatrixOwnProfile } from "./setup-core-CVo-64kh.js";
3
+ import { n as withResolvedActionClient } from "./client-rYWNQvAN.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--lKUos8v.js");
10
+ approvalReactionAuthPromise ??= import("./approval-reaction-auth-DTQnRx4G.js");
11
11
  return approvalReactionAuthPromise;
12
12
  }
13
13
  function loadExecApprovalResolver() {
@@ -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-D4ibL3X0.js";
3
+ import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-CJzQ5za7.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-Byrcsv59.js";
1
+ import { t as resolveMatrixTargets } from "./resolve-targets-CwHoq7hn.js";
2
2
  //#region extensions/matrix/src/resolver.runtime.ts
3
3
  const matrixResolverRuntime = { resolveMatrixTargets };
4
4
  //#endregion
@@ -3,7 +3,7 @@ import { n as listMatrixEnvAccountIds, r as resolveMatrixEnvAccountToken, t as g
3
3
  import { r as setMatrixRuntime } from "./runtime-6S3DNFNv.js";
4
4
  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";
5
5
  import { d as setMatrixThreadBindingIdleTimeoutBySessionKey, p as setMatrixThreadBindingMaxAgeBySessionKey } from "./thread-bindings-shared-CKnY4LSd.js";
6
- import { n as ensureMatrixSdkInstalled, r as isMatrixSdkAvailable } from "./deps-BVWGd2XS.js";
6
+ import { n as ensureMatrixSdkInstalled, r as isMatrixSdkAvailable } from "./deps-DoQ5mpwP.js";
7
7
  import { assertHttpUrlTargetsPrivateNetwork, closeDispatcher, createPinnedDispatcher, resolvePinnedHostnameWithPolicy, ssrfPolicyFromAllowPrivateNetwork, ssrfPolicyFromDangerouslyAllowPrivateNetwork } from "openclaw/plugin-sdk/ssrf-runtime";
8
8
  import { writeJsonFileAtomically } from "openclaw/plugin-sdk/json-store";
9
9
  import { formatZonedTimestamp } from "openclaw/plugin-sdk/time-runtime";
@@ -1,3 +1,3 @@
1
- import { a as detectLegacyMatrixCrypto, i as autoPrepareLegacyMatrixCrypto, n as hasPendingMatrixMigration, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus, s as detectLegacyMatrixState, t as hasActionableMatrixMigration } from "./matrix-migration.runtime-dvxE3e5l.js";
1
+ import { a as detectLegacyMatrixCrypto, i as autoPrepareLegacyMatrixCrypto, n as hasPendingMatrixMigration, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus, s as detectLegacyMatrixState, t as hasActionableMatrixMigration } from "./matrix-migration.runtime-BQ69V3CR.js";
2
2
  import { t as maybeCreateMatrixMigrationSnapshot } from "./migration-snapshot-backup-YcCrSjbE.js";
3
3
  export { autoMigrateLegacyMatrixState, autoPrepareLegacyMatrixCrypto, detectLegacyMatrixCrypto, detectLegacyMatrixState, hasActionableMatrixMigration, hasPendingMatrixMigration, maybeCreateMatrixMigrationSnapshot, resolveMatrixMigrationStatus };
@@ -2,7 +2,7 @@ import { n as formatMatrixErrorReason, r as isMatrixNotFoundError, t as formatMa
2
2
  import { n as LogService, r as noop, t as ConsoleLogger } from "./logger-D0GCSDQq.js";
3
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-CSN0TWWD.js";
5
+ import { c as createMatrixStartupAbortError, u as throwIfMatrixStartupAborted } from "./shared-QI0RpVnw.js";
6
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";
@@ -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-DaHFPR8x.js").then((runtime) => {
98
+ matrixCryptoRuntimePromise ??= import("./crypto-runtime-e0bRP6dB.js").then((runtime) => {
99
99
  loadedMatrixCryptoRuntime = runtime;
100
100
  return runtime;
101
101
  });
@@ -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-DoOOMP52.js").then((n) => n.t);
232
+ matrixSendClientRuntimePromise ??= import("./client-bootstrap-Cp6Nwuoi.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-DuoPRata.js";
3
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-d512FOPe.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-Ub_idsu1.js";
2
+ import "./setup-core-CVo-64kh.js";
3
3
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
4
- import { n as bootstrapMatrixVerification } from "./verification-BN8M6A73.js";
4
+ import { n as bootstrapMatrixVerification } from "./verification-DBPeo1wO.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-DRzRwu9E.js");
673
+ const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-D8DQwEcO.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-Ub_idsu1.js";
2
- import { r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-o1UmRtMF.js";
1
+ import { g as resolveMatrixAccount, n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-CVo-64kh.js";
2
+ import { r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-BcOo_2Py.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-CXenmuMm.js").then((n) => n.t)).matrixSetupWizard })),
16
+ setupWizard: createMatrixSetupWizardProxy(async () => ({ matrixSetupWizard: (await import("./setup-surface-Du6-iuN4.js").then((n) => n.t)).matrixSetupWizard })),
17
17
  setup: matrixSetupAdapter,
18
18
  capabilities: {
19
19
  chatTypes: [
@@ -2,10 +2,10 @@ 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-Ub_idsu1.js";
5
+ import { g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, i as moveSingleMatrixAccountConfigToNamedAccount, l as updateMatrixAccountConfig, p as listMatrixAccountIds, r as resolveMatrixSetupDmAllowFrom } from "./setup-core-CVo-64kh.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
- import { n as ensureMatrixSdkInstalled, r as isMatrixSdkAvailable } from "./deps-BVWGd2XS.js";
8
+ import { n as ensureMatrixSdkInstalled, r as isMatrixSdkAvailable } from "./deps-DoQ5mpwP.js";
9
9
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeStringifiedOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
10
10
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
11
11
  import { formatDocsLink, hasConfiguredSecretInput, mergeAllowFromEntries, normalizeAccountId as normalizeAccountId$1, promptAccountId, promptChannelAccessConfig, splitSetupEntries } from "openclaw/plugin-sdk/setup";
@@ -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-Byrcsv59.js").then((n) => n.n);
108
+ const { resolveMatrixTargets } = await import("./resolve-targets-CwHoq7hn.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-D4ibL3X0.js").then((n) => n.t);
236
+ const { listMatrixDirectoryGroupsLive } = await import("./directory-live-CJzQ5za7.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-DRzRwu9E.js");
511
+ const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-D8DQwEcO.js");
512
512
  await runMatrixSetupBootstrapAfterConfigWrite({
513
513
  previousCfg,
514
514
  cfg,
@@ -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-CpYofZkF.js"), import("./logging-QH-48Gr6.js")]).then(([sdkModule, loggingModule]) => ({
24
+ matrixAuthClientDepsPromise ??= Promise.all([import("./sdk-DaHsa7DR.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-DWe5jGGk.js").then((n) => n.n).then((runtime) => ({ createMatrixClient: runtime.createMatrixClient }));
504
+ matrixCreateClientDepsPromise ??= import("./create-client-Cy0BcHFg.js").then((n) => n.n).then((runtime) => ({ createMatrixClient: runtime.createMatrixClient }));
505
505
  return await matrixCreateClientDepsPromise;
506
506
  }
507
507
  const sharedClientStates = /* @__PURE__ */ new Map();
@@ -2,7 +2,7 @@ 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
4
  import { c as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-BSLHjdgS.js";
5
- import { a as sendMessageMatrix } from "./send-eoayPB_l.js";
5
+ import { a as sendMessageMatrix } from "./send-BMwJ5LY2.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-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";
2
+ import "./setup-core-CVo-64kh.js";
3
+ import { E as parsePollStart, T as isPollStartType, b as buildPollResponseContent, i as reactMatrixMessage, u as resolveMatrixRoomId } from "./send-BMwJ5LY2.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-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";
5
+ import { n as withResolvedActionClient, r as withResolvedRoomAction } from "./client-rYWNQvAN.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-BFuuCO_k.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-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";
8
+ import { t as applyMatrixProfileUpdate } from "./profile-update-sMwJwi8I.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-DBPeo1wO.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) {
@@ -309,6 +309,7 @@ async function handleMatrixAction(params, cfg, opts = {}) {
309
309
  ok: true,
310
310
  result: await sendMatrixMessage(to, content, {
311
311
  mediaUrl: mediaUrl ?? void 0,
312
+ ...opts.mediaAccess ? { mediaAccess: opts.mediaAccess } : {},
312
313
  mediaLocalRoots: opts.mediaLocalRoots,
313
314
  replyToId: replyToId ?? void 0,
314
315
  threadId: threadId ?? void 0,
@@ -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-DnNqVfCX.js";
2
+ import { i as withStartedActionClient, n as withResolvedActionClient } from "./client-rYWNQvAN.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.34",
3
+ "version": "2026.6.35",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/matrix",
9
- "version": "2026.6.34",
9
+ "version": "2026.6.35",
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.34"
21
+ "openclaw": ">=2026.6.35"
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.34",
3
+ "version": "2026.6.35",
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.34"
21
+ "openclaw": ">=2026.6.35"
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.34"
87
+ "pluginApi": ">=2026.6.35"
88
88
  },
89
89
  "build": {
90
- "openclawVersion": "2026.6.34"
90
+ "openclawVersion": "2026.6.35"
91
91
  },
92
92
  "release": {
93
93
  "publishToClawHub": true,
@@ -1,3 +0,0 @@
1
- import { t as createMatrixClient } from "./create-client-DWe5jGGk.js";
2
- import "./client-COdtuzoa.js";
3
- export { createMatrixClient };