@openclaw/discord 2026.5.3 → 2026.5.4-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.js +2 -2
- package/dist/{channel-Nf20xyAS.js → channel-DpLugi97.js} +37 -19
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-DHzAG9qO.js → channel.setup-C-HEMkxU.js} +1 -1
- package/dist/{config-schema-BmGtnfiE.js → config-schema-CC1qhiTN.js} +9 -1
- package/dist/{message-handler-TShaLWeQ.js → message-handler-BEt0EFbs.js} +1 -1
- package/dist/{message-handler.process-Be2HA9AV.js → message-handler.process-C-iW2rRu.js} +4 -4
- package/dist/{provider-Cy1aml6b.js → provider-BaklPvax.js} +1 -1
- package/dist/{provider-session.runtime-CD5RUyP3.js → provider-session.runtime-DOwaBuWH.js} +1 -1
- package/dist/provider.runtime-DIcvr97w.js +2 -0
- package/dist/runtime-api.js +3 -3
- package/dist/{runtime-api.monitor-srLSEVEX.js → runtime-api.monitor-B4mrR-_Z.js} +2 -2
- package/dist/runtime-api.monitor.js +3 -3
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{shared-C1EMtcxR.js → shared-Ugd3DMEH.js} +1 -1
- package/dist/test-api.js +1 -1
- package/openclaw.plugin.json +51 -1
- package/package.json +4 -4
- package/dist/provider.runtime-CbW_PYV-.js +0 -2
package/dist/api.js
CHANGED
|
@@ -7,9 +7,9 @@ import { _ as parseDiscordModalCustomIdForInteraction, a as buildDiscordComponen
|
|
|
7
7
|
import { t as buildDiscordInteractiveComponents } from "./shared-interactive-KgJjCqnB.js";
|
|
8
8
|
import "./targets-B7OfGFt8.js";
|
|
9
9
|
import { a as shouldSuppressLocalDiscordExecApprovalPrompt, i as isDiscordExecApprovalClientEnabled, n as getDiscordExecApprovalApprovers, r as isDiscordExecApprovalApprover } from "./approval-shared-GfJeMdLu.js";
|
|
10
|
-
import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-
|
|
10
|
+
import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-DpLugi97.js";
|
|
11
11
|
import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-Daag9II6.js";
|
|
12
|
-
import { t as discordSetupPlugin } from "./channel.setup-
|
|
12
|
+
import { t as discordSetupPlugin } from "./channel.setup-C-HEMkxU.js";
|
|
13
13
|
import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-4TZ3SJrh.js";
|
|
14
14
|
import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-B2Zzo2HU.js";
|
|
15
15
|
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-DElx_Gr4.js";
|
|
@@ -9,7 +9,7 @@ import { t as discordMessageActions$1 } from "./channel-actions-ChsoeB3T.js";
|
|
|
9
9
|
import { n as resolveDiscordCurrentConversationIdentity } from "./conversation-identity-BN9wSmxJ.js";
|
|
10
10
|
import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-TTP020qQ.js";
|
|
11
11
|
import { n as discordOutbound } from "./outbound-adapter-B-mzejZP.js";
|
|
12
|
-
import { i as discordSecurityAdapter, n as discordConfigAdapter, r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-
|
|
12
|
+
import { i as discordSecurityAdapter, n as discordConfigAdapter, r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-Ugd3DMEH.js";
|
|
13
13
|
import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-Daag9II6.js";
|
|
14
14
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/text-runtime";
|
|
15
15
|
import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
|
|
@@ -131,7 +131,7 @@ const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import(".
|
|
|
131
131
|
const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-DPJkRKx1.js").then((n) => n.n));
|
|
132
132
|
const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-CWG9Gd04.js").then((n) => n.a));
|
|
133
133
|
async function loadDiscordProviderRuntime() {
|
|
134
|
-
discordProviderRuntimePromise ??= import("./provider.runtime-
|
|
134
|
+
discordProviderRuntimePromise ??= import("./provider.runtime-DIcvr97w.js");
|
|
135
135
|
return await discordProviderRuntimePromise;
|
|
136
136
|
}
|
|
137
137
|
async function loadDiscordProbeRuntime() {
|
|
@@ -313,6 +313,33 @@ function collectDiscordStatusIssues(accounts) {
|
|
|
313
313
|
//#region extensions/discord/src/channel.ts
|
|
314
314
|
const REQUIRED_DISCORD_PERMISSIONS = ["ViewChannel", "SendMessages"];
|
|
315
315
|
const DISCORD_ACCOUNT_STARTUP_STAGGER_MS = 1e4;
|
|
316
|
+
function startDiscordStartupProbe(params) {
|
|
317
|
+
(async () => {
|
|
318
|
+
try {
|
|
319
|
+
const probe = await (await loadDiscordProbeRuntime()).probeDiscord(params.token, 2500, { includeApplication: true });
|
|
320
|
+
if (params.abortSignal.aborted) return;
|
|
321
|
+
params.setStatus({
|
|
322
|
+
accountId: params.accountId,
|
|
323
|
+
bot: probe.bot,
|
|
324
|
+
application: probe.application
|
|
325
|
+
});
|
|
326
|
+
if (probe.ok) {
|
|
327
|
+
const username = probe.bot?.username?.trim();
|
|
328
|
+
if (username) params.log?.info?.(`[${params.accountId}] Discord bot probe resolved @${username}`);
|
|
329
|
+
} else if (getDiscordRuntime().logging.shouldLogVerbose()) params.log?.debug?.(`[${params.accountId}] bot probe degraded: ${probe.error ?? `status ${probe.status ?? "unknown"}`}`);
|
|
330
|
+
const messageContent = probe.application?.intents?.messageContent;
|
|
331
|
+
if (messageContent === "disabled") params.log?.warn?.(`[${params.accountId}] Discord Message Content Intent is disabled; bot may not respond to channel messages. Enable it in Discord Dev Portal (Bot → Privileged Gateway Intents) or require mentions.`);
|
|
332
|
+
else if (messageContent === "limited") params.log?.info?.(`[${params.accountId}] Discord Message Content Intent is limited; bots under 100 servers can use it without verification.`);
|
|
333
|
+
} catch (err) {
|
|
334
|
+
if (!params.abortSignal.aborted) params.setStatus({
|
|
335
|
+
accountId: params.accountId,
|
|
336
|
+
bot: void 0,
|
|
337
|
+
application: void 0
|
|
338
|
+
});
|
|
339
|
+
if (getDiscordRuntime().logging.shouldLogVerbose()) params.log?.debug?.(`[${params.accountId}] bot probe failed: ${String(err)}`);
|
|
340
|
+
}
|
|
341
|
+
})();
|
|
342
|
+
}
|
|
316
343
|
function shouldTreatDiscordDeliveredTextAsVisible(params) {
|
|
317
344
|
return params.kind === "block" && typeof params.text === "string" && params.text.trim().length > 0;
|
|
318
345
|
}
|
|
@@ -676,23 +703,14 @@ const discordPlugin = createChatChannelPlugin({
|
|
|
676
703
|
}
|
|
677
704
|
}
|
|
678
705
|
const token = account.token.trim();
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
ctx.
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
application: probe.application
|
|
688
|
-
});
|
|
689
|
-
const messageContent = probe.application?.intents?.messageContent;
|
|
690
|
-
if (messageContent === "disabled") ctx.log?.warn(`[${account.accountId}] Discord Message Content Intent is disabled; bot may not respond to channel messages. Enable it in Discord Dev Portal (Bot → Privileged Gateway Intents) or require mentions.`);
|
|
691
|
-
else if (messageContent === "limited") ctx.log?.info(`[${account.accountId}] Discord Message Content Intent is limited; bots under 100 servers can use it without verification.`);
|
|
692
|
-
} catch (err) {
|
|
693
|
-
if (getDiscordRuntime().logging.shouldLogVerbose()) ctx.log?.debug?.(`[${account.accountId}] bot probe failed: ${String(err)}`);
|
|
694
|
-
}
|
|
695
|
-
ctx.log?.info(`[${account.accountId}] starting provider${discordBotLabel}`);
|
|
706
|
+
startDiscordStartupProbe({
|
|
707
|
+
accountId: account.accountId,
|
|
708
|
+
token,
|
|
709
|
+
abortSignal: ctx.abortSignal,
|
|
710
|
+
setStatus: ctx.setStatus,
|
|
711
|
+
log: ctx.log
|
|
712
|
+
});
|
|
713
|
+
ctx.log?.info(`[${account.accountId}] starting provider`);
|
|
696
714
|
return (await loadDiscordProviderRuntime()).monitorDiscordProvider({
|
|
697
715
|
token,
|
|
698
716
|
accountId: account.accountId,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as DiscordChannelConfigSchema } from "./config-schema-
|
|
1
|
+
import { t as DiscordChannelConfigSchema } from "./config-schema-CC1qhiTN.js";
|
|
2
2
|
export { DiscordChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as discordPlugin } from "./channel-
|
|
1
|
+
import { t as discordPlugin } from "./channel-DpLugi97.js";
|
|
2
2
|
export { discordPlugin };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as resolveDiscordToken } from "./token-BZtonk7d.js";
|
|
2
2
|
import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId } from "./accounts-CaHGiVB4.js";
|
|
3
|
-
import { r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-
|
|
3
|
+
import { r as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-Ugd3DMEH.js";
|
|
4
4
|
import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-VAqom3Dn.js";
|
|
5
5
|
import { t as resolveDiscordUserAllowlist } from "./resolve-users-DPJkRKx1.js";
|
|
6
6
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
@@ -64,7 +64,11 @@ const DiscordChannelConfigSchema = buildChannelConfigSchema(DiscordConfigSchema,
|
|
|
64
64
|
},
|
|
65
65
|
"streaming.preview.toolProgress": {
|
|
66
66
|
label: "Discord Draft Tool Progress",
|
|
67
|
-
help: "Show tool/progress activity in the live draft preview message (default: true). Set false to
|
|
67
|
+
help: "Show tool/progress activity in the live draft preview message (default: true). Set false to hide interim tool updates while the draft preview stays active."
|
|
68
|
+
},
|
|
69
|
+
"streaming.preview.commandText": {
|
|
70
|
+
label: "Discord Draft Command Text",
|
|
71
|
+
help: "Command/exec detail in preview tool-progress lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
|
|
68
72
|
},
|
|
69
73
|
"streaming.progress.label": {
|
|
70
74
|
label: "Discord Progress Label",
|
|
@@ -82,6 +86,10 @@ const DiscordChannelConfigSchema = buildChannelConfigSchema(DiscordConfigSchema,
|
|
|
82
86
|
label: "Discord Progress Tool Lines",
|
|
83
87
|
help: "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery."
|
|
84
88
|
},
|
|
89
|
+
"streaming.progress.commandText": {
|
|
90
|
+
label: "Discord Progress Command Text",
|
|
91
|
+
help: "Command/exec detail in progress draft lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
|
|
92
|
+
},
|
|
85
93
|
"retry.attempts": {
|
|
86
94
|
label: "Discord Retry Attempts",
|
|
87
95
|
help: "Max retry attempts for outbound Discord API calls (default: 3)."
|
|
@@ -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-
|
|
124
|
+
messageProcessRuntimePromise ??= import("./message-handler.process-C-iW2rRu.js");
|
|
125
125
|
return await messageProcessRuntimePromise;
|
|
126
126
|
}
|
|
127
127
|
async function processDiscordQueuedMessage(params) {
|
|
@@ -23,7 +23,7 @@ import { resolveChunkMode, resolveTextChunkLimit } from "openclaw/plugin-sdk/rep
|
|
|
23
23
|
import { danger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
24
24
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
25
25
|
import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
26
|
-
import { createChannelProgressDraftGate, formatChannelProgressDraftLine, formatChannelProgressDraftText, isChannelProgressDraftWorkToolName, resolveChannelProgressDraftMaxLines, resolveChannelStreamingBlockEnabled, resolveChannelStreamingPreviewChunk, resolveChannelStreamingPreviewToolProgress, resolveChannelStreamingSuppressDefaultToolProgressMessages } from "openclaw/plugin-sdk/channel-streaming";
|
|
26
|
+
import { createChannelProgressDraftGate, formatChannelProgressDraftLine, formatChannelProgressDraftLineForEntry, formatChannelProgressDraftText, isChannelProgressDraftWorkToolName, resolveChannelProgressDraftMaxLines, resolveChannelStreamingBlockEnabled, resolveChannelStreamingPreviewChunk, resolveChannelStreamingPreviewToolProgress, resolveChannelStreamingSuppressDefaultToolProgressMessages } from "openclaw/plugin-sdk/channel-streaming";
|
|
27
27
|
import { recordInboundSession, resolvePinnedMainDmOwnerFromAllowlist } from "openclaw/plugin-sdk/conversation-runtime";
|
|
28
28
|
import { EmbeddedBlockChunker, resolveAckReaction, resolveHumanDelayConfig } from "openclaw/plugin-sdk/agent-runtime";
|
|
29
29
|
import { isDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
|
|
@@ -1090,15 +1090,15 @@ async function processDiscordMessage(ctx, observer) {
|
|
|
1090
1090
|
if (isProcessAborted(abortSignal)) return;
|
|
1091
1091
|
await maybeBindStatusReactionsToToolReaction(payload);
|
|
1092
1092
|
await statusReactions.setTool(payload.name);
|
|
1093
|
-
await draftPreview.pushToolProgress(
|
|
1093
|
+
await draftPreview.pushToolProgress(formatChannelProgressDraftLineForEntry(discordConfig, {
|
|
1094
1094
|
event: "tool",
|
|
1095
1095
|
name: payload.name,
|
|
1096
1096
|
phase: payload.phase,
|
|
1097
1097
|
args: payload.args
|
|
1098
|
-
}), { toolName: payload.name });
|
|
1098
|
+
}, payload.detailMode ? { detailMode: payload.detailMode } : void 0), { toolName: payload.name });
|
|
1099
1099
|
},
|
|
1100
1100
|
onItemEvent: async (payload) => {
|
|
1101
|
-
await draftPreview.pushToolProgress(
|
|
1101
|
+
await draftPreview.pushToolProgress(formatChannelProgressDraftLineForEntry(discordConfig, {
|
|
1102
1102
|
event: "item",
|
|
1103
1103
|
itemKind: payload.kind,
|
|
1104
1104
|
title: payload.title,
|
|
@@ -8035,7 +8035,7 @@ async function loadDiscordVoiceRuntime() {
|
|
|
8035
8035
|
}
|
|
8036
8036
|
}
|
|
8037
8037
|
async function loadDiscordProviderSessionRuntime() {
|
|
8038
|
-
const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-
|
|
8038
|
+
const promise = discordProviderSessionRuntimePromise ?? import("./provider-session.runtime-DOwaBuWH.js");
|
|
8039
8039
|
discordProviderSessionRuntimePromise = promise;
|
|
8040
8040
|
try {
|
|
8041
8041
|
return await promise;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings-DLoian4S.js";
|
|
2
2
|
import { n as createNoopThreadBindingManager, r as createThreadBindingManager } from "./thread-bindings.manager-CWG9Gd04.js";
|
|
3
|
-
import { t as createDiscordMessageHandler } from "./message-handler-
|
|
3
|
+
import { t as createDiscordMessageHandler } from "./message-handler-BEt0EFbs.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 };
|
package/dist/runtime-api.js
CHANGED
|
@@ -21,11 +21,11 @@ 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-DEbWTFTt.js";
|
|
23
23
|
import "./runtime-api.lookup.js";
|
|
24
|
-
import { a as createDiscordNativeCommand, i as waitForDiscordGatewayPluginRegistration, n as createDiscordGatewayPlugin, o as registerDiscordListener, r as resolveDiscordGatewayIntents, t as monitorDiscordProvider } from "./provider-
|
|
24
|
+
import { a as createDiscordNativeCommand, i as waitForDiscordGatewayPluginRegistration, n as createDiscordGatewayPlugin, o as registerDiscordListener, r as resolveDiscordGatewayIntents, t as monitorDiscordProvider } from "./provider-BaklPvax.js";
|
|
25
25
|
import { i as buildDiscordMediaPayload } from "./message-utils-Dmgu-7fC.js";
|
|
26
26
|
import { o as sanitizeDiscordThreadName, r as resolveDiscordReplyTarget } from "./threading-Bi95Nz8h.js";
|
|
27
|
-
import { t as createDiscordMessageHandler } from "./message-handler-
|
|
28
|
-
import "./runtime-api.monitor-
|
|
27
|
+
import { t as createDiscordMessageHandler } from "./message-handler-BEt0EFbs.js";
|
|
28
|
+
import "./runtime-api.monitor-B4mrR-_Z.js";
|
|
29
29
|
import "./runtime-api.send.js";
|
|
30
30
|
import "./runtime-api.threads.js";
|
|
31
31
|
export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, DiscordSendError, __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,6 +1,6 @@
|
|
|
1
1
|
import "./allow-list-ek-1hMKN.js";
|
|
2
|
-
import "./provider-
|
|
2
|
+
import "./provider-BaklPvax.js";
|
|
3
3
|
import "./message-utils-Dmgu-7fC.js";
|
|
4
4
|
import "./threading-Bi95Nz8h.js";
|
|
5
|
-
import "./message-handler-
|
|
5
|
+
import "./message-handler-BEt0EFbs.js";
|
|
6
6
|
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
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-BKG4KIVC.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-ek-1hMKN.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-C7jeTtGs.js";
|
|
4
|
-
import { a as createDiscordNativeCommand, i as waitForDiscordGatewayPluginRegistration, n as createDiscordGatewayPlugin, o as registerDiscordListener, r as resolveDiscordGatewayIntents, t as monitorDiscordProvider } from "./provider-
|
|
4
|
+
import { a as createDiscordNativeCommand, i as waitForDiscordGatewayPluginRegistration, n as createDiscordGatewayPlugin, o as registerDiscordListener, r as resolveDiscordGatewayIntents, t as monitorDiscordProvider } from "./provider-BaklPvax.js";
|
|
5
5
|
import { i as buildDiscordMediaPayload } from "./message-utils-Dmgu-7fC.js";
|
|
6
6
|
import { o as sanitizeDiscordThreadName, r as resolveDiscordReplyTarget } from "./threading-Bi95Nz8h.js";
|
|
7
|
-
import { t as createDiscordMessageHandler } from "./message-handler-
|
|
8
|
-
import "./runtime-api.monitor-
|
|
7
|
+
import { t as createDiscordMessageHandler } from "./message-handler-BEt0EFbs.js";
|
|
8
|
+
import "./runtime-api.monitor-B4mrR-_Z.js";
|
|
9
9
|
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/setup-plugin-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as discordSetupPlugin } from "./channel.setup-
|
|
1
|
+
import { t as discordSetupPlugin } from "./channel.setup-C-HEMkxU.js";
|
|
2
2
|
export { discordSetupPlugin };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, d as resolveDiscordAccountDmPolicy, n as isDiscordAccountEnabledForRuntime, o as resolveDefaultDiscordAccountId, r as listDiscordAccountIds, s as resolveDiscordAccount, u as resolveDiscordAccountDisabledReason } from "./accounts-CaHGiVB4.js";
|
|
2
2
|
import { t as inspectDiscordAccount } from "./account-inspect-BcQAxhKY.js";
|
|
3
3
|
import { i as getChatChannelMeta } from "./channel-api-CTSWMrnD.js";
|
|
4
|
-
import { t as DiscordChannelConfigSchema } from "./config-schema-
|
|
4
|
+
import { t as DiscordChannelConfigSchema } from "./config-schema-CC1qhiTN.js";
|
|
5
5
|
import { n as normalizeCompatibilityConfig } from "./doctor-contract-Dxq4VIkE.js";
|
|
6
6
|
import { t as DISCORD_LEGACY_CONFIG_RULES } from "./doctor-shared-DU8RcnF5.js";
|
|
7
7
|
import { n as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-CoGryS5c.js";
|
package/dist/test-api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as discordPlugin } from "./channel-
|
|
1
|
+
import { t as discordPlugin } from "./channel-DpLugi97.js";
|
|
2
2
|
import { n as discordOutbound } from "./outbound-adapter-B-mzejZP.js";
|
|
3
3
|
import { t as __testing } from "./thread-bindings.manager-CWG9Gd04.js";
|
|
4
4
|
import { n as buildDiscordInboundAccessContext } from "./inbound-context-e_oBBJtF.js";
|
package/openclaw.plugin.json
CHANGED
|
@@ -308,6 +308,13 @@
|
|
|
308
308
|
},
|
|
309
309
|
"toolProgress": {
|
|
310
310
|
"type": "boolean"
|
|
311
|
+
},
|
|
312
|
+
"commandText": {
|
|
313
|
+
"type": "string",
|
|
314
|
+
"enum": [
|
|
315
|
+
"raw",
|
|
316
|
+
"status"
|
|
317
|
+
]
|
|
311
318
|
}
|
|
312
319
|
},
|
|
313
320
|
"additionalProperties": false
|
|
@@ -337,8 +344,22 @@
|
|
|
337
344
|
"exclusiveMinimum": 0,
|
|
338
345
|
"maximum": 9007199254740991
|
|
339
346
|
},
|
|
347
|
+
"render": {
|
|
348
|
+
"type": "string",
|
|
349
|
+
"enum": [
|
|
350
|
+
"text",
|
|
351
|
+
"rich"
|
|
352
|
+
]
|
|
353
|
+
},
|
|
340
354
|
"toolProgress": {
|
|
341
355
|
"type": "boolean"
|
|
356
|
+
},
|
|
357
|
+
"commandText": {
|
|
358
|
+
"type": "string",
|
|
359
|
+
"enum": [
|
|
360
|
+
"raw",
|
|
361
|
+
"status"
|
|
362
|
+
]
|
|
342
363
|
}
|
|
343
364
|
},
|
|
344
365
|
"additionalProperties": false
|
|
@@ -1864,6 +1885,13 @@
|
|
|
1864
1885
|
},
|
|
1865
1886
|
"toolProgress": {
|
|
1866
1887
|
"type": "boolean"
|
|
1888
|
+
},
|
|
1889
|
+
"commandText": {
|
|
1890
|
+
"type": "string",
|
|
1891
|
+
"enum": [
|
|
1892
|
+
"raw",
|
|
1893
|
+
"status"
|
|
1894
|
+
]
|
|
1867
1895
|
}
|
|
1868
1896
|
},
|
|
1869
1897
|
"additionalProperties": false
|
|
@@ -1893,8 +1921,22 @@
|
|
|
1893
1921
|
"exclusiveMinimum": 0,
|
|
1894
1922
|
"maximum": 9007199254740991
|
|
1895
1923
|
},
|
|
1924
|
+
"render": {
|
|
1925
|
+
"type": "string",
|
|
1926
|
+
"enum": [
|
|
1927
|
+
"text",
|
|
1928
|
+
"rich"
|
|
1929
|
+
]
|
|
1930
|
+
},
|
|
1896
1931
|
"toolProgress": {
|
|
1897
1932
|
"type": "boolean"
|
|
1933
|
+
},
|
|
1934
|
+
"commandText": {
|
|
1935
|
+
"type": "string",
|
|
1936
|
+
"enum": [
|
|
1937
|
+
"raw",
|
|
1938
|
+
"status"
|
|
1939
|
+
]
|
|
1898
1940
|
}
|
|
1899
1941
|
},
|
|
1900
1942
|
"additionalProperties": false
|
|
@@ -3207,7 +3249,11 @@
|
|
|
3207
3249
|
},
|
|
3208
3250
|
"streaming.preview.toolProgress": {
|
|
3209
3251
|
"label": "Discord Draft Tool Progress",
|
|
3210
|
-
"help": "Show tool/progress activity in the live draft preview message (default: true). Set false to
|
|
3252
|
+
"help": "Show tool/progress activity in the live draft preview message (default: true). Set false to hide interim tool updates while the draft preview stays active."
|
|
3253
|
+
},
|
|
3254
|
+
"streaming.preview.commandText": {
|
|
3255
|
+
"label": "Discord Draft Command Text",
|
|
3256
|
+
"help": "Command/exec detail in preview tool-progress lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
|
|
3211
3257
|
},
|
|
3212
3258
|
"streaming.progress.label": {
|
|
3213
3259
|
"label": "Discord Progress Label",
|
|
@@ -3225,6 +3271,10 @@
|
|
|
3225
3271
|
"label": "Discord Progress Tool Lines",
|
|
3226
3272
|
"help": "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery."
|
|
3227
3273
|
},
|
|
3274
|
+
"streaming.progress.commandText": {
|
|
3275
|
+
"label": "Discord Progress Command Text",
|
|
3276
|
+
"help": "Command/exec detail in progress draft lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
|
|
3277
|
+
},
|
|
3228
3278
|
"retry.attempts": {
|
|
3229
3279
|
"label": "Discord Retry Attempts",
|
|
3230
3280
|
"help": "Max retry attempts for outbound Discord API calls (default: 3)."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/discord",
|
|
3
|
-
"version": "2026.5.
|
|
3
|
+
"version": "2026.5.4-beta.1",
|
|
4
4
|
"description": "OpenClaw Discord channel plugin",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"openclaw": "workspace:*"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"openclaw": ">=2026.5.
|
|
24
|
+
"openclaw": ">=2026.5.4-beta.1"
|
|
25
25
|
},
|
|
26
26
|
"peerDependenciesMeta": {
|
|
27
27
|
"openclaw": {
|
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
"allowInvalidConfigRecovery": true
|
|
66
66
|
},
|
|
67
67
|
"compat": {
|
|
68
|
-
"pluginApi": ">=2026.5.
|
|
68
|
+
"pluginApi": ">=2026.5.4-beta.1"
|
|
69
69
|
},
|
|
70
70
|
"build": {
|
|
71
|
-
"openclawVersion": "2026.5.
|
|
71
|
+
"openclawVersion": "2026.5.4-beta.1"
|
|
72
72
|
},
|
|
73
73
|
"release": {
|
|
74
74
|
"publishToClawHub": true,
|