claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
158 lines • 4.04 kB
TypeScript
/**
* Real-time AI Analysis Pipeline
*
* Handles streaming analysis, debounced requests, caching, and suggestion ranking
* for the Personal AI Writing Assistant.
*/
import type { AIAnalysisResult, AIAnalysisContext, SuggestionType, AnalyticsEvent } from '../types/ai-assistant';
export interface AnalysisPipelineConfig {
endpoint?: string;
apiKey?: string;
provider: 'mcp' | 'agent' | 'local';
debounceDelay: number;
batchSize: number;
maxConcurrentRequests: number;
cacheSize: number;
cacheTTL: number;
enablePersistentCache: boolean;
enabledTypes: SuggestionType[];
maxSuggestions: number;
confidenceThreshold: number;
enablePersonalization: boolean;
learningRate: number;
privacyMode: 'strict' | 'balanced' | 'permissive';
allowTelemetry: boolean;
dataRetention: number;
enableStreaming: boolean;
streamingChunkSize: number;
enableOfflineMode: boolean;
}
export interface AnalysisRequest {
id: string;
text: string;
context: AIAnalysisContext;
timestamp: number;
priority: 'low' | 'medium' | 'high';
retry: number;
}
export interface CachedAnalysis {
key: string;
results: AIAnalysisResult[];
timestamp: number;
hits: number;
context: AIAnalysisContext;
textHash: string;
}
export interface SuggestionRanking {
suggestionId: string;
score: number;
factors: {
relevance: number;
confidence: number;
userPreference: number;
contextMatch: number;
freshness: number;
};
decayFactor: number;
}
export declare class AnalysisPipeline {
private config;
private aiService;
private cache;
private requestQueue;
private activeRequests;
private debounceTimers;
private personalizationData;
private analytics;
private isProcessing;
constructor(config: AnalysisPipelineConfig);
/**
* Submit text for analysis with debouncing
*/
analyzeText(text: string, context: AIAnalysisContext, priority?: 'low' | 'medium' | 'high'): Promise<AIAnalysisResult[]>;
/**
* Process analysis request with queuing and batching
*/
private processAnalysisRequest;
/**
* Start the processing loop for queued requests
*/
private startProcessingLoop;
/**
* Rank suggestions based on various factors
*/
private rankSuggestions;
/**
* Calculate ranking score for a suggestion
*/
private calculateSuggestionRanking;
/**
* Get cached analysis if available and fresh
*/
private getCachedAnalysis;
/**
* Cache analysis results
*/
private cacheAnalysis;
/**
* Update personalization data based on user interactions
*/
private updatePersonalization;
/**
* Track analytics events
*/
private trackAnalytics;
/**
* Cleanup old cache entries and analytics
*/
private cleanup;
/**
* Helper methods
*/
private generateRequestId;
private generateCacheKey;
private hashText;
private mapConfidence;
private getUserPreference;
private calculateContextMatch;
private calculateFreshness;
private evictLeastUsed;
private extractWritingPatterns;
private mergeWritingPatterns;
/**
* Public API methods
*/
/**
* Get cache statistics
*/
getCacheStats(): {
size: number;
maxSize: number;
hitRate: number;
avgAge: number;
};
/**
* Get analytics data
*/
getAnalytics(): {
events: AnalyticsEvent[];
summary: {
totalAnalyses: number;
avgProcessingTime: number;
errorRate: number;
cacheHitRate: number;
};
};
/**
* Clear cache
*/
clearCache(): void;
/**
* Shutdown pipeline
*/
shutdown(): void;
private calculateHitRate;
private calculateAvgCacheAge;
private summarizeAnalytics;
}
//# sourceMappingURL=AnalysisPipeline.d.ts.map