@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.
64 lines • 2.16 kB
TypeScript
/**
* Natural language feedback processor for extracting ratings and insights from user feedback.
*/
import { IFeedbackProcessor, ProcessedFeedback } from '../types/elements/index.js';
export declare class FeedbackProcessor implements IFeedbackProcessor {
private readonly MAX_FEEDBACK_LENGTH;
private readonly suggestionPatterns;
private readonly sentimentPatterns;
private readonly featureKeywords;
private readonly issueKeywords;
constructor();
/**
* Process natural language feedback into structured data.
*/
process(feedback: string): Promise<ProcessedFeedback>;
/**
* Analyze sentiment from text.
*/
analyzeSentiment(text: string): Promise<'positive' | 'negative' | 'neutral'>;
/**
* Infer numeric rating from text.
* FIX: Use SafeRegex for DOS protection (PR #1187)
*/
inferRating(text: string): Promise<number | null>;
/**
* Extract improvement suggestions from feedback.
* FIX: DOS protection via input length limiting (PR #1187, Issue #1181)
*/
extractSuggestions(text: string): Promise<string[]>;
/**
* Extract entities (features, issues, etc.) from feedback.
*/
private extractEntities;
/**
* Extract meaningful keywords from feedback.
*/
private extractKeywords;
/**
* Calculate pattern weight based on context.
*/
private getPatternWeight;
/**
* Calculate relevance of a keyword in context.
*
* FIX: ReDoS vulnerability - escape user input before using in RegExp
* Previously: Used keyword directly in RegExp which could cause ReDoS
* Now: Properly escapes special regex characters AND uses SafeRegex
* SonarCloud: Resolves DOS vulnerability hotspot (PR #1187)
*/
private calculateRelevance;
/**
* Calculate confidence in the analysis.
*/
private calculateConfidence;
/**
* Calculate how strongly sentiment is expressed.
*/
private calculateSentimentStrength;
/**
* Capitalize first letter of sentence.
*/
private capitalizeSentence;
}
//# sourceMappingURL=FeedbackProcessor.d.ts.map