From 3e5021dbf0f2f3e888d7f14e4459201c9999204f Mon Sep 17 00:00:00 2001 From: Eddy Date: Mon, 13 Apr 2026 20:32:32 +0200 Subject: [PATCH] Fix: Bridge --verbose Flag + korrekte Event-Extraktion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - --verbose ist Pflicht für --output-format stream-json - total_cost_usd statt cost_usd für Kosten - usage.input_tokens/output_tokens + Cache-Info - Session-ID aus system.init Events - rate_limit_event ignorieren - allowedTools entfernt (Claude entscheidet selbst) Co-Authored-By: Claude Opus 4.6 (1M context) --- scripts/claude-bridge.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/scripts/claude-bridge.js b/scripts/claude-bridge.js index dc0ffb3..bb0d052 100644 --- a/scripts/claude-bridge.js +++ b/scripts/claude-bridge.js @@ -51,8 +51,7 @@ function spawnClaude(message, requestId) { const args = [ '-p', // Print-Modus (nicht interaktiv) '--output-format', 'stream-json', // Streaming JSON Events - '--allowedTools', 'Read', 'Glob', 'Grep', 'Bash', 'Edit', 'Write', - 'WebFetch', 'WebSearch', 'Agent', + '--verbose', // Pflicht für stream-json ]; // Bei Fortsetzung letzte Session verwenden @@ -147,11 +146,15 @@ function handleClaudeEvent(event, agentId, requestId, textState) { switch (type) { case 'system': - if (event.subtype === 'session_id' && event.session_id) { + if (event.session_id) { currentSessionId = event.session_id; } break; + case 'rate_limit_event': + // Ignorieren + break; + case 'assistant': // Vollständige Nachricht — Inhalt extrahieren if (event.message?.content) { @@ -204,13 +207,16 @@ function handleClaudeEvent(event, agentId, requestId, textState) { // Endergebnis mit Kosten sendEvent('result', { text: event.result || '', - cost: event.cost_usd || event.cost || 0, + cost: event.total_cost_usd || event.cost_usd || 0, tokens: { - input: event.input_tokens || 0, - output: event.output_tokens || 0, + input: event.usage?.input_tokens || 0, + output: event.usage?.output_tokens || 0, + cache_read: event.usage?.cache_read_input_tokens || 0, + cache_create: event.usage?.cache_creation_input_tokens || 0, }, session_id: event.session_id || currentSessionId, duration_ms: event.duration_ms || 0, + num_turns: event.num_turns || 0, }); // Session-ID für Fortsetzung merken