diff --git a/.env.example b/.env.example index 3f3a523..0acc9f9 100644 --- a/.env.example +++ b/.env.example @@ -108,3 +108,9 @@ AGENT_BACKOFF_MAX=300 AGENT_LOG_GZIP_AFTER_HOURS=24 # Hoeveel dagen ge-gzipte logs bewaren voor we ze verwijderen. AGENT_LOG_DELETE_AFTER_DAYS=30 + +# Claude CLI --output-format. Default 'stream-json' streamt de volledige +# event-stream (tool-calls, berichten) live naar de run-log; 'text' geeft +# alleen Claude's eind-samenvatting (terser, maar geen live-meekijken). +# stream-json maakt de run-log JSONL — gebruik jq of een viewer. +AGENT_CLAUDE_OUTPUT_FORMAT=stream-json diff --git a/bin/run-one-job.ts b/bin/run-one-job.ts index cd0919c..8155fea 100644 --- a/bin/run-one-job.ts +++ b/bin/run-one-job.ts @@ -292,6 +292,13 @@ async function main(): Promise { // 7. Build CLI args. const promptText = getKindPromptText(ctx.kind).replace('$PAYLOAD_PATH', payloadPath) + // --output-format is configureerbaar via env. Default 'stream-json' geeft + // de volledige event-stream (elke tool-call, elk bericht) live in de + // run-log, i.p.v. alleen Claude's eind-samenvatting. stream-json vereist + // --verbose in print-mode. Zet AGENT_CLAUDE_OUTPUT_FORMAT=text terug voor + // de oude terse output. TOKEN_EXPIRED-detectie werkt ongewijzigd: de + // auth-error-strings staan ook binnen de JSON-events. + const outputFormat = process.env.AGENT_CLAUDE_OUTPUT_FORMAT ?? 'stream-json' const args: string[] = [ '-p', promptText, @@ -306,8 +313,9 @@ async function main(): Promise { '--add-dir', '/opt/agent', '--output-format', - 'text', + outputFormat, ] + if (outputFormat === 'stream-json') args.push('--verbose') if (effort) args.push('--effort', effort) const cwd = worktreePath ?? '/opt/agent'