"""前端设计请求:原始需求、当前大屏及可选补充上下文""" from pydantic import Field from .base import ExtensibleModel, JsonObject, NonBlankString from .screen import Screen class RequestContext(ExtensibleModel): selected_node_ids: list[NonBlankString] = Field(default_factory=list) screen_id: NonBlankString | None = None screen_revision: int | None = Field(default=None, ge=0) conversation_id: NonBlankString | None = None class DesignRequest(ExtensibleModel): prompt: NonBlankString screen: Screen context: RequestContext = Field(default_factory=RequestContext) # 只预留 JSON 描述入口,暂不规定材料种类,也不读取文件或远程资源 attachments: list[JsonObject] = Field(default_factory=list)