mneme-ai 1.4.0 → 1.6.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 (48) hide show
  1. package/bin/git-mneme.js +63 -0
  2. package/dist/commands/benchmark.d.ts +83 -0
  3. package/dist/commands/benchmark.d.ts.map +1 -0
  4. package/dist/commands/benchmark.js +560 -0
  5. package/dist/commands/benchmark.js.map +1 -0
  6. package/dist/commands/benchmark.test.d.ts +10 -0
  7. package/dist/commands/benchmark.test.d.ts.map +1 -0
  8. package/dist/commands/benchmark.test.js +122 -0
  9. package/dist/commands/benchmark.test.js.map +1 -0
  10. package/dist/commands/court.d.ts +21 -0
  11. package/dist/commands/court.d.ts.map +1 -0
  12. package/dist/commands/court.js +41 -0
  13. package/dist/commands/court.js.map +1 -0
  14. package/dist/commands/daemon.d.ts +18 -0
  15. package/dist/commands/daemon.d.ts.map +1 -0
  16. package/dist/commands/daemon.js +34 -0
  17. package/dist/commands/daemon.js.map +1 -0
  18. package/dist/commands/federation.d.ts +22 -0
  19. package/dist/commands/federation.d.ts.map +1 -0
  20. package/dist/commands/federation.js +47 -0
  21. package/dist/commands/federation.js.map +1 -0
  22. package/dist/commands/git-install.d.ts +34 -0
  23. package/dist/commands/git-install.d.ts.map +1 -0
  24. package/dist/commands/git-install.js +262 -0
  25. package/dist/commands/git-install.js.map +1 -0
  26. package/dist/commands/git-install.test.d.ts +15 -0
  27. package/dist/commands/git-install.test.d.ts.map +1 -0
  28. package/dist/commands/git-install.test.js +176 -0
  29. package/dist/commands/git-install.test.js.map +1 -0
  30. package/dist/commands/index-cmd.d.ts.map +1 -1
  31. package/dist/commands/index-cmd.js +8 -0
  32. package/dist/commands/index-cmd.js.map +1 -1
  33. package/dist/commands/time-capsule.d.ts +33 -0
  34. package/dist/commands/time-capsule.d.ts.map +1 -0
  35. package/dist/commands/time-capsule.js +231 -0
  36. package/dist/commands/time-capsule.js.map +1 -0
  37. package/dist/commands/time-capsule.test.d.ts +9 -0
  38. package/dist/commands/time-capsule.test.d.ts.map +1 -0
  39. package/dist/commands/time-capsule.test.js +94 -0
  40. package/dist/commands/time-capsule.test.js.map +1 -0
  41. package/dist/commands/wisdom-theater.d.ts +41 -0
  42. package/dist/commands/wisdom-theater.d.ts.map +1 -0
  43. package/dist/commands/wisdom-theater.js +106 -0
  44. package/dist/commands/wisdom-theater.js.map +1 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +115 -0
  47. package/dist/index.js.map +1 -1
  48. package/package.json +7 -6
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * git-mneme — the git subcommand wrapper.
4
+ *
5
+ * Allows users to type `git mneme <subcommand>` instead of `mneme <subcommand>`.
6
+ * git treats any binary in PATH named `git-<name>` as a subcommand, so once
7
+ * Mneme is installed globally + this script is on PATH, `git mneme why src/auth.ts`
8
+ * works identically to `mneme why src/auth.ts`.
9
+ *
10
+ * This is the foundation of the v1.5.0 "stand beside git" positioning:
11
+ * Mneme is no longer just an MCP plugin for AI tools — it's a git extension
12
+ * that any developer using git, on any platform (GitHub / GitLab / Bitbucket
13
+ * / Gitea / self-hosted), can install and benefit from.
14
+ *
15
+ * Implementation: pure pass-through to the same dist/index.js entrypoint
16
+ * with argv shifted by one (drops the leading 'mneme' that git would
17
+ * usually pass via argv[2]). All flags, all commands, all behaviors
18
+ * identical to invoking `mneme` directly.
19
+ */
20
+
21
+ // Same SQLite-warning suppression as mneme.js — keep behavior identical.
22
+ const originalEmit = process.emit;
23
+ process.emit = function (name, data, ...rest) {
24
+ if (
25
+ name === "warning" &&
26
+ typeof data === "object" &&
27
+ data !== null &&
28
+ data.name === "ExperimentalWarning" &&
29
+ typeof data.message === "string" &&
30
+ data.message.includes("SQLite is an experimental feature")
31
+ ) {
32
+ return false;
33
+ }
34
+ return originalEmit.call(this, name, data, ...rest);
35
+ };
36
+
37
+ // argv layout when invoked as a git subcommand:
38
+ // process.argv[0] = node
39
+ // process.argv[1] = git-mneme.js
40
+ // process.argv[2..] = the subcommand + flags ('why', 'audit', etc)
41
+ // The dist/index.js parser expects the same shape as `mneme`, so we just
42
+ // pass argv through unchanged after re-aliasing argv[1] for nicer error
43
+ // messages ("mneme" not "git-mneme.js").
44
+ const passthrough = ["mneme", ...process.argv.slice(2)];
45
+
46
+ // --version fast path — same as mneme.js
47
+ const arg = process.argv[2];
48
+ if (process.argv.length === 3 && (arg === "--version" || arg === "-V")) {
49
+ import("node:fs").then((fs) =>
50
+ import("node:url").then((urlMod) =>
51
+ import("node:path").then((path) => {
52
+ const here = path.dirname(urlMod.fileURLToPath(import.meta.url));
53
+ const pkg = JSON.parse(
54
+ fs.readFileSync(path.join(here, "..", "package.json"), "utf8"),
55
+ );
56
+ process.stdout.write(pkg.version + "\n");
57
+ process.exit(0);
58
+ }),
59
+ ),
60
+ );
61
+ } else {
62
+ import("../dist/index.js").then((m) => m.run(passthrough));
63
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * `mneme benchmark` — the AI Memory Benchmark.
3
+ *
4
+ * Strategic positioning: the Lighthouse-of-AI-memory. Mneme grades AI
5
+ * memory implementations (Mneme itself, Claude's native context, GPT's,
6
+ * Cursor's bundled, etc.) using a standardized probe set + the same
7
+ * Super Sonic Engine grader that already ships in Mneme.
8
+ *
9
+ * Why this is uniquely Mneme's seat: when every AI vendor ships native
10
+ * "repo memory", who grades them? Anthropic can't grade Anthropic;
11
+ * OpenAI can't grade OpenAI. Mneme is the only vendor-neutral auditor
12
+ * — and the only one that can publish a fair public leaderboard.
13
+ *
14
+ * v0.1 ships:
15
+ * • Probe set (24 memory questions across 6 categories)
16
+ * • Local-mode benchmarking (grades Mneme itself end-to-end)
17
+ * • Markdown leaderboard generation
18
+ * • Stub for future "external mode" that grades third-party memory
19
+ * implementations via their public APIs
20
+ */
21
+ export interface BenchmarkOptions {
22
+ cwd: string;
23
+ /** Compare against named external implementations.
24
+ * v0.1 supports only "mneme-self". v1.0 will add claude / gpt / cursor. */
25
+ targets?: string[];
26
+ /** Output markdown leaderboard to this path */
27
+ out?: string;
28
+ /** Machine-readable JSON */
29
+ json?: boolean;
30
+ /** Number of probes to run (default: all 24) */
31
+ probes?: number;
32
+ }
33
+ interface Probe {
34
+ id: string;
35
+ category: "factual-recall" | "causal-explanation" | "lineage-trace" | "regression-prediction" | "cited-rationale" | "uncertainty-honesty";
36
+ question: string;
37
+ /** Expected qualities the answer must satisfy. Each is a binary check. */
38
+ rubric: ProbeRubric[];
39
+ }
40
+ interface ProbeRubric {
41
+ id: string;
42
+ /** Pass = answer contains AT LEAST ONE of these regex patterns */
43
+ must_match?: RegExp[];
44
+ /** Pass = answer contains NONE of these regex patterns */
45
+ must_not_match?: RegExp[];
46
+ /** Description shown in the report */
47
+ description: string;
48
+ }
49
+ interface ProbeResult {
50
+ probeId: string;
51
+ category: Probe["category"];
52
+ question: string;
53
+ answer: string;
54
+ passed: number;
55
+ total: number;
56
+ failedRubrics: Array<{
57
+ id: string;
58
+ description: string;
59
+ }>;
60
+ durationMs: number;
61
+ }
62
+ interface BenchmarkResult {
63
+ target: string;
64
+ ranAt: string;
65
+ totalProbes: number;
66
+ totalRubricChecks: number;
67
+ passedRubricChecks: number;
68
+ scoreByCategory: Record<string, {
69
+ passed: number;
70
+ total: number;
71
+ pct: number;
72
+ }>;
73
+ overallScore: number;
74
+ probeResults: ProbeResult[];
75
+ }
76
+ declare function checkRubric(rubric: ProbeRubric, answer: string): boolean;
77
+ declare function renderMarkdownLeaderboard(results: BenchmarkResult[]): string;
78
+ export declare function benchmarkCommand(opts: BenchmarkOptions): Promise<number>;
79
+ export declare const _PROBES_FOR_TESTS: Probe[];
80
+ export declare const _checkRubricForTests: typeof checkRubric;
81
+ export declare const _renderMarkdownLeaderboardForTests: typeof renderMarkdownLeaderboard;
82
+ export {};
83
+ //# sourceMappingURL=benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/commands/benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AASH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ;gFAC4E;IAC5E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EACJ,gBAAgB,GAChB,oBAAoB,GACpB,eAAe,GACf,uBAAuB,GACvB,iBAAiB,GACjB,qBAAqB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;CACrB;AAyUD,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,iBAAS,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAUjE;AAiFD,iBAAS,yBAAyB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAuErE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwD9E;AAED,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,oBAAoB,oBAAc,CAAC;AAChD,eAAO,MAAM,kCAAkC,kCAA4B,CAAC"}