@openclaw/discord 2026.5.19 → 2026.5.20-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/{account-inspect-DCXwNu_u.js → account-inspect-CcJ-bl80.js} +1 -1
  2. package/dist/account-inspect-api.js +1 -1
  3. package/dist/action-runtime-api.js +1 -1
  4. package/dist/api.js +19 -19
  5. package/dist/{approval-handler.runtime-CRpNixJy.js → approval-handler.runtime-hi6B0JCi.js} +4 -4
  6. package/dist/{audit-DEF10R9j.js → audit-DJIvRRzY.js} +5 -5
  7. package/dist/{channel-CR9HckAC.js → channel-BswuOAN6.js} +22 -22
  8. package/dist/{channel-actions-CpmPx9PW.js → channel-actions-CSepY2Kq.js} +5 -5
  9. package/dist/{channel-actions.runtime-Be5OvB1r.js → channel-actions.runtime-CSjcHZNT.js} +6 -6
  10. package/dist/channel-config-api.js +1 -1
  11. package/dist/channel-plugin-api.js +1 -1
  12. package/dist/{channel.setup-DR3-U0wF.js → channel.setup-C0rcLtB9.js} +4 -4
  13. package/dist/{components-q41bHoCx.js → components-DDPGekgY.js} +1 -1
  14. package/dist/{config-schema-jz2FX2x5.js → config-schema-BGgg8U6A.js} +13 -1
  15. package/dist/contract-api.js +7 -7
  16. package/dist/{conversation-identity-BY7sjUQh.js → conversation-identity-CAyt5wzy.js} +3 -3
  17. package/dist/{directory-config-x3YzNdoX.js → directory-config-BcWtq4k8.js} +2 -2
  18. package/dist/directory-contract-api.js +1 -1
  19. package/dist/{directory-live-CJiEWQwK.js → directory-live-5HHCCe5Q.js} +4 -4
  20. package/dist/{doctor-CzcS8Yt1.js → doctor-BLcVWv42.js} +5 -5
  21. package/dist/{doctor-contract-AkgUZQHW.js → doctor-contract-Bia3BmP_.js} +1 -1
  22. package/dist/doctor-contract-api.js +1 -1
  23. package/dist/{handle-action.guild-admin-kAzbjGMw.js → handle-action.guild-admin-DX2D9qkG.js} +1 -1
  24. package/dist/{inbound-context-CzEAvKgx.js → inbound-context-B5EsqsSr.js} +1 -1
  25. package/dist/{manager.runtime-CGcJ0yjq.js → manager.runtime-Dq0mc5K0.js} +364 -22
  26. package/dist/{message-handler-1NV0WiHC.js → message-handler-wQJd4Peh.js} +7 -7
  27. package/dist/{message-handler.preflight-DQ-oPY7m.js → message-handler.preflight-ANdoLbtA.js} +16 -18
  28. package/dist/{message-handler.process-PpgZ0qC4.js → message-handler.process-DG4qm0sQ.js} +27 -16
  29. package/dist/{message-utils-BKrlzFtM.js → message-utils-Bw-wDr8G.js} +2 -2
  30. package/dist/{outbound-adapter-CaZzpMnE.js → outbound-adapter-TGbHliO_.js} +8 -8
  31. package/dist/{pluralkit-BnCH6cHK.js → pluralkit-sQLfeyIZ.js} +1 -1
  32. package/dist/{preflight-audio-B0keJeQe.js → preflight-audio-ClWbnQto.js} +1 -1
  33. package/dist/{probe-BLDNbk41.js → probe-CRWV5COl.js} +2 -2
  34. package/dist/{probe.runtime-DKB38YvU.js → probe.runtime-h9mEzmMs.js} +1 -1
  35. package/dist/{provider-BZtjA1y_.js → provider-CzKMDsSE.js} +45 -64
  36. package/dist/{provider-session.runtime-DVfzQxFH.js → provider-session.runtime-D0XbJS5X.js} +3 -3
  37. package/dist/provider.runtime-CUUefRl3.js +2 -0
  38. package/dist/{resolve-allowlist-common-C8L5MYFl.js → resolve-allowlist-common-Bec0FONA.js} +3 -3
  39. package/dist/{resolve-channels-Czrd7fOv.js → resolve-channels-DcWaMURg.js} +4 -4
  40. package/dist/{resolve-users-D7hQMaaq.js → resolve-users-TQPLKDeV.js} +3 -3
  41. package/dist/{runtime-BJUWt4mA.js → runtime-DP_0_5a0.js} +9 -9
  42. package/dist/runtime-api.actions.js +2 -2
  43. package/dist/runtime-api.js +25 -25
  44. package/dist/runtime-api.lookup.js +6 -6
  45. package/dist/runtime-api.monitor-D1psRR2u.js +5 -0
  46. package/dist/runtime-api.monitor.js +7 -7
  47. package/dist/runtime-api.send.js +5 -5
  48. package/dist/runtime-api.threads.js +5 -5
  49. package/dist/runtime-setter-api.js +1 -1
  50. package/dist/secret-contract-api.js +1 -1
  51. package/dist/{security-audit-Dx3j4a0l.js → security-audit-C_fzlczo.js} +1 -1
  52. package/dist/security-audit-contract-api.js +1 -1
  53. package/dist/{security-audit.runtime-C5nnf0k8.js → security-audit.runtime-Dt4zoGpL.js} +1 -1
  54. package/dist/security-contract-api.js +1 -1
  55. package/dist/{send-BsBy21Te.js → send-CEAtV0qd.js} +5 -6
  56. package/dist/{send.components-BuZBJysI.js → send.components-sY6aQV0K.js} +8 -8
  57. package/dist/{send.outbound-C0OzZAv_.js → send.outbound-1vG9pOh2.js} +4 -4
  58. package/dist/{send.shared-C6JLgsbp.js → send.shared-D4clao4K.js} +3 -3
  59. package/dist/{sender-identity-DC0FdEcU.js → sender-identity-BFp5w0F8.js} +1 -1
  60. package/dist/session-key-api.js +1 -1
  61. package/dist/setup-plugin-api.js +1 -1
  62. package/dist/{shared-CYe5A_Bs.js → shared-mo-r7V5W.js} +10 -10
  63. package/dist/{subagent-hooks-DCIt8Gt7.js → subagent-hooks-D65kqOor.js} +3 -3
  64. package/dist/subagent-hooks-api.js +1 -1
  65. package/dist/{system-events-DEuiLTl9.js → system-events-HgHeiMHg.js} +2 -2
  66. package/dist/{target-resolver-C5tK3vit.js → target-resolver-BpGdnBIZ.js} +3 -3
  67. package/dist/targets-DMdVjHOU.js +3 -0
  68. package/dist/test-api.js +4 -4
  69. package/dist/{thread-bindings-BcXgbZ3-.js → thread-bindings-BQz8z6MR.js} +6 -6
  70. package/dist/{thread-bindings.discord-api-BzelVdsY.js → thread-bindings.discord-api-Ddalj9wo.js} +5 -5
  71. package/dist/{thread-bindings.manager-CouT_qjE.js → thread-bindings.manager-I5f-Oykv.js} +4 -4
  72. package/dist/{thread-bindings.session-updates-CgOqEOPe.js → thread-bindings.session-updates-D5gY2ZTE.js} +1 -1
  73. package/dist/timeouts.js +1 -1
  74. package/dist/{typing-DtdZgo-g.js → typing-DUUjLsPr.js} +2 -2
  75. package/openclaw.plugin.json +72 -2
  76. package/package.json +4 -4
  77. package/dist/provider.runtime-DlegJeN5.js +0 -2
  78. package/dist/runtime-api.monitor-BlxEnLN_.js +0 -5
  79. package/dist/targets-JvlTzyfK.js +0 -3
  80. /package/dist/{accounts-ltxKLzxN.js → accounts-C2TOAmpo.js} +0 -0
  81. /package/dist/{agent-components.runtime-BIemD2Iz.js → agent-components.runtime-CEPrf2SY.js} +0 -0
  82. /package/dist/{allow-list-CBI-M84K.js → allow-list-BnkWtVpA.js} +0 -0
  83. /package/dist/{api-DgQLz1wq.js → api-Kq7vtaSO.js} +0 -0
  84. /package/dist/{audit-core-DRyoXREU.js → audit-core-xwjIczO0.js} +0 -0
  85. /package/dist/{channel-api-JudoSiJv.js → channel-api-CAJ0wMoV.js} +0 -0
  86. /package/dist/{config-api-oLS_52S7.js → config-api-JiPdJeb0.js} +0 -0
  87. /package/dist/{gateway-registry-BKSpa4GB.js → gateway-registry-DPxmW0Db.js} +0 -0
  88. /package/dist/{inbound-event-delivery-D8zHG9Lz.js → inbound-event-delivery-DTGIjZVJ.js} +0 -0
  89. /package/dist/{preflight-audio.runtime-DT1Hmhsq.js → preflight-audio.runtime-CoCXMM8r.js} +0 -0
  90. /package/dist/{preview-streaming-nClS_TQx.js → preview-streaming-CQ7PsV9J.js} +0 -0
  91. /package/dist/{runtime-Tqtvj5GX.js → runtime-DgnVQ7zW.js} +0 -0
  92. /package/dist/{secret-config-contract-57_WV6qt.js → secret-config-contract-BjM-1hr9.js} +0 -0
  93. /package/dist/{security-contract-BWDASKVo.js → security-contract-DSHk7I2w.js} +0 -0
  94. /package/dist/{security-doctor-DepqtNCI.js → security-doctor-uUo8hTD5.js} +0 -0
  95. /package/dist/{send.receipt-Dhym-qOF.js → send.receipt-spSPAC77.js} +0 -0
  96. /package/dist/{session-contract-Dwhw3RTY.js → session-contract-BO5tlIdl.js} +0 -0
  97. /package/dist/{session-key-normalization-DnCXUKGA.js → session-key-normalization-wJgsKPNF.js} +0 -0
  98. /package/dist/{thread-bindings.state-CSphZOiL.js → thread-bindings.state-BsOnj5NX.js} +0 -0
  99. /package/dist/{timeouts-CEwuGaWT.js → timeouts-l_PsHQvX.js} +0 -0
