@juspay/neurolink
Version:
Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio
34 lines (33 loc) • 1.87 kB
TypeScript
/**
* Shared type for conversation memory managers.
* Both ConversationMemoryManager and RedisConversationMemoryManager
* should implement this type.
*/
import type { ChatMessage, ConversationMemoryConfig, ConversationMemoryStats, SessionMemory, StoreConversationTurnOptions } from "./conversation.js";
/**
* Common type for all conversation memory manager implementations.
* Provides a consistent API for storing, retrieving, and managing conversation history.
*/
export type IConversationMemoryManager = {
config: ConversationMemoryConfig;
/** Initialize the memory manager */
initialize(): Promise<void> | void;
/** Store a conversation turn */
storeConversationTurn(options: StoreConversationTurnOptions): Promise<void>;
/** Get session by ID */
getSession(sessionId: string, userId?: string): SessionMemory | undefined | Promise<SessionMemory | undefined>;
/** Build context messages for AI prompt injection */
buildContextMessages(sessionId: string, userId?: string, enableSummarization?: boolean, requestId?: string): Promise<ChatMessage[]> | ChatMessage[];
/** Clear a specific session */
clearSession(sessionId: string, userId?: string): Promise<boolean> | boolean;
/** Clear all sessions */
clearAllSessions(): Promise<void> | void;
/** Get memory statistics */
getStats(): Promise<ConversationMemoryStats> | ConversationMemoryStats;
/** Get raw messages array for a session (no context filtering or summarization) */
getSessionMessages(sessionId: string, userId?: string): Promise<ChatMessage[]>;
/** Replace the entire messages array for a session */
setSessionMessages(sessionId: string, messages: ChatMessage[], userId?: string): Promise<void>;
/** Close/shutdown the memory manager and release resources (e.g., Redis connections) */
close?(): Promise<void>;
};