mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-31 19:45:15 +02:00
Re-apply the trim style after the prior refactor commit re-introduced a multi-line docstring on AutomationRun. - AutomationRun: drop the four-line docstring explaining where per-step session ids live; move the note to a single-line inline comment right above ``step_results`` where it's actionable. - AutomationDefinition: drop the design-plan cross-reference; the module docstring already establishes what the file is. No behaviour change.
26 lines
898 B
Python
26 lines
898 B
Python
"""``AutomationDefinition`` — top-level envelope persisted in ``automations.definition``."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
from .execution import ExecutionBlock
|
|
from .inputs import InputsBlock
|
|
from .metadata import MetadataBlock
|
|
from .plan_step import PlanStep
|
|
from .trigger_spec import TriggerSpec
|
|
|
|
|
|
class AutomationDefinition(BaseModel):
|
|
"""Top-level shape of an automation."""
|
|
|
|
model_config = ConfigDict(extra="forbid")
|
|
|
|
schema_version: str = "1.0"
|
|
name: str = Field(..., min_length=1, max_length=200)
|
|
goal: str | None = None
|
|
inputs: InputsBlock | None = None
|
|
triggers: list[TriggerSpec] = Field(default_factory=list)
|
|
plan: list[PlanStep] = Field(..., min_length=1)
|
|
execution: ExecutionBlock = Field(default_factory=ExecutionBlock)
|
|
metadata: MetadataBlock = Field(default_factory=MetadataBlock)
|