#!/bin/bash
BASE=http://10.168.3.36:19088
AUTH="Authorization: Bearer dev-admin-token"
KEY="release-2026=qEvynp6sTeb1a5iMkorOdhjVN0tznJIPd/MGTk/+PsE="

DEP=deploy-81a4cd36-a67
INST=$(curl -sS -H "$AUTH" "$BASE/api/v1/instance-deployments/$DEP" | python3 -c "import sys,json; print(json.load(sys.stdin).get('runtime_name',''))")
echo "INSTANCE_CONTAINER=$INST"

echo "=== 1. 写入正确公钥到实例容器（第三级 fallback 文件）==="
docker exec "$INST" sh -c "mkdir -p /var/lib/friend-cluster && echo '$KEY' > /var/lib/friend-cluster/artifact-trust-key" && echo WRITE_OK
docker exec "$INST" sh -c "cat /var/lib/friend-cluster/artifact-trust-key"

echo ""
echo "=== 2. 重启实例容器让 agent 重新加载 key ==="
docker restart "$INST" > /dev/null && echo RESTART_OK
sleep 12

echo "=== 3. 找到 llm-proxy 插件的 artifact id ==="
ART=$(curl -sS -H "$AUTH" $BASE/api/v1/artifacts | python3 -c "
import sys,json
arts=json.load(sys.stdin)
if isinstance(arts,dict): arts=arts.get('artifacts',[])
for a in arts:
    if a.get('name')=='llm-proxy':
        print(a['id']); break
")
echo "ARTIFACT=$ART"

echo "=== 4. 找到实例 ID 并重发 extension install ==="
IID=$(curl -sS -H "$AUTH" "$BASE/api/v1/instance-deployments/$DEP" | python3 -c "import sys,json; print(json.load(sys.stdin).get('instance_id',''))")
echo "INSTANCE=$IID"
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d "{\"action\":\"install\",\"artifact_id\":\"$ART\",\"kind\":\"plugin\",\"id\":\"llm-proxy\"}" \
  "$BASE/api/v1/instances/$IID/extension-actions" | head -c 300
echo ""

echo "=== 5. 轮询安装结果 ==="
for i in $(seq 1 10); do
  sleep 8
  ST=$(curl -sS -H "$AUTH" "$BASE/api/v1/instances/$IID" | python3 -c "
import sys,json
d=json.load(sys.stdin).get('instance',{})
print(d.get('process_state'),'|',d.get('health_state'),'|',d.get('config_state'),'|',d.get('extension_state'))" 2>/dev/null)
  echo "[$i] $ST"
  case "$ST" in *in_sync*in_sync*) break;; esac
done
echo DONE
