mneme-ai 2.109.0 → 2.110.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":"absorb.d.ts","sourceRoot":"","sources":["../../src/commands/absorb.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkC7D"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"absorb.js","sourceRoot":"","sources":["../../src/commands/absorb.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;AAmCzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4ChE"}
@@ -0,0 +1,128 @@
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 } 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
+ async function core() {
16
+ try {
17
+ const c = (await import("@mneme-ai/core"));
18
+ if (c.loopguard)
19
+ return c;
20
+ }
21
+ catch { /* */ }
22
+ return null;
23
+ }
24
+ function loadEvents(m, cwd) {
25
+ try {
26
+ const p = join(cwd, m.loopguard.LOOPGUARD_LEDGER);
27
+ if (!existsSync(p))
28
+ return [];
29
+ return m.loopguard.parseLedger(readFileSync(p, "utf8"));
30
+ }
31
+ catch {
32
+ return [];
33
+ }
34
+ }
35
+ function loadStore(cwd) {
36
+ try {
37
+ const p = join(cwd, ".mneme", "cortex", "store.json");
38
+ if (existsSync(p))
39
+ return JSON.parse(readFileSync(p, "utf8"));
40
+ }
41
+ catch { /* */ }
42
+ return { v: 1, entries: [] };
43
+ }
44
+ /** recall a learned recovery for a failure signature from the cortex. */
45
+ function makeRecall(m, cwd) {
46
+ const view = (() => { try {
47
+ return m.cortex.activeView(loadStore(cwd));
48
+ }
49
+ catch {
50
+ return new Map();
51
+ } })();
52
+ return (sig) => { try {
53
+ const e = view.get(m.shellAutopilot.recoveryKey(sig));
54
+ return e && typeof e.value === "string" && e.value.length > 0 ? e.value : null;
55
+ }
56
+ catch {
57
+ return null;
58
+ } };
59
+ }
60
+ export function registerLoopguardCommands(program) {
61
+ program
62
+ .command("loopguard")
63
+ .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`.")
64
+ .option("--threshold <n>", "repeats before it's a thrash", (v) => parseInt(v, 10), 3)
65
+ .option("--window <min>", "trailing window in minutes", (v) => parseInt(v, 10), 15)
66
+ .option("--json", "JSON output.")
67
+ .action(async (opts) => {
68
+ const m = await core();
69
+ if (!m) {
70
+ writeText("✗ core unavailable");
71
+ process.exitCode = 1;
72
+ return;
73
+ }
74
+ const cwd = process.cwd();
75
+ const events = loadEvents(m, cwd);
76
+ const v = m.loopguard.detectStuck(events, { threshold: opts.threshold, windowMs: (opts.window ?? 15) * 60_000 });
77
+ if (opts.json) {
78
+ writeJson(v);
79
+ return;
80
+ }
81
+ if (!v.stuck) {
82
+ writeText(`✓ no thrash detected (${events.length} events) — ${v.reason}`);
83
+ return;
84
+ }
85
+ const recall = makeRecall(m, cwd);
86
+ const fix = recall(v.signature);
87
+ writeText(`🔁 THRASH: \`${v.command}\` failed ${v.repeats}× (signature ${v.signature})`);
88
+ writeText(` ${v.reason}`);
89
+ if (fix)
90
+ writeText(` 💡 known recovery (recalled): ${fix}`);
91
+ else
92
+ writeText(` (no learned recovery yet — teach one: mneme absorb --cmd "${v.command}" --code 1 --fix "<the fix>")`);
93
+ });
94
+ program
95
+ .command("resume")
96
+ .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.")
97
+ .option("--json", "JSON output.")
98
+ .action(async (opts) => {
99
+ const m = await core();
100
+ if (!m) {
101
+ writeText("✗ core unavailable");
102
+ process.exitCode = 1;
103
+ return;
104
+ }
105
+ const cwd = process.cwd();
106
+ const events = loadEvents(m, cwd);
107
+ const recall = makeRecall(m, cwd);
108
+ const r = m.loopguard.summarizeSession(events, recall);
109
+ if (opts.json) {
110
+ writeJson(r);
111
+ return;
112
+ }
113
+ writeText(`▶ ${r.headline}`);
114
+ if (r.lastError && !r.resolved) {
115
+ writeText(` ✗ open error: ${r.lastError}`);
116
+ if (r.suggestion)
117
+ writeText(` 💡 known fix: ${r.suggestion}`);
118
+ }
119
+ if (r.stuck.stuck)
120
+ writeText(` 🔁 you are thrashing on this (${r.stuck.repeats}×) — stop and try the known fix above`);
121
+ if (r.repeatedFailures.length > 0) {
122
+ writeText(` repeated failures:`);
123
+ for (const f of r.repeatedFailures.slice(0, 5))
124
+ writeText(` ${f.count}× ${f.base} (${f.signature})`);
125
+ }
126
+ });
127
+ }
128
+ //# sourceMappingURL=loopguard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loopguard.js","sourceRoot":"","sources":["../../src/commands/loopguard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,SAAS,SAAS,CAAC,CAAU,IAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACjG,SAAS,SAAS,CAAC,CAAS,IAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAYvE,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QAAC,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAsB,CAAC;QAAC,IAAI,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IACnH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,GAAW;IACxC,IAAI,CAAC;QAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACzK,CAAC;AACD,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAAC,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7I,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,CAAC;AACD,yEAAyE;AACzE,SAAS,UAAU,CAAC,CAAS,EAAE,GAAW;IACxC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,GAAG,EAA6B,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtI,OAAO,CAAC,GAAW,EAAE,EAAE,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;AACpM,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,oOAAoO,CAAC;SACjP,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;SACpF,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;SAClF,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,IAA6D,EAAE,EAAE;QAC9E,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;QAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAClG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;QACjH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACxC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAAC,SAAS,CAAC,yBAAyB,MAAM,CAAC,MAAM,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACpG,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChC,SAAS,CAAC,gBAAgB,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QACzF,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5B,IAAI,GAAG;YAAE,SAAS,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;;YACzD,SAAS,CAAC,gEAAgE,CAAC,CAAC,OAAO,+BAA+B,CAAC,CAAC;IAC3H,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4NAA4N,CAAC;SACzO,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;QAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAClG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACxC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC/B,SAAS,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,CAAC,UAAU;gBAAE,SAAS,CAAC,oBAAoB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK;YAAE,SAAS,CAAC,oCAAoC,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;QACzH,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,SAAS,CAAC,uBAAuB,CAAC,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8IA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAw+MvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA+IA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAy+MvD"}
package/dist/index.js CHANGED
@@ -75,6 +75,7 @@ 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";
78
79
  import { registerTrustCommands } from "./commands/trust.js";
79
80
  import { registerNuclearCommands } from "./commands/nuclear-cli.js";
80
81
  import { registerOvernightCommand } from "./commands/overnight.js";
@@ -4695,6 +4696,7 @@ export async function run(argv) {
4695
4696
  registerDigCommands(program);
4696
4697
  registerEntropyCommands(program);
4697
4698
  registerAbsorbCommands(program);
4699
+ registerLoopguardCommands(program);
4698
4700
  // ─── Trust calibrator (v1.31.0) -- per-subsystem precision/recall/band
4699
4701
  registerTrustCommands(program);
4700
4702
  // ─── Wisdom reactor (v1.33.0) -- five nuclear-physics formulas as Mneme metrics