{# Plan 61/2b W2 — "Aliases" tab body of /admin/llm. Lifted from `admin/pages/llm_aliases.html` body. #} {% from 'admin/components/ui.html' import card, input, textarea, modal, empty_state, tooltip %}

Aliases

Named tier slots used by the resolver. Agents request a model as alias:<name>; the gateway picks a concrete model from the alias's tier — explicit fallback_order first, then cheapest in tier.

{% call card() %}
Name Tier Fallback order {{ tooltip('Order in which providers are tried. First success wins; failures auto-fall-through.') }} Resolves to Description Actions
Loading…
{{ empty_state( "No aliases yet", 'Create one — agents will then call `alias:` and the gateway picks a model from the alias tier.', icon="bookmark" ) }}
{% endcall %}
{% call modal('showCreate || editing', 'cancel()', width='max-w-xl') %}

{{ input("name", label="Name", placeholder="chat, classifier, vision_chat, …", attrs='x-model="form.name" :disabled="editing"') }}

Used by agents as alias:<name>. Lowercase, alnum + underscore.

Resolver tries these in order; missing entries are silently skipped. Empty list = cheapest in tier.

{{ input("description", label="Description", placeholder="(optional) what this alias is used for", attrs='x-model="form.description"') }}
Preview ·
{% endcall %}
{% call modal('deleteTarget !== null', 'deleteTarget = null', width='max-w-md') %}

Delete alias?

will be removed. Agents requesting this alias will receive a 404 from the resolver.

{% endcall %}