mneme-ai 0.14.0 → 0.16.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,11 @@
1
+ export interface GuardianCommandOptions {
2
+ cwd: string;
3
+ watch?: boolean;
4
+ intervalSeconds?: number;
5
+ apply?: boolean;
6
+ json?: boolean;
7
+ /** Stop after N iterations (testing / cron-style runs). */
8
+ maxIterations?: number;
9
+ }
10
+ export declare function guardianCommand(opts: GuardianCommandOptions): Promise<number>;
11
+ //# sourceMappingURL=guardian.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardian.d.ts","sourceRoot":"","sources":["../../src/commands/guardian.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAoFjB"}
@@ -0,0 +1,248 @@
1
+ /**
2
+ * `mneme guardian` — the 24/7 self-healing engine.
3
+ *
4
+ * while (true) {
5
+ * diagnose();
6
+ * fix();
7
+ * learn();
8
+ * sleep(intervalMs);
9
+ * }
10
+ *
11
+ * Modes:
12
+ * --once run a single diagnose pass and exit
13
+ * --watch run forever (default), polling every --interval seconds
14
+ * --apply apply auto-policy findings (otherwise just observe)
15
+ * --json structured output
16
+ *
17
+ * Safe by default: without --apply, the daemon only DIAGNOSES; it logs
18
+ * everything it WOULD do but applies nothing. Pass --apply to enable the
19
+ * auto-fix loop.
20
+ */
21
+ import kleur from "kleur";
22
+ import { spawn } from "node:child_process";
23
+ import { writeFileSync, existsSync, mkdirSync, appendFileSync, readFileSync } from "node:fs";
24
+ import { dirname } from "node:path";
25
+ import { git, store, guardian, indexer, util, } from "@mneme-ai/core";
26
+ import { dbPath } from "../paths.js";
27
+ import { ui } from "../ui.js";
28
+ export async function guardianCommand(opts) {
29
+ if (!(await git.isGitRepo(opts.cwd))) {
30
+ ui.error("Not in a git repo. Run `mneme init` first.");
31
+ return 1;
32
+ }
33
+ const meta = await git.getRepoMeta(opts.cwd);
34
+ const intervalMs = (opts.intervalSeconds ?? 300) * 1000;
35
+ const watch = opts.watch ?? false;
36
+ const apply = opts.apply ?? false;
37
+ const maxIter = opts.maxIterations ?? (watch ? Infinity : 1);
38
+ if (!opts.json) {
39
+ ui.banner();
40
+ process.stdout.write(`\n ${kleur.bold().cyan("🛡 Guardian — 24/7 self-healing daemon")}\n`);
41
+ process.stdout.write(` ${kleur.gray("─".repeat(64))}\n\n`);
42
+ process.stdout.write(` ${kleur.gray("mode ")} ${watch ? kleur.green("watch") : kleur.cyan("once")}\n`);
43
+ process.stdout.write(` ${kleur.gray("apply ")} ${apply ? kleur.green("yes (auto-fix enabled)") : kleur.yellow("no (observe-only)")}\n`);
44
+ if (watch) {
45
+ process.stdout.write(` ${kleur.gray("interval")} ${opts.intervalSeconds ?? 300}s\n`);
46
+ }
47
+ process.stdout.write("\n");
48
+ }
49
+ let iteration = 0;
50
+ let lastQualityScore = null;
51
+ while (iteration < maxIter) {
52
+ iteration += 1;
53
+ const tickStart = Date.now();
54
+ const input = await collectInput(opts.cwd, meta.rootPath, lastQualityScore);
55
+ const report = guardian.diagnose(input);
56
+ if (input.quality)
57
+ lastQualityScore = input.quality.overallScore;
58
+ appendLog(meta.rootPath, {
59
+ ts: report.generatedAt,
60
+ iteration,
61
+ summary: report.summary,
62
+ findings: report.findings.map((f) => ({
63
+ kind: f.kind,
64
+ severity: f.severity,
65
+ policy: f.policy,
66
+ message: f.message,
67
+ action: f.suggestedAction,
68
+ })),
69
+ });
70
+ if (opts.json) {
71
+ process.stdout.write(JSON.stringify({ iteration, report }, null, 2) + "\n");
72
+ }
73
+ else {
74
+ renderTick(iteration, report);
75
+ }
76
+ // Auto-apply phase
77
+ if (apply) {
78
+ const actions = guardian.selectAutoActions(report);
79
+ for (const action of actions) {
80
+ if (!action.suggestedAction)
81
+ continue;
82
+ if (!opts.json) {
83
+ process.stdout.write(` ${kleur.cyan("→")} applying: ${kleur.bold(action.suggestedAction)}\n`);
84
+ }
85
+ const ok = await runShell(action.suggestedAction, opts.cwd);
86
+ appendLog(meta.rootPath, {
87
+ ts: new Date().toISOString(),
88
+ iteration,
89
+ appliedAction: action.suggestedAction,
90
+ ok,
91
+ finding: action.kind,
92
+ });
93
+ }
94
+ }
95
+ if (!watch || iteration >= maxIter)
96
+ break;
97
+ const elapsed = Date.now() - tickStart;
98
+ const sleepMs = Math.max(0, intervalMs - elapsed);
99
+ if (!opts.json) {
100
+ process.stdout.write(` ${kleur.gray(`sleeping ${Math.round(sleepMs / 1000)}s until next tick…`)}\n\n`);
101
+ }
102
+ await sleep(sleepMs);
103
+ }
104
+ return 0;
105
+ }
106
+ async function collectInput(cwd, rootPath, lastQualityScore) {
107
+ // ── Head commits via git ─────────────────────────────────────────
108
+ let headCommits = [];
109
+ try {
110
+ const raw = await git.execGitOk(["log", "--no-color", "-n", "200", "--pretty=format:%H%x09%aI%x09%an%x09%s"], { cwd });
111
+ for (const line of raw.trim().split("\n")) {
112
+ const [hash, date, author, ...subjectParts] = line.split("\t");
113
+ if (!hash)
114
+ continue;
115
+ headCommits.push({
116
+ hash,
117
+ shortHash: hash.slice(0, 7),
118
+ authorName: author || "",
119
+ authorEmail: "",
120
+ authorDate: date || "",
121
+ committerDate: date || "",
122
+ subject: subjectParts.join("\t") || "",
123
+ body: "",
124
+ files: [],
125
+ parents: [],
126
+ });
127
+ }
128
+ }
129
+ catch {
130
+ // git may fail in shallow / detached state — proceed with empty head
131
+ }
132
+ // ── Indexed commits + chunks via store ───────────────────────────
133
+ let indexedCommits = [];
134
+ let chunks = [];
135
+ let storeSchemaVersion = 0;
136
+ let feedbackEventsSinceCalibrate = 0;
137
+ let quality = null;
138
+ if (existsSync(dbPath(rootPath))) {
139
+ const s = new store.MnemeStore(dbPath(rootPath));
140
+ try {
141
+ indexedCommits = util.loadAllCommits(s);
142
+ const rows = s.db
143
+ .prepare("SELECT id, commit_hash, text, kind, embedding FROM chunks")
144
+ .all();
145
+ chunks = rows.map((r) => ({
146
+ id: String(r.id),
147
+ commitHash: String(r.commit_hash),
148
+ text: String(r.text ?? ""),
149
+ kind: r.kind,
150
+ embedding: r.embedding instanceof Buffer && r.embedding.length > 0
151
+ ? new Float32Array(r.embedding.buffer, r.embedding.byteOffset, r.embedding.byteLength / 4)
152
+ : undefined,
153
+ }));
154
+ storeSchemaVersion = Number(s.getMeta("schema_version") ?? 3);
155
+ feedbackEventsSinceCalibrate = Number(s.getMeta("feedback_since_calibrate") ?? 0);
156
+ quality = indexer.analyzeIndexQuality(indexedCommits, chunks);
157
+ }
158
+ finally {
159
+ s.close();
160
+ }
161
+ }
162
+ return {
163
+ headCommits,
164
+ indexedCommits,
165
+ quality,
166
+ lastQualityScore,
167
+ storeSchemaVersion,
168
+ expectedSchemaVersion: 3,
169
+ feedbackEventsSinceCalibrate,
170
+ };
171
+ }
172
+ function renderTick(iteration, report) {
173
+ const ts = report.generatedAt.replace("T", " ").slice(0, 19);
174
+ process.stdout.write(` ${kleur.gray("┄┄┄ tick #" + iteration + " · " + ts)}\n`);
175
+ if (report.findings.length === 0) {
176
+ process.stdout.write(` ${kleur.green("✓")} ${kleur.gray("all systems healthy — no findings")}\n`);
177
+ return;
178
+ }
179
+ for (const f of report.findings) {
180
+ const sev = severityColor(f.severity);
181
+ const policy = policyLabel(f.policy);
182
+ process.stdout.write(` ${sev} ${policy} ${f.message}\n`);
183
+ if (f.suggestedAction) {
184
+ process.stdout.write(` ${kleur.gray("→")} ${kleur.cyan(f.suggestedAction)}\n`);
185
+ }
186
+ }
187
+ process.stdout.write(` ${kleur.gray(`(${report.summary.findings} findings · ${report.summary.autoActions} auto · ${report.summary.recommendations} suggested)`)}\n`);
188
+ }
189
+ function severityColor(sev) {
190
+ switch (sev) {
191
+ case "critical":
192
+ return kleur.red().bold("CRIT");
193
+ case "high":
194
+ return kleur.red("HIGH");
195
+ case "medium":
196
+ return kleur.yellow("MED ");
197
+ case "low":
198
+ return kleur.cyan("LOW ");
199
+ default:
200
+ return kleur.gray(sev);
201
+ }
202
+ }
203
+ function policyLabel(policy) {
204
+ switch (policy) {
205
+ case "auto":
206
+ return kleur.green().bold("[AUTO] ");
207
+ case "recommended":
208
+ return kleur.cyan().bold("[SUGGEST]");
209
+ case "observe":
210
+ return kleur.gray("[OBSERVE]");
211
+ default:
212
+ return kleur.gray(`[${policy}]`);
213
+ }
214
+ }
215
+ function appendLog(rootPath, entry) {
216
+ const logDir = `${rootPath}/.mneme`;
217
+ if (!existsSync(logDir))
218
+ mkdirSync(logDir, { recursive: true });
219
+ const logPath = `${logDir}/guardian.jsonl`;
220
+ appendFileSync(logPath, JSON.stringify(entry) + "\n");
221
+ }
222
+ function sleep(ms) {
223
+ return new Promise((resolve) => setTimeout(resolve, ms));
224
+ }
225
+ function runShell(cmd, cwd) {
226
+ return new Promise((resolve) => {
227
+ // Run via the same node binary + dist entry to avoid PATH issues during a long-lived daemon.
228
+ const parts = cmd.split(/\s+/);
229
+ if (parts[0] !== "mneme") {
230
+ // Only auto-apply mneme commands. Anything else is observed only.
231
+ resolve(false);
232
+ return;
233
+ }
234
+ const args = parts.slice(1);
235
+ const proc = spawn("node", ["packages/cli/bin/mneme.js", ...args], {
236
+ cwd,
237
+ stdio: "ignore",
238
+ shell: false,
239
+ });
240
+ proc.on("exit", (code) => resolve(code === 0));
241
+ proc.on("error", () => resolve(false));
242
+ });
243
+ }
244
+ // Make sure unused imports aren't tree-shaken away if a future version needs them.
245
+ void writeFileSync;
246
+ void readFileSync;
247
+ void dirname;
248
+ //# sourceMappingURL=guardian.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardian.js","sourceRoot":"","sources":["../../src/commands/guardian.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@ export interface IndexCommandOptions {
10
10
  aggressiveRedact?: boolean;
