#!/usr/bin/env bash
# Gateway-Cutover (UMBAU v3 P1, Stufe 2 = Unabhängigkeit):
# Hermes' LLM-Endpunkte vom Steuerpult-Umweg (127.0.0.1:9001/v1) auf den
# eigenständigen Gateway (127.0.0.1:9010/v1) umstellen — Top-Level-config.yaml
# UND alle Profil-Configs (werkstatt/betrieb). Danach überleben Lucys Hirn und
# die komplette Nacht-Autonomie jeden MC2-Neustart.
#
# BEWUSST NICHT in deploy.sh: ~/.hermes/config.yaml ist Zwei-Schreiber-sensibel
# (Hermes schreibt sie selbst). Einmalig von Hand bzw. per angenommener Karte:
#   bash ~/mission-control-v2/deploy/gateway-cutover.sh            # umstellen
#   bash ~/mission-control-v2/deploy/gateway-cutover.sh --revert   # zurück
# Je geänderter Datei entsteht ein Backup *.bak-gwcut-<Zeitstempel>.
# Danach: hermes-gateway-Neustart + kurzer Funktionsnachweis.
set -euo pipefail

if [ "${1:-}" = "--revert" ]; then
  ALT="127.0.0.1:9010/v1"; NEU="127.0.0.1:9001/v1"
  PROBE="http://127.0.0.1:9001/api/health"   # Rückweg: MC2 muss /v1 wieder selbst bedienen
else
  ALT="127.0.0.1:9001/v1"; NEU="127.0.0.1:9010/v1"
  PROBE="http://127.0.0.1:9010/gw/health"    # Hinweg: Gateway-Prozess muss leben
fi

# Sicherung: NIE auf ein totes Ziel umstellen — das würde Lucy das Hirn abschneiden.
if ! curl -sf -m 5 "$PROBE" >/dev/null 2>&1; then
  echo "ABBRUCH: Ziel $NEU antwortet nicht ($PROBE). Nichts geändert."
  exit 1
fi

STAMP="$(date +%Y%m%d-%H%M%S)"
ALT_RE="${ALT//./\\.}"   # Punkte für sed escapen
geaendert=0
for f in "$HOME/.hermes/config.yaml" "$HOME"/.hermes/profiles/*/config.yaml; do
  [ -f "$f" ] || continue
  grep -q "$ALT" "$f" || continue
  cp "$f" "$f.bak-gwcut-$STAMP"
  sed -i "s|$ALT_RE|$NEU|g" "$f"
  echo "umgestellt: $f  (Backup: $f.bak-gwcut-$STAMP)"
  geaendert=1
done

if [ "$geaendert" -eq 0 ]; then
  echo "Nichts zu tun — '$ALT' kommt in keiner Hermes-Config vor."
  exit 0
fi

echo "hermes-gateway neu starten …"
systemctl --user restart hermes-gateway
sleep 3
if systemctl --user is-active --quiet hermes-gateway; then
  echo "hermes-gateway läuft."
else
  echo "WARN: hermes-gateway ist nach dem Neustart NICHT aktiv!"
  echo "      journalctl --user -u hermes-gateway -n 30   und ggf.:  $0 --revert"
  exit 1
fi

echo "Empfohlener Nachweis:  cd ~/.hermes/hermes-agent && venv/bin/hermes doctor"
echo "FERTIG. Rückweg jederzeit:  $0 --revert"
