n8n
Version:
n8n Workflow Automation Tool
74 lines (73 loc) • 3.99 kB
TypeScript
import type { RichCardComponentType } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import { OutboundHttp } from '@n8n/backend-network';
import type { Message, Thread } from 'chat';
import { InstanceSettings } from 'n8n-core';
import { AgentRepository } from '../../repositories/agent.repository';
import { AgentChatIntegration, type AgentChatIntegrationContext, type ActionDecisionMessageParams, type BridgeExecutionContext, type BridgeMessageContextParams, type BridgeResumeExecutionContext, type PlatformAgentContext, type PlatformContextQueryParams, type SettleActionMessageParams, type WebhookRequestContext, type WebhookRequestResolution } from '../agent-chat-integration';
import type { ChatInstance } from '../chat-integration.service';
import type { SuspendComponent } from '../component-mapper';
import type { ReplyExpectation } from '../integration-tools';
export declare class DiscordIntegration extends AgentChatIntegration {
private readonly logger;
private readonly agentRepository;
readonly type = "discord";
readonly credentialTypes: string[];
readonly displayLabel = "Discord";
readonly displayIcon = "discord";
readonly builderGuidance: {
capabilities: string[];
useIntegrationWhen: string[];
useNodeToolWhen: string[];
};
readonly supportedComponents: readonly RichCardComponentType[];
readonly actionToolDefinitions: import("../integration-tool-types").IntegrationActionDefinition[];
readonly contextToolDefinitions: import("../integration-tool-types").IntegrationContextQueryDefinition[];
readonly contextToolGuidance: string[];
readonly actionToolGuidance: string[];
readonly needsShortCallbackData = true;
readonly disableStreaming = true;
readonly deleteActionMessageBeforeResume = false;
resolveWebhookRequest(request: WebhookRequestContext): WebhookRequestResolution;
matchesWebhookConnection(credential: Record<string, unknown>, connectionSelector: string): boolean;
private readonly pendingConnections;
private readonly gateway;
private readonly httpClient;
constructor(logger: Logger, instanceSettings: InstanceSettings, agentRepository: AgentRepository, outboundHttp: OutboundHttp);
onBeforeConnect(ctx: AgentChatIntegrationContext): Promise<void>;
createAdapter(ctx: AgentChatIntegrationContext): Promise<unknown>;
onConnected(ctx: AgentChatIntegrationContext): Promise<void>;
onDisconnected(ctx: AgentChatIntegrationContext): Promise<void>;
settleActionMessage(params: SettleActionMessageParams): Promise<void>;
shouldSubscribeToNewMention({ thread }: {
thread: Thread;
message: Message;
}): boolean;
getReplyExpectation(params: {
message: BridgeMessageContextParams['message'];
isNewMention: boolean;
}): ReplyExpectation;
executeContextQuery(params: PlatformContextQueryParams): Promise<unknown>;
startAllGateways(): void;
stopAllGateways(): Promise<void>;
getPlatformAgentContext(chat: ChatInstance): PlatformAgentContext;
prepareInboundText(text: string, context: PlatformAgentContext): string;
createBridgeExecutionContext(params: BridgeMessageContextParams): Promise<BridgeExecutionContext>;
createResumeExecutionContext(params: {
thread: BridgeMessageContextParams['thread'];
logger: BridgeMessageContextParams['logger'];
agentId: string;
}): Promise<BridgeResumeExecutionContext>;
private startTyping;
formatActionDecisionMessage({ approved, selectedLabel, raw, user, }: ActionDecisionMessageParams): string;
normalizeComponents(components: SuspendComponent[]): SuspendComponent[];
private sessionKey;
private assertBotTokenAvailable;
private validateDiscordCredential;
private createAdapterLogger;
private extractBotToken;
private extractPublicKey;
private extractApplicationId;
private requireCredentialField;
private extractCardText;
}