11
11
  /** Force hash embedder; refuse Ollama/OpenAI even if requested. */
12
12
  noLlm?: boolean;
13
+ /** Skip indexing — just analyze the existing index quality. */
14
+ analyze?: boolean;
15
+ /** JSON output (only with --analyze). */
16
+ json?: boolean;
13
17
  }
14
18
  export declare function indexCommand(opts: IndexCommandOptions): Promise<number>;
15
19
  //# sourceMappingURL=index-cmd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/index-cmd.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoG7E"}
1
+ {"version":3,"file":"index-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/index-cmd.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmL7E"}
@@ -1,4 +1,4 @@
1
- import { git, indexer, store } from "@mneme-ai/core";
1
+ import { git, indexer, store, util } from "@mneme-ai/core";
2
2
  import { resolveEmbedder } from "@mneme-ai/embeddings";
3
3
  import { dbPath } from "../paths.js";
4
4
  import { readConfig, writeConfig } from "../config.js";
@@ -6,13 +6,68 @@ import { ui, formatProgress } from "../ui.js";
6
6
  import { isNoLlm } from "../no-llm.js";
7
7
  import kleur from "kleur";
8
8
  export async function indexCommand(opts) {
9
- ui.banner();
10
9
  if (!(await git.isGitRepo(opts.cwd))) {
11
10
  ui.error("Not in a git repo. Run `mneme init` first.");
12
11
  return 1;
13
12
  }
14
13
  const meta = await git.getRepoMeta(opts.cwd);
15
14
  const cfg = readConfig(meta.rootPath);
15
+ // ── --analyze: don't re-index. Inspect what we already have. ──────────
16
+ if (opts.analyze) {
17
+ const s = new store.MnemeStore(dbPath(meta.rootPath));
18
+ const commits = util.loadAllCommits(s);
19
+ const chunks = s.db
20
+ .prepare("SELECT id, commit_hash, text, kind, embedding FROM chunks")
21
+ .all().map((r) => ({
22
+ id: String(r.id),
23
+ commitHash: String(r.commit_hash),
24
+ text: String(r.text ?? ""),
25
+ kind: r.kind,
26
+ embedding: r.embedding instanceof Buffer && r.embedding.length > 0
27
+ ? new Float32Array(r.embedding.buffer, r.embedding.byteOffset, r.embedding.byteLength / 4)
28
+ : undefined,
29
+ }));
30
+ const report = indexer.analyzeIndexQuality(commits, chunks);
31
+ s.close();
32
+ if (opts.json) {
33
+ process.stdout.write(JSON.stringify(report, null, 2) + "\n");
34
+ return 0;
35
+ }
36
+ ui.banner();
37
+ process.stdout.write(`\n ${kleur.bold().cyan("📊 Index Quality — health check")}\n`);
38
+ process.stdout.write(` ${kleur.gray("─".repeat(64))}\n\n`);
39
+ process.stdout.write(` ${kleur.bold(String(report.indexedCommits))} commits · ${kleur.bold(String(report.indexedChunks))} chunks · ${kleur.bold(String(report.embeddedChunks))} embedded\n\n`);
40
+ const grade = report.grade;
41
+ const gradeColor = grade === "A" ? kleur.green : grade === "B" ? kleur.cyan : grade === "C" ? kleur.yellow : kleur.red;
42
+ process.stdout.write(` ${kleur.bold().magenta("✦ Overall grade")}\n`);
43
+ process.stdout.write(` ${gradeColor().bold(grade)} ${kleur.gray(`(${(report.overallScore * 100).toFixed(0)}/100)`)}\n\n`);
44
+ process.stdout.write(` ${kleur.bold().magenta("◆ Per-metric breakdown")}\n\n`);
45
+ const rows = [
46
+ ["chunk density", report.metrics.chunkDensity],
47
+ ["embedding ratio", report.metrics.embedRatio],
48
+ ["subject quality", report.metrics.subjectQuality],
49
+ ["body ratio", report.metrics.bodyRatio],
50
+ ["PR ratio", report.metrics.prRatio],
51
+ ["issue ref ratio", report.metrics.issueRatio],
52
+ ["duplicate ratio", report.metrics.duplicateRatio],
53
+ ["tokenizer health", report.metrics.tokenizerHealth],
54
+ ];
55
+ for (const [label, value] of rows) {
56
+ const meter = qualityMeter(value, label === "duplicate ratio");
57
+ const pct = `${Math.round(value * 100)}%`;
58
+ process.stdout.write(` ${meter} ${pct.padStart(4)} ${label}\n`);
59
+ }
60
+ process.stdout.write("\n");
61
+ if (report.recommendations.length > 0) {
62
+ process.stdout.write(` ${kleur.bold().magenta("✦ Recommendations")}\n\n`);
63
+ for (const rec of report.recommendations) {
64
+ process.stdout.write(` ${kleur.gray("•")} ${rec}\n`);
65
+ }
66
+ process.stdout.write("\n");
67
+ }
68
+ return 0;
69
+ }
70
+ ui.banner();
16
71
  // Deterministic mode forces the hash embedder regardless of what was asked.
17
72
  // Honest "no LLM, no remote" beats failing because Ollama isn't reachable.
18
73
  const noLlm = isNoLlm(opts.noLlm, cfg);
@@ -95,4 +150,17 @@ export async function indexCommand(opts) {
95
150
  s.close();
96
151
  return 0;
97
152
  }
153
+ function qualityMeter(value, invert = false) {
154
+ const v = invert ? 1 - value : value;
155
+ const blocks = Math.round(v * 10);
156
+ const filled = "█".repeat(blocks);
157
+ const empty = "░".repeat(10 - blocks);
158
+ if (v >= 0.85)
159
+ return kleur.green(filled) + kleur.gray(empty);
160
+ if (v >= 0.7)
161
+ return kleur.cyan(filled) + kleur.gray(empty);
162
+ if (v >= 0.5)
163
+ return kleur.yellow(filled) + kleur.gray(empty);
164
+ return kleur.red(filled) + kleur.gray(empty);
165
+ }
98
166
  //# sourceMappingURL=index-cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-cmd.js","sourceRoot":"","sources":["../../src/commands/index-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-cmd.js","sourceRoot":"","sources":["../../src/commands/index-cmd.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"insights-cli.d.ts","sourceRoot":"","sources":["../../src/commands/insights-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insights-cli.d.ts","sourceRoot":"","sources":["../../src/commands/insights-cli.ts"],"names":[],"mappings":"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"}
@@ -1337,6 +1337,18 @@ export async function clusterCommand(opts) {
1337
1337
  process.stdout.write(`\n ${kleur.bold().cyan("🧠 Semantic Commit Clusters")}\n`);
1338
1338
  process.stdout.write(` ${divider()}\n\n`);
1339
1339
  process.stdout.write(` ${kleur.bold(String(result.totalCommits))} commits · ${kleur.bold(String(result.clusters.length))} clusters · ${kleur.bold(String(result.outliers.length))} outliers\n\n`);
1340
+ if (result.clusters.length === 0) {
1341
+ if (result.totalCommits < 30) {
1342
+ process.stdout.write(` ${kleur.yellow("ℹ")} Too few commits (${result.totalCommits}) to form meaningful clusters.\n`);
1343
+ process.stdout.write(` Clusters emerge once a repo has ~30+ commits with shared vocabulary.\n`);
1344
+ process.stdout.write(` Try ${kleur.cyan("--similarity 0.05 --min-size 2")} to surface tight pairs even on small repos.\n\n`);
1345
+ }
1346
+ else {
1347
+ process.stdout.write(` ${kleur.yellow("ℹ")} No clusters above the similarity floor.\n`);
1348
+ process.stdout.write(` Lower the threshold: ${kleur.cyan("--similarity 0.10 --min-size 2")}\n\n`);
1349
+ }
1350
+ return 0;
1351
+ }
1340
1352
  for (const c of result.clusters.slice(0, 10)) {
1341
1353
  process.stdout.write(` ${kleur.bold().magenta("◆ Cluster " + c.id)} ${kleur.gray(c.size + " commits · cohesion " + pctV12(c.cohesion))}\n`);
1342
1354
  process.stdout.write(` ${kleur.gray("terms:")} ${c.topTerms.map((t) => kleur.cyan(t)).join(" ")}\n`);
@@ -1366,6 +1378,12 @@ export async function networkCommand(opts) {
1366
1378
  process.stdout.write(`\n ${kleur.bold().cyan("🕸 Author Network — semantic collaboration graph")}\n`);
1367
1379
  process.stdout.write(` ${divider()}\n\n`);
1368
1380
  process.stdout.write(` ${kleur.bold(String(result.windowCommits))} commits · ${kleur.bold(String(result.nodes.length))} authors · ${kleur.bold(String(result.edges.length))} edges · ${kleur.bold(String(result.silos.length))} silos · ${kleur.bold(String(result.bridges.length))} bridges\n\n`);
1381
+ if (result.nodes.length <= 1) {
1382
+ process.stdout.write(` ${kleur.yellow("ℹ")} Solo-author repository — no collaboration network to map.\n`);
1383
+ process.stdout.write(` This command shines on team repos with 2+ active contributors.\n`);
1384
+ process.stdout.write(` Try ${kleur.cyan("mneme dna")} to extract this author's coding fingerprint instead.\n\n`);
1385
+ return 0;
1386
+ }
1369
1387
  process.stdout.write(` ${kleur.bold().magenta("◆ Top collaborators (by centrality)")}\n\n`);
1370
1388
  for (const n of result.nodes.slice(0, 8)) {
1371
1389
  const meter = "█".repeat(Math.round(n.centrality * 8)) + "░".repeat(8 - Math.round(n.centrality * 8));