@openclaw/matrix 2026.5.28 → 2026.5.31-beta.1

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 (76) hide show
  1. package/dist/api.js +7 -7
  2. package/dist/{approval-handler.runtime-Cso-m9Q7.js → approval-handler.runtime-Dzh_2MS1.js} +5 -5
  3. package/dist/{approval-ids-IrHynnHK.js → approval-ids-CXPPSyAr.js} +1 -1
  4. package/dist/{approval-reaction-auth-D0nZ_4ik.js → approval-reaction-auth-m-11_ajL.js} +2 -2
  5. package/dist/auth-presence.js +1 -1
  6. package/dist/{channel-D7FK_lEY.js → channel-BwpVY2Ne.js} +23 -18
  7. package/dist/channel-plugin-api.js +1 -1
  8. package/dist/{channel.runtime-CBrW2dLp.js → channel.runtime-CUBxoFwA.js} +8 -8
  9. package/dist/{cli-C1xFg7Q-.js → cli-CaF5tlL-.js} +14 -13
  10. package/dist/{cli-metadata-zz9Cmwcs.js → cli-metadata-gFTG9oJL.js} +1 -1
  11. package/dist/cli-metadata.js +1 -1
  12. package/dist/{client-BIBY50VG.js → client-D-t6CdHz.js} +2 -2
  13. package/dist/{client-bootstrap-Chmkqhy7.js → client-bootstrap-DOlQb7Jx.js} +1 -1
  14. package/dist/{client-BMoZSA2L.js → client-spaouc7I.js} +2 -2
  15. package/dist/{config-schema-wK02TzmZ.js → config-schema-DfjBrYch.js} +21 -4
  16. package/dist/contract-api.js +4 -4
  17. package/dist/{create-client-B1a3Am-I.js → create-client-B4CPKa5P.js} +3 -3
  18. package/dist/{credentials-CDjQjIds.js → credentials-Bi0pTJDK.js} +1 -1
  19. package/dist/{credentials-read-DySnJlLx.js → credentials-read-DpxFOhx0.js} +2 -2
  20. package/dist/{credentials-write.runtime-Ca2MN99y.js → credentials-write.runtime-BB5QuM4Z.js} +1 -1
  21. package/dist/{crypto-runtime-oweQ3RiB.js → crypto-runtime-3hgwY-d6.js} +7 -6
  22. package/dist/{directory-live-M-3KeudM.js → directory-live-DgjzYeC_.js} +2 -2
  23. package/dist/{doctor-CENc9ks0.js → doctor-BKjr6uua.js} +17 -4
  24. package/dist/{draft-stream-r49dgIZc.js → draft-stream-eaBWrjVK.js} +1 -1
  25. package/dist/{encryption-guidance-CU-OAPMg.js → encryption-guidance-aEUzD940.js} +1 -1
  26. package/dist/helper-api.js +2 -2
  27. package/dist/index.js +2 -2
  28. package/dist/{legacy-crypto-restore-BgW3I87R.js → legacy-crypto-restore--9Wu5rsx.js} +1 -1
  29. package/dist/{logging-yEwXx4Hm.js → logging-C7wjdKK5.js} +1 -1
  30. package/dist/{matrix-migration.runtime-CZOep_JX.js → matrix-migration.runtime-RzIEp7RP.js} +3 -3
  31. package/dist/{media-text-C4IBQI5B.js → media-text-C2Wor3Gj.js} +1 -1
  32. package/dist/{messages-CMx2qIs1.js → messages-D0sumPNx.js} +3 -3
  33. package/dist/{monitor-COOR-Ksj.js → monitor-gDaABWfA.js} +140 -108
  34. package/dist/plugin-entry.handlers.runtime.js +1 -1
  35. package/dist/probe.runtime-BegszwhP.js +3 -0
  36. package/dist/{profile-update-Cl7wAFCq.js → profile-update-Defy1W90.js} +2 -2
  37. package/dist/{reaction-events-D3jtYqTp.js → reaction-events-Bh2u-_9j.js} +1 -1
  38. package/dist/{recovery-key-store-DfQ_9s6u.js → recovery-key-store-BRnvY8XS.js} +1 -1
  39. package/dist/{resolve-targets-D-K3tTPe.js → resolve-targets-CLuzv_Jl.js} +1 -1
  40. package/dist/{resolver.runtime-BRG9o8iL.js → resolver.runtime-VywXDAZv.js} +1 -1
  41. package/dist/runtime-api.js +3 -3
  42. package/dist/runtime-heavy-api.js +1 -1
  43. package/dist/{sdk-ymjYByhr.js → sdk-C2iC7PJZ.js} +6 -6
  44. package/dist/{send-peVVVL75.js → send-DHj1E9ji.js} +6 -4
  45. package/dist/{setup-bootstrap-CiX7Pd07.js → setup-bootstrap-kTPKb7jR.js} +2 -2
  46. package/dist/{setup-core-DOhHYRrZ.js → setup-core-DRg3cgB8.js} +4 -4
  47. package/dist/setup-plugin-api.js +3 -3
  48. package/dist/{setup-surface-CrUp7oeN.js → setup-surface-soZQLgfu.js} +6 -6
  49. package/dist/{shared-CmsjJY4i.js → shared-DjJds8e0.js} +6 -6
  50. package/dist/startup-verification-CWLSyFen.js +233 -0
  51. package/dist/{storage-onzulLbU.js → storage-Ds-2Iur5.js} +18 -6
  52. package/dist/subagent-hooks-api.js +18 -2
  53. package/dist/{subagent-hooks-api-bedE4GYl.js → subagent-hooks-dkPAF6Et.js} +3 -30
  54. package/dist/{thread-bindings-DAg6grT8.js → thread-bindings-DehFUArg.js} +142 -39
  55. package/dist/{tool-actions.runtime-DwbLBrRr.js → tool-actions.runtime-CU79qJ3e.js} +7 -7
  56. package/dist/{verification-BM7g0BeT.js → verification-BJfjKMr8.js} +2 -2
  57. package/node_modules/@babel/runtime/package.json +1 -1
  58. package/node_modules/@matrix-org/matrix-sdk-crypto-nodejs/.node-version +1 -1
  59. package/node_modules/@matrix-org/matrix-sdk-crypto-nodejs/CHANGELOG.md +32 -1
  60. package/node_modules/@matrix-org/matrix-sdk-crypto-nodejs/README.md +3 -3
  61. package/node_modules/@matrix-org/matrix-sdk-crypto-nodejs/index.d.ts +195 -15
  62. package/node_modules/@matrix-org/matrix-sdk-crypto-nodejs/index.js +6 -1
  63. package/node_modules/@matrix-org/matrix-sdk-crypto-nodejs/package.json +3 -3
  64. package/node_modules/typebox/build/type/script/mapping.d.mts +5 -2
  65. package/node_modules/typebox/build/type/script/mapping.mjs +15 -8
  66. package/node_modules/typebox/build/type/script/parser.d.mts +3 -1
  67. package/node_modules/typebox/build/type/script/parser.mjs +2 -1
  68. package/node_modules/typebox/package.json +29 -29
  69. package/npm-shrinkwrap.json +15 -15
  70. package/openclaw.plugin.json +46 -0
  71. package/package.json +6 -6
  72. package/dist/probe.runtime-DgSABMiF.js +0 -3
  73. package/dist/startup-verification-BmTEngvU.js +0 -132
  74. package/dist/{account-selection-C3arLOhC.js → account-selection-DEMtY2cn.js} +1 -1
  75. package/dist/{runtime-api-CsF7Kokd.js → runtime-api-CsBoesCU.js} +2 -2
  76. package/dist/{storage-paths-BV2Z7bns.js → storage-paths-BWo_ZEMC.js} +1 -1
