Spaces:
Sleeping
Sleeping
File size: 1,062 Bytes
990895d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | """Authenticated settings status without exposing secrets.
Reports coach configuration state and durable data readiness.
"""
from fastapi import APIRouter, Depends, Request
from app.config import APP_VERSION
from app.deps import require_login
from app.models import ApiEnvelope, SettingsStatusData, ok
router = APIRouter(
prefix="/api/settings",
tags=["settings"],
dependencies=[Depends(require_login)],
)
@router.get("/status", response_model=ApiEnvelope)
def settings_status(request: Request) -> dict[str, object]:
"""Return non-secret application and coach status."""
settings = request.app.state.settings
paths = request.app.state.paths
data_ok = paths.root.is_dir() and paths.entries.exists() and paths.daily.exists()
return ok(
SettingsStatusData(
app_name=settings.app_name,
app_version=APP_VERSION,
coach_configured=bool(settings.openrouter_api_key),
model=settings.openrouter_model,
data_ok=data_ok,
env=settings.env,
)
)
|