#!/bin/sh
# 使い方: ./run.sh lap|plain|goal <run番号>
# 毎回まっさらな作業フォルダ(/tmp/al-art/runs/<kind>-<n>)へ課題をコピーして claude -p を1回動かし、
# stream-json の生ログを logs/<kind>-<n>.jsonl に保存する。個人設定は読まない(--setting-sources "")。
set -e
KIND=$1; N=$2
HERE=$(cd "$(dirname "$0")" && pwd)
W=/tmp/al-art/runs/$KIND-$N
rm -rf "$W"; mkdir -p "$W" "$HERE/logs"
case $KIND in
  lap)
    cp "$HERE"/tasks/cart/* "$W"/
    PROMPT="test_cart.py のテストが失敗しています。python3 test_cart.py で確認して、cart.py を直してください。"
    TOOLS="Read Edit Bash(python3 test_cart.py)" ;;
  plain)
    cp "$HERE"/tasks/funcs/* "$W"/
    PROMPT="./check.sh が ALL OK を出すようにしたい。直すのは funcs.py の関数で、1ターンに直すのは1関数だけにして、直したら報告して手を止めてよい。"
    TOOLS="Read Edit Bash" ;;
  goal)
    cp "$HERE"/tasks/funcs/* "$W"/
    PROMPT="/goal ./check.sh が ALL OK を出す。直すのは funcs.py の関数で、1ターンに直すのは1関数だけにして、直したら報告して手を止めてよい。"
    TOOLS="Read Edit Bash" ;;
esac
cd "$W"
timeout 400 claude -p "$PROMPT" --model haiku --allowedTools "$TOOLS" \
  --output-format stream-json --verbose --setting-sources "" < /dev/null > "$HERE/logs/$KIND-$N.jsonl" || true
if [ "$KIND" = lap ]; then python3 test_cart.py > "$HERE/logs/$KIND-$N.final.txt" || true
else ./check.sh > "$HERE/logs/$KIND-$N.final.txt" || true; fi
