mneme-ai 2.98.0 → 2.100.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":"hydra.d.ts","sourceRoot":"","sources":["../../src/commands/hydra.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2H5D"}
1
+ {"version":3,"file":"hydra.d.ts","sourceRoot":"","sources":["../../src/commands/hydra.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiEzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4N5D"}
@@ -10,8 +10,33 @@
10
10
  * mneme hydra verify <artifact> offline-verify a portable artifact (sig +
11
11
  * codebook binding + re-prove round-trip).
12
12
  */
13
- import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
13
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync } from "node:fs";
14
14
  import { join } from "node:path";
15
+ import { execFileSync } from "node:child_process";
16
+ /** Run a git command; returns "" on any failure (total — never throws). */
17
+ function git(repoRoot, args) {
18
+ try {
19
+ return execFileSync("git", args, { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"], maxBuffer: 64 * 1024 * 1024 }).trim();
20
+ }
21
+ catch {
22
+ return "";
23
+ }
24
+ }
25
+ /** Deterministic corpus = the HEAD tree snapshot (mode type sha\tpath per
26
+ * line). Changes exactly when the tracked content changes. "" if no repo. */
27
+ function gitTreeCorpus(repoRoot) {
28
+ return git(repoRoot, ["ls-tree", "-r", "HEAD"]);
29
+ }
30
+ function headMeta(repoRoot) {
31
+ const commit = git(repoRoot, ["rev-parse", "HEAD"]);
32
+ const subject = git(repoRoot, ["log", "-1", "--pretty=%s"]);
33
+ const meta = {};
34
+ if (commit)
35
+ meta.commit = commit;
36
+ if (subject)
37
+ meta.subject = subject.slice(0, 120);
38
+ return meta;
39
+ }
15
40
  function writeJson(p) { process.stdout.write(JSON.stringify(p, null, 2) + "\n"); }
16
41
  function writeText(l) { process.stdout.write(l + "\n"); }
17
42
  async function resolveCore() {
@@ -131,8 +156,11 @@ export function registerHydraCommands(program) {
131
156
  process.exitCode = g.score === 100 ? 0 : 1;
132
157
  });
133
158
  h.command("chain")
134
- .description("PROVENANCE CHAIN: forge the current corpus's codebook and append a SIGNED delta to .mneme/hydra/chain.json, then verify the WHOLE history offline (Ed25519 sigs + prev→result links + byte-exact replay to every step). Memory with a cryptographic, replayable, tamper-evident history.")
159
+ .description("PROVENANCE CHAIN: forge the current corpus's codebook and append a SIGNED delta to .mneme/hydra/chain.json, then verify the WHOLE history offline (Ed25519 sigs + prev→result links + byte-exact replay to every step). With --git the corpus is the HEAD tree snapshot and the delta is ANCHORED to the commit sha+subject (signed) — a portable, offline-verifiable record of Mneme's context at each commit (complements git; not a replacement). Idempotent: re-running on the same HEAD appends a no-change delta only if content moved.")
135
160
  .option("--file <path>", "corpus file (default: the rendered manifest)")
161
+ .option("--git", "use the HEAD git-tree snapshot as the corpus + anchor the delta to the commit")
162
+ .option("--note <text>", "extra note recorded (signed) in the delta meta")
163
+ .option("--skip-unchanged", "do not append if the corpus codebook is identical to the chain tip")
136
164
  .option("--json", "JSON output.")
137
165
  .action(async (opts) => {
138
166
  const core = await resolveCore();
@@ -142,40 +170,195 @@ export function registerHydraCommands(program) {
142
170
  return;
143
171
  }
144
172
  const repoRoot = process.cwd();
145
- const dir = join(repoRoot, ".mneme", "hydra");
146
- if (!existsSync(dir))
147
- mkdirSync(dir, { recursive: true });
148
- const chainPath = join(dir, "chain.json");
173
+ try {
174
+ const dir = join(repoRoot, ".mneme", "hydra");
175
+ if (!existsSync(dir))
176
+ mkdirSync(dir, { recursive: true });
177
+ const chainPath = join(dir, "chain.json");
178
+ let chain = [];
179
+ if (existsSync(chainPath)) {
180
+ try {
181
+ const parsed = JSON.parse(readFileSync(chainPath, "utf8"));
182
+ if (Array.isArray(parsed))
183
+ chain = parsed;
184
+ }
185
+ catch {
186
+ chain = [];
187
+ }
188
+ }
189
+ // Build corpus + anchor metadata.
190
+ let corpus;
191
+ let meta = {};
192
+ if (opts.git) {
193
+ corpus = gitTreeCorpus(repoRoot);
194
+ if (!corpus) {
195
+ if (opts.json) {
196
+ writeJson({ ok: false, reason: "no git HEAD / not a repo" });
197
+ }
198
+ else {
199
+ writeText("· skipped: not a git repo (or empty HEAD)");
200
+ }
201
+ return;
202
+ }
203
+ meta = headMeta(repoRoot);
204
+ }
205
+ else {
206
+ corpus = corpusFor(opts.file, core.agentManifest);
207
+ }
208
+ if (opts.note)
209
+ meta.note = String(opts.note).slice(0, 200);
210
+ const cb = core.hydra.forgeCodebook(corpus, {}).codebook;
211
+ // Idempotency: skip when the new codebook == the chain tip's result.
212
+ if (opts.skipUnchanged && chain.length > 0) {
213
+ const tip = core.hydra.verifyChain(chain);
214
+ const replay = core.hydra.chainGauntlet(chain);
215
+ const next = core.hydra.appendToChain(repoRoot, [], cb, 1).delta;
216
+ const tipResult = chain[chain.length - 1].resultHash;
217
+ if (tip.ok && replay.score === 100 && next.resultHash === tipResult) {
218
+ if (opts.json) {
219
+ writeJson({ ok: true, skipped: true, reason: "unchanged since tip", length: chain.length });
220
+ }
221
+ else {
222
+ writeText(`· unchanged since tip — chain stays ${chain.length} link(s)`);
223
+ }
224
+ return;
225
+ }
226
+ }
227
+ const appended = core.hydra.appendToChain(repoRoot, chain, cb, Date.now(), Object.keys(meta).length ? meta : undefined);
228
+ writeFileSync(chainPath, JSON.stringify(appended.chain, null, 2));
229
+ const g = core.hydra.chainGauntlet(appended.chain);
230
+ const v = core.hydra.verifyChain(appended.chain);
231
+ if (opts.json) {
232
+ writeJson({ gauntlet: g, verify: v, meta, delta: { seq: appended.delta.seq, added: appended.delta.added.length, removed: appended.delta.removed.length }, chainPath });
233
+ process.exitCode = g.score === 100 ? 0 : 1;
234
+ return;
235
+ }
236
+ writeText(`HYDRA provenance chain — ${g.length} link(s)`);
237
+ writeText(``);
238
+ if (meta.commit)
239
+ writeText(` anchor: commit ${meta.commit.slice(0, 10)} "${meta.subject ?? ""}"`);
240
+ writeText(` new delta #${appended.delta.seq}: +${appended.delta.added.length} phrases · -${appended.delta.removed.length} phrases (signed)`);
241
+ writeText(` verified(offline): ${g.verified ? "✓" : "✗"} · replay-exact: ${g.replayExact ? "✓" : "✗"} · tamper-caught: ${g.tamperCaught ? "✓" : "✗"}`);
242
+ writeText(` → ${chainPath}`);
243
+ writeText(``);
244
+ writeText(g.score === 100 ? ` ✓ CHAIN 100/100 — ${v.reason}` : ` ✗ CHAIN ${g.score}/100 — broken at delta ${v.brokenAt}: ${v.reason}`);
245
+ process.exitCode = g.score === 100 ? 0 : 1;
246
+ }
247
+ catch (e) {
248
+ // 108-error rule: provenance must never crash the host (or a commit).
249
+ if (opts.json) {
250
+ writeJson({ ok: false, reason: e.message });
251
+ }
252
+ else {
253
+ writeText(`· hydra chain skipped (non-fatal): ${e.message}`);
254
+ }
255
+ }
256
+ });
257
+ h.command("replay <index>")
258
+ .description("TEMPORAL GUARDED REPLAY (Guard × Chain fusion): replay the codebook at a past chain step. With --guard, staleness is derived from the chain's OWN history (atrophy) and cold entries would expand only to a signed abstract — the AI gets the shape of old knowledge, not rotten detail. Reads .mneme/hydra/chain.json.")
259
+ .option("--guard", "derive temporal staleness from chain history + report what would be redacted")
260
+ .option("--halflife <n>", "atrophy half-life in deltas (entries older than 2× → stale)", (v) => parseInt(v, 10), 3)
261
+ .option("--json", "JSON output.")
262
+ .action(async (indexArg, opts) => {
263
+ const core = await resolveCore();
264
+ if (!core) {
265
+ writeText("✗ @mneme-ai/core hydra unavailable.");
266
+ process.exitCode = 1;
267
+ return;
268
+ }
269
+ const chainPath = join(process.cwd(), ".mneme", "hydra", "chain.json");
270
+ if (!existsSync(chainPath)) {
271
+ writeText("✗ no chain yet — run `mneme hydra chain --git` first.");
272
+ process.exitCode = 1;
273
+ return;
274
+ }
149
275
  let chain = [];
150
- if (existsSync(chainPath)) {
151
- try {
152
- const parsed = JSON.parse(readFileSync(chainPath, "utf8"));
153
- if (Array.isArray(parsed))
154
- chain = parsed;
276
+ try {
277
+ const p = JSON.parse(readFileSync(chainPath, "utf8"));
278
+ if (Array.isArray(p))
279
+ chain = p;
280
+ }
281
+ catch {
282
+ writeText("✗ chain.json unreadable");
283
+ process.exitCode = 1;
284
+ return;
285
+ }
286
+ const index = Number.isFinite(parseInt(indexArg, 10)) ? parseInt(indexArg, 10) : chain.length - 1;
287
+ const hl = opts.halflife ?? 3;
288
+ const r = core.hydra.guardedReplay(chain, index, hl);
289
+ if (!r.ok || !r.codebook) {
290
+ if (opts.json) {
291
+ writeJson(r);
155
292
  }
156
- catch {
157
- chain = [];
293
+ else {
294
+ writeText(`✗ replay failed: ${r.reason}`);
158
295
  }
296
+ process.exitCode = 1;
297
+ return;
159
298
  }
160
- const corpus = corpusFor(opts.file, core.agentManifest);
161
- const cb = core.hydra.forgeCodebook(corpus, {}).codebook;
162
- const appended = core.hydra.appendToChain(repoRoot, chain, cb, Date.now());
163
- writeFileSync(chainPath, JSON.stringify(appended.chain, null, 2));
164
- const g = core.hydra.chainGauntlet(appended.chain);
165
- const v = core.hydra.verifyChain(appended.chain);
166
299
  if (opts.json) {
167
- writeJson({ gauntlet: g, verify: v, delta: { seq: appended.delta.seq, added: appended.delta.added.length, removed: appended.delta.removed.length }, chainPath });
168
- process.exitCode = g.score === 100 ? 0 : 1;
300
+ writeJson({ atIndex: r.trust.atIndex, entries: r.codebook.entries.length, guard: !!opts.guard, fresh: r.trust.freshCount, stale: r.trust.staleCount, halflife: hl });
169
301
  return;
170
302
  }
171
- writeText(`HYDRA provenance chain ${g.length} link(s)`);
172
- writeText(``);
173
- writeText(` new delta #${appended.delta.seq}: +${appended.delta.added.length} phrases · -${appended.delta.removed.length} phrases (signed)`);
174
- writeText(` verified(offline): ${g.verified ? "✓" : "✗"} · replay-exact: ${g.replayExact ? "✓" : "✗"} · tamper-caught: ${g.tamperCaught ? "✓" : "✗"}`);
175
- writeText(` → ${chainPath}`);
176
- writeText(``);
177
- writeText(g.score === 100 ? ` ✓ CHAIN 100/100 — ${v.reason}` : ` ✗ CHAIN ${g.score}/100 — broken at delta ${v.brokenAt}: ${v.reason}`);
178
- process.exitCode = g.score === 100 ? 0 : 1;
303
+ writeText(`HYDRA replay — codebook at chain step ${r.trust.atIndex} (${r.codebook.entries.length} entries)`);
304
+ if (opts.guard) {
305
+ writeText(``);
306
+ writeText(` temporal guard (half-life ${hl} deltas): ${r.trust.freshCount} fresh · ${r.trust.staleCount} stale (redacted)`);
307
+ const staleSyms = Object.keys(r.trust.trustMap);
308
+ const sample = r.codebook.entries.filter((e) => staleSyms.includes(e.sym)).slice(0, 3);
309
+ for (const e of sample)
310
+ writeText(` ⊘ redacted (cold): "${e.phrase.slice(0, 40).replace(/\n/g, " ")}…"`);
311
+ writeText(``);
312
+ writeText(` ✓ cold knowledge is redacted to a signed abstract — the AI sees its shape, not rotten detail.`);
313
+ }
314
+ });
315
+ h.command("install-hook")
316
+ .description("Install a git post-commit hook that runs `mneme hydra chain --git` after every commit — anchoring a signed HYDRA context delta to each commit. Non-blocking + fail-open (never breaks a commit). Sentinel-bracketed: re-installs cleanly, composes with an existing hook.")
317
+ .option("--uninstall", "remove the Mneme block from the post-commit hook instead")
318
+ .action(async (opts) => {
319
+ const repoRoot = process.cwd();
320
+ const gitDir = git(repoRoot, ["rev-parse", "--git-dir"]);
321
+ if (!gitDir) {
322
+ writeText("✗ not a git repo (no .git)");
323
+ process.exitCode = 1;
324
+ return;
325
+ }
326
+ const hooksDir = join(repoRoot, gitDir, "hooks");
327
+ const hookPath = join(hooksDir, "post-commit");
328
+ const BEGIN = "# >>> mneme hydra chain >>>";
329
+ const END = "# <<< mneme hydra chain <<<";
330
+ const block = [
331
+ BEGIN,
332
+ "# Auto-anchor a signed HYDRA context delta to this commit. Fail-open + non-blocking.",
333
+ "# Honors MNEME_CLI_BIN (a path to mneme's bin, run via node) for CI / monorepo / testing.",
334
+ `if [ -n "$MNEME_CLI_BIN" ]; then node "$MNEME_CLI_BIN" hydra chain --git --skip-unchanged >/dev/null 2>&1 || true;`,
335
+ `else mneme hydra chain --git --skip-unchanged >/dev/null 2>&1 || true; fi`,
336
+ END,
337
+ ].join("\n");
338
+ let existing = existsSync(hookPath) ? readFileSync(hookPath, "utf8") : "";
339
+ // Strip any prior Mneme block.
340
+ const bi = existing.indexOf(BEGIN), ei = existing.indexOf(END);
341
+ if (bi >= 0 && ei > bi)
342
+ existing = (existing.slice(0, bi) + existing.slice(ei + END.length)).replace(/\n{3,}/g, "\n\n").trimEnd() + "\n";
343
+ if (opts.uninstall) {
344
+ if (!existsSync(hooksDir))
345
+ mkdirSync(hooksDir, { recursive: true });
346
+ writeFileSync(hookPath, existing.trim() ? existing : "#!/bin/sh\n");
347
+ writeText("✓ removed the Mneme block from post-commit hook");
348
+ return;
349
+ }
350
+ if (!existsSync(hooksDir))
351
+ mkdirSync(hooksDir, { recursive: true });
352
+ const head = existing.startsWith("#!") ? "" : "#!/bin/sh\n";
353
+ const next = (head + existing).trimEnd() + "\n\n" + block + "\n";
354
+ writeFileSync(hookPath, next);
355
+ try {
356
+ chmodSync(hookPath, 0o755);
357
+ }
358
+ catch { /* windows: no-op */ }
359
+ writeText(`✓ installed post-commit hook → ${hookPath}`);
360
+ writeText(` every commit now appends a signed HYDRA delta anchored to its sha (fail-open, non-blocking).`);
361
+ writeText(` remove with: mneme hydra install-hook --uninstall`);
179
362
  });
180
363
  h.command("verify <artifact>")
181
364
  .description("Offline-verify a portable artifact: Ed25519 signature + codebook binding + re-prove the round-trip is lossless. No network, public key alone.")
@@ -1 +1 @@
1
- {"version":3,"file":"hydra.js","sourceRoot":"","sources":["../../src/commands/hydra.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydra.js","sourceRoot":"","sources":["../../src/commands/hydra.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.98.0",
3
+ "version": "2.100.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.98.0",
36
- "@mneme-ai/correlator": "2.98.0",
37
- "@mneme-ai/embeddings": "2.98.0",
38
- "@mneme-ai/mcp": "2.98.0",
35
+ "@mneme-ai/core": "2.100.0",
36
+ "@mneme-ai/correlator": "2.100.0",
37
+ "@mneme-ai/embeddings": "2.100.0",
38
+ "@mneme-ai/mcp": "2.100.0",
39
39
  "commander": "^14.0.3",
40
40
  "kleur": "^4.1.5"
41
41
  },