#!/usr/bin/env bash
# install.sh – Bootstrap CyberBrain26 na čistém Linux Mint
# Použití: bash scripts/install.sh
# Předpoklady: Python 3.10+, git, curl

set -euo pipefail

PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/.."
USER_HOME="$HOME"
BASHRC="$USER_HOME/.bashrc"

echo "╔══════════════════════════════════════╗"
echo "║   CyberBrain26 – Bootstrap Install   ║"
echo "╚══════════════════════════════════════╝"
echo ""
echo "📁 Projekt: $PROJECT_DIR"
echo ""

# 1. Systémové závislosti
echo "[1/6] 📦 Kontrola systémových závislostí..."
for pkg in python3 python3-pip python3-venv git curl; do
  if ! command -v "$pkg" &>/dev/null && ! dpkg -l "$pkg" &>/dev/null 2>&1; then
    echo "  ⚠️  Chybí: $pkg – instaluji..."
    sudo apt-get install -y "$pkg"
  else
    echo "  ✅ $pkg OK"
  fi
done

# 2. Python venv pro Open Interpreter
echo ""
echo "[2/6] 🐍 Nastavuji Python venv pro Open Interpreter..."
OI_VENV="$PROJECT_DIR/venv-oi"
if [ ! -d "$OI_VENV" ]; then
  python3 -m venv "$OI_VENV"
  echo "  ✅ Venv vytvořen: $OI_VENV"
else
  echo "  ✅ Venv již existuje: $OI_VENV"
fi

"$OI_VENV/bin/pip" install --upgrade pip -q
"$OI_VENV/bin/pip" install open-interpreter chromadb sentence-transformers -q
echo "  ✅ Open Interpreter + ChromaDB + sentence-transformers nainstalovány"

# 3. Python venv pro LiteLLM proxy
echo ""
echo "[3/6] 🔀 Nastavuji Python venv pro LiteLLM proxy..."
LITELLM_VENV="$PROJECT_DIR/venv-litellm"
if [ ! -d "$LITELLM_VENV" ]; then
  python3 -m venv "$LITELLM_VENV"
  echo "  ✅ Venv vytvořen: $LITELLM_VENV"
else
  echo "  ✅ Venv již existuje: $LITELLM_VENV"
fi

"$LITELLM_VENV/bin/pip" install --upgrade pip -q
"$LITELLM_VENV/bin/pip" install litellm[proxy] -q
echo "  ✅ LiteLLM proxy nainstalován"

# 4. Adresářová struktura
echo ""
echo "[4/6] 📂 Vytvářím adresářovou strukturu..."
for dir in workspace logs backups memory config; do
  mkdir -p "$PROJECT_DIR/$dir"
  echo "  ✅ $dir/"
done

touch "$PROJECT_DIR/logs/.gitkeep"
touch "$PROJECT_DIR/backups/.gitkeep"

# 5. .env soubor (pokud neexistuje)
echo ""
echo "[5/6] 🔑 Kontroluji .env..."
ENV_FILE="$PROJECT_DIR/.env"
if [ ! -f "$ENV_FILE" ]; then
  cat > "$ENV_FILE" << 'EOF'
# CyberBrain26 – API klíče
# TENTO SOUBOR NIKDY NECOMMITUJ DO GITU!

GEMINI_API_KEY=
MISTRAL_API_KEY=
GROQ_API_KEY=
CEREBRAS_API_KEY=
OPENROUTER_API_KEY=

# LiteLLM proxy
LITELLM_MASTER_KEY=sk-cb26-local
LITELLM_PORT=4000
EOF
  echo "  ✅ .env vytvořen – vyplň API klíče v: $ENV_FILE"
else
  echo "  ✅ .env již existuje"
fi

# 6. Bash aliasy
echo ""
echo "[6/6] 🔧 Nastavuji bash aliasy..."

# Funkce pro přidání aliasu (nevkládá duplicitně)
add_alias() {
  local alias_name="$1"
  local alias_cmd="$2"
  if ! grep -q "alias $alias_name=" "$BASHRC" 2>/dev/null; then
    echo "alias $alias_name='$alias_cmd'" >> "$BASHRC"
    echo "  ✅ Přidán alias: $alias_name"
  else
    echo "  ✅ Alias již existuje: $alias_name"
  fi
}

add_alias "ai-proxy" "source $LITELLM_VENV/bin/activate && litellm --config $PROJECT_DIR/litellm-proxy/config.yaml"
add_alias "safe-oi" "source $OI_VENV/bin/activate && bash $PROJECT_DIR/scripts/safe-oi"
add_alias "full-oi" "source $OI_VENV/bin/activate && interpreter --api-base http://localhost:4000"
add_alias "oi-mistral" "source $OI_VENV/bin/activate && interpreter --api-base http://localhost:4000 --model mistral/mistral-large-latest"
add_alias "oi-groq" "source $OI_VENV/bin/activate && interpreter --api-base http://localhost:4000 --model groq/llama3-70b-8192"
add_alias "oi-cerebras" "source $OI_VENV/bin/activate && interpreter --api-base http://localhost:4000 --model cerebras/llama3.1-70b"
add_alias "oi-openrouter" "source $OI_VENV/bin/activate && interpreter --api-base http://localhost:4000 --model openrouter/anthropic/claude-3.5-sonnet"

echo ""
echo "╔══════════════════════════════════════╗"
echo "║   ✅ Instalace dokončena!             ║"
echo "╚══════════════════════════════════════╝"
echo ""
echo "Další kroky:"
echo "  1. Vyplň API klíče:  nano $ENV_FILE"
echo "  2. Zkopíruj config:  cp $PROJECT_DIR/config/litellm-proxy/config.example.yaml $PROJECT_DIR/litellm-proxy/config.yaml"
echo "  3. Restartuj shell:  source ~/.bashrc"
echo "  4. Spusť proxy:      ai-proxy"
echo "  5. Spusť agenta:     safe-oi"
echo ""
echo "Dokumentace: $PROJECT_DIR/docs/AGENTS.md"
