from __future__ import annotations from datetime import datetime, timezone from typing import Any, Literal from pydantic import BaseModel, Field AgentMessageType = Literal[ "task_request", "task_update", "handoff", "verification_request", "verification_feedback", "interrupt_notice", ] class AgentMessage(BaseModel): message_id: str thread_id: str from_agent_id: str to_agent_id: str task_id: str | None = None reply_to_message_id: str | None = None message_type: AgentMessageType = "task_update" content_summary: str created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) payload: dict[str, Any] = Field(default_factory=dict)