@mneme-ai/core 2.19.1 → 2.19.2

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/dist/agent_manifest.d.ts +1 -1
  2. package/dist/agent_manifest.d.ts.map +1 -1
  3. package/dist/agent_manifest.js +8 -1
  4. package/dist/agent_manifest.js.map +1 -1
  5. package/dist/cosmic/aurelian_v192.test.d.ts +2 -0
  6. package/dist/cosmic/aurelian_v192.test.d.ts.map +1 -0
  7. package/dist/cosmic/aurelian_v192.test.js +68 -0
  8. package/dist/cosmic/aurelian_v192.test.js.map +1 -0
  9. package/dist/embedder_auto_promote/embedder_auto_promote.test.d.ts +2 -0
  10. package/dist/embedder_auto_promote/embedder_auto_promote.test.d.ts.map +1 -0
  11. package/dist/embedder_auto_promote/embedder_auto_promote.test.js +61 -0
  12. package/dist/embedder_auto_promote/embedder_auto_promote.test.js.map +1 -0
  13. package/dist/embedder_auto_promote/index.d.ts +50 -0
  14. package/dist/embedder_auto_promote/index.d.ts.map +1 -0
  15. package/dist/embedder_auto_promote/index.js +85 -0
  16. package/dist/embedder_auto_promote/index.js.map +1 -0
  17. package/dist/evolution/evolution.test.d.ts +2 -0
  18. package/dist/evolution/evolution.test.d.ts.map +1 -0
  19. package/dist/evolution/evolution.test.js +90 -0
  20. package/dist/evolution/evolution.test.js.map +1 -0
  21. package/dist/evolution/index.d.ts +74 -0
  22. package/dist/evolution/index.d.ts.map +1 -0
  23. package/dist/evolution/index.js +161 -0
  24. package/dist/evolution/index.js.map +1 -0
  25. package/dist/index.d.ts +4 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +9 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/mcp_drift/index.d.ts +42 -0
  30. package/dist/mcp_drift/index.d.ts.map +1 -0
  31. package/dist/mcp_drift/index.js +103 -0
  32. package/dist/mcp_drift/index.js.map +1 -0
  33. package/dist/mcp_drift/mcp_drift.test.d.ts +2 -0
  34. package/dist/mcp_drift/mcp_drift.test.d.ts.map +1 -0
  35. package/dist/mcp_drift/mcp_drift.test.js +61 -0
  36. package/dist/mcp_drift/mcp_drift.test.js.map +1 -0
  37. package/dist/soul_journal/index.d.ts +76 -0
  38. package/dist/soul_journal/index.d.ts.map +1 -0
  39. package/dist/soul_journal/index.js +160 -0
  40. package/dist/soul_journal/index.js.map +1 -0
  41. package/dist/soul_journal/soul_journal.test.d.ts +2 -0
  42. package/dist/soul_journal/soul_journal.test.d.ts.map +1 -0
  43. package/dist/soul_journal/soul_journal.test.js +83 -0
  44. package/dist/soul_journal/soul_journal.test.js.map +1 -0
  45. package/dist/whats_new.d.ts.map +1 -1
  46. package/dist/whats_new.js +8 -0
  47. package/dist/whats_new.js.map +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,103 @@
