From 9783de85f5473cb4bee6fdc8d21adb672c1478df Mon Sep 17 00:00:00 2001 From: duffyduck Date: Thu, 12 Mar 2026 18:57:18 +0100 Subject: [PATCH] fix windows and write credentials --- CHANGELOG.md | 10 +++--- diagnostic/index.html | 81 ++++++++++++++++++++++++++++++------------- diagnostic/server.js | 29 ++++++++++++++-- 3 files changed, 89 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d028c4b..b273a01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,10 +12,12 @@ Alle Änderungen am Projekt. Format: [Keep a Changelog](https://keepachangelog.c - Neuer Container `aria-diagnostic` mit Web-UI auf Port 3001 - Status-Karten: OpenClaw Gateway, RVS, Claude Proxy — jeweils mit Dot-Indicator - Claude Proxy Test: Prüft Erreichbarkeit (`/v1/models`) und sendet Test-Prompt an Claude — zeigt verfügbare Modelle als Tags + `DEFAULT_MODEL` Hinweis für docker-compose.yml -- Auth-Check: "Auth prüfen" Button zeigt Inhalt von `/root/.config/claude/` im Proxy-Container (Dateien + `.credentials.json`) — per Docker Exec API -- Claude Login via UI: "Login starten" Button führt `claude login` (mit `TERM=dumb NO_COLOR=1 CI=1`) im Proxy-Container aus, streamt Output live, ANSI-Codes werden gestrippt -- Credentials manuell einfügen: "Credentials einfügen" Button — JSON von einem eingeloggten Rechner (`cat ~/.config/claude/.credentials.json`) kopieren und direkt in den Container schreiben -- Docker Exec API: Generische `dockerExec()` + Streaming-Variante `dockerExecStreaming()` für Befehle in laufenden Containern (via Docker Socket) +- Auth-Check: "Auth prüfen" Button durchsucht alle bekannten Credential-Pfade im Proxy-Container (`/root/.config/claude/`, `/root/.claude/`, `/root/.claude/auth/`) rekursiv — zeigt gefundene Dateien und deren Inhalt +- Claude Login via UI: "Login starten" Button öffnet interaktives Terminal (xterm.js) in einem Modal-Overlay — führt `claude login` im Proxy-Container aus, volle TUI-Unterstützung (kein ANSI-Stripping mehr nötig) +- xterm.js Terminal: Bidirektionaler Stream über Docker Exec API mit `Tty: true` + HTTP Upgrade auf Raw-TCP-Socket — echtes interaktives Terminal im Browser +- UTF-8 Fix: Eingehende Daten werden als `Uint8Array` an xterm.write() übergeben (statt `atob()` → Latin-1 String, der Multi-Byte UTF-8 zerstört), ausgehende Daten über `TextEncoder` UTF-8-safe kodiert +- Credentials manuell einfügen: "Credentials einfügen" Button — JSON von einem eingeloggten Rechner kopieren und direkt in den Container schreiben (schreibt in beide mögliche Pfade: `.config/claude/` und `.claude/`) +- Docker Exec API: Generische `dockerExec()` (nicht-interaktiv, multiplexed stream) + `attachTerminal()` (interaktiv, Tty, raw TCP socket) für Befehle in laufenden Containern (via Docker Socket) - Chat-Test: Nachrichten direkt über Gateway oder via RVS senden - Tabbed Logs: Separate Tabs für Alle, Gateway, RVS, Proxy, Server — mit Zähler pro Tab - Autoscroll-Pause: Automatisch wenn hochgescrollt, "Nach unten" Button zum Fortsetzen diff --git a/diagnostic/index.html b/diagnostic/index.html index 53b8194..6aebdc0 100644 --- a/diagnostic/index.html +++ b/diagnostic/index.html @@ -69,6 +69,20 @@ .input-row { display: flex; gap: 6px; } .input-row input { flex: 1; background: #1E1E2E; border: 1px solid #333; border-radius: 6px; padding: 8px 12px; color: #E0E0F0; font-family: inherit; font-size: 13px; } + + /* Terminal Modal */ + .modal-overlay { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.85); + z-index:1000; justify-content:center; align-items:center; } + .modal-overlay.open { display:flex; } + .modal-box { background:#0D0D1A; border:1px solid #FFD60A44; border-radius:10px; width:90vw; max-width:860px; + max-height:90vh; display:flex; flex-direction:column; overflow:hidden; } + .modal-header { display:flex; justify-content:space-between; align-items:center; padding:10px 14px; + border-bottom:1px solid #1E1E2E; } + .modal-header h3 { font-size:14px; color:#FFD60A; margin:0; } + .modal-close { background:none; border:none; color:#888; font-size:20px; cursor:pointer; padding:0 6px; } + .modal-close:hover { color:#FF3B30; } + .modal-body { flex:1; padding:4px; min-height:400px; } + .modal-footer { padding:6px 14px; border-top:1px solid #1E1E2E; font-size:11px; color:#8888AA; } @@ -108,14 +122,8 @@
- - + + + + +