package/dist/api.js CHANGED
@@ -1,11 +1,11 @@
1
- import { d as setMatrixThreadBindingIdleTimeoutBySessionKey, n as getMatrixThreadBindingManager, p as setMatrixThreadBindingMaxAgeBySessionKey, s as resetMatrixThreadBindingsForTests } from "./thread-bindings-shared-CKnY4LSd.js";
2
- import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-C3arLOhC.js";
1
+ import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-DEMtY2cn.js";
3
2
  import { n as listMatrixEnvAccountIds, r as resolveMatrixEnvAccountToken, t as getMatrixScopedEnvVarNames } from "./env-vars-KzaYveuy.js";
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-BV2Z7bns.js";
5
- import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-DOhHYRrZ.js";
6
- import { t as matrixPlugin } from "./channel-D7FK_lEY.js";
7
- import { n as matrixOnboardingAdapter } from "./setup-surface-CrUp7oeN.js";
8
- import { t as createMatrixThreadBindingManager } from "./thread-bindings-DAg6grT8.js";
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-DRg3cgB8.js";
5
+ import { t as matrixPlugin } from "./channel-BwpVY2Ne.js";
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-soZQLgfu.js";
8
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-DehFUArg.js";
9
9
  //#region extensions/matrix/api.ts
10
10
  const matrixSessionBindingAdapterChannels = ["matrix"];
11
11
  //#endregion
@@ -1,11 +1,11 @@
1
+ import { g as resolveMatrixAccount } from "./setup-core-DRg3cgB8.js";
2
+ import { _ as shouldHandleMatrixApprovalRequest, g as isMatrixAnyApprovalClientEnabled } from "./channel-BwpVY2Ne.js";
1
3
  import { a as resolveMatrixTargetIdentity } from "./target-ids-B-5aQxwn.js";
