@j0hanz/memory-mcp 0.1.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 +363 -0
- package/dist/assets/logo.svg +36 -0
- package/dist/completions/index.d.ts +3 -0
- package/dist/completions/index.d.ts.map +1 -0
- package/dist/completions/index.js +17 -0
- package/dist/completions/index.js.map +1 -0
- package/dist/db/index.d.ts +6 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +102 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/typed.d.ts +15 -0
- package/dist/db/typed.d.ts.map +1 -0
- package/dist/db/typed.js +24 -0
- package/dist/db/typed.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions.md +144 -0
- package/dist/lib/errors.d.ts +5 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +12 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/hash.d.ts +2 -0
- package/dist/lib/hash.d.ts.map +1 -0
- package/dist/lib/hash.js +11 -0
- package/dist/lib/hash.js.map +1 -0
- package/dist/lib/pagination.d.ts +8 -0
- package/dist/lib/pagination.d.ts.map +1 -0
- package/dist/lib/pagination.js +40 -0
- package/dist/lib/pagination.js.map +1 -0
- package/dist/lib/search.d.ts +14 -0
- package/dist/lib/search.d.ts.map +1 -0
- package/dist/lib/search.js +36 -0
- package/dist/lib/search.js.map +1 -0
- package/dist/lib/tool-response.d.ts +8 -0
- package/dist/lib/tool-response.d.ts.map +1 -0
- package/dist/lib/tool-response.js +21 -0
- package/dist/lib/tool-response.js.map +1 -0
- package/dist/lib/types.d.ts +75 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +25 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/prompts/index.d.ts +3 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +46 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/index.d.ts +4 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +89 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/schemas/index.d.ts +3 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +4 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/inputs.d.ts +128 -0
- package/dist/schemas/inputs.d.ts.map +1 -0
- package/dist/schemas/inputs.js +176 -0
- package/dist/schemas/inputs.js.map +1 -0
- package/dist/schemas/outputs.d.ts +202 -0
- package/dist/schemas/outputs.d.ts.map +1 -0
- package/dist/schemas/outputs.js +104 -0
- package/dist/schemas/outputs.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +73 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/create-relationship.d.ts +4 -0
- package/dist/tools/create-relationship.d.ts.map +1 -0
- package/dist/tools/create-relationship.js +49 -0
- package/dist/tools/create-relationship.js.map +1 -0
- package/dist/tools/delete-memories.d.ts +4 -0
- package/dist/tools/delete-memories.d.ts.map +1 -0
- package/dist/tools/delete-memories.js +55 -0
- package/dist/tools/delete-memories.js.map +1 -0
- package/dist/tools/delete-memory.d.ts +4 -0
- package/dist/tools/delete-memory.d.ts.map +1 -0
- package/dist/tools/delete-memory.js +35 -0
- package/dist/tools/delete-memory.js.map +1 -0
- package/dist/tools/delete-relationship.d.ts +4 -0
- package/dist/tools/delete-relationship.d.ts.map +1 -0
- package/dist/tools/delete-relationship.js +35 -0
- package/dist/tools/delete-relationship.js.map +1 -0
- package/dist/tools/get-memory.d.ts +4 -0
- package/dist/tools/get-memory.d.ts.map +1 -0
- package/dist/tools/get-memory.js +30 -0
- package/dist/tools/get-memory.js.map +1 -0
- package/dist/tools/get-relationships.d.ts +4 -0
- package/dist/tools/get-relationships.d.ts.map +1 -0
- package/dist/tools/get-relationships.js +57 -0
- package/dist/tools/get-relationships.js.map +1 -0
- package/dist/tools/helpers.d.ts +13 -0
- package/dist/tools/helpers.d.ts.map +1 -0
- package/dist/tools/helpers.js +49 -0
- package/dist/tools/helpers.js.map +1 -0
- package/dist/tools/index.d.ts +15 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +29 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/memory-stats.d.ts +4 -0
- package/dist/tools/memory-stats.d.ts.map +1 -0
- package/dist/tools/memory-stats.js +60 -0
- package/dist/tools/memory-stats.js.map +1 -0
- package/dist/tools/recall.d.ts +4 -0
- package/dist/tools/recall.d.ts.map +1 -0
- package/dist/tools/recall.js +192 -0
- package/dist/tools/recall.js.map +1 -0
- package/dist/tools/retrieve-context.d.ts +4 -0
- package/dist/tools/retrieve-context.d.ts.map +1 -0
- package/dist/tools/retrieve-context.js +75 -0
- package/dist/tools/retrieve-context.js.map +1 -0
- package/dist/tools/search-memories.d.ts +4 -0
- package/dist/tools/search-memories.d.ts.map +1 -0
- package/dist/tools/search-memories.js +62 -0
- package/dist/tools/search-memories.js.map +1 -0
- package/dist/tools/store-memories.d.ts +4 -0
- package/dist/tools/store-memories.d.ts.map +1 -0
- package/dist/tools/store-memories.js +52 -0
- package/dist/tools/store-memories.js.map +1 -0
- package/dist/tools/store-memory.d.ts +4 -0
- package/dist/tools/store-memory.d.ts.map +1 -0
- package/dist/tools/store-memory.js +35 -0
- package/dist/tools/store-memory.js.map +1 -0
- package/dist/tools/update-memory.d.ts +4 -0
- package/dist/tools/update-memory.d.ts.map +1 -0
- package/dist/tools/update-memory.js +49 -0
- package/dist/tools/update-memory.js.map +1 -0
- package/package.json +84 -0
package/dist/server.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { findPackageJSON } from 'node:module';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { registerAllPrompts } from './prompts/index.js';
|
|
6
|
+
import { registerAllResources } from './resources/index.js';
|
|
7
|
+
import { TOOL_REGISTRARS } from './tools/index.js';
|
|
8
|
+
const ICON_ASSET = 'logo.svg';
|
|
9
|
+
const ICON_MIME = 'image/svg+xml';
|
|
10
|
+
const ICON_SIZES = ['any'];
|
|
11
|
+
const MAX_ICON_BYTES = 2 * 1024 * 1024;
|
|
12
|
+
const SERVER_NAME = 'memory-mcp';
|
|
13
|
+
function loadPackageJson() {
|
|
14
|
+
const pkgPath = findPackageJSON('.', import.meta.url);
|
|
15
|
+
if (!pkgPath) {
|
|
16
|
+
throw new Error('Could not find package.json');
|
|
17
|
+
}
|
|
18
|
+
return JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
19
|
+
}
|
|
20
|
+
function loadPackageVersion() {
|
|
21
|
+
const { version } = loadPackageJson();
|
|
22
|
+
return version;
|
|
23
|
+
}
|
|
24
|
+
function getLocalIconData() {
|
|
25
|
+
const candidates = [
|
|
26
|
+
new URL(`../assets/${ICON_ASSET}`, import.meta.url),
|
|
27
|
+
new URL(`./assets/${ICON_ASSET}`, import.meta.url),
|
|
28
|
+
];
|
|
29
|
+
for (const candidate of candidates) {
|
|
30
|
+
try {
|
|
31
|
+
const filePath = fileURLToPath(candidate);
|
|
32
|
+
const buf = readFileSync(filePath);
|
|
33
|
+
if (buf.byteLength >= MAX_ICON_BYTES) {
|
|
34
|
+
console.warn(`Icon asset exceeds 2 MB (${buf.byteLength} bytes), skipping.`);
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return `data:${ICON_MIME};base64,${buf.toString('base64')}`;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// try next candidate
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
function createIconDescriptors() {
|
|
46
|
+
const src = getLocalIconData();
|
|
47
|
+
if (!src)
|
|
48
|
+
return undefined;
|
|
49
|
+
return [{ src, mimeType: ICON_MIME, sizes: ICON_SIZES }];
|
|
50
|
+
}
|
|
51
|
+
export function createServer(db) {
|
|
52
|
+
const icons = createIconDescriptors();
|
|
53
|
+
const server = new McpServer({
|
|
54
|
+
name: SERVER_NAME,
|
|
55
|
+
version: loadPackageVersion(),
|
|
56
|
+
...(icons ? { icons } : {}),
|
|
57
|
+
}, {
|
|
58
|
+
capabilities: {
|
|
59
|
+
logging: {},
|
|
60
|
+
completions: {},
|
|
61
|
+
resources: { subscribe: true },
|
|
62
|
+
prompts: {},
|
|
63
|
+
tools: {},
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
for (const registerTool of TOOL_REGISTRARS) {
|
|
67
|
+
registerTool(server, db);
|
|
68
|
+
}
|
|
69
|
+
registerAllResources(server, db);
|
|
70
|
+
registerAllPrompts(server);
|
|
71
|
+
return server;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-relationship.d.ts","sourceRoot":"","sources":["../../src/tools/create-relationship.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAkB9C,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,OAAO,GACV,IAAI,CAoDN"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { E_NOT_FOUND, E_UNKNOWN, getErrorMessage } from '../lib/errors.js';
|
|
2
|
+
import { createErrorResponse, createToolResponse, } from '../lib/tool-response.js';
|
|
3
|
+
import { CreateRelationshipInputSchema } from '../schemas/inputs.js';
|
|
4
|
+
import { CreateRelationshipResultSchema } from '../schemas/outputs.js';
|
|
5
|
+
import { logToolEvent, memoryExists, nowIso } from './helpers.js';
|
|
6
|
+
const INSERT_RELATIONSHIP_SQL = `INSERT OR IGNORE INTO relationships (from_hash, to_hash, relation_type, created_at)
|
|
7
|
+
VALUES (?, ?, ?, ?)`;
|
|
8
|
+
function formatMemoryNotFound(kind, hash) {
|
|
9
|
+
return `${kind} memory not found: ${hash}`;
|
|
10
|
+
}
|
|
11
|
+
export function registerCreateRelationship(server, db) {
|
|
12
|
+
server.registerTool('create_relationship', {
|
|
13
|
+
title: 'Create Relationship',
|
|
14
|
+
description: 'Create a directed labeled edge between two memories. Idempotent — re-creating an existing relationship is a no-op.',
|
|
15
|
+
inputSchema: CreateRelationshipInputSchema,
|
|
16
|
+
outputSchema: CreateRelationshipResultSchema,
|
|
17
|
+
annotations: { idempotentHint: true, openWorldHint: false },
|
|
18
|
+
}, async (params) => {
|
|
19
|
+
try {
|
|
20
|
+
if (!memoryExists(db, params.from_hash)) {
|
|
21
|
+
return createErrorResponse(E_NOT_FOUND, formatMemoryNotFound('Source', params.from_hash));
|
|
22
|
+
}
|
|
23
|
+
if (!memoryExists(db, params.to_hash)) {
|
|
24
|
+
return createErrorResponse(E_NOT_FOUND, formatMemoryNotFound('Target', params.to_hash));
|
|
25
|
+
}
|
|
26
|
+
const now = nowIso();
|
|
27
|
+
const result = db
|
|
28
|
+
.prepare(INSERT_RELATIONSHIP_SQL)
|
|
29
|
+
.run(params.from_hash, params.to_hash, params.relation_type, now);
|
|
30
|
+
const created = result.changes > 0;
|
|
31
|
+
await logToolEvent(server, 'create_relationship', {
|
|
32
|
+
fromHash: params.from_hash,
|
|
33
|
+
toHash: params.to_hash,
|
|
34
|
+
relationType: params.relation_type,
|
|
35
|
+
created,
|
|
36
|
+
});
|
|
37
|
+
return createToolResponse({
|
|
38
|
+
ok: true,
|
|
39
|
+
result: {
|
|
40
|
+
created,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
return createErrorResponse(E_UNKNOWN, getErrorMessage(err));
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=create-relationship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-relationship.js","sourceRoot":"","sources":["../../src/tools/create-relationship.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,uBAAuB,GAAG;sBACV,CAAC;AAEvB,SAAS,oBAAoB,CAAC,IAAyB,EAAE,IAAY;IACnE,OAAO,GAAG,IAAI,sBAAsB,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAiB,EACjB,EAAW;IAEX,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,oHAAoH;QACtH,WAAW,EAAE,6BAA6B;QAC1C,YAAY,EAAE,8BAA8B;QAC5C,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC5D,EACD,KAAK,EAAE,MAAsB,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,OAAO,mBAAmB,CACxB,WAAW,EACX,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CACjD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,OAAO,mBAAmB,CACxB,WAAW,EACX,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAC/C,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,EAAE;iBACd,OAAO,CAAC,uBAAuB,CAAC;iBAChC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAEpE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YAEnC,MAAM,YAAY,CAAC,MAAM,EAAE,qBAAqB,EAAE;gBAChD,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,YAAY,EAAE,MAAM,CAAC,aAAa;gBAClC,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,kBAAkB,CAAC;gBACxB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE;oBACN,OAAO;iBACR;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-memories.d.ts","sourceRoot":"","sources":["../../src/tools/delete-memories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA2B9C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAkD3E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { E_UNKNOWN, getErrorMessage } from '../lib/errors.js';
|
|
2
|
+
import { createErrorResponse, createToolResponse, } from '../lib/tool-response.js';
|
|
3
|
+
import { DeleteMemoriesInputSchema } from '../schemas/inputs.js';
|
|
4
|
+
import { BatchResultSchema } from '../schemas/outputs.js';
|
|
5
|
+
import { logToolEvent, notifyMemoryResourceUpdated, withImmediateTransaction, } from './helpers.js';
|
|
6
|
+
const DELETE_MEMORY_SQL = 'DELETE FROM memories WHERE hash = ?';
|
|
7
|
+
function summarizeBatch(items) {
|
|
8
|
+
const succeeded = items.filter((item) => item.ok).length;
|
|
9
|
+
return { succeeded, failed: items.length - succeeded };
|
|
10
|
+
}
|
|
11
|
+
export function registerDeleteMemories(server, db) {
|
|
12
|
+
server.registerTool('delete_memories', {
|
|
13
|
+
title: 'Delete Memories (Batch)',
|
|
14
|
+
description: 'Delete multiple memories by hash in a single atomic transaction. Returns per-item results indicating which hashes were deleted.',
|
|
15
|
+
inputSchema: DeleteMemoriesInputSchema,
|
|
16
|
+
outputSchema: BatchResultSchema,
|
|
17
|
+
annotations: { destructiveHint: true, openWorldHint: false },
|
|
18
|
+
}, async (params) => {
|
|
19
|
+
try {
|
|
20
|
+
const results = withImmediateTransaction(db, () => {
|
|
21
|
+
const items = [];
|
|
22
|
+
const stmt = db.prepare(DELETE_MEMORY_SQL);
|
|
23
|
+
for (const hash of params.hashes) {
|
|
24
|
+
const result = stmt.run(hash);
|
|
25
|
+
items.push({
|
|
26
|
+
hash,
|
|
27
|
+
ok: true,
|
|
28
|
+
created: false,
|
|
29
|
+
deleted: result.changes > 0,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return items;
|
|
33
|
+
});
|
|
34
|
+
const deleted = results.filter((r) => r.deleted).length;
|
|
35
|
+
const { succeeded, failed } = summarizeBatch(results);
|
|
36
|
+
await logToolEvent(server, 'delete_memories', {
|
|
37
|
+
total: params.hashes.length,
|
|
38
|
+
deleted,
|
|
39
|
+
});
|
|
40
|
+
for (const item of results) {
|
|
41
|
+
if (item.deleted) {
|
|
42
|
+
await notifyMemoryResourceUpdated(server, item.hash);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return createToolResponse({
|
|
46
|
+
ok: true,
|
|
47
|
+
result: { items: results, succeeded, failed },
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
return createErrorResponse(E_UNKNOWN, getErrorMessage(err));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=delete-memories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-memories.js","sourceRoot":"","sources":["../../src/tools/delete-memories.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,YAAY,EACZ,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAItB,MAAM,iBAAiB,GAAG,qCAAqC,CAAC;AAEhE,SAAS,cAAc,CAAC,KAAiC;IAIvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;IACzD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,EAAW;IACnE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,iIAAiI;QACnI,WAAW,EAAE,yBAAyB;QACtC,YAAY,EAAE,iBAAiB;QAC/B,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC7D,EACD,KAAK,EAAE,MAA2B,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE;gBAChD,MAAM,KAAK,GAAsB,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAU,iBAAiB,CAAC,CAAC;gBACpD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC9B,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI;wBACJ,EAAE,EAAE,IAAI;wBACR,OAAO,EAAE,KAAK;wBACd,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC;qBAC5B,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YACxD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE;gBAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;gBAC3B,OAAO;aACR,CAAC,CAAC;YAEH,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,2BAA2B,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAED,OAAO,kBAAkB,CAAC;gBACxB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;aAC9C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-memory.d.ts","sourceRoot":"","sources":["../../src/tools/delete-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAiB9C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAkCzE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { E_NOT_FOUND, E_UNKNOWN, getErrorMessage } from '../lib/errors.js';
|
|
2
|
+
import { createErrorResponse, createToolResponse, } from '../lib/tool-response.js';
|
|
3
|
+
import { DeleteMemoryInputSchema } from '../schemas/inputs.js';
|
|
4
|
+
import { DeleteResultSchema } from '../schemas/outputs.js';
|
|
5
|
+
import { logToolEvent, notifyMemoryResourceUpdated } from './helpers.js';
|
|
6
|
+
const DELETE_MEMORY_SQL = 'DELETE FROM memories WHERE hash = ?';
|
|
7
|
+
function formatMemoryNotFound(hash) {
|
|
8
|
+
return `Memory not found: ${hash}`;
|
|
9
|
+
}
|
|
10
|
+
export function registerDeleteMemory(server, db) {
|
|
11
|
+
server.registerTool('delete_memory', {
|
|
12
|
+
title: 'Delete Memory',
|
|
13
|
+
description: 'Delete a single memory by its SHA-256 hash. Also removes any relationships involving it.',
|
|
14
|
+
inputSchema: DeleteMemoryInputSchema,
|
|
15
|
+
outputSchema: DeleteResultSchema,
|
|
16
|
+
annotations: { destructiveHint: true, openWorldHint: false },
|
|
17
|
+
}, async (params) => {
|
|
18
|
+
try {
|
|
19
|
+
const result = db.prepare(DELETE_MEMORY_SQL).run(params.hash);
|
|
20
|
+
if (result.changes === 0) {
|
|
21
|
+
return createErrorResponse(E_NOT_FOUND, formatMemoryNotFound(params.hash));
|
|
22
|
+
}
|
|
23
|
+
await logToolEvent(server, 'delete', { hash: params.hash });
|
|
24
|
+
await notifyMemoryResourceUpdated(server, params.hash);
|
|
25
|
+
return createToolResponse({
|
|
26
|
+
ok: true,
|
|
27
|
+
result: { deleted: true, hash: params.hash },
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
return createErrorResponse(E_UNKNOWN, getErrorMessage(err));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=delete-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-memory.js","sourceRoot":"","sources":["../../src/tools/delete-memory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAIzE,MAAM,iBAAiB,GAAG,qCAAqC,CAAC;AAChE,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,qBAAqB,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,EAAW;IACjE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,0FAA0F;QAC5F,WAAW,EAAE,uBAAuB;QACpC,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC7D,EACD,KAAK,EAAE,MAAmB,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE9D,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,mBAAmB,CACxB,WAAW,EACX,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAClC,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAEvD,OAAO,kBAAkB,CAAC;gBACxB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;aAC7C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-relationship.d.ts","sourceRoot":"","sources":["../../src/tools/delete-relationship.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAqB9C,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,OAAO,GACV,IAAI,CAgCN"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { E_NOT_FOUND, E_UNKNOWN, getErrorMessage } from '../lib/errors.js';
|
|
2
|
+
import { createErrorResponse, createToolResponse, } from '../lib/tool-response.js';
|
|
3
|
+
import { DeleteRelationshipInputSchema } from '../schemas/inputs.js';
|
|
4
|
+
import { DeleteRelationshipResultSchema } from '../schemas/outputs.js';
|
|
5
|
+
const DELETE_RELATIONSHIP_SQL = 'DELETE FROM relationships WHERE from_hash = ? AND to_hash = ? AND relation_type = ?';
|
|
6
|
+
const DELETE_RELATIONSHIP_RESULT = { deleted: true };
|
|
7
|
+
function formatRelationship(params) {
|
|
8
|
+
return `${params.from_hash} -[${params.relation_type}]-> ${params.to_hash}`;
|
|
9
|
+
}
|
|
10
|
+
export function registerDeleteRelationship(server, db) {
|
|
11
|
+
server.registerTool('delete_relationship', {
|
|
12
|
+
title: 'Delete Relationship',
|
|
13
|
+
description: 'Remove a directed relationship between two memories.',
|
|
14
|
+
inputSchema: DeleteRelationshipInputSchema,
|
|
15
|
+
outputSchema: DeleteRelationshipResultSchema,
|
|
16
|
+
annotations: { destructiveHint: true, openWorldHint: false },
|
|
17
|
+
}, (params) => {
|
|
18
|
+
try {
|
|
19
|
+
const result = db
|
|
20
|
+
.prepare(DELETE_RELATIONSHIP_SQL)
|
|
21
|
+
.run(params.from_hash, params.to_hash, params.relation_type);
|
|
22
|
+
if (result.changes === 0) {
|
|
23
|
+
return createErrorResponse(E_NOT_FOUND, `Relationship not found: ${formatRelationship(params)}`);
|
|
24
|
+
}
|
|
25
|
+
return createToolResponse({
|
|
26
|
+
ok: true,
|
|
27
|
+
result: DELETE_RELATIONSHIP_RESULT,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
return createErrorResponse(E_UNKNOWN, getErrorMessage(err));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=delete-relationship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-relationship.js","sourceRoot":"","sources":["../../src/tools/delete-relationship.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAIvE,MAAM,uBAAuB,GAC3B,qFAAqF,CAAC;AACxF,MAAM,0BAA0B,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAErD,SAAS,kBAAkB,CACzB,MAAuE;IAEvE,OAAO,GAAG,MAAM,CAAC,SAAS,MAAM,MAAM,CAAC,aAAa,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAiB,EACjB,EAAW;IAEX,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,sDAAsD;QACnE,WAAW,EAAE,6BAA6B;QAC1C,YAAY,EAAE,8BAA8B;QAC5C,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC7D,EACD,CAAC,MAAsB,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE;iBACd,OAAO,CAAC,uBAAuB,CAAC;iBAChC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YAE/D,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,mBAAmB,CACxB,WAAW,EACX,2BAA2B,kBAAkB,CAAC,MAAM,CAAC,EAAE,CACxD,CAAC;YACJ,CAAC;YAED,OAAO,kBAAkB,CAAC;gBACxB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,0BAA0B;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-memory.d.ts","sourceRoot":"","sources":["../../src/tools/get-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAgB9C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CA2BtE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { E_NOT_FOUND, E_UNKNOWN, getErrorMessage } from '../lib/errors.js';
|
|
2
|
+
import { createErrorResponse, createToolResponse, } from '../lib/tool-response.js';
|
|
3
|
+
import { parseMemoryRow } from '../lib/types.js';
|
|
4
|
+
import { GetMemoryInputSchema } from '../schemas/inputs.js';
|
|
5
|
+
import { MemoryResultSchema } from '../schemas/outputs.js';
|
|
6
|
+
import { getMemoryRow } from './helpers.js';
|
|
7
|
+
function formatMemoryNotFound(hash) {
|
|
8
|
+
return `Memory not found: ${hash}`;
|
|
9
|
+
}
|
|
10
|
+
export function registerGetMemory(server, db) {
|
|
11
|
+
server.registerTool('get_memory', {
|
|
12
|
+
title: 'Get Memory',
|
|
13
|
+
description: 'Retrieve a single memory by its SHA-256 hash.',
|
|
14
|
+
inputSchema: GetMemoryInputSchema,
|
|
15
|
+
outputSchema: MemoryResultSchema,
|
|
16
|
+
annotations: { readOnlyHint: true, openWorldHint: false },
|
|
17
|
+
}, (params) => {
|
|
18
|
+
try {
|
|
19
|
+
const row = getMemoryRow(db, params.hash);
|
|
20
|
+
if (!row) {
|
|
21
|
+
return createErrorResponse(E_NOT_FOUND, formatMemoryNotFound(params.hash));
|
|
22
|
+
}
|
|
23
|
+
return createToolResponse({ ok: true, result: parseMemoryRow(row) });
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
return createErrorResponse(E_UNKNOWN, getErrorMessage(err));
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=get-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-memory.js","sourceRoot":"","sources":["../../src/tools/get-memory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,qBAAqB,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,EAAW;IAC9D,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,oBAAoB;QACjC,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EACD,CAAC,MAAgB,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAE1C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,mBAAmB,CACxB,WAAW,EACX,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAClC,CAAC;YACJ,CAAC;YAED,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-relationships.d.ts","sourceRoot":"","sources":["../../src/tools/get-relationships.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAoD9C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CA4C7E"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { E_NOT_FOUND, E_UNKNOWN, getErrorMessage } from '../lib/errors.js';
|
|
2
|
+
import { createErrorResponse, createToolResponse, } from '../lib/tool-response.js';
|
|
3
|
+
import { parseTags } from '../lib/types.js';
|
|
4
|
+
import { GetRelationshipsInputSchema } from '../schemas/inputs.js';
|
|
5
|
+
import { RelationshipResultSchema } from '../schemas/outputs.js';
|
|
6
|
+
import { memoryExists } from './helpers.js';
|
|
7
|
+
const DIRECTIONS_BY_MODE = {
|
|
8
|
+
outgoing: ['outgoing'],
|
|
9
|
+
incoming: ['incoming'],
|
|
10
|
+
both: ['outgoing', 'incoming'],
|
|
11
|
+
};
|
|
12
|
+
function loadRelationships(db, hash, direction) {
|
|
13
|
+
const joinCondition = direction === 'outgoing' ? 'r.to_hash = m.hash' : 'r.from_hash = m.hash';
|
|
14
|
+
const whereColumn = direction === 'outgoing' ? 'r.from_hash' : 'r.to_hash';
|
|
15
|
+
return db
|
|
16
|
+
.prepare(`SELECT r.from_hash, r.to_hash, r.relation_type, r.created_at,
|
|
17
|
+
m.hash AS linked_hash, m.content AS linked_content, m.tags AS linked_tags
|
|
18
|
+
FROM relationships r
|
|
19
|
+
JOIN memories m ON ${joinCondition}
|
|
20
|
+
WHERE ${whereColumn} = ?
|
|
21
|
+
ORDER BY r.created_at DESC`)
|
|
22
|
+
.all(hash);
|
|
23
|
+
}
|
|
24
|
+
export function registerGetRelationships(server, db) {
|
|
25
|
+
server.registerTool('get_relationships', {
|
|
26
|
+
title: 'Get Relationships',
|
|
27
|
+
description: 'Retrieve all relationships for a memory, with the related memory inlined. Filter by direction (outgoing | incoming | both).',
|
|
28
|
+
inputSchema: GetRelationshipsInputSchema,
|
|
29
|
+
outputSchema: RelationshipResultSchema,
|
|
30
|
+
annotations: { readOnlyHint: true, openWorldHint: false },
|
|
31
|
+
}, (params) => {
|
|
32
|
+
try {
|
|
33
|
+
if (!memoryExists(db, params.hash)) {
|
|
34
|
+
return createErrorResponse(E_NOT_FOUND, `Memory not found: ${params.hash}`);
|
|
35
|
+
}
|
|
36
|
+
const directions = DIRECTIONS_BY_MODE[params.direction];
|
|
37
|
+
const rows = directions.flatMap((direction) => loadRelationships(db, params.hash, direction));
|
|
38
|
+
const relationships = rows.map((r) => ({
|
|
39
|
+
from_hash: r.from_hash,
|
|
40
|
+
to_hash: r.to_hash,
|
|
41
|
+
relation_type: r.relation_type,
|
|
42
|
+
created_at: r.created_at,
|
|
43
|
+
linked_hash: r.linked_hash,
|
|
44
|
+
linked_content: r.linked_content,
|
|
45
|
+
linked_tags: parseTags(r.linked_tags),
|
|
46
|
+
}));
|
|
47
|
+
return createToolResponse({
|
|
48
|
+
ok: true,
|
|
49
|
+
result: { relationships, count: relationships.length },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
return createErrorResponse(E_UNKNOWN, getErrorMessage(err));
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=get-relationships.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-relationships.js","sourceRoot":"","sources":["../../src/tools/get-relationships.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAa5C,MAAM,kBAAkB,GAGpB;IACF,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;CAC/B,CAAC;AAEF,SAAS,iBAAiB,CACxB,EAAW,EACX,IAAY,EACZ,SAAgC;IAEhC,MAAM,aAAa,GACjB,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAC3E,MAAM,WAAW,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3E,OAAO,EAAE;SACN,OAAO,CACN;;;4BAGsB,aAAa;eAC1B,WAAW;kCACQ,CAC7B;SACA,GAAG,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,EAAW;IACrE,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,6HAA6H;QAC/H,WAAW,EAAE,2BAA2B;QACxC,YAAY,EAAE,wBAAwB;QACtC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EACD,CAAC,MAAmB,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,mBAAmB,CACxB,WAAW,EACX,qBAAqB,MAAM,CAAC,IAAI,EAAE,CACnC,CAAC;YACJ,CAAC;YAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAC5C,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAC9C,CAAC;YAEF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;aACtC,CAAC,CAAC,CAAC;YAEJ,OAAO,kBAAkB,CAAC;gBACxB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE;aACvD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { TypedDb } from '../db/typed.js';
|
|
3
|
+
import type { MemoryRow } from '../lib/types.js';
|
|
4
|
+
type LogLevel = 'debug' | 'info' | 'notice' | 'warning' | 'error';
|
|
5
|
+
export declare function logToolEvent(server: McpServer, logger: string, data: unknown, level?: LogLevel): Promise<void>;
|
|
6
|
+
export declare function nowIso(): string;
|
|
7
|
+
export declare function normalizeMemoryType(memoryType?: string): string;
|
|
8
|
+
export declare function getMemoryRow(db: TypedDb, hash: string): MemoryRow | undefined;
|
|
9
|
+
export declare function memoryExists(db: TypedDb, hash: string): boolean;
|
|
10
|
+
export declare function withImmediateTransaction<T>(db: TypedDb, action: () => T): T;
|
|
11
|
+
export declare function notifyMemoryResourceUpdated(server: McpServer, hash: string): Promise<void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAOlE,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,KAAK,GAAE,QAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE7E;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAK/D;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAU3E;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const DEFAULT_MEMORY_TYPE = 'general';
|
|
2
|
+
const MEMORY_RESOURCE_PREFIX = 'memory://memories/';
|
|
3
|
+
const SELECT_MEMORY_BY_HASH_SQL = 'SELECT * FROM memories WHERE hash = ?';
|
|
4
|
+
const SELECT_MEMORY_HASH_SQL = 'SELECT hash FROM memories WHERE hash = ?';
|
|
5
|
+
export async function logToolEvent(server, logger, data, level = 'info') {
|
|
6
|
+
if (!server.isConnected()) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
await server.sendLoggingMessage({ level, logger, data });
|
|
10
|
+
}
|
|
11
|
+
export function nowIso() {
|
|
12
|
+
return new Date().toISOString();
|
|
13
|
+
}
|
|
14
|
+
export function normalizeMemoryType(memoryType) {
|
|
15
|
+
return memoryType ?? DEFAULT_MEMORY_TYPE;
|
|
16
|
+
}
|
|
17
|
+
export function getMemoryRow(db, hash) {
|
|
18
|
+
return db.prepare(SELECT_MEMORY_BY_HASH_SQL).get(hash);
|
|
19
|
+
}
|
|
20
|
+
export function memoryExists(db, hash) {
|
|
21
|
+
return (db.prepare(SELECT_MEMORY_HASH_SQL).get(hash) !==
|
|
22
|
+
undefined);
|
|
23
|
+
}
|
|
24
|
+
export function withImmediateTransaction(db, action) {
|
|
25
|
+
db.exec('BEGIN IMMEDIATE');
|
|
26
|
+
try {
|
|
27
|
+
const result = action();
|
|
28
|
+
db.exec('COMMIT');
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
db.exec('ROLLBACK');
|
|
33
|
+
throw err;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export async function notifyMemoryResourceUpdated(server, hash) {
|
|
37
|
+
if (!server.isConnected()) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
await server.server.sendResourceUpdated({
|
|
42
|
+
uri: `${MEMORY_RESOURCE_PREFIX}${hash}`,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// best-effort notification
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"AAOA,MAAM,mBAAmB,GAAG,SAAS,CAAC;AACtC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AACpD,MAAM,yBAAyB,GAAG,uCAAuC,CAAC;AAC1E,MAAM,sBAAsB,GAAG,0CAA0C,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAiB,EACjB,MAAc,EACd,IAAa,EACb,QAAkB,MAAM;IAExB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAmB;IACrD,OAAO,UAAU,IAAI,mBAAmB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAW,EAAE,IAAY;IACpD,OAAO,EAAE,CAAC,OAAO,CAAY,yBAAyB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAW,EAAE,IAAY;IACpD,OAAO,CACL,EAAE,CAAC,OAAO,CAA0B,sBAAsB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QACrE,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAI,EAAW,EAAE,MAAe;IACtE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;QACxB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAiB,EACjB,IAAY;IAEZ,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;YACtC,GAAG,EAAE,GAAG,sBAAsB,GAAG,IAAI,EAAE;SACxC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { registerCreateRelationship } from './create-relationship.js';
|
|
2
|
+
import { registerDeleteMemories } from './delete-memories.js';
|
|
3
|
+
import { registerDeleteMemory } from './delete-memory.js';
|
|
4
|
+
import { registerDeleteRelationship } from './delete-relationship.js';
|
|
5
|
+
import { registerGetMemory } from './get-memory.js';
|
|
6
|
+
import { registerGetRelationships } from './get-relationships.js';
|
|
7
|
+
import { registerMemoryStats } from './memory-stats.js';
|
|
8
|
+
import { registerRecall } from './recall.js';
|
|
9
|
+
import { registerRetrieveContext } from './retrieve-context.js';
|
|
10
|
+
import { registerSearchMemories } from './search-memories.js';
|
|
11
|
+
import { registerStoreMemories } from './store-memories.js';
|
|
12
|
+
import { registerStoreMemory } from './store-memory.js';
|
|
13
|
+
import { registerUpdateMemory } from './update-memory.js';
|
|
14
|
+
export declare const TOOL_REGISTRARS: readonly [typeof registerStoreMemory, typeof registerGetMemory, typeof registerUpdateMemory, typeof registerDeleteMemory, typeof registerMemoryStats, typeof registerStoreMemories, typeof registerDeleteMemories, typeof registerSearchMemories, typeof registerCreateRelationship, typeof registerDeleteRelationship, typeof registerGetRelationships, typeof registerRecall, typeof registerRetrieveContext];
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,eAAe,iZAclB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { registerCreateRelationship } from './create-relationship.js';
|
|
2
|
+
import { registerDeleteMemories } from './delete-memories.js';
|
|
3
|
+
import { registerDeleteMemory } from './delete-memory.js';
|
|
4
|
+
import { registerDeleteRelationship } from './delete-relationship.js';
|
|
5
|
+
import { registerGetMemory } from './get-memory.js';
|
|
6
|
+
import { registerGetRelationships } from './get-relationships.js';
|
|
7
|
+
import { registerMemoryStats } from './memory-stats.js';
|
|
8
|
+
import { registerRecall } from './recall.js';
|
|
9
|
+
import { registerRetrieveContext } from './retrieve-context.js';
|
|
10
|
+
import { registerSearchMemories } from './search-memories.js';
|
|
11
|
+
import { registerStoreMemories } from './store-memories.js';
|
|
12
|
+
import { registerStoreMemory } from './store-memory.js';
|
|
13
|
+
import { registerUpdateMemory } from './update-memory.js';
|
|
14
|
+
export const TOOL_REGISTRARS = [
|
|
15
|
+
registerStoreMemory,
|
|
16
|
+
registerGetMemory,
|
|
17
|
+
registerUpdateMemory,
|
|
18
|
+
registerDeleteMemory,
|
|
19
|
+
registerMemoryStats,
|
|
20
|
+
registerStoreMemories,
|
|
21
|
+
registerDeleteMemories,
|
|
22
|
+
registerSearchMemories,
|
|
23
|
+
registerCreateRelationship,
|
|
24
|
+
registerDeleteRelationship,
|
|
25
|
+
registerGetRelationships,
|
|
26
|
+
registerRecall,
|
|
27
|
+
registerRetrieveContext,
|
|
28
|
+
];
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,mBAAmB;IACnB,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,0BAA0B;IAC1B,0BAA0B;IAC1B,wBAAwB;IACxB,cAAc;IACd,uBAAuB;CACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-stats.d.ts","sourceRoot":"","sources":["../../src/tools/memory-stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAmC9C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAgDxE"}
|