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/server/index.mjs
CHANGED
|
@@ -3736,22 +3736,26 @@ function loadConfig() {
|
|
|
3736
3736
|
return defaultConfig();
|
|
3737
3737
|
}
|
|
3738
3738
|
}
|
|
3739
|
-
function
|
|
3739
|
+
function getVersion2() {
|
|
3740
3740
|
try {
|
|
3741
|
-
const
|
|
3741
|
+
const { readFileSync: readFileSync5 } = __require("fs");
|
|
3742
|
+
const { resolve: resolve7 } = __require("path");
|
|
3743
|
+
const pkg = JSON.parse(readFileSync5(resolve7(__dirname, "../package.json"), "utf-8"));
|
|
3742
3744
|
return pkg.version;
|
|
3743
3745
|
} catch {
|
|
3744
3746
|
try {
|
|
3745
|
-
const
|
|
3747
|
+
const { readFileSync: readFileSync5 } = __require("fs");
|
|
3748
|
+
const { resolve: resolve7 } = __require("path");
|
|
3749
|
+
const pkg = JSON.parse(readFileSync5(resolve7(process.cwd(), "package.json"), "utf-8"));
|
|
3746
3750
|
return pkg.version;
|
|
3747
3751
|
} catch {
|
|
3748
|
-
return "2.0.
|
|
3752
|
+
return "2.0.3";
|
|
3749
3753
|
}
|
|
3750
3754
|
}
|
|
3751
3755
|
}
|
|
3752
3756
|
function defaultConfig() {
|
|
3753
3757
|
return {
|
|
3754
|
-
server: { port: 7321, host: "localhost", version:
|
|
3758
|
+
server: { port: 7321, host: "localhost", version: getVersion2() },
|
|
3755
3759
|
database: { path: "data/nexus.db", wal_mode: true, vec_extension_path: "data/vec0" },
|
|
3756
3760
|
storage: { files_dir: "data/files", max_file_size_mb: 50, backups_dir: "data/backups", backup_interval_hours: 24, max_backups: 7 },
|
|
3757
3761
|
limits: { max_atoms_per_project: 1e4, rate_limit_requests: 100, rate_limit_window_ms: 6e4 },
|
|
@@ -3774,11 +3778,20 @@ function mergeDeep(target, source) {
|
|
|
3774
3778
|
}
|
|
3775
3779
|
return output;
|
|
3776
3780
|
}
|
|
3777
|
-
|
|
3781
|
+
function getConfig() {
|
|
3782
|
+
if (!_config) _config = loadConfig();
|
|
3783
|
+
return _config;
|
|
3784
|
+
}
|
|
3785
|
+
var _config, CONFIG;
|
|
3778
3786
|
var init_config = __esm({
|
|
3779
3787
|
"src/config.ts"() {
|
|
3780
3788
|
"use strict";
|
|
3781
|
-
|
|
3789
|
+
_config = null;
|
|
3790
|
+
CONFIG = new Proxy({}, {
|
|
3791
|
+
get(_, prop) {
|
|
3792
|
+
return getConfig()[prop];
|
|
3793
|
+
}
|
|
3794
|
+
});
|
|
3782
3795
|
}
|
|
3783
3796
|
});
|
|
3784
3797
|
|
|
@@ -3863,11 +3876,14 @@ var init_embedder = __esm({
|
|
|
3863
3876
|
import { createHash } from "crypto";
|
|
3864
3877
|
import { mkdirSync, existsSync as existsSync2, writeFileSync, readFileSync as readFileSync2 } from "fs";
|
|
3865
3878
|
import { resolve as resolve2, dirname } from "path";
|
|
3879
|
+
function getFilesDir() {
|
|
3880
|
+
return resolve2(process.cwd(), CONFIG.storage.files_dir);
|
|
3881
|
+
}
|
|
3866
3882
|
function ensureDir(path) {
|
|
3867
3883
|
if (!existsSync2(path)) mkdirSync(path, { recursive: true });
|
|
3868
3884
|
}
|
|
3869
3885
|
function hashPath(hash) {
|
|
3870
|
-
return resolve2(
|
|
3886
|
+
return resolve2(getFilesDir(), hash.slice(0, 2), hash.slice(2));
|
|
3871
3887
|
}
|
|
3872
3888
|
function computeHash(buffer) {
|
|
3873
3889
|
return createHash("sha256").update(buffer).digest("hex");
|
|
@@ -3888,12 +3904,10 @@ function getFile(hash) {
|
|
|
3888
3904
|
return null;
|
|
3889
3905
|
}
|
|
3890
3906
|
}
|
|
3891
|
-
var FILES_DIR;
|
|
3892
3907
|
var init_files = __esm({
|
|
3893
3908
|
"src/server/files.ts"() {
|
|
3894
3909
|
"use strict";
|
|
3895
3910
|
init_config();
|
|
3896
|
-
FILES_DIR = resolve2(process.cwd(), CONFIG.storage.files_dir);
|
|
3897
3911
|
}
|
|
3898
3912
|
});
|
|
3899
3913
|
|
|
@@ -9845,6 +9859,23 @@ var TOOLS = [
|
|
|
9845
9859
|
];
|
|
9846
9860
|
|
|
9847
9861
|
// src/mcp/server.ts
|
|
9862
|
+
function getVersion() {
|
|
9863
|
+
try {
|
|
9864
|
+
const { readFileSync: readFileSync5 } = __require("fs");
|
|
9865
|
+
const { resolve: resolve7 } = __require("path");
|
|
9866
|
+
const pkg = JSON.parse(readFileSync5(resolve7(__dirname, "../../package.json"), "utf-8"));
|
|
9867
|
+
return pkg.version;
|
|
9868
|
+
} catch {
|
|
9869
|
+
try {
|
|
9870
|
+
const { readFileSync: readFileSync5 } = __require("fs");
|
|
9871
|
+
const { resolve: resolve7 } = __require("path");
|
|
9872
|
+
const pkg = JSON.parse(readFileSync5(resolve7(process.cwd(), "package.json"), "utf-8"));
|
|
9873
|
+
return pkg.version;
|
|
9874
|
+
} catch {
|
|
9875
|
+
return "2.0.3";
|
|
9876
|
+
}
|
|
9877
|
+
}
|
|
9878
|
+
}
|
|
9848
9879
|
var McpServer = class {
|
|
9849
9880
|
store;
|
|
9850
9881
|
toolMap = /* @__PURE__ */ new Map();
|
|
@@ -9865,7 +9896,7 @@ var McpServer = class {
|
|
|
9865
9896
|
return this.ok(req.id, {
|
|
9866
9897
|
protocolVersion: "2024-11-05",
|
|
9867
9898
|
capabilities: { tools: {}, resources: {}, prompts: {} },
|
|
9868
|
-
serverInfo: { name: "mnemosyne-mcp", version:
|
|
9899
|
+
serverInfo: { name: "mnemosyne-mcp", version: getVersion() }
|
|
9869
9900
|
});
|
|
9870
9901
|
case "tools/list":
|
|
9871
9902
|
return this.ok(req.id, {
|
|
@@ -9892,7 +9923,7 @@ var McpServer = class {
|
|
|
9892
9923
|
getManifest() {
|
|
9893
9924
|
return {
|
|
9894
9925
|
name: "Mnemosyne",
|
|
9895
|
-
version:
|
|
9926
|
+
version: getVersion(),
|
|
9896
9927
|
description: "Knowledge base MCP server for projects, atoms, blocks, and bonds.",
|
|
9897
9928
|
protocol: "mcp",
|
|
9898
9929
|
transport: ["stdio", "sse"],
|
|
@@ -10770,7 +10801,7 @@ import { createHash as createHash2 } from "crypto";
|
|
|
10770
10801
|
import { readFileSync as readFileSync3, existsSync as existsSync3, readdirSync, statSync } from "fs";
|
|
10771
10802
|
import { resolve as resolve3 } from "path";
|
|
10772
10803
|
var DB_PATH = resolve3(process.cwd(), "data", "nexus.db");
|
|
10773
|
-
var
|
|
10804
|
+
var FILES_DIR = resolve3(process.cwd(), "data", "files");
|
|
10774
10805
|
function sha256File(path) {
|
|
10775
10806
|
return createHash2("sha256").update(readFileSync3(path)).digest("hex");
|
|
10776
10807
|
}
|
|
@@ -10790,11 +10821,11 @@ function sha256Dir(dir) {
|
|
|
10790
10821
|
function buildMnemosyneExport(projectId, projectName) {
|
|
10791
10822
|
const zip = new AdmZip();
|
|
10792
10823
|
zip.addLocalFile(DB_PATH, "", "nexus.db");
|
|
10793
|
-
if (existsSync3(
|
|
10794
|
-
zip.addLocalFolder(
|
|
10824
|
+
if (existsSync3(FILES_DIR)) {
|
|
10825
|
+
zip.addLocalFolder(FILES_DIR, "files");
|
|
10795
10826
|
}
|
|
10796
10827
|
const dbChecksum = sha256File(DB_PATH);
|
|
10797
|
-
const filesChecksum = existsSync3(
|
|
10828
|
+
const filesChecksum = existsSync3(FILES_DIR) ? sha256Dir(FILES_DIR) : "";
|
|
10798
10829
|
const manifest = {
|
|
10799
10830
|
version: "1.1",
|
|
10800
10831
|
app: "Mnemosyne",
|
|
@@ -10925,7 +10956,7 @@ var PKG_VERSION = (() => {
|
|
|
10925
10956
|
const pkg = JSON.parse(__require("fs").readFileSync(__require("path").resolve(__dirname, "../../../package.json"), "utf-8"));
|
|
10926
10957
|
return pkg.version;
|
|
10927
10958
|
} catch {
|
|
10928
|
-
return "2.0.
|
|
10959
|
+
return "2.0.3";
|
|
10929
10960
|
}
|
|
10930
10961
|
})();
|
|
10931
10962
|
function handleHealth(store, pathname, method, res) {
|
|
@@ -12531,18 +12562,20 @@ CREATE TABLE IF NOT EXISTS atom_permissions (
|
|
|
12531
12562
|
`;
|
|
12532
12563
|
|
|
12533
12564
|
// src/db/connection.ts
|
|
12534
|
-
|
|
12565
|
+
function getDbPath() {
|
|
12566
|
+
return process.env.MNEMOSYNE_DB_PATH || resolve5(process.cwd(), CONFIG.database.path);
|
|
12567
|
+
}
|
|
12535
12568
|
var db = null;
|
|
12536
12569
|
var vecEnabled = false;
|
|
12537
12570
|
function getDb() {
|
|
12538
12571
|
if (!db) {
|
|
12539
|
-
db = new Database(
|
|
12572
|
+
db = new Database(getDbPath());
|
|
12540
12573
|
db.pragma("journal_mode = WAL");
|
|
12541
12574
|
db.pragma("foreign_keys = ON");
|
|
12542
12575
|
db.pragma("synchronous = NORMAL");
|
|
12543
12576
|
try {
|
|
12544
|
-
const
|
|
12545
|
-
db.loadExtension(
|
|
12577
|
+
const { getLoadablePath } = __require("sqlite-vec");
|
|
12578
|
+
db.loadExtension(getLoadablePath());
|
|
12546
12579
|
vecEnabled = true;
|
|
12547
12580
|
console.log("[DB] sqlite-vec extension loaded");
|
|
12548
12581
|
} catch (err) {
|
|
@@ -12618,7 +12651,7 @@ var MnemosyneServer = class {
|
|
|
12618
12651
|
const wss = new import_websocket_server.default({ server: this.httpServer });
|
|
12619
12652
|
this.wsHandler = new WebSocketHandler(wss, this.store);
|
|
12620
12653
|
}
|
|
12621
|
-
const version = cfg?.server?.version || "2.0.
|
|
12654
|
+
const version = cfg?.server?.version || "2.0.3";
|
|
12622
12655
|
this.httpServer.listen(port, () => {
|
|
12623
12656
|
console.log(`Mnemosyne v${version} \u2014 port ${port}`);
|
|
12624
12657
|
console.log(`Dashboard: http://${host}:${port}/dashboard`);
|