import { formatModelRef } from "../../src/shared/model"; import { COMPACTION_OVERRIDE_ENTRY, type SessionModelOverride } from "./types"; export function normalizeSessionOverride(input: unknown): SessionModelOverride | null { if (!input || typeof input !== "object") return null; const mode = (input as any).mode; if (mode === "auto" || mode === "current") { return { mode }; } if (mode === "model" && typeof (input as any).reference === "string" && (input as any).reference.trim()) { return { mode: "model", reference: (input as any).reference.trim() }; } return null; } export function restoreSessionOverride(sessionManager: { getEntries(): any[] }): SessionModelOverride | null { const entries = sessionManager.getEntries(); for (let i = entries.length - 1; i >= 0; i--) { const entry = entries[i]; if (entry.type !== "custom" || entry.customType !== COMPACTION_OVERRIDE_ENTRY) continue; const override = normalizeSessionOverride(entry.data); if (override) return override; } return null; } export function describeSessionOverride(override: SessionModelOverride | null): string { if (!override || override.mode === "auto") return "auto"; if (override.mode === "current") return "current-model"; return override.reference; } export function describeEffectiveModel(model: unknown): string { const ref = formatModelRef(model); return ref || "(none)"; }