/** * Minimal Node.js client for Kompanion MCP memory tools. * * The helpers spawn the `kom_mcp` CLI with a tool name and JSON payload, * then return the parsed response. */ import { spawnSync } from 'node:child_process'; function runKomMcp(toolName, payload) { const request = JSON.stringify(payload); const result = spawnSync('kom_mcp', [toolName, request], { encoding: 'utf8' }); if (result.error) { throw result.error; } if (result.status !== 0) { throw new Error(`kom_mcp exited with code ${result.status}: ${result.stderr}`); } const output = result.stdout.trim(); if (!output) { return {}; } try { return JSON.parse(output); } catch (err) { throw new Error(`Failed to parse kom_mcp response: ${err}. Raw output: ${output}`); } } export function saveContext(payload) { return runKomMcp('kom.memory.v1.save_context', payload); } export function recallContext(payload) { return runKomMcp('kom.memory.v1.recall_context', payload); } export function searchMemory(payload) { return runKomMcp('kom.memory.v1.search_memory', payload); } export default { saveContext, recallContext, searchMemory };