#!/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-. # 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"