@memberjunction/ai-prompts 3.4.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,158 +1,335 @@
1
- /// <reference types="node" />
2
1
  import { AIPromptModelEntity } from "@memberjunction/core-entities";
3
2
  import { AIPromptEntityExtended, AIModelEntityExtended, AIPromptRunEntityExtended } from '@memberjunction/ai-core-plus';
4
3
  import { UserInfo } from '@memberjunction/core';
5
4
  import { ValidationResult } from '@memberjunction/global';
6
5
  import { ChatResult, ChatMessage, StreamingChatCallbacks } from '@memberjunction/ai';
6
+ /**
7
+ * Represents a single execution task in a parallel processing scenario.
8
+ * Contains all information needed to execute a prompt with a specific model configuration.
9
+ */
7
10
  export interface ExecutionTask {
11
+ /** Unique identifier for this execution task */
8
12
  taskId: string;
13
+ /** The AI prompt being executed */
9
14
  prompt: AIPromptEntityExtended;
15
+ /** The specific model to use for this execution */
10
16
  model: AIModelEntityExtended;
17
+ /** Optional prompt-model configuration with execution parameters */
11
18
  promptModel?: AIPromptModelEntity;
19
+ /** Execution group number for coordinated parallel processing */
12
20
  executionGroup: number;
21
+ /** Priority within the execution group (higher = execute first) */
13
22
  priority: number;
23
+ /** Rendered prompt text ready for model execution */
14
24
  renderedPrompt: string;
25
+ /** User context for authentication and permissions */
15
26
  contextUser?: UserInfo;
27
+ /** Configuration ID for environment-specific behavior */
16
28
  configurationId?: string;
29
+ /** Model-specific parameters (temperature, max tokens, etc.) */
17
30
  modelParameters?: Record<string, unknown>;
31
+ /** Optional conversation messages for multi-turn conversations */
18
32
  conversationMessages?: ChatMessage[];
33
+ /** How to use the rendered template in conversation messages */
19
34
  templateMessageRole?: 'system' | 'user' | 'none';
35
+ /** Optional cancellation token to abort the task execution */
20
36
  cancellationToken?: AbortSignal;
37
+ /** Optional callback for task-specific progress updates */
21
38
  onProgress?: (progress: {
22
39
  taskId: string;
23
40
  step: 'initializing' | 'executing' | 'validating' | 'completed';
24
41
  percentage: number;
25
42
  message: string;
26
43
  }) => void;
44
+ /** Optional callback for task-specific streaming updates */
27
45
  onStreaming?: (chunk: {
28
46
  taskId: string;
29
47
  content: string;
30
48
  isComplete: boolean;
31
49
  }) => void;
50
+ /** Optional streaming configuration for this task */
32
51
  streamingConfig?: AIPromptStreamingConfig;
52
+ /** Vendor-specific driver class to use (overrides model.DriverClass) */
33
53
  vendorDriverClass?: string;
54
+ /** Vendor-specific API name to use (overrides model.APIName) */
34
55
  vendorApiName?: string;
56
+ /** Selected vendor ID for this execution */
35
57
  vendorId?: string;
36
58
  }
59
+ /**
60
+ * Result of executing a single task in parallel processing.
61
+ * Contains execution metrics, results, and error information.
62
+ */
37
63
  export interface ExecutionTaskResult {
64
+ /** Reference to the original task */
38
65
  task: ExecutionTask;
66
+ /** Whether the execution was successful */
39
67
  success: boolean;
68
+ /** Raw result from the AI model */
40
69
  rawResult?: string;
70
+ /** Parsed/validated result based on OutputType */
41
71
  parsedResult?: unknown;
72
+ /** Error message if execution failed */
42
73
  errorMessage?: string;
74
+ /** The AIPromptRun entity created for tracking */
43
75
  promptRun?: AIPromptRunEntityExtended;
76
+ /** Execution time for this specific task in milliseconds */
44
77
  executionTimeMS: number;
78
+ /** Tokens used in this execution */
45
79
  tokensUsed?: number;
80
+ /** Validation result if output validation was performed */
46
81
  validationResult?: ValidationResult;
82
+ /** Model result with full API response details */
47
83
  modelResult?: ChatResult;
84
+ /** Start time of execution */
48
85
  startTime: Date;
86
+ /** End time of execution */
49
87
  endTime: Date;
88
+ /** Ranking assigned by judge (1 = best, 2 = second best, etc.) */
50
89
  ranking?: number;
90
+ /** Judge's rationale for this ranking */
51
91
  judgeRationale?: string;
92
+ /** Judge metadata (execution time, tokens used) */
52
93
  judgeMetadata?: {
53
94
  judgePromptId: string;
54
95
  judgeExecutionTimeMS: number;
55
96
  judgeTokensUsed?: number;
56
97
  };
98
+ /** Whether this task was cancelled */
57
99
  cancelled?: boolean;
100
+ /** Reason for cancellation if applicable */
58
101
  cancellationReason?: 'user_requested' | 'timeout' | 'parent_cancelled' | 'error';
102
+ /** Whether this task used streaming */
59
103
  wasStreamed?: boolean;
60
104
  }
