ParthKulshreshtha's picture
feat: per-episode caps, graceful stream errors, multi-model cached runs, Electronics hybrid judge, multi-stage Docker build (repo e4b5ac6)
bae32d1 verified
Raw
History Blame Contribute Delete
1.25 kB
"""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]