Unique identifier for this step. Used for logging, dependency tracking, and error messages.
Name of the predicate that determines when this step is complete. The predicate is evaluated after each iteration.
Maximum number of iterations to run this step. If the predicate is not satisfied before this limit, the step fails.
List of tools to execute in each iteration. Tools are run in sequence, and their outputs are merged into the data.
OptionaldependsOptional list of step names this step depends on. This step will wait for all dependencies to complete before starting. Enables DAG-based parallelism - steps without common dependencies run in parallel.
A step in the DAFT workflow.
Steps are executed iteratively until a predicate is satisfied or maxIter is reached. Steps with dependencies will wait for those dependencies to complete before starting.
Example