class ErrorEvent(BaseModel):
type: Literal["error"] = "error"
error: str
class TextEvent(BaseModel):
type: Literal["text"] = "text"
content: str
class ToolCallStartEvent(BaseModel):
type: Literal["tool-call-start"] = "tool-call-start"
tool_call_id: str = Field(..., alias="toolCallId")
tool_call_name: str = Field(..., alias="toolCallName")
class ToolCallArgsEvent(BaseModel):
type: Literal["tool-call-args"] = "tool-call-args"
tool_call_id: str = Field(..., alias="toolCallId")
delta: str
class ToolCallEndEvent(BaseModel):
type: Literal["tool-call-end"] = "tool-call-end"
tool_call_id: str = Field(..., alias="toolCallId")
class ToolCallResultEvent(BaseModel):
type: Literal["tool-result"] = "tool-result"
tool_call_id: str = Field(..., alias="toolCallId")
result: str
class InterruptEvent(BaseModel):
type: Literal["interrupt"] = "interrupt"
id: str
reason: Optional[str] = None
payload: Any
SendMessageEvent = Union[
ErrorEvent, InterruptEvent, TextEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallResultEvent, ToolCallStartEvent
]