mneme-ai 2.109.0 → 2.111.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/absorb.d.ts.map +1 -1
- package/dist/commands/absorb.js +11 -2
- package/dist/commands/absorb.js.map +1 -1
- package/dist/commands/distill.d.ts +14 -0
- package/dist/commands/distill.d.ts.map +1 -0
- package/dist/commands/distill.js +98 -0
- package/dist/commands/distill.js.map +1 -0
- package/dist/commands/loopguard.d.ts +13 -0
- package/dist/commands/loopguard.d.ts.map +1 -0
- package/dist/commands/loopguard.js +152 -0
- package/dist/commands/loopguard.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"absorb.d.ts","sourceRoot":"","sources":["../../src/commands/absorb.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"absorb.d.ts","sourceRoot":"","sources":["../../src/commands/absorb.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyC7D"}
|
package/dist/commands/absorb.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* mycmd 2>&1 | mneme absorb --cmd "mycmd" --code $?
|
|
8
8
|
*/
|
|
9
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
10
|
-
import { join } from "node:path";
|
|
9
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, appendFileSync } from "node:fs";
|
|
10
|
+
import { join, dirname } from "node:path";
|
|
11
11
|
function writeJson(p) { process.stdout.write(JSON.stringify(p, null, 2) + "\n"); }
|
|
12
12
|
function writeText(l) { process.stdout.write(l + "\n"); }
|
|
13
13
|
async function core() {
|
|
@@ -83,6 +83,15 @@ export function registerAbsorbCommands(program) {
|
|
|
83
83
|
writeFileSync(cortexPath(cwd), JSON.stringify(store, null, 2));
|
|
84
84
|
}
|
|
85
85
|
catch { /* */ }
|
|
86
|
+
// feed the LOOPGUARD ledger (objective thrash detection + `mneme resume`)
|
|
87
|
+
try {
|
|
88
|
+
const ev = m.loopguard.toEvent(entry, Date.now());
|
|
89
|
+
const lp = join(cwd, m.loopguard.LOOPGUARD_LEDGER);
|
|
90
|
+
if (!existsSync(dirname(lp)))
|
|
91
|
+
mkdirSync(dirname(lp), { recursive: true });
|
|
92
|
+
appendFileSync(lp, JSON.stringify(ev) + "\n");
|
|
93
|
+
}
|
|
94
|
+
catch { /* */ }
|
|
86
95
|
if (opts.json) {
|
|
87
96
|
writeJson({ entry, cortex: out.result.verdict, taughtAutopilot: taught });
|
|
88
97
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"absorb.js","sourceRoot":"","sources":["../../src/commands/absorb.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"absorb.js","sourceRoot":"","sources":["../../src/commands/absorb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mneme distill` (v2.111.0) — turn a verbose {error log + diff} into the
|
|
3
|
+
* minimal causal BRIEF an agent needs, with a MEASURED token-budget receipt.
|
|
4
|
+
* Send the signal, not the raw logs. The known fix is recalled from the Cortex.
|
|
5
|
+
*
|
|
6
|
+
* mycmd 2>&1 | mneme distill --cmd "mycmd" --code $? --diff-file change.diff
|
|
7
|
+
*
|
|
8
|
+
* Honest: the token figure is an explicit ≈chars/4 estimate (not a vendor
|
|
9
|
+
* tokenizer); the CHARACTER reduction is exact. We report the real per-call
|
|
10
|
+
* numbers — never a fabricated "wisdom score".
|
|
11
|
+
*/
|
|
12
|
+
import type { Command } from "commander";
|
|
13
|
+
export declare function registerDistillCommands(program: Command): void;
|
|
14
|
+
//# sourceMappingURL=distill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distill.d.ts","sourceRoot":"","sources":["../../src/commands/distill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwB9D"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mneme distill` (v2.111.0) — turn a verbose {error log + diff} into the
|
|
3
|
+
* minimal causal BRIEF an agent needs, with a MEASURED token-budget receipt.
|
|
4
|
+
* Send the signal, not the raw logs. The known fix is recalled from the Cortex.
|
|
5
|
+
*
|
|
6
|
+
* mycmd 2>&1 | mneme distill --cmd "mycmd" --code $? --diff-file change.diff
|
|
7
|
+
*
|
|
8
|
+
* Honest: the token figure is an explicit ≈chars/4 estimate (not a vendor
|
|
9
|
+
* tokenizer); the CHARACTER reduction is exact. We report the real per-call
|
|
10
|
+
* numbers — never a fabricated "wisdom score".
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
13
|
+
import { join } from "node:path";
|
|
14
|
+
function writeJson(p) { process.stdout.write(JSON.stringify(p, null, 2) + "\n"); }
|
|
15
|
+
function writeText(l) { process.stdout.write(l + "\n"); }
|
|
16
|
+
async function core() {
|
|
17
|
+
try {
|
|
18
|
+
const c = (await import("@mneme-ai/core"));
|
|
19
|
+
if (c.distill)
|
|
20
|
+
return c;
|
|
21
|
+
}
|
|
22
|
+
catch { /* */ }
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
function readStdin() {
|
|
26
|
+
return new Promise((resolve) => {
|
|
27
|
+
if (process.stdin.isTTY)
|
|
28
|
+
return resolve("");
|
|
29
|
+
let data = "";
|
|
30
|
+
let done = false;
|
|
31
|
+
const finish = () => { if (!done) {
|
|
32
|
+
done = true;
|
|
33
|
+
resolve(data);
|
|
34
|
+
} };
|
|
35
|
+
process.stdin.setEncoding("utf8");
|
|
36
|
+
process.stdin.on("data", (c) => { data += c; if (data.length > 4_000_000)
|
|
37
|
+
finish(); });
|
|
38
|
+
process.stdin.on("end", finish);
|
|
39
|
+
process.stdin.on("error", finish);
|
|
40
|
+
setTimeout(finish, 4000);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function makeRecall(m, cwd) {
|
|
44
|
+
let view = new Map();
|
|
45
|
+
try {
|
|
46
|
+
const p = join(cwd, ".mneme", "cortex", "store.json");
|
|
47
|
+
if (existsSync(p))
|
|
48
|
+
view = m.cortex.activeView(JSON.parse(readFileSync(p, "utf8")));
|
|
49
|
+
}
|
|
50
|
+
catch { /* */ }
|
|
51
|
+
return (sig) => { try {
|
|
52
|
+
const e = view.get(m.shellAutopilot.recoveryKey(sig));
|
|
53
|
+
return e && typeof e.value === "string" && e.value.length > 0 ? e.value : null;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return null;
|
|
57
|
+
} };
|
|
58
|
+
}
|
|
59
|
+
export function registerDistillCommands(program) {
|
|
60
|
+
program
|
|
61
|
+
.command("distill")
|
|
62
|
+
.description("✂️ DISTILL — compress a verbose {error log + diff} into the minimal causal BRIEF an agent needs, with a MEASURED token-budget receipt (send the signal, not the raw logs). The known fix is recalled from the Cortex. Honest: char reduction is exact; token figure is a labeled ≈chars/4 estimate. Usage: `mycmd 2>&1 | mneme distill --cmd \"mycmd\" --code $? --diff-file d.diff`")
|
|
63
|
+
.option("--cmd <c>", "the command that produced the output", "")
|
|
64
|
+
.option("--code <n>", "exit code (else inferred from output)", (v) => parseInt(v, 10))
|
|
65
|
+
.option("--text <t>", "the error/log text inline (else read from stdin)")
|
|
66
|
+
.option("--diff-file <f>", "path to a unified diff of the change under test")
|
|
67
|
+
.option("--json", "JSON output (brief + measured receipt).")
|
|
68
|
+
.action(async (opts) => {
|
|
69
|
+
const m = await core();
|
|
70
|
+
if (!m) {
|
|
71
|
+
writeText("✗ core unavailable");
|
|
72
|
+
process.exitCode = 1;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const cwd = process.cwd();
|
|
76
|
+
const output = typeof opts.text === "string" ? opts.text : await readStdin();
|
|
77
|
+
let diff = "";
|
|
78
|
+
if (opts.diffFile) {
|
|
79
|
+
try {
|
|
80
|
+
if (existsSync(opts.diffFile))
|
|
81
|
+
diff = readFileSync(opts.diffFile, "utf8");
|
|
82
|
+
}
|
|
83
|
+
catch { /* */ }
|
|
84
|
+
}
|
|
85
|
+
const recall = makeRecall(m, cwd);
|
|
86
|
+
const r = m.distill.distill({ command: opts.cmd ?? "", output, exitCode: typeof opts.code === "number" ? opts.code : NaN, diff, recall });
|
|
87
|
+
if (opts.json) {
|
|
88
|
+
writeJson({ brief: r.brief, signature: r.signature, measured: r.measured });
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
writeText(r.brief || "(nothing to distill)");
|
|
92
|
+
const mr = r.measured;
|
|
93
|
+
writeText("");
|
|
94
|
+
writeText(`📉 ${mr.charsBefore}→${mr.charsAfter} chars (−${mr.reductionPct}%) · ≈${mr.tokEstBefore}→${mr.tokEstAfter} tok est (saved ≈${mr.tokEstSaved})`);
|
|
95
|
+
writeText(` ${mr.note}`);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=distill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distill.js","sourceRoot":"","sources":["../../src/commands/distill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mneme loopguard` + `mneme resume` (v2.110.0) — the honest core of Terminal
|
|
3
|
+
* Cognitive Telemetry. Reads the LOOPGUARD event ledger (fed by `mneme absorb`)
|
|
4
|
+
* and answers two deterministic questions:
|
|
5
|
+
* - loopguard: are we THRASHING on the same failure right now? (objective)
|
|
6
|
+
* - resume: where did this session leave off? (deterministic reconstruction)
|
|
7
|
+
*
|
|
8
|
+
* No mind-reading, no LLM — a sequence of events → a verdict. The known fix is
|
|
9
|
+
* recalled from the COGNITIVE CORTEX (learned shell recoveries).
|
|
10
|
+
*/
|
|
11
|
+
import type { Command } from "commander";
|
|
12
|
+
export declare function registerLoopguardCommands(program: Command): void;
|
|
13
|
+
//# sourceMappingURL=loopguard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loopguard.d.ts","sourceRoot":"","sources":["../../src/commands/loopguard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4ChE"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mneme loopguard` + `mneme resume` (v2.110.0) — the honest core of Terminal
|
|
3
|
+
* Cognitive Telemetry. Reads the LOOPGUARD event ledger (fed by `mneme absorb`)
|
|
4
|
+
* and answers two deterministic questions:
|
|
5
|
+
* - loopguard: are we THRASHING on the same failure right now? (objective)
|
|
6
|
+
* - resume: where did this session leave off? (deterministic reconstruction)
|
|
7
|
+
*
|
|
8
|
+
* No mind-reading, no LLM — a sequence of events → a verdict. The known fix is
|
|
9
|
+
* recalled from the COGNITIVE CORTEX (learned shell recoveries).
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, readFileSync, statSync, openSync, readSync, closeSync } from "node:fs";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
function writeJson(p) { process.stdout.write(JSON.stringify(p, null, 2) + "\n"); }
|
|
14
|
+
function writeText(l) { process.stdout.write(l + "\n"); }
|
|
15
|
+
/** Read only the last `maxBytes` of the append-only ledger (it grows without
|
|
16
|
+
* limit; we only ever need the recent trailing window). A partial leading
|
|
17
|
+
* line is dropped — parseLedger skips malformed lines. Total: error → "". */
|
|
18
|
+
function readTail(path, maxBytes = 262_144) {
|
|
19
|
+
try {
|
|
20
|
+
const size = statSync(path).size;
|
|
21
|
+
if (size <= maxBytes)
|
|
22
|
+
return readFileSync(path, "utf8");
|
|
23
|
+
const fd = openSync(path, "r");
|
|
24
|
+
try {
|
|
25
|
+
const buf = Buffer.allocUnsafe(maxBytes);
|
|
26
|
+
readSync(fd, buf, 0, maxBytes, size - maxBytes);
|
|
27
|
+
const s = buf.toString("utf8");
|
|
28
|
+
const nl = s.indexOf("\n");
|
|
29
|
+
return nl >= 0 ? s.slice(nl + 1) : s;
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
closeSync(fd);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return "";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function core() {
|
|
40
|
+
try {
|
|
41
|
+
const c = (await import("@mneme-ai/core"));
|
|
42
|
+
if (c.loopguard)
|
|
43
|
+
return c;
|
|
44
|
+
}
|
|
45
|
+
catch { /* */ }
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
function loadEvents(m, cwd) {
|
|
49
|
+
try {
|
|
50
|
+
const p = join(cwd, m.loopguard.LOOPGUARD_LEDGER);
|
|
51
|
+
if (!existsSync(p))
|
|
52
|
+
return [];
|
|
53
|
+
return m.loopguard.parseLedger(readTail(p));
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function loadStore(cwd) {
|
|
60
|
+
try {
|
|
61
|
+
const p = join(cwd, ".mneme", "cortex", "store.json");
|
|
62
|
+
if (existsSync(p))
|
|
63
|
+
return JSON.parse(readFileSync(p, "utf8"));
|
|
64
|
+
}
|
|
65
|
+
catch { /* */ }
|
|
66
|
+
return { v: 1, entries: [] };
|
|
67
|
+
}
|
|
68
|
+
/** recall a learned recovery for a failure signature from the cortex. */
|
|
69
|
+
function makeRecall(m, cwd) {
|
|
70
|
+
const view = (() => { try {
|
|
71
|
+
return m.cortex.activeView(loadStore(cwd));
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return new Map();
|
|
75
|
+
} })();
|
|
76
|
+
return (sig) => { try {
|
|
77
|
+
const e = view.get(m.shellAutopilot.recoveryKey(sig));
|
|
78
|
+
return e && typeof e.value === "string" && e.value.length > 0 ? e.value : null;
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return null;
|
|
82
|
+
} };
|
|
83
|
+
}
|
|
84
|
+
export function registerLoopguardCommands(program) {
|
|
85
|
+
program
|
|
86
|
+
.command("loopguard")
|
|
87
|
+
.description("🔁 LOOPGUARD — are you (or an agent) THRASHING? Detects when the SAME failure repeats ≥N times with no success in between (objective, not mind-reading) and surfaces what's already known. Reads the ledger fed by `mneme absorb`.")
|
|
88
|
+
.option("--threshold <n>", "repeats before it's a thrash", (v) => parseInt(v, 10), 3)
|
|
89
|
+
.option("--window <min>", "trailing window in minutes", (v) => parseInt(v, 10), 15)
|
|
90
|
+
.option("--json", "JSON output.")
|
|
91
|
+
.action(async (opts) => {
|
|
92
|
+
const m = await core();
|
|
93
|
+
if (!m) {
|
|
94
|
+
writeText("✗ core unavailable");
|
|
95
|
+
process.exitCode = 1;
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const cwd = process.cwd();
|
|
99
|
+
const events = loadEvents(m, cwd);
|
|
100
|
+
const v = m.loopguard.detectStuck(events, { threshold: opts.threshold, windowMs: (opts.window ?? 15) * 60_000 });
|
|
101
|
+
if (opts.json) {
|
|
102
|
+
writeJson(v);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (!v.stuck) {
|
|
106
|
+
writeText(`✓ no thrash detected (${events.length} events) — ${v.reason}`);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const recall = makeRecall(m, cwd);
|
|
110
|
+
const fix = recall(v.signature);
|
|
111
|
+
writeText(`🔁 THRASH: \`${v.command}\` failed ${v.repeats}× (signature ${v.signature})`);
|
|
112
|
+
writeText(` ${v.reason}`);
|
|
113
|
+
if (fix)
|
|
114
|
+
writeText(` 💡 known recovery (recalled): ${fix}`);
|
|
115
|
+
else
|
|
116
|
+
writeText(` (no learned recovery yet — teach one: mneme absorb --cmd "${v.command}" --code 1 --fix "<the fix>")`);
|
|
117
|
+
});
|
|
118
|
+
program
|
|
119
|
+
.command("resume")
|
|
120
|
+
.description("⏸▶ RESUME — pull your focus back in 3 seconds. Deterministically reconstructs where this session left off from the `mneme absorb` ledger: last command, last UNRESOLVED error, repeated failures, and the known next move.")
|
|
121
|
+
.option("--json", "JSON output.")
|
|
122
|
+
.action(async (opts) => {
|
|
123
|
+
const m = await core();
|
|
124
|
+
if (!m) {
|
|
125
|
+
writeText("✗ core unavailable");
|
|
126
|
+
process.exitCode = 1;
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const cwd = process.cwd();
|
|
130
|
+
const events = loadEvents(m, cwd);
|
|
131
|
+
const recall = makeRecall(m, cwd);
|
|
132
|
+
const r = m.loopguard.summarizeSession(events, recall);
|
|
133
|
+
if (opts.json) {
|
|
134
|
+
writeJson(r);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
writeText(`▶ ${r.headline}`);
|
|
138
|
+
if (r.lastError && !r.resolved) {
|
|
139
|
+
writeText(` ✗ open error: ${r.lastError}`);
|
|
140
|
+
if (r.suggestion)
|
|
141
|
+
writeText(` 💡 known fix: ${r.suggestion}`);
|
|
142
|
+
}
|
|
143
|
+
if (r.stuck.stuck)
|
|
144
|
+
writeText(` 🔁 you are thrashing on this (${r.stuck.repeats}×) — stop and try the known fix above`);
|
|
145
|
+
if (r.repeatedFailures.length > 0) {
|
|
146
|
+
writeText(` repeated failures:`);
|
|
147
|
+
for (const f of r.repeatedFailures.slice(0, 5))
|
|
148
|
+
writeText(` ${f.count}× ${f.base} (${f.signature})`);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=loopguard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loopguard.js","sourceRoot":"","sources":["../../src/commands/loopguard.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":"AAgJA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0+MvD"}
|
package/dist/index.js
CHANGED
|
@@ -75,6 +75,8 @@ import { registerShellCommands } from "./commands/shell.js";
|
|
|
75
75
|
import { registerDigCommands } from "./commands/dig.js";
|
|
76
76
|
import { registerEntropyCommands } from "./commands/entropy.js";
|
|
77
77
|
import { registerAbsorbCommands } from "./commands/absorb.js";
|
|
78
|
+
import { registerLoopguardCommands } from "./commands/loopguard.js";
|
|
79
|
+
import { registerDistillCommands } from "./commands/distill.js";
|
|
78
80
|
import { registerTrustCommands } from "./commands/trust.js";
|
|
79
81
|
import { registerNuclearCommands } from "./commands/nuclear-cli.js";
|
|
80
82
|
import { registerOvernightCommand } from "./commands/overnight.js";
|
|
@@ -4695,6 +4697,8 @@ export async function run(argv) {
|
|
|
4695
4697
|
registerDigCommands(program);
|
|
4696
4698
|
registerEntropyCommands(program);
|
|
4697
4699
|
registerAbsorbCommands(program);
|
|
4700
|
+
registerLoopguardCommands(program);
|
|
4701
|
+
registerDistillCommands(program);
|
|
4698
4702
|
// ─── Trust calibrator (v1.31.0) -- per-subsystem precision/recall/band
|
|
4699
4703
|
registerTrustCommands(program);
|
|
4700
4704
|
// ─── Wisdom reactor (v1.33.0) -- five nuclear-physics formulas as Mneme metrics
|