105
+ /**
106
+ * Groups execution tasks by their execution group number.
107
+ * Tasks within the same group are executed in parallel,
108
+ * while different groups are executed sequentially.
109
+ */
61
110
  export interface ExecutionGroup {
111
+ /** Group number (0-based, executed in ascending order) */
62
112
  groupNumber: number;
113
+ /** All tasks assigned to this execution group */
63
114
  tasks: ExecutionTask[];
115
+ /** Maximum parallel executions for this group */
64
116
  maxParallelExecutions?: number;
65
117
  }
118
+ /**
119
+ * Callback function type for parallel execution progress updates
120
+ */
66
121
  export type ParallelExecutionProgressCallback = (progress: {
122
+ /** Current phase of parallel execution */
67
123
  phase: 'planning' | 'executing_group' | 'selecting_result' | 'completed';
124
+ /** Current execution group number (0-based) */
68
125
  currentGroup?: number;
126
+ /** Total number of execution groups */
69
127
  totalGroups?: number;
128
+ /** Number of completed tasks */
70
129
  completedTasks: number;
130
+ /** Total number of tasks */
71
131
  totalTasks: number;
132
+ /** Progress percentage (0-100) */
72
133
  percentage: number;
134
+ /** Human-readable status message */
73
135
  message: string;
74
136
  }) => void;
137
+ /**
138
+ * Configuration for parallel execution behavior.
139
+ * Controls how many tasks run simultaneously and resource limits.
140
+ */
75
141
  export interface ParallelExecutionConfig {
142
+ /** Maximum number of concurrent executions across all groups */
76
143
  maxConcurrentExecutions: number;
144
+ /** Timeout for individual task execution in milliseconds */
77
145
  taskTimeoutMS: number;
146
+ /** Whether to stop all execution if any task fails */
78
147
  failFast: boolean;
148
+ /** Whether to collect all results even if some tasks fail */
79
149
  collectPartialResults: boolean;
150
+ /** Maximum number of retries for failed tasks */
80
151
  maxRetries: number;
152
+ /** Base delay between retries in milliseconds */
81
153
  retryDelayMS: number;
154
+ /** Optional callback for parallel execution progress updates */
82
155
  onProgress?: ParallelExecutionProgressCallback;
156
+ /** Whether to enable streaming for compatible models */
83
157
  enableStreaming?: boolean;
84
158
  }
159
+ /**
160
+ * Aggregated result from parallel execution of multiple tasks.
161
+ * Contains all individual results plus summary metrics.
162
+ */
85
163
  export interface ParallelExecutionResult {
164
+ /** Whether the overall parallel execution was successful */
86
165
  success: boolean;
166
+ /** All individual task results */
87
167
  taskResults: ExecutionTaskResult[];
168
+ /** Results grouped by execution group */
88
169
  groupResults: Map<number, ExecutionTaskResult[]>;
170
+ /** Total execution time for all parallel processing in milliseconds */
89
171
  totalExecutionTimeMS: number;
172
+ /** Number of successful task executions */
90
173
  successCount: number;
174
+ /** Number of failed task executions */
91
175
  failureCount: number;
176
+ /** Number of cancelled task executions */
92
177
  cancelledCount: number;
178
+ /** Total tokens used across all executions */
93
179
  totalTokensUsed: number;
180
+ /** Error messages from failed executions */
94
181
  errors: string[];
182
+ /** Start time of parallel execution */
95
183
  startTime: Date;
184
+ /** End time of parallel execution */
96
185
  endTime: Date;
186
+ /** Selected best result if result selection was performed */
97
187
  selectedResult?: ExecutionTaskResult;
188
+ /** Whether the overall execution was cancelled */
98
189
  cancelled?: boolean;
190
+ /** Reason for cancellation if applicable */
99
191
  cancellationReason?: 'user_requested' | 'timeout' | 'error' | 'resource_limit';
192
+ /** Metadata about the execution process */
100
193
  executionMetadata?: {
194
+ /** Number of execution groups processed */
101
195
  groupsProcessed: number;
196
+ /** Average execution time per task */
102
197
  averageTaskTimeMS: number;
198
+ /** Peak concurrent executions achieved */
103
199
  peakConcurrentExecutions: number;
200
+ /** Whether result selection was performed */
104
201
  resultSelectionPerformed: boolean;
105
202
  };
106
203
  }
