mneme-ai 2.127.0 → 2.128.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,14 @@
1
+ /**
2
+ * `mneme channel` (v2.128.0) — Context-State Channel (the honest "L2 Lightning"
3
+ * for an AI edit/debug loop). Open a channel over files, send tiny diff ops, get
4
+ * compact deltas back (not the whole file), commit once. Composes with OUTLINE
5
+ * (orient) + BLIND (hide names) for an off-the-wire loop.
6
+ *
7
+ * mneme channel open src/a.ts src/b.ts # → channel id + cheap outlines
8
+ * mneme channel apply --channel <id> --op '{"kind":"replaceText","path":"src/a.ts","find":"foo","replace":"bar"}'
9
+ * mneme channel status --channel <id> # diff summary + measured savings
10
+ * mneme channel commit --channel <id> # settle: write working files to disk
11
+ */
12
+ import type { Command } from "commander";
13
+ export declare function registerChannelCommands(program: Command): void;
14
+ //# sourceMappingURL=channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyE9D"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * `mneme channel` (v2.128.0) — Context-State Channel (the honest "L2 Lightning"
3
+ * for an AI edit/debug loop). Open a channel over files, send tiny diff ops, get
4
+ * compact deltas back (not the whole file), commit once. Composes with OUTLINE
5
+ * (orient) + BLIND (hide names) for an off-the-wire loop.
6
+ *
7
+ * mneme channel open src/a.ts src/b.ts # → channel id + cheap outlines
8
+ * mneme channel apply --channel <id> --op '{"kind":"replaceText","path":"src/a.ts","find":"foo","replace":"bar"}'
9
+ * mneme channel status --channel <id> # diff summary + measured savings
10
+ * mneme channel commit --channel <id> # settle: write working files to disk
11
+ */
12
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync } from "node:fs";
13
+ import { resolve, join, dirname } from "node:path";
14
+ import { channel, outline } from "@mneme-ai/core";
15
+ const DIR = ".mneme/channel";
16
+ function out(s) { process.stdout.write(s + "\n"); }
17
+ function outJson(o) { process.stdout.write(JSON.stringify(o, null, 2) + "\n"); }
18
+ function statePath(cwd, id) { return join(cwd, DIR, `${id}.json`); }
19
+ function loadState(cwd, id) { try {
20
+ const p = statePath(cwd, id);
21
+ return existsSync(p) ? JSON.parse(readFileSync(p, "utf8")) : null;
22
+ }
23
+ catch {
24
+ return null;
25
+ } }
26
+ function saveState(cwd, st) { try {
27
+ const d = join(cwd, DIR);
28
+ if (!existsSync(d))
29
+ mkdirSync(d, { recursive: true });
30
+ writeFileSync(statePath(cwd, st.id), JSON.stringify(st));
31
+ }
32
+ catch { /* */ } }
33
+ export function registerChannelCommands(program) {
34
+ const ch = program.command("channel").description("⚡ CONTEXT-STATE CHANNEL (L2) — open a channel over files, send tiny diff ops, get compact deltas (not the whole file re-streamed), commit once. Cuts the compounding token cost of an edit/debug loop. Composes with `mneme outline` + `mneme blind`.");
35
+ ch.command("open <files...>")
36
+ .description("Open a channel over one or more files; prints the channel id + a cheap outline of each.")
37
+ .option("--json", "JSON output.")
38
+ .action((files, opts) => {
39
+ const cwd = process.cwd();
40
+ const loaded = [];
41
+ for (const f of files) {
42
+ const p = resolve(cwd, f);
43
+ if (!existsSync(p)) {
44
+ out(`✗ not found: ${f}`);
45
+ process.exitCode = 1;
46
+ return;
47
+ }
48
+ loaded.push({ path: f, content: readFileSync(p, "utf8") });
49
+ }
50
+ const st = channel.openChannel(loaded);
51
+ saveState(cwd, st);
52
+ if (opts.json) {
53
+ outJson({ channel: st.id, files: files });
54
+ return;
55
+ }
56
+ out(`⚡ channel ${st.id} open over ${files.length} file(s):`);
57
+ for (const f of loaded) {
58
+ const o = outline.extractOutline(f.content, { path: f.path });
59
+ out(` ${f.path} — ${o.symbolCount} symbols, ${o.totalLines} lines`);
60
+ }
61
+ out(` send ops: mneme channel apply --channel ${st.id} --op '{"kind":"replaceText","path":"${files[0]}","find":"…","replace":"…"}'`);
62
+ });
63
+ ch.command("apply")
64
+ .description("Apply a diff op to the channel's local working copy; returns a COMPACT delta (ok + brief + structure check).")
65
+ .requiredOption("--channel <id>", "the channel id.")
66
+ .requiredOption("--op <json>", "the diff op: {kind:'replaceRegion'|'replaceText'|'insertAfter'|'appendFile', path, …}")
67
+ .option("--json", "JSON output.")
68
+ .action((opts) => {
69
+ const cwd = process.cwd();
70
+ const st = loadState(cwd, opts.channel);
71
+ if (!st) {
72
+ out(`✗ no channel ${opts.channel} (run \`mneme channel open …\`)`);
73
+ process.exitCode = 1;
74
+ return;
75
+ }
76
+ let op;
77
+ try {
78
+ op = JSON.parse(opts.op);
79
+ }
80
+ catch (e) {
81
+ out(`✗ invalid --op JSON: ${e.message}`);
82
+ process.exitCode = 1;
83
+ return;
84
+ }
85
+ const r = channel.applyOp(st, op);
86
+ saveState(cwd, r.state);
87
+ if (opts.json) {
88
+ outJson(r.result);
89
+ return;
90
+ }
91
+ const icon = r.result.ok ? (r.result.structureOk ? "✓" : "⚠") : "✗";
92
+ out(`${icon} op#${r.result.opId} ${r.result.path}: ${r.result.brief}`);
93
+ if (r.result.ok && !r.result.structureOk) {
94
+ out(` structure BROKEN — fix before commit`);
95
+ process.exitCode = 2;
96
+ }
97
+ });
98
+ ch.command("status")
99
+ .description("Show the channel's diff summary + the measured token saving vs the naive re-stream loop.")
100
+ .requiredOption("--channel <id>", "the channel id.")
101
+ .option("--json", "JSON output.")
102
+ .action((opts) => {
103
+ const cwd = process.cwd();
104
+ const st = loadState(cwd, opts.channel);
105
+ if (!st) {
106
+ out(`✗ no channel ${opts.channel}`);
107
+ process.exitCode = 1;
108
+ return;
109
+ }
110
+ const diffs = Object.keys(st.files).map((p) => channel.diffSummary(st, p));
111
+ const sav = channel.channelSavings(st);
112
+ if (opts.json) {
113
+ outJson({ channel: st.id, ops: st.opCount, diffs, savings: sav });
114
+ return;
115
+ }
116
+ out(`⚡ channel ${st.id} — ${st.opCount} op(s)`);
117
+ for (const d of diffs)
118
+ out(` ${d.path}: ${d.changed ? `changed (+${d.addedLines}/-${d.removedLines} near L${d.hunks[0]?.startLine})` : "unchanged"}`);
119
+ out(` 💰 ~${sav.channelTokens} channel tok vs ~${sav.naiveTokens} naive (${sav.reductionPct}% less). ${sav.note}`);
120
+ });
121
+ ch.command("commit")
122
+ .description("Settle the channel: write the working files to disk. Refuses if a file's structure is broken (override with --force).")
123
+ .requiredOption("--channel <id>", "the channel id.")
124
+ .option("--force", "write even if a quick structural check fails.")
125
+ .action((opts) => {
126
+ const cwd = process.cwd();
127
+ const st = loadState(cwd, opts.channel);
128
+ if (!st) {
129
+ out(`✗ no channel ${opts.channel}`);
130
+ process.exitCode = 1;
131
+ return;
132
+ }
133
+ const settle = channel.commitChannel(st);
134
+ for (const f of settle.files) {
135
+ if (!f.changed)
136
+ continue;
137
+ const chk = channel.quickCheck(f.content, f.path.toLowerCase().endsWith(".py"));
138
+ if (!chk.ok && !opts.force) {
139
+ out(`✗ ${f.path}: structure check failed (${chk.issue}) — fix or pass --force`);
140
+ process.exitCode = 2;
141
+ return;
142
+ }
143
+ try {
144
+ const p = resolve(cwd, f.path);
145
+ if (!existsSync(dirname(p)))
146
+ mkdirSync(dirname(p), { recursive: true });
147
+ writeFileSync(p, f.content);
148
+ out(`✓ wrote ${f.path}`);
149
+ }
150
+ catch (e) {
151
+ out(`✗ write ${f.path}: ${e.message}`);
152
+ }
153
+ }
154
+ out(`⚡ channel ${st.id} settled (${st.opCount} ops).`);
155
+ });
156
+ ch.command("list").description("List open channels.").action(() => {
157
+ const cwd = process.cwd();
158
+ const d = join(cwd, DIR);
159
+ const ids = existsSync(d) ? readdirSync(d).filter((f) => f.endsWith(".json")).map((f) => f.replace(/\.json$/, "")) : [];
160
+ if (ids.length === 0) {
161
+ out("(no open channels)");
162
+ return;
163
+ }
164
+ out(`⚡ ${ids.length} channel(s): ${ids.join(", ")}`);
165
+ });
166
+ }
167
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwJA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0gNvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyJA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2gNvD"}
package/dist/index.js CHANGED
@@ -85,6 +85,7 @@ import { registerBequestCommands } from "./commands/bequest.js";
85
85
  import { registerOutlineCommands } from "./commands/outline.js";
86
86
  import { registerScaffoldCommands } from "./commands/scaffold.js";
87
87
  import { registerBlindCommands } from "./commands/blind.js";
88
+ import { registerChannelCommands } from "./commands/channel.js";
88
89
  import { registerTrustCommands } from "./commands/trust.js";
89
90
  import { registerNuclearCommands } from "./commands/nuclear-cli.js";
90
91
  import { registerOvernightCommand } from "./commands/overnight.js";
@@ -4715,6 +4716,7 @@ export async function run(argv) {
4715
4716
  registerOutlineCommands(program);
4716
4717
  registerScaffoldCommands(program);
4717
4718
  registerBlindCommands(program);
4719
+ registerChannelCommands(program);
4718
4720
  // ─── Trust calibrator (v1.31.0) -- per-subsystem precision/recall/band
4719
4721
  registerTrustCommands(program);
4720
4722
  // ─── Wisdom reactor (v1.33.0) -- five nuclear-physics formulas as Mneme metrics