echo "SUPABASE_URL=$SUPABASE_URL" && echo "SUPABASE_PROJECT_REF=$SUPABASE_PROJECT_REF" && echo "SUPABASE_DB_URL=$SUPABASE_DB_URL" | sed 's/:[^:]*@/:****@/' && echo "Keys present:" && echo "ANON_KEY: ${#SUPABASE_ANON_KEY} chars" && echo "SERVICE_ROLE: ${#SUPABASE_SERVICE_ROLE_KEY} chars"SUPABASE_URL=https://<ref>.supabase.co SUPABASE_PROJECT_REF=<ref> SUPABASE_DB_URL=postgresql://postgres.<ref>:<redacted>@aws-0-us-east-1.pooler.supabase.com:5432/postgres Keys present: ANON_KEY: 208 chars SERVICE_ROLE: 219 chars
psql "$SUPABASE_DB_URL" -c "CREATE EXTENSION IF NOT EXISTS vector;"
CREATE EXTENSION
psql "$SUPABASE_DB_URL" -c "ALTER TABLE public.documents ADD COLUMN embedding vector(4);" 2>&1
ALTER TABLE
psql "$SUPABASE_DB_URL" -c "SELECT id, title, embedding_json FROM public.documents;"
id | title | embedding_json ----+---------+------------------ 1 | alpha | [10, 0.5, 0, 0] 2 | bravo | [0.9, 0.3, 0, 0] 3 | delta | [20, 60, 0, 0] 4 | echo | [0, 1, 0, 0] 5 | foxtrot | [-5, 0.1, 0, 0] 6 | golf | [0.1, 0.1, 3, 4] (6 rows)
psql "$SUPABASE_DB_URL" -c "UPDATE public.documents SET embedding = (SELECT array_agg(elem::float8)::vector(4) FROM jsonb_array_elements_text(embedding_json) AS elem);"
UPDATE 6
psql "$SUPABASE_DB_URL" -c "SELECT id, title, embedding FROM public.documents;"
id | title | embedding ----+---------+--------------- 1 | alpha | [10,0.5,0,0] 2 | bravo | [0.9,0.3,0,0] 3 | delta | [20,60,0,0] 4 | echo | [0,1,0,0] 5 | foxtrot | [-5,0.1,0,0] 6 | golf | [0.1,0.1,3,4] (6 rows)
psql "$SUPABASE_DB_URL" -c "CREATE INDEX ON public.documents USING hnsw (embedding vector_cosine_ops);"
CREATE INDEX
psql "$SUPABASE_DB_URL" <<'EOF'
CREATE OR REPLACE FUNCTION match_documents(query_embedding vector(4), match_count int)
RETURNS TABLE (id int, title text, distance float8)
LANGUAGE sql
AS $$
SELECT
documents.id,
documents.title,
(documents.embedding <=> query_embedding)::float8 AS distance
FROM public.documents
ORDER BY documents.embedding <=> query_embedding
LIMIT match_count;
$$;
EOFCREATE FUNCTION
psql "$SUPABASE_DB_URL" -c "SELECT * FROM match_documents('[1, 0, 0, 0]'::vector(4), 3);"id | title | distance ----+-------+--------------------- 1 | alpha | 0.00124766112215546 2 | bravo | 0.0513167145152487 3 | delta | 0.683772233983162 (3 rows)
curl -s -X POST "${SUPABASE_URL}/rest/v1/rpc/match_documents" \
-H "apikey: ${SUPABASE_ANON_KEY}" \
-H "Authorization: Bearer ${SUPABASE_ANON_KEY}" \
-H "Content-Type: application/json" \
-d '{"query_embedding": [1, 0, 0, 0], "match_count": 3}' | python3 -m json.tool[
{
"id": 1,
"title": "alpha",
"distance": 0.00124766112215546
},
{
"id": 2,
"title": "bravo",
"distance": 0.0513167145152487
},
{
"id": 3,
"title": "delta",
"distance": 0.683772233983162
}
]
curl -s -X POST "${SUPABASE_URL}/rest/v1/rpc/match_documents" \
-H "apikey: ${SUPABASE_ANON_KEY}" \
-H "Authorization: Bearer ${SUPABASE_ANON_KEY}" \
-H "Content-Type: application/json" \
-d '{"query_embedding": [0, 0, 3, 4], "match_count": 3}' | python3 -m json.tool[
{
"id": 6,
"title": "golf",
"distance": 0.000399769304185948
},
{
"id": 1,
"title": "alpha",
"distance": 1
},
{
"id": 2,
"title": "bravo",
"distance": 1
}
]
3 earlier narration turn(s) are in the raw transcript.
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