UNPKG

n8n

Version:

n8n Workflow Automation Tool

83 lines (82 loc) 2.08 kB
import { type StreamChunk } from '@n8n/agents'; import type { ToolRegistry } from './tool-registry'; export interface RecordedUsage { promptTokens: number; completionTokens: number; totalTokens: number; } export interface RecordedToolCall { name: string; input: unknown; output: unknown; } export type TimelineEvent = { type: 'text'; content: string; timestamp: number; endTime?: number; } | { type: 'tool-call'; kind: 'tool' | 'workflow' | 'node'; name: string; toolCallId: string; input: unknown; output: unknown; startTime: number; endTime: number; success: boolean; workflowId?: string; workflowName?: string; workflowExecutionId?: string; triggerType?: string; nodeType?: string; nodeTypeVersion?: number; nodeDisplayName?: string; nodeParameters?: Record<string, unknown>; } | { type: 'working-memory'; content: string; timestamp: number; } | { type: 'suspension'; toolName: string; toolCallId: string; timestamp: number; }; export interface MessageRecord { assistantResponse: string; model: string | null; finishReason: string; usage: RecordedUsage | null; totalCost: number | null; toolCalls: RecordedToolCall[]; timeline: TimelineEvent[]; startTime: number; duration: number; error: string | null; workingMemory: string | null; } export declare class ExecutionRecorder { private readonly registry; constructor(registry?: ToolRegistry); private textParts; private textBuffer; private model; private finishReason; private usage; private totalCost; private toolCalls; private timeline; private textStartTime; private _suspended; private error; private workingMemory; private readonly startTime; record(chunk: StreamChunk): void; get suspended(): boolean; getMessageRecord(): MessageRecord; private flushTextBuffer; private recordWorkingMemoryUpdate; private recordToolCall; private recordToolResult; }