204
+ /**
205
+ * Strategy for determining the number of parallel executions.
206
+ * Maps to the ParallelizationMode field in AIPromptEntityExtended.
207
+ */
107
208
  export type ParallelizationStrategy = 'None' | 'StaticCount' | 'ConfigParam' | 'ModelSpecific';
209
+ /**
210
+ * Method for selecting the best result from multiple parallel executions.
211
+ * Determines how the final result is chosen when multiple results are available.
212
+ */
108
213
  export type ResultSelectionMethod = 'First' | 'Random' | 'PromptSelector' | 'Consensus';
214
+ /**
215
+ * Configuration for how to select the best result from parallel executions.
216
+ * Used when multiple models produce different outputs.
217
+ */
109
218
  export interface ResultSelectionConfig {
219
+ /** Method to use for selecting the best result */
110
220
  method: ResultSelectionMethod;
221
+ /** Prompt ID to use for AI-based result selection */
111
222
  selectorPromptId?: string;
223
+ /** Additional parameters for the selection method */
112
224
  selectionParameters?: Record<string, unknown>;
113
225
  }
226
+ /**
227
+ * Execution phase for progress tracking
228
+ */
114
229
  export type ExecutionPhase = 'initializing' | 'template_rendering' | 'model_selection' | 'model_execution' | 'result_validation' | 'result_selection' | 'completing';
230
+ /**
231
+ * Token usage information for progress updates
232
+ */
115
233
  export interface TokenUsageUpdate {
234
+ /** Prompt tokens used */
116
235
  promptTokens?: number;
236
+ /** Completion tokens generated */
117
237
  completionTokens?: number;
238
+ /** Total tokens (prompt + completion) */
118
239
  totalTokens?: number;
240
+ /** Cached tokens if applicable */
119
241
  cachedTokens?: number;
120
242
  }
243
+ /**
244
+ * Status update for execution phases
245
+ */
121
246
  export interface ExecutionStatusUpdate {
247
+ /** Current execution phase */
122
248
  phase: ExecutionPhase;
249
+ /** Human-readable description of current status */
123
250
  message: string;
251
+ /** Timestamp of this status update */
124
252
  timestamp: Date;
253
+ /** Progress percentage (0-100) if applicable */
125
254
  progressPercent?: number;
255
+ /** Current task ID (for parallel execution) */
126
256
  taskId?: string;
257
+ /** Execution metrics if available */
127
258
  metrics?: {
259
+ /** Elapsed time in milliseconds */
128
260
  elapsedTimeMS: number;
261
+ /** Token usage if available */
129
262
  tokenUsage?: TokenUsageUpdate;
263
+ /** Model being used */
130
264
  modelName?: string;
265
+ /** Vendor being used */
131
266
  vendorName?: string;
132
267
  };
133
268
  }
269
+ /**
270
+ * Progress update for parallel execution
271
+ */
134
272
  export interface ParallelExecutionProgress {
273
+ /** Number of tasks completed */
135
274
  completedTasks: number;
275
+ /** Total number of tasks */
136
276
  totalTasks: number;
277
+ /** Number of successful tasks */
137
278
  successfulTasks: number;
279
+ /** Number of failed tasks */
138
280
  failedTasks: number;
281
+ /** Number of cancelled tasks */
139
282
  cancelledTasks: number;
283
+ /** Current execution group */
140
284
  currentGroup: number;
285
+ /** Total execution groups */
141
286
  totalGroups: number;
287
+ /** Aggregated token usage across all completed tasks */
142
288
  totalTokenUsage: TokenUsageUpdate;
289
+ /** Total elapsed time in milliseconds */
143
290
  totalElapsedTimeMS: number;
291
+ /** Currently executing task IDs */
144
292
  activeTasks: string[];
145
293
  }