@@ -1,18 +1,18 @@
1
- import { Ut as resolveDiscordChannelId, c as discord_exports, ft as editChannelMessage, s as chunkDiscordTextWithMode, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-Dhym-qOF.js";
2
- import { f as resolveDiscordMaxLinesPerMessage } from "./accounts-ltxKLzxN.js";
3
- import { N as createDiscordRestClient, P as createDiscordRuntimeAccountContext, _ as resolveDiscordMessageFlags, d as resolveDiscordTargetChannelId } from "./send.shared-C6JLgsbp.js";
4
- import { S as resolveTimestampMs, a as normalizeDiscordSlug, r as normalizeDiscordAllowList } from "./allow-list-CBI-M84K.js";
5
- import { a as removeReactionDiscord, f as editMessageDiscord, r as reactMessageDiscord } from "./send-BsBy21Te.js";
6
- import "./targets-JvlTzyfK.js";
7
- import { t as resolveDiscordConversationIdentity } from "./conversation-identity-BY7sjUQh.js";
8
- import { t as beginDiscordInboundEventDeliveryCorrelation } from "./inbound-event-delivery-D8zHG9Lz.js";
9
- import { t as DISCORD_TEXT_CHUNK_LIMIT } from "./outbound-adapter-CaZzpMnE.js";
10
- import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-nClS_TQx.js";
11
- import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-CEwuGaWT.js";
12
- import { a as resolveReplyContext, i as buildGuildLabel, n as deliverDiscordReply, r as buildDirectLabel, x as resolveDiscordThreadStarter, y as resolveDiscordAutoThreadReplyPlan } from "./provider-BZtjA1y_.js";
13
- import { a as resolveForwardedMediaList, o as resolveMediaList, r as resolveDiscordMessageText, s as resolveReferencedReplyMediaList } from "./message-utils-BKrlzFtM.js";
14
- import { t as sendTyping } from "./typing-DtdZgo-g.js";
15
- import { n as buildDiscordInboundAccessContext, r as createDiscordSupplementalContextAccessChecker } from "./inbound-context-CzEAvKgx.js";
1
+ import { Ut as resolveDiscordChannelId, c as discord_exports, ft as editChannelMessage, s as chunkDiscordTextWithMode, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-spSPAC77.js";
2
+ import { f as resolveDiscordMaxLinesPerMessage } from "./accounts-C2TOAmpo.js";
3
+ import { N as createDiscordRestClient, P as createDiscordRuntimeAccountContext, _ as resolveDiscordMessageFlags, d as resolveDiscordTargetChannelId } from "./send.shared-D4clao4K.js";
4
+ import { S as resolveTimestampMs, a as normalizeDiscordSlug, r as normalizeDiscordAllowList } from "./allow-list-BnkWtVpA.js";
5
+ import { a as removeReactionDiscord, f as editMessageDiscord, r as reactMessageDiscord } from "./send-CEAtV0qd.js";
6
+ import "./targets-DMdVjHOU.js";
7
+ import { t as resolveDiscordConversationIdentity } from "./conversation-identity-CAyt5wzy.js";
8
+ import { t as beginDiscordInboundEventDeliveryCorrelation } from "./inbound-event-delivery-DTGIjZVJ.js";
9
+ import { t as DISCORD_TEXT_CHUNK_LIMIT } from "./outbound-adapter-TGbHliO_.js";
10
+ import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-CQ7PsV9J.js";
11
+ import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-l_PsHQvX.js";
12
+ import { a as resolveReplyContext, i as buildGuildLabel, n as deliverDiscordReply, r as buildDirectLabel, x as resolveDiscordThreadStarter, y as resolveDiscordAutoThreadReplyPlan } from "./provider-CzKMDsSE.js";
13
+ import { a as resolveForwardedMediaList, o as resolveMediaList, r as resolveDiscordMessageText, s as resolveReferencedReplyMediaList } from "./message-utils-Bw-wDr8G.js";
14
+ import { t as sendTyping } from "./typing-DUUjLsPr.js";
15
+ import { n as buildDiscordInboundAccessContext, r as createDiscordSupplementalContextAccessChecker } from "./inbound-context-B5EsqsSr.js";
16
16
  import { buildAgentSessionKey, normalizeAccountId, resolveAccountEntry, resolveThreadSessionKeys } from "openclaw/plugin-sdk/routing";
17
17
  import { MessageFlags } from "discord-api-types/v10";
18
18
  import path from "node:path";
@@ -562,6 +562,7 @@ function createDiscordDraftPreviewController(params) {
562
562
  let draftText = "";
563
563
  let hasStreamedMessage = false;
564
564
  let finalizedViaPreviewMessage = false;
565
+ let finalReplyStarted = false;
565
566
  let finalReplyDelivered = false;
566
567
  const previewToolProgressEnabled = Boolean(draftStream) && resolveChannelStreamingPreviewToolProgress(params.discordConfig);
567
568
  const suppressDefaultToolProgressMessages = Boolean(draftStream) && resolveChannelStreamingSuppressDefaultToolProgressMessages(params.discordConfig, {
@@ -618,6 +619,9 @@ function createDiscordDraftPreviewController(params) {
618
619
  get finalizedViaPreviewMessage() {
619
620
  return finalizedViaPreviewMessage;
620
621
  },
622
+ markFinalReplyStarted() {
623
+ finalReplyStarted = true;
624
+ },
621
625
  markFinalReplyDelivered() {
622
626
  finalReplyDelivered = true;
623
627
  },
@@ -631,6 +635,7 @@ function createDiscordDraftPreviewController(params) {
631
635
  },
632
636
  async pushToolProgress(line, options) {
633
637
  if (!draftStream) return;
638
+ if (finalReplyStarted || finalReplyDelivered) return;
634
639
  if (options?.toolName !== void 0 && !isChannelProgressDraftWorkToolName(options.toolName)) return;
635
640
  if (isEmptyDiscordProgressLine(line)) return;
636
641
  const normalized = normalizeChannelProgressDraftLineIdentity(line);
@@ -661,6 +666,7 @@ function createDiscordDraftPreviewController(params) {
661
666
  },
662
667
  async pushReasoningProgress(text) {
663
668
  if (!draftStream || discordStreamMode !== "progress" || !text) return;
669
+ if (finalReplyDelivered) return;
664
670
  reasoningProgressRawText = mergeReasoningProgressText(reasoningProgressRawText, text);
665
671
  const normalized = normalizeReasoningProgressLine(reasoningProgressRawText);
666
672
  if (!normalized) return;
@@ -1076,6 +1082,7 @@ async function processDiscordMessage(ctx, observer) {
1076
1082
  const notifyFinalReplyStart = () => {
1077
1083
  if (finalReplyStartNotified) return;
1078
1084
  finalReplyStartNotified = true;
1085
+ draftPreview.markFinalReplyStarted();
1079
1086
  observer?.onFinalReplyStart?.();
1080
1087
  };
1081
1088
  const { dispatcher, replyOptions, markDispatchIdle, markRunComplete } = createReplyDispatcherWithTyping({
@@ -1085,6 +1092,7 @@ async function processDiscordMessage(ctx, observer) {
1085
1092
  if (isProcessAborted(abortSignal)) return;
1086
1093
  const isFinal = info.kind === "final";
1087
1094
  if (payload.isReasoning) return;
1095
+ if (isFinal) draftPreview.markFinalReplyStarted();
1088
1096
  const finalText = isFinal && typeof payload.text === "string" ? await resolveTranscriptBackedChannelFinalText({
1089
1097
  finalText: payload.text,
1090
1098
  resolveCandidateText: resolveCurrentTurnTranscriptFinalText
@@ -1225,7 +1233,10 @@ async function processDiscordMessage(ctx, observer) {
1225
1233
  kind: info.kind
1226
1234
  });
1227
1235
  replyReference.markSent();
1228
- if (isFinal) observer?.onFinalReplyDelivered?.();
1236
+ if (isFinal && payload.isError !== true) {
1237
+ draftPreview.markFinalReplyDelivered();
1238
+ observer?.onFinalReplyDelivered?.();
1239
+ }
1229
1240
  },
1230
1241
  onError: (err, info) => {
1231
1242
  runtime.error?.(danger(formatDiscordReplyDeliveryFailure({
@@ -1,5 +1,5 @@
1
- import { u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-BzelVdsY.js";
2
- import { a as mergeAbortSignals } from "./timeouts-CEwuGaWT.js";
1
+ import { u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-Ddalj9wo.js";
2
+ import { a as mergeAbortSignals } from "./timeouts-l_PsHQvX.js";
3
3
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { ComponentType, StickerFormatType } from "discord-api-types/v10";
5
5
  import { saveRemoteMedia } from "openclaw/plugin-sdk/media-runtime";
@@ -1,7 +1,7 @@
1
- import { S as DiscordError, o as normalizeDiscordOutboundTarget, s as chunkDiscordTextWithMode, t as createDiscordSendReceipt } from "./send.receipt-Dhym-qOF.js";
2
- import { s as resolveDiscordAccount } from "./accounts-ltxKLzxN.js";
3
- import { d as readDiscordComponentSpec } from "./components-q41bHoCx.js";
4
- import { n as notifyDiscordInboundEventOutboundPayloadSuccess } from "./inbound-event-delivery-D8zHG9Lz.js";
1
+ import { S as DiscordError, o as normalizeDiscordOutboundTarget, s as chunkDiscordTextWithMode, t as createDiscordSendReceipt } from "./send.receipt-spSPAC77.js";
2
+ import { s as resolveDiscordAccount } from "./accounts-C2TOAmpo.js";
3
+ import { d as readDiscordComponentSpec } from "./components-DDPGekgY.js";
4
+ import { n as notifyDiscordInboundEventOutboundPayloadSuccess } from "./inbound-event-delivery-DTGIjZVJ.js";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { resolvePayloadMediaUrls, sendPayloadMediaSequenceOrFallback, sendTextMediaPayload } from "openclaw/plugin-sdk/reply-payload";
7
7
  import { resolveRetryConfig, retryAsync } from "openclaw/plugin-sdk/retry-runtime";
@@ -85,11 +85,11 @@ function normalizeDiscordApprovalPayload(payload) {
85
85
  let discordComponentSendPromise;
86
86
  let discordSharedInteractivePromise;
87
87
  async function sendDiscordComponentMessageLazy(...args) {
88
- discordComponentSendPromise ??= import("./send.components-BuZBJysI.js").then((n) => n.i).then((module) => module.sendDiscordComponentMessage);
88
+ discordComponentSendPromise ??= import("./send.components-sY6aQV0K.js").then((n) => n.i).then((module) => module.sendDiscordComponentMessage);
89
89
  return await (await discordComponentSendPromise)(...args);
90
90
  }
91
91
  function loadDiscordSharedInteractive() {
92
- discordSharedInteractivePromise ??= import("./components-q41bHoCx.js").then((n) => n.a);
92
+ discordSharedInteractivePromise ??= import("./components-DDPGekgY.js").then((n) => n.a);
93
93
  return discordSharedInteractivePromise;
94
94
  }
95
95
  function addPayloadTextFallback(spec, payload) {
@@ -124,7 +124,7 @@ async function resolveDiscordComponentSpec(payload) {
124
124
  //#region extensions/discord/src/outbound-send-context.ts
125
125
  let discordSendRuntimePromise;
126
126
  async function loadDiscordSendRuntime() {
127
- discordSendRuntimePromise ??= import("./send-BsBy21Te.js").then((n) => n.t);
127
+ discordSendRuntimePromise ??= import("./send-CEAtV0qd.js").then((n) => n.t);
128
128
  return await discordSendRuntimePromise;
129
129
  }
130
130
  function resolveDiscordOutboundTarget(params) {
@@ -314,7 +314,7 @@ function stripDiscordInternalRuntimeScaffolding(text) {
314
314
  }
315
315
  let discordThreadBindingsPromise;
316
316
  function loadDiscordThreadBindings() {
317
- discordThreadBindingsPromise ??= import("./thread-bindings-BcXgbZ3-.js").then((n) => n.t);
317
+ discordThreadBindingsPromise ??= import("./thread-bindings-BQz8z6MR.js").then((n) => n.t);
318
318
  return discordThreadBindingsPromise;
319
319
  }
320
320
  function resolveDiscordWebhookIdentity(params) {
@@ -1,4 +1,4 @@
1
- import { Wt as __exportAll } from "./send.receipt-Dhym-qOF.js";
1
+ import { Wt as __exportAll } from "./send.receipt-spSPAC77.js";
2
2
  import { resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
3
3
  //#region extensions/discord/src/pluralkit.ts
4
4
  var pluralkit_exports = /* @__PURE__ */ __exportAll({ fetchPluralKitMessageInfo: () => fetchPluralKitMessageInfo });
@@ -4,7 +4,7 @@ import { getFileExtension } from "openclaw/plugin-sdk/media-mime";
4
4
  //#region extensions/discord/src/monitor/preflight-audio.ts
5
5
  let discordPreflightAudioRuntimePromise;
6
6
  function loadDiscordPreflightAudioRuntime() {
7
- discordPreflightAudioRuntimePromise ??= import("./preflight-audio.runtime-DT1Hmhsq.js");
7
+ discordPreflightAudioRuntimePromise ??= import("./preflight-audio.runtime-CoCXMM8r.js");
8
8
  return discordPreflightAudioRuntimePromise;
9
9
  }
10
10
  const AUDIO_ATTACHMENT_MIME_BY_EXT = new Map([
@@ -1,5 +1,5 @@
1
- import { p as normalizeDiscordToken } from "./accounts-ltxKLzxN.js";
2
- import { n as fetchDiscord, t as DiscordApiError } from "./api-DgQLz1wq.js";
1
+ import { p as normalizeDiscordToken } from "./accounts-C2TOAmpo.js";
2
+ import { n as fetchDiscord, t as DiscordApiError } from "./api-Kq7vtaSO.js";
3
3
  import { resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
4
4
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
5
5
  import { fetchWithTimeout } from "openclaw/plugin-sdk/text-utility-runtime";
@@ -1,2 +1,2 @@
1
- import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-BLDNbk41.js";
1
+ import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CRWV5COl.js";
2
2
  export { fetchDiscordApplicationId, fetchDiscordApplicationSummary, parseApplicationIdFromToken, probeDiscord, resolveDiscordPrivilegedIntentsFromFlags };
@@ -1,23 +1,23 @@
1
- import { $ as BaseMessageInteractiveComponent, A as Message, B as Container, C as RateLimitError, D as Command, F as Modal, J as Separator, K as Row, O as CommandWithSubcommands, R as Button, Wt as __exportAll, X as TextDisplay, Y as StringSelectMenu, b as Plugin, c as discord_exports, ct as createThread, d as MessageReactionAddListener, dt as editChannel, f as MessageReactionRemoveListener, g as ThreadUpdateListener, j as User, k as Guild, l as InteractionCreateListener, m as ReadyListener, mt as getChannelMessage, p as PresenceUpdateListener, s as chunkDiscordTextWithMode, u as MessageCreateListener, y as Client } from "./send.receipt-Dhym-qOF.js";
2
- import { c as resolveDiscordAccountAllowFrom, d as resolveDiscordAccountDmPolicy, f as resolveDiscordMaxLinesPerMessage, p as normalizeDiscordToken, s as resolveDiscordAccount } from "./accounts-ltxKLzxN.js";
3
- import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-q41bHoCx.js";
4
- import { a as resolveDiscordComponentEntryWithPersistence, o as resolveDiscordModalEntryWithPersistence, t as editDiscordComponentMessage } from "./send.components-BuZBJysI.js";
5
- import { c as setPresence, i as unregisterGateway, r as registerGateway } from "./gateway-registry-BKSpa4GB.js";
6
- import { L as DISCORD_REST_TIMEOUT_MS, N as createDiscordRestClient, R as validateDiscordProxyUrl, T as canViewDiscordGuildChannel, z as withValidatedDiscordProxy } from "./send.shared-C6JLgsbp.js";
7
- import { a as summarizeDiscordResponseBody, i as isDiscordRateLimitResponseBody } from "./api-DgQLz1wq.js";
8
- import { S as resolveTimestampMs, _ as resolveGroupDmAllow, a as normalizeDiscordSlug, b as formatDiscordUserTag, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, i as normalizeDiscordDisplaySlug, l as resolveDiscordChannelPolicyCommandAuthorizer, m as resolveDiscordOwnerAccess, n as isDiscordGroupAllowedByPolicy, o as resolveDiscordAllowListMatch, r as normalizeDiscordAllowList, v as shouldEmitDiscordReactionNotification, y as formatDiscordReactionEmoji } from "./allow-list-CBI-M84K.js";
9
- import { s as sendVoiceMessageDiscord } from "./send-BsBy21Te.js";
10
- import { i as formatMention, t as sendMessageDiscord } from "./send.outbound-C0OzZAv_.js";
11
- import { a as getDiscordExecApprovalApprovers, s as isDiscordExecApprovalClientEnabled, t as resolveDiscordConversationIdentity } from "./conversation-identity-BY7sjUQh.js";
12
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-Czrd7fOv.js";
13
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-D7hQMaaq.js";
14
- import { _ as formatThreadBindingDurationLabel, a as isThreadArchived, d as resolveDiscordChannelNameSafe, f as resolveDiscordChannelParentIdSafe, l as resolveDiscordChannelIdSafe, m as resolveDiscordChannelTopicSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-BzelVdsY.js";
15
- import { r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-BLDNbk41.js";
16
- import { o as raceWithTimeout, s as withAbortTimeout } from "./timeouts-CEwuGaWT.js";
17
- import { d as resolveDiscordMessageChannelId, n as resolveDiscordForwardedMessagesTextFromSnapshots, t as resolveDiscordEmbedText, u as resolveDiscordChannelInfo } from "./message-utils-BKrlzFtM.js";
18
- import { t as resolveDiscordSenderIdentity } from "./sender-identity-DC0FdEcU.js";
19
- import { n as buildDiscordInboundAccessContext, t as buildDiscordGroupSystemPrompt } from "./inbound-context-CzEAvKgx.js";
20
- import "./approval-handler.runtime-CRpNixJy.js";
1
+ import { $ as BaseMessageInteractiveComponent, A as Message, B as Container, C as RateLimitError, D as Command, F as Modal, J as Separator, K as Row, O as CommandWithSubcommands, R as Button, Wt as __exportAll, X as TextDisplay, Y as StringSelectMenu, b as Plugin, c as discord_exports, ct as createThread, d as MessageReactionAddListener, dt as editChannel, f as MessageReactionRemoveListener, g as ThreadUpdateListener, j as User, k as Guild, l as InteractionCreateListener, m as ReadyListener, mt as getChannelMessage, p as PresenceUpdateListener, s as chunkDiscordTextWithMode, u as MessageCreateListener, y as Client } from "./send.receipt-spSPAC77.js";
2
+ import { c as resolveDiscordAccountAllowFrom, d as resolveDiscordAccountDmPolicy, f as resolveDiscordMaxLinesPerMessage, p as normalizeDiscordToken, s as resolveDiscordAccount } from "./accounts-C2TOAmpo.js";
3
+ import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-DDPGekgY.js";
4
+ import { a as resolveDiscordComponentEntryWithPersistence, o as resolveDiscordModalEntryWithPersistence, t as editDiscordComponentMessage } from "./send.components-sY6aQV0K.js";
5
+ import { c as setPresence, i as unregisterGateway, r as registerGateway } from "./gateway-registry-DPxmW0Db.js";
6
+ import { L as DISCORD_REST_TIMEOUT_MS, N as createDiscordRestClient, R as validateDiscordProxyUrl, T as canViewDiscordGuildChannel, z as withValidatedDiscordProxy } from "./send.shared-D4clao4K.js";
7
+ import { a as summarizeDiscordResponseBody, i as isDiscordRateLimitResponseBody } from "./api-Kq7vtaSO.js";
8
+ import { S as resolveTimestampMs, _ as resolveGroupDmAllow, a as normalizeDiscordSlug, b as formatDiscordUserTag, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, i as normalizeDiscordDisplaySlug, l as resolveDiscordChannelPolicyCommandAuthorizer, m as resolveDiscordOwnerAccess, n as isDiscordGroupAllowedByPolicy, o as resolveDiscordAllowListMatch, r as normalizeDiscordAllowList, v as shouldEmitDiscordReactionNotification, y as formatDiscordReactionEmoji } from "./allow-list-BnkWtVpA.js";
9
+ import { s as sendVoiceMessageDiscord } from "./send-CEAtV0qd.js";
10
+ import { i as formatMention, t as sendMessageDiscord } from "./send.outbound-1vG9pOh2.js";
11
+ import { a as getDiscordExecApprovalApprovers, s as isDiscordExecApprovalClientEnabled, t as resolveDiscordConversationIdentity } from "./conversation-identity-CAyt5wzy.js";
12
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-DcWaMURg.js";
13
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-TQPLKDeV.js";
14
+ import { _ as formatThreadBindingDurationLabel, a as isThreadArchived, d as resolveDiscordChannelNameSafe, f as resolveDiscordChannelParentIdSafe, l as resolveDiscordChannelIdSafe, m as resolveDiscordChannelTopicSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-Ddalj9wo.js";
15
+ import { r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CRWV5COl.js";
16
+ import { o as raceWithTimeout, s as withAbortTimeout } from "./timeouts-l_PsHQvX.js";
17
+ import { d as resolveDiscordMessageChannelId, n as resolveDiscordForwardedMessagesTextFromSnapshots, t as resolveDiscordEmbedText, u as resolveDiscordChannelInfo } from "./message-utils-Bw-wDr8G.js";
18
+ import { t as resolveDiscordSenderIdentity } from "./sender-identity-BFp5w0F8.js";
19
+ import { n as buildDiscordInboundAccessContext, t as buildDiscordGroupSystemPrompt } from "./inbound-context-B5EsqsSr.js";
20
+ import "./approval-handler.runtime-hi6B0JCi.js";
21
21
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
22
22
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeOptionalStringifiedId, normalizeStringEntries, summarizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
23
23
  import { buildAgentSessionKey, deriveLastRoutePolicy, isAcpSessionKey, isSubagentSessionKey, parseAgentSessionKey, resolveAgentIdFromSessionKey, resolveAgentRoute } from "openclaw/plugin-sdk/routing";
@@ -1113,9 +1113,7 @@ async function handleDiscordReactionEvent(params) {
1113
1113
  id: parentPeerId
1114
1114
  } : void 0
1115
1115
  }).sessionKey,
1116
- contextKey,
1117
- forceSenderIsOwnerFalse: true,
1118
- trusted: false
1116
+ contextKey
1119
1117
  });
1120
1118
  };
1121
1119
  const shouldNotifyReaction = (options) => shouldEmitDiscordReactionNotification({
@@ -7235,11 +7233,11 @@ async function deliverDiscordReply(params) {
7235
7233
  let conversationRuntimePromise$1;
7236
7234
  let typingRuntimePromise;
7237
7235
  async function loadConversationRuntime$1() {
7238
- conversationRuntimePromise$1 ??= import("./agent-components.runtime-BIemD2Iz.js");
7236
+ conversationRuntimePromise$1 ??= import("./agent-components.runtime-CEPrf2SY.js");
7239
7237
  return await conversationRuntimePromise$1;
7240
7238
  }
7241
7239
  async function loadTypingRuntime() {
7242
- typingRuntimePromise ??= import("./typing-DtdZgo-g.js").then((n) => n.n);
7240
+ typingRuntimePromise ??= import("./typing-DUUjLsPr.js").then((n) => n.n);
7243
7241
  return await typingRuntimePromise;
7244
7242
  }
7245
7243
  function buildDiscordComponentConversationLabel(params) {
@@ -7534,7 +7532,7 @@ async function dispatchDiscordPluginInteractiveHandler(params) {
7534
7532
  //#region extensions/discord/src/monitor/agent-components.plugin-interactive.ts
7535
7533
  let conversationRuntimePromise;
7536
7534
  async function loadConversationRuntime() {
7537
- conversationRuntimePromise ??= import("./agent-components.runtime-BIemD2Iz.js");
7535
+ conversationRuntimePromise ??= import("./agent-components.runtime-CEPrf2SY.js");
7538
7536
  return await conversationRuntimePromise;
7539
7537
  }
7540
7538
  async function dispatchPluginDiscordInteractiveEvent(params) {
@@ -7660,7 +7658,7 @@ async function dispatchPluginDiscordInteractiveEvent(params) {
7660
7658
  //#region extensions/discord/src/monitor/agent-components.handlers.ts
7661
7659
  let componentsRuntimePromise;
7662
7660
  async function loadComponentsRuntime() {
7663
- componentsRuntimePromise ??= import("./components-q41bHoCx.js").then((n) => n.t);
7661
+ componentsRuntimePromise ??= import("./components-DDPGekgY.js").then((n) => n.t);
7664
7662
  return await componentsRuntimePromise;
7665
7663
  }
7666
7664
  async function handleDiscordComponentEvent(params) {
@@ -8036,9 +8034,7 @@ var AgentComponentButton = class extends Button {
8036
8034
  logDebug(`agent button: enqueuing event for channel ${channelId}: ${eventText}`);
8037
8035
  enqueueSystemEvent$1(eventText, {
8038
8036
  sessionKey: route.sessionKey,
8039
- contextKey: `discord:agent-button:${channelId}:${componentId}:${userId}`,
8040
- forceSenderIsOwnerFalse: true,
8041
- trusted: false
8037
+ contextKey: `discord:agent-button:${channelId}:${componentId}:${userId}`
8042
8038
  });
8043
8039
  await ackComponentInteraction({
8044
8040
  interaction,
@@ -8105,9 +8101,7 @@ var AgentSelectMenu = class extends StringSelectMenu {
8105
8101
  logDebug(`agent select: enqueuing event for channel ${channelId}: ${eventText}`);
8106
8102
  enqueueSystemEvent$1(eventText, {
8107
8103
  sessionKey: route.sessionKey,
8108
- contextKey: `discord:agent-select:${channelId}:${componentId}:${userId}`,
8109
- forceSenderIsOwnerFalse: true,
8110
- trusted: false
8104
+ contextKey: `discord:agent-select:${channelId}:${componentId}:${userId}`
8111
8105
  });
8112
8106
  await ackComponentInteraction({
8113
8107
  interaction,
@@ -9161,28 +9155,15 @@ function formatDiscordStartupStatusMessage(params) {
9161
9155
  const DEFAULT_DISCORD_MEDIA_MAX_MB = 100;
9162
9156
  let discordVoiceRuntimePromise;
9163
9157
  let discordProviderSessionRuntimePromise;
9164
- let fetchDiscordApplicationIdForTesting;
9165
- let createDiscordNativeCommandForTesting;
9166
- let runDiscordGatewayLifecycleForTesting;
9167
- let createDiscordGatewayPluginForTesting;
9168
- let createDiscordGatewaySupervisorForTesting;
9169
- let createClientForTesting;
9170
9158
  let getPluginCommandSpecsForTesting;
9171
- let resolveDiscordAccountForTesting;
9172
- let resolveNativeCommandsEnabledForTesting;
9173
- let resolveNativeSkillsEnabledForTesting;
9174
- let listNativeCommandSpecsForConfigForTesting;
9175
- let listSkillCommandsForAgentsForTesting;
9176
- let isVerboseForTesting;
9177
- let shouldLogVerboseForTesting;
9178
9159
  function logDiscordStartupPhase(params) {
9179
9160
  logDiscordStartupPhase$1({
9180
9161
  ...params,
9181
- isVerbose: isVerboseForTesting ?? isVerbose
9162
+ isVerbose
9182
9163
  });
9183
9164
  }
9184
9165
  async function loadDiscordVoiceRuntime() {
9185
- const promise = discordVoiceRuntimePromise ?? import("./manager.runtime-CGcJ0yjq.js");
9166
+ const promise = discordVoiceRuntimePromise ?? import("./manager.runtime-Dq0mc5K0.js");
9186
9167
  discordVoiceRuntimePromise = promise;
9187
9168
  try {
9188
9169
  return await promise;
@@ -9192,7 +9173,7 @@ async function loadDiscordVoiceRuntime() {
9192
9173
  }
9193
9174
  }
9194
9175
  async function loadDiscordProviderSessionRuntime() {
9195
- const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-DVfzQxFH.js");
9176
+ const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-D0XbJS5X.js");
9196
9177
  discordProviderSessionRuntimePromise = promise;
9197
9178
  try {
9198
9179
  return await promise;
@@ -9209,7 +9190,7 @@ function isDiscordDisallowedIntentsError(err) {
9209
9190
  async function monitorDiscordProvider(opts = {}) {
9210
9191
  const startupStartedAt = Date.now();
9211
9192
  const cfg = opts.config ?? getRuntimeConfig();
9212
- const account = (resolveDiscordAccountForTesting ?? resolveDiscordAccount)({
9193
+ const account = resolveDiscordAccount({
9213
9194
  cfg,
9214
9195
  accountId: opts.accountId
9215
9196
  });
@@ -9268,12 +9249,12 @@ async function monitorDiscordProvider(opts = {}) {
9268
9249
  });
9269
9250
  const groupDmEnabled = dmConfig?.groupEnabled ?? false;
9270
9251
  const groupDmChannels = dmConfig?.groupChannels;
9271
- const nativeEnabled = (resolveNativeCommandsEnabledForTesting ?? resolveNativeCommandsEnabled)({
9252
+ const nativeEnabled = resolveNativeCommandsEnabled({
9272
9253
  providerId: "discord",
9273
9254
  providerSetting: discordCfg.commands?.native,
9274
9255
  globalSetting: cfg.commands?.native
9275
9256
  });
9276
- const nativeSkillsEnabled = (resolveNativeSkillsEnabledForTesting ?? resolveNativeSkillsEnabled)({
9257
+ const nativeSkillsEnabled = resolveNativeSkillsEnabled({
9277
9258
  providerId: "discord",
9278
9259
  providerSetting: discordCfg.commands?.nativeSkills,
9279
9260
  globalSetting: cfg.commands?.nativeSkills
@@ -9293,7 +9274,7 @@ async function monitorDiscordProvider(opts = {}) {
9293
9274
  });
9294
9275
  guildEntries = allowlistResolved.guildEntries;
9295
9276
  allowFrom = allowlistResolved.allowFrom ?? [];
9296
- if ((shouldLogVerboseForTesting ?? shouldLogVerbose)()) logDiscordResolvedConfig({
9277
+ if (shouldLogVerbose()) logDiscordResolvedConfig({
9297
9278
  dmEnabled,
9298
9279
  dmPolicy,
9299
9280
  allowFrom,
@@ -9316,7 +9297,7 @@ async function monitorDiscordProvider(opts = {}) {
9316
9297
  phase: "fetch-application-id:start",
9317
9298
  startAt: startupStartedAt
9318
9299
  });
9319
- const applicationId = (typeof discordCfg.applicationId === "string" && discordCfg.applicationId.trim() ? discordCfg.applicationId.trim() : void 0) ?? parseApplicationIdFromToken(token) ?? await (fetchDiscordApplicationIdForTesting ?? fetchDiscordApplicationId)(token, 4e3, discordRestFetch);
9300
+ const applicationId = (typeof discordCfg.applicationId === "string" && discordCfg.applicationId.trim() ? discordCfg.applicationId.trim() : void 0) ?? parseApplicationIdFromToken(token) ?? await fetchDiscordApplicationId(token, 4e3, discordRestFetch);
9320
9301
  if (!applicationId) throw new Error("Failed to resolve Discord application id");
9321
9302
  logDiscordStartupPhase({
9322
9303
  runtime,
@@ -9330,8 +9311,8 @@ async function monitorDiscordProvider(opts = {}) {
9330
9311
  runtime,
9331
9312
  nativeEnabled,
9332
9313
  nativeSkillsEnabled,
9333
- listSkillCommandsForAgents: listSkillCommandsForAgentsForTesting ?? listSkillCommandsForAgents,
9334
- listNativeCommandSpecsForConfig: listNativeCommandSpecsForConfigForTesting ?? listNativeCommandSpecsForConfig,
9314
+ listSkillCommandsForAgents,
9315
+ listNativeCommandSpecsForConfig,
9335
9316
  getPluginCommandSpecs: getPluginCommandSpecsForTesting
9336
9317
  });
9337
9318
  const voiceManagerRef = { current: null };
@@ -9391,7 +9372,7 @@ async function monitorDiscordProvider(opts = {}) {
9391
9372
  runtime,
9392
9373
  channelRuntime: opts.channelRuntime,
9393
9374
  abortSignal: opts.abortSignal,
9394
- createNativeCommand: createDiscordNativeCommandForTesting ?? createDiscordNativeCommand
9375
+ createNativeCommand: createDiscordNativeCommand
9395
9376
  });
9396
9377
  const { client, gateway, gatewaySupervisor: createdGatewaySupervisor, autoPresenceController: createdAutoPresenceController } = await createDiscordMonitorClient({
9397
9378
  accountId: account.accountId,
@@ -9404,9 +9385,9 @@ async function monitorDiscordProvider(opts = {}) {
9404
9385
  voiceEnabled,
9405
9386
  discordConfig: discordCfg,
9406
9387
  runtime,
9407
- createClient: createClientForTesting ?? ((...args) => new Client(...args)),
9408
- createGatewayPlugin: createDiscordGatewayPluginForTesting ?? createDiscordGatewayPlugin,
9409
- createGatewaySupervisor: createDiscordGatewaySupervisorForTesting ?? createDiscordGatewaySupervisor,
9388
+ createClient: ((...args) => new Client(...args)),
9389
+ createGatewayPlugin: createDiscordGatewayPlugin,
9390
+ createGatewaySupervisor: createDiscordGatewaySupervisor,
9410
9391
  createAutoPresenceController: createDiscordAutoPresenceController,
9411
9392
  isDisallowedIntentsError: isDiscordDisallowedIntentsError
9412
9393
  });
@@ -9415,7 +9396,7 @@ async function monitorDiscordProvider(opts = {}) {
9415
9396
  autoPresenceController = createdAutoPresenceController;
9416
9397
  earlyGatewayEmitter = gatewaySupervisor.emitter;
9417
9398
  onEarlyGatewayDebug = (msg) => {
9418
- if (!(isVerboseForTesting ?? isVerbose)()) return;
9399
+ if (!isVerbose()) return;
9419
9400
  runtime.log?.(`discord startup [${account.accountId}] gateway-debug ${Math.max(0, Date.now() - startupStartedAt)}ms ${String(msg)}`);
9420
9401
  };
9421
9402
  earlyGatewayEmitter?.on("debug", onEarlyGatewayDebug);
@@ -9433,8 +9414,8 @@ async function monitorDiscordProvider(opts = {}) {
9433
9414
  enabled: nativeEnabled,
9434
9415
  accountId: account.accountId,
9435
9416
  startupStartedAt,
9436
- shouldLogVerbose: shouldLogVerboseForTesting ?? shouldLogVerbose,
9437
- isVerbose: isVerboseForTesting ?? isVerbose
9417
+ shouldLogVerbose,
9418
+ isVerbose
9438
9419
  });
9439
9420
  const logger = createSubsystemLogger("discord/monitor");
9440
9421
  const guildHistories = /* @__PURE__ */ new Map();
@@ -9532,7 +9513,7 @@ async function monitorDiscordProvider(opts = {}) {
9532
9513
  lifecycleStarted = true;
9533
9514
  earlyGatewayEmitter?.removeListener("debug", onEarlyGatewayDebug);
9534
9515
  onEarlyGatewayDebug = void 0;
9535
- await (runDiscordGatewayLifecycleForTesting ?? runDiscordGatewayLifecycle)({
9516
+ await runDiscordGatewayLifecycle({
9536
9517
  accountId: account.accountId,
9537
9518
  gateway: lifecycleGateway,
9538
9519
  runtime,
@@ -1,6 +1,6 @@
1
- import { a as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings-BcXgbZ3-.js";
2
- import { n as createThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-CouT_qjE.js";
3
- import { t as createDiscordMessageHandler } from "./message-handler-1NV0WiHC.js";
1
+ import { a as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings-BQz8z6MR.js";
2
+ import { n as createThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-I5f-Oykv.js";
3
+ import { t as createDiscordMessageHandler } from "./message-handler-wQJd4Peh.js";
4
4
  import { resolveThreadBindingIdleTimeoutMs, resolveThreadBindingMaxAgeMs, resolveThreadBindingsEnabled } from "openclaw/plugin-sdk/conversation-runtime";
5
5
  import { getAcpSessionManager, isAcpRuntimeError } from "openclaw/plugin-sdk/acp-runtime";
6
6
  export { createDiscordMessageHandler, createNoopThreadBindingManager, createThreadBindingManager, getAcpSessionManager, isAcpRuntimeError, reconcileAcpThreadBindingsOnStartup, resolveThreadBindingIdleTimeoutMs, resolveThreadBindingMaxAgeMs, resolveThreadBindingsEnabled };
@@ -0,0 +1,2 @@
1
+ import { t as monitorDiscordProvider } from "./provider-CzKMDsSE.js";
2
+ export { monitorDiscordProvider };
@@ -1,6 +1,6 @@
1
- import { p as normalizeDiscordToken } from "./accounts-ltxKLzxN.js";
2
- import { n as fetchDiscord } from "./api-DgQLz1wq.js";
3
- import { a as normalizeDiscordSlug } from "./allow-list-CBI-M84K.js";
1
+ import { p as normalizeDiscordToken } from "./accounts-C2TOAmpo.js";
2
+ import { n as fetchDiscord } from "./api-Kq7vtaSO.js";
3
+ import { a as normalizeDiscordSlug } from "./allow-list-BnkWtVpA.js";
4
4
  //#region extensions/discord/src/guilds.ts
5
5
  async function listGuilds(token, fetcher) {
6
6
  return (await fetchDiscord("/users/@me/guilds", token, fetcher)).filter((guild) => typeof guild.id === "string" && typeof guild.name === "string").map((guild) => ({
@@ -1,7 +1,7 @@
1
- import { Wt as __exportAll } from "./send.receipt-Dhym-qOF.js";
2
- import { n as fetchDiscord, t as DiscordApiError } from "./api-DgQLz1wq.js";
3
- import { a as normalizeDiscordSlug } from "./allow-list-CBI-M84K.js";
4
- import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-C8L5MYFl.js";
1
+ import { Wt as __exportAll } from "./send.receipt-spSPAC77.js";
2
+ import { n as fetchDiscord, t as DiscordApiError } from "./api-Kq7vtaSO.js";
3
+ import { a as normalizeDiscordSlug } from "./allow-list-BnkWtVpA.js";
4
+ import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-Bec0FONA.js";
5
5
  //#region extensions/discord/src/resolve-channels.ts
6
6
  var resolve_channels_exports = /* @__PURE__ */ __exportAll({ resolveDiscordChannelAllowlist: () => resolveDiscordChannelAllowlist });
7
7
  function parseDiscordChannelInput(raw) {
@@ -1,6 +1,6 @@
1
- import { Wt as __exportAll } from "./send.receipt-Dhym-qOF.js";
2
- import { n as fetchDiscord } from "./api-DgQLz1wq.js";
3
- import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-C8L5MYFl.js";
1
+ import { Wt as __exportAll } from "./send.receipt-spSPAC77.js";
2
+ import { n as fetchDiscord } from "./api-Kq7vtaSO.js";
3
+ import { i as listGuilds, n as filterDiscordGuilds, r as resolveDiscordAllowlistToken, t as buildDiscordUnresolvedResults } from "./resolve-allowlist-common-Bec0FONA.js";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  //#region extensions/discord/src/resolve-users.ts
6
6
  var resolve_users_exports = /* @__PURE__ */ __exportAll({ resolveDiscordUserAllowlist: () => resolveDiscordUserAllowlist });
@@ -1,12 +1,12 @@
1
- import { Ut as resolveDiscordChannelId } from "./send.receipt-Dhym-qOF.js";
2
- import { o as resolveDefaultDiscordAccountId, t as createDiscordActionGate } from "./accounts-ltxKLzxN.js";
3
- import { d as readDiscordComponentSpec } from "./components-q41bHoCx.js";
4
- import { c as jsonResult, d as readNumberParam, f as readReactionParams, g as withNormalizedTimestamp, h as resolvePollMaxSelections, l as parseAvailableTags, m as readStringParam, p as readStringArrayParam, r as sendDiscordComponentMessage, s as assertMediaNotDataUrl, u as readBooleanParam } from "./send.components-BuZBJysI.js";
5
- import { n as getGateway, o as getPresence } from "./gateway-registry-BKSpa4GB.js";
6
- import { A as isThreadChannelType, E as fetchChannelPermissionsDiscord, P as createDiscordRuntimeAccountContext, d as resolveDiscordTargetChannelId, k as hasAnyGuildPermissionDiscord } from "./send.shared-C6JLgsbp.js";
7
- import { A as removeRoleDiscord, B as removeChannelPermissionDiscord, C as fetchChannelInfoDiscord, D as kickMemberDiscord, E as fetchVoiceStatusDiscord, F as uploadStickerDiscord, I as createChannelDiscord, L as deleteChannelDiscord, M as timeoutMemberDiscord, N as listGuildEmojisDiscord, O as listGuildChannelsDiscord, P as uploadEmojiDiscord, R as editChannelDiscord, S as createScheduledEventDiscord, T as fetchRoleInfoDiscord, V as setChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as resolveEventCoverImage, k as listScheduledEventsDiscord, l as DiscordThreadInitialMessageError, m as listPinsDiscord, n as fetchReactionsDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchMemberInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as moveChannelDiscord } from "./send-BsBy21Te.js";
8
- import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-C0OzZAv_.js";
9
- import "./targets-JvlTzyfK.js";
1
+ import { Ut as resolveDiscordChannelId } from "./send.receipt-spSPAC77.js";
2
+ import { o as resolveDefaultDiscordAccountId, t as createDiscordActionGate } from "./accounts-C2TOAmpo.js";
3
+ import { d as readDiscordComponentSpec } from "./components-DDPGekgY.js";
4
+ import { c as jsonResult, d as readNumberParam, f as readReactionParams, g as withNormalizedTimestamp, h as resolvePollMaxSelections, l as parseAvailableTags, m as readStringParam, p as readStringArrayParam, r as sendDiscordComponentMessage, s as assertMediaNotDataUrl, u as readBooleanParam } from "./send.components-sY6aQV0K.js";
5
+ import { n as getGateway, o as getPresence } from "./gateway-registry-DPxmW0Db.js";
6
+ import { A as isThreadChannelType, E as fetchChannelPermissionsDiscord, P as createDiscordRuntimeAccountContext, d as resolveDiscordTargetChannelId, k as hasAnyGuildPermissionDiscord } from "./send.shared-D4clao4K.js";
7
+ import { A as removeRoleDiscord, B as removeChannelPermissionDiscord, C as fetchChannelInfoDiscord, D as kickMemberDiscord, E as fetchVoiceStatusDiscord, F as uploadStickerDiscord, I as createChannelDiscord, L as deleteChannelDiscord, M as timeoutMemberDiscord, N as listGuildEmojisDiscord, O as listGuildChannelsDiscord, P as uploadEmojiDiscord, R as editChannelDiscord, S as createScheduledEventDiscord, T as fetchRoleInfoDiscord, V as setChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as resolveEventCoverImage, k as listScheduledEventsDiscord, l as DiscordThreadInitialMessageError, m as listPinsDiscord, n as fetchReactionsDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchMemberInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as moveChannelDiscord } from "./send-CEAtV0qd.js";
8
+ import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-1vG9pOh2.js";
9
+ import "./targets-DMdVjHOU.js";
10
10
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
11
11
  import { PermissionFlagsBits } from "discord-api-types/v10";
12
12
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
@@ -1,3 +1,3 @@
1
- import { a as readDiscordChannelCreateParams, c as readDiscordParentIdParam, i as requiredGuildPermissionForModerationAction, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-BJUWt4mA.js";
2
- import { t as discordMessageActions } from "./channel-actions-CpmPx9PW.js";
1
+ import { a as readDiscordChannelCreateParams, c as readDiscordParentIdParam, i as requiredGuildPermissionForModerationAction, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-DP_0_5a0.js";
2
+ import { t as discordMessageActions } from "./channel-actions-CSepY2Kq.js";
3
3
  export { discordMessageActions, handleDiscordAction, isDiscordModerationAction, readDiscordChannelCreateParams, readDiscordChannelEditParams, readDiscordChannelMoveParams, readDiscordModerationCommand, readDiscordParentIdParam, requiredGuildPermissionForModerationAction };
@@ -1,30 +1,30 @@
1
- import { x as resolveDiscordOutboundSessionRoute } from "./components-q41bHoCx.js";
2
- import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-BuZBJysI.js";
3
- import { a as clearPresences, c as setPresence, i as unregisterGateway, n as getGateway, o as getPresence, r as registerGateway, s as presenceCacheSize, t as clearGateways } from "./gateway-registry-BKSpa4GB.js";
4
- import { D as fetchMemberGuildPermissionsDiscord, E as fetchChannelPermissionsDiscord, O as hasAllGuildPermissionsDiscord, k as hasAnyGuildPermissionDiscord, w as DiscordSendError } from "./send.shared-C6JLgsbp.js";
5
- import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-CJiEWQwK.js";
6
- import { _ as resolveGroupDmAllow, a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, g as resolveDiscordShouldRequireMention, n as isDiscordGroupAllowedByPolicy, r as normalizeDiscordAllowList, s as resolveDiscordChannelConfig, t as allowListMatches, u as resolveDiscordCommandAuthorized, v as shouldEmitDiscordReactionNotification } from "./allow-list-CBI-M84K.js";
7
- import { A as removeRoleDiscord, B as removeChannelPermissionDiscord, C as fetchChannelInfoDiscord, D as kickMemberDiscord, E as fetchVoiceStatusDiscord, F as uploadStickerDiscord, I as createChannelDiscord, L as deleteChannelDiscord, M as timeoutMemberDiscord, N as listGuildEmojisDiscord, O as listGuildChannelsDiscord, P as uploadEmojiDiscord, R as editChannelDiscord, S as createScheduledEventDiscord, T as fetchRoleInfoDiscord, V as setChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, c as sendWebhookMessageDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as resolveEventCoverImage, k as listScheduledEventsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchMemberInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as moveChannelDiscord } from "./send-BsBy21Te.js";
8
- import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-C0OzZAv_.js";
9
- import { a as readDiscordChannelCreateParams, c as readDiscordParentIdParam, i as requiredGuildPermissionForModerationAction, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-BJUWt4mA.js";
10
- import { r as setDiscordRuntime } from "./runtime-Tqtvj5GX.js";
11
- import { t as discordMessageActions } from "./channel-actions-CpmPx9PW.js";
12
- import { C as resolveThreadBindingMaxAgeMs, S as resolveThreadBindingMaxAgeExpiresAt, b as resolveThreadBindingIdleTimeoutMs, l as isRecentlyUnboundThreadWebhookMessage, x as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-CSphZOiL.js";
13
- import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-CgOqEOPe.js";
14
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-Czrd7fOv.js";
15
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-D7hQMaaq.js";
16
- import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-BzelVdsY.js";
17
- import { a as reconcileAcpThreadBindingsOnStartup, c as resolveDiscordThreadBindingMaxAgeMs, i as listThreadBindingsForAccount, l as resolveThreadBindingsEnabled, n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey, s as resolveDiscordThreadBindingIdleTimeoutMs } from "./thread-bindings-BcXgbZ3-.js";
18
- import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-CouT_qjE.js";
19
- import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-BLDNbk41.js";
20
- import { a as mergeAbortSignals, i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, r as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-CEwuGaWT.js";
1
+ import { x as resolveDiscordOutboundSessionRoute } from "./components-DDPGekgY.js";
2
+ import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-sY6aQV0K.js";
3
+ import { a as clearPresences, c as setPresence, i as unregisterGateway, n as getGateway, o as getPresence, r as registerGateway, s as presenceCacheSize, t as clearGateways } from "./gateway-registry-DPxmW0Db.js";
4
+ import { D as fetchMemberGuildPermissionsDiscord, E as fetchChannelPermissionsDiscord, O as hasAllGuildPermissionsDiscord, k as hasAnyGuildPermissionDiscord, w as DiscordSendError } from "./send.shared-D4clao4K.js";
5
+ import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-5HHCCe5Q.js";
6
+ import { _ as resolveGroupDmAllow, a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, g as resolveDiscordShouldRequireMention, n as isDiscordGroupAllowedByPolicy, r as normalizeDiscordAllowList, s as resolveDiscordChannelConfig, t as allowListMatches, u as resolveDiscordCommandAuthorized, v as shouldEmitDiscordReactionNotification } from "./allow-list-BnkWtVpA.js";
7
+ import { A as removeRoleDiscord, B as removeChannelPermissionDiscord, C as fetchChannelInfoDiscord, D as kickMemberDiscord, E as fetchVoiceStatusDiscord, F as uploadStickerDiscord, I as createChannelDiscord, L as deleteChannelDiscord, M as timeoutMemberDiscord, N as listGuildEmojisDiscord, O as listGuildChannelsDiscord, P as uploadEmojiDiscord, R as editChannelDiscord, S as createScheduledEventDiscord, T as fetchRoleInfoDiscord, V as setChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, c as sendWebhookMessageDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as resolveEventCoverImage, k as listScheduledEventsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchMemberInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as moveChannelDiscord } from "./send-CEAtV0qd.js";
8
+ import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-1vG9pOh2.js";
9
+ import { a as readDiscordChannelCreateParams, c as readDiscordParentIdParam, i as requiredGuildPermissionForModerationAction, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-DP_0_5a0.js";
10
+ import { r as setDiscordRuntime } from "./runtime-DgnVQ7zW.js";
11
+ import { t as discordMessageActions } from "./channel-actions-CSepY2Kq.js";
12
+ import { C as resolveThreadBindingMaxAgeMs, S as resolveThreadBindingMaxAgeExpiresAt, b as resolveThreadBindingIdleTimeoutMs, l as isRecentlyUnboundThreadWebhookMessage, x as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-BsOnj5NX.js";
13
+ import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-D5gY2ZTE.js";
14
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-DcWaMURg.js";
15
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-TQPLKDeV.js";
16
+ import { _ as formatThreadBindingDurationLabel, b as resolveThreadBindingThreadName, g as resolveThreadBindingPersonaFromRecord, h as resolveThreadBindingPersona, y as resolveThreadBindingIntroText } from "./thread-bindings.discord-api-Ddalj9wo.js";
17
+ import { a as reconcileAcpThreadBindingsOnStartup, c as resolveDiscordThreadBindingMaxAgeMs, i as listThreadBindingsForAccount, l as resolveThreadBindingsEnabled, n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey, s as resolveDiscordThreadBindingIdleTimeoutMs } from "./thread-bindings-BQz8z6MR.js";
18
+ import { i as testing, n as createThreadBindingManager, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-I5f-Oykv.js";
19
+ import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-CRWV5COl.js";
20
+ import { a as mergeAbortSignals, i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, r as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-l_PsHQvX.js";
21
21
  import "./runtime-api.actions.js";
22
- import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-DEF10R9j.js";
22
+ import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-DJIvRRzY.js";
23
23
  import "./runtime-api.lookup.js";
24
- import { S as sanitizeDiscordThreadName, _ as registerDiscordListener, b as resolveDiscordReplyTarget, c as resolveDiscordGatewayIntents, d as createDiscordNativeCommand, l as waitForDiscordGatewayPluginRegistration, s as createDiscordGatewayPlugin, t as monitorDiscordProvider } from "./provider-BZtjA1y_.js";
25
- import { i as buildDiscordMediaPayload } from "./message-utils-BKrlzFtM.js";
26
- import { t as createDiscordMessageHandler } from "./message-handler-1NV0WiHC.js";
27
- import "./runtime-api.monitor-BlxEnLN_.js";
24
+ import { S as sanitizeDiscordThreadName, _ as registerDiscordListener, b as resolveDiscordReplyTarget, c as resolveDiscordGatewayIntents, d as createDiscordNativeCommand, l as waitForDiscordGatewayPluginRegistration, s as createDiscordGatewayPlugin, t as monitorDiscordProvider } from "./provider-CzKMDsSE.js";
25
+ import { i as buildDiscordMediaPayload } from "./message-utils-Bw-wDr8G.js";
26
+ import { t as createDiscordMessageHandler } from "./message-handler-wQJd4Peh.js";
27
+ import "./runtime-api.monitor-D1psRR2u.js";
28
28
  import "./runtime-api.send.js";
29
29
  import "./runtime-api.threads.js";
30
30
  export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, DiscordSendError, testing as __testing, testing, addRoleDiscord, allowListMatches, auditDiscordChannelPermissions, autoBindSpawnedDiscordSubagent, banMemberDiscord, buildDiscordMediaPayload, clearGateways, clearPresences, collectDiscordAuditChannelIds, createChannelDiscord, createDiscordGatewayPlugin, createDiscordMessageHandler, createDiscordNativeCommand, createNoopThreadBindingManager, createScheduledEventDiscord, createThreadBindingManager, createThreadDiscord, deleteChannelDiscord, deleteMessageDiscord, discordMessageActions, editChannelDiscord, editDiscordComponentMessage, editMessageDiscord, fetchChannelInfoDiscord, fetchChannelPermissionsDiscord, fetchDiscordApplicationId, fetchDiscordApplicationSummary, fetchMemberGuildPermissionsDiscord, fetchMemberInfoDiscord, fetchMessageDiscord, fetchReactionsDiscord, fetchRoleInfoDiscord, fetchVoiceStatusDiscord, formatThreadBindingDurationLabel, getGateway, getPresence, getThreadBindingManager, handleDiscordAction, hasAllGuildPermissionsDiscord, hasAnyGuildPermissionDiscord, isDiscordGroupAllowedByPolicy, isDiscordModerationAction, isRecentlyUnboundThreadWebhookMessage, kickMemberDiscord, listDiscordDirectoryGroupsLive, listDiscordDirectoryPeersLive, listGuildChannelsDiscord, listGuildEmojisDiscord, listPinsDiscord, listScheduledEventsDiscord, listThreadBindingsBySessionKey, listThreadBindingsForAccount, listThreadsDiscord, mergeAbortSignals, monitorDiscordProvider, moveChannelDiscord, normalizeDiscordAllowList, normalizeDiscordSlug, parseApplicationIdFromToken, pinMessageDiscord, presenceCacheSize, probeDiscord, reactMessageDiscord, readDiscordChannelCreateParams, readDiscordChannelEditParams, readDiscordChannelMoveParams, readDiscordModerationCommand, readDiscordParentIdParam, readMessagesDiscord, reconcileAcpThreadBindingsOnStartup, registerBuiltDiscordComponentMessage, registerDiscordListener, registerGateway, removeChannelPermissionDiscord, removeOwnReactionsDiscord, removeReactionDiscord, removeRoleDiscord, requiredGuildPermissionForModerationAction, resolveDiscordChannelAllowlist, resolveDiscordChannelConfig, resolveDiscordChannelConfigWithFallback, resolveDiscordCommandAuthorized, resolveDiscordGatewayIntents, resolveDiscordGuildEntry, resolveDiscordOutboundSessionRoute, resolveDiscordPrivilegedIntentsFromFlags, resolveDiscordReplyTarget, resolveDiscordShouldRequireMention, resolveDiscordThreadBindingIdleTimeoutMs, resolveDiscordThreadBindingMaxAgeMs, resolveDiscordUserAllowlist, resolveEventCoverImage, resolveGroupDmAllow, resolveThreadBindingIdleTimeoutMs, resolveThreadBindingInactivityExpiresAt, resolveThreadBindingIntroText, resolveThreadBindingMaxAgeExpiresAt, resolveThreadBindingMaxAgeMs, resolveThreadBindingPersona, resolveThreadBindingPersonaFromRecord, resolveThreadBindingThreadName, resolveThreadBindingsEnabled, sanitizeDiscordThreadName, searchMessagesDiscord, sendDiscordComponentMessage, sendMessageDiscord, sendPollDiscord, sendStickerDiscord, sendTypingDiscord, sendVoiceMessageDiscord, sendWebhookMessageDiscord, setChannelPermissionDiscord, setDiscordRuntime, setPresence, setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey, shouldEmitDiscordReactionNotification, timeoutMemberDiscord, unbindThreadBindingsBySessionKey, unpinMessageDiscord, unregisterGateway, uploadEmojiDiscord, uploadStickerDiscord, waitForDiscordGatewayPluginRegistration };