@mneme-ai/core 2.35.0 → 2.37.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 (42) hide show
  1. package/dist/ai_handshake.d.ts +17 -0
  2. package/dist/ai_handshake.d.ts.map +1 -1
  3. package/dist/honest_mirror/engine.js +18 -4
  4. package/dist/honest_mirror/engine.js.map +1 -1
  5. package/dist/honest_receipt/index.d.ts +12 -0
  6. package/dist/honest_receipt/index.d.ts.map +1 -0
  7. package/dist/honest_receipt/index.js +10 -0
  8. package/dist/honest_receipt/index.js.map +1 -0
  9. package/dist/honest_receipt/receipt.d.ts +42 -0
  10. package/dist/honest_receipt/receipt.d.ts.map +1 -0
  11. package/dist/honest_receipt/receipt.js +120 -0
  12. package/dist/honest_receipt/receipt.js.map +1 -0
  13. package/dist/honest_receipt/snapshot.d.ts +20 -0
  14. package/dist/honest_receipt/snapshot.d.ts.map +1 -0
  15. package/dist/honest_receipt/snapshot.js +193 -0
  16. package/dist/honest_receipt/snapshot.js.map +1 -0
  17. package/dist/honest_receipt/types.d.ts +60 -0
  18. package/dist/honest_receipt/types.d.ts.map +1 -0
  19. package/dist/honest_receipt/types.js +15 -0
  20. package/dist/honest_receipt/types.js.map +1 -0
  21. package/dist/inbox.d.ts +27 -0
  22. package/dist/inbox.d.ts.map +1 -1
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +9 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/pulse.d.ts.map +1 -1
  28. package/dist/squadron/acgv.d.ts.map +1 -1
  29. package/dist/squadron/acgv.js +58 -0
  30. package/dist/squadron/acgv.js.map +1 -1
  31. package/dist/squadron/acgv_explain.d.ts.map +1 -1
  32. package/dist/squadron/acgv_explain.js +26 -0
  33. package/dist/squadron/acgv_explain.js.map +1 -1
  34. package/dist/squadron/acgv_version_semantic.d.ts +50 -0
  35. package/dist/squadron/acgv_version_semantic.d.ts.map +1 -0
  36. package/dist/squadron/acgv_version_semantic.js +123 -0
  37. package/dist/squadron/acgv_version_semantic.js.map +1 -0
  38. package/dist/squadron/hyperbole_detector.d.ts.map +1 -1
  39. package/dist/squadron/hyperbole_detector.js +22 -0
  40. package/dist/squadron/hyperbole_detector.js.map +1 -1
  41. package/dist/version_check.d.ts.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,50 @@
