mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-18 15:48:04 +02:00
22 lines
945 B
Python
22 lines
945 B
Python
from pydantic import BaseModel, Field
|
|
from typing import Any, Optional, List
|
|
from backend.core.shared_structs.agent.MessageLog import MessageLog
|
|
from backend.core.shared_structs.agent.ApprovalRequest import ApprovalRequest
|
|
|
|
class AgentSnapshot(BaseModel):
|
|
"""Wire-format representation of an Agent — no runtime fields (task, lock, on_event)."""
|
|
session_id: str = Field(..., serialization_alias="id")
|
|
model: str
|
|
mode: str
|
|
status: str
|
|
dashboard_id: Optional[str] = None
|
|
branch_id: str = "main"
|
|
parent_id: Optional[str] = None
|
|
messages: MessageLog = Field(default_factory=MessageLog)
|
|
pending_approvals: List[ApprovalRequest] = Field(default_factory=list)
|
|
sub_agents: list = Field(default_factory=list)
|
|
sub_branches: list = Field(default_factory=list)
|
|
|
|
def model_dump(self, **kwargs: Any) -> dict[str, Any]:
|
|
kwargs.setdefault("by_alias", True)
|
|
return super().model_dump(**kwargs) |