#!/bin/bash
# Wrapper script for daemon/worker to invoke claude -p with prompt from file
# Usage: run-claude.sh <prompt-file> <mcp-config-file> <max-turns> [settings-file] [channels]

PROMPT_FILE="$1"
MCP_CONFIG="$2"
MAX_TURNS="${3:-3}"
SETTINGS_FILE="$4"
CHANNELS="$5"
MODEL="$6"

if [ ! -f "$PROMPT_FILE" ]; then
  echo "Error: prompt file not found: $PROMPT_FILE" >&2
  exit 1
fi

PROMPT="$(cat "$PROMPT_FILE")"

# Build optional flags
EXTRA_FLAGS=""
if [ -n "$SETTINGS_FILE" ] && [ -f "$SETTINGS_FILE" ]; then
  EXTRA_FLAGS="$EXTRA_FLAGS --settings $SETTINGS_FILE"
fi
if [ -n "$CHANNELS" ]; then
  EXTRA_FLAGS="$EXTRA_FLAGS --dangerously-load-development-channels $CHANNELS"
fi
if [ -n "$MODEL" ]; then
  EXTRA_FLAGS="$EXTRA_FLAGS --model $MODEL"
fi

# Run claude, filter out "Reached max turns" error from stdout
OUTPUT=$(claude -p "$PROMPT" \
  --dangerously-skip-permissions \
  --max-turns "$MAX_TURNS" \
  --output-format text \
  --mcp-config "$MCP_CONFIG" \
  $EXTRA_FLAGS 2>/dev/null)

# Strip "Error: Reached max turns" line if present
echo "$OUTPUT" | grep -v "^Error: Reached max turns"

exit 0
