#!/bin/sh
set -eu
project_root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
python="$project_root/.venv/bin/python"
validation_root=$(mktemp -d)
trap 'rm -rf "$validation_root"' EXIT HUP INT TERM
cd "$project_root"
"$project_root/scripts/lint"
"$python" -m build --outdir "$validation_root/dist"
"$python" -m twine check "$validation_root"/dist/*
uv venv --python "$python" "$validation_root/venv"
wheel_python="$validation_root/venv/bin/python"
set -- "$validation_root"/dist/*.whl
wheel="$1"
uv pip install --python "$wheel_python" "$wheel"
cd "$validation_root"
env -u PYTHONPATH "$wheel_python" "$project_root/tests/base_install.py"
uv pip install --python "$wheel_python" "${wheel}[tracing]" \
  'pytest>=8,<10' 'pytest-asyncio>=0.24,<2'
cd "$validation_root"
env -u PYTHONPATH "$wheel_python" - <<'PYTHON'
from importlib.metadata import distribution
from pathlib import Path
import sys
import coval_agent_sdk

package = distribution("coval-agent-sdk")
assert package.metadata["Name"] == "coval-agent-sdk"
assert Path(coval_agent_sdk.__file__).is_relative_to(Path(sys.prefix))
print("Installed coval-agent-sdk; imports resolve to the isolated wheel.")
PYTHON
env -u PYTHONPATH "$wheel_python" -m pytest --import-mode=importlib \
  "$project_root/tests" -q
