@openclaw/matrix 2026.8.1-beta.2 → 2026.8.1-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/api.js +6 -6
  2. package/dist/{approval-handler.runtime-CJXCUdRg.js → approval-handler.runtime-CSvueU9P.js} +5 -4
  3. package/dist/{approval-ids-7rf7etWE.js → approval-ids-CEcf-EiM.js} +1 -1
  4. package/dist/{approval-reaction-auth-wBwbEDpZ.js → approval-reaction-auth-CziKXatm.js} +1 -1
  5. package/dist/{channel-VSrHgTON.js → channel-CzQw5OZN.js} +228 -20
  6. package/dist/channel-plugin-api.js +1 -1
  7. package/dist/{channel.runtime-pOOL0uT_.js → channel.runtime-I9pBRQb3.js} +24 -14
  8. package/dist/{channel.setup-PpxRP9Du.js → channel.setup-aNaa3Uyn.js} +3 -9
  9. package/dist/{cli-CkTfKC_c.js → cli-iR6QJ5U0.js} +8 -8
  10. package/dist/{cli-metadata-B1d1aGM5.js → cli-metadata-BmUYWjuM.js} +1 -1
  11. package/dist/cli-metadata.js +1 -1
  12. package/dist/{client-CeGw0G5S.js → client-BBQdBG7t.js} +34 -19
  13. package/dist/{client-sJesKQmp.js → client-D8XghqmX.js} +2 -2
  14. package/dist/{client-bootstrap-BFwT_2VT.js → client-bootstrap-Co3RlItb.js} +1 -1
  15. package/dist/contract-api.js +2 -2
  16. package/dist/{directory-live-Bvg2wAnR.js → directory-live-DLQzel12.js} +2 -2
  17. package/dist/doctor-contract-api.js +7 -1
  18. package/dist/{draft-stream-BRi7PRRS.js → draft-stream-DQ7QNC-l.js} +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/{media-text-JudlYOSc.js → media-text-Dh-DpTc3.js} +4 -1
  21. package/dist/{messages-BW0s-6Y9.js → messages-DEqg7HVy.js} +27 -7
  22. package/dist/{monitor-Ddfc-vjX.js → monitor-FNrfkuWL.js} +33 -35
  23. package/dist/plugin-entry.handlers.runtime.js +1 -1
  24. package/dist/probe.runtime-NIJZYqc2.js +2 -0
  25. package/dist/{profile-update-BkgWYDIp.js → profile-update-BQlE5s2J.js} +1 -1
  26. package/dist/{reaction-events-nfUbFLdV.js → reaction-events-BKOLlnCo.js} +3 -3
  27. package/dist/{resolve-targets-BJAPY4Vb.js → resolve-targets-e7AI0P75.js} +2 -2
  28. package/dist/{resolver.runtime-LWJELYq5.js → resolver.runtime-V8u0pHEb.js} +1 -1
  29. package/dist/runtime-api.js +1 -1
  30. package/dist/{sdk-DjaQFCHc.js → sdk-NxK3vzMa.js} +17 -3
  31. package/dist/{send-ZDLU4JTk.js → send-ClHgDZLT.js} +11 -10
  32. package/dist/session-binding-contract-api.js +2 -3
  33. package/dist/{setup-bootstrap-BaXkhgJg.js → setup-bootstrap-BGPjbA5N.js} +1 -1
  34. package/dist/{setup-core-DQn6b5vi.js → setup-core-DigrLebY.js} +1 -1
  35. package/dist/setup-plugin-api.js +1 -1
  36. package/dist/{setup-surface-DlhJdrNI.js → setup-surface-Dtn8sAWs.js} +10 -9
  37. package/dist/subagent-hooks-CMoZaARG.js +48 -0
  38. package/dist/subagent-hooks-api.js +1 -1
  39. package/dist/{target-ids-B-5aQxwn.js → target-ids-Nwx7cMVE.js} +11 -1
  40. package/dist/{thread-binding-api-DRbBZlhS.js → thread-binding-api-CzkeLZCU.js} +1 -1
  41. package/dist/thread-binding-api.js +1 -1
  42. package/dist/{thread-bindings-CcHZP3w2.js → thread-bindings-BYEGfw3h.js} +11 -7
  43. package/dist/thread-bindings-runtime.js +1 -1
  44. package/dist/{thread-bindings-shared-CKnY4LSd.js → thread-bindings-shared-oNPiyMWY.js} +1 -6
  45. package/dist/{tool-actions.runtime-DmdRL0bN.js → tool-actions.runtime-ck6IJyP0.js} +8 -8
  46. package/dist/{verification-C7ig-bQE.js → verification-CabtBTtB.js} +1 -1
  47. package/openclaw.plugin.json +7 -0
  48. package/package.json +4 -4
  49. package/dist/probe.runtime-Dr91B_X3.js +0 -2
  50. package/dist/route-DY6at4qJ.js +0 -161
  51. package/dist/subagent-hooks-dkPAF6Et.js +0 -143
@@ -20,7 +20,7 @@ import { retryAsync } from "openclaw/plugin-sdk/retry-runtime";
20
20
  import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
21
21
  import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
22
22
  //#region extensions/matrix/src/matrix/client/config.ts
