62 lines
1.4 KiB
Python
62 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Any, Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class MessagePart(BaseModel):
|
|
type: str
|
|
text: str | None = None
|
|
data: dict[str, Any] | None = None
|
|
|
|
|
|
class ChatMessage(BaseModel):
|
|
id: str
|
|
role: Literal["user", "assistant"]
|
|
parts: list[MessagePart]
|
|
|
|
|
|
class ChatRequest(BaseModel):
|
|
conversation_id: str | None = None
|
|
selected_task_id: str | None = None
|
|
messages: list[ChatMessage] = Field(default_factory=list)
|
|
provider_id: str | None = None
|
|
model_id: str | None = None
|
|
|
|
|
|
class ConversationPatch(BaseModel):
|
|
current_task_id: str | None = None
|
|
attachments: list[dict[str, Any]] | None = None
|
|
|
|
|
|
class ParameterUpdate(BaseModel):
|
|
values: dict[str, float] = Field(default_factory=dict)
|
|
|
|
|
|
class ModifyRequest(BaseModel):
|
|
operation: str
|
|
selection: dict[str, Any] = Field(default_factory=dict)
|
|
parameters: dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class TaskArtifact(BaseModel):
|
|
path: str
|
|
role: str
|
|
kind: str
|
|
|
|
|
|
class CadResult(BaseModel):
|
|
task_id: str
|
|
revision_id: str
|
|
cdsl_path: str
|
|
step_path: str
|
|
glb_path: str
|
|
report_path: str
|
|
parameters_path: str | None = None
|
|
selector_path: str | None = None
|
|
edges_path: str | None = None
|
|
summary: str
|
|
reference_ids: list[str] = Field(default_factory=list)
|
|
engine: str = "cdsl_only"
|