# ── Model ladders ────────────────────────────────────────────────────────────
# Named model-fallback ladders resolved by a `ladder: "<name>"` option on
# `llm_call`. A ladder lowers onto the first-class routing chain: each step is
# one transport attempt, and the loop advances to the NEXT step only on a
# transport-class failure (connection / timeout / 429 / 5xx / throttled-empty).
# Schema-validation failures never advance — they re-ask the same step's model.
#
# Steps are ordered cheapest/first to most-capable/last. `provider` is optional
# and inferred from the model id (or the call's base provider) when omitted.
# Model aliases (haiku / sonnet / opus, resolved via `[aliases]`) are allowed.
[]
= "frugal: cheap-first with frontier escalation"
= [
{ = "haiku", = "cheap" },
{ = "sonnet", = "mid" },
{ = "opus", = "frontier" },
]