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

+52
View File
@@ -0,0 +1,52 @@
"""Application service for the Agent Management read model."""
from app.agent_registry.models import (
AgentRegistryAgent,
AgentRegistryData,
AgentRegistrySite,
AgentRegistryZone,
)
class AgentRegistryService:
def __init__(self, repository):
self.repository = repository
def list_registry(self) -> AgentRegistryData:
rows = self.repository.list_registry()
sites = [
AgentRegistrySite(**row)
for row in rows["sites"]
]
zones = [
AgentRegistryZone(**row)
for row in rows["zones"]
]
agents: list[AgentRegistryAgent] = []
for row in rows["agents"]:
zone_id = row.get("agent_zone_id")
zone_enabled = row.get("agent_zone_enabled")
if zone_id is None:
routing_state = "unassigned"
elif zone_enabled is False:
routing_state = "disabled"
else:
routing_state = "assigned"
agents.append(
AgentRegistryAgent(
**row,
routing_state=routing_state,
)
)
return AgentRegistryData(
agents=agents,
sites=sites,
zones=zones,
)