#!/usr/bin/env bash

# Zeigt Container- und HTTP-Status des lokalen LLM-Servers (llama.cpp).
# Name/Port ueber ENV ueberschreibbar: CONTAINER_NAME=... HOST_PORT=... ./status-llm-server.sh

CONTAINER_NAME="${CONTAINER_NAME:-va_llm}"
HOST_PORT="${HOST_PORT:-8001}"

check_server() {
  local NAME="$1"
  local PORT="$2"

  printf "%-28s" "$NAME (Port $PORT):"

  # Docker-Status
  if docker ps --format '{{.Names}}' | grep -q "^${NAME}\$"; then
    printf " Container=\033[32mRUNNING\033[0m"
  elif docker ps -a --format '{{.Names}}' | grep -q "^${NAME}\$"; then
    printf " Container=\033[33mSTOPPED\033[0m"
  else
    printf " Container=\033[31mNOT FOUND\033[0m"
    echo
    return
  fi

  # HTTP-Erreichbarkeit
  if curl -s --max-time 3 "http://localhost:${PORT}/health" >/dev/null 2>&1 || \
     curl -s --max-time 3 "http://localhost:${PORT}/v1/models" >/dev/null 2>&1; then
    printf "  HTTP=\033[32mOK\033[0m"
  else
    printf "  HTTP=\033[31mNOT READY\033[0m"
  fi

  echo
}

echo "=== Voice-Assistant LLM-Server Status ==="
check_server "$CONTAINER_NAME" "$HOST_PORT"