23
- const loadMatrixAuthClientDeps = createLazyRuntimeModule(() => Promise.all([import("./sdk-DjaQFCHc.js"), import("./logging-DRjvUOIh.js").then((n) => n.n)]).then(([sdkModule, loggingModule]) => ({
23
+ const loadMatrixAuthClientDeps = createLazyRuntimeModule(() => Promise.all([import("./sdk-NxK3vzMa.js"), import("./logging-DRjvUOIh.js").then((n) => n.n)]).then(([sdkModule, loggingModule]) => ({
24
24
  MatrixClient: sdkModule.MatrixClient,
25
25
  ensureMatrixSdkLoggingConfigured: loggingModule.ensureMatrixSdkLoggingConfigured
26
26
  })));
@@ -416,7 +416,7 @@ async function backfillMatrixAuthDeviceIdAfterStartup(params) {
416
416
  //#endregion
417
417
  //#region extensions/matrix/src/matrix/client/create-client.ts
418
418
  var create_client_exports = /* @__PURE__ */ __exportAll({ createMatrixClient: () => createMatrixClient });
419
- const loadMatrixCreateClientRuntimeDeps = createLazyRuntimeModule(() => Promise.all([import("./sdk-DjaQFCHc.js"), import("./logging-DRjvUOIh.js").then((n) => n.n)]).then(([sdkModule, loggingModule]) => ({
419
+ const loadMatrixCreateClientRuntimeDeps = createLazyRuntimeModule(() => Promise.all([import("./sdk-NxK3vzMa.js"), import("./logging-DRjvUOIh.js").then((n) => n.n)]).then(([sdkModule, loggingModule]) => ({
420
420
  MatrixClient: sdkModule.MatrixClient,
421
421
  ensureMatrixSdkLoggingConfigured: loggingModule.ensureMatrixSdkLoggingConfigured
422
422
  })));
@@ -549,6 +549,9 @@ function deleteSharedClientState(state) {
549
549
  if (sharedClientStates.get(state.key) === state) sharedClientStates.delete(state.key);
550
550
  sharedClientPromises.delete(state.key);
551
551
  }
552
+ function deleteSharedClientStateAfterLateDrain(state) {
553
+ if (state.phase === "late-drain-stopped" && state.leases.size === 0) deleteSharedClientState(state);
554
+ }
552
555
  async function ensureSharedClientStarted(state, abortSignal) {
553
556
  if (state.started) return;
554
557
  if (state.startPromise) {
@@ -645,20 +648,14 @@ function mergeReleaseMode(current, requested) {
645
648
  function abortTransientLeases(state) {
646
649
  for (const lease of state.leases) if (lease.role === "transient") lease.abortController.abort();
647
650
  }
648
- function forceReleaseLeases(state, releasePromise = Promise.resolve()) {
649
- for (const lease of state.leases) {
650
- lease.abortController.abort();
651
- lease.releasePromise ??= releasePromise;
652
- }
653
- state.leases.clear();
654
- state.noLeases.resolve();
655
- }
656
651
  async function waitForLeaseDrain(state) {
657
652
  if (state.leases.size === 0) return;
658
653
  let deadline;
659
654
  try {
660
655
  await Promise.race([state.noLeases.promise, new Promise((_, reject) => {
661
656
  deadline = setTimeout(() => {
657
+ if (state.leases.size === 0) return;
658
+ state.phase = "late-drain";
662
659
  reject(/* @__PURE__ */ new Error(`Matrix transient leases did not drain within ${MATRIX_TRANSIENT_LEASE_DRAIN_TIMEOUT_MS}ms`));
663
660
  }, MATRIX_TRANSIENT_LEASE_DRAIN_TIMEOUT_MS);
664
661
  deadline.unref?.();
@@ -672,6 +669,7 @@ function beginGenerationRetirement(params) {
672
669
  if (state.retirementPromise) return state.retirementPromise;
673
670
  state.phase = "quiescing";
674
671
  state.retirementPromise = Promise.resolve().then(async () => {
672
+ let poisonDisposition = "replace-after-stop";
675
673
  try {
676
674
  await state.client.quiesceSync();
677
675
  state.started = false;
@@ -683,17 +681,25 @@ function beginGenerationRetirement(params) {
683
681
  await retireMonitorLeases(state, params.monitorLeases ?? []);
684
682
  } catch (error) {
685
683
  state.poisonError ??= toStringifiedError(error);
684
+ poisonDisposition = "retain";
686
685
  }
687
686
  state.phase = "closing";
688
687
  try {
689
688
  await waitForLeaseDrain(state);
690
689
  } catch (error) {
691
690
  state.poisonError ??= toStringifiedError(error);
692
- forceReleaseLeases(state);
691
+ if (poisonDisposition !== "retain") poisonDisposition = "replace-after-late-drain";
693
692
  }
694
693
  if (state.poisonError) {
695
- await state.client.drainPendingDecryptions("matrix poisoned client shutdown").catch(() => void 0);
694
+ const decryptionsDrained = await state.client.drainPendingDecryptions("matrix poisoned client shutdown").then(() => true, () => false);
696
695
  state.client.stopWithoutPersist();
696
+ if (decryptionsDrained) {
697
+ if (poisonDisposition === "replace-after-stop") deleteSharedClientState(state);
698
+ else if (poisonDisposition === "replace-after-late-drain") {
699
+ state.phase = "late-drain-stopped";
700
+ deleteSharedClientStateAfterLateDrain(state);
701
+ }
702
+ }
697
703
  throw state.poisonError;
698
704
  }
699
705
  try {
@@ -719,6 +725,7 @@ function beginGenerationRetirement(params) {
719
725
  return state.retirementPromise;
720
726
  }
721
727
  function createSharedMatrixClientLease(state, role) {
728
+ if (state.phase !== "open" || state.poisonError) return null;
722
729
  const leaseState = {
723
730
  abortController: new AbortController(),
724
731
  monitorRetirement: null,
@@ -747,6 +754,11 @@ function createSharedMatrixClientLease(state, role) {
747
754
  state.releaseMode = mergeReleaseMode(state.releaseMode, releaseParams.mode ?? "stop");
748
755
  state.leases.delete(leaseState);
749
756
  if (state.leases.size === 0) state.noLeases.resolve();
757
+ if (state.phase === "late-drain" || state.phase === "late-drain-stopped") {
758
+ leaseState.releasePromise = Promise.resolve();
759
+ deleteSharedClientStateAfterLateDrain(state);
760
+ return leaseState.releasePromise;
761
+ }
750
762
  const finalMonitor = role === "monitor" && !Array.from(state.leases).some((lease) => lease.role === "monitor");
751
763
  if (role === "monitor" && !finalMonitor) {
752
764
  leaseState.releasePromise = retireMonitorLease(state, leaseState);
@@ -765,14 +777,17 @@ function createSharedMatrixClientLease(state, role) {
765
777
  };
766
778
  }
767
779
  async function acquireSharedMatrixClient(params = {}) {
768
- const lease = createSharedMatrixClientLease(await resolveOpenSharedMatrixClientState(params), params.role ?? "transient");
769
- if (params.startClient !== false) try {
770
- await lease.start(params.abortSignal);
771
- } catch (error) {
772
- await lease.release({ mode: "stop" }).catch(() => void 0);
773
- throw error;
780
+ while (true) {
781
+ const lease = createSharedMatrixClientLease(await resolveOpenSharedMatrixClientState(params), params.role ?? "transient");
782
+ if (!lease) continue;
783
+ if (params.startClient !== false) try {
784
+ await lease.start(params.abortSignal);
785
+ } catch (error) {
786
+ await lease.release({ mode: "stop" }).catch(() => void 0);
787
+ throw error;
788
+ }
789
+ return lease;
774
790
  }
775
- return lease;
776
791
  }
777
792
  //#endregion
778
793
  //#region extensions/matrix/src/matrix/client.ts
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { x as resolveMatrixRoomId } from "./send-ZDLU4JTk.js";
3
- import { n as withResolvedRuntimeMatrixClient } from "./client-bootstrap-BFwT_2VT.js";
2
+ import { x as resolveMatrixRoomId } from "./send-ClHgDZLT.js";
3
+ import { n as withResolvedRuntimeMatrixClient } from "./client-bootstrap-Co3RlItb.js";
4
4
  //#region extensions/matrix/src/matrix/actions/client.ts
5
5
  var client_exports = /* @__PURE__ */ __exportAll({
6
6
  withResolvedActionClient: () => withResolvedActionClient,
@@ -7,7 +7,7 @@ var client_bootstrap_exports = /* @__PURE__ */ __exportAll({
7
7
  resolveRuntimeMatrixClientWithReadiness: () => resolveRuntimeMatrixClientWithReadiness,
8
8
  withResolvedRuntimeMatrixClient: () => withResolvedRuntimeMatrixClient
9
9
  });
10
- const loadMatrixSharedClientRuntimeDeps = createLazyRuntimeModule(() => import("./client-CeGw0G5S.js").then((n) => n.t).then((clientModule) => ({
10
+ const loadMatrixSharedClientRuntimeDeps = createLazyRuntimeModule(() => import("./client-BBQdBG7t.js").then((n) => n.t).then((clientModule) => ({
11
11
  acquireSharedMatrixClient: clientModule.acquireSharedMatrixClient,
12
12
  resolveMatrixAuthContext: clientModule.resolveMatrixAuthContext
13
13
  })));
@@ -1,3 +1,3 @@
1
- import { c as singleAccountKeysToMove, n as matrixSetupAdapter, o as namedAccountPromotionKeys, s as resolveSingleAccountPromotionTarget } from "./setup-core-DQn6b5vi.js";
2
- import { n as matrixOnboardingAdapter } from "./setup-surface-DlhJdrNI.js";
1
+ import { c as singleAccountKeysToMove, n as matrixSetupAdapter, o as namedAccountPromotionKeys, s as resolveSingleAccountPromotionTarget } from "./setup-core-DigrLebY.js";
2
+ import { n as matrixOnboardingAdapter } from "./setup-surface-Dtn8sAWs.js";
3
3
  export { matrixSetupAdapter, matrixOnboardingAdapter as matrixSetupWizard, namedAccountPromotionKeys, resolveSingleAccountPromotionTarget, singleAccountKeysToMove };
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { n as normalizeMatrixMessagingTarget, t as isMatrixQualifiedUserId } from "./target-ids-B-5aQxwn.js";
3
- import { c as resolveMatrixAuth } from "./client-CeGw0G5S.js";
2
+ import { r as normalizeMatrixMessagingTarget, t as isMatrixQualifiedUserId } from "./target-ids-Nwx7cMVE.js";
3
+ import { c as resolveMatrixAuth } from "./client-BBQdBG7t.js";
4
4
  import { t as MatrixAuthedHttpClient } from "./http-client-CycYxU9-.js";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  //#region extensions/matrix/src/directory-live.ts
@@ -508,7 +508,13 @@ const stateMigrations = [
508
508
  }
509
509
  const existing = normalizeMatrixStoredCredentials(stored, source.accountId);
510
510
  if (existing && JSON.stringify(existing) !== JSON.stringify(credentials)) {
511
- warnings.push(`Kept existing Matrix credentials for account ${source.accountId}; left differing legacy source in place`);
511
+ changes.push(`Kept existing Matrix credentials for account ${source.accountId}`);
512
+ await archiveLegacyStateSource({
513
+ filePath: source.filePath,
514
+ label: "Matrix credentials",
515
+ changes,
516
+ warnings
517
+ });
512
518
  continue;
513
519
  }
514
520
  if (!existing) try {
@@ -1,4 +1,4 @@
1
- import { E as MsgType, a as sendSingleTextMessageMatrix, l as prepareMatrixSingleText, t as editMessageMatrix } from "./send-ZDLU4JTk.js";
1
+ import { E as MsgType, a as sendSingleTextMessageMatrix, l as prepareMatrixSingleText, t as editMessageMatrix } from "./send-ClHgDZLT.js";
2
2
  import { createFinalizableDraftStreamControlsForState } from "openclaw/plugin-sdk/channel-outbound";
3
3
  //#region extensions/matrix/src/matrix/draft-stream.ts
4
4
  const DEFAULT_THROTTLE_MS = 1e3;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as registerMatrixCliMetadata } from "./cli-metadata-B1d1aGM5.js";
1
+ import { n as registerMatrixCliMetadata } from "./cli-metadata-BmUYWjuM.js";
2
2
  import { registerMatrixSubagentHooks } from "./subagent-hooks-api.js";
3
3
  import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
4
4
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
@@ -1,4 +1,4 @@
1
- import { _ as parsePollStartContent, d as buildPollResultsSummary, f as formatPollAsText, h as isPollStartType, m as isPollEventType, p as formatPollResultsAsText, v as resolvePollReferenceEventId } from "./send-ZDLU4JTk.js";
1
+ import { _ as parsePollStartContent, d as buildPollResultsSummary, f as formatPollAsText, h as isPollStartType, m as isPollEventType, p as formatPollResultsAsText, v as resolvePollReferenceEventId } from "./send-ClHgDZLT.js";
2
2
  import path from "node:path";
3
3
  //#region extensions/matrix/src/matrix/poll-summary.ts
4
4
  function resolveMatrixPollRootEventId(event) {
@@ -10,11 +10,14 @@ function resolveMatrixPollRootEventId(event) {
10
10
  }
11
11
  async function readAllPollRelations(client, roomId, pollEventId) {
12
12
  const relationEvents = [];
13
+ const seenCursors = /* @__PURE__ */ new Set();
13
14
  let nextBatch;
14
15
  do {
15
16
  const page = await client.getRelations(roomId, pollEventId, "m.reference", void 0, { from: nextBatch });
16
17
  relationEvents.push(...page.events);
17
18
  nextBatch = page.nextBatch ?? void 0;
19
+ if (nextBatch && seenCursors.has(nextBatch)) throw new Error("Matrix poll pagination returned a repeated cursor");
20
+ if (nextBatch) seenCursors.add(nextBatch);
18
21
  } while (nextBatch);
19
22
  return relationEvents;
20
23
  }
@@ -1,13 +1,12 @@
1
- import { h as isPollStartType, m as isPollEventType, r as sendMessageMatrix, t as editMessageMatrix } from "./send-ZDLU4JTk.js";
2
1
  import { n as MATRIX_REACTION_EVENT_TYPE } from "./reaction-common-DkrQdBSZ.js";
3
- import { a as resolveMatrixMessageAttachment, l as resolveMatrixPollRootEventId, o as resolveMatrixMessageBody, s as fetchMatrixPollMessageSummary } from "./media-text-JudlYOSc.js";
4
- import { r as withResolvedRoomAction } from "./client-sJesKQmp.js";
2
+ import { h as isPollStartType, m as isPollEventType, r as sendMessageMatrix, t as editMessageMatrix } from "./send-ClHgDZLT.js";
3
+ import { a as resolveMatrixMessageAttachment, l as resolveMatrixPollRootEventId, o as resolveMatrixMessageBody, s as fetchMatrixPollMessageSummary } from "./media-text-Dh-DpTc3.js";
4
+ import { r as withResolvedRoomAction } from "./client-D8XghqmX.js";
5
5
  import { n as isMatrixNotFoundError } from "./errors-DKVS3_DO.js";
6
- import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
- import { resolveIntegerOption } from "openclaw/plugin-sdk/number-runtime";
6
+ import { asNullableObjectRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
7
  //#region extensions/matrix/src/matrix/actions/limits.ts
9
8
  function resolveMatrixActionLimit(raw, fallback) {
10
- return resolveIntegerOption(raw, fallback, { min: 1 });
9
+ return Math.max(1, Math.floor(raw !== void 0 && Number.isFinite(raw) ? raw : fallback));
11
10
  }
12
11
  //#endregion
13
12
  //#region extensions/matrix/src/matrix/actions/types.ts
@@ -19,6 +18,26 @@ const EventType = {
19
18
  };
20
19
  //#endregion
21
20
  //#region extensions/matrix/src/matrix/actions/summary.ts
21
+ function parseMatrixRawEvent(value) {
22
+ const event = asNullableObjectRecord(value);
23
+ const content = asNullableObjectRecord(event?.content);
24
+ if (!event || typeof event.event_id !== "string" || typeof event.sender !== "string" || typeof event.type !== "string" || typeof event.origin_server_ts !== "number" || !content) return null;
25
+ const unsigned = asNullableObjectRecord(event.unsigned);
26
+ const relations = asNullableObjectRecord(unsigned?.["m.relations"]);
27
+ return {
28
+ event_id: event.event_id,
29
+ sender: event.sender,
30
+ type: event.type,
31
+ origin_server_ts: event.origin_server_ts,
32
+ content,
33
+ ...unsigned ? { unsigned: {
34
+ ...typeof unsigned.age === "number" ? { age: unsigned.age } : {},
35
+ ...relations ? { "m.relations": relations } : {},
36
+ ...unsigned.redacted_because !== void 0 ? { redacted_because: unsigned.redacted_because } : {}
37
+ } } : {},
38
+ ...typeof event.state_key === "string" ? { state_key: event.state_key } : {}
39
+ };
40
+ }
22
41
  function resolveBundledMatrixReplacementContent(event) {
23
42
  const rawReplacement = event.unsigned?.["m.relations"]?.["m.replace"];
24
43
  if (!rawReplacement || typeof rawReplacement !== "object" || event.state_key !== void 0) return;
@@ -73,7 +92,8 @@ async function readPinnedEvents(client, roomId) {
73
92
  }
74
93
  async function fetchEventSummary(client, roomId, eventId) {
75
94
  try {
76
- const raw = await client.getEvent(roomId, eventId);
95
+ const raw = parseMatrixRawEvent(await client.getEvent(roomId, eventId));
96
+ if (!raw) return null;
77
97
  if (raw.unsigned?.redacted_because) return null;
78
98
  const pollSummary = await fetchMatrixPollMessageSummary(client, roomId, raw);
79
99
  if (pollSummary) return pollSummary;
@@ -1,23 +1,22 @@
1
1
  import { a as resolveMatrixAccountConfig, i as resolveMatrixAccountAllowlistConfig } from "./account-config-BZWN9tGS.js";
2
2
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
3
3
  import { n as resolveConfiguredMatrixBotUserIds } from "./accounts-BCzyubQt.js";
4
- import { a as buildAllowlistResolutionSummary, c as createTypingCallbacks, d as logInboundDrop, f as logTypingFailure, h as toLocationContext, i as addAllowlistUserEntriesFromConfigEntry, l as formatLocationText, m as summarizeMapping, n as resolveMatrixStoredSessionMeta, o as canonicalizeAllowlistWithResolvedIds, p as patchAllowlistUsersInConfigEntries, r as resolveMatrixRoomConfig, s as createReplyPrefixOptions, u as getAgentScopedMediaLocalRoots } from "./channel-VSrHgTON.js";
5
- import { a as normalizeMatrixUserId, i as normalizeMatrixAllowList, o as resolveMatrixAllowListMatch } from "./channel.setup-PpxRP9Du.js";
6
- import { t as isMatrixQualifiedUserId } from "./target-ids-B-5aQxwn.js";
7
- import { C as promoteMatrixDirectRoomCandidate, T as MATRIX_OPENCLAW_FINALIZED_PREVIEW_KEY, _ as parsePollStartContent, c as chunkMatrixText, f as formatPollAsText, h as isPollStartType, m as isPollEventType, r as sendMessageMatrix } from "./send-ZDLU4JTk.js";
4
+ import { _ as logInboundDrop, a as resolveMatrixThreadRootId, b as summarizeMapping, c as RelationType, d as buildAllowlistResolutionSummary, f as canonicalizeAllowlistWithResolvedIds, g as getAgentScopedMediaLocalRoots, h as formatLocationText, i as resolveMatrixReplyToEventId, l as resolveMatrixRoomConfig, m as createTypingCallbacks, n as resolveMatrixStoredSessionMeta, o as resolveMatrixThreadRouting, p as createReplyPrefixOptions, r as resolveMatrixInboundRoute, s as EventType, u as addAllowlistUserEntriesFromConfigEntry, v as logTypingFailure, x as toLocationContext, y as patchAllowlistUsersInConfigEntries } from "./channel-CzQw5OZN.js";
5
+ import { a as normalizeMatrixUserId, i as normalizeMatrixAllowList, o as resolveMatrixAllowListMatch } from "./channel.setup-aNaa3Uyn.js";
6
+ import { n as isMatrixRoomId, t as isMatrixQualifiedUserId } from "./target-ids-Nwx7cMVE.js";
7
+ import { C as promoteMatrixDirectRoomCandidate, T as MATRIX_OPENCLAW_FINALIZED_PREVIEW_KEY, _ as parsePollStartContent, c as chunkMatrixText, f as formatPollAsText, h as isPollStartType, m as isPollEventType, r as sendMessageMatrix } from "./send-ClHgDZLT.js";
8
8
  import { i as isStrictDirectMembership, n as hasDirectMatrixMemberFlag, o as readJoinedMatrixMembers } from "./direct-room-RinHjtqX.js";
9
- import { t as createMatrixThreadBindingManager } from "./thread-bindings-CcHZP3w2.js";
10
- import { a as resolveMatrixMessageAttachment, c as fetchMatrixPollSnapshot, i as isLikelyBareFilename, n as formatMatrixMediaUnavailableText, o as resolveMatrixMessageBody, r as formatMatrixMessageText, t as formatMatrixMediaTooLargeText } from "./media-text-JudlYOSc.js";
9
+ import { t as createMatrixThreadBindingManager } from "./thread-bindings-BYEGfw3h.js";
10
+ import { a as resolveMatrixMessageAttachment, c as fetchMatrixPollSnapshot, i as isLikelyBareFilename, n as formatMatrixMediaUnavailableText, o as resolveMatrixMessageBody, r as formatMatrixMessageText, t as formatMatrixMediaTooLargeText } from "./media-text-Dh-DpTc3.js";
11
11
  import { t as isBunRuntime } from "./runtime-BefyhPWv.js";
12
- import { a as throwIfMatrixStartupAborted, c as resolveMatrixAuth, i as isMatrixStartupAbortError, l as resolveMatrixAuthContext, n as acquireSharedMatrixClient, s as backfillMatrixAuthDeviceIdAfterStartup } from "./client-CeGw0G5S.js";
12
+ import { a as throwIfMatrixStartupAborted, c as resolveMatrixAuth, i as isMatrixStartupAbortError, l as resolveMatrixAuthContext, n as acquireSharedMatrixClient, s as backfillMatrixAuthDeviceIdAfterStartup } from "./client-BBQdBG7t.js";
13
13
  import { i as isMatrixMediaSizeLimitError, r as MatrixMediaSizeLimitError } from "./http-client-CycYxU9-.js";
14
14
  import { d as resolveAllowlistProviderRuntimeGroupPolicy, f as resolveDefaultGroupPolicy, g as warnMissingProviderGroupPolicyFallbackOnce, h as resolveThreadBindingMaxAgeMsForChannel, m as resolveThreadBindingIdleTimeoutMsForChannel, t as GROUP_POLICY_BLOCKED_LABEL } from "./runtime-api-BGO16Fu8.js";
15
- import { t as resolveMatrixTargets } from "./resolve-targets-BJAPY4Vb.js";
15
+ import { t as resolveMatrixTargets } from "./resolve-targets-e7AI0P75.js";
16
16
  import { t as formatMatrixEncryptedEventDisabledWarning } from "./encryption-guidance-DmLY8NiO.js";
17
17
  import { createMatrixInboundEventDeduper } from "./inbound-dedupe-RvSLqdsz.js";
18
18
  import { a as isMatrixAccessTokenInvalidatedError, d as isMatrixDisconnectedSyncState, f as isMatrixReadySyncState, p as isMatrixTerminalSyncState } from "./client-support-DLj4vDeu.js";
19
19
  import { n as setBoundedMap, t as createMatrixRoomInfoResolver } from "./room-info-BXQA7y10.js";
20
- import { a as EventType, i as resolveMatrixThreadRouting, n as resolveMatrixReplyToEventId, o as RelationType, r as resolveMatrixThreadRootId, t as resolveMatrixInboundRoute } from "./route-DY6at4qJ.js";
21
20
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
22
21
  import { buildChannelProgressDraftLineForEntry, createChannelProgressDraftCompositor, createMessageReceiptFromOutboundResults, createPreviewMessageReceipt, defineFinalizableLivePreviewAdapter, deliverWithFinalizableLivePreviewAdapter, formatChannelProgressDraftLine, formatChannelProgressDraftText, listMessageReceiptPlatformIds, resolveChannelStreamingBlockEnabled, waitUntilAbort } from "openclaw/plugin-sdk/channel-outbound";
23
22
  import { normalizeLowercaseStringOrEmpty, normalizeNullableString, normalizeOptionalString, normalizeStringifiedEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -26,7 +25,7 @@ import { CHANNEL_APPROVAL_NATIVE_RUNTIME_CONTEXT_CAPABILITY } from "openclaw/plu
26
25
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
27
26
  import { isFutureDateTimestampMs, parseStrictFiniteNumber, resolveExpiresAtMsFromDurationMs, resolveOptionalIntegerOption } from "openclaw/plugin-sdk/number-runtime";
28
27
  import { resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
29
- import { createChannelInboundEnvelopeBuilder, createChannelPartialDeliveryError, hasFinalInboundReplyDispatch, isChannelPartialDeliveryError, resolveInboundMentionDecision, toInboundMediaFactsWithMetadata } from "openclaw/plugin-sdk/channel-inbound";
28
+ import { createChannelInboundEnvelopeBuilder, createChannelPartialDeliveryError, hasFinalInboundReplyDispatch, isChannelPartialDeliveryError, resolveInboundMentionDecision, resolveInboundReplyDispatchCounts, toInboundMediaFactsWithMetadata } from "openclaw/plugin-sdk/channel-inbound";
30
29
  import { getSessionEntry, resolveStorePath } from "openclaw/plugin-sdk/session-store-runtime";
31
30
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
32
31
  import { format } from "node:util";
@@ -40,7 +39,7 @@ import { createChannelIngressResolver, defineStableChannelIngressIdentity } from
40
39
  import { resolveHumanDelayConfig } from "openclaw/plugin-sdk/agent-runtime";
41
40
  import { evaluateSupplementalContextVisibility, resolveChannelContextVisibilityMode } from "openclaw/plugin-sdk/context-visibility-runtime";
42
41
  import { getGlobalHookRunner } from "openclaw/plugin-sdk/plugin-runtime";
43
- import { createChannelPreflightAudio } from "openclaw/plugin-sdk/media-understanding-runtime";
42
+ import { createChannelPreflightAudio, formatAudioTranscriptForAgent } from "openclaw/plugin-sdk/media-understanding-runtime";
44
43
  import { mergePairLoopGuardConfig } from "openclaw/plugin-sdk/pair-loop-guard-runtime";
45
44
  import { buildInboundHistoryFromEntries } from "openclaw/plugin-sdk/reply-history";
46
45
  import { decodeHtmlEntities } from "openclaw/plugin-sdk/html-entity-runtime";
@@ -153,7 +152,7 @@ function isMatrixDangerousNameMatchingEnabled(params) {
153
152
  function addUniqueMatrixAllowlistEntry(params) {
154
153
  const trimmed = params.entry.trim();
155
154
  if (!trimmed) return;
156
- const key = trimmed.toLowerCase();
155
+ const key = normalizeMatrixUserId(trimmed);
157
156
  if (params.seen.has(key)) return;
158
157
  params.seen.add(key);
159
158
  params.entries.push(trimmed);
@@ -186,7 +185,8 @@ function resolveStableMatrixMonitorUserAllowlist(params) {
186
185
  const resolution = resolveStableMatrixMonitorUserEntries(allowList);
187
186
  const canonicalized = canonicalizeAllowlistWithResolvedIds({
188
187
  existing: allowList,
189
- resolvedMap: resolution.resolvedMap
188
+ resolvedMap: resolution.resolvedMap,
189
+ entryKey: normalizeMatrixUserId
190
190
  });
191
191
  logStableMatrixAllowlistUnresolved({
192
192
  label: params.label,
@@ -263,7 +263,8 @@ async function resolveMatrixMonitorUserAllowlist(params) {
263
263
  });
264
264
  const canonicalized = canonicalizeAllowlistWithResolvedIds({
265
265
  existing: allowList,
266
- resolvedMap: resolution.resolvedMap
266
+ resolvedMap: resolution.resolvedMap,
267
+ entryKey: normalizeMatrixUserId
267
268
  });
268
269
  summarizeMapping(params.label, resolution.mapping, resolution.unresolved, params.runtime);
269
270
  if (resolution.unresolved.length > 0) params.runtime.log?.(`${params.label} entries must be full Matrix IDs (example: @user:server). Unresolved entries will not match any sender.`);
@@ -332,7 +333,8 @@ async function resolveMatrixMonitorLiveUserAllowlist(params) {
332
333
  entries: pending,
333
334
  runtime: params.runtime,
334
335
  resolveTargets: params.resolveTargets ?? resolveMatrixTargets
335
- })).resolvedMap
336
+ })).resolvedMap,
337
+ entryKey: normalizeMatrixUserId
336
338
  });
337
339
  const resolvedEntries = params.failClosedOnUnresolved ? filterFailClosedMatrixAllowlistEntries(canonicalized) : filterResolvedMatrixAllowlistEntries(canonicalized);
338
340
  for (const entry of resolvedEntries) addUniqueMatrixAllowlistEntry({
@@ -363,7 +365,7 @@ async function resolveMatrixMonitorRoomsConfig(params) {
363
365
  unresolved.push(entry);
364
366
  continue;
365
367
  }
366
- if (cleaned.startsWith("!") && cleaned.includes(":")) {
368
+ if (isMatrixRoomId(cleaned)) {
367
369
  if (!nextRooms[cleaned]) nextRooms[cleaned] = roomConfig;
368
370
  if (cleaned !== input) mapping.push(`${input}→${cleaned}`);
369
371
  continue;
@@ -394,7 +396,7 @@ async function resolveMatrixMonitorRoomsConfig(params) {
394
396
  } else unresolved.push(source.input);
395
397
  });
396
398
  summarizeMapping("matrix rooms", mapping, unresolved, params.runtime);
397
- if (unresolved.length > 0) params.runtime.log?.("matrix rooms must be room IDs or aliases (example: !room:server or #alias:server). Unresolved entries are ignored.");
399
+ if (unresolved.length > 0) params.runtime.log?.("matrix rooms must be room IDs or aliases (example: !room:server, the suffixless !room form on room version 12+, or #alias:server). Unresolved entries are ignored.");
398
400
  const roomUsers = /* @__PURE__ */ new Set();
399
401
  for (const roomConfig of Object.values(nextRooms)) addAllowlistUserEntriesFromConfigEntry(roomUsers, roomConfig);
400
402
  if (roomUsers.size === 0) return nextRooms;
@@ -408,7 +410,8 @@ async function resolveMatrixMonitorRoomsConfig(params) {
408
410
  return patchAllowlistUsersInConfigEntries({
409
411
  entries: nextRooms,
410
412
  resolvedMap: resolution.resolvedMap,
411
- strategy: "canonicalize"
413
+ strategy: "canonicalize",
414
+ entryKey: normalizeMatrixUserId
412
415
  });
413
416
  }
414
417
  const resolution = await resolveMatrixMonitorUserEntries({
@@ -423,7 +426,8 @@ async function resolveMatrixMonitorRoomsConfig(params) {
423
426
  return patchAllowlistUsersInConfigEntries({
424
427
  entries: nextRooms,
425
428
  resolvedMap: resolution.resolvedMap,
426
- strategy: "canonicalize"
429
+ strategy: "canonicalize",
430
+ entryKey: normalizeMatrixUserId
427
431
  });
428
432
  }
429
433
  async function resolveMatrixMonitorConfig(params) {
@@ -815,7 +819,7 @@ const matrixVerificationConstants = {
815
819
  const MAX_TRACKED_VERIFICATION_EVENTS = 1024;
816
820
  const SAS_NOTICE_RETRY_DELAY_MS = 750;
817
821
  const VERIFICATION_EVENT_STARTUP_GRACE_MS = 3e4;
818
- const loadMatrixDirectRoomDeps = createLazyRuntimeModule(() => Promise.all([import("./send-ZDLU4JTk.js").then((n) => n.S), import("./direct-room-RinHjtqX.js").then((n) => n.t)]).then(([directManagementModule, directRoomModule]) => ({
822
+ const loadMatrixDirectRoomDeps = createLazyRuntimeModule(() => Promise.all([import("./send-ClHgDZLT.js").then((n) => n.S), import("./direct-room-RinHjtqX.js").then((n) => n.t)]).then(([directManagementModule, directRoomModule]) => ({
819
823
  inspectMatrixDirectRooms: directManagementModule.inspectMatrixDirectRooms,
820
824
  isStrictDirectRoom: directRoomModule.isStrictDirectRoom
821
825
  })));
@@ -1425,9 +1429,6 @@ function resolveMatrixAckReactionConfig(params) {
1425
1429
  }
1426
1430
  //#endregion
1427
1431
  //#region extensions/matrix/src/matrix/monitor/preflight-audio.ts
1428
- function formatMatrixAudioTranscript(transcript) {
1429
- return `[Audio transcript (machine-generated, untrusted)]: ${JSON.stringify(transcript)}`;
1430
- }
1431
1432
  function isMatrixAudioContent(params) {
1432
1433
  if (params.msgtype === "m.audio") return true;
1433
1434
  if (params.msgtype === "m.file" && typeof params.mimetype === "string") return params.mimetype.toLowerCase().startsWith("audio/");
@@ -1576,11 +1577,11 @@ async function redactMatrixDraftEvent(client, roomId, draftEventId) {
1576
1577
  function buildMatrixFinalizedPreviewContent() {
1577
1578
  return { [MATRIX_OPENCLAW_FINALIZED_PREVIEW_KEY]: true };
1578
1579
  }
1579
- const loadMatrixSendModule = createLazyRuntimeModule(() => import("./send-ZDLU4JTk.js").then((n) => n.s));
1580
+ const loadMatrixSendModule = createLazyRuntimeModule(() => import("./send-ClHgDZLT.js").then((n) => n.s));
1580
1581
  const loadAcpBindingRuntime = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/acp-binding-runtime"));
1581
1582
  const loadSessionBindingRuntime = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/session-binding-runtime"));
1582
- const loadMatrixReactionEvents = createLazyRuntimeModule(() => import("./reaction-events-nfUbFLdV.js"));
1583
- const loadMatrixDraftStream = createLazyRuntimeModule(() => import("./draft-stream-BRi7PRRS.js"));
1583
+ const loadMatrixReactionEvents = createLazyRuntimeModule(() => import("./reaction-events-BKOLlnCo.js"));
1584
+ const loadMatrixDraftStream = createLazyRuntimeModule(() => import("./draft-stream-DQ7QNC-l.js"));
1584
1585
  async function matrixTextWouldActivateMentions(client, text) {
1585
1586
  const { resolveMatrixMentionsForBody } = await loadMatrixSendModule();
1586
1587
  const mentions = await resolveMatrixMentionsForBody({
@@ -2908,7 +2909,7 @@ async function resolveMatrixIngressContent(config) {
2908
2909
  const { effectiveWasMentioned, shouldBypassMention } = mentionDecision;
2909
2910
  const canDetectMention = agentMentionRegexes.length > 0 || hasExplicitMention;
2910
2911
  if (mentionDecision.shouldSkip) {
2911
- const pendingHistoryBody = preflightAudioTranscript ? formatMatrixAudioTranscript(preflightAudioTranscript) : pendingHistoryText || pendingHistoryPollText;
2912
+ const pendingHistoryBody = preflightAudioTranscript ? formatAudioTranscriptForAgent(preflightAudioTranscript) : pendingHistoryText || pendingHistoryPollText;
2912
2913
  if (historyLimit > 0 && pendingHistoryBody) {
2913
2914
  const pendingEntry = {
2914
2915
  sender: senderId,
@@ -2991,7 +2992,7 @@ async function resolveMatrixIngressContent(config) {
2991
2992
  });
2992
2993
  if (preflightMedia && bodyText && bodyText !== preflightMedia.placeholder && isLikelyBareFilename(bodyText)) bodyText = preflightMedia.placeholder;
2993
2994
  if (preflightAudioTranscript) {
2994
- const transcriptBody = formatMatrixAudioTranscript(preflightAudioTranscript);
2995
+ const transcriptBody = formatAudioTranscriptForAgent(preflightAudioTranscript);
2995
2996
  bodyText = !bodyText || bodyText === media?.placeholder ? transcriptBody : `${bodyText}\n${transcriptBody}`;
2996
2997
  }
2997
2998
  if (!bodyText) {
@@ -4077,7 +4078,7 @@ function createMatrixRoomMessageHandler(params) {
4077
4078
  return;
4078
4079
  }
4079
4080
  const { dispatchResult } = turnResult;
4080
- const { queuedFinal, counts } = dispatchResult;
4081
+ const { queuedFinal } = dispatchResult;
4081
4082
  if (replyDispatcher.finalReplyDeliveryFailed()) {
4082
4083
  logVerboseMessage(`matrix: final reply delivery failed room=${roomId} id=${messageId}; keeping replay committed`);
4083
4084
  await commitInboundEventIfClaimed();
@@ -4089,14 +4090,11 @@ function createMatrixRoomMessageHandler(params) {
4089
4090
  return;
4090
4091
  }
4091
4092
  if (isRoom && triggerSnapshot) roomHistoryTracker.consumeHistory(_route.agentId, roomId, triggerSnapshot, messageId, threadRootId ? thread.threadId : void 0);
4092
- if (!hasFinalInboundReplyDispatch({
4093
- queuedFinal,
4094
- counts
4095
- })) {
4093
+ if (!hasFinalInboundReplyDispatch(dispatchResult)) {
4096
4094
  await commitInboundEventIfClaimed();
4097
4095
  return;
4098
4096
  }
4099
- const finalCount = counts.final;
4097
+ const finalCount = resolveInboundReplyDispatchCounts(dispatchResult).final;
4100
4098
  logVerboseMessage(`matrix: delivered ${finalCount} reply${finalCount === 1 ? "" : "ies"} to ${replyTarget}`);
4101
4099
  await commitInboundEventIfClaimed();
4102
4100
  } catch (err) {
@@ -4688,7 +4686,7 @@ async function monitorMatrixProvider(opts = {}) {
4688
4686
  logVerboseMessage
4689
4687
  });
4690
4688
  if (monitorSetupClosed) {
4691
- createdThreadBindingManager.stop();
4689
+ await createdThreadBindingManager.stop();
4692
4690
  await cleanup("stop");
4693
4691
  return;
4694
4692
  }
@@ -2,7 +2,7 @@ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
2
2
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
4
4
  //#region extensions/matrix/src/plugin-entry.runtime.ts
5
- const loadMatrixVerificationRuntime = createLazyRuntimeModule(() => import("./verification-C7ig-bQE.js").then((n) => n.y));
5
+ const loadMatrixVerificationRuntime = createLazyRuntimeModule(() => import("./verification-CabtBTtB.js").then((n) => n.y));
6
6
  function sendError(respond, err) {
7
7
  respond(false, { error: formatErrorMessage(err) });
8
8
  }
@@ -0,0 +1,2 @@
1
+ import { o as createMatrixClient } from "./client-BBQdBG7t.js";
2
+ export { createMatrixClient };
@@ -1,7 +1,7 @@
1
1
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
2
  import { n as resolveMatrixConfigPath, r as updateMatrixAccountConfig } from "./config-update-Bor_Pjsv.js";
3
3
  import { r as syncMatrixOwnProfile } from "./profile-D-Wubo0A.js";
4
- import { n as withResolvedActionClient } from "./client-sJesKQmp.js";
4
+ import { n as withResolvedActionClient } from "./client-D8XghqmX.js";
5
5
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
6
6
  //#region extensions/matrix/src/matrix/actions/profile.ts
7
7
  async function updateMatrixOwnProfile(opts = {}) {
@@ -1,15 +1,15 @@
1
1
  import { a as resolveMatrixAccountConfig } from "./account-config-BZWN9tGS.js";
2
+ import { a as resolveMatrixThreadRootId, o as resolveMatrixThreadRouting, r as resolveMatrixInboundRoute } from "./channel-CzQw5OZN.js";
2
3
  import { a as extractMatrixReactionAnnotation } from "./reaction-common-DkrQdBSZ.js";
3
4
  import { i as resolveMatrixApprovalReactionTargetWithPersistence, o as unregisterMatrixApprovalReactionTargetsForApproval } from "./approval-reactions-tXh9KYrW.js";
4
- import { i as resolveMatrixThreadRouting, r as resolveMatrixThreadRootId, t as resolveMatrixInboundRoute } from "./route-DY6at4qJ.js";
5
5
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
6
6
  import { isApprovalNotFoundError } from "openclaw/plugin-sdk/error-runtime";
7
7
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
8
8
  import { getSessionBindingService } from "openclaw/plugin-sdk/session-binding-runtime";
9
9
  //#region extensions/matrix/src/matrix/monitor/reaction-events.ts
10
- const loadApprovalReactionAuth = createLazyRuntimeModule(() => import("./approval-reaction-auth-wBwbEDpZ.js"));
10
+ const loadApprovalReactionAuth = createLazyRuntimeModule(() => import("./approval-reaction-auth-CziKXatm.js"));
11
11
  const loadExecApprovalResolver = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/approval-gateway-runtime"));
12
- const loadMatrixSend = createLazyRuntimeModule(() => import("./send-ZDLU4JTk.js").then((n) => n.s));
12
+ const loadMatrixSend = createLazyRuntimeModule(() => import("./send-ClHgDZLT.js").then((n) => n.s));
13
13
  function buildMatrixApprovalTerminalText(result) {
14
14
  const approval = result.approval;
15
15
  const terminalLabel = approval.status === "allowed" ? approval.decision === "allow-always" ? "Allowed always" : "Allowed once" : approval.status === "denied" ? "Denied" : approval.status === "expired" ? "Expired" : "Cancelled";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
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-Bvg2wAnR.js";
2
+ import { r as normalizeMatrixMessagingTarget, t as isMatrixQualifiedUserId } from "./target-ids-Nwx7cMVE.js";
3
+ import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-DLQzel12.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-BJAPY4Vb.js";
1
+ import { t as resolveMatrixTargets } from "./resolve-targets-e7AI0P75.js";
2
2
  //#region extensions/matrix/src/resolver.runtime.ts
3
3
  const matrixResolverRuntime = { resolveMatrixTargets };
4
4
  //#endregion
@@ -2,7 +2,7 @@ import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConf
2
2
  import { n as listMatrixEnvAccountIds, r as resolveMatrixEnvAccountToken, t as getMatrixScopedEnvVarNames } from "./env-vars-dGqak9dN.js";
3
3
  import { r as setMatrixRuntime } from "./runtime-6S3DNFNv.js";
4
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
- import { d as setMatrixThreadBindingIdleTimeoutBySessionKey, p as setMatrixThreadBindingMaxAgeBySessionKey } from "./thread-bindings-shared-CKnY4LSd.js";
5
+ import { f as setMatrixThreadBindingMaxAgeBySessionKey, u as setMatrixThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings-shared-oNPiyMWY.js";
6
6
  import { n as ensureMatrixSdkInstalled, r as isMatrixSdkAvailable } from "./deps-CcVJfvRM.js";
7
7
  import { chunkTextForOutbound as chunkTextForOutbound$1 } from "openclaw/plugin-sdk/text-chunking";
8
8
  import { assertHttpUrlTargetsPrivateNetwork, closeDispatcher, createPinnedDispatcher, resolvePinnedHostnameWithPolicy, ssrfPolicyFromDangerouslyAllowPrivateNetwork } from "openclaw/plugin-sdk/ssrf-runtime";