@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.
58 lines • 1.96 kB
TypeScript
/**
* Content Validation Pipeline for Web UI
*
* Composes the standalone security validators into a single pipeline
* for validating portfolio element content before serving to the browser.
*
* Uses the same validators as the MCPAQLHandler but without coupling
* to the handler's operation dispatch. This is the extraction point
* for the upcoming MCPAQLHandler decomposition.
*
* auto-dollhouse#5 / upstream #1679
* DMCP-SEC-004 compliant: uses UnicodeValidator.normalize() on all inputs
*/
/** Known metadata fields extracted from YAML frontmatter for web display */
export interface ElementDisplayMetadata {
name?: string;
description?: string;
version?: string;
author?: string;
category?: string;
created?: string;
created_date?: string;
modified?: string;
tags?: string[];
license?: string;
age_rating?: string;
triggers?: string[];
instructions?: string;
coordination_strategy?: string;
use_cases?: string[];
proficiency_levels?: Record<string, string>;
gatekeeper?: Record<string, unknown>;
goal?: Record<string, unknown>;
autonomy?: Record<string, unknown>;
memoryType?: string;
[key: string]: unknown;
}
export interface PipelineResult {
valid: boolean;
content: string;
metadata: ElementDisplayMetadata;
body: string;
rejection?: {
reason: string;
severity?: string;
patterns?: string[];
};
}
/**
* Validate element content through the security pipeline.
*
* @param filename - The element filename (e.g., "alex-sterling.md")
* @param rawContent - The raw file content string
* @param elementType - The plural element type directory (e.g., "personas")
* @returns Validated content with parsed metadata, or rejection with reason
*/
export declare function validateElementContent(filename: string, rawContent: string, elementType: string): PipelineResult;
//# sourceMappingURL=contentPipeline.d.ts.map