agent-inspect 4.3.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/docs/API.md +3 -0
  3. package/docs/CLI.md +3 -0
  4. package/docs/SCHEMA.md +27 -1
  5. package/package.json +1 -1
  6. package/packages/cli/dist/{chunk-BS5LSKZ3.mjs → chunk-ORHDQUT6.mjs} +198 -7
  7. package/packages/cli/dist/chunk-ORHDQUT6.mjs.map +1 -0
  8. package/packages/cli/dist/index.cjs +409 -17
  9. package/packages/cli/dist/index.cjs.map +1 -1
  10. package/packages/cli/dist/index.mjs +176 -10
  11. package/packages/cli/dist/index.mjs.map +1 -1
  12. package/packages/cli/dist/{src-YFMPWEIS.mjs → src-FJOHPC4X.mjs} +3 -3
  13. package/packages/cli/dist/{src-YFMPWEIS.mjs.map → src-FJOHPC4X.mjs.map} +1 -1
  14. package/packages/core/dist/advanced.cjs +201 -9
  15. package/packages/core/dist/advanced.cjs.map +1 -1
  16. package/packages/core/dist/advanced.d.cts +12 -8
  17. package/packages/core/dist/advanced.d.ts +12 -8
  18. package/packages/core/dist/advanced.mjs +30 -13
  19. package/packages/core/dist/advanced.mjs.map +1 -1
  20. package/packages/core/dist/checks.cjs +117 -18
  21. package/packages/core/dist/checks.cjs.map +1 -1
  22. package/packages/core/dist/checks.d.cts +11 -3
  23. package/packages/core/dist/checks.d.ts +11 -3
  24. package/packages/core/dist/checks.mjs +42 -1
  25. package/packages/core/dist/checks.mjs.map +1 -1
  26. package/packages/core/dist/{chunk-2ZXEMWGK.mjs → chunk-3USJVBLA.mjs} +3 -3
  27. package/packages/core/dist/{chunk-2ZXEMWGK.mjs.map → chunk-3USJVBLA.mjs.map} +1 -1
  28. package/packages/core/dist/{chunk-HY7H3CQM.mjs → chunk-CAWPF22J.mjs} +4 -3
  29. package/packages/core/dist/chunk-CAWPF22J.mjs.map +1 -0
  30. package/packages/core/dist/{chunk-XUNJMAPD.mjs → chunk-KNYL56KZ.mjs} +38 -3
  31. package/packages/core/dist/chunk-KNYL56KZ.mjs.map +1 -0
  32. package/packages/core/dist/{chunk-IZBJAZGF.mjs → chunk-P366CCL2.mjs} +34 -3
  33. package/packages/core/dist/chunk-P366CCL2.mjs.map +1 -0
  34. package/packages/core/dist/{chunk-4JVGFNQH.mjs → chunk-ULCGIRTC.mjs} +95 -8
  35. package/packages/core/dist/chunk-ULCGIRTC.mjs.map +1 -0
  36. package/packages/core/dist/chunk-VFO76UH3.mjs +228 -0
  37. package/packages/core/dist/chunk-VFO76UH3.mjs.map +1 -0
  38. package/packages/core/dist/{chunk-NQZPZ2FN.mjs → chunk-WRE4CNPF.mjs} +6 -3
  39. package/packages/core/dist/chunk-WRE4CNPF.mjs.map +1 -0
  40. package/packages/core/dist/{chunk-A4V2H3YU.mjs → chunk-ZWA5RWMV.mjs} +40 -4
  41. package/packages/core/dist/chunk-ZWA5RWMV.mjs.map +1 -0
  42. package/packages/core/dist/{context-DjY-jvQk.d.cts → context-BbfkMYjz.d.cts} +5 -3
  43. package/packages/core/dist/{context-BDZmi53V.d.ts → context-Cp8NRbBX.d.ts} +5 -3
  44. package/packages/core/dist/diff.cjs.map +1 -1
  45. package/packages/core/dist/diff.d.cts +3 -3
  46. package/packages/core/dist/diff.d.ts +3 -3
  47. package/packages/core/dist/diff.mjs +1 -1
  48. package/packages/core/dist/exporters.cjs +137 -1
  49. package/packages/core/dist/exporters.cjs.map +1 -1
  50. package/packages/core/dist/exporters.d.cts +6 -3
  51. package/packages/core/dist/exporters.d.ts +6 -3
  52. package/packages/core/dist/exporters.mjs +71 -6
  53. package/packages/core/dist/exporters.mjs.map +1 -1
  54. package/packages/core/dist/index.cjs +181 -6
  55. package/packages/core/dist/index.cjs.map +1 -1
  56. package/packages/core/dist/index.d.cts +14 -7
  57. package/packages/core/dist/index.d.ts +14 -7
  58. package/packages/core/dist/index.mjs +51 -7
  59. package/packages/core/dist/index.mjs.map +1 -1
  60. package/packages/core/dist/{inspect-event-CYAV7Hxm.d.cts → inspect-event-IqwOHbGo.d.cts} +1 -1
  61. package/packages/core/dist/{inspect-event-CYAV7Hxm.d.ts → inspect-event-IqwOHbGo.d.ts} +1 -1
  62. package/packages/core/dist/{log-config-BNQ9UTmP.d.cts → log-config-CW8w5YQ9.d.cts} +1 -1
  63. package/packages/core/dist/{log-config-D3Yp1SZN.d.ts → log-config-SRA4xTp8.d.ts} +1 -1
  64. package/packages/core/dist/logs.d.cts +3 -3
  65. package/packages/core/dist/logs.d.ts +3 -3
  66. package/packages/core/dist/{persisted-inspect-event-BLvb0jSX.d.ts → persisted-inspect-event-DruwqARZ.d.ts} +1 -1
  67. package/packages/core/dist/{persisted-inspect-event-D5SjBz9b.d.cts → persisted-inspect-event-Gd-W8vB7.d.cts} +1 -1
  68. package/packages/core/dist/persisted.cjs +67 -1
  69. package/packages/core/dist/persisted.cjs.map +1 -1
  70. package/packages/core/dist/persisted.d.cts +5 -5
  71. package/packages/core/dist/persisted.d.ts +5 -5
  72. package/packages/core/dist/persisted.mjs +3 -3
  73. package/packages/core/dist/readers.cjs +72 -3
  74. package/packages/core/dist/readers.cjs.map +1 -1
  75. package/packages/core/dist/readers.d.cts +2 -2
  76. package/packages/core/dist/readers.d.ts +2 -2
  77. package/packages/core/dist/readers.mjs +5 -5
  78. package/packages/core/dist/readers.mjs.map +1 -1
  79. package/packages/core/dist/{types-CQun9LW6.d.ts → types-B1X87dUW.d.cts} +16 -2
  80. package/packages/core/dist/{types-C-llnPH0.d.cts → types-BVkjSd0q.d.ts} +16 -2
  81. package/packages/core/dist/types-CvsKGweN.d.cts +12 -0
  82. package/packages/core/dist/types-CvsKGweN.d.ts +12 -0
  83. package/packages/core/dist/writers.cjs +2 -1
  84. package/packages/core/dist/writers.cjs.map +1 -1
  85. package/packages/core/dist/writers.d.cts +2 -2
  86. package/packages/core/dist/writers.d.ts +2 -2
  87. package/packages/core/dist/writers.mjs +3 -4
  88. package/packages/core/dist/writers.mjs.map +1 -1
  89. package/packages/cli/dist/chunk-BS5LSKZ3.mjs.map +0 -1
  90. package/packages/core/dist/chunk-4JVGFNQH.mjs.map +0 -1
  91. package/packages/core/dist/chunk-A4V2H3YU.mjs.map +0 -1
  92. package/packages/core/dist/chunk-EDTQHZPM.mjs +0 -88
  93. package/packages/core/dist/chunk-EDTQHZPM.mjs.map +0 -1
  94. package/packages/core/dist/chunk-HY7H3CQM.mjs.map +0 -1
  95. package/packages/core/dist/chunk-IZBJAZGF.mjs.map +0 -1
  96. package/packages/core/dist/chunk-NQZPZ2FN.mjs.map +0 -1
  97. package/packages/core/dist/chunk-XUNJMAPD.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/persisted/token-usage.ts","../src/persisted/from-trace-event.ts","../src/persisted/to-inspect-event.ts","../src/persisted/tree-bridge.ts"],"names":["compactAttributes"],"mappings":"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","file":"chunk-XUNJMAPD.mjs","sourcesContent":["import type { PersistedTokenUsage } from \"../types/persisted-inspect-event.js\";\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction nonNegativeFinite(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) && value >= 0\n ? value\n : undefined;\n}\n\n/**\n * Keeps the approved token vocabulary and derives total only when it is absent.\n * Cached tokens are informational and are never added to total.\n */\nexport function normalizeTokenUsage(\n value: unknown,\n): PersistedTokenUsage | undefined {\n if (!isRecord(value)) return undefined;\n\n const input = nonNegativeFinite(value.input);\n const output = nonNegativeFinite(value.output);\n const suppliedTotal = nonNegativeFinite(value.total);\n const cached = nonNegativeFinite(value.cached);\n const derivedTotal =\n input !== undefined && output !== undefined && Number.isFinite(input + output)\n ? input + output\n : undefined;\n const total =\n suppliedTotal ?? derivedTotal;\n\n if (\n input === undefined &&\n output === undefined &&\n total === undefined &&\n cached === undefined\n ) {\n return undefined;\n }\n\n return {\n ...(input !== undefined ? { input } : {}),\n ...(output !== undefined ? { output } : {}),\n ...(total !== undefined ? { total } : {}),\n ...(cached !== undefined ? { cached } : {}),\n };\n}\n","import { extractCorrelationMetadata } from \"../correlation-metadata.js\";\nimport type { InspectKind } from \"../types/inspect-event.js\";\nimport type {\n ErrorInfo,\n StepMetadata,\n StepType,\n TraceEvent,\n} from \"../types.js\";\nimport type {\n PersistedEventSource,\n PersistedEventStatus,\n PersistedInspectError,\n PersistedInspectEvent,\n PersistedTokenUsage,\n} from \"../types/persisted-inspect-event.js\";\nimport { normalizeTokenUsage } from \"./token-usage.js\";\n\nexport interface TraceEventToPersistedOptions {\n /**\n * Stable index within the source event list.\n * Used only to make synthetic eventId deterministic when v0.1 has no eventId.\n */\n eventIndex?: number;\n\n /**\n * Optional source name override.\n * Default: \"trace-event\"\n */\n sourceName?: string;\n\n /**\n * Optional source version override.\n * Default: \"0.1\"\n */\n sourceVersion?: string;\n}\n\nfunction sanitizeIdPart(value: string): string {\n return value.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n}\n\nfunction nodeIdForEvent(event: TraceEvent): string {\n switch (event.event) {\n case \"run_started\":\n case \"run_completed\":\n return event.runId;\n case \"step_started\":\n case \"step_completed\":\n return event.stepId;\n default:\n return \"unknown\";\n }\n}\n\nfunction createPersistedEventId(event: TraceEvent, eventIndex: number): string {\n const runId = sanitizeIdPart(event.runId);\n const ev = sanitizeIdPart(event.event);\n const node = sanitizeIdPart(nodeIdForEvent(event));\n return `manual:${runId}:${ev}:${node}:${eventIndex}`;\n}\n\nfunction toIsoTimestamp(\n ms: number,\n): { iso: string; invalidTimestamp: boolean } {\n if (typeof ms !== \"number\" || !Number.isFinite(ms)) {\n return { iso: new Date(0).toISOString(), invalidTimestamp: true };\n }\n return { iso: new Date(ms).toISOString(), invalidTimestamp: false };\n}\n\nfunction buildSource(options?: TraceEventToPersistedOptions): PersistedEventSource {\n return {\n type: \"manual\",\n name: options?.sourceName ?? \"trace-event\",\n version: options?.sourceVersion ?? \"0.1\",\n };\n}\n\nfunction mapStepTypeToInspectKind(type: StepType): InspectKind {\n switch (type) {\n case \"run\":\n return \"RUN\";\n case \"llm\":\n return \"LLM\";\n case \"tool\":\n return \"TOOL\";\n case \"decision\":\n return \"DECISION\";\n case \"logic\":\n case \"state\":\n case \"custom\":\n return \"LOGIC\";\n default:\n return \"LOGIC\";\n }\n}\n\nfunction mapRunOrStepStatus(\n status: \"success\" | \"error\",\n): PersistedEventStatus {\n return status === \"success\" ? \"ok\" : \"error\";\n}\n\nfunction mapErrorInfo(\n error: ErrorInfo | undefined,\n): {\n persisted?: PersistedInspectError;\n errorStack?: string;\n} {\n if (!error?.message) {\n return {};\n }\n const out: {\n persisted: PersistedInspectError;\n errorStack?: string;\n } = {\n persisted: {\n message: error.message,\n name: \"Error\",\n },\n };\n if (typeof error.stack === \"string\" && error.stack.length > 0) {\n out.errorStack = error.stack;\n }\n return out;\n}\n\nfunction mapTokenUsageFromMetadata(\n metadata: StepMetadata | undefined,\n): PersistedTokenUsage | undefined {\n return normalizeTokenUsage(metadata?.tokens);\n}\n\nfunction compactAttributes(\n entries: Record<string, unknown>,\n): Record<string, unknown> | undefined {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(entries)) {\n if (value !== undefined) {\n out[key] = value;\n }\n }\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\n/**\n * Maps one v0.1 {@link TraceEvent} to a v0.2 {@link PersistedInspectEvent}.\n * Does not mutate `event`.\n */\nexport function traceEventToPersistedInspectEvent(\n event: TraceEvent,\n options?: TraceEventToPersistedOptions,\n): PersistedInspectEvent {\n const eventIndex = options?.eventIndex ?? 0;\n const eventId = createPersistedEventId(event, eventIndex);\n const source = buildSource(options);\n const tsMain = toIsoTimestamp(event.timestamp);\n\n switch (event.event) {\n case \"run_started\": {\n const tsStart = toIsoTimestamp(event.startTime);\n const correlation = extractCorrelationMetadata(event.metadata);\n const attributes = compactAttributes({\n legacyEvent: \"run_started\",\n metadata:\n event.metadata !== undefined ? { ...event.metadata } : undefined,\n correlationId: correlation?.correlationId,\n requestId: correlation?.requestId,\n decisionId: correlation?.decisionId,\n groupId: correlation?.groupId,\n invalidTimestamp:\n tsMain.invalidTimestamp || tsStart.invalidTimestamp ? true : undefined,\n });\n\n return {\n schemaVersion: \"0.2\",\n eventId,\n runId: event.runId,\n kind: \"RUN\",\n name: event.name,\n status: \"running\",\n timestamp: tsMain.iso,\n startedAt: tsStart.iso,\n confidence: \"explicit\",\n source,\n attributes,\n };\n }\n\n case \"run_completed\": {\n const tsEnd = toIsoTimestamp(event.endTime);\n const { persisted: error, errorStack } = mapErrorInfo(event.error);\n const attributes = compactAttributes({\n legacyEvent: \"run_completed\",\n errorStack,\n invalidTimestamp:\n tsMain.invalidTimestamp || tsEnd.invalidTimestamp ? true : undefined,\n });\n\n return {\n schemaVersion: \"0.2\",\n eventId,\n runId: event.runId,\n kind: \"RUN\",\n name: \"run\",\n status: mapRunOrStepStatus(event.status),\n timestamp: tsMain.iso,\n endedAt: tsEnd.iso,\n durationMs: event.durationMs,\n confidence: \"explicit\",\n source,\n attributes,\n error,\n };\n }\n\n case \"step_started\": {\n const tsStart = toIsoTimestamp(event.startTime);\n const tokenUsage = mapTokenUsageFromMetadata(event.metadata);\n const attributes = compactAttributes({\n legacyEvent: \"step_started\",\n stepId: event.stepId,\n stepType: event.type,\n metadata:\n event.metadata !== undefined ? { ...event.metadata } : undefined,\n invalidTimestamp:\n tsMain.invalidTimestamp || tsStart.invalidTimestamp ? true : undefined,\n });\n\n const out: PersistedInspectEvent = {\n schemaVersion: \"0.2\",\n eventId,\n runId: event.runId,\n kind: mapStepTypeToInspectKind(event.type),\n name: event.name,\n status: \"running\",\n timestamp: tsMain.iso,\n startedAt: tsStart.iso,\n confidence: \"explicit\",\n source,\n attributes,\n };\n if (event.parentId !== undefined) {\n out.parentId = event.parentId;\n }\n if (tokenUsage !== undefined) {\n out.tokenUsage = tokenUsage;\n }\n return out;\n }\n\n case \"step_completed\": {\n const tsEnd = toIsoTimestamp(event.endTime);\n const { persisted: error, errorStack } = mapErrorInfo(event.error);\n const attributes = compactAttributes({\n legacyEvent: \"step_completed\",\n stepId: event.stepId,\n errorStack,\n invalidTimestamp:\n tsMain.invalidTimestamp || tsEnd.invalidTimestamp ? true : undefined,\n });\n\n return {\n schemaVersion: \"0.2\",\n eventId,\n runId: event.runId,\n kind: \"LOGIC\",\n name: event.stepId,\n status: mapRunOrStepStatus(event.status),\n timestamp: tsMain.iso,\n endedAt: tsEnd.iso,\n durationMs: event.durationMs,\n confidence: \"explicit\",\n source,\n attributes,\n error,\n };\n }\n\n default: {\n const _exhaustive: never = event;\n throw new Error(`Unsupported trace event: ${(_exhaustive as TraceEvent).event}`);\n }\n }\n}\n\n/**\n * Maps a v0.1 trace event list to persisted v0.2 events (one output per input).\n */\nexport function traceEventsToPersistedInspectEvents(\n events: readonly TraceEvent[],\n options?: Omit<TraceEventToPersistedOptions, \"eventIndex\">,\n): PersistedInspectEvent[] {\n return events.map((event, index) =>\n traceEventToPersistedInspectEvent(event, { ...options, eventIndex: index }),\n );\n}\n","import type { EventSource, InspectEvent } from \"../types/inspect-event.js\";\nimport {\n isPersistedInspectEvent,\n type PersistedEventSourceType,\n type PersistedInspectEvent,\n} from \"../types/persisted-inspect-event.js\";\n\nexport interface PersistedToInspectEventOptions {\n /**\n * If true, invalid persisted events are skipped by batch conversion.\n * If false or omitted, invalid events throw.\n */\n skipInvalid?: boolean;\n}\n\nfunction compactAttributes(\n entries: Record<string, unknown>,\n): Record<string, unknown> | undefined {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(entries)) {\n if (value !== undefined) {\n out[key] = value;\n }\n }\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\nfunction parseIsoToMs(iso: string): { ms: number; invalidTimestamp: boolean } {\n const parsed = Date.parse(iso);\n if (!Number.isFinite(parsed)) {\n return { ms: 0, invalidTimestamp: true };\n }\n return { ms: parsed, invalidTimestamp: false };\n}\n\nfunction mapPersistedSourceToInspect(\n event: PersistedInspectEvent,\n): EventSource {\n const attrs = event.attributes ?? {};\n const sourceName = event.source.name;\n\n if (sourceName === \"pino\") {\n return {\n type: \"pino\",\n file: typeof attrs.sourceFile === \"string\" ? attrs.sourceFile : undefined,\n line: typeof attrs.sourceLine === \"number\" ? attrs.sourceLine : undefined,\n };\n }\n if (sourceName === \"winston\") {\n return {\n type: \"winston\",\n file: typeof attrs.sourceFile === \"string\" ? attrs.sourceFile : undefined,\n line: typeof attrs.sourceLine === \"number\" ? attrs.sourceLine : undefined,\n };\n }\n\n const mapType = (t: PersistedEventSourceType): EventSource[\"type\"] => {\n switch (t) {\n case \"manual\":\n return \"manual\";\n case \"json-log\":\n return \"json-log\";\n case \"log4js\":\n return \"log4js\";\n case \"adapter\":\n case \"ai-sdk\":\n case \"otel\":\n return \"adapter\";\n default:\n return \"json-log\";\n }\n };\n\n return {\n type: mapType(event.source.type),\n file: typeof attrs.sourceFile === \"string\" ? attrs.sourceFile : undefined,\n line: typeof attrs.sourceLine === \"number\" ? attrs.sourceLine : undefined,\n };\n}\n\nfunction buildInspectAttributes(event: PersistedInspectEvent): Record<string, unknown> {\n const attrs =\n event.attributes !== undefined ? { ...event.attributes } : {};\n\n if (event.inputSummary !== undefined) {\n attrs.inputSummary = event.inputSummary;\n }\n if (event.outputSummary !== undefined) {\n attrs.outputSummary = event.outputSummary;\n }\n\n if (event.error) {\n if (event.error.name !== undefined) {\n attrs.errorName = event.error.name;\n }\n attrs.errorMessage = event.error.message;\n if (event.error.code !== undefined) {\n attrs.errorCode = event.error.code;\n }\n }\n\n if (event.tokenUsage) {\n attrs.tokens = { ...event.tokenUsage };\n }\n\n if (event.source.type === \"ai-sdk\" || event.source.type === \"otel\") {\n attrs.originalSourceType = event.source.type;\n }\n\n if (event.source.name !== undefined) {\n attrs.sourceName = event.source.name;\n }\n if (event.source.version !== undefined) {\n attrs.sourceVersion = event.source.version;\n }\n\n return attrs;\n}\n\n/**\n * Maps one v0.2 {@link PersistedInspectEvent} to in-memory {@link InspectEvent}.\n * Throws if `event` fails {@link isPersistedInspectEvent}.\n */\nexport function persistedInspectEventToInspectEvent(\n event: PersistedInspectEvent,\n): InspectEvent {\n if (!isPersistedInspectEvent(event)) {\n throw new Error(\"Invalid PersistedInspectEvent: failed isPersistedInspectEvent\");\n }\n\n const ts = parseIsoToMs(event.timestamp);\n const attrs = buildInspectAttributes(event);\n if (ts.invalidTimestamp) {\n attrs.invalidTimestamp = true;\n }\n\n let status: InspectEvent[\"status\"] | undefined;\n if (\n event.status === \"running\" ||\n event.status === \"ok\" ||\n event.status === \"error\"\n ) {\n status = event.status;\n } else if (event.status === \"unknown\") {\n attrs.persistedStatus = \"unknown\";\n }\n\n const out: InspectEvent = {\n eventId: event.eventId,\n runId: event.runId,\n name: event.name,\n kind: event.kind,\n timestamp: ts.ms,\n confidence: event.confidence,\n source: mapPersistedSourceToInspect(event),\n attributes: compactAttributes(attrs),\n };\n\n if (event.parentId !== undefined) {\n out.parentId = event.parentId;\n }\n if (status !== undefined) {\n out.status = status;\n }\n if (\n event.durationMs !== undefined &&\n Number.isFinite(event.durationMs) &&\n event.durationMs >= 0\n ) {\n out.durationMs = event.durationMs;\n }\n\n return out;\n}\n\n/**\n * Maps persisted v0.2 events to in-memory {@link InspectEvent} rows.\n */\nexport function persistedInspectEventsToInspectEvents(\n events: readonly PersistedInspectEvent[],\n options?: PersistedToInspectEventOptions,\n): InspectEvent[] {\n const skipInvalid = options?.skipInvalid === true;\n const out: InspectEvent[] = [];\n\n for (const event of events) {\n if (!isPersistedInspectEvent(event)) {\n if (skipInvalid) {\n continue;\n }\n throw new Error(\"Invalid PersistedInspectEvent: failed isPersistedInspectEvent\");\n }\n out.push(persistedInspectEventToInspectEvent(event));\n }\n\n return out;\n}\n","import { TreeBuilder } from \"../logs/tree-builder.js\";\nimport type { InspectRunTree } from \"../types/inspect-event.js\";\nimport type { PersistedInspectEvent } from \"../types/persisted-inspect-event.js\";\nimport type { TraceEvent } from \"../types.js\";\n\nimport { traceEventsToPersistedInspectEvents } from \"./from-trace-event.js\";\nimport { persistedInspectEventsToInspectEvents } from \"./to-inspect-event.js\";\n\nexport interface PersistedTreeBridgeOptions {\n /**\n * If true, invalid persisted events are skipped.\n * If false or omitted, invalid persisted events throw.\n */\n skipInvalid?: boolean;\n}\n\n/**\n * Builds {@link InspectRunTree} rows from v0.2 {@link PersistedInspectEvent} input.\n * Uses {@link TreeBuilder} as the canonical tree builder. Does not mutate `events`.\n */\nexport function persistedInspectEventsToRunTrees(\n events: readonly PersistedInspectEvent[],\n options?: PersistedTreeBridgeOptions,\n): InspectRunTree[] {\n const inspectEvents = persistedInspectEventsToInspectEvents(events, {\n skipInvalid: options?.skipInvalid,\n });\n return new TreeBuilder().build(inspectEvents);\n}\n\n/**\n * Builds {@link InspectRunTree} rows from legacy v0.1 {@link TraceEvent} input\n * via the persisted-event model. Does not mutate `events`.\n */\nexport function traceEventsToPersistedRunTrees(\n events: readonly TraceEvent[],\n): InspectRunTree[] {\n const persisted = traceEventsToPersistedInspectEvents(events);\n return persistedInspectEventsToRunTrees(persisted);\n}\n"]}