#!/usr/bin/env bash
set -euo pipefail
# Run from either commit's checkout after vp i. Use a fresh .t3 database.
# Start the app with T3CODE_DEV_SEED=0 vp run dev before running seed.
# Arguments: seed|remember|recall WORKSPACE OUTPUT_DIRECTORY
# Supply PROOF_MODEL as the available inexpensive Claude model identifier.
stage=$1
workspace=$2
output=$3
mkdir -p "$output"
cli=(node apps/server/src/bin.ts)
case "$stage" in
  seed)
    : "${PROOF_MODEL:?Set the available Claude model identifier}"
    mkdir -p "$workspace"
    git -C "$workspace" init -q
    git -C "$workspace" -c user.name=Evidence -c user.email=evidence@example.invalid commit --allow-empty -qm 'Initial commit'
    "${cli[@]}" project add "$workspace" --title 'Session reset proof' --base-dir .t3
    "${cli[@]}" thread start "$workspace" /clear --title 'Native clear restart proof' --provider claudeAgent --model "$PROOF_MODEL" --base-dir .t3 --wait --json > "$output/clear.json"
    ;;
  remember|recall)
    thread=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["threadId"])' "$output/clear.json")
    if [ "$stage" = remember ]; then
      message='Remember MANGO-3333. Reply only: Stored MANGO-3333.'
    else
      # Stop the original dev runner and restart it with the same .t3 first.
      message='What code did I ask you to remember? Reply with the code only.'
    fi
    "${cli[@]}" thread send "$thread" "$message" --base-dir .t3 --wait --json > "$output/$stage.json"
    ;;
  *) exit 2 ;;
esac
