Composer that fans out one dispatch event into N parallel call events.
Each emitted event carries one parallel step to execute. With count: N
on the subsequent ExecuteOneCall stage, these events are processed
concurrently across GenStage workers (in async mode).
If there are no parallel steps, the event passes through unchanged — the pipeline structure exists but acts as a pass-through.
ALF Composer Contract
Returns {events, memo} where events is a list of Event structs,
one per parallel step. Memo is unused (nil).
Summary
Functions
Fan-out function for the ALF Composer.
Functions
@spec call(LlmCore.Agent.ToolDispatch.Event.t(), nil, keyword()) :: {[LlmCore.Agent.ToolDispatch.Event.t()], nil}
Fan-out function for the ALF Composer.
Parameters
event—%Event{}withplan.parallelstepsmemo— Composer memo (unused, alwaysnil)opts— ALF composer options (unused)
Returns
{[Event.t()], nil} — One event per parallel step, or the original
event wrapped in a list if there are no parallel steps.