mneme-ai 0.35.0 → 0.36.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.
Files changed (37) hide show
  1. package/bin/mneme.js +20 -0
  2. package/dist/commands/cognitive-twin.d.ts +24 -0
  3. package/dist/commands/cognitive-twin.d.ts.map +1 -0
  4. package/dist/commands/cognitive-twin.js +134 -0
  5. package/dist/commands/cognitive-twin.js.map +1 -0
  6. package/dist/commands/conscience.d.ts +2 -0
  7. package/dist/commands/conscience.d.ts.map +1 -1
  8. package/dist/commands/conscience.dual-jury.test.d.ts +2 -0
  9. package/dist/commands/conscience.dual-jury.test.d.ts.map +1 -0
  10. package/dist/commands/conscience.dual-jury.test.js +87 -0
  11. package/dist/commands/conscience.dual-jury.test.js.map +1 -0
  12. package/dist/commands/conscience.js +85 -0
  13. package/dist/commands/conscience.js.map +1 -1
  14. package/dist/commands/genius.d.ts +2 -0
  15. package/dist/commands/genius.d.ts.map +1 -1
  16. package/dist/commands/genius.js +4 -1
  17. package/dist/commands/genius.js.map +1 -1
  18. package/dist/commands/karma.d.ts +33 -0
  19. package/dist/commands/karma.d.ts.map +1 -0
  20. package/dist/commands/karma.js +159 -0
  21. package/dist/commands/karma.js.map +1 -0
  22. package/dist/commands/palimpsest.d.ts +3 -0
  23. package/dist/commands/palimpsest.d.ts.map +1 -1
  24. package/dist/commands/palimpsest.js +82 -2
  25. package/dist/commands/palimpsest.js.map +1 -1
  26. package/dist/commands/repo-mri.d.ts +20 -0
  27. package/dist/commands/repo-mri.d.ts.map +1 -0
  28. package/dist/commands/repo-mri.js +156 -0
  29. package/dist/commands/repo-mri.js.map +1 -0
  30. package/dist/commands/teach.d.ts +2 -0
  31. package/dist/commands/teach.d.ts.map +1 -1
  32. package/dist/commands/teach.js +4 -2
  33. package/dist/commands/teach.js.map +1 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +65 -2
  36. package/dist/index.js.map +1 -1
  37. package/package.json +5 -5
package/bin/mneme.js CHANGED
@@ -1,2 +1,22 @@
1
1
  #!/usr/bin/env node
