Source code for kittycad.models.ml_copilot_server_message

from typing import Any, Dict, Optional, Union

from pydantic import RootModel

from ..models.ml_tool_result import MlToolResult
from .base import KittyCadBaseModel
from .reasoning_message import ReasoningMessage


[docs] class Delta(KittyCadBaseModel): """""" delta: str
[docs] class ToolOutput(KittyCadBaseModel): """""" result: MlToolResult
[docs] class Error(KittyCadBaseModel): """""" detail: str
[docs] class Info(KittyCadBaseModel): """""" text: str
reasoning = ReasoningMessage
[docs] class EndOfStream(KittyCadBaseModel): """""" whole_response: Optional[str] = None
[docs] class MlCopilotServerMessage0(KittyCadBaseModel): """Delta of the response, e.g. a chunk of text/tokens.""" delta: Dict[str, Any]
[docs] class MlCopilotServerMessage1(KittyCadBaseModel): """Completed tool call result.""" tool_output: Dict[str, Any]
[docs] class MlCopilotServerMessage2(KittyCadBaseModel): """Error sent by server.""" error: Dict[str, Any]
[docs] class MlCopilotServerMessage3(KittyCadBaseModel): """Log / banner text.""" info: Dict[str, Any]
[docs] class MlCopilotServerMessage4(KittyCadBaseModel): """Assistant reasoning / chain-of-thought (if you expose it).""" reasoning: ReasoningMessage
[docs] class MlCopilotServerMessage5(KittyCadBaseModel): """Marks the end of a streamed answer.""" end_of_stream: Dict[str, Any]
MlCopilotServerMessage = RootModel[ Union[ Delta, ToolOutput, Error, Info, ReasoningMessage, EndOfStream, MlCopilotServerMessage0, MlCopilotServerMessage1, MlCopilotServerMessage2, MlCopilotServerMessage3, MlCopilotServerMessage4, MlCopilotServerMessage5, ] ]