@openclaw/discord 2026.9.1 → 2026.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-runtime-api.js +1 -1
- package/dist/{activities-api-E-segZn6.js → activities-api-CTcGq3Hf.js} +4 -4
- package/dist/activities-api.js +1 -1
- package/dist/{allow-list-C2JuH-R0.js → allow-list-DBTtR2dz.js} +3 -29
- package/dist/api.js +12 -12
- package/dist/{approval-handler.runtime-CW5k3mSa.js → approval-handler.runtime-DUSe5fyH.js} +5 -5
- package/dist/{audit-B9rydv5a.js → audit-DpPfwoJM.js} +4 -4
- package/dist/{channel-D93LnbTE.js → channel-BHajPgwR.js} +16 -16
- package/dist/{channel-actions.runtime-DMFv4doE.js → channel-actions.runtime-DS8pXo0S.js} +29 -32
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-DTL7kPOM.js → channel.setup-BWmMe1tT.js} +3 -3
- package/dist/command-owners-D78sAoOz.js +10 -0
- package/dist/{components-DmXYIQ26.js → components-BimX47Mq.js} +1 -1
- package/dist/{conversation-binding-route-24afmvEC.js → conversation-binding-route-DuR5NGIx.js} +1 -1
- package/dist/{directory-config-BD4YL7wT.js → directory-config-CD2v2Szs.js} +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-BrFVc1Ds.js → directory-live-DaJzWJ2N.js} +2 -2
- package/dist/{doctor-BUB41_lr.js → doctor-D4HH1inA.js} +6 -3
- package/dist/doctor-contract-api.js +28 -26
- package/dist/{handle-action.guild-admin-B0egstYq.js → handle-action.guild-admin-4We6wWQU.js} +6 -3
- package/dist/index.js +1 -1
- package/dist/{ingress-identity-BCzfPPYM.js → ingress-identity-XNmW-mZS.js} +1 -1
- package/dist/{message-handler-Qdw9c0j4.js → message-handler-DhgBabyU.js} +52 -65
- package/dist/{message-handler.preflight-Dxi2yBfR.js → message-handler.preflight-oZ7dQCd0.js} +12 -12
- package/dist/{message-handler.process-BYDjtxZJ.js → message-handler.process-BzCYf1pa.js} +14 -14
- package/dist/{message-text-BRVqYm-t.js → message-text-DK4NnBg-.js} +1 -1
- package/dist/{outbound-adapter-DEhthWTk.js → outbound-adapter-CtggmGh9.js} +6 -6
- package/dist/{outbound-components-DehyxvA4.js → outbound-components-Dn8SJWMS.js} +3 -3
- package/dist/{outbound-session-route-BFGRF9fE.js → outbound-session-route-Q_HEusBQ.js} +5 -6
- package/dist/{owner-access-yc1sX7Gx.js → owner-access-Cp8r6Ipf.js} +3 -2
- package/dist/{pluralkit-XmmAHoV6.js → pluralkit-BY75YcK0.js} +1 -1
- package/dist/{provider-session.runtime-BA2BPyZ4.js → provider-session.runtime-BL2lHBH7.js} +3 -3
- package/dist/{provider-DuDtKbF8.js → provider-uKmmrDM4.js} +28 -28
- package/dist/provider.runtime-C-IkWF2w.js +2 -0
- package/dist/{realtime-session.runtime-DgSbX6ay.js → realtime-session.runtime-CGYm1t_0.js} +705 -295
- package/dist/{resolve-allowlist-common-BJ5UZNNT.js → resolve-allowlist-common-sKIKy-cF.js} +1 -1
- package/dist/{resolve-channels-CYseD5Uw.js → resolve-channels-CoiMlWy0.js} +3 -3
- package/dist/{resolve-users-DrmhDrqm.js → resolve-users-DJpiokfW.js} +2 -2
- package/dist/{retry-BNCxiyyR.js → retry-DQt1zDgH.js} +238 -184
- package/dist/{runtime-DB7Fb6AU.js → runtime-BHsdEdr5.js} +1 -1
- package/dist/{runtime-BbWNtfyq.js → runtime-Ghtfh5ZA.js} +32 -24
- package/dist/runtime-api.js +18 -18
- package/dist/{send-BnTEIeLE.js → send-CZeWKUiA.js} +3 -3
- package/dist/{send.components-BWVEcjRP.js → send.components-BG5IDABj.js} +4 -4
- package/dist/{send.outbound-b5xwHTlL.js → send.outbound-DHuFUL6W.js} +10 -44
- package/dist/{send.shared-5vxBTagO.js → send.shared-B0n_fWzu.js} +62 -141
- package/dist/{sender-identity-Dt0imZyY.js → sender-identity-B8Ncfi63.js} +1 -1
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{shared-BSJWHEMA.js → shared-C3dKun_X.js} +6 -3
- package/dist/{subagent-hooks-IzQKX4RQ.js → subagent-hooks-ZoQXEI1E.js} +2 -2
- package/dist/subagent-hooks-api.js +1 -1
- package/dist/{system-events-BOiDS8b3.js → system-events-DFF_awl7.js} +2 -2
- package/dist/{target-resolver-BVI8xSSC.js → target-resolver-DLtHDwMK.js} +2 -2
- package/dist/targets-BObRyaKX.js +3 -0
- package/dist/{thread-bindings-D7mcaXQC.js → thread-bindings-DKvsNjQR.js} +5 -5
- package/dist/{thread-bindings.manager-B1oySiVc.js → thread-bindings.manager-pbbRT5gb.js} +5 -5
- package/dist/{thread-bindings.session-updates-CC7HoQvt.js → thread-bindings.session-updates-t6jeFB1-.js} +1 -1
- package/dist/{thread-bindings.state-D8OMdk4O.js → thread-bindings.state-DtgOqsbX.js} +34 -1
- package/dist/{threading-OQnL-0Zx.js → threading-BCx49X-6.js} +3 -3
- package/dist/{transcripts-source-D8lH7AkN.js → transcripts-source-Dc6Nnli5.js} +48 -5
- package/dist/transcripts-source-api.js +1 -1
- package/dist/{typing-C9q0AQMb.js → typing-CuopV-Hi.js} +1 -1
- package/dist/{voice-runtime-Dfhjh1tV.js → voice-runtime-BQnILUbG.js} +82 -35
- package/node_modules/@discordjs/voice/node_modules/@types/node/README.md +1 -1
- package/node_modules/@discordjs/voice/node_modules/@types/node/buffer.buffer.d.ts +5 -5
- package/node_modules/@discordjs/voice/node_modules/@types/node/crypto.d.ts +2 -2
- package/node_modules/@discordjs/voice/node_modules/@types/node/http.d.ts +16 -0
- package/node_modules/@discordjs/voice/node_modules/@types/node/http2.d.ts +10 -2
- package/node_modules/@discordjs/voice/node_modules/@types/node/package.json +2 -2
- package/node_modules/@discordjs/voice/node_modules/@types/node/process.d.ts +52 -0
- package/node_modules/@discordjs/voice/node_modules/@types/node/quic.d.ts +210 -28
- package/node_modules/@discordjs/voice/node_modules/@types/node/sqlite.d.ts +6 -2
- package/node_modules/@discordjs/voice/node_modules/@types/node/test.d.ts +36 -0
- package/node_modules/typebox/build/format/json_pointer.d.mts +2 -2
- package/node_modules/typebox/build/format/json_pointer.mjs +2 -2
- package/node_modules/typebox/build/format/json_pointer_uri_fragment.d.mts +2 -2
- package/node_modules/typebox/build/format/json_pointer_uri_fragment.mjs +2 -2
- package/node_modules/typebox/build/format/relative_json_pointer.d.mts +2 -2
- package/node_modules/typebox/build/format/relative_json_pointer.mjs +2 -2
- package/node_modules/typebox/build/system/memory/assign.mjs +2 -1
- package/node_modules/typebox/build/system/memory/create.mjs +3 -4
- package/node_modules/typebox/build/system/memory/discard.mjs +2 -2
- package/node_modules/typebox/build/system/memory/freeze.d.mts +4 -0
- package/node_modules/typebox/build/system/memory/freeze.mjs +6 -0
- package/node_modules/typebox/build/system/memory/update.mjs +3 -2
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +3 -2
- package/node_modules/undici/docs/docs/api/EventSource.md +4 -0
- package/node_modules/undici/docs/docs/api/Interceptors.md +7 -3
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +7 -1
- package/node_modules/undici/lib/cache/memory-cache-store.js +2 -2
- package/node_modules/undici/lib/core/symbols.js +2 -0
- package/node_modules/undici/lib/dispatcher/agent.js +7 -2
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +7 -4
- package/node_modules/undici/lib/dispatcher/client-h1.js +12 -4
- package/node_modules/undici/lib/dispatcher/client-h2.js +43 -3
- package/node_modules/undici/lib/dispatcher/client.js +3 -2
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +13 -1
- package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -1
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -0
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +10 -3
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +18 -1
- package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
- package/node_modules/undici/lib/dispatcher/round-robin-pool.js +1 -1
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +91 -21
- package/node_modules/undici/lib/handler/cache-handler.js +29 -5
- package/node_modules/undici/lib/handler/decorator-handler.js +7 -1
- package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
- package/node_modules/undici/lib/handler/redirect-handler.js +21 -4
- package/node_modules/undici/lib/handler/retry-handler.js +148 -30
- package/node_modules/undici/lib/interceptor/cache.js +65 -12
- package/node_modules/undici/lib/interceptor/decompress.js +115 -13
- package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
- package/node_modules/undici/lib/interceptor/dns.js +7 -0
- package/node_modules/undici/lib/interceptor/dump.js +10 -23
- package/node_modules/undici/lib/mock/mock-agent.js +13 -1
- package/node_modules/undici/lib/mock/mock-utils.js +11 -10
- package/node_modules/undici/lib/util/cache.js +45 -3
- package/node_modules/undici/lib/web/cookies/parse.js +150 -147
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
- package/node_modules/undici/lib/web/eventsource/eventsource.js +13 -3
- package/node_modules/undici/lib/web/fetch/index.js +6 -0
- package/node_modules/undici/lib/web/fetch/request.js +2 -3
- package/node_modules/undici/lib/web/fetch/util.js +6 -1
- package/node_modules/undici/lib/web/webidl/index.js +3 -3
- package/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
- package/node_modules/undici/package.json +3 -3
- package/node_modules/undici/types/client.d.ts +10 -0
- package/node_modules/undici/types/interceptors.d.ts +2 -0
- package/node_modules/undici/types/mock-agent.d.ts +11 -10
- package/node_modules/undici/types/socks5-proxy-agent.d.ts +2 -0
- package/openclaw.plugin.json +1 -2
- package/package.json +6 -6
- package/dist/provider.runtime-Db8YwZBv.js +0 -2
- package/dist/targets-DbxVbq8k.js +0 -3
package/dist/runtime-api.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-
|
|
1
|
+
import { n as registerBuiltDiscordComponentMessage, r as sendDiscordComponentMessage, t as editDiscordComponentMessage } from "./send.components-BG5IDABj.js";
|
|
2
2
|
import { r as setDiscordRuntime } from "./runtime-DgnVQ7zW.js";
|
|
3
|
-
import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-
|
|
4
|
-
import { _ as
|
|
5
|
-
import { C as hasAllGuildPermissionsDiscord, G as unregisterGateway, H as clearGateways, S as fetchMemberGuildPermissionsDiscord, T as hasAnyGuildPermissionDiscord, U as getGateway, W as registerGateway, _ as DiscordSendError, x as fetchChannelPermissionsDiscord } from "./send.shared-
|
|
6
|
-
import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-
|
|
3
|
+
import { n as listDiscordDirectoryGroupsLive, r as listDiscordDirectoryPeersLive } from "./directory-live-DaJzWJ2N.js";
|
|
4
|
+
import { _ as resolveGroupDmAllow, a as normalizeDiscordSlug, c as resolveDiscordChannelConfigWithFallback, d as resolveDiscordGuildEntry, g as resolveDiscordShouldRequireMention, n as isDiscordGroupAllowedByPolicy, r as normalizeDiscordAllowList, s as resolveDiscordChannelConfig, t as allowListMatches, u as resolveDiscordCommandAuthorized, v as shouldEmitDiscordReactionNotification } from "./allow-list-DBTtR2dz.js";
|
|
5
|
+
import { C as hasAllGuildPermissionsDiscord, G as unregisterGateway, H as clearGateways, S as fetchMemberGuildPermissionsDiscord, T as hasAnyGuildPermissionDiscord, U as getGateway, W as registerGateway, _ as DiscordSendError, x as fetchChannelPermissionsDiscord } from "./send.shared-B0n_fWzu.js";
|
|
6
|
+
import { n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-DHuFUL6W.js";
|
|
7
7
|
import { i as setPresence, n as getPresence, r as presenceCacheSize, t as clearPresences } from "./presence-cache-z1N8MbJ3.js";
|
|
8
|
-
import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, c as sendWebhookMessageDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as removeRoleDiscord, k as listGuildChannelsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-
|
|
8
|
+
import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, c as sendWebhookMessageDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as removeRoleDiscord, k as listGuildChannelsDiscord, m as listPinsDiscord, n as fetchReactionsDiscord, o as sendTypingDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-CZeWKUiA.js";
|
|
9
9
|
import { a as isAbortError, i as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, l as runDiscordTaskWithTimeout, n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, o as normalizeDiscordInboundWorkerTimeoutMs, r as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, s as normalizeDiscordListenerTimeoutMs, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-D86uWLt_.js";
|
|
10
|
-
import { c as readDiscordChannelMoveParams, i as requiredGuildPermissionForModerationAction, l as readDiscordParentIdParam, n as isDiscordModerationAction, o as readDiscordChannelCreateParams, r as readDiscordModerationCommand, s as readDiscordChannelEditParams, t as handleDiscordAction } from "./runtime-
|
|
11
|
-
import { p as discordMessageActions, t as resolveDiscordOutboundSessionRoute } from "./outbound-session-route-
|
|
12
|
-
import {
|
|
13
|
-
import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-
|
|
14
|
-
import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-
|
|
15
|
-
import { t as resolveDiscordUserAllowlist } from "./resolve-users-
|
|
16
|
-
import { _ as resolveThreadBindingThreadName, g as resolveThreadBindingIntroText, h as formatThreadBindingDurationLabel, m as resolveThreadBindingPersonaFromRecord, n as createThreadBindingManager, p as resolveThreadBindingPersona, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-
|
|
17
|
-
import { a as reconcileAcpThreadBindingsOnStartup, c as resolveDiscordThreadBindingMaxAgeMs, i as listThreadBindingsForAccount, l as resolveThreadBindingsEnabled, n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey, s as resolveDiscordThreadBindingIdleTimeoutMs } from "./thread-bindings-
|
|
10
|
+
import { c as readDiscordChannelMoveParams, i as requiredGuildPermissionForModerationAction, l as readDiscordParentIdParam, n as isDiscordModerationAction, o as readDiscordChannelCreateParams, r as readDiscordModerationCommand, s as readDiscordChannelEditParams, t as handleDiscordAction } from "./runtime-Ghtfh5ZA.js";
|
|
11
|
+
import { p as discordMessageActions, t as resolveDiscordOutboundSessionRoute } from "./outbound-session-route-Q_HEusBQ.js";
|
|
12
|
+
import { b as resolveThreadBindingMaxAgeExpiresAt, v as resolveThreadBindingIdleTimeoutMs, x as resolveThreadBindingMaxAgeMs, y as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-DtgOqsbX.js";
|
|
13
|
+
import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-t6jeFB1-.js";
|
|
14
|
+
import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-CoiMlWy0.js";
|
|
15
|
+
import { t as resolveDiscordUserAllowlist } from "./resolve-users-DJpiokfW.js";
|
|
16
|
+
import { _ as resolveThreadBindingThreadName, g as resolveThreadBindingIntroText, h as formatThreadBindingDurationLabel, m as resolveThreadBindingPersonaFromRecord, n as createThreadBindingManager, p as resolveThreadBindingPersona, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-pbbRT5gb.js";
|
|
17
|
+
import { a as reconcileAcpThreadBindingsOnStartup, c as resolveDiscordThreadBindingMaxAgeMs, i as listThreadBindingsForAccount, l as resolveThreadBindingsEnabled, n as autoBindSpawnedDiscordSubagent, o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey, s as resolveDiscordThreadBindingIdleTimeoutMs } from "./thread-bindings-DKvsNjQR.js";
|
|
18
18
|
import { i as probeDiscord, n as fetchDiscordApplicationSummary, o as resolveDiscordPrivilegedIntentsFromFlags, r as parseApplicationIdFromToken, t as fetchDiscordApplicationId } from "./probe-3ovFAp3b.js";
|
|
19
|
-
import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-
|
|
20
|
-
import { d as resolveDiscordGatewayIntents, f as waitForDiscordGatewayPluginRegistration, p as createDiscordNativeCommand, t as monitorDiscordProvider, u as createDiscordGatewayPlugin, y as registerDiscordListener } from "./provider-
|
|
21
|
-
import { o as sanitizeDiscordThreadName, r as resolveDiscordReplyTarget } from "./threading-
|
|
22
|
-
import { t as createDiscordMessageHandler } from "./message-handler-
|
|
19
|
+
import { r as collectDiscordAuditChannelIds, t as auditDiscordChannelPermissions } from "./audit-DpPfwoJM.js";
|
|
20
|
+
import { d as resolveDiscordGatewayIntents, f as waitForDiscordGatewayPluginRegistration, p as createDiscordNativeCommand, t as monitorDiscordProvider, u as createDiscordGatewayPlugin, y as registerDiscordListener } from "./provider-uKmmrDM4.js";
|
|
21
|
+
import { o as sanitizeDiscordThreadName, r as resolveDiscordReplyTarget } from "./threading-BCx49X-6.js";
|
|
22
|
+
import { t as createDiscordMessageHandler } from "./message-handler-DhgBabyU.js";
|
|
23
23
|
export { DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS, DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, DISCORD_DEFAULT_LISTENER_TIMEOUT_MS, DiscordSendError, addRoleDiscord, allowListMatches, auditDiscordChannelPermissions, autoBindSpawnedDiscordSubagent, banMemberDiscord, clearGateways, clearPresences, collectDiscordAuditChannelIds, createChannelDiscord, createDiscordGatewayPlugin, createDiscordMessageHandler, createDiscordNativeCommand, createNoopThreadBindingManager, createScheduledEventDiscord, createThreadBindingManager, createThreadDiscord, deleteChannelDiscord, deleteMessageDiscord, discordMessageActions, editChannelDiscord, editDiscordComponentMessage, editMessageDiscord, fetchChannelInfoDiscord, fetchChannelPermissionsDiscord, fetchDiscordApplicationId, fetchDiscordApplicationSummary, fetchMemberGuildPermissionsDiscord, fetchMemberInfoDiscord, fetchMessageDiscord, fetchReactionsDiscord, fetchRoleInfoDiscord, fetchVoiceStatusDiscord, formatThreadBindingDurationLabel, getGateway, getPresence, getThreadBindingManager, handleDiscordAction, hasAllGuildPermissionsDiscord, hasAnyGuildPermissionDiscord, isAbortError, isDiscordGroupAllowedByPolicy, isDiscordModerationAction, kickMemberDiscord, listDiscordDirectoryGroupsLive, listDiscordDirectoryPeersLive, listGuildChannelsDiscord, listGuildEmojisDiscord, listPinsDiscord, listScheduledEventsDiscord, listThreadBindingsBySessionKey, listThreadBindingsForAccount, listThreadsDiscord, monitorDiscordProvider, moveChannelDiscord, normalizeDiscordAllowList, normalizeDiscordInboundWorkerTimeoutMs, normalizeDiscordListenerTimeoutMs, normalizeDiscordSlug, parseApplicationIdFromToken, pinMessageDiscord, presenceCacheSize, probeDiscord, reactMessageDiscord, readDiscordChannelCreateParams, readDiscordChannelEditParams, readDiscordChannelMoveParams, readDiscordModerationCommand, readDiscordParentIdParam, readMessagesDiscord, reconcileAcpThreadBindingsOnStartup, registerBuiltDiscordComponentMessage, registerDiscordListener, registerGateway, removeChannelPermissionDiscord, removeOwnReactionsDiscord, removeReactionDiscord, removeRoleDiscord, requiredGuildPermissionForModerationAction, resolveDiscordChannelAllowlist, resolveDiscordChannelConfig, resolveDiscordChannelConfigWithFallback, resolveDiscordCommandAuthorized, resolveDiscordGatewayIntents, resolveDiscordGuildEntry, resolveDiscordOutboundSessionRoute, resolveDiscordPrivilegedIntentsFromFlags, resolveDiscordReplyTarget, resolveDiscordShouldRequireMention, resolveDiscordThreadBindingIdleTimeoutMs, resolveDiscordThreadBindingMaxAgeMs, resolveDiscordUserAllowlist, resolveEventCoverImage, resolveGroupDmAllow, resolveThreadBindingIdleTimeoutMs, resolveThreadBindingInactivityExpiresAt, resolveThreadBindingIntroText, resolveThreadBindingMaxAgeExpiresAt, resolveThreadBindingMaxAgeMs, resolveThreadBindingPersona, resolveThreadBindingPersonaFromRecord, resolveThreadBindingThreadName, resolveThreadBindingsEnabled, runDiscordTaskWithTimeout, sanitizeDiscordThreadName, searchMessagesDiscord, sendDiscordComponentMessage, sendMessageDiscord, sendPollDiscord, sendStickerDiscord, sendTypingDiscord, sendVoiceMessageDiscord, sendWebhookMessageDiscord, setChannelPermissionDiscord, setDiscordRuntime, setPresence, setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey, shouldEmitDiscordReactionNotification, timeoutMemberDiscord, unbindThreadBindingsBySessionKey, unpinMessageDiscord, unregisterGateway, uploadEmojiDiscord, uploadStickerDiscord, waitForDiscordGatewayPluginRegistration };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $t as listGuildEmojis, At as editChannelMessage, B as readDiscordMessage, Bt as unpinChannelMessage, Ct as deleteOwnMessageReaction, Dt as deleteChannel, Et as createThread, Ft as listChannelMessages, Gt as createGuildScheduledEvent, Ht as createGuildBan, I as DiscordError, It as listChannelPins, Jt as getGuild, Kt as createGuildSticker, L as RateLimitError, Lt as pinChannelMessage, Mt as getChannelMessage, Ot as deleteChannelMessage, Pt as listChannelArchivedThreads, Qt as listGuildChannels, R as isUnknownDiscordVoiceStateError, Rt as searchGuildMessages, St as createOwnMessageReaction, Ut as createGuildChannel, V as readRetryAfter, Vt as addGuildMemberRole, Wt as createGuildEmoji, Xt as getGuildVoiceState, Yt as getGuildMember, Zt as listGuildActiveThreads, a as recordDiscordMessageCreateAmbiguity, an as removeGuildMemberRole, c as createDiscordSendReceiptFromResults, en as listGuildRoles, in as removeGuildMember, jt as getChannel, kt as editChannel, l as createDiscordSendResult, n as classifyDiscordDeliveryFailure, nn as moveGuildChannels, o as chunkDiscordTextWithMode, on as timeoutGuildMember, qt as deleteChannelPermission, r as createDiscordRetryRunner, rn as putChannelPermission, sn as __exportAll, tn as listGuildScheduledEvents, wt as listMessageReactionUsers, z as readDiscordCode, zt as sendChannelTyping } from "./retry-
|
|
1
|
+
import { $t as listGuildEmojis, At as editChannelMessage, B as readDiscordMessage, Bt as unpinChannelMessage, Ct as deleteOwnMessageReaction, Dt as deleteChannel, Et as createThread, Ft as listChannelMessages, Gt as createGuildScheduledEvent, Ht as createGuildBan, I as DiscordError, It as listChannelPins, Jt as getGuild, Kt as createGuildSticker, L as RateLimitError, Lt as pinChannelMessage, Mt as getChannelMessage, Ot as deleteChannelMessage, Pt as listChannelArchivedThreads, Qt as listGuildChannels, R as isUnknownDiscordVoiceStateError, Rt as searchGuildMessages, St as createOwnMessageReaction, Ut as createGuildChannel, V as readRetryAfter, Vt as addGuildMemberRole, Wt as createGuildEmoji, Xt as getGuildVoiceState, Yt as getGuildMember, Zt as listGuildActiveThreads, a as recordDiscordMessageCreateAmbiguity, an as removeGuildMemberRole, c as createDiscordSendReceiptFromResults, en as listGuildRoles, in as removeGuildMember, jt as getChannel, kt as editChannel, l as createDiscordSendResult, n as classifyDiscordDeliveryFailure, nn as moveGuildChannels, o as chunkDiscordTextWithMode, on as timeoutGuildMember, qt as deleteChannelPermission, r as createDiscordRetryRunner, rn as putChannelPermission, sn as __exportAll, tn as listGuildScheduledEvents, wt as listMessageReactionUsers, z as readDiscordCode, zt as sendChannelTyping } from "./retry-DQt1zDgH.js";
|
|
2
2
|
import { t as parseDiscordRetryAfterBodySeconds } from "./retry-after-BrLjLUJi.js";
|
|
3
|
-
import { C as hasAllGuildPermissionsDiscord, I as resolveDiscordClientAccountContext, K as parseAndResolveChannelRecipient, L as resolveDiscordRest, M as resolveDiscordSuppressEmbeds, N as createDiscordClient, O as createDiscordMessageNonce, R as DISCORD_REST_TIMEOUT_MS, S as fetchMemberGuildPermissionsDiscord, T as hasAnyGuildPermissionDiscord, _ as DiscordSendError, b as canViewDiscordGuildChannel, g as DISCORD_MAX_STICKER_BYTES, h as DISCORD_MAX_EVENT_COVER_BYTES, i as formatReactionEmoji, k as resolveDiscordMessageFlags, l as resolveChannelId, m as DISCORD_MAX_EMOJI_BYTES, n as buildDiscordTextChunks, o as normalizeEmojiName, p as sendDiscordText, r as buildReactionIdentifier, s as normalizeReactionEmoji, t as buildDiscordSendError, v as canManageGuildMemberRoleDiscord, w as hasAnyChannelPermissionDiscord, x as fetchChannelPermissionsDiscord, y as canManageGuildRoleDiscord } from "./send.shared-
|
|
4
|
-
import { n as sendPollDiscord, o as rewriteDiscordKnownMentions, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-
|
|
3
|
+
import { C as hasAllGuildPermissionsDiscord, I as resolveDiscordClientAccountContext, K as parseAndResolveChannelRecipient, L as resolveDiscordRest, M as resolveDiscordSuppressEmbeds, N as createDiscordClient, O as createDiscordMessageNonce, R as DISCORD_REST_TIMEOUT_MS, S as fetchMemberGuildPermissionsDiscord, T as hasAnyGuildPermissionDiscord, _ as DiscordSendError, b as canViewDiscordGuildChannel, g as DISCORD_MAX_STICKER_BYTES, h as DISCORD_MAX_EVENT_COVER_BYTES, i as formatReactionEmoji, k as resolveDiscordMessageFlags, l as resolveChannelId, m as DISCORD_MAX_EMOJI_BYTES, n as buildDiscordTextChunks, o as normalizeEmojiName, p as sendDiscordText, r as buildReactionIdentifier, s as normalizeReactionEmoji, t as buildDiscordSendError, v as canManageGuildMemberRoleDiscord, w as hasAnyChannelPermissionDiscord, x as fetchChannelPermissionsDiscord, y as canManageGuildRoleDiscord } from "./send.shared-B0n_fWzu.js";
|
|
4
|
+
import { n as sendPollDiscord, o as rewriteDiscordKnownMentions, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-DHuFUL6W.js";
|
|
5
5
|
import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS } from "./timeouts-D86uWLt_.js";
|
|
6
6
|
import fs from "node:fs/promises";
|
|
7
7
|
import { ChannelType } from "discord-api-types/v10";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { At as editChannelMessage, J as serializePayload, Tt as createChannelMessage, l as createDiscordSendResult, sn as __exportAll } from "./retry-
|
|
2
|
-
import { d as buildDiscordComponentMessage, f as buildDiscordComponentMessageFlags, g as resolveDiscordComponentAttachmentName } from "./components-
|
|
1
|
+
import { At as editChannelMessage, J as serializePayload, Tt as createChannelMessage, l as createDiscordSendResult, sn as __exportAll } from "./retry-DQt1zDgH.js";
|
|
2
|
+
import { d as buildDiscordComponentMessage, f as buildDiscordComponentMessageFlags, g as resolveDiscordComponentAttachmentName } from "./components-BimX47Mq.js";
|
|
3
3
|
import { n as getOptionalDiscordRuntime } from "./runtime-DgnVQ7zW.js";
|
|
4
|
-
import { E as SUPPRESS_NOTIFICATIONS_FLAG, K as parseAndResolveChannelRecipient, N as createDiscordClient, O as createDiscordMessageNonce, l as resolveChannelId, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-
|
|
5
|
-
import { t as sendMessageDiscord } from "./send.outbound-
|
|
4
|
+
import { E as SUPPRESS_NOTIFICATIONS_FLAG, K as parseAndResolveChannelRecipient, N as createDiscordClient, O as createDiscordMessageNonce, l as resolveChannelId, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-B0n_fWzu.js";
|
|
5
|
+
import { t as sendMessageDiscord } from "./send.outbound-DHuFUL6W.js";
|
|
6
6
|
import { ChannelType } from "discord-api-types/v10";
|
|
7
7
|
import { asDateTimestampMs, isFutureDateTimestampMs, resolveDateTimestampMs, resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
|
|
8
8
|
import { uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Et as createThread, Tt as createChannelMessage, c as createDiscordSendReceiptFromResults, d as createReusableDiscordReplyReference, l as createDiscordSendResult } from "./retry-
|
|
2
|
-
import { i as normalizeDiscordHandleKey, o as resolveDiscordDirectoryUserId } from "./directory-live-
|
|
3
|
-
import { A as resolveDiscordSendComponents, D as buildDiscordMessageRequest, K as parseAndResolveChannelRecipient, M as resolveDiscordSuppressEmbeds, N as createDiscordClient, O as createDiscordMessageNonce, a as normalizeDiscordPollInput, c as normalizeStickerIds, f as sendDiscordMedia, j as resolveDiscordSendEmbeds, k as resolveDiscordMessageFlags, l as resolveChannelId, n as buildDiscordTextChunks, p as sendDiscordText, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-
|
|
1
|
+
import { Et as createThread, Tt as createChannelMessage, c as createDiscordSendReceiptFromResults, d as createReusableDiscordReplyReference, l as createDiscordSendResult } from "./retry-DQt1zDgH.js";
|
|
2
|
+
import { i as normalizeDiscordHandleKey, o as resolveDiscordDirectoryUserId } from "./directory-live-DaJzWJ2N.js";
|
|
3
|
+
import { A as resolveDiscordSendComponents, D as buildDiscordMessageRequest, K as parseAndResolveChannelRecipient, M as resolveDiscordSuppressEmbeds, N as createDiscordClient, O as createDiscordMessageNonce, a as normalizeDiscordPollInput, c as normalizeStickerIds, f as sendDiscordMedia, j as resolveDiscordSendEmbeds, k as resolveDiscordMessageFlags, l as resolveChannelId, n as buildDiscordTextChunks, p as sendDiscordText, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-B0n_fWzu.js";
|
|
4
4
|
import { ChannelType } from "discord-api-types/v10";
|
|
5
5
|
import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
|
|
6
6
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -10,36 +10,8 @@ import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
|
10
10
|
import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
11
11
|
import { resolveChunkMode } from "openclaw/plugin-sdk/reply-chunking";
|
|
12
12
|
import { fromMarkdown } from "mdast-util-from-markdown";
|
|
13
|
-
import {
|
|
13
|
+
import { convertMarkdownTables } from "openclaw/plugin-sdk/text-chunking";
|
|
14
14
|
//#region extensions/discord/src/markdown.ts
|
|
15
|
-
const DISCORD_FORMAT_PROFILE = FormatCapabilityProfile.define({
|
|
16
|
-
mechanism: "markdown",
|
|
17
|
-
constructs: { table: "fallback" },
|
|
18
|
-
chunk: {
|
|
19
|
-
limit: 2e3,
|
|
20
|
-
unit: "utf16"
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
const DISCORD_BOLD_PROBE_TEXT = "openclaw-discord-bold";
|
|
24
|
-
const DISCORD_BOLD_PROBE = renderMarkdownWithMarkers({
|
|
25
|
-
text: DISCORD_BOLD_PROBE_TEXT,
|
|
26
|
-
styles: [{
|
|
27
|
-
start: 0,
|
|
28
|
-
end: 21,
|
|
29
|
-
style: "bold"
|
|
30
|
-
}],
|
|
31
|
-
links: []
|
|
32
|
-
}, {
|
|
33
|
-
styleMarkers: { bold: {
|
|
34
|
-
open: "**",
|
|
35
|
-
close: "**"
|
|
36
|
-
} },
|
|
37
|
-
escapeText: (value) => value
|
|
38
|
-
}, DISCORD_FORMAT_PROFILE);
|
|
39
|
-
const DISCORD_BOLD_MARKERS = {
|
|
40
|
-
open: DISCORD_BOLD_PROBE.slice(0, DISCORD_BOLD_PROBE.indexOf(DISCORD_BOLD_PROBE_TEXT)),
|
|
41
|
-
close: DISCORD_BOLD_PROBE.slice(DISCORD_BOLD_PROBE.indexOf(DISCORD_BOLD_PROBE_TEXT) + 21)
|
|
42
|
-
};
|
|
43
15
|
const DISCORD_NATIVE_TOKEN_RE = /<a?:[A-Za-z0-9_]+:\d+>|<\/[^>]+:\d+>/giu;
|
|
44
16
|
const DISCORD_URL_START_RE = /(?:[A-Za-z][A-Za-z0-9+.-]*:\/\/|www\.)/giu;
|
|
45
17
|
function findDiscordUrlRanges(markdown) {
|
|
@@ -221,19 +193,13 @@ function normalizeDiscordBold(markdown) {
|
|
|
221
193
|
end
|
|
222
194
|
};
|
|
223
195
|
});
|
|
224
|
-
const edits = [...spans.flatMap((span, spanId) => [{
|
|
225
|
-
spanId,
|
|
226
|
-
start: span.start,
|
|
227
|
-
marker: DISCORD_BOLD_MARKERS.open,
|
|
228
|
-
consume: 2,
|
|
229
|
-
delimiter: true
|
|
230
|
-
}, {
|
|
196
|
+
const edits = [...spans.flatMap((span, spanId) => [span.start, span.end - 2].map((start) => ({
|
|
231
197
|
spanId,
|
|
232
|
-
start
|
|
233
|
-
marker:
|
|
198
|
+
start,
|
|
199
|
+
marker: "**",
|
|
234
200
|
consume: 2,
|
|
235
201
|
delimiter: true
|
|
236
|
-
}
|
|
202
|
+
}))), ...contentEdits].toSorted((left, right) => left.start - right.start);
|
|
237
203
|
const editsBySpan = /* @__PURE__ */ new Map();
|
|
238
204
|
for (const edit of edits) {
|
|
239
205
|
const spanEdits = editsBySpan.get(edit.spanId);
|
|
@@ -742,7 +708,7 @@ async function sendPollDiscord(to, poll, opts) {
|
|
|
742
708
|
async function resolveDiscordStructuredSendContext(to, opts) {
|
|
743
709
|
requireRuntimeConfig(opts.cfg, "Discord structured send");
|
|
744
710
|
const { rest, request, channelId, account: accountInfo } = await resolveDiscordSendTarget(to, opts);
|
|
745
|
-
const content = opts.content
|
|
711
|
+
const content = opts.content;
|
|
746
712
|
return {
|
|
747
713
|
send: async (kind, body) => {
|
|
748
714
|
const result = await request(async () => {
|
|
@@ -760,7 +726,7 @@ async function resolveDiscordStructuredSendContext(to, opts) {
|
|
|
760
726
|
threadId: kind === "poll" ? opts.threadId : void 0
|
|
761
727
|
});
|
|
762
728
|
},
|
|
763
|
-
rewrittenContent: content ? rewriteDiscordKnownMentions(content, {
|
|
729
|
+
rewrittenContent: content?.trim() ? rewriteDiscordKnownMentions(content, {
|
|
764
730
|
accountId: accountInfo.accountId,
|
|
765
731
|
mentionAliases: accountInfo.config.mentionAliases
|
|
766
732
|
}) : void 0,
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { F as RequestClient, J as serializePayload, Jt as getGuild, Nt as getThreadMember, Tt as createChannelMessage, Y as Embed, Yt as getGuildMember, bt as createUserDmChannel, f as resolveDiscordReplyMessageId, jt as getChannel, o as chunkDiscordTextWithMode, q as hasDiscordV2Components, r as createDiscordRetryRunner, xt as getCurrentUser } from "./retry-
|
|
1
|
+
import { F as RequestClient, J as serializePayload, Jt as getGuild, Nt as getThreadMember, Tt as createChannelMessage, Y as Embed, Yt as getGuildMember, bt as createUserDmChannel, f as resolveDiscordReplyMessageId, jt as getChannel, o as chunkDiscordTextWithMode, q as hasDiscordV2Components, r as createDiscordRetryRunner, xt as getCurrentUser } from "./retry-DQt1zDgH.js";
|
|
2
2
|
import { c as resolveDiscordAccount, m as normalizeDiscordToken, o as mergeDiscordAccountConfig } from "./accounts-CwJQoLjM.js";
|
|
3
|
-
import { t as parseAndResolveDiscordTarget } from "./target-resolver-
|
|
3
|
+
import { t as parseAndResolveDiscordTarget } from "./target-resolver-DLtHDwMK.js";
|
|
4
4
|
import { t as isDiscordThreadChannelType } from "./channel-type-CVLZyGYS.js";
|
|
5
5
|
import { ChannelType, MessageFlags, PermissionFlagsBits } from "discord-api-types/v10";
|
|
6
6
|
import { randomBytes } from "node:crypto";
|
|
7
|
-
import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
|
|
8
7
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
9
8
|
import { normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
10
9
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
@@ -646,166 +645,88 @@ function buildDiscordTextChunks(text, opts = {}) {
|
|
|
646
645
|
});
|
|
647
646
|
return resolveTextChunksWithFallback(text, chunks);
|
|
648
647
|
}
|
|
649
|
-
async function
|
|
650
|
-
const
|
|
651
|
-
const chunks = buildDiscordTextChunks(text, {
|
|
652
|
-
maxLinesPerMessage,
|
|
653
|
-
chunkMode,
|
|
654
|
-
maxChars
|
|
655
|
-
});
|
|
648
|
+
async function sendDiscordChunks(params, upload) {
|
|
649
|
+
const chunks = buildDiscordTextChunks(params.text, params);
|
|
656
650
|
if (!chunks.length) chunks.push("");
|
|
657
|
-
const
|
|
658
|
-
|
|
659
|
-
|
|
651
|
+
const platformMessageIds = [];
|
|
652
|
+
let primary;
|
|
653
|
+
for (const [index, chunk] of chunks.entries()) {
|
|
654
|
+
const isFirst = index === 0;
|
|
655
|
+
if (upload && !isFirst && !chunk.trim()) continue;
|
|
656
|
+
const files = isFirst ? upload?.files : void 0;
|
|
657
|
+
const components = resolveDiscordSendComponents({
|
|
658
|
+
...params,
|
|
660
659
|
text: chunk,
|
|
661
660
|
isFirst
|
|
662
661
|
});
|
|
663
|
-
const
|
|
664
|
-
|
|
662
|
+
const embeds = resolveDiscordSendEmbeds({
|
|
663
|
+
...params,
|
|
665
664
|
isFirst
|
|
666
665
|
});
|
|
667
|
-
if (!chunk.trim() && !
|
|
668
|
-
const
|
|
669
|
-
const kind =
|
|
670
|
-
const flags = resolveDiscordMessageFlags({
|
|
671
|
-
silent,
|
|
672
|
-
suppressEmbeds: suppressEmbeds && !chunkEmbeds?.length
|
|
673
|
-
});
|
|
666
|
+
if (!chunk.trim() && !components?.length && !embeds?.length && !files?.length) throw new Error("Message must be non-empty for Discord sends");
|
|
667
|
+
const replyToId = resolveDiscordReplyMessageId(params.reply, isFirst);
|
|
668
|
+
const kind = files ? "media" : components?.length || embeds?.length ? "card" : "text";
|
|
674
669
|
const body = buildDiscordMessageRequest({
|
|
675
670
|
endpoint: "create-message",
|
|
676
671
|
text: chunk,
|
|
677
|
-
components
|
|
678
|
-
embeds
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
672
|
+
components,
|
|
673
|
+
embeds,
|
|
674
|
+
files,
|
|
675
|
+
allowedMentions: params.allowedMentions,
|
|
676
|
+
flags: resolveDiscordMessageFlags({
|
|
677
|
+
silent: params.silent,
|
|
678
|
+
suppressEmbeds: params.suppressEmbeds && !embeds?.length
|
|
679
|
+
}),
|
|
680
|
+
replyTo: replyToId
|
|
682
681
|
});
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
...result,
|
|
698
|
-
platformMessageIds: result.id ? [result.id] : []
|
|
699
|
-
};
|
|
700
|
-
}
|
|
701
|
-
const platformMessageIds = [];
|
|
702
|
-
let last = null;
|
|
703
|
-
for (const [index, chunk] of chunks.entries()) {
|
|
704
|
-
const sent = await sendChunk(chunk, index === 0);
|
|
705
|
-
last = sent.result;
|
|
706
|
-
await onResult?.(last, sent.kind, sent.replyToId);
|
|
707
|
-
if (last.id) platformMessageIds.push(last.id);
|
|
682
|
+
let result;
|
|
683
|
+
try {
|
|
684
|
+
result = await params.request(async () => {
|
|
685
|
+
await params.onPlatformSendDispatch?.();
|
|
686
|
+
params.assertPlatformSendAuthorized?.();
|
|
687
|
+
return createChannelMessage(params.rest, params.channelId, { body });
|
|
688
|
+
}, files ? "media" : "text", { safety: "nonce-protected-create" });
|
|
689
|
+
} catch (error) {
|
|
690
|
+
if (files && upload) return upload.onRejected(error);
|
|
691
|
+
throw error;
|
|
692
|
+
}
|
|
693
|
+
await params.onResult?.(result, kind, replyToId);
|
|
694
|
+
if (result.id) platformMessageIds.push(result.id);
|
|
695
|
+
primary = upload ? primary ?? result : result;
|
|
708
696
|
}
|
|
709
|
-
if (!
|
|
697
|
+
if (!primary) throw new Error("Discord send failed (empty chunk result)");
|
|
710
698
|
return {
|
|
711
|
-
...
|
|
699
|
+
...primary,
|
|
712
700
|
platformMessageIds
|
|
713
701
|
};
|
|
714
702
|
}
|
|
703
|
+
async function sendDiscordText(params) {
|
|
704
|
+
return sendDiscordChunks(params);
|
|
705
|
+
}
|
|
715
706
|
async function sendDiscordMedia(params) {
|
|
716
|
-
const
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
mediaReadFile
|
|
707
|
+
const media = await loadWebMedia(params.mediaUrl, buildOutboundMediaLoadOptions({
|
|
708
|
+
maxBytes: params.maxBytes,
|
|
709
|
+
mediaAccess: params.mediaAccess,
|
|
710
|
+
mediaLocalRoots: params.mediaLocalRoots,
|
|
711
|
+
mediaReadFile: params.mediaReadFile
|
|
722
712
|
}));
|
|
723
|
-
const resolvedFileName = filename?.trim() || media.fileName || (media.contentType ? `upload${extensionForMime(media.contentType) ?? ""}` : "") || "upload";
|
|
724
|
-
|
|
725
|
-
maxLinesPerMessage,
|
|
726
|
-
chunkMode,
|
|
727
|
-
maxChars
|
|
728
|
-
}) : [];
|
|
729
|
-
const caption = chunks[0] ?? "";
|
|
730
|
-
const captionComponents = resolveDiscordSendComponents({
|
|
731
|
-
components,
|
|
732
|
-
text: caption,
|
|
733
|
-
isFirst: true
|
|
734
|
-
});
|
|
735
|
-
const captionEmbeds = resolveDiscordSendEmbeds({
|
|
736
|
-
embeds,
|
|
737
|
-
isFirst: true
|
|
738
|
-
});
|
|
739
|
-
const body = buildDiscordMessageRequest({
|
|
740
|
-
endpoint: "create-message",
|
|
741
|
-
text: caption,
|
|
742
|
-
components: captionComponents,
|
|
743
|
-
embeds: captionEmbeds,
|
|
744
|
-
allowedMentions,
|
|
745
|
-
flags: resolveDiscordMessageFlags({
|
|
746
|
-
silent,
|
|
747
|
-
suppressEmbeds: suppressEmbeds && !captionEmbeds?.length
|
|
748
|
-
}),
|
|
749
|
-
replyTo: resolveDiscordReplyMessageId(reply, true),
|
|
713
|
+
const resolvedFileName = params.filename?.trim() || media.fileName || (media.contentType ? `upload${extensionForMime(media.contentType) ?? ""}` : "") || "upload";
|
|
714
|
+
return sendDiscordChunks(params, {
|
|
750
715
|
files: [{
|
|
751
716
|
data: media.buffer,
|
|
752
717
|
name: resolvedFileName,
|
|
753
718
|
contentType: media.contentType
|
|
754
|
-
}]
|
|
719
|
+
}],
|
|
720
|
+
onRejected(error) {
|
|
721
|
+
if (!isDiscordUploadTooLargeError(error)) throw error;
|
|
722
|
+
return sendDiscordText({
|
|
723
|
+
...params,
|
|
724
|
+
text: buildDiscordUploadTooLargeFallbackText(params.text),
|
|
725
|
+
components: void 0,
|
|
726
|
+
embeds: void 0
|
|
727
|
+
});
|
|
728
|
+
}
|
|
755
729
|
});
|
|
756
|
-
let res;
|
|
757
|
-
try {
|
|
758
|
-
res = await request(async () => {
|
|
759
|
-
await onPlatformSendDispatch?.();
|
|
760
|
-
assertPlatformSendAuthorized?.();
|
|
761
|
-
return createChannelMessage(rest, channelId, { body });
|
|
762
|
-
}, "media", { safety: "nonce-protected-create" });
|
|
763
|
-
} catch (err) {
|
|
764
|
-
if (!isDiscordUploadTooLargeError(err)) throw err;
|
|
765
|
-
return sendDiscordText({
|
|
766
|
-
rest,
|
|
767
|
-
channelId,
|
|
768
|
-
text: buildDiscordUploadTooLargeFallbackText(text),
|
|
769
|
-
reply,
|
|
770
|
-
request,
|
|
771
|
-
maxLinesPerMessage,
|
|
772
|
-
chunkMode,
|
|
773
|
-
silent,
|
|
774
|
-
suppressEmbeds,
|
|
775
|
-
allowedMentions,
|
|
776
|
-
maxChars,
|
|
777
|
-
onResult,
|
|
778
|
-
onPlatformSendDispatch,
|
|
779
|
-
assertPlatformSendAuthorized
|
|
780
|
-
});
|
|
781
|
-
}
|
|
782
|
-
await onResult?.(res, "media", reply?.messageId);
|
|
783
|
-
const platformMessageIds = res.id ? [res.id] : [];
|
|
784
|
-
const followupReply = reply?.scope === "all" ? reply : void 0;
|
|
785
|
-
for (const chunk of chunks.slice(1)) {
|
|
786
|
-
if (!chunk.trim()) continue;
|
|
787
|
-
const followup = await sendDiscordText({
|
|
788
|
-
rest,
|
|
789
|
-
channelId,
|
|
790
|
-
text: chunk,
|
|
791
|
-
reply: followupReply,
|
|
792
|
-
request,
|
|
793
|
-
maxLinesPerMessage,
|
|
794
|
-
chunkMode,
|
|
795
|
-
silent,
|
|
796
|
-
suppressEmbeds,
|
|
797
|
-
allowedMentions,
|
|
798
|
-
maxChars,
|
|
799
|
-
onResult,
|
|
800
|
-
onPlatformSendDispatch,
|
|
801
|
-
assertPlatformSendAuthorized
|
|
802
|
-
});
|
|
803
|
-
for (const id of followup.platformMessageIds) if (id) platformMessageIds.push(id);
|
|
804
|
-
}
|
|
805
|
-
return {
|
|
806
|
-
...res,
|
|
807
|
-
platformMessageIds
|
|
808
|
-
};
|
|
809
730
|
}
|
|
810
731
|
function buildReactionIdentifier(emoji) {
|
|
811
732
|
if (emoji.id && emoji.name) return `${emoji.name}:${emoji.id}`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { b as formatDiscordUserTag } from "./allow-list-DBTtR2dz.js";
|
|
2
2
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
//#region extensions/discord/src/monitor/sender-identity.ts
|
|
4
4
|
function resolveDiscordWebhookId(message) {
|
package/dist/setup-plugin-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as discordSetupPlugin } from "./channel.setup-
|
|
1
|
+
import { t as discordSetupPlugin } from "./channel.setup-BWmMe1tT.js";
|
|
2
2
|
export { discordSetupPlugin };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { c as resolveDiscordAccount, d as resolveDiscordAccountDisabledReason, f as resolveDiscordAccountDmPolicy, l as resolveDiscordAccountAllowFrom, n as isDiscordAccountEnabledForRuntime, o as mergeDiscordAccountConfig, r as listDiscordAccountIds, s as resolveDefaultDiscordAccountId } from "./accounts-CwJQoLjM.js";
|
|
2
2
|
import { t as inspectDiscordAccount } from "./account-inspect-BY-ve3yH.js";
|
|
3
|
-
import { t as discordIngressIdentity } from "./ingress-identity-
|
|
3
|
+
import { t as discordIngressIdentity } from "./ingress-identity-XNmW-mZS.js";
|
|
4
4
|
import { t as DiscordChannelConfigSchema } from "./config-schema-B797-Spt.js";
|
|
5
5
|
import { n as normalizeCompatibilityConfig } from "./doctor-contract-Co5vRCZ6.js";
|
|
6
6
|
import { r as secretTargetRegistryEntries, t as collectRuntimeConfigAssignments } from "./secret-config-contract-DFu9hfU8.js";
|
|
@@ -117,7 +117,7 @@ const DISCORD_LEGACY_CONFIG_RULES = [];
|
|
|
117
117
|
//#endregion
|
|
118
118
|
//#region extensions/discord/src/shared.ts
|
|
119
119
|
const DISCORD_CHANNEL = "discord";
|
|
120
|
-
const loadDiscordDoctorModule = createLazyRuntimeModule(() => import("./doctor-
|
|
120
|
+
const loadDiscordDoctorModule = createLazyRuntimeModule(() => import("./doctor-D4HH1inA.js"));
|
|
121
121
|
const discordDoctor = {
|
|
122
122
|
dmAllowFromMode: "topOnly",
|
|
123
123
|
groupModel: "route",
|
|
@@ -184,7 +184,10 @@ function createDiscordPluginBase(params) {
|
|
|
184
184
|
minChars: 1500,
|
|
185
185
|
idleMs: 1e3
|
|
186
186
|
} },
|
|
187
|
-
reload: {
|
|
187
|
+
reload: {
|
|
188
|
+
configPrefixes: ["channels.discord"],
|
|
189
|
+
noopPrefixes: ["messages.inbound", "messages.ackReactionScope"]
|
|
190
|
+
},
|
|
188
191
|
configSchema: DiscordChannelConfigSchema,
|
|
189
192
|
config: {
|
|
190
193
|
...discordConfigAdapter,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { sn as __exportAll } from "./retry-
|
|
2
|
-
import { o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey } from "./thread-bindings-
|
|
1
|
+
import { sn as __exportAll } from "./retry-DQt1zDgH.js";
|
|
2
|
+
import { o as unbindThreadBindingsBySessionKey, r as listThreadBindingsBySessionKey } from "./thread-bindings-DKvsNjQR.js";
|
|
3
3
|
import { normalizeOptionalLowercaseString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
//#region extensions/discord/src/subagent-hooks.ts
|
|
5
5
|
var subagent_hooks_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
2
2
|
//#region extensions/discord/subagent-hooks-api.ts
|
|
3
|
-
const loadDiscordSubagentHooksModule = createLazyRuntimeModule(() => import("./subagent-hooks-
|
|
3
|
+
const loadDiscordSubagentHooksModule = createLazyRuntimeModule(() => import("./subagent-hooks-ZoQXEI1E.js").then((n) => n.r));
|
|
4
4
|
function registerDiscordSubagentHooks(api) {
|
|
5
5
|
api.on("subagent_ended", async (event) => {
|
|
6
6
|
const { handleDiscordSubagentEnded } = await loadDiscordSubagentHooksModule();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { b as discord_exports } from "./retry-
|
|
2
|
-
import {
|
|
1
|
+
import { b as discord_exports } from "./retry-DQt1zDgH.js";
|
|
2
|
+
import { b as formatDiscordUserTag } from "./allow-list-DBTtR2dz.js";
|
|
3
3
|
//#region extensions/discord/src/monitor/system-events.ts
|
|
4
4
|
function resolveDiscordSystemEvent(message, location) {
|
|
5
5
|
switch (message.type) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { m as allowFromContainsDiscordUserId, sn as __exportAll, v as parseDiscordTarget } from "./retry-
|
|
1
|
+
import { m as allowFromContainsDiscordUserId, sn as __exportAll, v as parseDiscordTarget } from "./retry-DQt1zDgH.js";
|
|
2
2
|
import { c as resolveDiscordAccount, l as resolveDiscordAccountAllowFrom } from "./accounts-CwJQoLjM.js";
|
|
3
|
-
import { a as rememberDiscordDirectoryUser, r as listDiscordDirectoryPeersLive } from "./directory-live-
|
|
3
|
+
import { a as rememberDiscordDirectoryUser, r as listDiscordDirectoryPeersLive } from "./directory-live-DaJzWJ2N.js";
|
|
4
4
|
import { buildMessagingTarget } from "openclaw/plugin-sdk/channel-targets";
|
|
5
5
|
//#region extensions/discord/src/send-target-parsing.ts
|
|
6
6
|
const parseDiscordSendTarget = (raw, options = {}) => parseDiscordTarget(raw, options);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { sn as __exportAll, v as parseDiscordTarget } from "./retry-
|
|
2
|
-
import "./targets-
|
|
3
|
-
import {
|
|
4
|
-
import { n as setThreadBindingMaxAgeBySessionKey, r as resolveBindingIdsForTargetSession, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-
|
|
5
|
-
import { _ as resolveThreadBindingThreadName, g as resolveThreadBindingIntroText, h as formatThreadBindingDurationLabel, m as resolveThreadBindingPersonaFromRecord, n as createThreadBindingManager, o as resolveChannelIdForBinding, p as resolveThreadBindingPersona, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-
|
|
1
|
+
import { sn as __exportAll, v as parseDiscordTarget } from "./retry-DQt1zDgH.js";
|
|
2
|
+
import "./targets-BObRyaKX.js";
|
|
3
|
+
import { S as saveBindingsToDisk, T as shouldPersistBindingMutations, b as resolveThreadBindingMaxAgeExpiresAt, c as getThreadBindingToken, d as normalizeThreadId, f as refreshUnboundThreadWebhookIdentity, h as removeBindingRecord, n as MANAGERS_BY_ACCOUNT_ID, t as BINDINGS_BY_THREAD_ID, v as resolveThreadBindingIdleTimeoutMs$1, x as resolveThreadBindingMaxAgeMs$1, y as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-DtgOqsbX.js";
|
|
4
|
+
import { n as setThreadBindingMaxAgeBySessionKey, r as resolveBindingIdsForTargetSession, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-t6jeFB1-.js";
|
|
5
|
+
import { _ as resolveThreadBindingThreadName, g as resolveThreadBindingIntroText, h as formatThreadBindingDurationLabel, m as resolveThreadBindingPersonaFromRecord, n as createThreadBindingManager, o as resolveChannelIdForBinding, p as resolveThreadBindingPersona, r as getThreadBindingManager, t as createNoopThreadBindingManager } from "./thread-bindings.manager-pbbRT5gb.js";
|
|
6
6
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
7
7
|
import { normalizeOptionalLowercaseString, normalizeOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
8
|
import { resolveThreadBindingIdleTimeoutMs, resolveThreadBindingMaxAgeMs, resolveThreadBindingsEnabled } from "openclaw/plugin-sdk/conversation-runtime";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { jt as getChannel, sn as __exportAll, t as canFallbackDiscordWebhookSend, y as resolveDiscordChannelId, yt as createChannelWebhook } from "./retry-
|
|
2
|
-
import { P as createDiscordRestClient } from "./send.shared-
|
|
3
|
-
import { t as sendMessageDiscord } from "./send.outbound-
|
|
1
|
+
import { jt as getChannel, sn as __exportAll, t as canFallbackDiscordWebhookSend, y as resolveDiscordChannelId, yt as createChannelWebhook } from "./retry-DQt1zDgH.js";
|
|
2
|
+
import { P as createDiscordRestClient } from "./send.shared-B0n_fWzu.js";
|
|
3
|
+
import { t as sendMessageDiscord } from "./send.outbound-DHuFUL6W.js";
|
|
4
4
|
import { t as isDiscordThreadChannelType } from "./channel-type-CVLZyGYS.js";
|
|
5
|
-
import { c as sendWebhookMessageDiscord, u as createThreadDiscord } from "./send-
|
|
6
|
-
import {
|
|
5
|
+
import { c as sendWebhookMessageDiscord, u as createThreadDiscord } from "./send-CZeWKUiA.js";
|
|
6
|
+
import { C as setBindingRecord, D as toReusableWebhookKey, S as saveBindingsToDisk, _ as resolveBindingRecordKey, a as THREAD_BINDING_TOUCH_PERSIST_MIN_INTERVAL_MS, b as resolveThreadBindingMaxAgeExpiresAt, c as getThreadBindingToken, d as normalizeThreadId, f as refreshUnboundThreadWebhookIdentity, g as resolveBindingIdsForSession, h as removeBindingRecord, i as REUSABLE_WEBHOOKS_BY_ACCOUNT_CHANNEL, l as normalizeTargetKind, m as rememberThreadBindingToken, n as MANAGERS_BY_ACCOUNT_ID, o as ensureBindingsLoaded, p as rememberReusableWebhook, r as PERSIST_BY_ACCOUNT_ID, s as forgetThreadBindingToken, t as BINDINGS_BY_THREAD_ID, u as normalizeThreadBindingDurationMs, v as resolveThreadBindingIdleTimeoutMs$1, w as shouldDefaultPersist, x as resolveThreadBindingMaxAgeMs$1, y as resolveThreadBindingInactivityExpiresAt } from "./thread-bindings.state-DtgOqsbX.js";
|
|
7
7
|
import { parseStrictNonNegativeInteger } from "openclaw/plugin-sdk/number-runtime";
|
|
8
8
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
9
9
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as setBindingRecord, S as saveBindingsToDisk, T as shouldPersistBindingMutations, g as resolveBindingIdsForSession, o as ensureBindingsLoaded, t as BINDINGS_BY_THREAD_ID } from "./thread-bindings.state-DtgOqsbX.js";
|
|
2
2
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
3
3
|
//#region extensions/discord/src/monitor/thread-bindings.session-shared.ts
|
|
4
4
|
function normalizeNonNegativeMs(raw) {
|
|
@@ -1,8 +1,41 @@
|
|
|
1
|
+
import { sn as __exportAll } from "./retry-DQt1zDgH.js";
|
|
1
2
|
import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.js";
|
|
2
3
|
import { normalizeAccountId, resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/routing";
|
|
3
4
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
5
|
import { recordOutboundMessageIdentity } from "openclaw/plugin-sdk/outbound-echo-runtime";
|
|
5
6
|
//#region extensions/discord/src/monitor/thread-bindings.state.ts
|
|
7
|
+
var thread_bindings_state_exports = /* @__PURE__ */ __exportAll({
|
|
8
|
+
BINDINGS_BY_THREAD_ID: () => BINDINGS_BY_THREAD_ID,
|
|
9
|
+
MANAGERS_BY_ACCOUNT_ID: () => MANAGERS_BY_ACCOUNT_ID,
|
|
10
|
+
PERSIST_BY_ACCOUNT_ID: () => PERSIST_BY_ACCOUNT_ID,
|
|
11
|
+
REUSABLE_WEBHOOKS_BY_ACCOUNT_CHANNEL: () => REUSABLE_WEBHOOKS_BY_ACCOUNT_CHANNEL,
|
|
12
|
+
THREAD_BINDINGS_MAX_ENTRIES: () => THREAD_BINDINGS_MAX_ENTRIES,
|
|
13
|
+
THREAD_BINDINGS_NAMESPACE: () => THREAD_BINDINGS_NAMESPACE,
|
|
14
|
+
THREAD_BINDING_TOUCH_PERSIST_MIN_INTERVAL_MS: () => THREAD_BINDING_TOUCH_PERSIST_MIN_INTERVAL_MS,
|
|
15
|
+
ensureBindingsLoaded: () => ensureBindingsLoaded,
|
|
16
|
+
forgetThreadBindingToken: () => forgetThreadBindingToken,
|
|
17
|
+
getThreadBindingToken: () => getThreadBindingToken,
|
|
18
|
+
normalizePersistedBinding: () => normalizePersistedBinding,
|
|
19
|
+
normalizeTargetKind: () => normalizeTargetKind,
|
|
20
|
+
normalizeThreadBindingDurationMs: () => normalizeThreadBindingDurationMs,
|
|
21
|
+
normalizeThreadId: () => normalizeThreadId,
|
|
22
|
+
refreshUnboundThreadWebhookIdentity: () => refreshUnboundThreadWebhookIdentity,
|
|
23
|
+
rememberReusableWebhook: () => rememberReusableWebhook,
|
|
24
|
+
rememberThreadBindingToken: () => rememberThreadBindingToken,
|
|
25
|
+
removeBindingRecord: () => removeBindingRecord,
|
|
26
|
+
resolveBindingIdsForSession: () => resolveBindingIdsForSession,
|
|
27
|
+
resolveBindingRecordKey: () => resolveBindingRecordKey,
|
|
28
|
+
resolveThreadBindingIdleTimeoutMs: () => resolveThreadBindingIdleTimeoutMs,
|
|
29
|
+
resolveThreadBindingInactivityExpiresAt: () => resolveThreadBindingInactivityExpiresAt,
|
|
30
|
+
resolveThreadBindingMaxAgeExpiresAt: () => resolveThreadBindingMaxAgeExpiresAt,
|
|
31
|
+
resolveThreadBindingMaxAgeMs: () => resolveThreadBindingMaxAgeMs,
|
|
32
|
+
saveBindingsToDisk: () => saveBindingsToDisk,
|
|
33
|
+
setBindingRecord: () => setBindingRecord,
|
|
34
|
+
shouldDefaultPersist: () => shouldDefaultPersist,
|
|
35
|
+
shouldPersistBindingMutations: () => shouldPersistBindingMutations,
|
|
36
|
+
toBindingRecordKey: () => toBindingRecordKey,
|
|
37
|
+
toReusableWebhookKey: () => toReusableWebhookKey
|
|
38
|
+
});
|
|
6
39
|
const THREAD_BINDINGS_STATE_KEY = Symbol.for("openclaw.discordThreadBindingsState");
|
|
7
40
|
let threadBindingsState;
|
|
8
41
|
function createThreadBindingsGlobalState() {
|
|
@@ -285,4 +318,4 @@ function resolveBindingIdsForSession(params) {
|
|
|
285
318
|
return out;
|
|
286
319
|
}
|
|
287
320
|
//#endregion
|
|
288
|
-
export {
|
|
321
|
+
export { setBindingRecord as C, toReusableWebhookKey as D, thread_bindings_state_exports as E, saveBindingsToDisk as S, shouldPersistBindingMutations as T, resolveBindingRecordKey as _, THREAD_BINDING_TOUCH_PERSIST_MIN_INTERVAL_MS as a, resolveThreadBindingMaxAgeExpiresAt as b, getThreadBindingToken as c, normalizeThreadId as d, refreshUnboundThreadWebhookIdentity as f, resolveBindingIdsForSession as g, removeBindingRecord as h, REUSABLE_WEBHOOKS_BY_ACCOUNT_CHANNEL as i, normalizeTargetKind as l, rememberThreadBindingToken as m, MANAGERS_BY_ACCOUNT_ID as n, ensureBindingsLoaded as o, rememberReusableWebhook as p, PERSIST_BY_ACCOUNT_ID as r, forgetThreadBindingToken as s, BINDINGS_BY_THREAD_ID as t, normalizeThreadBindingDurationMs as u, resolveThreadBindingIdleTimeoutMs as v, shouldDefaultPersist as w, resolveThreadBindingMaxAgeMs as x, resolveThreadBindingInactivityExpiresAt as y };
|