/** * Persona validation utilities. * * Validates persona configurations including bias weights and categories * to ensure they form valid probability distributions. */ import type { Persona, QuestionBias, QuestionCategory } from './types.js'; /** * Validation error with detailed information. */ export interface ValidationError { /** Field or path that failed validation */ field: string; /** Error message */ message: string; /** Actual value that caused the error */ actual?: unknown; /** Expected value or constraint */ expected?: string; } /** * Result of validating a persona. */ export interface PersonaValidationResult { /** Whether the persona is valid */ valid: boolean; /** Validation errors (empty if valid) */ errors: ValidationError[]; /** Validation warnings (non-fatal issues) */ warnings: ValidationError[]; } /** * Options for persona validation. */ export interface ValidationOptions { /** Tolerance for weight sum validation (default: 0.01) */ sumTolerance?: number; /** Whether to allow security category without security bias (default: false) */ allowMissingSecurity?: boolean; /** Whether to warn about unused biases (default: true) */ warnUnusedBiases?: boolean; /** Minimum bias weight to be considered "active" (default: 0.05) */ minActiveBias?: number; } /** * Validate a persona's bias weights. * * @param bias - The question bias configuration * @param options - Validation options * @returns Validation result with errors and warnings */ export declare function validateBiasWeights(bias: QuestionBias, options?: ValidationOptions): PersonaValidationResult; /** * Validate that categories have corresponding active bias weights. * * @param bias - The question bias configuration * @param categories - The categories this persona focuses on * @param options - Validation options * @returns Validation result with errors and warnings */ export declare function validateCategoryBiasAlignment(bias: QuestionBias, categories: QuestionCategory[], options?: ValidationOptions): PersonaValidationResult; /** * Validate a complete persona configuration. * * @param persona - The persona to validate * @param options - Validation options * @returns Validation result with errors and warnings */ export declare function validatePersona(persona: Persona, options?: ValidationOptions): PersonaValidationResult; /** * Format validation errors for display. * * @param result - Validation result * @param personaSource - Source of the persona (e.g., file path or "built-in") * @returns Formatted error message */ export declare function formatValidationErrors(result: PersonaValidationResult, personaSource: string): string; /** * Assert a persona is valid, throwing if not. * * @param persona - The persona to validate * @param source - Source identifier for error messages * @param options - Validation options * @throws Error if persona is invalid */ export declare function assertValidPersona(persona: Persona, source: string, options?: ValidationOptions): void; /** * Normalize bias weights to sum to 1.0. * * @param bias - The original bias configuration * @returns Normalized bias with weights summing to 1.0 */ export declare function normalizeBiasWeights(bias: QuestionBias): QuestionBias; //# sourceMappingURL=validation.d.ts.map