Skip to content

integrations/messaging/discord/dist

Classes

DiscordGatewayService

Constructors

Constructor
new DiscordGatewayService(options): DiscordGatewayService;
Parameters
Parameter Type
options DiscordGatewayServiceOptions
Returns

DiscordGatewayService

Methods

continueConversation()
continueConversation(conversationId, options?): Promise<ContinueConversationInDiscordResult>;
Parameters
Parameter Type
conversationId string
options? ContinueConversationInDiscordOptions
Returns

Promise\<ContinueConversationInDiscordResult>

start()
start(): Promise<void>;
Returns

Promise\<void>

status()
status(): DiscordGatewayStatus;
Returns

DiscordGatewayStatus

stop()
stop(): Promise<void>;
Returns

Promise\<void>


DiscordSqliteStore

Implements

Constructors

Constructor
new DiscordSqliteStore(options): DiscordSqliteStore;
Parameters
Parameter Type
options DiscordSqliteStoreOptions
Returns

DiscordSqliteStore

Methods

close()
close(): void;
Returns

void

Implementation of

DiscordGatewayStore.close

deactivateBinding()
deactivateBinding(discordThreadId): Promise<void>;
Parameters
Parameter Type
discordThreadId string
Returns

Promise\<void>

Implementation of

DiscordGatewayStore.deactivateBinding

getBindingByThreadId()
getBindingByThreadId(discordThreadId): Promise<DiscordThreadBinding>;
Parameters
Parameter Type
discordThreadId string
Returns

Promise\<DiscordThreadBinding>

Implementation of

DiscordGatewayStore.getBindingByThreadId

getLastMirroredOffset()
getLastMirroredOffset(discordThreadId): Promise<number>;
Parameters
Parameter Type
discordThreadId string
Returns

Promise\<number>

Implementation of

DiscordGatewayStore.getLastMirroredOffset

hasMirroredEvent()
hasMirroredEvent(discordThreadId, runtimeEventId): Promise<boolean>;
Parameters
Parameter Type
discordThreadId string
runtimeEventId string
Returns

Promise\<boolean>

Implementation of

DiscordGatewayStore.hasMirroredEvent

initialize()
initialize(): Promise<void>;
Returns

Promise\<void>

Implementation of

DiscordGatewayStore.initialize

listActiveBindings()
listActiveBindings(): Promise<DiscordThreadBinding[]>;
Returns

Promise\<DiscordThreadBinding[]>

Implementation of

DiscordGatewayStore.listActiveBindings

listActiveBindingsForConversation()
listActiveBindingsForConversation(conversationId): Promise<DiscordThreadBinding[]>;
Parameters
Parameter Type
conversationId string
Returns

Promise\<DiscordThreadBinding[]>

Implementation of

DiscordGatewayStore.listActiveBindingsForConversation

recordMirroredEvent()
recordMirroredEvent(input): Promise<void>;
Parameters
Parameter Type
input RecordMirroredEventInput
Returns

Promise\<void>

Implementation of

DiscordGatewayStore.recordMirroredEvent

upsertBinding()
upsertBinding(input): Promise<DiscordThreadBinding>;
Parameters
Parameter Type
input { active?: boolean; conversationId: string; discordThreadId: string; discordVoiceChannelId?: string; discordVoiceChannelName?: string; guildId: string; parentChannelId: string; starterUserId?: string; threadName?: string; }
input.active? boolean
input.conversationId string
input.discordThreadId string
input.discordVoiceChannelId? string
input.discordVoiceChannelName? string
input.guildId string
input.parentChannelId string
input.starterUserId? string
input.threadName? string
Returns

Promise\<DiscordThreadBinding>

Implementation of

DiscordGatewayStore.upsertBinding

Interfaces

ContinueConversationInDiscordOptions

Properties

voice?
optional voice?: boolean;

ContinueConversationInDiscordResult

Properties

conversationId
conversationId: string;
discordThreadId
discordThreadId: string;
discordThreadUrl
discordThreadUrl: string;
discordVoiceChannelId?
optional discordVoiceChannelId?: string;
discordVoiceChannelUrl?
optional discordVoiceChannelUrl?: string;
enabled
enabled: true;
ready
ready: boolean;

DiscordAllowedMentions

Properties

parse?
optional parse?: ("roles" | "users" | "everyone")[];
replied_user?
optional replied_user?: boolean;
roles?
optional roles?: string[];
users?
optional users?: string[];

DiscordApplicationResource

Indexable

[key: string]: DiscordMessagingProviderExtensionValue

Properties

bot_public?
optional bot_public?: boolean;
bot_require_code_grant?
optional bot_require_code_grant?: boolean;
description?
optional description?: string;
id?
optional id?: string;
name?
optional name?: string;
verify_key?
optional verify_key?: string;

DiscordChannelResource

Indexable

[key: string]: DiscordMessagingProviderExtensionValue

Properties

guild_id?
optional guild_id?: string;
id?
optional id?: string;
message?
optional message?: DiscordMessageResource;
name?
optional name?: string;
parent_id?
optional parent_id?: string;
thread_metadata?
optional thread_metadata?: DiscordMessagingJsonObject;
topic?
optional topic?: string;
type?
optional type?: number;

DiscordCreateForumPostInput

Extends

Properties

additionalFields?
optional additionalFields?: DiscordMessagingJsonObject;
Inherited from

DiscordMessageInput.additionalFields

allowedMentions?
optional allowedMentions?: DiscordAllowedMentions;
Inherited from

DiscordMessageInput.allowedMentions

appliedTags?
optional appliedTags?: string[];
attachments?
optional attachments?: DiscordMessagingJsonValue[];
Inherited from

DiscordMessageInput.attachments

autoArchiveDuration?
optional autoArchiveDuration?: number;
channelId
channelId: string;
components?
optional components?: DiscordMessagingJsonValue[];
Inherited from

DiscordMessageInput.components

content?
optional content?: string;
Inherited from

DiscordMessageInput.content

embeds?
optional embeds?: DiscordMessagingJsonValue[];
Inherited from

DiscordMessageInput.embeds

flags?
optional flags?: number;
Inherited from

DiscordMessageInput.flags

messageReference?
optional messageReference?: DiscordMessagingJsonObject;
Inherited from

DiscordMessageInput.messageReference

name
name: string;
rateLimitPerUser?
optional rateLimitPerUser?: number;
reason?
optional reason?: string;
stickerIds?
optional stickerIds?: string[];
Inherited from

