@openclaw/matrix 2026.7.2-beta.2 → 2026.7.2-beta.4

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 (90) hide show
  1. package/dist/{account-selection-Bz00QTmQ.js → account-selection-kqquRzCf.js} +5 -5
  2. package/dist/api.js +6 -6
  3. package/dist/{approval-handler.runtime-BQZdg_dJ.js → approval-handler.runtime-AsawryfP.js} +4 -4
  4. package/dist/{approval-ids-De4IhOSN.js → approval-ids-XAMP8vN9.js} +1 -1
  5. package/dist/{approval-reaction-auth-BLJKPLku.js → approval-reaction-auth-DButmM13.js} +2 -2
  6. package/dist/auth-presence.js +13 -21
  7. package/dist/{channel-B1woOUgk.js → channel-MBtrY36B.js} +19 -13
  8. package/dist/channel-plugin-api.js +1 -1
  9. package/dist/{channel.runtime-BvJm9z0w.js → channel.runtime-Bi4Dgy2P.js} +15 -16
  10. package/dist/{cli-CLWOkMvw.js → cli-CcPuMyCk.js} +15 -12
  11. package/dist/{cli-metadata-9Naf7in0.js → cli-metadata-DAhDhbYX.js} +1 -1
  12. package/dist/cli-metadata.js +1 -1
  13. package/dist/{client-BUai6s29.js → client-BwX6rURh.js} +2 -2
  14. package/dist/{client-CPuYbNL8.js → client-Dg8dk8NW.js} +2 -2
  15. package/dist/{client-bootstrap-CNVF73sF.js → client-bootstrap-ZAaO9fZ-.js} +1 -1
  16. package/dist/{config-schema-BTSatSY3.js → config-schema-CggnuwnJ.js} +4 -5
  17. package/dist/contract-api.js +2 -2
  18. package/dist/{create-client-85ttAWDP.js → create-client-Und1YmJ2.js} +4 -4
  19. package/dist/credentials-W2EmwRhu.js +65 -0
  20. package/dist/credentials-read-DVmFCm7X.js +77 -0
  21. package/dist/{credentials-write.runtime-BDtpqvj0.js → credentials-write.runtime-Be9zNSUw.js} +1 -1
  22. package/dist/{crypto-runtime-DoEB5RpM.js → crypto-runtime-_j7TpS7k.js} +3 -3
  23. package/dist/{directory-live-0TyS9xep.js → directory-live-B6fbX6jf.js} +3 -3
  24. package/dist/{doctor-BGTs609f.js → doctor-C0LPJGTz.js} +1 -1
  25. package/dist/doctor-contract-CWVdlRQR.js +183 -0
  26. package/dist/doctor-contract-api.js +220 -73
  27. package/dist/{draft-stream-GOdPZMBm.js → draft-stream-BfibauH1.js} +1 -1
  28. package/dist/{encryption-guidance-BFfgq7c7.js → encryption-guidance-CbEFe38F.js} +1 -1
  29. package/dist/{file-sync-store-CUE9WwD2.js → file-sync-store-DUEWCEjb.js} +21 -4
  30. package/dist/helper-api.js +2 -2
  31. package/dist/{http-client-Jw5_bwQo.js → http-client-DOyTG9l2.js} +2 -2
  32. package/dist/{idb-persistence-BiHEEzD7.js → idb-persistence-C6zQfW2w.js} +73 -64
  33. package/dist/index.js +1 -1
  34. package/dist/{media-text-DPCtdFjk.js → media-text-Cv1VIHXW.js} +1 -1
  35. package/dist/{messages-DCRbGLMh.js → messages-ClTgfFl6.js} +3 -3
  36. package/dist/{monitor-C5EOF9et.js → monitor-2BjKS9RV.js} +93 -92
  37. package/dist/plugin-entry.handlers.runtime.js +1 -1
  38. package/dist/probe.runtime-BWkgfbiE.js +3 -0
  39. package/dist/{profile-update-DompcDyu.js → profile-update-C2My3TML.js} +2 -2
  40. package/dist/{reaction-events-QUgxkQKQ.js → reaction-events-Cj6thhmc.js} +2 -2
  41. package/dist/record-shared-CWWx6fvI.js +2 -0
  42. package/dist/{recovery-key-store-B2RglalK.js → recovery-key-store-0O8ARdT_.js} +1 -1
  43. package/dist/{resolve-targets-Cx1VVArA.js → resolve-targets-Dn11HT76.js} +1 -1
  44. package/dist/{resolver.runtime-PPrv3ZHu.js → resolver.runtime-Zguh0hH9.js} +1 -1
  45. package/dist/runtime-api.js +3 -3
  46. package/dist/{sdk-1TXuSiXZ.js → sdk-DiRXiRRf.js} +5 -5
  47. package/dist/{secret-contract-OZoQf0kI.js → secret-contract-M3hRmGO-.js} +21 -5
  48. package/dist/secret-contract-api.js +1 -1
  49. package/dist/{send-yre1krm8.js → send-CZCmDQu8.js} +4 -3
  50. package/dist/session-binding-contract-api.js +1 -1
  51. package/dist/{setup-bootstrap-DXVRCd4G.js → setup-bootstrap-C9w01xQK.js} +2 -2
  52. package/dist/{setup-core-CYQRY2oG.js → setup-core-D6gyoyeg.js} +109 -21
  53. package/dist/setup-plugin-api.js +4 -3
  54. package/dist/{setup-surface-BjvRQzK6.js → setup-surface-DZIEWtQC.js} +8 -6
  55. package/dist/{shared-BfW4lxGu.js → shared-C7Vm9RxI.js} +6 -6
  56. package/dist/{startup-verification-DSiyDKM5.js → startup-verification-D1nscMh8.js} +2 -2
  57. package/dist/{storage-DD-EnNJE.js → storage-BrkTJZov.js} +11 -44
  58. package/dist/{thread-bindings-U5ZroBeZ.js → thread-bindings-BcYBELC7.js} +3 -3
  59. package/dist/{tool-actions.runtime-BlfTr9b0.js → tool-actions.runtime-Dbco_Vwn.js} +7 -7
  60. package/dist/{verification-CGnI9k1O.js → verification-DhMBWxOJ.js} +2 -2
  61. package/node_modules/music-metadata/lib/common/Util.d.ts +1 -1
  62. package/node_modules/music-metadata/lib/common/Util.js +7 -1
  63. package/node_modules/music-metadata/lib/id3v2/FrameHeader.js +23 -3
  64. package/node_modules/music-metadata/lib/id3v2/FrameParser.js +2 -2
  65. package/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +1 -1
  66. package/node_modules/music-metadata/lib/mp4/AtomToken.js +38 -13
  67. package/node_modules/music-metadata/lib/mpeg/MpegParser.js +1 -1
  68. package/node_modules/music-metadata/package.json +6 -6
  69. package/node_modules/typebox/build/compile/validator.d.mts +1 -4
  70. package/node_modules/typebox/build/guard/guard.d.mts +1 -1
  71. package/node_modules/typebox/build/guard/guard.mjs +5 -2
  72. package/node_modules/typebox/build/guard/string.mjs +16 -4
  73. package/node_modules/typebox/build/schema/engine/_functions.mjs +34 -15
  74. package/node_modules/typebox/build/type/action/readonly_object.d.mts +5 -0
  75. package/node_modules/typebox/build/type/action/readonly_object.mjs +8 -0
  76. package/node_modules/typebox/build/typebox.d.mts +1 -1
  77. package/node_modules/typebox/build/typebox.mjs +1 -1
  78. package/node_modules/typebox/package.json +1 -1
  79. package/node_modules/typebox/readme.md +29 -32
  80. package/npm-shrinkwrap.json +11 -11
  81. package/openclaw.plugin.json +7 -20
  82. package/package.json +111 -28
  83. package/dist/async-lock-BcLS4KOc.js +0 -19
  84. package/dist/credentials-CncWUieb.js +0 -56
  85. package/dist/credentials-read-CwNJrmwu.js +0 -112
  86. package/dist/doctor-contract-D2qTLe-C.js +0 -312
  87. package/dist/probe.runtime-BBvciVfo.js +0 -3
  88. package/dist/record-shared-CvzjvHRn.js +0 -2
  89. package/dist/{deps-DDbghaZH.js → deps-CcVJfvRM.js} +1 -1
  90. package/dist/{storage-paths-B4_I9iqO.js → storage-paths-gUmSydsW.js} +1 -1
