UNPKG

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
/** * 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