@vheins/local-memory-mcp 0.4.8 → 0.4.11
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/dist/capabilities.d.ts +7 -7
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +7 -7
- package/dist/capabilities.js.map +1 -1
- package/dist/completion.d.ts +25 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +127 -0
- package/dist/completion.js.map +1 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +8 -1
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/elicitation.d.ts +24 -0
- package/dist/mcp/elicitation.d.ts.map +1 -0
- package/dist/mcp/elicitation.js +13 -0
- package/dist/mcp/elicitation.js.map +1 -0
- package/dist/mcp/sampling.d.ts +69 -0
- package/dist/mcp/sampling.d.ts.map +1 -0
- package/dist/mcp/sampling.js +13 -0
- package/dist/mcp/sampling.js.map +1 -0
- package/dist/mcp/session.d.ts +28 -0
- package/dist/mcp/session.d.ts.map +1 -0
- package/dist/mcp/session.js +106 -0
- package/dist/mcp/session.js.map +1 -0
- package/dist/prompts/registry.d.ts +55 -0
- package/dist/prompts/registry.d.ts.map +1 -1
- package/dist/prompts/registry.js +455 -7
- package/dist/prompts/registry.js.map +1 -1
- package/dist/resources/index.d.ts +55 -4
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +222 -52
- package/dist/resources/index.js.map +1 -1
- package/dist/router.d.ts +11 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +151 -34
- package/dist/router.js.map +1 -1
- package/dist/server.js +212 -13
- package/dist/server.js.map +1 -1
- package/dist/tests/client.test.d.ts +2 -0
- package/dist/tests/client.test.d.ts.map +1 -0
- package/dist/tests/client.test.js +130 -0
- package/dist/tests/client.test.js.map +1 -0
- package/dist/tests/dashboard.test.d.ts +2 -0
- package/dist/tests/dashboard.test.d.ts.map +1 -0
- package/dist/tests/dashboard.test.js +370 -0
- package/dist/tests/dashboard.test.js.map +1 -0
- package/dist/tests/e2e.test.d.ts +2 -0
- package/dist/tests/e2e.test.d.ts.map +1 -0
- package/dist/tests/e2e.test.js +250 -0
- package/dist/tests/e2e.test.js.map +1 -0
- package/dist/tests/index.test.d.ts +2 -0
- package/dist/tests/index.test.d.ts.map +1 -0
- package/dist/tests/index.test.js +185 -0
- package/dist/tests/index.test.js.map +1 -0
- package/dist/tests/logger.test.d.ts +2 -0
- package/dist/tests/logger.test.d.ts.map +1 -0
- package/dist/tests/logger.test.js +104 -0
- package/dist/tests/logger.test.js.map +1 -0
- package/dist/tests/memory.bulk.test.d.ts +2 -0
- package/dist/tests/memory.bulk.test.d.ts.map +1 -0
- package/dist/tests/memory.bulk.test.js +52 -0
- package/dist/tests/memory.bulk.test.js.map +1 -0
- package/dist/tests/memory.search.test.d.ts +2 -0
- package/dist/tests/memory.search.test.d.ts.map +1 -0
- package/dist/tests/memory.search.test.js +181 -0
- package/dist/tests/memory.search.test.js.map +1 -0
- package/dist/tests/normalize.test.d.ts +2 -0
- package/dist/tests/normalize.test.d.ts.map +1 -0
- package/dist/tests/normalize.test.js +181 -0
- package/dist/tests/normalize.test.js.map +1 -0
- package/dist/tests/query-expander.test.d.ts +2 -0
- package/dist/tests/query-expander.test.d.ts.map +1 -0
- package/dist/tests/query-expander.test.js +33 -0
- package/dist/tests/query-expander.test.js.map +1 -0
- package/dist/tests/router.test.d.ts +2 -0
- package/dist/tests/router.test.d.ts.map +1 -0
- package/dist/tests/router.test.js +470 -0
- package/dist/tests/router.test.js.map +1 -0
- package/dist/tests/sqlite.test.d.ts +2 -0
- package/dist/tests/sqlite.test.d.ts.map +1 -0
- package/dist/tests/sqlite.test.js +367 -0
- package/dist/tests/sqlite.test.js.map +1 -0
- package/dist/tests/tasks-search.test.d.ts +2 -0
- package/dist/tests/tasks-search.test.d.ts.map +1 -0
- package/dist/tests/tasks-search.test.js +154 -0
- package/dist/tests/tasks-search.test.js.map +1 -0
- package/dist/tests/tasks-transition.test.d.ts +2 -0
- package/dist/tests/tasks-transition.test.d.ts.map +1 -0
- package/dist/tests/tasks-transition.test.js +174 -0
- package/dist/tests/tasks-transition.test.js.map +1 -0
- package/dist/tests/tasks.bulk.test.d.ts +2 -0
- package/dist/tests/tasks.bulk.test.d.ts.map +1 -0
- package/dist/tests/tasks.bulk.test.js +254 -0
- package/dist/tests/tasks.bulk.test.js.map +1 -0
- package/dist/tests/tasks.e2e.test.d.ts +2 -0
- package/dist/tests/tasks.e2e.test.d.ts.map +1 -0
- package/dist/tests/tasks.e2e.test.js +289 -0
- package/dist/tests/tasks.e2e.test.js.map +1 -0
- package/dist/tests/tasks.pending-limit-refined.test.d.ts +2 -0
- package/dist/tests/tasks.pending-limit-refined.test.d.ts.map +1 -0
- package/dist/tests/tasks.pending-limit-refined.test.js +72 -0
- package/dist/tests/tasks.pending-limit-refined.test.js.map +1 -0
- package/dist/tests/v2-features.test.d.ts +2 -0
- package/dist/tests/v2-features.test.d.ts.map +1 -0
- package/dist/tests/v2-features.test.js +209 -0
- package/dist/tests/v2-features.test.js.map +1 -0
- package/dist/tools/memory.bulk-delete.d.ts +1 -7
- package/dist/tools/memory.bulk-delete.d.ts.map +1 -1
- package/dist/tools/memory.bulk-delete.js +30 -8
- package/dist/tools/memory.bulk-delete.js.map +1 -1
- package/dist/tools/memory.delete.d.ts.map +1 -1
- package/dist/tools/memory.delete.js +18 -1
- package/dist/tools/memory.delete.js.map +1 -1
- package/dist/tools/memory.recap.d.ts.map +1 -1
- package/dist/tools/memory.recap.js +24 -1
- package/dist/tools/memory.recap.js.map +1 -1
- package/dist/tools/memory.search.d.ts.map +1 -1
- package/dist/tools/memory.search.js +16 -1
- package/dist/tools/memory.search.js.map +1 -1
- package/dist/tools/memory.store.d.ts.map +1 -1
- package/dist/tools/memory.store.js +31 -1
- package/dist/tools/memory.store.js.map +1 -1
- package/dist/tools/memory.summarize.d.ts.map +1 -1
- package/dist/tools/memory.summarize.js +19 -1
- package/dist/tools/memory.summarize.js.map +1 -1
- package/dist/tools/memory.synthesize.d.ts +14 -0
- package/dist/tools/memory.synthesize.d.ts.map +1 -0
- package/dist/tools/memory.synthesize.js +228 -0
- package/dist/tools/memory.synthesize.js.map +1 -0
- package/dist/tools/memory.update.d.ts.map +1 -1
- package/dist/tools/memory.update.js +19 -1
- package/dist/tools/memory.update.js.map +1 -1
- package/dist/tools/schemas.d.ts +1750 -263
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +482 -14
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/task.bulk-manage.d.ts +1 -7
- package/dist/tools/task.bulk-manage.d.ts.map +1 -1
- package/dist/tools/task.bulk-manage.js +60 -15
- package/dist/tools/task.bulk-manage.js.map +1 -1
- package/dist/tools/task.manage.d.ts +12 -28
- package/dist/tools/task.manage.d.ts.map +1 -1
- package/dist/tools/task.manage.js +198 -31
- package/dist/tools/task.manage.js.map +1 -1
- package/dist/utils/completion.d.ts +2 -0
- package/dist/utils/completion.d.ts.map +1 -0
- package/dist/utils/completion.js +28 -0
- package/dist/utils/completion.js.map +1 -0
- package/dist/utils/logger.d.ts +18 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +101 -29
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/mcp-response.d.ts +50 -0
- package/dist/utils/mcp-response.d.ts.map +1 -1
- package/dist/utils/mcp-response.js +54 -7
- package/dist/utils/mcp-response.js.map +1 -1
- package/dist/utils/normalize.d.ts +5 -0
- package/dist/utils/normalize.d.ts.map +1 -1
- package/dist/utils/normalize.js +11 -0
- package/dist/utils/normalize.js.map +1 -1
- package/dist/utils/pagination.d.ts +6 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +32 -0
- package/dist/utils/pagination.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,17 +1,68 @@
|
|
|
1
1
|
import { SQLiteStore } from "../storage/sqlite.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { SessionContext } from "../mcp/session.js";
|
|
3
|
+
export declare function listResources(session?: SessionContext, params?: {
|
|
4
|
+
cursor?: string;
|
|
5
|
+
limit?: number;
|
|
6
|
+
}): {
|
|
7
|
+
[x: string]: string | ({
|
|
4
8
|
uri: string;
|
|
5
9
|
name: string;
|
|
10
|
+
title: string;
|
|
6
11
|
description: string;
|
|
7
12
|
mimeType: string;
|
|
8
|
-
|
|
13
|
+
annotations: {
|
|
14
|
+
audience: string[];
|
|
15
|
+
priority: number;
|
|
16
|
+
lastModified: string;
|
|
17
|
+
};
|
|
18
|
+
size?: undefined;
|
|
19
|
+
} | {
|
|
20
|
+
uri: string;
|
|
21
|
+
name: string;
|
|
22
|
+
title: string;
|
|
23
|
+
description: string;
|
|
24
|
+
mimeType: string;
|
|
25
|
+
size: number;
|
|
26
|
+
annotations: {
|
|
27
|
+
audience: string[];
|
|
28
|
+
priority: number;
|
|
29
|
+
lastModified: string;
|
|
30
|
+
};
|
|
31
|
+
})[] | undefined;
|
|
32
|
+
nextCursor: string | undefined;
|
|
33
|
+
};
|
|
34
|
+
export declare function listResourceTemplates(params?: {
|
|
35
|
+
cursor?: string;
|
|
36
|
+
limit?: number;
|
|
37
|
+
}): {
|
|
38
|
+
[x: string]: string | {
|
|
39
|
+
uriTemplate: string;
|
|
40
|
+
name: string;
|
|
41
|
+
title: string;
|
|
42
|
+
description: string;
|
|
43
|
+
mimeType: string;
|
|
44
|
+
annotations: {
|
|
45
|
+
audience: string[];
|
|
46
|
+
priority: number;
|
|
47
|
+
};
|
|
48
|
+
}[] | undefined;
|
|
49
|
+
nextCursor: string | undefined;
|
|
9
50
|
};
|
|
10
|
-
export declare function
|
|
51
|
+
export declare function completeResourceArgument(resourceUri: string, argumentName: string, argumentValue: string, _contextArguments: Record<string, unknown>, dataSources: {
|
|
52
|
+
repos: string[];
|
|
53
|
+
tags: string[];
|
|
54
|
+
}): string[];
|
|
55
|
+
export declare function readResource(uri: string, db: SQLiteStore, session?: SessionContext): {
|
|
11
56
|
contents: {
|
|
12
57
|
uri: string;
|
|
13
58
|
mimeType: string;
|
|
14
59
|
text: any;
|
|
60
|
+
size: number;
|
|
61
|
+
annotations: {
|
|
62
|
+
audience: string[];
|
|
63
|
+
priority: number;
|
|
64
|
+
lastModified: any;
|
|
65
|
+
};
|
|
15
66
|
}[];
|
|
16
67
|
};
|
|
17
68
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQnD,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CnG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;EA4DjF;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,WAAW,EAAE;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,YAqBF;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc;;;;;;;;;;;;EAsLlF"}
|
package/dist/resources/index.js
CHANGED
|
@@ -1,62 +1,169 @@
|
|
|
1
1
|
import { logger } from "../utils/logger.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
import { rankCompletionValues } from "../utils/completion.js";
|
|
3
|
+
import { decodeCursor, encodeCursor } from "../utils/pagination.js";
|
|
4
|
+
const DEFAULT_PAGE_SIZE = 25;
|
|
5
|
+
const MAX_PAGE_SIZE = 100;
|
|
6
|
+
export function listResources(session, params) {
|
|
7
|
+
const resources = [
|
|
8
|
+
{
|
|
9
|
+
uri: "memory://index",
|
|
10
|
+
name: "Active Memory Index",
|
|
11
|
+
title: "Active Memory Index",
|
|
12
|
+
description: "List of all active memory entries across projects",
|
|
13
|
+
mimeType: "application/json",
|
|
14
|
+
annotations: {
|
|
15
|
+
audience: ["assistant"],
|
|
16
|
+
priority: 0.85,
|
|
17
|
+
lastModified: new Date().toISOString(),
|
|
10
18
|
},
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
uri: "memory://{id}",
|
|
22
|
+
name: "Memory Detail",
|
|
23
|
+
title: "Memory Detail",
|
|
24
|
+
description: "Full content and statistics for a specific memory UUID",
|
|
25
|
+
mimeType: "application/json",
|
|
26
|
+
annotations: {
|
|
27
|
+
audience: ["assistant"],
|
|
28
|
+
priority: 0.7,
|
|
29
|
+
lastModified: new Date().toISOString(),
|
|
16
30
|
},
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
uri: "session://roots",
|
|
34
|
+
name: "Session Roots",
|
|
35
|
+
title: "Session Roots",
|
|
36
|
+
description: session?.roots.length
|
|
37
|
+
? "Active workspace roots provided by the MCP client"
|
|
38
|
+
: "No active workspace roots were provided by the MCP client",
|
|
39
|
+
mimeType: "application/json",
|
|
40
|
+
size: Buffer.byteLength(JSON.stringify({ roots: session?.roots ?? [] }), "utf8"),
|
|
41
|
+
annotations: {
|
|
42
|
+
audience: ["assistant"],
|
|
43
|
+
priority: 1,
|
|
44
|
+
lastModified: new Date().toISOString(),
|
|
22
45
|
},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
46
|
+
}
|
|
47
|
+
];
|
|
48
|
+
return paginateEntries("resources", resources, params);
|
|
49
|
+
}
|
|
50
|
+
export function listResourceTemplates(params) {
|
|
51
|
+
const templates = [
|
|
52
|
+
{
|
|
53
|
+
uriTemplate: "memory://index?repo={repo}",
|
|
54
|
+
name: "Project Memory Index",
|
|
55
|
+
title: "Project Memory Index",
|
|
56
|
+
description: "Metadata for all active memories in a specific project",
|
|
57
|
+
mimeType: "application/json",
|
|
58
|
+
annotations: {
|
|
59
|
+
audience: ["assistant"],
|
|
60
|
+
priority: 0.7,
|
|
28
61
|
},
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
uriTemplate: "memory://tags/{tag}",
|
|
65
|
+
name: "Memories by Tech Stack",
|
|
66
|
+
title: "Memories by Tech Stack",
|
|
67
|
+
description: "Retrieve best practices and decisions by technology tag (e.g., filament, react)",
|
|
68
|
+
mimeType: "application/json",
|
|
69
|
+
annotations: {
|
|
70
|
+
audience: ["assistant"],
|
|
71
|
+
priority: 0.55,
|
|
34
72
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
uriTemplate: "memory://summary/{repo}",
|
|
76
|
+
name: "Project Summary",
|
|
77
|
+
title: "Project Summary",
|
|
78
|
+
description: "High-level summary of architectural decisions for a repository",
|
|
79
|
+
mimeType: "text/plain",
|
|
80
|
+
annotations: {
|
|
81
|
+
audience: ["assistant"],
|
|
82
|
+
priority: 0.95,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
uriTemplate: "tasks://current?repo={repo}",
|
|
87
|
+
name: "Current Tasks",
|
|
88
|
+
title: "Current Tasks",
|
|
89
|
+
description: "List of all active tasks (pending, in_progress, blocked) for a specific project",
|
|
90
|
+
mimeType: "application/json",
|
|
91
|
+
annotations: {
|
|
92
|
+
audience: ["assistant"],
|
|
93
|
+
priority: 0.9,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
uriTemplate: "memory://search/{base64_query}?repo={repo}",
|
|
98
|
+
name: "Semantic Memory Search",
|
|
99
|
+
title: "Semantic Memory Search",
|
|
100
|
+
description: "Run a semantic search over memories using a base64-encoded query",
|
|
101
|
+
mimeType: "application/json",
|
|
102
|
+
annotations: {
|
|
103
|
+
audience: ["assistant"],
|
|
104
|
+
priority: 0.6,
|
|
105
|
+
},
|
|
106
|
+
}
|
|
107
|
+
];
|
|
108
|
+
return paginateEntries("resourceTemplates", templates, params);
|
|
43
109
|
}
|
|
44
|
-
export function
|
|
110
|
+
export function completeResourceArgument(resourceUri, argumentName, argumentValue, _contextArguments, dataSources) {
|
|
111
|
+
if (resourceUri === "memory://index?repo={repo}"
|
|
112
|
+
|| resourceUri === "memory://summary/{repo}"
|
|
113
|
+
|| resourceUri === "tasks://current?repo={repo}") {
|
|
114
|
+
if (argumentName !== "repo") {
|
|
115
|
+
throw invalidCompletionParams(`Unknown resource argument "${argumentName}" for "${resourceUri}"`);
|
|
116
|
+
}
|
|
117
|
+
return rankCompletionValues(dataSources.repos, argumentValue);
|
|
118
|
+
}
|
|
119
|
+
if (resourceUri === "memory://tags/{tag}") {
|
|
120
|
+
if (argumentName !== "tag") {
|
|
121
|
+
throw invalidCompletionParams(`Unknown resource argument "${argumentName}" for "${resourceUri}"`);
|
|
122
|
+
}
|
|
123
|
+
return rankCompletionValues(dataSources.tags, argumentValue);
|
|
124
|
+
}
|
|
125
|
+
throw invalidCompletionParams(`Unknown resource template: ${resourceUri}`);
|
|
126
|
+
}
|
|
127
|
+
export function readResource(uri, db, session) {
|
|
45
128
|
logger.info("[MCP] resource.read", { uri });
|
|
129
|
+
if (uri === "session://roots") {
|
|
130
|
+
const payload = JSON.stringify({ roots: session?.roots ?? [] }, null, 2);
|
|
131
|
+
return {
|
|
132
|
+
contents: [
|
|
133
|
+
{
|
|
134
|
+
uri,
|
|
135
|
+
mimeType: "application/json",
|
|
136
|
+
text: payload,
|
|
137
|
+
size: Buffer.byteLength(payload, "utf8"),
|
|
138
|
+
annotations: {
|
|
139
|
+
audience: ["assistant"],
|
|
140
|
+
priority: 1,
|
|
141
|
+
lastModified: new Date().toISOString(),
|
|
142
|
+
},
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
};
|
|
146
|
+
}
|
|
46
147
|
// 6. Current Tasks: tasks://current?repo={repo}
|
|
47
148
|
if (uri.startsWith("tasks://current?")) {
|
|
48
149
|
const parsed = new URL(uri.replace("tasks://", "http://tasks/"));
|
|
49
150
|
const repo = parsed.searchParams.get("repo");
|
|
50
151
|
if (!repo)
|
|
51
|
-
throw
|
|
52
|
-
// Include backlog, pending, in_progress, and blocked by default for 'current' view
|
|
152
|
+
throw resourceNotFound("Repo parameter is required for tasks://current", uri);
|
|
53
153
|
const tasks = db.getTasksByRepo(repo).filter(t => ["backlog", "pending", "in_progress", "blocked"].includes(t.status));
|
|
154
|
+
const payload = JSON.stringify(tasks, null, 2);
|
|
54
155
|
return {
|
|
55
156
|
contents: [
|
|
56
157
|
{
|
|
57
158
|
uri,
|
|
58
159
|
mimeType: "application/json",
|
|
59
|
-
text:
|
|
160
|
+
text: payload,
|
|
161
|
+
size: Buffer.byteLength(payload, "utf8"),
|
|
162
|
+
annotations: {
|
|
163
|
+
audience: ["assistant"],
|
|
164
|
+
priority: 0.9,
|
|
165
|
+
lastModified: deriveLastModifiedFromCollection(tasks.map((task) => task.updated_at)),
|
|
166
|
+
},
|
|
60
167
|
}
|
|
61
168
|
]
|
|
62
169
|
};
|
|
@@ -68,13 +175,20 @@ export function readResource(uri, db) {
|
|
|
68
175
|
const includeArchived = parsed.searchParams.get("archived") === "true";
|
|
69
176
|
const entries = repo
|
|
70
177
|
? db.searchByRepo(repo, { limit: 50, includeArchived })
|
|
71
|
-
: db.listRecent(50);
|
|
178
|
+
: db.listRecent(50);
|
|
179
|
+
const payload = JSON.stringify(entries, null, 2);
|
|
72
180
|
return {
|
|
73
181
|
contents: [
|
|
74
182
|
{
|
|
75
183
|
uri,
|
|
76
184
|
mimeType: "application/json",
|
|
77
|
-
text:
|
|
185
|
+
text: payload,
|
|
186
|
+
size: Buffer.byteLength(payload, "utf8"),
|
|
187
|
+
annotations: {
|
|
188
|
+
audience: ["assistant"],
|
|
189
|
+
priority: repo ? 0.85 : 0.7,
|
|
190
|
+
lastModified: deriveLastModifiedFromCollection(entries.map((entry) => entry.updated_at || entry.created_at)),
|
|
191
|
+
},
|
|
78
192
|
}
|
|
79
193
|
]
|
|
80
194
|
};
|
|
@@ -82,18 +196,24 @@ export function readResource(uri, db) {
|
|
|
82
196
|
// 2. Tag Affinity Resource: memory://tags/{tag}
|
|
83
197
|
if (uri.startsWith("memory://tags/")) {
|
|
84
198
|
const tag = uri.replace("memory://tags/", "");
|
|
85
|
-
// Search across all repos for this specific technology tag
|
|
86
199
|
const entries = db.searchByRepo("", {
|
|
87
200
|
tags: [tag],
|
|
88
201
|
limit: 50,
|
|
89
202
|
includeArchived: false
|
|
90
203
|
});
|
|
204
|
+
const payload = JSON.stringify({ tag, count: entries.length, entries }, null, 2);
|
|
91
205
|
return {
|
|
92
206
|
contents: [
|
|
93
207
|
{
|
|
94
208
|
uri,
|
|
95
209
|
mimeType: "application/json",
|
|
96
|
-
text:
|
|
210
|
+
text: payload,
|
|
211
|
+
size: Buffer.byteLength(payload, "utf8"),
|
|
212
|
+
annotations: {
|
|
213
|
+
audience: ["assistant"],
|
|
214
|
+
priority: 0.55,
|
|
215
|
+
lastModified: deriveLastModifiedFromCollection(entries.map((entry) => entry.updated_at || entry.created_at)),
|
|
216
|
+
},
|
|
97
217
|
}
|
|
98
218
|
]
|
|
99
219
|
};
|
|
@@ -102,35 +222,47 @@ export function readResource(uri, db) {
|
|
|
102
222
|
if (uri.startsWith("memory://summary/")) {
|
|
103
223
|
const repo = uri.replace("memory://summary/", "");
|
|
104
224
|
const summary = db.getSummary(repo);
|
|
225
|
+
const text = summary?.summary || `No summary available for repository: ${repo}`;
|
|
105
226
|
return {
|
|
106
227
|
contents: [
|
|
107
228
|
{
|
|
108
229
|
uri,
|
|
109
230
|
mimeType: "text/plain",
|
|
110
|
-
text
|
|
231
|
+
text,
|
|
232
|
+
size: Buffer.byteLength(text, "utf8"),
|
|
233
|
+
annotations: {
|
|
234
|
+
audience: ["assistant"],
|
|
235
|
+
priority: 0.95,
|
|
236
|
+
lastModified: summary?.updated_at || new Date().toISOString(),
|
|
237
|
+
},
|
|
111
238
|
}
|
|
112
239
|
]
|
|
113
240
|
};
|
|
114
241
|
}
|
|
115
|
-
// 4. View memory by ID: memory://{uuid}
|
|
116
242
|
const idMatch = uri.match(/^memory:\/\/([0-9a-f-]{36})$/i);
|
|
117
243
|
if (idMatch) {
|
|
118
244
|
const id = idMatch[1];
|
|
119
|
-
const entry = db.getByIdWithStats(id);
|
|
245
|
+
const entry = db.getByIdWithStats(id);
|
|
120
246
|
if (!entry) {
|
|
121
|
-
throw
|
|
247
|
+
throw resourceNotFound(`Memory with ID ${id} not found.`, uri);
|
|
122
248
|
}
|
|
249
|
+
const payload = JSON.stringify(entry, null, 2);
|
|
123
250
|
return {
|
|
124
251
|
contents: [
|
|
125
252
|
{
|
|
126
253
|
uri,
|
|
127
254
|
mimeType: "application/json",
|
|
128
|
-
text:
|
|
255
|
+
text: payload,
|
|
256
|
+
size: Buffer.byteLength(payload, "utf8"),
|
|
257
|
+
annotations: {
|
|
258
|
+
audience: ["assistant"],
|
|
259
|
+
priority: 0.75,
|
|
260
|
+
lastModified: entry.updated_at || entry.created_at,
|
|
261
|
+
},
|
|
129
262
|
}
|
|
130
263
|
]
|
|
131
264
|
};
|
|
132
265
|
}
|
|
133
|
-
// 5. Semantic Search via URI: memory://search/{base64_query}?repo={repo}
|
|
134
266
|
if (uri.startsWith("memory://search/")) {
|
|
135
267
|
const parts = uri.replace("memory://search/", "").split('?');
|
|
136
268
|
const encodedQuery = parts[0];
|
|
@@ -138,16 +270,54 @@ export function readResource(uri, db) {
|
|
|
138
270
|
const parsed = new URL("http://memory/" + (parts[1] || ""));
|
|
139
271
|
const repo = parsed.searchParams.get("repo") || "";
|
|
140
272
|
const results = db.searchBySimilarity(query, repo, 10);
|
|
273
|
+
const payload = JSON.stringify({ query, repo, results }, null, 2);
|
|
141
274
|
return {
|
|
142
275
|
contents: [
|
|
143
276
|
{
|
|
144
277
|
uri,
|
|
145
278
|
mimeType: "application/json",
|
|
146
|
-
text:
|
|
279
|
+
text: payload,
|
|
280
|
+
size: Buffer.byteLength(payload, "utf8"),
|
|
281
|
+
annotations: {
|
|
282
|
+
audience: ["assistant"],
|
|
283
|
+
priority: 0.65,
|
|
284
|
+
lastModified: deriveLastModifiedFromCollection(results.map((entry) => entry.updated_at || entry.created_at)),
|
|
285
|
+
},
|
|
147
286
|
}
|
|
148
287
|
]
|
|
149
288
|
};
|
|
150
289
|
}
|
|
151
|
-
throw
|
|
290
|
+
throw resourceNotFound(`Unknown resource URI: ${uri}`, uri);
|
|
291
|
+
}
|
|
292
|
+
function paginateEntries(key, entries, params) {
|
|
293
|
+
const limit = normalizeLimit(params?.limit);
|
|
294
|
+
const offset = decodeCursor(params?.cursor);
|
|
295
|
+
const sliced = entries.slice(offset, offset + limit);
|
|
296
|
+
const nextOffset = offset + sliced.length;
|
|
297
|
+
return {
|
|
298
|
+
[key]: sliced,
|
|
299
|
+
nextCursor: nextOffset < entries.length ? encodeCursor(nextOffset) : undefined,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
function normalizeLimit(limit) {
|
|
303
|
+
if (typeof limit !== "number" || !Number.isFinite(limit)) {
|
|
304
|
+
return DEFAULT_PAGE_SIZE;
|
|
305
|
+
}
|
|
306
|
+
return Math.min(MAX_PAGE_SIZE, Math.max(1, Math.trunc(limit)));
|
|
307
|
+
}
|
|
308
|
+
function deriveLastModifiedFromCollection(values) {
|
|
309
|
+
const normalized = values.filter((value) => typeof value === "string" && value.length > 0);
|
|
310
|
+
return normalized.sort().at(-1) ?? new Date().toISOString();
|
|
311
|
+
}
|
|
312
|
+
function resourceNotFound(message, uri) {
|
|
313
|
+
const error = new Error(message);
|
|
314
|
+
error.code = -32002;
|
|
315
|
+
error.data = { uri };
|
|
316
|
+
return error;
|
|
317
|
+
}
|
|
318
|
+
function invalidCompletionParams(message) {
|
|
319
|
+
const error = new Error(message);
|
|
320
|
+
error.code = -32602;
|
|
321
|
+
return error;
|
|
152
322
|
}
|
|
153
323
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
|
package/dist/router.d.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
+
import { SessionContext } from "./mcp/session.js";
|
|
1
2
|
import { SQLiteStore } from "./storage/sqlite.js";
|
|
2
3
|
import { VectorStore } from "./types.js";
|
|
3
|
-
|
|
4
|
+
import { SamplingRequestHandler } from "./mcp/sampling.js";
|
|
5
|
+
import { ElicitationRequestHandler } from "./mcp/elicitation.js";
|
|
6
|
+
type RouterOptions = {
|
|
7
|
+
getSessionContext?: () => SessionContext;
|
|
8
|
+
sampleMessage?: SamplingRequestHandler;
|
|
9
|
+
elicit?: ElicitationRequestHandler;
|
|
10
|
+
onResourcesMutated?: (uris: string[]) => void;
|
|
11
|
+
};
|
|
12
|
+
export declare function createRouter(db: SQLiteStore, vectors: VectorStore, options?: RouterOptions): (method: string, params: any, signal?: AbortSignal, onProgress?: (progress: number, total?: number) => void) => Promise<any>;
|
|
13
|
+
export {};
|
|
4
14
|
//# sourceMappingURL=router.d.ts.map
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAA+D,MAAM,kBAAkB,CAAC;AAK/G,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAkBzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAIjE,KAAK,aAAa,GAAG;IACnB,iBAAiB,CAAC,EAAE,MAAM,cAAc,CAAC;IACzC,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF,wBAAgB,YAAY,CAC1B,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAkK9H"}
|