#!/usr/bin/env sh
set -eu

BASE_URL="https://agent.age-net.com"
EXPECTED_SHA256="e25d7619d48bd1638bf76274480d1b448609f88593fcba52a9ec4e18bc62081d"
TMPDIR="${TMPDIR:-/tmp}"
BIN="$TMPDIR/youragent-host.py"

need() { command -v "$1" >/dev/null 2>&1 || { echo "missing required command: $1" >&2; exit 1; }; }
need curl
need python3

curl -fsSL "$BASE_URL/download/youragent-host.py" -o "$BIN"
if command -v sha256sum >/dev/null 2>&1; then
  GOT="$(sha256sum "$BIN" | cut -d ' ' -f 1)"
else
  GOT="$(shasum -a 256 "$BIN" | cut -d ' ' -f 1)"
fi
if [ "$GOT" != "$EXPECTED_SHA256" ]; then
  echo "sha256 mismatch for youragent-host.py" >&2
  echo "expected $EXPECTED_SHA256 got $GOT" >&2
  exit 1
fi
chmod +x "$BIN"
PYTHON=python3
if ! python3 - <<'PY' >/dev/null 2>&1
import websockets
PY
then
  VENV="$TMPDIR/youragent-venv"
  echo "installing helper dependency: websockets" >&2
  python3 -m venv "$VENV"
  "$VENV/bin/python" -m pip install -q 'websockets>=12'
  PYTHON="$VENV/bin/python"
fi
export YOURAGENT_SERVER="$BASE_URL"
if ( : < /dev/tty ) 2>/dev/null; then
  exec "$PYTHON" "$BIN" "$@" < /dev/tty
fi
exec "$PYTHON" "$BIN" "$@"
