mneme-ai 2.119.0 → 2.120.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,18 @@
1
+ /**
2
+ * `mneme exec` (v2.120.0) — the EXECUTIVE surface. Each subcommand frames a REAL
3
+ * Mneme signal for a CXO/CRO/CISO buyer. Nothing is fabricated: the signals come
4
+ * from git history (key-person risk, talent map, governance/promise-debt), a
5
+ * signed savings ledger (capital/value), and live MCP config (attack surface).
6
+ * Dollar figures appear ONLY when the user supplies their own rate, and are
7
+ * always labelled as "your rate × measured signal".
8
+ *
9
+ * mneme exec keyperson [--replacement-cost N] # bus-factor / flight risk
10
+ * mneme exec talent # collaboration / talent map
11
+ * mneme exec governance [--debt-cost N] # promise-debt / tech-debt liability
12
+ * mneme exec burn [--price-per-1k N] # realized token value (asset)
13
+ * mneme exec roi --team N --per-dev M [--price-per-1k P] [--months H]
14
+ * mneme exec mcp-audit [--budget N] # agent MCP attack surface (CISO)
15
+ */
16
+ import type { Command } from "commander";
17
+ export declare function registerExecCommands(program: Command): void;
18
+ //# sourceMappingURL=exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/commands/exec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqI3D"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * `mneme exec` (v2.120.0) — the EXECUTIVE surface. Each subcommand frames a REAL
3
+ * Mneme signal for a CXO/CRO/CISO buyer. Nothing is fabricated: the signals come
4
+ * from git history (key-person risk, talent map, governance/promise-debt), a
5
+ * signed savings ledger (capital/value), and live MCP config (attack surface).
6
+ * Dollar figures appear ONLY when the user supplies their own rate, and are
7
+ * always labelled as "your rate × measured signal".
8
+ *
9
+ * mneme exec keyperson [--replacement-cost N] # bus-factor / flight risk
10
+ * mneme exec talent # collaboration / talent map
11
+ * mneme exec governance [--debt-cost N] # promise-debt / tech-debt liability
12
+ * mneme exec burn [--price-per-1k N] # realized token value (asset)
13
+ * mneme exec roi --team N --per-dev M [--price-per-1k P] [--months H]
14
+ * mneme exec mcp-audit [--budget N] # agent MCP attack surface (CISO)
15
+ */
16
+ import { existsSync, readFileSync } from "node:fs";
17
+ import { join } from "node:path";
18
+ import { git, store, people, util, stigmergy, treasury, exec as execCore, skeletonKey, notary } from "@mneme-ai/core";
19
+ import { dbPath } from "../paths.js";
20
+ const TREASURY_LEDGER = ".mneme/treasury/ledger.jsonl";
21
+ function out(s) { process.stdout.write(s + "\n"); }
22
+ function outJson(o) { process.stdout.write(JSON.stringify(o, null, 2) + "\n"); }
23
+ function usd(n) { return "$" + n.toLocaleString("en-US", { maximumFractionDigits: 2 }); }
24
+ function rate(n) { return "$" + n.toLocaleString("en-US", { maximumFractionDigits: 5 }); }
25
+ function sign(cwd, subject, payload) {
26
+ try {
27
+ return notary.issueReceipt(cwd, { kind: "claim-verdict", subject, payload, includePayload: false });
28
+ }
29
+ catch {
30
+ return null;
31
+ }
32
+ }
33
+ async function openStore(cwd) {
34
+ if (!(await git.isGitRepo(cwd)))
35
+ return { error: "Not in a git repo." };
36
+ const meta = await git.getRepoMeta(cwd);
37
+ const s = new store.MnemeStore(dbPath(meta.rootPath));
38
+ if (s.countCommits() === 0) {
39
+ s.close();
40
+ return { error: "Memory is empty. Run `mneme index` first." };
41
+ }
42
+ return { s, root: meta.rootPath };
43
+ }
44
+ export function registerExecCommands(program) {
45
+ const ex = program.command("exec").description("🏛 EXECUTIVE surface — real Mneme signals framed for a CXO/CRO/CISO. $ figures only from YOUR supplied rate, always labelled. Honest by design (DIAKRISIS): present-tense signals from real history/ledgers, never a forecast.");
46
+ // ── 1. KEY-PERSON RISK (bus-factor / flight risk) — wraps atrophy ──
47
+ ex.command("keyperson")
48
+ .description("Key-person dependency & flight risk: files with NO live expert (bus-factor=1) + knowledge concentration, from git history. --replacement-cost gives a labelled exposure estimate.")
49
+ .option("--replacement-cost <usd>", "your est. cost to re-derive one at-risk file's knowledge (USD).", (v) => parseFloat(v))
50
+ .option("--json", "JSON output.")
51
+ .action(async (opts) => {
52
+ const cwd = process.cwd();
53
+ const o = await openStore(cwd);
54
+ if ("error" in o) {
55
+ out(`✗ ${o.error}`);
56
+ process.exitCode = 1;
57
+ return;
58
+ }
59
+ try {
60
+ const r = people.atrophy(o.s);
61
+ const ghosted = r.stats.ghostedFiles ?? 0;
62
+ const atRisk = r.atRiskFiles.filter((f) => f.tier === "at-risk").length;
63
+ const warn = r.atRiskFiles.filter((f) => f.tier === "warn").length;
64
+ const top = [...r.authors].sort((a, b) => b.knowledgeMass - a.knowledgeMass).slice(0, 5);
65
+ const exposure = typeof opts.replacementCost === "number" ? (ghosted + atRisk) * opts.replacementCost : undefined;
66
+ const receipt = sign(cwd, "exec:keyperson", { ghosted, atRisk, warn, fileCount: r.stats.fileCount });
67
+ if (opts.json) {
68
+ outJson({ ghostedFiles: ghosted, atRiskFiles: atRisk, warnFiles: warn, fileCount: r.stats.fileCount, topConcentration: top.map((a) => ({ name: a.name, email: a.email, knowledgeMass: Math.round(a.knowledgeMass), filesKnown: a.filesKnown })), exposureUSD: exposure, basis: "bus-factor + knowledge-concentration from git history (Ebbinghaus forgetting curve); exposure = YOUR replacement-cost × (ghosted + at-risk file count), not a forecast", signed: receipt });
69
+ return;
70
+ }
71
+ out(`🔑 KEY-PERSON RISK — ${ghosted} ghosted file(s) (no live expert), ${atRisk} at-risk, ${warn} warning, of ${r.stats.fileCount} files`);
72
+ out(` Top knowledge concentration (single points of failure):`);
73
+ for (const a of top)
74
+ out(` • ${a.name || a.email} — knowledge mass ${Math.round(a.knowledgeMass)} across ${a.filesKnown} files`);
75
+ if (exposure !== undefined)
76
+ out(` 💸 exposure estimate: ${usd(exposure)} (your ${usd(opts.replacementCost)}/file × ${ghosted + atRisk} ghosted+at-risk — labelled, not a forecast)`);
77
+ if (receipt)
78
+ out(` ✓ signed`);
79
+ }
80
+ finally {
81
+ o.s.close();
82
+ }
83
+ });
84
+ // ── 2. TALENT MAP (collaboration) — wraps stigmergy ──
85
+ ex.command("talent")
86
+ .description("Talent map: who actually collaborates with whom, derived from git traces (shared files + synchrony + carry-on). Org-chart truth, not self-report.")
87
+ .option("--top <n>", "show top N pairs.", (v) => parseInt(v, 10), 10)
88
+ .option("--json", "JSON output.")
89
+ .action(async (opts) => {
90
+ const cwd = process.cwd();
91
+ if (!(await git.isGitRepo(cwd))) {
92
+ out("✗ Not in a git repo.");
93
+ process.exitCode = 1;
94
+ return;
95
+ }
96
+ const r = stigmergy.analyze(cwd);
97
+ const pairs = r.pairs.slice(0, opts.top ?? 10);
98
+ const receipt = sign(cwd, "exec:talent", { commitsAnalysed: r.commitsAnalysed, pairs: pairs.length });
99
+ if (opts.json) {
100
+ outJson({ commitsAnalysed: r.commitsAnalysed, authorCount: r.authorCount, pairs, basis: "collaboration from git traces (shared files + commits ≤24h apart + carry-on contributions); a present signal, not a prediction", signed: receipt });
101
+ return;
102
+ }
103
+ out(`🤝 TALENT MAP — ${r.authorCount} authors over ${r.commitsAnalysed} commits, top ${pairs.length} collaborating pairs:`);
104
+ for (const p of pairs)
105
+ out(` • ${p.authorA} ⇄ ${p.authorB} — score ${p.stigmergyScore} (shared ${p.sharedFiles}, sync ${p.synchronyHits}, carry-on ${p.carryOnHits})`);
106
+ if (pairs.length === 0)
107
+ out(" (no pairs above the surface threshold yet)");
108
+ if (receipt)
109
+ out(` ✓ signed`);
110
+ });
111
+ // ── 3. GOVERNANCE / promise-debt (tech-debt liability) — wraps promise ──
112
+ ex.command("governance")
113
+ .description("Governance & tech-debt liability: open/stale promises mined from commit + PR text, tracked through git. --debt-cost gives a labelled exposure estimate.")
114
+ .option("--debt-cost <usd>", "your est. carrying cost per open promise (USD).", (v) => parseFloat(v))
115
+ .option("--json", "JSON output.")
116
+ .action(async (opts) => {
117
+ const cwd = process.cwd();
118
+ const o = await openStore(cwd);
119
+ if ("error" in o) {
120
+ out(`✗ ${o.error}`);
121
+ process.exitCode = 1;
122
+ return;
123
+ }
124
+ try {
125
+ const commits = util.loadAllCommits(o.s);
126
+ const r = people.buildPromiseReport(commits, {});
127
+ const t = r.totals;
128
+ const exposure = typeof opts.debtCost === "number" ? (t.open + t.stale) * opts.debtCost : undefined;
129
+ const receipt = sign(cwd, "exec:governance", { open: t.open, stale: t.stale, kept: t.kept, total: t.total });
130
+ if (opts.json) {
131
+ outJson({ open: t.open, stale: t.stale, kept: t.kept, total: t.total, oldestStaleAgeDays: r.oldestStaleAgeDays, exposureUSD: exposure, basis: "promises regex-mined from commit/PR text, tracked through git history; exposure = YOUR carrying-cost × (open + stale), labelled, not a forecast", signed: receipt });
132
+ return;
133
+ }
134
+ out(`📜 GOVERNANCE / TECH-DEBT LIABILITY — ${t.open} open · ${t.stale} stale · ${t.kept} kept (of ${t.total} promises mined from git)`);
135
+ if (exposure !== undefined)
136
+ out(` 💸 exposure estimate: ${usd(exposure)} (your ${usd(opts.debtCost)}/promise × ${t.open + t.stale} open+stale — labelled, not a forecast)`);
137
+ if (receipt)
138
+ out(` ✓ signed`);
139
+ }
140
+ finally {
141
+ o.s.close();
142
+ }
143
+ });
144
+ // ── 4. CAPITAL / VALUE (realized token savings) — wraps treasury ──
145
+ ex.command("burn")
146
+ .description("Realized value: input-context tokens Mneme has actually saved (from the signed ledger) → USD at YOUR vendor price. The asset side of the ledger.")
147
+ .option("--price-per-1k <usd>", "your vendor's price per 1k input tokens (USD).", (v) => parseFloat(v))
148
+ .option("--json", "JSON output.")
149
+ .action(async (opts) => {
150
+ const cwd = process.cwd();
151
+ const p = join(cwd, TREASURY_LEDGER);
152
+ const events = existsSync(p) ? treasury.parseLedger(readFileSync(p, "utf8")) : [];
153
+ const agg = treasury.aggregate(events, opts.pricePer1k !== undefined ? { pricePer1kUSD: opts.pricePer1k } : undefined);
154
+ const receipt = sign(cwd, "exec:burn", { tokensSaved: agg.tokensSaved, events: agg.events });
155
+ if (opts.json) {
156
+ outJson({ ...agg, signed: receipt });
157
+ return;
158
+ }
159
+ out(`💰 REALIZED VALUE — ${agg.tokensSaved.toLocaleString("en-US")} input tokens saved over ${agg.events} reductions (${agg.savedPct}% of fed context)`);
160
+ if (typeof agg.usdSaved === "number")
161
+ out(` ≈ ${usd(agg.usdSaved)} at your ${rate(opts.pricePer1k)}/1k (labelled ≈chars/4 estimate of INPUT context — not a tokenizer count)`);
162
+ else
163
+ out(` (pass --price-per-1k <usd> for a dollar figure at your vendor's price)`);
164
+ if (receipt)
165
+ out(` ✓ signed`);
166
+ });
167
+ // ── 5. ROI projection (pillar 4) — wraps exec.projectRoi over the real ledger ──
168
+ ex.command("roi")
169
+ .description("ROI projection: extrapolate Mneme's MEASURED per-reduction saving rate to YOUR team & usage at YOUR price. Transparent: (measured rate) × (your volume) × (your price).")
170
+ .option("--team <n>", "team size.", (v) => parseInt(v, 10), 0)
171
+ .option("--per-dev <n>", "reduction-eligible events per dev per month.", (v) => parseInt(v, 10), 0)
172
+ .option("--price-per-1k <usd>", "your vendor's price per 1k input tokens (USD).", (v) => parseFloat(v), 0)
173
+ .option("--months <n>", "projection horizon (months).", (v) => parseInt(v, 10), 12)
174
+ .option("--json", "JSON output.")
175
+ .action(async (opts) => {
176
+ const cwd = process.cwd();
177
+ const p = join(cwd, TREASURY_LEDGER);
178
+ const events = existsSync(p) ? treasury.parseLedger(readFileSync(p, "utf8")) : [];
179
+ const agg = treasury.aggregate(events);
180
+ const proj = execCore.projectRoi({
181
+ measuredTokensSaved: agg.tokensSaved, measuredReductions: agg.events,
182
+ teamSize: opts.team ?? 0, reductionsPerDevPerMonth: opts.perDev ?? 0,
183
+ pricePer1kUSD: opts.pricePer1k ?? 0, months: opts.months ?? 12,
184
+ });
185
+ const receipt = sign(cwd, "exec:roi", { projectedUsdSaved: proj.projectedUsdSaved, months: proj.months });
186
+ if (opts.json) {
187
+ outJson({ ...proj, signed: receipt });
188
+ return;
189
+ }
190
+ out(`📈 ROI PROJECTION (${proj.months} months)`);
191
+ out(` measured rate: ${proj.avgTokensPerReduction} tokens saved per reduction (from ${agg.events} realized reductions)`);
192
+ out(` projected: ${proj.projectedReductions.toLocaleString("en-US")} reductions → ${proj.projectedTokensSaved.toLocaleString("en-US")} tokens → ${usd(proj.projectedUsdSaved)} saved`);
193
+ out(` realized so far: ${usd(proj.realizedUsdSaved)}`);
194
+ if (agg.events === 0)
195
+ out(` ⚠ no realized reductions yet — run Mneme (distill/loopguard/nkl) to seed the measured rate; projection is 0 until then.`);
196
+ out(` basis: ${proj.basis}`);
197
+ if (receipt)
198
+ out(` ✓ signed`);
199
+ });
200
+ // ── 6. MCP ATTACK SURFACE (pillar 3, CISO) — wraps skeleton_key ──
201
+ ex.command("mcp-audit")
202
+ .description("Agent MCP attack surface (CISO): discover the MCP servers wired into your agents, score per-server risk, compute the transitive bypass budget. The governed-boundary check.")
203
+ .option("--budget <n>", "risk budget cap.", (v) => parseFloat(v), 5.0)
204
+ .option("--json", "JSON output.")
205
+ .action(async (opts) => {
206
+ const cwd = process.cwd();
207
+ try {
208
+ const a = await skeletonKey.auditMcpConfigs({ budgetCap: opts.budget ?? 5.0 });
209
+ const receipt = sign(cwd, "exec:mcp-audit", { totalServers: a.totalServers, riskBudget: a.riskBudget, withinBudget: a.withinBudget });
210
+ if (opts.json) {
211
+ outJson({ totalServers: a.totalServers, riskBudget: a.riskBudget, budgetCap: a.budgetCap, withinBudget: a.withinBudget, findings: a.findings, summary: a.summary, signed: receipt });
212
+ return;
213
+ }
214
+ out(`🛂 MCP ATTACK SURFACE — ${a.totalServers} server(s), risk budget ${a.riskBudget.toFixed(1)} / ${a.budgetCap.toFixed(1)} ${a.withinBudget ? "✓ within" : "🛑 OVER"}`);
215
+ for (const f of a.findings.slice(0, 10))
216
+ out(` • ${f.server} — ${f.risk?.riskName ?? "unknown"} (severity ${f.risk?.severity ?? "?"}, ${f.source})`);
217
+ if (a.totalServers === 0)
218
+ out(` (no MCP servers discovered in known agent configs)`);
219
+ out(` ${a.summary}`);
220
+ if (!a.withinBudget)
221
+ process.exitCode = 2;
222
+ if (receipt)
223
+ out(` ✓ signed`);
224
+ }
225
+ catch (e) {
226
+ out(`✗ ${e.message}`);
227
+ process.exitCode = 1;
228
+ }
229
+ });
230
+ }
231
+ //# sourceMappingURL=exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/commands/exec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmJA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqgNvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoJA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsgNvD"}
package/dist/index.js CHANGED
@@ -80,6 +80,7 @@ import { registerDistillCommands } from "./commands/distill.js";
80
80
  import { registerSavingsCommands } from "./commands/savings.js";
81
81
  import { registerMapCommands } from "./commands/map.js";
82
82
  import { registerEgressCommands } from "./commands/egress.js";
83
+ import { registerExecCommands } from "./commands/exec.js";
83
84
  import { registerTrustCommands } from "./commands/trust.js";
84
85
  import { registerNuclearCommands } from "./commands/nuclear-cli.js";
85
86
  import { registerOvernightCommand } from "./commands/overnight.js";
@@ -4705,6 +4706,7 @@ export async function run(argv) {
4705
4706
  registerSavingsCommands(program);
4706
4707
  registerMapCommands(program);
4707
4708
  registerEgressCommands(program);
4709
+ registerExecCommands(program);
4708
4710
  // ─── Trust calibrator (v1.31.0) -- per-subsystem precision/recall/band
4709
4711
  registerTrustCommands(program);
4710
4712
  // ─── Wisdom reactor (v1.33.0) -- five nuclear-physics formulas as Mneme metrics