#!/usr/bin/env bash
set -eu
# Run in either checkout after vp i. Use a fresh, isolated T3 home and an empty committed project.
# Usage: reproduce.sh HOME_DIR PROJECT_DIR CONFIG_FILE ENDPOINT_PORT LABEL
proof_home=$1
proof_project=$2
proof_config=$3
proof_port=$4
proof_label=$5
proof_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
python3 "$proof_dir/provider-driver.py" "$proof_port" "$proof_label" &
endpoint_pid=$!
trap 'kill "$endpoint_pid"' EXIT
OPENCODE_CONFIG="$proof_config" T3CODE_DEV_SEED=0 vp run dev --home-dir "$proof_home" &
app_pid=$!
trap 'kill "$app_pid" "$endpoint_pid"' EXIT
printf 'Pair the browser using the startup URL, then press Enter.\n'
read -r ready
node apps/server/src/bin.ts project add "$proof_project" --title 'Compaction evidence' --base-dir "$proof_home"
node apps/server/src/bin.ts thread start "$proof_project" \
 'PARENT_EVIDENCE: Delegate a substantial task to OpenCode in an isolated worktree, allow compaction, and report the child result.' \
 --title 'Delegated overflow proof' --provider opencode --model evidence/evidence --json --base-dir "$proof_home"
printf 'Open the parent, then its Compaction child; record through completion. Press Enter to stop.\n'
read -r finished
