@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
138 lines (137 loc) • 4.55 kB
TypeScript
/**
* Memory retrieval tools for LLM access to conversation history.
* Enables the AI to retrieve full tool outputs, review previous messages,
* and search conversation memory.
*
* Follows the createFileTools() factory pattern from files/fileTools.ts.
* @module
*/
import type { RedisConversationMemoryManager } from "../core/redisConversationMemoryManager.js";
import type { ArtifactStore } from "../types/index.js";
/**
* Factory function that creates memory retrieval tools bound to a memory manager.
*
* @param memoryManager Redis conversation memory manager instance.
* @param artifactStore Optional artifact store for externalized MCP outputs.
* When provided, retrieve_context gains an `artifactId`
* parameter that fetches the full payload written by
* McpOutputNormalizer under strategy="externalize".
* @returns Record of tool name to Vercel AI SDK tool definition
*/
export declare function createMemoryRetrievalTools(memoryManager: RedisConversationMemoryManager | undefined, artifactStore?: ArtifactStore): {
retrieve_context: import("ai").Tool<{
sessionId?: string | undefined;
artifactId?: string | undefined;
messageId?: string | undefined;
role?: "system" | "user" | "assistant" | "tool_call" | "tool_result" | undefined;
lastN?: number | undefined;
offset?: number | undefined;
limit?: number | undefined;
search?: string | undefined;
}, {
error: string;
artifactId: string;
content?: undefined;
totalSize?: undefined;
hasMore?: undefined;
offset?: undefined;
limit?: undefined;
sessionId?: undefined;
messageId?: undefined;
messages?: undefined;
totalMessages?: undefined;
} | {
artifactId: string;
content: string;
totalSize: number;
hasMore: boolean;
offset: number;
limit: number;
error?: undefined;
sessionId?: undefined;
messageId?: undefined;
messages?: undefined;
totalMessages?: undefined;
} | {
error: string;
artifactId?: undefined;
content?: undefined;
totalSize?: undefined;
hasMore?: undefined;
offset?: undefined;
limit?: undefined;
sessionId?: undefined;
messageId?: undefined;
messages?: undefined;
totalMessages?: undefined;
} | {
error: string;
sessionId: string;
artifactId?: undefined;
content?: undefined;
totalSize?: undefined;
hasMore?: undefined;
offset?: undefined;
limit?: undefined;
messageId?: undefined;
messages?: undefined;
totalMessages?: undefined;
} | {
error: string;
messageId: string;
artifactId?: undefined;
content?: undefined;
totalSize?: undefined;
hasMore?: undefined;
offset?: undefined;
limit?: undefined;
sessionId?: undefined;
messages?: undefined;
totalMessages?: undefined;
} | {
messages: ({
id: string;
error: string;
role?: undefined;
tool?: undefined;
matchCount?: undefined;
matches?: undefined;
totalSize?: undefined;
content?: undefined;
hasMore?: undefined;
} | {
id: string;
role: "system" | "user" | "assistant" | "tool_call" | "tool_result";
tool: string | undefined;
matchCount: number;
matches: {
line: number;
text: string;
}[];
totalSize: number;
error?: undefined;
content?: undefined;
hasMore?: undefined;
} | {
id: string;
role: "system" | "user" | "assistant" | "tool_call" | "tool_result";
tool: string | undefined;
content: string;
totalSize: number;
hasMore: boolean;
error?: undefined;
matchCount?: undefined;
matches?: undefined;
})[];
totalMessages: number;
error?: undefined;
artifactId?: undefined;
content?: undefined;
totalSize?: undefined;
hasMore?: undefined;
offset?: undefined;
limit?: undefined;
sessionId?: undefined;
messageId?: undefined;
}>;
};