#!/usr/bin/env bash
set -euo pipefail

SELF_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=/usr/local/libexec/brixcli/common.sh
source "${SELF_DIR%/bin}/libexec/brixcli/common.sh"

load_config
ensure_runtime_dirs

printf '%-16s %-8s %-10s %-10s %s\n' "AGENT" "PORT" "SESSION" "TTYD" "URL"
printf '%-16s %-8s %-10s %-10s %s\n' "-----" "----" "-------" "----" "---"

while IFS=: read -r agent port created_at; do
  [[ -n "${agent:-}" ]] || continue
  session_state="$(systemctl is-active "brixcli-session@${agent}.service" 2>/dev/null || true)"
  ttyd_state="$(systemctl is-active "brixcli-agent@${agent}.service" 2>/dev/null || true)"
  printf '%-16s %-8s %-10s %-10s %s\n' "${agent}" "${port}" "${session_state:-unknown}" "${ttyd_state:-unknown}" "${EXTERNAL_SCHEME}://${agent}.${DOMAIN}"
done <"${AGENTS_DB}"
