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.
@@ -3736,22 +3736,26 @@ function loadConfig() {
3736
3736
  return defaultConfig();
3737
3737
  }
3738
3738
  }
3739
- function getVersion() {
3739
+ function getVersion2() {
3740
3740
  try {
3741
- const pkg = JSON.parse(readFileSync(resolve(__dirname, "../package.json"), "utf-8"));
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 pkg = JSON.parse(readFileSync(resolve(process.cwd(), "package.json"), "utf-8"));
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.1";
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: getVersion() },
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
- var CONFIG;
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
- CONFIG = loadConfig();
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(FILES_DIR, hash.slice(0, 2), hash.slice(2));
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: "2.0.0" }
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: "2.0.0",
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 FILES_DIR2 = resolve3(process.cwd(), "data", "files");
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(FILES_DIR2)) {
10794
- zip.addLocalFolder(FILES_DIR2, "files");
10824
+ if (existsSync3(FILES_DIR)) {
10825
+ zip.addLocalFolder(FILES_DIR, "files");
10795
10826
  }
10796
10827
  const dbChecksum = sha256File(DB_PATH);
10797
- const filesChecksum = existsSync3(FILES_DIR2) ? sha256Dir(FILES_DIR2) : "";
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.1";
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
- var DB_PATH2 = process.env.MNEMOSYNE_DB_PATH || resolve5(process.cwd(), CONFIG.database.path);
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(DB_PATH2);
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 vecPath = resolve5(process.cwd(), CONFIG.database.vec_extension_path);
12545
- db.loadExtension(vecPath);
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.1";
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`);