"""动作类型统一入口,新增操作时在这里显式加入联合类型""" from typing import Annotated from pydantic import Field, TypeAdapter from .add import AddAction from .base import ActionModel, BaseAction from .move import MoveAction from .resize import ResizeAction from .update import UpdateAction # 按 type 选择对应模型,不维护重复的操作名称映射 Action = Annotated[ AddAction | MoveAction | ResizeAction | UpdateAction, Field(discriminator="type") ] action_adapter = TypeAdapter(Action) class ActionBatch(ActionModel): actions: list[Action] = Field(description="按数组顺序执行的动作列表,允许为空") __all__ = [ "Action", "ActionBatch", "AddAction", "BaseAction", "MoveAction", "ResizeAction", "UpdateAction", "action_adapter", ]