#!/usr/bin/env bash set -euo pipefail source "$(dirname "${BASH_SOURCE[0]}")/_common.sh" svc_line() { local name="$1" pidfile="$2" if pid_alive "$pidfile"; then c_green " $name: running (pid $(cat "$pidfile"))"; else c_red " $name: stopped"; fi } echo "Research-Link-AI status" echo "Processes:" svc_line "backend " "$BACKEND_PID" if [ -f "$FRONTEND_DIR/package.json" ] || [ -f "$FRONTEND_PID" ]; then svc_line "frontend" "$FRONTEND_PID" else c_dim " frontend: served by backend" fi # Prefer live config from the backend; fall back to .env values. CFG="$(python - "$HEALTH_URL/api/config" <<'PY' 2>/dev/null || true import sys, json, urllib.request try: d = json.load(urllib.request.urlopen(sys.argv[1], timeout=1)) print(f"{d['mode']}|{d['provider']}|{d['model']}|{d['key_required']}|{d['key_configured']}") except Exception: pass PY )" echo "URLs:" echo " Open in browser: ${BACKEND_URL}/" echo " Backend / API : ${BACKEND_URL} (API: ${BACKEND_URL}/api)" [ "$ADV_HOST" != "127.0.0.1" ] && echo " Local on server: http://127.0.0.1:${BACKEND_PORT}/" || true echo "LLM:" if [ -n "$CFG" ]; then IFS='|' read -r m p mdl kreq kcfg <<< "$CFG" echo " mode: $m provider: $p model: $mdl" [ "$kreq" = "True" ] && echo " api key: $([ "$kcfg" = "True" ] && echo configured || echo MISSING)" || echo " api key: not required" else echo " mode: $LLM_MODE model: $LLM_MODEL (backend offline; values from .env)" is_external_mode && echo " api key: $(key_configured)" || echo " api key: not required" fi echo "Logs:" echo " $BACKEND_LOG" [ -f "$FRONTEND_LOG" ] && echo " $FRONTEND_LOG" || true