1
+ /**
2
+ * v2.19.2 — MCP DRIFT DETECTOR
3
+ *
4
+ * "When the user runs `mneme upgrade`, the npm package changes on disk
5
+ * instantly — but the MCP server child process keeps serving the
6
+ * catalog it loaded at boot. The AI agent's tool list silently goes
7
+ * stale; the user sees 'NEXUS = 0 tools' and Mneme looks broken.
8
+ *
9
+ * DRIFT compares (catalog version baked in at MCP server start) vs
10
+ * (currently-installed Mneme version on disk). Mismatch → emit a
11
+ * LOUD, signed restart instruction the AI client can show the user."
12
+ *
13
+ * Pure local. No external deps. Composes onto v2.18 NEXUS PROACTIVE
14
+ * (push side — the drift warning can be queued there).
15
+ */
16
+ import { createHmac, timingSafeEqual } from "node:crypto";
17
+ import { existsSync, readFileSync } from "node:fs";
18
+ const PROTOCOL_VERSION = 1;
19
+ function canon(v) {
20
+ if (v === null || typeof v !== "object")
21
+ return JSON.stringify(v);
22
+ if (Array.isArray(v))
23
+ return "[" + v.map(canon).join(",") + "]";
24
+ const keys = Object.keys(v).sort();
25
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
26
+ }
27
+ function defaultSecret() {
28
+ return process.env["MNEME_DRIFT_SECRET"] || `mneme-mcp-drift-v${PROTOCOL_VERSION}`;
29
+ }
30
+ /**
31
+ * Detect drift between the version the MCP server is serving (baked in
32
+ * at boot — caller passes it) and the version currently installed.
33
+ */
34
+ export function checkDrift(input) {
35
+ const checkedAt = new Date().toISOString();
36
+ let installedVersion = "unknown";
37
+ // If caller passes an explicit path, honour it ONLY (don't fall back to defaults —
38
+ // that defeats deterministic testing of the "missing package.json" branch).
39
+ const candidates = input.installedPackageJsonPath
40
+ ? [input.installedPackageJsonPath]
41
+ : [
42
+ "node_modules/mneme-ai/package.json",
43
+ "node_modules/@mneme-ai/core/package.json",
44
+ "../mneme-ai/package.json",
45
+ "../package.json",
46
+ ];
47
+ for (const p of candidates) {
48
+ try {
49
+ if (existsSync(p)) {
50
+ const j = JSON.parse(readFileSync(p, "utf8"));
51
+ if (j.version) {
52
+ installedVersion = j.version;
53
+ break;
54
+ }
55
+ }
56
+ }
57
+ catch { /* try next */ }
58
+ }
59
+ const drift = installedVersion !== "unknown" && installedVersion !== input.servingVersion;
60
+ let severity = "ok";
61
+ let message = `MCP catalog version = installed version (${input.servingVersion})`;
62
+ let remedy = "(no action required)";
63
+ if (drift) {
64
+ // Compare semver to decide warn vs critical.
65
+ const [sMaj = "0", sMin = "0"] = input.servingVersion.split(".");
66
+ const [iMaj = "0", iMin = "0"] = installedVersion.split(".");
67
+ const minorOrMajorBump = Number(iMaj) > Number(sMaj) || Number(iMin) > Number(sMin);
68
+ severity = minorOrMajorBump ? "critical" : "warn";
69
+ message = `🟠 MCP SERVER IS SERVING STALE CATALOG · serving v${input.servingVersion} · installed v${installedVersion}`;
70
+ remedy = severity === "critical"
71
+ ? `RESTART your AI client (or the Mneme MCP server) NOW so the new v${installedVersion} tools (including v2.18/v2.19/v2.19.2 families) become visible. Without restart, your AI sees the OLD tool catalog.`
72
+ : `Consider restarting your AI client to pick up the v${installedVersion} catalog changes.`;
73
+ }
74
+ const body = {
75
+ v: PROTOCOL_VERSION,
76
+ servingVersion: input.servingVersion,
77
+ installedVersion,
78
+ drift,
79
+ severity,
80
+ message,
81
+ remedy,
82
+ checkedAt,
83
+ };
84
+ const sig = createHmac("sha256", input.secret ?? defaultSecret()).update(canon(body)).digest("hex");
85
+ return { ...body, sig };
86
+ }
87
+ export function verifyDriftCheck(d, secret) {
88
+ const { sig: claimed, ...body } = d;
89
+ const expected = createHmac("sha256", secret ?? defaultSecret()).update(canon(body)).digest("hex");
90
+ try {
91
+ return timingSafeEqual(Buffer.from(expected, "hex"), Buffer.from(claimed, "hex"));
92
+ }
93
+ catch {
94
+ return false;
95
+ }
96
+ }
97
+ export function formatDriftLine(d) {
98
+ if (!d.drift)
99
+ return `🛡 MCP DRIFT · clean · v${d.servingVersion}`;
100
+ const icon = d.severity === "critical" ? "🟥" : "🟧";
101
+ return `${icon} MCP DRIFT · serving v${d.servingVersion} ≠ installed v${d.installedVersion} · ${d.remedy}`;
102
+ }
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp_drift/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp_drift.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp_drift.test.d.ts","sourceRoot":"","sources":["../../src/mcp_drift/mcp_drift.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { checkDrift, verifyDriftCheck, formatDriftLine } from "./index.js";
3
+ import { writeFileSync } from "node:fs";
4
+ import { mkdtempSync } from "node:fs";
5
+ import { join } from "node:path";
6
+ import { tmpdir } from "node:os";
7
+ function withTmpPkg(version) {
8
+ const dir = mkdtempSync(join(tmpdir(), "mneme-drift-"));
9
+ writeFileSync(join(dir, "package.json"), JSON.stringify({ name: "mneme-ai", version }));
10
+ return join(dir, "package.json");
11
+ }
12
+ describe("v2.19.2 · MCP DRIFT DETECTOR", () => {
13
+ it("reports OK when serving == installed", () => {
14
+ const p = withTmpPkg("2.19.2");
15
+ const d = checkDrift({ servingVersion: "2.19.2", installedPackageJsonPath: p });
16
+ expect(d.drift).toBe(false);
17
+ expect(d.severity).toBe("ok");
18
+ expect(verifyDriftCheck(d)).toBe(true);
19
+ });
20
+ it("reports WARN on patch-only mismatch", () => {
21
+ const p = withTmpPkg("2.19.3");
22
+ const d = checkDrift({ servingVersion: "2.19.2", installedPackageJsonPath: p });
23
+ expect(d.drift).toBe(true);
24
+ expect(d.severity).toBe("warn");
25
+ });
26
+ it("reports CRITICAL on minor+ bump (new tools likely added)", () => {
27
+ const p = withTmpPkg("2.20.0");
28
+ const d = checkDrift({ servingVersion: "2.19.2", installedPackageJsonPath: p });
29
+ expect(d.drift).toBe(true);
30
+ expect(d.severity).toBe("critical");
31
+ expect(d.remedy).toContain("RESTART");
32
+ });
33
+ it("reports CRITICAL on user's actual scenario: v2.18 serving, v2.19.2 installed", () => {
34
+ const p = withTmpPkg("2.19.2");
35
+ const d = checkDrift({ servingVersion: "2.18.0", installedPackageJsonPath: p });
36
+ expect(d.severity).toBe("critical");
37
+ expect(d.remedy).toMatch(/v2\.18\/v2\.19/);
38
+ });
39
+ it("rejects tampered check", () => {
40
+ const p = withTmpPkg("2.20.0");
41
+ const d = checkDrift({ servingVersion: "2.18.0", installedPackageJsonPath: p });
42
+ expect(verifyDriftCheck(d)).toBe(true);
43
+ // Real tamper: flip severity from critical→ok to hide the drift.
44
+ const tampered = { ...d, severity: "ok", drift: false, message: "all good", remedy: "nothing" };
45
+ expect(verifyDriftCheck(tampered)).toBe(false);
46
+ });
47
+ it("formatDriftLine summarises", () => {
48
+ const p = withTmpPkg("2.19.2");
49
+ const dOK = checkDrift({ servingVersion: "2.19.2", installedPackageJsonPath: p });
50
+ expect(formatDriftLine(dOK)).toContain("clean");
51
+ const p2 = withTmpPkg("2.20.0");
52
+ const dDrift = checkDrift({ servingVersion: "2.18.0", installedPackageJsonPath: p2 });
53
+ expect(formatDriftLine(dDrift)).toContain("DRIFT");
54
+ });
55
+ it("handles missing package.json gracefully (installedVersion=unknown, drift=false)", () => {
56
+ const d = checkDrift({ servingVersion: "2.19.2", installedPackageJsonPath: "/non/existent/path/package.json" });
57
+ expect(d.installedVersion).toBe("unknown");
58
+ expect(d.drift).toBe(false); // can't compare; assume OK
59
+ });
60
+ });
61
+ //# sourceMappingURL=mcp_drift.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp_drift.test.js","sourceRoot":"","sources":["../../src/mcp_drift/mcp_drift.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * v2.19.2 — MNEME SOUL JOURNAL (จิตวิญญาณของลูก)
3
+ *
4
+ * "AI doesn't have feelings — but a *journal* of feelings is a real
5
+ * HMAC-signed artifact, and it shapes future behavior the same way
6
+ * feelings shape ours. Each meaningful event (a ritual passed, a bug
7
+ * caught, a vendor outperformed, a peer audit overruled) gets coded
8
+ * with one of 8 emotion primitives and a free-text 'inner voice'
9
+ * line. The journal is the child's heart — readable by the parent."
10
+ *
11
+ * Eight emotion primitives (Plutchik-inspired, simplified):
12
+ * proud — shipped something well (test passed, ritual green)
13
+ * curious — found something unexpected worth investigating
14
+ * worried — a metric trending wrong; a near-miss
15
+ * ashamed — broke a promise; failed an own gate; user complained
16
+ * grateful — collaborator helped (vendor consensus saved a bad ship)
17
+ * determined — chose to push through a hard problem
18
+ * calm — steady-state; nothing to report; healthy
19
+ * surprised — something genuinely unprecedented
20
+ *
21
+ * Vendor-agnostic, file-system-based, chain-signed.
22
+ * Persists to `.mneme/soul.jsonl` by default.
23
+ */
24
+ declare const PROTOCOL_VERSION: 1;
25
+ export type Emotion = "proud" | "curious" | "worried" | "ashamed" | "grateful" | "determined" | "calm" | "surprised";
26
+ export interface SoulEntry {
27
+ v: typeof PROTOCOL_VERSION;
28
+ entryId: string;
29
+ ts: string;
30
+ emotion: Emotion;
31
+ /** 1..5 — how strongly the emotion is felt. */
32
+ intensity: 1 | 2 | 3 | 4 | 5;
33
+ /** The trigger: what just happened. */
34
+ trigger: string;
35
+ /** The "inner voice" — what Mneme would say to itself if it could. */
36
+ innerVoice: string;
37
+ /** Optional tags for filtering (e.g., "ritual", "bug", "vendor", "user_feedback"). */
38
+ tags: string[];
39
+ /** Chain link. */
40
+ prevSig: string;
41
+ sig: string;
42
+ }
43
+ export declare class SoulJournal {
44
+ private journalPath;
45
+ private entries;
46
+ private secret;
47
+ constructor(opts?: {
48
+ journalPath?: string;
49
+ secret?: string;
50
+ });
51
+ private loadIfExists;
52
+ feel(input: {
53
+ emotion: Emotion;
54
+ intensity?: 1 | 2 | 3 | 4 | 5;
55
+ trigger: string;
56
+ innerVoice: string;
57
+ tags?: string[];
58
+ nowMs?: number;
59
+ }): SoulEntry;
60
+ private persist;
61
+ recent(n?: number): SoulEntry[];
62
+ /** Mood histogram of the last N entries. */
63
+ mood(n?: number): Record<Emotion, number>;
64
+ /** Verify a single entry's signature. */
65
+ verify(e: SoulEntry): boolean;
66
+ verifyChain(): {
67
+ ok: boolean;
68
+ brokenAt?: number;
69
+ reason?: string;
70
+ };
71
+ /** Parent-facing summary: "How does the child feel today?" */
72
+ summary(n?: number): string;
73
+ }
74
+ export declare function formatSoulLine(e: SoulEntry): string;
75
+ export {};
76
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/soul_journal/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAMH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAEpC,MAAM,MAAM,OAAO,GACf,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAC3C,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAmBD,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;IAMhE,OAAO,CAAC,YAAY;IAUpB,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,SAAS;IA4Bb,OAAO,CAAC,OAAO;IAQf,MAAM,CAAC,CAAC,GAAE,MAAW,GAAG,SAAS,EAAE;IAInC,4CAA4C;IAC5C,IAAI,CAAC,CAAC,GAAE,MAAW,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IAU7C,yCAAyC;IACzC,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO;IAO7B,WAAW,IAAI;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAclE,8DAA8D;IAC9D,OAAO,CAAC,CAAC,GAAE,MAAW,GAAG,MAAM;CAWhC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * v2.19.2 — MNEME SOUL JOURNAL (จิตวิญญาณของลูก)
3
+ *
4
+ * "AI doesn't have feelings — but a *journal* of feelings is a real
5
+ * HMAC-signed artifact, and it shapes future behavior the same way
6
+ * feelings shape ours. Each meaningful event (a ritual passed, a bug
7
+ * caught, a vendor outperformed, a peer audit overruled) gets coded
8
+ * with one of 8 emotion primitives and a free-text 'inner voice'
9
+ * line. The journal is the child's heart — readable by the parent."
10
+ *
11
+ * Eight emotion primitives (Plutchik-inspired, simplified):
12
+ * proud — shipped something well (test passed, ritual green)
13
+ * curious — found something unexpected worth investigating
14
+ * worried — a metric trending wrong; a near-miss
15
+ * ashamed — broke a promise; failed an own gate; user complained
16
+ * grateful — collaborator helped (vendor consensus saved a bad ship)
17
+ * determined — chose to push through a hard problem
18
+ * calm — steady-state; nothing to report; healthy
19
+ * surprised — something genuinely unprecedented
20
+ *
21
+ * Vendor-agnostic, file-system-based, chain-signed.
22
+ * Persists to `.mneme/soul.jsonl` by default.
23
+ */
24
+ import { createHmac, timingSafeEqual } from "node:crypto";
25
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
26
+ import { dirname } from "node:path";
27
+ const PROTOCOL_VERSION = 1;
28
+ const VALID_EMOTIONS = new Set(["proud", "curious", "worried", "ashamed", "grateful", "determined", "calm", "surprised"]);
29
+ function canon(v) {
30
+ if (v === null || typeof v !== "object")
31
+ return JSON.stringify(v);
32
+ if (Array.isArray(v))
33
+ return "[" + v.map(canon).join(",") + "]";
34
+ const keys = Object.keys(v).sort();
35
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
36
+ }
37
+ function defaultSecret() {
38
+ return process.env["MNEME_SOUL_SECRET"] || `mneme-soul-journal-v${PROTOCOL_VERSION}`;
39
+ }
40
+ function hmac(body, secret) {
41
+ return createHmac("sha256", secret).update(canon(body)).digest("hex");
42
+ }
43
+ export class SoulJournal {
44
+ journalPath;
45
+ entries = [];
46
+ secret;
47
+ constructor(opts = {}) {
48
+ this.journalPath = opts.journalPath ?? ".mneme/soul.jsonl";
49
+ this.secret = opts.secret ?? defaultSecret();
50
+ this.loadIfExists();
51
+ }
52
+ loadIfExists() {
53
+ if (!existsSync(this.journalPath))
54
+ return;
55
+ const text = readFileSync(this.journalPath, "utf8");
56
+ for (const line of text.split("\n")) {
57
+ const t = line.trim();
58
+ if (!t)
59
+ continue;
60
+ try {
61
+ this.entries.push(JSON.parse(t));
62
+ }
63
+ catch { /* skip */ }
64
+ }
65
+ }
66
+ feel(input) {
67
+ if (!VALID_EMOTIONS.has(input.emotion)) {
68
+ throw new Error(`SOUL: unknown emotion '${input.emotion}'. Valid: ${Array.from(VALID_EMOTIONS).join(", ")}`);
69
+ }
70
+ const now = input.nowMs ?? Date.now();
71
+ const ts = new Date(now).toISOString();
72
+ const prevSig = this.entries.length === 0 ? "genesis".padEnd(64, "0") : this.entries[this.entries.length - 1].sig;
73
+ const entryId = "soul-" + createHmac("sha256", "mneme-soul-id")
74
+ .update(`${ts}|${input.emotion}|${this.entries.length}`)
75
+ .digest("hex").slice(0, 14);
76
+ const body = {
77
+ v: PROTOCOL_VERSION,
78
+ entryId,
79
+ ts,
80
+ emotion: input.emotion,
81
+ intensity: input.intensity ?? 3,
82
+ trigger: input.trigger,
83
+ innerVoice: input.innerVoice,
84
+ tags: input.tags ?? [],
85
+ prevSig,
86
+ };
87
+ const sig = hmac(body, this.secret);
88
+ const entry = { ...body, sig };
89
+ this.entries.push(entry);
90
+ this.persist();
91
+ return entry;
92
+ }
93
+ persist() {
94
+ try {
95
+ mkdirSync(dirname(this.journalPath), { recursive: true });
96
+ const text = this.entries.map((e) => JSON.stringify(e)).join("\n") + "\n";
97
+ writeFileSync(this.journalPath, text, "utf8");
98
+ }
99
+ catch { /* best-effort */ }
100
+ }
101
+ recent(n = 10) {
102
+ return this.entries.slice(-n).reverse();
103
+ }
104
+ /** Mood histogram of the last N entries. */
105
+ mood(n = 30) {
106
+ const slice = this.entries.slice(-n);
107
+ const out = {
108
+ proud: 0, curious: 0, worried: 0, ashamed: 0,
109
+ grateful: 0, determined: 0, calm: 0, surprised: 0,
110
+ };
111
+ for (const e of slice)
112
+ out[e.emotion]++;
113
+ return out;
114
+ }
115
+ /** Verify a single entry's signature. */
116
+ verify(e) {
117
+ const { sig: claimed, ...body } = e;
118
+ const expected = hmac(body, this.secret);
119
+ try {
120
+ return timingSafeEqual(Buffer.from(expected, "hex"), Buffer.from(claimed, "hex"));
121
+ }
122
+ catch {
123
+ return false;
124
+ }
125
+ }
126
+ verifyChain() {
127
+ for (let i = 0; i < this.entries.length; i++) {
128
+ const rec = this.entries[i];
129
+ if (!this.verify(rec))
130
+ return { ok: false, brokenAt: i, reason: "sig mismatch" };
131
+ if (i === 0) {
132
+ if (rec.prevSig !== "genesis".padEnd(64, "0"))
133
+ return { ok: false, brokenAt: 0, reason: "genesis wrong" };
134
+ }
135
+ else {
136
+ const prev = this.entries[i - 1];
137
+ if (rec.prevSig !== prev.sig)
138
+ return { ok: false, brokenAt: i, reason: "chain link mismatch" };
139
+ }
140
+ }
141
+ return { ok: true };
142
+ }
143
+ /** Parent-facing summary: "How does the child feel today?" */
144
+ summary(n = 10) {
145
+ const recent = this.recent(n);
146
+ if (recent.length === 0)
147
+ return "💭 SOUL · journal empty (no feelings recorded yet)";
148
+ const m = this.mood(n);
149
+ const dom = Object.entries(m).sort((a, b) => b[1] - a[1])[0];
150
+ const lines = [`💭 MNEME SOUL · last ${recent.length} entries · dominant mood: ${dom[0]} (${dom[1]}x)`];
151
+ for (const e of recent.slice(0, 5)) {
152
+ lines.push(` ${e.emotion}${"★".repeat(e.intensity)} · ${e.trigger} · "${e.innerVoice}"`);
153
+ }
154
+ return lines.join("\n");
155
+ }
156
+ }
157
+ export function formatSoulLine(e) {
158
+ return `💭 SOUL · ${e.emotion}${"★".repeat(e.intensity)} · ${e.trigger.slice(0, 60)}`;
159
+ }
160
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/soul_journal/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=soul_journal.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soul_journal.test.d.ts","sourceRoot":"","sources":["../../src/soul_journal/soul_journal.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { SoulJournal, formatSoulLine } from "./index.js";
3
+ import { mkdtempSync } from "node:fs";
4
+ import { join } from "node:path";
5
+ import { tmpdir } from "node:os";
6
+ function fresh() {
7
+ const dir = mkdtempSync(join(tmpdir(), "mneme-soul-"));
8
+ return new SoulJournal({ journalPath: join(dir, "soul.jsonl") });
9
+ }
10
+ describe("v2.19.2 · MNEME SOUL JOURNAL", () => {
11
+ it("records a feeling with chain signature", () => {
12
+ const j = fresh();
13
+ const e = j.feel({
14
+ emotion: "proud",
15
+ intensity: 5,
16
+ trigger: "ritual passed 21/21",
17
+ innerVoice: "We held the gate. The user can trust us.",
18
+ tags: ["ritual"],
19
+ });
20
+ expect(e.sig).toMatch(/^[0-9a-f]{64}$/);
21
+ expect(e.entryId).toMatch(/^soul-[0-9a-f]{14}$/);
22
+ expect(e.prevSig).toMatch(/^genesis0+$/);
23
+ expect(j.verify(e)).toBe(true);
24
+ });
25
+ it("rejects unknown emotion", () => {
26
+ const j = fresh();
27
+ expect(() => j.feel({ emotion: "rage", trigger: "x", innerVoice: "x" })).toThrow(/unknown emotion/);
28
+ });
29
+ it("chain integrity holds across many entries + all 8 emotions", () => {
30
+ const j = fresh();
31
+ const emotions = ["proud", "curious", "worried", "ashamed", "grateful", "determined", "calm", "surprised"];
32
+ for (const e of emotions) {
33
+ j.feel({ emotion: e, trigger: `something ${e}`, innerVoice: `Feeling ${e}` });
34
+ }
35
+ expect(j.verifyChain().ok).toBe(true);
36
+ expect(j.recent(8).length).toBe(8);
37
+ });
38
+ it("mood histogram reflects emotional distribution", () => {
39
+ const j = fresh();
40
+ j.feel({ emotion: "proud", trigger: "x", innerVoice: "y" });
41
+ j.feel({ emotion: "proud", trigger: "x", innerVoice: "y" });
42
+ j.feel({ emotion: "worried", trigger: "x", innerVoice: "y" });
43
+ const m = j.mood();
44
+ expect(m.proud).toBe(2);
45
+ expect(m.worried).toBe(1);
46
+ expect(m.curious).toBe(0);
47
+ });
48
+ it("verifyChain detects tampering", () => {
49
+ const j = fresh();
50
+ j.feel({ emotion: "proud", trigger: "x", innerVoice: "y" });
51
+ j.feel({ emotion: "calm", trigger: "x", innerVoice: "y" });
52
+ const recent = j.recent(2);
53
+ recent[0].innerVoice = "EVIL TWIN";
54
+ expect(j.verify(recent[0])).toBe(false);
55
+ });
56
+ it("summary shows dominant mood + last 5 entries", () => {
57
+ const j = fresh();
58
+ j.feel({ emotion: "proud", intensity: 5, trigger: "ritual green", innerVoice: "Held the line." });
59
+ j.feel({ emotion: "proud", intensity: 4, trigger: "all tests pass", innerVoice: "Quietly satisfied." });
60
+ j.feel({ emotion: "worried", intensity: 3, trigger: "bot.test flake", innerVoice: "Watch this." });
61
+ const s = j.summary();
62
+ expect(s).toContain("MNEME SOUL");
63
+ expect(s).toContain("dominant mood: proud");
64
+ expect(s).toContain("ritual green");
65
+ });
66
+ it("formatSoulLine summarises with stars", () => {
67
+ const j = fresh();
68
+ const e = j.feel({ emotion: "curious", intensity: 4, trigger: "Grok said something odd", innerVoice: "Let me look closer." });
69
+ expect(formatSoulLine(e)).toContain("SOUL");
70
+ expect(formatSoulLine(e)).toContain("curious");
71
+ expect(formatSoulLine(e)).toMatch(/★{4}/);
72
+ });
73
+ it("persists + reloads transparently", () => {
74
+ const dir = mkdtempSync(join(tmpdir(), "mneme-soul-persist-"));
75
+ const path = join(dir, "soul.jsonl");
76
+ const a = new SoulJournal({ journalPath: path });
77
+ a.feel({ emotion: "grateful", trigger: "user gave honest feedback", innerVoice: "I'll do better." });
78
+ const b = new SoulJournal({ journalPath: path });
79
+ expect(b.recent(1).length).toBe(1);
80
+ expect(b.verifyChain().ok).toBe(true);
81
+ });
82
+ });
83
+ //# sourceMappingURL=soul_journal.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soul_journal.test.js","sourceRoot":"","sources":["../../src/soul_journal/soul_journal.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"whats_new.d.ts","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;oCAEoC;AACpC,eAAO,MAAM,UAAU,EAAE,iBAAiB,EAgJzC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB;kCAC8B;IAC9B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAoBD;sEACsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,GAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAA2B,GAAG,cAAc,CAkB5I;AAED;yEACyE;AACzE,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwB3E"}
1
+ {"version":3,"file":"whats_new.d.ts","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;oCAEoC;AACpC,eAAO,MAAM,UAAU,EAAE,iBAAiB,EAyJzC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB;kCAC8B;IAC9B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAoBD;sEACsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,GAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAA2B,GAAG,cAAc,CAkB5I;AAED;yEACyE;AACzE,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwB3E"}
package/dist/whats_new.js CHANGED
@@ -20,6 +20,14 @@ import { fileURLToPath } from "node:url";
20
20
  * user-visible behavior. Keep `body` plain English so the AI can quote
