UNPKG

n8n

Version:

n8n Workflow Automation Tool

82 lines (81 loc) 4.45 kB
import type { Logger } from '@n8n/backend-common'; import type { User } from '@n8n/db'; import { type InstanceAiTraceContext, type ManagedBackgroundTask, type ModelConfig, type RunStateRegistry, type ServiceProxyConfig } from '@n8n/instance-ai'; import type { AiService } from '../../../services/ai.service'; import type { InProcessEventBus } from '../event-bus/in-process-event-bus'; import { type InstanceAiRunTraceMetadataOptions } from '../run-trace-metadata'; import type { DbSnapshotStorage } from '../storage/db-snapshot-storage'; export interface MessageTraceFinalization { status: 'completed' | 'cancelled' | 'error' | 'suspended'; outputText?: string; reason?: string; modelId?: ModelConfig; outputs?: Record<string, unknown>; metadata?: Record<string, unknown>; error?: string; } export type OrchestratorResumeReason = 'approval' | 'background_task_completed' | 'workflow_verification' | 'workflow_setup' | 'planned_checkpoint' | 'replan' | 'synthesize'; export type InstanceAiTracingEventBus = Pick<InProcessEventBus, 'getEventsForRun'>; export type InstanceAiTracingRunState = Pick<RunStateRegistry<User>, 'attachTracing'>; export type InstanceAiTracingSnapshotStorage = Pick<DbSnapshotStorage, 'findLangsmithAnchor'>; export type InstanceAiTracingAiService = Pick<AiService, 'isProxyEnabled' | 'getClient'>; export type InstanceAiTracingServiceOptions = { logger: Logger; eventBus: InstanceAiTracingEventBus; runState: InstanceAiTracingRunState; dbSnapshotStorage: InstanceAiTracingSnapshotStorage; aiService: InstanceAiTracingAiService; }; export declare class InstanceAiTracingService { private readonly traceContextsByRunId; private readonly traceReplay; private readonly logger; private readonly eventBus; private readonly runState; private readonly dbSnapshotStorage; private readonly aiService; constructor(options: InstanceAiTracingServiceOptions); storeTraceContext(runId: string, threadId: string, tracing: InstanceAiTraceContext, messageGroupId?: string): void; getTraceContext(runId: string): InstanceAiTraceContext | undefined; getMessageGroupId(runId: string): string | undefined; getTrackedThreadIds(): string[]; clear(): void; getTraceContextForContinuation(threadId: string, messageGroupId?: string): InstanceAiTraceContext | undefined; createOrchestratorResumeTraceContext(options: { baseTracing?: InstanceAiTraceContext; threadId: string; messageId: string; messageGroupId?: string; runId: string; userId: string; modelId?: ModelConfig; input: Record<string, unknown>; proxyConfig?: ServiceProxyConfig; resumeReason: OrchestratorResumeReason; metadata?: Record<string, unknown>; }): Promise<InstanceAiTraceContext | undefined>; configureTraceReplayMode(tracing: InstanceAiTraceContext): Promise<void>; finalizeMessageTraceRoot(runId: string, tracing: InstanceAiTraceContext, options: MessageTraceFinalization): Promise<void>; maybeFinalizeRunTraceRoot(runId: string, options: MessageTraceFinalization): Promise<void>; buildMessageTraceMetadata(threadId: string, runId: string, options: InstanceAiRunTraceMetadataOptions): Record<string, unknown>; finalizeRemainingMessageTraceRoots(threadId: string, options: MessageTraceFinalization): Promise<void>; deleteTraceContextsForThread(threadId: string): void; private deleteTraceContextsForSlug; clearTraceContextsForTest(): void; finalizeDetachedTraceRun(taskId: string, traceContext: InstanceAiTraceContext | undefined, options: { status: 'completed' | 'failed' | 'cancelled'; outputs?: Record<string, unknown>; error?: string; metadata?: Record<string, unknown>; }): Promise<void>; finalizeRunTracing(runId: string, tracing: InstanceAiTraceContext | undefined, options: MessageTraceFinalization): Promise<void>; finalizeBackgroundTaskTracing(task: ManagedBackgroundTask, status: 'completed' | 'failed' | 'cancelled'): Promise<void>; submitLangsmithFeedback(user: User, threadId: string, responseId: string, payload: { rating: 'up' | 'down'; comment?: string; }): Promise<void>; loadTraceEvents(slug: string, events: unknown[]): void; getTraceEvents(slug: string): unknown[]; activateTraceSlug(slug: string): void; clearTraceEvents(slug: string): void; }