@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.
43 lines • 2.56 kB
TypeScript
/**
* TemplateManager - Refactored to extend BaseElementManager, keeping
* template-specific validation, import/export logic, and analytics helpers.
*/
import { FileLockManager } from '../../security/fileLockManager.js';
import { BaseElementManager } from '../base/BaseElementManager.js';
import { Template, TemplateMetadata } from './Template.js';
import { PortfolioManager } from '../../portfolio/PortfolioManager.js';
import { ValidationRegistry } from '../../services/validation/ValidationRegistry.js';
import { SerializationService } from '../../services/SerializationService.js';
import { MetadataService } from '../../services/MetadataService.js';
import { FileOperationsService } from '../../services/FileOperationsService.js';
import { FileWatchService } from '../../services/FileWatchService.js';
export declare class TemplateManager extends BaseElementManager<Template> {
private metadataService;
private triggerValidationService;
private validationService;
private serializationService;
constructor(portfolioManager: PortfolioManager, fileLockManager: FileLockManager, fileOperationsService: FileOperationsService, validationRegistry: ValidationRegistry, serializationService: SerializationService, metadataService: MetadataService, fileWatchService?: FileWatchService, memoryBudget?: import('../../cache/CacheMemoryBudget.js').CacheMemoryBudget, backupService?: import('../../services/BackupService.js').BackupService);
protected getElementLabel(): string;
load(filePath: string): Promise<Template>;
save(template: Template, filePath: string): Promise<void>;
delete(filePath: string): Promise<void>;
create(data: {
name: string;
description: string;
content?: string;
instructions?: string;
metadata?: Partial<TemplateMetadata>;
}): Promise<Template>;
importElement(data: string, format?: 'json' | 'yaml' | 'markdown'): Promise<Template>;
exportElement(template: Template, format?: 'json' | 'yaml' | 'markdown'): Promise<string>;
findByCategory(category: string): Promise<Template[]>;
findByTag(tag: string): Promise<Template[]>;
getMostUsed(limit?: number): Promise<Template[]>;
getFileExtension(): string;
protected parseMetadata(data: any): Promise<TemplateMetadata>;
protected createElement(metadata: TemplateMetadata, bodyContent: string): Template;
private buildDefaultBody;
protected serializeElement(template: Template): Promise<string>;
private sanitizeMetadata;
}
//# sourceMappingURL=TemplateManager.d.ts.map