import json, subprocess, urllib.request


def sh(cmd: str) -> str:
    return subprocess.check_output(cmd, shell=True, text=True).strip()

admin_key = sh('tr \0 \n < /proc/1211453/environ | grep ^ADMIN_PASSWORD= | head -n1 | sed s/^ADMIN_PASSWORD=//')
login_req = urllib.request.Request(
    'http://127.0.0.1:48090/admin/login',
    data=json.dumps({'admin_key': admin_key}).encode(),
    headers={'Content-Type': 'application/json'},
)
with urllib.request.urlopen(login_req, timeout=30) as resp:
    login = json.loads(resp.read().decode())
jwt = login['token']
key = 'temp-ds2api-80-smoke'
create_req = urllib.request.Request(
    'http://127.0.0.1:48090/admin/keys',
    data=json.dumps({'key': key, 'name': 'ds2api-80 smoke', 'remark': 'temporary smoke key'}).encode(),
    headers={'Content-Type': 'application/json', 'Authorization': 'Bearer ' + jwt},
    method='POST',
)
with urllib.request.urlopen(create_req, timeout=30) as resp:
    create = json.loads(resp.read().decode())
models_req = urllib.request.Request('http://127.0.0.1:48090/v1/models')
with urllib.request.urlopen(models_req, timeout=30) as resp:
    models = json.loads(resp.read().decode())
chat_req = urllib.request.Request(
    'http://127.0.0.1:48090/v1/chat/completions',
    data=json.dumps({'model': 'deepseek-v4-flash', 'messages': [{'role': 'user', 'content': 'ping'}], 'stream': False}).encode(),
    headers={'Content-Type': 'application/json', 'Authorization': 'Bearer ' + key},
)
with urllib.request.urlopen(chat_req, timeout=120) as resp:
    chat_raw = resp.read().decode()
    chat_status = resp.status
    chat_ct = resp.headers.get('Content-Type', '')
print(json.dumps({
    'login_ok': login.get('success', False),
    'create_ok': create.get('success', False),
    'models_count': len(models.get('data', [])),
    'chat_status': chat_status,
    'chat_content_type': chat_ct,
    'chat_preview': chat_raw[:300],
}, ensure_ascii=False))
