@memberjunction/ai-agents 2.67.0 → 2.69.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 +1 @@
1
- {"version":3,"file":"loop-agent-type.js","sourceRoot":"","sources":["../../src/agent-types/loop-agent-type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-agent-type.js","sourceRoot":"","sources":["../../src/agent-types/loop-agent-type.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,22 @@
1
- import { AIAgentEntity, AIAgentTypeEntity, AIAgentRunStepEntityExtended, TemplateParamEntity, AIAgentEntityExtended } from '@memberjunction/core-entities';
1
+ import { AIAgentEntity, AIAgentTypeEntity, AIAgentRunEntityExtended, AIAgentRunStepEntityExtended, TemplateParamEntity, AIAgentEntityExtended } from '@memberjunction/core-entities';
2
2
  import { UserInfo } from '@memberjunction/core';
3
3
  import { ChatMessage } from '@memberjunction/ai';
4
4
  import { AIPromptParams, AIPromptRunResult, ExecuteAgentParams, AgentConfiguration, ExecuteAgentResult, AgentAction, AgentSubAgentRequest, BaseAgentNextStep } from '@memberjunction/ai-core-plus';
5
5
  import { ActionEntityExtended, ActionResult } from '@memberjunction/actions-base';
6
6
  export declare class BaseAgent {
7
+ private static readonly MAX_VALIDATION_RETRIES;
7
8
  private _promptRunner;
8
9
  private _metadata;
10
+ private _executionCounts;
11
+ private _generalValidationRetryCount;
9
12
  private _agentRun;
10
13
  private _agentHierarchy;
11
14
  private _depth;
12
15
  private _allProgressSteps;
13
16
  private _subAgentRuns;
14
17
  private _payloadManager;
18
+ private _validationRetryCount;
19
+ get ValidationRetryCount(): number;
15
20
  protected logStatus(message: string, verboseOnly?: boolean, params?: ExecuteAgentParams): void;
16
21
  protected logError(error: Error | string, options?: {
17
22
  category?: string;
@@ -32,7 +37,24 @@ export declare class BaseAgent {
32
37
  protected loadAgentConfiguration(agent: AIAgentEntity): Promise<AgentConfiguration>;
33
38
  protected preparePromptParams<P>(config: AgentConfiguration, payload: P, params: ExecuteAgentParams): Promise<AIPromptParams>;
34
39
  protected executePrompt(promptParams: AIPromptParams): Promise<AIPromptRunResult>;
35
- protected processNextStep<P>(params: ExecuteAgentParams, agentType: AIAgentTypeEntity, promptResult: AIPromptRunResult): Promise<BaseAgentNextStep<P>>;
40
+ protected determineNextStep<P>(params: ExecuteAgentParams, agentType: AIAgentTypeEntity, promptResult: AIPromptRunResult, currentPayload: P): Promise<BaseAgentNextStep<P>>;
41
+ protected validateNextStep<P>(params: ExecuteAgentParams, nextStep: BaseAgentNextStep<P>, currentPayload: P, agentRun: AIAgentRunEntityExtended, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
42
+ protected validateSubAgentNextStep<P>(params: ExecuteAgentParams, nextStep: BaseAgentNextStep<P>, currentPayload: P, agentRun: AIAgentRunEntityExtended, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
43
+ protected validateActionsNextStep<P>(params: ExecuteAgentParams, nextStep: BaseAgentNextStep<P>, currentPayload: P, agentRun: AIAgentRunEntityExtended, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
44
+ protected validateSuccessNextStep<P>(params: ExecuteAgentParams, nextStep: BaseAgentNextStep<P>, currentPayload: P, agentRun: AIAgentRunEntityExtended, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
45
+ protected handleFinalPayloadValidationFailure<P>(params: ExecuteAgentParams, nextStep: BaseAgentNextStep<P>, currentPayload: P, mode: string, errorMessages: string[], agentRun: AIAgentRunEntityExtended, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
46
+ protected validateFailedNextStep<P>(params: ExecuteAgentParams, nextStep: BaseAgentNextStep<P>, currentPayload: P, agentRun: AIAgentRunEntityExtended, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
47
+ protected validateRetryNextStep<P>(params: ExecuteAgentParams, nextStep: BaseAgentNextStep<P>, currentPayload: P, agentRun: AIAgentRunEntityExtended, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
48
+ protected validateChatNextStep<P>(params: ExecuteAgentParams, nextStep: BaseAgentNextStep<P>, currentPayload: P, agentRun: AIAgentRunEntityExtended, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
49
+ protected checkExecutionGuardrails<P>(params: ExecuteAgentParams, nextStep: BaseAgentNextStep<P>, currentPayload: P, agentRun: AIAgentRunEntityExtended, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
50
+ protected hasExceededAgentRunGuardrails(params: ExecuteAgentParams, agentRun: AIAgentRunEntityExtended): Promise<{
51
+ exceeded: boolean;
52
+ type?: 'cost' | 'tokens' | 'iterations' | 'time';
53
+ limit?: number;
54
+ current?: number;
55
+ reason?: string;
56
+ }>;
57
+ protected processNextStep<P>(params: ExecuteAgentParams, agentType: AIAgentTypeEntity, promptResult: AIPromptRunResult, currentPayload: P, currentStep: AIAgentRunStepEntityExtended): Promise<BaseAgentNextStep<P>>;
36
58
  protected createActionResultMessage(actions: AgentAction[], results: ActionResult[]): ChatMessage;
37
59
  protected createSubAgentResultMessage(subAgent: AgentSubAgentRequest, result: ExecuteAgentResult): ChatMessage;
38
60
  private gatherPromptTemplateData;
@@ -62,5 +84,10 @@ export declare class BaseAgent {
62
84
  private createCancelledResult;
63
85
  private finalizeAgentRun;
64
86
  private calculateTokenStats;
87
+ protected getActionExecutionCount(agentRunId: string, actionId: string): Promise<number>;
88
+ protected getSubAgentExecutionCount(agentRunId: string, subAgentId: string): Promise<number>;
89
+ private incrementExecutionCount;
90
+ private getExecutionCount;
91
+ protected checkMinimumExecutionRequirements(agent: AIAgentEntity, agentRun: AIAgentRunEntityExtended): Promise<string[]>;
65
92
  }
66
93
  //# sourceMappingURL=base-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../src/base-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../src/base-agent.ts"],"names":[],"mappings":"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"}
@@ -38,12 +38,18 @@ class BaseAgent {
38
38
  constructor() {
39
39
  this._promptRunner = new ai_prompts_1.AIPromptRunner();
40
40
  this._metadata = new core_1.Metadata();
41
+ this._executionCounts = new Map();
42
+ this._generalValidationRetryCount = 0;
41
43
  this._agentRun = null;
42
44
  this._agentHierarchy = [];
43
45
  this._depth = 0;
44
46
  this._allProgressSteps = [];
45
47
  this._subAgentRuns = [];
46
48
  this._payloadManager = new PayloadManager_1.PayloadManager();
49
+ this._validationRetryCount = 0;
50
+ }
51
+ get ValidationRetryCount() {
52
+ return this._validationRetryCount;
47
53
  }
48
54
  logStatus(message, verboseOnly = false, params) {
49
55
  if (verboseOnly) {
@@ -128,6 +134,8 @@ class BaseAgent {
128
134
  message: this.formatHierarchicalMessage(`Initializing ${params.agent.Name} agent and preparing execution environment`)
129
135
  });
130
136
  await this.initializeAgentRun(wrappedParams);
137
+ this._validationRetryCount = 0;
138
+ this._generalValidationRetryCount = 0;
131
139
  await this.initializeEngines(params.contextUser);
132
140
  if (params.cancellationToken?.aborted) {
133
141
  return await this.createCancelledResult('Cancelled during initialization', params.contextUser);
@@ -342,14 +350,397 @@ class BaseAgent {
342
350
  async executePrompt(promptParams) {
343
351
  return await this._promptRunner.ExecutePrompt(promptParams);
344
352
  }
345
- async processNextStep(params, agentType, promptResult) {
353
+ async determineNextStep(params, agentType, promptResult, currentPayload) {
346
354
  this.logStatus(`🤔 Processing next step for agent '${params.agent.Name}' with agent type '${agentType.Name}'`, true, params);
347
355
  const agentTypeInstance = await base_agent_type_1.BaseAgentType.GetAgentTypeInstance(agentType);
348
356
  this.logStatus(`🎯 Agent type '${agentType.Name}' determining next step`, true, params);
349
- const nextStep = await agentTypeInstance.DetermineNextStep(promptResult);
350
- this.logStatus(`📌 Next step determined: ${nextStep.step}${nextStep.terminate ? ' (terminating)' : ''}`, true, params);
357
+ const nextStep = await agentTypeInstance.DetermineNextStep(promptResult, currentPayload);
358
+ return nextStep;
359
+ }
360
+ async validateNextStep(params, nextStep, currentPayload, agentRun, currentStep) {
361
+ switch (nextStep.step) {
362
+ case 'Sub-Agent':
363
+ return this.validateSubAgentNextStep(params, nextStep, currentPayload, agentRun, currentStep);
364
+ case 'Actions':
365
+ return this.validateActionsNextStep(params, nextStep, currentPayload, agentRun, currentStep);
366
+ case 'Success':
367
+ return this.validateSuccessNextStep(params, nextStep, currentPayload, agentRun, currentStep);
368
+ case 'Chat':
369
+ return this.validateChatNextStep(params, nextStep, currentPayload, agentRun, currentStep);
370
+ case 'Retry':
371
+ return this.validateRetryNextStep(params, nextStep, currentPayload, agentRun, currentStep);
372
+ case 'Failed':
373
+ return this.validateFailedNextStep(params, nextStep, currentPayload, agentRun, currentStep);
374
+ default:
375
+ this.logError(`Invalid next step '${nextStep.step}' for agent '${params.agent.Name}'`, {
376
+ agent: params.agent,
377
+ category: 'NextStepValidation'
378
+ });
379
+ return {
380
+ step: 'Failed',
381
+ terminate: true,
382
+ errorMessage: `Invalid next step '${nextStep.step}'`
383
+ };
384
+ }
385
+ }
386
+ async validateSubAgentNextStep(params, nextStep, currentPayload, agentRun, currentStep) {
387
+ const name = nextStep.subAgent?.name;
388
+ const curAgentSubAgents = aiengine_1.AIEngine.Instance.GetSubAgents(params.agent.ID, 'Active');
389
+ const subAgent = curAgentSubAgents.find(a => a.Name.trim().toLowerCase() === name?.trim().toLowerCase());
390
+ if (!name || !subAgent) {
391
+ this.logError(`Sub-agent '${name}' not found or not active for agent '${params.agent.Name}'`, {
392
+ agent: params.agent,
393
+ category: 'SubAgentExecution'
394
+ });
395
+ if (nextStep.step !== 'Retry') {
396
+ this._generalValidationRetryCount++;
397
+ }
398
+ return {
399
+ step: 'Retry',
400
+ terminate: false,
401
+ errorMessage: `Sub-agent '${name}' not found or not active`
402
+ };
403
+ }
404
+ if (subAgent.MaxExecutionsPerRun != null) {
405
+ const executionCount = await this.getSubAgentExecutionCount(agentRun.ID, subAgent.ID);
406
+ if (executionCount >= subAgent.MaxExecutionsPerRun) {
407
+ this.logError(`Sub-agent '${name}' has reached its maximum execution limit of ${subAgent.MaxExecutionsPerRun}`, {
408
+ agent: params.agent,
409
+ category: 'SubAgentExecution',
410
+ metadata: {
411
+ subAgentName: name,
412
+ executionCount,
413
+ maxExecutions: subAgent.MaxExecutionsPerRun
414
+ }
415
+ });
416
+ if (nextStep.step !== 'Retry') {
417
+ this._generalValidationRetryCount++;
418
+ }
419
+ return {
420
+ step: 'Retry',
421
+ terminate: false,
422
+ errorMessage: `Sub-agent '${name}' has reached its maximum execution limit of ${subAgent.MaxExecutionsPerRun}`
423
+ };
424
+ }
425
+ }
426
+ return nextStep;
427
+ }
428
+ async validateActionsNextStep(params, nextStep, currentPayload, agentRun, currentStep) {
429
+ const curAgentActions = aiengine_1.AIEngine.Instance.AgentActions.filter(aa => aa.AgentID === params.agent.ID && aa.Status === 'Active');
430
+ const missingActions = nextStep.actions?.filter(action => !curAgentActions.some(aa => aa.Action.trim().toLowerCase() === action.name.trim().toLowerCase()));
431
+ if (missingActions && missingActions.length > 0) {
432
+ const missingActionNames = missingActions.map(a => a.name).join(', ');
433
+ this.logError(`Actions '${missingActionNames}' not found or not active for agent '${params.agent.Name}'`, {
434
+ agent: params.agent,
435
+ category: 'ActionExecution'
436
+ });
437
+ if (nextStep.step !== 'Retry') {
438
+ this._generalValidationRetryCount++;
439
+ }
440
+ return {
441
+ step: 'Retry',
442
+ terminate: false,
443
+ errorMessage: `Actions '${missingActionNames}' not found or not active`
444
+ };
445
+ }
446
+ if (nextStep.actions) {
447
+ const violatedActions = [];
448
+ for (const action of nextStep.actions) {
449
+ const agentAction = curAgentActions.find(aa => aa.Action.trim().toLowerCase() === action.name.trim().toLowerCase());
450
+ if (agentAction && agentAction.MaxExecutionsPerRun != null) {
451
+ const executionCount = await this.getActionExecutionCount(agentRun.ID, agentAction.ActionID);
452
+ if (executionCount >= agentAction.MaxExecutionsPerRun) {
453
+ violatedActions.push(`${action.name} (limit: ${agentAction.MaxExecutionsPerRun}, current: ${executionCount})`);
454
+ }
455
+ }
456
+ }
457
+ if (violatedActions.length > 0) {
458
+ const violationMessage = `Actions have reached execution limits: ${violatedActions.join(', ')}`;
459
+ this.logError(violationMessage, {
460
+ agent: params.agent,
461
+ category: 'ActionExecution',
462
+ metadata: {
463
+ violatedActions
464
+ }
465
+ });
466
+ if (nextStep.step !== 'Retry') {
467
+ this._generalValidationRetryCount++;
468
+ }
469
+ return {
470
+ step: 'Retry',
471
+ terminate: false,
472
+ errorMessage: violationMessage
473
+ };
474
+ }
475
+ }
476
+ return nextStep;
477
+ }
478
+ async validateSuccessNextStep(params, nextStep, currentPayload, agentRun, currentStep) {
479
+ const minViolations = await this.checkMinimumExecutionRequirements(params.agent, agentRun);
480
+ if (minViolations.length > 0) {
481
+ const violationMessage = `Minimum execution requirements not met:\n${minViolations.join('\n')}`;
482
+ this.logError(violationMessage, {
483
+ agent: params.agent,
484
+ category: 'MinimumExecutionValidation'
485
+ });
486
+ if (nextStep.step !== 'Retry') {
487
+ this._generalValidationRetryCount++;
488
+ }
489
+ return {
490
+ step: 'Retry',
491
+ terminate: false,
492
+ errorMessage: violationMessage
493
+ };
494
+ }
495
+ const agent = params.agent;
496
+ if (!agent.FinalPayloadValidation || !currentPayload) {
497
+ return nextStep;
498
+ }
499
+ try {
500
+ let validationSchema;
501
+ try {
502
+ validationSchema = JSON.parse(agent.FinalPayloadValidation);
503
+ }
504
+ catch (parseError) {
505
+ this.logError(`Invalid FinalPayloadValidation JSON for agent ${agent.Name}: ${parseError.message}`, {
506
+ category: 'PayloadValidation',
507
+ metadata: {
508
+ agentName: agent.Name,
509
+ agentId: agent.ID,
510
+ validationSchema: agent.FinalPayloadValidation
511
+ }
512
+ });
513
+ return nextStep;
514
+ }
515
+ let payloadToValidate = currentPayload;
516
+ if (agent.PayloadScope) {
517
+ payloadToValidate = this._payloadManager.applyPayloadScope(currentPayload, agent.PayloadScope);
518
+ if (payloadToValidate === null) {
519
+ const errorMessage = `PayloadScope '${agent.PayloadScope}' not found in payload`;
520
+ return this.handleFinalPayloadValidationFailure(params, nextStep, currentPayload, agent.FinalPayloadValidationMode || 'Retry', [errorMessage], agentRun, currentStep);
521
+ }
522
+ }
523
+ const jsonValidator = new global_1.JSONValidator();
524
+ const validationResult = jsonValidator.validate(payloadToValidate, validationSchema);
525
+ if (!validationResult.Success) {
526
+ const mode = agent.FinalPayloadValidationMode || 'Retry';
527
+ const errorMessages = validationResult.Errors.map(e => e.Message);
528
+ this.logStatus(`⚠️ Final payload validation failed for agent ${agent.Name} (mode: ${mode}):`, true, params);
529
+ errorMessages.forEach((error, index) => {
530
+ this.logStatus(` ${index + 1}. ${error}`, true, params);
531
+ });
532
+ return this.handleFinalPayloadValidationFailure(params, nextStep, currentPayload, mode, errorMessages, agentRun, currentStep);
533
+ }
534
+ this.logStatus(`✅ Final payload validation passed for agent ${agent.Name}`, true, params);
535
+ try {
536
+ currentStep.FinalPayloadValidationResult = 'Pass';
537
+ currentStep.FinalPayloadValidationMessages = null;
538
+ await currentStep.Save();
539
+ }
540
+ catch (error) {
541
+ this.logError(`Failed to save validation success result: ${error.message}`, {
542
+ category: 'PayloadValidation',
543
+ metadata: { stepId: currentStep.ID }
544
+ });
545
+ }
546
+ return nextStep;
547
+ }
548
+ catch (error) {
549
+ this.logError(`Unexpected error during final payload validation: ${error.message}`, {
550
+ category: 'PayloadValidation',
551
+ metadata: {
552
+ agentName: agent.Name,
553
+ agentId: agent.ID,
554
+ error: error.message
555
+ }
556
+ });
557
+ return nextStep;
558
+ }
559
+ }
560
+ async handleFinalPayloadValidationFailure(params, nextStep, currentPayload, mode, errorMessages, agentRun, currentStep) {
561
+ const validationFeedback = `Final payload validation failed:\n${errorMessages.map((e, i) => `${i + 1}. ${e}`).join('\n')}`;
562
+ try {
563
+ currentStep.FinalPayloadValidationMessages = errorMessages.join('; ');
564
+ switch (mode) {
565
+ case 'Retry':
566
+ this._validationRetryCount++;
567
+ const maxRetries = params.agent.FinalPayloadValidationMaxRetries || 3;
568
+ if (this._validationRetryCount >= maxRetries) {
569
+ this.logStatus(`❌ Max validation retries (${maxRetries}) exceeded, forcing failure`, false, params);
570
+ currentStep.FinalPayloadValidationResult = 'Fail';
571
+ await currentStep.Save();
572
+ return {
573
+ ...nextStep,
574
+ step: 'Failed',
575
+ message: `${validationFeedback}\n\nMax validation retries (${maxRetries}) exceeded.`,
576
+ terminate: true
577
+ };
578
+ }
579
+ currentStep.FinalPayloadValidationResult = 'Retry';
580
+ await currentStep.Save();
581
+ this.logStatus(`🔄 Validation retry ${this._validationRetryCount}/${maxRetries}`, true, params);
582
+ return {
583
+ ...nextStep,
584
+ step: 'Retry',
585
+ message: `${validationFeedback}\n\nRetry attempt ${this._validationRetryCount} of ${maxRetries}`,
586
+ terminate: false
587
+ };
588
+ case 'Fail':
589
+ currentStep.FinalPayloadValidationResult = 'Fail';
590
+ await currentStep.Save();
591
+ return {
592
+ ...nextStep,
593
+ step: 'Failed',
594
+ message: validationFeedback,
595
+ terminate: true
596
+ };
597
+ case 'Warn':
598
+ this.logStatus(`⚠️ WARNING: ${validationFeedback}`, false, params);
599
+ currentStep.FinalPayloadValidationResult = 'Warn';
600
+ await currentStep.Save();
601
+ return nextStep;
602
+ default:
603
+ this._validationRetryCount++;
604
+ currentStep.FinalPayloadValidationResult = 'Retry';
605
+ await currentStep.Save();
606
+ return {
607
+ ...nextStep,
608
+ step: 'Retry',
609
+ message: validationFeedback,
610
+ terminate: false
611
+ };
612
+ }
613
+ }
614
+ catch (error) {
615
+ this.logError(`Failed to save validation results: ${error.message}`, {
616
+ category: 'PayloadValidation',
617
+ metadata: { stepId: currentStep.ID }
618
+ });
619
+ return mode === 'Warn' ? nextStep : {
620
+ ...nextStep,
621
+ step: mode === 'Fail' ? 'Failed' : 'Retry',
622
+ message: validationFeedback,
623
+ terminate: mode === 'Fail'
624
+ };
625
+ }
626
+ }
627
+ async validateFailedNextStep(params, nextStep, currentPayload, agentRun, currentStep) {
351
628
  return nextStep;
352
629
  }
630
+ async validateRetryNextStep(params, nextStep, currentPayload, agentRun, currentStep) {
631
+ return nextStep;
632
+ }
633
+ async validateChatNextStep(params, nextStep, currentPayload, agentRun, currentStep) {
634
+ return nextStep;
635
+ }
636
+ async checkExecutionGuardrails(params, nextStep, currentPayload, agentRun, currentStep) {
637
+ if (nextStep.step === 'Success' || nextStep.step === 'Failed' || nextStep.step === 'Chat') {
638
+ return nextStep;
639
+ }
640
+ const guardrailResult = await this.hasExceededAgentRunGuardrails(params, agentRun);
641
+ if (guardrailResult.exceeded) {
642
+ this.logStatus(`⛔ Execution guardrail exceeded: ${guardrailResult.reason}`, false, params);
643
+ try {
644
+ const outputData = currentStep.OutputData ? JSON.parse(currentStep.OutputData) : {};
645
+ currentStep.OutputData = JSON.stringify({
646
+ ...outputData,
647
+ guardrailExceeded: {
648
+ type: guardrailResult.type,
649
+ limit: guardrailResult.limit,
650
+ current: guardrailResult.current,
651
+ reason: guardrailResult.reason,
652
+ timestamp: new Date().toISOString()
653
+ }
654
+ });
655
+ await currentStep.Save();
656
+ }
657
+ catch (error) {
658
+ this.logError(`Failed to save guardrail violation to step: ${error.message}`, {
659
+ category: 'Guardrails',
660
+ metadata: { stepId: currentStep.ID }
661
+ });
662
+ }
663
+ return {
664
+ ...nextStep,
665
+ step: 'Failed',
666
+ terminate: true,
667
+ message: guardrailResult.reason,
668
+ errorMessage: guardrailResult.reason
669
+ };
670
+ }
671
+ return nextStep;
672
+ }
673
+ async hasExceededAgentRunGuardrails(params, agentRun) {
674
+ const agent = params.agent;
675
+ if (agent.MaxCostPerRun && agentRun.TotalCost) {
676
+ if (agentRun.TotalCost >= agent.MaxCostPerRun) {
677
+ return {
678
+ exceeded: true,
679
+ type: 'cost',
680
+ limit: agent.MaxCostPerRun,
681
+ current: agentRun.TotalCost,
682
+ reason: `Maximum cost limit of $${agent.MaxCostPerRun} exceeded. Current cost: $${agentRun.TotalCost.toFixed(4)}`
683
+ };
684
+ }
685
+ }
686
+ if (agent.MaxTokensPerRun && agentRun.TotalTokensUsed) {
687
+ if (agentRun.TotalTokensUsed >= agent.MaxTokensPerRun) {
688
+ return {
689
+ exceeded: true,
690
+ type: 'tokens',
691
+ limit: agent.MaxTokensPerRun,
692
+ current: agentRun.TotalTokensUsed,
693
+ reason: `Maximum token limit of ${agent.MaxTokensPerRun} exceeded. Current tokens: ${agentRun.TotalTokensUsed}`
694
+ };
695
+ }
696
+ }
697
+ if (agent.MaxIterationsPerRun && agentRun.TotalPromptIterations) {
698
+ if (agentRun.TotalPromptIterations >= agent.MaxIterationsPerRun) {
699
+ return {
700
+ exceeded: true,
701
+ type: 'iterations',
702
+ limit: agent.MaxIterationsPerRun,
703
+ current: agentRun.TotalPromptIterations,
704
+ reason: `Maximum iteration limit of ${agent.MaxIterationsPerRun} exceeded. Current iterations: ${agentRun.TotalPromptIterations}`
705
+ };
706
+ }
707
+ }
708
+ if (agent.MaxTimePerRun && agentRun.StartedAt) {
709
+ const elapsedSeconds = Math.floor((Date.now() - new Date(agentRun.StartedAt).getTime()) / 1000);
710
+ if (elapsedSeconds >= agent.MaxTimePerRun) {
711
+ return {
712
+ exceeded: true,
713
+ type: 'time',
714
+ limit: agent.MaxTimePerRun,
715
+ current: elapsedSeconds,
716
+ reason: `Maximum time limit of ${agent.MaxTimePerRun} seconds exceeded. Elapsed time: ${elapsedSeconds} seconds`
717
+ };
718
+ }
719
+ }
720
+ if (this._generalValidationRetryCount >= BaseAgent.MAX_VALIDATION_RETRIES) {
721
+ return {
722
+ exceeded: true,
723
+ type: 'iterations',
724
+ limit: BaseAgent.MAX_VALIDATION_RETRIES,
725
+ current: this._generalValidationRetryCount,
726
+ reason: `Maximum validation retries of ${BaseAgent.MAX_VALIDATION_RETRIES} exceeded. The agent is unable to produce valid output after ${this._generalValidationRetryCount} validation failures.`
727
+ };
728
+ }
729
+ return { exceeded: false };
730
+ }
731
+ async processNextStep(params, agentType, promptResult, currentPayload, currentStep) {
732
+ const nextStep = await this.determineNextStep(params, agentType, promptResult, currentPayload);
733
+ const validatedNextStep = await this.validateNextStep(params, nextStep, currentPayload, this._agentRun, currentStep);
734
+ const guardrailCheckedStep = await this.checkExecutionGuardrails(params, validatedNextStep, currentPayload, this._agentRun, currentStep);
735
+ this.logStatus(`📌 Next step determined: ${guardrailCheckedStep.step}${guardrailCheckedStep.terminate ? ' (terminating)' : ''}`, true, params);
736
+ if (guardrailCheckedStep.step === 'Retry' && (guardrailCheckedStep.message || guardrailCheckedStep.errorMessage || guardrailCheckedStep.retryInstructions)) {
737
+ params.conversationMessages.push({
738
+ role: 'user',
739
+ content: `Retrying due to: ${guardrailCheckedStep.retryInstructions || guardrailCheckedStep.message || guardrailCheckedStep.errorMessage}`
740
+ });
741
+ }
742
+ return guardrailCheckedStep;
743
+ }
353
744
  createActionResultMessage(actions, results) {
354
745
  const resultSummary = actions.map((action, index) => {
355
746
  const result = results[index];
@@ -837,6 +1228,9 @@ class BaseAgent {
837
1228
  stepEntity.TargetLogID = promptResult.promptRun.ID;
838
1229
  stepEntity.PromptRun = promptResult.promptRun;
839
1230
  }
1231
+ if (this._agentRun) {
1232
+ this._agentRun.TotalPromptIterations = (this._agentRun.TotalPromptIterations || 0) + 1;
1233
+ }
840
1234
  if (params.cancellationToken?.aborted) {
841
1235
  await this.finalizeStepEntity(stepEntity, false, 'Cancelled during prompt execution');
842
1236
  const cancelledResult = await this.createCancelledResult('Cancelled during prompt execution', params.contextUser);
@@ -854,7 +1248,7 @@ class BaseAgent {
854
1248
  message: this.formatHierarchicalMessage('Analyzing response and determining next steps'),
855
1249
  displayMode: 'both'
856
1250
  });
857
- const nextStep = await this.processNextStep(params, config.agentType, promptResult);
1251
+ const nextStep = await this.processNextStep(params, config.agentType, promptResult, payload, stepEntity);
858
1252
  let finalPayload = payload;
859
1253
  let currentStepPayloadChangeResult = undefined;
860
1254
  if (nextStep.payloadChangeRequest) {
@@ -947,6 +1341,7 @@ class BaseAgent {
947
1341
  throw new Error(`Sub-agent '${subAgentRequest.name}' not found`);
948
1342
  }
949
1343
  const stepEntity = await this.createStepEntity('Sub-Agent', `Execute Sub-Agent: ${subAgentRequest.name}`, params.contextUser, subAgentEntity.ID, inputData);
1344
+ this.incrementExecutionCount(subAgentEntity.ID);
950
1345
  try {
951
1346
  let downstreamPaths = ['*'];
952
1347
  let upstreamPaths = ['*'];
@@ -970,10 +1365,31 @@ class BaseAgent {
970
1365
  }
971
1366
  });
972
1367
  }
973
- const downstreamPayload = this._payloadManager.extractDownstreamPayload(subAgentRequest.name, previousDecision.newPayload, downstreamPaths);
1368
+ let downstreamPayload = this._payloadManager.extractDownstreamPayload(subAgentRequest.name, previousDecision.newPayload, downstreamPaths);
1369
+ let scopedPayload = downstreamPayload;
1370
+ if (subAgentEntity.PayloadScope) {
1371
+ scopedPayload = this._payloadManager.applyPayloadScope(downstreamPayload, subAgentEntity.PayloadScope);
1372
+ if (scopedPayload === null) {
1373
+ const errorMessage = `Critical: Failed to extract payload scope '${subAgentEntity.PayloadScope}' for sub-agent '${subAgentRequest.name}'. The specified path does not exist in the payload.`;
1374
+ this.logError(errorMessage, {
1375
+ category: 'SubAgentExecution',
1376
+ metadata: {
1377
+ agentName: params.agent.Name,
1378
+ subAgentName: subAgentRequest.name,
1379
+ payloadScope: subAgentEntity.PayloadScope,
1380
+ availableKeys: Object.keys(downstreamPayload || {})
1381
+ }
1382
+ });
1383
+ throw new Error(errorMessage);
1384
+ }
1385
+ }
974
1386
  stepEntity.PayloadAtStart = JSON.stringify(previousDecision.newPayload);
975
- const subAgentResult = await this.ExecuteSubAgent(params, subAgentRequest, subAgentEntity, stepEntity, downstreamPayload);
976
- const mergedPayload = this._payloadManager.mergeUpstreamPayload(subAgentRequest.name, previousDecision.newPayload, subAgentResult.payload, upstreamPaths);
1387
+ const subAgentResult = await this.ExecuteSubAgent(params, subAgentRequest, subAgentEntity, stepEntity, scopedPayload);
1388
+ let resultPayloadForMerge = subAgentResult.payload;
1389
+ if (subAgentEntity.PayloadScope) {
1390
+ resultPayloadForMerge = this._payloadManager.reversePayloadScope(subAgentResult.payload, subAgentEntity.PayloadScope);
1391
+ }
1392
+ const mergedPayload = this._payloadManager.mergeUpstreamPayload(subAgentRequest.name, previousDecision.newPayload, resultPayloadForMerge, upstreamPaths);
977
1393
  const mergeChangeRequest = {
978
1394
  newElements: {},
979
1395
  updateElements: {},
@@ -1140,6 +1556,7 @@ class BaseAgent {
1140
1556
  }
1141
1557
  const stepEntity = await this.createStepEntity('Actions', `Execute Action: ${aa.name}`, params.contextUser, actionEntity.ID);
1142
1558
  stepEntity.StepNumber = baseStepNumber + numActionsProcessed++;
1559
+ this.incrementExecutionCount(actionEntity.ID);
1143
1560
  let actionResult;
1144
1561
  try {
1145
1562
  actionResult = await this.ExecuteSingleAction(params, aa, actionEntity, params.contextUser);
@@ -1301,6 +1718,42 @@ class BaseAgent {
1301
1718
  }
1302
1719
  return { totalTokens, promptTokens, completionTokens, totalCost };
1303
1720
  }
1721
+ async getActionExecutionCount(agentRunId, actionId) {
1722
+ return this.getExecutionCount(actionId);
1723
+ }
1724
+ async getSubAgentExecutionCount(agentRunId, subAgentId) {
1725
+ return this.getExecutionCount(subAgentId);
1726
+ }
1727
+ incrementExecutionCount(itemId) {
1728
+ const currentCount = this._executionCounts.get(itemId) || 0;
1729
+ this._executionCounts.set(itemId, currentCount + 1);
1730
+ }
1731
+ getExecutionCount(itemId) {
1732
+ return this._executionCounts.get(itemId) || 0;
1733
+ }
1734
+ async checkMinimumExecutionRequirements(agent, agentRun) {
1735
+ const violations = [];
1736
+ const agentActions = aiengine_1.AIEngine.Instance.AgentActions.filter(aa => aa.AgentID === agent.ID &&
1737
+ aa.Status === 'Active' &&
1738
+ aa.MinExecutionsPerRun != null &&
1739
+ aa.MinExecutionsPerRun > 0);
1740
+ for (const agentAction of agentActions) {
1741
+ const executionCount = await this.getActionExecutionCount(agentRun.ID, agentAction.ActionID);
1742
+ if (executionCount < agentAction.MinExecutionsPerRun) {
1743
+ violations.push(`Action '${agentAction.Action}' requires ${agentAction.MinExecutionsPerRun} execution(s) but was executed ${executionCount} time(s)`);
1744
+ }
1745
+ }
1746
+ const subAgents = aiengine_1.AIEngine.Instance.GetSubAgents(agent.ID, "Active").filter(a => a.MinExecutionsPerRun != null &&
1747
+ a.MinExecutionsPerRun > 0);
1748
+ for (const subAgent of subAgents) {
1749
+ const executionCount = await this.getSubAgentExecutionCount(agentRun.ID, subAgent.ID);
1750
+ if (executionCount < subAgent.MinExecutionsPerRun) {
1751
+ violations.push(`Sub-agent '${subAgent.Name}' requires ${subAgent.MinExecutionsPerRun} execution(s) but was executed ${executionCount} time(s)`);
1752
+ }
1753
+ }
1754
+ return violations;
1755
+ }
1304
1756
  }
1305
1757
  exports.BaseAgent = BaseAgent;
1758
+ BaseAgent.MAX_VALIDATION_RETRIES = 10;
1306
1759
  //# sourceMappingURL=base-agent.js.map