import * as z from "zod/mini"; import { createGeneration, type Generation, generationSchema, } from "./v3-generation.js"; export const CORE_SESSION_FAILED_CODE = "CORE_SESSION_FAILED"; const terminalMessageSchema = z .string() .check(z.minLength(1), z.maxLength(255)); export const eventCoreSessionFailedSchema = z.strictObject({ t: z.literal("getuserfeedback:event:error"), gen: generationSchema, code: z.literal(CORE_SESSION_FAILED_CODE), instanceId: z.optional(z.string().check(z.trim(), z.minLength(1))), details: z.strictObject({ message: terminalMessageSchema }), }); export type EventCoreSessionFailed = z.output< typeof eventCoreSessionFailedSchema >; export function buildEventCoreSessionFailed(input: { gen: number | Generation; message: string; }): EventCoreSessionFailed { return { t: "getuserfeedback:event:error", gen: createGeneration(input.gen), code: CORE_SESSION_FAILED_CODE, instanceId: undefined, details: { message: terminalMessageSchema.parse(input.message) }, }; }