#!/usr/bin/env bash
# Local verification harness: pytest smoke tests + optional live HTTP checks.
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"

BASE_URL="${BASE_URL:-http://127.0.0.1:8080}"
RUN_LIVE="${RUN_LIVE:-0}"

if [[ ! -d .venv ]]; then
  python3 -m venv .venv
fi
# shellcheck disable=SC1091
source .venv/bin/activate

pip install -q -r requirements-dev.txt

echo "==> Running pytest smoke tests"
pytest -q

if [[ "$RUN_LIVE" == "1" ]]; then
  echo "==> Live HTTP smoke against ${BASE_URL}"
  curl -fsS "${BASE_URL}/healthz" | python3 -m json.tool
  curl -fsS "${BASE_URL}/mcp/schema" | python3 -c "
import json, sys
schema = json.load(sys.stdin)
assert 'tools' in schema and 'resources' in schema and 'prompts' in schema
print(f\"tools={len(schema['tools'])} resources={len(schema['resources'])} prompts={len(schema['prompts'])}\")
"
  echo "Live smoke passed."
else
  echo "Skipping live HTTP checks (set RUN_LIVE=1 to curl a running server)."
fi

echo "Local verification complete."