@codai/memorai-mcp
Version:
MemorAI CBD-based MCP Server - High-Performance Vector Memory System
169 lines • 5.83 kB
TypeScript
/**
* Phase 3: AI-Powered Memory Intelligence - Memory Evolution Engine
*
* Automatic memory evolution and conflict resolution:
* - Automatically updates memories based on new information
* - Detects and resolves memory conflicts intelligently
* - Manages memory lifecycle and version control
* - Provides semantic memory merging and consolidation
*/
import OpenAI from 'openai';
import { AdvancedMemory } from './server.js';
export interface EvolutionResult {
memoryId: string;
evolutionType: 'update' | 'merge' | 'split' | 'archive' | 'enhance';
changes: MemoryChange[];
confidence: number;
reasoning: string;
previousVersion?: MemoryVersion;
newVersion: MemoryVersion;
}
export interface MemoryChange {
field: string;
previousValue: any;
newValue: any;
changeType: 'addition' | 'modification' | 'deletion' | 'restructure';
confidence: number;
source: 'ai_analysis' | 'user_input' | 'automatic_detection' | 'conflict_resolution';
}
export interface MemoryVersion {
versionId: string;
timestamp: string;
content: string;
metadata: any;
changesSummary: string;
createdBy: 'system' | 'user' | 'ai';
}
export interface ConflictResolution {
conflictId: string;
conflictType: 'content_contradiction' | 'metadata_mismatch' | 'temporal_inconsistency' | 'relationship_conflict';
memoryIds: string[];
resolution: Resolution;
confidence: number;
reasoning: string;
appliedChanges: MemoryChange[];
}
export interface Resolution {
strategy: 'merge' | 'prioritize' | 'split' | 'archive_old' | 'manual_review';
primaryMemoryId: string;
secondaryMemoryIds: string[];
newContent?: string;
newMetadata?: any;
preservedElements: string[];
discardedElements: string[];
}
export interface MemoryConflict {
id: string;
type: ConflictResolution['conflictType'];
memoryIds: string[];
severity: 'low' | 'medium' | 'high' | 'critical';
description: string;
detectedAt: string;
autoResolvable: boolean;
}
export interface EvolutionRule {
id: string;
name: string;
description: string;
conditions: EvolutionCondition[];
actions: EvolutionAction[];
priority: number;
enabled: boolean;
}
export interface EvolutionCondition {
field: string;
operator: 'equals' | 'contains' | 'greater_than' | 'less_than' | 'exists' | 'pattern_match';
value: any;
weight: number;
}
export interface EvolutionAction {
type: 'update_field' | 'add_metadata' | 'merge_content' | 'create_relationship' | 'archive' | 'notify';
parameters: Record<string, any>;
confidence_threshold: number;
}
export interface MemoryConsolidation {
consolidationId: string;
sourceMemoryIds: string[];
consolidatedMemory: AdvancedMemory;
consolidationType: 'merge' | 'summarize' | 'restructure' | 'cross_reference';
preservedInformation: string[];
lostInformation: string[];
qualityScore: number;
}
export declare class MemoryEvolutionEngine {
private openaiClient?;
private memories;
private memoryVersions;
private evolutionRules;
private conflictHistory;
private evolutionHistory;
constructor(openaiClient?: OpenAI, memories?: Map<string, AdvancedMemory>);
/**
* Automatically update memory based on new information
* Core evolution capability with AI-powered analysis
*/
evolveMemory(memoryId: string, newInformation: string, context?: {
source: string;
confidence: number;
timestamp?: string;
}): Promise<EvolutionResult>;
/**
* Detect and resolve conflicts between memories
* Intelligent conflict resolution with multiple strategies
*/
resolveMemoryConflicts(conflictingMemoryIds: string[], resolutionStrategy?: 'auto' | 'conservative' | 'aggressive'): Promise<ConflictResolution>;
/**
* Detect potential conflicts across all memories
* Proactive conflict detection system
*/
detectPotentialConflicts(agentId: string): Promise<MemoryConflict[]>;
/**
* Consolidate related memories for better organization
* Smart memory consolidation with preservation of important information
*/
consolidateMemories(memoryIds: string[], consolidationType?: MemoryConsolidation['consolidationType']): Promise<MemoryConsolidation>;
/**
* Manage memory lifecycle automatically
* Archive old, promote important, and clean up redundant memories
*/
manageMemoryLifecycle(agentId: string): Promise<{
archived: string[];
promoted: string[];
cleaned: string[];
enhanced: string[];
}>;
private createMemoryVersion;
private analyzeEvolutionStrategy;
private aiAnalyzeEvolution;
private ruleBasedEvolutionAnalysis;
private applyEvolution;
private updateContent;
private mergeContent;
private enhanceMetadata;
private detectConflictType;
private checkContentSimilarity;
private checkTemporalConsistency;
private checkMetadataConsistency;
private determineOptimalStrategy;
private applyConflictResolution;
private detectContentConflicts;
private detectMetadataConflicts;
private detectTemporalConflicts;
private detectRelationshipConflicts;
private getSeverityScore;
private analyzeConsolidationFeasibility;
private performConsolidation;
private summarizeMemories;
private restructureMemories;
private createCrossReference;
private identifyArchiveCandidates;
private identifyPromotionCandidates;
private identifyDuplicates;
private identifyEnhancementCandidates;
private archiveMemory;
private promoteMemory;
private cleanupDuplicate;
private enhanceMemory;
private initializeDefaultRules;
}
//# sourceMappingURL=evolution-engine.d.ts.map