@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
68 lines • 2.05 kB
TypeScript
/**
* Dependency Resolver
* @description Resolves dependencies between orchestration steps and creates execution plans
* @author Optimizely MCP Server
* @version 1.0.0
*/
import { OrchestrationStep, OrchestrationState, ExecutionPlan } from '../types/index.js';
export declare class DependencyResolver {
private logger;
/**
* Build execution plan with proper ordering and batching
*/
buildExecutionPlan(steps: OrchestrationStep[], state: OrchestrationState): Promise<ExecutionPlan>;
/**
* Build dependency graph from steps
*/
private buildDependencyGraph;
/**
* Check for circular dependencies using DFS
*/
private hasCircularDependencies;
/**
* Perform topological sort using Kahn's algorithm
*/
private topologicalSort;
/**
* Group steps into batches that can run in parallel
*/
private groupIntoBatches;
/**
* Estimate execution time for batches
*/
private estimateExecutionTime;
/**
* Estimate duration for a batch
*/
private estimateBatchDuration;
/**
* Resolve entity reference during execution
*/
resolveEntityReference(reference: string, state: OrchestrationState, entityRouter?: any): Promise<any>;
/**
* Find entity by pattern
*/
private findEntity;
/**
* Evaluate JSONPath expression
*/
private evaluateJSONPath;
/**
* Convert steps map to object for JSONPath
*/
private convertStepsToObject;
/**
* Execute a function on a resolved value
*/
private executeFunction;
/**
* Resolve all references in an object
*/
resolveReferences(obj: any, state: OrchestrationState, entityRouter?: any): Promise<any>;
/**
* Resolve ONLY JSONPath variables like ${step.field} - don't touch data structures
* This is the MINIMAL transformation needed for orchestration
*/
resolveJSONPathOnly(obj: any, state: OrchestrationState): Promise<any>;
}
//# sourceMappingURL=DependencyResolver.d.ts.map