@openclaw/discord 2026.5.24-beta.2 → 2026.5.25-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/action-runtime-api.js +1 -1
- package/dist/api.js +13 -13
- package/dist/{approval-handler.runtime-DFRH9nZ4.js → approval-handler.runtime-BlGs6D0-.js} +3 -3
- package/dist/{audit-D3I68CWK.js → audit-DE8lNdMv.js} +3 -3
- package/dist/{channel-DMgQbhnj.js → channel-CmaowH-7.js} +15 -15
- package/dist/{channel-actions-Cm0QHxsv.js → channel-actions-DICb5UUl.js} +3 -3
- package/dist/{channel-actions.runtime-BP_VU815.js → channel-actions.runtime-92Esj8jy.js} +6 -6
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-Dh16wwV9.js → channel.setup-JaozRxYz.js} +4 -3
- package/dist/{components-BCxyMNaH.js → components-Bpf9ITyn.js} +2 -1
- package/dist/{config-schema-DordNAyp.js → config-schema-CTzLsQlB.js} +2 -2
- package/dist/contract-api.js +4 -4
- package/dist/{conversation-identity-CzE0g3tC.js → conversation-identity-Be5JQPP9.js} +2 -2
- package/dist/{directory-config-CkL6nnqZ.js → directory-config-oK2sOZ2m.js} +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-DZeXDKJ_.js → directory-live-BRjo48ro.js} +1 -1
- package/dist/{doctor-ymCgy8yc.js → doctor-DBPfLj15.js} +3 -2
- package/dist/{doctor-contract-Bia3BmP_.js → doctor-contract-CLMMYrdF.js} +91 -0
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{handle-action.guild-admin-ozP4Jj--.js → handle-action.guild-admin-_LgqCYcN.js} +1 -1
- package/dist/{inbound-event-delivery-DTGIjZVJ.js → inbound-event-delivery-CEPlt2uz.js} +6 -11
- package/dist/index.js +1 -1
- package/dist/{manager.runtime-DfmiNzKh.js → manager.runtime-C5dZwVX1.js} +386 -348
- package/dist/{meeting-notes-source-dVTfnnBi.js → meeting-notes-source-DXpiff3y.js} +1 -1
- package/dist/meeting-notes-source-api.js +1 -1
- package/dist/{message-handler-ix5OBBs1.js → message-handler-DUNd0JjP.js} +6 -6
- package/dist/{message-handler.preflight-BHR7pKU1.js → message-handler.preflight-DHZfoN6e.js} +18 -21
- package/dist/{message-handler.process-BheSnevd.js → message-handler.process-C0xo2jq3.js} +47 -18
- package/dist/{message-utils-CEaELqGw.js → message-utils-DxHZcpPf.js} +3 -3
- package/dist/{outbound-adapter-BVTo8aVg.js → outbound-adapter-C8lzfSt6.js} +7 -7
- package/dist/{pluralkit-BX81hJh4.js → pluralkit-CTbOoDPp.js} +1 -1
- package/dist/{provider-CPLDWYC9.js → provider-D-XVxGT7.js} +42 -30
- package/dist/{provider-session.runtime-CwgJI6LP.js → provider-session.runtime-C_z8oLu7.js} +3 -3
- package/dist/provider.runtime-xwgFlddx.js +2 -0
- package/dist/{resolve-channels-BQl2WT8v.js → resolve-channels-CIV0C8ST.js} +1 -1
- package/dist/{resolve-users-CqW9vVcr.js → resolve-users-LZKYHrJx.js} +1 -1
- package/dist/{runtime-ZBAq7Trm.js → runtime-DBkHf0qH.js} +7 -7
- package/dist/runtime-api.actions.js +2 -2
- package/dist/runtime-api.js +18 -18
- package/dist/runtime-api.lookup.js +4 -4
- package/dist/runtime-api.monitor-DgBpOYpt.js +5 -0
- package/dist/runtime-api.monitor.js +4 -4
- package/dist/runtime-api.send.js +5 -5
- package/dist/runtime-api.threads.js +3 -3
- package/dist/{security-audit-C_fzlczo.js → security-audit-Bh_65L5C.js} +1 -4
- package/dist/security-audit-contract-api.js +1 -1
- package/dist/{security-audit.runtime-Dt4zoGpL.js → security-audit.runtime-CpPdDNEt.js} +1 -1
- package/dist/{send-CVjV4H6l.js → send-CM1NFFrZ.js} +6 -6
- package/dist/{send.components-BpnERIQ0.js → send.components-swKESEWc.js} +9 -9
- package/dist/{send.outbound-CWhhKank.js → send.outbound-BHQPWbwU.js} +5 -5
- package/dist/{send.receipt--EtaMe11.js → send.receipt-D_6lR7zH.js} +30 -30
- package/dist/{send.shared-CsGHs6ft.js → send.shared-aYGYz83q.js} +8 -5
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{shared-DFP_4nlg.js → shared-BwF8ShpE.js} +4 -4
- package/dist/{subagent-hooks-BLRmOFEa.js → subagent-hooks-DHA_1pBI.js} +2 -2
- package/dist/subagent-hooks-api.js +1 -1
- package/dist/{system-events-sMHIu6aa.js → system-events-Cr3EqBah.js} +1 -1
- package/dist/{target-resolver-QZP1tC8H.js → target-resolver-CVgOsap6.js} +2 -2
- package/dist/targets-CNDNKpqQ.js +3 -0
- package/dist/test-api.js +3 -3
- package/dist/{thread-bindings-DeBPNv4D.js → thread-bindings-Dw4wcHWn.js} +6 -6
- package/dist/{thread-bindings.discord-api-CaiGJbEP.js → thread-bindings.discord-api-xCfun-pQ.js} +4 -4
- package/dist/{thread-bindings.manager-ANA-Hk_y.js → thread-bindings.manager-UJ5FvZfO.js} +3 -3
- package/dist/{typing-tLlUYdt6.js → typing-BhIpRSfR.js} +1 -1
- package/node_modules/discord-api-types/CHANGELOG.md +9 -0
- package/node_modules/discord-api-types/_generated_/rest/v10/interfaces.d.ts +3 -2
- package/node_modules/discord-api-types/_generated_/rest/v10/interfaces.d.ts.map +1 -1
- package/node_modules/discord-api-types/_generated_/rest/v9/interfaces.d.ts +3 -2
- package/node_modules/discord-api-types/_generated_/rest/v9/interfaces.d.ts.map +1 -1
- package/node_modules/discord-api-types/package.json +8 -8
- package/node_modules/discord-api-types/payloads/v10/message.d.ts +2 -2
- package/node_modules/discord-api-types/payloads/v10/oauth2.d.ts +7 -0
- package/node_modules/discord-api-types/payloads/v10/oauth2.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v10/oauth2.js +7 -0
- package/node_modules/discord-api-types/payloads/v10/oauth2.js.map +1 -1
- package/node_modules/discord-api-types/payloads/v10/user.d.ts +1 -0
- package/node_modules/discord-api-types/payloads/v10/user.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v10/user.js.map +1 -1
- package/node_modules/discord-api-types/payloads/v9/message.d.ts +2 -2
- package/node_modules/discord-api-types/payloads/v9/oauth2.d.ts +7 -0
- package/node_modules/discord-api-types/payloads/v9/oauth2.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v9/oauth2.js +7 -0
- package/node_modules/discord-api-types/payloads/v9/oauth2.js.map +1 -1
- package/node_modules/discord-api-types/payloads/v9/user.d.ts +1 -0
- package/node_modules/discord-api-types/payloads/v9/user.d.ts.map +1 -1
- package/node_modules/discord-api-types/payloads/v9/user.js.map +1 -1
- package/node_modules/discord-api-types/rest/v10/index.d.ts.map +1 -1
- package/node_modules/discord-api-types/rest/v10/index.js +3 -2
- package/node_modules/discord-api-types/rest/v10/index.js.map +1 -1
- package/node_modules/discord-api-types/rest/v10/oauth2.d.ts +9 -2
- package/node_modules/discord-api-types/rest/v10/oauth2.d.ts.map +1 -1
- package/node_modules/discord-api-types/rest/v10/user.d.ts +4 -0
- package/node_modules/discord-api-types/rest/v10/user.d.ts.map +1 -1
- package/node_modules/discord-api-types/rest/v9/index.d.ts.map +1 -1
- package/node_modules/discord-api-types/rest/v9/index.js +3 -2
- package/node_modules/discord-api-types/rest/v9/index.js.map +1 -1
- package/node_modules/discord-api-types/rest/v9/oauth2.d.ts +9 -2
- package/node_modules/discord-api-types/rest/v9/oauth2.d.ts.map +1 -1
- package/node_modules/discord-api-types/rest/v9/user.d.ts +4 -0
- package/node_modules/discord-api-types/rest/v9/user.d.ts.map +1 -1
- package/node_modules/libopus-wasm/LICENSE +21 -0
- package/node_modules/libopus-wasm/README.md +87 -0
- package/node_modules/libopus-wasm/THIRD_PARTY_NOTICES.md +12 -0
- package/node_modules/libopus-wasm/dist/generated/libopus.generated.mjs +0 -0
- package/node_modules/libopus-wasm/dist/index.d.ts +47 -0
- package/node_modules/libopus-wasm/dist/index.d.ts.map +1 -0
- package/node_modules/libopus-wasm/dist/index.js +209 -0
- package/node_modules/libopus-wasm/package.json +45 -0
- package/node_modules/ws/lib/receiver.js +54 -0
- package/node_modules/ws/lib/websocket-server.js +8 -0
- package/node_modules/ws/lib/websocket.js +14 -0
- package/node_modules/ws/package.json +1 -1
- package/npm-shrinkwrap.json +22 -18
- package/openclaw.plugin.json +8 -4
- package/package.json +10 -8
- package/dist/provider.runtime-DnKAm3Kg.js +0 -2
- package/dist/runtime-api.monitor-CN7g_Kp7.js +0 -5
- package/dist/targets-DRvCCf1i.js +0 -3
- package/node_modules/opusscript/LICENSE +0 -20
- package/node_modules/opusscript/README.md +0 -53
- package/node_modules/opusscript/build/COPYING.libopus +0 -44
- package/node_modules/opusscript/build/opusscript_native_nasm.js +0 -93
- package/node_modules/opusscript/build/opusscript_native_wasm.js +0 -77
- package/node_modules/opusscript/build/opusscript_native_wasm.wasm +0 -0
- package/node_modules/opusscript/index.d.ts +0 -100
- package/node_modules/opusscript/index.js +0 -120
- package/node_modules/opusscript/package.json +0 -26
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as handleDiscordAction } from "./runtime-
|
|
1
|
+
import { t as handleDiscordAction } from "./runtime-DBkHf0qH.js";
|
|
2
2
|
export { handleDiscordAction };
|
package/dist/api.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Ht as parseDiscordTarget, Ut as resolveDiscordChannelId, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId, o as normalizeDiscordOutboundTarget } from "./send.receipt
|
|
1
|
+
import { Ht as parseDiscordTarget, Ut as resolveDiscordChannelId, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId, o as normalizeDiscordOutboundTarget } from "./send.receipt-D_6lR7zH.js";
|
|
2
2
|
import { a as mergeDiscordAccountConfig, f as resolveDiscordMaxLinesPerMessage, i as listEnabledDiscordAccounts, l as resolveDiscordAccountConfig, o as resolveDefaultDiscordAccountId, r as listDiscordAccountIds, s as resolveDiscordAccount, t as createDiscordActionGate } from "./accounts-dXTfmnSZ.js";
|
|
3
3
|
import { t as inspectDiscordAccount } from "./account-inspect-C4sJZNbI.js";
|
|
4
|
-
import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, c as buildDiscordComponentMessage, d as readDiscordComponentSpec, f as resolveDiscordComponentAttachmentName, g as buildDiscordModalCustomId, h as buildDiscordComponentCustomId, l as buildDiscordComponentMessageFlags, m as DISCORD_MODAL_CUSTOM_ID_KEY, n as formatDiscordComponentEventText, o as DiscordFormModal, p as DISCORD_COMPONENT_CUSTOM_ID_KEY, r as buildDiscordInteractiveComponents, s as createDiscordFormModal, u as DISCORD_COMPONENT_ATTACHMENT_PREFIX, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-
|
|
4
|
+
import { _ as parseDiscordComponentCustomId, b as parseDiscordModalCustomIdForInteraction, c as buildDiscordComponentMessage, d as readDiscordComponentSpec, f as resolveDiscordComponentAttachmentName, g as buildDiscordModalCustomId, h as buildDiscordComponentCustomId, l as buildDiscordComponentMessageFlags, m as DISCORD_MODAL_CUSTOM_ID_KEY, n as formatDiscordComponentEventText, o as DiscordFormModal, p as DISCORD_COMPONENT_CUSTOM_ID_KEY, r as buildDiscordInteractiveComponents, s as createDiscordFormModal, u as DISCORD_COMPONENT_ATTACHMENT_PREFIX, v as parseDiscordComponentCustomIdForInteraction, y as parseDiscordModalCustomId } from "./components-Bpf9ITyn.js";
|
|
5
5
|
import { n as fetchDiscord, r as requestDiscord, t as DiscordApiError } from "./api-Kq7vtaSO.js";
|
|
6
|
-
import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-
|
|
7
|
-
import "./targets-
|
|
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-
|
|
6
|
+
import { i as parseDiscordSendTarget, n as resolveDiscordTarget } from "./target-resolver-CVgOsap6.js";
|
|
7
|
+
import "./targets-CNDNKpqQ.js";
|
|
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-CmaowH-7.js";
|
|
10
10
|
import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-wJgsKPNF.js";
|
|
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-
|
|
11
|
+
import { t as discordSetupPlugin } from "./channel.setup-JaozRxYz.js";
|
|
12
|
+
import { n as handleDiscordSubagentEnded, r as handleDiscordSubagentSpawning, t as handleDiscordSubagentDeliveryTarget } from "./subagent-hooks-DHA_1pBI.js";
|
|
13
|
+
import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-_LgqCYcN.js";
|
|
14
|
+
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-oK2sOZ2m.js";
|
|
15
|
+
import { t as fetchPluralKitMessageInfo } from "./pluralkit-CTbOoDPp.js";
|
|
16
16
|
import { a as resolveDiscordPrivilegedIntentsFromFlags, i as probeDiscord, n as fetchDiscordApplicationSummary, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-DfIM7zSY.js";
|
|
17
|
-
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-
|
|
17
|
+
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Bh_65L5C.js";
|
|
18
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-l_PsHQvX.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-92Esj8jy.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
|
-
import { B as Container, J as Separator, K as Row,
|
|
1
|
+
import { B as Container, J as Separator, K as Row, R as Button, Wt as __exportAll, X as TextDisplay, ft as editChannelMessage, j as serializePayload, nt as createUserDmChannel, st as createChannelMessage, ut as deleteChannelMessage } from "./send.receipt-D_6lR7zH.js";
|
|
2
2
|
import { t as inspectDiscordAccount } from "./account-inspect-C4sJZNbI.js";
|
|
3
|
-
import { M as createDiscordClient, b as stripUndefinedFields } from "./send.shared-
|
|
4
|
-
import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-
|
|
3
|
+
import { M as createDiscordClient, b as stripUndefinedFields } from "./send.shared-aYGYz83q.js";
|
|
4
|
+
import { i as shouldHandleDiscordApprovalRequest, s as isDiscordExecApprovalClientEnabled } from "./conversation-identity-Be5JQPP9.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";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Wt as __exportAll } from "./send.receipt
|
|
1
|
+
import { Wt as __exportAll } from "./send.receipt-D_6lR7zH.js";
|
|
2
2
|
import { t as inspectDiscordAccount } from "./account-inspect-C4sJZNbI.js";
|
|
3
|
-
import { E as fetchChannelPermissionsDiscord } from "./send.shared-
|
|
4
|
-
import "./send-
|
|
3
|
+
import { E as fetchChannelPermissionsDiscord } from "./send.shared-aYGYz83q.js";
|
|
4
|
+
import "./send-CM1NFFrZ.js";
|
|
5
5
|
import { n as collectDiscordAuditChannelIdsForAccount, t as auditDiscordChannelPermissionsWithFetcher } from "./audit-core-xwjIczO0.js";
|
|
6
6
|
//#region extensions/discord/src/audit.ts
|
|
7
7
|
var audit_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Ht as parseDiscordTarget, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId } from "./send.receipt
|
|
1
|
+
import { Ht as parseDiscordTarget, a as normalizeDiscordMessagingTarget, i as looksLikeDiscordTargetId } from "./send.receipt-D_6lR7zH.js";
|
|
2
2
|
import { c as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-dXTfmnSZ.js";
|
|
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-CAJ0wMoV.js";
|
|
4
|
-
import { x as resolveDiscordOutboundSessionRoute } from "./components-
|
|
4
|
+
import { x as resolveDiscordOutboundSessionRoute } from "./components-Bpf9ITyn.js";
|
|
5
5
|
import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.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-Be5JQPP9.js";
|
|
7
7
|
import { r as resolveRequiredDiscordChannelPermissions } from "./audit-core-xwjIczO0.js";
|
|
8
|
-
import { t as discordMessageActions$1 } from "./channel-actions-
|
|
8
|
+
import { t as discordMessageActions$1 } from "./channel-actions-DICb5UUl.js";
|
|
9
9
|
import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-D5gY2ZTE.js";
|
|
10
|
-
import { n as discordOutbound } from "./outbound-adapter-
|
|
11
|
-
import { a as discordSecurityAdapter, i as discordSetupAdapter, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-
|
|
10
|
+
import { n as discordOutbound } from "./outbound-adapter-C8lzfSt6.js";
|
|
11
|
+
import { a as discordSecurityAdapter, i as discordSetupAdapter, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-BwF8ShpE.js";
|
|
12
12
|
import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-wJgsKPNF.js";
|
|
13
13
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
14
14
|
import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
|
|
@@ -114,13 +114,13 @@ let discordProbeRuntimePromise;
|
|
|
114
114
|
let discordAuditModulePromise;
|
|
115
115
|
let discordSendModulePromise;
|
|
116
116
|
let discordDirectoryLiveModulePromise;
|
|
117
|
-
const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-
|
|
118
|
-
const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-
|
|
119
|
-
const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-
|
|
120
|
-
const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-
|
|
121
|
-
const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-
|
|
117
|
+
const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-oK2sOZ2m.js").then((n) => n.t));
|
|
118
|
+
const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-CIV0C8ST.js").then((n) => n.n));
|
|
119
|
+
const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-LZKYHrJx.js").then((n) => n.n));
|
|
120
|
+
const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-UJ5FvZfO.js").then((n) => n.a));
|
|
121
|
+
const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-CVgOsap6.js").then((n) => n.r));
|
|
122
122
|
async function loadDiscordProviderRuntime() {
|
|
123
|
-
discordProviderRuntimePromise ??= import("./provider.runtime-
|
|
123
|
+
discordProviderRuntimePromise ??= import("./provider.runtime-xwgFlddx.js");
|
|
124
124
|
return await discordProviderRuntimePromise;
|
|
125
125
|
}
|
|
126
126
|
async function loadDiscordProbeRuntime() {
|
|
@@ -128,15 +128,15 @@ async function loadDiscordProbeRuntime() {
|
|
|
128
128
|
return await discordProbeRuntimePromise;
|
|
129
129
|
}
|
|
130
130
|
async function loadDiscordAuditModule() {
|
|
131
|
-
discordAuditModulePromise ??= import("./audit-
|
|
131
|
+
discordAuditModulePromise ??= import("./audit-DE8lNdMv.js").then((n) => n.n);
|
|
132
132
|
return await discordAuditModulePromise;
|
|
133
133
|
}
|
|
134
134
|
async function loadDiscordSendModule() {
|
|
135
|
-
discordSendModulePromise ??= import("./send-
|
|
135
|
+
discordSendModulePromise ??= import("./send-CM1NFFrZ.js").then((n) => n.t);
|
|
136
136
|
return await discordSendModulePromise;
|
|
137
137
|
}
|
|
138
138
|
async function loadDiscordDirectoryLiveModule() {
|
|
139
|
-
discordDirectoryLiveModulePromise ??= import("./directory-live-
|
|
139
|
+
discordDirectoryLiveModulePromise ??= import("./directory-live-BRjo48ro.js").then((n) => n.t);
|
|
140
140
|
return await discordDirectoryLiveModulePromise;
|
|
141
141
|
}
|
|
142
142
|
//#endregion
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { r as listDiscordAccountIds, t as createDiscordActionGate } from "./accounts-dXTfmnSZ.js";
|
|
2
2
|
import { t as inspectDiscordAccount } from "./account-inspect-C4sJZNbI.js";
|
|
3
|
-
import { d as readDiscordComponentSpec } from "./components-
|
|
4
|
-
import { i as withDiscordInboundEventDeliveryMetadata } from "./inbound-event-delivery-
|
|
3
|
+
import { d as readDiscordComponentSpec } from "./components-Bpf9ITyn.js";
|
|
4
|
+
import { i as withDiscordInboundEventDeliveryMetadata } from "./inbound-event-delivery-CEPlt2uz.js";
|
|
5
5
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { createUnionActionGate } from "openclaw/plugin-sdk/channel-actions";
|
|
7
7
|
import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
|
|
8
8
|
//#region extensions/discord/src/channel-actions.ts
|
|
9
9
|
let discordChannelActionsRuntimePromise;
|
|
10
10
|
async function loadDiscordChannelActionsRuntime() {
|
|
11
|
-
discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-
|
|
11
|
+
discordChannelActionsRuntimePromise ??= import("./channel-actions.runtime-92Esj8jy.js");
|
|
12
12
|
return await discordChannelActionsRuntimePromise;
|
|
13
13
|
}
|
|
14
14
|
function listDiscoverableDiscordAccounts(cfg) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Ut as resolveDiscordChannelId } from "./send.receipt
|
|
2
|
-
import { i as buildDiscordPresentationComponents, r as buildDiscordInteractiveComponents } from "./components-
|
|
3
|
-
import { t as handleDiscordAction } from "./runtime-
|
|
4
|
-
import "./targets-
|
|
1
|
+
import { Ut as resolveDiscordChannelId } from "./send.receipt-D_6lR7zH.js";
|
|
2
|
+
import { i as buildDiscordPresentationComponents, r as buildDiscordInteractiveComponents } from "./components-Bpf9ITyn.js";
|
|
3
|
+
import { t as handleDiscordAction } from "./runtime-DBkHf0qH.js";
|
|
4
|
+
import "./targets-CNDNKpqQ.js";
|
|
5
5
|
import "./action-runtime-api.js";
|
|
6
|
-
import { r as notifyDiscordInboundEventOutboundSuccess } from "./inbound-event-delivery-
|
|
7
|
-
import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-
|
|
6
|
+
import { r as notifyDiscordInboundEventOutboundSuccess } from "./inbound-event-delivery-CEPlt2uz.js";
|
|
7
|
+
import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-_LgqCYcN.js";
|
|
8
8
|
import { normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
9
9
|
import { resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
|
|
10
10
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as DiscordChannelConfigSchema } from "./config-schema-
|
|
1
|
+
import { t as DiscordChannelConfigSchema } from "./config-schema-CTzLsQlB.js";
|
|
2
2
|
export { DiscordChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as discordPlugin } from "./channel-
|
|
1
|
+
import { t as discordPlugin } from "./channel-CmaowH-7.js";
|
|
2
2
|
export { discordPlugin };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, l as resolveDiscordAccountConfig, m as resolveDiscordToken, o as resolveDefaultDiscordAccountId } from "./accounts-dXTfmnSZ.js";
|
|
2
|
-
import
|
|
3
|
-
import { t as
|
|
4
|
-
import { t as
|
|
2
|
+
import "./channel-api-CAJ0wMoV.js";
|
|
3
|
+
import { i as discordSetupAdapter, t as createDiscordPluginBase } from "./shared-BwF8ShpE.js";
|
|
4
|
+
import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-CIV0C8ST.js";
|
|
5
|
+
import { t as resolveDiscordUserAllowlist } from "./resolve-users-LZKYHrJx.js";
|
|
5
6
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
6
7
|
import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
|
|
7
8
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as Container, F as Modal, G as RoleSelectMenu, H as LinkButton, Ht as parseDiscordTarget, I as RadioGroup, J as Separator, K as Row, L as TextInput, N as CheckboxGroup, P as Label, Q as UserSelectMenu, R as Button, U as MediaGallery, V as File, W as MentionableSelectMenu, Wt as __exportAll, X as TextDisplay, Y as StringSelectMenu, Z as Thumbnail, et as parseCustomId, q as Section, z as ChannelSelectMenu } from "./send.receipt
|
|
1
|
+
import { B as Container, F as Modal, G as RoleSelectMenu, H as LinkButton, Ht as parseDiscordTarget, I as RadioGroup, J as Separator, K as Row, L as TextInput, N as CheckboxGroup, P as Label, Q as UserSelectMenu, R as Button, U as MediaGallery, V as File, W as MentionableSelectMenu, Wt as __exportAll, X as TextDisplay, Y as StringSelectMenu, Z as Thumbnail, et as parseCustomId, q as Section, z as ChannelSelectMenu } from "./send.receipt-D_6lR7zH.js";
|
|
2
2
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { buildOutboundBaseSessionKey } from "openclaw/plugin-sdk/routing";
|
|
4
4
|
import { buildThreadAwareOutboundSessionRoute } from "openclaw/plugin-sdk/channel-core";
|
|
@@ -42,6 +42,7 @@ function resolveDiscordOutboundTargetKindHint(params) {
|
|
|
42
42
|
const target = params.target.trim();
|
|
43
43
|
if (/^channel:/i.test(target)) return "channel";
|
|
44
44
|
if (/^(user:|discord:|@|<@!?)/i.test(target)) return "user";
|
|
45
|
+
return "channel";
|
|
45
46
|
}
|
|
46
47
|
//#endregion
|
|
47
48
|
//#region extensions/discord/src/component-custom-id.ts
|
|
@@ -240,7 +240,7 @@ const DiscordChannelConfigSchema = buildChannelConfigSchema(DiscordConfigSchema,
|
|
|
240
240
|
},
|
|
241
241
|
"voice.realtime.wakeNames": {
|
|
242
242
|
label: "Discord Realtime Wake Names",
|
|
243
|
-
help: "
|
|
243
|
+
help: "One- or two-word activation names that allow OpenAI agent-proxy Discord realtime voice to respond when requireWakeName is enabled."
|
|
244
244
|
},
|
|
245
245
|
"voice.realtime.bootstrapContextFiles": {
|
|
246
246
|
label: "Discord Realtime Bootstrap Context Files",
|
|
@@ -285,7 +285,7 @@ const DiscordChannelConfigSchema = buildChannelConfigSchema(DiscordConfigSchema,
|
|
|
285
285
|
},
|
|
286
286
|
"voice.captureSilenceGraceMs": {
|
|
287
287
|
label: "Discord Voice Capture Silence Grace (ms)",
|
|
288
|
-
help: "Silence window after Discord reports a speaker ended before OpenClaw finalizes the audio segment for transcription. Default:
|
|
288
|
+
help: "Silence window after Discord reports a speaker ended before OpenClaw finalizes the audio segment for transcription. Default: 2000."
|
|
289
289
|
},
|
|
290
290
|
"voice.tts": {
|
|
291
291
|
label: "Discord Voice Text-to-Speech",
|
package/dist/contract-api.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-
|
|
1
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-CLMMYrdF.js";
|
|
2
2
|
import { n as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-BjM-1hr9.js";
|
|
3
3
|
import { n as unsupportedSecretRefSurfacePatterns, t as collectUnsupportedSecretRefConfigCandidates } from "./security-contract-DSHk7I2w.js";
|
|
4
4
|
import { t as deriveLegacySessionChatType } from "./session-contract-BO5tlIdl.js";
|
|
5
|
-
import { i as testing, n as createThreadBindingManager } from "./thread-bindings.manager-
|
|
6
|
-
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-
|
|
7
|
-
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-
|
|
5
|
+
import { i as testing, n as createThreadBindingManager } from "./thread-bindings.manager-UJ5FvZfO.js";
|
|
6
|
+
import { n as listDiscordDirectoryGroupsFromConfig, r as listDiscordDirectoryPeersFromConfig } from "./directory-config-oK2sOZ2m.js";
|
|
7
|
+
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-Bh_65L5C.js";
|
|
8
8
|
export { collectDiscordSecurityAuditFindings, collectRuntimeConfigAssignments, collectUnsupportedSecretRefConfigCandidates, createThreadBindingManager, deriveLegacySessionChatType, testing as discordThreadBindingTesting, legacyConfigRules, listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig, normalizeCompatibilityConfig, secretTargetRegistryEntries, unsupportedSecretRefSurfacePatterns };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ht as parseDiscordTarget } from "./send.receipt
|
|
1
|
+
import { Ht as parseDiscordTarget } from "./send.receipt-D_6lR7zH.js";
|
|
2
2
|
import { r as listDiscordAccountIds, s as resolveDiscordAccount } from "./accounts-dXTfmnSZ.js";
|
|
3
3
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
|
|
@@ -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-BlGs6D0-.js").then((n) => n.t)).discordApprovalNativeRuntime
|
|
233
233
|
})
|
|
234
234
|
});
|
|
235
235
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Wt as __exportAll } from "./send.receipt
|
|
1
|
+
import { Wt as __exportAll } from "./send.receipt-D_6lR7zH.js";
|
|
2
2
|
import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, o as resolveDefaultDiscordAccountId } from "./accounts-dXTfmnSZ.js";
|
|
3
3
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
4
4
|
import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
|
|
@@ -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-oK2sOZ2m.js";
|
|
2
2
|
export { listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Wt as __exportAll } from "./send.receipt
|
|
1
|
+
import { Wt as __exportAll } from "./send.receipt-D_6lR7zH.js";
|
|
2
2
|
import { p as normalizeDiscordToken, s as resolveDiscordAccount } from "./accounts-dXTfmnSZ.js";
|
|
3
3
|
import { n as fetchDiscord } from "./api-Kq7vtaSO.js";
|
|
4
4
|
import { a as normalizeDiscordSlug } from "./allow-list-BnkWtVpA.js";
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { o as resolveDefaultDiscordAccountId } from "./accounts-dXTfmnSZ.js";
|
|
2
2
|
import { t as inspectDiscordAccount } from "./account-inspect-C4sJZNbI.js";
|
|
3
|
-
import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-
|
|
4
|
-
import { n as normalizeCompatibilityConfig } from "./doctor-contract-
|
|
3
|
+
import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-BwF8ShpE.js";
|
|
4
|
+
import { n as normalizeCompatibilityConfig } from "./doctor-contract-CLMMYrdF.js";
|
|
5
5
|
import { t as isDiscordMutableAllowEntry } from "./security-doctor-uUo8hTD5.js";
|
|
6
6
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { collectProviderDangerousNameMatchingScopes } from "openclaw/plugin-sdk/runtime-doctor";
|
|
8
|
+
import "openclaw/plugin-sdk/channel-contract";
|
|
8
9
|
//#region extensions/discord/src/doctor.ts
|
|
9
10
|
function asObjectRecord$1(value) {
|
|
10
11
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-CQ7PsV9J.js";
|
|
2
|
+
import { isSupportedRealtimeVoiceActivationName, normalizeRealtimeVoiceActivationNamePrefix } from "openclaw/plugin-sdk/realtime-voice";
|
|
2
3
|
import { asObjectRecord, normalizeLegacyChannelAliases } from "openclaw/plugin-sdk/runtime-doctor";
|
|
3
4
|
//#region extensions/discord/src/doctor-contract.ts
|
|
4
5
|
const LEGACY_TTS_PROVIDER_KEYS = [
|
|
@@ -47,6 +48,20 @@ function hasLegacyDiscordAccountGuildChannelAgentId(value) {
|
|
|
47
48
|
if (!accounts) return false;
|
|
48
49
|
return Object.values(accounts).some((account) => hasLegacyDiscordGuildChannelAgentId(account));
|
|
49
50
|
}
|
|
51
|
+
function hasUnsupportedRealtimeWakeNamesInVoice(value) {
|
|
52
|
+
const wakeNames = asObjectRecord(asObjectRecord(value)?.realtime)?.wakeNames;
|
|
53
|
+
return Array.isArray(wakeNames) ? wakeNames.length === 0 || wakeNames.some((wakeName) => typeof wakeName === "string" && !isSupportedRealtimeVoiceActivationName(wakeName)) : false;
|
|
54
|
+
}
|
|
55
|
+
function hasUnsupportedDiscordRealtimeWakeNames(value) {
|
|
56
|
+
const entry = asObjectRecord(value);
|
|
57
|
+
if (!entry) return false;
|
|
58
|
+
return hasUnsupportedRealtimeWakeNamesInVoice(entry.voice);
|
|
59
|
+
}
|
|
60
|
+
function hasUnsupportedDiscordAccountRealtimeWakeNames(value) {
|
|
61
|
+
const accounts = asObjectRecord(value);
|
|
62
|
+
if (!accounts) return false;
|
|
63
|
+
return Object.values(accounts).some((account) => hasUnsupportedDiscordRealtimeWakeNames(account));
|
|
64
|
+
}
|
|
50
65
|
function mergeMissing(target, source) {
|
|
51
66
|
for (const [key, value] of Object.entries(source)) {
|
|
52
67
|
if (value === void 0) continue;
|
|
@@ -95,6 +110,62 @@ function migrateLegacyTtsConfig(tts, pathLabel, changes) {
|
|
|
95
110
|
}
|
|
96
111
|
return changed;
|
|
97
112
|
}
|
|
113
|
+
function normalizeUnsupportedRealtimeWakeNames(entry, pathPrefix, changes) {
|
|
114
|
+
const voice = asObjectRecord(entry.voice);
|
|
115
|
+
const realtime = asObjectRecord(voice?.realtime);
|
|
116
|
+
const wakeNames = realtime?.wakeNames;
|
|
117
|
+
if (!voice || !realtime || !Array.isArray(wakeNames)) return {
|
|
118
|
+
entry,
|
|
119
|
+
changed: false
|
|
120
|
+
};
|
|
121
|
+
if (wakeNames.length === 0) {
|
|
122
|
+
const nextRealtime = { ...realtime };
|
|
123
|
+
delete nextRealtime.wakeNames;
|
|
124
|
+
changes.push(`Removed empty ${pathPrefix}.voice.realtime.wakeNames; unset wake names use the default agent/OpenClaw fallback.`);
|
|
125
|
+
return {
|
|
126
|
+
entry: {
|
|
127
|
+
...entry,
|
|
128
|
+
voice: {
|
|
129
|
+
...voice,
|
|
130
|
+
realtime: nextRealtime
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
changed: true
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
let normalized = 0;
|
|
137
|
+
let removed = 0;
|
|
138
|
+
const nextWakeNames = wakeNames.flatMap((wakeName) => {
|
|
139
|
+
if (typeof wakeName !== "string" || isSupportedRealtimeVoiceActivationName(wakeName)) return [wakeName];
|
|
140
|
+
const nextWakeName = normalizeRealtimeVoiceActivationNamePrefix(wakeName);
|
|
141
|
+
if (!nextWakeName) {
|
|
142
|
+
removed += 1;
|
|
143
|
+
return [];
|
|
144
|
+
}
|
|
145
|
+
normalized += 1;
|
|
146
|
+
return [nextWakeName];
|
|
147
|
+
});
|
|
148
|
+
if (normalized === 0 && removed === 0) return {
|
|
149
|
+
entry,
|
|
150
|
+
changed: false
|
|
151
|
+
};
|
|
152
|
+
const dedupedWakeNames = Array.from(new Set(nextWakeNames));
|
|
153
|
+
const nextRealtime = { ...realtime };
|
|
154
|
+
if (dedupedWakeNames.length > 0) nextRealtime.wakeNames = dedupedWakeNames;
|
|
155
|
+
else delete nextRealtime.wakeNames;
|
|
156
|
+
if (normalized > 0) changes.push(`Shortened ${normalized} unsupported ${pathPrefix}.voice.realtime.wakeNames entries to one or two words.`);
|
|
157
|
+
if (removed > 0) changes.push(`Removed ${removed} unsupported ${pathPrefix}.voice.realtime.wakeNames entries with no usable words.`);
|
|
158
|
+
return {
|
|
159
|
+
entry: {
|
|
160
|
+
...entry,
|
|
161
|
+
voice: {
|
|
162
|
+
...voice,
|
|
163
|
+
realtime: nextRealtime
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
changed: true
|
|
167
|
+
};
|
|
168
|
+
}
|
|
98
169
|
function normalizeDiscordGuildChannelAllowAliases(params) {
|
|
99
170
|
const guilds = asObjectRecord(params.entry.guilds);
|
|
100
171
|
if (!guilds) return {
|
|
@@ -264,6 +335,20 @@ const legacyConfigRules = [
|
|
|
264
335
|
],
|
|
265
336
|
message: "channels.discord.accounts.<id>.guilds.<id>.channels.<id>.agentId is legacy; use top-level bindings[] with match.accountId for per-channel Discord agent routing. Run \"openclaw doctor --fix\".",
|
|
266
337
|
match: hasLegacyDiscordAccountGuildChannelAgentId
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
path: ["channels", "discord"],
|
|
341
|
+
message: "channels.discord.voice.realtime.wakeNames entries longer than two words are unsupported; use one- or two-word activation names. Run \"openclaw doctor --fix\".",
|
|
342
|
+
match: hasUnsupportedDiscordRealtimeWakeNames
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
path: [
|
|
346
|
+
"channels",
|
|
347
|
+
"discord",
|
|
348
|
+
"accounts"
|
|
349
|
+
],
|
|
350
|
+
message: "channels.discord.accounts.<id>.voice.realtime.wakeNames entries longer than two words are unsupported; use one- or two-word activation names. Run \"openclaw doctor --fix\".",
|
|
351
|
+
match: hasUnsupportedDiscordAccountRealtimeWakeNames
|
|
267
352
|
}
|
|
268
353
|
];
|
|
269
354
|
function normalizeCompatibilityConfig({ cfg }) {
|
|
@@ -343,6 +428,9 @@ function normalizeCompatibilityConfig({ cfg }) {
|
|
|
343
428
|
});
|
|
344
429
|
nextAccount = normalizedAgentIds.entry;
|
|
345
430
|
accountChanged = accountChanged || normalizedAgentIds.changed;
|
|
431
|
+
const normalizedWakeNames = normalizeUnsupportedRealtimeWakeNames(nextAccount, `channels.discord.accounts.${accountId}`, changes);
|
|
432
|
+
nextAccount = normalizedWakeNames.entry;
|
|
433
|
+
accountChanged = accountChanged || normalizedWakeNames.changed;
|
|
346
434
|
if (!accountChanged) continue;
|
|
347
435
|
nextAccounts[accountId] = nextAccount;
|
|
348
436
|
accountsChanged = true;
|
|
@@ -363,6 +451,9 @@ function normalizeCompatibilityConfig({ cfg }) {
|
|
|
363
451
|
};
|
|
364
452
|
changed = true;
|
|
365
453
|
}
|
|
454
|
+
const normalizedWakeNames = normalizeUnsupportedRealtimeWakeNames(updated, "channels.discord", changes);
|
|
455
|
+
updated = normalizedWakeNames.entry;
|
|
456
|
+
changed = changed || normalizedWakeNames.changed;
|
|
366
457
|
if (!changed) return {
|
|
367
458
|
config: cfg,
|
|
368
459
|
changes: []
|
|
@@ -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-CLMMYrdF.js";
|
|
2
2
|
export { legacyConfigRules, normalizeCompatibilityConfig };
|
package/dist/{handle-action.guild-admin-ozP4Jj--.js → handle-action.guild-admin-_LgqCYcN.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-
|
|
1
|
+
import { a as readDiscordChannelCreateParams, n as isDiscordModerationAction, o as readDiscordChannelEditParams, r as readDiscordModerationCommand, s as readDiscordChannelMoveParams, t as handleDiscordAction } from "./runtime-DBkHf0qH.js";
|
|
2
2
|
import "./action-runtime-api.js";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import { readNumberParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
1
2
|
//#region extensions/discord/src/inbound-event-delivery.ts
|
|
2
3
|
const DISCORD_INBOUND_EVENT_DELIVERY_KEY = "__openclawInboundEventDelivery";
|
|
3
4
|
const registry = /* @__PURE__ */ new Map();
|
|
@@ -26,17 +27,11 @@ function notifyDiscordInboundEventOutboundSuccess(params) {
|
|
|
26
27
|
registry.delete(key);
|
|
27
28
|
event.markInboundEventDelivered();
|
|
28
29
|
}
|
|
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
30
|
function withDiscordInboundEventDeliveryMetadata(payload, params) {
|
|
36
31
|
const sessionKey = params.sessionKey?.trim();
|
|
37
32
|
if (!sessionKey || params.inboundEventKind !== "room_event") return payload;
|
|
38
|
-
const channelData =
|
|
39
|
-
const discordData =
|
|
33
|
+
const channelData = asOptionalRecord(payload.channelData) ?? {};
|
|
34
|
+
const discordData = asOptionalRecord(channelData.discord) ?? {};
|
|
40
35
|
return {
|
|
41
36
|
...payload,
|
|
42
37
|
channelData: {
|
|
@@ -52,11 +47,11 @@ function withDiscordInboundEventDeliveryMetadata(payload, params) {
|
|
|
52
47
|
};
|
|
53
48
|
}
|
|
54
49
|
function notifyDiscordInboundEventOutboundPayloadSuccess(params) {
|
|
55
|
-
const metadata =
|
|
50
|
+
const metadata = asOptionalRecord(asOptionalRecord(asOptionalRecord(params.payload.channelData)?.discord)?.[DISCORD_INBOUND_EVENT_DELIVERY_KEY]);
|
|
56
51
|
if (!metadata) return;
|
|
57
52
|
notifyDiscordInboundEventOutboundSuccess({
|
|
58
|
-
sessionKey:
|
|
59
|
-
inboundEventKind:
|
|
53
|
+
sessionKey: normalizeOptionalString(metadata.sessionKey),
|
|
54
|
+
inboundEventKind: normalizeOptionalString(metadata.inboundEventKind),
|
|
60
55
|
to: params.to,
|
|
61
56
|
accountId: params.accountId
|
|
62
57
|
});
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as discordVoiceMeetingNotesSourceProvider } from "./meeting-notes-source-
|
|
1
|
+
import { t as discordVoiceMeetingNotesSourceProvider } from "./meeting-notes-source-DXpiff3y.js";
|
|
2
2
|
import "./meeting-notes-source-api.js";
|
|
3
3
|
import { registerDiscordSubagentHooks } from "./subagent-hooks-api.js";
|
|
4
4
|
import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|