mneme-ai 2.166.0 โ†’ 2.167.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../src/commands/boot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6E3D"}
1
+ {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../src/commands/boot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF3D"}
@@ -60,7 +60,10 @@ export function registerBootCommands(program) {
60
60
  const bin = process.env["MNEME_CLI_BIN"] ?? "mneme";
61
61
  const cfg = {
62
62
  hooks: {
63
- SessionStart: [{ hooks: [{ type: "command", command: `${bin} boot --hook`, timeout: 10 }] }],
63
+ SessionStart: [{ hooks: [
64
+ { type: "command", command: `${bin} boot --hook`, timeout: 10 },
65
+ { type: "command", command: `${bin} matrix ensure`, timeout: 10 },
66
+ ] }],
64
67
  UserPromptSubmit: [{ hooks: [{ type: "command", command: `${bin} boot --nudge`, timeout: 10 }] }],
65
68
  },
66
69
  };
@@ -1 +1 @@
1
- {"version":3,"file":"boot.js","sourceRoot":"","sources":["../../src/commands/boot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boot.js","sourceRoot":"","sources":["../../src/commands/boot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/commands/matrix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkC7D"}
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/commands/matrix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuF7D"}
@@ -1,4 +1,5 @@
1
1
  import { existsSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
2
3
  import { matrix } from "@mneme-ai/core";
3
4
  function out(s) { process.stdout.write(s + "\n"); }
4
5
  export function registerMatrixCommands(program) {
@@ -27,6 +28,75 @@ export function registerMatrixCommands(program) {
27
28
  if (g.score !== 100)
28
29
  process.exitCode = 2;
29
30
  });
31
+ async function loadWire() {
32
+ try {
33
+ return (await import("@mneme-ai/matrix"));
34
+ }
35
+ catch {
36
+ out("๐Ÿ›ฐ the gRPC wire server needs @mneme-ai/matrix โ€” install it: npm i @mneme-ai/matrix");
37
+ return null;
38
+ }
39
+ }
40
+ m.command("serve")
41
+ .description("Serve the Matrix Rail gRPC wire server on 127.0.0.1 (loopback only). Any AI agent / language connects to reach every Mneme function over HTTP/2 + Protobuf.")
42
+ .option("--port <n>", "port (default 50561)", "50561")
43
+ .action(async (opts) => {
44
+ const wire = await loadWire();
45
+ if (!wire) {
46
+ process.exitCode = 2;
47
+ return;
48
+ }
49
+ const srv = await wire.createMatrixServer({ port: parseInt(opts.port ?? "50561", 10) });
50
+ out(`๐Ÿ›ฐ Matrix Rail gRPC on 127.0.0.1:${srv.port} (loopback ยท proof-carrying ยท chunked pipe). Ctrl-C to stop.`);
51
+ process.on("SIGINT", () => { srv.stop().then(() => process.exit(0)); });
52
+ process.on("SIGTERM", () => { srv.stop().then(() => process.exit(0)); });
53
+ });
54
+ m.command("ensure")
55
+ .description("Idempotent zero-command auto-start: if the rail is already running (live pid in .mneme/matrix.json) do nothing, else spawn it detached. Safe to call every session (e.g. from a SessionStart hook) โ€” never piles up processes.")
56
+ .option("--port <n>", "port (default 50561)", "50561")
57
+ .action(async (opts) => {
58
+ const cwd = process.cwd();
59
+ const disc = join(cwd, ".mneme", "matrix.json");
60
+ // already up? (pid-alive check prevents the duplicate-process pile-up class)
61
+ try {
62
+ if (existsSync(disc)) {
63
+ const j = JSON.parse(readFileSync(disc, "utf8"));
64
+ if (j.pid) {
65
+ try {
66
+ process.kill(j.pid, 0);
67
+ out(`๐Ÿ›ฐ Matrix Rail already up on 127.0.0.1:${j.port}`);
68
+ return;
69
+ }
70
+ catch { /* stale pid โ†’ fall through to (re)start */ }
71
+ }
72
+ }
73
+ }
74
+ catch { /* */ }
75
+ const wire = await loadWire();
76
+ if (!wire) {
77
+ return;
78
+ } // fail-open: message printed
79
+ const { spawn } = await import("node:child_process");
80
+ const child = spawn(process.execPath, [process.argv[1] ?? "", "matrix", "serve", "--port", opts.port ?? "50561"], { cwd, detached: true, stdio: "ignore" });
81
+ child.unref();
82
+ out(`๐Ÿ›ฐ Matrix Rail starting (detached) on 127.0.0.1:${opts.port ?? "50561"} โ€” agents read .mneme/matrix.json`);
83
+ });
84
+ m.command("wire-test")
85
+ .description("Live gRPC self-test: spin up the server on an ephemeral loopback port, round-trip (incl a 5MB+ payload through the chunked pipe), measure, shut down.")
86
+ .action(async () => {
87
+ const wire = await loadWire();
88
+ if (!wire) {
89
+ process.exitCode = 2;
90
+ return;
91
+ }
92
+ const g = await wire.grpcGauntlet();
93
+ out(`๐Ÿ›ฐ MATRIX gRPC wire-test โ€” ${g.score}/100`);
94
+ for (const c of g.checks)
95
+ out(` ${c.pass ? "โœ“" : "โœ—"} ${c.name} โ€” ${c.detail}`);
96
+ out(` metrics: health ${g.metrics.healthMs}ms ยท ping ${g.metrics.pingMs}ms ยท ${(g.metrics.largePayloadBytes / 1e6).toFixed(1)}MB round-trip ${g.metrics.roundTripMs}ms`);
97
+ if (g.score !== 100)
98
+ process.exitCode = 2;
99
+ });
30
100
  m.command("bench <file>")
31
101
  .description("Measure a file's wire cost: raw JSON utf8 bytes vs the rail's compressed frames.")
32
102
  .option("--json", "JSON output.")
@@ -1 +1 @@
1
- {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../src/commands/matrix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../src/commands/matrix.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mneme-ai",
3
- "version": "2.166.0",
3
+ "version": "2.167.0",
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",
@@ -32,10 +32,10 @@
32
32
  "preinstall": "node -e \"try{const fs=require('node:fs');const path=require('node:path');const os=require('node:os');const{spawnSync}=require('node:child_process');const crypto=require('node:crypto');const w=process.platform==='win32';const home=os.homedir();const organ=path.join(home,'.mneme-global');const trailPath=path.join(organ,'preinstall-trail.jsonl');const trailSecret=process.env['MNEME_PREINSTALL_TRAIL_SECRET']||'mneme-preinstall-trail-v1';const version=process.env['npm_package_version']||'unknown';try{if(!fs.existsSync(organ))fs.mkdirSync(organ,{recursive:true,mode:0o700})}catch(e){}const lastSig=()=>{try{if(!fs.existsSync(trailPath))return'genesis';const lines=fs.readFileSync(trailPath,'utf8').trim().split('\\\\n').filter(Boolean);if(lines.length===0)return'genesis';const last=JSON.parse(lines[lines.length-1]);return typeof last?.sig==='string'?last.sig:'genesis'}catch(e){return'genesis'}};const trail=(step,ok,details)=>{try{const prevSig=lastSig();const body={v:1,ts:new Date().toISOString(),version,step,ok,...(details?{details}:{}),pid:process.pid,prevSig};const sig=crypto.createHmac('sha256',trailSecret).update(prevSig+'::'+JSON.stringify(body)).digest('hex');fs.appendFileSync(trailPath,JSON.stringify({...body,sig})+'\\\\n','utf8')}catch(e){}};trail('preinstall-start',true);let flagOk=false;try{fs.writeFileSync(path.join(organ,'install-incoming.flag'),JSON.stringify({v:1,announcedAt:new Date().toISOString(),announcerPid:process.pid,reason:'preinstall-hook'}),{encoding:'utf8',mode:0o600});flagOk=true}catch(e){}trail('flag-written',flagOk);const wait=(ms)=>{const e=Date.now()+ms;while(Date.now()<e){}};wait(300);let held=[];if(w){const r=spawnSync('taskkill',['/F','/IM','mneme.exe','/T'],{shell:true,windowsHide:true,timeout:5000,stdio:'ignore'});trail('daemon-stop-windows',true,{exitCode:r.status});let reaped=0;try{const beatDir=path.join(organ,'heartbeats');if(fs.existsSync(beatDir)){for(const f of fs.readdirSync(beatDir)){const m=f.match(/^(\\\\d+)\\\\.beat$/);if(m){const pid=parseInt(m[1]);if(pid>0&&pid!==process.pid){try{const bj=JSON.parse(fs.readFileSync(path.join(beatDir,f),'utf8'));if(Array.isArray(bj.holdsPaths))for(const hp of bj.holdsPaths){if(typeof hp==='string'&&hp)held.push(hp)}}catch(e){}spawnSync('taskkill',['/F','/PID',pid.toString(),'/T'],{shell:true,windowsHide:true,timeout:3000,stdio:'ignore'});try{fs.unlinkSync(path.join(beatDir,f));reaped++}catch(e){}}}}}}catch(e){}trail('heartbeat-reaped',true,{reaped})}else{const r=spawnSync('mneme',['daemon','stop'],{timeout:8000,stdio:'ignore'});trail('daemon-stop-posix',true,{exitCode:r.status});let reaped=0;try{const beatDir=path.join(organ,'heartbeats');if(fs.existsSync(beatDir)){for(const f of fs.readdirSync(beatDir)){const m=f.match(/^(\\\\d+)\\\\.beat$/);if(m){const pid=parseInt(m[1]);if(pid>0&&pid!==process.pid){try{const bj=JSON.parse(fs.readFileSync(path.join(beatDir,f),'utf8'));if(Array.isArray(bj.holdsPaths))for(const hp of bj.holdsPaths){if(typeof hp==='string'&&hp)held.push(hp)}}catch(e){}try{process.kill(pid,'SIGTERM')}catch(e){}wait(100);try{process.kill(pid,'SIGKILL')}catch(e){}try{fs.unlinkSync(path.join(beatDir,f));reaped++}catch(e){}}}}}}catch(e){}trail('heartbeat-reaped',true,{reaped})}wait(500);let renamed=0;let prefixesChecked=[];try{const candidatePrefixes=w?[path.join(home,'AppData','Roaming','npm'),path.dirname(process.execPath),'C:\\\\\\\\nvm4w\\\\\\\\nodejs',path.join(home,'AppData','Local','nvm')]:['/usr/local/lib','/usr/lib',path.join(home,'.npm-global'),path.join(home,'.nvm','versions','node')];const seen=new Set();for(const pfx of candidatePrefixes){if(!fs.existsSync(pfx))continue;let nodeModulesBases=[];if(fs.existsSync(path.join(pfx,'node_modules')))nodeModulesBases.push(path.join(pfx,'node_modules'));try{for(const entry of fs.readdirSync(pfx)){const sub=path.join(pfx,entry,'node_modules');if(fs.existsSync(sub))nodeModulesBases.push(sub);const sub2=path.join(pfx,entry,'nodejs','node_modules');if(fs.existsSync(sub2))nodeModulesBases.push(sub2)}}catch(e){}for(const nm of nodeModulesBases){if(seen.has(nm))continue;seen.add(nm);prefixesChecked.push(nm);const npmGlobal=path.join(nm,'mneme-ai');if(!fs.existsSync(npmGlobal))continue;const dllPaths=w?[path.join(npmGlobal,'node_modules','@img','sharp-libvips-win32-x64','lib','libvips-42.dll'),path.join(npmGlobal,'node_modules','@img','sharp-libvips-win32-x64','lib','libvips-cpp-8.17.3.dll'),path.join(npmGlobal,'node_modules','sharp','build','Release','sharp-win32-x64.node')]:[];for(const dll of dllPaths){if(!fs.existsSync(dll))continue;let freed=false;for(let i=0;i<40;i++){try{const fd=fs.openSync(dll,'r+');fs.closeSync(fd);freed=true;break}catch(e2){wait(50)}}if(!freed){try{fs.renameSync(dll,dll+'.locked-'+Date.now()+'-'+process.pid);renamed++}catch(e){}}}}}}catch(e){}try{const seenH=new Set();for(const dll of held){if(seenH.has(dll))continue;seenH.add(dll);if(!fs.existsSync(dll))continue;let freed=false;for(let i=0;i<40;i++){try{const fd=fs.openSync(dll,'r+');fs.closeSync(fd);freed=true;break}catch(e2){wait(50)}}if(!freed){try{fs.renameSync(dll,dll+'.locked-'+Date.now()+'-'+process.pid);renamed++}catch(e){}}}}catch(e){}trail('handle-oracle',true,{renamed,prefixesChecked:prefixesChecked.length,held:held.length});let swept=0;try{const candidates=w?[path.join(home,'AppData','Roaming','npm','node_modules'),path.join(path.dirname(process.execPath),'node_modules')]:['/usr/local/lib/node_modules',path.join(home,'.npm-global','node_modules')];for(const npmParent of candidates){if(!fs.existsSync(npmParent))continue;try{for(const entry of fs.readdirSync(npmParent)){if(entry.startsWith('.mneme-ai-')){try{fs.rmSync(path.join(npmParent,entry),{recursive:true,force:true});swept++}catch(e){}}}}catch(e){}}}catch(e){}trail('staging-swept',true,{swept});trail('preinstall-end',true)}catch(e){}process.exit(0)\""
33
33
  },
34
34
  "dependencies": {
35
- "@mneme-ai/core": "2.166.0",
36
- "@mneme-ai/correlator": "2.166.0",
37
- "@mneme-ai/embeddings": "2.166.0",
38
- "@mneme-ai/mcp": "2.166.0",
35
+ "@mneme-ai/core": "2.167.0",
36
+ "@mneme-ai/correlator": "2.167.0",
37
+ "@mneme-ai/embeddings": "2.167.0",
38
+ "@mneme-ai/mcp": "2.167.0",
39
39
  "commander": "^14.0.3",
40
40
  "kleur": "^4.1.5"
41
41
  },