| 1 | set -uo pipefail |
| 2 | OID="${1:?outbox id}"; OUT="${2:?outbox path}" |
| 3 | [ "${PM_APPROVED:-0}" = "1" ] || { echo "refuse: not an approved flush"; exit 2; } |
| 4 | PM="/shared/projects/zion-pm" |
| 5 | |
| 6 | SPEC=$(jq -r --arg id "$OID" '.history[] | select(.id==$id) | .preview' "$OUT") |
| 7 | echo "$SPEC" | jq . >/dev/null 2>&1 || { echo "execute-browser: preview is not valid JSON spec for $OID. Manual."; exit 3; } |
| 8 | |
| 9 | RUNNER="${PM_BROWSER_HOST:-local}" |
| 10 | if [ "$RUNNER" = "local" ]; then |
| 11 | echo "$SPEC" | python3 "$PM/hands/browser/run.py" |
| 12 | else |
| 13 | echo "$SPEC" | ssh "$RUNNER" "python3 - " < "$PM/hands/browser/run.py" |
| 14 | fi |