/** * AgentElementValidator - Specialized validator for Agent elements * * Extends GenericElementValidator to add Agent-specific validation: * - V2.0 fields: goal (template/parameters), activates, tools, systemPrompt, autonomy * - V1.x legacy fields with deprecation warnings * - Complex validations: goal template/parameter consistency, autonomy conflict detection * - Migration suggestions for V1 agents * * @since v2.0.0 - Agentic Loop Redesign */ import { GenericElementValidator } from './GenericElementValidator.js'; import { ValidationResult, ElementValidationOptions } from './ElementValidator.js'; import { ValidationService } from './ValidationService.js'; import { TriggerValidationService } from './TriggerValidationService.js'; import { MetadataService } from '../MetadataService.js'; /** * Specialized validator for Agent elements */ export declare class AgentElementValidator extends GenericElementValidator { constructor(validationService: ValidationService, triggerValidationService: TriggerValidationService, metadataService: MetadataService); /** * Override validateCreate to add agent-specific validation */ validateCreate(data: unknown, options?: ElementValidationOptions): Promise; /** * Validate V2.0 goal configuration (REQUIRED) * * Must have: * - template (string with {parameter} placeholders) * - parameters (array of parameter definitions) * - successCriteria (optional string[]) * * Also validates template/parameter consistency. * * Architecture: Input normalization happens at GenericElementValidator boundary. * This validator receives pre-normalized data and validates business rules. */ private validateGoal; /** * Validate goal parameters and check consistency with template */ private validateGoalParameters; /** * Extract parameter placeholders from template * Finds all {parameterName} patterns */ private extractTemplatePlaceholders; /** * Validate V2.0 activates configuration (OPTIONAL) * * Must be an object where each property is a string array. * Supports: personas, skills, memories, templates, ensembles */ private validateActivates; /** * Validate V2.0 tools configuration (OPTIONAL) * * Must have: * - allowed (string[], required if tools defined) * - denied (string[], optional) */ private validateTools; /** * Validate V2.0 system prompt (OPTIONAL) * * Must be a string, length 1-10000 characters. * Uses validationService for content security. * * Architecture: Input is already normalized by GenericElementValidator. * This validator checks business rules (length, patterns) on normalized data. */ private validateSystemPrompt; /** * Validate V2.0 autonomy configuration (OPTIONAL) * * Fields: * - riskTolerance (enum) * - maxAutonomousSteps (positive integer, 0 = unlimited) * - requiresApproval (string[] glob patterns) * - autoApprove (string[] glob patterns) * * Also detects conflicts between requiresApproval and autoApprove. */ private validateAutonomy; /** * Validate V2.1 resilience configuration (OPTIONAL, nested under autonomy) * * Fields: * - onStepLimitReached ('pause' | 'continue' | 'restart') * - onExecutionFailure ('pause' | 'retry' | 'restart-fresh') * - maxRetries (non-negative integer, default 3) * - maxContinuations (non-negative integer, 0 = unlimited, default 10) * - retryBackoff ('none' | 'linear' | 'exponential') * - preserveState (boolean) * * @since v2.1.0 - Agent Execution Resilience (Issue #526) */ private validateResilience; /** * Validate V1.x decisionFramework (DEPRECATED) * Data is already normalized by GenericElementValidator */ private validateDecisionFramework; /** * Validate V1.x specializations (DEPRECATED) * Data is already normalized by GenericElementValidator */ private validateSpecializations; /** * Validate riskTolerance enum * Used in both V1.x (deprecated) and V2.0 autonomy config * Data is already normalized by GenericElementValidator */ private validateRiskTolerance; /** * Validate V1.x maxConcurrentGoals (DEPRECATED) */ private validateMaxConcurrentGoals; /** * Check if an agent appears to be V1.x format * V1 agents have decisionFramework or specializations but no goal config */ private isV1Agent; } //# sourceMappingURL=AgentElementValidator.d.ts.map