DiscordMessageInput.stickerIds

tts?
optional tts?: boolean;
Inherited from

DiscordMessageInput.tts


DiscordCreateThreadInput

Properties

autoArchiveDuration?
optional autoArchiveDuration?: number;
channelId
channelId: string;
invitable?
optional invitable?: boolean;
name
name: string;
rateLimitPerUser?
optional rateLimitPerUser?: number;
reason?
optional reason?: string;
type?
optional type?: number;

DiscordCredentialStatusInput

Properties

applicationId?
optional applicationId?: string;
botInstalled?
optional botInstalled?: boolean;
botToken?
optional botToken?: string;
channelId?
optional channelId?: string;
channelPermissionGranted?
optional channelPermissionGranted?: boolean;
expiresAt?
optional expiresAt?: string;
guildId?
optional guildId?: string;
publicKey?
optional publicKey?: string;
requiredScopes?
optional requiredScopes?: string[];
scopes?
optional scopes?: string[];
webhookUrl?
optional webhookUrl?: string;

DiscordExecuteWebhookInput

Extends

Properties

additionalFields?
optional additionalFields?: DiscordMessagingJsonObject;
Inherited from

DiscordMessageInput.additionalFields

allowedMentions?
optional allowedMentions?: DiscordAllowedMentions;
Inherited from

DiscordMessageInput.allowedMentions

attachments?
optional attachments?: DiscordMessagingJsonValue[];
Inherited from

DiscordMessageInput.attachments

components?
optional components?: DiscordMessagingJsonValue[];
Inherited from

DiscordMessageInput.components

content?
optional content?: string;
Inherited from

DiscordMessageInput.content

embeds?
optional embeds?: DiscordMessagingJsonValue[];
Inherited from

DiscordMessageInput.embeds

flags?
optional flags?: number;
Inherited from

DiscordMessageInput.flags

messageReference?
optional messageReference?: DiscordMessagingJsonObject;
Inherited from

DiscordMessageInput.messageReference

stickerIds?
optional stickerIds?: string[];
Inherited from

DiscordMessageInput.stickerIds

threadId?
optional threadId?: string;
tts?
optional tts?: boolean;
Inherited from

DiscordMessageInput.tts

wait?
optional wait?: boolean;
webhookUrl
webhookUrl: string;

DiscordGatewayClientOptions

Properties

clientOptions?
optional clientOptions?: ClientOptions;

DiscordGatewayServiceConfig

Properties

applicationId
applicationId: string;
guildId
guildId: string;
mirrorPollIntervalMs
mirrorPollIntervalMs: number;
supportChannelId
supportChannelId: string;
threadAutoArchiveDuration
threadAutoArchiveDuration: DiscordThreadAutoArchiveDuration;
webAppUrl
webAppUrl: string;

DiscordGatewayServiceCopy

Properties

promptFallbackMessage?
optional promptFallbackMessage?: (input) => string;
Parameters
Parameter Type
input { conversationId: string; conversationUrl: string; }
input.conversationId string
input.conversationUrl string
Returns

string

sourceThreadNamePrefix?
optional sourceThreadNamePrefix?: string;
supportThreadNamePrefix?
optional supportThreadNamePrefix?: string;
turnFailureMessage?
optional turnFailureMessage?: (input) => string;
Parameters
Parameter Type
input { conversationUrl: string; discordThreadId: string; }
input.conversationUrl string
input.discordThreadId string
Returns

string

voiceChannelNamePrefix?
optional voiceChannelNamePrefix?: string;
voiceHandoffMessage?
optional voiceHandoffMessage?: (input) => string;
Parameters
Parameter Type
input { conversationId: string; conversationUrl: string; discordThreadId: string; discordThreadUrl: string; discordVoiceChannelId: string; discordVoiceChannelUrl: string; }
input.conversationId string
input.conversationUrl string
input.discordThreadId string
input.discordThreadUrl string
input.discordVoiceChannelId string
input.discordVoiceChannelUrl string
Returns

string

voiceMessagePrefix?
optional voiceMessagePrefix?: string;
webMessagePrefix?
optional webMessagePrefix?: string;

DiscordGatewayServiceOptions

Properties

agentId
agentId: string;
botToken
botToken: string;
config
config: DiscordGatewayServiceConfig;
copy?
optional copy?: DiscordGatewayServiceCopy;
runtime
runtime: CognideskRuntime;
store
store: DiscordGatewayStore;

DiscordGatewayStatus

Properties

applicationId
applicationId: string;
botUser?
optional botUser?: {
  id: string;
  tag: string;
};
id
id: string;
tag
tag: string;
enabled
enabled: true;
guildId
guildId: string;
ready
ready: boolean;
supportChannelId
supportChannelId: string;

DiscordGatewayStore

Methods

close()
close(): void;
Returns

void

deactivateBinding()
deactivateBinding(discordThreadId): Promise<void>;
Parameters
Parameter Type
discordThreadId string
Returns

Promise\<void>

getBindingByThreadId()
getBindingByThreadId(discordThreadId): Promise<DiscordThreadBinding>;
Parameters
Parameter Type
discordThreadId string
Returns

Promise\<DiscordThreadBinding>

getLastMirroredOffset()
getLastMirroredOffset(discordThreadId): Promise<number>;
Parameters
Parameter Type
discordThreadId string
Returns

Promise\<number>

hasMirroredEvent()
hasMirroredEvent(discordThreadId, runtimeEventId): Promise<boolean>;
Parameters
Parameter Type
discordThreadId string
runtimeEventId string
Returns

Promise\<boolean>

initialize()
initialize(): Promise<void>;
Returns

Promise\<void>

listActiveBindings()
listActiveBindings(): Promise<DiscordThreadBinding[]>;
Returns

Promise\<DiscordThreadBinding[]>

listActiveBindingsForConversation()
listActiveBindingsForConversation(conversationId): Promise<DiscordThreadBinding[]>;
Parameters
Parameter Type
conversationId string
Returns

Promise\<DiscordThreadBinding[]>

recordMirroredEvent()
recordMirroredEvent(input): Promise<void>;
Parameters
Parameter Type
input RecordMirroredEventInput
Returns

Promise\<void>

