feat: add agent management

This commit is contained in:
lussierj committed 2026-08-27 17:00:56 +00:00
1 parent d9f0da694b
commit b9b5e5e36f
17 files changed
+1644 -1

No files matched your search

+48
View File
@@ -0,0 +1,48 @@
"""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),
},
)