@openclaw/discord 2026.5.16-beta.2 → 2026.5.16-beta.4
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 +12 -12
- package/dist/{approval-handler.runtime-CS97g4S1.js → approval-handler.runtime-B5Dd-jlK.js} +1 -1
- package/dist/{channel-ngFtP-WD.js → channel-DeO4mqqA.js} +13 -13
- package/dist/{channel-actions-0dOFg3Mu.js → channel-actions--MV0t13k.js} +14 -7
- package/dist/{channel-actions.runtime-BB30vneH.js → channel-actions.runtime-G9ARNi7H.js} +29 -8
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-BwmvzHMR.js → channel.setup-DMqaeOeB.js} +3 -3
- package/dist/contract-api.js +7 -7
- package/dist/{conversation-identity-Dh8wIQ_K.js → conversation-identity-Bpwp-7uO.js} +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/{doctor-CWTWiBru.js → doctor-DfHqek8h.js} +3 -3
- package/dist/{doctor-contract-ftWAMvBl.js → doctor-contract-AkgUZQHW.js} +1 -1
- package/dist/doctor-contract-api.js +1 -1
- package/dist/inbound-event-delivery-D8zHG9Lz.js +65 -0
- package/dist/{manager.runtime-D8sDxzBv.js → manager.runtime-BsOZkg8V.js} +2 -2
- package/dist/{message-handler-D-Nboii4.js → message-handler-B-SLojCO.js} +6 -6
- package/dist/{message-handler.preflight-BMgBVbmR.js → message-handler.preflight-DPcejg12.js} +26 -12
- package/dist/{message-handler.process-Dfu_aSv1.js → message-handler.process-B9kCtqjZ.js} +55 -18
- package/dist/{message-utils-CY91O2k2.js → message-utils-BZoXOhcI.js} +2 -2
- package/dist/{outbound-adapter-Fe4Ee_GO.js → outbound-adapter-DyTqAH35.js} +11 -2
- package/dist/{preflight-audio-DFGpAvzi.js → preflight-audio-B0keJeQe.js} +1 -1
- package/dist/{probe.runtime-9hi1GYNU.js → probe.runtime-CvMZb8ZL.js} +1 -1
- package/dist/{provider-B81nXBRc.js → provider-BYIVfxV_.js} +215 -28
- package/dist/{provider-session.runtime-C7p_WbqZ.js → provider-session.runtime-B-8Gitv9.js} +3 -3
- package/dist/provider.runtime-BZj7ZoKH.js +2 -0
- package/dist/{resolve-channels-u7_agBcm.js → resolve-channels-CerN-VOT.js} +1 -1
- package/dist/{resolve-users-Bc25I6OP.js → resolve-users-DIG4uHLS.js} +1 -1
- package/dist/runtime-api.actions.js +1 -1
- package/dist/runtime-api.js +15 -15
- package/dist/runtime-api.lookup.js +4 -4
- package/dist/runtime-api.monitor-DJZRR16k.js +5 -0
- package/dist/runtime-api.monitor.js +5 -5
- package/dist/runtime-api.threads.js +5 -5
- package/dist/secret-contract-api.js +1 -1
- package/dist/{security-audit-CLPZKYi4.js → security-audit-Dx3j4a0l.js} +1 -1
- package/dist/security-audit-contract-api.js +1 -1
- package/dist/{security-audit.runtime-CCm9leFJ.js → security-audit.runtime-C5nnf0k8.js} +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/session-key-api.js +1 -1
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{shared-LuaeDRhK.js → shared-CpwVKWm5.js} +7 -7
- package/dist/{subagent-hooks-vwV-pjIA.js → subagent-hooks-DguyFWsd.js} +1 -1
- package/dist/subagent-hooks-api.js +1 -1
- package/dist/test-api.js +4 -4
- package/dist/{thread-bindings-BwcE40jS.js → thread-bindings-CqKojFDg.js} +4 -4
- package/dist/{thread-bindings.discord-api-BtXi8-Fz.js → thread-bindings.discord-api-BQJf05t-.js} +1 -1
- package/dist/{thread-bindings.manager-BL5QlX3G.js → thread-bindings.manager-kjSGaifo.js} +2 -2
- package/dist/{thread-bindings.session-updates-ZnRRzzgf.js → thread-bindings.session-updates-CgOqEOPe.js} +1 -1
- package/dist/timeouts.js +1 -1
- package/dist/{typing-C_8U8J7E.js → typing-DudlJ-Fv.js} +1 -1
- package/package.json +4 -4
- package/dist/provider.runtime-B_3TYTb7.js +0 -2
- package/dist/runtime-api.monitor-DJQdXyzE.js +0 -5
- /package/dist/{agent-components.runtime-CEMbMQcQ.js → agent-components.runtime-BIemD2Iz.js} +0 -0
- /package/dist/{audit-BZOw16KT.js → audit-CPAL0IL6.js} +0 -0
- /package/dist/{config-schema-D0eb2vPJ.js → config-schema-B6sPhXLp.js} +0 -0
- /package/dist/{directory-config-CW_JusGS.js → directory-config-mr3WFi1h.js} +0 -0
- /package/dist/{handle-action.guild-admin-DOW3XfEG.js → handle-action.guild-admin-DUVD8LGs.js} +0 -0
- /package/dist/{inbound-context-BdfOEkhj.js → inbound-context-CzEAvKgx.js} +0 -0
- /package/dist/{pluralkit-B2AqgTHV.js → pluralkit-BHV93ojA.js} +0 -0
- /package/dist/{preflight-audio.runtime-Drc-OFcp.js → preflight-audio.runtime-DT1Hmhsq.js} +0 -0
- /package/dist/{preview-streaming-CXTZydhx.js → preview-streaming-nClS_TQx.js} +0 -0
- /package/dist/{probe-CiBYm-vD.js → probe-DW9lJUZB.js} +0 -0
- /package/dist/{resolve-allowlist-common-DybgkAjk.js → resolve-allowlist-common-COuUtNM8.js} +0 -0
- /package/dist/{secret-config-contract-B3347_eU.js → secret-config-contract-57_WV6qt.js} +0 -0
- /package/dist/{security-contract-DyCRvz_Q.js → security-contract-BWDASKVo.js} +0 -0
- /package/dist/{security-doctor-Cp-NqNdS.js → security-doctor-DepqtNCI.js} +0 -0
- /package/dist/{sender-identity-BTGL3VbF.js → sender-identity-DC0FdEcU.js} +0 -0
- /package/dist/{session-contract-ugfEa9Xc.js → session-contract-Dwhw3RTY.js} +0 -0
- /package/dist/{session-key-normalization-B7h83qD2.js → session-key-normalization-DnCXUKGA.js} +0 -0
- /package/dist/{system-events-Bnit0zkQ.js → system-events-CEehp53f.js} +0 -0
- /package/dist/{thread-bindings.state-BdBeo7Rx.js → thread-bindings.state-CSphZOiL.js} +0 -0
- /package/dist/{timeouts-snXNwR4m.js → timeouts-CEwuGaWT.js} +0 -0
package/dist/api.js
CHANGED
|
@@ -5,19 +5,19 @@ import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForIn
|
|
|
5
5
|
import { n as fetchDiscord, r as requestDiscord, t as DiscordApiError } from "./api-DgQLz1wq.js";
|
|
6
6
|
import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-BsGT9hI7.js";
|
|
7
7
|
import "./targets-DwW6OieO.js";
|
|
8
|
-
import { a as getDiscordExecApprovalApprovers, c as shouldSuppressLocalDiscordExecApprovalPrompt, o as isDiscordExecApprovalApprover, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-
|
|
9
|
-
import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-
|
|
10
|
-
import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-
|
|
11
|
-
import { t as discordSetupPlugin } from "./channel.setup-
|
|
12
|
-
import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-
|
|
13
|
-
import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-
|
|
14
|
-
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-
|
|
15
|
-
import { t as fetchPluralKitMessageInfo } from "./pluralkit-
|
|
16
|
-
import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-
|
|
17
|
-
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-
|
|
18
|
-
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-
|
|
8
|
+
import { a as getDiscordExecApprovalApprovers, c as shouldSuppressLocalDiscordExecApprovalPrompt, o as isDiscordExecApprovalApprover, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-Bpwp-7uO.js";
|
|
9
|
+
import { i as resolveDiscordGroupToolPolicy, n as collectDiscordStatusIssues, r as resolveDiscordGroupRequireMention, t as discordPlugin } from "./channel-DeO4mqqA.js";
|
|
10
|
+
import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-DnCXUKGA.js";
|
|
11
|
+
import { t as discordSetupPlugin } from "./channel.setup-DMqaeOeB.js";
|
|
12
|
+
import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-DguyFWsd.js";
|
|
13
|
+
import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-DUVD8LGs.js";
|
|
14
|
+
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-mr3WFi1h.js";
|
|
15
|
+
import { t as fetchPluralKitMessageInfo } from "./pluralkit-BHV93ojA.js";
|
|
16
|
+
import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-DW9lJUZB.js";
|
|
17
|
+
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Dx3j4a0l.js";
|
|
18
|
+
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";
|
|
19
19
|
import { resolveOpenProviderRuntimeGroupPolicy as resolveDiscordRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
20
20
|
//#region extensions/discord/api.ts
|
|
21
|
-
const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-
|
|
21
|
+
const handleDiscordMessageAction = async (...args) => (await import("./channel-actions.runtime-G9ARNi7H.js")).handleDiscordMessageAction(...args);
|
|
22
22
|
//#endregion
|
|
23
23
|
export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_COMPONENT_ATTACHMENT_PREFIX, DISCORD_COMPONENT_CUSTOM_ID_KEY, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, DISCORD_MODAL_CUSTOM_ID_KEY, DiscordApiError, DiscordFormModal, buildDiscordComponentCustomId, buildDiscordComponentMessage, buildDiscordComponentMessageFlags, buildDiscordInteractiveComponents, buildDiscordModalCustomId, collectDiscordSecurityAuditFindings, collectDiscordStatusIssues, createDiscordActionGate, createDiscordFormModal, discordPlugin, discordSetupPlugin, fetchDiscord, fetchDiscordApplicationId, fetchDiscordApplicationSummary, fetchPluralKitMessageInfo, formatDiscordComponentEventText, getDiscordExecApprovalApprovers, handleDiscordMessageAction, handleDiscordSubagentDeliveryTarget, handleDiscordSubagentEnded, handleDiscordSubagentSpawning, inspectDiscordAccount, isDiscordExecApprovalApprover, isDiscordExecApprovalClientEnabled, listDiscordAccountIds, listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig, listEnabledDiscordAccounts, looksLikeDiscordTargetId, mergeAbortSignals, mergeDiscordAccountConfig, normalizeDiscordMessagingTarget, normalizeDiscordOutboundTarget, normalizeExplicitDiscordSessionKey, parseApplicationIdFromToken, parseDiscordComponentCustomId, parseDiscordComponentCustomIdForInteraction as parseDiscordComponentCustomIdForCarbon, parseDiscordComponentCustomIdForInteraction, parseDiscordModalCustomId, parseDiscordModalCustomIdForInteraction as parseDiscordModalCustomIdForCarbon, parseDiscordModalCustomIdForInteraction, parseDiscordSendTarget, parseDiscordTarget, probeDiscord, readDiscordComponentSpec, requestDiscord, resolveDefaultDiscordAccountId, resolveDiscordAccount, resolveDiscordAccountConfig, resolveDiscordChannelId, resolveDiscordComponentAttachmentName, resolveDiscordGroupRequireMention, resolveDiscordGroupToolPolicy, resolveDiscordMaxLinesPerMessage, resolveDiscordPrivilegedIntentsFromFlags, resolveDiscordRuntimeGroupPolicy, resolveDiscordTarget, shouldSuppressLocalDiscordExecApprovalPrompt, tryHandleDiscordMessageActionGuildAdmin };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { B as Container, J as Separator, K as Row, M as serializePayload, R as Button, Wt as __exportAll, X as TextDisplay, ft as editChannelMessage, nt as createUserDmChannel, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-nKLxvA1s.js";
|
|
2
2
|
import { t as inspectDiscordAccount } from "./account-inspect-B_N30NV0.js";
|
|
3
3
|
import { M as createDiscordClient, b as stripUndefinedFields } from "./send.shared-Bdj-DP6-.js";
|
|
4
|
-
import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-
|
|
4
|
+
import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-Bpwp-7uO.js";
|
|
5
5
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { ButtonStyle } from "discord-api-types/v10";
|
|
7
7
|
import { logDebug, logError } from "openclaw/plugin-sdk/logging-core";
|
|
@@ -3,13 +3,13 @@ import { c as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as r
|
|
|
3
3
|
import { a as projectCredentialSnapshotFields, n as PAIRING_APPROVED_MESSAGE, o as resolveConfiguredFromCredentialStatuses, r as buildTokenChannelStatusSummary, t as DEFAULT_ACCOUNT_ID } from "./channel-api-JudoSiJv.js";
|
|
4
4
|
import { x as resolveDiscordOutboundSessionRoute } from "./components-Cgm7XT8-.js";
|
|
5
5
|
import { t as getDiscordRuntime } from "./runtime-Tqtvj5GX.js";
|
|
6
|
-
import { c as shouldSuppressLocalDiscordExecApprovalPrompt, n as resolveDiscordCurrentConversationIdentity, r as getDiscordApprovalCapability } from "./conversation-identity-
|
|
6
|
+
import { c as shouldSuppressLocalDiscordExecApprovalPrompt, n as resolveDiscordCurrentConversationIdentity, r as getDiscordApprovalCapability } from "./conversation-identity-Bpwp-7uO.js";
|
|
7
7
|
import { r as resolveRequiredDiscordChannelPermissions } from "./audit-core-DRyoXREU.js";
|
|
8
|
-
import { t as discordMessageActions$1 } from "./channel-actions
|
|
9
|
-
import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-
|
|
10
|
-
import { n as discordOutbound } from "./outbound-adapter-
|
|
11
|
-
import { a as discordSecurityAdapter, i as discordSetupAdapter, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-
|
|
12
|
-
import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-
|
|
8
|
+
import { t as discordMessageActions$1 } from "./channel-actions--MV0t13k.js";
|
|
9
|
+
import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-CgOqEOPe.js";
|
|
10
|
+
import { n as discordOutbound } from "./outbound-adapter-DyTqAH35.js";
|
|
11
|
+
import { a as discordSecurityAdapter, i as discordSetupAdapter, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-CpwVKWm5.js";
|
|
12
|
+
import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-DnCXUKGA.js";
|
|
13
13
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
14
14
|
import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
|
|
15
15
|
import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
|
|
@@ -126,21 +126,21 @@ let discordProbeRuntimePromise;
|
|
|
126
126
|
let discordAuditModulePromise;
|
|
127
127
|
let discordSendModulePromise;
|
|
128
128
|
let discordDirectoryLiveModulePromise;
|
|
129
|
-
const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-
|
|
130
|
-
const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-
|
|
131
|
-
const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-
|
|
132
|
-
const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-
|
|
129
|
+
const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-mr3WFi1h.js").then((n) => n.t));
|
|
130
|
+
const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-CerN-VOT.js").then((n) => n.n));
|
|
131
|
+
const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-DIG4uHLS.js").then((n) => n.n));
|
|
132
|
+
const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-kjSGaifo.js").then((n) => n.a));
|
|
133
133
|
const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-BsGT9hI7.js").then((n) => n.r));
|
|
134
134
|
async function loadDiscordProviderRuntime() {
|
|
135
|
-
discordProviderRuntimePromise ??= import("./provider.runtime-
|
|
135
|
+
discordProviderRuntimePromise ??= import("./provider.runtime-BZj7ZoKH.js");
|
|
136
136
|
return await discordProviderRuntimePromise;
|
|
137
137
|
}
|
|
138
138
|
async function loadDiscordProbeRuntime() {
|
|
139
|
-
discordProbeRuntimePromise ??= import("./probe.runtime-
|
|
139
|
+
discordProbeRuntimePromise ??= import("./probe.runtime-CvMZb8ZL.js");
|
|
140
140
|
return await discordProbeRuntimePromise;
|
|
141
141
|
}
|
|
142
142
|
async function loadDiscordAuditModule() {
|
|
143
|
-
discordAuditModulePromise ??= import("./audit-
|
|
143
|
+
discordAuditModulePromise ??= import("./audit-CPAL0IL6.js").then((n) => n.n);
|
|
144
144
|
return await discordAuditModulePromise;
|
|
145
145
|
}
|
|
146
146
|
async function loadDiscordSendModule() {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { r as listDiscordAccountIds, t as createDiscordActionGate } from "./accounts-DnNVBDfc.js";
|
|
2
2
|
import { t as inspectDiscordAccount } from "./account-inspect-B_N30NV0.js";
|
|
3
3
|
import { d as readDiscordComponentSpec } from "./components-Cgm7XT8-.js";
|
|
4
|
+
import { i as withDiscordInboundEventDeliveryMetadata } from "./inbound-event-delivery-D8zHG9Lz.js";
|
|
4
5
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
6
|
import { createUnionActionGate } from "openclaw/plugin-sdk/channel-actions";
|
|
6
7
|
import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
|
|
7
8
|
//#region extensions/discord/src/channel-actions.ts
|
|
8
9
|
let discordChannelActionsRuntimePromise;
|
|
9
10
|
async function loadDiscordChannelActionsRuntime() {
|
|
10
|
-
discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-
|
|
11
|
+
discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-G9ARNi7H.js");
|
|
11
12
|
return await discordChannelActionsRuntimePromise;
|
|
12
13
|
}
|
|
13
14
|
function listDiscoverableDiscordAccounts(cfg) {
|
|
@@ -125,6 +126,10 @@ const discordMessageActions = {
|
|
|
125
126
|
},
|
|
126
127
|
prepareSendPayload: ({ ctx, payload }) => {
|
|
127
128
|
if (ctx.action !== "send") return null;
|
|
129
|
+
const payloadWithDeliveryMetadata = withDiscordInboundEventDeliveryMetadata(payload, {
|
|
130
|
+
sessionKey: ctx.sessionKey,
|
|
131
|
+
inboundEventKind: ctx.inboundEventKind
|
|
132
|
+
});
|
|
128
133
|
const rawComponents = ctx.params.components;
|
|
129
134
|
if (typeof rawComponents === "function") return null;
|
|
130
135
|
const componentSpec = rawComponents && typeof rawComponents === "object" && !Array.isArray(rawComponents) ? readDiscordComponentSpec(rawComponents) : void 0;
|
|
@@ -132,12 +137,12 @@ const discordMessageActions = {
|
|
|
132
137
|
const embeds = Array.isArray(ctx.params.embeds) ? ctx.params.embeds : void 0;
|
|
133
138
|
if ((componentSpec || nativeComponents) && embeds?.length) return null;
|
|
134
139
|
const filename = normalizeOptionalString(ctx.params.filename);
|
|
135
|
-
if (!componentSpec && !nativeComponents && !embeds?.length && !filename) return
|
|
136
|
-
const discordData =
|
|
140
|
+
if (!componentSpec && !nativeComponents && !embeds?.length && !filename) return payloadWithDeliveryMetadata;
|
|
141
|
+
const discordData = payloadWithDeliveryMetadata.channelData?.discord && typeof payloadWithDeliveryMetadata.channelData.discord === "object" && !Array.isArray(payloadWithDeliveryMetadata.channelData.discord) ? payloadWithDeliveryMetadata.channelData.discord : {};
|
|
137
142
|
return {
|
|
138
|
-
...
|
|
143
|
+
...payloadWithDeliveryMetadata,
|
|
139
144
|
channelData: {
|
|
140
|
-
...
|
|
145
|
+
...payloadWithDeliveryMetadata.channelData,
|
|
141
146
|
discord: {
|
|
142
147
|
...discordData,
|
|
143
148
|
...componentSpec ? { components: componentSpec } : {},
|
|
@@ -148,7 +153,7 @@ const discordMessageActions = {
|
|
|
148
153
|
}
|
|
149
154
|
};
|
|
150
155
|
},
|
|
151
|
-
handleAction: async ({ action, params, cfg, accountId, requesterSenderId, toolContext, mediaAccess, mediaLocalRoots, mediaReadFile }) => {
|
|
156
|
+
handleAction: async ({ action, params, cfg, accountId, requesterSenderId, toolContext, mediaAccess, mediaLocalRoots, mediaReadFile, sessionKey, inboundEventKind }) => {
|
|
152
157
|
return await (await loadDiscordChannelActionsRuntime()).handleDiscordMessageAction({
|
|
153
158
|
action,
|
|
154
159
|
params,
|
|
@@ -158,7 +163,9 @@ const discordMessageActions = {
|
|
|
158
163
|
toolContext,
|
|
159
164
|
mediaAccess,
|
|
160
165
|
mediaLocalRoots,
|
|
161
|
-
mediaReadFile
|
|
166
|
+
mediaReadFile,
|
|
167
|
+
...sessionKey ? { sessionKey } : {},
|
|
168
|
+
...inboundEventKind ? { inboundEventKind } : {}
|
|
162
169
|
});
|
|
163
170
|
}
|
|
164
171
|
};
|
|
@@ -3,7 +3,8 @@ import { i as buildDiscordPresentationComponents, r as buildDiscordInteractiveCo
|
|
|
3
3
|
import { t as handleDiscordAction } from "./runtime-ToiiUiXe.js";
|
|
4
4
|
import "./targets-DwW6OieO.js";
|
|
5
5
|
import "./action-runtime-api.js";
|
|
6
|
-
import {
|
|
6
|
+
import { r as notifyDiscordInboundEventOutboundSuccess } from "./inbound-event-delivery-D8zHG9Lz.js";
|
|
7
|
+
import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-DUVD8LGs.js";
|
|
7
8
|
import { normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
9
|
import { resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
|
|
9
10
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
@@ -24,6 +25,12 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
24
25
|
mediaLocalRoots: ctx.mediaLocalRoots,
|
|
25
26
|
mediaReadFile: ctx.mediaReadFile
|
|
26
27
|
};
|
|
28
|
+
const notifyVisibleOutbound = (to, fallbackSessionKey) => notifyDiscordInboundEventOutboundSuccess({
|
|
29
|
+
sessionKey: ctx.sessionKey ?? fallbackSessionKey ?? void 0,
|
|
30
|
+
to,
|
|
31
|
+
accountId,
|
|
32
|
+
inboundEventKind: ctx.inboundEventKind
|
|
33
|
+
});
|
|
27
34
|
const readTarget = () => {
|
|
28
35
|
const target = readStringParam(params, "channelId") ?? readStringParam(params, "to") ?? readCurrentDiscordTarget(ctx.toolContext);
|
|
29
36
|
if (!target) throw new Error("Discord channel target is required (use channel:<id>).");
|
|
@@ -55,7 +62,7 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
55
62
|
const sessionKey = readStringParam(params, "__sessionKey");
|
|
56
63
|
const agentId = readStringParam(params, "__agentId");
|
|
57
64
|
const threadName = readStringParam(params, "threadName");
|
|
58
|
-
|
|
65
|
+
const result = await handleDiscordAction({
|
|
59
66
|
action: "sendMessage",
|
|
60
67
|
accountId: accountId ?? void 0,
|
|
61
68
|
to,
|
|
@@ -72,6 +79,8 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
72
79
|
__sessionKey: sessionKey ?? void 0,
|
|
73
80
|
__agentId: agentId ?? void 0
|
|
74
81
|
}, cfg, actionOptions);
|
|
82
|
+
notifyVisibleOutbound(to, sessionKey);
|
|
83
|
+
return result;
|
|
75
84
|
}
|
|
76
85
|
if (action === "upload-file") {
|
|
77
86
|
const to = readSendTarget();
|
|
@@ -84,7 +93,7 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
84
93
|
const suppressEmbeds = readBooleanParam(params, "suppressEmbeds");
|
|
85
94
|
const sessionKey = readStringParam(params, "__sessionKey");
|
|
86
95
|
const agentId = readStringParam(params, "__agentId");
|
|
87
|
-
|
|
96
|
+
const result = await handleDiscordAction({
|
|
88
97
|
action: "sendMessage",
|
|
89
98
|
accountId: accountId ?? void 0,
|
|
90
99
|
to,
|
|
@@ -97,6 +106,8 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
97
106
|
__sessionKey: sessionKey ?? void 0,
|
|
98
107
|
__agentId: agentId ?? void 0
|
|
99
108
|
}, cfg, actionOptions);
|
|
109
|
+
notifyVisibleOutbound(to, sessionKey);
|
|
110
|
+
return result;
|
|
100
111
|
}
|
|
101
112
|
if (action === "poll") {
|
|
102
113
|
const to = readStringParam(params, "to", { required: true });
|
|
@@ -107,7 +118,7 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
107
118
|
integer: true,
|
|
108
119
|
strict: true
|
|
109
120
|
});
|
|
110
|
-
|
|
121
|
+
const result = await handleDiscordAction({
|
|
111
122
|
action: "poll",
|
|
112
123
|
accountId: accountId ?? void 0,
|
|
113
124
|
to,
|
|
@@ -117,6 +128,8 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
117
128
|
durationHours: durationHours ?? void 0,
|
|
118
129
|
content: readStringParam(params, "message")
|
|
119
130
|
}, cfg, actionOptions);
|
|
131
|
+
notifyVisibleOutbound(to);
|
|
132
|
+
return result;
|
|
120
133
|
}
|
|
121
134
|
if (action === "react") {
|
|
122
135
|
const messageId = normalizeOptionalStringifiedId(resolveReactionMessageId({
|
|
@@ -198,7 +211,7 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
198
211
|
const content = readStringParam(params, "message");
|
|
199
212
|
const autoArchiveMinutes = readNumberParam(params, "autoArchiveMin", { integer: true });
|
|
200
213
|
const appliedTags = readStringArrayParam(params, "appliedTags");
|
|
201
|
-
|
|
214
|
+
const result = await handleDiscordAction({
|
|
202
215
|
action: "threadCreate",
|
|
203
216
|
accountId: accountId ?? void 0,
|
|
204
217
|
channelId: resolveChannelId(),
|
|
@@ -208,19 +221,24 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
208
221
|
autoArchiveMinutes,
|
|
209
222
|
appliedTags: appliedTags ?? void 0
|
|
210
223
|
}, cfg, actionOptions);
|
|
224
|
+
notifyVisibleOutbound(resolveChannelId());
|
|
225
|
+
return result;
|
|
211
226
|
}
|
|
212
227
|
if (action === "sticker") {
|
|
228
|
+
const to = readStringParam(params, "to", { required: true });
|
|
213
229
|
const stickerIds = readStringArrayParam(params, "stickerId", {
|
|
214
230
|
required: true,
|
|
215
231
|
label: "sticker-id"
|
|
216
232
|
}) ?? [];
|
|
217
|
-
|
|
233
|
+
const result = await handleDiscordAction({
|
|
218
234
|
action: "sticker",
|
|
219
235
|
accountId: accountId ?? void 0,
|
|
220
|
-
to
|
|
236
|
+
to,
|
|
221
237
|
stickerIds,
|
|
222
238
|
content: readStringParam(params, "message")
|
|
223
239
|
}, cfg, actionOptions);
|
|
240
|
+
notifyVisibleOutbound(to);
|
|
241
|
+
return result;
|
|
224
242
|
}
|
|
225
243
|
if (action === "set-presence") return await handleDiscordAction({
|
|
226
244
|
action: "setPresence",
|
|
@@ -235,7 +253,10 @@ async function handleDiscordMessageAction(ctx) {
|
|
|
235
253
|
ctx,
|
|
236
254
|
resolveChannelId
|
|
237
255
|
});
|
|
238
|
-
if (adminResult !== void 0)
|
|
256
|
+
if (adminResult !== void 0) {
|
|
257
|
+
if (action === "thread-reply") notifyVisibleOutbound(readStringParam(params, "threadId") ?? readTarget());
|
|
258
|
+
return adminResult;
|
|
259
|
+
}
|
|
239
260
|
throw new Error(`Action ${action} is not supported for provider ${providerId}.`);
|
|
240
261
|
}
|
|
241
262
|
//#endregion
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as DiscordChannelConfigSchema } from "./config-schema-
|
|
1
|
+
import { t as DiscordChannelConfigSchema } from "./config-schema-B6sPhXLp.js";
|
|
2
2
|
export { DiscordChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as discordPlugin } from "./channel-
|
|
1
|
+
import { t as discordPlugin } from "./channel-DeO4mqqA.js";
|
|
2
2
|
export { discordPlugin };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, l as resolveDiscordAccountConfig, m as resolveDiscordToken, o as resolveDefaultDiscordAccountId } from "./accounts-DnNVBDfc.js";
|
|
2
|
-
import { i as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-
|
|
3
|
-
import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-
|
|
4
|
-
import { t as resolveDiscordUserAllowlist } from "./resolve-users-
|
|
2
|
+
import { i as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-CpwVKWm5.js";
|
|
3
|
+
import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-CerN-VOT.js";
|
|
4
|
+
import { t as resolveDiscordUserAllowlist } from "./resolve-users-DIG4uHLS.js";
|
|
5
5
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
6
6
|
import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
|
|
7
7
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
package/dist/contract-api.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-
|
|
2
|
-
import { n as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-
|
|
3
|
-
import { n as unsupportedSecretRefSurfacePatterns, t as collectUnsupportedSecretRefConfigCandidates } from "./security-contract-
|
|
4
|
-
import { t as deriveLegacySessionChatType } from "./session-contract-
|
|
5
|
-
import { r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-
|
|
6
|
-
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-
|
|
7
|
-
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-
|
|
1
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-AkgUZQHW.js";
|
|
2
|
+
import { n as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-57_WV6qt.js";
|
|
3
|
+
import { n as unsupportedSecretRefSurfacePatterns, t as collectUnsupportedSecretRefConfigCandidates } from "./security-contract-BWDASKVo.js";
|
|
4
|
+
import { t as deriveLegacySessionChatType } from "./session-contract-Dwhw3RTY.js";
|
|
5
|
+
import { r as createThreadBindingManager, t as __testing } from "./thread-bindings.manager-kjSGaifo.js";
|
|
6
|
+
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-mr3WFi1h.js";
|
|
7
|
+
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Dx3j4a0l.js";
|
|
8
8
|
export { collectDiscordSecurityAuditFindings, collectRuntimeConfigAssignments, collectUnsupportedSecretRefConfigCandidates, createThreadBindingManager, deriveLegacySessionChatType, __testing as discordThreadBindingTesting, legacyConfigRules, listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig, normalizeCompatibilityConfig, secretTargetRegistryEntries, unsupportedSecretRefSurfacePatterns };
|
|
@@ -229,7 +229,7 @@ function createDiscordApprovalCapability(configOverride) {
|
|
|
229
229
|
request,
|
|
230
230
|
configOverride
|
|
231
231
|
}),
|
|
232
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
232
|
+
load: async () => (await import("./approval-handler.runtime-B5Dd-jlK.js").then((n) => n.t)).discordApprovalNativeRuntime
|
|
233
233
|
})
|
|
234
234
|
});
|
|
235
235
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-
|
|
1
|
+
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-mr3WFi1h.js";
|
|
2
2
|
export { listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { o as resolveDefaultDiscordAccountId } from "./accounts-DnNVBDfc.js";
|
|
2
2
|
import { t as inspectDiscordAccount } from "./account-inspect-B_N30NV0.js";
|
|
3
|
-
import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-
|
|
4
|
-
import { n as normalizeCompatibilityConfig } from "./doctor-contract-
|
|
5
|
-
import { t as isDiscordMutableAllowEntry } from "./security-doctor-
|
|
3
|
+
import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-CpwVKWm5.js";
|
|
4
|
+
import { n as normalizeCompatibilityConfig } from "./doctor-contract-AkgUZQHW.js";
|
|
5
|
+
import { t as isDiscordMutableAllowEntry } from "./security-doctor-DepqtNCI.js";
|
|
6
6
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { collectProviderDangerousNameMatchingScopes } from "openclaw/plugin-sdk/runtime-doctor";
|
|
8
8
|
//#region extensions/discord/src/doctor.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-
|
|
1
|
+
import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-nClS_TQx.js";
|
|
2
2
|
import { asObjectRecord, normalizeLegacyChannelAliases } from "openclaw/plugin-sdk/runtime-doctor";
|
|
3
3
|
//#region extensions/discord/src/doctor-contract.ts
|
|
4
4
|
const LEGACY_TTS_PROVIDER_KEYS = [
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-
|
|
1
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-AkgUZQHW.js";
|
|
2
2
|
export { legacyConfigRules, normalizeCompatibilityConfig };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
//#region extensions/discord/src/inbound-event-delivery.ts
|
|
2
|
+
const DISCORD_INBOUND_EVENT_DELIVERY_KEY = "__openclawInboundEventDelivery";
|
|
3
|
+
const registry = /* @__PURE__ */ new Map();
|
|
4
|
+
function normalizeDiscordDeliveryTarget(value) {
|
|
5
|
+
return value.trim().replace(/^discord:/iu, "").replace(/^channel:/iu, "").toLowerCase();
|
|
6
|
+
}
|
|
7
|
+
function resolveDiscordInboundEventDeliveryCorrelationKey(sessionKey, inboundEventKind) {
|
|
8
|
+
const key = sessionKey?.trim();
|
|
9
|
+
if (!key) return;
|
|
10
|
+
return inboundEventKind === "room_event" ? `${key}:room_event` : key;
|
|
11
|
+
}
|
|
12
|
+
function beginDiscordInboundEventDeliveryCorrelation(sessionKey, event, options) {
|
|
13
|
+
const key = resolveDiscordInboundEventDeliveryCorrelationKey(sessionKey, options?.inboundEventKind);
|
|
14
|
+
if (!key) return () => {};
|
|
15
|
+
registry.set(key, event);
|
|
16
|
+
return () => {
|
|
17
|
+
if (registry.get(key) === event) registry.delete(key);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function notifyDiscordInboundEventOutboundSuccess(params) {
|
|
21
|
+
const key = resolveDiscordInboundEventDeliveryCorrelationKey(params.sessionKey, params.inboundEventKind);
|
|
22
|
+
if (!key) return;
|
|
23
|
+
const event = registry.get(key);
|
|
24
|
+
if (!event || normalizeDiscordDeliveryTarget(event.outboundTo) !== normalizeDiscordDeliveryTarget(params.to)) return;
|
|
25
|
+
if (event.outboundAccountId && params.accountId && params.accountId !== event.outboundAccountId) return;
|
|
26
|
+
registry.delete(key);
|
|
27
|
+
event.markInboundEventDelivered();
|
|
28
|
+
}
|
|
29
|
+
function readRecord(value) {
|
|
30
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
31
|
+
}
|
|
32
|
+
function readString(value) {
|
|
33
|
+
return typeof value === "string" && value.trim() ? value.trim() : void 0;
|
|
34
|
+
}
|
|
35
|
+
function withDiscordInboundEventDeliveryMetadata(payload, params) {
|
|
36
|
+
const sessionKey = params.sessionKey?.trim();
|
|
37
|
+
if (!sessionKey || params.inboundEventKind !== "room_event") return payload;
|
|
38
|
+
const channelData = readRecord(payload.channelData) ?? {};
|
|
39
|
+
const discordData = readRecord(channelData.discord) ?? {};
|
|
40
|
+
return {
|
|
41
|
+
...payload,
|
|
42
|
+
channelData: {
|
|
43
|
+
...channelData,
|
|
44
|
+
discord: {
|
|
45
|
+
...discordData,
|
|
46
|
+
[DISCORD_INBOUND_EVENT_DELIVERY_KEY]: {
|
|
47
|
+
sessionKey,
|
|
48
|
+
inboundEventKind: params.inboundEventKind
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function notifyDiscordInboundEventOutboundPayloadSuccess(params) {
|
|
55
|
+
const metadata = readRecord(readRecord(readRecord(params.payload.channelData)?.discord)?.[DISCORD_INBOUND_EVENT_DELIVERY_KEY]);
|
|
56
|
+
if (!metadata) return;
|
|
57
|
+
notifyDiscordInboundEventOutboundSuccess({
|
|
58
|
+
sessionKey: readString(metadata.sessionKey),
|
|
59
|
+
inboundEventKind: readString(metadata.inboundEventKind),
|
|
60
|
+
to: params.to,
|
|
61
|
+
accountId: params.accountId
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
export { withDiscordInboundEventDeliveryMetadata as i, notifyDiscordInboundEventOutboundPayloadSuccess as n, notifyDiscordInboundEventOutboundSuccess as r, beginDiscordInboundEventDeliveryCorrelation as t };
|
|
@@ -3,8 +3,8 @@ import { c as resolveDiscordAccountAllowFrom } from "./accounts-DnNVBDfc.js";
|
|
|
3
3
|
import { a as normalizeDiscordSlug, b as formatDiscordUserTag, m as resolveDiscordOwnerAccess } from "./allow-list-CBI-M84K.js";
|
|
4
4
|
import { i as formatMention } from "./send.outbound-BKh71kjw.js";
|
|
5
5
|
import { t as getDiscordRuntime } from "./runtime-Tqtvj5GX.js";
|
|
6
|
-
import { o as authorizeDiscordVoiceIngress, u as resolveDiscordVoiceEnabled } from "./provider-
|
|
7
|
-
import { t as buildDiscordGroupSystemPrompt } from "./inbound-context-
|
|
6
|
+
import { o as authorizeDiscordVoiceIngress, u as resolveDiscordVoiceEnabled } from "./provider-BYIVfxV_.js";
|
|
7
|
+
import { t as buildDiscordGroupSystemPrompt } from "./inbound-context-CzEAvKgx.js";
|
|
8
8
|
import { createRequire } from "node:module";
|
|
9
9
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
10
10
|
import { resolveAgentRoute } from "openclaw/plugin-sdk/routing";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { N as createDiscordRestClient } from "./send.shared-Bdj-DP6-.js";
|
|
2
|
-
import { d as resolveDiscordChannelNameSafe, l as resolveDiscordChannelIdSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-
|
|
3
|
-
import { a as mergeAbortSignals } from "./timeouts-
|
|
4
|
-
import { c as hasDiscordMessageStickers, d as resolveDiscordMessageChannelId, r as resolveDiscordMessageText } from "./message-utils-
|
|
5
|
-
import { t as sendTyping } from "./typing-
|
|
2
|
+
import { d as resolveDiscordChannelNameSafe, l as resolveDiscordChannelIdSafe, p as resolveDiscordChannelParentSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-BQJf05t-.js";
|
|
3
|
+
import { a as mergeAbortSignals } from "./timeouts-CEwuGaWT.js";
|
|
4
|
+
import { c as hasDiscordMessageStickers, d as resolveDiscordMessageChannelId, r as resolveDiscordMessageText } from "./message-utils-BZoXOhcI.js";
|
|
5
|
+
import { t as sendTyping } from "./typing-DudlJ-Fv.js";
|
|
6
6
|
import { danger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
7
7
|
import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
8
8
|
import { resolveBatchedReplyThreadingPolicy } from "openclaw/plugin-sdk/reply-reference";
|
|
@@ -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-B9kCtqjZ.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-
|
|
176
|
+
messagePreflightRuntimePromise ??= import("./message-handler.preflight-DPcejg12.js");
|
|
177
177
|
return await messagePreflightRuntimePromise;
|
|
178
178
|
}
|
|
179
179
|
function isNonEmptyString(value) {
|
package/dist/{message-handler.preflight-BMgBVbmR.js → message-handler.preflight-DPcejg12.js}
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { A as Message, c as discord_exports, mt as getChannelMessage } from "./send.receipt-nKLxvA1s.js";
|
|
2
2
|
import { o as resolveDefaultDiscordAccountId } from "./accounts-DnNVBDfc.js";
|
|
3
3
|
import { S as resolveTimestampMs, _ as resolveGroupDmAllow, a as normalizeDiscordSlug, b as formatDiscordUserTag, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, f as resolveDiscordMemberAccessState, g as resolveDiscordShouldRequireMention, i as normalizeDiscordDisplaySlug, n as isDiscordGroupAllowedByPolicy, x as resolveDiscordSystemLocation } from "./allow-list-CBI-M84K.js";
|
|
4
|
-
import { t as resolveDiscordConversationIdentity } from "./conversation-identity-
|
|
5
|
-
import { l as isRecentlyUnboundThreadWebhookMessage } from "./thread-bindings.state-
|
|
6
|
-
import { d as resolveDiscordChannelNameSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-
|
|
7
|
-
import "./thread-bindings-
|
|
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-
|
|
9
|
-
import { d as resolveDiscordMessageChannelId, l as resolveDiscordMessageStickers, o as resolveMediaList, r as resolveDiscordMessageText, u as resolveDiscordChannelInfo } from "./message-utils-
|
|
10
|
-
import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-
|
|
4
|
+
import { t as resolveDiscordConversationIdentity } from "./conversation-identity-Bpwp-7uO.js";
|
|
5
|
+
import { l as isRecentlyUnboundThreadWebhookMessage } from "./thread-bindings.state-CSphZOiL.js";
|
|
6
|
+
import { d as resolveDiscordChannelNameSafe, u as resolveDiscordChannelInfoSafe } from "./thread-bindings.discord-api-BQJf05t-.js";
|
|
7
|
+
import "./thread-bindings-CqKojFDg.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-BYIVfxV_.js";
|
|
9
|
+
import { d as resolveDiscordMessageChannelId, l as resolveDiscordMessageStickers, o as resolveMediaList, r as resolveDiscordMessageText, u as resolveDiscordChannelInfo } from "./message-utils-BZoXOhcI.js";
|
|
10
|
+
import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-DC0FdEcU.js";
|
|
11
11
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
12
12
|
import { getChildLogger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
13
13
|
import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
|
|
@@ -15,10 +15,11 @@ import { formatAllowlistMatchMeta } from "openclaw/plugin-sdk/allow-from";
|
|
|
15
15
|
import { isDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
|
|
16
16
|
import { enqueueSystemEvent } from "openclaw/plugin-sdk/system-event-runtime";
|
|
17
17
|
import { mimeTypeFromFilePath } from "openclaw/plugin-sdk/media-mime";
|
|
18
|
-
import { buildMentionRegexes, implicitMentionKindWhen, logInboundDrop, matchesMentionWithExplicit, resolveInboundMentionDecision, toInboundMediaFacts } from "openclaw/plugin-sdk/channel-inbound";
|
|
18
|
+
import { buildMentionRegexes, classifyChannelInboundEvent, implicitMentionKindWhen, logInboundDrop, matchesMentionWithExplicit, resolveInboundMentionDecision, resolveUnmentionedGroupInboundPolicy, toInboundMediaFacts } from "openclaw/plugin-sdk/channel-inbound";
|
|
19
19
|
import { logDebug } from "openclaw/plugin-sdk/logging-core";
|
|
20
20
|
import { recordDroppedChannelTurnHistory } from "openclaw/plugin-sdk/inbound-reply-dispatch";
|
|
21
21
|
import { hasControlCommand } from "openclaw/plugin-sdk/command-detection";
|
|
22
|
+
import { isAbortRequestText } from "openclaw/plugin-sdk/command-primitives-runtime";
|
|
22
23
|
import { shouldHandleTextCommands } from "openclaw/plugin-sdk/command-surface";
|
|
23
24
|
//#region extensions/discord/src/monitor/message-handler.dm-preflight.ts
|
|
24
25
|
let conversationRuntimePromise$1;
|
|
@@ -426,19 +427,19 @@ let preflightAudioRuntimePromise;
|
|
|
426
427
|
let systemEventsRuntimePromise;
|
|
427
428
|
let discordThreadingRuntimePromise;
|
|
428
429
|
async function loadPluralKitRuntime() {
|
|
429
|
-
pluralkitRuntimePromise ??= import("./pluralkit-
|
|
430
|
+
pluralkitRuntimePromise ??= import("./pluralkit-BHV93ojA.js").then((n) => n.n);
|
|
430
431
|
return await pluralkitRuntimePromise;
|
|
431
432
|
}
|
|
432
433
|
async function loadPreflightAudioRuntime() {
|
|
433
|
-
preflightAudioRuntimePromise ??= import("./preflight-audio-
|
|
434
|
+
preflightAudioRuntimePromise ??= import("./preflight-audio-B0keJeQe.js");
|
|
434
435
|
return await preflightAudioRuntimePromise;
|
|
435
436
|
}
|
|
436
437
|
async function loadSystemEventsRuntime() {
|
|
437
|
-
systemEventsRuntimePromise ??= import("./system-events-
|
|
438
|
+
systemEventsRuntimePromise ??= import("./system-events-CEehp53f.js");
|
|
438
439
|
return await systemEventsRuntimePromise;
|
|
439
440
|
}
|
|
440
441
|
async function loadDiscordThreadingRuntime() {
|
|
441
|
-
discordThreadingRuntimePromise ??= import("./provider-
|
|
442
|
+
discordThreadingRuntimePromise ??= import("./provider-BYIVfxV_.js").then((n) => n.v);
|
|
442
443
|
return await discordThreadingRuntimePromise;
|
|
443
444
|
}
|
|
444
445
|
function isPreflightAborted(abortSignal) {
|
|
@@ -921,6 +922,7 @@ async function preflightDiscordMessage(params) {
|
|
|
921
922
|
surface: "discord"
|
|
922
923
|
});
|
|
923
924
|
const hasControlCommandInMessage = hasControlCommand(baseText, params.cfg);
|
|
925
|
+
const hasAbortRequest = isAbortRequestText(baseText);
|
|
924
926
|
if (!isDirectMessage) {
|
|
925
927
|
const commandAccess = await resolveDiscordTextCommandAccess({
|
|
926
928
|
accountId: params.accountId,
|
|
@@ -965,6 +967,16 @@ async function preflightDiscordMessage(params) {
|
|
|
965
967
|
}
|
|
966
968
|
});
|
|
967
969
|
const effectiveWasMentioned = mentionDecision.effectiveWasMentioned;
|
|
970
|
+
const inboundEventKind = classifyChannelInboundEvent({
|
|
971
|
+
conversation: { kind: isDirectMessage ? "direct" : isGroupDm ? "group" : "channel" },
|
|
972
|
+
unmentionedGroupPolicy: resolveUnmentionedGroupInboundPolicy({
|
|
973
|
+
cfg: params.cfg,
|
|
974
|
+
agentId: effectiveRoute.agentId
|
|
975
|
+
}),
|
|
976
|
+
wasMentioned: effectiveWasMentioned,
|
|
977
|
+
hasControlCommand: hasControlCommandInMessage,
|
|
978
|
+
hasAbortRequest
|
|
979
|
+
});
|
|
968
980
|
logDebug(`[discord-preflight] shouldRequireMention=${shouldRequireMention} baseRequireMention=${shouldRequireMentionByConfig} boundThreadSession=${isBoundThreadSession} mentionDecision.shouldSkip=${mentionDecision.shouldSkip} wasMentioned=${wasMentioned}`);
|
|
969
981
|
if (isGuildMessage && shouldRequireMention) {
|
|
970
982
|
if (mentionDecision.shouldSkip) {
|
|
@@ -1087,9 +1099,11 @@ async function preflightDiscordMessage(params) {
|
|
|
1087
1099
|
channelAllowed,
|
|
1088
1100
|
shouldRequireMention,
|
|
1089
1101
|
hasAnyMention,
|
|
1102
|
+
hasControlCommand: hasControlCommandInMessage,
|
|
1090
1103
|
allowTextCommands,
|
|
1091
1104
|
shouldBypassMention: mentionDecision.shouldBypassMention,
|
|
1092
1105
|
effectiveWasMentioned,
|
|
1106
|
+
inboundEventKind,
|
|
1093
1107
|
canDetectMention,
|
|
1094
1108
|
historyEntry,
|
|
1095
1109
|
botLoopProtection
|