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.

132 lines 4.41 kB
/** * ElementValidation - Common validation logic for element managers * * Provides shared validation patterns for all element types: * - Name, description, category validation * - Trigger word validation * - Author and version validation * * SECURITY: All validation uses sanitizeInput and proper type checking * UNICODE HANDLING: Uses UnicodeValidator for safe string processing * * FIX: DMCP-SEC-006 - Security audit suppression * This file provides validation utilities only. * No audit logging is required - logging happens in the calling managers. * @security-audit-suppress DMCP-SEC-006 */ /** * Validation constants shared across element types */ export declare const VALIDATION_CONSTANTS: { readonly MAX_NAME_LENGTH: 100; readonly MAX_DESCRIPTION_LENGTH: 500; readonly MAX_CATEGORY_LENGTH: 50; readonly MAX_TAG_LENGTH: 50; readonly MAX_AUTHOR_LENGTH: 100; readonly MAX_VERSION_LENGTH: 20; readonly MAX_TRIGGER_LENGTH: 50; readonly MAX_TRIGGERS: 20; readonly TRIGGER_VALIDATION_REGEX: RegExp; }; /** * Result of trigger validation */ export interface TriggerValidationResult { valid: string[]; rejected: string[]; warnings: string[]; } /** * Static utility class for common validation operations */ export declare class ElementValidation { /** * Validate and sanitize a name field * Applies Unicode normalization and length limits * * @param name - Raw name value * @param maxLength - Maximum length (default: 100) * @returns Sanitized name */ static validateName(name: any, maxLength?: number): string; /** * Validate and sanitize a description field * * @param description - Raw description value * @param maxLength - Maximum length (default: 500) * @returns Sanitized description or undefined */ static validateDescription(description: any, maxLength?: number): string | undefined; /** * Validate and sanitize an author field * * @param author - Raw author value * @returns Sanitized author or undefined */ static validateAuthor(author: any): string | undefined; /** * Validate and sanitize a version string * * @param version - Raw version value * @returns Sanitized version or undefined */ static validateVersion(version: any): string | undefined; /** * Validate and sanitize an array of tags * * @param tags - Raw tags array * @returns Sanitized tags array */ static validateTags(tags: any): string[]; /** * Validate and process triggers with detailed logging * Follows pattern from SkillManager (Issue #1139) and MemoryManager (Issue #1133) * * @param triggers - Raw triggers array * @param elementName - Element name for logging * @param maxTriggers - Maximum number of triggers (default: 20) * @returns Validation result with valid and rejected triggers */ static validateTriggers(triggers: any[], elementName?: string, maxTriggers?: number): TriggerValidationResult; /** * Validate a category field * * @param category - Raw category value * @returns Sanitized category or undefined */ static validateCategory(category: any): string | undefined; /** * Validate and sanitize common element metadata fields * Returns an object with all common validated fields * * @param data - Raw metadata object * @returns Validated common metadata fields */ static validateCommonMetadata(data: any): { name?: string; description?: string; author?: string; version?: string; category?: string; tags?: string[]; triggers?: string[]; }; /** * Validate a numeric field with min/max bounds * * @param value - Raw numeric value * @param min - Minimum value (default: 0) * @param max - Maximum value (default: Number.MAX_SAFE_INTEGER) * @returns Validated number */ static validateNumber(value: any, min?: number, max?: number): number; /** * Validate a boolean field * * @param value - Raw boolean value * @param defaultValue - Default if value is undefined * @returns Boolean value */ static validateBoolean(value: any, defaultValue?: boolean): boolean; } //# sourceMappingURL=ElementValidation.d.ts.map