import type { LoopStateV1 } from "./domain.js"; export const LOOP_STATE_ENTRY = "loop-state"; export interface RestoredLoop { state?: LoopStateV1; unknownVersion?: number; } export function restoreLoop(entries: readonly unknown[]): RestoredLoop { for (let i = entries.length - 1; i >= 0; i--) { const entry = entries[i] as { type?: string; customType?: string; data?: unknown }; if (entry?.type !== "custom" || entry.customType !== LOOP_STATE_ENTRY) continue; const data = entry.data as { version?: unknown } | undefined; if (!data || typeof data.version !== "number") return { unknownVersion: -1 }; if (data.version !== 1) return { unknownVersion: data.version }; return { state: structuredClone(data) as LoopStateV1 }; } return {}; } export function snapshot(state: LoopStateV1): LoopStateV1 { return structuredClone(state); }