@vheins/local-memory-mcp 0.1.44 ā 0.2.1
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/dashboard/dashboard.test.js +11 -3
- package/dist/dashboard/dashboard.test.js.map +1 -1
- package/dist/dashboard/public/app.js +541 -93
- package/dist/dashboard/public/index.html +1070 -718
- package/dist/dashboard/server.js +110 -16
- package/dist/dashboard/server.js.map +1 -1
- package/dist/e2e.test.js +25 -7
- package/dist/e2e.test.js.map +1 -1
- package/dist/prompts/registry.d.ts +12 -0
- package/dist/prompts/registry.d.ts.map +1 -1
- package/dist/prompts/registry.js +31 -0
- package/dist/prompts/registry.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +23 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/index.test.js +2 -0
- package/dist/resources/index.test.js.map +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +5 -0
- package/dist/router.js.map +1 -1
- package/dist/router.test.js +1 -1
- package/dist/router.test.js.map +1 -1
- package/dist/server.js +10 -10
- package/dist/server.js.map +1 -1
- package/dist/storage/sqlite.d.ts +6 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +156 -21
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/storage/sqlite.test.js +2 -0
- package/dist/storage/sqlite.test.js.map +1 -1
- package/dist/storage/vectors.d.ts.map +1 -1
- package/dist/storage/vectors.js +0 -2
- package/dist/storage/vectors.js.map +1 -1
- package/dist/tasks.e2e.test.d.ts +2 -0
- package/dist/tasks.e2e.test.d.ts.map +1 -0
- package/dist/tasks.e2e.test.js +119 -0
- package/dist/tasks.e2e.test.js.map +1 -0
- package/dist/tools/memory.store.d.ts.map +1 -1
- package/dist/tools/memory.store.js +2 -0
- package/dist/tools/memory.store.js.map +1 -1
- package/dist/tools/schemas.d.ts +274 -0
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +128 -1
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/task.manage.d.ts +16 -0
- package/dist/tools/task.manage.d.ts.map +1 -0
- package/dist/tools/task.manage.js +128 -0
- package/dist/tools/task.manage.js.map +1 -0
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +47 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/v2-features.test.js +7 -1
- package/dist/v2-features.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/search_memory_example.d.ts +0 -3
- package/dist/search_memory_example.d.ts.map +0 -1
- package/dist/search_memory_example.js +0 -56
- package/dist/search_memory_example.js.map +0 -1
- package/dist/server_robustness.test.d.ts +0 -2
- package/dist/server_robustness.test.d.ts.map +0 -1
- package/dist/server_robustness.test.js +0 -107
- package/dist/server_robustness.test.js.map +0 -1
- package/dist/store_memory_example.d.ts +0 -3
- package/dist/store_memory_example.d.ts.map +0 -1
- package/dist/store_memory_example.js +0 -69
- package/dist/store_memory_example.js.map +0 -1
- package/dist/test_quotes_client.d.ts +0 -3
- package/dist/test_quotes_client.d.ts.map +0 -1
- package/dist/test_quotes_client.js +0 -72
- package/dist/test_quotes_client.js.map +0 -1
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeAll } from "vitest";
|
|
2
|
-
import { spawn } from "child_process";
|
|
3
|
-
import path from "path";
|
|
4
|
-
import fs from "fs";
|
|
5
|
-
describe("Server Robustness & Notification Handling", () => {
|
|
6
|
-
let server;
|
|
7
|
-
const serverPath = path.resolve(__dirname, "../dist/server.js");
|
|
8
|
-
beforeAll(async () => {
|
|
9
|
-
// Ensure the server is built
|
|
10
|
-
if (!fs.existsSync(serverPath)) {
|
|
11
|
-
throw new Error("Server not built. Run npm run build first.");
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
it("should handle initialize request and respond", async () => {
|
|
15
|
-
server = spawn("node", [serverPath]);
|
|
16
|
-
const responsePromise = new Promise((resolve) => {
|
|
17
|
-
server.stdout?.on("data", (data) => {
|
|
18
|
-
const lines = data.toString().split("\n");
|
|
19
|
-
for (const line of lines) {
|
|
20
|
-
if (!line.trim())
|
|
21
|
-
continue;
|
|
22
|
-
const msg = JSON.parse(line);
|
|
23
|
-
if (msg.id === 1)
|
|
24
|
-
resolve(msg);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
server.stdin?.write(JSON.stringify({
|
|
29
|
-
jsonrpc: "2.0",
|
|
30
|
-
id: 1,
|
|
31
|
-
method: "initialize",
|
|
32
|
-
params: {}
|
|
33
|
-
}) + "\n");
|
|
34
|
-
const response = await responsePromise;
|
|
35
|
-
expect(response.id).toBe(1);
|
|
36
|
-
expect(response.result).toBeDefined();
|
|
37
|
-
expect(response.result.protocolVersion).toBe("2024-11-05");
|
|
38
|
-
server.kill();
|
|
39
|
-
});
|
|
40
|
-
it("should silently ignore notifications/cancelled", async () => {
|
|
41
|
-
server = spawn("node", [serverPath]);
|
|
42
|
-
let receivedResponse = false;
|
|
43
|
-
server.stdout?.on("data", (data) => {
|
|
44
|
-
const line = data.toString().trim();
|
|
45
|
-
if (line) {
|
|
46
|
-
try {
|
|
47
|
-
const msg = JSON.parse(line);
|
|
48
|
-
// Ignore standard responses to initialize if they happen
|
|
49
|
-
if (msg.method !== "notifications/initialized") {
|
|
50
|
-
receivedResponse = true;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
catch (e) { }
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
// Send a notification
|
|
57
|
-
server.stdin?.write(JSON.stringify({
|
|
58
|
-
jsonrpc: "2.0",
|
|
59
|
-
method: "notifications/cancelled",
|
|
60
|
-
params: { requestId: 1 }
|
|
61
|
-
}) + "\n");
|
|
62
|
-
// Wait a bit to ensure no response is sent
|
|
63
|
-
await new Promise(r => setTimeout(r, 500));
|
|
64
|
-
expect(receivedResponse).toBe(false);
|
|
65
|
-
server.kill();
|
|
66
|
-
});
|
|
67
|
-
it("should respond with error to unknown request but NOT to unknown notification", async () => {
|
|
68
|
-
server = spawn("node", [serverPath]);
|
|
69
|
-
const responses = [];
|
|
70
|
-
server.stdout?.on("data", (data) => {
|
|
71
|
-
const lines = data.toString().split("\n");
|
|
72
|
-
for (const line of lines) {
|
|
73
|
-
if (!line.trim())
|
|
74
|
-
continue;
|
|
75
|
-
try {
|
|
76
|
-
responses.push(JSON.parse(line));
|
|
77
|
-
}
|
|
78
|
-
catch (e) { }
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
// 1. Unknown notification
|
|
82
|
-
server.stdin?.write(JSON.stringify({
|
|
83
|
-
jsonrpc: "2.0",
|
|
84
|
-
method: "unknown/notification",
|
|
85
|
-
params: {}
|
|
86
|
-
}) + "\n");
|
|
87
|
-
// 2. Unknown request
|
|
88
|
-
server.stdin?.write(JSON.stringify({
|
|
89
|
-
jsonrpc: "2.0",
|
|
90
|
-
id: 2,
|
|
91
|
-
method: "unknown/request",
|
|
92
|
-
params: {}
|
|
93
|
-
}) + "\n");
|
|
94
|
-
// Wait for response to the request
|
|
95
|
-
await new Promise(r => setTimeout(r, 500));
|
|
96
|
-
// Should only have 1 response (for the request, not the notification)
|
|
97
|
-
// Actually, it might have more if initialize was called, but here we didn't call it.
|
|
98
|
-
const errorResponse = responses.find(r => r.id === 2);
|
|
99
|
-
expect(errorResponse).toBeDefined();
|
|
100
|
-
expect(errorResponse.error).toBeDefined();
|
|
101
|
-
expect(errorResponse.error.message).toContain("Unsupported method");
|
|
102
|
-
// Ensure no response for the notification
|
|
103
|
-
expect(responses.length).toBe(1);
|
|
104
|
-
server.kill();
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
//# sourceMappingURL=server_robustness.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server_robustness.test.js","sourceRoot":"","sources":["../src/server_robustness.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store_memory_example.d.ts","sourceRoot":"","sources":["../src/store_memory_example.ts"],"names":[],"mappings":""}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { MCPClient } from "./mcp/client.js";
|
|
3
|
-
async function storeMemoryExample() {
|
|
4
|
-
const client = new MCPClient();
|
|
5
|
-
try {
|
|
6
|
-
console.log("Connecting to MCP server...");
|
|
7
|
-
await client.start();
|
|
8
|
-
console.log("Connected! ā");
|
|
9
|
-
// Example 1: Store a code fact
|
|
10
|
-
console.log("\nš Storing a code fact...");
|
|
11
|
-
const result1 = await client.callTool("memory-store", {
|
|
12
|
-
type: "code_fact",
|
|
13
|
-
content: "React hooks should be called at the top level of React functions, not inside loops, conditions, or nested functions.",
|
|
14
|
-
importance: 5,
|
|
15
|
-
scope: {
|
|
16
|
-
repo: "react-examples",
|
|
17
|
-
language: "typescript"
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
console.log(`ā Stored with ID: ${result1.id}`);
|
|
21
|
-
// Example 2: Store a decision
|
|
22
|
-
console.log("\nš Storing a decision...");
|
|
23
|
-
const result2 = await client.callTool("memory-store", {
|
|
24
|
-
type: "decision",
|
|
25
|
-
content: "Decided to use TypeScript for all new projects due to better type safety and developer experience.",
|
|
26
|
-
importance: 4,
|
|
27
|
-
scope: {
|
|
28
|
-
repo: "company-policies",
|
|
29
|
-
folder: "decisions"
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
console.log(`ā Stored with ID: ${result2.id}`);
|
|
33
|
-
// Example 3: Store a mistake
|
|
34
|
-
console.log("\nš Storing a mistake...");
|
|
35
|
-
const result3 = await client.callTool("memory-store", {
|
|
36
|
-
type: "mistake",
|
|
37
|
-
content: "Forgot to handle error cases in API calls, causing crashes in production. Always implement proper error handling.",
|
|
38
|
-
importance: 5,
|
|
39
|
-
scope: {
|
|
40
|
-
repo: "api-client",
|
|
41
|
-
language: "javascript"
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
console.log(`ā Stored with ID: ${result3.id}`);
|
|
45
|
-
// Example 4: Store a pattern
|
|
46
|
-
console.log("\nš Storing a pattern...");
|
|
47
|
-
const result4 = await client.callTool("memory-store", {
|
|
48
|
-
type: "pattern",
|
|
49
|
-
content: "Use the Repository pattern for data access to abstract database operations and make code more testable.",
|
|
50
|
-
importance: 3,
|
|
51
|
-
scope: {
|
|
52
|
-
repo: "architecture-patterns",
|
|
53
|
-
language: "csharp"
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
console.log(`ā Stored with ID: ${result4.id}`);
|
|
57
|
-
console.log("\nš All memories stored successfully!");
|
|
58
|
-
console.log("\nYou can now search for these memories using memory-search tool.");
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
console.error("ā Error:", error);
|
|
62
|
-
}
|
|
63
|
-
finally {
|
|
64
|
-
client.stop();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
// Run the example
|
|
68
|
-
storeMemoryExample();
|
|
69
|
-
//# sourceMappingURL=store_memory_example.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store_memory_example.js","sourceRoot":"","sources":["../src/store_memory_example.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,KAAK,UAAU,kBAAkB;IAC/B,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAE/B,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE5B,+BAA+B;QAC/B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;YACpD,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,sHAAsH;YAC/H,UAAU,EAAE,CAAC;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,QAAQ,EAAE,YAAY;aACvB;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAE/C,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;YACpD,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,oGAAoG;YAC7G,UAAU,EAAE,CAAC;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,WAAW;aACpB;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAE/C,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;YACpD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,mHAAmH;YAC5H,UAAU,EAAE,CAAC;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,YAAY;aACvB;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAE/C,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;YACpD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,yGAAyG;YAClH,UAAU,EAAE,CAAC;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,uBAAuB;gBAC7B,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IAEnF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,kBAAkB,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test_quotes_client.d.ts","sourceRoot":"","sources":["../src/test_quotes_client.ts"],"names":[],"mappings":""}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { MCPClient } from "./mcp/client.js";
|
|
3
|
-
// Array of random quotes
|
|
4
|
-
const QUOTES = [
|
|
5
|
-
"The only way to do great work is to love what you do. - Steve Jobs",
|
|
6
|
-
"In the middle of difficulty lies opportunity. - Albert Einstein",
|
|
7
|
-
"Believe you can and you're halfway there. - Theodore Roosevelt",
|
|
8
|
-
"The future belongs to those who believe in the beauty of their dreams. - Eleanor Roosevelt",
|
|
9
|
-
"You miss 100% of the shots you don't take. - Wayne Gretzky",
|
|
10
|
-
"The best way to predict the future is to create it. - Peter Drucker",
|
|
11
|
-
"Life is what happens to you while you're busy making other plans. - John Lennon",
|
|
12
|
-
"The only impossible journey is the one you never begin. - Tony Robbins",
|
|
13
|
-
"Innovation distinguishes between a leader and a follower. - Steve Jobs",
|
|
14
|
-
"The mind is everything. What you think you become. - Buddha"
|
|
15
|
-
];
|
|
16
|
-
// Function to generate random importance (1-5)
|
|
17
|
-
function randomImportance() {
|
|
18
|
-
return Math.floor(Math.random() * 5) + 1;
|
|
19
|
-
}
|
|
20
|
-
async function testRandomQuotes() {
|
|
21
|
-
const client = new MCPClient();
|
|
22
|
-
try {
|
|
23
|
-
console.log("Starting MCP client...");
|
|
24
|
-
await client.start();
|
|
25
|
-
console.log("MCP client connected!");
|
|
26
|
-
console.log("\nStoring random quotes...");
|
|
27
|
-
// Store quotes
|
|
28
|
-
for (let i = 0; i < QUOTES.length; i++) {
|
|
29
|
-
const importance = randomImportance();
|
|
30
|
-
const quote = QUOTES[i];
|
|
31
|
-
try {
|
|
32
|
-
const result = await client.callTool("memory-store", {
|
|
33
|
-
type: "code_fact",
|
|
34
|
-
content: quote,
|
|
35
|
-
importance: importance,
|
|
36
|
-
scope: { repo: "quotes-test" }
|
|
37
|
-
});
|
|
38
|
-
console.log(`ā Stored quote ${i + 1}: ${quote.substring(0, 50)}... (importance: ${importance})`);
|
|
39
|
-
console.log(` ID: ${result.id}`);
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
console.error(`ā Failed to store quote ${i + 1}:`, error);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
console.log("\nSearching for stored quotes...");
|
|
46
|
-
// Search for quotes
|
|
47
|
-
try {
|
|
48
|
-
const searchResult = await client.callTool("memory-search", {
|
|
49
|
-
query: "quotes",
|
|
50
|
-
repo: "quotes-test",
|
|
51
|
-
limit: 10
|
|
52
|
-
});
|
|
53
|
-
console.log(`Found ${searchResult.results.length} quotes:`);
|
|
54
|
-
searchResult.results.forEach((memory, index) => {
|
|
55
|
-
console.log(`${index + 1}. [${memory.importance}] ${memory.content}`);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
console.error("ā Failed to search quotes:", error);
|
|
60
|
-
}
|
|
61
|
-
console.log("\nTest completed successfully! š");
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
console.error("Test failed:", error);
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
client.stop();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
// Run the test
|
|
71
|
-
testRandomQuotes();
|
|
72
|
-
//# sourceMappingURL=test_quotes_client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test_quotes_client.js","sourceRoot":"","sources":["../src/test_quotes_client.ts"],"names":[],"mappings":"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"}
|