vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
97 lines • 3.35 kB
TypeScript
import type { FileContent } from '../../../services/file-search-service/index.js';
import type { ParsedPRD, ParsedTaskList } from '../types/artifact-types.js';
import type { ProjectContext } from '../types/project-context.js';
export interface ContextRequest {
taskDescription: string;
projectPath: string;
includeFiles?: string[];
searchPatterns?: string[];
globPatterns?: string[];
contentKeywords?: string[];
maxFiles?: number;
maxContentSize?: number;
priorityFileTypes?: string[];
excludeDirs?: string[];
}
export interface RelevanceFactors {
nameRelevance: number;
contentRelevance: number;
typePriority: number;
recencyFactor: number;
sizeFactor: number;
overallScore: number;
}
export interface ContextResult {
contextFiles: Array<FileContent & {
relevance: RelevanceFactors;
}>;
failedFiles: string[];
summary: {
totalFiles: number;
totalSize: number;
averageRelevance: number;
topFileTypes: string[];
gatheringTime: number;
};
metrics: {
searchTime: number;
readTime: number;
scoringTime: number;
totalTime: number;
cacheHitRate: number;
};
}
interface ContextConfig {
defaultMaxFiles: number;
defaultMaxContentSize: number;
minRelevanceThreshold: number;
fileTypePriorities: Record<string, number>;
keywordBoostFactor: number;
recencyWeightDays: number;
}
export declare class ContextEnrichmentService {
private static instance;
private fileSearchService;
private fileReaderService;
private config;
private constructor();
static getInstance(): ContextEnrichmentService;
gatherContext(request: ContextRequest): Promise<ContextResult>;
private discoverCandidateFiles;
private readAndScoreFiles;
private selectBestFiles;
private calculateRelevance;
private calculateNameRelevance;
private calculateContentRelevance;
private calculateRecencyFactor;
private calculateSizeFactor;
private extractKeywordsFromTask;
private getTopFileTypes;
createContextSummary(contextResult: ContextResult): Promise<string>;
extractContextFromPRD(prdData: ParsedPRD): Promise<ProjectContext>;
extractContextFromTaskList(taskListData: ParsedTaskList): Promise<ProjectContext>;
private extractLanguagesFromTechStack;
private extractFrameworksFromTechStack;
private extractToolsFromTechStack;
private determineComplexityFromPRD;
private determineComplexityFromTaskList;
private extractTeamSizeFromConstraints;
private estimateTeamSizeFromTaskList;
private estimateCodebaseSizeFromPRD;
private estimateCodebaseSizeFromTaskList;
private extractHoursFromEffort;
clearCache(): void;
updateConfig(newConfig: Partial<ContextConfig>): void;
getConfig(): ContextConfig;
getPerformanceMetrics(): {
searchMetrics: import("../../../services/file-search-service/search-strategies.js").SearchMetrics;
readerCacheStats: {
totalEntries: number;
memoryUsage: number;
averageFileSize: number;
};
searchCacheStats: import("../../../services/file-search-service/search-strategies.js").CacheStats;
};
}
export {};
//# sourceMappingURL=context-enrichment-service.d.ts.map