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:
@@ -1625,6 +1625,28 @@ const server = http.createServer((req, res) => {
|
||||
res.end(JSON.stringify({ ok: false, error: err.message }));
|
||||
}
|
||||
return;
|
||||
} else if (req.url === "/api/models-list" && req.method === "GET") {
|
||||
// Kuratierte Model-Liste vom Proxy (/v1/models) — Tier-Auswahl fuers
|
||||
// Sprachmodell-Dropdown. ARIA laeuft ueber das Max-Abo/CLI, waehlbar ist
|
||||
// der Tier (opus/sonnet/haiku), keine feste Version.
|
||||
(async () => {
|
||||
try {
|
||||
const r = await fetch(`${PROXY_URL}/v1/models`);
|
||||
const d = await r.json();
|
||||
const models = (d.data || []).map(m => ({
|
||||
id: m.id,
|
||||
tier: m.tier || m.id,
|
||||
displayName: m.display_name || m.id,
|
||||
description: m.description || "",
|
||||
}));
|
||||
res.writeHead(200, { "Content-Type": "application/json" });
|
||||
res.end(JSON.stringify({ ok: true, models }));
|
||||
} catch (err) {
|
||||
res.writeHead(502, { "Content-Type": "application/json" });
|
||||
res.end(JSON.stringify({ ok: false, error: String(err && err.message || err) }));
|
||||
}
|
||||
})();
|
||||
return;
|
||||
} else if (req.url === "/api/files-list" && req.method === "GET") {
|
||||
// Liste alle Dateien in /shared/uploads/ — die kommen entweder vom User
|
||||
// (Upload aus App/Diagnostic) oder von ARIA (aria_<name>.<ext> Pattern).
|
||||
|
||||
Reference in New Issue
Block a user