Улучшить валидацию входа workflow и вынести схемы ответов.
Подключена pydantic-валидация input_schema для сценария, а модели успешного и ошибочного результата запуска вынесены в отдельный модуль для более явных boundary-контрактов.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Literal
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class RunError(BaseModel):
|
||||
code: str
|
||||
message: str
|
||||
|
||||
|
||||
class ScenarioRunBase(BaseModel):
|
||||
scenario_id: str
|
||||
status: Literal["success", "failed"]
|
||||
input: dict[str, Any]
|
||||
|
||||
|
||||
class ScenarioRunFailed(ScenarioRunBase):
|
||||
status: Literal["failed"] = "failed"
|
||||
scenario_name: str | None = None
|
||||
error: RunError
|
||||
|
||||
|
||||
class ScenarioRunSuccess(ScenarioRunBase):
|
||||
status: Literal["success"] = "success"
|
||||
workflow_name: str
|
||||
scenario_name: str
|
||||
result: dict[str, Any]
|
||||
run_id: str | None = None
|
||||
session_id: str | None = None
|
||||
Reference in New Issue
Block a user