UNPKG

@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

61 lines (60 loc) 2.36 kB
/** * Redis Utilities for NeuroLink * Helper functions for Redis storage operations */ import type { RedisClient, RedisConversationObject, RedisStorageConfig } from "../types/index.js"; /** * Get a pooled Redis connection. Multiple callers with the same host:port:db * share a single connection, reducing connection count. */ export declare function getPooledRedisClient(config: Required<RedisStorageConfig>): Promise<RedisClient>; /** * Release a pooled Redis connection. Only closes when refCount reaches 0. */ export declare function releasePooledRedisClient(config: Required<RedisStorageConfig>): Promise<void>; /** * Get stats about the connection pool */ export declare function getPoolStats(): Array<{ key: string; refCount: number; isOpen: boolean; }>; /** * Creates a Redis client with the provided configuration */ export declare function createRedisClient(config: Required<RedisStorageConfig>): Promise<RedisClient>; /** * Generates a Redis key for session messages */ export declare function getSessionKey(config: Required<RedisStorageConfig>, sessionId: string, userId?: string): string; /** * Generates a Redis key for user sessions mapping */ export declare function getUserSessionsKey(config: Required<RedisStorageConfig>, userId: string): string; /** * Serializes conversation object for Redis storage */ export declare function serializeConversation(conversation: RedisConversationObject): string; /** * Deserializes conversation object from Redis storage */ export declare function deserializeConversation(data: string | Buffer | null): RedisConversationObject | null; /** * Checks if Redis client is healthy */ export declare function isRedisHealthy(client: RedisClient): Promise<boolean>; /** * Scan Redis keys matching a pattern without blocking the server * This is a non-blocking alternative to the KEYS command * * @param client Redis client * @param pattern Pattern to match keys (e.g. "prefix:*") * @param batchSize Number of keys to scan in each iteration (default: 100) * @returns Array of keys matching the pattern */ export declare function scanKeys(client: RedisClient, pattern: string, batchSize?: number): Promise<string[]>; /** * Get normalized Redis configuration with defaults */ export declare function getNormalizedConfig(config: RedisStorageConfig): Required<RedisStorageConfig>;