upsertBinding()
upsertBinding(input): Promise<DiscordThreadBinding>;
Parameters
Parameter Type
input { active?: boolean; conversationId: string; discordThreadId: string; discordVoiceChannelId?: string; discordVoiceChannelName?: string; guildId: string; parentChannelId: string; starterUserId?: string; threadName?: string; }
input.active? boolean
input.conversationId string
input.discordThreadId string
input.discordVoiceChannelId? string
input.discordVoiceChannelName? string
input.guildId string
input.parentChannelId string
input.starterUserId? string
input.threadName? string
Returns

Promise\<DiscordThreadBinding>


DiscordGetChannelInput

Properties

channelId
channelId: string;

DiscordGetGuildInput

Properties

guildId
guildId: string;

DiscordGuildResource

Indexable

[key: string]: DiscordMessagingProviderExtensionValue

Properties

features?
optional features?: string[];
icon?
optional icon?: string;
id?
optional id?: string;
name?
optional name?: string;
owner_id?
optional owner_id?: string;

DiscordInteractionPayload

Indexable

[key: string]: DiscordMessagingProviderExtensionValue

Properties

application_id?
optional application_id?: string;
channel_id?
optional channel_id?: string;
data?
optional data?: DiscordMessagingJsonObject;
guild_id?
optional guild_id?: string;
id?
optional id?: string;
member?
optional member?: DiscordMessagingProviderExtensionValue;
message?
optional message?: DiscordMessageResource;
token?
optional token?: string;
type?
optional type?: number;
user?
optional user?: DiscordUserResource;

DiscordListMessagesInput

Properties

after?
optional after?: string;
around?
optional around?: string;
before?
optional before?: string;
channelId
channelId: string;
limit?
optional limit?: number;

DiscordLiveCheckOptions

Extends

Properties

apiBaseUrl?
optional apiBaseUrl?: string;
Inherited from

DiscordMessagingClientOptions.apiBaseUrl

apiVersion?
optional apiVersion?: string;
Inherited from

DiscordMessagingClientOptions.apiVersion

applicationId?
optional applicationId?: string;
botToken?
optional botToken?: string;
Inherited from

DiscordMessagingClientOptions.botToken

channelId?
optional channelId?: string;
client?
optional client?: Pick<DiscordMessagingClient, "getCurrentBot" | "getCurrentApplication" | "getGuild" | "getChannel">;
guildId?
optional guildId?: string;
rest?
optional rest?: DiscordRestLike;
Inherited from

DiscordMessagingClientOptions.rest


DiscordMessageInput

Extended by

Properties

additionalFields?
optional additionalFields?: DiscordMessagingJsonObject;
allowedMentions?
optional allowedMentions?: DiscordAllowedMentions;
attachments?
optional attachments?: DiscordMessagingJsonValue[];
components?
optional components?: DiscordMessagingJsonValue[];
content?
optional content?: string;
embeds?
optional embeds?: DiscordMessagingJsonValue[];
flags?
optional flags?: number;
messageReference?
optional messageReference?: DiscordMessagingJsonObject;
stickerIds?
optional stickerIds?: string[];
tts?
optional tts?: boolean;

DiscordMessageResource

Indexable

[key: string]: DiscordMessagingProviderExtensionValue

Properties

attachments?
optional attachments?: DiscordMessagingJsonValue[];
author?
optional author?: DiscordUserResource;
channel_id?
optional channel_id?: string;
components?
optional components?: DiscordMessagingJsonValue[];
content?
optional content?: string;
edited_timestamp?
optional edited_timestamp?: string;
embeds?
optional embeds?: DiscordMessagingJsonValue[];
flags?
optional flags?: number;
guild_id?
optional guild_id?: string;
id?
optional id?: string;
mention_everyone?
optional mention_everyone?: boolean;
mentions?
optional mentions?: DiscordMessagingJsonValue[];
thread?
optional thread?: DiscordChannelResource;
timestamp?
optional timestamp?: string;
tts?
optional tts?: boolean;

DiscordMessagingClient

Properties

rest
rest: DiscordRestLike | REST;

Methods

createForumPost()
createForumPost(input): Promise<DiscordChannelResource>;
Parameters
Parameter Type
input DiscordCreateForumPostInput
Returns

Promise\<DiscordChannelResource>

createGatewayClient()
createGatewayClient(options?): Client;
Parameters
Parameter Type
options? DiscordGatewayClientOptions
Returns

Client

createThread()
createThread(input): Promise<DiscordChannelResource>;
Parameters
Parameter Type
input DiscordCreateThreadInput
Returns

Promise\<DiscordChannelResource>

executeWebhook()
executeWebhook(input): Promise<
  | Record<string, never>
| DiscordMessageResource>;
Parameters
Parameter Type
input DiscordExecuteWebhookInput
Returns

Promise\< | Record\<string, never> | DiscordMessageResource>

getChannel()
getChannel(channelId): Promise<DiscordChannelResource>;
Parameters
Parameter Type
channelId string
Returns

Promise\<DiscordChannelResource>

getCurrentApplication()
getCurrentApplication(): Promise<DiscordApplicationResource>;
Returns

Promise\<DiscordApplicationResource>

getCurrentBot()
getCurrentBot(): Promise<DiscordUserResource>;
Returns

Promise\<DiscordUserResource>

getGuild()
getGuild(guildId): Promise<DiscordGuildResource>;
Parameters
Parameter Type
guildId string
Returns

Promise\<DiscordGuildResource>

listChannelMessages()
listChannelMessages(input): Promise<DiscordMessageResource[]>;
Parameters
Parameter Type
input DiscordListMessagesInput
Returns

Promise\<DiscordMessageResource[]>

sendChannelMessage()
sendChannelMessage(input): Promise<DiscordMessageResource>;
Parameters
Parameter Type
input DiscordSendChannelMessageInput
Returns

Promise\<DiscordMessageResource>


DiscordMessagingClientOptions

Extended by

Properties

apiBaseUrl?
optional apiBaseUrl?: string;
apiVersion?
optional apiVersion?: string;
botToken?
optional botToken?: string;
rest?
optional rest?: DiscordRestLike;

DiscordMessagingJsonObject

Indexable

[key: string]: DiscordMessagingProviderExtensionValue

DiscordParsedInteractionRequest

Properties

contentType?
optional contentType?: string;
payload
payload: DiscordInteractionPayload;
rawBody
rawBody: string;
validSignature?
optional validSignature?: boolean;

DiscordRestLike

Methods

get()
get(route, options?): Promise<unknown>;
Parameters
Parameter Type
route string
options? DiscordRestOptions
Returns

