export type GenerateProgressEvent = | { phase: "generate"; current: number; total: number } | { phase: "zip"; current: number; total: number } | { phase: "done"; id: string } | { phase: "error"; message: string }; export function isProgressEvent(value: unknown): value is GenerateProgressEvent { if (!value || typeof value !== "object") return false; const phase = (value as { phase?: unknown }).phase; return ( phase === "generate" || phase === "zip" || phase === "done" || phase === "error" ); }