@jeanmemory/react
Version:
React SDK for Jean Memory - Build personalized AI chatbots in 5 lines of code
59 lines (58 loc) • 2.52 kB
JavaScript
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
};
}
;