294
+ /**
295
+ * Enhanced streaming callbacks that extend BaseLLM StreamingChatCallbacks
296
+ * with AI Prompt Runner specific features
297
+ */
146
298
  export interface AIPromptStreamingCallbacks extends StreamingChatCallbacks {
299
+ /**
300
+ * Called when execution status changes (template rendering, model selection, etc.)
301
+ * @param update The status update information
302
+ */
147
303
  OnStatusUpdate?: (update: ExecutionStatusUpdate) => void;
304
+ /**
305
+ * Called with parallel execution progress updates
306
+ * @param progress Current parallel execution progress
307
+ */
148
308
  OnParallelProgress?: (progress: ParallelExecutionProgress) => void;
309
+ /**
310
+ * Called when a specific task in parallel execution completes
311
+ * @param taskResult The completed task result
312
+ * @param progress Current parallel execution progress
313
+ */
149
314
  OnTaskComplete?: (taskResult: ExecutionTaskResult, progress: ParallelExecutionProgress) => void;
315
+ /**
316
+ * Called when token usage is updated during execution
317
+ * @param usage Current token usage information
318
+ * @param taskId Optional task ID for parallel execution
319
+ */
150
320
  OnTokenUsage?: (usage: TokenUsageUpdate, taskId?: string) => void;
151
321
  }
322
+ /**
323
+ * Streaming configuration for AI Prompt execution
324
+ */
152
325
  export interface AIPromptStreamingConfig {
326
+ /** Whether to enable streaming responses */
153
327
  enabled: boolean;
328
+ /** Streaming callbacks for progress and content updates */
154
329
  callbacks?: AIPromptStreamingCallbacks;
330
+ /** Whether to aggregate streaming updates in parallel execution */
155
331
  aggregateParallelUpdates?: boolean;
332
+ /** Minimum interval between progress updates in milliseconds */
156
333
  progressUpdateIntervalMS?: number;
157
334
  }
158
335
  //# sourceMappingURL=ParallelExecution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParallelExecution.d.ts","sourceRoot":"","sources":["../src/ParallelExecution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParallelExecution.d.ts","sourceRoot":"","sources":["../src/ParallelExecution.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=ParallelExecution.js.map
@@ -1,6 +1,8 @@
1
- /// <reference types="node" />
2
- import { ExecutionTask, ExecutionTaskResult, ParallelExecutionConfig, ParallelExecutionResult, ResultSelectionConfig, ParallelExecutionProgress } from './ParallelExecution';
1
+ import { ExecutionTask, ExecutionTaskResult, ParallelExecutionConfig, ParallelExecutionResult, ResultSelectionConfig, ParallelExecutionProgress } from './ParallelExecution.js';
3
2
  import { AIPromptParams } from '@memberjunction/ai-core-plus';
3
+ /**
4
+ * Interface for progress callbacks to avoid circular dependency issues
5
+ */
4
6
  interface ProgressCallbacksInterface {
5
7
  getStreamingConfig?: () => {
6
8
  enabled?: boolean;
@@ -10,29 +12,206 @@ interface ProgressCallbacksInterface {
10
12
  };
11
13
  };
12
14
  }
