feat(aiui): Routstr tops the model picker with the full live catalog

New 'Routstr (sats)' category sits FIRST in the model dropdown
(operator request 2026-08-14), listing every model the node's
/aiui/api/routstr/models proxy returns (432 live today) — the picker
panel now scrolls (max-h 70vh) instead of overflowing. Selecting a
Routstr model routes the turn through the node's paid completions
proxy, and the explicit choice wins even when AIUI runs embedded in
Archy — a selection, not a fallback. Node refusals (no budget armed,
budget spent, wallet can't fund) surface verbatim in chat.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
archipelago
2026-08-14 13:41:17 -04:00
co-authored by Claude Fable 5
parent e3bd340725
commit a4be1b4b7d
3 changed files with 123 additions and 9 deletions
@@ -93,10 +93,11 @@ describe('useAI', () => {
expect(activeModel.value).toBe('echo')
})
it('lists available providers with models', () => {
it('lists available providers with models, Routstr first', () => {
const { availableProviders } = useAI()
expect(availableProviders.value.length).toBe(3)
expect(availableProviders.value.length).toBe(4)
const ids = availableProviders.value.map(p => p.id)
expect(ids[0]).toBe('routstr')
expect(ids).toContain('claude')
expect(ids).toContain('openrouter')
expect(ids).toContain('mock')