#!/usr/bin/env bash
set -euo pipefail

# НадTavern Linux/macOS launcher with local .venv bootstrap
# Usage:
#   chmod +x ./run_agentui.sh
#   ./run_agentui.sh
# Optional env: HOST=0.0.0.0 PORT=7860

# Go to repo root (script location)
cd "$(dirname "$0")"

PORT="${PORT:-7860}"
HOST="${HOST:-127.0.0.1}"

# Pick python
if command -v python3 >/dev/null 2>&1; then
  PY=python3
else
  PY=python
fi

# Create venv if missing
if [ ! -f ".venv/bin/python" ]; then
  echo "[НадTavern] Creating .venv ..."
  "$PY" -m venv .venv
fi

VENV_PY=".venv/bin/python"

echo "[НадTavern] Upgrading pip ..."
"$VENV_PY" -m pip install --upgrade pip

echo "[НадTavern] Installing deps from requirements.txt ..."
"$VENV_PY" -m pip install -r requirements.txt

echo "[НадTavern] Starting on http://$HOST:$PORT/"

# Try to open UI editor in default browser (non-fatal if fails)
if command -v xdg-open >/dev/null 2>&1; then
  xdg-open "http://$HOST:$PORT/ui/editor.html" >/dev/null 2>&1 || true
elif command -v open >/dev/null 2>&1; then
  open "http://$HOST:$PORT/ui/editor.html" >/dev/null 2>&1 || true
fi

exec "$VENV_PY" -m uvicorn agentui.api.server:app --host "$HOST" --port "$PORT" --log-level info