15
+ /**
16
+ * Coordinates parallel execution of AI prompt tasks across multiple models and execution groups.
17
+ *
18
+ * This class manages the complex orchestration of:
19
+ * - Grouping tasks by execution group
20
+ * - Sequential execution of groups with parallel execution within groups
21
+ * - Result aggregation and selection
22
+ * - Error handling and partial result collection
23
+ * - Performance monitoring and metrics collection
24
+ * - Real-time progress tracking and streaming updates
25
+ */
13
26
  export declare class ParallelExecutionCoordinator {
14
27
  private readonly _defaultConfig;
15
28
  private _metadata;
29
+ /**
30
+ * Creates a new parallel execution coordinator with default configuration.
31
+ */
16
32
  constructor();
17
- executeTasksInParallel(params: AIPromptParams, tasks: ExecutionTask[], config?: Partial<ParallelExecutionConfig>, parentPromptRunId?: string, cancellationToken?: AbortSignal, progressCallbacks?: ProgressCallbacksInterface, agentRunId?: string): Promise<ParallelExecutionResult>;
33
+ /**
34
+ * Executes multiple tasks in parallel according to their execution groups.
35
+ *
36
+ * Tasks are grouped by their executionGroup property and executed sequentially by group.
37
+ * Within each group, tasks are executed in parallel up to the concurrency limit.
38
+ *
39
+ * @param tasks - Array of execution tasks to process
40
+ * @param config - Optional configuration to override defaults
41
+ * @param parentPromptRunId - Optional parent prompt run ID for hierarchical logging
42
+ * @param cancellationToken - Optional cancellation token to abort execution
43
+ * @param progressCallbacks - Optional callbacks for progress tracking
44
+ * @param agentRunId - Optional agent run ID to link prompt executions to parent agent run
45
+ * @returns Promise<ParallelExecutionResult> - Aggregated results from all executions
46
+ */
47
+ executeTasksInParallel(params: AIPromptParams, tasks: ExecutionTask[], config?: Partial<ParallelExecutionConfig>, parentPromptRunId?: string, cancellationToken?: AbortSignal, progressCallbacks?: ProgressCallbacksInterface, // Using interface to avoid circular dependency
48
+ agentRunId?: string): Promise<ParallelExecutionResult>;
49
+ /**
50
+ * Selects the best result from multiple parallel execution results.
51
+ *
52
+ * Uses various strategies to determine which result should be considered
53
+ * the "best" output from the parallel executions.
54
+ *
55
+ * @param results - Array of successful execution results to choose from
56
+ * @param config - Configuration for result selection method
57
+ * @param parentPromptRunId - Optional parent prompt run ID for hierarchical logging
58
+ * @returns Promise<ExecutionTaskResult | null> - The selected best result, or null if none suitable
59
+ */
18
60
  selectBestResult(results: ExecutionTaskResult[], config: ResultSelectionConfig, parentPromptRunId?: string, cancellationToken?: AbortSignal): Promise<ExecutionTaskResult | null>;
61
+ /**
62
+ * Groups execution tasks by their execution group number.
63
+ * Tasks with the same group number will be executed in parallel.
64
+ *
65
+ * @param tasks - Array of tasks to group
66
+ * @returns ExecutionGroup[] - Sorted array of execution groups
67
+ */
19
68
  private groupTasksByExecutionGroup;
69
+ /**
70
+ * Executes execution groups sequentially, with parallel execution within each group.
71
+ *
72
+ * @param groups - Array of execution groups to process
73
+ * @param config - Execution configuration
74
+ * @param parentPromptRunId - Optional parent prompt run ID for tracking
75
+ * @param cancellationToken - Optional cancellation token to abort execution
76
+ * @param progressTracker - Progress tracker for monitoring execution
77
+ * @param agentRunId - Optional agent run ID to link prompt executions to parent agent run
78
+ * @returns Promise<ExecutionTaskResult[]> - All task results from all groups
79
+ */
20
80
  private executeGroupsSequentially;
81
+ /**
82
+ * Executes all tasks within a single execution group in parallel.
83
+ *
84
+ * @param group - The execution group to process
85
+ * @param config - Execution configuration
86
+ * @param parentPromptRunId - Optional parent prompt run ID for tracking
87
+ * @param cancellationToken - Optional cancellation token to abort execution
88
+ * @param progressTracker - Progress tracker for monitoring execution
89
+ * @param agentRunId - Optional agent run ID to link prompt executions to parent agent run
90
+ * @returns Promise<ExecutionTaskResult[]> - Results from all tasks in the group
91
+ */
21
92
  private executeGroupInParallel;
93
+ /**
94
+ * Executes a single task with retry logic and timeout handling.
95
+ *
96
+ * @param task - The execution task to process
97
+ * @param config - Execution configuration
98
+ * @param parentPromptRunId - Optional parent prompt run ID for hierarchical logging
99
+ * @param executionOrder - Execution order for this task
100
+ * @param agentRunId - Optional agent run ID to link prompt executions to parent agent run
101
+ * @returns Promise<ExecutionTaskResult> - Result of the task execution
102
+ */
22
103
  private executeTask;
104
+ /**
105
+ * Executes a single task without retry logic.
106
+ *
107
+ * @param task - The execution task to process
108
+ * @param timeoutMS - Timeout for the execution in milliseconds
109
+ * @param parentPromptRunId - Optional parent prompt run ID for hierarchical logging
110
+ * @param executionOrder - Execution order for this task
111
+ * @param agentRunId - Optional agent run ID to link prompt executions to parent agent run
112
+ * @returns Promise<ExecutionTaskResult> - Result of the task execution
113
+ */
23
114
  private executeSingleTask;
115
+ /**
116
+ * Aggregates individual task results into a comprehensive parallel execution result.
117
+ *
118
+ * @param taskResults - Array of all task execution results
119
+ * @param startTime - Start time of the parallel execution
120
+ * @param endTime - End time of the parallel execution
121
+ * @returns ParallelExecutionResult - Aggregated results with metrics
122
+ */
24
123
  private aggregateResults;
124
+ /**
125
+ * Selects the first successful result from the array.
126
+ *
127
+ * @param results - Array of successful results to choose from
128
+ * @returns ExecutionTaskResult - The first result in the array
129
+ */
25
130
  private selectFirstResult;
131
+ /**
132
+ * Selects a random result from the array.
133
+ *
134
+ * @param results - Array of successful results to choose from
135
+ * @returns ExecutionTaskResult - A randomly selected result
136
+ */
26
137
  private selectRandomResult;
138
+ /**
139
+ * Uses an AI prompt to select the best result from multiple options.
140
+ *
141
+ * @param results - Array of successful results to choose from
142
+ * @param selectorPromptId - ID of the prompt to use for selection
143
+ * @param parentPromptRunId - Optional parent prompt run ID for hierarchical logging
144
+ * @returns Promise<ExecutionTaskResult> - The AI-selected best result with all results ranked
145
+ */
27
146
  private selectResultWithPrompt;
147
+ /**
148
+ * Formats execution results for the judge prompt.
149
+ *
150
+ * @param results - Array of execution results to format
151
+ * @returns Structured data for judge evaluation
152
+ */
28
153
  private formatResultsForJudge;
154
+ /**
155
+ * Parses the judge's result to extract rankings.
156
+ *
157
+ * @param judgeResult - Raw result from the judge prompt
158
+ * @returns Array of ranking objects or null if parsing fails
159
+ */
29
160
  private parseJudgeResult;
161
+ /**
162
+ * Applies rankings to execution task results.
163
+ *
164
+ * @param results - Array of execution results to rank
165
+ * @param rankings - Rankings from the judge
166
+ */
30
167
  private applyRankingsToResults;
168
+ /**
169
+ * Selects the result that appears most frequently (consensus).
170
+ *
171
+ * @param results - Array of successful results to choose from
172
+ * @returns ExecutionTaskResult - The most common result
173
+ */
31
174
  private selectConsensusResult;
175
+ /**
176
+ * Builds the message array combining rendered prompt with conversation messages
177
+ */
32
178
  private buildMessageArray;
179
+ /**
180
+ * Creates a child AIPromptRun entity for individual parallel execution tracking.
181
+ *
182
+ * @param task - The execution task
183
+ * @param startTime - When the execution started
184
+ * @param parentPromptRunId - ID of the parent prompt run
185
+ * @param executionOrder - Execution order within the parallel group
186
+ * @param agentRunId - Optional agent run ID to link prompt executions to parent agent run
187
+ * @returns Promise<AIPromptRunEntityExtended> - The created child prompt run
188
+ */
33
189
  private createChildPromptRun;
190
+ /**
191
+ * Updates a child AIPromptRun entity with execution results.
192
+ *
193
+ * @param promptRun - The child prompt run entity to update
194
+ * @param modelResult - The result from the AI model
195
+ * @param endTime - When the execution completed
196
+ * @param executionTimeMS - Total execution time in milliseconds
197
+ */
34
198
  private updateChildPromptRun;
199
+ /**
200
+ * Creates a ResultSelector AIPromptRun entity for judge execution tracking.
201
+ *
202
+ * @param judgePrompt - The judge prompt being executed
203
+ * @param judgeData - The data being sent to the judge
204
+ * @param parentPromptRunId - ID of the parent prompt run
205
+ * @param executionOrder - Execution order within the parallel group
206
+ * @returns Promise<AIPromptRunEntityExtended> - The created result selector prompt run
207
+ */
35
208
  private createResultSelectorPromptRun;
209
+ /**
210
+ * Creates a delay for the specified number of milliseconds.
211
+ *
212
+ * @param ms - Number of milliseconds to delay
213
+ * @returns Promise<void> - Promise that resolves after the delay
214
+ */
36
215
  private delay;
37
216
  }
