#!/bin/bash
set -e

ENV_FILE=/opt/bridgestack/opensource-agent/.env
SERVICE=bridgestack-opensource

# Create work directory
mkdir -p /opt/bridgestack/opensource-agent/workspaces

# Install dependencies if missing
if ! command -v claude &>/dev/null; then
    echo "Installing Claude CLI..."
    curl -fsSL https://claude.ai/install.sh | bash
    if [ -f "$HOME/.local/bin/claude" ] && [ ! -f /usr/local/bin/claude ]; then
        ln -sf "$HOME/.local/bin/claude" /usr/local/bin/claude
    fi
fi
if ! command -v gh &>/dev/null; then
    echo "Installing GitHub CLI..."
    curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg 2>/dev/null
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list
    apt-get update -qq && apt-get install -y gh
fi

if [ -f "$ENV_FILE" ]; then
    echo "Existing configuration found at $ENV_FILE — keeping it."
else
    echo ""
    echo "=== Bridgestack Opensource Agent Configuration ==="
    echo ""

    read -p "Anthropic API Key: " ANTHROPIC_API_KEY
    read -p "Agent API Key: " AGENT_API_KEY
    read -p "Projects API URL [https://projects.bridgestack.systems]: " PROJECTS_API_URL
    PROJECTS_API_URL=${PROJECTS_API_URL:-https://projects.bridgestack.systems}
    read -p "GitHub Token: " GITHUB_TOKEN
    read -p "Sentry DSN (optional, press Enter to skip): " SENTRY_DSN

    cat > "$ENV_FILE" << ENVEOF
ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY
AGENT_API_KEY=$AGENT_API_KEY
PROJECTS_API_URL=$PROJECTS_API_URL
GITHUB_TOKEN=$GITHUB_TOKEN
SENTRY_DSN=$SENTRY_DSN
WS_URL=wss://projects.bridgestack.systems/ws/agent
ENVEOF

    chmod 600 "$ENV_FILE"

    echo ""
    echo "=== Configuration Summary ==="
    echo "  ANTHROPIC_API_KEY=*****${ANTHROPIC_API_KEY: -4}"
    echo "  AGENT_API_KEY=*****${AGENT_API_KEY: -4}"
    echo "  PROJECTS_API_URL=$PROJECTS_API_URL"
    echo "  GITHUB_TOKEN=*****${GITHUB_TOKEN: -4}"
    echo "  SENTRY_DSN=${SENTRY_DSN:-<not set>}"
    echo ""
    echo "Config written to $ENV_FILE"
fi

chown -R nayana:nayana /opt/bridgestack/opensource-agent/

systemctl daemon-reload
systemctl enable ${SERVICE}.service

if systemctl is-active --quiet ${SERVICE}.service; then
    systemctl restart ${SERVICE}.service
    echo "${SERVICE} restarted."
else
    systemctl start ${SERVICE}.service
    echo "${SERVICE} started."
fi

echo "Logs: journalctl -u ${SERVICE} -f"
