mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
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)
62 lines
1.4 KiB
Python
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]
|