"""Read-only Agent Management API.""" from typing import Annotated from fastapi import APIRouter, Depends, Response from app.agent_registry.dependencies import get_agent_registry_service from app.agent_registry.models import AgentRegistryResponse from app.agent_registry.service import AgentRegistryService from app.identity import require_permission router = APIRouter(tags=["agents"]) RegistryService = Annotated[ AgentRegistryService, Depends(get_agent_registry_service), ] AgentViewer = Annotated[ dict, Depends(require_permission("agents.view")), ] @router.get( "/api/agents", response_model=AgentRegistryResponse, ) def list_agents( response: Response, current_user: AgentViewer, service: RegistryService, ) -> AgentRegistryResponse: del current_user response.headers["Cache-Control"] = "no-store" data = service.list_registry() return AgentRegistryResponse( data=data, meta={ "agent_count": len(data.agents), "site_count": len(data.sites), "zone_count": len(data.zones), }, )