57 lines
2.0 KiB
Bash
Executable File
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
|