import type { AiModelSelection, AiModelSlot, ModelFallbackTrigger } from "./model-config.js"; import type { ExecutionUnitKind } from "./execution-unit.js"; export declare const EXECUTION_TRACE_FORMAT: "graphenix.execution-trace/v1"; export type GraphExecutionStatus = "queued" | "running" | "completed" | "failed" | "cancelled" | "partial"; export interface DataRef { uri?: string; hash?: string; contentType?: string; } export interface TraceError { code?: string; message: string; details?: Record; } export interface SchemaValidationResult { valid: boolean; errors?: Array<{ path: string; message: string; }>; } export interface BaseTraceEvent { id: string; ts: string; level: "debug" | "info" | "warn" | "error"; type: string; nodeId?: string; unitId?: string; stepId?: string; message?: string; evidence?: Record; assumptions?: string[]; } export interface GraphStartedEvent extends BaseTraceEvent { type: "graph.started"; } export interface GraphCompletedEvent extends BaseTraceEvent { type: "graph.completed"; } export interface GraphFailedEvent extends BaseTraceEvent { type: "graph.failed"; } export interface NodeStartedEvent extends BaseTraceEvent { type: "node.started"; nodeId: string; } export interface NodeCompletedEvent extends BaseTraceEvent { type: "node.completed"; nodeId: string; } export interface NodeFailedEvent extends BaseTraceEvent { type: "node.failed"; nodeId: string; } export interface ModelSlotResolvedEvent extends BaseTraceEvent { type: "model.slot.resolved"; nodeId: string; } export interface ModelInvocationStartedEvent extends BaseTraceEvent { type: "model.invocation.started"; nodeId: string; } export interface ModelInvocationCompletedEvent extends BaseTraceEvent { type: "model.invocation.completed"; nodeId: string; } export interface ModelInvocationFailedEvent extends BaseTraceEvent { type: "model.invocation.failed"; nodeId: string; } export interface ModelFallbackAppliedEvent extends BaseTraceEvent { type: "model.fallback.applied"; nodeId: string; } export interface ValidationFailedEvent extends BaseTraceEvent { type: "validation.failed"; } export interface WarningEvent extends BaseTraceEvent { type: "warning"; } export interface ExecutionUnitStartedEvent extends BaseTraceEvent { type: "executionUnit.started"; nodeId: string; unitId: string; } export interface ExecutionUnitCompletedEvent extends BaseTraceEvent { type: "executionUnit.completed"; nodeId: string; unitId: string; } export interface ExecutionUnitFailedEvent extends BaseTraceEvent { type: "executionUnit.failed"; nodeId: string; unitId: string; } export interface ExecutionUnitSkippedEvent extends BaseTraceEvent { type: "executionUnit.skipped"; nodeId: string; unitId: string; } export interface ExecutionUnitModelResolvedEvent extends BaseTraceEvent { type: "executionUnit.model.resolved"; nodeId: string; unitId: string; } export interface ExecutionUnitModelFallbackAppliedEvent extends BaseTraceEvent { type: "executionUnit.model.fallbackApplied"; nodeId: string; unitId: string; } export interface ExecutionUnitValidationFailedEvent extends BaseTraceEvent { type: "executionUnit.validation.failed"; nodeId: string; unitId: string; } export type GraphExecutionEvent = GraphStartedEvent | GraphCompletedEvent | GraphFailedEvent | NodeStartedEvent | NodeCompletedEvent | NodeFailedEvent | ModelSlotResolvedEvent | ModelInvocationStartedEvent | ModelInvocationCompletedEvent | ModelInvocationFailedEvent | ModelFallbackAppliedEvent | ValidationFailedEvent | WarningEvent | ExecutionUnitStartedEvent | ExecutionUnitCompletedEvent | ExecutionUnitFailedEvent | ExecutionUnitSkippedEvent | ExecutionUnitModelResolvedEvent | ExecutionUnitModelFallbackAppliedEvent | ExecutionUnitValidationFailedEvent; export interface ModelInvocationAttempt { attempt: number; startedAt: string; completedAt?: string; status: "completed" | "failed" | "cancelled"; provider: string; modelId: string; requestRef?: DataRef; responseRef?: DataRef; error?: TraceError; usage?: { inputTokens?: number; outputTokens?: number; totalTokens?: number; }; cost?: { costUsd?: number; costStatus?: "known" | "estimated" | "unknown"; }; } export interface ModelSlotExecutionTrace { slot: AiModelSlot; plannedSelection: AiModelSelection; resolvedInvocation?: { provider: string; modelId: string; profileChoiceKey?: string; profile?: string; choice?: string; registryVersion?: string; catalogVersion?: string; }; source: "graphDefault" | "nodeOverride" | "nodeCaseOverride" | "fallbackToGraphDefault"; fallback?: { applied: boolean; trigger?: ModelFallbackTrigger; from?: AiModelSelection; to?: AiModelSelection; reason?: string; }; usage?: { inputTokens?: number; outputTokens?: number; totalTokens?: number; }; cost?: { costUsd?: number; costStatus?: "known" | "estimated" | "unknown"; }; attempts?: ModelInvocationAttempt[]; } export interface ExecutionUnitTrace { unitId: string; nodeId: string; unitKind: ExecutionUnitKind; status: "pending" | "running" | "completed" | "failed" | "skipped"; startedAt?: string; completedAt?: string; durationMs?: number; plannedModelSelection?: AiModelSelection; resolvedInvocation?: { provider: string; modelId: string; profileChoiceKey?: string; profile?: string; choice?: string; registryVersion?: string; catalogVersion?: string; }; input?: { valueRef?: DataRef; preview?: unknown; hash?: string; }; output?: { valueRef?: DataRef; preview?: unknown; hash?: string; }; usage?: { inputTokens?: number; outputTokens?: number; totalTokens?: number; }; cost?: { costUsd?: number; costStatus?: "known" | "estimated" | "unknown"; }; fallback?: { applied: boolean; trigger?: ModelFallbackTrigger; from?: AiModelSelection; to?: AiModelSelection; reason?: string; }; error?: TraceError; } export interface NodeExecutionTrace { nodeId: string; nodeType: "task" | "finalizer"; status: "pending" | "running" | "completed" | "failed" | "skipped"; startedAt?: string; completedAt?: string; durationMs?: number; selectedCases?: { graphCaseId: string; nodeCaseId?: string; }; units: Record; /** @deprecated Use units for unit-level model execution data. */ modelSlots?: Record; input?: { valueRef?: DataRef; preview?: unknown; hash?: string; }; output?: { valueRef?: DataRef; preview?: unknown; hash?: string; }; error?: TraceError; } export interface GraphExecutionTrace { format: typeof EXECUTION_TRACE_FORMAT; traceId: string; jobId: string; createdAt: string; completedAt?: string; status: GraphExecutionStatus; source: { graphId: string; graphRevision?: string; graphHash: string; }; plan: { planId: string; planHash: string; }; runtime: { mode?: "simulate" | "live" | "plan"; environment?: string; inputRef?: DataRef; inputHash?: string; }; events: GraphExecutionEvent[]; nodeExecutions: Record; finalOutput?: { valueRef?: DataRef; valuePreview?: unknown; schemaValidation?: SchemaValidationResult; }; totals?: { durationMs?: number; inputTokens?: number; outputTokens?: number; costUsd?: number; warnings?: number; errors?: number; }; } //# sourceMappingURL=execution-trace.d.ts.map