@@ -6,9 +6,9 @@ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
6
6
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
7
7
  import { getSessionBindingService } from "openclaw/plugin-sdk/session-binding-runtime";
8
8
  //#region extensions/matrix/src/matrix/monitor/reaction-events.ts
9
- const loadApprovalReactionAuth = createLazyRuntimeModule(() => import("./approval-reaction-auth-BLJKPLku.js"));
9
+ const loadApprovalReactionAuth = createLazyRuntimeModule(() => import("./approval-reaction-auth-DButmM13.js"));
10
10
  const loadExecApprovalResolver = createLazyRuntimeModule(() => import("./exec-approval-resolver-BCgqRtZS.js"));
11
- const loadMatrixSend = createLazyRuntimeModule(() => import("./send-yre1krm8.js").then((n) => n.l));
11
+ const loadMatrixSend = createLazyRuntimeModule(() => import("./send-CZCmDQu8.js").then((n) => n.l));
12
12
  function buildMatrixApprovalTerminalText(result) {
13
13
  const approval = result.approval;
14
14
  const terminalLabel = approval.status === "allowed" ? approval.decision === "allow-always" ? "Allowed always" : "Allowed once" : approval.status === "denied" ? "Denied" : approval.status === "expired" ? "Expired" : "Cancelled";
@@ -0,0 +1,2 @@
1
+ import { isRecord as isRecord$1 } from "openclaw/plugin-sdk/string-coerce-runtime";
2
+ export { isRecord$1 as t };
@@ -1,5 +1,5 @@
1
1
  import { n as formatMatrixErrorReason, t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
2
- import { A as writeMatrixRecoveryKeyStateForPath, C as readLegacyMatrixRecoveryKeyFile, E as readMatrixRecoveryKeyStateForPath, v as migrateLegacyMatrixRecoveryKeyFilePathToStore } from "./storage-DD-EnNJE.js";
2
+ import { A as writeMatrixRecoveryKeyStateForPath, E as readMatrixRecoveryKeyStateForPath, S as readLegacyMatrixRecoveryKeyFile, _ as migrateLegacyMatrixRecoveryKeyFilePathToStore } from "./storage-BrkTJZov.js";
3
3
  import { n as LogService } from "./logger-D0GCSDQq.js";
4
4
  import path from "node:path";
5
5
  import { decodeRecoveryKey } from "matrix-js-sdk/lib/crypto-api/recovery-key.js";
@@ -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-0TyS9xep.js";
3
+ import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-B6fbX6jf.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-Cx1VVArA.js";
1
+ import { t as resolveMatrixTargets } from "./resolve-targets-Dn11HT76.js";
2
2
  //#region extensions/matrix/src/resolver.runtime.ts
3
3
  const matrixResolverRuntime = { resolveMatrixTargets };
4
4
  //#endregion
@@ -1,9 +1,9 @@
1
- import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, o as resolveMatrixAccountStringValues, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-Bz00QTmQ.js";
1
+ import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, o as resolveMatrixAccountStringValues, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-kqquRzCf.js";
2
2
  import { n as listMatrixEnvAccountIds, r as resolveMatrixEnvAccountToken, t as getMatrixScopedEnvVarNames } from "./env-vars-B0NxQnPk.js";
3
3
  import { r as setMatrixRuntime } from "./runtime-6S3DNFNv.js";
4
- import { a as resolveMatrixCredentialsPath, i as resolveMatrixCredentialsFilename, n as resolveMatrixAccountStorageRoot, o as resolveMatrixHomeserverKey, r as resolveMatrixCredentialsDir, s as sanitizeMatrixPathSegment, t as hashMatrixAccessToken } from "./storage-paths-B4_I9iqO.js";
4
+ import { a as resolveMatrixCredentialsPath, i as resolveMatrixCredentialsFilename, n as resolveMatrixAccountStorageRoot, o as resolveMatrixHomeserverKey, r as resolveMatrixCredentialsDir, s as sanitizeMatrixPathSegment, t as hashMatrixAccessToken } from "./storage-paths-gUmSydsW.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-DDbghaZH.js";
6
+ import { n as ensureMatrixSdkInstalled, r as isMatrixSdkAvailable } from "./deps-CcVJfvRM.js";
7
7
  import { assertHttpUrlTargetsPrivateNetwork, closeDispatcher, createPinnedDispatcher, resolvePinnedHostnameWithPolicy, 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,13 +1,13 @@
1
1
  import { n as formatMatrixErrorReason, r as isMatrixNotFoundError, t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
2
+ import { t as SqliteBackedMatrixSyncStore } from "./file-sync-store-DUEWCEjb.js";
2
3
  import { n as LogService, r as noop, t as ConsoleLogger } from "./logger-D0GCSDQq.js";
3
- import { t as SqliteBackedMatrixSyncStore } from "./file-sync-store-CUE9WwD2.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-BfW4lxGu.js";
6
- import { a as matrixEventToRaw, n as createMatrixGuardedFetch, o as parseMxc, t as MatrixAuthedHttpClient } from "./http-client-Jw5_bwQo.js";
5
+ import { c as createMatrixStartupAbortError, u as throwIfMatrixStartupAborted } from "./shared-C7Vm9RxI.js";
6
+ import { a as matrixEventToRaw, n as createMatrixGuardedFetch, o as parseMxc, t as MatrixAuthedHttpClient } from "./http-client-DOyTG9l2.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-B2RglalK.js";
10
+ import { n as isRepairableSecretStorageAccessError, t as MatrixRecoveryKeyStore } from "./recovery-key-store-0O8ARdT_.js";
11
11
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
12
12
  import { normalizeNullableString, normalizeStringEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
13
13
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
@@ -94,7 +94,7 @@ function createMatrixExplicitBootstrapOptions(params) {
94
94
  };
95
95
  }
96
96
  let loadedMatrixCryptoRuntime = null;
97
- const loadMatrixCryptoRuntime = createLazyRuntimeModule(() => import("./crypto-runtime-DoEB5RpM.js").then((runtime) => {
97
+ const loadMatrixCryptoRuntime = createLazyRuntimeModule(() => import("./crypto-runtime-_j7TpS7k.js").then((runtime) => {
98
98
  loadedMatrixCryptoRuntime = runtime;
99
99
  return runtime;
100
100
  }));
@@ -2,6 +2,14 @@ import { t as getMatrixScopedEnvVarNames } from "./env-vars-B0NxQnPk.js";
2
2
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
3
3
  import { collectSecretInputAssignment, createChannelSecretTargetRegistryEntries, getChannelSurface, hasConfiguredSecretInputValue, hasOwnProperty, normalizeSecretStringValue } from "openclaw/plugin-sdk/channel-secret-basic-runtime";
4
4
  //#region extensions/matrix/src/secret-contract.ts
5
+ function accountSecretOwner(accountId) {
6
+ return {
7
+ ownerKind: "account",
8
+ ownerId: `matrix:${normalizeAccountId(accountId)}`,
9
+ requiredForGateway: false,
10
+ disposition: "isolate"
11
+ };
12
+ }
5
13
  const secretTargetRegistryEntries = createChannelSecretTargetRegistryEntries({
6
14
  channelKey: "matrix",
7
15
  account: ["accessToken", "password"],
@@ -13,7 +21,11 @@ function collectRuntimeConfigAssignments(params) {
13
21
  const { channel: matrix, surface } = resolved;
14
22
  const envAccessTokenConfigured = normalizeSecretStringValue(params.context.env.MATRIX_ACCESS_TOKEN).length > 0;
15
23
  const defaultScopedAccessTokenConfigured = normalizeSecretStringValue(params.context.env[getMatrixScopedEnvVarNames("default").accessToken]).length > 0;
16
- const defaultAccountAccessTokenConfigured = surface.accounts.some(({ accountId, account }) => normalizeAccountId(accountId) === DEFAULT_ACCOUNT_ID && hasConfiguredSecretInputValue(account.accessToken, params.defaults));
24
+ const defaultScopedPasswordConfigured = normalizeSecretStringValue(params.context.env[getMatrixScopedEnvVarNames("default").password]).length > 0;
25
+ const defaultAccount = surface.hasExplicitAccounts ? surface.accounts.find(({ accountId }) => normalizeAccountId(accountId) === DEFAULT_ACCOUNT_ID) : void 0;
26
+ const defaultAccountEnabled = surface.channelEnabled && (defaultAccount?.enabled ?? true);
27
+ const defaultAccountAccessTokenConfigured = hasConfiguredSecretInputValue(defaultAccount?.account.accessToken, params.defaults);
28
+ const defaultAccountPasswordConfigured = hasConfiguredSecretInputValue(defaultAccount?.account.password, params.defaults);
17
29
  const baseAccessTokenConfigured = hasConfiguredSecretInputValue(matrix.accessToken, params.defaults);
18
30
  collectSecretInputAssignment({
19
31
  value: matrix.accessToken,
@@ -21,8 +33,9 @@ function collectRuntimeConfigAssignments(params) {
21
33
  expected: "string",
22
34
  defaults: params.defaults,
23
35
  context: params.context,
24
- active: surface.channelEnabled,
25
- inactiveReason: "Matrix channel is disabled.",
36
+ active: defaultAccountEnabled && !defaultAccountAccessTokenConfigured && !defaultScopedAccessTokenConfigured,
37
+ inactiveReason: "Matrix channel or default account is disabled, or default-account access-token auth overrides the top-level accessToken.",
38
+ owner: accountSecretOwner(DEFAULT_ACCOUNT_ID),
26
39
  apply: (value) => {
27
40
  matrix.accessToken = value;
28
41
  }
@@ -33,8 +46,9 @@ function collectRuntimeConfigAssignments(params) {
33
46
  expected: "string",
34
47
  defaults: params.defaults,
35
48
  context: params.context,
36
- active: surface.channelEnabled && !(baseAccessTokenConfigured || envAccessTokenConfigured || defaultScopedAccessTokenConfigured || defaultAccountAccessTokenConfigured),
37
- inactiveReason: "Matrix channel is disabled or access-token auth is configured for the default Matrix account.",
49
+ active: defaultAccountEnabled && !(baseAccessTokenConfigured || envAccessTokenConfigured || defaultScopedAccessTokenConfigured || defaultAccountAccessTokenConfigured || defaultAccountPasswordConfigured || defaultScopedPasswordConfigured),
50
+ inactiveReason: "Matrix channel or default account is disabled, or higher-precedence default-account auth is configured.",
51
+ owner: accountSecretOwner(DEFAULT_ACCOUNT_ID),
38
52
  apply: (value) => {
39
53
  matrix.password = value;
40
54
  }
@@ -49,6 +63,7 @@ function collectRuntimeConfigAssignments(params) {
49
63
  context: params.context,
50
64
  active: enabled,
51
65
  inactiveReason: "Matrix account is disabled.",
66
+ owner: accountSecretOwner(accountId),
52
67
  apply: (value) => {
53
68
  account.accessToken = value;
54
69
  }
@@ -65,6 +80,7 @@ function collectRuntimeConfigAssignments(params) {
65
80
  context: params.context,
66
81
  active: enabled && !(accountAccessTokenConfigured || scopedEnvAccessTokenConfigured || inheritedDefaultAccountAccessTokenConfigured),
67
82
  inactiveReason: "Matrix account is disabled or this account has an accessToken configured.",
83
+ owner: accountSecretOwner(accountId),
68
84
  apply: (value) => {
69
85
  account.password = value;
70
86
  }
@@ -1,2 +1,2 @@
1
- import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries, t as channelSecrets } from "./secret-contract-OZoQf0kI.js";
1
+ import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries, t as channelSecrets } from "./secret-contract-M3hRmGO-.js";
2
2
  export { channelSecrets, collectRuntimeConfigAssignments, secretTargetRegistryEntries };
@@ -9,6 +9,7 @@ import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOpti
9
9
  import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
10
10
  import { loadOutboundMediaFromUrl } from "openclaw/plugin-sdk/outbound-media";
11
11
  import { normalizePollInput } from "openclaw/plugin-sdk/poll-runtime";
12
+ import { isVoiceMessageCompatibleAudio } from "openclaw/plugin-sdk/media-runtime";
12
13
  import MarkdownIt from "markdown-it";
13
14
  import { isAutoLinkedFileRef } from "openclaw/plugin-sdk/text-autolink-runtime";
14
15
  import { parseBuffer } from "music-metadata";
@@ -228,7 +229,7 @@ function buildPollResponseContent(pollEventId, answerIds) {
228
229
  }
229
230
  //#endregion
230
231
  //#region extensions/matrix/src/matrix/send/client.ts
231
- const loadMatrixSendClientRuntime = createLazyRuntimeModule(() => import("./client-bootstrap-CNVF73sF.js").then((n) => n.t));
232
+ const loadMatrixSendClientRuntime = createLazyRuntimeModule(() => import("./client-bootstrap-ZAaO9fZ-.js").then((n) => n.t));
232
233
  function resolveMediaMaxBytes(accountId, cfg) {
233
234
  if (!cfg) throw new Error("Matrix media limits requires a resolved runtime config. Load and resolve config at the command or gateway boundary, then pass cfg through the runtime path.");
234
235
  const matrixCfg = resolveMatrixAccountConfig({
@@ -670,7 +671,7 @@ function resolveMatrixVoiceDecision(opts) {
670
671
  return { useVoice: false };
671
672
  }
672
673
  function isMatrixVoiceCompatibleAudio(opts) {
673
- return getCore$2().media.isVoiceCompatibleAudio({
674
+ return isVoiceMessageCompatibleAudio({
674
675
  contentType: opts.contentType,
675
676
  fileName: opts.fileName
676
677
  });
@@ -1310,7 +1311,7 @@ async function sendMessageMatrix(to, message, opts) {
1310
1311
  buffer: media.buffer,
1311
1312
  contentType: media.contentType,
1312
1313
  fileName: media.fileName,
1313
- kind: media.kind ?? "unknown"
1314
+ kind: media.kind === "sticker" ? "unknown" : media.kind ?? "unknown"
1314
1315
  });
1315
1316
  const baseMsgType = resolveMatrixMsgType(media.contentType, media.fileName);
1316
1317
  const { useVoice } = resolveMatrixVoiceDecision({
@@ -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-U5ZroBeZ.js";
3
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-BcYBELC7.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-CYQRY2oG.js";
2
+ import "./setup-core-D6gyoyeg.js";
3
3
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
4
- import { n as bootstrapMatrixVerification } from "./verification-CGnI9k1O.js";
4
+ import { n as bootstrapMatrixVerification } from "./verification-DhMBWxOJ.js";
5
5
  //#region extensions/matrix/src/setup-bootstrap.ts
6
6
  async function maybeBootstrapNewEncryptedMatrixAccount(params) {
7
7
  const accountConfig = resolveMatrixAccountConfig({
@@ -1,13 +1,14 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { a as resolveMatrixDefaultOrOnlyAccountId, o as resolveMatrixAccountStringValues, r as resolveConfiguredMatrixAccountIds } from "./account-selection-Bz00QTmQ.js";
2
+ import { a as resolveMatrixDefaultOrOnlyAccountId, o as resolveMatrixAccountStringValues, r as resolveConfiguredMatrixAccountIds } from "./account-selection-kqquRzCf.js";
3
3
  import { a as resolveMatrixAccountConfig, o as resolveMatrixBaseConfig, t as findMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
4
4
  import { i as resolveScopedMatrixEnvConfig, n as resolveGlobalMatrixEnvConfig, r as resolveMatrixEnvAuthReadiness } from "./env-auth-CQsYbz-p.js";
5
- import { i as loadMatrixCredentials, n as credentialsMatchConfig } from "./credentials-read-CwNJrmwu.js";
5
+ import { o as loadMatrixCredentials, r as credentialsMatchConfig } from "./credentials-read-DVmFCm7X.js";
6
6
  import { n as resolveMatrixConfigPath$1, r as shouldStoreMatrixAccountAtTopLevel, t as resolveMatrixConfigFieldPath } from "./config-paths-CnREYb1Y.js";
7
7
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
9
9
  import { hasConfiguredSecretInput } from "openclaw/plugin-sdk/secret-input-runtime";
10
10
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1, normalizeAccountId as normalizeAccountId$1 } from "openclaw/plugin-sdk/routing";
11
+ import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
11
12
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$2, addWildcardAllowFrom, applyAccountNameToChannelSection, normalizeAccountId as normalizeAccountId$2, normalizeAllowFromEntries, normalizeSecretInputString, prepareScopedSetupConfig } from "openclaw/plugin-sdk/setup";
12
13
  import { resolveOptionalIntegerOption } from "openclaw/plugin-sdk/number-runtime";
13
14
  import { coerceSecretRef as coerceSecretRef$1 } from "openclaw/plugin-sdk/secret-ref-runtime";
@@ -135,7 +136,12 @@ function resolveMatrixAccount(params) {
135
136
  //#endregion
136
137
  //#region extensions/matrix/src/setup-contract.ts
137
138
  const matrixSingleAccountKeysToMove = [
139
+ "homeserver",
140
+ "userId",
141
+ "accessToken",
142
+ "password",
138
143
  "deviceId",
144
+ "deviceName",
139
145
  "avatarUrl",
140
146
  "initialSyncLimit",
141
147
  "encryption",
@@ -509,16 +515,17 @@ function moveSingleMatrixAccountConfigToNamedAccount(cfg) {
509
515
  };
510
516
  }
511
517
  function validateMatrixSetupInput(params) {
512
- const avatarUrl = resolveSetupAvatarUrl(params.input);
518
+ const input = params.input;
519
+ const avatarUrl = resolveSetupAvatarUrl(input);
513
520
  if (avatarUrl && !isSupportedMatrixAvatarSource(avatarUrl)) return "Matrix avatar URL must be an mxc:// URI or an http(s) URL.";
514
- if (params.input.useEnv) {
521
+ if (input.useEnv) {
515
522
  const envReadiness = resolveMatrixEnvAuthReadiness(params.accountId, process.env);
516
523
  return envReadiness.ready ? null : envReadiness.missingMessage;
517
524
  }
518
- if (!params.input.homeserver?.trim()) return "Matrix requires --homeserver";
519
- const accessToken = params.input.accessToken?.trim();
520
- const password = normalizeSecretInputString(params.input.password);
521
- const userId = params.input.userId?.trim();
525
+ if (!input.homeserver?.trim()) return "Matrix requires --homeserver";
526
+ const accessToken = input.accessToken?.trim();
527
+ const password = normalizeSecretInputString(input.password);
528
+ const userId = input.userId?.trim();
522
529
  if (!accessToken && !password) return "Matrix requires --access-token or --password";
523
530
  if (!accessToken) {
524
531
  if (!userId) return "Matrix requires --user-id when using --password";
@@ -527,15 +534,16 @@ function validateMatrixSetupInput(params) {
527
534
  return null;
528
535
  }
529
536
  function applyMatrixSetupAccountConfig(params) {
537
+ const input = params.input;
530
538
  const normalizedAccountId = normalizeAccountId$2(params.accountId);
531
539
  const next = applyAccountNameToChannelSection({
532
540
  cfg: normalizedAccountId !== DEFAULT_ACCOUNT_ID$2 ? moveSingleMatrixAccountConfigToNamedAccount(params.cfg) : params.cfg,
533
541
  channelKey: channel$1,
534
542
  accountId: normalizedAccountId,
535
- name: params.input.name
543
+ name: input.name
536
544
  });
537
- const avatarUrl = resolveSetupAvatarUrl(params.input);
538
- if (params.input.useEnv) return updateMatrixAccountConfig(next, normalizedAccountId, {
545
+ const avatarUrl = resolveSetupAvatarUrl(input);
546
+ if (input.useEnv) return updateMatrixAccountConfig(next, normalizedAccountId, {
539
547
  enabled: true,
540
548
  homeserver: null,
541
549
  allowPrivateNetwork: null,
@@ -547,20 +555,20 @@ function applyMatrixSetupAccountConfig(params) {
547
555
  deviceName: null,
548
556
  avatarUrl
549
557
  });
550
- const accessToken = params.input.accessToken?.trim();
551
- const password = normalizeSecretInputString(params.input.password);
552
- const userId = params.input.userId?.trim();
558
+ const accessToken = input.accessToken?.trim();
559
+ const password = normalizeSecretInputString(input.password);
560
+ const userId = input.userId?.trim();
553
561
  return updateMatrixAccountConfig(next, normalizedAccountId, {
554
562
  enabled: true,
555
- homeserver: params.input.homeserver?.trim(),
556
- allowPrivateNetwork: typeof params.input.dangerouslyAllowPrivateNetwork === "boolean" ? params.input.dangerouslyAllowPrivateNetwork : typeof params.input.allowPrivateNetwork === "boolean" ? params.input.allowPrivateNetwork : void 0,
557
- proxy: normalizeOptionalString(params.input.proxy),
563
+ homeserver: input.homeserver?.trim(),
564
+ allowPrivateNetwork: typeof input.dangerouslyAllowPrivateNetwork === "boolean" ? input.dangerouslyAllowPrivateNetwork : typeof input.allowPrivateNetwork === "boolean" ? input.allowPrivateNetwork : void 0,
565
+ proxy: normalizeOptionalString(input.proxy),
558
566
  userId: password && !userId ? null : userId,
559
567
  accessToken: accessToken || (password ? null : void 0),
560
568
  password: password || (accessToken ? null : void 0),
561
- deviceName: params.input.deviceName?.trim(),
569
+ deviceName: input.deviceName?.trim(),
562
570
  avatarUrl,
563
- initialSyncLimit: params.input.initialSyncLimit
571
+ initialSyncLimit: input.initialSyncLimit
564
572
  });
565
573
  }
566
574
  //#endregion
@@ -645,6 +653,9 @@ function createMatrixSetupWizardProxy(loadWizardModule) {
645
653
  };
646
654
  }
647
655
  const matrixSetupAdapter = {
656
+ singleAccountKeysToMove,
657
+ namedAccountPromotionKeys,
658
+ resolveSingleAccountPromotionTarget,
648
659
  resolveAccountId: ({ accountId, input }) => resolveMatrixSetupAccountId({
649
660
  accountId,
650
661
  name: input?.name
@@ -669,7 +680,7 @@ const matrixSetupAdapter = {
669
680
  input
670
681
  }),
671
682
  afterAccountConfigWritten: async ({ previousCfg, cfg, accountId, runtime }) => {
672
- const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-DXVRCd4G.js");
683
+ const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-C9w01xQK.js");
673
684
  await runMatrixSetupBootstrapAfterConfigWrite({
674
685
  previousCfg,
675
686
  cfg,
@@ -678,5 +689,82 @@ const matrixSetupAdapter = {
678
689
  });
679
690
  }
680
691
  };
692
+ const matrixSetupContract = defineChannelSetupContract({
693
+ fields: {
694
+ homeserver: {
695
+ kind: "string",
696
+ cli: {
697
+ flags: "--homeserver <url>",
698
+ description: "Matrix homeserver URL"
699
+ }
700
+ },
701
+ userId: {
702
+ kind: "string",
703
+ cli: {
704
+ flags: "--user-id <id>",
705
+ description: "Matrix user id"
706
+ }
707
+ },
708
+ accessToken: {
709
+ kind: "string",
710
+ sensitive: true,
711
+ cli: {
712
+ flags: "--access-token <token>",
713
+ description: "Matrix access token"
714
+ }
715
+ },
716
+ password: {
717
+ kind: "string",
718
+ sensitive: true,
719
+ cli: {
720
+ flags: "--password <password>",
721
+ description: "Matrix password"
722
+ }
723
+ },
724
+ deviceName: {
725
+ kind: "string",
726
+ cli: {
727
+ flags: "--device-name <name>",
728
+ description: "Matrix device name"
729
+ }
730
+ },
731
+ avatarUrl: {
732
+ kind: "string",
733
+ cli: {
734
+ flags: "--avatar-url <url>",
735
+ description: "Matrix avatar URL"
736
+ }
737
+ },
738
+ initialSyncLimit: {
739
+ kind: "integer",
740
+ cli: {
741
+ flags: "--initial-sync-limit <n>",
742
+ description: "Matrix initial sync room limit"
743
+ }
744
+ },
745
+ proxy: {
746
+ kind: "string",
747
+ cli: {
748
+ flags: "--proxy <url>",
749
+ description: "Matrix proxy URL"
750
+ }
751
+ },
752
+ dangerouslyAllowPrivateNetwork: {
753
+ kind: "boolean",
754
+ cli: {
755
+ flags: "--dangerously-allow-private-network",
756
+ description: "Allow private-network Matrix homeservers"
757
+ }
758
+ },
759
+ useEnv: {
760
+ kind: "boolean",
761
+ cli: {
762
+ flags: "--use-env",
763
+ description: "Use Matrix environment credentials"
764
+ }
765
+ }
766
+ },
767
+ legacyAdapter: matrixSetupAdapter
768
+ });
681
769
  //#endregion
682
- export { profile_exports as a, resolveMatrixConfigPath as c, resolveSingleAccountPromotionTarget as d, singleAccountKeysToMove as f, resolveMatrixAccount as g, resolveDefaultMatrixAccountId as h, moveSingleMatrixAccountConfigToNamedAccount as i, updateMatrixAccountConfig as l, resolveConfiguredMatrixBotUserIds as m, matrixSetupAdapter as n, syncMatrixOwnProfile as o, listMatrixAccountIds as p, resolveMatrixSetupDmAllowFrom as r, config_update_exports as s, createMatrixSetupWizardProxy as t, namedAccountPromotionKeys as u };
770
+ export { resolveMatrixAccount as _, moveSingleMatrixAccountConfigToNamedAccount as a, config_update_exports as c, namedAccountPromotionKeys as d, resolveSingleAccountPromotionTarget as f, resolveDefaultMatrixAccountId as g, resolveConfiguredMatrixBotUserIds as h, resolveMatrixSetupDmAllowFrom as i, resolveMatrixConfigPath as l, listMatrixAccountIds as m, matrixSetupAdapter as n, profile_exports as o, singleAccountKeysToMove as p, matrixSetupContract as r, syncMatrixOwnProfile as s, createMatrixSetupWizardProxy as t, updateMatrixAccountConfig as u };
@@ -1,5 +1,5 @@
1
- import { g as resolveMatrixAccount, n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-CYQRY2oG.js";
2
- import { r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-BTSatSY3.js";
1
+ import { _ as resolveMatrixAccount, n as matrixSetupAdapter, r as matrixSetupContract, t as createMatrixSetupWizardProxy } from "./setup-core-D6gyoyeg.js";
2
+ import { r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-CggnuwnJ.js";
3
3
  import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
4
4
  const matrixSetupPlugin = {
5
5
  id: "matrix",
@@ -13,8 +13,9 @@ const matrixSetupPlugin = {
13
13
  order: 70,
14
14
  quickstartAllowFrom: true
15
15
  },
16
- setupWizard: createMatrixSetupWizardProxy(async () => ({ matrixSetupWizard: (await import("./setup-surface-BjvRQzK6.js").then((n) => n.t)).matrixSetupWizard })),
16
+ setupWizard: createMatrixSetupWizardProxy(async () => ({ matrixSetupWizard: (await import("./setup-surface-DZIEWtQC.js").then((n) => n.t)).matrixSetupWizard })),
17
17
  setup: matrixSetupAdapter,
18
+ setupContract: matrixSetupContract,
18
19
  capabilities: {
19
20
  chatTypes: [
20
21
  "direct",
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { n as requiresExplicitMatrixDefaultAccount } from "./account-selection-Bz00QTmQ.js";
2
+ import { n as requiresExplicitMatrixDefaultAccount } from "./account-selection-kqquRzCf.js";
3
3
  import { a as resolveMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
4
4
  import { r as resolveMatrixEnvAuthReadiness } from "./env-auth-CQsYbz-p.js";
5
- import { g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, i as moveSingleMatrixAccountConfigToNamedAccount, l as updateMatrixAccountConfig, p as listMatrixAccountIds, r as resolveMatrixSetupDmAllowFrom } from "./setup-core-CYQRY2oG.js";
5
+ import { _ as resolveMatrixAccount, a as moveSingleMatrixAccountConfigToNamedAccount, g as resolveDefaultMatrixAccountId, i as resolveMatrixSetupDmAllowFrom, m as listMatrixAccountIds, u as updateMatrixAccountConfig } from "./setup-core-D6gyoyeg.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-DDbghaZH.js";
8
+ import { n as ensureMatrixSdkInstalled, r as isMatrixSdkAvailable } from "./deps-CcVJfvRM.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-Cx1VVArA.js").then((n) => n.n);
108
+ const { resolveMatrixTargets } = await import("./resolve-targets-Dn11HT76.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-0TyS9xep.js").then((n) => n.t);
236
+ const { listMatrixDirectoryGroupsLive } = await import("./directory-live-B6fbX6jf.js").then((n) => n.t);
237
237
  const matches = await listMatrixDirectoryGroupsLive({
238
238
  cfg: next,
239
239
  accountId: params.accountId,
@@ -387,6 +387,7 @@ async function runMatrixConfigure(params) {
387
387
  }) === "token") {
388
388
  accessToken = normalizeStringifiedOptionalString(await params.prompter.text({
389
389
  message: "Matrix access token",
390
+ sensitive: true,
390
391
  validate: (value) => normalizeOptionalString(value) ? void 0 : "Required"
391
392
  })) ?? "";
392
393
  password = void 0;
@@ -404,6 +405,7 @@ async function runMatrixConfigure(params) {
404
405
  })) ?? "";
405
406
  password = normalizeStringifiedOptionalString(await params.prompter.text({
406
407
  message: "Matrix password",
408
+ sensitive: true,
407
409
  validate: (value) => normalizeOptionalString(value) ? void 0 : "Required"
408
410
  })) ?? "";
409
411
  accessToken = void 0;
@@ -508,7 +510,7 @@ const matrixOnboardingAdapter = {
508
510
  });
509
511
  },
510
512
  afterConfigWritten: async ({ previousCfg, cfg, accountId, runtime }) => {
511
- const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-DXVRCd4G.js");
513
+ const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-C9w01xQK.js");
512
514
  await runMatrixSetupBootstrapAfterConfigWrite({
513
515
  previousCfg,
514
516
  cfg,
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { a as resolveMatrixDefaultOrOnlyAccountId, n as requiresExplicitMatrixDefaultAccount, o as resolveMatrixAccountStringValues } from "./account-selection-Bz00QTmQ.js";
2
+ import { a as resolveMatrixDefaultOrOnlyAccountId, n as requiresExplicitMatrixDefaultAccount, o as resolveMatrixAccountStringValues } from "./account-selection-kqquRzCf.js";
3
3
  import { t as getMatrixScopedEnvVarNames } from "./env-vars-B0NxQnPk.js";
4
4
  import { o as resolveMatrixBaseConfig, r as listNormalizedMatrixAccountIds, t as findMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
5
5
  import { i as resolveScopedMatrixEnvConfig, n as resolveGlobalMatrixEnvConfig } from "./env-auth-CQsYbz-p.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-DD-EnNJE.js";
8
+ import { s as repairCurrentTokenStorageMetaDeviceId } from "./storage-BrkTJZov.js";
9
9
  import { n as LogService } from "./logger-D0GCSDQq.js";
10
10
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
11
11
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1, normalizeAccountId as normalizeAccountId$1, normalizeOptionalAccountId, normalizeOptionalAccountId as normalizeOptionalAccountId$1 } from "openclaw/plugin-sdk/account-id";
@@ -16,7 +16,7 @@ import { resolveOptionalIntegerOption } from "openclaw/plugin-sdk/number-runtime
16
16
  import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
17
17
  import { retryAsync } from "openclaw/plugin-sdk/retry-runtime";
18
18
  //#region extensions/matrix/src/matrix/client/config.ts
19
- const loadDefaultMatrixAuthClientDeps = createLazyRuntimeModule(() => Promise.all([import("./sdk-1TXuSiXZ.js"), import("./logging-QH-48Gr6.js")]).then(([sdkModule, loggingModule]) => ({
19
+ const loadDefaultMatrixAuthClientDeps = createLazyRuntimeModule(() => Promise.all([import("./sdk-DiRXiRRf.js"), import("./logging-QH-48Gr6.js")]).then(([sdkModule, loggingModule]) => ({
20
20
  MatrixClient: sdkModule.MatrixClient,
21
21
  ensureMatrixSdkLoggingConfigured: loggingModule.ensureMatrixSdkLoggingConfigured
22
22
  })));
@@ -24,11 +24,11 @@ const MATRIX_AUTH_REQUEST_RETRY_RE = /\b(fetch failed|econnreset|econnrefused|en
24
24
  async function loadMatrixAuthClientDeps() {
25
25
  return await loadDefaultMatrixAuthClientDeps();
26
26
  }
27
- const loadMatrixCredentialsReadDeps = createLazyRuntimeModule(() => import("./credentials-read-CwNJrmwu.js").then((n) => n.r).then((credentialsReadModule) => ({
27
+ const loadMatrixCredentialsReadDeps = createLazyRuntimeModule(() => import("./credentials-read-DVmFCm7X.js").then((n) => n.i).then((credentialsReadModule) => ({
28
28
  loadMatrixCredentials: credentialsReadModule.loadMatrixCredentials,
29
29
  credentialsMatchConfig: credentialsReadModule.credentialsMatchConfig
30
30
  })));
31
- const loadMatrixCredentialsWriteRuntime = createLazyRuntimeModule(() => import("./credentials-write.runtime-BDtpqvj0.js"));
31
+ const loadMatrixCredentialsWriteRuntime = createLazyRuntimeModule(() => import("./credentials-write.runtime-Be9zNSUw.js"));
32
32
  const loadMatrixSecretInputDeps = createLazyRuntimeModule(() => import("./config-secret-input.runtime-CwsP3--c.js").then((runtime) => ({ resolveConfiguredSecretInputString: runtime.resolveConfiguredSecretInputString })));
33
33
  function shouldRetryMatrixAuthRequest(err) {
34
34
  return MATRIX_AUTH_REQUEST_RETRY_RE.test(formatErrorMessage(err));
@@ -492,7 +492,7 @@ var shared_exports = /* @__PURE__ */ __exportAll({
492
492
  stopSharedClientForAccount: () => stopSharedClientForAccount,
493
493
  stopSharedClientInstance: () => stopSharedClientInstance
494
494
  });
495
- const loadMatrixCreateClientDeps = createLazyRuntimeModule(() => import("./create-client-85ttAWDP.js").then((n) => n.n).then((runtime) => ({ createMatrixClient: runtime.createMatrixClient })));
495
+ const loadMatrixCreateClientDeps = createLazyRuntimeModule(() => import("./create-client-Und1YmJ2.js").then((n) => n.n).then((runtime) => ({ createMatrixClient: runtime.createMatrixClient })));
496
496
  const sharedClientStates = /* @__PURE__ */ new Map();
497
497
  const sharedClientPromises = /* @__PURE__ */ new Map();
498
498
  function serializeDispatcherPolicyKey(auth) {
@@ -1,8 +1,8 @@
1
1
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
2
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
3
- import { M as resolveMatrixSqliteStateEnv, l as resolveMatrixStoragePaths, o as recordCurrentStorageMetaDeviceId } from "./storage-DD-EnNJE.js";
4
- import path from "node:path";
3
+ import { M as resolveMatrixSqliteStateEnv, l as resolveMatrixStoragePaths, o as recordCurrentStorageMetaDeviceId } from "./storage-BrkTJZov.js";
5
4
  import { createHash } from "node:crypto";
5
+ import path from "node:path";
6
6
  import { timestampMsToIsoString } from "openclaw/plugin-sdk/number-runtime";
7
7
  import fs from "node:fs/promises";
8
8
  import { readJsonFileWithFallback } from "openclaw/plugin-sdk/json-store";