mneme-ai 2.136.0 → 2.138.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.
@@ -0,0 +1,27 @@
1
+ /**
2
+ * `mneme axia` (v2.138.0) — AXIA (ἀξία, "worth"), membrane pillar 2: the Value
3
+ * Ledger. One signed, hash-chained, OFFLINE-verifiable summary of the value
4
+ * events Mneme's organs actually produced:
5
+ * - tokens-saved (pulled live from the treasury ledger)
6
+ * - destructive-gated · secret-redacted · injection-neutralized ·
7
+ * claim-corrected · omission-flagged (recorded into AXIA's own ledger)
8
+ *
9
+ * mneme axia # the signed value summary
10
+ * mneme axia --price-per-1k 0.003 # …with USD from tokens-saved × your rate
11
+ * mneme axia record --kind destructive-gated --source heph
12
+ *
13
+ * HONEST: counts are signed facts (events that HAPPENED). NOT "attacks
14
+ * prevented" and NEVER an estimated $ of damage — the only $ is
15
+ * tokens-saved × the price-per-1k YOU supply.
16
+ */
17
+ import type { Command } from "commander";
18
+ export declare const AXIA_LEDGER = ".mneme/axia/ledger.jsonl";
19
+ export declare const TREASURY_LEDGER = ".mneme/treasury/ledger.jsonl";
20
+ /** Shared appender — any organ records a value event. Total: never throws. */
21
+ export declare function appendAxiaEvent(cwd: string, e: {
22
+ kind: string;
23
+ count?: number;
24
+ source: string;
25
+ }): void;
26
+ export declare function registerAxiaCommands(program: Command): void;
27
+ //# sourceMappingURL=axia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axia.d.ts","sourceRoot":"","sources":["../../src/commands/axia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,eAAO,MAAM,WAAW,6BAA6B,CAAC;AACtD,eAAO,MAAM,eAAe,iCAAiC,CAAC;AAE9D,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOtG;AAsCD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuC3D"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * `mneme axia` (v2.138.0) — AXIA (ἀξία, "worth"), membrane pillar 2: the Value
3
+ * Ledger. One signed, hash-chained, OFFLINE-verifiable summary of the value
4
+ * events Mneme's organs actually produced:
5
+ * - tokens-saved (pulled live from the treasury ledger)
6
+ * - destructive-gated · secret-redacted · injection-neutralized ·
7
+ * claim-corrected · omission-flagged (recorded into AXIA's own ledger)
8
+ *
9
+ * mneme axia # the signed value summary
10
+ * mneme axia --price-per-1k 0.003 # …with USD from tokens-saved × your rate
11
+ * mneme axia record --kind destructive-gated --source heph
12
+ *
13
+ * HONEST: counts are signed facts (events that HAPPENED). NOT "attacks
14
+ * prevented" and NEVER an estimated $ of damage — the only $ is
15
+ * tokens-saved × the price-per-1k YOU supply.
16
+ */
17
+ import { existsSync, readFileSync, mkdirSync, appendFileSync } from "node:fs";
18
+ import { join, dirname } from "node:path";
19
+ function writeJson(p) { process.stdout.write(JSON.stringify(p, null, 2) + "\n"); }
20
+ function writeText(l) { process.stdout.write(l + "\n"); }
21
+ export const AXIA_LEDGER = ".mneme/axia/ledger.jsonl";
22
+ export const TREASURY_LEDGER = ".mneme/treasury/ledger.jsonl";
23
+ /** Shared appender — any organ records a value event. Total: never throws. */
24
+ export function appendAxiaEvent(cwd, e) {
25
+ try {
26
+ const p = join(cwd, AXIA_LEDGER);
27
+ if (!existsSync(dirname(p)))
28
+ mkdirSync(dirname(p), { recursive: true });
29
+ const count = Number.isFinite(e.count) && e.count > 0 ? Math.floor(e.count) : 1;
30
+ appendFileSync(p, JSON.stringify({ kind: e.kind, count, source: e.source, at: Date.now() }) + "\n");
31
+ }
32
+ catch { /* best-effort — accounting never blocks work */ }
33
+ }
34
+ async function core() {
35
+ try {
36
+ const c = (await import("@mneme-ai/core"));
37
+ if (c.axia)
38
+ return c;
39
+ }
40
+ catch { /* */ }
41
+ return null;
42
+ }
43
+ /** Read AXIA's own event ledger + the treasury tokens-saved into a fused event list. */
44
+ function gatherEvents(m, cwd) {
45
+ const events = [];
46
+ // AXIA's own recorded events (gated / redacted / corrected / neutralized / flagged)
47
+ const ap = join(cwd, AXIA_LEDGER);
48
+ if (existsSync(ap)) {
49
+ for (const line of readFileSync(ap, "utf8").split("\n")) {
50
+ if (!line.trim())
51
+ continue;
52
+ try {
53
+ const j = JSON.parse(line);
54
+ if (j && typeof j.kind === "string")
55
+ events.push({ kind: j.kind, count: Number(j.count) || 1, source: String(j.source ?? "unknown"), at: Number(j.at) || undefined });
56
+ }
57
+ catch { /* skip */ }
58
+ }
59
+ }
60
+ // tokens-saved pulled LIVE from the treasury (single fused event, source=treasury)
61
+ try {
62
+ const tp = join(cwd, TREASURY_LEDGER);
63
+ if (m.treasury && existsSync(tp)) {
64
+ const tokensSaved = m.treasury.aggregate(m.treasury.parseLedger(readFileSync(tp, "utf8"))).tokensSaved;
65
+ if (tokensSaved > 0)
66
+ events.push({ kind: "tokens-saved", count: tokensSaved, source: "treasury" });
67
+ }
68
+ }
69
+ catch { /* */ }
70
+ return events;
71
+ }
72
+ export function registerAxiaCommands(program) {
73
+ const axia = program
74
+ .command("axia")
75
+ .description("💎 AXIA — the signed, hash-chained, OFFLINE-verifiable VALUE LEDGER (membrane pillar 2). Fuses what Mneme's organs actually did — tokens saved (treasury), destructive commands GATED, secrets redacted, injections neutralized, claims corrected, omissions flagged — into one number an auditor/insurer checks with a public key. HONEST: counts are facts, NOT 'attacks prevented'; the only $ is tokens-saved × YOUR price-per-1k — never an invented $ of damage.")
76
+ .option("--price-per-1k <usd>", "your vendor's INPUT price per 1k tokens → USD from tokens-saved only", (v) => parseFloat(v))
77
+ .option("--json", "JSON output (signed).")
78
+ .action(async (opts) => {
79
+ const m = await core();
80
+ if (!m) {
81
+ writeText("✗ core unavailable");
82
+ process.exitCode = 1;
83
+ return;
84
+ }
85
+ const cwd = process.cwd();
86
+ const events = gatherEvents(m, cwd);
87
+ const led = m.axia.buildAxiaLedger(events);
88
+ const s = m.axia.axiaSummary(led, opts.pricePer1k !== undefined ? { pricePer1k: opts.pricePer1k } : undefined);
89
+ let receipt = null;
90
+ try {
91
+ receipt = m.notary?.issueReceipt(cwd, { kind: "claim-verdict", subject: `axia:${s.totalEvents}ev/${s.tokensSaved}tok`, payload: { totalEvents: s.totalEvents, tokensSaved: s.tokensSaved, byKind: s.byKind }, includePayload: true });
92
+ }
93
+ catch { /* */ }
94
+ if (opts.json) {
95
+ writeJson({ ...s, signed: receipt });
96
+ return;
97
+ }
98
+ writeText(`💎 AXIA value ledger — ${s.totalEvents} value events · ${s.tokensSaved.toLocaleString()} tokens saved`);
99
+ const labels = { "destructive-gated": "destructive cmds GATED", "secret-redacted": "secrets redacted", "injection-neutralized": "injections neutralized", "claim-corrected": "claims corrected", "omission-flagged": "omissions flagged" };
100
+ for (const [k, label] of Object.entries(labels)) {
101
+ const n = s.byKind[k] ?? 0;
102
+ if (n > 0)
103
+ writeText(` ${String(n).padStart(6)} ${label}`);
104
+ }
105
+ if (s.tokensSaved > 0)
106
+ writeText(` ${s.tokensSaved.toLocaleString().padStart(6)} input tokens saved (treasury, ≈chars/4)`);
107
+ if (s.usdSaved !== null)
108
+ writeText(` ≈ $${s.usdSaved.toLocaleString(undefined, { minimumFractionDigits: 2 })} saved at $${opts.pricePer1k}/1k tokens (your supplied price)`);
109
+ writeText(` chain ${s.chainValid ? "✓ valid" : "🛑 BROKEN"}${receipt ? " · signed (verify offline with the NOTARY public key)" : ""}`);
110
+ writeText(` ${s.note}`);
111
+ if (s.totalEvents === 0 && s.tokensSaved === 0)
112
+ writeText(" (no value events yet — they accrue as Mneme's organs gate/redact/correct/save during normal use.)");
113
+ });
114
+ axia
115
+ .command("record")
116
+ .description("Record one value event into AXIA's signed ledger (organs call this; you rarely do).")
117
+ .requiredOption("--kind <k>", "tokens-saved | destructive-gated | secret-redacted | injection-neutralized | claim-corrected | omission-flagged")
118
+ .option("--count <n>", "how many (default 1)", (v) => parseInt(v, 10))
119
+ .option("--source <s>", "which organ produced it", "manual")
120
+ .action(async (opts) => {
121
+ const m = await core();
122
+ if (!m) {
123
+ writeText("✗ core unavailable");
124
+ process.exitCode = 1;
125
+ return;
126
+ }
127
+ if (!m.axia.AXIA_KINDS.includes(opts.kind)) {
128
+ writeText(`✗ unknown kind '${opts.kind}'. one of: ${m.axia.AXIA_KINDS.join(", ")}`);
129
+ process.exitCode = 2;
130
+ return;
131
+ }
132
+ appendAxiaEvent(process.cwd(), { kind: opts.kind, count: opts.count, source: opts.source });
133
+ writeText(`✓ recorded ${opts.count ?? 1}× ${opts.kind} (source: ${opts.source})`);
134
+ });
135
+ }
136
+ //# sourceMappingURL=axia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axia.js","sourceRoot":"","sources":["../../src/commands/axia.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `mneme stele` (v2.137.0) — the signed, merkle-rooted, delta-syncable
3
+ * capability inscription. An agent learns the WHOLE Mneme surface at O(delta)
4
+ * tokens and can PROVE it holds the latest, complete set.
5
+ *
6
+ * mneme stele # the current merkle root + count (signed)
7
+ * mneme stele --held <root> # delta vs what you hold (added/changed/removed)
8
+ * mneme stele --held-file held.json # held = {"root":"…","leaves":{name:hash}}
9
+ * mneme stele --verify <root> # is my held root current? (stale/tamper-evident)
10
+ * mneme stele --json
11
+ */
12
+ import type { Command } from "commander";
13
+ export declare function registerSteleCommands(program: Command): void;
14
+ //# sourceMappingURL=stele.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stele.d.ts","sourceRoot":"","sources":["../../src/commands/stele.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C5D"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * `mneme stele` (v2.137.0) — the signed, merkle-rooted, delta-syncable
3
+ * capability inscription. An agent learns the WHOLE Mneme surface at O(delta)
4
+ * tokens and can PROVE it holds the latest, complete set.
5
+ *
6
+ * mneme stele # the current merkle root + count (signed)
7
+ * mneme stele --held <root> # delta vs what you hold (added/changed/removed)
8
+ * mneme stele --held-file held.json # held = {"root":"…","leaves":{name:hash}}
9
+ * mneme stele --verify <root> # is my held root current? (stale/tamper-evident)
10
+ * mneme stele --json
11
+ */
12
+ import { existsSync, readFileSync } from "node:fs";
13
+ import { stele, notary, agentManifest } from "@mneme-ai/core";
14
+ function out(s) { process.stdout.write(s + "\n"); }
15
+ function catalogEntries() {
16
+ try {
17
+ return agentManifest.MNEME_COMMAND_CATALOG.map((c) => ({ name: c.command, version: c.since, summary: c.what }));
18
+ }
19
+ catch {
20
+ return [];
21
+ }
22
+ }
23
+ export function registerSteleCommands(program) {
24
+ program
25
+ .command("stele")
26
+ .description("🗿 STELE — the signed, merkle-rooted, delta-syncable inscription of Mneme's whole capability surface. An agent proves it holds the latest/complete set (merkle root) + pulls only the delta at boot (O(delta) tokens, not O(900 tools)). The honest fix for 'I didn't know that tool existed' + a stale manifest.")
27
+ .option("--held <root>", "the merkle root your agent currently holds (for a delta).")
28
+ .option("--held-file <p>", "JSON file: {\"root\":\"…\",\"leaves\":{\"name\":\"hash\"}} — full delta incl. tamper-detect.")
29
+ .option("--verify <root>", "verify a held root against the live catalog (stale/tamper-evident).")
30
+ .option("--json", "JSON output (signed).")
31
+ .action((opts) => {
32
+ const cwd = process.cwd();
33
+ const entries = catalogEntries();
34
+ if (opts.verify) {
35
+ const v = stele.verifyStele(entries, opts.verify);
36
+ if (opts.json) {
37
+ out(JSON.stringify(v, null, 2));
38
+ }
39
+ else {
40
+ out(`${v.ok ? "✓ CURRENT" : "🛑 STALE/TAMPERED"} — ${v.reason}\n live root: ${v.currentRoot}`);
41
+ }
42
+ process.exitCode = v.ok ? 0 : 2;
43
+ return;
44
+ }
45
+ let heldRoot = opts.held ?? "";
46
+ let heldLeaves;
47
+ if (opts.heldFile && existsSync(opts.heldFile)) {
48
+ try {
49
+ const j = JSON.parse(readFileSync(opts.heldFile, "utf8"));
50
+ heldRoot = typeof j.root === "string" ? j.root : heldRoot;
51
+ if (j.leaves && typeof j.leaves === "object")
52
+ heldLeaves = j.leaves;
53
+ }
54
+ catch { /* */ }
55
+ }
56
+ if (heldRoot || heldLeaves) {
57
+ const d = stele.steleDelta(entries, heldRoot, heldLeaves);
58
+ const receipt = notary.issueReceipt(cwd, { kind: "claim-verdict", subject: "stele.delta", payload: { currentRoot: d.currentRoot, upToDate: d.upToDate, added: d.added.length, changed: d.changed.length, removed: d.removed.length }, includePayload: true });
59
+ if (opts.json) {
60
+ out(JSON.stringify({ ...d, receipt }, null, 2));
61
+ return;
62
+ }
63
+ if (d.upToDate) {
64
+ out(`✓ UP TO DATE — ${d.note}\n root: ${d.currentRoot}`);
65
+ return;
66
+ }
67
+ out(`🔄 STELE delta — ${d.added.length} new · ${d.changed.length} changed · ${d.removed.length} removed (~${d.deltaTokenEstimate} tok vs ~${d.fullTokenEstimate} full)`);
68
+ for (const e of d.added.slice(0, 20))
69
+ out(` + ${e.name}${e.summary ? ` — ${e.summary.slice(0, 70)}` : ""}`);
70
+ for (const e of d.changed.slice(0, 20))
71
+ out(` ~ ${e.name}${e.summary ? ` — ${e.summary.slice(0, 70)}` : ""}`);
72
+ for (const n of d.removed.slice(0, 20))
73
+ out(` - ${n}`);
74
+ out(` new root: ${d.currentRoot} · receipt ${receipt.receiptId ? receipt.receiptId.slice(0, 12) + "…" : "(signed)"}`);
75
+ return;
76
+ }
77
+ const s = stele.buildStele(entries);
78
+ const receipt = notary.issueReceipt(cwd, { kind: "claim-verdict", subject: "stele.root", payload: { root: s.root, count: s.count }, includePayload: true });
79
+ if (opts.json) {
80
+ out(JSON.stringify({ root: s.root, count: s.count, receipt }, null, 2));
81
+ return;
82
+ }
83
+ out(`🗿 STELE — ${s.count} capabilities · merkle root:\n ${s.root}\n signed · pass --held <root> for a delta, --verify <root> to check freshness.`);
84
+ });
85
+ }
86
+ //# sourceMappingURL=stele.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stele.js","sourceRoot":"","sources":["../../src/commands/stele.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8JA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAohNvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgKA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAshNvD"}
package/dist/index.js CHANGED
@@ -91,6 +91,8 @@ import { registerFirewallCommands } from "./commands/firewall.js";
91
91
  import { registerRailCommands } from "./commands/rail.js";
92
92
  import { registerBootCommands } from "./commands/boot.js";
93
93
  import { registerElleipsisCommands } from "./commands/elleipsis.js";
94
+ import { registerSteleCommands } from "./commands/stele.js";
95
+ import { registerAxiaCommands } from "./commands/axia.js";
94
96
  import { registerTrustCommands } from "./commands/trust.js";
95
97
  import { registerNuclearCommands } from "./commands/nuclear-cli.js";
96
98
  import { registerOvernightCommand } from "./commands/overnight.js";
@@ -4731,6 +4733,8 @@ export async function run(argv) {
4731
4733
  registerRailCommands(program);
4732
4734
  registerBootCommands(program);
4733
4735
  registerElleipsisCommands(program);
4736
+ registerSteleCommands(program);
4737
+ registerAxiaCommands(program);
4734
4738
  // ─── Trust calibrator (v1.31.0) -- per-subsystem precision/recall/band
4735
4739
  registerTrustCommands(program);
4736
4740
  // ─── Wisdom reactor (v1.33.0) -- five nuclear-physics formulas as Mneme metrics