import type { SessionTokenBudget } from '../../store/budget/index.js'; import type { SessionId, TurnId } from '../ids/index.js'; import type { LLMProvider } from '../provider/index.js'; import type { BaseAgentConfig, BaseAgentResult } from './base.js'; export interface StepContext { /** Shared authority; reserve a child scope before invoking another agent. */ budget: SessionTokenBudget; sessionId: SessionId; turnId: TurnId; stepIndex: number; totalSteps: number; previousResults: Map; provider?: LLMProvider; signal?: AbortSignal; env: Record; } export interface PipelineStep { name: string; description?: string; execute(input: TInput, context: StepContext): Promise; rollback?(input: TInput, context: StepContext): Promise; validate?(input: TInput): boolean; } export interface PipelineAgentConfig extends BaseAgentConfig { steps: PipelineStep[]; provider?: LLMProvider; continueOnError?: boolean; } export interface PipelineStepResult { stepName: string; status: 'completed' | 'failed' | 'skipped'; output?: unknown; error?: string; durationMs: number; } export interface PipelineAgentResult extends BaseAgentResult { stepResults: PipelineStepResult[]; completedSteps: number; totalSteps: number; } //# sourceMappingURL=pipeline.d.ts.map