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.

119 lines 3.98 kB
/** * FIX: DMCP-SEC-006 - Security audit suppression * This file delegates element creation to specialized managers. * Audit logging happens in the managers themselves (PersonaManager, SkillManager, etc.). * @security-audit-suppress DMCP-SEC-006 */ import { ElementCrudContext } from './types.js'; import type { McpToolResponse } from './responseFormatter.js'; import type { EnsembleElement } from '../../elements/ensembles/types.js'; /** * Arguments for creating a new element. * * @example * // Create a persona * { name: 'helper', type: 'persona', description: 'A helpful assistant', instructions: 'Be helpful' } * * @example * // Create an ensemble with elements * { * name: 'my-ensemble', * type: 'ensemble', * description: 'A coordinated group', * elements: [{ name: 'skill1', type: 'skill', role: 'primary', priority: 100, activation: 'always' }] * } * * @example * // Create a V2 agent with goal configuration * { * name: 'task-runner', * type: 'agent', * description: 'Executes tasks autonomously', * goal: { * template: 'Complete the following task: {objective}', * parameters: [{ name: 'objective', type: 'string', required: true }], * successCriteria: ['Task completed successfully', 'Results documented'] * }, * activates: { skills: ['code-review'], personas: ['developer'] } * } */ export interface CreateElementArgs { name: string; type: string; description: string; /** Reference material, knowledge, context (informational). For templates: template body. */ content?: string; /** Behavioral directives (command voice). For personas: behavioral profile. For skills: how to apply. For agents: agent behavioral protocol. */ instructions?: string; metadata?: Record<string, unknown>; /** * For ensembles - array of element references. * Issue #278: LLMs often pass elements at top level, not inside metadata. */ elements?: EnsembleElement[]; /** * For V2 agents - goal configuration with template and parameters. * Can be passed as a simple string (will be converted to V2 format) * or as a full V2 config object. * * @since v2.0.0 - Agent V2 Infrastructure * * @example * // Simple string goal (auto-converted to V2 format) * goal: 'Complete the analysis task' * * @example * // Full V2 config with parameters * goal: { * template: 'Analyze {target} for {purpose}', * parameters: [ * { name: 'target', type: 'string', required: true }, * { name: 'purpose', type: 'string', required: true } * ], * successCriteria: ['Analysis complete', 'Report generated'] * } */ goal?: string | { template: string; parameters?: Array<{ name: string; type: 'string' | 'number' | 'boolean'; required: boolean; description?: string; default?: string | number | boolean; }>; successCriteria?: string[]; }; /** * For V2 agents - elements to activate when agent executes. * @since v2.0.0 - Agent V2 Infrastructure */ activates?: { personas?: string[]; skills?: string[]; memories?: string[]; templates?: string[]; ensembles?: string[]; [key: string]: string[] | undefined; }; /** * For V2 agents - tool configuration (informational). * @since v2.0.0 - Agent V2 Infrastructure */ tools?: { allowed: string[]; denied?: string[]; }; /** * For V2 agents - custom system prompt for LLM context. * @since v2.0.0 - Agent V2 Infrastructure */ systemPrompt?: string; } export declare function createElement(context: ElementCrudContext, args: CreateElementArgs): Promise<McpToolResponse | { content: { type: string; text: string; }[]; }>; //# sourceMappingURL=createElement.d.ts.map