{"version":3,"sources":["../src/types/inspect-event.ts","../src/types/persisted-inspect-event.ts","../src/persisted/to-trace-event.ts"],"names":[],"mappings":"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","file":"chunk-EE5Z2GQ3.mjs","sourcesContent":["export type AttributionConfidence =\n  | \"explicit\"\n  | \"correlated\"\n  | \"heuristic\"\n  | \"unknown\";\n\n/** Canonical attribution-confidence literals (weakest → strongest order is rank-based). */\nexport const ATTRIBUTION_CONFIDENCES: readonly AttributionConfidence[] = [\n  \"unknown\",\n  \"heuristic\",\n  \"correlated\",\n  \"explicit\",\n] as const;\n\nexport function isAttributionConfidence(value: unknown): value is AttributionConfidence {\n  return (\n    typeof value === \"string\" &&\n    (ATTRIBUTION_CONFIDENCES as readonly string[]).includes(value)\n  );\n}\n\n/** Rank for threshold comparisons; unknown is weakest (0). */\nexport const ATTRIBUTION_CONFIDENCE_RANK: Record<AttributionConfidence, number> = {\n  unknown: 0,\n  heuristic: 1,\n  correlated: 2,\n  explicit: 3,\n};\n\nexport type InspectKind =\n  | \"RUN\"\n  | \"AGENT\"\n  | \"LLM\"\n  | \"TOOL\"\n  | \"CHAIN\"\n  | \"RETRIEVER\"\n  | \"DECISION\"\n  | \"RESULT\"\n  | \"ERROR\"\n  | \"LOGIC\"\n  | \"LOG\"\n  | \"OUTCOME\";\n\nexport interface EventSource {\n  type: \"manual\" | \"json-log\" | \"log4js\" | \"pino\" | \"winston\" | \"adapter\";\n  file?: string;\n  line?: number;\n}\n\nexport interface InspectEvent {\n  eventId: string;\n  runId: string;\n  parentId?: string;\n  name: string;\n  kind: InspectKind;\n  timestamp: number;\n  status?: \"running\" | \"ok\" | \"error\";\n  durationMs?: number;\n  attributes?: Record<string, unknown>;\n  confidence: AttributionConfidence;\n  source: EventSource;\n}\n\nexport interface InspectNode {\n  event: InspectEvent;\n  children: InspectNode[];\n  depth: number;\n}\n\n/** Bounded parent/cycle summary for visibility-first tree building (6.14.2+). */\nexport interface RelationshipSummary {\n  rootCount: number;\n  selfParentCount: number;\n  cycleCount: number;\n  unresolvedParentCount: number;\n  normalizedEdgeCount: number;\n}\n\nexport interface InspectRunTree {\n  runId: string;\n  name?: string;\n  status?: \"running\" | \"ok\" | \"error\";\n  startedAt?: number;\n  endedAt?: number;\n  durationMs?: number;\n  children: InspectNode[];\n  metadata: {\n    totalEvents: number;\n    confidenceBreakdown: Record<AttributionConfidence, number>;\n    kinds: Record<InspectKind, number>;\n    relationshipSummary?: RelationshipSummary;\n  };\n}\n\n","import type { AttributionConfidence, InspectKind } from \"./inspect-event.js\";\nimport { isAttributionConfidence } from \"./inspect-event.js\";\n\nexport type PersistedSchemaVersion = \"0.2\" | \"1.0\";\n\nexport type PersistedEventSourceType =\n  | \"manual\"\n  | \"json-log\"\n  | \"log4js\"\n  | \"adapter\"\n  | \"ai-sdk\"\n  | \"otel\";\n\nexport interface PersistedEventSource {\n  type: PersistedEventSourceType;\n  name?: string;\n  version?: string;\n}\n\nexport type PersistedEventStatus = \"running\" | \"ok\" | \"error\" | \"unknown\";\n\nexport interface PersistedInspectError {\n  name?: string;\n  message: string;\n  code?: string;\n}\n\nexport interface PersistedTokenUsage {\n  input?: number;\n  output?: number;\n  total?: number;\n  /** Cache-read tokens (informational; never added to total). */\n  cached?: number;\n  /** Cache-write / cache-creation tokens (informational; never added to total). */\n  cacheWrite?: number;\n  /** Reasoning / thinking tokens when providers report them separately. */\n  reasoning?: number;\n}\n\nexport interface PersistedTraceContext {\n  traceId?: string;\n  spanId?: string;\n  parentSpanId?: string;\n}\n\nexport interface PersistedInspectEventBase {\n  eventId: string;\n  runId: string;\n  parentId?: string;\n  kind: InspectKind;\n  name: string;\n  status?: PersistedEventStatus;\n  timestamp: string;\n  startedAt?: string;\n  endedAt?: string;\n  durationMs?: number;\n  confidence: AttributionConfidence;\n  source: PersistedEventSource;\n  attributes?: Record<string, unknown>;\n  inputSummary?: unknown;\n  outputSummary?: unknown;\n  error?: PersistedInspectError;\n  tokenUsage?: PersistedTokenUsage;\n  trace?: PersistedTraceContext;\n}\n\nexport interface PersistedInspectEventV02 extends PersistedInspectEventBase {\n  schemaVersion: \"0.2\";\n}\n\nexport interface PersistedInspectEventV10 extends PersistedInspectEventBase {\n  schemaVersion: \"1.0\";\n  [key: string]: unknown;\n}\n\nexport type PersistedInspectEvent =\n  | PersistedInspectEventV02\n  | PersistedInspectEventV10;\n\nconst INSPECT_KINDS: readonly InspectKind[] = [\n  \"RUN\",\n  \"AGENT\",\n  \"LLM\",\n  \"TOOL\",\n  \"CHAIN\",\n  \"RETRIEVER\",\n  \"DECISION\",\n  \"RESULT\",\n  \"ERROR\",\n  \"LOGIC\",\n  \"LOG\",\n  \"OUTCOME\",\n];\n\nconst PERSISTED_EVENT_SOURCE_TYPES: readonly PersistedEventSourceType[] = [\n  \"manual\",\n  \"json-log\",\n  \"log4js\",\n  \"adapter\",\n  \"ai-sdk\",\n  \"otel\",\n];\n\nconst PERSISTED_EVENT_STATUSES: readonly PersistedEventStatus[] = [\n  \"running\",\n  \"ok\",\n  \"error\",\n  \"unknown\",\n];\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isString(value: unknown): value is string {\n  return typeof value === \"string\";\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n  return typeof value === \"string\" && value.length > 0;\n}\n\nfunction isOptionalString(value: unknown): boolean {\n  return value === undefined || isString(value);\n}\n\nfunction isNonNegativeNumber(value: unknown): value is number {\n  return typeof value === \"number\" && Number.isFinite(value) && value >= 0;\n}\n\nfunction isOptionalNonNegativeNumber(value: unknown): boolean {\n  return value === undefined || isNonNegativeNumber(value);\n}\n\nfunction isInspectKind(value: unknown): value is InspectKind {\n  return (\n    typeof value === \"string\" &&\n    (INSPECT_KINDS as readonly string[]).includes(value)\n  );\n}\n\nfunction isPersistedEventSourceType(\n  value: unknown,\n): value is PersistedEventSourceType {\n  return (\n    typeof value === \"string\" &&\n    (PERSISTED_EVENT_SOURCE_TYPES as readonly string[]).includes(value)\n  );\n}\n\nfunction isPersistedEventStatus(value: unknown): value is PersistedEventStatus {\n  return (\n    typeof value === \"string\" &&\n    (PERSISTED_EVENT_STATUSES as readonly string[]).includes(value)\n  );\n}\n\nfunction isPersistedEventSource(value: unknown): value is PersistedEventSource {\n  if (!isRecord(value)) return false;\n  if (!isPersistedEventSourceType(value.type)) return false;\n  if (!isOptionalString(value.name)) return false;\n  if (!isOptionalString(value.version)) return false;\n  return true;\n}\n\nfunction isPersistedInspectError(value: unknown): value is PersistedInspectError {\n  if (!isRecord(value)) return false;\n  if (!isNonEmptyString(value.message)) return false;\n  if (!isOptionalString(value.name)) return false;\n  if (!isOptionalString(value.code)) return false;\n  return true;\n}\n\nfunction isPersistedTokenUsage(value: unknown): value is PersistedTokenUsage {\n  if (!isRecord(value)) return false;\n  if (!isOptionalNonNegativeNumber(value.input)) return false;\n  if (!isOptionalNonNegativeNumber(value.output)) return false;\n  if (!isOptionalNonNegativeNumber(value.total)) return false;\n  if (!isOptionalNonNegativeNumber(value.cached)) return false;\n  if (!isOptionalNonNegativeNumber(value.cacheWrite)) return false;\n  if (!isOptionalNonNegativeNumber(value.reasoning)) return false;\n  return true;\n}\n\nfunction isPersistedTraceContext(value: unknown): value is PersistedTraceContext {\n  if (!isRecord(value)) return false;\n  if (!isOptionalString(value.traceId)) return false;\n  if (!isOptionalString(value.spanId)) return false;\n  if (!isOptionalString(value.parentSpanId)) return false;\n  return true;\n}\n\n/**\n * Runtime guard for a v0.2 or v1.0 {@link PersistedInspectEvent} JSON object.\n *\n * Timestamp fields (`timestamp`, `startedAt`, `endedAt`) are validated as\n * non-empty strings only — stricter ISO-8601 parsing may be added later.\n */\nexport function isPersistedInspectEvent(\n  value: unknown,\n): value is PersistedInspectEvent {\n  if (!isRecord(value)) return false;\n  if (value.schemaVersion !== \"0.2\" && value.schemaVersion !== \"1.0\") {\n    return false;\n  }\n\n  if (!isNonEmptyString(value.eventId)) return false;\n  if (!isNonEmptyString(value.runId)) return false;\n  if (!isInspectKind(value.kind)) return false;\n  if (!isNonEmptyString(value.name)) return false;\n  // Non-empty string required; ISO format not validated in this PR.\n  if (!isNonEmptyString(value.timestamp)) return false;\n  if (!isAttributionConfidence(value.confidence)) return false;\n  if (!isPersistedEventSource(value.source)) return false;\n\n  if (value.parentId !== undefined && !isNonEmptyString(value.parentId)) {\n    return false;\n  }\n  if (value.status !== undefined && !isPersistedEventStatus(value.status)) {\n    return false;\n  }\n  if (!isOptionalString(value.startedAt)) return false;\n  if (!isOptionalString(value.endedAt)) return false;\n  if (value.durationMs !== undefined && !isNonNegativeNumber(value.durationMs)) {\n    return false;\n  }\n  if (value.attributes !== undefined && !isRecord(value.attributes)) {\n    return false;\n  }\n  if (value.error !== undefined && !isPersistedInspectError(value.error)) {\n    return false;\n  }\n  if (value.tokenUsage !== undefined && !isPersistedTokenUsage(value.tokenUsage)) {\n    return false;\n  }\n  if (value.trace !== undefined && !isPersistedTraceContext(value.trace)) {\n    return false;\n  }\n\n  return true;\n}\n\nexport function isPersistedInspectEventV02(\n  value: unknown,\n): value is PersistedInspectEventV02 {\n  return isPersistedInspectEvent(value) && value.schemaVersion === \"0.2\";\n}\n\nexport function isPersistedInspectEventV10(\n  value: unknown,\n): value is PersistedInspectEventV10 {\n  return isPersistedInspectEvent(value) && value.schemaVersion === \"1.0\";\n}\n","import type { InspectKind } from \"../types/inspect-event.js\";\nimport type {\n  ErrorInfo,\n  RunStatus,\n  StepMetadata,\n  StepStatus,\n  StepType,\n  TraceEvent,\n} from \"../types.js\";\nimport {\n  isPersistedInspectEvent,\n  type PersistedInspectEvent,\n  type PersistedTokenUsage,\n} from \"../types/persisted-inspect-event.js\";\n\nexport interface PersistedToTraceEventOptions {\n  /**\n   * Stable index within the source event list.\n   * Used for deterministic timestamps when only one instant is known.\n   */\n  eventIndex?: number;\n}\n\nfunction parseIsoToMs(iso: string): number {\n  const parsed = Date.parse(iso);\n  return Number.isFinite(parsed) ? parsed : 0;\n}\n\nfunction mapInspectKindToStepType(kind: InspectKind): StepType {\n  switch (kind) {\n    case \"LLM\":\n      return \"llm\";\n    case \"TOOL\":\n      return \"tool\";\n    case \"DECISION\":\n      return \"decision\";\n    case \"RUN\":\n      return \"run\";\n    default:\n      return \"logic\";\n  }\n}\n\nfunction mapPersistedStatusToStepStatus(\n  status: PersistedInspectEvent[\"status\"],\n): StepStatus | undefined {\n  switch (status) {\n    case \"ok\":\n      return \"success\";\n    case \"error\":\n      return \"error\";\n    case \"running\":\n      return \"running\";\n    default:\n      return undefined;\n  }\n}\n\nfunction mapPersistedStatusToRunStatus(\n  status: PersistedInspectEvent[\"status\"],\n): RunStatus | undefined {\n  switch (status) {\n    case \"ok\":\n      return \"success\";\n    case \"error\":\n      return \"error\";\n    case \"running\":\n      return \"running\";\n    default:\n      return undefined;\n  }\n}\n\nfunction mapPersistedError(\n  error: PersistedInspectEvent[\"error\"],\n  attributes: Record<string, unknown> | undefined,\n): ErrorInfo | undefined {\n  if (!error?.message) return undefined;\n  const out: ErrorInfo = { message: error.message };\n  const stack =\n    typeof attributes?.errorStack === \"string\" &&\n    attributes.errorStack.length > 0\n      ? attributes.errorStack\n      : undefined;\n  if (stack) {\n    out.stack = stack;\n  }\n  return out;\n}\n\nfunction mapTokenUsageToMetadata(\n  tokenUsage: PersistedTokenUsage | undefined,\n  attributes: Record<string, unknown> | undefined,\n): StepMetadata | undefined {\n  const metadata: StepMetadata = {};\n  if (attributes?.metadata && typeof attributes.metadata === \"object\") {\n    Object.assign(metadata, attributes.metadata as Record<string, unknown>);\n  }\n  if (tokenUsage) {\n    metadata.tokens = {\n      ...(tokenUsage.input !== undefined ? { input: tokenUsage.input } : {}),\n      ...(tokenUsage.output !== undefined ? { output: tokenUsage.output } : {}),\n      ...(tokenUsage.total !== undefined ? { total: tokenUsage.total } : {}),\n      ...(tokenUsage.cached !== undefined ? { cached: tokenUsage.cached } : {}),\n      ...(tokenUsage.cacheWrite !== undefined\n        ? { cacheWrite: tokenUsage.cacheWrite }\n        : {}),\n      ...(tokenUsage.reasoning !== undefined\n        ? { reasoning: tokenUsage.reasoning }\n        : {}),\n    };\n  }\n  return Object.keys(metadata).length > 0 ? metadata : undefined;\n}\n\nfunction pickRunMetadata(\n  attributes: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n  if (!attributes) return undefined;\n  const metadata =\n    attributes.metadata && typeof attributes.metadata === \"object\"\n      ? { ...(attributes.metadata as Record<string, unknown>) }\n      : {};\n  for (const key of [\n    \"correlationId\",\n    \"requestId\",\n    \"decisionId\",\n    \"groupId\",\n  ] as const) {\n    const value = attributes[key];\n    if (typeof value === \"string\" && value.trim() !== \"\") {\n      metadata[key] = value;\n    }\n  }\n  return Object.keys(metadata).length > 0 ? metadata : undefined;\n}\n\nfunction resolveStepId(event: PersistedInspectEvent): string {\n  const attrs = event.attributes;\n  if (attrs && typeof attrs.stepId === \"string\" && attrs.stepId.trim() !== \"\") {\n    return attrs.stepId;\n  }\n  return event.eventId;\n}\n\nfunction resolveStepType(event: PersistedInspectEvent): StepType {\n  const attrs = event.attributes;\n  if (attrs && typeof attrs.stepType === \"string\") {\n    const t = attrs.stepType;\n    if (\n      t === \"run\" ||\n      t === \"llm\" ||\n      t === \"tool\" ||\n      t === \"decision\" ||\n      t === \"logic\" ||\n      t === \"state\" ||\n      t === \"custom\"\n    ) {\n      return t;\n    }\n  }\n  return mapInspectKindToStepType(event.kind);\n}\n\nfunction resolveTimes(event: PersistedInspectEvent): {\n  timestamp: number;\n  startTime: number;\n  endTime: number;\n} {\n  const timestamp = parseIsoToMs(event.timestamp);\n  const startTime =\n    event.startedAt !== undefined ? parseIsoToMs(event.startedAt) : timestamp;\n  let endTime =\n    event.endedAt !== undefined ? parseIsoToMs(event.endedAt) : timestamp;\n  if (\n    event.durationMs !== undefined &&\n    Number.isFinite(event.durationMs) &&\n    event.durationMs >= 0 &&\n    event.endedAt === undefined\n  ) {\n    endTime = startTime + event.durationMs;\n  }\n  return { timestamp, startTime, endTime };\n}\n\nfunction fromLegacyRunStarted(event: PersistedInspectEvent): TraceEvent {\n  const { timestamp, startTime } = resolveTimes(event);\n  const out: Extract<TraceEvent, { event: \"run_started\" }> = {\n    schemaVersion: \"0.1\",\n    event: \"run_started\",\n    timestamp,\n    runId: event.runId,\n    name: event.name,\n    startTime,\n  };\n  const metadata = pickRunMetadata(event.attributes);\n  if (metadata) out.metadata = metadata;\n  return out;\n}\n\nfunction fromLegacyRunCompleted(event: PersistedInspectEvent): TraceEvent {\n  const { timestamp, endTime } = resolveTimes(event);\n  const status = mapPersistedStatusToRunStatus(event.status) ?? \"success\";\n  const out: Extract<TraceEvent, { event: \"run_completed\" }> = {\n    schemaVersion: \"0.1\",\n    event: \"run_completed\",\n    timestamp,\n    runId: event.runId,\n    status: status === \"running\" ? \"success\" : status,\n    endTime,\n    durationMs: event.durationMs ?? Math.max(0, endTime - timestamp),\n  };\n  const error = mapPersistedError(event.error, event.attributes);\n  if (error) out.error = error;\n  return out;\n}\n\nfunction fromLegacyStepStarted(event: PersistedInspectEvent): TraceEvent {\n  const { timestamp, startTime } = resolveTimes(event);\n  const out: Extract<TraceEvent, { event: \"step_started\" }> = {\n    schemaVersion: \"0.1\",\n    event: \"step_started\",\n    timestamp,\n    runId: event.runId,\n    stepId: resolveStepId(event),\n    name: event.name,\n    type: resolveStepType(event),\n    startTime,\n  };\n  if (event.parentId !== undefined) out.parentId = event.parentId;\n  const metadata = mapTokenUsageToMetadata(event.tokenUsage, event.attributes);\n  if (metadata) out.metadata = metadata;\n  return out;\n}\n\nfunction fromLegacyStepCompleted(event: PersistedInspectEvent): TraceEvent {\n  const { timestamp, endTime } = resolveTimes(event);\n  const status = mapPersistedStatusToStepStatus(event.status) ?? \"success\";\n  const out: Extract<TraceEvent, { event: \"step_completed\" }> = {\n    schemaVersion: \"0.1\",\n    event: \"step_completed\",\n    timestamp,\n    runId: event.runId,\n    stepId: resolveStepId(event),\n    status: status === \"running\" ? \"success\" : status,\n    endTime,\n    durationMs: event.durationMs ?? Math.max(0, endTime - timestamp),\n  };\n  const error = mapPersistedError(event.error, event.attributes);\n  if (error) out.error = error;\n  return out;\n}\n\nfunction fromLegacyOutcomeObserved(event: PersistedInspectEvent): TraceEvent {\n  const attrs = event.attributes ?? {};\n  const observedAtRaw = attrs.observedAt;\n  const observedAt =\n    typeof observedAtRaw === \"string\"\n      ? Date.parse(observedAtRaw)\n      : typeof observedAtRaw === \"number\" && Number.isFinite(observedAtRaw)\n        ? observedAtRaw\n        : resolveTimes(event).timestamp;\n  const status = attrs.outcomeStatus;\n  const out: Extract<TraceEvent, { event: \"outcome_observed\" }> = {\n    schemaVersion: \"0.1\",\n    event: \"outcome_observed\",\n    timestamp: observedAt,\n    runId: event.runId,\n    outcomeId:\n      typeof attrs.outcomeId === \"string\" ? attrs.outcomeId : event.eventId,\n    name: event.name,\n    expectation:\n      typeof attrs.expectation === \"string\" ? attrs.expectation : event.name,\n    status:\n      status === \"passed\" ||\n      status === \"failed\" ||\n      status === \"unknown\" ||\n      status === \"skipped\"\n        ? status\n        : \"unknown\",\n    observedAt,\n  };\n  if (event.parentId !== undefined) out.parentId = event.parentId;\n  if (typeof attrs.method === \"string\") out.method = attrs.method as never;\n  if (attrs.actual !== undefined) out.actual = attrs.actual;\n  if (event.outputSummary !== undefined) out.actual = event.outputSummary;\n  if (attrs.evidence !== undefined) out.evidence = attrs.evidence;\n  return out;\n}\n\nfunction fromNativeOutcome(event: PersistedInspectEvent): TraceEvent[] {\n  return [fromLegacyOutcomeObserved(event)];\n}\n\nfunction fromNativeRun(event: PersistedInspectEvent): TraceEvent[] {\n  const { timestamp, startTime, endTime } = resolveTimes(event);\n  const runStatus = mapPersistedStatusToRunStatus(event.status);\n  const out: TraceEvent[] = [];\n\n  if (runStatus === \"running\" || event.startedAt !== undefined) {\n    const started: Extract<TraceEvent, { event: \"run_started\" }> = {\n      schemaVersion: \"0.1\",\n      event: \"run_started\",\n      timestamp,\n      runId: event.runId,\n      name: event.name,\n      startTime,\n    };\n    const metadata = pickRunMetadata(event.attributes);\n    if (metadata) started.metadata = metadata;\n    out.push(started);\n  }\n\n  if (runStatus === \"success\" || runStatus === \"error\" || event.endedAt !== undefined) {\n    const completed: Extract<TraceEvent, { event: \"run_completed\" }> = {\n      schemaVersion: \"0.1\",\n      event: \"run_completed\",\n      timestamp,\n      runId: event.runId,\n      status: runStatus === \"error\" ? \"error\" : \"success\",\n      endTime,\n      durationMs: event.durationMs ?? Math.max(0, endTime - startTime),\n    };\n    const error = mapPersistedError(event.error, event.attributes);\n    if (error) completed.error = error;\n    out.push(completed);\n  }\n\n  if (out.length === 0) {\n    out.push(fromLegacyRunStarted(event));\n  }\n\n  return out;\n}\n\nfunction fromNativeStep(event: PersistedInspectEvent): TraceEvent[] {\n  const { timestamp, startTime, endTime } = resolveTimes(event);\n  const stepStatus = mapPersistedStatusToStepStatus(event.status);\n  const stepId = resolveStepId(event);\n  const out: TraceEvent[] = [];\n\n  const shouldEmitStarted =\n    stepStatus === \"running\" ||\n    event.startedAt !== undefined ||\n    stepStatus === \"success\" ||\n    stepStatus === \"error\";\n\n  if (shouldEmitStarted) {\n    const started: Extract<TraceEvent, { event: \"step_started\" }> = {\n      schemaVersion: \"0.1\",\n      event: \"step_started\",\n      timestamp,\n      runId: event.runId,\n      stepId,\n      name: event.name,\n      type: resolveStepType(event),\n      startTime,\n    };\n    if (event.parentId !== undefined) started.parentId = event.parentId;\n    const metadata = mapTokenUsageToMetadata(event.tokenUsage, event.attributes);\n    if (metadata) started.metadata = metadata;\n    out.push(started);\n  }\n\n  if (\n    stepStatus === \"success\" ||\n    stepStatus === \"error\" ||\n    event.endedAt !== undefined ||\n    event.durationMs !== undefined\n  ) {\n    const completed: Extract<TraceEvent, { event: \"step_completed\" }> = {\n      schemaVersion: \"0.1\",\n      event: \"step_completed\",\n      timestamp,\n      runId: event.runId,\n      stepId,\n      status: stepStatus === \"error\" ? \"error\" : \"success\",\n      endTime,\n      durationMs: event.durationMs ?? Math.max(0, endTime - startTime),\n    };\n    const error = mapPersistedError(event.error, event.attributes);\n    if (error) completed.error = error;\n    out.push(completed);\n  }\n\n  if (out.length === 0) {\n    out.push(fromLegacyStepStarted(event));\n  }\n\n  return out;\n}\n\n/**\n * Maps one v0.2 {@link PersistedInspectEvent} to zero or more v0.1 {@link TraceEvent} rows\n * for inspection commands. Does not mutate `event`.\n */\nexport function persistedInspectEventToTraceEvents(\n  event: PersistedInspectEvent,\n): TraceEvent[] {\n  if (!isPersistedInspectEvent(event)) {\n    throw new Error(\"Invalid PersistedInspectEvent: failed isPersistedInspectEvent\");\n  }\n\n  const legacyEvent = event.attributes?.legacyEvent;\n  if (legacyEvent === \"run_started\") return [fromLegacyRunStarted(event)];\n  if (legacyEvent === \"run_completed\") return [fromLegacyRunCompleted(event)];\n  if (legacyEvent === \"step_started\") return [fromLegacyStepStarted(event)];\n  if (legacyEvent === \"step_completed\") return [fromLegacyStepCompleted(event)];\n  if (legacyEvent === \"outcome_observed\") return [fromLegacyOutcomeObserved(event)];\n\n  if (event.kind === \"RUN\") {\n    return fromNativeRun(event);\n  }\n\n  if (event.kind === \"OUTCOME\") {\n    return fromNativeOutcome(event);\n  }\n\n  return fromNativeStep(event);\n}\n\n/**\n * Maps persisted v0.2 events to v0.1 trace events for inspection.\n */\nexport function persistedInspectEventsToTraceEvents(\n  events: readonly PersistedInspectEvent[],\n  options?: PersistedToTraceEventOptions,\n): TraceEvent[] {\n  const out: TraceEvent[] = [];\n  events.forEach((event, index) => {\n    const rows = persistedInspectEventToTraceEvents(event);\n    if (rows.length === 0 && options?.eventIndex !== undefined) {\n      void options.eventIndex;\n      void index;\n    }\n    out.push(...rows);\n  });\n  return out;\n}\n"]}