Files
foodlinkk-command-center/scripts/patch-orchestrator-webbuilder.sh

57 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Voeg webbuilder toe aan Herman orchestrator op VM105
set -euo pipefail
ORCH_HOST="${ORCH_HOST:-aissa@10.4.7.19}"
MAIN="$HOME/foodlinkk-ai/herman-orchestrator/main.py"
ssh -o StrictHostKeyChecking=no "$ORCH_HOST" bash -s <<'REMOTE'
set -euo pipefail
MAIN=~/foodlinkk-ai/herman-orchestrator/main.py
cp "$MAIN" "${MAIN}.bak.$(date +%Y%m%d%H%M)"
python3 <<'PY'
from pathlib import Path
p = Path.home() / "foodlinkk-ai/herman-orchestrator/main.py"
text = p.read_text()
if "webbuilder" in text and '"webbuilder"' in text:
print("webbuilder already present")
else:
text = text.replace(
' "browser",\n)',
' "browser",\n "webbuilder",\n)',
)
insert = ''' "webbuilder": {
"name": "Web Builder",
"persona": (
"Website development via Hermes/agy on NAS. HTML/CSS/JS sites, "
"landing pages, preview servers. Reports back to Herman when done."
),
"keywords": "website,bouw website,maak website,landingspagina,webbuilder,webpagina,nieuwe site",
},
'''
marker = ' "browser": {'
if insert.strip() not in text:
text = text.replace(marker, insert + marker, 1)
text = text.replace(
'"keywords": "website,browser,site,monitor,crawl,bidfood,web,url",',
'"keywords": "browser,site,monitor,crawl,bidfood,url,concurrent,scrape",',
)
p.write_text(text)
print("patched orchestrator main.py")
PY
# Restart orchestrator if systemd service exists
if systemctl is-active herman-orchestrator >/dev/null 2>&1; then
sudo systemctl restart herman-orchestrator
elif pgrep -f "herman-orchestrator/main.py" >/dev/null; then
pkill -f "herman-orchestrator/main.py" || true
sleep 1
cd ~/foodlinkk-ai/herman-orchestrator && nohup python3 -m uvicorn main:app --host 0.0.0.0 --port 8090 >> /tmp/herman-orchestrator.log 2>&1 &
fi
sleep 2
curl -sf http://127.0.0.1:8090/health | python3 -c "import sys,json; d=json.load(sys.stdin); print('agents:', d.get('agents'))"
REMOTE