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.

154 lines 4.72 kB
/** * PersonaHandler - Handles all persona-related MCP tool operations * * Provides the interface for activating, deactivating, listing, exporting, * and importing personas through MCP tools. * * Uses dependency injection for all services: * - PersonaManager for persona state and operations * - InitializationService for setup tasks * - PersonaIndicatorService for persona indicator formatting * * FIX: DMCP-SEC-006 - Security audit suppression * This handler delegates all operations to PersonaManager. * Audit logging happens in PersonaManager for CRUD operations. * @security-audit-suppress DMCP-SEC-006 */ import { PersonaExporter, PersonaImporter } from '../persona/export-import/index.js'; import { PersonaManager } from '../persona/PersonaManager.js'; import { InitializationService } from '../services/InitializationService.js'; import { PersonaIndicatorService } from '../services/PersonaIndicatorService.js'; /** * Handles all persona-related MCP tool operations */ export declare class PersonaHandler { private readonly personaManager; private readonly personaExporter; private readonly personaImporter; private readonly initService; private readonly indicatorService; private readonly activePersona; constructor(personaManager: PersonaManager, personaExporter: PersonaExporter, personaImporter: PersonaImporter | undefined, initService: InitializationService, indicatorService: PersonaIndicatorService, activePersona: { get: () => string | null; set: (value: string | null) => void; }); /** * List all available personas * Extracted from index.ts:515-557 */ listPersonas(): Promise<{ content: { type: string; text: string; }[]; }>; /** * Activate a persona by identifier (filename or name) * Extracted from index.ts:559-592 */ activatePersona(personaIdentifier: string): Promise<import("./element-crud/responseFormatter.js").McpToolResponse | { content: { type: string; text: string; }[]; }>; /** * Get currently active persona details * Extracted from index.ts:594-631 */ getActivePersona(): Promise<{ content: { type: string; text: string; }[]; }>; /** * Deactivate the currently active persona * Extracted from index.ts:633-648 */ deactivatePersona(): Promise<{ content: { type: string; text: string; }[]; }>; /** * Get detailed information about a specific persona * Extracted from index.ts:650-690 */ getPersonaDetails(personaIdentifier: string): Promise<import("./element-crud/responseFormatter.js").McpToolResponse | { content: { type: string; text: string; }[]; }>; /** * Reload personas from disk * Extracted from index.ts:692-702 */ reloadPersonas(): Promise<{ content: { type: string; text: string; }[]; }>; /** * Create a new persona * Extracted from index.ts:3753-4029 (277 lines - exact copy) */ createPersona(name: string, description: string, instructions: string, triggers?: string, metadata?: Record<string, any>): Promise<{ content: { type: string; text: string; }[]; }>; /** * Export a persona to base64-encoded JSON * Extracted from index.ts:4635-4670 */ exportPersona(personaName: string): Promise<{ content: { type: string; text: string; }[]; }>; /** * Export all personas as a bundle * Extracted from index.ts:4790-4810 */ exportAllPersonas(includeDefaults?: boolean): Promise<{ content: { type: string; text: string; }[]; }>; /** * Import a persona from file path or JSON string * Extracted from index.ts:4701-4739 */ importPersona(source: string, overwrite?: boolean): Promise<{ content: { type: string; text: string; }[]; }>; editPersona(personaIdentifier: string, field: string, value: string): Promise<{ content: { type: string; text: string; }[]; }>; validatePersona(personaIdentifier: string): Promise<{ content: { type: string; text: string; }[]; }>; deletePersona(personaIdentifier: string): Promise<{ content: { type: string; text: string; }[]; }>; } //# sourceMappingURL=PersonaHandler.d.ts.map