2
- import { g as resolveMatrixAccount } from "./setup-core-DOhHYRrZ.js";
3
- import { _ as shouldHandleMatrixApprovalRequest, g as isMatrixAnyApprovalClientEnabled } from "./channel-D7FK_lEY.js";
4
- import { a as sendMessageMatrix, i as reactMatrixMessage, p as repairMatrixDirectRooms, s as sendSingleTextMessageMatrix } from "./send-peVVVL75.js";
4
+ import { a as sendMessageMatrix, i as reactMatrixMessage, p as repairMatrixDirectRooms, s as sendSingleTextMessageMatrix } from "./send-DHj1E9ji.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-CMx2qIs1.js";
7
- import { normalizeUniqueStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
6
+ import { n as editMatrixMessage, t as deleteMatrixMessage } from "./messages-D0sumPNx.js";
8
7
  import { listMessageReceiptPlatformIds, resolveMessageReceiptPrimaryId } from "openclaw/plugin-sdk/channel-outbound";
8
+ import { normalizeUniqueStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
10
10
  import { setTimeout } from "node:timers/promises";
11
11
  import { createChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-runtime";
@@ -1,4 +1,4 @@
1
- import { a as normalizeMatrixUserId } from "./config-schema-wK02TzmZ.js";
1
+ import { a as normalizeMatrixUserId } from "./config-schema-DfjBrYch.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-DOhHYRrZ.js";
2
- import { t as normalizeMatrixApproverId } from "./approval-ids-IrHynnHK.js";
1
+ import { g as resolveMatrixAccount } from "./setup-core-DRg3cgB8.js";
2
+ import { t as normalizeMatrixApproverId } from "./approval-ids-CXPPSyAr.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,4 +1,4 @@
1
- import { i as resolveMatrixCredentialsFilename, r as resolveMatrixCredentialsDir } from "./storage-paths-BV2Z7bns.js";
1
+ import { i as resolveMatrixCredentialsFilename, r as resolveMatrixCredentialsDir } from "./storage-paths-BWo_ZEMC.js";
2
2
  import fs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
@@ -1,31 +1,31 @@
1
- import { a as resolveMatrixTargetIdentity, i as resolveMatrixDirectUserId, n as normalizeMatrixMessagingTarget, r as normalizeMatrixResolvableTarget } from "./target-ids-B-5aQxwn.js";
2
- import { d as setMatrixThreadBindingIdleTimeoutBySessionKey, p as setMatrixThreadBindingMaxAgeBySessionKey } from "./thread-bindings-shared-CKnY4LSd.js";
3
- import { n as requiresExplicitMatrixDefaultAccount } from "./account-selection-C3arLOhC.js";
1
+ import { n as requiresExplicitMatrixDefaultAccount } from "./account-selection-DEMtY2cn.js";
4
2
  import { c as resolveMatrixAccountConfig } from "./config-paths-ZBCMwSos.js";
5
- 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-DOhHYRrZ.js";
6
- import { a as normalizeMatrixUserId, n as DEFAULT_ACCOUNT_ID$2, r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-wK02TzmZ.js";
7
- import { t as normalizeMatrixApproverId } from "./approval-ids-IrHynnHK.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-DRg3cgB8.js";
4
+ import { a as normalizeMatrixUserId, n as DEFAULT_ACCOUNT_ID$2, r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-DfjBrYch.js";
5
+ import { t as normalizeMatrixApproverId } from "./approval-ids-CXPPSyAr.js";
6
+ import { a as resolveMatrixTargetIdentity, i as resolveMatrixDirectUserId, n as normalizeMatrixMessagingTarget, r as normalizeMatrixResolvableTarget } from "./target-ids-B-5aQxwn.js";
8
7
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
9
8
  import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-D9oKDvsJ.js";
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-CZOep_JX.js";
11
+ import { i as autoPrepareLegacyMatrixCrypto, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus } from "./matrix-migration.runtime-RzIEp7RP.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
- import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
15
- import { createScopedAccountReplyToModeResolver } from "openclaw/plugin-sdk/conversation-runtime";
16
- import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
17
14
  import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
18
15
  import { adaptScopedAccountAccessor, createScopedDmSecurityResolver } from "openclaw/plugin-sdk/channel-config-helpers";
19
16
  import { buildChannelOutboundSessionRoute, buildThreadAwareOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
20
17
  import { createChannelMessageAdapterFromOutbound, createReplyPrefixOptions, createRuntimeOutboundDelegates, createTypingCallbacks, logTypingFailure } from "openclaw/plugin-sdk/channel-outbound";
21
18
  import { createAllowlistProviderOpenWarningCollector, projectAccountConfigWarningCollector } from "openclaw/plugin-sdk/channel-policy";
19
+ import { createScopedAccountReplyToModeResolver } from "openclaw/plugin-sdk/conversation-runtime";
22
20
  import { createChannelDirectoryAdapter, createResolvedDirectoryEntriesLister, createRuntimeDirectoryLiveAdapter } from "openclaw/plugin-sdk/directory-runtime";
23
21
  import { createLazyRuntimeNamedExport } from "openclaw/plugin-sdk/lazy-runtime";
24
22
  import { buildProbeChannelStatusSummary, collectStatusIssuesFromLastError, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState } from "openclaw/plugin-sdk/status-helpers";
23
+ import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
25
24
  import { chunkTextForOutbound } from "openclaw/plugin-sdk/text-chunking";
26
25
  import { ToolAuthorizationError, createActionGate, readPositiveIntegerParam, readStringParam } from "openclaw/plugin-sdk/channel-actions";
27
26
  import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
28
27
  import { Type } from "typebox";
28
+ import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
29
29
  import { createApproverRestrictedNativeApprovalCapability, createChannelApprovalCapability, splitChannelApprovalCapability } from "openclaw/plugin-sdk/approval-delivery-runtime";
30
30
  import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
31
31
  import { createChannelNativeOriginTargetResolver, resolveApprovalRequestChannelAccountId, resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
@@ -129,7 +129,7 @@ const matrixMessageActions = {
129
129
  return extractToolSend(args, "sendMessage");
130
130
  },
131
131
  handleAction: async (ctx) => {
132
- const { handleMatrixAction } = await import("./tool-actions.runtime-DwbLBrRr.js");
132
+ const { handleMatrixAction } = await import("./tool-actions.runtime-CU79qJ3e.js");
133
133
  const { action, params, cfg, accountId, mediaLocalRoots } = ctx;
134
134
  const dispatch = async (actionParams) => await handleMatrixAction({
135
135
  ...actionParams,
@@ -593,7 +593,7 @@ const matrixNativeApprovalCapability = createApproverRestrictedNativeApprovalCap
593
593
  accountId,
594
594
  request
595
595
  }),
596
- load: async () => (await import("./approval-handler.runtime-Cso-m9Q7.js")).matrixApprovalNativeRuntime
596
+ load: async () => (await import("./approval-handler.runtime-Dzh_2MS1.js")).matrixApprovalNativeRuntime
597
597
  })
598
598
  });
599
599
  const splitMatrixApprovalCapability = splitChannelApprovalCapability(matrixNativeApprovalCapability);
@@ -755,7 +755,7 @@ function resolveMatrixGroupToolPolicy(params) {
755
755
  }
756
756
  //#endregion
757
757
  //#region extensions/matrix/src/resolver.ts
758
- const loadMatrixChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./resolver.runtime-BRG9o8iL.js"), "matrixResolverRuntime");
758
+ const loadMatrixChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./resolver.runtime-VywXDAZv.js"), "matrixResolverRuntime");
759
759
  const matrixResolverAdapter = { resolveTargets: async ({ cfg, accountId, inputs, kind, runtime }) => (await loadMatrixChannelRuntime$1()).resolveMatrixTargets({
760
760
  cfg,
761
761
  accountId,
@@ -944,8 +944,13 @@ async function runMatrixStartupMaintenance(params) {
944
944
  //#endregion
945
945
  //#region extensions/matrix/src/channel.ts
946
946
  let matrixStartupLock = Promise.resolve();
947
- const loadMatrixSetupWizard = createLazyRuntimeNamedExport(() => import("./setup-surface-CrUp7oeN.js").then((n) => n.t), "matrixSetupWizard");
948
- const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-CBrW2dLp.js"), "matrixChannelRuntime");
947
+ const loadMatrixSetupWizard = createLazyRuntimeNamedExport(() => import("./setup-surface-soZQLgfu.js").then((n) => n.t), "matrixSetupWizard");
948
+ const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-CUBxoFwA.js"), "matrixChannelRuntime");
949
+ let matrixDoctorModulePromise = null;
950
+ const loadMatrixDoctorModule = async () => {
951
+ matrixDoctorModulePromise ??= import("./doctor-BKjr6uua.js");
952
+ return await matrixDoctorModulePromise;
953
+ };
949
954
  const meta = {
950
955
  id: "matrix",
951
956
  label: "Matrix",
@@ -970,12 +975,12 @@ const matrixDoctor = {
970
975
  warnOnEmptyGroupSenderAllowlist: true,
971
976
  legacyConfigRules,
972
977
  normalizeCompatibilityConfig,
973
- runConfigSequence: async ({ cfg, env, shouldRepair }) => await (await import("./doctor-CENc9ks0.js")).runMatrixDoctorSequence({
978
+ runConfigSequence: async ({ cfg, env, shouldRepair }) => await (await loadMatrixDoctorModule()).runMatrixDoctorSequence({
974
979
  cfg,
975
980
  env,
976
981
  shouldRepair
977
982
  }),
978
- cleanStaleConfig: async ({ cfg }) => await (await import("./doctor-CENc9ks0.js")).cleanStaleMatrixPluginConfig(cfg)
983
+ cleanStaleConfig: async ({ cfg }) => await (await loadMatrixDoctorModule()).cleanStaleMatrixPluginConfig(cfg)
979
984
  };
980
985
  const listMatrixDirectoryPeersFromConfig = createResolvedDirectoryEntriesLister({
981
986
  kind: "user",
@@ -1316,7 +1321,7 @@ const matrixPlugin = createChatChannelPlugin({
1316
1321
  await previousLock;
1317
1322
  let monitorMatrixProvider;
1318
1323
  try {
1319
- monitorMatrixProvider = (await import("./monitor-COOR-Ksj.js")).monitorMatrixProvider;
1324
+ monitorMatrixProvider = (await import("./monitor-gDaABWfA.js")).monitorMatrixProvider;
1320
1325
  } finally {
1321
1326
  releaseLock();
1322
1327
  }
@@ -1,2 +1,2 @@
1
- import { t as matrixPlugin } from "./channel-D7FK_lEY.js";
1
+ import { t as matrixPlugin } from "./channel-BwpVY2Ne.js";
2
2
  export { matrixPlugin };
@@ -1,19 +1,19 @@
1
- import { a as sendMessageMatrix, c as sendTypingMatrix, o as sendPollMatrix } from "./send-peVVVL75.js";
1
+ import { a as sendMessageMatrix, c as sendTypingMatrix, o as sendPollMatrix } from "./send-DHj1E9ji.js";
2
2
  import { t as isBunRuntime } from "./runtime-BefyhPWv.js";
3
- import { g as resolveMatrixAuth } from "./shared-CmsjJY4i.js";
4
- import "./client-BMoZSA2L.js";
5
- import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-M-3KeudM.js";
6
- import { f as resolveOutboundSendDep, n as chunkTextForOutbound } from "./runtime-api-CsF7Kokd.js";
7
- import { t as resolveMatrixTargets } from "./resolve-targets-D-K3tTPe.js";
8
- import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
3
+ import { g as resolveMatrixAuth } from "./shared-DjJds8e0.js";
4
+ import "./client-spaouc7I.js";
5
+ import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-DgjzYeC_.js";
6
+ import { f as resolveOutboundSendDep, n as chunkTextForOutbound } from "./runtime-api-CsBoesCU.js";
7
+ import { t as resolveMatrixTargets } from "./resolve-targets-CLuzv_Jl.js";
9
8
  import { createReplyToFanout } from "openclaw/plugin-sdk/channel-outbound";
9
+ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
10
10
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
11
11
  import { renderMessagePresentationFallbackText } from "openclaw/plugin-sdk/interactive-runtime";
12
12
  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-DgSABMiF.js").then((runtimeModule) => ({ createMatrixClient: runtimeModule.createMatrixClient }));
16
+ matrixProbeRuntimeDepsPromise ??= import("./probe.runtime-BegszwhP.js").then((runtimeModule) => ({ createMatrixClient: runtimeModule.createMatrixClient }));
17
17
  return await matrixProbeRuntimeDepsPromise;
18
18
  }
19
19
  async function probeMatrix(params) {
@@ -1,18 +1,18 @@
1
1
  import { c as resolveMatrixAccountConfig } from "./config-paths-ZBCMwSos.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-DOhHYRrZ.js";
3
+ import { c as resolveMatrixConfigPath, g as resolveMatrixAccount, l as updateMatrixAccountConfig, n as matrixSetupAdapter } from "./setup-core-DRg3cgB8.js";
4
4
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
5
- import { n as withResolvedActionClient } from "./client-BIBY50VG.js";
6
- import { _ as resolveMatrixAuthContext } from "./shared-CmsjJY4i.js";
7
- import "./client-BMoZSA2L.js";
8
- import { i as formatZonedTimestamp } from "./runtime-api-CsF7Kokd.js";
5
+ import { n as withResolvedActionClient } from "./client-D-t6CdHz.js";
6
+ import { _ as resolveMatrixAuthContext } from "./shared-DjJds8e0.js";
7
+ import "./client-spaouc7I.js";
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-Cl7wAFCq.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-BM7g0BeT.js";
10
+ import { n as updateMatrixOwnProfile, t as applyMatrixProfileUpdate } from "./profile-update-Defy1W90.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-BJfjKMr8.js";
12
12
  import { t as resolveMatrixRoomKeyBackupIssue } from "./backup-health-Dm_YMVFT.js";
13
- import { setMatrixSdkConsoleLogging, setMatrixSdkLogMode } from "./logging-yEwXx4Hm.js";
13
+ import { setMatrixSdkConsoleLogging, setMatrixSdkLogMode } from "./logging-C7wjdKK5.js";
14
14
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
15
- import { parseStrictInteger } from "openclaw/plugin-sdk/number-runtime";
15
+ import { parseStrictInteger, timestampMsToIsoString } from "openclaw/plugin-sdk/number-runtime";
16
16
  //#region extensions/matrix/src/matrix/actions/devices.ts
17
17
  async function listMatrixOwnDevices(opts = {}) {
18
18
  return await withResolvedActionClient(opts, async (client) => await client.listOwnDevices());
@@ -38,11 +38,11 @@ let matrixCliExitScheduled = false;
38
38
  let matrixActionClientModulePromise;
39
39
  let matrixDirectManagementModulePromise;
40
40
  function loadMatrixActionClientModule() {
41
- matrixActionClientModulePromise ??= import("./client-BIBY50VG.js").then((n) => n.t);
41
+ matrixActionClientModulePromise ??= import("./client-D-t6CdHz.js").then((n) => n.t);
42
42
  return matrixActionClientModulePromise;
43
43
  }
44
44
  function loadMatrixDirectManagementModule() {
45
- matrixDirectManagementModulePromise ??= import("./send-peVVVL75.js").then((n) => n.d);
45
+ matrixDirectManagementModulePromise ??= import("./send-DHj1E9ji.js").then((n) => n.d);
46
46
  return matrixDirectManagementModulePromise;
47
47
  }
48
48
  function scheduleMatrixCliExit() {
@@ -144,7 +144,8 @@ function printMatrixOwnDevices(devices) {
144
144
  for (const device of devices) {
145
145
  const labels = [device.current ? "current" : null, device.displayName].filter((label) => Boolean(label)).map((label) => formatMatrixCliText(label));
146
146
  console.log(`- ${formatMatrixCliText(device.deviceId)}${labels.length ? ` (${labels.join(", ")})` : ""}`);
147
- if (device.lastSeenTs) printTimestamp(" Last seen", new Date(device.lastSeenTs).toISOString());
147
+ const lastSeenAt = timestampMsToIsoString(device.lastSeenTs);
148
+ if (lastSeenAt) printTimestamp(" Last seen", lastSeenAt);
148
149
  if (device.lastSeenIp) console.log(` Last IP: ${formatMatrixCliText(device.lastSeenIp)}`);
149
150
  }
150
151
  }
@@ -209,7 +210,7 @@ async function addMatrixAccount(params) {
209
210
  backupVersion: null
210
211
  };
211
212
  if (accountConfig.encryption === true) {
212
- const { maybeBootstrapNewEncryptedMatrixAccount } = await import("./setup-bootstrap-CiX7Pd07.js");
213
+ const { maybeBootstrapNewEncryptedMatrixAccount } = await import("./setup-bootstrap-kTPKb7jR.js");
213
214
  verificationBootstrap = await maybeBootstrapNewEncryptedMatrixAccount({
214
215
  previousCfg: cfg,
215
216
  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-C1xFg7Q-.js");
5
+ const { registerMatrixCli } = await import("./cli-CaF5tlL-.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-zz9Cmwcs.js";
1
+ import { n as registerMatrixCliMetadata, t as cli_metadata_default } from "./cli-metadata-gFTG9oJL.js";
2
2
  export { cli_metadata_default as default, registerMatrixCliMetadata };
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { u as resolveMatrixRoomId } from "./send-peVVVL75.js";
3
- import { n as withResolvedRuntimeMatrixClient } from "./client-bootstrap-Chmkqhy7.js";
2
+ import { u as resolveMatrixRoomId } from "./send-DHj1E9ji.js";
3
+ import { n as withResolvedRuntimeMatrixClient } from "./client-bootstrap-DOlQb7Jx.js";
4
4
  //#region extensions/matrix/src/matrix/actions/client.ts
5
5
  var client_exports = /* @__PURE__ */ __exportAll({
6
6
  withResolvedActionClient: () => withResolvedActionClient,
@@ -10,7 +10,7 @@ var client_bootstrap_exports = /* @__PURE__ */ __exportAll({
10
10
  });
11
11
  let matrixSharedClientRuntimeDepsPromise;
12
12
  async function loadMatrixSharedClientRuntimeDeps() {
13
- matrixSharedClientRuntimeDepsPromise ??= Promise.all([import("./client-BMoZSA2L.js").then((n) => n.t), import("./shared-CmsjJY4i.js").then((n) => n.a)]).then(([clientModule, sharedModule]) => ({
13
+ matrixSharedClientRuntimeDepsPromise ??= Promise.all([import("./client-spaouc7I.js").then((n) => n.t), import("./shared-DjJds8e0.js").then((n) => n.a)]).then(([clientModule, sharedModule]) => ({
14
14
  acquireSharedMatrixClient: clientModule.acquireSharedMatrixClient,
15
15
  resolveMatrixAuthContext: clientModule.resolveMatrixAuthContext,
16
16
  releaseSharedClientInstance: sharedModule.releaseSharedClientInstance
@@ -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 { _ as resolveMatrixAuthContext, g as resolveMatrixAuth, h as backfillMatrixAuthDeviceIdAfterStartup, i as resolveSharedMatrixClient, n as releaseSharedClientInstance, o as stopSharedClientForAccount, r as removeSharedClientInstance, s as stopSharedClientInstance, t as acquireSharedMatrixClient, v as resolveMatrixConfigForAccount } from "./shared-CmsjJY4i.js";
7
- import { t as createMatrixClient } from "./create-client-B1a3Am-I.js";
6
+ import { _ as resolveMatrixAuthContext, g as resolveMatrixAuth, h as backfillMatrixAuthDeviceIdAfterStartup, i as resolveSharedMatrixClient, n as releaseSharedClientInstance, o as stopSharedClientForAccount, r as removeSharedClientInstance, s as stopSharedClientInstance, t as acquireSharedMatrixClient, v as resolveMatrixConfigForAccount } from "./shared-DjJds8e0.js";
7
+ import { t as createMatrixClient } from "./create-client-B4CPKa5P.js";
8
8
  //#region extensions/matrix/src/matrix/client.ts
9
9
  var client_exports = /* @__PURE__ */ __exportAll({
10
10
  acquireSharedMatrixClient: () => acquireSharedMatrixClient,
@@ -1,12 +1,12 @@
1
1
  import { c as resolveMatrixAccountConfig } from "./config-paths-ZBCMwSos.js";
2
- import { g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, p as listMatrixAccountIds } from "./setup-core-DOhHYRrZ.js";
3
- import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/account-id";
4
- import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
2
+ import { g as resolveMatrixAccount, h as resolveDefaultMatrixAccountId, p as listMatrixAccountIds } from "./setup-core-DRg3cgB8.js";
5
3
  import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
4
+ import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
5
+ import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/account-id";
6
6
  import { resolveAllowlistMatchByCandidates } from "openclaw/plugin-sdk/allow-from";
7
7
  import { normalizeStringEntries as normalizeStringEntries$1 } from "openclaw/plugin-sdk/string-normalization-runtime";
8
8
  import { buildChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-primitives";
9
- import { AllowFromListSchema, ContextVisibilityModeSchema, GroupPolicySchema, MarkdownConfigSchema, ToolPolicySchema, buildNestedDmConfigSchema } from "openclaw/plugin-sdk/channel-config-schema";
9
+ import { AllowFromListSchema, ContextVisibilityModeSchema, GroupPolicySchema, MarkdownConfigSchema, MentionPatternsPolicySchema, ToolPolicySchema, buildNestedDmConfigSchema } from "openclaw/plugin-sdk/channel-config-schema";
10
10
  import { buildSecretInputSchema } from "openclaw/plugin-sdk/secret-input";
11
11
  import { z } from "zod";
12
12
  //#region extensions/matrix/src/matrix/monitor/allowlist.ts
@@ -102,6 +102,22 @@ const matrixConfigAdapter = createScopedChannelConfigAdapter({
102
102
  //#endregion
103
103
  //#region extensions/matrix/src/config-ui-hints.ts
104
104
  const matrixChannelConfigUiHints = {
105
+ mentionPatterns: {
106
+ label: "Matrix Mention Pattern Policy",
107
+ help: "Scopes configured groupChat mentionPatterns to selected Matrix room IDs. Native Matrix mention evidence still triggers even when regex patterns are denied."
108
+ },
109
+ "mentionPatterns.mode": {
110
+ label: "Matrix Mention Pattern Mode",
111
+ help: "\"allow\" enables configured regex mention patterns unless denyIn matches; \"deny\" disables them unless allowIn matches."
112
+ },
113
+ "mentionPatterns.allowIn": {
114
+ label: "Matrix Mention Pattern Allowlist",
115
+ help: "Matrix room IDs where configured regex mention patterns are enabled when mode is deny."
116
+ },
117
+ "mentionPatterns.denyIn": {
118
+ label: "Matrix Mention Pattern Denylist",
119
+ help: "Matrix room IDs where configured regex mention patterns are disabled. Native mention evidence still triggers."
120
+ },
105
121
  allowBots: {
106
122
  label: "Matrix Allow Bot Messages",
107
123
  help: "Allow messages from other configured Matrix bot accounts to trigger replies (default: false). Set \"mentions\" to require a visible room mention."
@@ -243,6 +259,7 @@ const MatrixChannelConfigSchema = buildChannelConfigSchema(z.object({
243
259
  allowBots: z.union([z.boolean(), z.literal("mentions")]).optional(),
244
260
  botLoopProtection: botLoopProtectionSchema,
245
261
  groupPolicy: GroupPolicySchema.optional(),
262
+ mentionPatterns: MentionPatternsPolicySchema.optional(),
246
263
  contextVisibility: ContextVisibilityModeSchema.optional(),
247
264
  blockStreaming: z.boolean().optional(),
248
265
  streaming: z.union([
@@ -1,8 +1,8 @@
1
- import { s as resetMatrixThreadBindingsForTests } from "./thread-bindings-shared-CKnY4LSd.js";
2
1
  import { r as setMatrixRuntime } from "./runtime-6S3DNFNv.js";
3
- import { d as resolveSingleAccountPromotionTarget, f as singleAccountKeysToMove, n as matrixSetupAdapter, u as namedAccountPromotionKeys } from "./setup-core-DOhHYRrZ.js";
2
+ import { d as resolveSingleAccountPromotionTarget, f as singleAccountKeysToMove, n as matrixSetupAdapter, u as namedAccountPromotionKeys } from "./setup-core-DRg3cgB8.js";
4
3
  import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-D9oKDvsJ.js";
4
+ import { s as resetMatrixThreadBindingsForTests } from "./thread-bindings-shared-CKnY4LSd.js";
5
5
  import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-DTgQyQxc.js";
6
- import { n as matrixOnboardingAdapter } from "./setup-surface-CrUp7oeN.js";
7
- import { t as createMatrixThreadBindingManager } from "./thread-bindings-DAg6grT8.js";
6
+ import { n as matrixOnboardingAdapter } from "./setup-surface-soZQLgfu.js";
7
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-DehFUArg.js";
8
8
  export { collectRuntimeConfigAssignments, createMatrixThreadBindingManager, legacyConfigRules, matrixSetupAdapter, matrixOnboardingAdapter as matrixSetupWizard, namedAccountPromotionKeys, normalizeCompatibilityConfig, resetMatrixThreadBindingsForTests, resolveSingleAccountPromotionTarget, secretTargetRegistryEntries, setMatrixRuntime, singleAccountKeysToMove };
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
2
  import { t as resolveValidatedMatrixHomeserverUrl } from "./url-validation-GRHde6lq.js";
3
- import { a as resolveMatrixStoragePaths, n as maybeMigrateLegacyStorage, o as writeStorageMeta } from "./storage-onzulLbU.js";
4
- import "./shared-CmsjJY4i.js";
3
+ import { n as maybeMigrateLegacyStorage, o as resolveMatrixStoragePaths, s as writeStorageMeta } from "./storage-Ds-2Iur5.js";
4
+ import "./shared-DjJds8e0.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-ymjYByhr.js"), import("./logging-yEwXx4Hm.js")]).then(([sdkModule, loggingModule]) => ({
12
+ matrixCreateClientRuntimeDepsPromise ??= Promise.all([import("./sdk-C2iC7PJZ.js"), import("./logging-C7wjdKK5.js")]).then(([sdkModule, loggingModule]) => ({
13
13
  MatrixClient: sdkModule.MatrixClient,
14
14
  ensureMatrixSdkLoggingConfigured: loggingModule.ensureMatrixSdkLoggingConfigured
15
15
  }));
@@ -1,4 +1,4 @@
1
- import { a as resolveMatrixCredentialsDir, i as loadMatrixCredentials, n as credentialsMatchConfig, o as resolveMatrixCredentialsPath, t as clearMatrixCredentials } from "./credentials-read-DySnJlLx.js";
1
+ import { a as resolveMatrixCredentialsDir, i as loadMatrixCredentials, n as credentialsMatchConfig, o as resolveMatrixCredentialsPath, t as clearMatrixCredentials } from "./credentials-read-DpxFOhx0.js";
2
2
  import { t as createAsyncLock } from "./async-lock-BcLS4KOc.js";
3
3
  import { writeJsonFileAtomically } from "openclaw/plugin-sdk/json-store";
4
4
  //#region extensions/matrix/src/matrix/credentials.ts
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { a as resolveMatrixDefaultOrOnlyAccountId, n as requiresExplicitMatrixDefaultAccount } from "./account-selection-C3arLOhC.js";
2
+ import { a as resolveMatrixDefaultOrOnlyAccountId, n as requiresExplicitMatrixDefaultAccount } from "./account-selection-DEMtY2cn.js";
3
3
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
4
- import { a as resolveMatrixCredentialsPath$1, r as resolveMatrixCredentialsDir$1 } from "./storage-paths-BV2Z7bns.js";
4
+ import { a as resolveMatrixCredentialsPath$1, r as resolveMatrixCredentialsDir$1 } from "./storage-paths-BWo_ZEMC.js";
5
5
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
6
6
  import fs from "node:fs";
7
7
  import os from "node:os";
@@ -1,7 +1,7 @@
1
1
  //#region extensions/matrix/src/matrix/credentials-write.runtime.ts
2
2
  let matrixCredentialsRuntimePromise;
3
3
  function loadMatrixCredentialsRuntime() {
4
- matrixCredentialsRuntimePromise ??= import("./credentials-CDjQjIds.js");
4
+ matrixCredentialsRuntimePromise ??= import("./credentials-Bi0pTJDK.js");
5
5
  return matrixCredentialsRuntimePromise;
6
6
  }
7
7
  async function saveMatrixCredentials(...args) {
@@ -1,9 +1,10 @@
1
1
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
2
2
  import { t as ensureMatrixCryptoRuntime } from "./deps-BVWGd2XS.js";
3
- import { f as LogService, p as noop } from "./shared-CmsjJY4i.js";
4
- import { i as MATRIX_IDB_SNAPSHOT_LOCK_OPTIONS, n as isRepairableSecretStorageAccessError } from "./recovery-key-store-DfQ_9s6u.js";
3
+ import { f as LogService, p as noop } from "./shared-DjJds8e0.js";
4
+ import { i as MATRIX_IDB_SNAPSHOT_LOCK_OPTIONS, n as isRepairableSecretStorageAccessError } from "./recovery-key-store-BRnvY8XS.js";
5
5
  import fs from "node:fs";
6
6
  import path from "node:path";
7
+ import { resolveDateTimestampMs, resolveTimestampMsToIsoString } from "openclaw/plugin-sdk/number-runtime";
7
8
  import { setTimeout as setTimeout$1 } from "node:timers/promises";
8
9
  import { MatrixEventEvent } from "matrix-js-sdk/lib/matrix.js";
9
10
  import { VerificationMethod } from "matrix-js-sdk/lib/types.js";
@@ -895,7 +896,7 @@ var MatrixVerificationManager = class {
895
896
  for (const listener of this.summaryListeners) listener(summary);
896
897
  }
897
898
  touchVerificationSession(session) {
898
- session.updatedAtMs = Date.now();
899
+ session.updatedAtMs = resolveDateTimestampMs(Date.now());
899
900
  this.emitVerificationSummary(session);
900
901
  }
901
902
  clearSasAutoConfirmTimer(session) {
@@ -936,8 +937,8 @@ var MatrixVerificationManager = class {
936
937
  hasReciprocateQr: Boolean(session.reciprocateQrCallbacks),
937
938
  completed: phase === VerificationPhase.Done,
938
939
  error: session.error,
939
- createdAt: new Date(session.createdAtMs).toISOString(),
940
- updatedAt: new Date(session.updatedAtMs).toISOString()
940
+ createdAt: resolveTimestampMsToIsoString(session.createdAtMs),
941
+ updatedAt: resolveTimestampMsToIsoString(session.updatedAtMs)
941
942
  };
942
943
  }
943
944
  findVerificationSession(id) {
@@ -1092,7 +1093,7 @@ var MatrixVerificationManager = class {
1092
1093
  return this.buildVerificationSummary(existing);
1093
1094
  }
1094
1095
  }
1095
- const now = Date.now();
1096
+ const now = resolveDateTimestampMs(Date.now());
1096
1097
  const session = {
1097
1098
  id: `verification-${++this.verificationSessionCounter}`,
1098
1099
  request,
@@ -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 { g as resolveMatrixAuth } from "./shared-CmsjJY4i.js";
4
- import "./client-BMoZSA2L.js";
3
+ import { g as resolveMatrixAuth } from "./shared-DjJds8e0.js";
4
+ import "./client-spaouc7I.js";
5
5
  import { t as MatrixAuthedHttpClient } from "./http-client-KTzUzlpv.js";
6
6
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  //#region extensions/matrix/src/directory-live.ts
@@ -1,8 +1,7 @@
1
1
  import { t as isRecord } from "./record-shared-CvzjvHRn.js";
2
- import "./doctor-contract-D9oKDvsJ.js";
3
- import { i as autoPrepareLegacyMatrixCrypto, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus } from "./matrix-migration.runtime-CZOep_JX.js";
2
+ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-D9oKDvsJ.js";
3
+ import { i as autoPrepareLegacyMatrixCrypto, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus } from "./matrix-migration.runtime-RzIEp7RP.js";
4
4
  import { t as maybeCreateMatrixMigrationSnapshot } from "./migration-snapshot-backup-YcCrSjbE.js";
5
- import "openclaw/plugin-sdk/channel-contract";
6
5
  import { detectPluginInstallPathIssue, formatPluginInstallPathIssue, removePluginFromConfig } from "openclaw/plugin-sdk/runtime-doctor";
7
6
  //#region extensions/matrix/src/doctor.ts
8
7
  function hasConfiguredMatrixChannel(cfg) {
@@ -150,5 +149,19 @@ async function runMatrixDoctorSequence(params) {
150
149
  warningNotes
151
150
  };
152
151
  }
152
+ const matrixDoctor = {
153
+ dmAllowFromMode: "nestedOnly",
154
+ groupModel: "sender",
155
+ groupAllowFromFallbackToAllowFrom: false,
156
+ warnOnEmptyGroupSenderAllowlist: true,
157
+ legacyConfigRules,
158
+ normalizeCompatibilityConfig,
159
+ runConfigSequence: async ({ cfg, env, shouldRepair }) => await runMatrixDoctorSequence({
160
+ cfg,
161
+ env,
162
+ shouldRepair
163
+ }),
164
+ cleanStaleConfig: async ({ cfg }) => await cleanStaleMatrixPluginConfig(cfg)
165
+ };
153
166
  //#endregion
154
- export { cleanStaleMatrixPluginConfig, runMatrixDoctorSequence };
167
+ export { applyMatrixDoctorRepair, cleanStaleMatrixPluginConfig, collectMatrixInstallPathWarnings, formatMatrixLegacyCryptoPreview, formatMatrixLegacyStatePreview, matrixDoctor, runMatrixDoctorSequence };
@@ -1,4 +1,4 @@
1
- import { n as editMessageMatrix, r as prepareMatrixSingleText, s as sendSingleTextMessageMatrix, y as MsgType } from "./send-peVVVL75.js";
1
+ import { n as editMessageMatrix, r as prepareMatrixSingleText, s as sendSingleTextMessageMatrix, y as MsgType } from "./send-DHj1E9ji.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;
@@ -1,4 +1,4 @@
1
- import { a as resolveMatrixDefaultOrOnlyAccountId } from "./account-selection-C3arLOhC.js";
1
+ import { a as resolveMatrixDefaultOrOnlyAccountId } from "./account-selection-DEMtY2cn.js";
2
2
  import { t as resolveMatrixConfigFieldPath } from "./config-paths-ZBCMwSos.js";
3
3
  import { normalizeOptionalAccountId } from "openclaw/plugin-sdk/account-id";
4
4
  //#region extensions/matrix/src/matrix/encryption-guidance.ts
@@ -1,4 +1,4 @@
1
- import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-C3arLOhC.js";
1
+ import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-DEMtY2cn.js";
2
2
  import { n as listMatrixEnvAccountIds, r as resolveMatrixEnvAccountToken, t as getMatrixScopedEnvVarNames } from "./env-vars-KzaYveuy.js";
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-BV2Z7bns.js";
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
4
  export { findMatrixAccountEntry, getMatrixScopedEnvVarNames, hashMatrixAccessToken, listMatrixEnvAccountIds, requiresExplicitMatrixDefaultAccount, resolveConfiguredMatrixAccountIds, resolveMatrixAccountStorageRoot, resolveMatrixChannelConfig, resolveMatrixCredentialsDir, resolveMatrixCredentialsFilename, resolveMatrixCredentialsPath, resolveMatrixDefaultOrOnlyAccountId, resolveMatrixEnvAccountToken, resolveMatrixHomeserverKey, resolveMatrixLegacyFlatStoragePaths, resolveMatrixLegacyFlatStoreRoot, sanitizeMatrixPathSegment };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { n as registerMatrixCliMetadata } from "./cli-metadata-zz9Cmwcs.js";
2
- import { t as registerMatrixSubagentHooks } from "./subagent-hooks-api-bedE4GYl.js";
1
+ import { n as registerMatrixCliMetadata } from "./cli-metadata-gFTG9oJL.js";
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
5
5
  let matrixHandlersRuntimePromise = null;
@@ -1,5 +1,5 @@
1
1
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
- import { a as resolveMatrixStoragePaths } from "./storage-onzulLbU.js";
2
+ import { o as resolveMatrixStoragePaths } from "./storage-Ds-2Iur5.js";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
5
  import { readJsonFileWithFallback, writeJsonFileAtomically } from "openclaw/plugin-sdk/json-store";
@@ -1,4 +1,4 @@
1
- import { d as ConsoleLogger, f as LogService, m as setMatrixConsoleLogging } from "./shared-CmsjJY4i.js";
1
+ import { d as ConsoleLogger, f as LogService, m as setMatrixConsoleLogging } from "./shared-DjJds8e0.js";
2
2
  import { logger } from "matrix-js-sdk/lib/logger.js";
3
3
  //#region extensions/matrix/src/matrix/client/logging.ts
4
4
  let matrixSdkLoggingConfigured = false;
@@ -1,10 +1,10 @@
1
- import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, o as resolveMatrixAccountStringValues, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-C3arLOhC.js";
1
+ import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, o as resolveMatrixAccountStringValues, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-DEMtY2cn.js";
2
2
  import { i as resolveScopedMatrixEnvConfig, n as resolveGlobalMatrixEnvConfig } from "./env-auth-DIzOApj0.js";
3
- import { a as resolveMatrixCredentialsPath, n as resolveMatrixAccountStorageRoot, s as resolveMatrixLegacyFlatStoragePaths } from "./storage-paths-BV2Z7bns.js";
3
+ import { a as resolveMatrixCredentialsPath, n as resolveMatrixAccountStorageRoot, s as resolveMatrixLegacyFlatStoragePaths } from "./storage-paths-BWo_ZEMC.js";
4
4
  import { t as formatMatrixErrorMessage } from "./errors-C47hvAF8.js";
5
5
  import "./migration-snapshot-backup-YcCrSjbE.js";
6
- import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
7
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
+ import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
8
8
  import fs from "node:fs";
9
9
  import os from "node:os";
10
10
  import path from "node:path";
@@ -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-peVVVL75.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-DHj1E9ji.js";
2
2
  import path from "node:path";
3
3
  //#region extensions/matrix/src/matrix/poll-summary.ts
4
4
  function resolveMatrixPollRootEventId(event) {