@j0hanz/memdb 1.2.9 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -287
- package/dist/assets/logo.svg +12 -0
- package/dist/config.d.ts +0 -1
- package/dist/config.js +0 -1
- package/dist/core/db.d.ts +6 -4
- package/dist/core/db.js +79 -39
- package/dist/core/memory-read.d.ts +1 -2
- package/dist/core/memory-read.js +28 -14
- package/dist/core/memory-write.d.ts +1 -2
- package/dist/core/memory-write.js +59 -82
- package/dist/core/relationships.d.ts +0 -1
- package/dist/core/relationships.js +4 -20
- package/dist/core/search.d.ts +0 -1
- package/dist/core/search.js +85 -101
- package/dist/index.d.ts +0 -1
- package/dist/index.js +36 -4
- package/dist/instructions.md +35 -27
- package/dist/logger.d.ts +0 -1
- package/dist/logger.js +0 -1
- package/dist/protocol-version-guard.d.ts +0 -1
- package/dist/protocol-version-guard.js +0 -1
- package/dist/schemas.d.ts +0 -1
- package/dist/schemas.js +12 -9
- package/dist/stdio-transport.d.ts +0 -1
- package/dist/stdio-transport.js +0 -1
- package/dist/tools.d.ts +1 -2
- package/dist/tools.js +194 -214
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -1
- package/package.json +19 -17
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/core/db.d.ts.map +0 -1
- package/dist/core/db.js.map +0 -1
- package/dist/core/memory-read.d.ts.map +0 -1
- package/dist/core/memory-read.js.map +0 -1
- package/dist/core/memory-write.d.ts.map +0 -1
- package/dist/core/memory-write.js.map +0 -1
- package/dist/core/relationships.d.ts.map +0 -1
- package/dist/core/relationships.js.map +0 -1
- package/dist/core/search.d.ts.map +0 -1
- package/dist/core/search.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/protocol-version-guard.d.ts.map +0 -1
- package/dist/protocol-version-guard.js.map +0 -1
- package/dist/schemas.d.ts.map +0 -1
- package/dist/schemas.js.map +0 -1
- package/dist/stdio-transport.d.ts.map +0 -1
- package/dist/stdio-transport.js.map +0 -1
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
package/dist/tools.js
CHANGED
|
@@ -19,6 +19,7 @@ const defaultDeps = {
|
|
|
19
19
|
recallMemories,
|
|
20
20
|
};
|
|
21
21
|
const TOOL_TIMEOUT_MS = config.toolTimeoutMs;
|
|
22
|
+
const normalizeHash = (hash) => hash.toLowerCase();
|
|
22
23
|
const isNonEmptyString = (value) => typeof value === 'string' && value.length > 0;
|
|
23
24
|
const getErrorMessage = (error) => {
|
|
24
25
|
if (error instanceof Error)
|
|
@@ -39,27 +40,6 @@ const createErrorResponse = (code, message, result) => {
|
|
|
39
40
|
isError: true,
|
|
40
41
|
};
|
|
41
42
|
};
|
|
42
|
-
const withTimeout = async (promise, ms, onTimeout, signal) => {
|
|
43
|
-
if (ms <= 0)
|
|
44
|
-
return await promise;
|
|
45
|
-
let timeout;
|
|
46
|
-
const timeoutPromise = new Promise((resolve) => {
|
|
47
|
-
timeout = setTimeout(() => {
|
|
48
|
-
if (signal && typeof signal.dispatchEvent === 'function') {
|
|
49
|
-
signal.dispatchEvent(new Event('abort'));
|
|
50
|
-
}
|
|
51
|
-
resolve(onTimeout());
|
|
52
|
-
}, ms);
|
|
53
|
-
});
|
|
54
|
-
try {
|
|
55
|
-
return await Promise.race([promise, timeoutPromise]);
|
|
56
|
-
}
|
|
57
|
-
finally {
|
|
58
|
-
if (timeout)
|
|
59
|
-
clearTimeout(timeout);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
const createTimeoutResponse = () => createErrorResponse('E_TIMEOUT', `Tool execution timed out after ${TOOL_TIMEOUT_MS}ms`, { timeoutMs: TOOL_TIMEOUT_MS });
|
|
63
43
|
const createSuccessResponse = (result) => {
|
|
64
44
|
const structured = { ok: true, result };
|
|
65
45
|
return {
|
|
@@ -67,20 +47,71 @@ const createSuccessResponse = (result) => {
|
|
|
67
47
|
structuredContent: structured,
|
|
68
48
|
};
|
|
69
49
|
};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return createErrorResponse(code, getErrorMessage(err));
|
|
50
|
+
class ToolFailure extends Error {
|
|
51
|
+
result;
|
|
52
|
+
code;
|
|
53
|
+
constructor(code, message, result) {
|
|
54
|
+
super(message);
|
|
55
|
+
this.result = result;
|
|
56
|
+
this.code = code;
|
|
78
57
|
}
|
|
58
|
+
}
|
|
59
|
+
const createTimeoutResponse = (timeoutMs) => createErrorResponse('E_TIMEOUT', `Tool execution timed out after ${timeoutMs}ms`, { timeoutMs });
|
|
60
|
+
const createTimedToolHandler = (defaultErrorCode, timeoutMs, run) => {
|
|
61
|
+
return async (params) => {
|
|
62
|
+
const controller = new AbortController();
|
|
63
|
+
const ctx = { signal: controller.signal };
|
|
64
|
+
const execution = Promise.resolve().then(() => run(params, ctx));
|
|
65
|
+
if (timeoutMs <= 0) {
|
|
66
|
+
try {
|
|
67
|
+
return await execution;
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
if (err instanceof ToolFailure) {
|
|
71
|
+
return createErrorResponse(err.code, err.message, err.result);
|
|
72
|
+
}
|
|
73
|
+
return createErrorResponse(defaultErrorCode, getErrorMessage(err));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
let timeout;
|
|
77
|
+
const timeoutPromise = new Promise((resolve) => {
|
|
78
|
+
timeout = setTimeout(() => {
|
|
79
|
+
controller.abort();
|
|
80
|
+
resolve(createTimeoutResponse(timeoutMs));
|
|
81
|
+
}, timeoutMs);
|
|
82
|
+
});
|
|
83
|
+
try {
|
|
84
|
+
return await Promise.race([execution, timeoutPromise]);
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
if (err instanceof ToolFailure) {
|
|
88
|
+
return createErrorResponse(err.code, err.message, err.result);
|
|
89
|
+
}
|
|
90
|
+
return createErrorResponse(defaultErrorCode, getErrorMessage(err));
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
if (timeout)
|
|
94
|
+
clearTimeout(timeout);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
79
97
|
};
|
|
80
|
-
const
|
|
81
|
-
return
|
|
98
|
+
const defineTool = (spec) => {
|
|
99
|
+
return {
|
|
100
|
+
name: spec.name,
|
|
101
|
+
options: {
|
|
102
|
+
title: spec.title,
|
|
103
|
+
description: spec.description,
|
|
104
|
+
inputSchema: spec.inputSchema,
|
|
105
|
+
outputSchema: spec.outputSchema,
|
|
106
|
+
...(spec.annotations ? { annotations: spec.annotations } : {}),
|
|
107
|
+
},
|
|
108
|
+
handler: createTimedToolHandler(spec.errorCode, spec.timeoutMs ?? TOOL_TIMEOUT_MS, async (params, ctx) => {
|
|
109
|
+
const input = spec.inputSchema.parse(params);
|
|
110
|
+
const result = await spec.run(input, ctx);
|
|
111
|
+
return createSuccessResponse(result);
|
|
112
|
+
}),
|
|
113
|
+
};
|
|
82
114
|
};
|
|
83
|
-
const normalizeHash = (hash) => hash.toLowerCase();
|
|
84
115
|
const toCreateMemoryInput = (input) => ({
|
|
85
116
|
content: input.content,
|
|
86
117
|
tags: input.tags,
|
|
@@ -89,247 +120,196 @@ const toCreateMemoryInput = (input) => ({
|
|
|
89
120
|
? {}
|
|
90
121
|
: { memory_type: input.memory_type }),
|
|
91
122
|
});
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
123
|
+
const buildTools = (deps) => [
|
|
124
|
+
defineTool({
|
|
125
|
+
name: 'store_memory',
|
|
95
126
|
title: 'Store Memory',
|
|
96
127
|
description: 'Store a new memory with tags',
|
|
97
128
|
inputSchema: StoreMemoryInputSchema,
|
|
98
129
|
outputSchema: DefaultOutputSchema,
|
|
99
130
|
annotations: { idempotentHint: true },
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
131
|
+
errorCode: 'E_STORE_MEMORY',
|
|
132
|
+
run: async (input) => {
|
|
133
|
+
const result = await deps.createMemory(toCreateMemoryInput({
|
|
134
|
+
content: input.content,
|
|
135
|
+
tags: input.tags,
|
|
136
|
+
importance: input.importance,
|
|
137
|
+
memory_type: input.memory_type,
|
|
138
|
+
}));
|
|
139
|
+
return result;
|
|
140
|
+
},
|
|
110
141
|
}),
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
name: 'store_memories',
|
|
114
|
-
options: {
|
|
142
|
+
defineTool({
|
|
143
|
+
name: 'store_memories',
|
|
115
144
|
title: 'Store Multiple Memories',
|
|
116
145
|
description: 'Store multiple memories in a single batch operation. Returns per-item results with partial success support.',
|
|
117
146
|
inputSchema: StoreMemoriesInputSchema,
|
|
118
147
|
outputSchema: DefaultOutputSchema,
|
|
119
148
|
annotations: { idempotentHint: true },
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
return createSuccessResponse(result);
|
|
149
|
+
errorCode: 'E_STORE_MEMORIES',
|
|
150
|
+
run: async (input, ctx) => {
|
|
151
|
+
const items = input.items.map((item) => toCreateMemoryInput({
|
|
152
|
+
content: item.content,
|
|
153
|
+
tags: item.tags,
|
|
154
|
+
importance: item.importance,
|
|
155
|
+
memory_type: item.memory_type,
|
|
156
|
+
}));
|
|
157
|
+
return await deps.createMemories(items, ctx.signal);
|
|
158
|
+
},
|
|
131
159
|
}),
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
name: 'get_memory',
|
|
135
|
-
options: {
|
|
160
|
+
defineTool({
|
|
161
|
+
name: 'get_memory',
|
|
136
162
|
title: 'Get Memory',
|
|
137
163
|
description: 'Retrieve memory by hash',
|
|
138
164
|
inputSchema: GetMemoryInputSchema,
|
|
139
165
|
outputSchema: DefaultOutputSchema,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
return
|
|
146
|
-
}
|
|
147
|
-
return createSuccessResponse(result);
|
|
166
|
+
errorCode: 'E_GET_MEMORY',
|
|
167
|
+
run: async (input) => {
|
|
168
|
+
const result = await deps.getMemory(normalizeHash(input.hash));
|
|
169
|
+
if (!result)
|
|
170
|
+
throw new ToolFailure('E_NOT_FOUND', 'Memory not found');
|
|
171
|
+
return result;
|
|
172
|
+
},
|
|
148
173
|
}),
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
name: 'delete_memory',
|
|
152
|
-
options: {
|
|
174
|
+
defineTool({
|
|
175
|
+
name: 'delete_memory',
|
|
153
176
|
title: 'Delete Memory',
|
|
154
177
|
description: 'Delete by hash',
|
|
155
178
|
inputSchema: DeleteMemoryInputSchema,
|
|
156
179
|
outputSchema: DefaultOutputSchema,
|
|
157
180
|
annotations: { destructiveHint: true },
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
return
|
|
164
|
-
}
|
|
165
|
-
return createSuccessResponse({ deleted: true });
|
|
181
|
+
errorCode: 'E_DELETE_MEMORY',
|
|
182
|
+
run: async (input) => {
|
|
183
|
+
const result = await deps.deleteMemory(normalizeHash(input.hash));
|
|
184
|
+
if (result.changes === 0)
|
|
185
|
+
throw new ToolFailure('E_NOT_FOUND', 'Memory not found');
|
|
186
|
+
return { deleted: true };
|
|
187
|
+
},
|
|
166
188
|
}),
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
name: 'delete_memories',
|
|
170
|
-
options: {
|
|
189
|
+
defineTool({
|
|
190
|
+
name: 'delete_memories',
|
|
171
191
|
title: 'Delete Multiple Memories',
|
|
172
192
|
description: 'Delete multiple memories by hash in a single batch operation. Returns per-item results with partial success support.',
|
|
173
193
|
inputSchema: DeleteMemoriesInputSchema,
|
|
174
194
|
outputSchema: DefaultOutputSchema,
|
|
175
195
|
annotations: { destructiveHint: true },
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
return createSuccessResponse(result);
|
|
196
|
+
errorCode: 'E_DELETE_MEMORIES',
|
|
197
|
+
run: async (input, ctx) => {
|
|
198
|
+
return await deps.deleteMemories(input.hashes.map(normalizeHash), ctx.signal);
|
|
199
|
+
},
|
|
181
200
|
}),
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
name: 'update_memory',
|
|
185
|
-
options: {
|
|
201
|
+
defineTool({
|
|
202
|
+
name: 'update_memory',
|
|
186
203
|
title: 'Update Memory',
|
|
187
204
|
description: 'Update memory content. Returns new hash since content change affects the hash.',
|
|
188
205
|
inputSchema: UpdateMemoryInputSchema,
|
|
189
206
|
outputSchema: DefaultOutputSchema,
|
|
190
207
|
annotations: { idempotentHint: true },
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
return createSuccessResponse(result);
|
|
208
|
+
errorCode: 'E_UPDATE_MEMORY',
|
|
209
|
+
run: async (input) => {
|
|
210
|
+
return await deps.updateMemory(normalizeHash(input.hash), {
|
|
211
|
+
content: input.content,
|
|
212
|
+
tags: input.tags,
|
|
213
|
+
});
|
|
214
|
+
},
|
|
199
215
|
}),
|
|
200
|
-
|
|
201
|
-
const buildCoreTools = (deps) => [
|
|
202
|
-
buildStoreMemoryTool(deps),
|
|
203
|
-
buildStoreMemoriesTool(deps),
|
|
204
|
-
buildGetMemoryTool(deps),
|
|
205
|
-
buildDeleteMemoryTool(deps),
|
|
206
|
-
buildDeleteMemoriesTool(deps),
|
|
207
|
-
buildUpdateMemoryTool(deps),
|
|
208
|
-
];
|
|
209
|
-
const buildSearchTools = (deps) => [
|
|
210
|
-
{
|
|
216
|
+
defineTool({
|
|
211
217
|
name: 'search_memories',
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
+
title: 'Search Memories',
|
|
219
|
+
description: 'Search memories by content and tags',
|
|
220
|
+
inputSchema: SearchMemoriesInputSchema,
|
|
221
|
+
outputSchema: DefaultOutputSchema,
|
|
222
|
+
annotations: { readOnlyHint: true },
|
|
223
|
+
errorCode: 'E_SEARCH_MEMORIES',
|
|
224
|
+
run: async (input, ctx) => {
|
|
225
|
+
return await deps.searchMemories({ query: input.query }, ctx.signal);
|
|
218
226
|
},
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const result = await deps.searchMemories({ query: input.query }, signal);
|
|
222
|
-
return createSuccessResponse(result);
|
|
223
|
-
}),
|
|
224
|
-
},
|
|
225
|
-
{
|
|
227
|
+
}),
|
|
228
|
+
defineTool({
|
|
226
229
|
name: 'recall',
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
const input = RecallInputSchema.parse(params);
|
|
237
|
-
const result = await deps.recallMemories({
|
|
230
|
+
title: 'Recall Memories',
|
|
231
|
+
description: 'Search for memories and traverse relationships to return a connected graph cluster. ' +
|
|
232
|
+
'Use this for deeper context retrieval that follows knowledge graph connections.',
|
|
233
|
+
inputSchema: RecallInputSchema,
|
|
234
|
+
outputSchema: DefaultOutputSchema,
|
|
235
|
+
annotations: { readOnlyHint: true },
|
|
236
|
+
errorCode: 'E_RECALL',
|
|
237
|
+
run: async (input, ctx) => {
|
|
238
|
+
return await deps.recallMemories({
|
|
238
239
|
query: input.query,
|
|
239
240
|
...(input.depth !== undefined && { depth: input.depth }),
|
|
240
|
-
}, signal);
|
|
241
|
-
return createSuccessResponse(result);
|
|
242
|
-
}),
|
|
243
|
-
},
|
|
244
|
-
];
|
|
245
|
-
const buildRelationshipTools = (deps) => [
|
|
246
|
-
{
|
|
247
|
-
name: 'create_relationship',
|
|
248
|
-
options: {
|
|
249
|
-
title: 'Create Relationship',
|
|
250
|
-
description: 'Link two memories with a typed relationship. Creates a knowledge graph edge between memories.',
|
|
251
|
-
inputSchema: CreateRelationshipInputSchema,
|
|
252
|
-
outputSchema: DefaultOutputSchema,
|
|
253
|
-
annotations: { idempotentHint: true },
|
|
241
|
+
}, ctx.signal);
|
|
254
242
|
},
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
243
|
+
}),
|
|
244
|
+
defineTool({
|
|
245
|
+
name: 'create_relationship',
|
|
246
|
+
title: 'Create Relationship',
|
|
247
|
+
description: 'Link two memories with a typed relationship. Creates a knowledge graph edge between memories.',
|
|
248
|
+
inputSchema: CreateRelationshipInputSchema,
|
|
249
|
+
outputSchema: DefaultOutputSchema,
|
|
250
|
+
annotations: { idempotentHint: true },
|
|
251
|
+
errorCode: 'E_CREATE_RELATIONSHIP',
|
|
252
|
+
run: async (input) => {
|
|
253
|
+
return await deps.createRelationship({
|
|
258
254
|
from_hash: normalizeHash(input.from_hash),
|
|
259
255
|
to_hash: normalizeHash(input.to_hash),
|
|
260
256
|
relation_type: input.relation_type,
|
|
261
257
|
});
|
|
262
|
-
return createSuccessResponse(result);
|
|
263
|
-
}),
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
name: 'get_relationships',
|
|
267
|
-
options: {
|
|
268
|
-
title: 'Get Relationships',
|
|
269
|
-
description: 'Get all relationships for a memory. Returns linked memories with relationship types.',
|
|
270
|
-
inputSchema: GetRelationshipsInputSchema,
|
|
271
|
-
outputSchema: DefaultOutputSchema,
|
|
272
|
-
annotations: { readOnlyHint: true },
|
|
273
258
|
},
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
259
|
+
}),
|
|
260
|
+
defineTool({
|
|
261
|
+
name: 'get_relationships',
|
|
262
|
+
title: 'Get Relationships',
|
|
263
|
+
description: 'Get all relationships for a memory. Returns linked memories with relationship types.',
|
|
264
|
+
inputSchema: GetRelationshipsInputSchema,
|
|
265
|
+
outputSchema: DefaultOutputSchema,
|
|
266
|
+
annotations: { readOnlyHint: true },
|
|
267
|
+
errorCode: 'E_GET_RELATIONSHIPS',
|
|
268
|
+
run: async (input) => {
|
|
269
|
+
return await deps.getRelationships({
|
|
277
270
|
hash: normalizeHash(input.hash),
|
|
278
271
|
...(input.direction !== undefined && { direction: input.direction }),
|
|
279
272
|
});
|
|
280
|
-
return createSuccessResponse(result);
|
|
281
|
-
}),
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
name: 'delete_relationship',
|
|
285
|
-
options: {
|
|
286
|
-
title: 'Delete Relationship',
|
|
287
|
-
description: 'Remove a relationship between two memories.',
|
|
288
|
-
inputSchema: DeleteRelationshipInputSchema,
|
|
289
|
-
outputSchema: DefaultOutputSchema,
|
|
290
|
-
annotations: { destructiveHint: true },
|
|
291
273
|
},
|
|
292
|
-
|
|
293
|
-
|
|
274
|
+
}),
|
|
275
|
+
defineTool({
|
|
276
|
+
name: 'delete_relationship',
|
|
277
|
+
title: 'Delete Relationship',
|
|
278
|
+
description: 'Remove a relationship between two memories.',
|
|
279
|
+
inputSchema: DeleteRelationshipInputSchema,
|
|
280
|
+
outputSchema: DefaultOutputSchema,
|
|
281
|
+
annotations: { destructiveHint: true },
|
|
282
|
+
errorCode: 'E_DELETE_RELATIONSHIP',
|
|
283
|
+
run: async (input) => {
|
|
294
284
|
const result = await deps.deleteRelationship({
|
|
295
285
|
from_hash: normalizeHash(input.from_hash),
|
|
296
286
|
to_hash: normalizeHash(input.to_hash),
|
|
297
287
|
relation_type: input.relation_type,
|
|
298
288
|
});
|
|
299
|
-
if (result.changes === 0)
|
|
300
|
-
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
];
|
|
306
|
-
const buildStatsTools = (deps) => [
|
|
307
|
-
{
|
|
289
|
+
if (result.changes === 0)
|
|
290
|
+
throw new ToolFailure('E_NOT_FOUND', 'Relationship not found');
|
|
291
|
+
return { deleted: true };
|
|
292
|
+
},
|
|
293
|
+
}),
|
|
294
|
+
defineTool({
|
|
308
295
|
name: 'memory_stats',
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
296
|
+
title: 'Memory Stats',
|
|
297
|
+
description: 'Database statistics and health',
|
|
298
|
+
inputSchema: MemoryStatsInputSchema,
|
|
299
|
+
outputSchema: DefaultOutputSchema,
|
|
300
|
+
annotations: { readOnlyHint: true },
|
|
301
|
+
errorCode: 'E_MEMORY_STATS',
|
|
302
|
+
run: async () => {
|
|
303
|
+
return await deps.getStats();
|
|
315
304
|
},
|
|
316
|
-
|
|
317
|
-
MemoryStatsInputSchema.parse(params);
|
|
318
|
-
const result = await deps.getStats();
|
|
319
|
-
return createSuccessResponse(result);
|
|
320
|
-
}),
|
|
321
|
-
},
|
|
322
|
-
];
|
|
323
|
-
const buildTools = (deps) => [
|
|
324
|
-
...buildCoreTools(deps),
|
|
325
|
-
...buildSearchTools(deps),
|
|
326
|
-
...buildRelationshipTools(deps),
|
|
327
|
-
...buildStatsTools(deps),
|
|
305
|
+
}),
|
|
328
306
|
];
|
|
329
|
-
export function registerAllTools(server, deps = defaultDeps) {
|
|
307
|
+
export function registerAllTools(server, localIcon, deps = defaultDeps) {
|
|
330
308
|
const tools = buildTools(deps);
|
|
309
|
+
const iconMetadata = localIcon
|
|
310
|
+
? { icons: [{ src: localIcon, mimeType: 'image/svg+xml', sizes: ['any'] }] }
|
|
311
|
+
: {};
|
|
331
312
|
for (const tool of tools) {
|
|
332
|
-
server.registerTool(tool.name, tool.options, tool.handler);
|
|
313
|
+
server.registerTool(tool.name, { ...tool.options, ...iconMetadata }, tool.handler);
|
|
333
314
|
}
|
|
334
315
|
}
|
|
335
|
-
//# sourceMappingURL=tools.js.map
|
package/dist/types.d.ts
CHANGED
package/dist/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@j0hanz/memdb",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"mcpName": "io.github.j0hanz/memdb",
|
|
5
5
|
"description": "A SQLite-backed MCP memory server with local workspace storage.",
|
|
6
6
|
"type": "module",
|
|
@@ -18,22 +18,24 @@
|
|
|
18
18
|
"README.md"
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
|
-
"clean": "node
|
|
22
|
-
"validate:instructions": "node
|
|
23
|
-
"build": "
|
|
24
|
-
"copy:assets": "node
|
|
21
|
+
"clean": "node scripts/tasks.mjs clean",
|
|
22
|
+
"validate:instructions": "node scripts/tasks.mjs validate:instructions",
|
|
23
|
+
"build": "node scripts/tasks.mjs build",
|
|
24
|
+
"copy:assets": "node scripts/tasks.mjs copy:assets",
|
|
25
25
|
"prepare": "npm run build",
|
|
26
|
-
"dev": "
|
|
26
|
+
"dev": "tsc --watch --preserveWatchOutput",
|
|
27
|
+
"dev:run": "node --env-file=.env --watch dist/index.js",
|
|
27
28
|
"start": "node dist/index.js",
|
|
28
|
-
"test": "node --import tsx/esm --test --test-concurrency=1 tests/*.test.ts",
|
|
29
|
-
"test:coverage": "node --import tsx/esm --test --experimental-test-coverage tests/*.test.ts",
|
|
30
|
-
"test:native": "node --experimental-strip-types tests/native-compat.test.ts",
|
|
31
|
-
"duplication": "npx --yes jscpd -k 50 -f typescript -r json -o .jscpd src",
|
|
32
|
-
"lint": "eslint .",
|
|
33
29
|
"format": "prettier --write .",
|
|
34
|
-
"
|
|
35
|
-
"type-check": "tsc
|
|
36
|
-
"type-check:
|
|
30
|
+
"type-check": "node scripts/tasks.mjs type-check",
|
|
31
|
+
"type-check:diagnostics": "tsc --noEmit --extendedDiagnostics",
|
|
32
|
+
"type-check:trace": "node -e \"require('fs').rmSync('.ts-trace',{recursive:true,force:true})\" && tsc --noEmit --generateTrace .ts-trace",
|
|
33
|
+
"lint": "eslint .",
|
|
34
|
+
"lint:fix": "eslint . --fix",
|
|
35
|
+
"test": "node scripts/tasks.mjs test",
|
|
36
|
+
"test:coverage": "node scripts/tasks.mjs test --coverage",
|
|
37
|
+
"knip": "knip",
|
|
38
|
+
"knip:fix": "knip --fix",
|
|
37
39
|
"inspector": "npx @modelcontextprotocol/inspector",
|
|
38
40
|
"prepublishOnly": "npm run lint && npm run type-check && npm run build"
|
|
39
41
|
},
|
|
@@ -52,20 +54,20 @@
|
|
|
52
54
|
"homepage": "https://github.com/j0hanz/memdb-mcp-server#readme",
|
|
53
55
|
"license": "MIT",
|
|
54
56
|
"dependencies": {
|
|
55
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
57
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
56
58
|
"zod": "^4.3.6"
|
|
57
59
|
},
|
|
58
60
|
"devDependencies": {
|
|
59
61
|
"@eslint/js": "^9.39.2",
|
|
60
62
|
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
|
61
|
-
"@types/node": "^25.
|
|
63
|
+
"@types/node": "^25.2.0",
|
|
62
64
|
"eslint": "^9.39.2",
|
|
63
65
|
"eslint-config-prettier": "^10.1.8",
|
|
64
66
|
"eslint-plugin-de-morgan": "^2.0.0",
|
|
65
67
|
"eslint-plugin-depend": "^1.4.0",
|
|
66
68
|
"eslint-plugin-sonarjs": "^3.0.6",
|
|
67
69
|
"eslint-plugin-unused-imports": "^4.3.0",
|
|
68
|
-
"knip": "^5.
|
|
70
|
+
"knip": "^5.83.0",
|
|
69
71
|
"prettier": "^3.8.1",
|
|
70
72
|
"tsx": "^4.21.0",
|
|
71
73
|
"typescript": "^5.9.3",
|
package/dist/config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAoD1C,eAAO,MAAM,MAAM;;;;CAQlB,CAAC"}
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AAInC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACxE,MAAM,iBAAiB,GAAa,MAAM,CAAC;AAC3C,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAErE,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAwB,EAAE;IACxE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf;YACE,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,8BAA8B,CAChE,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,KAAyB,EACzB,IAAY,EACQ,EAAE;IACtB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,sBAAsB,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,mCAAmC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,GAAsB,EAAU,EAAE;IACvD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC;IAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,OAAO,KAAK,UAAU;YAAE,OAAO,UAAU,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC;IAClC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,iBAAiB;IACzE,aAAa,EACX,cAAc,CACZ,OAAO,CAAC,GAAG,CAAC,qBAAqB,EACjC,uBAAuB,CACxB,IAAI,uBAAuB;CAC/B,CAAC"}
|
package/dist/core/db.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EACL,KAAK,MAAM,EAGX,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA8H5C,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,IAAI,CAW3C,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,YAKxB,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,IAM1B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,CAAC;AAKpE,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,aAiB3C,CAAC;AAqCF,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,KAAK,EAClC,MAAM,aAAa,EACnB,GAAG,QAAQ,QAAQ,EAAE,KACpB,CAAC,EAA8C,CAAC;AAGnD,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,KAAK,EAClC,MAAM,aAAa,EACnB,GAAG,QAAQ,QAAQ,EAAE,KACpB,CAAC,GAAG,SAAqE,CAAC;AAE7E,eAAO,MAAM,UAAU,GACrB,MAAM,aAAa,EACnB,GAAG,QAAQ,QAAQ,EAAE,KACpB;IAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAAsC,CAAC;AAEpE,eAAO,MAAM,wBAAwB,GAAI,CAAC,EAAE,WAAW,MAAM,CAAC,KAAG,CAchE,CAAC;AAsBF,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,EAAE,OAAO,MAAM,KAAG,MAM7D,CAAC;AAkCF,eAAO,MAAM,cAAc,GAAI,KAAK,KAAK,EAAE,OAAM,MAAM,EAAO,KAAG,MAU/D,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAC/B,KAAK,KAAK,EACV,OAAM,MAAM,EAAO,KAClB,YAGD,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAAI,KAAK,KAAK,KAAG,YAMhD,CAAC;AAsBH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,SAAS,MAAM,EAAE,KAC3B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAgBtB,CAAC"}
|
package/dist/core/db.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-read.d.ts","sourceRoot":"","sources":["../../src/core/memory-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,eAAe,EAChB,MAAM,aAAa,CAAC;AAYrB,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAiBjD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,eAM3C,CAAC;AAoBF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,KAAG,iBAejD,CAAC;AA4BF,eAAO,MAAM,QAAQ,QAAO,WAc3B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-read.js","sourceRoot":"","sources":["../../src/core/memory-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-write.d.ts","sourceRoot":"","sources":["../../src/core/memory-write.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAiGrB,eAAO,MAAM,YAAY,GAAI,OAAO;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B,KAAG,kBAC8D,CAAC;AAqBnE,eAAO,MAAM,cAAc,GACzB,OAAO;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B,EAAE,KACF,gBAEF,CAAC;AAqEF,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACtC;AAkBD,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,SAAS,mBAAmB,KAC3B,kBAuBF,CAAC"}
|