Promise\<unknown>

post()
post(route, options?): Promise<unknown>;
Parameters
Parameter Type
route string
options? DiscordRestOptions
Returns

Promise\<unknown>


DiscordRestOptions

Properties

auth?
optional auth?: boolean;
body?
optional body?: DiscordMessagingProviderPayload;
query?
optional query?: URLSearchParams;
reason?
optional reason?: string;

DiscordSendChannelMessageInput

Extends

Properties

additionalFields?
optional additionalFields?: DiscordMessagingJsonObject;
Inherited from

DiscordMessageInput.additionalFields

allowedMentions?
optional allowedMentions?: DiscordAllowedMentions;
Inherited from

DiscordMessageInput.allowedMentions

attachments?
optional attachments?: DiscordMessagingJsonValue[];
Inherited from

DiscordMessageInput.attachments

channelId
channelId: string;
components?
optional components?: DiscordMessagingJsonValue[];
Inherited from

DiscordMessageInput.components

content?
optional content?: string;
Inherited from

DiscordMessageInput.content

embeds?
optional embeds?: DiscordMessagingJsonValue[];
Inherited from

DiscordMessageInput.embeds

flags?
optional flags?: number;
Inherited from

DiscordMessageInput.flags

messageReference?
optional messageReference?: DiscordMessagingJsonObject;
Inherited from

DiscordMessageInput.messageReference

stickerIds?
optional stickerIds?: string[];
Inherited from

DiscordMessageInput.stickerIds

tts?
optional tts?: boolean;
Inherited from

DiscordMessageInput.tts


DiscordSqliteStoreOptions

Properties

filename
filename: string;

DiscordThreadBinding

Properties

active
active: boolean;
conversationId
conversationId: string;
createdAt
createdAt: string;
discordThreadId
discordThreadId: string;
discordVoiceChannelId?
optional discordVoiceChannelId?: string;
discordVoiceChannelName?
optional discordVoiceChannelName?: string;
guildId
guildId: string;
parentChannelId
parentChannelId: string;
starterUserId?
optional starterUserId?: string;
threadName?
optional threadName?: string;
updatedAt
updatedAt: string;

DiscordUserResource

Indexable

[key: string]: DiscordMessagingProviderExtensionValue

Properties

avatar?
optional avatar?: string;
bot?
optional bot?: boolean;
discriminator?
optional discriminator?: string;
global_name?
optional global_name?: string;
id?
optional id?: string;
system?
optional system?: boolean;
username?
optional username?: string;

NormalizeDiscordChannelEventInput

Properties

interaction
interaction: DiscordParsedInteractionRequest;
receivedAt?
optional receivedAt?: string;

ParseDiscordInteractionOptions

Extended by

Properties

publicKey?
optional publicKey?: string;
requireSignature?
optional requireSignature?: boolean;

ParseDiscordInteractionRequestInput

Extends

Properties

publicKey?
optional publicKey?: string;
Inherited from

ParseDiscordInteractionOptions.publicKey

request
request: Request;
requireSignature?
optional requireSignature?: boolean;
Inherited from

ParseDiscordInteractionOptions.requireSignature


RecordMirroredEventInput

Properties

conversationId
conversationId: string;
direction
direction: DiscordMirrorDirection;
discordMessageId?
optional discordMessageId?: string;
discordThreadId
discordThreadId: string;
runtimeEventId
runtimeEventId: string;
runtimeEventOffset
runtimeEventOffset: number;

ValidateDiscordInteractionSignatureInput

Properties

publicKey
publicKey: string;
rawBody
rawBody: string | Buffer<ArrayBufferLike>;
signature
signature: string;
timestamp
timestamp: string;

Type Aliases

DiscordChannelEvent

type DiscordChannelEvent = ChannelEventEnvelopeInput<Record<string, unknown>, unknown>;

DiscordMessagingJsonPrimitive

type DiscordMessagingJsonPrimitive = string | number | boolean | null;

DiscordMessagingJsonValue

type DiscordMessagingJsonValue =
  | DiscordMessagingJsonPrimitive
  | DiscordMessagingJsonObject
  | readonly DiscordMessagingJsonValue[];

DiscordMessagingProviderExtensionValue

type DiscordMessagingProviderExtensionValue =
  | DiscordMessagingJsonValue
  | object
  | undefined;

DiscordMessagingProviderPayload

type DiscordMessagingProviderPayload = DiscordMessagingJsonObject | object;

DiscordMirrorDirection

type DiscordMirrorDirection = "discord-to-runtime" | "runtime-to-discord";

DiscordMirrorItem

type DiscordMirrorItem =
  | {
  event: Extract<RuntimeEvent, {
     type: "message.completed";
  }>;
  kind: "message";
  origin: DiscordMirrorMessageOrigin;
  role: "user" | "assistant";
  text: string;
}
  | {
  event: Extract<RuntimeEvent, {
     type: "ui.prompted";
  }>;
  kind: "prompt";
};

DiscordMirrorMessageOrigin

type DiscordMirrorMessageOrigin = "web" | "voice" | "discord";

DiscordThreadAutoArchiveDuration

type DiscordThreadAutoArchiveDuration = 60 | 1440 | 4320 | 10080;

Variables

createDiscordIntegration

const createDiscordIntegration: typeof createDiscordMessagingIntegration;

createDiscordIntegrationOperationHandlers

const createDiscordIntegrationOperationHandlers: typeof createDiscordMessagingOperationHandlers;

Functions

collectDiscordMirrorItems()

function collectDiscordMirrorItems(events): DiscordMirrorItem[];

Parameters

Parameter Type
events RuntimeEvent[]

Returns

DiscordMirrorItem[]


createDiscordGatewayService()

function createDiscordGatewayService(options): DiscordGatewayService;

Parameters

Parameter Type
options DiscordGatewayServiceOptions

Returns

DiscordGatewayService


createDiscordMessagingClient()

function createDiscordMessagingClient(options): DiscordMessagingClient;

Parameters

Parameter Type
options DiscordMessagingClientOptions

Returns

DiscordMessagingClient


createDiscordMessagingIntegration()

