Source code for kittycad.models.ml_tool_result

from typing import Dict, Literal, Optional, Union

from pydantic import BaseModel, ConfigDict, Field, RootModel
from typing_extensions import Annotated


[docs] class OptionTextToCad(BaseModel): """Response from the `TextToCad` tool.""" error: Optional[str] = None outputs: Optional[Dict[str, str]] = None project_name: Optional[str] = None status_code: int type: Literal["text_to_cad"] = "text_to_cad" model_config = ConfigDict(protected_namespaces=())
[docs] class OptionEditKclCode(BaseModel): """Response from the `EditKclCode` tool.""" error: Optional[str] = None outputs: Optional[Dict[str, str]] = None project_name: Optional[str] = None status_code: int type: Literal["edit_kcl_code"] = "edit_kcl_code" model_config = ConfigDict(protected_namespaces=())
[docs] class OptionMechanicalKnowledgeBase(BaseModel): """Mechanical knowledge base response.""" response: str type: Literal["mechanical_knowledge_base"] = "mechanical_knowledge_base" model_config = ConfigDict(protected_namespaces=())
MlToolResult = RootModel[ Annotated[ Union[ OptionTextToCad, OptionEditKclCode, OptionMechanicalKnowledgeBase, ], Field(discriminator="type"), ] ]