@openclaw/discord 2026.5.26-beta.1 → 2026.5.26

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.
package/dist/api.js CHANGED
@@ -6,7 +6,7 @@ import { n as fetchDiscord, r as requestDiscord, t as DiscordApiError } from "./
6
6
  import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-CVgOsap6.js";
7
7
  import "./targets-CNDNKpqQ.js";
8
8
  import { a as getDiscordExecApprovalApprovers, c as shouldSuppressLocalDiscordExecApprovalPrompt, o as isDiscordExecApprovalApprover, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-Be5JQPP9.js";
9
- import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-BbDUsfl7.js";
9
+ import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-XYTSE8wN.js";
10
10
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-wJgsKPNF.js";
11
11
  import { t as discordSetupPlugin } from "./channel.setup-JaozRxYz.js";
12
12
  import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-DHA_1pBI.js";
@@ -120,7 +120,7 @@ const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./re
120
120
  const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-UJ5FvZfO.js").then((n) => n.a));
121
121
  const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-CVgOsap6.js").then((n) => n.r));
122
122
  async function loadDiscordProviderRuntime() {
123
- discordProviderRuntimePromise ??= import("./provider.runtime-DN-gyQYd.js");
123
+ discordProviderRuntimePromise ??= import("./provider.runtime-rUg1sHKP.js");
124
124
  return await discordProviderRuntimePromise;
125
125
  }
126
126
  async function loadDiscordProbeRuntime() {
@@ -1,2 +1,2 @@
1
- import { t as discordPlugin } from "./channel-BbDUsfl7.js";
1
+ import { t as discordPlugin } from "./channel-XYTSE8wN.js";
2
2
  export { discordPlugin };
@@ -3,7 +3,7 @@ import { c as resolveDiscordAccountAllowFrom } from "./accounts-dXTfmnSZ.js";
3
3
  import { a as normalizeDiscordSlug, b as formatDiscordUserTag, m as resolveDiscordOwnerAccess } from "./allow-list-BnkWtVpA.js";
4
4
  import { i as formatMention } from "./send.outbound-BHQPWbwU.js";
5
5
  import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.js";
6
- import { o as authorizeDiscordVoiceIngress, u as resolveDiscordVoiceEnabled } from "./provider-B1wc40FG.js";
6
+ import { o as authorizeDiscordVoiceIngress, u as resolveDiscordVoiceEnabled } from "./provider-D3RwHRhI.js";
7
7
  import { t as buildDiscordGroupSystemPrompt } from "./inbound-context-B5EsqsSr.js";
8
8
  import { createRequire } from "node:module";
9
9
  import { asBoolean, normalizeOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -1986,6 +1986,13 @@ const DISCORD_VOICE_FATAL_AUTOJOIN_ERROR_PATTERNS = [
1986
1986
  "permission denied",
1987
1987
  "forbidden"
1988
1988
  ];
1989
+ function logFollowUserReconcileVerbose(reason, message) {
1990
+ if (reason === "interval") {
1991
+ logger.trace(`discord voice: ${message}`);
1992
+ return;
1993
+ }
1994
+ logVoiceVerbose(message);
1995
+ }
1989
1996
  function formatVoiceLogPreview(text) {
1990
1997
  const oneLine = text.replace(/\s+/g, " ").trim();
1991
1998
  if (oneLine.length <= VOICE_LOG_PREVIEW_CHARS) return oneLine;
@@ -2761,7 +2768,7 @@ var DiscordVoiceManager$1 = class {
2761
2768
  logVoiceVerbose(`follow user reconcile skipped reason=${reason}: no Discord guild ids are configured`);
2762
2769
  return;
2763
2770
  }
2764
- logVoiceVerbose(`follow user reconcile reason=${reason}: ${this.followUserIds.size} users across ${guildIds.length} guilds`);
2771
+ logFollowUserReconcileVerbose(reason, `follow user reconcile reason=${reason}: ${this.followUserIds.size} users across ${guildIds.length} guilds`);
2765
2772
  const plans = this.selectFollowUserReconcilePlans(guildIds, reason);
2766
2773
  for (const plan of plans) {
2767
2774
  for (const userId of plan.userIds) {
@@ -2770,7 +2777,7 @@ var DiscordVoiceManager$1 = class {
2770
2777
  logger.warn(`discord voice: follow user reconcile skipped transient voice state error guild=${plan.guildId} user=${userId} reason=${reason}: ${formatErrorMessage(err)}`);
2771
2778
  return "transient-error";
2772
2779
  }
2773
- logVoiceVerbose(`follow user reconcile reason=${reason}: no voice state guild ${plan.guildId} user ${userId}: ${formatErrorMessage(err)}`);
2780
+ logFollowUserReconcileVerbose(reason, `follow user reconcile reason=${reason}: no voice state guild ${plan.guildId} user ${userId}: ${formatErrorMessage(err)}`);
2774
2781
  });
2775
2782
  if (this.destroyed) return;
2776
2783
  if (voiceState === "transient-error") continue;
@@ -2904,7 +2911,7 @@ var DiscordVoiceManager$1 = class {
2904
2911
  logger.warn(`discord voice: follow reconcile skipped transient bot voice state error guild=${guildId} reason=${reason}: ${formatErrorMessage(err)}`);
2905
2912
  return "transient-error";
2906
2913
  }
2907
- logVoiceVerbose(`follow user reconcile reason=${reason}: no bot voice state guild ${guildId}: ${formatErrorMessage(err)}`);
2914
+ logFollowUserReconcileVerbose(reason, `follow user reconcile reason=${reason}: no bot voice state guild ${guildId}: ${formatErrorMessage(err)}`);
2908
2915
  });
2909
2916
  if (this.destroyed || botVoiceState === "transient-error") return;
2910
2917
  const botChannelId = botVoiceState?.channel_id?.trim();
@@ -121,7 +121,7 @@ function applyImplicitReplyBatchGate(ctx, replyToMode, isBatched) {
121
121
  //#region extensions/discord/src/monitor/message-run-queue.ts
122
122
  let messageProcessRuntimePromise;
123
123
  async function loadMessageProcessRuntime() {
124
- messageProcessRuntimePromise ??= import("./message-handler.process-CDxJ-gh_.js");
124
+ messageProcessRuntimePromise ??= import("./message-handler.process-DO17vBlT.js");
125
125
  return await messageProcessRuntimePromise;
126
126
  }
127
127
  async function processDiscordQueuedMessage(params) {
@@ -173,7 +173,7 @@ function createDiscordMessageRunQueue(params) {
173
173
  //#region extensions/discord/src/monitor/message-handler.ts
174
174
  let messagePreflightRuntimePromise;
175
175
  async function loadMessagePreflightRuntime() {
176
- messagePreflightRuntimePromise ??= import("./message-handler.preflight-Dpfm3M4j.js");
176
+ messagePreflightRuntimePromise ??= import("./message-handler.preflight-Cu8cFBgW.js");
177
177
  return await messagePreflightRuntimePromise;
178
178
  }
179
179
  function isNonEmptyString(value) {
@@ -5,7 +5,7 @@ import { t as resolveDiscordConversationIdentity } from "./conversation-identity
5
5
  import { l as isRecentlyUnboundThreadWebhookMessage } from "./thread-bindings.state-BsOnj5NX.js";
6
6
  import { d as resolveDiscordChannelNameSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-xCfun-pQ.js";
7
7
  import "./thread-bindings-Dw4wcHWn.js";
8
- import { C as resolveDiscordDmCommandAccess, f as buildDiscordRoutePeer, g as handleDiscordDmCommandDecision, h as shouldIgnoreStaleDiscordRouteBinding, m as resolveDiscordEffectiveRoute, p as resolveDiscordConversationRoute, w as resolveDiscordTextCommandAccess } from "./provider-B1wc40FG.js";
8
+ import { C as resolveDiscordDmCommandAccess, f as buildDiscordRoutePeer, g as handleDiscordDmCommandDecision, h as shouldIgnoreStaleDiscordRouteBinding, m as resolveDiscordEffectiveRoute, p as resolveDiscordConversationRoute, w as resolveDiscordTextCommandAccess } from "./provider-D3RwHRhI.js";
9
9
  import { d as resolveDiscordMessageChannelId, l as resolveDiscordMessageStickers, o as resolveMediaList, r as resolveDiscordMessageText, u as resolveDiscordChannelInfo } from "./message-utils-DxHZcpPf.js";
10
10
  import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-BFp5w0F8.js";
11
11
  import { normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -436,7 +436,7 @@ async function loadSystemEventsRuntime() {
436
436
  return await systemEventsRuntimePromise;
437
437
  }
438
438
  async function loadDiscordThreadingRuntime() {
439
- discordThreadingRuntimePromise ??= import("./provider-B1wc40FG.js").then((n) => n.v);
439
+ discordThreadingRuntimePromise ??= import("./provider-D3RwHRhI.js").then((n) => n.v);
440
440
  return await discordThreadingRuntimePromise;
441
441
  }
442
442
  function isPreflightAborted(abortSignal) {
@@ -9,7 +9,7 @@ import { t as beginDiscordInboundEventDeliveryCorrelation } from "./inbound-even
9
9
  import { t as DISCORD_TEXT_CHUNK_LIMIT } from "./outbound-adapter-C8lzfSt6.js";
10
10
  import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-CQ7PsV9J.js";
11
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-B1wc40FG.js";
12
+ import { a as resolveReplyContext, i as buildGuildLabel, n as deliverDiscordReply, r as buildDirectLabel, x as resolveDiscordThreadStarter, y as resolveDiscordAutoThreadReplyPlan } from "./provider-D3RwHRhI.js";
13
13
  import { a as resolveForwardedMediaList, o as resolveMediaList, r as resolveDiscordMessageText, s as resolveReferencedReplyMediaList } from "./message-utils-DxHZcpPf.js";
14
14
  import { t as sendTyping } from "./typing-BhIpRSfR.js";
15
15
  import { n as buildDiscordInboundAccessContext, r as createDiscordSupplementalContextAccessChecker } from "./inbound-context-B5EsqsSr.js";
@@ -58,7 +58,7 @@ import { createChannelIngressResolver, defineStableChannelIngressIdentity, readC
58
58
  import { applyModelOverrideToSessionEntry, resolveChannelModelOverride } from "openclaw/plugin-sdk/model-session-runtime";
59
59
  import { completeWithPreparedSimpleCompletionModel, extractAssistantText, prepareSimpleCompletionModelForAgent } from "openclaw/plugin-sdk/simple-completion-runtime";
60
60
  import { createReplyReferencePlanner } from "openclaw/plugin-sdk/reply-reference";
61
- import { loadSessionStore, readSessionUpdatedAt as readSessionUpdatedAt$1, resolveStorePath, resolveStorePath as resolveStorePath$1, updateSessionStore } from "openclaw/plugin-sdk/session-store-runtime";
61
+ import { getSessionEntry, loadSessionStore, readSessionUpdatedAt as readSessionUpdatedAt$1, resolveStorePath, resolveStorePath as resolveStorePath$1, updateSessionStore } from "openclaw/plugin-sdk/session-store-runtime";
62
62
  import { formatInboundEnvelope, resolveEnvelopeFormatOptions } from "openclaw/plugin-sdk/channel-inbound";
63
63
  import { buildCommandTextFromArgs, findCommandByNativeName, formatCommandArgMenuTitle, listChatCommands, listNativeCommandSpecsForConfig, listSkillCommandsForAgents, resolveCommandAuthorizedFromAuthorizers, resolveNativeCommandSessionTargets, resolveStoredModelOverride, serializeCommandArgs } from "openclaw/plugin-sdk/command-auth-native";
64
64
  import { buildCommandTextFromArgs as buildCommandTextFromArgs$1, findCommandByNativeName as findCommandByNativeName$1, parseCommandArgs, resolveCommandArgChoices, resolveCommandArgMenu, serializeCommandArgs as serializeCommandArgs$1 } from "openclaw/plugin-sdk/native-command-registry";
@@ -1560,7 +1560,8 @@ const nativeCommandRuntime = {
1560
1560
  executePluginCommand: pluginRuntime.executePluginCommand,
1561
1561
  dispatchReplyWithDispatcher,
1562
1562
  resolveDirectStatusReplyForSession,
1563
- resolveDiscordNativeInteractionRouteState
1563
+ resolveDiscordNativeInteractionRouteState,
1564
+ getSessionEntry
1564
1565
  };
1565
1566
  //#endregion
1566
1567
  //#region extensions/discord/src/monitor/native-command-agent-reply.ts
@@ -4464,7 +4465,13 @@ async function dispatchDiscordCommandInteraction(params) {
4464
4465
  if (suppressReplies) return { accepted: true };
4465
4466
  const messageThreadId = !isDirectMessage && isThreadChannel ? channelId : void 0;
4466
4467
  const pluginThreadParentId = !isDirectMessage && isThreadChannel ? threadParentId : void 0;
4467
- const { effectiveRoute } = await getNativeRouteState();
4468
+ const routeState = await getNativeRouteState();
4469
+ const { effectiveRoute } = routeState;
4470
+ const pluginCommandAgentId = (isThreadChannel ? threadBindings.getByThreadId(rawChannelId)?.agentId : void 0) || routeState.configuredBinding?.statefulTarget.agentId || effectiveRoute.agentId;
4471
+ const targetSessionEntry = nativeCommandRuntime.getSessionEntry({
4472
+ agentId: pluginCommandAgentId,
4473
+ sessionKey: effectiveRoute.sessionKey
4474
+ });
4468
4475
  const pluginReply = await nativeCommandRuntime.executePluginCommand({
4469
4476
  command: pluginMatch.command,
4470
4477
  args: pluginMatch.args,
@@ -4473,7 +4480,9 @@ async function dispatchDiscordCommandInteraction(params) {
4473
4480
  channelId,
4474
4481
  isAuthorizedSender: commandAuthorized,
4475
4482
  senderIsOwner: senderIsCommandOwner,
4483
+ agentId: pluginCommandAgentId,
4476
4484
  sessionKey: effectiveRoute.sessionKey,
4485
+ authProfileId: targetSessionEntry?.authProfileOverride,
4477
4486
  commandBody: prompt,
4478
4487
  config: cfg,
4479
4488
  from: isDirectMessage ? `discord:${user.id}` : isGroupDm ? `discord:group:${channelId}` : `discord:channel:${channelId}`,
@@ -8828,9 +8837,9 @@ var ExecApprovalButton = class extends Button {
8828
8837
  await interaction.acknowledge();
8829
8838
  } catch {}
8830
8839
  const result = await this.ctx.resolveApproval(parsed.approvalId, parsed.action);
8831
- if (!result.ok && result.reason !== "not-found") try {
8840
+ if (!result.ok) try {
8832
8841
  await interaction.followUp({
8833
- content: `Failed to submit approval decision for **${decisionLabel}**. The request may have expired or already been resolved.`,
8842
+ content: result.reason === "not-found" ? `That approval request is no longer pending. It may have expired or already been resolved.` : `Failed to submit approval decision for **${decisionLabel}**. The request may have expired or already been resolved.`,
8834
8843
  ephemeral: true
8835
8844
  });
8836
8845
  } catch {}
@@ -9686,7 +9695,7 @@ function logDiscordStartupPhase(params) {
9686
9695
  });
9687
9696
  }
9688
9697
  async function loadDiscordVoiceRuntime() {
9689
- const promise = discordVoiceRuntimePromise ?? import("./manager.runtime-BfJrOq-W.js");
9698
+ const promise = discordVoiceRuntimePromise ?? import("./manager.runtime-Bs0ngLSw.js");
9690
9699
  discordVoiceRuntimePromise = promise;
9691
9700
  try {
9692
9701
  return await promise;
@@ -9696,7 +9705,7 @@ async function loadDiscordVoiceRuntime() {
9696
9705
  }
9697
9706
  }
9698
9707
  async function loadDiscordProviderSessionRuntime() {
9699
- const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-Dk2Y1FGD.js");
9708
+ const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-DbNYskMy.js");
9700
9709
  discordProviderSessionRuntimePromise = promise;
9701
9710
  try {
9702
9711
  return await promise;
@@ -1,6 +1,6 @@
1
1
  import { a as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings-Dw4wcHWn.js";
2
2
  import { n as createThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-UJ5FvZfO.js";
3
- import { t as createDiscordMessageHandler } from "./message-handler-YNyW4rsC.js";
3
+ import { t as createDiscordMessageHandler } from "./message-handler-B9n5CtIS.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-D3RwHRhI.js";
2
+ export { monitorDiscordProvider };
@@ -21,10 +21,10 @@ import { a as mergeAbortSignals, i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, n as
21
21
  import "./runtime-api.actions.js";
22
22
  import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-DE8lNdMv.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-B1wc40FG.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-D3RwHRhI.js";
25
25
  import { i as buildDiscordMediaPayload } from "./message-utils-DxHZcpPf.js";
26
- import { t as createDiscordMessageHandler } from "./message-handler-YNyW4rsC.js";
27
- import "./runtime-api.monitor-BJCRxbKe.js";
26
+ import { t as createDiscordMessageHandler } from "./message-handler-B9n5CtIS.js";
27
+ import "./runtime-api.monitor-CUn-x5uG.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 };
@@ -1,5 +1,5 @@
1
1
  import "./allow-list-BnkWtVpA.js";
2
- import "./provider-B1wc40FG.js";
2
+ import "./provider-D3RwHRhI.js";
3
3
  import "./message-utils-DxHZcpPf.js";
4
- import "./message-handler-YNyW4rsC.js";
4
+ import "./message-handler-B9n5CtIS.js";
5
5
  export {};
@@ -1,8 +1,8 @@
1
1
  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";
2
2
  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";
3
3
  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";
4
- 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-B1wc40FG.js";
4
+ 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-D3RwHRhI.js";
5
5
  import { i as buildDiscordMediaPayload } from "./message-utils-DxHZcpPf.js";
6
- import { t as createDiscordMessageHandler } from "./message-handler-YNyW4rsC.js";
7
- import "./runtime-api.monitor-BJCRxbKe.js";
6
+ import { t as createDiscordMessageHandler } from "./message-handler-B9n5CtIS.js";
7
+ import "./runtime-api.monitor-CUn-x5uG.js";
8
8
  export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, allowListMatches, buildDiscordMediaPayload, clearGateways, clearPresences, createDiscordGatewayPlugin, createDiscordMessageHandler, createDiscordNativeCommand, getGateway, getPresence, isDiscordGroupAllowedByPolicy, mergeAbortSignals, monitorDiscordProvider, normalizeDiscordAllowList, normalizeDiscordSlug, presenceCacheSize, registerDiscordListener, registerGateway, resolveDiscordChannelConfig, resolveDiscordChannelConfigWithFallback, resolveDiscordCommandAuthorized, resolveDiscordGatewayIntents, resolveDiscordGuildEntry, resolveDiscordReplyTarget, resolveDiscordShouldRequireMention, resolveGroupDmAllow, sanitizeDiscordThreadName, setPresence, shouldEmitDiscordReactionNotification, unregisterGateway, waitForDiscordGatewayPluginRegistration };
package/dist/test-api.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as discordPlugin } from "./channel-BbDUsfl7.js";
1
+ import { t as discordPlugin } from "./channel-XYTSE8wN.js";
2
2
  import { n as discordOutbound } from "./outbound-adapter-C8lzfSt6.js";
3
3
  import { i as testing } from "./thread-bindings.manager-UJ5FvZfO.js";
4
4
  import { n as buildDiscordInboundAccessContext } from "./inbound-context-B5EsqsSr.js";
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@openclaw/discord",
3
- "version": "2026.5.26-beta.1",
3
+ "version": "2026.5.26",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/discord",
9
- "version": "2026.5.26-beta.1",
9
+ "version": "2026.5.26",
10
10
  "dependencies": {
11
11
  "@discordjs/voice": "0.19.2",
12
12
  "discord-api-types": "0.38.48",
@@ -17,7 +17,7 @@
17
17
  "ws": "8.21.0"
18
18
  },
19
19
  "peerDependencies": {
20
- "openclaw": ">=2026.5.26-beta.1"
20
+ "openclaw": ">=2026.5.26"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "openclaw": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/discord",
3
- "version": "2026.5.26-beta.1",
3
+ "version": "2026.5.26",
4
4
  "description": "OpenClaw Discord channel plugin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  "ws": "8.21.0"
18
18
  },
19
19
  "peerDependencies": {
20
- "openclaw": ">=2026.5.26-beta.1"
20
+ "openclaw": ">=2026.5.26"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "openclaw": {
@@ -61,10 +61,10 @@
61
61
  "allowInvalidConfigRecovery": true
62
62
  },
63
63
  "compat": {
64
- "pluginApi": ">=2026.5.26-beta.1"
64
+ "pluginApi": ">=2026.5.26"
65
65
  },
66
66
  "build": {
67
- "openclawVersion": "2026.5.26-beta.1"
67
+ "openclawVersion": "2026.5.26"
68
68
  },
69
69
  "release": {
70
70
  "publishToClawHub": true,
@@ -1,2 +0,0 @@
1
- import { t as monitorDiscordProvider } from "./provider-B1wc40FG.js";
2
- export { monitorDiscordProvider };