Skip to main content

Interface: PipelineLoopConfig<TInput>

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

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:81

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:78

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:87

Maximum duration in milliseconds for unbounded loops


maxIterations?

optional maxIterations?: number

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

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:90

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:96

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:99

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:93

Callback for tool call events

Parameters

result

TInput

ctx

LoopContext

Returns

void | Promise<void>


typeField?

optional typeField?: string

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

Field name to extract type from result (default: 'type')


verbose?

optional verbose?: boolean

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

Enable verbose logging