2
+ // Suppress the node:sqlite "ExperimentalWarning" only — keep all other warnings.
3
+ // node:sqlite stabilises in Node 24; until then it emits an experimental notice
4
+ // on every load that pollutes our user-facing CLI output. We do this in the
5
+ // shebang script (not in dist code) so the suppression is set up before the
6
+ // SQLite module is first loaded by any downstream import.
7
+ const originalEmit = process.emit;
8
+ process.emit = function (name, data, ...rest) {
9
+ if (
10
+ name === "warning" &&
11
+ typeof data === "object" &&
12
+ data !== null &&
13
+ data.name === "ExperimentalWarning" &&
14
+ typeof data.message === "string" &&
15
+ data.message.includes("SQLite is an experimental feature")
16
+ ) {
17
+ return false;
18
+ }
19
+ return originalEmit.call(this, name, data, ...rest);
20
+ };
21
+
2
22
  import("../dist/index.js").then((m) => m.run(process.argv));
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `mneme cognitive-twin <email>` — author-voice fingerprint + rewriter.
3
+ *
4
+ * No LLM. Stylometric features extracted deterministically from git log.
5
+ * Optional --rewrite "<subject>" mode rewrites a generic commit subject in
6
+ * the author's voice (apply their dominant conv-commit prefix, match their
7
+ * lowercase preference, match their ending-punctuation habit).
8
+ *
9
+ * Strict ethics framing: every speculative output is ✱ shadow-opinion —
10
+ * heuristic, NOT the author's real position. Designed for self-reflection
11
+ * + onboarding ("here's how Alice writes — try matching her voice"), never
12
+ * for performance review.
13
+ */
14
+ export interface CognitiveTwinOptions {
15
+ cwd: string;
16
+ email: string;
17
+ /** Cap commits used for the profile. */
18
+ maxCommits?: number;
19
+ /** Rewrite a generic commit subject in this author's voice. */
20
+ rewrite?: string;
21
+ json?: boolean;
22
+ }
23
+ export declare function cognitiveTwinCommand(opts: CognitiveTwinOptions): Promise<number>;
24
+ //# sourceMappingURL=cognitive-twin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cognitive-twin.d.ts","sourceRoot":"","sources":["../../src/commands/cognitive-twin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0JtF"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * `mneme cognitive-twin <email>` — author-voice fingerprint + rewriter.
3
+ *
4
+ * No LLM. Stylometric features extracted deterministically from git log.
5
+ * Optional --rewrite "<subject>" mode rewrites a generic commit subject in
6
+ * the author's voice (apply their dominant conv-commit prefix, match their
7
+ * lowercase preference, match their ending-punctuation habit).
8
+ *
9
+ * Strict ethics framing: every speculative output is ✱ shadow-opinion —
10
+ * heuristic, NOT the author's real position. Designed for self-reflection
11
+ * + onboarding ("here's how Alice writes — try matching her voice"), never
12
+ * for performance review.
13
+ */
14
+ import kleur from "kleur";
15
+ import { git, twin as twinCore } from "@mneme-ai/core";
16
+ import { ui, header, section, kv, divider, nextSteps } from "../ui.js";
17
+ export async function cognitiveTwinCommand(opts) {
18
+ if (!(await git.isGitRepo(opts.cwd))) {
19
+ ui.error("Not in a git repo. Run `mneme init` first.");
20
+ return 1;
21
+ }
22
+ if (!opts.json)
23
+ ui.banner();
24
+ let voice;
25
+ try {
26
+ voice = await twinCore.profileAuthor({
27
+ cwd: opts.cwd,
28
+ email: opts.email,
29
+ maxCommits: opts.maxCommits,
30
+ });
31
+ }
32
+ catch (err) {
33
+ ui.error(`Twin profile failed: ${err.message}`);
34
+ return 1;
35
+ }
36
+ if (!voice) {
37
+ ui.error(`No commits found for ${opts.email}.`);
38
+ ui.dim("Tip: emails are case-sensitive in git. Try `git log --all --format='%ae' | sort -u` to find the exact spelling.");
39
+ return 1;
40
+ }
41
+ if (opts.json) {
42
+ const payload = { voice };
43
+ if (opts.rewrite) {
44
+ payload.rewrite = twinCore.rewriteInVoice(voice, opts.rewrite);
45
+ }
46
+ process.stdout.write(JSON.stringify(payload, null, 2) + "\n");
47
+ return 0;
48
+ }
49
+ process.stdout.write(header("🪞", `Cognitive Twin — ${voice.name}`, `stylometric profile (heuristic, no LLM) · ${voice.sampleSize} commits · fingerprint ${voice.fingerprint}`, "match the author's voice when reviewing or writing in their style") + "\n");
50
+ // Length stats
51
+ process.stdout.write("\n" +
52
+ section("Subject length") +
53
+ "\n" +
54
+ kv("avg / p25 / p75", `${voice.subjectLengthAvg} chars · ${voice.subjectLengthP25} - ${voice.subjectLengthP75} (mid-50%)`) +
55
+ "\n");
56
+ // Conv-commit + prefixes
57
+ process.stdout.write("\n" + section("Conventional-commit usage") + "\n" + kv("conv-commit %", `${voice.convCommitPct}%`) + "\n");
58
+ if (voice.topPrefixes.length > 0) {
59
+ process.stdout.write(" " + kleur.gray("top prefixes:") + "\n");
60
+ for (const p of voice.topPrefixes) {
61
+ process.stdout.write(` ${kleur.bold(p.prefix.padEnd(8))} ${kleur.gray(`${p.count}× (${p.pct}%)`)}\n`);
62
+ }
63
+ }
64
+ // Openers
65
+ if (voice.topOpeners.length > 0) {
66
+ process.stdout.write("\n" + section("Opening words (after any prefix)") + "\n");
67
+ process.stdout.write(" " +
68
+ voice.topOpeners
69
+ .map((o) => `${kleur.bold(o.word)} ${kleur.gray(`(${o.count})`)}`)
70
+ .join(" · ") +
71
+ "\n");
72
+ }
73
+ // Phrases
74
+ if (voice.topPhrases.length > 0) {
75
+ process.stdout.write("\n" + section("Recurring phrases") + "\n");
76
+ for (const p of voice.topPhrases.slice(0, 8)) {
77
+ process.stdout.write(` ${kleur.cyan(`"${p.phrase}"`)} ${kleur.gray(`× ${p.count}`)}\n`);
78
+ }
79
+ }
80
+ // Style markers
81
+ process.stdout.write("\n" +
82
+ section("Style markers") +
83
+ "\n" +
84
+ kv("em-dash subjects", `${voice.punctuation.emDashPct}%`) +
85
+ "\n" +
86
+ kv("ends with period", `${voice.punctuation.endsWithPeriodPct}%`) +
87
+ "\n" +
88
+ kv("paren scope (foo:)", `${voice.punctuation.parenScopePct}%`) +
89
+ "\n" +
90
+ kv("lowercase content", `${voice.lowercasePct}%`) +
91
+ "\n" +
92
+ kv("body uses bullets", `${voice.bulletBodyPct}%`) +
93
+ "\n" +
94
+ kv("avg body lines", String(voice.bodyLineAvg)) +
95
+ "\n");
96
+ if (voice.firstSeen && voice.lastSeen) {
97
+ process.stdout.write("\n" +
98
+ section("Active span") +
99
+ "\n" +
100
+ kv("first commit", voice.firstSeen) +
101
+ "\n" +
102
+ kv("last commit", voice.lastSeen) +
103
+ "\n");
104
+ }
105
+ // Rewrite mode
106
+ if (opts.rewrite) {
107
+ const r = twinCore.rewriteInVoice(voice, opts.rewrite);
108
+ process.stdout.write("\n" +
109
+ section("Rewrite in voice") +
110
+ " " +
111
+ kleur.gray(`(✱ shadow-opinion · confidence ${(r.confidence * 100).toFixed(0)}%)`) +
112
+ "\n");
113
+ process.stdout.write(` ${kleur.gray("input: ")} ${kleur.white(opts.rewrite)}\n`);
114
+ process.stdout.write(` ${kleur.gray("rewritten:")} ${kleur.cyan(r.rewritten)}\n`);
115
+ if (r.rules.length > 0) {
116
+ process.stdout.write(` ${kleur.gray("rules: ")} ${kleur.gray(r.rules.join(", "))}\n`);
117
+ }
118
+ process.stdout.write("\n");
119
+ }
120
+ process.stdout.write("\n" + divider("📘 How to read") + "\n");
121
+ process.stdout.write(" " +
122
+ kleur.gray("Stylometric profile, computed from git log only. ✱ shadow-opinion: rewrites are heuristic\n" +
123
+ " templates assembled from the author's habits, NOT their real opinions. Use for onboarding\n" +
124
+ " ('match your team's voice'), continuity ('what would Alice prefer?'), or self-reflection.\n" +
125
+ " Do NOT impersonate. Do NOT use for performance review.") +
126
+ "\n\n");
127
+ process.stdout.write(nextSteps([
128
+ { cmd: `mneme cognitive-twin ${opts.email} --rewrite "<subject>"`, why: "rewrite a generic commit subject in this voice" },
129
+ { cmd: `mneme dna ${opts.email}`, why: "the broader DNA dossier (hours, file affinity, vocabulary)" },
130
+ { cmd: `mneme passport ${opts.email}`, why: "full engineer passport — DNA + influence + atrophy" },
131
+ ]) + "\n");
132
+ return 0;
133
+ }
134
+ //# sourceMappingURL=cognitive-twin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cognitive-twin.js","sourceRoot":"","sources":["../../src/commands/cognitive-twin.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export interface ConscienceCommandOptions {
10
10
  recencyDays?: number;
