summary: Butler generic runner - delegated step execution description: >- Receives a serialized TaskContract and resolved step list from Butler, executes steps server-side with Butler-compatible semantics (cmd/check/wait/retry), and returns ok/summary/step_results/evidence. value: modules: - id: a summary: Execute Butler task steps value: type: rawscript content: '!inline execute_butler_task_steps.py' input_transforms: context: type: javascript expr: flow_input.context steps: type: javascript expr: flow_input.steps task_contract: type: javascript expr: flow_input.task_contract lock: '!inline execute_butler_task_steps.lock' language: python3 schema: $schema: 'https://json-schema.org/draft/2020-12/schema' type: object order: - task_contract - steps - context properties: context: type: object description: 'Execution context (target, payload)' default: {} steps: type: array description: Resolved SOP step list items: type: object task_contract: type: object description: Serialized Butler TaskContract required: - task_contract - steps