mneme-ai 3.131.0 → 3.132.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,9 @@
1
+ /**
2
+ * `mneme brief` (v3.132.0) — the Context Capsule. Fuse this repo's git history into
3
+ * ONE git-native shared-context object every agent inherits: the team (commit
4
+ * personas), recent decisions, hot files, open TODOs, themes — deterministic, cited,
5
+ * local-first. The Path-A moat: not "memory", but shared CONTEXT for multi-agent teams.
6
+ */
7
+ import type { Command } from "commander";
8
+ export declare function registerBriefCommands(program: Command): void;
9
+ //# sourceMappingURL=brief.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief.d.ts","sourceRoot":"","sources":["../../src/commands/brief.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsB5D"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * `mneme brief` (v3.132.0) — the Context Capsule. Fuse this repo's git history into
3
+ * ONE git-native shared-context object every agent inherits: the team (commit
4
+ * personas), recent decisions, hot files, open TODOs, themes — deterministic, cited,
5
+ * local-first. The Path-A moat: not "memory", but shared CONTEXT for multi-agent teams.
6
+ */
7
+ import { spawnSync } from "node:child_process";
8
+ import { repoBrief } from "@mneme-ai/core";
9
+ function out(s) { process.stdout.write(s + "\n"); }
10
+ function git(args) { const r = spawnSync("git", args, { encoding: "utf8", maxBuffer: 128 * 1024 * 1024 }); return r.status === 0 ? (r.stdout || "") : ""; }
11
+ function readBriefCommits(max = 5000) {
12
+ const US = "\x1f", RS = "\x1e";
13
+ const meta = git(["log", "--no-merges", "-n", String(max), `--format=${RS}%H${US}%an${US}%at${US}%s${US}%b`]);
14
+ const byHash = new Map();
15
+ for (const blk of meta.split(RS)) {
16
+ if (!blk.trim())
17
+ continue;
18
+ const [h, a, t, s, ...r] = blk.split(US);
19
+ if (!h)
20
+ continue;
21
+ byHash.set(h.trim(), { hash: h.trim(), author: (a || "").trim(), ts: parseInt(t || "0", 10) || 0, subject: (s || "").trim(), body: (r.join(US) || "").trim(), files: [], churn: 0 });
22
+ }
23
+ const ns = git(["log", "--no-merges", "-n", String(max), "--numstat", `--format=${RS}%H`]);
24
+ for (const blk of ns.split(RS)) {
25
+ const lines = blk.split("\n").map((l) => l.trim()).filter(Boolean);
26
+ if (!lines.length)
27
+ continue;
28
+ const rec = byHash.get(lines[0]);
29
+ if (!rec)
30
+ continue;
31
+ for (const l of lines.slice(1)) {
32
+ const m = l.split("\t");
33
+ if (m.length < 3)
34
+ continue;
35
+ rec.churn += (parseInt(m[0], 10) || 0) + (parseInt(m[1], 10) || 0);
36
+ rec.files.push(m[2]);
37
+ }
38
+ }
39
+ return [...byHash.values()];
40
+ }
41
+ function todosAtHead() {
42
+ const o = git(["grep", "-nI", "-E", "TODO|FIXME|HACK|XXX", "HEAD", "--", "*.ts", "*.tsx", "*.js", "*.py", "*.go", "*.rs"]);
43
+ const out2 = [];
44
+ for (const l of o.split("\n")) {
45
+ const m = l.match(/^[^:]+:([^:]+):(\d+):(.*)$/);
46
+ if (m)
47
+ out2.push({ file: m[1], line: parseInt(m[2], 10), text: m[3].trim().slice(0, 120) });
48
+ if (out2.length >= 20)
49
+ break;
50
+ }
51
+ return out2;
52
+ }
53
+ export function registerBriefCommands(program) {
54
+ program
55
+ .command("brief")
56
+ .description("🧭 REPO BRIEF (the Context Capsule) — fuse this repo's git history into ONE git-native shared-context object every agent inherits: the team (commit personas) · recent decisions · hot files · open TODOs · themes. Deterministic, cited, tamper-evident, local-first. The Path-A moat: shared CONTEXT for multi-agent teams, not a 'memory product'.")
57
+ .option("--json", "JSON output (the full signed-able brief)")
58
+ .action((opts) => {
59
+ const commits = readBriefCommits();
60
+ if (!commits.length) {
61
+ out("no commits found (run inside a git repo)");
62
+ process.exitCode = 2;
63
+ return;
64
+ }
65
+ const repoCommits = parseInt(git(["rev-list", "--count", "HEAD"]).trim(), 10) || commits.length;
66
+ const repo = (git(["config", "--get", "remote.origin.url"]).trim() || "").replace(/^https?:\/\//, "").replace(/\.git$/, "") || "(local)";
67
+ const b = repoBrief.buildRepoBrief(commits, { repo, repoCommits, openTodos: todosAtHead() });
68
+ if (opts.json) {
69
+ out(JSON.stringify(b, null, 2));
70
+ return;
71
+ }
72
+ out(`🧭 REPO BRIEF — ${b.repo}`);
73
+ out(` ${b.reconciled.repoCommits} commits in repo · ${b.reconciled.merges} merge(s) excluded · ${b.reconciled.authoredCommits} authored · ${b.reconciled.contributors} contributors`);
74
+ if (b.themes.length)
75
+ out(`\n 🎯 Focus: ${b.themes.join(" · ")}`);
76
+ if (b.team.length) {
77
+ out(`\n 👥 Team:`);
78
+ for (const t of b.team)
79
+ out(` ${t.tier.padEnd(9)} ${t.archetype.padEnd(16)} ${t.author} (${t.commits} commits)`);
80
+ }
81
+ if (b.decisions.length) {
82
+ out(`\n 💡 Recent decisions:`);
83
+ for (const d of b.decisions.slice(0, 6))
84
+ out(` ${d.hash} ${d.subject}`);
85
+ }
86
+ if (b.hotFiles.length) {
87
+ out(`\n 🔥 Hot files:`);
88
+ for (const h of b.hotFiles.slice(0, 6))
89
+ out(` ${String(h.touches).padStart(3)}× ${h.file}`);
90
+ }
91
+ if (b.openTodos.length) {
92
+ out(`\n 📌 Open TODOs: ${b.openTodos.length} (e.g. ${b.openTodos[0].file}:${b.openTodos[0].line})`);
93
+ }
94
+ out(`\n 🧷 ${b.citations.length} citations · briefId ${b.briefId.slice(0, 16)}…`);
95
+ out(` ${b.note}`);
96
+ });
97
+ }
98
+ //# sourceMappingURL=brief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief.js","sourceRoot":"","sources":["../../src/commands/brief.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2MA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8mNvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4MA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+mNvD"}
package/dist/index.js CHANGED
@@ -134,6 +134,7 @@ import { registerHpeCommands } from "./commands/hpe.js";
134
134
  import { registerVericertCommands } from "./commands/vericert.js";
135
135
  import { registerPersonaCommands } from "./commands/persona.js";
136
136
  import { registerSeanceCommands } from "./commands/seance.js";
137
+ import { registerBriefCommands } from "./commands/brief.js";
137
138
  import { registerMoatCommands } from "./commands/moat.js";
138
139
  import { attachRegretOracle } from "./commands/regret.js";
139
140
  import { registerTrustCommands } from "./commands/trust.js";
@@ -4825,6 +4826,7 @@ export async function run(argv) {
4825
4826
  registerVericertCommands(program);
4826
4827
  registerPersonaCommands(program);
4827
4828
  registerSeanceCommands(program);
4829
+ registerBriefCommands(program);
4828
4830
  registerMoatCommands(program);
4829
4831
  // ─── Trust calibrator (v1.31.0) -- per-subsystem precision/recall/band
4830
4832
  registerTrustCommands(program);