#!/usr/bin/env bash # Post-Update-Check nach einem Hermes-Agent-Update: läuft unser geteiltes „Gehirn" # (Mem0 + die mc2-memory-Integration) noch? Exit 0 = alles ok, sonst 1 → der Job wird # im UI rot, damit ein kaputtes Gehirn sofort auffällt. set -uo pipefail MC_URL="${MC_URL:-http://127.0.0.1:9001}" MEM0_URL="${MEM0_SERVICE_URL:-http://127.0.0.1:8765}" HERMES="${HERMES_HOME:-$HOME/.hermes}" fail=0 echo "=== Hermes Post-Update: Gehirn-Check ===" if curl -sf -m 5 "$MEM0_URL/health" >/dev/null 2>&1; then echo "PASS · Mem0-Sidecar erreichbar" else echo "FAIL · Mem0-Sidecar NICHT erreichbar"; fail=1 fi if curl -sf -m 8 "$MC_URL/api/memory" >/dev/null 2>&1; then echo "PASS · /api/memory antwortet" else echo "FAIL · /api/memory antwortet nicht"; fail=1 fi if grep -qE "^[[:space:]]*provider:[[:space:]]*'?mc2-memory'?" "$HERMES/config.yaml" 2>/dev/null \ && grep -qE "memory_enabled:[[:space:]]*true" "$HERMES/config.yaml" 2>/dev/null; then echo "PASS · memory.provider=mc2-memory aktiv" else echo "FAIL · memory.provider nicht mehr gesetzt (Config vom Update überschrieben?)"; fail=1 fi if ( cd "$HERMES/hermes-agent" && HERMES_HOME="$HERMES" ./venv/bin/python -c \ "import sys; sys.path.insert(0,'.'); from plugins.memory import load_memory_provider; p=load_memory_provider('mc2-memory'); assert p and p.name()=='mc2-memory'" \ >/dev/null 2>&1 ); then echo "PASS · mc2-memory-Plugin lädt unter dem neuen Hermes" else echo "FAIL · mc2-memory-Plugin lädt nicht (MemoryProvider-ABC geändert?)"; fail=1 fi if [ "$fail" -eq 0 ]; then echo "=== GEHIRN OK ✓ ===" else echo "=== GEHIRN-CHECK FEHLGESCHLAGEN — bitte prüfen ===" fi exit "$fail"