mneme-ai 2.19.48 → 2.19.50
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mneme-ai",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.50",
|
|
4
4
|
"mcpName": "io.github.patsa2561-art/mneme-ai",
|
|
5
5
|
"description": "Mneme เนโฌโ€ the memory layer for your codebase. Knows the WHY, the WHAT, the WHERE-IT-BREAKS.",
|
|
6
6
|
"type": "module",
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "tsc -b",
|
|
30
30
|
"clean": "tsc -b --clean",
|
|
31
|
-
"preinstall": "node
|
|
31
|
+
"preinstall": "node -e \"try{const{spawnSync}=require('node:child_process');const w=process.platform==='win32';spawnSync(w?'mneme.cmd':'mneme',['daemon','stop'],{shell:w,windowsHide:true,timeout:8000,stdio:'ignore'});}catch(e){}process.exit(0)\""
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@mneme-ai/core": "2.19.
|
|
35
|
-
"@mneme-ai/correlator": "2.19.
|
|
36
|
-
"@mneme-ai/embeddings": "2.19.
|
|
37
|
-
"@mneme-ai/mcp": "2.19.
|
|
34
|
+
"@mneme-ai/core": "2.19.50",
|
|
35
|
+
"@mneme-ai/correlator": "2.19.50",
|
|
36
|
+
"@mneme-ai/embeddings": "2.19.50",
|
|
37
|
+
"@mneme-ai/mcp": "2.19.50",
|
|
38
38
|
"commander": "^14.0.3",
|
|
39
39
|
"kleur": "^4.1.5"
|
|
40
40
|
},
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* v2.19.45 — npm preinstall hook: stop any running Mneme daemon before
|
|
4
|
-
* npm tries to overwrite the binary. Closes the EBUSY libvips-42.dll
|
|
5
|
-
* race on Windows where `npm install -g mneme-ai@latest` would fail
|
|
6
|
-
* because the running daemon held the .dll open.
|
|
7
|
-
*
|
|
8
|
-
* Safe by design:
|
|
9
|
-
* - Best-effort: never throws (silently exits 0 if anything fails).
|
|
10
|
-
* - Idempotent: if no daemon is running, the script is a no-op.
|
|
11
|
-
* - Cross-platform: uses Mneme's own daemon-stop primitive if available.
|
|
12
|
-
*
|
|
13
|
-
* Why this works at preinstall time: npm runs preinstall on the NEW
|
|
14
|
-
* package's lifecycle BEFORE extracting tarball contents. The OLD
|
|
15
|
-
* binary is still on disk + the OLD daemon may still be running. We
|
|
16
|
-
* spawn `mneme daemon stop` against the OLD binary to release file
|
|
17
|
-
* locks BEFORE npm copies in new files.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
// We have to be ultra-defensive: this script runs during npm install,
|
|
21
|
-
// which means dependencies aren't available yet + we may be inside a
|
|
22
|
-
// sandboxed install where binaries can't be located. ALL exceptions
|
|
23
|
-
// swallow + exit 0.
|
|
24
|
-
|
|
25
|
-
(async () => {
|
|
26
|
-
try {
|
|
27
|
-
const { spawnSync } = await import("node:child_process");
|
|
28
|
-
|
|
29
|
-
// Try `mneme daemon stop` against any version already on PATH.
|
|
30
|
-
const isWin = process.platform === "win32";
|
|
31
|
-
const exe = isWin ? "mneme.cmd" : "mneme";
|
|
32
|
-
const r = spawnSync(exe, ["daemon", "stop"], {
|
|
33
|
-
shell: isWin,
|
|
34
|
-
windowsHide: true,
|
|
35
|
-
timeout: 10_000,
|
|
36
|
-
stdio: "ignore", // never pollute npm's stdout/stderr
|
|
37
|
-
});
|
|
38
|
-
// Don't even check r.status — the install proceeds regardless.
|
|
39
|
-
void r;
|
|
40
|
-
} catch { /* swallow everything */ }
|
|
41
|
-
process.exit(0);
|
|
42
|
-
})();
|