11
11
  topN?: number;
12
12
  json?: boolean;
13
+ /** Switch to dual-jury mode — show prosecution + defense views from real history. */
14
+ dualJury?: boolean;
13
15
  }
14
16
  export declare function conscienceCommand(opts: ConscienceCommandOptions): Promise<number>;
15
17
  //# sourceMappingURL=conscience.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conscience.d.ts","sourceRoot":"","sources":["../../src/commands/conscience.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAYD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwEvF"}
1
+ {"version":3,"file":"conscience.d.ts","sourceRoot":"","sources":["../../src/commands/conscience.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAYD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoFvF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=conscience.dual-jury.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conscience.dual-jury.test.d.ts","sourceRoot":"","sources":["../../src/commands/conscience.dual-jury.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Dual-jury logic — verify prosecution/defense partitioning + verdict mapping.
3
+ *
4
+ * The full conscience command needs a git repo + index, so this test exercises
5
+ * the pure logic via a tiny adapter that mimics the related-commit shape.
6
+ */
7
+ import { describe, expect, it } from "vitest";
8
+ function buildDualJury(related) {
9
+ const prosecution = related
10
+ .filter((r) => r.incidentCount > 0)
11
+ .sort((a, b) => b.riskScore - a.riskScore)
12
+ .slice(0, 3);
13
+ const defense = related
14
+ .filter((r) => r.incidentCount === 0)
15
+ .sort((a, b) => b.fileOverlapRatio - a.fileOverlapRatio)
16
+ .slice(0, 3);
17
+ const prosStrength = prosecution.reduce((s, r) => s + r.riskScore, 0);
18
+ const defStrength = defense.reduce((s, r) => s + r.fileOverlapRatio, 0);
19
+ const total = prosStrength + defStrength;
20
+ const verdictScore = total > 0 ? (prosStrength - defStrength) / total : 0;
21
+ let verdict;
22
+ if (verdictScore > 0.4)
23
+ verdict = "block";
24
+ else if (verdictScore > -0.1)
25
+ verdict = "caution";
26
+ else
27
+ verdict = "clear";
28
+ return { prosecution, defense, verdictScore, verdict, totalCommits: related.length };
29
+ }
30
+ const c = (hash, riskScore, overlap, incidents = 0) => ({
31
+ riskScore,
32
+ fileOverlapRatio: overlap,
33
+ incidentCount: incidents,
34
+ incidentIds: incidents > 0 ? [`INC-${hash}`] : [],
35
+ commit: { hash, shortHash: hash.slice(0, 7), subject: `subject for ${hash}`, authorDate: "2025-01-01" },
36
+ });
37
+ describe("conscience dual-jury", () => {
38
+ it("partitions prosecution (incidents) and defense (clean)", () => {
39
+ const related = [
40
+ c("aaa", 0.9, 0.8, 2),
41
+ c("bbb", 0.6, 0.5, 0),
42
+ c("ccc", 0.4, 0.7, 1),
43
+ ];
44
+ const j = buildDualJury(related);
45
+ expect(j.prosecution.map((p) => p.commit.hash)).toEqual(["aaa", "ccc"]);
46
+ expect(j.defense.map((d) => d.commit.hash)).toEqual(["bbb"]);
47
+ });
48
+ it("returns verdict=block when prosecution dominates", () => {
49
+ const related = [c("a", 0.95, 0.9, 3), c("b", 0.85, 0.8, 2)];
50
+ const j = buildDualJury(related);
51
+ expect(j.verdict).toBe("block");
52
+ expect(j.verdictScore).toBeGreaterThan(0.4);
53
+ });
54
+ it("returns verdict=clear when defense dominates", () => {
55
+ const related = [c("a", 0.0, 0.9, 0), c("b", 0.0, 0.8, 0), c("c", 0.0, 0.7, 0)];
56
+ const j = buildDualJury(related);
57
+ expect(j.verdict).toBe("clear");
58
+ expect(j.verdictScore).toBeLessThan(-0.1);
59
+ });
60
+ it("returns verdict=caution when balanced (prosecution and defense roughly equal)", () => {
61
+ // Prosecution risk 0.5, defense overlap 0.5 → score = 0 → caution band [-0.1, 0.4]
62
+ const related = [c("a", 0.5, 0.5, 1), c("b", 0.0, 0.5, 0)];
63
+ const j = buildDualJury(related);
64
+ expect(j.verdict).toBe("caution");
65
+ });
66
+ it("returns verdict=caution when no related commits", () => {
67
+ const j = buildDualJury([]);
68
+ expect(j.verdict).toBe("caution");
69
+ expect(j.verdictScore).toBe(0);
70
+ expect(j.prosecution).toHaveLength(0);
71
+ expect(j.defense).toHaveLength(0);
72
+ });
73
+ it("caps prosecution + defense at 3 each", () => {
74
+ const related = [
75
+ c("a", 0.9, 0.5, 1),
76
+ c("b", 0.8, 0.5, 1),
77
+ c("c", 0.7, 0.5, 1),
78
+ c("d", 0.6, 0.5, 1),
79
+ c("e", 0.5, 0.5, 1),
80
+ ];
81
+ const j = buildDualJury(related);
82
+ expect(j.prosecution).toHaveLength(3);
83
+ // The strongest 3 by riskScore should be picked
84
+ expect(j.prosecution[0].commit.hash).toBe("a");
85
+ });
86
+ });
87
+ //# sourceMappingURL=conscience.dual-jury.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conscience.dual-jury.test.js","sourceRoot":"","sources":["../../src/commands/conscience.dual-jury.test.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,17 @@ export async function conscienceCommand(opts) {
71
71
  }
72
72
  related.sort((a, b) => b.riskScore - a.riskScore);
73
73
  const top = related.slice(0, opts.topN ?? 8);
74
+ if (opts.dualJury) {
75
+ const jury = buildDualJury(related);
76
+ if (opts.json) {
77
+ process.stdout.write(JSON.stringify({ files, jury }, null, 2) + "\n");
78
+ s.close();
79
+ return 0;
80
+ }
81
+ printDualJury(files, jury);
82
+ s.close();
83
+ return 0;
84
+ }
74
85
  if (opts.json) {
75
86
  process.stdout.write(JSON.stringify({ files, top }, null, 2) + "\n");
76
87
  s.close();
@@ -80,6 +91,80 @@ export async function conscienceCommand(opts) {
80
91
  s.close();
81
92
  return 0;
82
93
  }
94
+ function buildDualJury(related) {
95
+ // Prosecution: commits with the same files that DID cause incidents.
96
+ const prosecution = related
97
+ .filter((r) => r.incidentCount > 0)
98
+ .sort((a, b) => b.riskScore - a.riskScore)
99
+ .slice(0, 3);
100
+ // Defense: commits with the same files that did NOT cause incidents.
101
+ const defense = related
102
+ .filter((r) => r.incidentCount === 0)
103
+ .sort((a, b) => b.fileOverlapRatio - a.fileOverlapRatio)
104
+ .slice(0, 3);
105
+ const prosStrength = prosecution.reduce((s, r) => s + r.riskScore, 0);
106
+ const defStrength = defense.reduce((s, r) => s + r.fileOverlapRatio, 0);
107
+ const total = prosStrength + defStrength;
108
+ const verdictScore = total > 0 ? (prosStrength - defStrength) / total : 0;
109
+ let verdict;
110
+ if (verdictScore > 0.4)
111
+ verdict = "block";
112
+ else if (verdictScore > -0.1)
113
+ verdict = "caution";
114
+ else
115
+ verdict = "clear";
116
+ return {
117
+ prosecution,
118
+ defense,
119
+ verdictScore,
120
+ verdict,
121
+ totalCommits: related.length,
122
+ };
123
+ }
124
+ function printDualJury(files, jury) {
125
+ ui.banner();
126
+ process.stdout.write(`${kleur.bold().cyan("⚖ Conscience — dual jury")} ${kleur.gray(`(${files.length} file${files.length === 1 ? "" : "s"} changing)`)}\n`);
127
+ process.stdout.write(` ${kleur.gray("Two arguments from your repo's REAL history. The verdict is yours.")}\n\n`);
128
+ // Prosecution
129
+ process.stdout.write(` ${kleur.red().bold("✗ Prosecution")} ${kleur.gray("— precedents where similar changes caused incidents")}\n\n`);
130
+ if (jury.prosecution.length === 0) {
131
+ process.stdout.write(` ${kleur.gray("(none — no similar change has caused a tracked incident)")}\n\n`);
132
+ }
133
+ else {
134
+ for (const r of jury.prosecution) {
135
+ const c = r.commit;
136
+ process.stdout.write(` ${kleur.red("●")} ${kleur.bold((c.shortHash || c.hash.slice(0, 7)).slice(0, 7))} ${kleur.gray(`[${c.authorDate.slice(0, 10)}]`)}\n` +
137
+ ` ${kleur.white(c.subject)}\n` +
138
+ ` ${kleur.red(`→ ${r.incidentCount} incident${r.incidentCount === 1 ? "" : "s"} followed: ${r.incidentIds.join(", ")}`)}\n` +
139
+ ` ${kleur.gray(`overlap ${(r.fileOverlapRatio * 100).toFixed(0)}% · risk ${r.riskScore.toFixed(2)}`)}\n\n`);
140
+ }
141
+ }
142
+ // Defense
143
+ process.stdout.write(` ${kleur.green().bold("✓ Defense")} ${kleur.gray("— precedents where the same files shipped without incident")}\n\n`);
144
+ if (jury.defense.length === 0) {
145
+ process.stdout.write(` ${kleur.gray("(none — no clean precedent in the recency window)")}\n\n`);
146
+ }
147
+ else {
148
+ for (const r of jury.defense) {
149
+ const c = r.commit;
150
+ process.stdout.write(` ${kleur.green("●")} ${kleur.bold((c.shortHash || c.hash.slice(0, 7)).slice(0, 7))} ${kleur.gray(`[${c.authorDate.slice(0, 10)}]`)}\n` +
151
+ ` ${kleur.white(c.subject)}\n` +
152
+ ` ${kleur.green(`→ shipped clean — no incidents traced back`)}\n` +
153
+ ` ${kleur.gray(`overlap ${(r.fileOverlapRatio * 100).toFixed(0)}%`)}\n\n`);
154
+ }
155
+ }
156
+ // Verdict
157
+ const verdictColor = jury.verdict === "block" ? kleur.red().bold : jury.verdict === "caution" ? kleur.yellow().bold : kleur.green().bold;
158
+ const verdictWord = jury.verdict === "block" ? "BLOCK" : jury.verdict === "caution" ? "CAUTION" : "CLEAR";
159
+ process.stdout.write(` ${kleur.bold().magenta("⚖ Verdict")} ${verdictColor(`[${verdictWord}]`)}\n`);
160
+ process.stdout.write(` ${kleur.gray(`prosecution strength: ${jury.prosecution.length} cases · defense strength: ${jury.defense.length} cases · ` +
161
+ `weighted score: ${jury.verdictScore >= 0 ? "+" : ""}${jury.verdictScore.toFixed(2)}`)}\n\n`);
162
+ // How to read
163
+ process.stdout.write(` ${kleur.gray("─".repeat(64))}\n` +
164
+ ` ${kleur.gray("📘 How to read: prosecution and defense are pulled from REAL history — every\n" +
165
+ " precedent shown actually shipped. Verdict is heuristic; you are the final judge.\n" +
166
+ " CLEAR ≠ safe; BLOCK ≠ veto. Use this as the strongest counter-argument check.")}\n`);
167
+ }
83
168
  function findCorrelatedIncidents(s, commitHash) {
84
169
  const rows = s.db
85
170
  .prepare(`SELECT i.id AS id, i.title AS title FROM correlations c
@@ -1 +1 @@
1
- {"version":3,"file":"conscience.js","sourceRoot":"","sources":["../../src/commands/conscience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conscience.js","sourceRoot":"","sources":["../../src/commands/conscience.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export interface GeniusCommandOptions {
10
10
  json?: boolean;
11
11
  /** Refuse to run if any LLM would be called. */
12
12
  noLlm?: boolean;
13
+ /** Auto-pull the Ollama model if it isn't installed (one-time download). */
14
+ autoPull?: boolean;
13
15
  }
14
16
  export declare function geniusCommand(opts: GeniusCommandOptions): Promise<number>;
15
17
  //# sourceMappingURL=genius.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"genius.d.ts","sourceRoot":"","sources":["../../src/commands/genius.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAwCD,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0F/E"}
1
+ {"version":3,"file":"genius.d.ts","sourceRoot":"","sources":["../../src/commands/genius.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAwCD,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4F/E"}
@@ -76,11 +76,14 @@ export async function geniusCommand(opts) {
76
76
  enricher = await resolveEnricher({
77
77
  provider: opts.provider ?? "auto",
78
78
  model: opts.model,
79
+ autoPull: opts.autoPull,
80
+ onPullProgress: (line) => ui.step("ollama-pull", line),
79
81
  });
80
82
  }
81
83
  catch (err) {
82
84
  ui.error(`No LLM available: ${err.message}`);
83
- ui.dim("Install Ollama: https://ollama.com → ollama pull llama3.2:3b");
85
+ if (!opts.autoPull)
86
+ ui.dim("Tip: re-run with --auto-pull to download the default model now.");
84
87
  return 1;
85
88
  }
86
89
  ui.step("llm", enricher.name);
@@ -1 +1 @@
1
- {"version":3,"file":"genius.js","sourceRoot":"","sources":["../../src/commands/genius.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genius.js","sourceRoot":"","sources":["../../src/commands/genius.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `mneme karma` — TODO/FIXME debt as an accumulating ledger.
3
+ *
4
+ * This is the rare metric every code-quality tool *almost* tracks but never
5
+ * actually surfaces. Static analyzers count TODOs at HEAD ("you have 1,243
6
+ * TODOs"). git blame can find who wrote a single TODO. Neither tracks the
7
+ * *flow*: are we incurring debt faster than we settle it, and who personally
8
+ * owns the oldest unkept promises?
9
+ *
10
+ * Mneme reads every commit's diff for `TODO|FIXME|XXX|HACK` markers, treats
11
+ * each addition as a *debit* and each removal as a *credit*, and compounds
12
+ * the open balance with age. A 6-month-old TODO weighs ~2.3× a 1-week-old
13
+ * one (log10 1+age curve — sub-linear).
14
+ *
15
+ * Honest framing: this is a heuristic. Lines move, get edited, get reflowed.
16
+ * The output renders 📘 How to read with explicit caveats.
17
+ */
18
+ export interface KarmaCommandOptions {
19
+ cwd: string;
20
+ /** Top-N authors in the leaderboard. */
21
+ topN?: number;
22
+ /** Filter to a specific author email. */
23
+ authorEmail?: string;
24
+ /** Restrict scan to a path prefix. */
25
+ pathPrefix?: string;
26
+ /** Cap commits scanned (most-recent N). */
27
+ maxCommits?: number;
28
+ /** ISO-8601 since-cutoff. */
29
+ since?: string;
30
+ json?: boolean;
31
+ }
32
+ export declare function karmaCommand(opts: KarmaCommandOptions): Promise<number>;
33
+ //# sourceMappingURL=karma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karma.d.ts","sourceRoot":"","sources":["../../src/commands/karma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmJ7E"}