function createDiscordMessagingIntegration(options): DefinedIntegration<{
  capabilities: [{
     audiences: ["customer-facing", "mixed"];
     capability: "receive";
     description: "Validates Ed25519-signed Discord outgoing-webhook interaction requests.";
     exposesSensitiveData: true;
     label: "Receive Discord interactions";
     providerObjects: [{
        kind: "discordInteraction";
        label: "Discord Interaction";
     }];
     requiresCredential: true;
   }, {
     audiences: ["customer-facing", "mixed"];
     capability: "send";
     description: "Sends bot-token-authenticated Discord channel messages through discord.js REST.post(Routes.channelMessages).";
     exposesSensitiveData: true;
     label: "Send Discord channel messages";
     providerObjects: [{
        kind: "discordMessage";
        label: "Discord Message";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: ["customer-facing", "mixed"];
     capability: "thread";
     changesWorkflow: true;
     description: "Creates Discord text-channel threads or forum/media channel posts selected by SDK configuration.";
     exposesSensitiveData: true;
     label: "Create Discord support threads";
     providerObjects: [{
        kind: "discordThread";
        label: "Discord Thread";
      }, {
        kind: "discordForumPost";
        label: "Discord Forum Post";
      }, {
        kind: "discordMediaPost";
        label: "Discord Media Channel Post";
     }];
     requiresCredential: true;
     sideEffect: true;
  }];
  category: "messaging";
  channelAudiences: ["customer-facing", "mixed"];
  coverage: {
     evidence: [{
        label: "discord.js package";
        url: "https://www.npmjs.com/package/discord.js";
      }, {
        label: "Discord API reference";
        url: "https://docs.discord.com/developers/reference";
      }, {
        label: "Discord message resource";
        url: "https://docs.discord.com/developers/resources/message";
      }, {
        label: "Discord channel/thread endpoints";
        url: "https://docs.discord.com/developers/resources/channel";
     }];
     notes: ["Coverage is a Cognidesk support workflow adapter backed by discord.js REST, discord.js Routes helpers, and an optional discord.js Gateway service for live support-thread handoff.", "Typed operations cover channel messages, text/forum/media-channel threads, webhook execution with strict Discord webhook URL validation, selected bot/application/guild/channel reads, channel message listing, and Ed25519 interaction signature verification.", "The runtime export includes a Discord Gateway service that creates or reuses Discord threads, ingests customer messages through messageCreate events, mirrors Cognidesk runtime messages into threads, and records idempotency state through the bundled SQLite store.", "This package intentionally removes the generated Discord HTTP API clone and does not claim full Discord platform coverage.", "Discord bot installation, Gateway intents policy, channel permissions, moderation policy, retention, deletion, command registration lifecycle, voice/media transport, broad moderation/admin APIs, and Discord Webhook Events subscriptions remain SDK-user-owned configuration or future package surfaces."];
     scope: "support-workflow-subset";
  };
  credentialRequirements: [{
     description: "Server-side Discord bot token used by discord.js REST and Routes SDK helpers for channel, guild, bot, and application calls.";
     id: "discord-bot-token";
     label: "Discord bot token";
     metadata: {
        scopeKind: "provider-oauth-scopes";
     };
     required: true;
     scopes: ["bot", "applications.commands"];
   }, {
     description: "SDK-user-owned Discord application ID used to identify commands, interactions, and installation readiness.";
     id: "discord-application-id";
     label: "Discord application ID";
     required: true;
   }, {
     description: "Ed25519 public key from the Discord Developer Portal for validating interaction endpoint requests.";
     id: "discord-public-key";
     label: "Discord interaction public key";
     required: true;
  }];
  directions: ["receive-only", "send-only", "bidirectional"];
  id: "messaging.discord";
  limitations: ["Available Discord operations depend on the SDK user's Discord application, bot installation, OAuth scopes, role permissions, channel permissions, forum settings, and rate limits.", "The optional Gateway service requires Discord Gateway access with Message Content Intent enabled when message text is mirrored into Cognidesk.", "Discord Webhook Events subscriptions, slash command registration, broader REST administration, voice, and local RPC/IPC remain outside this package.", "Discord interaction endpoint requests must fail closed when signature verification is required but the public key or signature headers are missing or invalid."];
  maintainers: [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     apiBaseUrl: "https://discord.com/api";
     channelCoverage: {
        botApplicationGuildChannelReads: "sdk-owned-rest-read";
        channelMessages: "sdk-owned-rest-send-list";
        forumPosts: "sdk-owned-rest-create";
        gatewayEvents: "sdk-owned-discord-js-gateway-service";
        interactionsEndpoint: "typed-verify-parse";
        threads: "sdk-owned-rest-create";
        voiceGatewayAndRpc: "not-covered";
        webhookEventsSubscriptions: "not-covered";
        webhookExecution: "sdk-owned-rest-webhook-execute";
     };
     defaultApiVersion: "10";
     gatewayService: {
        messageIngress: "discord-js-messageCreate";
        runtimeMirror: "cognidesk-runtime-event-list";
        sourceId: "discord-gateway";
        store: "bundled-libsql-sqlite-binding-store";
     };
     implementation: {
        operationMethodMap: {
           discord.application.read: "REST.get(Routes.oauth2CurrentApplication)";
           discord.bot.read: "REST.get(Routes.user)";
           discord.channel-messages.list: "REST.get(Routes.channelMessages)";
           discord.channel.read: "REST.get(Routes.channel)";
           discord.forum-post.create: "REST.post(Routes.threads)";
           discord.guild.read: "REST.get(Routes.guild)";
           discord.interaction-signature.verify: "validateDiscordInteractionSignature";
           discord.interaction.receive: "parseDiscordInteractionRequest";
           discord.message.send: "REST.post(Routes.channelMessages)";
           discord.thread.create: "REST.post(Routes.threads)";
           discord.webhook.execute: "REST.post(Routes.webhook)";
        };
        sdkPackage: "discord.js";
        sdkRuntimeSurface: "REST + Routes + Client gateway";
        sdkVersionRange: "^14.26.4";
        strategy: "official-sdk-support-slice";
        strictExceptions: {
           discord.interaction-signature.verify: "Signature verification is local Ed25519 protocol handling, not an outbound provider SDK call.";
           discord.interaction.receive: "Interaction parsing and Ed25519 signature verification are local protocol handling, not outbound provider SDK calls.";
           discord.webhook.execute: "Webhook URLs are validated against the configured Discord API origin, parsed into webhook id/token, dispatched through discord.js REST with auth disabled, and rejected before dispatch when the URL is not a Discord webhook execution URL.";
        };
     };
     integrationEntryPoints: {
        manifest: "@cognidesk/integration-messaging-discord/manifest";
        runtime: "@cognidesk/integration-messaging-discord/runtime";
     };
     integrationName: "Discord Integration";
     integrationPackageName: "@cognidesk/integration-messaging-discord";
     interactionSignatureHeaders: readonly ["x-signature-ed25519", "x-signature-timestamp"];
     providerClient: {
        importPolicy: "runtime-entrypoint-only";
        package: "discord.js";
        versionRange: "^14.26.4";
     };
  };
  name: "Discord Messaging Support";
  operations: [{
     alias: "discord.interaction.receive";
     capability: "receive";
     exposesSensitiveData: true;
     extension: true;
     inputSchemaName: "ParseDiscordInteractionRequestInput";
     outputSchemaName: "DiscordParsedInteractionRequest";
     providerObject: "discordInteraction";
     requiresCredential: true;
   }, {
     alias: "discord.message.send";
     capability: "send";
     exposesSensitiveData: true;
     extension: true;
     externallyVisible: true;
     inputSchemaName: "DiscordSendChannelMessageInput";
     outputSchemaName: "DiscordMessageResource";
     providerObject: "discordMessage";
     providerOperation: "REST.post(Routes.channelMessages)";
     requiresCredential: true;
     sideEffect: true;
   }, {
     alias: "discord.thread.create";
     capability: "thread";
     changesWorkflow: true;
     exposesSensitiveData: true;
     extension: true;
     inputSchemaName: "DiscordCreateThreadInput";
     outputSchemaName: "DiscordChannelResource";
     providerObject: "discordThread";
     providerOperation: "REST.post(Routes.threads)";
     requiresCredential: true;
     sideEffect: true;
  }];
  packageName: "@cognidesk/integration-messaging-discord";
  privacyNotes: ["Discord messages, user IDs, guild IDs, channel IDs, thread IDs, usernames, attachments, embeds, interaction payloads, and mirrored runtime transcripts can contain customer and moderator data.", "Discord bot tokens, public keys, application IDs, guild/channel routing, webhook URLs, consent, moderation, retention, and transcript policy stay SDK-user-owned configuration."];
  provider: "discord";
  trustLevel: "official";
}, unknown, {
  discord.application.read: () => Promise<DiscordApplicationResource>;
  discord.bot.read: () => Promise<DiscordUserResource>;
  discord.channel-messages.list: (input) => Promise<DiscordMessageResource[]>;
  discord.channel.read: (input) => Promise<DiscordChannelResource>;
  discord.forum-post.create: (input, _context) => Promise<DiscordChannelResource>;
  discord.guild.read: (input) => Promise<DiscordGuildResource>;
  discord.interaction-signature.verify: (input) => Promise<boolean>;
  discord.interaction.receive: (input) => Promise<DiscordParsedInteractionRequest>;
  discord.message.send: (input, _context) => Promise<DiscordMessageResource>;
  discord.thread.create: (input, _context) => Promise<DiscordChannelResource>;
  discord.webhook.execute: (input, _context) => Promise<
     | Record<string, never>
    | DiscordMessageResource>;
}>;

Parameters

Parameter Type
options DiscordMessagingIntegrationOptions

Returns

DefinedIntegration\<{ capabilities: [{ audiences: ["customer-facing", "mixed"]; capability: "receive"; description: "Validates Ed25519-signed Discord outgoing-webhook interaction requests."; exposesSensitiveData: true; label: "Receive Discord interactions"; providerObjects: [{ kind: "discordInteraction"; label: "Discord Interaction"; }]; requiresCredential: true; }, { audiences: ["customer-facing", "mixed"]; capability: "send"; description: "Sends bot-token-authenticated Discord channel messages through discord.js REST.post(Routes.channelMessages)."; exposesSensitiveData: true; label: "Send Discord channel messages"; providerObjects: [{ kind: "discordMessage"; label: "Discord Message"; }]; requiresCredential: true; sideEffect: true; }, { audiences: ["customer-facing", "mixed"]; capability: "thread"; changesWorkflow: true; description: "Creates Discord text-channel threads or forum/media channel posts selected by SDK configuration."; exposesSensitiveData: true; label: "Create Discord support threads"; providerObjects: [{ kind: "discordThread"; label: "Discord Thread"; }, { kind: "discordForumPost"; label: "Discord Forum Post"; }, { kind: "discordMediaPost"; label: "Discord Media Channel Post"; }]; requiresCredential: true; sideEffect: true; }]; category: "messaging"; channelAudiences: ["customer-facing", "mixed"]; coverage: { evidence: [{ label: "discord.js package"; url: "https://www.npmjs.com/package/discord.js"; }, { label: "Discord API reference"; url: "https://docs.discord.com/developers/reference"; }, { label: "Discord message resource"; url: "https://docs.discord.com/developers/resources/message"; }, { label: "Discord channel/thread endpoints"; url: "https://docs.discord.com/developers/resources/channel"; }]; notes: ["Coverage is a Cognidesk support workflow adapter backed by discord.js REST, discord.js Routes helpers, and an optional discord.js Gateway service for live support-thread handoff.", "Typed operations cover channel messages, text/forum/media-channel threads, webhook execution with strict Discord webhook URL validation, selected bot/application/guild/channel reads, channel message listing, and Ed25519 interaction signature verification.", "The runtime export includes a Discord Gateway service that creates or reuses Discord threads, ingests customer messages through messageCreate events, mirrors Cognidesk runtime messages into threads, and records idempotency state through the bundled SQLite store.", "This package intentionally removes the generated Discord HTTP API clone and does not claim full Discord platform coverage.", "Discord bot installation, Gateway intents policy, channel permissions, moderation policy, retention, deletion, command registration lifecycle, voice/media transport, broad moderation/admin APIs, and Discord Webhook Events subscriptions remain SDK-user-owned configuration or future package surfaces."]; scope: "support-workflow-subset"; }; credentialRequirements: [{ description: "Server-side Discord bot token used by discord.js REST and Routes SDK helpers for channel, guild, bot, and application calls."; id: "discord-bot-token"; label: "Discord bot token"; metadata: { scopeKind: "provider-oauth-scopes"; }; required: true; scopes: ["bot", "applications.commands"]; }, { description: "SDK-user-owned Discord application ID used to identify commands, interactions, and installation readiness."; id: "discord-application-id"; label: "Discord application ID"; required: true; }, { description: "Ed25519 public key from the Discord Developer Portal for validating interaction endpoint requests."; id: "discord-public-key"; label: "Discord interaction public key"; required: true; }]; directions: ["receive-only", "send-only", "bidirectional"]; id: "messaging.discord"; limitations: ["Available Discord operations depend on the SDK user's Discord application, bot installation, OAuth scopes, role permissions, channel permissions, forum settings, and rate limits.", "The optional Gateway service requires Discord Gateway access with Message Content Intent enabled when message text is mirrored into Cognidesk.", "Discord Webhook Events subscriptions, slash command registration, broader REST administration, voice, and local RPC/IPC remain outside this package.", "Discord interaction endpoint requests must fail closed when signature verification is required but the public key or signature headers are missing or invalid."]; maintainers: [{ name: "Cognidesk"; type: "official"; }]; metadata: { apiBaseUrl: "https://discord.com/api"; channelCoverage: { botApplicationGuildChannelReads: "sdk-owned-rest-read"; channelMessages: "sdk-owned-rest-send-list"; forumPosts: "sdk-owned-rest-create"; gatewayEvents: "sdk-owned-discord-js-gateway-service"; interactionsEndpoint: "typed-verify-parse"; threads: "sdk-owned-rest-create"; voiceGatewayAndRpc: "not-covered"; webhookEventsSubscriptions: "not-covered"; webhookExecution: "sdk-owned-rest-webhook-execute"; }; defaultApiVersion: "10"; gatewayService: { messageIngress: "discord-js-messageCreate"; runtimeMirror: "cognidesk-runtime-event-list"; sourceId: "discord-gateway"; store: "bundled-libsql-sqlite-binding-store"; }; implementation: { operationMethodMap: { discord.application.read: "REST.get(Routes.oauth2CurrentApplication)"; discord.bot.read: "REST.get(Routes.user)"; discord.channel-messages.list: "REST.get(Routes.channelMessages)"; discord.channel.read: "REST.get(Routes.channel)"; discord.forum-post.create: "REST.post(Routes.threads)"; discord.guild.read: "REST.get(Routes.guild)"; discord.interaction-signature.verify: "validateDiscordInteractionSignature"; discord.interaction.receive: "parseDiscordInteractionRequest"; discord.message.send: "REST.post(Routes.channelMessages)"; discord.thread.create: "REST.post(Routes.threads)"; discord.webhook.execute: "REST.post(Routes.webhook)"; }; sdkPackage: "discord.js"; sdkRuntimeSurface: "REST + Routes + Client gateway"; sdkVersionRange: "^14.26.4"; strategy: "official-sdk-support-slice"; strictExceptions: { discord.interaction-signature.verify: "Signature verification is local Ed25519 protocol handling, not an outbound provider SDK call."; discord.interaction.receive: "Interaction parsing and Ed25519 signature verification are local protocol handling, not outbound provider SDK calls."; discord.webhook.execute: "Webhook URLs are validated against the configured Discord API origin, parsed into webhook id/token, dispatched through discord.js REST with auth disabled, and rejected before dispatch when the URL is not a Discord webhook execution URL."; }; }; integrationEntryPoints: { manifest: "@cognidesk/integration-messaging-discord/manifest"; runtime: "@cognidesk/integration-messaging-discord/runtime"; }; integrationName: "Discord Integration"; integrationPackageName: "@cognidesk/integration-messaging-discord"; interactionSignatureHeaders: readonly ["x-signature-ed25519", "x-signature-timestamp"]; providerClient: { importPolicy: "runtime-entrypoint-only"; package: "discord.js"; versionRange: "^14.26.4"; }; }; name: "Discord Messaging Support"; operations: [{ alias: "discord.interaction.receive"; capability: "receive"; exposesSensitiveData: true; extension: true; inputSchemaName: "ParseDiscordInteractionRequestInput"; outputSchemaName: "DiscordParsedInteractionRequest"; providerObject: "discordInteraction"; requiresCredential: true; }, { alias: "discord.message.send"; capability: "send"; exposesSensitiveData: true; extension: true; externallyVisible: true; inputSchemaName: "DiscordSendChannelMessageInput"; outputSchemaName: "DiscordMessageResource"; providerObject: "discordMessage"; providerOperation: "REST.post(Routes.channelMessages)"; requiresCredential: true; sideEffect: true; }, { alias: "discord.thread.create"; capability: "thread"; changesWorkflow: true; exposesSensitiveData: true; extension: true; inputSchemaName: "DiscordCreateThreadInput"; outputSchemaName: "DiscordChannelResource"; providerObject: "discordThread"; providerOperation: "REST.post(Routes.threads)"; requiresCredential: true; sideEffect: true; }]; packageName: "@cognidesk/integration-messaging-discord"; privacyNotes: ["Discord messages, user IDs, guild IDs, channel IDs, thread IDs, usernames, attachments, embeds, interaction payloads, and mirrored runtime transcripts can contain customer and moderator data.", "Discord bot tokens, public keys, application IDs, guild/channel routing, webhook URLs, consent, moderation, retention, and transcript policy stay SDK-user-owned configuration."]; provider: "discord"; trustLevel: "official"; }, unknown, { discord.application.read: () => Promise\<DiscordApplicationResource>; discord.bot.read: () => Promise\<DiscordUserResource>; discord.channel-messages.list: (input) => Promise\<DiscordMessageResource[]>; discord.channel.read: (input) => Promise\<DiscordChannelResource>; discord.forum-post.create: (input, _context) => Promise\<DiscordChannelResource>; discord.guild.read: (input) => Promise\<DiscordGuildResource>; discord.interaction-signature.verify: (input) => Promise\<boolean>; discord.interaction.receive: (input) => Promise\<DiscordParsedInteractionRequest>; discord.message.send: (input, _context) => Promise\<DiscordMessageResource>; discord.thread.create: (input, _context) => Promise\<DiscordChannelResource>; discord.webhook.execute: (input, _context) => Promise\< | Record\<string, never> | DiscordMessageResource>; }>


createDiscordMessagingLiveChecks()

function createDiscordMessagingLiveChecks(options): (
  | {
  description: string;
  id: string;
  requiredCredentialIds: string[];
  run: Promise<{
     details: {
        bot: boolean;
        id: string;
        username: string;
     };
  }>;
}
  | {
  description: string;
  id: string;
  requiredCredentialIds: string[];
  run: Promise<{
     details: {
        id: string;
        name: string;
     };
  }>;
})[];

Parameters

Parameter Type
options DiscordLiveCheckOptions

Returns

( | { description: string; id: string; requiredCredentialIds: string[]; run: Promise\<{ details: { bot: boolean; id: string; username: string; }; }>; } | { description: string; id: string; requiredCredentialIds: string[]; run: Promise\<{ details: { id: string; name: string; }; }>; })[]


createDiscordMessagingOperationHandlers()

function createDiscordMessagingOperationHandlers(options): {
  discord.application.read: () => Promise<DiscordApplicationResource>;
  discord.bot.read: () => Promise<DiscordUserResource>;
  discord.channel-messages.list: (input) => Promise<DiscordMessageResource[]>;
  discord.channel.read: (input) => Promise<DiscordChannelResource>;
  discord.forum-post.create: (input, _context) => Promise<DiscordChannelResource>;
  discord.guild.read: (input) => Promise<DiscordGuildResource>;
  discord.interaction-signature.verify: (input) => Promise<boolean>;
  discord.interaction.receive: (input) => Promise<DiscordParsedInteractionRequest>;
  discord.message.send: (input, _context) => Promise<DiscordMessageResource>;
  discord.thread.create: (input, _context) => Promise<DiscordChannelResource>;
  discord.webhook.execute: (input, _context) => Promise<
     | Record<string, never>
    | DiscordMessageResource>;
};

Parameters

Parameter Type
options DiscordMessagingIntegrationOptions

Returns

{
  discord.application.read: () => Promise<DiscordApplicationResource>;
  discord.bot.read: () => Promise<DiscordUserResource>;
  discord.channel-messages.list: (input) => Promise<DiscordMessageResource[]>;
  discord.channel.read: (input) => Promise<DiscordChannelResource>;
  discord.forum-post.create: (input, _context) => Promise<DiscordChannelResource>;
  discord.guild.read: (input) => Promise<DiscordGuildResource>;
  discord.interaction-signature.verify: (input) => Promise<boolean>;
  discord.interaction.receive: (input) => Promise<DiscordParsedInteractionRequest>;
  discord.message.send: (input, _context) => Promise<DiscordMessageResource>;
  discord.thread.create: (input, _context) => Promise<DiscordChannelResource>;
  discord.webhook.execute: (input, _context) => Promise<
     | Record<string, never>
    | DiscordMessageResource>;
}
Name Type
discord.application.read() () => Promise\<DiscordApplicationResource>
discord.bot.read() () => Promise\<DiscordUserResource>
discord.channel-messages.list() (input) => Promise\<DiscordMessageResource[]>
discord.channel.read() (input) => Promise\<DiscordChannelResource>
discord.forum-post.create() (input, _context) => Promise\<DiscordChannelResource>
discord.guild.read() (input) => Promise\<DiscordGuildResource>
discord.interaction-signature.verify() (input) => Promise\<boolean>
discord.interaction.receive() (input) => Promise\<DiscordParsedInteractionRequest>
discord.message.send() (input, _context) => Promise\<DiscordMessageResource>
discord.thread.create() (input, _context) => Promise\<DiscordChannelResource>
discord.webhook.execute() (input, _context) => Promise\< | Record\<string, never> | DiscordMessageResource>

createDiscordSqliteStore()

function createDiscordSqliteStore(options): DiscordSqliteStore;

Parameters

Parameter Type
options DiscordSqliteStoreOptions

Returns

DiscordSqliteStore


discordInteractionPongResponse()

function discordInteractionPongResponse(): {
  type: number;
};

Returns

{
  type: number;
}
Name Type
type number

discordMessageBody()

function discordMessageBody(input): {
  allowed_mentions: DiscordAllowedMentions;
  attachments: DiscordMessagingJsonValue[];
  components: DiscordMessagingJsonValue[];
  content: string;
  embeds: DiscordMessagingJsonValue[];
  flags: number;
  message_reference: DiscordMessagingJsonObject;
  sticker_ids: string[];
  tts: boolean;
};

Parameters

Parameter Type
input DiscordMessageInput

Returns

{
  allowed_mentions: DiscordAllowedMentions;
  attachments: DiscordMessagingJsonValue[];
  components: DiscordMessagingJsonValue[];
  content: string;
  embeds: DiscordMessagingJsonValue[];
  flags: number;
  message_reference: DiscordMessagingJsonObject;
  sticker_ids: string[];
  tts: boolean;
}
Name Type
allowed_mentions DiscordAllowedMentions
attachments DiscordMessagingJsonValue[]
components DiscordMessagingJsonValue[]
content string
embeds DiscordMessagingJsonValue[]
flags number
message_reference DiscordMessagingJsonObject
sticker_ids string[]
tts boolean

discordMessagingCredentialStatuses()

function discordMessagingCredentialStatuses(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}[];

Parameters

Parameter Type
input DiscordCredentialStatusInput

Returns

{ expiresAt?: string; message?: string; providerPackageId?: string; requirementId: string; scopes?: string[]; state: | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"; }[]


discordThreadUrl()

function discordThreadUrl(guildId, threadId): string;

Parameters

Parameter Type
guildId string
threadId string

Returns

string


discordWebhookUrl()

function discordWebhookUrl(webhookUrl, apiBaseUrl): URL;

Parameters

Parameter Type
webhookUrl string
apiBaseUrl string

Returns

URL


normalizeDiscordInteractionChannelEvent()

function normalizeDiscordInteractionChannelEvent(input): DiscordChannelEvent;

Parameters

Parameter Type
input NormalizeDiscordChannelEventInput

Returns

DiscordChannelEvent


parseDiscordInteractionRequest()

function parseDiscordInteractionRequest(request, options?): Promise<DiscordParsedInteractionRequest>;

Parameters

Parameter Type
request Request
options? ParseDiscordInteractionOptions

Returns

Promise\<DiscordParsedInteractionRequest>


validateDiscordInteractionSignature()

function validateDiscordInteractionSignature(input): boolean;

Parameters

Parameter Type
input ValidateDiscordInteractionSignatureInput

Returns

boolean

References

discordIntegrationManifest

Renames and re-exports discordMessagingProviderManifest


discordMessagingManifestInput

Re-exports discordMessagingManifestInput


discordMessagingOperationAliases

Re-exports discordMessagingOperationAliases


discordMessagingProviderManifest

Re-exports discordMessagingProviderManifest