mnemosyne-core 2.0.2 → 2.0.3
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/cli/index.js +148 -24
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +147 -24
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.js +55 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +54 -21
- package/dist/index.mjs.map +1 -1
- package/dist/mcp/index.js +19 -2
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/index.mjs +26 -2
- package/dist/mcp/index.mjs.map +1 -1
- package/dist/server/api.js +48 -16
- package/dist/server/api.js.map +1 -1
- package/dist/server/api.mjs +48 -16
- package/dist/server/api.mjs.map +1 -1
- package/dist/server/index.js +56 -22
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +55 -22
- package/dist/server/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -122,14 +122,18 @@ function loadConfig() {
|
|
|
122
122
|
}
|
|
123
123
|
function getVersion() {
|
|
124
124
|
try {
|
|
125
|
-
const
|
|
125
|
+
const { readFileSync: readFileSync6 } = __require("fs");
|
|
126
|
+
const { resolve: resolve9 } = __require("path");
|
|
127
|
+
const pkg = JSON.parse(readFileSync6(resolve9(__dirname, "../package.json"), "utf-8"));
|
|
126
128
|
return pkg.version;
|
|
127
129
|
} catch {
|
|
128
130
|
try {
|
|
129
|
-
const
|
|
131
|
+
const { readFileSync: readFileSync6 } = __require("fs");
|
|
132
|
+
const { resolve: resolve9 } = __require("path");
|
|
133
|
+
const pkg = JSON.parse(readFileSync6(resolve9(process.cwd(), "package.json"), "utf-8"));
|
|
130
134
|
return pkg.version;
|
|
131
135
|
} catch {
|
|
132
|
-
return "2.0.
|
|
136
|
+
return "2.0.3";
|
|
133
137
|
}
|
|
134
138
|
}
|
|
135
139
|
}
|
|
@@ -158,11 +162,20 @@ function mergeDeep(target, source) {
|
|
|
158
162
|
}
|
|
159
163
|
return output;
|
|
160
164
|
}
|
|
161
|
-
|
|
165
|
+
function getConfig() {
|
|
166
|
+
if (!_config) _config = loadConfig();
|
|
167
|
+
return _config;
|
|
168
|
+
}
|
|
169
|
+
var _config, CONFIG;
|
|
162
170
|
var init_config = __esm({
|
|
163
171
|
"src/config.ts"() {
|
|
164
172
|
"use strict";
|
|
165
|
-
|
|
173
|
+
_config = null;
|
|
174
|
+
CONFIG = new Proxy({}, {
|
|
175
|
+
get(_, prop) {
|
|
176
|
+
return getConfig()[prop];
|
|
177
|
+
}
|
|
178
|
+
});
|
|
166
179
|
}
|
|
167
180
|
});
|
|
168
181
|
|
|
@@ -247,11 +260,14 @@ var init_embedder = __esm({
|
|
|
247
260
|
import { createHash } from "crypto";
|
|
248
261
|
import { mkdirSync, existsSync as existsSync2, writeFileSync, readFileSync as readFileSync2 } from "fs";
|
|
249
262
|
import { resolve as resolve2, dirname } from "path";
|
|
263
|
+
function getFilesDir() {
|
|
264
|
+
return resolve2(process.cwd(), CONFIG.storage.files_dir);
|
|
265
|
+
}
|
|
250
266
|
function ensureDir(path) {
|
|
251
267
|
if (!existsSync2(path)) mkdirSync(path, { recursive: true });
|
|
252
268
|
}
|
|
253
269
|
function hashPath(hash) {
|
|
254
|
-
return resolve2(
|
|
270
|
+
return resolve2(getFilesDir(), hash.slice(0, 2), hash.slice(2));
|
|
255
271
|
}
|
|
256
272
|
function computeHash(buffer) {
|
|
257
273
|
return createHash("sha256").update(buffer).digest("hex");
|
|
@@ -275,12 +291,10 @@ function getFile(hash) {
|
|
|
275
291
|
function fileExists(hash) {
|
|
276
292
|
return existsSync2(hashPath(hash));
|
|
277
293
|
}
|
|
278
|
-
var FILES_DIR;
|
|
279
294
|
var init_files = __esm({
|
|
280
295
|
"src/server/files.ts"() {
|
|
281
296
|
"use strict";
|
|
282
297
|
init_config();
|
|
283
|
-
FILES_DIR = resolve2(process.cwd(), CONFIG.storage.files_dir);
|
|
284
298
|
}
|
|
285
299
|
});
|
|
286
300
|
|
|
@@ -10854,7 +10868,7 @@ function getVersion2() {
|
|
|
10854
10868
|
const pkg = JSON.parse(readFileSync6(resolve9(process.cwd(), "package.json"), "utf-8"));
|
|
10855
10869
|
return pkg.version;
|
|
10856
10870
|
} catch {
|
|
10857
|
-
return "2.0.
|
|
10871
|
+
return "2.0.3";
|
|
10858
10872
|
}
|
|
10859
10873
|
}
|
|
10860
10874
|
}
|
|
@@ -11420,6 +11434,23 @@ var TOOLS = [
|
|
|
11420
11434
|
];
|
|
11421
11435
|
|
|
11422
11436
|
// src/mcp/server.ts
|
|
11437
|
+
function getVersion3() {
|
|
11438
|
+
try {
|
|
11439
|
+
const { readFileSync: readFileSync6 } = __require("fs");
|
|
11440
|
+
const { resolve: resolve9 } = __require("path");
|
|
11441
|
+
const pkg = JSON.parse(readFileSync6(resolve9(__dirname, "../../package.json"), "utf-8"));
|
|
11442
|
+
return pkg.version;
|
|
11443
|
+
} catch {
|
|
11444
|
+
try {
|
|
11445
|
+
const { readFileSync: readFileSync6 } = __require("fs");
|
|
11446
|
+
const { resolve: resolve9 } = __require("path");
|
|
11447
|
+
const pkg = JSON.parse(readFileSync6(resolve9(process.cwd(), "package.json"), "utf-8"));
|
|
11448
|
+
return pkg.version;
|
|
11449
|
+
} catch {
|
|
11450
|
+
return "2.0.3";
|
|
11451
|
+
}
|
|
11452
|
+
}
|
|
11453
|
+
}
|
|
11423
11454
|
var McpServer = class {
|
|
11424
11455
|
store;
|
|
11425
11456
|
toolMap = /* @__PURE__ */ new Map();
|
|
@@ -11440,7 +11471,7 @@ var McpServer = class {
|
|
|
11440
11471
|
return this.ok(req.id, {
|
|
11441
11472
|
protocolVersion: "2024-11-05",
|
|
11442
11473
|
capabilities: { tools: {}, resources: {}, prompts: {} },
|
|
11443
|
-
serverInfo: { name: "mnemosyne-mcp", version:
|
|
11474
|
+
serverInfo: { name: "mnemosyne-mcp", version: getVersion3() }
|
|
11444
11475
|
});
|
|
11445
11476
|
case "tools/list":
|
|
11446
11477
|
return this.ok(req.id, {
|
|
@@ -11467,7 +11498,7 @@ var McpServer = class {
|
|
|
11467
11498
|
getManifest() {
|
|
11468
11499
|
return {
|
|
11469
11500
|
name: "Mnemosyne",
|
|
11470
|
-
version:
|
|
11501
|
+
version: getVersion3(),
|
|
11471
11502
|
description: "Knowledge base MCP server for projects, atoms, blocks, and bonds.",
|
|
11472
11503
|
protocol: "mcp",
|
|
11473
11504
|
transport: ["stdio", "sse"],
|
|
@@ -12379,7 +12410,7 @@ import { createHash as createHash2 } from "crypto";
|
|
|
12379
12410
|
import { readFileSync as readFileSync4, existsSync as existsSync5, readdirSync as readdirSync2, statSync as statSync2 } from "fs";
|
|
12380
12411
|
import { resolve as resolve6 } from "path";
|
|
12381
12412
|
var DB_PATH = resolve6(process.cwd(), "data", "nexus.db");
|
|
12382
|
-
var
|
|
12413
|
+
var FILES_DIR = resolve6(process.cwd(), "data", "files");
|
|
12383
12414
|
function sha256File(path) {
|
|
12384
12415
|
return createHash2("sha256").update(readFileSync4(path)).digest("hex");
|
|
12385
12416
|
}
|
|
@@ -12399,11 +12430,11 @@ function sha256Dir(dir) {
|
|
|
12399
12430
|
function buildMnemosyneExport(projectId, projectName) {
|
|
12400
12431
|
const zip = new AdmZip2();
|
|
12401
12432
|
zip.addLocalFile(DB_PATH, "", "nexus.db");
|
|
12402
|
-
if (existsSync5(
|
|
12403
|
-
zip.addLocalFolder(
|
|
12433
|
+
if (existsSync5(FILES_DIR)) {
|
|
12434
|
+
zip.addLocalFolder(FILES_DIR, "files");
|
|
12404
12435
|
}
|
|
12405
12436
|
const dbChecksum = sha256File(DB_PATH);
|
|
12406
|
-
const filesChecksum = existsSync5(
|
|
12437
|
+
const filesChecksum = existsSync5(FILES_DIR) ? sha256Dir(FILES_DIR) : "";
|
|
12407
12438
|
const manifest = {
|
|
12408
12439
|
version: "1.1",
|
|
12409
12440
|
app: "Mnemosyne",
|
|
@@ -12534,7 +12565,7 @@ var PKG_VERSION = (() => {
|
|
|
12534
12565
|
const pkg = JSON.parse(__require("fs").readFileSync(__require("path").resolve(__dirname, "../../../package.json"), "utf-8"));
|
|
12535
12566
|
return pkg.version;
|
|
12536
12567
|
} catch {
|
|
12537
|
-
return "2.0.
|
|
12568
|
+
return "2.0.3";
|
|
12538
12569
|
}
|
|
12539
12570
|
})();
|
|
12540
12571
|
function handleHealth(store, pathname, method, res) {
|
|
@@ -12806,18 +12837,20 @@ import { resolve as resolve8 } from "path";
|
|
|
12806
12837
|
init_config();
|
|
12807
12838
|
import Database2 from "better-sqlite3";
|
|
12808
12839
|
import { resolve as resolve7 } from "path";
|
|
12809
|
-
|
|
12840
|
+
function getDbPath() {
|
|
12841
|
+
return process.env.MNEMOSYNE_DB_PATH || resolve7(process.cwd(), CONFIG.database.path);
|
|
12842
|
+
}
|
|
12810
12843
|
var db = null;
|
|
12811
12844
|
var vecEnabled = false;
|
|
12812
12845
|
function getDb() {
|
|
12813
12846
|
if (!db) {
|
|
12814
|
-
db = new Database2(
|
|
12847
|
+
db = new Database2(getDbPath());
|
|
12815
12848
|
db.pragma("journal_mode = WAL");
|
|
12816
12849
|
db.pragma("foreign_keys = ON");
|
|
12817
12850
|
db.pragma("synchronous = NORMAL");
|
|
12818
12851
|
try {
|
|
12819
|
-
const
|
|
12820
|
-
db.loadExtension(
|
|
12852
|
+
const { getLoadablePath } = __require("sqlite-vec");
|
|
12853
|
+
db.loadExtension(getLoadablePath());
|
|
12821
12854
|
vecEnabled = true;
|
|
12822
12855
|
console.log("[DB] sqlite-vec extension loaded");
|
|
12823
12856
|
} catch (err) {
|
|
@@ -12893,7 +12926,7 @@ var MnemosyneServer = class {
|
|
|
12893
12926
|
const wss = new import_websocket_server.default({ server: this.httpServer });
|
|
12894
12927
|
this.wsHandler = new WebSocketHandler(wss, this.store);
|
|
12895
12928
|
}
|
|
12896
|
-
const version = cfg?.server?.version || "2.0.
|
|
12929
|
+
const version = cfg?.server?.version || "2.0.3";
|
|
12897
12930
|
this.httpServer.listen(port, () => {
|
|
12898
12931
|
console.log(`Mnemosyne v${version} \u2014 port ${port}`);
|
|
12899
12932
|
console.log(`Dashboard: http://${host}:${port}/dashboard`);
|