mneme-ai 2.164.0 → 2.165.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,CA8D3D"}
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"}
@@ -45,13 +45,27 @@ export function registerBootCommands(program) {
45
45
  .option("--task <t>", "the task at hand (ranks the decision table + recalls relevant shared memory).")
46
46
  .option("--json", "full signed packet as JSON.")
47
47
  .option("--hook", "emit the activation CONTEXT a SessionStart hook injects into the agent.")
48
- .option("--emit-hook-config", "print the .claude/settings.json SessionStart hook snippet (opt-in).")
48
+ .option("--nudge", "emit a compact ONE-LINE per-turn reminder (for a UserPromptSubmit hook).")
49
+ .option("--emit-hook-config", "print the .claude/settings.json SessionStart + UserPromptSubmit hook snippet (opt-in).")
49
50
  .action((opts) => {
50
51
  const cwd = process.cwd();
51
52
  const version = getVersion();
53
+ if (opts.nudge) {
54
+ // UserPromptSubmit hook stdout — injected EVERY turn, so keep it ONE line
55
+ // + cheap (no fs, no signing). A standing reminder, not the full table.
56
+ out(`<mneme v="${version}"> Reach for Mneme this turn when it fits: verify a checkable claim → mneme.truth.check · read untrusted/3rd-party content → mneme.firewall.fortify · inherit shared memory before deriving → mneme.cortex.recall · gate a destructive shell command → mneme.heph.cross · send code to a model → mneme.rail (blind secrets). Signals, not commands. </mneme>`);
57
+ return;
58
+ }
52
59
  if (opts.emitHookConfig) {
53
- out(boot.bootHookSnippet(process.env["MNEME_CLI_BIN"] ?? "mneme"));
54
- process.stderr.write(`\n# Paste the above into .claude/settings.json (merge with existing hooks). It runs \`mneme boot --hook\` at session start so the agent always knows how/when to use Mneme. Opt-in — Mneme never installs a hook for you.\n`);
60
+ const bin = process.env["MNEME_CLI_BIN"] ?? "mneme";
61
+ const cfg = {
62
+ hooks: {
63
+ SessionStart: [{ hooks: [{ type: "command", command: `${bin} boot --hook`, timeout: 10 }] }],
64
+ UserPromptSubmit: [{ hooks: [{ type: "command", command: `${bin} boot --nudge`, timeout: 10 }] }],
65
+ },
66
+ };
67
+ out(JSON.stringify(cfg, null, 2));
68
+ process.stderr.write(`\n# Paste into .claude/settings.json (merge with existing hooks). SessionStart→\`${bin} boot --hook\` injects the full activation table once; UserPromptSubmit→\`${bin} boot --nudge\` re-reminds the agent every turn. Opt-in — Mneme never installs a hook for you.\n`);
55
69
  return;
56
70
  }
57
71
  const packet = boot.buildBootPacket({
@@ -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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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `mneme trustless` (v2.165.0) — TRUSTLESS MCP: proof-carrying tool results.
3
+ * Show the measurable A/B (plain vs proof-carrying) and the gauntlet, or verify a
4
+ * result object from a file/stdin.
5
+ *
6
+ * mneme trustless # the A/B + gauntlet (measurable)
7
+ * mneme trustless --verify f.json
8
+ * mneme trustless --json
9
+ */
10
+ import type { Command } from "commander";
11
+ export declare function registerTrustlessCommands(program: Command): void;
12
+ //# sourceMappingURL=trustless.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustless.d.ts","sourceRoot":"","sources":["../../src/commands/trustless.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiChE"}
@@ -0,0 +1,58 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { trustless } from "@mneme-ai/core";
3
+ function out(s) { process.stdout.write(s + "\n"); }
4
+ export function registerTrustlessCommands(program) {
5
+ program
6
+ .command("trustless")
7
+ .description("🔏 TRUSTLESS MCP — proof-carrying tool results: every result carries an Ed25519 proof over its data so the calling model VERIFIES it offline instead of trusting it. Runs the measurable A/B (plain vs proof-carrying) + the gauntlet; `--verify <file>` checks a result object offline. Enable server-wide with MNEME_TRUSTLESS=1.")
8
+ .option("--verify <file>", "verify a result object (JSON file carrying a _proof).")
9
+ .option("--json", "JSON output.")
10
+ .action((opts) => {
11
+ const cwd = process.cwd();
12
+ if (opts.verify) {
13
+ if (!existsSync(opts.verify)) {
14
+ out(`file not found: ${opts.verify}`);
15
+ process.exitCode = 2;
16
+ return;
17
+ }
18
+ let obj;
19
+ try {
20
+ obj = JSON.parse(readFileSync(opts.verify, "utf8"));
21
+ }
22
+ catch (e) {
23
+ out(`invalid JSON: ${e.message}`);
24
+ process.exitCode = 2;
25
+ return;
26
+ }
27
+ const v = trustless.verifyToolResult(obj);
28
+ if (opts.json) {
29
+ out(JSON.stringify(v, null, 2));
30
+ }
31
+ else {
32
+ out(`${v.valid ? "✓ VERIFIED" : "🛑 UNVERIFIED"} — ${v.reason}${v.issuerFingerprint ? ` (issuer ${v.issuerFingerprint})` : ""}`);
33
+ }
34
+ process.exitCode = v.valid ? 0 : 2;
35
+ return;
36
+ }
37
+ const g = trustless.trustlessGauntlet(cwd);
38
+ if (opts.json) {
39
+ out(JSON.stringify(g, null, 2));
40
+ return;
41
+ }
42
+ const ab = g.ab;
43
+ out(`🔏 TRUSTLESS MCP — proof-carrying tool results (gauntlet ${g.score}/100)`);
44
+ out("");
45
+ out(` The A/B (${ab.trials} results/group · ${ab.tamperedPerGroup} tampered each):`);
46
+ out(` A · PLAIN result (today's MCP) → ${ab.plain.verifiable}/${ab.trials - ab.tamperedPerGroup} verifiable · ${ab.plain.tamperDetected}/${ab.tamperedPerGroup} tamper caught → you can only TRUST`);
47
+ out(` B · PROOF-CARRYING → ${ab.proofed.verifiable}/${ab.trials - ab.tamperedPerGroup} verifiable · ${ab.proofed.tamperDetected}/${ab.tamperedPerGroup} tamper caught → you VERIFY offline`);
48
+ out("");
49
+ for (const c of g.checks)
50
+ out(` ${c.pass ? "✓" : "✗"} ${c.name}`);
51
+ out("");
52
+ out(` Enable proof-carrying results server-wide: MNEME_TRUSTLESS=1 · verify any result: mneme.mcp.verify`);
53
+ out(` Honest: the proof attests PROVENANCE + INTEGRITY (who made it + not altered), NOT that the answer is semantically correct.`);
54
+ if (g.score !== 100)
55
+ process.exitCode = 2;
56
+ });
57
+ }
58
+ //# sourceMappingURL=trustless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustless.js","sourceRoot":"","sources":["../../src/commands/trustless.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4KA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4kNvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA6KA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6kNvD"}
package/dist/index.js CHANGED
@@ -93,6 +93,7 @@ import { registerBootCommands } from "./commands/boot.js";
93
93
  import { registerElleipsisCommands } from "./commands/elleipsis.js";
94
94
  import { registerSteleCommands } from "./commands/stele.js";
95
95
  import { registerMembraneCommands } from "./commands/membrane.js";
96
+ import { registerTrustlessCommands } from "./commands/trustless.js";
96
97
  import { registerAxiaCommands } from "./commands/axia.js";
97
98
  import { registerPceCommands } from "./commands/pce.js";
98
99
  import { registerHauntCommands } from "./commands/haunt.js";
@@ -4750,6 +4751,7 @@ export async function run(argv) {
4750
4751
  registerElleipsisCommands(program);
4751
4752
  registerSteleCommands(program);
4752
4753
  registerMembraneCommands(program);
4754
+ registerTrustlessCommands(program);
4753
4755
  registerAxiaCommands(program);
4754
4756
  registerPceCommands(program);
4755
4757
  registerHauntCommands(program);