31 lines
912 B
TypeScript
31 lines
912 B
TypeScript
import { z } from "zod";
|
|
|
|
/** Session summary appended to data/metadata/sessions.jsonl after every run. */
|
|
export const SessionLog = z.object({
|
|
sessionId: z.string(),
|
|
command: z.string(),
|
|
modelId: z.string(),
|
|
stage: z.enum(["stage1", "stage2-judge", "benchmark"]),
|
|
promptVersion: z.string(),
|
|
startedAt: z.iso.datetime(),
|
|
endedAt: z.iso.datetime(),
|
|
durationSeconds: z.number(),
|
|
paragraphsTotal: z.number().int(),
|
|
paragraphsProcessed: z.number().int(),
|
|
paragraphsSkippedResume: z.number().int(),
|
|
paragraphsErrored: z.number().int(),
|
|
costUsd: z.number(),
|
|
reasoningTokensTotal: z.number().int(),
|
|
avgLatencyMs: z.number(),
|
|
p95LatencyMs: z.number(),
|
|
throughputPerMinute: z.number(),
|
|
concurrency: z.number().int(),
|
|
exitReason: z.enum([
|
|
"complete",
|
|
"interrupted",
|
|
"budget_exhausted",
|
|
"error_threshold",
|
|
]),
|
|
});
|
|
export type SessionLog = z.infer<typeof SessionLog>;
|