n8n
Version:
n8n Workflow Automation Tool
72 lines (71 loc) • 4.86 kB
TypeScript
import { type ChatHubConversationsResponse, type ChatHubConversationResponse, type ChatMessageId, type ChatSessionId, type ChatHubUpdateConversationRequest } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config';
import { ExecutionRepository, User } from '@n8n/db';
import type { EntityManager } from '@n8n/db';
import { ErrorReporter } from 'n8n-core';
import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
import { ChatHubAgentService } from './chat-hub-agent.service';
import { ChatHubExecutionService } from './chat-hub-execution.service';
import { ChatHubAuthenticationMetadata } from './chat-hub-extractor';
import { ChatHubTitleService } from './chat-hub-title.service';
import { ChatHubToolService } from './chat-hub-tool.service';
import { ChatHubWorkflowService } from './chat-hub-workflow.service';
import { ChatHubAttachmentService } from './chat-hub.attachment.service';
import { ChatHubModelsService } from './chat-hub.models.service';
import { HumanMessagePayload, RegenerateMessagePayload, EditMessagePayload } from './chat-hub.types';
import { ChatHubMessageRepository } from './chat-message.repository';
import { ChatHubSessionRepository } from './chat-session.repository';
import { ChatStreamService } from './chat-stream.service';
export declare class ChatHubService {
private readonly logger;
private readonly errorReporter;
private readonly executionRepository;
private readonly workflowFinderService;
private readonly sessionRepository;
private readonly messageRepository;
private readonly chatHubAgentService;
private readonly chatHubModelsService;
private readonly chatHubAttachmentService;
private readonly chatStreamService;
private readonly chatHubExecutionService;
private readonly chatHubTitleService;
private readonly chatHubToolService;
private readonly chatHubWorkflowService;
private readonly globalConfig;
constructor(logger: Logger, errorReporter: ErrorReporter, executionRepository: ExecutionRepository, workflowFinderService: WorkflowFinderService, sessionRepository: ChatHubSessionRepository, messageRepository: ChatHubMessageRepository, chatHubAgentService: ChatHubAgentService, chatHubModelsService: ChatHubModelsService, chatHubAttachmentService: ChatHubAttachmentService, chatStreamService: ChatStreamService, chatHubExecutionService: ChatHubExecutionService, chatHubTitleService: ChatHubTitleService, chatHubToolService: ChatHubToolService, chatHubWorkflowService: ChatHubWorkflowService, globalConfig: GlobalConfig);
private pickCredentialId;
private ensurePreviousMessage;
private tryResumeWaitingExecution;
stopGeneration(user: User, sessionId: ChatSessionId, messageId: ChatMessageId): Promise<void>;
private getModelCredential;
private getChatSession;
private createChatSession;
private getChatMessage;
getConversations(userId: string, limit: number, cursor?: string, type?: string): Promise<ChatHubConversationsResponse>;
ensureConversation(userId: string, sessionId: string, trx?: EntityManager): Promise<void>;
getConversation(userId: string, sessionId: string): Promise<ChatHubConversationResponse>;
private buildMessageHistory;
deleteAllSessions(): Promise<import("@n8n/typeorm").DeleteResult>;
updateSession(user: User, sessionId: ChatSessionId, updates: ChatHubUpdateConversationRequest): Promise<void>;
deleteSession(userId: string, sessionId: ChatSessionId): Promise<void>;
private ensureValidModel;
sendHumanMessage(user: User, payload: HumanMessagePayload, executionMetadata: ChatHubAuthenticationMetadata): Promise<void>;
sendHumanMessageManual(user: User, payload: HumanMessagePayload, executionMetadata: ChatHubAuthenticationMetadata, pushRef: string): Promise<void>;
editMessage(user: User, payload: EditMessagePayload, executionMetadata: ChatHubAuthenticationMetadata): Promise<void>;
editMessageManual(user: User, payload: EditMessagePayload, executionMetadata: ChatHubAuthenticationMetadata, pushRef: string): Promise<void>;
regenerateAIMessage(user: User, payload: RegenerateMessagePayload, executionMetadata: ChatHubAuthenticationMetadata): Promise<void>;
regenerateAIMessageManual(user: User, payload: RegenerateMessagePayload, executionMetadata: ChatHubAuthenticationMetadata, pushRef: string): Promise<void>;
reconnectToStream(sessionId: ChatSessionId, lastReceivedSequence: number): Promise<{
hasActiveStream: boolean;
currentMessageId: ChatMessageId | null;
pendingChunks: Array<{
sequenceNumber: number;
content: string;
}>;
lastSequenceNumber: number;
}>;
private executeChatWorkflowWithCleanup;
private convertMessageToDto;
private convertSessionEntityToDto;
}