| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- from typing import TYPE_CHECKING
- from pydantic import BaseModel, Field
- from core_domain import (
- TeamDefinitionContract,
- TeamMemberContract,
- TeamRunContract,
- TeamRunStatus,
- TeamStatus,
- TeamVersionContract,
- TeamVersionStatus,
- )
- from core_shared import JSONValue
- if TYPE_CHECKING:
- from app.db.models import TeamDefinition, TeamRun, TeamVersion
- class TeamCreateRequest(BaseModel):
- tenant_id: str
- code: str
- name: str
- description: str | None = None
- team_type: str = "collaborative"
- owner_user_id: str | None = None
- metadata_json: dict[str, JSONValue] = Field(default_factory=dict)
- class TeamStatusUpdateRequest(BaseModel):
- tenant_id: str
- status: TeamStatus
- class TeamResponse(TeamDefinitionContract):
- @classmethod
- def from_entity(cls, entity: "TeamDefinition") -> "TeamResponse":
- return cls.model_validate(entity, from_attributes=True)
- class TeamVersionCreateRequest(BaseModel):
- tenant_id: str
- team_id: str
- status: TeamVersionStatus = "draft"
- coordination_mode: str = "supervisor"
- objective: str | None = None
- member_refs: list[TeamMemberContract] = Field(default_factory=list)
- policy_json: dict[str, JSONValue] = Field(default_factory=dict)
- class TeamVersionResponse(TeamVersionContract):
- @classmethod
- def from_entity(cls, entity: "TeamVersion") -> "TeamVersionResponse":
- return cls.model_validate(entity, from_attributes=True)
- class TeamRunCreateRequest(BaseModel):
- tenant_id: str
- team_id: str
- team_version_id: str | None = None
- session_id: str | None = None
- input_text: str | None = None
- input_json: dict[str, JSONValue] | None = None
- class TeamRunStatusUpdateRequest(BaseModel):
- tenant_id: str
- status: TeamRunStatus
- worker_key: str | None = None
- output_text: str | None = None
- output_json: dict[str, JSONValue] | None = None
- error_code: str | None = None
- error_message: str | None = None
- class TeamRunExecuteRequest(BaseModel):
- tenant_id: str
- worker_key: str | None = None
- dry_run: bool = True
- class TeamRunResponse(TeamRunContract):
- @classmethod
- def from_entity(cls, entity: "TeamRun") -> "TeamRunResponse":
- return cls.model_validate(entity, from_attributes=True)
- class TeamRunExecuteResponse(BaseModel):
- run: TeamRunResponse
- member_run_count: int = 0
- dry_run: bool = True
- class TeamWorkerExecuteNextRequest(BaseModel):
- worker_key: str
- lease_seconds: int | None = Field(default=None, gt=0)
- dry_run: bool | None = None
- class TeamWorkerExecuteNextResponse(BaseModel):
- run: TeamRunResponse
- member_run_count: int = 0
- dry_run: bool = True
- released_lease_count: int = 0
|