#!/bin/sh
# 外側のループ: シェルが「check.sh が通るまで claude -p を新しいセッションで呼び直す」。上限は8周。
# 使い方: ./run-outer.sh <run番号>   ログ: logs/outer-<n>-r<周>.jsonl
N=$1
HERE=$(cd "$(dirname "$0")" && pwd)
W=/tmp/al-art/runs/outer-$N
rm -rf "$W"; mkdir -p "$W" "$HERE/logs"
cp "$HERE"/tasks/funcs/* "$W"/
cd "$W"
r=0
while [ $r -lt 8 ]; do
  ./check.sh > /dev/null 2>&1 && break
  r=$((r+1))
  timeout 300 claude -p "./check.sh が ALL OK を出すようにしたい。直すのは funcs.py の関数で、1ターンに直すのは1関数だけにして、直したら報告して手を止めてよい。" \
    --model haiku --allowedTools "Read Edit Bash" --output-format stream-json --verbose --setting-sources "" \
    < /dev/null > "$HERE/logs/outer-$N-r$r.jsonl"
done
./check.sh > "$HERE/logs/outer-$N.final.txt"
echo "rounds=$r" >> "$HERE/logs/outer-$N.final.txt"
