#!/bin/bash
echo "=== 1. 创建测试用户 ==="
docker exec postgres_db psql -U knowledge -d yunwoai -c "DELETE FROM user_friend_agents WHERE user_id=(SELECT id::text FROM users WHERE username='e2etest'); DELETE FROM users WHERE username='e2etest'; INSERT INTO users (username, password, nickname, phone, created_at, updated_at) VALUES ('e2etest','E2etest123','E2ETest','13900008888',NOW(),NOW()) RETURNING id;" 2>&1 | tail -4
UID_=$(docker exec postgres_db psql -U knowledge -d yunwoai -t -A -c "SELECT id FROM users WHERE username='e2etest'")
echo "user_id=$UID_"

echo "=== 2. 登录拿 JWT ==="
LOGIN=$(curl -sS -X POST http://127.0.0.1:8081/api/login -H 'Content-Type: application/json' -d '{"username":"e2etest","password":"E2etest123"}')
echo "$LOGIN" | head -c 200; echo
JWT=$(echo "$LOGIN" | python3 -c "
import sys,json
d=json.load(sys.stdin)
data=d.get('data') or {}
print(data.get('token') or data.get('access_token') or d.get('token') or '')")
echo "jwt_len=${#JWT}"
[ -z "$JWT" ] && { echo LOGIN_FAILED; exit 1; }

echo "=== 3. initialize 全自动编排（后台）==="
curl -sS -m 400 -X POST http://127.0.0.1:8081/api/user/friend-agent/initialize \
  -H "Authorization: Bearer $JWT" -H 'Content-Type: application/json' -d '{}' &
CURL_PID=$!
sleep 5
echo "(polling binding table...)"
for i in $(seq 1 40); do
  sleep 10
  ST=$(docker exec postgres_db psql -U knowledge -d yunwoai -t -A -F'|' -c "SELECT state, COALESCE(instance_id,''), COALESCE(last_error,'') FROM user_friend_agents WHERE user_id='$UID_'" 2>/dev/null)
  echo "[$((i*10))s] $ST"
  case "$ST" in running*) echo INIT_DONE; break;; failed*) echo INIT_FAILED; break;; esac
done
kill $CURL_PID 2>/dev/null || true

echo "=== 4. connector 回连检查 ==="
ss -tn | grep ":8081" | grep ESTAB | head -3 || echo "(no estab)"
grep -E "friendbridge|connector online|inject|InjectLLM" /root/knowledge/run.log | tail -8
