#!/usr/bin/env bash # hermes-plugin-deps.sh — die Pakete unserer Hermes-Plugins in Hermes' aktive Umgebung legen (seit 25.09.2026). # # Seit seinem neuen Paketmanager (`hermes pm`) läuft Hermes in einer eigenen Umgebung unter # ~/.hermes/installs//environments//venv (Python aus ~/.hermes/tools). Jedes Update kann sie neu bauen — # ohne unsere Zusätze. mc2-web-lesen braucht trafilatura (ohne liest es Seiten nur grob). # Welche Umgebung aktiv ist, sagt Hermes' eigener Starter (hermes_bootstrap). Ohne Paketmanager: nichts zu tun. # Läuft nach jedem Hermes-Update (maintenance._hermes_update_cmd); von Hand: bash deploy/hermes-plugin-deps.sh set -uo pipefail HA="${HERMES_AGENT:-$HOME/.hermes/hermes-agent}" PY="$(ls -d "$HOME"/.hermes/tools/python-3*/bin/python3 2>/dev/null | sort -V | tail -n 1)" UV="$(ls -d "$HOME"/.hermes/tools/uv-*/uv 2>/dev/null | sort -V | tail -n 1)" PAKETE=(trafilatura) if [ ! -x "$PY" ] || [ ! -x "$UV" ] || [ ! -f "$HA/hermes_bootstrap.py" ]; then echo "hermes-plugin-deps: Hermes ohne eigenen Paketmanager — nichts zu tun." exit 0 fi UMGEBUNG="$(cd /tmp && HERMES_HOME="$HOME/.hermes" "$PY" -I -c " import sys sys.path.insert(0, '$HA') import hermes_bootstrap print(next(p for p in sys.path if p.endswith('site-packages') and '/environments/' in p).split('/lib/')[0]) " 2>/dev/null)" if [ -z "$UMGEBUNG" ] || [ ! -x "$UMGEBUNG/bin/python" ]; then echo "hermes-plugin-deps: Hermes' aktive Umgebung nicht gefunden." >&2 exit 1 fi if "$UMGEBUNG/bin/python" -c "import trafilatura" 2>/dev/null; then echo "hermes-plugin-deps: alles da ($UMGEBUNG)." exit 0 fi echo "hermes-plugin-deps: lege ${PAKETE[*]} in $UMGEBUNG …" UV_CACHE_DIR="$HOME/.hermes/cache/uv" "$UV" pip install --python "$UMGEBUNG/bin/python" "${PAKETE[@]}"