/** * Executes arpeggio workflow steps: data-driven batch processing. * * Reads data from a source, expands templates with batch data, * calls LLM for each batch (with concurrency control), * merges results, and returns an aggregated response. */ import type { WorkflowStep, WorkflowState, WorkflowResumePointEntry, WorkflowMaxSteps, WorkflowWideRule } from '../../models/types.js'; import type { RunAgentOptions } from '../../../agents/runner.js'; import type { OptionsBuilder } from './OptionsBuilder.js'; import type { StepExecutor } from './StepExecutor.js'; import type { PhaseName, PhasePromptParts, RuntimeStepResolution, StepRunResult } from '../types.js'; import type { LiveInterventionChannel } from '../live-intervention/types.js'; import type { InstructionContext } from '../instruction/instruction-context.js'; export interface ArpeggioRunnerDeps { readonly optionsBuilder: OptionsBuilder; readonly stepExecutor: StepExecutor; readonly liveIntervention?: LiveInterventionChannel; readonly getAbortSignal?: () => AbortSignal | undefined; readonly getCwd: () => string; readonly getReportDir: () => string; readonly getReportsRootDir: () => string; readonly getProjectCwd: () => string; readonly getTask: () => string; readonly getMaxSteps: () => WorkflowMaxSteps; readonly getWorkflowName: () => string; readonly getWorkflowRules: () => readonly WorkflowWideRule[] | undefined; readonly getReviewScope: () => InstructionContext['reviewScope']; readonly getWorkflowCallVars?: () => InstructionContext['workflowCallVars']; readonly getInteractive: () => boolean; readonly childProcessEnv?: RunAgentOptions['childProcessEnv']; readonly observabilityEnabled: boolean; readonly observabilityRunId?: string; readonly sanitizeObservabilityText?: (text: string) => string; readonly getCurrentWorkflowStack?: () => WorkflowResumePointEntry[] | undefined; readonly onPhaseStart?: (step: WorkflowStep, phase: 1 | 2 | 3, phaseName: PhaseName, instruction: string, promptParts: PhasePromptParts, phaseExecutionId?: string, iteration?: number) => void; readonly onPhaseComplete?: (step: WorkflowStep, phase: 1 | 2 | 3, phaseName: PhaseName, content: string, status: string, error?: string, phaseExecutionId?: string, iteration?: number) => void; } export declare class ArpeggioRunner { private readonly deps; constructor(deps: ArpeggioRunnerDeps); /** * Run an arpeggio step: read data, expand templates, call LLM, * merge results, and return an aggregated response. */ runArpeggioStep(step: WorkflowStep, state: WorkflowState, runtime?: RuntimeStepResolution, activeStepIteration?: number): Promise; /** Execute all batches with concurrency control */ private executeBatches; } //# sourceMappingURL=ArpeggioRunner.d.ts.map