#!/usr/bin/env bash
cd "$(dirname "$0")/.." || exit 1

echo "=============================================="
echo "  CyberBrain26 – Diagnostika výkonu"
echo "=============================================="
echo ""

# 1. Systémové zdroje
echo "=== 1. Systémové zdroje ==="
echo "CPU a zátěž:"
uptime
echo ""
echo "Paměť:"
free -h
echo ""
echo "Disk (workspace):"
df -h . | tail -1
echo ""

# 2. Běžící procesy CyberBrain26
echo "=== 2. Procesy CyberBrain26 ==="
echo "LiteLLM / Webapp / ttyd:"
ps aux | grep -E "litellm|webapp.py|ttyd.*safe-oi" | grep -v grep || echo "Žádné procesy nenalezeny"
echo ""

# 3. Využití zdrojů jednotlivými procesy
echo "=== 3. Spotřeba CPU/RAM procesů ==="
ps -eo pid,pcpu,pmem,rss,comm,args | grep -E "litellm|webapp.py|ttyd|python3" | grep -v grep | head -10
echo ""

# 4. Rychlost endpointů (lokální latence)
echo "=== 4. Rychlost endpointů ==="
source venv-litellm/bin/activate 2>/dev/null
set -a; source .env 2>/dev/null; set +a

echo -n "Webapp /health:          "
time curl -fsS -o /dev/null http://127.0.0.1:8080/health 2>&1 | grep real || echo "NEBĚŽÍ"

echo -n "Proxy /v1/models:        "
time curl -fsS -o /dev/null \
  -H "Authorization: Bearer ${LITELLM_MASTER_KEY}" \
  http://127.0.0.1:4000/v1/models 2>&1 | grep real || echo "NEBĚŽÍ"

echo -n "SAFE-OI ttyd (port 7681): "
if ss -tlnp 2>/dev/null | grep -q ":7681" || netstat -tlnp 2>/dev/null | grep -q ":7681"; then
  echo "běží"
else
  echo "neběží"
fi
echo ""

# 5. Test skutečného volání modelu (nejdůležitější)
echo "=== 5. Test rychlosti modelu (gemini-pro) ==="
echo "Posílám krátký prompt přes proxy..."
START=$(date +%s.%N)

RESPONSE=$(curl -s -w "\n%{http_code}" -X POST http://127.0.0.1:4000/v1/chat/completions \
  -H "Authorization: Bearer ${LITELLM_MASTER_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-pro",
    "messages": [{"role": "user", "content": "Odpověz jedním slovem: funguje"}],
    "max_tokens": 10
  }' 2>/dev/null)

END=$(date +%s.%N)
DURATION=$(echo "$END - $START" | bc 2>/dev/null || echo "neznámá")

HTTP_CODE=$(echo "$RESPONSE" | tail -1)
BODY=$(echo "$RESPONSE" | head -n -1)

echo "HTTP kód:     $HTTP_CODE"
echo "Doba odpovědi: ${DURATION} sekund"
echo "Odpověď (zkráceně):"
echo "$BODY" | head -c 300
echo ""
echo ""

# 6. Poslední chyby z logů
echo "=== 6. Poslední řádky z logů (hledám chyby) ==="
echo "--- LiteLLM (posledních 8 řádků) ---"
tail -8 /tmp/cb26-litellm.log 2>/dev/null || echo "Log neexistuje"
echo ""
echo "--- Webapp (posledních 8 řádků) ---"
tail -8 /tmp/cb26-webapp.log 2>/dev/null || echo "Log neexistuje"
echo ""

echo "=============================================="
echo "Diagnostika hotová."
echo "=============================================="
