# Diagnostik Sylor API — Matrix-Sentinel JKN

Endpoint Sylor mengikuti pola Smart-WA: `POST https://api.sylorapi.com/v1/chat/completions` dengan `Authorization: Bearer <token>` dan `messages` berisi role `system` dan `user`.

1. Rotasi token yang pernah dibagikan ke percakapan. Isi `.env` di folder aplikasi (`server.py`) dengan token baru dan `ENABLE_EXTERNAL_AI=true`.
2. Hentikan server lama (Ctrl+C). Jalankan `python server.py` dari folder ini.
3. Buka `http://127.0.0.1:5000/api/ai/diagnostics` dan pastikan `runtime_matches_file: true`.
4. Bandingkan fingerprint dengan token yang berhasil diuji di PowerShell (jalankan dalam direktori yang sama):

```powershell
$line = Get-Content .env | Where-Object { $_ -match '^\s*GEMINI_API_KEY\s*=' } | Select-Object -First 1
$key = (($line -split '=',2)[1]).Trim().Trim('"').Trim("'")
$sha = [System.Security.Cryptography.SHA256]::HashData([System.Text.Encoding]::UTF8.GetBytes($key))
[Convert]::ToHexString($sha).Substring(0,12).ToLower()
```

Untuk PowerShell 5.1 tanpa `HashData`, gunakan:

```powershell
$shaObj = [System.Security.Cryptography.SHA256]::Create()
$sha = $shaObj.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($key))
([BitConverter]::ToString($sha) -replace '-', '').Substring(0,12).ToLower()
```

Jika fingerprint berbeda, Flask dan PowerShell memakai token yang berbeda. Jika sama, uji chatbot setelah cooldown 15 detik. Jika masih HTTP 401, periksa konfigurasi penyedia dan detail respons (tanpa token). Endpoint diagnostik hanya untuk pengembangan lokal.
