#!/bin/sh
set -e

CONFIG_DIR="$HOME/.open-claudia"
ENV_FILE="$CONFIG_DIR/.env"

mkdir -p "$CONFIG_DIR"

# If .env doesn't exist and a channel token is set, auto-configure.
# CHANNELS env selects which channels to enable; defaults to telegram for
# backwards compat with v1 installs.
if [ ! -f "$ENV_FILE" ] && { [ -n "$TELEGRAM_BOT_TOKEN" ] || [ -n "$KAZEE_BOT_TOKEN" ]; }; then
  echo "Auto-configuring from environment variables..."

  if [ -z "$CHANNELS" ]; then
    if [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$KAZEE_BOT_TOKEN" ]; then
      CHANNELS="telegram,kazee"
    elif [ -n "$KAZEE_BOT_TOKEN" ]; then
      CHANNELS="kazee"
    else
      CHANNELS="telegram"
    fi
  fi

  cat > "$ENV_FILE" <<ENVEOF
CHANNELS=${CHANNELS}
TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-}
KAZEE_URL=${KAZEE_URL:-}
KAZEE_BOT_TOKEN=${KAZEE_BOT_TOKEN:-}
KAZEE_BOT_USER_ID=${KAZEE_BOT_USER_ID:-}
KAZEE_OWNER_USER_ID=${KAZEE_OWNER_USER_ID:-}
WORKSPACE=${WORKSPACE:-$HOME/Workspace}
CLAUDE_PATH=${CLAUDE_PATH:-claude}
SOUL_FILE=$CONFIG_DIR/soul.md
CRONS_FILE=$CONFIG_DIR/crons.json
VAULT_FILE=$CONFIG_DIR/vault.enc
AUTH_FILE=$CONFIG_DIR/auth.json
ONBOARDED=true
WEB_UI=${WEB_UI:-true}
WEB_PORT=${WEB_PORT:-8080}
ENVEOF

  # Create workspace directory
  mkdir -p "${WORKSPACE:-$HOME/Workspace}"

  # Create default soul
  if [ ! -f "$CONFIG_DIR/soul.md" ]; then
    cat > "$CONFIG_DIR/soul.md" <<'SOUL'
You are a helpful AI coding assistant.
Keep responses concise — this is a mobile screen.
Act on screenshots, fix bugs, implement designs.
SOUL
  fi

  # Create empty files if missing
  [ -f "$CONFIG_DIR/crons.json" ] || echo "[]" > "$CONFIG_DIR/crons.json"
  [ -f "$CONFIG_DIR/auth.json" ] || echo '{"authorized":[],"pending":[]}' > "$CONFIG_DIR/auth.json"

  echo "Configuration written to $ENV_FILE"
fi

# Execute the main command
exec "$@"