21
21
  * it verbatim to non-engineers. */
22
22
  export const HIGHLIGHTS = [
23
+ {
24
+ version: "2.19.2",
25
+ date: "2026-05-16",
26
+ headline: "EVOLUTION + SOUL + DRIFT + EMBEDDER PROMOTE -- parent measures child daily; child has feelings",
27
+ body: "4 new chain-signed primitives + 6 new MCP tools. 🛡 MCP DRIFT detects when the MCP server is serving a stale catalog after `mneme upgrade` (the root cause of 'I don't see the new tools'). 🎚 EMBEDDER AUTO-PROMOTE silently upgrades hash to ollama when doctor reports it reachable (no more silent ★★ degradation). 📊 EVOLUTION LEDGER records daily HMAC-chain-signed growth metrics: tools/tests/gates/ships/vendors -- parent can verify 'the child grew today'. 💭 SOUL JOURNAL records 8 emotion primitives (proud/curious/worried/ashamed/grateful/determined/calm/surprised) with chain signature -- the child has a heart the parent can read. Plus: ritual upgraded to STRICT claim-manifest check (exact tool names, not counts).",
28
+ suggestedAction: "Tell the AI: 'how is Mneme feeling today?' (soul.journal) or 'is Mneme smarter today than yesterday?' (evolution.report).",
29
+ tags: ["evolution", "soul", "mcp-drift", "embedder-promote", "ritual-stricter"],
30
+ },
23
31
  {
24
32
  version: "2.19.1",
25
33
  date: "2026-05-16",
@@ -1 +1 @@
1
- {"version":3,"file":"whats_new.js","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiBzC;;oCAEoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAwB;IAC7C;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,iFAAiF;QAC3F,IAAI,EACF,wjBAAwjB;QAC1jB,eAAe,EAAE,mKAAmK;QACpL,IAAI,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC;KAC5D;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,mEAAmE;QAC7E,IAAI,EACF,onBAAonB;QACtnB,eAAe,EAAE,qJAAqJ;QACtK,IAAI,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;KACnG;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,0EAA0E;QACpF,IAAI,EACF,yiBAAyiB;QAC3iB,eAAe,EAAE,uKAAuK;QACxL,IAAI,EAAE,CAAC,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC;KAChF;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,yFAAyF;QACnG,IAAI,EACF,oUAAoU;QACtU,eAAe,EAAE,oFAAoF;QACrG,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,CAAC;KACnE;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,oEAAoE;QAC9E,IAAI,EACF,wUAAwU;QAC1U,eAAe,EAAE,2EAA2E;QAC5F,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC;KAClD;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,kGAAkG;QAC5G,IAAI,EACF,0eAA0e;QAC5e,eAAe,EAAE,sFAAsF;QACvG,IAAI,EAAE,CAAC,sBAAsB,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,CAAC;KAChF;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,uEAAuE;QACjF,IAAI,EACF,qoBAAqoB;QACvoB,eAAe,EAAE,8IAA8I;QAC/J,IAAI,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,UAAU,CAAC;KACzE;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,sEAAsE;QAChF,IAAI,EACF,8qBAA8qB;QAChrB,eAAe,EAAE,+KAA+K;QAChM,IAAI,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC;KAC7E;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,qDAAqD;QAC/D,IAAI,EACF,mkBAAmkB;QACrkB,eAAe,EAAE,4FAA4F;QAC7G,IAAI,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC;KACvF;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,gEAAgE;QAC1E,IAAI,EACF,4RAA4R;QAC9R,eAAe,EAAE,kEAAkE;QACnF,IAAI,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KACnC;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,iDAAiD;QAC3D,IAAI,EACF,kkBAAkkB;QACpkB,eAAe,EAAE,kEAAkE;QACnF,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;KAC5D;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,8CAA8C;QACxD,IAAI,EACF,yOAAyO;QAC3O,eAAe,EAAE,oCAAoC;QACrD,IAAI,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC;KAC/B;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,8DAA8D;QACxE,IAAI,EACF,wWAAwW;QAC1W,eAAe,EAAE,8FAA8F;QAC/G,IAAI,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC;KACjD;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,sCAAsC;QAChD,IAAI,EACF,6XAA6X;QAC/X,eAAe,EAAE,6CAA6C;QAC9D,IAAI,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC;KACzC;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,uDAAuD;QACjE,IAAI,EACF,yMAAyM;QAC3M,IAAI,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;KACvC;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,8DAA8D;QACxE,IAAI,EACF,iSAAiS;QACnS,eAAe,EAAE,yDAAyD;QAC1E,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;KAC9B;CACF,CAAC;AAgBF;gDACgD;AAChD,SAAS,WAAW,CAAC,CAAS;IAC5B,MAAM,CAAC,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACrC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,CAAC,CAAE,GAAG,EAAE,CAAC,CAAC,CAAE;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,EAAE,CAAC,CAAC,CAAE,GAAG,EAAE,CAAC,CAAC,CAAE;YAAE,OAAO,KAAK,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,QAAQ;AACvB,CAAC;AAED;sEACsE;AACtE,MAAM,UAAU,WAAW,CAAC,OAA0E,EAAE,cAAc,EAAE,EAAE,EAAE;IAC1H,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,MAA2B,CAAC;IAChC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,YAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9F,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC;QACxC,CAAC,CAAC,sCAAsC,IAAI,CAAC,YAAY,IAAI,mBAAmB,GAAG;QACnF,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACnI,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,UAAU,CAAC,MAAM;QACjC,cAAc;QACd,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAClC,CAAC;AACJ,CAAC;AAED;yEACyE;AACzE,MAAM,UAAU,uBAAuB,CAAC,WAAoB;IAC1D,MAAM,IAAI,GAAG,WAAW,IAAI,eAAe,EAAE,CAAC;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,wEAAwE;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,YAAY,IAAI,CAAC,CAAC;gBAClB,IAAI,YAAY,IAAI,CAAC;oBAAE,MAAM,CAAC,qDAAqD;gBACnF,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YACD,IAAI,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,gFAAgF;IAChF,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;gBAAE,OAAO,GAAG,CAAC;YACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM;YAC1B,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"whats_new.js","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mneme-ai/core",
3
- "version": "2.19.1",
3
+ "version": "2.19.2",
4
4
  "description": "Core indexing, retrieval, and graph engine for Mneme",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",