#!/usr/bin/env bash
set -euo pipefail
# Usage: run-proof.sh CHECKOUT FRESH_HOME PORT COMMIT VALID_BASE_REF OUTPUT_DIR
# Supply PROOF_MODEL_SELECTION as a JSON selection for a fixture provider.
checkout=$1
proof_home=$2
port=$3
commit=$4
base_ref=$5
output=$6
mkdir -p "$output"
cd "$checkout"
git cat-file -e "$base_ref^{commit}"
cp "$(dirname "$0")/driver.ts" apps/server/proof-driver.ts
T3CODE_DEV_SEED=0 T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD=0 node apps/server/src/bin.ts --base-dir "$proof_home" --port "$port" --host 127.0.0.1 --no-browser > "$output/server-private.log" 2>&1 &
server_pid=$!
trap 'kill "$server_pid"; wait "$server_pid" || true' EXIT
# Wait for the isolated server's runtime file; never read shared runtime state.
for attempt in $(seq 1 120); do
  if curl -s -o /dev/null "http://127.0.0.1:$port/"; then break; fi
  sleep 1
done
node apps/server/proof-driver.ts "$proof_home" "$commit" "$base_ref" > "$output/transcript.txt"
