Skip to main content

Interface: PipelineLoopConfig<TInput>

Defined in: packages/core/src/pipeline/types.ts:58

Configuration for iterative loop step. Loop iterates until condition returns false, maintaining the same type.

Example

const config: PipelineLoopConfig<ContentData> = {
condition: (result, state) => result.qualityScore < 8 && state.iteration < 5,
body: improveContent,
maxIterations: 5
};

Type Parameters

TInput

TInput

Input/output type (must remain same through iterations)

Properties

body

body: Processable<TInput, TInput> | ((input) => TInput | Promise<TInput>)

Defined in: packages/core/src/pipeline/types.ts:66

Processor to execute each iteration. Must return same type as input.


condition

condition: (result, state) => boolean | Promise<boolean>

Defined in: packages/core/src/pipeline/types.ts:63

Condition to continue looping. Receives current result and loop state. Returns true to continue, false to stop.

Parameters

result

TInput

state

LoopContext

Returns

boolean | Promise<boolean>


maxDuration?

optional maxDuration?: number

Defined in: packages/core/src/pipeline/types.ts:72

Maximum duration in milliseconds for unbounded loops


maxIterations?

optional maxIterations?: number

Defined in: packages/core/src/pipeline/types.ts:69

Maximum number of iterations allowed. Can be Infinity with maxDuration.


onIteration?

optional onIteration?: (result, state) => void | Promise<void>

Defined in: packages/core/src/pipeline/types.ts:75

Callback invoked after each iteration

Parameters

result

TInput

state

LoopContext

Returns

void | Promise<void>


onMessage?

optional onMessage?: (result, ctx) => void | Promise<void>

Defined in: packages/core/src/pipeline/types.ts:81

Callback for message events

Parameters

result

TInput

ctx

LoopContext

Returns

void | Promise<void>


onReasoning?

optional onReasoning?: (result, ctx) => void | Promise<void>

Defined in: packages/core/src/pipeline/types.ts:84

Callback for reasoning events

Parameters

result

TInput

ctx

LoopContext

Returns

void | Promise<void>


onToolCall?

optional onToolCall?: (result, ctx) => void | Promise<void>

Defined in: packages/core/src/pipeline/types.ts:78

Callback for tool call events

Parameters

result

TInput

ctx

LoopContext

Returns

void | Promise<void>