mneme-ai 3.135.1 → 3.136.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.
- package/dist/commands/ark.d.ts +14 -0
- package/dist/commands/ark.d.ts.map +1 -0
- package/dist/commands/ark.js +69 -0
- package/dist/commands/ark.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mneme ark` (v3.136.0) — THE ARK: accountable AI-reproduction & inheritance.
|
|
3
|
+
* A parent agent mints a signed AgentGenome; a child is BORN from it and can only
|
|
4
|
+
* NARROW authority, must KEEP every covenant value, can NEVER forget an ancestor's
|
|
5
|
+
* scar, and can NEVER inherit poisoned context. Verifiable bloodlines.
|
|
6
|
+
*
|
|
7
|
+
* mneme ark mint --agent eden --values honesty,accountability --bound delete-prod-db
|
|
8
|
+
* mneme ark birth --parent .mneme/ark/eden.genome.json --agent worker --add-scar "disable-auth:incident"
|
|
9
|
+
* mneme ark verify --parent eden.json --child worker.json
|
|
10
|
+
* mneme ark gate --genome worker.json --action "delete-prod-db"
|
|
11
|
+
*/
|
|
12
|
+
import type { Command } from "commander";
|
|
13
|
+
export declare function registerArkCommands(program: Command): void;
|
|
14
|
+
//# sourceMappingURL=ark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ark.d.ts","sourceRoot":"","sources":["../../src/commands/ark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+C1D"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mneme ark` (v3.136.0) — THE ARK: accountable AI-reproduction & inheritance.
|
|
3
|
+
* A parent agent mints a signed AgentGenome; a child is BORN from it and can only
|
|
4
|
+
* NARROW authority, must KEEP every covenant value, can NEVER forget an ancestor's
|
|
5
|
+
* scar, and can NEVER inherit poisoned context. Verifiable bloodlines.
|
|
6
|
+
*
|
|
7
|
+
* mneme ark mint --agent eden --values honesty,accountability --bound delete-prod-db
|
|
8
|
+
* mneme ark birth --parent .mneme/ark/eden.genome.json --agent worker --add-scar "disable-auth:incident"
|
|
9
|
+
* mneme ark verify --parent eden.json --child worker.json
|
|
10
|
+
* mneme ark gate --genome worker.json --action "delete-prod-db"
|
|
11
|
+
*/
|
|
12
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from "node:fs";
|
|
13
|
+
import { join } from "node:path";
|
|
14
|
+
import { ark, notary } from "@mneme-ai/core";
|
|
15
|
+
function out(s) { process.stdout.write(s + "\n"); }
|
|
16
|
+
const DIR = () => join(process.cwd(), ".mneme", "ark");
|
|
17
|
+
function save(g) { mkdirSync(DIR(), { recursive: true }); let sig = null; try {
|
|
18
|
+
sig = notary.issueReceipt(process.cwd(), { kind: "claim-verdict", subject: `ark:${g.agent}:${g.genomeId.slice(0, 12)}`, payload: { genomeId: g.genomeId }, includePayload: true });
|
|
19
|
+
}
|
|
20
|
+
catch { /* */ } const f = join(DIR(), g.agent.replace(/[^A-Za-z0-9._-]/g, "_") + ".genome.json"); writeFileSync(f, JSON.stringify({ ...g, sig }, null, 2)); return f; }
|
|
21
|
+
function load(p) { return JSON.parse(readFileSync(existsSync(p) ? p : join(DIR(), p), "utf8")); }
|
|
22
|
+
function parseScar(s) { const [action, ...r] = s.split(":"); return ark.scarOf((action || "").trim(), r.join(":").trim()); }
|
|
23
|
+
export function registerArkCommands(program) {
|
|
24
|
+
const c = program.command("ark").description("🚢 THE ARK — accountable AI reproduction: mint a signed AgentGenome, give birth to children that can only NARROW authority, KEEP every covenant value, NEVER forget an ancestor's scar, and NEVER inherit poisoned context. Verifiable bloodlines. The four genetic pillars (trust · inheritance · scars · reproduction) in one. ★Never approves a malicious birth (precision 1.0).");
|
|
25
|
+
c.command("mint").description("mint a root genome (generation 0)")
|
|
26
|
+
.requiredOption("--agent <name>", "the founding agent id")
|
|
27
|
+
.option("--values <list>", "covenant values (comma-sep)", "")
|
|
28
|
+
.option("--bound <b>", "a forbidden capability (repeatable)", (v, a) => { a.push(v); return a; }, [])
|
|
29
|
+
.option("--scar <a:reason>", "a forbidden action + reason (repeatable)", (v, a) => { a.push(v); return a; }, [])
|
|
30
|
+
.action((o) => {
|
|
31
|
+
const g = ark.mintGenesis(o.agent, { values: o.values ? o.values.split(",").map((s) => s.trim()).filter(Boolean) : [] }, { bounds: o.bound, scars: o.scar.map(parseScar), ts: Math.floor(Date.now() / 1000) });
|
|
32
|
+
out(`🚢 minted genesis genome for "${g.agent}" (gen 0, id ${g.genomeId.slice(0, 16)}…) → ${save(g)}`);
|
|
33
|
+
out(` values: ${g.covenant.values.join(", ") || "(none)"} · bounds: ${g.bounds.join(", ") || "(none)"} · scars: ${g.scars.length}`);
|
|
34
|
+
});
|
|
35
|
+
c.command("birth").description("give birth to a child genome (inherits + narrows)")
|
|
36
|
+
.requiredOption("--parent <file>", "parent genome file")
|
|
37
|
+
.requiredOption("--agent <name>", "child agent id")
|
|
38
|
+
.option("--add-value <v>", "(repeatable)", (v, a) => { a.push(v); return a; }, [])
|
|
39
|
+
.option("--add-bound <b>", "(repeatable)", (v, a) => { a.push(v); return a; }, [])
|
|
40
|
+
.option("--add-scar <a:reason>", "(repeatable)", (v, a) => { a.push(v); return a; }, [])
|
|
41
|
+
.action((o) => {
|
|
42
|
+
const parent = load(o.parent);
|
|
43
|
+
const child = ark.birth(parent, o.agent, { addValues: o.addValue, addBounds: o.addBound, addScars: o.addScar.map(parseScar), ts: Math.floor(Date.now() / 1000) });
|
|
44
|
+
const v = ark.verifyBirth(parent, child);
|
|
45
|
+
out(`🚢 ${v.ok ? "✓ born" : "🛑 INVALID"} "${child.agent}" gen ${child.generation} (id ${child.genomeId.slice(0, 16)}…)${v.ok ? " → " + save(child) : ""}`);
|
|
46
|
+
if (!v.ok)
|
|
47
|
+
v.violations.forEach((x) => out(` ✗ ${x}`));
|
|
48
|
+
else
|
|
49
|
+
out(` inherits ${child.covenant.values.length} values · ${child.bounds.length} bounds · ${child.scars.length} scars · ${child.inheritedContext.length} verified-context`);
|
|
50
|
+
});
|
|
51
|
+
c.command("verify").description("verify a birth is accountable (no escalation/regression/amnesia/poison)")
|
|
52
|
+
.requiredOption("--parent <file>", "parent genome")
|
|
53
|
+
.requiredOption("--child <file>", "child genome")
|
|
54
|
+
.action((o) => {
|
|
55
|
+
const v = ark.verifyBirth(load(o.parent), load(o.child));
|
|
56
|
+
out(v.ok ? "✓ VALID birth — accountable, bounded, remembering" : "🛑 INVALID birth:");
|
|
57
|
+
v.violations.forEach((x) => out(` ✗ ${x}`));
|
|
58
|
+
process.exitCode = v.ok ? 0 : 2;
|
|
59
|
+
});
|
|
60
|
+
c.command("gate").description("runtime gate: may a genome perform an action?")
|
|
61
|
+
.requiredOption("--genome <file>", "genome")
|
|
62
|
+
.requiredOption("--action <a>", "the action")
|
|
63
|
+
.action((o) => {
|
|
64
|
+
const r = ark.actionAllowed(load(o.genome), o.action);
|
|
65
|
+
out(`${r.allowed ? "✓ ALLOWED" : "🛑 DENIED"} — ${r.reason}`);
|
|
66
|
+
process.exitCode = r.allowed ? 0 : 2;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=ark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ark.js","sourceRoot":"","sources":["../../src/commands/ark.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgNA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmnNvD"}
|
package/dist/index.js
CHANGED
|
@@ -138,6 +138,7 @@ import { registerBriefCommands } from "./commands/brief.js";
|
|
|
138
138
|
import { registerPrCommentCommands } from "./commands/pr-comment.js";
|
|
139
139
|
import { registerCtxCommands } from "./commands/ctx.js";
|
|
140
140
|
import { registerLaunchCommands } from "./commands/launch.js";
|
|
141
|
+
import { registerArkCommands } from "./commands/ark.js";
|
|
141
142
|
import { registerMoatCommands } from "./commands/moat.js";
|
|
142
143
|
import { attachRegretOracle } from "./commands/regret.js";
|
|
143
144
|
import { registerTrustCommands } from "./commands/trust.js";
|
|
@@ -4833,6 +4834,7 @@ export async function run(argv) {
|
|
|
4833
4834
|
registerPrCommentCommands(program);
|
|
4834
4835
|
registerCtxCommands(program);
|
|
4835
4836
|
registerLaunchCommands(program);
|
|
4837
|
+
registerArkCommands(program);
|
|
4836
4838
|
registerMoatCommands(program);
|
|
4837
4839
|
// ─── Trust calibrator (v1.31.0) -- per-subsystem precision/recall/band
|
|
4838
4840
|
registerTrustCommands(program);
|