feat(diagnostic): Sprachmodell per Tier-Dropdown waehlen (Opus/Sonnet/Haiku)
ARIA laeuft ueber das Claude-Max-Abo via CLI — waehlbar ist der Tier, nicht eine feste Modellversion (die CLI nimmt automatisch das aktuelle Modell des Tiers). Kein API-Key → keine echte Anthropic-Models-API; daher kuratierte Liste. - proxy routes.js handleModels: kuratierte /v1/models mit tier/display_name/ description (ids bleiben MODEL_MAP-kompatibel: claude-sonnet-4/opus-4/haiku-4). - diagnostic server.js: neuer GET /api/models-list — holt die Liste vom Proxy (Frontend erreicht den Proxy nicht direkt). - Frontend: Dropdown statt Freitext + „↻ Aktualisieren"-Button; markiert das aktive brainModel (get_model), zeigt Beschreibung, „Setzen" schreibt brainModel und weist auf Brain-Neustart hin. Freitext-Override bleibt unter „Erweitert". Liste wird bei WS-Connect automatisch geladen. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+18
-12
@@ -453,26 +453,32 @@ async function handleNonStreamingResponse(res, subprocess, cliInput, requestId)
|
||||
* Returns available models
|
||||
*/
|
||||
export function handleModels(_req, res) {
|
||||
// ARIA laeuft ueber das Claude-Max-Abo via CLI — waehlbar ist der TIER
|
||||
// (opus/sonnet/haiku), nicht eine feste Modellversion. Die CLI loest den
|
||||
// Alias auf das AKTUELLE Modell des Tiers auf. Die id-Strings muessen von
|
||||
// openai-to-cli.js extractModel() erkannt werden (MODEL_MAP). display_name/
|
||||
// tier/description sind ARIA-Zusatzfelder fuers Diagnostic-Dropdown.
|
||||
const created = Math.floor(Date.now() / 1000);
|
||||
res.json({
|
||||
object: "list",
|
||||
data: [
|
||||
{
|
||||
id: "claude-opus-4",
|
||||
object: "model",
|
||||
owned_by: "anthropic",
|
||||
created: Math.floor(Date.now() / 1000),
|
||||
id: "claude-sonnet-4", object: "model", owned_by: "anthropic", created,
|
||||
tier: "sonnet",
|
||||
display_name: "Sonnet (aktuell: Sonnet 5)",
|
||||
description: "Schnell & gut — Standard fuer den Alltag.",
|
||||
},
|
||||
{
|
||||
id: "claude-sonnet-4",
|
||||
object: "model",
|
||||
owned_by: "anthropic",
|
||||
created: Math.floor(Date.now() / 1000),
|
||||
id: "claude-opus-4", object: "model", owned_by: "anthropic", created,
|
||||
tier: "opus",
|
||||
display_name: "Opus (aktuell: Opus 4.8)",
|
||||
description: "Langsamer, aber am schlausten — fuer schwere/lange Aufgaben.",
|
||||
},
|
||||
{
|
||||
id: "claude-haiku-4",
|
||||
object: "model",
|
||||
owned_by: "anthropic",
|
||||
created: Math.floor(Date.now() / 1000),
|
||||
id: "claude-haiku-4", object: "model", owned_by: "anthropic", created,
|
||||
tier: "haiku",
|
||||
display_name: "Haiku (aktuell: Haiku 4.5)",
|
||||
description: "Sehr schnell & guenstig, kleinerer Kontext — fuer einfache Tasks.",
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user