38
217
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ParallelExecutionCoordinator.d.ts","sourceRoot":"","sources":["../src/ParallelExecutionCoordinator.ts"],"names":[],"mappings":";AAIA,OAAO,EACL,aAAa,EACb,mBAAmB,EAEnB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EAE1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D,UAAU,0BAA0B;IAClC,kBAAkB,CAAC,EAAE,MAAM;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE;YACV,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB,KAAK,IAAI,CAAC;YAChG,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,CAAC;SACpE,CAAC;KACH,CAAC;CACH;AAyGD,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,SAAS,CAAW;;IA+Bf,sBAAsB,CACjC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzC,iBAAiB,CAAC,EAAE,MAAM,EAC1B,iBAAiB,CAAC,EAAE,WAAW,EAC/B,iBAAiB,CAAC,EAAE,0BAA0B,EAC9C,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC;IA8EtB,gBAAgB,CAC3B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,MAAM,EAAE,qBAAqB,EAC7B,iBAAiB,CAAC,EAAE,MAAM,EAC1B,iBAAiB,CAAC,EAAE,WAAW,GAC9B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAqCtC,OAAO,CAAC,0BAA0B;YA0CpB,yBAAyB;YA2DzB,sBAAsB;YA6EtB,WAAW;YAyEX,iBAAiB;IAmI/B,OAAO,CAAC,gBAAgB;IAiDxB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;YAaZ,sBAAsB;IAiHpC,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,iBAAiB;YAmDX,oBAAoB;YA+DpB,oBAAoB;YAsCpB,6BAA6B;IA4C3C,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"ParallelExecutionCoordinator.d.ts","sourceRoot":"","sources":["../src/ParallelExecutionCoordinator.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,mBAAmB,EAEnB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EAE1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;GAEG;AACH,UAAU,0BAA0B;IAClC,kBAAkB,CAAC,EAAE,MAAM;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE;YACV,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB,KAAK,IAAI,CAAC;YAChG,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,CAAC;SACpE,CAAC;KACH,CAAC;CACH;AA8FD;;;;;;;;;;GAUG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,SAAS,CAAW;IAE5B;;OAEG;;IAaH;;;;;;;;;;;;;OAaG;IACU,sBAAsB,CACjC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzC,iBAAiB,CAAC,EAAE,MAAM,EAC1B,iBAAiB,CAAC,EAAE,WAAW,EAC/B,iBAAiB,CAAC,EAAE,0BAA0B,EAAE,+CAA+C;IAC/F,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC;IAmEnC;;;;;;;;;;OAUG;IACU,gBAAgB,CAC3B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,MAAM,EAAE,qBAAqB,EAC7B,iBAAiB,CAAC,EAAE,MAAM,EAC1B,iBAAiB,CAAC,EAAE,WAAW,GAC9B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IA8BtC;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IA+BlC;;;;;;;;;;OAUG;YACW,yBAAyB;IAgDvC;;;;;;;;;;OAUG;YACW,sBAAsB;IAmEpC;;;;;;;;;OASG;YACW,WAAW;IA+DzB;;;;;;;;;OASG;YACW,iBAAiB;IA2H/B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IA2CxB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;;;;;OAOG;YACW,sBAAsB;IA2GpC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;;;;;;;;OASG;YACW,oBAAoB;IAuDlC;;;;;;;OAOG;YACW,oBAAoB;IA6BlC;;;;;;;;OAQG;YACW,6BAA6B;IAsC3C;;;;;OAKG;IACH,OAAO,CAAC,KAAK;CAGd"}