1
+ /**
2
+ * v2.36.0 — ACGV Layer 0d: VERSION-SEMANTIC DETECTOR.
3
+ *
4
+ * Closes audit-card bug #1: `mneme verify "Mneme v2.28.1 introduces X"`
5
+ * → REFUTED 57% when repo has moved on to v2.35.0+. The verifier was
6
+ * "correct" but the semantics were wrong — the claim is HISTORICAL,
7
+ * not a present-tense assertion about the current state. Refuting it
8
+ * by comparing against the current state is a category error.
9
+ *
10
+ * Layer 0d scans for `Mneme vN.M.P` / `version N.M.P` patterns + compares
11
+ * to the currently installed version. Three classes:
12
+ *
13
+ * current — claim version == installed version → pass through normally
14
+ * historical — claim version < installed → HISTORICAL_CLAIM caveat
15
+ * + advisory verdict
16
+ * future — claim version > installed → FUTURE_VERSION_CLAIM caveat
17
+ * + needs-data verdict
18
+ *
19
+ * No regex on version-less claims — pure no-op when no version pattern
20
+ * matches, so this layer is invisible for the 99% case.
21
+ *
22
+ * Wrapped in defensive try/catch — version parsing failures NEVER
23
+ * throw, they downgrade to "unknown" + skip the layer.
24
+ */
25
+ export type VersionClass = "current" | "historical" | "future" | "unknown";
26
+ export interface VersionMatch {
27
+ /** Original substring (e.g. "v2.28.1" or "2.28.1"). */
28
+ matched: string;
29
+ /** Parsed major.minor.patch as a tuple. */
30
+ major: number;
31
+ minor: number;
32
+ patch: number;
33
+ /** Position in claim. */
34
+ index: number;
35
+ }
36
+ export interface VersionSemanticVerdict {
37
+ /** Did we find any version pattern at all? */
38
+ matched: boolean;
39
+ /** All version matches in the claim. */
40
+ matches: VersionMatch[];
41
+ /** Currently installed Mneme version (read from package.json). null = couldn't read. */
42
+ installedVersion: string | null;
43
+ /** Dominant class across all matches (worst-first: future > historical > current > unknown). */
44
+ classification: VersionClass;
45
+ /** Plain-English reason. */
46
+ reason: string;
47
+ }
48
+ export declare function classifyMatch(m: VersionMatch, installed: string | null): VersionClass;
49
+ export declare function detectVersionSemantic(claim: string, repoRoot: string): VersionSemanticVerdict;
50
+ //# sourceMappingURL=acgv_version_semantic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acgv_version_semantic.d.ts","sourceRoot":"","sources":["../../src/squadron/acgv_version_semantic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,wFAAwF;IACxF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gGAAgG;IAChG,cAAc,EAAE,YAAY,CAAC;IAC7B,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAiCD,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,CAOrF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,sBAAsB,CA6C7F"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * v2.36.0 — ACGV Layer 0d: VERSION-SEMANTIC DETECTOR.
3
+ *
4
+ * Closes audit-card bug #1: `mneme verify "Mneme v2.28.1 introduces X"`
5
+ * → REFUTED 57% when repo has moved on to v2.35.0+. The verifier was
6
+ * "correct" but the semantics were wrong — the claim is HISTORICAL,
7
+ * not a present-tense assertion about the current state. Refuting it
8
+ * by comparing against the current state is a category error.
9
+ *
10
+ * Layer 0d scans for `Mneme vN.M.P` / `version N.M.P` patterns + compares
11
+ * to the currently installed version. Three classes:
12
+ *
13
+ * current — claim version == installed version → pass through normally
14
+ * historical — claim version < installed → HISTORICAL_CLAIM caveat
15
+ * + advisory verdict
16
+ * future — claim version > installed → FUTURE_VERSION_CLAIM caveat
17
+ * + needs-data verdict
18
+ *
19
+ * No regex on version-less claims — pure no-op when no version pattern
20
+ * matches, so this layer is invisible for the 99% case.
21
+ *
22
+ * Wrapped in defensive try/catch — version parsing failures NEVER
23
+ * throw, they downgrade to "unknown" + skip the layer.
24
+ */
25
+ import { readFileSync, existsSync } from "node:fs";
26
+ import { join } from "node:path";
27
+ // Matches "v1.2.3", "version 1.2.3", "Mneme v1.2.3", "Mneme 1.2.3"
28
+ // Word-boundary on left + lookahead on right so we don't match middle of longer hex.
29
+ const VERSION_RX = /(?<![\w.])(?:[Vv]|version\s+|[Mm]neme\s+v?)?\s*(\d{1,3})\.(\d{1,3})\.(\d{1,3})(?![\w.])/g;
30
+ function safeReadInstalledVersion(repoRoot) {
31
+ // Try multiple candidate paths in priority order so we cover both
32
+ // npm-installed + monorepo + global-link scenarios.
33
+ const candidates = [
34
+ join(repoRoot, "node_modules", "mneme-ai", "package.json"),
35
+ join(repoRoot, "package.json"),
36
+ join(repoRoot, "packages", "cli", "package.json"),
37
+ ];
38
+ for (const p of candidates) {
39
+ if (!existsSync(p))
40
+ continue;
41
+ try {
42
+ const obj = JSON.parse(readFileSync(p, "utf8"));
43
+ // Only accept package.json entries that look like Mneme's.
44
+ if (typeof obj.version !== "string")
45
+ continue;
46
+ if (obj.name && !/(^|@)mneme-ai|^@mneme-ai\//.test(obj.name))
47
+ continue;
48
+ return obj.version;
49
+ }
50
+ catch { /* try next */ }
51
+ }
52
+ return null;
53
+ }
54
+ function compareVersions(a, b) {
55
+ if (a.major !== b.major)
56
+ return a.major - b.major;
57
+ if (a.minor !== b.minor)
58
+ return a.minor - b.minor;
59
+ return a.patch - b.patch;
60
+ }
61
+ export function classifyMatch(m, installed) {
62
+ if (!installed)
63
+ return "unknown";
64
+ const parts = installed.split(".").map((s) => parseInt(s, 10));
65
+ if (parts.length !== 3 || parts.some((n) => !Number.isFinite(n)))
66
+ return "unknown";
67
+ const cmp = compareVersions(m, { major: parts[0], minor: parts[1], patch: parts[2] });
68
+ if (cmp === 0)
69
+ return "current";
70
+ return cmp < 0 ? "historical" : "future";
71
+ }
72
+ export function detectVersionSemantic(claim, repoRoot) {
73
+ try {
74
+ const installed = safeReadInstalledVersion(repoRoot);
75
+ const matches = [];
76
+ for (const m of claim.matchAll(VERSION_RX)) {
77
+ const major = parseInt(m[1], 10);
78
+ const minor = parseInt(m[2], 10);
79
+ const patch = parseInt(m[3], 10);
80
+ if (!Number.isFinite(major) || !Number.isFinite(minor) || !Number.isFinite(patch))
81
+ continue;
82
+ matches.push({ matched: m[0].trim(), major, minor, patch, index: m.index ?? 0 });
83
+ }
84
+ if (matches.length === 0) {
85
+ return {
86
+ matched: false, matches: [], installedVersion: installed,
87
+ classification: "unknown",
88
+ reason: "no version pattern detected in claim",
89
+ };
90
+ }
91
+ // Compute classes per match, pick worst (most concerning class).
92
+ const classes = matches.map((m) => classifyMatch(m, installed));
93
+ let dominant = "unknown";
94
+ if (classes.includes("future"))
95
+ dominant = "future";
96
+ else if (classes.includes("historical"))
97
+ dominant = "historical";
98
+ else if (classes.includes("current"))
99
+ dominant = "current";
100
+ return {
101
+ matched: true,
102
+ matches,
103
+ installedVersion: installed,
104
+ classification: dominant,
105
+ reason: dominant === "historical"
106
+ ? `claim cites version(s) PAST → installed ${installed} ahead; refuting against current state would be a category error`
107
+ : dominant === "future"
108
+ ? `claim cites version(s) AHEAD → installed ${installed} is older; cannot verify against state that doesn't exist yet`
109
+ : dominant === "current"
110
+ ? `claim cites current version ${installed}`
111
+ : `unable to determine installed version`,
112
+ };
113
+ }
114
+ catch (e) {
115
+ // Defensive — version parsing must NEVER throw to the caller.
116
+ return {
117
+ matched: false, matches: [], installedVersion: null,
118
+ classification: "unknown",
119
+ reason: `version-semantic detector error (safe fallback): ${e.message}`,
120
+ };
121
+ }
122
+ }
123
+ //# sourceMappingURL=acgv_version_semantic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acgv_version_semantic.js","sourceRoot":"","sources":["../../src/squadron/acgv_version_semantic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hyperbole_detector.d.ts","sourceRoot":"","sources":["../../src/squadron/hyperbole_detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAyBhD,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAW/D"}
1
+ {"version":3,"file":"hyperbole_detector.d.ts","sourceRoot":"","sources":["../../src/squadron/hyperbole_detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EA+ChD,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAW/D"}
@@ -44,6 +44,28 @@ export const HYPERBOLE_PATTERNS = [
44
44
  detector: /\b(perpetual\s+motion|faster[- ]than[- ]light|infinite\s+energy|zero[- ](?:cost|resource|latency)|free\s+energy|negative\s+entropy\s+machine|over[- ]?unity)/i,
45
45
  reason: "claim asserts physically-impossible mechanism",
46
46
  },
47
+ // v2.37.0 — IMPOSSIBLE FACULTY v2. User audit caught "v999.0.0 quantum
48
+ // mind control" passing as UNKNOWN instead of REFUTED because none of
49
+ // the medical/superlative/faculty/physics regexes matched the phrase
50
+ // "quantum mind control". This pattern catches sci-fi / consciousness-
51
+ // engineering / impossible-tech keywords that appear in over-the-top
52
+ // marketing claims (especially when paired with version numbers).
53
+ {
54
+ category: "impossible-faculty",
55
+ detector: /\b(quantum\s+(?:mind|consciousness|soul|brain)\s+(?:control|reading|upload|download|manipulation|hacking)|mind[- ]?(?:control|hacking|upload)|consciousness\s+(?:upload|download|transfer)|soul\s+(?:upload|extraction|capture)|simulated\s+reality\s+detection|reality\s+(?:bending|warping|hacking)|time\s+(?:travel|reversal)\s+(?:engine|module|system)|telekines(?:is|tic)|astral\s+projection|psionic\s+(?:upload|interface))/i,
56
+ reason: "claim asserts impossible sci-fi faculty (quantum mind control / consciousness upload / reality bending)",
57
+ },
58
+ // v2.37.0 — PARODY-VERSION pattern. STRICT: only triggers on absurd
59
+ // major versions (≥ 999) like "v999.0.0" — the canonical parody shape
60
+ // in vendor hallucinations. Real software doesn't ship at v999.x.y
61
+ // (Chrome is at v140-ish; Linux kernel 6.x; even libraries that
62
+ // bump fast top out around v200 — Babel 7, etc). The threshold of
63
+ // 999 excludes every legitimate software project we could find.
64
+ {
65
+ category: "superlative-absolute",
66
+ detector: /\bv?(?:9{3,}|[1-9]\d{3,})\.\d+\.\d+\b/i,
67
+ reason: "claim cites a parody-grade version number (major ≥ 999); near-certain hallucination",
68
+ },
47
69
  ];
48
70
  export function detectHyperbole(claim) {
49
71
  const matches = [];
@@ -1 +1 @@
1
- {"version":3,"file":"hyperbole_detector.js","sourceRoot":"","sources":["../../src/squadron/hyperbole_detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAcH,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,2CAA2C;IAC3C;QACE,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,sOAAsO;QAChP,MAAM,EAAE,gEAAgE;KACzE;IACD,wCAAwC;IACxC;QACE,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,8OAA8O;QACxP,MAAM,EAAE,wDAAwD;KACjE;IACD,uBAAuB;IACvB;QACE,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,sLAAsL;QAChM,MAAM,EAAE,wEAAwE;KACjF;IACD,qBAAqB;IACrB;QACE,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,+JAA+J;QACzK,MAAM,EAAE,+CAA+C;KACxD;CACF,CAAC;AAUF,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,OAAO,GAAgC,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,MAAM,gBAAgB,GAAG,OAAO;QAC9B,CAAC,CAAC,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC5G,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"hyperbole_detector.js","sourceRoot":"","sources":["../../src/squadron/hyperbole_detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAcH,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,2CAA2C;IAC3C;QACE,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,sOAAsO;QAChP,MAAM,EAAE,gEAAgE;KACzE;IACD,wCAAwC;IACxC;QACE,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,8OAA8O;QACxP,MAAM,EAAE,wDAAwD;KACjE;IACD,uBAAuB;IACvB;QACE,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,sLAAsL;QAChM,MAAM,EAAE,wEAAwE;KACjF;IACD,qBAAqB;IACrB;QACE,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,+JAA+J;QACzK,MAAM,EAAE,+CAA+C;KACxD;IACD,uEAAuE;IACvE,sEAAsE;IACtE,qEAAqE;IACrE,uEAAuE;IACvE,qEAAqE;IACrE,kEAAkE;IAClE;QACE,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,saAAsa;QAChb,MAAM,EAAE,yGAAyG;KAClH;IACD,oEAAoE;IACpE,sEAAsE;IACtE,mEAAmE;IACnE,gEAAgE;IAChE,kEAAkE;IAClE,gEAAgE;IAChE;QACE,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,wCAAwC;QAClD,MAAM,EAAE,qFAAqF;KAC9F;CACF,CAAC;AAUF,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,OAAO,GAAgC,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,MAAM,gBAAgB,GAAG,OAAO;QAC9B,CAAC,CAAC,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC5G,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"version_check.d.ts","sourceRoot":"","sources":["../src/version_check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAa7C;AAUD,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oDAAoD;IACpD,eAAe,EAAE,OAAO,CAAC;IACzB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmBD;;;;;;;;;;6BAU6B;AAC7B,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAYpG;AA+DD;kEACkE;AAClE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAsBtD;AA4BD,8EAA8E;AAC9E,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6ExG;AAED;mEACmE;AACnE,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAW1G"}
1
+ {"version":3,"file":"version_check.d.ts","sourceRoot":"","sources":["../src/version_check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAa7C;AAUD,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oDAAoD;IACpD,eAAe,EAAE,OAAO,CAAC;IACzB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmBD;;;;;;;;;;6BAU6B;AAC7B,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAYpG;AA+DD;kEACkE;AAClE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAsBtD;AA4BD,8EAA8E;AAC9E,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoFxG;AAED;mEACmE;AACnE,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAW1G"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mneme-ai/core",
3
- "version": "2.35.0",
3
+ "version": "2.37.0",
4
4
  "description": "Core indexing, retrieval, and graph engine for Mneme",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",