@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
109 lines • 2.38 kB
TypeScript
/**
* PatternCache - High-performance caching for parsed queries
*
* IMPLEMENTATION STATUS:
* COMPLETE: LRU cache with TTL and performance metrics
*
* Last Updated: July 3, 2025
*/
import { ParseResult } from '../types/index.js';
export interface CacheEntry {
key: string;
query: string;
result: ParseResult;
timestamp: number;
hits: number;
parseTime: number;
}
export interface CacheStats {
hits: number;
misses: number;
evictions: number;
avgParseTime: number;
avgCachedTime: number;
cacheSize: number;
hitRate: number;
}
export declare class PatternCache {
private cache;
private readonly maxSize;
private readonly ttl;
private stats;
private parseTimeSum;
private parseCount;
private cachedTimeSum;
private cachedCount;
constructor(config?: {
maxSize?: number;
ttl?: number;
});
/**
* Get cached parse result
*/
get(query: string): ParseResult | null;
/**
* Store parse result in cache
*/
set(query: string, result: ParseResult, parseTime: number): void;
/**
* Clear cache
*/
clear(): void;
/**
* Get cache statistics
*/
getStats(): CacheStats;
/**
* Get top queries by hit count
*/
getTopQueries(limit?: number): Array<{
query: string;
hits: number;
lastAccessed: Date;
}>;
/**
* Warm cache with common queries
*/
warmCache(commonQueries: Array<{
query: string;
result: ParseResult;
}>): void;
/**
* Generate cache key from query
*/
private generateKey;
/**
* Evict oldest entry (LRU)
*/
private evictOldest;
/**
* Update statistics
*/
private updateStats;
/**
* Reset statistics
*/
private resetStats;
/**
* Export cache for persistence
*/
export(): Array<{
query: string;
result: ParseResult;
hits: number;
}>;
/**
* Import cache from persistence
*/
import(data: Array<{
query: string;
result: ParseResult;
hits?: number;
}>): void;
}
export declare function getGlobalCache(): PatternCache;
/**
* Pre-warm cache with common patterns
*/
export declare function warmCacheWithCommonPatterns(): void;
//# sourceMappingURL=PatternCache.d.ts.map