"""Admin routes: system status, voice library, agent config, governance, ethics.""" from __future__ import annotations import time from typing import Any from fastapi import APIRouter from fusionagi._logger import logger from fusionagi.api.dependencies import get_telemetry_tracer router = APIRouter() _start_time = time.monotonic() @router.get("/telemetry") def get_telemetry(task_id: str | None = None, limit: int = 100) -> dict: """Return telemetry traces (admin). Filter by task_id if provided.""" tracer = get_telemetry_tracer() if not tracer: return {"traces": []} traces = tracer.get_traces(task_id=task_id, limit=limit) return {"traces": traces} @router.get("/status") def get_system_status() -> dict[str, Any]: """Return system health and metrics.""" uptime = time.monotonic() - _start_time return { "status": "healthy", "uptime_seconds": round(uptime, 1), "active_tasks": 0, "active_agents": 6, "active_sessions": 0, "memory_usage_mb": None, "cpu_usage_percent": None, } @router.get("/voices") def list_voices() -> list[dict[str, Any]]: """List voice profiles.""" return [] @router.post("/voices") def add_voice(body: dict[str, Any]) -> dict[str, Any]: """Add a voice profile.""" voice_id = f"voice_{int(time.time())}" logger.info("Voice profile added", extra={"voice_id": voice_id, "name": body.get("name")}) return {"id": voice_id, "name": body.get("name", ""), "language": body.get("language", "en-US")} @router.get("/ethics") def get_ethics_lessons() -> list[dict[str, Any]]: """Return adaptive ethics lessons.""" return [] @router.get("/consequences") def get_consequences() -> list[dict[str, Any]]: """Return consequence engine records.""" return [] @router.get("/insights") def get_insights() -> list[dict[str, Any]]: """Return InsightBus cross-head insights.""" return [] @router.post("/conversation-style") def update_conversation_style(body: dict[str, Any]) -> dict[str, str]: """Update conversation style preferences.""" logger.info("Conversation style updated", extra={"style": body}) return {"status": "ok"}