UNPKG

@jeanmemory/react

Version:

React SDK for Jean Memory - Build personalized AI chatbots in 5 lines of code

59 lines (58 loc) 2.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useJeanMCP = useJeanMCP; /** * Jean Memory React SDK - Advanced MCP Hook * Direct access to MCP tools for advanced users * Uses the jean_memory MCP tool directly (same as Claude Desktop/Cursor) */ const react_1 = require("react"); const mcp_1 = require("./mcp"); /** * Advanced hook for direct MCP tool access * Use this when you need fine-grained control over Jean Memory tools */ function useJeanMCP({ apiKey, clientName = 'react-app' }) { const callJeanMemory = (0, react_1.useCallback)(async (user, message, isNewConversation = false) => { const response = await (0, mcp_1.makeMCPRequest)(user, apiKey, 'jean_memory', { user_message: message, is_new_conversation: isNewConversation, needs_context: true }, clientName); if (response.error) { throw new Error(`MCP Error: ${response.error.message}`); } return response.result?.content?.[0]?.text || 'No response from tool'; }, [apiKey, clientName]); const addMemory = (0, react_1.useCallback)(async (user, content) => { const response = await (0, mcp_1.makeMCPRequest)(user, apiKey, 'add_memories', { text: content }, clientName); if (response.error) { throw new Error(`MCP Error: ${response.error.message}`); } return response.result?.content?.[0]?.text || 'No response from tool'; }, [apiKey, clientName]); const searchMemory = (0, react_1.useCallback)(async (user, query) => { const response = await (0, mcp_1.makeMCPRequest)(user, apiKey, 'search_memory', { query }, clientName); if (response.error) { throw new Error(`MCP Error: ${response.error.message}`); } return response.result?.content?.[0]?.text || 'No response from tool'; }, [apiKey, clientName]); const storeDocument = (0, react_1.useCallback)(async (user, title, content, type = 'markdown') => { const response = await (0, mcp_1.makeMCPRequest)(user, apiKey, 'store_document', { title, content, document_type: type }, clientName); if (response.error) { throw new Error(`MCP Error: ${response.error.message}`); } return response.result?.content?.[0]?.text || 'No response from tool'; }, [apiKey, clientName]); return { callJeanMemory, addMemory, searchMemory, storeDocument }; }