@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.
83 lines • 2.79 kB
TypeScript
/**
* Persona element class implementing IElement interface.
* Represents a behavioral profile that defines AI personality and interaction style.
*/
import { BaseElement } from '../elements/BaseElement.js';
import { IElement, IElementMetadata, ElementValidationResult } from '../types/elements/index.js';
import { ElementType } from '../portfolio/types.js';
import { PersonaMetadata } from '../types/persona.js';
import { MetadataService } from '../services/MetadataService.js';
export interface PersonaElementMetadata extends IElementMetadata {
type?: ElementType.PERSONA;
unique_id?: string;
triggers?: string[];
category?: string;
age_rating?: 'all' | '13+' | '18+';
content_flags?: string[];
ai_generated?: boolean;
generation_method?: 'human' | 'ChatGPT' | 'Claude' | 'hybrid';
price?: string;
revenue_split?: string;
license?: string;
created_date?: string;
}
export declare class PersonaElement extends BaseElement implements IElement {
filename: string;
metadata: PersonaElementMetadata;
/**
* Backward compatibility: provide unique_id as an alias for id
*/
get unique_id(): string;
set unique_id(value: string);
constructor(metadata: Partial<PersonaElementMetadata>, instructions: string | undefined, filename: string | undefined, metadataService: MetadataService, content?: string);
/**
* Create PersonaElement from legacy Persona interface
*/
static fromLegacy(legacyPersona: {
metadata: PersonaMetadata;
content: string;
filename: string;
unique_id: string;
}, metadataService: MetadataService): PersonaElement;
/**
* Convert to legacy Persona interface for backward compatibility
*/
toLegacy(): {
metadata: PersonaMetadata;
content: string;
filename: string;
unique_id: string;
};
/**
* Persona-specific validation
*/
validate(): ElementValidationResult;
/**
* Get content for serialization.
* Returns instructions as the primary body text (v1 compat).
* v2 format writes instructions to YAML frontmatter and content as body.
*/
protected getContent(): string;
/**
* Serialize persona to markdown format
* Refactored to use base class pattern with getContent()
*/
serialize(): string;
/**
* Serialize to JSON format for internal use and testing
*/
serializeToJSON(): string;
/**
* Deserialize persona from markdown format
*/
deserialize(data: string): void;
/**
* Persona activation lifecycle
*/
activate(): Promise<void>;
/**
* Persona deactivation lifecycle
*/
deactivate(): Promise<void>;
}
//# sourceMappingURL=PersonaElement.d.ts.map