Step Types
Step type enum is defined in src/types.zig; validation rules are in src/workflow_validation.zig; execution behavior is in src/engine.zig.
Supported Types
taskfan_outmapreduceconditionapprovaltransformwaitrouterloopsub_workflowdebategroup_chatsaga
Validation Rules On `POST /runs`
- step ids must be unique and non-empty
depends_onmust be an array of known step ids- duplicate dependency entries are rejected
retry.max_attemptsandtimeout_msmust be positive integers
Type-specific requirements:
loop: requiresbodysub_workflow: requiresworkflowwait: requires one ofduration_ms,until_ms,signalrouter: requiresroutessaga: requiresbodydebate: requirescountgroup_chat: requiresparticipants
Example: Minimal DAG
{
"steps": [
{
"id": "research",
"type": "task",
"worker_tags": ["researcher"],
"prompt_template": "Research {{input.topic}}"
},
{
"id": "write",
"type": "task",
"depends_on": ["research"],
"worker_tags": ["writer"],
"prompt_template": "Write summary: {{steps.research.output}}"
}
],
"input": { "topic": "DAG engines" }
}