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.

79 lines â€ĸ 12.6 kB
/** * Markdown Reporter - Generates markdown reports for GitHub * Placeholder implementation - to be completed */ export class MarkdownReporter { result; constructor(result) { this.result = result; } generate() { const lines = []; // Header lines.push('# Security Audit Report'); lines.push(''); lines.push(`Generated: ${new Date().toISOString()}`); lines.push(`Duration: ${this.result.duration}ms`); lines.push(''); // Summary lines.push('## Summary'); lines.push(''); lines.push(`- **Total Findings**: ${this.result.findings.length}`); lines.push(`- **Files Scanned**: ${this.result.scannedFiles}`); lines.push(''); // Findings by severity lines.push('### Findings by Severity'); lines.push(''); lines.push(`- 🔴 **Critical**: ${this.result.summary.bySeverity.critical}`); lines.push(`- 🟠 **High**: ${this.result.summary.bySeverity.high}`); lines.push(`- 🟡 **Medium**: ${this.result.summary.bySeverity.medium}`); lines.push(`- đŸŸĸ **Low**: ${this.result.summary.bySeverity.low}`); lines.push(`- â„šī¸ **Info**: ${this.result.summary.bySeverity.info}`); lines.push(''); // Detailed findings if (this.result.findings.length > 0) { lines.push('## Detailed Findings'); lines.push(''); // Group by severity const severityOrder = ['critical', 'high', 'medium', 'low', 'info']; for (const severity of severityOrder) { const findings = this.result.findings.filter(f => f.severity === severity); if (findings.length === 0) continue; lines.push(`### ${severity.toUpperCase()} (${findings.length})`); lines.push(''); for (const finding of findings) { lines.push(`#### ${finding.ruleId}: ${finding.message}`); lines.push(''); lines.push(`- **File**: \`${finding.file}\``); if (finding.line) lines.push(`- **Line**: ${finding.line}`); if (finding.column) lines.push(`- **Column**: ${finding.column}`); if (finding.code) lines.push(`- **Code**: \`${finding.code.substring(0, 100)}${finding.code.length > 100 ? '...' : ''}\``); lines.push(`- **Confidence**: ${finding.confidence || 'medium'}`); if (finding.remediation) lines.push(`- **Remediation**: ${finding.remediation}`); lines.push(''); } } } // Recommendations lines.push('## Recommendations'); lines.push(''); lines.push('1. Address all critical and high severity issues immediately'); lines.push('2. Review medium severity issues and plan remediation'); lines.push('3. Consider adding suppressions for false positives'); lines.push('4. Run security audit regularly (e.g., in CI/CD pipeline)'); lines.push(''); return lines.join('\n'); } getSummary() { return `Found ${this.result.findings.length} security issues`; } getFindings() { return this.result.findings; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFya2Rvd25SZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWN1cml0eS9hdWRpdC9yZXBvcnRlcnMvTWFya2Rvd25SZXBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ25CLE1BQU0sQ0FBYTtJQUUzQixZQUFZLE1BQWtCO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO1FBRTNCLFNBQVM7UUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFZixVQUFVO1FBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRSxLQUFLLENBQUMsSUFBSSxDQUFDLHdCQUF3QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDL0QsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVmLHVCQUF1QjtRQUN2QixLQUFL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QUksQ0FBQyxxQkFBcUIsT0FBTyxDQUFDLFVBQVUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUNsRSxJQUFJLE9BQU8sQ0FBQyxXQUFXO3dCQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsc0JBQXNCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUNqRixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxrQkFBa0I7UUFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixLQUFLLENBQUMsSUFBSSxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFDM0UsS0FBSyxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxJQUFJLENBQUMscURBQXFELENBQUMsQ0FBQztRQUNsRSxLQUFLLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDeEUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVmLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGtCQUFrQixDQUFDO0lBQ2hFLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1hcmtkb3duIFJlcG9ydGVyIC0gR2VuZXJhdGVzIG1hcmtkb3duIHJlcG9ydHMgZm9yIEdpdEh1YlxuICogUGxhY2Vob2xkZXIgaW1wbGVtZW50YXRpb24gLSB0byBiZSBjb21wbGV0ZWRcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNlY3VyaXR5UmVwb3J0LCBTY2FuUmVzdWx0LCBTZWN1cml0eUZpbmRpbmcgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNYXJrZG93blJlcG9ydGVyIGltcGxlbWVudHMgU2VjdXJpdHlSZXBvcnQge1xuICBwcml2YXRlIHJlc3VsdDogU2NhblJlc3VsdDtcblxuICBjb25zdHJ1Y3RvcihyZXN1bHQ6IFNjYW5SZXN1bHQpIHtcbiAgICB0aGlzLnJlc3VsdCA9IHJlc3VsdDtcbiAgfVxuXG4gIGdlbmVyYXRlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW107XG4gICAgXG4gICAgLy8gSGVhZGVyXG4gICAgbGluZXMucHVzaCgnIyBTZWN1cml0eSBBdWRpdCBSZXBvcnQnKTtcbiAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICBsaW5lcy5wdXNoKGBHZW5lcmF0ZWQ6ICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWApO1xuICAgIGxpbmVzLnB1c2goYER1cmF0aW9uOiAke3RoaXMucmVzdWx0LmR1cmF0aW9ufW1zYCk7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gICAgXG4gICAgLy8gU3VtbWFyeVxuICAgIGxpbmVzLnB1c2goJyMjIFN1bW1hcnknKTtcbiAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICBsaW5lcy5wdXNoKGAtICoqVG90YWwgRmluZGluZ3MqKjogJHt0aGlzLnJlc3VsdC5maW5kaW5ncy5sZW5ndGh9YCk7XG4gICAgbGluZXMucHVzaChgLSAqKkZpbGVzIFNjYW5uZWQqKjogJHt0aGlzLnJlc3VsdC5zY2FubmVkRmlsZXN9YCk7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gICAgXG4gICAgLy8gRmluZGluZ3MgYnkgc2V2ZXJpdHlcbiAgICBsaW5lcy5wdXNoKCcjIyMgRmluZGluZ3MgYnkgU2V2ZXJpdHknKTtcbiAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICBsaW5lcy5wdXNoKGAtIPCflLQgKipDcml0aWNhbCoqOiAke3RoaXMucmVzdWx0LnN1bW1hcnkuYnlTZXZlcml0eS5jcml0aWNhbH1gKTtcbiAgICBsaW5lcy5wdXNoKGAtIPCfn6AgKipIaWdoKio6ICR7dGhpcy5yZXN1bHQuc3VtbWFyeS5ieVNldmVyaXR5LmhpZ2h9YCk7XG4gICAgbGluZXMucHVzaChgLSDwn5+hICoqTWVkaXVtKio6ICR7dGhpcy5yZXN1bHQuc3VtbWFyeS5ieVNldmVyaXR5Lm1lZGl1bX1gKTtcbiAgICBsaW5lcy5wdXNoKGAtIPCfn6IgKipMb3cqKjogJHt0aGlzLnJlc3VsdC5zdW1tYXJ5LmJ5U2V2ZXJpdHkubG93fWApO1xuICAgIGxpbmVzLnB1c2goYC0g4oS577iPICoqSW5mbyoqOiAke3RoaXMucmVzdWx0LnN1bW1hcnkuYnlTZXZlcml0eS5pbmZvfWApO1xuICAgIGxpbmVzLnB1c2goJycpO1xuICAgIFxuICAgIC8vIERldGFpbGVkIGZpbmRpbmdzXG4gICAgaWYgKHRoaXMucmVzdWx0LmZpbmRpbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIGxpbmVzLnB1c2goJyMjIERldGFpbGVkIEZpbmRpbmdzJyk7XG4gICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgIFxuICAgICAgLy8gR3JvdXAgYnkgc2V2ZXJpdHlcbiAgICAgIGNvbnN0IHNldmVyaXR5T3JkZXI6IEFycmF5PGltcG9ydCgnLi4vdHlwZXMuanMnKS5TZXZlcml0eUxldmVsPiA9IFsnY3JpdGljYWwnLCAnaGlnaCcsICdtZWRpdW0nLCAnbG93JywgJ2luZm8nXTtcbiAgICAgIFxuICAgICAgZm9yIChjb25zdCBzZXZlcml0eSBvZiBzZXZlcml0eU9yZGVyKSB7XG4gICAgICAgIGNvbnN0IGZpbmRpbmdzID0gdGhpcy5yZXN1bHQuZmluZGluZ3MuZmlsdGVyKGYgPT4gZi5zZXZlcml0eSA9PT0gc2V2ZXJpdHkpO1xuICAgICAgICBpZiAoZmluZGluZ3MubGVuZ3RoID09PSAwKSBjb250aW51ZTtcbiAgICAgICAgXG4gICAgICAgIGxpbmVzLnB1c2goYCMjIyAke3NldmVyaXR5LnRvVXBwZXJDYXNlKCl9ICgke2ZpbmRpbmdzLmxlbmd0aH0pYCk7XG4gICAgICAgIGxpbmVzLnB1c2goJycpO1xuICAgICAgICBcbiAgICAgICAgZm9yIChjb25zdCBmaW5kaW5nIG9mIGZpbmRpbmdzKSB7XG4gICAgICAgICAgbGluZXMucHVzaChgIyMjIyAke2ZpbmRpbmcucnVsZUlkfTogJHtmaW5kaW5nLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgbGluZXMucHVzaCgnJyk7XG4gICAgICAgICAgbGluZXMucHVzaChgLSAqKkZpbGUqKjogXFxgJHtmaW5kaW5nLmZpbGV9XFxgYCk7XG4gICAgICAgICAgaWYgKGZpbmRpbmcubGluZSkgbGluZXMucHVzaChgLSAqKkxpbmUqKjogJHtmaW5kaW5nLmxpbmV9YCk7XG4gICAgICAgICAgaWYgKGZpbmRpbmcuY29sdW1uKSBsaW5lcy5wdXNoKGAtICoqQ29sdW1uKio6ICR7ZmluZGluZy5jb2x1bW59YCk7XG4gICAgICAgICAgaWYgKGZpbmRpbmcuY29kZSkgbGluZXMucHVzaChgLSAqKkNvZGUqKjogXFxgJHtmaW5kaW5nLmNvZGUuc3Vic3RyaW5nKDAsIDEwMCl9JHtmaW5kaW5nLmNvZGUubGVuZ3RoID4gMTAwID8gJy4uLicgOiAnJ31cXGBgKTtcbiAgICAgICAgICBsaW5lcy5wdXNoKGAtICoqQ29uZmlkZW5jZSoqOiAke2ZpbmRpbmcuY29uZmlkZW5jZSB8fCAnbWVkaXVtJ31gKTtcbiAgICAgICAgICBpZiAoZmluZGluZy5yZW1lZGlhdGlvbikgbGluZXMucHVzaChgLSAqKlJlbWVkaWF0aW9uKio6ICR7ZmluZGluZy5yZW1lZGlhdGlvbn1gKTtcbiAgICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBSZWNvbW1lbmRhdGlvbnNcbiAgICBsaW5lcy5wdXNoKCcjIyBSZWNvbW1lbmRhdGlvbnMnKTtcbiAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICBsaW5lcy5wdXNoKCcxLiBBZGRyZXNzIGFsbCBjcml0aWNhbCBhbmQgaGlnaCBzZXZlcml0eSBpc3N1ZXMgaW1tZWRpYXRlbHknKTtcbiAgICBsaW5lcy5wdXNoKCcyLiBSZXZpZXcgbWVkaXVtIHNldmVyaXR5IGlzc3VlcyBhbmQgcGxhbiByZW1lZGlhdGlvbicpO1xuICAgIGxpbmVzLnB1c2goJzMuIENvbnNpZGVyIGFkZGluZyBzdXBwcmVzc2lvbnMgZm9yIGZhbHNlIHBvc2l0aXZlcycpO1xuICAgIGxpbmVzLnB1c2goJzQuIFJ1biBzZWN1cml0eSBhdWRpdCByZWd1bGFybHkgKGUuZy4sIGluIENJL0NEIHBpcGVsaW5lKScpO1xuICAgIGxpbmVzLnB1c2goJycpO1xuICAgIFxuICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIGdldFN1bW1hcnkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEZvdW5kICR7dGhpcy5yZXN1bHQuZmluZGluZ3MubGVuZ3RofSBzZWN1cml0eSBpc3N1ZXNgO1xuICB9XG5cbiAgZ2V0RmluZGluZ3MoKTogU2VjdXJpdHlGaW5kaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdC5maW5kaW5ncztcbiAgfVxufSJdfQ==