@mnemoverse/mcp-memory-server 0.9.0 → 0.10.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.
- package/README.md +1 -1
- package/dist/errors.d.ts +235 -0
- package/dist/errors.js +668 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.js +712 -124
- package/dist/index.js.map +1 -1
- package/dist/names.d.ts +26 -1
- package/dist/names.js +52 -5
- package/dist/names.js.map +1 -1
- package/dist/render.d.ts +34 -1
- package/dist/render.js +63 -18
- package/dist/render.js.map +1 -1
- package/dist/scope.js +5 -22
- package/dist/scope.js.map +1 -1
- package/dist/time.d.ts +39 -0
- package/dist/time.js +48 -0
- package/dist/time.js.map +1 -0
- package/package.json +2 -3
package/dist/time.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one place that decides what an offset-less timestamp MEANS.
|
|
3
|
+
*
|
|
4
|
+
* This module exists because the answer was written down twice and implemented
|
|
5
|
+
* once. Both `since` parameter descriptions and core's own schema say a naive
|
|
6
|
+
* ISO-8601 value is UTC; `Date.parse("2026-08-08T13:00:00")` says it is local
|
|
7
|
+
* time. The gap was closed for the future-watermark note in 0.8.1 (src/scope.ts)
|
|
8
|
+
* and left open in the renderer (src/render.ts), so the same wire value decided
|
|
9
|
+
* one thing on the way in and another on the way out — a convention two modules
|
|
10
|
+
* read differently is not a convention.
|
|
11
|
+
*
|
|
12
|
+
* It lives on its own rather than in scope.ts because render.ts must not depend
|
|
13
|
+
* on scope.ts: the dependency deliberately runs the other way (scope.ts takes
|
|
14
|
+
* `safeInline` as an injected parameter precisely to avoid importing the
|
|
15
|
+
* renderer), and names.ts is about printing names, not about reading clocks.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Parse an ISO-8601 instant the way the SERVER does: an offset-less value is
|
|
19
|
+
* UTC, not local time. Returns epoch milliseconds, or `null` for anything that
|
|
20
|
+
* cannot be read as an instant.
|
|
21
|
+
*
|
|
22
|
+
* The mismatch this fixes is not cosmetic — it moved dates. West of UTC a
|
|
23
|
+
* perfectly sane watermark was declared to be in the future and every clause of
|
|
24
|
+
* the future-watermark note was false; east of UTC a genuinely future watermark
|
|
25
|
+
* was shifted into the past and the note stayed silent, missing the one case it
|
|
26
|
+
* exists for (review, 2026-08-08). On a rendered result line the same reading
|
|
27
|
+
* printed `2026-08-01T23:30:00` as `2026-08-02 06:30Z` in America/Los_Angeles:
|
|
28
|
+
* a memory dated to a day it was not written, with a `Z` asserting it was UTC.
|
|
29
|
+
*
|
|
30
|
+
* Date-only values ("2026-08-08") are already parsed as UTC by spec, so only
|
|
31
|
+
* date-TIME values without an offset need the Z.
|
|
32
|
+
*
|
|
33
|
+
* `value` is `unknown` because both call sites read it off the wire, where the
|
|
34
|
+
* response types are aspirational: `created_at` is typed as a string and can
|
|
35
|
+
* arrive as a number. A value that is not a string is not an ISO-8601 instant,
|
|
36
|
+
* so it is `null` here rather than a guess — `new Date(1754082281605)` is a
|
|
37
|
+
* perfectly good date for a field whose contract says it is text.
|
|
38
|
+
*/
|
|
39
|
+
export function parseAsUtc(value) {
|
|
40
|
+
if (typeof value !== "string")
|
|
41
|
+
return null;
|
|
42
|
+
const s = value.trim();
|
|
43
|
+
const hasOffset = /(?:Z|[+-]\d{2}:?\d{2})$/i.test(s);
|
|
44
|
+
const isDateTime = /\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}/.test(s);
|
|
45
|
+
const t = Date.parse(isDateTime && !hasOffset ? `${s.replace(" ", "T")}Z` : s);
|
|
46
|
+
return Number.isNaN(t) ? null : t;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=time.js.map
|
package/dist/time.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnemoverse/mcp-memory-server",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Hosted persistent memory for AI agents that learns which facts help
|
|
3
|
+
"version": "0.10.0",
|
|
4
|
+
"description": "Hosted persistent memory for AI agents that learns which facts help — feedback re-ranks recall — one key across Claude Code, Cursor, VS Code & ChatGPT, no infra to run",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"mcp-memory-server": "./dist/index.js"
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
"cross-tool",
|
|
47
47
|
"model-context-protocol",
|
|
48
48
|
"hosted-memory",
|
|
49
|
-
"forgetting",
|
|
50
49
|
"vendor-neutral"
|
|
51
50
|
],
|
|
52
51
|
"author": "Mnemoverse <hello@mnemoverse.com>",
|