vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
88 lines • 2.48 kB
TypeScript
export type SearchStrategy = 'fuzzy' | 'exact' | 'regex' | 'glob' | 'content';
export interface FileSearchOptions {
pattern?: string;
glob?: string;
content?: string;
fileTypes?: string[];
maxResults?: number;
includeContent?: boolean;
searchStrategy?: SearchStrategy;
cacheResults?: boolean;
maxFileSize?: number;
excludeDirs?: string[];
caseSensitive?: boolean;
minScore?: number;
}
export interface FileSearchResult {
filePath: string;
score: number;
matchType: 'name' | 'content' | 'glob' | 'fuzzy' | 'exact';
preview?: string;
lineNumbers?: number[];
relevanceFactors: string[];
metadata?: {
size: number;
lastModified: Date;
extension: string;
};
}
export interface SearchMetrics {
searchTime: number;
filesScanned: number;
resultsFound: number;
cacheHitRate: number;
memoryUsage: number;
strategy: SearchStrategy;
}
export interface CacheEntry {
query: string;
options: FileSearchOptions;
results: FileSearchResult[];
timestamp: Date;
ttl: number;
hitCount: number;
}
export interface CacheStats {
totalEntries: number;
hitRate: number;
memoryUsage: number;
evictions: number;
avgQueryTime: number;
}
export interface FileIteratorOptions {
excludeDirs: Set<string>;
fileTypes: Set<string> | null;
maxDepth?: number;
securityCheckFn?: (path: string) => Promise<boolean>;
}
export interface FileEvaluation {
matches: boolean;
result?: FileSearchResult;
}
export interface StreamingOptions extends FileSearchOptions {
streamingEnabled?: boolean;
onResult?: (result: FileSearchResult) => void;
memoryLimit?: number;
}
export declare class FuzzyMatcher {
static calculateScore(query: string, target: string, caseSensitive?: boolean): number;
private static levenshteinDistance;
}
export declare class GlobMatcher {
static globToRegex(pattern: string): RegExp;
private static escapeAndConvert;
static matches(pattern: string, path: string): boolean;
}
export declare class PriorityQueue<T> {
private items;
private compareFn;
private maxSize;
constructor(compareFn: (a: T, b: T) => number, maxSize: number);
add(item: T): void;
toArray(): T[];
get size(): number;
get isFull(): boolean;
getMinScore(scoreFn: (item: T) => number): number | undefined;
clear(): void;
}
//# sourceMappingURL=search-strategies.d.ts.map