@vitest-evals/core 0.12.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.
- package/LICENSE +201 -0
- package/README.md +36 -0
- package/dist/index.d.mts +895 -0
- package/dist/index.d.ts +895 -0
- package/dist/index.js +557 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +489 -0
- package/dist/index.mjs.map +1 -0
- package/dist/node.d.mts +33 -0
- package/dist/node.d.ts +33 -0
- package/dist/node.js +628 -0
- package/dist/node.js.map +1 -0
- package/dist/node.mjs +598 -0
- package/dist/node.mjs.map +1 -0
- package/dist/workspace-BNgjyW7W.d.mts +489 -0
- package/dist/workspace-BNgjyW7W.d.ts +489 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/node.ts","../src/report/workspace.ts","../src/report/metadata.ts","../src/harness/index.ts","../src/json.ts","../src/schema-utils.ts","../src/report/vitest-json.ts"],"sourcesContent":["import { readdir, readFile, stat } from \"node:fs/promises\";\nimport { extname, isAbsolute, relative, resolve, sep } from \"node:path\";\nimport {\n collectReportWorkspace,\n type CollectReportWorkspaceOptions,\n type ReportWorkspace,\n} from \"./report/workspace\";\nimport {\n parseVitestJsonReport,\n type VitestJsonReport,\n} from \"./report/vitest-json\";\n\n/** Options for resolving eval result file paths. */\nexport type ResolveReportFilesOptions = {\n /** Directory used to resolve relative paths and globs. */\n cwd?: string;\n /** File extensions included when an input resolves to a directory. */\n extensions?: string[];\n};\n\n/** Options for reading Vitest JSON reports into a collected workspace. */\nexport type ReadReportWorkspaceOptions = ResolveReportFilesOptions &\n CollectReportWorkspaceOptions;\n\nconst GLOB_META_PATTERN = /[*?]/;\nconst DEFAULT_REPORT_EXTENSIONS = [\".json\"];\n\n/**\n * Resolves result files from explicit paths, directories, and simple glob\n * patterns. Nonexistent explicit paths are preserved so callers can surface a\n * useful read error with the original filename.\n */\nexport async function resolveReportFiles(\n patterns: string[],\n options: ResolveReportFilesOptions = {},\n) {\n const cwd = options.cwd ?? process.cwd();\n const extensions = normalizeExtensions(\n options.extensions ?? DEFAULT_REPORT_EXTENSIONS,\n );\n const files: string[] = [];\n\n for (const pattern of patterns.map((entry) => entry.trim()).filter(Boolean)) {\n if (hasGlob(pattern)) {\n files.push(...(await expandGlob(pattern, cwd)));\n continue;\n }\n\n const candidate = isAbsolute(pattern) ? pattern : resolve(cwd, pattern);\n const candidateStat = await readStat(candidate);\n if (candidateStat?.isDirectory()) {\n files.push(...(await listReportFiles(candidate, extensions)));\n continue;\n }\n\n files.push(candidate);\n }\n\n return [...new Set(files)].sort();\n}\n\n/** Backwards-compatible alias for consumers that call them Vitest result files. */\nexport const resolveResultFiles = resolveReportFiles;\n\n/** Splits a newline-separated report input into path and glob entries. */\nexport function splitReportInput(value: string | undefined) {\n return (value ?? \"\")\n .split(/\\r?\\n/)\n .map((entry) => entry.trim())\n .filter(Boolean);\n}\n\n/** Backwards-compatible alias for GitHub Action result inputs. */\nexport const splitResultsInput = splitReportInput;\n\n/** Reads and parses one Vitest JSON report file. */\nexport async function readVitestJsonReportFile(\n resultFile: string,\n): Promise<VitestJsonReport> {\n try {\n return parseVitestJsonReport(\n JSON.parse(await readFile(resultFile, \"utf8\")),\n );\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to read eval result file ${resultFile}: ${message}`,\n );\n }\n}\n\n/** Resolves result inputs and collects them into a report workspace. */\nexport async function readReportWorkspace(\n patterns: string[],\n options: ReadReportWorkspaceOptions = {},\n): Promise<{ workspace: ReportWorkspace; resultFiles: string[] }> {\n const cwd = options.cwd ?? process.cwd();\n const resultFiles = await resolveReportFiles(patterns, { ...options, cwd });\n if (resultFiles.length === 0) {\n throw new Error(`No eval result files matched: ${patterns.join(\", \")}`);\n }\n\n const reports = await Promise.all(\n resultFiles.map(async (resultFile) => ({\n report: await readVitestJsonReportFile(resultFile),\n source: displayReportSource(resultFile, cwd),\n })),\n );\n\n return {\n resultFiles,\n workspace: collectReportWorkspace(reports, {\n workspace: options.workspace,\n }),\n };\n}\n\nfunction displayReportSource(resultFile: string, cwd: string) {\n const relativeSource = normalizePath(relative(resolve(cwd), resultFile));\n if (\n relativeSource === \"\" ||\n relativeSource === \".\" ||\n relativeSource.startsWith(\"../\")\n ) {\n return resultFile;\n }\n\n return relativeSource;\n}\n\nfunction hasGlob(pattern: string) {\n return GLOB_META_PATTERN.test(pattern);\n}\n\nasync function expandGlob(pattern: string, cwd: string) {\n const normalizedPattern = normalizeGlobPattern(pattern);\n const absolutePattern = isAbsolute(pattern);\n const base = globBase(normalizedPattern);\n const basePath = absolutePattern ? base || sep : resolve(cwd, base || \".\");\n const regex = globToRegExp(normalizedPattern);\n const matches: string[] = [];\n\n for (const file of await listFiles(basePath)) {\n const normalizedFile = normalizePath(file);\n const candidate = absolutePattern\n ? normalizedFile\n : normalizePath(relative(resolve(cwd), file));\n if (regex.test(candidate)) {\n matches.push(file);\n }\n }\n\n return matches;\n}\n\nfunction globBase(pattern: string) {\n const segments = pattern.split(\"/\");\n const baseSegments: string[] = [];\n\n for (const segment of segments) {\n if (hasGlob(segment)) {\n break;\n }\n baseSegments.push(segment);\n }\n\n return baseSegments.join(\"/\");\n}\n\nasync function listReportFiles(directory: string, extensions: Set<string>) {\n const files = await listFiles(directory);\n return files.filter((file) => extensions.has(extname(file).toLowerCase()));\n}\n\nasync function listFiles(directory: string): Promise<string[]> {\n const entries = await readDirectory(directory);\n if (!entries) {\n return [];\n }\n\n const files: string[] = [];\n for (const entry of entries) {\n const child = resolve(directory, entry.name);\n if (entry.isDirectory()) {\n files.push(...(await listFiles(child)));\n } else if (entry.isFile()) {\n files.push(child);\n }\n }\n return files;\n}\n\nasync function readDirectory(directory: string) {\n try {\n return await readdir(directory, { withFileTypes: true });\n } catch {\n return undefined;\n }\n}\n\nasync function readStat(path: string) {\n try {\n return await stat(path);\n } catch {\n return undefined;\n }\n}\n\nfunction globToRegExp(pattern: string) {\n let source = \"\";\n for (let index = 0; index < pattern.length; index += 1) {\n const char = pattern[index];\n const next = pattern[index + 1];\n\n if (char === \"*\" && next === \"*\") {\n const following = pattern[index + 2];\n if (following === \"/\") {\n source += \"(?:.*/)?\";\n index += 2;\n } else {\n source += \".*\";\n index += 1;\n }\n continue;\n }\n\n if (char === \"*\") {\n source += \"[^/]*\";\n continue;\n }\n\n if (char === \"?\") {\n source += \"[^/]\";\n continue;\n }\n\n source += escapeRegExp(char ?? \"\");\n }\n\n return new RegExp(`^${source}$`);\n}\n\nfunction escapeRegExp(value: string) {\n return value.replace(/[|\\\\{}()[\\]^$+?.]/g, \"\\\\$&\");\n}\n\nfunction normalizePath(path: string) {\n return path.replace(/\\\\/g, \"/\");\n}\n\nfunction normalizeGlobPattern(pattern: string) {\n const normalizedPattern = normalizePath(pattern);\n if (isAbsolute(pattern)) {\n return normalizedPattern;\n }\n\n return normalizedPattern.replace(/^(\\.\\/)+/, \"\");\n}\n\nfunction normalizeExtensions(extensions: string[]) {\n return new Set(\n extensions.map((extension) =>\n extension.startsWith(\".\")\n ? extension.toLowerCase()\n : `.${extension.toLowerCase()}`,\n ),\n );\n}\n","import { z } from \"zod\";\nimport {\n EvalMetaSchema,\n HarnessMetaSchema,\n readEvalTaskMeta,\n} from \"./metadata\";\nimport { FiniteNumberSchema, parseWithSchema, isRecord } from \"../schema-utils\";\nimport {\n parseVitestJsonReport,\n VitestJsonLocationSchema,\n type VitestJsonAssertion,\n type VitestJsonReport,\n} from \"./vitest-json\";\nimport { VitestJsonStatusSchema } from \"./vitest-json\";\n\n/** Current schema version for collected report workspaces. */\nexport const REPORT_WORKSPACE_SCHEMA_VERSION = 1;\n\n/** One collected Vitest JSON report source in a multi-run workspace. */\nexport const ReportRunSchema = z\n .object({\n id: z.string(),\n source: z.string().optional(),\n status: z.enum([\"passed\", \"failed\"]),\n startedAt: FiniteNumberSchema.optional(),\n durationMs: FiniteNumberSchema.optional(),\n totals: z.object({\n total: FiniteNumberSchema,\n passed: FiniteNumberSchema,\n failed: FiniteNumberSchema,\n skipped: FiniteNumberSchema,\n evalTotal: FiniteNumberSchema,\n evalPassed: FiniteNumberSchema,\n evalFailed: FiniteNumberSchema,\n }),\n })\n .strict();\n\n/** One collected Vitest JSON report source in a multi-run workspace. */\nexport type ReportRun = z.infer<typeof ReportRunSchema>;\n\n/** One eval or harness-backed test case collected from Vitest JSON. */\nexport const ReportCaseSchema = z\n .object({\n id: z.string(),\n runId: z.string(),\n source: z.string().optional(),\n file: z.string(),\n displayFile: z.string(),\n title: z.string(),\n fullName: z.string(),\n ancestorTitles: z.array(z.string()),\n tags: z.array(z.string()).optional(),\n displayName: z.string(),\n status: VitestJsonStatusSchema,\n durationMs: FiniteNumberSchema.optional(),\n location: VitestJsonLocationSchema.optional(),\n failureMessages: z.array(z.string()).default([]),\n eval: EvalMetaSchema.optional(),\n harness: HarnessMetaSchema.optional(),\n })\n .strict();\n\n/** One eval or harness-backed test case collected from Vitest JSON. */\nexport type ReportCase = z.infer<typeof ReportCaseSchema>;\n\n/** Full multi-run report workspace consumed by rich report UIs. */\nexport const ReportWorkspaceSchema = z\n .object({\n schemaVersion: z.literal(REPORT_WORKSPACE_SCHEMA_VERSION),\n runs: z.array(ReportRunSchema),\n cases: z.array(ReportCaseSchema),\n })\n .strict();\n\n/** Full multi-run report workspace consumed by rich report UIs. */\nexport type ReportWorkspace = z.infer<typeof ReportWorkspaceSchema>;\n\n/** Input accepted when collecting one Vitest JSON report into a workspace. */\nexport type ReportWorkspaceInput =\n | VitestJsonReport\n | {\n report: VitestJsonReport;\n source?: string;\n };\n\n/** Options for collecting one or more Vitest JSON reports. */\nexport type CollectReportWorkspaceOptions = {\n /** Workspace prefix used to render source files as relative paths. */\n workspace?: string;\n};\n\n/** Parses and validates an unknown value as a collected report workspace. */\nexport function parseReportWorkspace(input: unknown): ReportWorkspace {\n return parseWithSchema(ReportWorkspaceSchema, input, \"report workspace\");\n}\n\n/** Collects eval and harness metadata from one or more Vitest JSON reports. */\nexport function collectReportWorkspace(\n input: ReportWorkspaceInput | ReportWorkspaceInput[],\n options: CollectReportWorkspaceOptions = {},\n): ReportWorkspace {\n const entries = Array.isArray(input) ? input : [input];\n const runs: ReportRun[] = [];\n const cases: ReportCase[] = [];\n\n entries.forEach((entry, index) => {\n const { report, source } = normalizeWorkspaceInput(entry);\n const runId = source ?? `run-${index + 1}`;\n const runCases: ReportCase[] = [];\n\n for (const file of report.testResults) {\n for (const assertion of file.assertionResults) {\n const meta = readEvalTaskMeta(assertion.meta);\n if (!meta) {\n continue;\n }\n\n runCases.push({\n id: createCaseId(runId, file.name, assertion),\n runId,\n ...(source ? { source } : {}),\n file: file.name,\n displayFile: normalizeReportPath(file.name, options.workspace),\n title: assertion.title,\n fullName: assertion.fullName,\n ancestorTitles: assertion.ancestorTitles,\n ...(assertion.tags ? { tags: assertion.tags } : {}),\n displayName: formatDisplayName(assertion),\n status: assertion.status,\n ...(typeof assertion.duration === \"number\"\n ? { durationMs: assertion.duration }\n : {}),\n ...(assertion.location ? { location: assertion.location } : {}),\n failureMessages: assertion.failureMessages ?? [],\n ...(meta.eval ? { eval: meta.eval } : {}),\n ...(meta.harness ? { harness: meta.harness } : {}),\n });\n }\n }\n\n runs.push({\n id: runId,\n ...(source ? { source } : {}),\n status:\n report.success &&\n runCases.every((testCase) => testCase.status !== \"failed\")\n ? \"passed\"\n : \"failed\",\n startedAt: report.startTime,\n durationMs: resolveRunDuration(report),\n totals: {\n total: report.numTotalTests,\n passed: report.numPassedTests,\n failed: report.numFailedTests,\n skipped: report.numPendingTests + report.numTodoTests,\n evalTotal: runCases.length,\n evalPassed: runCases.filter((testCase) => testCase.status === \"passed\")\n .length,\n evalFailed: runCases.filter((testCase) => testCase.status === \"failed\")\n .length,\n },\n });\n cases.push(...runCases);\n });\n\n return {\n schemaVersion: REPORT_WORKSPACE_SCHEMA_VERSION,\n runs,\n cases,\n };\n}\n\nfunction normalizeWorkspaceInput(input: ReportWorkspaceInput) {\n if (isVitestJsonReportLike(input)) {\n return {\n report: parseVitestJsonReport(input),\n };\n }\n\n if (isRecord(input) && \"report\" in input) {\n return {\n report: parseVitestJsonReport(input.report),\n source: typeof input.source === \"string\" ? input.source : undefined,\n };\n }\n\n return {\n report: parseVitestJsonReport(input),\n };\n}\n\nfunction isVitestJsonReportLike(input: unknown) {\n return isRecord(input) && Array.isArray(input.testResults);\n}\n\nfunction createCaseId(\n runId: string,\n file: string,\n assertion: VitestJsonAssertion,\n) {\n return [runId, file, assertion.location?.line ?? 0, assertion.fullName].join(\n \":\",\n );\n}\n\nfunction formatDisplayName(assertion: VitestJsonAssertion) {\n return [...assertion.ancestorTitles, assertion.title]\n .filter((part) => part.length > 0)\n .join(\" > \");\n}\n\nfunction resolveRunDuration(report: VitestJsonReport) {\n const intervals = report.testResults\n .map((file) => {\n const start = file.startTime;\n const end = file.endTime;\n if (!isFiniteNumber(start) || !isFiniteNumber(end) || end < start) {\n return undefined;\n }\n\n return {\n start,\n end,\n };\n })\n .filter((interval): interval is { start: number; end: number } =>\n Boolean(interval),\n );\n\n if (intervals.length === 0) {\n return undefined;\n }\n\n return (\n Math.max(...intervals.map((interval) => interval.end)) -\n Math.min(...intervals.map((interval) => interval.start))\n );\n}\n\nfunction isFiniteNumber(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value);\n}\n\nfunction normalizeReportPath(path: string, workspace?: string) {\n const normalized = path.replace(/\\\\/g, \"/\");\n if (!workspace) {\n return normalized;\n }\n\n const workspacePath = workspace.replace(/\\\\/g, \"/\").replace(/\\/+$/, \"\");\n if (\n normalized !== workspacePath &&\n !normalized.startsWith(`${workspacePath}/`)\n ) {\n return normalized;\n }\n\n return normalized.slice(workspacePath.length).replace(/^\\/+/, \"\");\n}\n","import { z } from \"zod\";\nimport {\n HarnessRunSchema,\n NormalizedMessageSchema,\n NormalizedSessionSchema,\n NormalizedSpanEventSchema,\n NormalizedSpanSchema,\n NormalizedTraceSchema,\n TimingSummarySchema,\n ToolCallRecordSchema,\n UsageSummarySchema,\n} from \"../harness\";\nimport { JsonObjectSchema, JsonValueSchema } from \"../json\";\nimport { isJsonObject, NullableFiniteNumberSchema } from \"../schema-utils\";\n\n/** Harness metadata stored by vitest-evals on Vitest task metadata. */\nexport const HarnessMetaSchema = z\n .object({\n name: z.string().optional(),\n run: HarnessRunSchema.optional(),\n })\n .strict();\n\n/** Harness metadata stored by vitest-evals on Vitest task metadata. */\nexport type HarnessMeta = z.infer<typeof HarnessMetaSchema>;\n\n/** Score record stored by vitest-evals on Vitest task metadata. */\nexport const EvalScoreSchema = z\n .object({\n name: z.string().optional(),\n score: NullableFiniteNumberSchema,\n metadata: JsonObjectSchema.optional(),\n })\n .strict();\n\n/** Score record stored by vitest-evals on Vitest task metadata. */\nexport type EvalScore = z.infer<typeof EvalScoreSchema>;\n\n/** Eval metadata stored by vitest-evals on Vitest task metadata. */\nexport const EvalMetaSchema = z\n .object({\n scores: z.array(EvalScoreSchema).optional(),\n avgScore: NullableFiniteNumberSchema,\n output: JsonValueSchema.optional(),\n thresholdFailed: z.boolean().optional(),\n toolCalls: z.array(ToolCallRecordSchema).optional(),\n })\n .strict();\n\n/** Eval metadata stored by vitest-evals on Vitest task metadata. */\nexport type EvalMeta = z.infer<typeof EvalMetaSchema>;\n\n/** Combined eval and harness metadata stored on a Vitest assertion. */\nexport const EvalTaskMetaSchema = z\n .object({\n eval: EvalMetaSchema.optional(),\n harness: HarnessMetaSchema.optional(),\n })\n .strict();\n\n/** Combined eval and harness metadata stored on a Vitest assertion. */\nexport type EvalTaskMeta = z.infer<typeof EvalTaskMetaSchema>;\n\nconst LenientToolCallRecordSchema = ToolCallRecordSchema.strip();\nconst LenientMessageSchema = NormalizedMessageSchema.extend({\n toolCalls: z.array(LenientToolCallRecordSchema).optional().catch(undefined),\n}).strip();\nconst LenientSessionSchema = NormalizedSessionSchema.extend({\n messages: z.array(LenientMessageSchema).default([]).catch([]),\n}).strip();\nconst LenientSpanEventSchema = NormalizedSpanEventSchema.strip();\nconst LenientSpanSchema = NormalizedSpanSchema.extend({\n events: z.array(LenientSpanEventSchema).optional().catch(undefined),\n}).strip();\nconst LenientTraceSchema = NormalizedTraceSchema.extend({\n spans: z.array(LenientSpanSchema).default([]).catch([]),\n}).strip();\nconst LenientHarnessRunSchema = HarnessRunSchema.extend({\n session: LenientSessionSchema,\n usage: UsageSummarySchema.strip().default({}),\n timings: TimingSummarySchema.strip().optional(),\n traces: z.array(LenientTraceSchema).optional().catch(undefined),\n}).strip();\nconst LenientHarnessMetaSchema = HarnessMetaSchema.extend({\n run: LenientHarnessRunSchema.optional().catch(undefined),\n}).strip();\nconst LenientEvalScoreSchema = EvalScoreSchema.strip();\nconst LenientEvalMetaSchema = EvalMetaSchema.extend({\n scores: z.array(LenientEvalScoreSchema).optional().catch(undefined),\n toolCalls: z.array(LenientToolCallRecordSchema).optional().catch(undefined),\n}).strip();\n\n/** Reads eval metadata from an arbitrary Vitest assertion meta value. */\nexport function readEvalTaskMeta(input: unknown): EvalTaskMeta | undefined {\n if (!isJsonObject(input)) {\n return undefined;\n }\n\n const evalResult = LenientEvalMetaSchema.safeParse(input.eval);\n const harnessResult = LenientHarnessMetaSchema.safeParse(input.harness);\n const meta: EvalTaskMeta = {\n ...(evalResult.success && input.eval !== undefined\n ? { eval: evalResult.data }\n : {}),\n ...(harnessResult.success && input.harness !== undefined\n ? { harness: harnessResult.data }\n : {}),\n };\n\n return meta.eval || meta.harness ? meta : undefined;\n}\n","import { z } from \"zod\";\nimport type { NormalizedSpanAttributes } from \"../genai\";\nimport { JsonObjectSchema, JsonValueSchema, type JsonValue } from \"../json\";\nimport { FiniteNumberSchema } from \"../schema-utils\";\n\n/** Normalized error attached to tool calls and spans. */\nexport type NormalizedError = {\n /** Human-readable failure message. */\n message: string;\n /** Optional provider or runtime error type. */\n type?: string;\n /** Extra JSON-safe error metadata. */\n [key: string]: JsonValue | undefined;\n};\n\n/** Usage values normalized by vitest-evals harnesses. */\nexport const UsageSummarySchema = z\n .object({\n provider: z.string().optional(),\n model: z.string().optional(),\n inputTokens: FiniteNumberSchema.optional(),\n outputTokens: FiniteNumberSchema.optional(),\n reasoningTokens: FiniteNumberSchema.optional(),\n totalTokens: FiniteNumberSchema.optional(),\n toolCalls: FiniteNumberSchema.optional(),\n retries: FiniteNumberSchema.optional(),\n metadata: JsonObjectSchema.optional(),\n })\n .strict();\n\n/** Usage values normalized by vitest-evals harnesses. */\nexport type UsageSummary = {\n /** Provider that served the application run. */\n provider?: string;\n /** Model used for the application run. */\n model?: string;\n /** Input, prompt, or request tokens consumed by the run. */\n inputTokens?: number;\n /** Output or completion tokens produced by the run. */\n outputTokens?: number;\n /** Reasoning tokens reported by providers that expose them. */\n reasoningTokens?: number;\n /** Total token count reported by the provider or adapter. */\n totalTokens?: number;\n /** Count of tool calls observed during the run. */\n toolCalls?: number;\n /** Retry count observed during the run. */\n retries?: number;\n /** Provider-specific JSON-safe usage details. Cost estimates belong here. */\n metadata?: Record<string, JsonValue>;\n};\n\n/** Timing values normalized by vitest-evals harnesses. */\nexport const TimingSummarySchema = z\n .object({\n totalMs: FiniteNumberSchema.optional(),\n metadata: JsonObjectSchema.optional(),\n })\n .strict();\n\n/** Timing values normalized by vitest-evals harnesses. */\nexport type TimingSummary = {\n /** End-to-end run duration in milliseconds. */\n totalMs?: number;\n /** Extra JSON-safe timing metadata. */\n metadata?: Record<string, JsonValue>;\n};\n\n/** Normalized error object captured in a tool call or trace span. */\nexport const NormalizedErrorSchema = z\n .object({\n message: z.string(),\n type: z.string().optional(),\n })\n .catchall(JsonValueSchema);\n\n/** Normalized tool call captured in a harness session. */\nexport const ToolCallRecordSchema = z\n .object({\n id: z.string().optional(),\n name: z.string(),\n arguments: JsonObjectSchema.optional(),\n result: JsonValueSchema.optional(),\n error: NormalizedErrorSchema.optional(),\n startedAt: z.string().optional(),\n finishedAt: z.string().optional(),\n durationMs: FiniteNumberSchema.optional(),\n metadata: JsonObjectSchema.optional(),\n })\n .strict();\n\n/** Normalized tool call captured in a harness session. */\nexport type ToolCallRecord = {\n /** Provider or runtime tool-call id when one is available. */\n id?: string;\n /** Tool name as exposed to the agent or application runtime. */\n name: string;\n /** JSON-safe tool arguments after provider/runtime normalization. */\n arguments?: Record<string, JsonValue>;\n /** JSON-safe tool result returned by the application tool. */\n result?: JsonValue;\n /** Normalized tool error when execution failed. */\n error?: NormalizedError;\n /** ISO timestamp for the start of tool execution. */\n startedAt?: string;\n /** ISO timestamp for the end of tool execution. */\n finishedAt?: string;\n /** Tool execution duration in milliseconds. */\n durationMs?: number;\n /** Extra JSON-safe tool metadata for reporters and custom judges. */\n metadata?: Record<string, JsonValue>;\n};\n\n/** Normalized transcript message captured in a harness session. */\nexport const NormalizedMessageSchema = z\n .object({\n role: z.enum([\"system\", \"user\", \"assistant\", \"tool\"]),\n content: JsonValueSchema.optional(),\n toolCalls: z.array(ToolCallRecordSchema).optional(),\n metadata: JsonObjectSchema.optional(),\n })\n .strict();\n\n/** Normalized transcript message captured in a harness session. */\nexport type NormalizedMessage = {\n /** Transcript role for the normalized message. */\n role: \"system\" | \"user\" | \"assistant\" | \"tool\";\n /** JSON-safe message content. */\n content?: JsonValue;\n /** Tool calls associated with this message. */\n toolCalls?: ToolCallRecord[];\n /** Extra JSON-safe message metadata. */\n metadata?: Record<string, JsonValue>;\n};\n\n/** Normalized transcript produced by an application harness. */\nexport const NormalizedSessionSchema = z\n .object({\n messages: z.array(NormalizedMessageSchema).default([]),\n provider: z.string().optional(),\n model: z.string().optional(),\n metadata: JsonObjectSchema.optional(),\n })\n .strict();\n\n/** Normalized transcript produced by an application harness. */\nexport type NormalizedSession = {\n /** Ordered normalized transcript messages. */\n messages: NormalizedMessage[];\n /** Provider that produced the session when known. */\n provider?: string;\n /** Model that produced the session when known. */\n model?: string;\n /** Extra JSON-safe session metadata. */\n metadata?: Record<string, JsonValue>;\n};\n\n/** Attribute schema attached to normalized traces, spans, and events. */\nexport const NormalizedSpanAttributesSchema = JsonObjectSchema;\n\n/** Event attached to a normalized span. */\nexport const NormalizedSpanEventSchema = z\n .object({\n name: z.string(),\n timestamp: z.string().optional(),\n attributes: NormalizedSpanAttributesSchema.optional(),\n })\n .strict();\n\n/** Event attached to a normalized span. */\nexport type NormalizedSpanEvent = {\n /** Event name emitted by the runtime or harness. */\n name: string;\n /** ISO timestamp for the event when available. */\n timestamp?: string;\n /** JSON-safe event attributes. */\n attributes?: NormalizedSpanAttributes;\n};\n\n/** Normalized operation span captured during a harness run. */\nexport const NormalizedSpanSchema = z\n .object({\n id: z.string().optional(),\n traceId: z.string().optional(),\n parentId: z.string().optional(),\n name: z.string(),\n kind: z\n .enum([\"run\", \"agent\", \"model\", \"tool\", \"guardrail\", \"handoff\", \"custom\"])\n .optional(),\n startedAt: z.string().optional(),\n finishedAt: z.string().optional(),\n durationMs: FiniteNumberSchema.optional(),\n status: z.enum([\"ok\", \"error\"]).optional(),\n error: NormalizedErrorSchema.optional(),\n attributes: NormalizedSpanAttributesSchema.optional(),\n events: z.array(NormalizedSpanEventSchema).optional(),\n })\n .strict();\n\n/** Normalized operation span captured during a harness run. */\nexport type NormalizedSpan = {\n /** Runtime or provider span id when one is available. */\n id?: string;\n /** Trace id this span belongs to. */\n traceId?: string;\n /** Parent span id when the runtime exposes hierarchy. */\n parentId?: string;\n /** Human-readable operation name. */\n name: string;\n /** Coarse operation kind used by reporters and judges. */\n kind?:\n | \"run\"\n | \"agent\"\n | \"model\"\n | \"tool\"\n | \"guardrail\"\n | \"handoff\"\n | \"custom\";\n /** ISO timestamp for the start of the span. */\n startedAt?: string;\n /** ISO timestamp for the end of the span. */\n finishedAt?: string;\n /** Span duration in milliseconds. */\n durationMs?: number;\n /** Success or failure status for the span. */\n status?: \"ok\" | \"error\";\n /** Normalized error when the span failed. */\n error?: NormalizedError;\n /** JSON-safe operation attributes. */\n attributes?: NormalizedSpanAttributes;\n /** Events observed inside this span. */\n events?: NormalizedSpanEvent[];\n};\n\n/** Normalized trace captured during a harness run. */\nexport const NormalizedTraceSchema = z\n .object({\n id: z.string().optional(),\n name: z.string().optional(),\n startedAt: z.string().optional(),\n finishedAt: z.string().optional(),\n durationMs: FiniteNumberSchema.optional(),\n metadata: JsonObjectSchema.optional(),\n spans: z.array(NormalizedSpanSchema).default([]),\n })\n .strict();\n\n/** Normalized trace captured during a harness run. */\nexport type NormalizedTrace = {\n /** Runtime or provider trace id when one is available. */\n id?: string;\n /** Human-readable trace or workflow name. */\n name?: string;\n /** ISO timestamp for the start of the trace. */\n startedAt?: string;\n /** ISO timestamp for the end of the trace. */\n finishedAt?: string;\n /** Trace duration in milliseconds. */\n durationMs?: number;\n /** Extra JSON-safe trace metadata. */\n metadata?: Record<string, JsonValue>;\n /** Spans that make up this trace. */\n spans: NormalizedSpan[];\n};\n\n/** Full normalized harness run as stored in Vitest assertion metadata. */\nexport const HarnessRunSchema = z\n .object({\n output: JsonValueSchema.optional(),\n session: NormalizedSessionSchema,\n usage: UsageSummarySchema,\n timings: TimingSummarySchema.optional(),\n artifacts: JsonObjectSchema.optional(),\n traces: z.array(NormalizedTraceSchema).optional(),\n errors: z.array(JsonObjectSchema).default([]),\n })\n .strict();\n\ntype OutputField<TOutput extends JsonValue | undefined> =\n undefined extends TOutput ? { output?: TOutput } : { output: TOutput };\n\n/**\n * Normalized result returned by every harness execution.\n *\n * @example\n * ```ts\n * const run: HarnessRun<{ status: \"approved\" }> = {\n * output: { status: \"approved\" },\n * session: {\n * messages: [\n * { role: \"user\", content: \"Refund invoice inv_123\" },\n * { role: \"assistant\", content: { status: \"approved\" } },\n * ],\n * },\n * usage: { totalTokens: 260 },\n * errors: [],\n * };\n * ```\n */\nexport type HarnessRun<\n TOutput extends JsonValue | undefined = JsonValue | undefined,\n> = OutputField<TOutput> & {\n /** Normalized transcript and provider/session metadata. */\n session: NormalizedSession;\n /** Stable provider usage units such as tokens, tools, and retries. */\n usage: UsageSummary;\n /** Optional timing summary for the run. */\n timings?: TimingSummary;\n /** JSON-safe run artifacts captured by the harness or test context. */\n artifacts?: Record<string, JsonValue>;\n /** Normalized traces and spans captured during execution. */\n traces?: NormalizedTrace[];\n /** Normalized errors captured during execution. */\n errors: Array<Record<string, JsonValue>>;\n};\n\n/** Error value with an attached partial or complete normalized harness run. */\nexport type HarnessRunError = Error & {\n /** Attached normalized harness run recovered from a thrown error. */\n vitestEvalsRun: HarnessRun;\n};\n","import { z } from \"zod\";\n\n/** Primitive scalar values allowed in persisted vitest-evals JSON artifacts. */\nexport type JsonPrimitive = string | number | boolean | null;\n\n/** JSON-safe value shape used by reports, normalized sessions, and traces. */\nexport type JsonValue =\n | JsonPrimitive\n | JsonValue[]\n | { [key: string]: JsonValue };\n\n/** Schema for primitive scalar values in persisted report artifacts. */\nexport const JsonPrimitiveSchema = z.union([\n z.string(),\n z.number().finite(),\n z.boolean(),\n z.null(),\n]);\n\n/** Schema for any JSON-safe value in persisted report artifacts. */\nexport const JsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n z.union([\n JsonPrimitiveSchema,\n z.array(JsonValueSchema),\n z.record(z.string(), JsonValueSchema),\n ]),\n);\n\n/** Schema for JSON-safe object records in persisted report artifacts. */\nexport const JsonObjectSchema = z.record(z.string(), JsonValueSchema);\n","import { z } from \"zod\";\nimport type { JsonValue } from \"./json\";\n\nexport const FiniteNumberSchema = z.number().finite();\n\nexport const OptionalFiniteNumberSchema = z.preprocess(\n (value) =>\n value === null || (typeof value === \"number\" && !Number.isFinite(value))\n ? undefined\n : value,\n FiniteNumberSchema.optional(),\n);\n\nexport const NullableFiniteNumberSchema = z.preprocess(\n (value) =>\n typeof value === \"number\" && !Number.isFinite(value) ? null : value,\n FiniteNumberSchema.nullable().optional(),\n);\n\nexport function parseWithSchema<T>(\n schema: z.ZodType<T>,\n input: unknown,\n label: string,\n) {\n const parsed = schema.safeParse(input);\n if (parsed.success) {\n return parsed.data;\n }\n\n const reason = parsed.error.issues\n .slice(0, 3)\n .map((issue) => {\n const path = issue.path.length > 0 ? issue.path.join(\".\") : \"<root>\";\n return `${path}: ${issue.message}`;\n })\n .join(\"; \");\n throw new Error(`Invalid ${label}: ${reason}`);\n}\n\nexport function isJsonObject(\n value: unknown,\n): value is Record<string, JsonValue> {\n return isRecord(value);\n}\n\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n","import { z } from \"zod\";\nimport {\n FiniteNumberSchema,\n OptionalFiniteNumberSchema,\n parseWithSchema,\n} from \"../schema-utils\";\n\n/** Status values emitted by Vitest JSON reports. */\nexport const VitestJsonStatusSchema = z.enum([\n \"passed\",\n \"failed\",\n \"skipped\",\n \"pending\",\n \"todo\",\n \"disabled\",\n]);\n\n/** Status values emitted by Vitest JSON reports. */\nexport type VitestJsonStatus = z.infer<typeof VitestJsonStatusSchema>;\n\n/** Source location attached to one Vitest assertion. */\nexport const VitestJsonLocationSchema = z\n .object({\n line: FiniteNumberSchema,\n column: FiniteNumberSchema,\n })\n .passthrough();\n\n/** Source location attached to one Vitest assertion. */\nexport type VitestJsonLocation = z.infer<typeof VitestJsonLocationSchema>;\n\n/** Assertion record read from Vitest's JSON reporter output. */\nexport const VitestJsonAssertionSchema = z\n .object({\n ancestorTitles: z.array(z.string()).default([]),\n fullName: z.string(),\n status: VitestJsonStatusSchema,\n title: z.string(),\n meta: z.unknown().optional(),\n duration: FiniteNumberSchema.nullable().optional(),\n failureMessages: z.array(z.string()).nullable().optional(),\n location: VitestJsonLocationSchema.nullable().optional(),\n tags: z.array(z.string()).optional(),\n })\n .passthrough();\n\n/** Assertion record read from Vitest's JSON reporter output. */\nexport type VitestJsonAssertion = z.infer<typeof VitestJsonAssertionSchema>;\n\n/** Test-file record read from Vitest's JSON reporter output. */\nexport const VitestJsonFileSchema = z\n .object({\n message: z.string(),\n name: z.string(),\n status: z.enum([\"failed\", \"passed\"]),\n startTime: OptionalFiniteNumberSchema,\n endTime: OptionalFiniteNumberSchema,\n assertionResults: z.array(VitestJsonAssertionSchema).default([]),\n })\n .passthrough();\n\n/** Test-file record read from Vitest's JSON reporter output. */\nexport type VitestJsonFile = z.infer<typeof VitestJsonFileSchema>;\n\n/** Top-level Vitest JSON reporter payload. */\nexport const VitestJsonReportSchema = z\n .object({\n numFailedTests: FiniteNumberSchema,\n numPassedTests: FiniteNumberSchema,\n numPendingTests: FiniteNumberSchema,\n numTodoTests: FiniteNumberSchema,\n numTotalTests: FiniteNumberSchema,\n startTime: FiniteNumberSchema,\n success: z.boolean(),\n testResults: z.array(VitestJsonFileSchema).default([]),\n })\n .passthrough();\n\n/** Top-level Vitest JSON reporter payload. */\nexport type VitestJsonReport = z.infer<typeof VitestJsonReportSchema>;\n\n/** Parses and validates an unknown value as a Vitest JSON report artifact. */\nexport function parseVitestJsonReport(input: unknown): VitestJsonReport {\n return parseWithSchema(VitestJsonReportSchema, input, \"Vitest JSON report\");\n}\n"],"mappings":";AAAA,SAAS,SAAS,UAAU,YAAY;AACxC,SAAS,SAAS,YAAY,UAAU,SAAS,WAAW;;;ACD5D,SAAS,KAAAA,UAAS;;;ACAlB,SAAS,KAAAC,UAAS;;;ACAlB,SAAS,KAAAC,UAAS;;;ACAlB,SAAS,SAAS;AAYX,IAAM,sBAAsB,EAAE,MAAM;AAAA,EACzC,EAAE,OAAO;AAAA,EACT,EAAE,OAAO,EAAE,OAAO;AAAA,EAClB,EAAE,QAAQ;AAAA,EACV,EAAE,KAAK;AACT,CAAC;AAGM,IAAM,kBAAwC,EAAE;AAAA,EAAK,MAC1D,EAAE,MAAM;AAAA,IACN;AAAA,IACA,EAAE,MAAM,eAAe;AAAA,IACvB,EAAE,OAAO,EAAE,OAAO,GAAG,eAAe;AAAA,EACtC,CAAC;AACH;AAGO,IAAM,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,eAAe;;;AC7BpE,SAAS,KAAAC,UAAS;AAGX,IAAM,qBAAqBA,GAAE,OAAO,EAAE,OAAO;AAE7C,IAAM,6BAA6BA,GAAE;AAAA,EAC1C,CAAC,UACC,UAAU,QAAS,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,IAClE,SACA;AAAA,EACN,mBAAmB,SAAS;AAC9B;AAEO,IAAM,6BAA6BA,GAAE;AAAA,EAC1C,CAAC,UACC,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,IAAI,OAAO;AAAA,EAChE,mBAAmB,SAAS,EAAE,SAAS;AACzC;AAEO,SAAS,gBACd,QACA,OACA,OACA;AACA,QAAM,SAAS,OAAO,UAAU,KAAK;AACrC,MAAI,OAAO,SAAS;AAClB,WAAO,OAAO;AAAA,EAChB;AAEA,QAAM,SAAS,OAAO,MAAM,OACzB,MAAM,GAAG,CAAC,EACV,IAAI,CAAC,UAAU;AACd,UAAM,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,GAAG,IAAI;AAC5D,WAAO,GAAG,IAAI,KAAK,MAAM,OAAO;AAAA,EAClC,CAAC,EACA,KAAK,IAAI;AACZ,QAAM,IAAI,MAAM,WAAW,KAAK,KAAK,MAAM,EAAE;AAC/C;AAEO,SAAS,aACd,OACoC;AACpC,SAAO,SAAS,KAAK;AACvB;AAEO,SAAS,SAAS,OAAkD;AACzE,SAAO,QAAQ,KAAK,KAAK,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;;;AF/BO,IAAM,qBAAqBC,GAC/B,OAAO;AAAA,EACN,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,aAAa,mBAAmB,SAAS;AAAA,EACzC,cAAc,mBAAmB,SAAS;AAAA,EAC1C,iBAAiB,mBAAmB,SAAS;AAAA,EAC7C,aAAa,mBAAmB,SAAS;AAAA,EACzC,WAAW,mBAAmB,SAAS;AAAA,EACvC,SAAS,mBAAmB,SAAS;AAAA,EACrC,UAAU,iBAAiB,SAAS;AACtC,CAAC,EACA,OAAO;AAyBH,IAAM,sBAAsBA,GAChC,OAAO;AAAA,EACN,SAAS,mBAAmB,SAAS;AAAA,EACrC,UAAU,iBAAiB,SAAS;AACtC,CAAC,EACA,OAAO;AAWH,IAAM,wBAAwBA,GAClC,OAAO;AAAA,EACN,SAASA,GAAE,OAAO;AAAA,EAClB,MAAMA,GAAE,OAAO,EAAE,SAAS;AAC5B,CAAC,EACA,SAAS,eAAe;AAGpB,IAAM,uBAAuBA,GACjC,OAAO;AAAA,EACN,IAAIA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxB,MAAMA,GAAE,OAAO;AAAA,EACf,WAAW,iBAAiB,SAAS;AAAA,EACrC,QAAQ,gBAAgB,SAAS;AAAA,EACjC,OAAO,sBAAsB,SAAS;AAAA,EACtC,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChC,YAAY,mBAAmB,SAAS;AAAA,EACxC,UAAU,iBAAiB,SAAS;AACtC,CAAC,EACA,OAAO;AAyBH,IAAM,0BAA0BA,GACpC,OAAO;AAAA,EACN,MAAMA,GAAE,KAAK,CAAC,UAAU,QAAQ,aAAa,MAAM,CAAC;AAAA,EACpD,SAAS,gBAAgB,SAAS;AAAA,EAClC,WAAWA,GAAE,MAAM,oBAAoB,EAAE,SAAS;AAAA,EAClD,UAAU,iBAAiB,SAAS;AACtC,CAAC,EACA,OAAO;AAeH,IAAM,0BAA0BA,GACpC,OAAO;AAAA,EACN,UAAUA,GAAE,MAAM,uBAAuB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACrD,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,UAAU,iBAAiB,SAAS;AACtC,CAAC,EACA,OAAO;AAeH,IAAM,iCAAiC;AAGvC,IAAM,4BAA4BA,GACtC,OAAO;AAAA,EACN,MAAMA,GAAE,OAAO;AAAA,EACf,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,YAAY,+BAA+B,SAAS;AACtD,CAAC,EACA,OAAO;AAaH,IAAM,uBAAuBA,GACjC,OAAO;AAAA,EACN,IAAIA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxB,SAASA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAMA,GAAE,OAAO;AAAA,EACf,MAAMA,GACH,KAAK,CAAC,OAAO,SAAS,SAAS,QAAQ,aAAa,WAAW,QAAQ,CAAC,EACxE,SAAS;AAAA,EACZ,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChC,YAAY,mBAAmB,SAAS;AAAA,EACxC,QAAQA,GAAE,KAAK,CAAC,MAAM,OAAO,CAAC,EAAE,SAAS;AAAA,EACzC,OAAO,sBAAsB,SAAS;AAAA,EACtC,YAAY,+BAA+B,SAAS;AAAA,EACpD,QAAQA,GAAE,MAAM,yBAAyB,EAAE,SAAS;AACtD,CAAC,EACA,OAAO;AAsCH,IAAM,wBAAwBA,GAClC,OAAO;AAAA,EACN,IAAIA,GAAE,OAAO,EAAE,SAAS;AAAA,EACxB,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,WAAWA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,EAChC,YAAY,mBAAmB,SAAS;AAAA,EACxC,UAAU,iBAAiB,SAAS;AAAA,EACpC,OAAOA,GAAE,MAAM,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC,EACA,OAAO;AAqBH,IAAM,mBAAmBA,GAC7B,OAAO;AAAA,EACN,QAAQ,gBAAgB,SAAS;AAAA,EACjC,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS,oBAAoB,SAAS;AAAA,EACtC,WAAW,iBAAiB,SAAS;AAAA,EACrC,QAAQA,GAAE,MAAM,qBAAqB,EAAE,SAAS;AAAA,EAChD,QAAQA,GAAE,MAAM,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC,EACA,OAAO;;;ADpQH,IAAM,oBAAoBC,GAC9B,OAAO;AAAA,EACN,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,KAAK,iBAAiB,SAAS;AACjC,CAAC,EACA,OAAO;AAMH,IAAM,kBAAkBA,GAC5B,OAAO;AAAA,EACN,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO;AAAA,EACP,UAAU,iBAAiB,SAAS;AACtC,CAAC,EACA,OAAO;AAMH,IAAM,iBAAiBA,GAC3B,OAAO;AAAA,EACN,QAAQA,GAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EAC1C,UAAU;AAAA,EACV,QAAQ,gBAAgB,SAAS;AAAA,EACjC,iBAAiBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACtC,WAAWA,GAAE,MAAM,oBAAoB,EAAE,SAAS;AACpD,CAAC,EACA,OAAO;AAMH,IAAM,qBAAqBA,GAC/B,OAAO;AAAA,EACN,MAAM,eAAe,SAAS;AAAA,EAC9B,SAAS,kBAAkB,SAAS;AACtC,CAAC,EACA,OAAO;AAKV,IAAM,8BAA8B,qBAAqB,MAAM;AAC/D,IAAM,uBAAuB,wBAAwB,OAAO;AAAA,EAC1D,WAAWA,GAAE,MAAM,2BAA2B,EAAE,SAAS,EAAE,MAAM,MAAS;AAC5E,CAAC,EAAE,MAAM;AACT,IAAM,uBAAuB,wBAAwB,OAAO;AAAA,EAC1D,UAAUA,GAAE,MAAM,oBAAoB,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC,EAAE,MAAM;AACT,IAAM,yBAAyB,0BAA0B,MAAM;AAC/D,IAAM,oBAAoB,qBAAqB,OAAO;AAAA,EACpD,QAAQA,GAAE,MAAM,sBAAsB,EAAE,SAAS,EAAE,MAAM,MAAS;AACpE,CAAC,EAAE,MAAM;AACT,IAAM,qBAAqB,sBAAsB,OAAO;AAAA,EACtD,OAAOA,GAAE,MAAM,iBAAiB,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC,EAAE,MAAM;AACT,IAAM,0BAA0B,iBAAiB,OAAO;AAAA,EACtD,SAAS;AAAA,EACT,OAAO,mBAAmB,MAAM,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC5C,SAAS,oBAAoB,MAAM,EAAE,SAAS;AAAA,EAC9C,QAAQA,GAAE,MAAM,kBAAkB,EAAE,SAAS,EAAE,MAAM,MAAS;AAChE,CAAC,EAAE,MAAM;AACT,IAAM,2BAA2B,kBAAkB,OAAO;AAAA,EACxD,KAAK,wBAAwB,SAAS,EAAE,MAAM,MAAS;AACzD,CAAC,EAAE,MAAM;AACT,IAAM,yBAAyB,gBAAgB,MAAM;AACrD,IAAM,wBAAwB,eAAe,OAAO;AAAA,EAClD,QAAQA,GAAE,MAAM,sBAAsB,EAAE,SAAS,EAAE,MAAM,MAAS;AAAA,EAClE,WAAWA,GAAE,MAAM,2BAA2B,EAAE,SAAS,EAAE,MAAM,MAAS;AAC5E,CAAC,EAAE,MAAM;AAGF,SAAS,iBAAiB,OAA0C;AACzE,MAAI,CAAC,aAAa,KAAK,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,sBAAsB,UAAU,MAAM,IAAI;AAC7D,QAAM,gBAAgB,yBAAyB,UAAU,MAAM,OAAO;AACtE,QAAM,OAAqB;AAAA,IACzB,GAAI,WAAW,WAAW,MAAM,SAAS,SACrC,EAAE,MAAM,WAAW,KAAK,IACxB,CAAC;AAAA,IACL,GAAI,cAAc,WAAW,MAAM,YAAY,SAC3C,EAAE,SAAS,cAAc,KAAK,IAC9B,CAAC;AAAA,EACP;AAEA,SAAO,KAAK,QAAQ,KAAK,UAAU,OAAO;AAC5C;;;AI9GA,SAAS,KAAAC,UAAS;AAQX,IAAM,yBAAyBC,GAAE,KAAK;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAMM,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AACV,CAAC,EACA,YAAY;AAMR,IAAM,4BAA4BA,GACtC,OAAO;AAAA,EACN,gBAAgBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC9C,UAAUA,GAAE,OAAO;AAAA,EACnB,QAAQ;AAAA,EACR,OAAOA,GAAE,OAAO;AAAA,EAChB,MAAMA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC3B,UAAU,mBAAmB,SAAS,EAAE,SAAS;AAAA,EACjD,iBAAiBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS;AAAA,EACzD,UAAU,yBAAyB,SAAS,EAAE,SAAS;AAAA,EACvD,MAAMA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AACrC,CAAC,EACA,YAAY;AAMR,IAAM,uBAAuBA,GACjC,OAAO;AAAA,EACN,SAASA,GAAE,OAAO;AAAA,EAClB,MAAMA,GAAE,OAAO;AAAA,EACf,QAAQA,GAAE,KAAK,CAAC,UAAU,QAAQ,CAAC;AAAA,EACnC,WAAW;AAAA,EACX,SAAS;AAAA,EACT,kBAAkBA,GAAE,MAAM,yBAAyB,EAAE,QAAQ,CAAC,CAAC;AACjE,CAAC,EACA,YAAY;AAMR,IAAM,yBAAyBA,GACnC,OAAO;AAAA,EACN,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,WAAW;AAAA,EACX,SAASA,GAAE,QAAQ;AAAA,EACnB,aAAaA,GAAE,MAAM,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC,EACA,YAAY;AAMR,SAAS,sBAAsB,OAAkC;AACtE,SAAO,gBAAgB,wBAAwB,OAAO,oBAAoB;AAC5E;;;ALpEO,IAAM,kCAAkC;AAGxC,IAAM,kBAAkBC,GAC5B,OAAO;AAAA,EACN,IAAIA,GAAE,OAAO;AAAA,EACb,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,QAAQA,GAAE,KAAK,CAAC,UAAU,QAAQ,CAAC;AAAA,EACnC,WAAW,mBAAmB,SAAS;AAAA,EACvC,YAAY,mBAAmB,SAAS;AAAA,EACxC,QAAQA,GAAE,OAAO;AAAA,IACf,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,YAAY;AAAA,EACd,CAAC;AACH,CAAC,EACA,OAAO;AAMH,IAAM,mBAAmBA,GAC7B,OAAO;AAAA,EACN,IAAIA,GAAE,OAAO;AAAA,EACb,OAAOA,GAAE,OAAO;AAAA,EAChB,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,MAAMA,GAAE,OAAO;AAAA,EACf,aAAaA,GAAE,OAAO;AAAA,EACtB,OAAOA,GAAE,OAAO;AAAA,EAChB,UAAUA,GAAE,OAAO;AAAA,EACnB,gBAAgBA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,EAClC,MAAMA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACnC,aAAaA,GAAE,OAAO;AAAA,EACtB,QAAQ;AAAA,EACR,YAAY,mBAAmB,SAAS;AAAA,EACxC,UAAU,yBAAyB,SAAS;AAAA,EAC5C,iBAAiBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC/C,MAAM,eAAe,SAAS;AAAA,EAC9B,SAAS,kBAAkB,SAAS;AACtC,CAAC,EACA,OAAO;AAMH,IAAM,wBAAwBA,GAClC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,+BAA+B;AAAA,EACxD,MAAMA,GAAE,MAAM,eAAe;AAAA,EAC7B,OAAOA,GAAE,MAAM,gBAAgB;AACjC,CAAC,EACA,OAAO;AAyBH,SAAS,uBACd,OACA,UAAyC,CAAC,GACzB;AACjB,QAAM,UAAU,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AACrD,QAAM,OAAoB,CAAC;AAC3B,QAAM,QAAsB,CAAC;AAE7B,UAAQ,QAAQ,CAAC,OAAO,UAAU;AAChC,UAAM,EAAE,QAAQ,OAAO,IAAI,wBAAwB,KAAK;AACxD,UAAM,QAAQ,UAAU,OAAO,QAAQ,CAAC;AACxC,UAAM,WAAyB,CAAC;AAEhC,eAAW,QAAQ,OAAO,aAAa;AACrC,iBAAW,aAAa,KAAK,kBAAkB;AAC7C,cAAM,OAAO,iBAAiB,UAAU,IAAI;AAC5C,YAAI,CAAC,MAAM;AACT;AAAA,QACF;AAEA,iBAAS,KAAK;AAAA,UACZ,IAAI,aAAa,OAAO,KAAK,MAAM,SAAS;AAAA,UAC5C;AAAA,UACA,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,UAC3B,MAAM,KAAK;AAAA,UACX,aAAa,oBAAoB,KAAK,MAAM,QAAQ,SAAS;AAAA,UAC7D,OAAO,UAAU;AAAA,UACjB,UAAU,UAAU;AAAA,UACpB,gBAAgB,UAAU;AAAA,UAC1B,GAAI,UAAU,OAAO,EAAE,MAAM,UAAU,KAAK,IAAI,CAAC;AAAA,UACjD,aAAa,kBAAkB,SAAS;AAAA,UACxC,QAAQ,UAAU;AAAA,UAClB,GAAI,OAAO,UAAU,aAAa,WAC9B,EAAE,YAAY,UAAU,SAAS,IACjC,CAAC;AAAA,UACL,GAAI,UAAU,WAAW,EAAE,UAAU,UAAU,SAAS,IAAI,CAAC;AAAA,UAC7D,iBAAiB,UAAU,mBAAmB,CAAC;AAAA,UAC/C,GAAI,KAAK,OAAO,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC;AAAA,UACvC,GAAI,KAAK,UAAU,EAAE,SAAS,KAAK,QAAQ,IAAI,CAAC;AAAA,QAClD,CAAC;AAAA,MACH;AAAA,IACF;AAEA,SAAK,KAAK;AAAA,MACR,IAAI;AAAA,MACJ,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,MAC3B,QACE,OAAO,WACP,SAAS,MAAM,CAAC,aAAa,SAAS,WAAW,QAAQ,IACrD,WACA;AAAA,MACN,WAAW,OAAO;AAAA,MAClB,YAAY,mBAAmB,MAAM;AAAA,MACrC,QAAQ;AAAA,QACN,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,QACf,QAAQ,OAAO;AAAA,QACf,SAAS,OAAO,kBAAkB,OAAO;AAAA,QACzC,WAAW,SAAS;AAAA,QACpB,YAAY,SAAS,OAAO,CAAC,aAAa,SAAS,WAAW,QAAQ,EACnE;AAAA,QACH,YAAY,SAAS,OAAO,CAAC,aAAa,SAAS,WAAW,QAAQ,EACnE;AAAA,MACL;AAAA,IACF,CAAC;AACD,UAAM,KAAK,GAAG,QAAQ;AAAA,EACxB,CAAC;AAED,SAAO;AAAA,IACL,eAAe;AAAA,IACf;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,wBAAwB,OAA6B;AAC5D,MAAI,uBAAuB,KAAK,GAAG;AACjC,WAAO;AAAA,MACL,QAAQ,sBAAsB,KAAK;AAAA,IACrC;AAAA,EACF;AAEA,MAAI,SAAS,KAAK,KAAK,YAAY,OAAO;AACxC,WAAO;AAAA,MACL,QAAQ,sBAAsB,MAAM,MAAM;AAAA,MAC1C,QAAQ,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS;AAAA,IAC5D;AAAA,EACF;AAEA,SAAO;AAAA,IACL,QAAQ,sBAAsB,KAAK;AAAA,EACrC;AACF;AAEA,SAAS,uBAAuB,OAAgB;AAC9C,SAAO,SAAS,KAAK,KAAK,MAAM,QAAQ,MAAM,WAAW;AAC3D;AAEA,SAAS,aACP,OACA,MACA,WACA;AACA,SAAO,CAAC,OAAO,MAAM,UAAU,UAAU,QAAQ,GAAG,UAAU,QAAQ,EAAE;AAAA,IACtE;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,WAAgC;AACzD,SAAO,CAAC,GAAG,UAAU,gBAAgB,UAAU,KAAK,EACjD,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,EAChC,KAAK,KAAK;AACf;AAEA,SAAS,mBAAmB,QAA0B;AACpD,QAAM,YAAY,OAAO,YACtB,IAAI,CAAC,SAAS;AACb,UAAM,QAAQ,KAAK;AACnB,UAAM,MAAM,KAAK;AACjB,QAAI,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe,GAAG,KAAK,MAAM,OAAO;AACjE,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC,EACA;AAAA,IAAO,CAAC,aACP,QAAQ,QAAQ;AAAA,EAClB;AAEF,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO;AAAA,EACT;AAEA,SACE,KAAK,IAAI,GAAG,UAAU,IAAI,CAAC,aAAa,SAAS,GAAG,CAAC,IACrD,KAAK,IAAI,GAAG,UAAU,IAAI,CAAC,aAAa,SAAS,KAAK,CAAC;AAE3D;AAEA,SAAS,eAAe,OAAiC;AACvD,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK;AAC3D;AAEA,SAAS,oBAAoB,MAAc,WAAoB;AAC7D,QAAM,aAAa,KAAK,QAAQ,OAAO,GAAG;AAC1C,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,UAAU,QAAQ,OAAO,GAAG,EAAE,QAAQ,QAAQ,EAAE;AACtE,MACE,eAAe,iBACf,CAAC,WAAW,WAAW,GAAG,aAAa,GAAG,GAC1C;AACA,WAAO;AAAA,EACT;AAEA,SAAO,WAAW,MAAM,cAAc,MAAM,EAAE,QAAQ,QAAQ,EAAE;AAClE;;;AD3OA,IAAM,oBAAoB;AAC1B,IAAM,4BAA4B,CAAC,OAAO;AAO1C,eAAsB,mBACpB,UACA,UAAqC,CAAC,GACtC;AACA,QAAM,MAAM,QAAQ,OAAO,QAAQ,IAAI;AACvC,QAAM,aAAa;AAAA,IACjB,QAAQ,cAAc;AAAA,EACxB;AACA,QAAM,QAAkB,CAAC;AAEzB,aAAW,WAAW,SAAS,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,GAAG;AAC3E,QAAI,QAAQ,OAAO,GAAG;AACpB,YAAM,KAAK,GAAI,MAAM,WAAW,SAAS,GAAG,CAAE;AAC9C;AAAA,IACF;AAEA,UAAM,YAAY,WAAW,OAAO,IAAI,UAAU,QAAQ,KAAK,OAAO;AACtE,UAAM,gBAAgB,MAAM,SAAS,SAAS;AAC9C,QAAI,eAAe,YAAY,GAAG;AAChC,YAAM,KAAK,GAAI,MAAM,gBAAgB,WAAW,UAAU,CAAE;AAC5D;AAAA,IACF;AAEA,UAAM,KAAK,SAAS;AAAA,EACtB;AAEA,SAAO,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK;AAClC;AAGO,IAAM,qBAAqB;AAG3B,SAAS,iBAAiB,OAA2B;AAC1D,UAAQ,SAAS,IACd,MAAM,OAAO,EACb,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC,EAC3B,OAAO,OAAO;AACnB;AAGO,IAAM,oBAAoB;AAGjC,eAAsB,yBACpB,YAC2B;AAC3B,MAAI;AACF,WAAO;AAAA,MACL,KAAK,MAAM,MAAM,SAAS,YAAY,MAAM,CAAC;AAAA,IAC/C;AAAA,EACF,SAAS,OAAO;AACd,UAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACrE,UAAM,IAAI;AAAA,MACR,mCAAmC,UAAU,KAAK,OAAO;AAAA,IAC3D;AAAA,EACF;AACF;AAGA,eAAsB,oBACpB,UACA,UAAsC,CAAC,GACyB;AAChE,QAAM,MAAM,QAAQ,OAAO,QAAQ,IAAI;AACvC,QAAM,cAAc,MAAM,mBAAmB,UAAU,EAAE,GAAG,SAAS,IAAI,CAAC;AAC1E,MAAI,YAAY,WAAW,GAAG;AAC5B,UAAM,IAAI,MAAM,iCAAiC,SAAS,KAAK,IAAI,CAAC,EAAE;AAAA,EACxE;AAEA,QAAM,UAAU,MAAM,QAAQ;AAAA,IAC5B,YAAY,IAAI,OAAO,gBAAgB;AAAA,MACrC,QAAQ,MAAM,yBAAyB,UAAU;AAAA,MACjD,QAAQ,oBAAoB,YAAY,GAAG;AAAA,IAC7C,EAAE;AAAA,EACJ;AAEA,SAAO;AAAA,IACL;AAAA,IACA,WAAW,uBAAuB,SAAS;AAAA,MACzC,WAAW,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AACF;AAEA,SAAS,oBAAoB,YAAoB,KAAa;AAC5D,QAAM,iBAAiB,cAAc,SAAS,QAAQ,GAAG,GAAG,UAAU,CAAC;AACvE,MACE,mBAAmB,MACnB,mBAAmB,OACnB,eAAe,WAAW,KAAK,GAC/B;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,QAAQ,SAAiB;AAChC,SAAO,kBAAkB,KAAK,OAAO;AACvC;AAEA,eAAe,WAAW,SAAiB,KAAa;AACtD,QAAM,oBAAoB,qBAAqB,OAAO;AACtD,QAAM,kBAAkB,WAAW,OAAO;AAC1C,QAAM,OAAO,SAAS,iBAAiB;AACvC,QAAM,WAAW,kBAAkB,QAAQ,MAAM,QAAQ,KAAK,QAAQ,GAAG;AACzE,QAAM,QAAQ,aAAa,iBAAiB;AAC5C,QAAM,UAAoB,CAAC;AAE3B,aAAW,QAAQ,MAAM,UAAU,QAAQ,GAAG;AAC5C,UAAM,iBAAiB,cAAc,IAAI;AACzC,UAAM,YAAY,kBACd,iBACA,cAAc,SAAS,QAAQ,GAAG,GAAG,IAAI,CAAC;AAC9C,QAAI,MAAM,KAAK,SAAS,GAAG;AACzB,cAAQ,KAAK,IAAI;AAAA,IACnB;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,SAAS,SAAiB;AACjC,QAAM,WAAW,QAAQ,MAAM,GAAG;AAClC,QAAM,eAAyB,CAAC;AAEhC,aAAW,WAAW,UAAU;AAC9B,QAAI,QAAQ,OAAO,GAAG;AACpB;AAAA,IACF;AACA,iBAAa,KAAK,OAAO;AAAA,EAC3B;AAEA,SAAO,aAAa,KAAK,GAAG;AAC9B;AAEA,eAAe,gBAAgB,WAAmB,YAAyB;AACzE,QAAM,QAAQ,MAAM,UAAU,SAAS;AACvC,SAAO,MAAM,OAAO,CAAC,SAAS,WAAW,IAAI,QAAQ,IAAI,EAAE,YAAY,CAAC,CAAC;AAC3E;AAEA,eAAe,UAAU,WAAsC;AAC7D,QAAM,UAAU,MAAM,cAAc,SAAS;AAC7C,MAAI,CAAC,SAAS;AACZ,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,QAAkB,CAAC;AACzB,aAAW,SAAS,SAAS;AAC3B,UAAM,QAAQ,QAAQ,WAAW,MAAM,IAAI;AAC3C,QAAI,MAAM,YAAY,GAAG;AACvB,YAAM,KAAK,GAAI,MAAM,UAAU,KAAK,CAAE;AAAA,IACxC,WAAW,MAAM,OAAO,GAAG;AACzB,YAAM,KAAK,KAAK;AAAA,IAClB;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAe,cAAc,WAAmB;AAC9C,MAAI;AACF,WAAO,MAAM,QAAQ,WAAW,EAAE,eAAe,KAAK,CAAC;AAAA,EACzD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAe,SAAS,MAAc;AACpC,MAAI;AACF,WAAO,MAAM,KAAK,IAAI;AAAA,EACxB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,aAAa,SAAiB;AACrC,MAAI,SAAS;AACb,WAAS,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS,GAAG;AACtD,UAAM,OAAO,QAAQ,KAAK;AAC1B,UAAM,OAAO,QAAQ,QAAQ,CAAC;AAE9B,QAAI,SAAS,OAAO,SAAS,KAAK;AAChC,YAAM,YAAY,QAAQ,QAAQ,CAAC;AACnC,UAAI,cAAc,KAAK;AACrB,kBAAU;AACV,iBAAS;AAAA,MACX,OAAO;AACL,kBAAU;AACV,iBAAS;AAAA,MACX;AACA;AAAA,IACF;AAEA,QAAI,SAAS,KAAK;AAChB,gBAAU;AACV;AAAA,IACF;AAEA,QAAI,SAAS,KAAK;AAChB,gBAAU;AACV;AAAA,IACF;AAEA,cAAU,aAAa,QAAQ,EAAE;AAAA,EACnC;AAEA,SAAO,IAAI,OAAO,IAAI,MAAM,GAAG;AACjC;AAEA,SAAS,aAAa,OAAe;AACnC,SAAO,MAAM,QAAQ,sBAAsB,MAAM;AACnD;AAEA,SAAS,cAAc,MAAc;AACnC,SAAO,KAAK,QAAQ,OAAO,GAAG;AAChC;AAEA,SAAS,qBAAqB,SAAiB;AAC7C,QAAM,oBAAoB,cAAc,OAAO;AAC/C,MAAI,WAAW,OAAO,GAAG;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,kBAAkB,QAAQ,YAAY,EAAE;AACjD;AAEA,SAAS,oBAAoB,YAAsB;AACjD,SAAO,IAAI;AAAA,IACT,WAAW;AAAA,MAAI,CAAC,cACd,UAAU,WAAW,GAAG,IACpB,UAAU,YAAY,IACtB,IAAI,UAAU,YAAY,CAAC;AAAA,IACjC;AAAA,EACF;AACF;","names":["z","z","z","z","z","z","z","z","z"]}
|
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/** Primitive scalar values allowed in persisted vitest-evals JSON artifacts. */
|
|
4
|
+
type JsonPrimitive = string | number | boolean | null;
|
|
5
|
+
/** JSON-safe value shape used by reports, normalized sessions, and traces. */
|
|
6
|
+
type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
7
|
+
[key: string]: JsonValue;
|
|
8
|
+
};
|
|
9
|
+
/** Schema for primitive scalar values in persisted report artifacts. */
|
|
10
|
+
declare const JsonPrimitiveSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
|
|
11
|
+
/** Schema for any JSON-safe value in persisted report artifacts. */
|
|
12
|
+
declare const JsonValueSchema: z.ZodType<JsonValue>;
|
|
13
|
+
/** Schema for JSON-safe object records in persisted report artifacts. */
|
|
14
|
+
declare const JsonObjectSchema: z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
15
|
+
|
|
16
|
+
/** Status values emitted by Vitest JSON reports. */
|
|
17
|
+
declare const VitestJsonStatusSchema: z.ZodEnum<{
|
|
18
|
+
passed: "passed";
|
|
19
|
+
failed: "failed";
|
|
20
|
+
skipped: "skipped";
|
|
21
|
+
pending: "pending";
|
|
22
|
+
todo: "todo";
|
|
23
|
+
disabled: "disabled";
|
|
24
|
+
}>;
|
|
25
|
+
/** Status values emitted by Vitest JSON reports. */
|
|
26
|
+
type VitestJsonStatus = z.infer<typeof VitestJsonStatusSchema>;
|
|
27
|
+
/** Source location attached to one Vitest assertion. */
|
|
28
|
+
declare const VitestJsonLocationSchema: z.ZodObject<{
|
|
29
|
+
line: z.ZodNumber;
|
|
30
|
+
column: z.ZodNumber;
|
|
31
|
+
}, z.core.$loose>;
|
|
32
|
+
/** Source location attached to one Vitest assertion. */
|
|
33
|
+
type VitestJsonLocation = z.infer<typeof VitestJsonLocationSchema>;
|
|
34
|
+
/** Assertion record read from Vitest's JSON reporter output. */
|
|
35
|
+
declare const VitestJsonAssertionSchema: z.ZodObject<{
|
|
36
|
+
ancestorTitles: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
37
|
+
fullName: z.ZodString;
|
|
38
|
+
status: z.ZodEnum<{
|
|
39
|
+
passed: "passed";
|
|
40
|
+
failed: "failed";
|
|
41
|
+
skipped: "skipped";
|
|
42
|
+
pending: "pending";
|
|
43
|
+
todo: "todo";
|
|
44
|
+
disabled: "disabled";
|
|
45
|
+
}>;
|
|
46
|
+
title: z.ZodString;
|
|
47
|
+
meta: z.ZodOptional<z.ZodUnknown>;
|
|
48
|
+
duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
49
|
+
failureMessages: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
50
|
+
location: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
51
|
+
line: z.ZodNumber;
|
|
52
|
+
column: z.ZodNumber;
|
|
53
|
+
}, z.core.$loose>>>;
|
|
54
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
55
|
+
}, z.core.$loose>;
|
|
56
|
+
/** Assertion record read from Vitest's JSON reporter output. */
|
|
57
|
+
type VitestJsonAssertion = z.infer<typeof VitestJsonAssertionSchema>;
|
|
58
|
+
/** Test-file record read from Vitest's JSON reporter output. */
|
|
59
|
+
declare const VitestJsonFileSchema: z.ZodObject<{
|
|
60
|
+
message: z.ZodString;
|
|
61
|
+
name: z.ZodString;
|
|
62
|
+
status: z.ZodEnum<{
|
|
63
|
+
passed: "passed";
|
|
64
|
+
failed: "failed";
|
|
65
|
+
}>;
|
|
66
|
+
startTime: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodNumber>>;
|
|
67
|
+
endTime: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodNumber>>;
|
|
68
|
+
assertionResults: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
69
|
+
ancestorTitles: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
70
|
+
fullName: z.ZodString;
|
|
71
|
+
status: z.ZodEnum<{
|
|
72
|
+
passed: "passed";
|
|
73
|
+
failed: "failed";
|
|
74
|
+
skipped: "skipped";
|
|
75
|
+
pending: "pending";
|
|
76
|
+
todo: "todo";
|
|
77
|
+
disabled: "disabled";
|
|
78
|
+
}>;
|
|
79
|
+
title: z.ZodString;
|
|
80
|
+
meta: z.ZodOptional<z.ZodUnknown>;
|
|
81
|
+
duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
82
|
+
failureMessages: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
83
|
+
location: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
84
|
+
line: z.ZodNumber;
|
|
85
|
+
column: z.ZodNumber;
|
|
86
|
+
}, z.core.$loose>>>;
|
|
87
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
88
|
+
}, z.core.$loose>>>;
|
|
89
|
+
}, z.core.$loose>;
|
|
90
|
+
/** Test-file record read from Vitest's JSON reporter output. */
|
|
91
|
+
type VitestJsonFile = z.infer<typeof VitestJsonFileSchema>;
|
|
92
|
+
/** Top-level Vitest JSON reporter payload. */
|
|
93
|
+
declare const VitestJsonReportSchema: z.ZodObject<{
|
|
94
|
+
numFailedTests: z.ZodNumber;
|
|
95
|
+
numPassedTests: z.ZodNumber;
|
|
96
|
+
numPendingTests: z.ZodNumber;
|
|
97
|
+
numTodoTests: z.ZodNumber;
|
|
98
|
+
numTotalTests: z.ZodNumber;
|
|
99
|
+
startTime: z.ZodNumber;
|
|
100
|
+
success: z.ZodBoolean;
|
|
101
|
+
testResults: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
102
|
+
message: z.ZodString;
|
|
103
|
+
name: z.ZodString;
|
|
104
|
+
status: z.ZodEnum<{
|
|
105
|
+
passed: "passed";
|
|
106
|
+
failed: "failed";
|
|
107
|
+
}>;
|
|
108
|
+
startTime: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodNumber>>;
|
|
109
|
+
endTime: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodNumber>>;
|
|
110
|
+
assertionResults: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
111
|
+
ancestorTitles: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
112
|
+
fullName: z.ZodString;
|
|
113
|
+
status: z.ZodEnum<{
|
|
114
|
+
passed: "passed";
|
|
115
|
+
failed: "failed";
|
|
116
|
+
skipped: "skipped";
|
|
117
|
+
pending: "pending";
|
|
118
|
+
todo: "todo";
|
|
119
|
+
disabled: "disabled";
|
|
120
|
+
}>;
|
|
121
|
+
title: z.ZodString;
|
|
122
|
+
meta: z.ZodOptional<z.ZodUnknown>;
|
|
123
|
+
duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
124
|
+
failureMessages: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
125
|
+
location: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
126
|
+
line: z.ZodNumber;
|
|
127
|
+
column: z.ZodNumber;
|
|
128
|
+
}, z.core.$loose>>>;
|
|
129
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
130
|
+
}, z.core.$loose>>>;
|
|
131
|
+
}, z.core.$loose>>>;
|
|
132
|
+
}, z.core.$loose>;
|
|
133
|
+
/** Top-level Vitest JSON reporter payload. */
|
|
134
|
+
type VitestJsonReport = z.infer<typeof VitestJsonReportSchema>;
|
|
135
|
+
/** Parses and validates an unknown value as a Vitest JSON report artifact. */
|
|
136
|
+
declare function parseVitestJsonReport(input: unknown): VitestJsonReport;
|
|
137
|
+
|
|
138
|
+
/** Current schema version for collected report workspaces. */
|
|
139
|
+
declare const REPORT_WORKSPACE_SCHEMA_VERSION = 1;
|
|
140
|
+
/** One collected Vitest JSON report source in a multi-run workspace. */
|
|
141
|
+
declare const ReportRunSchema: z.ZodObject<{
|
|
142
|
+
id: z.ZodString;
|
|
143
|
+
source: z.ZodOptional<z.ZodString>;
|
|
144
|
+
status: z.ZodEnum<{
|
|
145
|
+
passed: "passed";
|
|
146
|
+
failed: "failed";
|
|
147
|
+
}>;
|
|
148
|
+
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
149
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
150
|
+
totals: z.ZodObject<{
|
|
151
|
+
total: z.ZodNumber;
|
|
152
|
+
passed: z.ZodNumber;
|
|
153
|
+
failed: z.ZodNumber;
|
|
154
|
+
skipped: z.ZodNumber;
|
|
155
|
+
evalTotal: z.ZodNumber;
|
|
156
|
+
evalPassed: z.ZodNumber;
|
|
157
|
+
evalFailed: z.ZodNumber;
|
|
158
|
+
}, z.core.$strip>;
|
|
159
|
+
}, z.core.$strict>;
|
|
160
|
+
/** One collected Vitest JSON report source in a multi-run workspace. */
|
|
161
|
+
type ReportRun = z.infer<typeof ReportRunSchema>;
|
|
162
|
+
/** One eval or harness-backed test case collected from Vitest JSON. */
|
|
163
|
+
declare const ReportCaseSchema: z.ZodObject<{
|
|
164
|
+
id: z.ZodString;
|
|
165
|
+
runId: z.ZodString;
|
|
166
|
+
source: z.ZodOptional<z.ZodString>;
|
|
167
|
+
file: z.ZodString;
|
|
168
|
+
displayFile: z.ZodString;
|
|
169
|
+
title: z.ZodString;
|
|
170
|
+
fullName: z.ZodString;
|
|
171
|
+
ancestorTitles: z.ZodArray<z.ZodString>;
|
|
172
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
173
|
+
displayName: z.ZodString;
|
|
174
|
+
status: z.ZodEnum<{
|
|
175
|
+
passed: "passed";
|
|
176
|
+
failed: "failed";
|
|
177
|
+
skipped: "skipped";
|
|
178
|
+
pending: "pending";
|
|
179
|
+
todo: "todo";
|
|
180
|
+
disabled: "disabled";
|
|
181
|
+
}>;
|
|
182
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
183
|
+
location: z.ZodOptional<z.ZodObject<{
|
|
184
|
+
line: z.ZodNumber;
|
|
185
|
+
column: z.ZodNumber;
|
|
186
|
+
}, z.core.$loose>>;
|
|
187
|
+
failureMessages: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
188
|
+
eval: z.ZodOptional<z.ZodObject<{
|
|
189
|
+
scores: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
190
|
+
name: z.ZodOptional<z.ZodString>;
|
|
191
|
+
score: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
|
|
192
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
193
|
+
}, z.core.$strict>>>;
|
|
194
|
+
avgScore: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
|
|
195
|
+
output: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
196
|
+
thresholdFailed: z.ZodOptional<z.ZodBoolean>;
|
|
197
|
+
toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
198
|
+
id: z.ZodOptional<z.ZodString>;
|
|
199
|
+
name: z.ZodString;
|
|
200
|
+
arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
201
|
+
result: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
202
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
203
|
+
message: z.ZodString;
|
|
204
|
+
type: z.ZodOptional<z.ZodString>;
|
|
205
|
+
}, z.core.$catchall<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>>;
|
|
206
|
+
startedAt: z.ZodOptional<z.ZodString>;
|
|
207
|
+
finishedAt: z.ZodOptional<z.ZodString>;
|
|
208
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
209
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
210
|
+
}, z.core.$strict>>>;
|
|
211
|
+
}, z.core.$strict>>;
|
|
212
|
+
harness: z.ZodOptional<z.ZodObject<{
|
|
213
|
+
name: z.ZodOptional<z.ZodString>;
|
|
214
|
+
run: z.ZodOptional<z.ZodObject<{
|
|
215
|
+
output: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
216
|
+
session: z.ZodObject<{
|
|
217
|
+
messages: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
218
|
+
role: z.ZodEnum<{
|
|
219
|
+
system: "system";
|
|
220
|
+
user: "user";
|
|
221
|
+
assistant: "assistant";
|
|
222
|
+
tool: "tool";
|
|
223
|
+
}>;
|
|
224
|
+
content: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
225
|
+
toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
226
|
+
id: z.ZodOptional<z.ZodString>;
|
|
227
|
+
name: z.ZodString;
|
|
228
|
+
arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
229
|
+
result: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
230
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
231
|
+
message: z.ZodString;
|
|
232
|
+
type: z.ZodOptional<z.ZodString>;
|
|
233
|
+
}, z.core.$catchall<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>>;
|
|
234
|
+
startedAt: z.ZodOptional<z.ZodString>;
|
|
235
|
+
finishedAt: z.ZodOptional<z.ZodString>;
|
|
236
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
237
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
238
|
+
}, z.core.$strict>>>;
|
|
239
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
240
|
+
}, z.core.$strict>>>;
|
|
241
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
242
|
+
model: z.ZodOptional<z.ZodString>;
|
|
243
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
244
|
+
}, z.core.$strict>;
|
|
245
|
+
usage: z.ZodObject<{
|
|
246
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
247
|
+
model: z.ZodOptional<z.ZodString>;
|
|
248
|
+
inputTokens: z.ZodOptional<z.ZodNumber>;
|
|
249
|
+
outputTokens: z.ZodOptional<z.ZodNumber>;
|
|
250
|
+
reasoningTokens: z.ZodOptional<z.ZodNumber>;
|
|
251
|
+
totalTokens: z.ZodOptional<z.ZodNumber>;
|
|
252
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
253
|
+
retries: z.ZodOptional<z.ZodNumber>;
|
|
254
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
255
|
+
}, z.core.$strict>;
|
|
256
|
+
timings: z.ZodOptional<z.ZodObject<{
|
|
257
|
+
totalMs: z.ZodOptional<z.ZodNumber>;
|
|
258
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
259
|
+
}, z.core.$strict>>;
|
|
260
|
+
artifacts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
261
|
+
traces: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
262
|
+
id: z.ZodOptional<z.ZodString>;
|
|
263
|
+
name: z.ZodOptional<z.ZodString>;
|
|
264
|
+
startedAt: z.ZodOptional<z.ZodString>;
|
|
265
|
+
finishedAt: z.ZodOptional<z.ZodString>;
|
|
266
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
267
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
268
|
+
spans: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
269
|
+
id: z.ZodOptional<z.ZodString>;
|
|
270
|
+
traceId: z.ZodOptional<z.ZodString>;
|
|
271
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
272
|
+
name: z.ZodString;
|
|
273
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
274
|
+
custom: "custom";
|
|
275
|
+
model: "model";
|
|
276
|
+
tool: "tool";
|
|
277
|
+
run: "run";
|
|
278
|
+
agent: "agent";
|
|
279
|
+
guardrail: "guardrail";
|
|
280
|
+
handoff: "handoff";
|
|
281
|
+
}>>;
|
|
282
|
+
startedAt: z.ZodOptional<z.ZodString>;
|
|
283
|
+
finishedAt: z.ZodOptional<z.ZodString>;
|
|
284
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
285
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
286
|
+
error: "error";
|
|
287
|
+
ok: "ok";
|
|
288
|
+
}>>;
|
|
289
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
290
|
+
message: z.ZodString;
|
|
291
|
+
type: z.ZodOptional<z.ZodString>;
|
|
292
|
+
}, z.core.$catchall<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>>;
|
|
293
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
294
|
+
events: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
295
|
+
name: z.ZodString;
|
|
296
|
+
timestamp: z.ZodOptional<z.ZodString>;
|
|
297
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
298
|
+
}, z.core.$strict>>>;
|
|
299
|
+
}, z.core.$strict>>>;
|
|
300
|
+
}, z.core.$strict>>>;
|
|
301
|
+
errors: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>>;
|
|
302
|
+
}, z.core.$strict>>;
|
|
303
|
+
}, z.core.$strict>>;
|
|
304
|
+
}, z.core.$strict>;
|
|
305
|
+
/** One eval or harness-backed test case collected from Vitest JSON. */
|
|
306
|
+
type ReportCase = z.infer<typeof ReportCaseSchema>;
|
|
307
|
+
/** Full multi-run report workspace consumed by rich report UIs. */
|
|
308
|
+
declare const ReportWorkspaceSchema: z.ZodObject<{
|
|
309
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
310
|
+
runs: z.ZodArray<z.ZodObject<{
|
|
311
|
+
id: z.ZodString;
|
|
312
|
+
source: z.ZodOptional<z.ZodString>;
|
|
313
|
+
status: z.ZodEnum<{
|
|
314
|
+
passed: "passed";
|
|
315
|
+
failed: "failed";
|
|
316
|
+
}>;
|
|
317
|
+
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
318
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
319
|
+
totals: z.ZodObject<{
|
|
320
|
+
total: z.ZodNumber;
|
|
321
|
+
passed: z.ZodNumber;
|
|
322
|
+
failed: z.ZodNumber;
|
|
323
|
+
skipped: z.ZodNumber;
|
|
324
|
+
evalTotal: z.ZodNumber;
|
|
325
|
+
evalPassed: z.ZodNumber;
|
|
326
|
+
evalFailed: z.ZodNumber;
|
|
327
|
+
}, z.core.$strip>;
|
|
328
|
+
}, z.core.$strict>>;
|
|
329
|
+
cases: z.ZodArray<z.ZodObject<{
|
|
330
|
+
id: z.ZodString;
|
|
331
|
+
runId: z.ZodString;
|
|
332
|
+
source: z.ZodOptional<z.ZodString>;
|
|
333
|
+
file: z.ZodString;
|
|
334
|
+
displayFile: z.ZodString;
|
|
335
|
+
title: z.ZodString;
|
|
336
|
+
fullName: z.ZodString;
|
|
337
|
+
ancestorTitles: z.ZodArray<z.ZodString>;
|
|
338
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
339
|
+
displayName: z.ZodString;
|
|
340
|
+
status: z.ZodEnum<{
|
|
341
|
+
passed: "passed";
|
|
342
|
+
failed: "failed";
|
|
343
|
+
skipped: "skipped";
|
|
344
|
+
pending: "pending";
|
|
345
|
+
todo: "todo";
|
|
346
|
+
disabled: "disabled";
|
|
347
|
+
}>;
|
|
348
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
349
|
+
location: z.ZodOptional<z.ZodObject<{
|
|
350
|
+
line: z.ZodNumber;
|
|
351
|
+
column: z.ZodNumber;
|
|
352
|
+
}, z.core.$loose>>;
|
|
353
|
+
failureMessages: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
354
|
+
eval: z.ZodOptional<z.ZodObject<{
|
|
355
|
+
scores: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
356
|
+
name: z.ZodOptional<z.ZodString>;
|
|
357
|
+
score: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
|
|
358
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
359
|
+
}, z.core.$strict>>>;
|
|
360
|
+
avgScore: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
|
|
361
|
+
output: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
362
|
+
thresholdFailed: z.ZodOptional<z.ZodBoolean>;
|
|
363
|
+
toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
364
|
+
id: z.ZodOptional<z.ZodString>;
|
|
365
|
+
name: z.ZodString;
|
|
366
|
+
arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
367
|
+
result: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
368
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
369
|
+
message: z.ZodString;
|
|
370
|
+
type: z.ZodOptional<z.ZodString>;
|
|
371
|
+
}, z.core.$catchall<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>>;
|
|
372
|
+
startedAt: z.ZodOptional<z.ZodString>;
|
|
373
|
+
finishedAt: z.ZodOptional<z.ZodString>;
|
|
374
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
375
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
376
|
+
}, z.core.$strict>>>;
|
|
377
|
+
}, z.core.$strict>>;
|
|
378
|
+
harness: z.ZodOptional<z.ZodObject<{
|
|
379
|
+
name: z.ZodOptional<z.ZodString>;
|
|
380
|
+
run: z.ZodOptional<z.ZodObject<{
|
|
381
|
+
output: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
382
|
+
session: z.ZodObject<{
|
|
383
|
+
messages: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
384
|
+
role: z.ZodEnum<{
|
|
385
|
+
system: "system";
|
|
386
|
+
user: "user";
|
|
387
|
+
assistant: "assistant";
|
|
388
|
+
tool: "tool";
|
|
389
|
+
}>;
|
|
390
|
+
content: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
391
|
+
toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
392
|
+
id: z.ZodOptional<z.ZodString>;
|
|
393
|
+
name: z.ZodString;
|
|
394
|
+
arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
395
|
+
result: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
|
|
396
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
397
|
+
message: z.ZodString;
|
|
398
|
+
type: z.ZodOptional<z.ZodString>;
|
|
399
|
+
}, z.core.$catchall<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>>;
|
|
400
|
+
startedAt: z.ZodOptional<z.ZodString>;
|
|
401
|
+
finishedAt: z.ZodOptional<z.ZodString>;
|
|
402
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
403
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
404
|
+
}, z.core.$strict>>>;
|
|
405
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
406
|
+
}, z.core.$strict>>>;
|
|
407
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
408
|
+
model: z.ZodOptional<z.ZodString>;
|
|
409
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
410
|
+
}, z.core.$strict>;
|
|
411
|
+
usage: z.ZodObject<{
|
|
412
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
413
|
+
model: z.ZodOptional<z.ZodString>;
|
|
414
|
+
inputTokens: z.ZodOptional<z.ZodNumber>;
|
|
415
|
+
outputTokens: z.ZodOptional<z.ZodNumber>;
|
|
416
|
+
reasoningTokens: z.ZodOptional<z.ZodNumber>;
|
|
417
|
+
totalTokens: z.ZodOptional<z.ZodNumber>;
|
|
418
|
+
toolCalls: z.ZodOptional<z.ZodNumber>;
|
|
419
|
+
retries: z.ZodOptional<z.ZodNumber>;
|
|
420
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
421
|
+
}, z.core.$strict>;
|
|
422
|
+
timings: z.ZodOptional<z.ZodObject<{
|
|
423
|
+
totalMs: z.ZodOptional<z.ZodNumber>;
|
|
424
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
425
|
+
}, z.core.$strict>>;
|
|
426
|
+
artifacts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
427
|
+
traces: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
428
|
+
id: z.ZodOptional<z.ZodString>;
|
|
429
|
+
name: z.ZodOptional<z.ZodString>;
|
|
430
|
+
startedAt: z.ZodOptional<z.ZodString>;
|
|
431
|
+
finishedAt: z.ZodOptional<z.ZodString>;
|
|
432
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
433
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
434
|
+
spans: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
435
|
+
id: z.ZodOptional<z.ZodString>;
|
|
436
|
+
traceId: z.ZodOptional<z.ZodString>;
|
|
437
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
438
|
+
name: z.ZodString;
|
|
439
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
440
|
+
custom: "custom";
|
|
441
|
+
model: "model";
|
|
442
|
+
tool: "tool";
|
|
443
|
+
run: "run";
|
|
444
|
+
agent: "agent";
|
|
445
|
+
guardrail: "guardrail";
|
|
446
|
+
handoff: "handoff";
|
|
447
|
+
}>>;
|
|
448
|
+
startedAt: z.ZodOptional<z.ZodString>;
|
|
449
|
+
finishedAt: z.ZodOptional<z.ZodString>;
|
|
450
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
451
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
452
|
+
error: "error";
|
|
453
|
+
ok: "ok";
|
|
454
|
+
}>>;
|
|
455
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
456
|
+
message: z.ZodString;
|
|
457
|
+
type: z.ZodOptional<z.ZodString>;
|
|
458
|
+
}, z.core.$catchall<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>>;
|
|
459
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
460
|
+
events: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
461
|
+
name: z.ZodString;
|
|
462
|
+
timestamp: z.ZodOptional<z.ZodString>;
|
|
463
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
|
|
464
|
+
}, z.core.$strict>>>;
|
|
465
|
+
}, z.core.$strict>>>;
|
|
466
|
+
}, z.core.$strict>>>;
|
|
467
|
+
errors: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>>;
|
|
468
|
+
}, z.core.$strict>>;
|
|
469
|
+
}, z.core.$strict>>;
|
|
470
|
+
}, z.core.$strict>>;
|
|
471
|
+
}, z.core.$strict>;
|
|
472
|
+
/** Full multi-run report workspace consumed by rich report UIs. */
|
|
473
|
+
type ReportWorkspace = z.infer<typeof ReportWorkspaceSchema>;
|
|
474
|
+
/** Input accepted when collecting one Vitest JSON report into a workspace. */
|
|
475
|
+
type ReportWorkspaceInput = VitestJsonReport | {
|
|
476
|
+
report: VitestJsonReport;
|
|
477
|
+
source?: string;
|
|
478
|
+
};
|
|
479
|
+
/** Options for collecting one or more Vitest JSON reports. */
|
|
480
|
+
type CollectReportWorkspaceOptions = {
|
|
481
|
+
/** Workspace prefix used to render source files as relative paths. */
|
|
482
|
+
workspace?: string;
|
|
483
|
+
};
|
|
484
|
+
/** Parses and validates an unknown value as a collected report workspace. */
|
|
485
|
+
declare function parseReportWorkspace(input: unknown): ReportWorkspace;
|
|
486
|
+
/** Collects eval and harness metadata from one or more Vitest JSON reports. */
|
|
487
|
+
declare function collectReportWorkspace(input: ReportWorkspaceInput | ReportWorkspaceInput[], options?: CollectReportWorkspaceOptions): ReportWorkspace;
|
|
488
|
+
|
|
489
|
+
export { type CollectReportWorkspaceOptions as C, type JsonValue as J, REPORT_WORKSPACE_SCHEMA_VERSION as R, VitestJsonAssertionSchema as V, JsonObjectSchema as a, JsonPrimitiveSchema as b, JsonValueSchema as c, type JsonPrimitive as d, VitestJsonFileSchema as e, VitestJsonLocationSchema as f, VitestJsonReportSchema as g, VitestJsonStatusSchema as h, type VitestJsonAssertion as i, type VitestJsonFile as j, type VitestJsonLocation as k, type VitestJsonReport as l, type VitestJsonStatus as m, collectReportWorkspace as n, parseReportWorkspace as o, parseVitestJsonReport as p, ReportCaseSchema as q, ReportRunSchema as r, ReportWorkspaceSchema as s, type ReportCase as t, type ReportRun as u, type ReportWorkspace as v, type ReportWorkspaceInput as w };
|