@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.
28 lines • 4.34 kB
JavaScript
export class PlainTextFormatter {
fileExtension = '.log';
format(entry) {
const ts = entry.timestamp.replace('T', ' ').replace('Z', '');
const level = entry.level.toUpperCase();
const corrId = entry.correlationId ? ` [${entry.correlationId}]` : '';
let output = `[${ts}] [${level}] [${entry.source}]${corrId} ${entry.message}\n`;
if (entry.error) {
output += ` ${entry.error.name}: ${entry.error.message}\n`;
if (entry.error.stack) {
for (const line of entry.error.stack.split('\n')) {
output += ` ${line}\n`;
}
}
}
if (entry.data) {
for (const [key, value] of Object.entries(entry.data)) {
const formatted = typeof value === 'object' && value !== null
? JSON.stringify(value)
: String(value);
output += ` ${key}: ${formatted}\n`;
}
}
output += '\n';
return output;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxhaW5UZXh0Rm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xvZ2dpbmcvZm9ybWF0dGVycy9QbGFpblRleHRGb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixhQUFhLEdBQUcsTUFBTSxDQUFDO0lBRWhDLE1BQU0sQ0FBQyxLQUFzQjtRQUMzQixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEUsSUFBSSxNQUFNLEdBQUcsSUFBSSxFQUFFLE1BQU0sS0FBSyxNQUFNLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQztRQUVoRixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzVELElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDakQsTUFBTSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sU0FBUyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSTtvQkFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO29CQUN2QixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsQixNQUFNLElBQUksS0FBSyxHQUFHLEtBQUssU0FBUyxJQUFJLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksSUFBSSxDQUFDO1FBQ2YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJTG9nRm9ybWF0dGVyLCBVbmlmaWVkTG9nRW50cnkgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQbGFpblRleHRGb3JtYXR0ZXIgaW1wbGVtZW50cyBJTG9nRm9ybWF0dGVyIHtcbiAgcmVhZG9ubHkgZmlsZUV4dGVuc2lvbiA9ICcubG9nJztcblxuICBmb3JtYXQoZW50cnk6IFVuaWZpZWRMb2dFbnRyeSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHMgPSBlbnRyeS50aW1lc3RhbXAucmVwbGFjZSgnVCcsICcgJykucmVwbGFjZSgnWicsICcnKTtcbiAgICBjb25zdCBsZXZlbCA9IGVudHJ5LmxldmVsLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgY29ycklkID0gZW50cnkuY29ycmVsYXRpb25JZCA/IGAgWyR7ZW50cnkuY29ycmVsYXRpb25JZH1dYCA6ICcnO1xuICAgIGxldCBvdXRwdXQgPSBgWyR7dHN9XSBbJHtsZXZlbH1dIFske2VudHJ5LnNvdXJjZX1dJHtjb3JySWR9ICR7ZW50cnkubWVzc2FnZX1cXG5gO1xuXG4gICAgaWYgKGVudHJ5LmVycm9yKSB7XG4gICAgICBvdXRwdXQgKz0gYCAgJHtlbnRyeS5lcnJvci5uYW1lfTogJHtlbnRyeS5lcnJvci5tZXNzYWdlfVxcbmA7XG4gICAgICBpZiAoZW50cnkuZXJyb3Iuc3RhY2spIHtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGVudHJ5LmVycm9yLnN0YWNrLnNwbGl0KCdcXG4nKSkge1xuICAgICAgICAgIG91dHB1dCArPSBgICAke2xpbmV9XFxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlbnRyeS5kYXRhKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhlbnRyeS5kYXRhKSkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsXG4gICAgICAgICAgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSlcbiAgICAgICAgICA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIG91dHB1dCArPSBgICAke2tleX06ICR7Zm9ybWF0dGVkfVxcbmA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgb3V0cHV0ICs9ICdcXG4nO1xuICAgIHJldHVybiBvdXRwdXQ7XG4gIH1cbn1cbiJdfQ==