@juspay/neurolink
Version:
Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and
96 lines (95 loc) • 3.03 kB
TypeScript
/**
* Conversation Memory Types for NeuroLink
* Provides type-safe conversation storage and context management
*/
/**
* Configuration for conversation memory feature
*/
export interface ConversationMemoryConfig {
/** Enable conversation memory feature */
enabled: boolean;
/** Maximum number of sessions to keep in memory (default: 50) */
maxSessions?: number;
/** Maximum number of conversation turns to keep per session (default: 20) */
maxTurnsPerSession?: number;
}
/**
* Complete memory for a conversation session
* ULTRA-OPTIMIZED: Direct ChatMessage[] storage - zero conversion overhead
*/
export interface SessionMemory {
/** Unique session identifier */
sessionId: string;
/** User identifier (optional) */
userId?: string;
/** Direct message storage - ready for immediate AI consumption */
messages: ChatMessage[];
/** When this session was created */
createdAt: number;
/** When this session was last active */
lastActivity: number;
/** Optional session metadata */
metadata?: {
/** User role or permissions */
userRole?: string;
/** Tags for categorizing this session */
tags?: string[];
/** Custom data specific to the organization */
customData?: Record<string, unknown>;
};
}
/**
* Statistics about conversation memory usage (simplified for pure in-memory storage)
*/
export interface ConversationMemoryStats {
/** Total number of active sessions */
totalSessions: number;
/** Total number of conversation turns across all sessions */
totalTurns: number;
}
/**
* Chat message format for conversation history
*/
export interface ChatMessage {
/** Role of the message sender */
role: "user" | "assistant" | "system";
/** Content of the message */
content: string;
}
/**
* Events emitted by conversation memory system
*/
export interface ConversationMemoryEvents {
/** Emitted when a new session is created */
"session:created": {
sessionId: string;
userId?: string;
timestamp: number;
};
/** Emitted when a conversation turn is stored */
"turn:stored": {
sessionId: string;
turnIndex: number;
timestamp: number;
};
/** Emitted when a session is cleaned up */
"session:cleanup": {
sessionId: string;
reason: "expired" | "limit_exceeded";
timestamp: number;
};
/** Emitted when context is injected */
"context:injected": {
sessionId: string;
turnsIncluded: number;
timestamp: number;
};
}
/**
* Error types specific to conversation memory
*/
export declare class ConversationMemoryError extends Error {
code: "STORAGE_ERROR" | "CONFIG_ERROR" | "SESSION_NOT_FOUND" | "CLEANUP_ERROR";
details?: Record<string, unknown> | undefined;
constructor(message: string, code: "STORAGE_ERROR" | "CONFIG_ERROR" | "SESSION_NOT_FOUND" | "CLEANUP_ERROR", details?: Record<string, unknown> | undefined);
}