"""长任务轮询响应 schema(C3 / ARCH §7.4)。 snake_case;前端经 OpenAPI→TS 客户端消费——改字段须 `pnpm gen:api` 重生成。 此前 `GET /jobs/{id}` 返回裸 `dict`,TS 端拿到弱类型;改为具体 Pydantic 模型提升类型。 """ from __future__ import annotations import uuid from typing import Any from pydantic import BaseModel class JobResponse(BaseModel): """长任务状态(`GET /jobs/{id}`):状态 + 进度 + 结果/错误。 `result` 是任务成功后的非密摘要(如 `{"connected": true, ...}`);`error` 是失败后的 面向用户文案(已脱敏,绝不含 `str(exc)`,见 `services/job_runner._classify_job_error`)。 """ id: uuid.UUID kind: str status: str progress: int = 0 result: dict[str, Any] | None = None error: str | None = None