diff --git a/apps/agent-coordinator/src/app/routers/__init__.py b/apps/agent-coordinator/src/app/routers/__init__.py index d832fac3..f1c51a89 100644 --- a/apps/agent-coordinator/src/app/routers/__init__.py +++ b/apps/agent-coordinator/src/app/routers/__init__.py @@ -1,4 +1,4 @@ -from . import agents, ai, alerts, auth, consensus, health, messages, monitoring, tasks, users +from . import agents, ai, alerts, auth, consensus, health, messages, monitoring, swarm, tasks, users ROUTERS = [ health.router, @@ -11,4 +11,5 @@ ROUTERS = [ users.router, monitoring.router, alerts.router, + swarm.router, ] diff --git a/apps/agent-coordinator/src/app/routers/swarm.py b/apps/agent-coordinator/src/app/routers/swarm.py new file mode 100644 index 00000000..25095467 --- /dev/null +++ b/apps/agent-coordinator/src/app/routers/swarm.py @@ -0,0 +1,27 @@ +"""Swarm coordination router for AITBC Agent Coordinator.""" + +from typing import List, Optional +from fastapi import APIRouter, Query +from pydantic import BaseModel + +router = APIRouter(prefix="/swarm", tags=["Swarm"]) + + +class SwarmInfo(BaseModel): + """Swarm information model.""" + swarm_id: str + name: str + status: str + agent_count: int + task_count: int + + +@router.get("/list", response_model=List[SwarmInfo]) +async def list_swarms( + swarm_id: Optional[str] = Query(None, description="Filter by swarm ID"), + status: Optional[str] = Query(None, description="Filter by status"), + limit: int = Query(20, description="Number of swarms to list") +): + """List active swarms.""" + # Return empty list for now - backend not fully implemented + return []