#!/usr/bin/env bash
# ==============================================================================
# ARGON MCP RUNNER - Universal 1-Line Installer
# Usage: curl -fsSL https://hydrablack.com/install.sh | bash -s -- [options]
# ==============================================================================

set -euo pipefail

BOLD='\033[1m'
GREEN='\033[32m'
CYAN='\033[36m'
YELLOW='\033[33m'
RED='\033[31m'
NC='\033[0m'

echo -e "${CYAN}"
cat << "EOF"
   █████╗ ██████╗  ██████╗  ██████╗ ███╗   ██╗
  ██╔══██╗██╔══██╗██╔════╝ ██╔═══██╗████╗  ██║
  ███████║██████╔╝██║  ███╗██║   ██║██╔██╗ ██║
  ██╔══██║██╔══██╗██║   ██║██║   ██║██║╚██╗██║
  ██║  ██║██║  ██║╚██████╔╝╚██████╔╝██║ ╚████║
  ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝  ╚═════╝ ╚═╝  ╚═══╝
EOF
echo -e "${NC}${BOLD}Instalador Universal de Argon MCP Runner (BYOH)${NC}\n"

# 1. Detect OS & Architecture
OS="$(uname -s)"
ARCH="$(uname -m)"

echo -e "➔ Detectando sistema operativo: ${BOLD}$OS ($ARCH)${NC}"

# 2. Check Node.js
if ! command -v node >/dev/null 2>&1; then
  echo -e "${RED}[ERROR] Node.js no está instalado.${NC}"
  echo "Por favor instala Node.js (v18+) desde https://nodejs.org antes de continuar."
  exit 1
fi

NODE_VER="$(node -v)"
echo -e "➔ Node.js detectado: ${GREEN}$NODE_VER${NC}"

# 3. Create install dir
INSTALL_DIR="$HOME/.argon-mcp"
mkdir -p "$INSTALL_DIR/bin"

# 4. Copy / Download runner
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd || echo "")"
if [ -n "$SCRIPT_DIR" ] && [ -f "$SCRIPT_DIR/bin/argon-runner.js" ]; then
  cp -f "$SCRIPT_DIR/bin/argon-runner.js" "$INSTALL_DIR/bin/argon-runner"
elif [ -f "$(pwd)/runner/bin/argon-runner.js" ]; then
  cp -f "$(pwd)/runner/bin/argon-runner.js" "$INSTALL_DIR/bin/argon-runner"
elif [ -f "$(pwd)/bin/argon-runner.js" ]; then
  cp -f "$(pwd)/bin/argon-runner.js" "$INSTALL_DIR/bin/argon-runner"
else
  echo -e "➔ Descargando última versión de argon-runner..."
  curl -fsSL "https://hydrablack.com/download/argon-runner.js" -o "$INSTALL_DIR/bin/argon-runner"
fi
chmod +x "$INSTALL_DIR/bin/argon-runner"

# 5. Add to PATH if not present
if [[ ":$PATH:" != *":$INSTALL_DIR/bin:"* ]]; then
  SHELL_PROFILE="$HOME/.bashrc"
  if [[ "${SHELL:-}" == *"zsh"* ]]; then
    SHELL_PROFILE="$HOME/.zshrc"
  fi
  if ! grep -q '.argon-mcp/bin' "$SHELL_PROFILE" 2>/dev/null; then
    echo "export PATH=\"\$HOME/.argon-mcp/bin:\$PATH\"" >> "$SHELL_PROFILE"
    echo -e "➔ Añadido al PATH en ${BOLD}$SHELL_PROFILE${NC}"
  fi
fi

echo -e "\n${GREEN}${BOLD}✔ ¡Instalación completada con éxito!${NC}\n"
echo -e "Para iniciar tu agente en cualquier proyecto:"
echo -e "  ${BOLD}cd /ruta/a/tu/proyecto${NC}"
echo -e "  ${BOLD}argon-runner start${NC}\n"
echo -e "Tu URL pública y segura para conectar con Gemini Web y Antigravity es:"
echo -e "  ${CYAN}${BOLD}https://hydrablack.com${NC}\n"
