/** * Memory System Service Interfaces * SOLID Principles: Interface Segregation - Specific interfaces for each memory concern */ export interface MemoryCompressionResult { original: { size: number; interactionCount: number; tokenCount: number; }; compressed: { size: number; preservedInteractions: number; compressionRatio: number; }; summary: { keyPatterns: string[]; importantOutcomes: string[]; criticalLearnings: string[]; }; lossless: boolean; } export interface InteractionMemory { id: string; timestamp: Date; requestId: string; sessionId: string; codeseekerRequest: { type: 'task' | 'validation' | 'fix' | 'analysis'; instruction: string; context: any; priority: 'critical' | 'high' | 'medium' | 'low'; expectedOutcome: string; }; claudeResponse: { success: boolean; output: string; duration: number; tokensUsed: number; errorDetails?: string; metadata: any; }; effectiveness: number; patterns: string[]; improvements: string[]; } export interface RequestMemory { requestId: string; sessionId: string; userRequest: string; projectPath: string; timestamp: Date; duration: number; type: 'code_modification' | 'analysis' | 'general'; complexity: number; outcome: { success: boolean; result: string; filesModified: string[]; errorsEncountered: string[]; tokensUsed: number; }; interactions: InteractionMemory[]; learnings: { effectivePatterns: string[]; ineffectivePatterns: string[]; timeEstimateAccuracy: number; surprisingChallenges: string[]; unexpectedSuccesses: string[]; }; } export interface SessionMemory { sessionId: string; projectId: string; userId?: string; startTime: Date; endTime?: Date; context: { projectState: any; workingDirectory: string; gitBranch: string; lastSnapshot: string; }; requests: RequestMemory[]; patterns: { commonRequestTypes: string[]; workflowPreferences: any; effectiveStrategies: string[]; recurringChallenges: string[]; }; summary: { totalRequests: number; successRate: number; averageRequestTime: number; majorChangesImplemented: string[]; keyLearnings: string[]; }; } export interface ProjectMemory { projectId: string; projectPath: string; profile: { language: string; framework: string; architecture: string; complexity: 'simple' | 'moderate' | 'complex' | 'enterprise'; domain: string; teamSize?: number; }; performance: { totalRequests: number; averageSuccessRate: number; averageRequestTime: number; commonFailurePoints: string[]; mostEffectivePatterns: string[]; }; evolution: { majorMilestones: Array<{ date: Date; description: string; filesChanged: number; impact: 'minor' | 'moderate' | 'major' | 'architectural'; }>; architecturalChanges: Array<{ date: Date; change: string; reason: string; impact: string; }>; dependencyEvolution: Array<{ date: Date; added: string[]; removed: string[]; updated: string[]; }>; }; knowledge: { codingPatterns: Map; commonSolutions: Map; bestPractices: string[]; antiPatterns: string[]; projectSpecificKnowledge: any; }; } export interface ContextualContinuation { requestId: string; continuationContext: string; suggestedApproach: string; potentialChallenges: string[]; estimatedDuration: number; estimatedComplexity?: 'low' | 'medium' | 'high' | 'critical'; similarPastRequests: RequestMemory[]; relevantPatterns: string[]; continuityInstructions?: { forClaude: string[]; forCodeSeeker: string[]; }; projectContext: { recentChanges: string[]; currentFocus: string; upcomingMilestones: string[]; }; previousRequestContext: { whatWasDone: string[]; howItWasDone?: string[]; keyOutcomes: string[]; lessonsLearned: string[]; }; currentRequestContext: { userRequest: string; projectPath: string; sessionId: string; startTime: Date; buildingUpon: string[]; potentialConflicts: string[]; suggestedApproach?: string; challenges?: string[]; opportunities?: string[]; relatedToPrevious?: boolean; }; } export interface MemoryStats { totalInteractions: number; totalRequests: number; totalProjects: number; totalSessions: number; memoryUsage: { immediate: number; session: number; project: number; global: number; total: number; }; compressionStats: { originalSize: number; compressedSize: number; compressionRatio: number; }; performance: { averageResponseTime: number; successRate: number; mostEffectivePatterns: string[]; }; } export interface IMemoryStorageService { initialize(): Promise; close(): Promise; storeInteraction(interaction: InteractionMemory): Promise; storeRequest(request: RequestMemory): Promise; storeSession(session: SessionMemory): Promise; storeProject(project: ProjectMemory): Promise; loadInteraction(id: string): Promise; loadRequest(requestId: string): Promise; loadSession(sessionId: string): Promise; loadProject(projectId: string): Promise; updateInteractionEffectiveness(id: string, effectiveness: number): Promise; updateProjectKnowledge(projectId: string, knowledge: ProjectMemory['knowledge']): Promise; } export interface IMemoryRetrievalService { getContextForNewRequest(userRequest: string, projectPath: string, sessionId?: string): Promise; findSimilarRequests(userRequest: string, projectMemory: ProjectMemory): Promise; findRelevantPatterns(userRequest: string, projectPath: string): Promise; getProjectMemory(projectPath: string): Promise; getSessionMemory(sessionId: string): Promise; } export interface IMemoryOptimizationService { compressAndSummarize(interactions: InteractionMemory[], outcome: RequestMemory['outcome']): Promise; extractKeyPatterns(interactions: InteractionMemory[]): string[]; extractImportantOutcomes(interactions: InteractionMemory[], outcome: RequestMemory['outcome']): string[]; extractCriticalLearnings(interactions: InteractionMemory[]): string[]; calculateInteractionEffectiveness(interaction: InteractionMemory, finalOutcome: RequestMemory['outcome']): number; extractInteractionPatterns(interaction: InteractionMemory): string[]; suggestInteractionImprovements(interaction: InteractionMemory): string[]; optimizeMemoryUsage(): Promise; cleanupExpiredSessions(): Promise; compressOldInteractions(threshold: Date): Promise; } export interface IMemoryAnalyticsService { getMemoryStats(): Promise; analyzeTrends(projectId: string, timeRange: { start: Date; end: Date; }): Promise<{ requestFrequency: number[]; successRateOverTime: number[]; complexityTrends: number[]; commonPatterns: string[]; }>; generateInsights(projectId: string): Promise<{ strengths: string[]; improvements: string[]; recommendations: string[]; }>; } //# sourceMappingURL=index.d.ts.map