(store, name, args)
| 245 | // ─── Execute Memory Tool ───────────────────────────────────────────────────── |
| 246 | |
| 247 | function executeMemoryTool(store, name, args) { |
| 248 | switch (name) { |
| 249 | case 'memory_load': { |
| 250 | const relevant = store.loadForTask(args.task || ''); |
| 251 | if (relevant.length === 0) return { result: 'No relevant memory found for this task.' }; |
| 252 | const formatted = relevant.map(o => `[${o.type}] ${o.title}\n${o.content}`).join('\n\n'); |
| 253 | return { result: `Loaded ${relevant.length} memory objects:\n\n${formatted}` }; |
| 254 | } |
| 255 | case 'memory_remember': { |
| 256 | const obj = store.remember(args.type, args.title, args.content, { tags: args.tags }); |
| 257 | return { result: `Remembered [${obj.type}] "${obj.title}" (id: ${obj.id})` }; |
| 258 | } |
| 259 | case 'memory_list': { |
| 260 | const objects = args.type ? store.byType(args.type) : store.all(); |
| 261 | if (objects.length === 0) return { result: 'No memory objects stored.' }; |
| 262 | const list = objects.map(o => `[${o.id}] (${o.type}) ${o.title}`).join('\n'); |
| 263 | return { result: `${objects.length} memory objects:\n${list}` }; |
| 264 | } |
| 265 | case 'memory_forget': { |
| 266 | const success = store.forget(args.id); |
| 267 | return { result: success ? `Deleted memory ${args.id}` : `Memory ${args.id} not found` }; |
| 268 | } |
| 269 | default: |
| 270 | return { error: `Unknown memory tool: ${name}` }; |
| 271 | } |
| 272 | } |
| 273 | |
| 274 | module.exports = { MemoryStore, MemoryObject, getMemoryTools, executeMemoryTool }; |
nothing calls this directly
no test coverage detected