/** * AgentOrchestrator - Manages agent handoffs and workflow execution * * @module agents/orchestrator */ import type { HandoffRequest, HandoffResult } from "./types.js"; /** * Definition of a workflow containing sequential agent steps. */ export interface Workflow { /** Unique name identifier for the workflow */ name: string; /** Human-readable description of the workflow's purpose */ description: string; /** Ordered sequence of agent steps to execute */ steps: WorkflowStep[]; } /** * A single step in a workflow execution. */ export interface WorkflowStep { /** Name of the agent to execute for this step */ agent: string; /** Optional mapping to extract data from previous outputs */ inputMapping?: Record; } /** * Result of executing a complete workflow. */ export interface WorkflowResult { /** Whether the workflow completed successfully */ success: boolean; /** Outputs from each step, keyed by agent name */ outputs: Record; /** Total time in milliseconds to execute the workflow */ executionTime: number; /** Detailed results for each step */ steps: StepResult[]; /** Error message if the workflow failed */ error?: string; } /** * Result of executing a single step in a workflow. */ export interface StepResult { /** Name of the agent that executed this step */ agent: string; /** Whether the step completed successfully */ success: boolean; /** Output from the agent */ output?: unknown; /** Time in milliseconds to execute this step */ executionTime: number; /** Error message if the step failed */ error?: string; } /** * Orchestrator for managing agent handoffs and multi-step workflows. * Coordinates execution between agents and manages data flow. */ export declare class AgentOrchestrator { private toolExecutor; /** * Sets the tool executor function for invoking MCP tools. * * @param executor - Function that executes an MCP tool by name with arguments */ setToolExecutor(executor: (toolName: string, args: unknown) => Promise): void; /** * Executes a handoff to a target agent. * * @param request - The handoff request containing target agent and context * @returns Result of the handoff including success status and output */ executeHandoff(request: HandoffRequest): Promise; /** * Executes a multi-step workflow with sequential agent handoffs. * * @param workflow - The workflow definition containing steps * @param input - Initial input data for the first step * @returns Result of the workflow execution including all step outputs */ executeWorkflow(workflow: Workflow, input: unknown): Promise; /** * Maps input values from previous outputs based on mapping configuration. * * @param outputs - Record of previous outputs from workflow steps * @param mapping - Mapping configuration with keys to path expressions * @returns Mapped input object */ private mapInput; /** * Retrieves a value from a nested object using a dot-notation path. * * @param obj - The object to traverse * @param path - Dot-separated path to the value (e.g., "user.name") * @returns The value at the path, or undefined if not found */ private getValueByPath; } /** * Singleton instance of the AgentOrchestrator. * Use this export for global agent orchestration. */ export declare const agentOrchestrator: AgentOrchestrator; //# sourceMappingURL=orchestrator.d.ts.map