import type { AiModelSelection } from "./model-config.js"; import type { ExecutionUnitKindV2, InvokeMode } from "./execution-unit.js"; import type { GraphenixLlmRuntimeTraceMetadata } from "./llm-runtime.js"; import type { DataRef } from "./execution-trace.js"; import type { EXECUTABLE_PLAN_FORMAT_V2 } from "./executable-plan-v2.js"; export declare const EXECUTION_TRACE_FORMAT_V2: "execution-trace"; export declare const EXECUTION_TRACE_VERSION_V2: 2; export type ExecutionStatus = "created" | "queued" | "running" | "completed" | "failed" | "cancelled" | "partial" | "skipped"; export interface TraceSourceRef { graphId: string; graphRevision?: string; graphHash: string; authoringFormatVersion?: string; } export interface TracePlanRef { planId: string; planFormat: typeof EXECUTABLE_PLAN_FORMAT_V2; planHash: string; normalizedGraphHash?: string; schedulingPolicyHash?: string; topologyHash?: string; deferredGatesHash?: string; nodePlansHash?: string; } export interface TraceRuntimeRef { jobId: string; mode?: "simulate" | "live" | "plan"; environment?: string; inputHash?: string; inputRef?: DataRef; contextHash?: string; contextRef?: DataRef; variablesHash?: string; executionMemoryInitialHash?: string; outputsMemoryInitialHash?: string; agentId?: string; jobTypeId?: string; } export interface TraceProfileRegistryRef { package: "@x12i/ai-profiles"; version: string; registryHash: string; } export type TraceEventType = "graph.created" | "graph.started" | "graph.completed" | "graph.failed" | "graph.cancelled" | "gate.evaluated" | "node.started" | "node.completed" | "node.failed" | "node.skipped" | "unit.started" | "unit.completed" | "unit.failed" | "unit.skipped" | "model.resolved" | "model.invocation.started" | "model.invocation.completed" | "model.invocation.failed" | "fallback.applied" | "retry.attempted" | "memory.read" | "memory.write" | "finalOutput.produced" | "contract.validation.completed" | "warning" | "diagnostic"; export interface TraceErrorV2 { code: string; message: string; classification?: "validation" | "planningMismatch" | "gateFailed" | "nodeFailed" | "unitFailed" | "modelInvocationFailed" | "fallbackFailed" | "runtimeMismatch" | "permission" | "timeout" | "cancelled" | "unknown"; retryable?: boolean; causeRef?: DataRef; details?: Record; } export interface TraceWarning { code: string; message: string; path?: string; details?: Record; } export interface TraceEvent { id: string; ts: string; sequence: number; level: "debug" | "info" | "warn" | "error"; type: TraceEventType | string; graphId?: string; nodeId?: string; unitId?: string; unitKind?: string; modelSlot?: "preActionModel" | "skillModel" | "postActionModel" | "finalizerModel"; gateId?: string; invocationId?: string; message?: string; evidence?: Record; dataRefs?: DataRef[]; error?: TraceErrorV2; } export interface GraphExecutionSummary { startedNodeIds: string[]; completedNodeIds: string[]; failedNodeIds: string[]; skippedNodeIds: string[]; startedUnitIds: string[]; completedUnitIds: string[]; failedUnitIds: string[]; skippedUnitIds: string[]; finalizerNodeIds: string[]; graphDurationMs?: number; failure?: TraceErrorV2; } export interface GateEvaluationTrace { gateId: string; gateKind: "entry" | "edge" | "node"; sourcePath: string; relatedNodeId?: string; relatedEdgeId?: string; evaluatedAt: string; result: "passed" | "failed" | "skipped" | "error"; conditionKind: "jsonCondition" | "dataFilter" | "aiCondition" | "jsCondition" | "narrativeCondition" | "unknown"; contextHash?: string; contextRef?: DataRef; evidenceRef?: DataRef; evidencePreview?: unknown; error?: TraceErrorV2; skipReason?: string; } export interface SchemaValidationTrace { valid: boolean; schemaRef?: string; schemaHash?: string; errors?: Array<{ path?: string; message: string; keyword?: string; params?: Record; }>; } export interface NodeIoTrace { valueRef?: DataRef; hash?: string; preview?: unknown; previewTruncated?: boolean; schemaValidation?: SchemaValidationTrace; } export interface UnitIoTrace { valueRef?: DataRef; hash?: string; preview?: unknown; previewTruncated?: boolean; } export interface MemoryAccessTrace { accessId: string; kind: "read" | "write"; memory: "executionMemory" | "outputsMemory" | "runtimeInput" | "variables" | "jobContext" | "knowledge"; path: string; valueRef?: DataRef; valueHash?: string; preview?: unknown; previewTruncated?: boolean; source: "inputsConfig" | "smartInput" | "executionMapping" | "jobContextMapping" | "scope" | "knowledgeRef" | "unitOutput" | "runtime"; } export interface MemoryConflictTrace { path: string; message: string; } export interface ExecutionMemoryTrace { initialHash?: string; finalHash?: string; reads: MemoryAccessTrace[]; writes: MemoryAccessTrace[]; writeConflicts?: MemoryConflictTrace[]; } export interface PipelineTrace { nodeId: string; executionStrategies?: string[]; aiTaskStrategies?: Record; aiTaskProfileHash?: string; aiTaskProfileRef?: DataRef; inputSynthesis?: { used: boolean; mode?: string; sourcePolicy?: string; cacheHit?: boolean; synthesizedContextRef?: DataRef; synthesizedContextHash?: string; skipReason?: string; }; narrix?: { used: boolean; mode?: string; inputRef?: DataRef; outputRef?: DataRef; error?: TraceErrorV2; }; webScoping?: { used: boolean; questionCount?: number; resultRef?: DataRef; error?: TraceErrorV2; }; } export interface LocalSkillTrace { nodeId: string; unitId: string; skillKey: string; localConfigHash?: string; localConfigRef?: DataRef; inputRef?: DataRef; outputRef?: DataRef; status: "completed" | "failed" | "skipped"; error?: TraceErrorV2; } export interface FinalizerExecutionTrace { nodeId: string; unitId: string; finalizerType: string; status: "completed" | "failed" | "skipped"; inputRefs?: DataRef[]; output?: FinalOutputTrace; modelInvocationIds?: string[]; schemaValidation?: SchemaValidationTrace; error?: TraceErrorV2; } export interface FinalOutputTrace { producedByNodeId?: string; producedByUnitId?: string; valueRef?: DataRef; valueHash?: string; preview?: unknown; previewTruncated?: boolean; schemaValidation?: SchemaValidationTrace; responseContractRef?: string; responseShapePath?: string; } export interface FallbackTrace { applied: boolean; owner: "executor" | "invocationLayer"; trigger?: "nodeModelInvalid" | "nodeModelUnavailable" | "nodeModelUnsupported" | "nodeProviderNotConfigured" | "nodeModelRateLimited" | "nodeModelTransientFailure"; slot: "preActionModel" | "skillModel" | "postActionModel" | "finalizerModel"; from?: AiModelSelection; to?: AiModelSelection; sourceGraphCaseId?: string; allowedByPolicy: boolean; reason?: string; invocationIds?: string[]; } export interface RetryTrace { attempted: boolean; attempts: number; policyRef?: string; reason?: string; invocationIds?: string[]; } export interface UnitValidationTrace { valid: boolean; schemaRef?: string; errors?: Array<{ path?: string; message: string; }>; } export interface UnitMappingTrace { applied: boolean; targetPath?: string; sourcePath?: string; } export interface TokenUsageTrace { inputTokens?: number; outputTokens?: number; reasoningTokens?: number; totalTokens?: number; } export interface CostTrace { costUsd?: number; costStatus: "known" | "estimated" | "unknown" | "notApplicable"; pricingSource?: string; pricingVersion?: string; } export interface UnitUsageTrace { inputTokens?: number; outputTokens?: number; reasoningTokens?: number; totalTokens?: number; } export interface ResolvedInvocationTrace { provider: string; modelId: string; profileChoiceKey?: string; profile?: string; choice?: string; registryVersion?: string; registryHash?: string; catalogVersion?: string; catalogHash?: string; resolutionSource: "profileRegistry" | "directModel" | "fallback" | "runtimeOverrideForbiddenButObserved" | "unknown"; } export interface InvocationPayloadTrace { valueRef?: DataRef; hash?: string; preview?: unknown; previewTruncated?: boolean; } export interface ModelInvocationTrace { invocationId: string; nodeId: string; unitId: string; slot: "preActionModel" | "skillModel" | "postActionModel" | "finalizerModel"; attempt: number; status: "started" | "completed" | "failed" | "cancelled"; startedAt: string; completedAt?: string; durationMs?: number; plannedSelection: AiModelSelection; resolvedInvocation: ResolvedInvocationTrace; request?: InvocationPayloadTrace; response?: InvocationPayloadTrace; usage?: TokenUsageTrace; cost?: CostTrace; error?: TraceErrorV2; directModelPolicyResult?: "allowed" | "forbidden" | "breakGlass"; } export interface NodeExecutionTraceV2 { nodeId: string; nodeType: "task" | "finalizer" | "callGraph" | "special" | string; executionClass: "aiTask" | "localTask" | "finalizer" | "callGraph" | "special" | string; status: "pending" | "running" | "completed" | "failed" | "skipped"; startedAt?: string; completedAt?: string; durationMs?: number; selectedCases?: { graphModelCaseId?: string; nodeModelCaseId?: string; }; gateEvaluationIds?: string[]; unitIds: string[]; input?: NodeIoTrace; output?: NodeIoTrace; memoryReads?: MemoryAccessTrace[]; memoryWrites?: MemoryAccessTrace[]; pipeline?: PipelineTrace; finalizer?: FinalizerExecutionTrace; localSkill?: LocalSkillTrace; error?: TraceErrorV2; warnings?: TraceWarning[]; skipReason?: string; } export interface ExecutionUnitTraceV2 { unitId: string; nodeId: string; unitKind: ExecutionUnitKindV2; invokeMode: InvokeMode; order: number; status: "pending" | "running" | "completed" | "failed" | "skipped"; startedAt?: string; completedAt?: string; durationMs?: number; plannedModelSelection?: AiModelSelection; actualModelSelection?: AiModelSelection; modelSlot?: "preActionModel" | "skillModel" | "postActionModel" | "finalizerModel"; modelInvocationIds?: string[]; input?: UnitIoTrace; output?: UnitIoTrace; memoryReads?: MemoryAccessTrace[]; memoryWrites?: MemoryAccessTrace[]; fallback?: FallbackTrace; retry?: RetryTrace; validation?: UnitValidationTrace; mapping?: UnitMappingTrace; usage?: UnitUsageTrace; cost?: CostTrace; error?: TraceErrorV2; warnings?: TraceWarning[]; /** Safe LLM runtime tool summaries — no raw provider payloads. */ llmRuntime?: GraphenixLlmRuntimeTraceMetadata; } export interface ExecutionTotals { durationMs?: number; nodeCount?: number; completedNodeCount?: number; failedNodeCount?: number; skippedNodeCount?: number; unitCount?: number; completedUnitCount?: number; failedUnitCount?: number; skippedUnitCount?: number; modelInvocationCount?: number; inputTokens?: number; outputTokens?: number; reasoningTokens?: number; totalTokens?: number; costUsd?: number; costStatus?: "known" | "estimated" | "unknown" | "mixed"; warnings?: number; errors?: number; } export interface TraceDataPolicy { storeFullInputs: boolean; storeFullOutputs: boolean; storePrompts: boolean; storeProviderResponses: boolean; maxPreviewChars: number; redactionProfile?: string; requireDataRefsForLargeValues: boolean; } export interface TraceDiagnostics { messages?: string[]; dataPolicy?: TraceDataPolicy; [key: string]: unknown; } export interface TraceValidationSummary { valid: boolean; validatedAt: string; errorCount: number; warningCount: number; } export interface TraceValidationResult { valid: boolean; errors: import("./errors.js").ExecutableGraphValidationError[]; warnings?: TraceWarning[]; } export interface GraphExecutionTraceV2 { format: typeof EXECUTION_TRACE_FORMAT_V2; version: typeof EXECUTION_TRACE_VERSION_V2; traceId: string; jobId: string; createdAt: string; startedAt?: string; completedAt?: string; status: ExecutionStatus; source: TraceSourceRef; plan: TracePlanRef; runtime: TraceRuntimeRef; profileRegistry?: TraceProfileRegistryRef; events: TraceEvent[]; graphExecution: GraphExecutionSummary; gateEvaluations: Record; nodeExecutions: Record; unitExecutions: Record; modelInvocations: Record; memory: ExecutionMemoryTrace; finalOutput?: FinalOutputTrace; totals?: ExecutionTotals; diagnostics?: TraceDiagnostics; validation?: TraceValidationSummary; } //# sourceMappingURL=execution-trace-v2.d.ts.map