openclaw/src/plugin-sdk/discord.ts
2026-03-18 15:01:10 -05:00

243 lines
6.8 KiB
TypeScript

import {
createDiscordActionGate,
listDiscordDirectoryGroupsFromConfig,
listDiscordDirectoryPeersFromConfig,
looksLikeDiscordTargetId,
normalizeDiscordMessagingTarget,
normalizeDiscordOutboundTarget,
readDiscordComponentSpec,
resolveDiscordChannelId,
} from "../../extensions/discord/api.js";
import type {
ThreadBindingManager,
ThreadBindingRecord,
ThreadBindingTargetKind,
} from "../../extensions/discord/runtime-api.js";
import {
addRoleDiscord,
auditDiscordChannelPermissions,
autoBindSpawnedDiscordSubagent,
banMemberDiscord,
collectDiscordAuditChannelIds,
createChannelDiscord,
createScheduledEventDiscord,
createThreadDiscord,
deleteChannelDiscord,
deleteMessageDiscord,
discordMessageActions,
editChannelDiscord,
editMessageDiscord,
fetchChannelPermissionsDiscord,
fetchMemberInfoDiscord,
fetchMessageDiscord,
fetchReactionsDiscord,
fetchRoleInfoDiscord,
fetchChannelInfoDiscord,
getThreadBindingManager,
listDiscordDirectoryGroupsLive,
listDiscordDirectoryPeersLive,
listThreadBindingsBySessionKey,
listGuildChannelsDiscord,
listGuildEmojisDiscord,
listPinsDiscord,
listScheduledEventsDiscord,
listThreadsDiscord,
moveChannelDiscord,
pinMessageDiscord,
reactMessageDiscord,
removeChannelPermissionDiscord,
removeOwnReactionsDiscord,
removeReactionDiscord,
removeRoleDiscord,
resolveDiscordChannelAllowlist,
resolveDiscordUserAllowlist,
resolveThreadBindingIdleTimeoutMs,
resolveThreadBindingInactivityExpiresAt,
resolveThreadBindingMaxAgeExpiresAt,
resolveThreadBindingMaxAgeMs,
sendMessageDiscord,
sendDiscordComponentMessage,
sendPollDiscord,
sendTypingDiscord,
sendStickerDiscord,
sendVoiceMessageDiscord,
setThreadBindingIdleTimeoutBySessionKey,
setThreadBindingMaxAgeBySessionKey,
setChannelPermissionDiscord,
timeoutMemberDiscord,
unbindThreadBindingsBySessionKey,
uploadEmojiDiscord,
uploadStickerDiscord,
readMessagesDiscord,
searchMessagesDiscord,
} from "../../extensions/discord/runtime-api.js";
import { normalizeExplicitDiscordSessionKey } from "../../extensions/discord/session-key-api.js";
import type {
DiscordPluralKitConfig,
DiscordSendComponents,
DiscordSendEmbeds,
InspectedDiscordAccount,
ResolvedDiscordAccount,
} from "../channels/discord/plugin-sdk-bridge.js";
import {
collectDiscordStatusIssues,
inspectDiscordAccount,
listDiscordAccountIds,
resolveDefaultDiscordAccountId,
resolveDiscordGroupRequireMention,
resolveDiscordGroupToolPolicy,
} from "../channels/discord/plugin-sdk-bridge.js";
import {
DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS,
DISCORD_DEFAULT_LISTENER_TIMEOUT_MS,
fetchVoiceStatusDiscord,
getGateway,
getPresence,
hasAnyGuildPermissionDiscord,
kickMemberDiscord,
monitorDiscordProvider,
probeDiscord,
unpinMessageDiscord,
} from "../channels/discord/plugin-sdk-bridge.js";
export type {
ChannelAccountSnapshot,
ChannelGatewayContext,
ChannelMessageActionAdapter,
} from "../channels/plugins/types.js";
export type { OpenClawConfig } from "../config/config.js";
export type { DiscordAccountConfig, DiscordActionConfig } from "../config/types.js";
export type { DiscordConfig } from "../config/types.discord.js";
export type {
DiscordPluralKitConfig,
DiscordSendComponents,
DiscordSendEmbeds,
InspectedDiscordAccount,
ResolvedDiscordAccount,
ThreadBindingManager,
ThreadBindingRecord,
ThreadBindingTargetKind,
};
export type {
ChannelConfiguredBindingProvider,
ChannelConfiguredBindingConversationRef,
ChannelConfiguredBindingMatch,
} from "../channels/plugins/types.adapters.js";
export type {
ChannelMessageActionContext,
ChannelPlugin,
OpenClawPluginApi,
PluginRuntime,
} from "./channel-plugin-common.js";
export {
DEFAULT_ACCOUNT_ID,
PAIRING_APPROVED_MESSAGE,
applyAccountNameToChannelSection,
buildChannelConfigSchema,
deleteAccountFromConfigSection,
emptyPluginConfigSchema,
formatPairingApproveHint,
getChatChannelMeta,
migrateBaseNameToDefaultAccount,
normalizeAccountId,
setAccountEnabledInConfigSection,
} from "./channel-plugin-common.js";
export { formatDocsLink } from "../terminal/links.js";
export {
projectCredentialSnapshotFields,
resolveConfiguredFromCredentialStatuses,
} from "../channels/account-snapshot-fields.js";
export {
resolveDefaultGroupPolicy,
resolveOpenProviderRuntimeGroupPolicy,
} from "../config/runtime-group-policy.js";
export { listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig };
export { resolveDiscordGroupRequireMention, resolveDiscordGroupToolPolicy };
export { DiscordConfigSchema } from "../config/zod-schema.providers-core.js";
export {
buildComputedAccountStatusSnapshot,
buildTokenChannelStatusSummary,
} from "./status-helpers.js";
export {
addRoleDiscord,
auditDiscordChannelPermissions,
autoBindSpawnedDiscordSubagent,
banMemberDiscord,
collectDiscordAuditChannelIds,
collectDiscordStatusIssues,
createChannelDiscord,
createDiscordActionGate,
createScheduledEventDiscord,
createThreadDiscord,
deleteChannelDiscord,
deleteMessageDiscord,
DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS,
DISCORD_DEFAULT_LISTENER_TIMEOUT_MS,
discordMessageActions,
editChannelDiscord,
editMessageDiscord,
fetchChannelInfoDiscord,
fetchChannelPermissionsDiscord,
fetchMemberInfoDiscord,
fetchMessageDiscord,
fetchReactionsDiscord,
fetchRoleInfoDiscord,
fetchVoiceStatusDiscord,
getGateway,
getPresence,
getThreadBindingManager,
hasAnyGuildPermissionDiscord,
inspectDiscordAccount,
kickMemberDiscord,
listDiscordAccountIds,
listDiscordDirectoryGroupsLive,
listDiscordDirectoryPeersLive,
listGuildChannelsDiscord,
listGuildEmojisDiscord,
listPinsDiscord,
listScheduledEventsDiscord,
listThreadBindingsBySessionKey,
listThreadsDiscord,
looksLikeDiscordTargetId,
monitorDiscordProvider,
moveChannelDiscord,
normalizeDiscordMessagingTarget,
normalizeDiscordOutboundTarget,
normalizeExplicitDiscordSessionKey,
pinMessageDiscord,
probeDiscord,
reactMessageDiscord,
readDiscordComponentSpec,
readMessagesDiscord,
removeChannelPermissionDiscord,
removeOwnReactionsDiscord,
removeReactionDiscord,
removeRoleDiscord,
resolveDefaultDiscordAccountId,
resolveDiscordChannelAllowlist,
resolveDiscordChannelId,
resolveDiscordUserAllowlist,
resolveThreadBindingIdleTimeoutMs,
resolveThreadBindingInactivityExpiresAt,
resolveThreadBindingMaxAgeExpiresAt,
resolveThreadBindingMaxAgeMs,
searchMessagesDiscord,
sendDiscordComponentMessage,
sendMessageDiscord,
sendPollDiscord,
sendStickerDiscord,
sendTypingDiscord,
sendVoiceMessageDiscord,
setChannelPermissionDiscord,
setThreadBindingIdleTimeoutBySessionKey,
setThreadBindingMaxAgeBySessionKey,
timeoutMemberDiscord,
unbindThreadBindingsBySessionKey,
unpinMessageDiscord,
uploadEmojiDiscord,
uploadStickerDiscord,
};