fix: Install anthropic package in hermes-venv

PaperClip Hermes agent requires anthropic>=0.39.0 package to communicate with Anthropic models. Also copies all keys from shared.env into hermes .env.
This commit is contained in:
Jannik committed 2026-10-02 06:28:22 +02:00
1 parent ddf678fb9c
commit 47bfdfbd49
1 file changed
+20 -10
+20 -10
View File
@@ -66,7 +66,7 @@ else
# Vollständige Installation wenn noch nicht vorhanden
if [[ "${hermes_installed}" == "false" ]]; then
log "Hermes CLI nicht gefunden — installiere in ${PAPERCLIP_CONTAINER} (pip install hermes-agent)..."
log "Hermes CLI nicht gefunden — installiere in ${PAPERCLIP_CONTAINER} (pip install hermes-agent 'anthropic>=0.39.0')..."
docker exec -u root "${PAPERCLIP_CONTAINER}" bash -c '
set -e
@@ -74,7 +74,7 @@ else
apt-get install -y -qq --no-install-recommends python3-pip python3-venv curl git
mkdir -p /opt/hermes-venv
python3 -m venv /opt/hermes-venv
/opt/hermes-venv/bin/pip install --no-cache-dir hermes-agent
/opt/hermes-venv/bin/pip install --no-cache-dir hermes-agent "anthropic>=0.39.0" openai mistralai
ln -sf /opt/hermes-venv/bin/hermes /usr/local/bin/hermes
chmod -R a+rx /opt/hermes-venv
rm -rf /var/lib/apt/lists/*
@@ -84,6 +84,16 @@ else
log "Hermes CLI ist bereits in ${PAPERCLIP_CONTAINER} installiert."
fi
# Prüfe ob Provider-Pakete (insbesondere anthropic) im Venv vorhanden sind
if ! docker exec "${PAPERCLIP_CONTAINER}" /opt/hermes-venv/bin/python3 -c "import anthropic" >/dev/null 2>&1; then
log "Installiere fehlende Provider-Pakete in hermes-venv (anthropic>=0.39.0, openai, mistralai)..."
docker exec -u root "${PAPERCLIP_CONTAINER}" bash -c '
/opt/hermes-venv/bin/pip install --no-cache-dir "anthropic>=0.39.0" openai mistralai
chmod -R a+rx /opt/hermes-venv
'
log "Provider-Pakete erfolgreich nachinstalliert!"
fi
# -------------------------------------------------------------------------
# 3. Hermes Konfiguration & Keys für PaperClip User (node) vorbereiten
# -------------------------------------------------------------------------
@@ -94,19 +104,19 @@ else
chown -R node:node /home/node/.hermes
'
# API Keys in ~/.hermes/.env schreiben, damit hermes sie immer findet
if [[ -n "${OPENROUTER_API_KEY}" ]]; then
docker exec -u root "${PAPERCLIP_CONTAINER}" bash -c "cat > /home/node/.hermes/.env <<EOF
OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
EOF
chown node:node /home/node/.hermes/.env
chmod 600 /home/node/.hermes/.env
"
# Alle API Keys aus shared.env in ~/.hermes/.env kopieren
if [[ -f "${SHARED_ENV}" ]]; then
docker cp "${SHARED_ENV}" "${PAPERCLIP_CONTAINER}:/home/node/.hermes/.env"
docker exec -u root "${PAPERCLIP_CONTAINER}" bash -c '
chown node:node /home/node/.hermes/.env
chmod 600 /home/node/.hermes/.env
'
fi
# Verifikation im Container
log "Verifiziere Hermes im PaperClip-Container:"
docker exec -u node "${PAPERCLIP_CONTAINER}" hermes --version 2>&1 || true
docker exec -u node "${PAPERCLIP_CONTAINER}" /opt/hermes-venv/bin/python3 -c "import anthropic; print('anthropic package ok')" 2>&1 || true
fi
# -----------------------------------------------------------------------------