mcp-adr-analysis-server
Version:
MCP server for analyzing Architectural Decision Records and project architecture
86 lines • 2.83 kB
TypeScript
/**
* Conversation Memory Manager
*
* Phase 3 of context decay mitigation: Structured external memory.
* Handles conversation persistence, expandable content storage, and resumption.
*/
import { ConversationSession, ConversationTurn, ConversationMemoryConfig, ConversationContextSnapshot, MemoryExpansionRequest, MemoryExpansionResponse, SessionQuery, ConversationMemoryStats } from '../types/conversation-memory.js';
import type { ExpandableContent } from '../types/tiered-response.js';
import { KnowledgeGraphManager } from './knowledge-graph-manager.js';
export declare class ConversationMemoryManager {
private memoryDir;
private sessionsDir;
private expandableContentDir;
private archiveDir;
private config;
private kgManager;
private logger;
private activeSession;
private expandableContentCache;
constructor(kgManager: KnowledgeGraphManager, config?: Partial<ConversationMemoryConfig>);
/**
* Initialize the conversation memory system
*/
initialize(): Promise<void>;
/**
* Start a new conversation session
*/
startNewSession(projectPath: string): Promise<string>;
/**
* Record a conversation turn
*/
recordTurn(request: ConversationTurn['request'], response: ConversationTurn['response'], metadata?: Partial<ConversationTurn['metadata']>): Promise<string>;
/**
* Store expandable content from tiered response
*/
storeExpandableContent(expandableId: string, content: ExpandableContent): Promise<void>;
/**
* Retrieve and expand stored content
*/
expandContent(request: MemoryExpansionRequest): Promise<MemoryExpansionResponse>;
/**
* Get conversation context snapshot for resumption
*/
getContextSnapshot(recentTurnCount?: number): Promise<ConversationContextSnapshot | null>;
/**
* Query conversation sessions
*/
querySessions(query: SessionQuery): Promise<ConversationSession[]>;
/**
* Get conversation memory statistics
*/
getStats(): Promise<ConversationMemoryStats>;
/**
* Persist current session to disk
*/
private persistSession;
/**
* Load most recent session
*/
private loadMostRecentSession;
/**
* Schedule periodic cleanup of old sessions
*/
private scheduleCleanup;
/**
* Archive old sessions and cleanup expired archives
*/
private cleanupOldSessions;
/**
* Generate unique session ID
*/
private generateSessionId;
/**
* Generate unique turn ID
*/
private generateTurnId;
/**
* Get current session ID
*/
getCurrentSessionId(): string | null;
/**
* Get current session
*/
getCurrentSession(): ConversationSession | null;
}
//# sourceMappingURL=conversation-memory-manager.d.ts.map