UNPKG

@mickdarling/dollhousemcp

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.

57 lines (52 loc) 6.38 kB
/** * Submit personas to the marketplace */ export class PersonaSubmitter { /** * Generate GitHub issue for persona submission */ generateSubmissionIssue(persona) { const issueTitle = `New Persona Submission: ${persona.metadata.name}`; const issueBody = `## Persona Submission **Name:** ${persona.metadata.name} **Author:** ${persona.metadata.author || 'Unknown'} **Category:** ${persona.metadata.category || 'General'} **Description:** ${persona.metadata.description} ### Persona Content: \`\`\`markdown --- ${Object.entries(persona.metadata) .map(([key, value]) => `${key}: ${Array.isArray(value) ? JSON.stringify(value) : JSON.stringify(value)}`) .join('\n')} --- ${persona.content} \`\`\` ### Submission Details: - Submitted via DollhouseMCP client - Filename: ${persona.filename} - Unique ID: ${persona.unique_id} --- *Please review this persona for inclusion in the marketplace.*`; const githubIssueUrl = `https://github.com/DollhouseMCP/personas/issues/new?title=${encodeURIComponent(issueTitle)}&body=${encodeURIComponent(issueBody)}`; return { issueTitle, issueBody, githubIssueUrl }; } /** * Format submission response */ formatSubmissionResponse(persona, githubIssueUrl, personaIndicator = '') { return `${personaIndicator}📤 **Persona Submission Prepared**\n\n` + `🎭 **${persona.metadata.name}** is ready for marketplace submission!\n\n` + `**Next Steps:**\n` + `1. Click this link to create a GitHub issue: \n` + ` ${githubIssueUrl}\n\n` + `2. Review the pre-filled content\n` + `3. Click "Submit new issue"\n` + `4. The maintainers will review your submission\n\n` + `⭐ **Tip:** You can also submit via pull request if you're familiar with Git!`; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uYVN1Ym1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXJrZXRwbGFjZS9QZXJzb25hU3VibWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7T0FFRztJQUNILHVCQUF1QixDQUFDLE9BQWdCO1FBS3RDLE1BQU0sVUFBVSxHQUFHLDJCQUEyQixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RFLE1BQU0sU0FBUyxHQUFHOztZQUVWLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSTtjQUNuQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTO2dCQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxTQUFTO21CQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVc7Ozs7O0VBSzdDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUMvQixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ3hHLElBQUksQ0FBQyxJQUFJLENBQUM7OztFQUdYLE9BQU8sQ0FBQyxPQUFPOzs7OztjQUtILE9BQU8sQ0FBQyxRQUFRO2VBQ2YsT0FBTyxDQUFDLFNBQVM7OzsrREFHK0IsQ0FBQztRQUU1RCxNQUFNLGNBQWMsR0FBRyw2REFBNkQsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFNBQVMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUUzSixPQUFPO1lBQ0wsVUFBVTtZQUNWLFNBQVM7WUFDVCxjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILHdCQUF3QixDQUFDLE9BQWdCLEVBQUUsY0FBc0IsRUFBRSxtQkFBMkIsRUFBRTtRQUM5RixPQUFPLEdBQUcsZ0JBQWdCLHdDQUF3QztZQUNoRSxRQUFRLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSw2Q0FBNkM7WUFDMUUsbUJBQW1CO1lBQ25CLGlEQUFpRDtZQUNqRCxNQUFNLGNBQWMsTUFBTTtZQUMxQixvQ0FBb0M7WUFDcEMsK0JBQStCO1lBQy9CLG9EQUFvRDtZQUNwRCw4RUFBOEUsQ0FBQztJQUNuRixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN1Ym1pdCBwZXJzb25hcyB0byB0aGUgbWFya2V0cGxhY2VcbiAqL1xuXG5pbXBvcnQgeyBQZXJzb25hIH0gZnJvbSAnLi4vdHlwZXMvcGVyc29uYS5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQZXJzb25hU3VibWl0dGVyIHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlIEdpdEh1YiBpc3N1ZSBmb3IgcGVyc29uYSBzdWJtaXNzaW9uXG4gICAqL1xuICBnZW5lcmF0ZVN1Ym1pc3Npb25Jc3N1ZShwZXJzb25hOiBQZXJzb25hKTogeyBcbiAgICBpc3N1ZVRpdGxlOiBzdHJpbmc7IFxuICAgIGlzc3VlQm9keTogc3RyaW5nOyBcbiAgICBnaXRodWJJc3N1ZVVybDogc3RyaW5nIFxuICB9IHtcbiAgICBjb25zdCBpc3N1ZVRpdGxlID0gYE5ldyBQZXJzb25hIFN1Ym1pc3Npb246ICR7cGVyc29uYS5tZXRhZGF0YS5uYW1lfWA7XG4gICAgY29uc3QgaXNzdWVCb2R5ID0gYCMjIFBlcnNvbmEgU3VibWlzc2lvblxuXG4qKk5hbWU6KiogJHtwZXJzb25hLm1ldGFkYXRhLm5hbWV9XG4qKkF1dGhvcjoqKiAke3BlcnNvbmEubWV0YWRhdGEuYXV0aG9yIHx8ICdVbmtub3duJ31cbioqQ2F0ZWdvcnk6KiogJHtwZXJzb25hLm1ldGFkYXRhLmNhdGVnb3J5IHx8ICdHZW5lcmFsJ31cbioqRGVzY3JpcHRpb246KiogJHtwZXJzb25hLm1ldGFkYXRhLmRlc2NyaXB0aW9ufVxuXG4jIyMgUGVyc29uYSBDb250ZW50OlxuXFxgXFxgXFxgbWFya2Rvd25cbi0tLVxuJHtPYmplY3QuZW50cmllcyhwZXJzb25hLm1ldGFkYXRhKVxuICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX06ICR7QXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YClcbiAgLmpvaW4oJ1xcbicpfVxuLS0tXG5cbiR7cGVyc29uYS5jb250ZW50fVxuXFxgXFxgXFxgXG5cbiMjIyBTdWJtaXNzaW9uIERldGFpbHM6XG4tIFN1Ym1pdHRlZCB2aWEgRG9sbGhvdXNlTUNQIGNsaWVudFxuLSBGaWxlbmFtZTogJHtwZXJzb25hLmZpbGVuYW1lfVxuLSBVbmlxdWUgSUQ6ICR7cGVyc29uYS51bmlxdWVfaWR9XG5cbi0tLVxuKlBsZWFzZSByZXZpZXcgdGhpcyBwZXJzb25hIGZvciBpbmNsdXNpb24gaW4gdGhlIG1hcmtldHBsYWNlLipgO1xuICAgIFxuICAgIGNvbnN0IGdpdGh1Yklzc3VlVXJsID0gYGh0dHBzOi8vZ2l0aHViLmNvbS9Eb2xsaG91c2VNQ1AvcGVyc29uYXMvaXNzdWVzL25ldz90aXRsZT0ke2VuY29kZVVSSUNvbXBvbmVudChpc3N1ZVRpdGxlKX0mYm9keT0ke2VuY29kZVVSSUNvbXBvbmVudChpc3N1ZUJvZHkpfWA7XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgIGlzc3VlVGl0bGUsXG4gICAgICBpc3N1ZUJvZHksXG4gICAgICBnaXRodWJJc3N1ZVVybFxuICAgIH07XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBGb3JtYXQgc3VibWlzc2lvbiByZXNwb25zZVxuICAgKi9cbiAgZm9ybWF0U3VibWlzc2lvblJlc3BvbnNlKHBlcnNvbmE6IFBlcnNvbmEsIGdpdGh1Yklzc3VlVXJsOiBzdHJpbmcsIHBlcnNvbmFJbmRpY2F0b3I6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cGVyc29uYUluZGljYXRvcn3wn5OkICoqUGVyc29uYSBTdWJtaXNzaW9uIFByZXBhcmVkKipcXG5cXG5gICtcbiAgICAgIGDwn46tICoqJHtwZXJzb25hLm1ldGFkYXRhLm5hbWV9KiogaXMgcmVhZHkgZm9yIG1hcmtldHBsYWNlIHN1Ym1pc3Npb24hXFxuXFxuYCArXG4gICAgICBgKipOZXh0IFN0ZXBzOioqXFxuYCArXG4gICAgICBgMS4gQ2xpY2sgdGhpcyBsaW5rIHRvIGNyZWF0ZSBhIEdpdEh1YiBpc3N1ZTogXFxuYCArXG4gICAgICBgICAgJHtnaXRodWJJc3N1ZVVybH1cXG5cXG5gICtcbiAgICAgIGAyLiBSZXZpZXcgdGhlIHByZS1maWxsZWQgY29udGVudFxcbmAgK1xuICAgICAgYDMuIENsaWNrIFwiU3VibWl0IG5ldyBpc3N1ZVwiXFxuYCArXG4gICAgICBgNC4gVGhlIG1haW50YWluZXJzIHdpbGwgcmV2aWV3IHlvdXIgc3VibWlzc2lvblxcblxcbmAgK1xuICAgICAgYOKtkCAqKlRpcDoqKiBZb3UgY2FuIGFsc28gc3VibWl0IHZpYSBwdWxsIHJlcXVlc3QgaWYgeW91J3JlIGZhbWlsaWFyIHdpdGggR2l0IWA7XG4gIH1cbn0iXX0=