A terminal dashboard that polls the router's GET /metrics and renders quota burn vs plan, per-model cost/energy/carbon, verdict mix, recent routing decisions, and health warnings. Auto-refresh with last-good-data error resilience and keyboard controls (q/Q/Ctrl+C quit, r refresh, 1-5 focus panels). Pins textual (deliberate UI-only dependency, imported only by tui.py, never by the service).
18 lines
700 B
Plaintext
18 lines
700 B
Plaintext
# Pinned. Recreating the venv with >= constraints silently jumped openai
|
|
# 2.53 -> 3.0 and httpx -> httpx2; a service that restarts on boot should not
|
|
# change its dependency tree underneath itself. Bump deliberately.
|
|
pyyaml==6.0.3
|
|
pydantic==2.13.4
|
|
requests==2.34.2
|
|
fastapi==0.141.1
|
|
uvicorn[standard]==0.52.1
|
|
openai==3.0.0
|
|
python-dotenv==1.2.2
|
|
pytest==9.1.1
|
|
pytest-cov==7.1.0
|
|
# Deliberate UI-bring-your-own-tool dependency: textual is the terminal
|
|
# dashboard framework for the monitoring TUI (tui.py), a SEPARATE entrypoint.
|
|
# It is only imported by tui.py — never by the service dispatch path, so the
|
|
# router itself has no UI dependency and dispatcher's import path is unchanged.
|
|
textual==8.2.8
|