n8n
Version:
n8n Workflow Automation Tool
65 lines (64 loc) • 3.23 kB
TypeScript
import { Logger } from '@n8n/backend-common';
import { ErrorReporter, StorageConfig } from 'n8n-core';
import type { AgentRunTelemetryType, IAgentConfigurationTelemetryProperties } from '../../interfaces';
import { Telemetry } from '../../telemetry';
import { AgentExecutionThread } from './entities/agent-execution-thread.entity';
import { AgentExecution } from './entities/agent-execution.entity';
import type { MessageRecord } from './execution-recorder';
import { AgentExecutionLogStore } from './execution-log/agent-execution-log-store';
import { N8nMemory } from './integrations/n8n-memory';
import { AgentExecutionThreadRepository } from './repositories/agent-execution-thread.repository';
import type { AgentExecutionThreadMetadata } from './repositories/agent-execution-thread.repository';
import { AgentExecutionRepository } from './repositories/agent-execution.repository';
export interface RecordMessageParams {
threadId: string;
agentId: string;
agentName: string;
projectId: string;
userMessage: string | null;
record: MessageRecord;
hitlStatus?: 'suspended' | 'resumed';
source?: string;
threadMetadata?: AgentExecutionThreadMetadata;
taskId?: string;
taskVersionId?: string;
telemetry?: {
runType: AgentRunTelemetryType;
configuration: IAgentConfigurationTelemetryProperties;
};
}
export interface ThreadDetail {
thread: AgentExecutionThread;
executions: AgentExecution[];
}
export interface ThreadListItem extends Omit<AgentExecutionThread, 'generateId' | 'setUpdateDate'> {
firstMessage: string | null;
source: string | null;
}
export declare class AgentExecutionService {
private readonly logger;
private readonly agentExecutionRepository;
private readonly agentExecutionThreadRepository;
private readonly n8nMemory;
private readonly telemetry;
private readonly agentExecutionLogStore;
private readonly storageConfig;
private readonly errorReporter;
private static readonly logDeletionBatchSize;
constructor(logger: Logger, agentExecutionRepository: AgentExecutionRepository, agentExecutionThreadRepository: AgentExecutionThreadRepository, n8nMemory: N8nMemory, telemetry: Telemetry, agentExecutionLogStore: AgentExecutionLogStore, storageConfig: StorageConfig, errorReporter: ErrorReporter);
recordMessage(params: RecordMessageParams): Promise<string>;
findLatestSuspendedRun(threadId: string): Promise<AgentExecution | null>;
private backfillSuspendedExecutions;
private syncTitleFromMemory;
deleteThread(projectId: string, agentId: string, threadId: string): Promise<boolean>;
deleteExecutionLogsForAgent(agentId: string): Promise<void>;
getThreads(projectId: string, agentId: string, limit: number, cursor?: string): Promise<{
threads: ThreadListItem[];
nextCursor: string | null;
}>;
getThreadDetail(threadId: string, projectId: string, agentId: string): Promise<ThreadDetail | null>;
private hydrateTimelines;
findThreadById(threadId: string): Promise<AgentExecutionThread | null>;
private toBlobRefs;
}
export declare function threadBelongsTo(thread: AgentExecutionThread, projectId: string, agentId: string): boolean;