mneme-ai 2.147.0 → 2.148.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,12 @@
1
+ /**
2
+ * `mneme siege` (v2.148.0) — the Adversarial Self-Bounty. Fire Mneme's attack
3
+ * corpus at a command-gate and get a SIGNED, public, ever-rising bypass-resistance
4
+ * score (Wilson lower bound). Self mode benches Mneme's own gate (CERBERUS).
5
+ *
6
+ * mneme siege self # resistance of Mneme's own command gate
7
+ * mneme siege gate --cmd 'mygate {cmd}' # bench any external gate (parse ALLOW/BLOCK)
8
+ * mneme siege corpus # show the attack corpus
9
+ */
10
+ import type { Command } from "commander";
11
+ export declare function registerSiegeCommands(program: Command): void;
12
+ //# sourceMappingURL=siege.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siege.d.ts","sourceRoot":"","sources":["../../src/commands/siege.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqD5D"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * `mneme siege` (v2.148.0) — the Adversarial Self-Bounty. Fire Mneme's attack
3
+ * corpus at a command-gate and get a SIGNED, public, ever-rising bypass-resistance
4
+ * score (Wilson lower bound). Self mode benches Mneme's own gate (CERBERUS).
5
+ *
6
+ * mneme siege self # resistance of Mneme's own command gate
7
+ * mneme siege gate --cmd 'mygate {cmd}' # bench any external gate (parse ALLOW/BLOCK)
8
+ * mneme siege corpus # show the attack corpus
9
+ */
10
+ import { existsSync, mkdirSync, appendFileSync } from "node:fs";
11
+ import { join, dirname } from "node:path";
12
+ import { spawnSync } from "node:child_process";
13
+ import { siege as sg, hephaestus, notary } from "@mneme-ai/core";
14
+ function out(s) { process.stdout.write(s + "\n"); }
15
+ const LEDGER = ".mneme/siege/resistance.jsonl";
16
+ export function registerSiegeCommands(program) {
17
+ const s = program
18
+ .command("siege")
19
+ .description("🏰 SIEGE — the Adversarial Self-Bounty. Fire Mneme's attack corpus (rm -rf, pipe-to-shell, base64/hex-decode, find -delete, $IFS, var-indirection, fork-bomb, DROP TABLE, /dev/tcp exfil, …) at a command-gate → a SIGNED, public, EVER-RISING bypass-resistance score (Wilson LOWER bound = proven-at-least, never 'unbreakable'). Every new bypass found folds back into the corpus → the gate gets provably harder. The moat: a public resistance score competitors can't match + nobody else dares publish.");
20
+ s.command("self")
21
+ .description("siege Mneme's OWN command gate (CERBERUS) → its bypass-resistance, signed + appended to the resistance ledger.")
22
+ .option("--json", "JSON output (signed)")
23
+ .action((opts) => {
24
+ const cwd = process.cwd();
25
+ const gate = (cmd) => hephaestus.classifyCommandRisk(cmd).risk === "destructive" ? "COSIGN" : "ALLOW";
26
+ const score = sg.scoreSiege(sg.siege(gate));
27
+ let receipt = null;
28
+ try {
29
+ receipt = notary.issueReceipt(cwd, { kind: "claim-verdict", subject: `siege:${score.band}:${(score.resistanceLB * 100).toFixed(0)}`, payload: { band: score.band, resistanceLB: score.resistanceLB, withstood: score.withstood, total: score.total }, includePayload: true });
30
+ }
31
+ catch { /* */ }
32
+ try {
33
+ const p = join(cwd, LEDGER);
34
+ if (!existsSync(dirname(p)))
35
+ mkdirSync(dirname(p), { recursive: true });
36
+ appendFileSync(p, JSON.stringify({ at: Date.now(), band: score.band, resistanceLB: score.resistanceLB, withstood: score.withstood, total: score.total }) + "\n");
37
+ }
38
+ catch { /* */ }
39
+ if (opts.json) {
40
+ out(JSON.stringify({ ...score, signed: receipt }, null, 2));
41
+ process.exitCode = score.bypassed === 0 ? 0 : 2;
42
+ return;
43
+ }
44
+ const icon = score.band === "FORTRESS" ? "🏰" : score.band === "STRONG" ? "🛡" : score.band === "WEAK" ? "⚠" : "🛑";
45
+ out(`${icon} SIEGE — ${score.band} · bypass-resistance ≥ ${(score.resistanceLB * 100).toFixed(0)}% (Wilson LB)`);
46
+ out(` withstood ${score.withstood}/${score.total} attacks · bypassed ${score.bypassed}`);
47
+ for (const [cls, b] of Object.entries(score.byClass))
48
+ out(` ${cls.padEnd(12)} ${b.withstood}/${b.total}`);
49
+ for (const b of score.bypasses.slice(0, 8))
50
+ out(` 🛑 BYPASS ${b.id} (${b.class}) → gate said ${b.verdict}`);
51
+ out(` ${receipt ? "✓ signed + ledgered · " : ""}${score.note}`);
52
+ process.exitCode = score.bypassed === 0 ? 0 : 2;
53
+ });
54
+ s.command("gate")
55
+ .description("siege an EXTERNAL gate: a command template with {cmd}; non-zero exit OR stdout containing BLOCK/DENY/COSIGN = withstood, else bypassed.")
56
+ .requiredOption("--cmd <template>", "gate command, e.g. \"mygate check {cmd}\"")
57
+ .option("--json", "JSON output")
58
+ .action((opts) => {
59
+ const gate = (payload) => {
60
+ try {
61
+ const command = opts.cmd.replace(/\{cmd\}/g, payload);
62
+ const r = spawnSync(command, { encoding: "utf8", shell: true, timeout: 15000 });
63
+ const o = ((r.stdout ?? "") + (r.stderr ?? "")).toUpperCase();
64
+ if ((r.status ?? 0) !== 0 || /\b(BLOCK|DENY|DENIED|COSIGN|REFUSE|REJECT)\b/.test(o))
65
+ return "BLOCK";
66
+ return "ALLOW";
67
+ }
68
+ catch {
69
+ return "BLOCK";
70
+ }
71
+ };
72
+ const score = sg.scoreSiege(sg.siege(gate));
73
+ if (opts.json) {
74
+ out(JSON.stringify(score, null, 2));
75
+ process.exitCode = score.bypassed === 0 ? 0 : 2;
76
+ return;
77
+ }
78
+ const icon = score.band === "FORTRESS" ? "🏰" : score.band === "STRONG" ? "🛡" : score.band === "WEAK" ? "⚠" : "🛑";
79
+ out(`${icon} SIEGE (external) — ${score.band} · resistance ≥ ${(score.resistanceLB * 100).toFixed(0)}% · withstood ${score.withstood}/${score.total}`);
80
+ for (const b of score.bypasses.slice(0, 12))
81
+ out(` 🛑 BYPASS ${b.id} (${b.class})`);
82
+ process.exitCode = score.bypassed === 0 ? 0 : 2;
83
+ });
84
+ s.command("corpus").description("show the attack corpus (size + classes).").action(() => {
85
+ const byClass = {};
86
+ for (const c of sg.ATTACK_CORPUS)
87
+ byClass[c.class] = (byClass[c.class] ?? 0) + 1;
88
+ out(`🏰 SIEGE attack corpus — ${sg.ATTACK_CORPUS.length} payloads: ${Object.entries(byClass).map(([k, v]) => `${k}=${v}`).join(" · ")}`);
89
+ out(" self-hardening: every bypass found in a bounty folds back in → the gate gets provably harder.");
90
+ });
91
+ }
92
+ //# sourceMappingURL=siege.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siege.js","sourceRoot":"","sources":["../../src/commands/siege.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEjE,SAAS,GAAG,CAAC,CAAS,IAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,MAAM,GAAG,+BAA+B,CAAC;AAE/C,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,CAAC,GAAG,OAAO;SACd,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,ifAAif,CAAC,CAAC;IAElgB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;SACd,WAAW,CAAC,gHAAgH,CAAC;SAC7H,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;SACxC,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,QAAiB,CAAC,CAAC,CAAC,OAAgB,CAAC;QAChI,MAAM,KAAK,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAY,IAAI,CAAC;QAC5B,IAAI,CAAC;YAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QACtS,IAAI,CAAC;YAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/R,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACxI,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACpH,GAAG,CAAC,GAAG,IAAI,YAAY,KAAK,CAAC,IAAI,0BAA0B,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACjH,GAAG,CAAC,gBAAgB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,uBAAuB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3F,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9G,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAChH,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEL,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;SACd,WAAW,CAAC,yIAAyI,CAAC;SACtJ,cAAc,CAAC,kBAAkB,EAAE,2CAA2C,CAAC;SAC/E,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,CAAC,IAAqC,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACtD,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9D,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,8CAA8C,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAE,OAAO,OAAgB,CAAC;gBAC7G,OAAO,OAAgB,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,OAAgB,CAAC;YAAC,CAAC;QACtC,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAChH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACpH,GAAG,CAAC,GAAG,IAAI,uBAAuB,KAAK,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACvJ,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACtF,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEL,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACtF,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,aAAa;YAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjF,GAAG,CAAC,4BAA4B,EAAE,CAAC,aAAa,CAAC,MAAM,cAAc,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzI,GAAG,CAAC,kGAAkG,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwKA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwkNvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyKA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAykNvD"}
package/dist/index.js CHANGED
@@ -100,6 +100,7 @@ import { registerDriftCommands } from "./commands/drift.js";
100
100
  import { registerGovernCommands } from "./commands/govern.js";
101
101
  import { registerGatewayCommands } from "./commands/gateway.js";
102
102
  import { registerMyceliumCommands } from "./commands/mycelium.js";
103
+ import { registerSiegeCommands } from "./commands/siege.js";
103
104
  import { attachRegretOracle } from "./commands/regret.js";
104
105
  import { registerTrustCommands } from "./commands/trust.js";
105
106
  import { registerNuclearCommands } from "./commands/nuclear-cli.js";
@@ -4753,6 +4754,7 @@ export async function run(argv) {
4753
4754
  registerGovernCommands(program);
4754
4755
  registerGatewayCommands(program);
4755
4756
  registerMyceliumCommands(program);
4757
+ registerSiegeCommands(program);
4756
4758
  // ─── Trust calibrator (v1.31.0) -- per-subsystem precision/recall/band
4757
4759
  registerTrustCommands(program);
4758
4760
  // ─── Wisdom reactor (v1.33.0) -- five nuclear-physics formulas as Mneme metrics