#!/usr/bin/env bash
# Install superpowers plugin for Claude Code in Docker
set -euo pipefail

PLUGIN_DIR="/home/node/.claude/plugins/superpowers"

# Skip if already installed
if [ -d "$PLUGIN_DIR" ] && [ -f "$PLUGIN_DIR/package.json" ]; then
    echo "Superpowers already installed, checking for updates..."
    cd "$PLUGIN_DIR"
    git pull --ff-only 2>/dev/null || echo "Update skipped (offline or conflict)"
    exit 0
fi

echo "Installing superpowers..."
mkdir -p "$(dirname "$PLUGIN_DIR")"
git clone --depth 1 https://github.com/obra/superpowers.git "$PLUGIN_DIR"

# Ensure settings.json exists and merge hooks
SETTINGS_FILE="/home/node/.claude/settings.json"
mkdir -p "$(dirname "$SETTINGS_FILE")"

if [ ! -f "$SETTINGS_FILE" ]; then
    echo '{}' > "$SETTINGS_FILE"
fi

# Add hooks configuration using jq
# The SessionStart hook injects superpowers context at session start
HOOKS_JSON=$(cat <<'HOOKEOF'
{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup|clear|compact",
        "hooks": [
          {
            "type": "command",
            "command": "/home/node/.claude/plugins/superpowers/hooks/run-hook.cmd session-start",
            "async": false
          }
        ]
      }
    ]
  }
}
HOOKEOF
)

# Merge hooks into settings.json
if command -v jq &>/dev/null; then
    MERGED=$(jq --argjson hooks "$HOOKS_JSON" '. * $hooks' "$SETTINGS_FILE")
    echo "$MERGED" > "$SETTINGS_FILE"
else
    # Fallback: if no jq, write hooks config directly if not already present
    if ! grep -q "SessionStart" "$SETTINGS_FILE" 2>/dev/null; then
        cat > "$SETTINGS_FILE" <<'EOF'
{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup|clear|compact",
        "hooks": [
          {
            "type": "command",
            "command": "/home/node/.claude/plugins/superpowers/hooks/run-hook.cmd session-start",
            "async": false
          }
        ]
      }
    ]
  }
}
EOF
    fi
fi

# Set correct ownership
chown -R node:node "$PLUGIN_DIR"
chown node:node "$SETTINGS_FILE"

echo "Superpowers installed successfully!"
