feat(automation): add template run context builder

This commit is contained in:
CREDO23 2026-05-27 14:23:18 +02:00
parent de6da1b775
commit cb42b3a84f
2 changed files with 53 additions and 0 deletions

View file

@ -0,0 +1,12 @@
"""Sandboxed template engine for automation definitions."""
from __future__ import annotations
from .context import build_run_context
from .render import evaluate_predicate, render_template
__all__ = [
"build_run_context",
"evaluate_predicate",
"render_template",
]

View file

@ -0,0 +1,41 @@
"""Builder for the ``{run, inputs, steps}`` namespace exposed to every template."""
from __future__ import annotations
from collections.abc import Mapping
from datetime import datetime
from typing import Any
def build_run_context(
*,
run_id: int,
automation_id: int,
automation_name: str | None,
automation_version: int | None,
search_space_id: int | None,
creator_id: Any,
trigger_id: int | None,
trigger_type: str | None,
started_at: datetime | None,
attempt: int,
resolved_inputs: Mapping[str, Any],
step_outputs: Mapping[str, Any],
) -> dict[str, Any]:
"""Build the ``{run, inputs, steps}`` namespace exposed to every template."""
return {
"run": {
"id": run_id,
"automation_id": automation_id,
"automation_name": automation_name,
"automation_version": automation_version,
"search_space_id": search_space_id,
"creator_id": creator_id,
"trigger_id": trigger_id,
"trigger_type": trigger_type,
"started_at": started_at,
"attempt": attempt,
},
"inputs": dict(resolved_inputs),
"steps": dict(step_outputs),
}