from collections.abc import Iterable from pydantic import BaseModel class InternalMessage(BaseModel): """ Standard message envelope for communication between agents within the Control Backend. :ivar to: The name(s) of the destination agent(s). :ivar sender: The name of the sending agent. :ivar body: The string payload (often a JSON-serialized model). :ivar thread: An optional thread identifier/topic to categorize the message (e.g., 'beliefs'). """ to: str | Iterable[str] sender: str | None = None body: str thread: str | None = None