Files
openclaw/extensions/discord/runtime-api.ts
Peter Steinberger 6e19c36d41 feat(channels): batch 2 producers drop media placeholder bodies (#111665)
* feat(channels): batch 2 producers drop media placeholder bodies

Media-placeholder program batch 2: Discord, Feishu, and MSTeams stop
minting <media:kind> placeholder bodies. Primary bodies carry captions
only; native resources produce ordered structured facts with type-only
facts for failures/rejections (batch-1 alignment contract). Discord
stickers travel as native kind "sticker" (not MIME-derivable); text
carriers (forwarded snapshots, room history, thread starters, pending
text) render via formatMediaPlaceholderText. Feishu audio preflight and
MSTeams unavailable selection move from body-string equality to
structured facts; dead placeholder payload builders deleted.

* test(discord): make allowlist policy explicit
2026-07-19 22:48:32 -07:00

184 lines
5.2 KiB
TypeScript

// Discord API module exposes the plugin public contract.
export {
discordMessageActions,
handleDiscordAction,
isDiscordModerationAction,
readDiscordChannelCreateParams,
readDiscordChannelEditParams,
readDiscordChannelMoveParams,
readDiscordModerationCommand,
readDiscordParentIdParam,
requiredGuildPermissionForModerationAction,
type DiscordModerationAction,
type DiscordModerationCommand,
} from "./runtime-api.actions.js";
export {
auditDiscordChannelPermissions,
collectDiscordAuditChannelIds,
fetchDiscordApplicationId,
fetchDiscordApplicationSummary,
listDiscordDirectoryGroupsLive,
listDiscordDirectoryPeersLive,
parseApplicationIdFromToken,
probeDiscord,
resolveDiscordChannelAllowlist,
resolveDiscordPrivilegedIntentsFromFlags,
resolveDiscordUserAllowlist,
setDiscordRuntime,
type DiscordApplicationSummary,
type DiscordChannelResolution,
type DiscordPrivilegedIntentsSummary,
type DiscordPrivilegedIntentStatus,
type DiscordProbe,
type DiscordUserResolution,
} from "./runtime-api.lookup.js";
export {
DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS,
DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS,
DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS,
DISCORD_DEFAULT_LISTENER_TIMEOUT_MS,
allowListMatches,
clearGateways,
clearPresences,
createDiscordGatewayPlugin,
createDiscordMessageHandler,
createDiscordNativeCommand,
getGateway,
getPresence,
isAbortError,
isDiscordGroupAllowedByPolicy,
monitorDiscordProvider,
normalizeDiscordAllowList,
normalizeDiscordInboundWorkerTimeoutMs,
normalizeDiscordListenerTimeoutMs,
normalizeDiscordSlug,
presenceCacheSize,
registerDiscordListener,
registerGateway,
resolveDiscordChannelConfig,
resolveDiscordChannelConfigWithFallback,
resolveDiscordCommandAuthorized,
resolveDiscordGatewayIntents,
resolveDiscordGuildEntry,
resolveDiscordReplyTarget,
resolveDiscordShouldRequireMention,
resolveGroupDmAllow,
runDiscordTaskWithTimeout,
sanitizeDiscordThreadName,
setPresence,
shouldEmitDiscordReactionNotification,
unregisterGateway,
waitForDiscordGatewayPluginRegistration,
type DiscordAllowList,
type DiscordChannelConfigResolved,
type DiscordGuildEntryResolved,
type DiscordMessageEvent,
type DiscordMessageHandler,
type MonitorDiscordOpts,
} from "./runtime-api.monitor.js";
export {
DiscordSendError,
addRoleDiscord,
banMemberDiscord,
createChannelDiscord,
createScheduledEventDiscord,
createThreadDiscord,
deleteChannelDiscord,
deleteMessageDiscord,
editChannelDiscord,
editDiscordComponentMessage,
editMessageDiscord,
fetchChannelInfoDiscord,
fetchChannelPermissionsDiscord,
fetchMemberGuildPermissionsDiscord,
fetchMemberInfoDiscord,
fetchMessageDiscord,
fetchReactionsDiscord,
fetchRoleInfoDiscord,
fetchVoiceStatusDiscord,
hasAllGuildPermissionsDiscord,
hasAnyGuildPermissionDiscord,
kickMemberDiscord,
listGuildChannelsDiscord,
listGuildEmojisDiscord,
listPinsDiscord,
listScheduledEventsDiscord,
listThreadsDiscord,
moveChannelDiscord,
pinMessageDiscord,
reactMessageDiscord,
readMessagesDiscord,
registerBuiltDiscordComponentMessage,
removeChannelPermissionDiscord,
removeOwnReactionsDiscord,
removeReactionDiscord,
removeRoleDiscord,
resolveDiscordOutboundSessionRoute,
resolveEventCoverImage,
searchMessagesDiscord,
sendDiscordComponentMessage,
sendMessageDiscord,
sendPollDiscord,
sendStickerDiscord,
sendTypingDiscord,
sendVoiceMessageDiscord,
sendWebhookMessageDiscord,
setChannelPermissionDiscord,
timeoutMemberDiscord,
unpinMessageDiscord,
uploadEmojiDiscord,
uploadStickerDiscord,
type DiscordChannelCreate,
type DiscordChannelEdit,
type DiscordChannelMove,
type DiscordChannelPermissionSet,
type DiscordEmojiUpload,
type DiscordMessageEdit,
type DiscordMessageQuery,
type DiscordModerationTarget,
type DiscordPermissionsSummary,
type DiscordReactionRuntimeContext,
type DiscordReactionSummary,
type DiscordReactionUser,
type DiscordReactOpts,
type DiscordRoleChange,
type DiscordRuntimeAccountContext,
type DiscordSearchQuery,
type DiscordSendResult,
type DiscordStickerUpload,
type DiscordThreadCreate,
type DiscordThreadList,
type DiscordTimeoutTarget,
type ResolveDiscordOutboundSessionRouteParams,
} from "./runtime-api.send.js";
export {
testing as __testing,
testing,
autoBindSpawnedDiscordSubagent,
createNoopThreadBindingManager,
createThreadBindingManager,
formatThreadBindingDurationLabel,
getThreadBindingManager,
listThreadBindingsBySessionKey,
listThreadBindingsForAccount,
reconcileAcpThreadBindingsOnStartup,
resolveDiscordThreadBindingIdleTimeoutMs,
resolveDiscordThreadBindingMaxAgeMs,
resolveThreadBindingIdleTimeoutMs,
resolveThreadBindingInactivityExpiresAt,
resolveThreadBindingIntroText,
resolveThreadBindingMaxAgeExpiresAt,
resolveThreadBindingMaxAgeMs,
resolveThreadBindingPersona,
resolveThreadBindingPersonaFromRecord,
resolveThreadBindingsEnabled,
resolveThreadBindingThreadName,
setThreadBindingIdleTimeoutBySessionKey,
setThreadBindingMaxAgeBySessionKey,
unbindThreadBindingsBySessionKey,
type AcpThreadBindingReconciliationResult,
type ThreadBindingManager,
type ThreadBindingRecord,
type ThreadBindingTargetKind,
} from "./runtime-api.threads.js";