Skip to main content
Complete runnable example (renders with bunx smthrs graph):

Notes

  • Each generated task waits for the fork source to complete, then starts from a copy of its final agent conversation in a fresh, independent session. The source session is never mutated, and sibling entries never see each other’s sessions.
  • The fork edge is an implicit dependency, so no dependsOn is needed between the source and the fan-out tasks. Entries are independent of each other and run in parallel up to maxConcurrency.
  • Inside a <Loop>, fork resolves to the latest completed snapshot for the source task id.
  • Entry ids must be unique within the component; duplicates throw at render time. A missing agent or output (component-level or per-entry) also throws at render time, before graph extraction.
  • Graph validation fails fast with TASK_FORK_SOURCE_NOT_FOUND when fork names a task absent from the graph, and with TASK_FORK_CYCLE when the fork edge would close a dependency cycle.

Source

The <ForkFanOut> implementation and the files it imports, straight from the package source. This section is generated; edit the source, not this block.