@memberjunction/testing-engine 2.129.0 → 2.130.1

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.
@@ -172,6 +172,25 @@ export interface AgentEvalExpectedOutcomes {
172
172
  * ```
173
173
  */
174
174
  export declare class AgentEvalDriver extends BaseTestDriver {
175
+ /**
176
+ * Entity name for AI Agent Runs - used for proper FK linkage in TestRun
177
+ */
178
+ private static readonly AI_AGENT_RUNS_ENTITY_NAME;
179
+ /**
180
+ * Cached Entity ID for AI Agent Runs
181
+ */
182
+ private _aiAgentRunsEntityId;
183
+ /**
184
+ * Returns true as this driver supports cancellation via AbortSignal.
185
+ * When timeout occurs, the AbortController signals the agent to stop execution.
186
+ */
187
+ supportsCancellation(): boolean;
188
+ /**
189
+ * Get the Entity ID for "MJ: AI Agent Runs" for proper FK linkage.
190
+ * Caches the result after first lookup.
191
+ * @private
192
+ */
193
+ private getAIAgentRunsEntityId;
175
194
  /**
176
195
  * Execute agent evaluation test.
177
196
  *
@@ -208,19 +227,16 @@ export declare class AgentEvalDriver extends BaseTestDriver {
208
227
  private loadAgent;
209
228
  /**
210
229
  * Execute agent (single or multi-turn) and return results.
230
+ * Uses AbortController for proper cancellation support when timeout occurs.
211
231
  * @private
212
232
  */
213
233
  private executeAgent;
214
234
  /**
215
235
  * Execute a single turn in a multi-turn test.
236
+ * Passes cancellation token to agent for proper timeout handling.
216
237
  * @private
217
238
  */
218
239
  private executeSingleTurn;
219
- /**
220
- * Create a timeout promise that rejects after specified milliseconds.
221
- * @private
222
- */
223
- private createTimeoutPromise;
224
240
  /**
225
241
  * Normalize input to multi-turn format for consistent processing.
226
242
  * @private
@@ -232,11 +248,6 @@ export declare class AgentEvalDriver extends BaseTestDriver {
232
248
  * @private
233
249
  */
234
250
  private extractOutputPayload;
235
- /**
236
- * Create bidirectional links between TestRun and multiple AgentRuns.
237
- * @private
238
- */
239
- private linkTestRunToAgentRuns;
240
251
  /**
241
252
  * Extract agent output from agent run.
242
253
  * @private
@@ -277,5 +288,22 @@ export declare class AgentEvalDriver extends BaseTestDriver {
277
288
  * @private
278
289
  */
279
290
  private calculateDurationMs;
291
+ /**
292
+ * Build conversation name with standardized format.
293
+ *
294
+ * Format:
295
+ * - Individual test (no suite): "[Test] TestName" or "[Test][tag1, tag2] TestName"
296
+ * - Suite test: "[1] TestName" or "[1][tag1, tag2] TestName"
297
+ * - Multi-turn adds " - Turn N" suffix
298
+ *
299
+ * @param testName - Name of the test
300
+ * @param sequence - Sequence number within suite (null for standalone tests)
301
+ * @param tagsJson - JSON string array of tags (null if no tags)
302
+ * @param turnNumber - Current turn number (1-indexed)
303
+ * @param totalTurns - Total number of turns
304
+ * @returns Formatted conversation name
305
+ * @private
306
+ */
307
+ private buildConversationName;
280
308
  }
281
309
  //# sourceMappingURL=AgentEvalDriver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentEvalDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/AgentEvalDriver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAmC,UAAU,EAAiB,MAAM,+BAA+B,CAAC;AAG3G,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACH,sBAAsB,EACtB,qBAAqB,EAIrB,gBAAgB,EAGnB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IAEJ;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,iBAAiB,GAAG,WAAW,GAAG,qBAAqB,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,eAAe,CAAC,EAAE;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IAEF;;;OAGG;IACH,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IAExB;;OAEG;IACH,mBAAmB,CAAC,EAAE;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,KAAK,CAAC;YAClB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;YAC3B,OAAO,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACN,CAAC;IAEF;;OAEG;IACH,eAAe,CAAC,EAAE;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzC;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,OAAO,CAAC;KAC3B,CAAC,CAAC;IAEH;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBACa,eAAgB,SAAQ,cAAc;IAC/C;;;;;;;;;;;;;OAaG;IACU,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6FrF;;;;;;;;;;;;OAYG;IACmB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqH3E;;;OAGG;YACW,SAAS;IAMvB;;;OAGG;YACW,YAAY;IAqD1B;;;OAGG;YACW,iBAAiB;IAoF/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAiBtB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;OAGG;YACW,sBAAsB;IA4BpC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;OAGG;YACW,sBAAsB;IAiCpC;;;OAGG;YACW,sBAAsB;IAmBpC;;;OAGG;YACW,qBAAqB;IA4BnC;;;OAGG;YACW,qBAAqB;IAwDnC;;;OAGG;YACW,uBAAuB;IAsDrC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAQ9B"}
1
+ {"version":3,"file":"AgentEvalDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/AgentEvalDriver.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
9
9
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10
10
  return c > 3 && r && Object.defineProperty(target, key, r), r;
11
11
  };
12
+ var AgentEvalDriver_1;
12
13
  Object.defineProperty(exports, "__esModule", { value: true });
13
14
  exports.AgentEvalDriver = void 0;
14
15
  const global_1 = require("@memberjunction/global");
@@ -53,7 +54,36 @@ const BaseTestDriver_1 = require("./BaseTestDriver");
53
54
  * }
54
55
  * ```
55
56
  */
56
- let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDriver {
57
+ let AgentEvalDriver = AgentEvalDriver_1 = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDriver {
58
+ constructor() {
59
+ super(...arguments);
60
+ /**
61
+ * Cached Entity ID for AI Agent Runs
62
+ */
63
+ this._aiAgentRunsEntityId = null;
64
+ }
65
+ /**
66
+ * Returns true as this driver supports cancellation via AbortSignal.
67
+ * When timeout occurs, the AbortController signals the agent to stop execution.
68
+ */
69
+ supportsCancellation() {
70
+ return true;
71
+ }
72
+ /**
73
+ * Get the Entity ID for "MJ: AI Agent Runs" for proper FK linkage.
74
+ * Caches the result after first lookup.
75
+ * @private
76
+ */
77
+ getAIAgentRunsEntityId() {
78
+ if (this._aiAgentRunsEntityId === null) {
79
+ const entityInfo = this._metadata.Entities.find(e => e.Name === AgentEvalDriver_1.AI_AGENT_RUNS_ENTITY_NAME);
80
+ this._aiAgentRunsEntityId = entityInfo?.ID || null;
81
+ if (!this._aiAgentRunsEntityId) {
82
+ this.logError(`Could not find Entity ID for ${AgentEvalDriver_1.AI_AGENT_RUNS_ENTITY_NAME}`);
83
+ }
84
+ }
85
+ return this._aiAgentRunsEntityId;
86
+ }
57
87
  /**
58
88
  * Execute agent evaluation test.
59
89
  *
@@ -69,7 +99,7 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
69
99
  * @returns Execution result
70
100
  */
71
101
  async Execute(context) {
72
- this.log('Starting agent evaluation', context.options.verbose);
102
+ this.logToTestRun(context, 'info', 'Starting agent evaluation');
73
103
  try {
74
104
  // Parse configuration
75
105
  const config = this.parseConfig(context.test);
@@ -80,16 +110,42 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
80
110
  // Normalize input to multi-turn format
81
111
  const turns = this.normalizeTurns(input);
82
112
  const isMultiTurn = turns.length > 1;
83
- this.log(`Executing agent: ${agent.Name} (${turns.length} turn${turns.length > 1 ? 's' : ''})`, context.options.verbose);
84
- // Execute agent (single or multi-turn)
85
- const { agentRuns, turnResults } = await this.executeAgent(agent, input, context.contextUser, context.test, config.maxExecutionTime, context.testRun);
86
- // Create bidirectional links for all agent runs
87
- await this.linkTestRunToAgentRuns(context.testRun, agentRuns);
113
+ this.logToTestRun(context, 'info', `Executing agent: ${agent.Name} (${turns.length} turn${turns.length > 1 ? 's' : ''})`);
114
+ // Execute agent (single or multi-turn) with timeout/cancellation support
115
+ const { agentRuns, turnResults, timedOut, timeoutMessage } = await this.executeAgent(agent, input, context.contextUser, context.test, config.maxExecutionTime, context.testRun, context);
116
+ // Handle timeout case
117
+ if (timedOut) {
118
+ this.logToTestRun(context, 'error', timeoutMessage || 'Test execution timed out');
119
+ // Build timeout result with partial data if available
120
+ const result = {
121
+ targetType: 'AI Agent',
122
+ targetLogEntityId: this.getAIAgentRunsEntityId() || undefined,
123
+ targetLogId: agentRuns.length > 0 ? agentRuns[agentRuns.length - 1].ID : '',
124
+ status: 'Timeout',
125
+ score: 0,
126
+ oracleResults: [],
127
+ passedChecks: 0,
128
+ failedChecks: 0,
129
+ totalChecks: 0,
130
+ inputData: input,
131
+ expectedOutput: expected,
132
+ actualOutput: agentRuns.length > 0 ? this.extractAgentOutput(agentRuns[agentRuns.length - 1]) : undefined,
133
+ errorMessage: timeoutMessage,
134
+ totalCost: turnResults.reduce((sum, tr) => sum + (tr.cost || 0), 0),
135
+ durationMs: turnResults.reduce((sum, tr) => sum + (tr.durationMs || 0), 0),
136
+ totalTurns: isMultiTurn ? turns.length : undefined,
137
+ turnResults: isMultiTurn ? turnResults : undefined,
138
+ allAgentRunIds: agentRuns.length > 0 ? agentRuns.map(ar => ar.ID) : undefined
139
+ };
140
+ // Note: Linking already happened via onAgentRunCreated callback for completed turns
141
+ return result;
142
+ }
143
+ // Note: Bidirectional linking already happened via onAgentRunCreated callback
88
144
  // Get final agent run and output
89
145
  const finalAgentRun = agentRuns[agentRuns.length - 1];
90
146
  const actualOutput = this.extractAgentOutput(finalAgentRun);
91
147
  // Run oracles
92
- this.log('Running oracles for evaluation', context.options.verbose);
148
+ this.logToTestRun(context, 'info', 'Running oracles for evaluation');
93
149
  const oracleResults = await this.runOraclesForMultiTurn(config, turns, turnResults, expected, context);
94
150
  // Calculate score and status
95
151
  // When oracles are disabled, consider test passed if final agent run succeeded
@@ -106,6 +162,7 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
106
162
  // Build result
107
163
  const result = {
108
164
  targetType: 'AI Agent',
165
+ targetLogEntityId: this.getAIAgentRunsEntityId() || undefined,
109
166
  targetLogId: finalAgentRun.ID,
110
167
  status,
111
168
  score,
@@ -123,11 +180,12 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
123
180
  turnResults: isMultiTurn ? turnResults : undefined,
124
181
  allAgentRunIds: isMultiTurn ? agentRuns.map(ar => ar.ID) : undefined
125
182
  };
126
- this.log(`Agent evaluation completed: ${status} (Score: ${score})`, context.options.verbose);
183
+ this.logToTestRun(context, 'info', `Agent evaluation completed: ${status} (Score: ${score})`);
127
184
  return result;
128
185
  }
129
186
  catch (error) {
130
- this.logError('Agent evaluation failed', error);
187
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
188
+ this.logToTestRun(context, 'error', `Agent evaluation failed: ${errorMessage}`);
131
189
  throw error;
132
190
  }
133
191
  }
@@ -257,47 +315,81 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
257
315
  }
258
316
  /**
259
317
  * Execute agent (single or multi-turn) and return results.
318
+ * Uses AbortController for proper cancellation support when timeout occurs.
260
319
  * @private
261
320
  */
262
- async executeAgent(agent, input, contextUser, test, maxExecutionTime, testRun) {
321
+ async executeAgent(agent, input, contextUser, test, maxExecutionTime, testRun, context) {
263
322
  // Normalize to multi-turn format
264
323
  const turns = this.normalizeTurns(input);
265
324
  const agentRuns = [];
266
325
  const turnResults = [];
326
+ // Get effective timeout using priority: config JSON > entity field > default
327
+ const config = this.parseConfig(test);
328
+ const effectiveTimeout = this.getEffectiveTimeout(test, config);
329
+ // Create AbortController for cancellation
330
+ const abortController = new AbortController();
331
+ let timeoutId;
332
+ let timedOut = false;
333
+ let timeoutMessage;
334
+ // Set up timeout to abort execution
335
+ if (effectiveTimeout > 0) {
336
+ timeoutId = setTimeout(() => {
337
+ timedOut = true;
338
+ timeoutMessage = `Test execution timed out after ${effectiveTimeout}ms`;
339
+ this.logToTestRun(context, 'warn', timeoutMessage);
340
+ abortController.abort();
341
+ }, effectiveTimeout);
342
+ }
267
343
  let conversationId = input.conversationContext?.conversationId;
268
344
  let previousOutputPayload;
269
- // Execute each turn sequentially
270
- for (let i = 0; i < turns.length; i++) {
271
- const turn = turns[i];
272
- const turnNumber = i + 1;
273
- // Determine input payload for this turn
274
- const inputPayload = i === 0
275
- ? turn.inputPayload // First turn: use provided payload
276
- : previousOutputPayload; // Subsequent turns: use previous output
277
- // Execute single turn
278
- const turnResult = await this.executeSingleTurn({
279
- agent,
280
- turn,
281
- turnNumber,
282
- totalTurns: turns.length,
283
- conversationId,
284
- inputPayload,
285
- priorMessages: input.conversationContext?.priorMessages,
286
- contextUser,
287
- test,
288
- testRun,
289
- maxExecutionTime
290
- });
291
- agentRuns.push(turnResult.agentRun);
292
- turnResults.push(turnResult);
293
- // Update context for next turn
294
- conversationId = turnResult.agentRun.ConversationID;
295
- previousOutputPayload = this.extractOutputPayload(turnResult.agentRun);
345
+ try {
346
+ // Execute each turn sequentially
347
+ for (let i = 0; i < turns.length; i++) {
348
+ // Check if aborted before starting turn
349
+ if (abortController.signal.aborted) {
350
+ this.logToTestRun(context, 'info', `Skipping turn ${i + 1} due to timeout/cancellation`);
351
+ break;
352
+ }
353
+ const turn = turns[i];
354
+ const turnNumber = i + 1;
355
+ // Determine input payload for this turn
356
+ const inputPayload = i === 0
357
+ ? turn.inputPayload // First turn: use provided payload
358
+ : previousOutputPayload; // Subsequent turns: use previous output
359
+ this.logToTestRun(context, 'info', `Executing turn ${turnNumber} of ${turns.length}`);
360
+ // Execute single turn with cancellation token
361
+ const turnResult = await this.executeSingleTurn({
362
+ agent,
363
+ turn,
364
+ turnNumber,
365
+ totalTurns: turns.length,
366
+ conversationId,
367
+ inputPayload,
368
+ priorMessages: input.conversationContext?.priorMessages,
369
+ contextUser,
370
+ test,
371
+ testRun,
372
+ cancellationToken: abortController.signal
373
+ });
374
+ agentRuns.push(turnResult.agentRun);
375
+ turnResults.push(turnResult);
376
+ this.logToTestRun(context, 'info', `Turn ${turnNumber} completed: ${turnResult.agentRun.Status}`);
377
+ // Update context for next turn
378
+ conversationId = turnResult.agentRun.ConversationID;
379
+ previousOutputPayload = this.extractOutputPayload(turnResult.agentRun);
380
+ }
296
381
  }
297
- return { agentRuns, turnResults };
382
+ finally {
383
+ // Clean up timeout
384
+ if (timeoutId) {
385
+ clearTimeout(timeoutId);
386
+ }
387
+ }
388
+ return { agentRuns, turnResults, timedOut, timeoutMessage };
298
389
  }
299
390
  /**
300
391
  * Execute a single turn in a multi-turn test.
392
+ * Passes cancellation token to agent for proper timeout handling.
301
393
  * @private
302
394
  */
303
395
  async executeSingleTurn(params) {
@@ -318,15 +410,13 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
318
410
  role: 'user',
319
411
  content: params.turn.userMessage
320
412
  });
321
- // Build conversation name
322
- const conversationName = params.totalTurns > 1
323
- ? (params.testRun.Sequence != null
324
- ? `[${params.testRun.Sequence}] ${params.test.Name} - Turn ${params.turnNumber}`
325
- : `[Test] ${params.test.Name} - Turn ${params.turnNumber}`)
326
- : (params.testRun.Sequence != null
327
- ? `[${params.testRun.Sequence}] ${params.test.Name}`
328
- : `[Test] ${params.test.Name}`);
329
- // Build execution parameters
413
+ // Build conversation name with format:
414
+ // - Individual test (no suite): "[Test] TestName" or "[Test][tag1, tag2] TestName"
415
+ // - Suite test: "[1] TestName" or "[1][tag1, tag2] TestName"
416
+ const conversationName = this.buildConversationName(params.test.Name, params.testRun.Sequence, params.testRun.Tags, params.turnNumber, params.totalTurns);
417
+ // Get Entity ID for AI Agent Runs for proper FK linkage
418
+ const aiAgentRunsEntityId = this.getAIAgentRunsEntityId();
419
+ // Build execution parameters with cancellation token and onAgentRunCreated callback
330
420
  const runParams = {
331
421
  agent: params.agent,
332
422
  conversationId: params.conversationId, // Continue same conversation for multi-turn
@@ -335,22 +425,38 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
335
425
  payload: params.inputPayload, // Pass payload from previous turn
336
426
  override: params.turn.executionParams?.modelOverride ? {
337
427
  modelId: params.turn.executionParams.modelOverride
338
- } : undefined
428
+ } : undefined,
429
+ cancellationToken: params.cancellationToken, // Pass cancellation token to agent
430
+ // Callback to immediately link TestRun <-> AgentRun when AgentRun is created
431
+ onAgentRunCreated: async (agentRunId) => {
432
+ // For the first turn (or single-turn tests), link TestRun.TargetLogID to this AgentRun
433
+ // Subsequent turns still get TestRunID set on their AgentRun (via testRunId param below)
434
+ // but the TestRun only points to the first/primary AgentRun
435
+ if (params.turnNumber === 1) {
436
+ params.testRun.TargetLogID = agentRunId;
437
+ if (aiAgentRunsEntityId) {
438
+ params.testRun.TargetLogEntityID = aiAgentRunsEntityId;
439
+ }
440
+ const saved = await params.testRun.Save();
441
+ if (saved) {
442
+ this.log(`✓ Linked TestRun ${params.testRun.ID} -> AgentRun ${agentRunId}`, true);
443
+ }
444
+ else {
445
+ this.logError(`Failed to link TestRun to AgentRun: ${params.testRun.LatestResult?.Message}`);
446
+ }
447
+ }
448
+ // Note: AgentRun.TestRunID is set by BaseAgent via the testRunId param passed to RunAgentInConversation
449
+ }
339
450
  };
340
- // Execute with timeout if specified
341
- const executePromise = runner.RunAgentInConversation(runParams, {
451
+ const startTime = Date.now();
452
+ // Execute agent - cancellation is handled via AbortSignal, not Promise.race
453
+ // Note: BaseAgent already sets AgentRun.TestRunID from the testRunId param and invokes onAgentRunCreated callback
454
+ const runResult = await runner.RunAgentInConversation(runParams, {
342
455
  userMessage: params.turn.userMessage,
343
456
  createArtifacts: true,
344
457
  conversationName: conversationName,
345
458
  testRunId: params.testRun.ID
346
459
  });
347
- const startTime = Date.now();
348
- const runResult = params.maxExecutionTime
349
- ? await Promise.race([
350
- executePromise,
351
- this.createTimeoutPromise(params.maxExecutionTime)
352
- ])
353
- : await executePromise;
354
460
  const endTime = Date.now();
355
461
  const agentRun = runResult.agentResult.agentRun;
356
462
  return {
@@ -362,13 +468,6 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
362
468
  cost: agentRun.TotalCost || 0
363
469
  };
364
470
  }
365
- /**
366
- * Create a timeout promise that rejects after specified milliseconds.
367
- * @private
368
- */
369
- createTimeoutPromise(timeoutMs) {
370
- return new Promise((_, reject) => setTimeout(() => reject(new Error(`Agent execution timeout after ${timeoutMs}ms`)), timeoutMs));
371
- }
372
471
  /**
373
472
  * Normalize input to multi-turn format for consistent processing.
374
473
  * @private
@@ -398,27 +497,6 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
398
497
  const finalPayloadObject = (0, global_1.SafeJSONParse)(agentRun.FinalPayload);
399
498
  return finalPayloadObject || {};
400
499
  }
401
- /**
402
- * Create bidirectional links between TestRun and multiple AgentRuns.
403
- * @private
404
- */
405
- async linkTestRunToAgentRuns(testRun, agentRuns) {
406
- // Link each AgentRun to TestRun with TurnNumber
407
- for (let i = 0; i < agentRuns.length; i++) {
408
- const agentRun = agentRuns[i];
409
- const turnNumber = i + 1;
410
- // Update AgentRun with hard FK to TestRun
411
- agentRun.TestRunID = testRun.ID;
412
- // Set turn number if field exists (check dynamically)
413
- if ('TurnNumber' in agentRun) {
414
- agentRun.TurnNumber = turnNumber;
415
- }
416
- const saved = await agentRun.Save();
417
- if (!saved) {
418
- this.logError(`Failed to link AgentRun (Turn ${turnNumber}) to TestRun`, new Error(agentRun.LatestResult?.Message));
419
- }
420
- }
421
- }
422
500
  /**
423
501
  * Extract agent output from agent run.
424
502
  * @private
@@ -582,9 +660,53 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
582
660
  const end = new Date(agentRun.CompletedAt).getTime();
583
661
  return end - start;
584
662
  }
663
+ /**
664
+ * Build conversation name with standardized format.
665
+ *
666
+ * Format:
667
+ * - Individual test (no suite): "[Test] TestName" or "[Test][tag1, tag2] TestName"
668
+ * - Suite test: "[1] TestName" or "[1][tag1, tag2] TestName"
669
+ * - Multi-turn adds " - Turn N" suffix
670
+ *
671
+ * @param testName - Name of the test
672
+ * @param sequence - Sequence number within suite (null for standalone tests)
673
+ * @param tagsJson - JSON string array of tags (null if no tags)
674
+ * @param turnNumber - Current turn number (1-indexed)
675
+ * @param totalTurns - Total number of turns
676
+ * @returns Formatted conversation name
677
+ * @private
678
+ */
679
+ buildConversationName(testName, sequence, tagsJson, turnNumber, totalTurns) {
680
+ // Build prefix: [Test] for standalone, [sequence] for suite
681
+ const sequencePrefix = sequence != null ? `[${sequence}]` : '[Test]';
682
+ // Build tags suffix if tags exist
683
+ let tagsPrefix = '';
684
+ if (tagsJson) {
685
+ try {
686
+ const tags = JSON.parse(tagsJson);
687
+ if (tags && tags.length > 0) {
688
+ tagsPrefix = `[${tags.join(', ')}]`;
689
+ }
690
+ }
691
+ catch {
692
+ // Invalid JSON, skip tags
693
+ }
694
+ }
695
+ // Build base name
696
+ const baseName = `${sequencePrefix}${tagsPrefix} ${testName}`;
697
+ // Add turn suffix for multi-turn tests
698
+ if (totalTurns > 1) {
699
+ return `${baseName} - Turn ${turnNumber}`;
700
+ }
701
+ return baseName;
702
+ }
585
703
  };
586
704
  exports.AgentEvalDriver = AgentEvalDriver;
587
- exports.AgentEvalDriver = AgentEvalDriver = __decorate([
705
+ /**
706
+ * Entity name for AI Agent Runs - used for proper FK linkage in TestRun
707
+ */
708
+ AgentEvalDriver.AI_AGENT_RUNS_ENTITY_NAME = 'MJ: AI Agent Runs';
709
+ exports.AgentEvalDriver = AgentEvalDriver = AgentEvalDriver_1 = __decorate([
588
710
  (0, global_1.RegisterClass)(BaseTestDriver_1.BaseTestDriver, 'AgentEvalDriver')
589
711
  ], AgentEvalDriver);
590
712
  //# sourceMappingURL=AgentEvalDriver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentEvalDriver.js","sourceRoot":"","sources":["../../src/drivers/AgentEvalDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentEvalDriver.js","sourceRoot":"","sources":["../../src/drivers/AgentEvalDriver.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,11 @@
4
4
  */
5
5
  import { Metadata } from '@memberjunction/core';
6
6
  import { TestEntity } from '@memberjunction/core-entities';
7
- import { DriverExecutionContext, DriverExecutionResult, OracleResult, ScoringWeights, ValidationResult } from '../types';
7
+ import { DriverExecutionContext, DriverExecutionResult, OracleResult, ScoringWeights, ValidationResult, TestLogMessage } from '../types';
8
+ /**
9
+ * Default timeout for test execution in milliseconds (5 minutes)
10
+ */
11
+ export declare const DEFAULT_TEST_TIMEOUT_MS = 300000;
8
12
  /**
9
13
  * Abstract base class for test driver implementations.
10
14
  *
@@ -141,5 +145,52 @@ export declare abstract class BaseTestDriver {
141
145
  * @protected
142
146
  */
143
147
  protected logError(message: string, error?: Error): void;
148
+ /**
149
+ * Whether this driver supports cancellation via AbortSignal.
150
+ *
151
+ * Drivers should override this to return true if they properly handle
152
+ * cancellation tokens. When a driver doesn't support cancellation,
153
+ * timeout will still mark the test as failed but the underlying
154
+ * execution may continue in the background.
155
+ *
156
+ * @returns true if driver supports cancellation, false otherwise
157
+ */
158
+ supportsCancellation(): boolean;
159
+ /**
160
+ * Get the effective timeout for a test.
161
+ *
162
+ * Priority (highest to lowest):
163
+ * 1. Configuration JSON maxExecutionTime field (backward compatibility)
164
+ * 2. Test.MaxExecutionTimeMS column
165
+ * 3. DEFAULT_TEST_TIMEOUT_MS constant (5 minutes)
166
+ *
167
+ * @param test - The test entity
168
+ * @param config - Parsed configuration object (optional)
169
+ * @returns Timeout in milliseconds
170
+ * @protected
171
+ */
172
+ protected getEffectiveTimeout(test: TestEntity, config?: {
173
+ maxExecutionTime?: number;
174
+ }): number;
175
+ /**
176
+ * Create a log message for the test execution log.
177
+ *
178
+ * @param level - Log level
179
+ * @param message - Log message
180
+ * @param metadata - Optional metadata
181
+ * @returns TestLogMessage object
182
+ * @protected
183
+ */
184
+ protected createLogMessage(level: 'info' | 'warn' | 'error' | 'debug', message: string, metadata?: Record<string, unknown>): TestLogMessage;
185
+ /**
186
+ * Log a message to both the console (if verbose) and accumulate for test run log.
187
+ *
188
+ * @param context - Driver execution context
189
+ * @param level - Log level
190
+ * @param message - Log message
191
+ * @param metadata - Optional metadata
192
+ * @protected
193
+ */
194
+ protected logToTestRun(context: DriverExecutionContext, level: 'info' | 'warn' | 'error' | 'debug', message: string, metadata?: Record<string, unknown>): void;
144
195
  }
145
196
  //# sourceMappingURL=BaseTestDriver.d.ts.map