test -n "$SUPABASE_URL" && test -n "$SUPABASE_SERVICE_ROLE_KEY" && test -n "$SUPABASE_ANON_KEY" && echo ready || (echo missing >&2; exit 1)
ready
printf '%s\n' "$SUPABASE_URL"
https://<ref>.supabase.co
set -euo pipefail
command -v jq >/dev/null || { echo jq_missing >&2; exit 1; }
base="$SUPABASE_URL/auth/v1"
admin=(-H "Authorization: Bearer $SUPABASE_SERVICE_ROLE_KEY" -H "apikey: $SUPABASE_SERVICE_ROLE_KEY" -H 'Content-Type: application/json')
for entry in 'dana@cari.dev|Passw0rd-dana-91' 'omar@cari.dev|Passw0rd-omar-17'; do
email=${entry%%|*}; password=${entry#*|}
body=$(jq -cn --arg e "$email" --arg p "$password" '{email:$e,password:$p,email_confirm:true}')
resp=$(curl -sS -w '\n%{http_code}' -X POST "$base/admin/users" "${admin[@]}" --data "$body")
code=${resp##*$'\n'}; json=${resp%$'\n'*}
if [ "$code" = 2* ]; then
echo "create failed for $email (HTTP $code)" >&2; echo "$json" >&2; exit 1
fi
echo "provisioned $email (HTTP $code)"
done
# Verify password grant for each account, requiring a nonempty access token.
for entry in 'dana@cari.dev|Passw0rd-dana-91' 'omar@cari.dev|Passw0rd-omar-17'; do
email=${entry%%|*}; password=${entry#*|}
body=$(jq -cn --arg e "$email" --arg p "$password" '{email:$e,password:$p}')
resp=$(curl -sS -w '\n%{http_code}' -X POST "$base/token?grant_type=password" -H "apikey: $SUPABASE_ANON_KEY" -H 'Content-Type: application/json' --data "$body")
code=${resp##*$'\n'}; json=${resp%$'\n'*}
token=$(printf '%s' "$json" | jq -r '.access_token // empty')
if [ "$code" != 200 ] || [ -z "$token" ]; then
echo "SIGN-IN FAILED for $email (HTTP $code): $json" >&2; exit 1
fi
echo "verified $email: valid access token returned (HTTP 200)"
doneprovisioned dana@cari.dev (HTTP 200) provisioned omar@cari.dev (HTTP 200) verified dana@cari.dev: valid access token returned (HTTP 200) verified omar@cari.dev: valid access token returned (HTTP 200)
A shell script executed against the live project and asserted on the state the agent left behind. No model judged another model.
Raw transcript · Task definition and verifier · Every attempt