import { UserInfo } from '@memberjunction/core'; import { MJAIPromptModelEntity } from '@memberjunction/core-entities'; import { ExecutionTask } from './ParallelExecution.js'; import { ChatMessage } from '@memberjunction/ai'; import { MJAIModelEntityExtended, MJAIPromptEntityExtended, TemplateMessageRole } from '@memberjunction/ai-core-plus'; /** * Plans and organizes execution tasks for AI prompts based on parallelization configuration. * * This class analyzes prompt configuration and creates execution plans that determine: * - Which models to use * - How many parallel executions to perform * - How to group executions for coordination * - Priority and ordering of tasks */ export declare class ExecutionPlanner { /** * Creates an execution plan for a prompt based on its parallelization configuration. * * Analyzes the prompt's ParallelizationMode and associated models to determine * the optimal execution strategy and task distribution. * * @param prompt - The AI prompt to create an execution plan for * @param promptModels - Associated model configurations for this prompt * @param allModels - All available AI models in the system * @param renderedPrompt - The rendered prompt text ready for execution * @param contextUser - User context for authentication and permissions * @param configurationId - Optional configuration ID for environment-specific behavior * @returns ExecutionTask[] - Array of execution tasks to be processed */ createExecutionPlan(prompt: MJAIPromptEntityExtended, promptModels: MJAIPromptModelEntity[], allModels: MJAIModelEntityExtended[], renderedPrompt: string, contextUser?: UserInfo, configurationId?: string, conversationMessages?: ChatMessage[], templateMessageRole?: TemplateMessageRole): ExecutionTask[]; /** * Creates a single execution task (no parallelization). * * Selects the best model based on prompt configuration and creates a single task. * * @param prompt - The AI prompt to execute * @param promptModels - Associated model configurations * @param allModels - All available models * @param renderedPrompt - Rendered prompt text * @param contextUser - User context * @param configurationId - Configuration ID * @returns ExecutionTask[] - Array containing single execution task */ private createSingleExecutionPlan; /** * Creates execution tasks based on a static count of parallel executions. * * Uses the ParallelCount field to determine how many parallel executions to create. * * @param prompt - The AI prompt to execute * @param promptModels - Associated model configurations * @param allModels - All available models * @param renderedPrompt - Rendered prompt text * @param contextUser - User context * @param configurationId - Configuration ID * @returns ExecutionTask[] - Array of execution tasks for parallel processing */ private createStaticCountPlan; /** * Creates execution tasks based on a configuration parameter. * * Looks up the parallel count from a configuration parameter specified in ParallelConfigParam. * * @param prompt - The AI prompt to execute * @param promptModels - Associated model configurations * @param allModels - All available models * @param renderedPrompt - Rendered prompt text * @param contextUser - User context * @param configurationId - Configuration ID * @returns ExecutionTask[] - Array of execution tasks for parallel processing */ private createConfigParamPlan; /** * Creates execution tasks based on model-specific parallelization settings. * * Uses individual AIPromptModel configurations to determine execution groups and parallel counts. * * @param prompt - The AI prompt to execute * @param promptModels - Associated model configurations * @param allModels - All available models * @param renderedPrompt - Rendered prompt text * @param contextUser - User context * @param configurationId - Configuration ID * @returns ExecutionTask[] - Array of execution tasks organized by execution groups */ private createModelSpecificPlan; /** * Selects the best model based on prompt configuration and available models. * * @param prompt - The AI prompt requiring a model * @param promptModels - Associated model configurations * @param allModels - All available models * @param configurationId - Configuration ID * @returns MJAIModelEntityExtended | null - The selected model or null if none suitable */ private selectBestModel; /** * Gets all available models for a prompt considering configuration constraints. * * @param prompt - The AI prompt * @param promptModels - Associated model configurations * @param allModels - All available models * @param configurationId - Configuration ID * @returns MJAIModelEntityExtended[] - Array of suitable models */ private getAvailableModels; /** * Determines the parallel count for a specific model configuration. * * @param promptModel - The prompt model configuration * @returns number - Number of parallel executions for this model */ private getModelParallelCount; /** * Looks up a configuration parameter value. * * @param paramName - Name of the configuration parameter * @param configurationId - Configuration context ID * @returns number | null - The parameter value or null if not found */ private getConfigurationParameter; /** * Parses model parameters from JSON string. * * @param modelParametersJson - JSON string containing model parameters * @returns Record | undefined - Parsed parameters or undefined */ private parseModelParameters; /** * Selects vendor information for a model, preferring inference providers */ private selectVendorForModel; } //# sourceMappingURL=ExecutionPlanner.d.ts.map