{# SETTINGS · Providers & Models (R4b, READ-ONLY dynamic catalog). A live, grouped catalog of every model each provider offers. OpenRouter's public list (no auth) is ALWAYS fetched — it's the richest source AND the cross-reference that backfills pricing for the key-only providers. Providers whose API key is set in System (Anthropic / OpenAI / Fireworks) are live-fetched + merged. The catalog is cached ~15 min server-side (app.providers.get_catalog); a network failure degrades to cached/empty + a note (never a crash). This tab is READ-ONLY in legacy mode. Provider keys are managed in the Providers surface when it is enabled for this edition. Context: catalog : view model from app.providers.view_catalog(): {groups:[{provider,label,count,configured,note,brand_svg,rows:[...]}], total, configured_count, notes:[...], age_human, from_cache, openrouter_count} where each row is {id, display_name, type, reasoning, has_reasoning, price_in, price_out, window, max_output, source, source_tag:{label,css}, deprecated} selected_key : current project key (kept on the refresh URL) #}
| Model | Type | Reasoning | In / Mtok | Out / Mtok | Context | Source |
|---|---|---|---|---|---|---|
| {{ m.display_name }} {{ m.id }} | {{ m.type }} | {% if m.has_reasoning %} {{ m.reasoning }} {% else %} — {% endif %} | {{ m.price_in }} | {{ m.price_out }} | {{ m.window }} | {{ m.source_tag.label }} |
Pricing & reasoning gaps for key-only providers are backfilled from OpenRouter's public catalog ({{ catalog.openrouter_count }} models) and tagged live + suppl. / supplement. Live on load, cached ~15 min.