"""Conversation-replica message rows (snake_case wire fields).""" from __future__ import annotations from typing import Any from pydantic import BaseModel, ConfigDict, Field from app.report_collaboration.contracts.enums import CollaborationMessageRole, MessageVisibility class CollaborationToolCall(BaseModel): model_config = ConfigDict(extra="forbid") id: str name: str args: str | dict[str, Any] class CollaborationMessage(BaseModel): model_config = ConfigDict(extra="forbid") message_id: str role: CollaborationMessageRole content: str = "" name: str | None = None tool_calls: list[CollaborationToolCall] = Field(default_factory=list) tool_call_id: str | None = None agent_run_id: str | None = None node_run_id: str | None = None phase_id: str | None = None visibility: MessageVisibility = "visible" metadata: dict[str, Any] | None = None command_id: str | None = None created_at: str completed_at: str | None = None