"""Registry of models approved for recorded cached runs, in dropdown order.""" from __future__ import annotations from dataclasses import dataclass @dataclass(frozen=True, slots=True) class CachedModel: slug: str provider_model_id: str label: str # Order matters: newest models first, the original baseline last. The UI dropdown # and the scenario ordering both follow this sequence. CACHED_MODEL_ORDER: tuple[CachedModel, ...] = ( CachedModel("gpt-5.6-sol", "openai/gpt-5.6-sol", "GPT-5.6 Sol"), CachedModel("gpt-5.6-terra", "openai/gpt-5.6-terra", "GPT-5.6 Terra"), CachedModel("gpt-5.6-luna", "openai/gpt-5.6-luna", "GPT-5.6 Luna"), CachedModel("claude-fable-5", "anthropic/claude-fable-5", "Claude Fable 5"), CachedModel("claude-sonnet-5", "anthropic/claude-sonnet-5", "Claude Sonnet 5"), CachedModel("qwen3-32b", "qwen/qwen3-32b", "Qwen3 32B"), ) BASELINE_MODEL_SLUG = "qwen3-32b" CACHED_MODEL_BY_SLUG: dict[str, CachedModel] = { model.slug: model for model in CACHED_MODEL_ORDER } def ordered_slugs(available: set[str]) -> list[str]: """Return the registry-ordered subset of available slugs, fail-closed.""" return [model.slug for model in CACHED_MODEL_ORDER if model.slug in available]