UNPKG

@dollhousemcp/mcp-server

Version:

DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.

116 lines 4.43 kB
/** * ValidationRegistry - Central registry for element validators * * Consolidates all validation services into a single injection point, * reducing constructor bloat in element managers while maintaining * type-specific validation capabilities. * * @example * ```typescript * // In Container.ts * const validationRegistry = new ValidationRegistry( * validationService, * triggerValidationService, * metadataService * ); * * // In element managers * constructor(validationRegistry: ValidationRegistry) { * this.validator = validationRegistry.getValidator(this.elementType); * } * ``` */ import { ElementType } from '../../portfolio/types.js'; import { ValidationService } from './ValidationService.js'; import { TriggerValidationService } from './TriggerValidationService.js'; import { MetadataService } from '../MetadataService.js'; import { ElementValidator } from './ElementValidator.js'; /** * Central registry for element validators */ export declare class ValidationRegistry { private validationService; private triggerValidationService; private metadataService; private validators; private genericValidators; /** * Create a new ValidationRegistry * * @param validationService - Core validation service for input sanitization * @param triggerValidationService - Service for validating trigger keywords * @param metadataService - Service for metadata operations */ constructor(validationService: ValidationService, triggerValidationService: TriggerValidationService, metadataService: MetadataService); /** * Get a validator for the specified element type * * Returns a specialized validator if registered, otherwise returns * a generic validator for that element type. * * @param type - The element type to get a validator for * @returns ElementValidator for the specified type */ getValidator(type: ElementType): ElementValidator; /** * Register a custom validator for an element type * * @param type - The element type to register for * @param validator - The validator implementation */ registerValidator(type: ElementType, validator: ElementValidator): void; /** * Check if a specialized validator is registered for an element type * * @param type - The element type to check * @returns true if a specialized validator is registered */ hasSpecializedValidator(type: ElementType): boolean; /** * Get all registered element types * * @returns Array of element types with registered validators */ getRegisteredTypes(): ElementType[]; /** * Get the underlying validation service * * Used by element managers that need direct access to validation * utilities beyond what the ElementValidator interface provides. * * @returns ValidationService instance */ getValidationService(): ValidationService; /** * Get the underlying trigger validation service * * @returns TriggerValidationService instance */ getTriggerValidationService(): TriggerValidationService; /** * Get the underlying metadata service * * @returns MetadataService instance */ getMetadataService(): MetadataService; /** * Register default validators for all element types */ private registerDefaultValidators; /** * Get or create a generic validator for an element type */ private getGenericValidator; } export type { ElementValidator, ValidationResult, ValidationReport, ElementValidationOptions, MetadataValidationOptions } from './ElementValidator.js'; export { ValidatorHelpers } from './ElementValidator.js'; export { GenericElementValidator } from './GenericElementValidator.js'; export { PersonaElementValidator } from './PersonaElementValidator.js'; export { TemplateElementValidator } from './TemplateElementValidator.js'; export { MemoryElementValidator } from './MemoryElementValidator.js'; export { EnsembleElementValidator } from './EnsembleElementValidator.js'; export { AgentElementValidator } from './AgentElementValidator.js'; export { SkillElementValidator } from './SkillElementValidator.js'; export { ValidationService } from './ValidationService.js'; export { TriggerValidationService } from './TriggerValidationService.js'; //# sourceMappingURL=ValidationRegistry.d.ts.map