#!/usr/bin/env bash
set -euo pipefail

RATEL_SERVER="http://192.168.172.4:8099"
HERMES_TAG="v2026.9.14"

INSTALL_ROOT="/opt/ratel-sysadmin"
HERMES_REPO="${INSTALL_ROOT}/hermes-agent"
HERMES_HOME="/var/lib/ratel-sysadmin"
RATEL_BIN="/usr/local/bin/ratel"

RATEL_SYSADMIN_API_KEY="sk-qMzRoWXMlwbiuCv_GRZwnQ"

if [ "$(id -u)" -ne 0 ]; then
    echo "ERREUR : lancer ce script avec sudo ou en root."
    exit 1
fi

echo "=== RATEL SYSADMIN INSTALLER ==="

. /etc/os-release
echo "OS : ${PRETTY_NAME:-Linux}"

echo "[1/8] Prérequis"
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y git curl ca-certificates build-essential ripgrep jq

echo "[2/8] Répertoires"
mkdir -p "$INSTALL_ROOT" "$HERMES_HOME"
chmod 700 "$HERMES_HOME"

echo "[3/8] Hermes 0.21.3 depuis Git"
rm -rf "$HERMES_REPO"

git clone --branch "$HERMES_TAG" --depth 1 \
  https://github.com/NousResearch/hermes-agent.git \
  "$HERMES_REPO"

cd "$HERMES_REPO"

echo "Tag Hermes : $(git describe --tags --always)"

printf 'n\n' | ./setup-hermes.sh --runtime-only

if [ ! -x /root/.local/bin/hermes ]; then
    echo "ERREUR : Hermes non installé."
    exit 1
fi

echo "[4/8] Configuration Ratel"

curl -fsSL "$RATEL_SERVER/config.yaml" \
  -o "$HERMES_HOME/config.yaml"

curl -fsSL "$RATEL_SERVER/SOUL.md" \
  -o "$HERMES_HOME/SOUL.md"

sed -i '/^[[:space:]]*reasoning_effort:[[:space:]]*/d' \
  "$HERMES_HOME/config.yaml"

chmod 600 \
  "$HERMES_HOME/config.yaml" \
  "$HERMES_HOME/SOUL.md"

echo "[5/8] Clé LiteLLM"

cat >"$HERMES_HOME/.env" <<ENV
HERMES_CUSTOM_IA_PDGIT_FR_API_KEY=${RATEL_SYSADMIN_API_KEY}
ENV

chmod 600 "$HERMES_HOME/.env"

echo "[6/8] Commande ratel"

cat >"$RATEL_BIN" <<'RATEL'
#!/usr/bin/env bash
set -euo pipefail

export HERMES_HOME="/var/lib/ratel-sysadmin"
export HERMES_DISABLE_LAZY_INSTALLS=1

HERMES="/root/.local/bin/hermes"

if [ "$#" -eq 0 ]; then
    exec "$HERMES" chat --toolsets terminal,file
else
    exec "$HERMES" "$@"
fi
RATEL

chmod 755 "$RATEL_BIN"

echo "[7/8] Test LiteLLM"

curl -fsSL \
  https://ia.pdgit.fr/v1/models \
  -H "Authorization: Bearer ${RATEL_SYSADMIN_API_KEY}" \
  -o /tmp/ratel-models.json

jq -e '.data[]? | select(.id=="ratel-code")' \
  /tmp/ratel-models.json >/dev/null

rm -f /tmp/ratel-models.json

echo "[8/8] Vérification"

ratel --version

echo "RATEL SYSADMIN READY"
echo "Lancer : sudo -i"
echo "Puis   : ratel"
