Das 64K-Output-Gate war global und trieb auto/mass:fast auf solar-pro4
(0,42 statt 0,27 $/1M), weil ling-3.0-flash mit 32768 Output-Token
durchfiel. Gemessen 09.09.: 1.415 Masse-Requests, 1.146 davon unter 100
Completion-Token — das Gate verfehlte dort seinen Zweck. Jetzt kann je
Schwelle-Profil minOutput gesetzt werden (Default 65536);
auto/mass:fast laeuft mit 32768, max_output unbekannt bleibt abgelehnt.
Dazu role/coder -> auto/coding:junior (ACL fuer persona-spark), damit
Code-Arbeit nicht ueber role/worker in die Masse faellt; der
engineer-Agent der Mac-opencode.json wechselt auf role/coder.
Refs #1283
Der Router verlaesst 42i/agents: die gemeinsame Modellauswahl wandert als
eigenstaendige Kopie nach src/ (die llmlite-Fassung bleibt dort fuer den
Tier-Updater). Referenz-Stellen zu LiteLLM-Durchreiche und Parallelbetrieb
korrigiert (entfallen mit der Abschaltung 2026-09-07).
Der Preisfinder waehlte bisher ueber EINE Zahl. Ein Modell kann generalistisch
gut aussehen und agentisch durchfallen -- gemini-3.8-flash hat Coding 76,3 und
Agentic 41,2 und traegt den Werkzeug-Rundlauf nicht.
- openrouter-auswahl: billigsterUeberSchwelle reicht minCoding/minAgentic an
klasseFiltern durch (nahm es bereits entgegen, wurde nur nie gefuettert)
- config: art "schwelle" hat jetzt index, coding und agentic, jede optional;
"fest" kennt ausweich
- resolver: Beschreibung nennt die geforderten Achsen
- server: ein festes Ziel weicht bei Upstream-Ausfall EINMAL auf den
konfigurierten Alias aus. Ohne das haengt mit dem lokalen Knoten jede
Titelzeile jedes Agenten, weil auto/mass ueberall als small_model haengt.
- acht Profile, Rollen darauf umgehaengt, 42i/marvin-2609:* bleiben als Namen
Aufgeloest (ohne Last-Probe, alle Ziele laufen bereits ueber bestehende
Aliasse): coding:junior und leader:junior -> glm-5.3-flash, coding:senior ->
grok-4.6:high, leader:senior -> glm-5.3:max (15,66 statt 26 gewichtet -- die
Regel findet etwas Billigeres als die Schaetzung im Ticket), mass:fast -> ling.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- openrouter/<id>[:effort] 1:1, alt/<id>[:effort] günstigste Alternative auf
Abruf (ohne Last-Probe, im Takt erneuert), role/<name> aus config.rollen
- Klasse: Intelligence, Coding, Agentic je >= 95 % der Referenz (relativ statt
3 Punkte), Kontext >= 90 %, billiger; Kandidaten auch ohne OpenRouter-Index,
wenn AA Stufen kennt (OpenRouter führt Intelligence nur für 53 Modelle)
- ACL-Muster mit *, /models mit allen Konto-Modellen je Namensraum und Stufe
- Rollen aus der LiteLLM-Zeit übernommen (Führung high, Rest medium)
Andreas 2026-09-05.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
billigsterUeberSchwelle in openrouter-auswahl, gemeinsamer klasseFiltern
mit dem Referenzmodus. Stufen jetzt als Schwelle: low 25/256k, medium
40/256k, high 47/500k, max 50/500k (Andreas 2026-09-05).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
OpenAI-kompatibler Reverse-Proxy in Bun: Client-Key -> ACL, Alias ->
Modell (alternative: günstigstes Modell derselben Klasse über
llmlite/openrouter-auswahl inkl. Effort-Achse; fest: lokale Upstreams,
TTS/STT, Embeddings), Usage/Kosten aus der OpenRouter-Antwort (auch im
Stream), JSONL + SQLite-Log, Tagesstatistik je Key. Altnamen der
LiteLLM-Zeit werden übersetzt. Kein 3456/stdcmpt, kein role/*, kein -auto
(Andreas 2026-09-05). Lokal verifiziert: Chat, Stream, ACL, Altname,
Kosten im Log. Parallelbetrieb auf :4001 geplant.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>