"""Pydantic request/response models for the platform SDK REST API.""" from __future__ import annotations from typing import Literal from pydantic import BaseModel, Field class TaskConstraintsModel(BaseModel): driver_type: str | None = None capability_tags: list[str] = Field(default_factory=list) class TaskSubmissionRequest(BaseModel): goal: str | None = None workflow_definition_id: str | None = None constraints: TaskConstraintsModel = Field(default_factory=TaskConstraintsModel) class TaskSubmissionResponse(BaseModel): task_id: str class TaskStatusResponse(BaseModel): id: str status: str goal: str | None = None workflow_definition_id: str | None = None assigned_device_id: str | None = None assigned_host_id: str | None = None class DeviceResponse(BaseModel): device_id: str host_id: str driver_type: str status: str capability_tags: list[str] = Field(default_factory=list) class HostResponse(BaseModel): host_id: str address: str | None = None last_seen_at: str class PluginRegistrationRequest(BaseModel): name: str version: str entry_point_kind: Literal["driver", "tool", "skill"] target: str class PluginResponse(BaseModel): name: str version: str entry_point_kind: str target: str wired: bool class ErrorResponse(BaseModel): detail: str