Files
roboco/roboco/api/schemas/groups.py
T
Renn F 204b959733 1. Blueprint updates - Added NO_GROUPS escalation docs to all 12 agent blueprints
2. Multi-image Docker architecture - Created role-specific Dockerfiles:
  - agent-base.Dockerfile (shared foundation)
  - agent-pm.Dockerfile, agent-dev-be.Dockerfile, agent-dev-fe.Dockerfile
  - agent-qa-be.Dockerfile, agent-qa-fe.Dockerfile, agent-doc.Dockerfile, agent-ux.Dockerfile
3. Orchestrator updates - roboco/runtime/orchestrator.py:
  - Added AGENT_IMAGES mapping and get_agent_image() function
  - Updated _ensure_agent_image() to build base + specialized images
  - Updated _spawn_container() to use role-specific image
  - Made _generate_mcp_config() role-aware (though kept notify for all since they need to receive)
2025-12-23 21:23:50 +01:00

62 lines
1.4 KiB
Python

"""
Groups API Schemas
Request/response models for group endpoints.
"""
from uuid import UUID
from pydantic import BaseModel, Field
from roboco.models.base import AgentRole
class GroupCreateRequest(BaseModel):
"""Request to create a group in a channel."""
channel_slug: str = Field(
...,
description="Channel slug where group will be created",
examples=["backend-cell", "dev-all"],
)
name: str = Field(
...,
min_length=1,
max_length=100,
description="Group name",
examples=["User Preferences Feature", "Sprint 12 Work"],
)
hierarchy_level: int = Field(
default=4,
ge=0,
le=4,
description=(
"Access level: 0=CEO, 1=Board, 2=Main PM, 3=Cell PM, 4=Cell Members"
),
)
allowed_roles: list[AgentRole] | None = Field(
default=None,
description="Specific roles that can access (overrides hierarchy)",
)
class GroupResponse(BaseModel):
"""Response for a created/retrieved group."""
id: UUID
name: str
channel_id: UUID
channel_slug: str
hierarchy_level: int
is_active: bool
total_sessions: int = 0
total_messages: int = 0
active_session_id: UUID | None = None
class GroupDetailResponse(GroupResponse):
"""Detailed group response with additional fields."""
allowed_roles: list[str]
members: list[UUID]