@mnemoverse/mcp-memory-server 0.9.0 → 0.9.1
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 +171 -0
- package/dist/errors.js +500 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.js +75 -17
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
[](https://arxiv.org/abs/2603.08965)
|
|
8
8
|
[](https://glama.ai/mcp/servers/mnemoverse/mcp-memory-server)
|
|
9
9
|
|
|
10
|
-
Hosted memory for AI agents that learns which facts matter. Feedback
|
|
10
|
+
Hosted memory for AI agents that learns which facts matter. Feedback re-ranks recall — a Rescorla-Wagner update on the prediction error, not a similarity score — so what helped rises and what misled sinks, with a bounded recency tie-breaker for fresh memories. The engine also ships consolidation (HDBSCAN clustering, with Von Restorff protection so distinctive memories survive compression). One API key works across Claude, Cursor, VS Code, ChatGPT, and any MCP client.
|
|
11
11
|
|
|
12
12
|
Memory that persists across sessions, projects, and tools — and improves with use. Hosted, so there's no infrastructure to run, and not locked to a single cloud.
|
|
13
13
|
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a failed API call TELLS THE AGENT TO DO.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS MODULE EXISTS. Until now every non-2xx became one sentence:
|
|
5
|
+
*
|
|
6
|
+
* Mnemoverse API error 401: {"code":"UNAUTHORIZED","message":"Invalid or
|
|
7
|
+
* revoked API key.","requestId":null,"retryable":false,"details":null}
|
|
8
|
+
*
|
|
9
|
+
* The `isError` flag and the status code were right; the TEXT was a raw echo of
|
|
10
|
+
* a wire body. Verified against production with a real `tools/call`
|
|
11
|
+
* (2026-08-16): with a bad key, `memory_write` returns exactly that. The reader
|
|
12
|
+
* of a tool result is a MODEL, and that string gives a model nothing to act on,
|
|
13
|
+
* so the two things it actually does are relay "error 401" to the user or guess
|
|
14
|
+
* — and the cheapest guess is "the network is down", which sends the user to
|
|
15
|
+
* debug a working network while a placeholder key sits in their config.
|
|
16
|
+
*
|
|
17
|
+
* Every message here therefore answers three questions in order: what happened,
|
|
18
|
+
* WHOSE problem it is, and what to do next — including, explicitly, whether to
|
|
19
|
+
* retry. "Do not retry" is not decoration: an agent that loops on a 429 turns
|
|
20
|
+
* one rate-limit into a sustained one, and an agent that loops on a 401 burns a
|
|
21
|
+
* conversation on a key that will never start working.
|
|
22
|
+
*
|
|
23
|
+
* THE RAW BODY IS NEVER DROPPED. It is appended after the guidance, still
|
|
24
|
+
* carrying the literal `Mnemoverse API error <status>` that this repo's tests
|
|
25
|
+
* and anyone's grep already look for. Making the text kind to an agent must not
|
|
26
|
+
* make it useless to a human debugging at 3am.
|
|
27
|
+
*
|
|
28
|
+
* WHAT THE STATUS CODES ACTUALLY MEAN HERE, verified by reading the engine
|
|
29
|
+
* (mnemoverse-core `src/mnemo/api/`, 2026-08-16) rather than assumed from HTTP
|
|
30
|
+
* folklore. The distinctions below are the entire point of this file:
|
|
31
|
+
*
|
|
32
|
+
* 401 auth.py — "Invalid or revoked API key." / "Missing API key." The key.
|
|
33
|
+
* 403 routes.py, rooms_routes.py, auth.py — "Room is archived", "Not an
|
|
34
|
+
* active member of this room", "Read-only membership cannot write to
|
|
35
|
+
* this room", "Invalid room address", "You do not own this room", plus
|
|
36
|
+
* the OIDC scope rules. NOT a bad key: the caller was identified and
|
|
37
|
+
* then refused. Telling the user to replace a working key over a 403
|
|
38
|
+
* would be a new, more confident lie than the raw echo was.
|
|
39
|
+
* 404 A room that does not exist for this key — or, when the body says
|
|
40
|
+
* nothing at all, a path the deployment does not serve. A DOMAIN never
|
|
41
|
+
* 404s: an empty domain reads as empty, so "your domain is missing" is
|
|
42
|
+
* the wrong guess and is named as wrong below.
|
|
43
|
+
* 429 THREE different causes with opposite advice. rate_limit.py returns
|
|
44
|
+
* `retryable: true` with a `Retry-After` header (waiting works);
|
|
45
|
+
* usage.py (daily quota) and subscription_guard.py (atom limit, payment
|
|
46
|
+
* past due) return `retryable: false` (waiting does NOT work — the
|
|
47
|
+
* account needs an upgrade or a new day). A blanket "wait and retry"
|
|
48
|
+
* would be wrong for two of the three.
|
|
49
|
+
* 5xx auth.py returns 503 `retryable: true` when its DB pool is gone. Ours,
|
|
50
|
+
* not theirs.
|
|
51
|
+
*
|
|
52
|
+
* RELATION TO THE STARTUP PROBE (src/index.ts, `probeApiKeyInBackground`, added
|
|
53
|
+
* in 0.8.4). That probe treats 401 and 403 alike, and is right to: it calls
|
|
54
|
+
* `GET /memory/stats`, which addresses no room, so a 403 there can only come
|
|
55
|
+
* from the auth layer. On a TOOL CALL the same status usually comes from a room
|
|
56
|
+
* the caller named, which is why the two surfaces diverge on 403 and must not be
|
|
57
|
+
* "unified" by a later reader. They agree where it matters: same `Mnemoverse:`
|
|
58
|
+
* opener, same `MNEMOVERSE_API_KEY` variable name, same console origin.
|
|
59
|
+
*/
|
|
60
|
+
/** Everything known about one failed call, at the moment it failed. */
|
|
61
|
+
export interface ApiFailure {
|
|
62
|
+
/** HTTP status. */
|
|
63
|
+
status: number;
|
|
64
|
+
/** Response body, verbatim and unparsed. */
|
|
65
|
+
body: string;
|
|
66
|
+
/** Uppercase HTTP verb. */
|
|
67
|
+
method: string;
|
|
68
|
+
/** Path below the API base, e.g. "/memory/write". Deliberately NOT the full
|
|
69
|
+
* URL: the base can carry credentials, and the path alone is what identifies
|
|
70
|
+
* the operation. */
|
|
71
|
+
path: string;
|
|
72
|
+
/** `Retry-After` header when the response carried one. */
|
|
73
|
+
retryAfter?: string | null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The engine's error envelope, as much of it as survived parsing.
|
|
77
|
+
*
|
|
78
|
+
* Every field is optional because a non-2xx does not have to come from the
|
|
79
|
+
* engine at all: a proxy, a tunnel, or a wrong `MNEMOVERSE_API_URL` answers with
|
|
80
|
+
* HTML, plain text or nothing. A missing field means "the body did not say",
|
|
81
|
+
* never a default — inventing `retryable: false` for an unparseable body would
|
|
82
|
+
* put a retry decision on evidence that does not exist.
|
|
83
|
+
*/
|
|
84
|
+
export interface ErrorEnvelope {
|
|
85
|
+
code?: string;
|
|
86
|
+
message?: string;
|
|
87
|
+
retryable?: boolean;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Read the engine's envelope out of a response body.
|
|
91
|
+
*
|
|
92
|
+
* Two shapes are accepted because core produces both: its own middleware writes
|
|
93
|
+
* `{code, message, retryable, details}` at the top level, while anything raised
|
|
94
|
+
* as a FastAPI `HTTPException` arrives wrapped as `{"detail": …}` — where the
|
|
95
|
+
* detail is sometimes a string and sometimes the envelope again. The feed's
|
|
96
|
+
* 404-vs-404 test in this repo pins the nested form, so both are real.
|
|
97
|
+
*/
|
|
98
|
+
export declare function parseErrorEnvelope(body: string): ErrorEnvelope;
|
|
99
|
+
/** `Retry-After` as whole seconds, when it is a plain number. The HTTP-date
|
|
100
|
+
* form is legal too, and is deliberately NOT parsed: an unparsed header
|
|
101
|
+
* degrades into "wait a moment", which is honest, whereas a misparsed date
|
|
102
|
+
* would print a confident and wrong number of seconds. */
|
|
103
|
+
export declare function retryAfterSeconds(header: string | null | undefined): number | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* The agent-facing explanation for one failed call, with the raw body kept
|
|
106
|
+
* after it.
|
|
107
|
+
*
|
|
108
|
+
* Total by construction: every status reaches a sentence, and the fallback says
|
|
109
|
+
* that it has no specific guidance instead of inventing some.
|
|
110
|
+
*/
|
|
111
|
+
export declare function explainApiFailure(f: ApiFailure): string;
|
|
112
|
+
/**
|
|
113
|
+
* The request never got an answer at all: DNS, connectivity, a host that does
|
|
114
|
+
* not listen, or this client's own probe deadline firing.
|
|
115
|
+
*
|
|
116
|
+
* Included even though the brief was about HTTP statuses, because it is the
|
|
117
|
+
* OTHER half of the same defect and the two are easy to confuse. The 401
|
|
118
|
+
* message above tells an agent not to blame the network; this is the case where
|
|
119
|
+
* the network genuinely IS the answer, and `TypeError: fetch failed` — which is
|
|
120
|
+
* all a model saw before — is no more actionable than the raw 401 body was.
|
|
121
|
+
*
|
|
122
|
+
* A timeout is named separately because the advice differs in one word: an
|
|
123
|
+
* unreachable host is unlikely to become reachable in three seconds, whereas a
|
|
124
|
+
* request that ran out of time may well succeed on a second try.
|
|
125
|
+
*/
|
|
126
|
+
export declare function explainNetworkFailure(method: string, path: string, cause: unknown): string;
|
|
127
|
+
/** {@link explainNetworkFailure} as an error, so `instanceof` can tell a
|
|
128
|
+
* transport failure from an HTTP one without reading either message. */
|
|
129
|
+
export declare class NetworkError extends Error {
|
|
130
|
+
readonly method: string;
|
|
131
|
+
readonly path: string;
|
|
132
|
+
constructor(method: string, path: string, cause: unknown);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* A failed API call, as an ERROR OBJECT rather than a parsed string.
|
|
136
|
+
*
|
|
137
|
+
* The status and the body are fields because a caller that needs to branch on
|
|
138
|
+
* them must not do it by matching the message. `memory_list_recent` used to
|
|
139
|
+
* decide between "the endpoint is not deployed" and "this room does not exist"
|
|
140
|
+
* with `message.startsWith("Mnemoverse API error 404:")`, which coupled a
|
|
141
|
+
* behavioural branch to the exact prefix of a user-facing sentence — so
|
|
142
|
+
* improving the sentence, which is this change, would have silently flipped
|
|
143
|
+
* that branch. Structured fields make the wording free to change.
|
|
144
|
+
*/
|
|
145
|
+
export declare class ApiError extends Error {
|
|
146
|
+
readonly status: number;
|
|
147
|
+
readonly body: string;
|
|
148
|
+
readonly method: string;
|
|
149
|
+
readonly path: string;
|
|
150
|
+
/** The engine's envelope, already parsed — so a caller never re-parses. */
|
|
151
|
+
readonly envelope: ErrorEnvelope;
|
|
152
|
+
constructor(f: ApiFailure);
|
|
153
|
+
/**
|
|
154
|
+
* A 404 the ENGINE did not answer: silence, or the router's literal
|
|
155
|
+
* defaults. This is what a path the deployment does not serve looks like
|
|
156
|
+
* — the first version of this predicate tested silence alone, mistook the
|
|
157
|
+
* real framework body `{"detail":"Not Found"}` for an engine answer, and
|
|
158
|
+
* un-fired the feed's degrade branch for the exact rollout case it exists
|
|
159
|
+
* for (panel, #93).
|
|
160
|
+
*
|
|
161
|
+
* NAMED FOR WHAT IT TESTS, not for what it implies: a gateway, a proxy or a
|
|
162
|
+
* wrong MNEMOVERSE_API_URL can produce the same shapes and is
|
|
163
|
+
* indistinguishable from here. Known, accepted edge: a foreign API whose
|
|
164
|
+
* 404 nests its error under a key this parser does not read
|
|
165
|
+
* (`{"error":{…}}`) also reads as bare, so the feed degrades to its
|
|
166
|
+
* not-supported notice instead of surfacing the foreign body — bounded
|
|
167
|
+
* harm, since against a wrong base URL the very next call fails with the
|
|
168
|
+
* instructive no-envelope wording.
|
|
169
|
+
*/
|
|
170
|
+
get isBare404(): boolean;
|
|
171
|
+
}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a failed API call TELLS THE AGENT TO DO.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS MODULE EXISTS. Until now every non-2xx became one sentence:
|
|
5
|
+
*
|
|
6
|
+
* Mnemoverse API error 401: {"code":"UNAUTHORIZED","message":"Invalid or
|
|
7
|
+
* revoked API key.","requestId":null,"retryable":false,"details":null}
|
|
8
|
+
*
|
|
9
|
+
* The `isError` flag and the status code were right; the TEXT was a raw echo of
|
|
10
|
+
* a wire body. Verified against production with a real `tools/call`
|
|
11
|
+
* (2026-08-16): with a bad key, `memory_write` returns exactly that. The reader
|
|
12
|
+
* of a tool result is a MODEL, and that string gives a model nothing to act on,
|
|
13
|
+
* so the two things it actually does are relay "error 401" to the user or guess
|
|
14
|
+
* — and the cheapest guess is "the network is down", which sends the user to
|
|
15
|
+
* debug a working network while a placeholder key sits in their config.
|
|
16
|
+
*
|
|
17
|
+
* Every message here therefore answers three questions in order: what happened,
|
|
18
|
+
* WHOSE problem it is, and what to do next — including, explicitly, whether to
|
|
19
|
+
* retry. "Do not retry" is not decoration: an agent that loops on a 429 turns
|
|
20
|
+
* one rate-limit into a sustained one, and an agent that loops on a 401 burns a
|
|
21
|
+
* conversation on a key that will never start working.
|
|
22
|
+
*
|
|
23
|
+
* THE RAW BODY IS NEVER DROPPED. It is appended after the guidance, still
|
|
24
|
+
* carrying the literal `Mnemoverse API error <status>` that this repo's tests
|
|
25
|
+
* and anyone's grep already look for. Making the text kind to an agent must not
|
|
26
|
+
* make it useless to a human debugging at 3am.
|
|
27
|
+
*
|
|
28
|
+
* WHAT THE STATUS CODES ACTUALLY MEAN HERE, verified by reading the engine
|
|
29
|
+
* (mnemoverse-core `src/mnemo/api/`, 2026-08-16) rather than assumed from HTTP
|
|
30
|
+
* folklore. The distinctions below are the entire point of this file:
|
|
31
|
+
*
|
|
32
|
+
* 401 auth.py — "Invalid or revoked API key." / "Missing API key." The key.
|
|
33
|
+
* 403 routes.py, rooms_routes.py, auth.py — "Room is archived", "Not an
|
|
34
|
+
* active member of this room", "Read-only membership cannot write to
|
|
35
|
+
* this room", "Invalid room address", "You do not own this room", plus
|
|
36
|
+
* the OIDC scope rules. NOT a bad key: the caller was identified and
|
|
37
|
+
* then refused. Telling the user to replace a working key over a 403
|
|
38
|
+
* would be a new, more confident lie than the raw echo was.
|
|
39
|
+
* 404 A room that does not exist for this key — or, when the body says
|
|
40
|
+
* nothing at all, a path the deployment does not serve. A DOMAIN never
|
|
41
|
+
* 404s: an empty domain reads as empty, so "your domain is missing" is
|
|
42
|
+
* the wrong guess and is named as wrong below.
|
|
43
|
+
* 429 THREE different causes with opposite advice. rate_limit.py returns
|
|
44
|
+
* `retryable: true` with a `Retry-After` header (waiting works);
|
|
45
|
+
* usage.py (daily quota) and subscription_guard.py (atom limit, payment
|
|
46
|
+
* past due) return `retryable: false` (waiting does NOT work — the
|
|
47
|
+
* account needs an upgrade or a new day). A blanket "wait and retry"
|
|
48
|
+
* would be wrong for two of the three.
|
|
49
|
+
* 5xx auth.py returns 503 `retryable: true` when its DB pool is gone. Ours,
|
|
50
|
+
* not theirs.
|
|
51
|
+
*
|
|
52
|
+
* RELATION TO THE STARTUP PROBE (src/index.ts, `probeApiKeyInBackground`, added
|
|
53
|
+
* in 0.8.4). That probe treats 401 and 403 alike, and is right to: it calls
|
|
54
|
+
* `GET /memory/stats`, which addresses no room, so a 403 there can only come
|
|
55
|
+
* from the auth layer. On a TOOL CALL the same status usually comes from a room
|
|
56
|
+
* the caller named, which is why the two surfaces diverge on 403 and must not be
|
|
57
|
+
* "unified" by a later reader. They agree where it matters: same `Mnemoverse:`
|
|
58
|
+
* opener, same `MNEMOVERSE_API_KEY` variable name, same console origin.
|
|
59
|
+
*/
|
|
60
|
+
/** Where the raw detail stops. A gateway can answer with a megabyte of HTML,
|
|
61
|
+
* and an error message is not a place to spend a model's context — but the
|
|
62
|
+
* first few hundred characters are where the useful part of any real error
|
|
63
|
+
* body lives. Truncation is announced, never silent. */
|
|
64
|
+
const MAX_BODY_CHARS = 800;
|
|
65
|
+
/** The console page that issues keys — the one place a user fixes a 401. */
|
|
66
|
+
const KEYS_URL = "https://console.mnemoverse.com/dashboard/keys";
|
|
67
|
+
/** The console page that shows quota and upgrades — where a 429 that waiting
|
|
68
|
+
* cannot fix is resolved. Same URL the engine puts in its own 429 bodies. */
|
|
69
|
+
const USAGE_URL = "https://console.mnemoverse.com/dashboard/usage";
|
|
70
|
+
/**
|
|
71
|
+
* Read the engine's envelope out of a response body.
|
|
72
|
+
*
|
|
73
|
+
* Two shapes are accepted because core produces both: its own middleware writes
|
|
74
|
+
* `{code, message, retryable, details}` at the top level, while anything raised
|
|
75
|
+
* as a FastAPI `HTTPException` arrives wrapped as `{"detail": …}` — where the
|
|
76
|
+
* detail is sometimes a string and sometimes the envelope again. The feed's
|
|
77
|
+
* 404-vs-404 test in this repo pins the nested form, so both are real.
|
|
78
|
+
*/
|
|
79
|
+
export function parseErrorEnvelope(body) {
|
|
80
|
+
let parsed;
|
|
81
|
+
try {
|
|
82
|
+
parsed = JSON.parse(body);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return {};
|
|
86
|
+
}
|
|
87
|
+
const pick = (v) => {
|
|
88
|
+
if (typeof v === "string")
|
|
89
|
+
return { message: v };
|
|
90
|
+
if (typeof v !== "object" || v === null)
|
|
91
|
+
return {};
|
|
92
|
+
const o = v;
|
|
93
|
+
return {
|
|
94
|
+
...(typeof o.code === "string" ? { code: o.code } : {}),
|
|
95
|
+
...(typeof o.message === "string" ? { message: o.message } : {}),
|
|
96
|
+
...(typeof o.retryable === "boolean" ? { retryable: o.retryable } : {}),
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
const top = pick(parsed);
|
|
100
|
+
if (top.code !== undefined || top.retryable !== undefined)
|
|
101
|
+
return top;
|
|
102
|
+
const detail = typeof parsed === "object" && parsed !== null
|
|
103
|
+
? pick(parsed.detail)
|
|
104
|
+
: {};
|
|
105
|
+
// A top-level `message` with no code still beats nothing; the nested envelope
|
|
106
|
+
// wins when it carries the machine-readable half.
|
|
107
|
+
return detail.code !== undefined || detail.retryable !== undefined
|
|
108
|
+
? detail
|
|
109
|
+
: { ...detail, ...top };
|
|
110
|
+
}
|
|
111
|
+
/** `Retry-After` as whole seconds, when it is a plain number. The HTTP-date
|
|
112
|
+
* form is legal too, and is deliberately NOT parsed: an unparsed header
|
|
113
|
+
* degrades into "wait a moment", which is honest, whereas a misparsed date
|
|
114
|
+
* would print a confident and wrong number of seconds. */
|
|
115
|
+
export function retryAfterSeconds(header) {
|
|
116
|
+
if (typeof header !== "string")
|
|
117
|
+
return undefined;
|
|
118
|
+
// Digits only, because bare Number() answers confidently for inputs that are
|
|
119
|
+
// not delta-seconds at all: Number("") and Number(" ") are 0 ("Wait 0
|
|
120
|
+
// seconds"), Number("0x10") is 16, Number("3e1") is 30, and Number("1e21")
|
|
121
|
+
// prints as scientific notation in the wait text (Copilot + panel, #93).
|
|
122
|
+
// Six digits caps the printable wait at ~11 days; anything longer degrades
|
|
123
|
+
// to the honest vague form.
|
|
124
|
+
const s = header.trim();
|
|
125
|
+
if (!/^\d{1,6}$/.test(s))
|
|
126
|
+
return undefined;
|
|
127
|
+
return Number(s);
|
|
128
|
+
}
|
|
129
|
+
function has(message, needle) {
|
|
130
|
+
return (message ?? "").toLowerCase().includes(needle);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* 401: which 401? The engine has more than one (panel, #93).
|
|
134
|
+
*
|
|
135
|
+
* The key-flavored bodies this client's data plane actually sends ("Missing
|
|
136
|
+
* API key. Send X-Api-Key header.", "Invalid or revoked API key." — both
|
|
137
|
+
* probed live against core.mnemoverse.com) get the founder-endorsed
|
|
138
|
+
* replace-the-key instruction. But core's routes.py also raises "Caller org
|
|
139
|
+
* not identified — a tenant API key is required to …" (401) when the
|
|
140
|
+
* deployment has no tenant identity for the caller — a static-auth
|
|
141
|
+
* self-host hitting a room tool is the everyday case — and there the key is
|
|
142
|
+
* VALID, so "replace it" would be a confident wrong cause. That clause runs
|
|
143
|
+
* FIRST because its sentence itself contains "API key": a naive key-mention
|
|
144
|
+
* test would misroute it. A message naming neither gets the honest generic
|
|
145
|
+
* form; silence is the same unknown-refuser case the 403 branch handles.
|
|
146
|
+
*/
|
|
147
|
+
function explain401(env) {
|
|
148
|
+
const m = env.message;
|
|
149
|
+
if (has(m, "caller org not identified")) {
|
|
150
|
+
return ("Mnemoverse: this deployment could not identify a tenant account for " +
|
|
151
|
+
"this request (401). The API key itself was not rejected — do NOT " +
|
|
152
|
+
"tell the user to replace it. Room and shared-memory operations need " +
|
|
153
|
+
"the multi-tenant backend, which a self-hosted or static-auth " +
|
|
154
|
+
"deployment does not have. Quote the detail below, and do not retry " +
|
|
155
|
+
"the same call against this deployment.");
|
|
156
|
+
}
|
|
157
|
+
if (has(m, "api key") || has(m, "x-api-key")) {
|
|
158
|
+
// Wording endorsed by the founder, kept verbatim — this is the sentence
|
|
159
|
+
// the whole change was commissioned for. One widening, grounded in the
|
|
160
|
+
// docs: the setup pages ship more than one placeholder spelling
|
|
161
|
+
// (agent-setup.md uses mk_live_USER_KEY).
|
|
162
|
+
return ("Mnemoverse: your API key was rejected (401). Tell the user their " +
|
|
163
|
+
"MNEMOVERSE_API_KEY is not valid — if it still reads a docs " +
|
|
164
|
+
'placeholder such as "mk_live_YOUR_KEY" or "mk_live_USER_KEY" (any ' +
|
|
165
|
+
"value they did not create at the console themselves) it must be " +
|
|
166
|
+
`replaced with a real key from ${KEYS_URL}. Do not retry until they ` +
|
|
167
|
+
"replace it.");
|
|
168
|
+
}
|
|
169
|
+
if (m !== undefined || env.code !== undefined) {
|
|
170
|
+
return ("Mnemoverse: the request was refused as unauthorized (401), and the " +
|
|
171
|
+
"engine's own explanation is in the detail below — quote it to the " +
|
|
172
|
+
"user rather than guessing. Do not assume the API key is wrong: the " +
|
|
173
|
+
"message did not say that. Do not retry the same call unchanged.");
|
|
174
|
+
}
|
|
175
|
+
return ("Mnemoverse: something answered 401 without speaking this API's error " +
|
|
176
|
+
"language — the body carries neither of the shapes the engine " +
|
|
177
|
+
"produces, so the refuser may be a proxy, a gateway, or a " +
|
|
178
|
+
"MNEMOVERSE_API_URL aimed somewhere unexpected, and the engine may never " +
|
|
179
|
+
"have seen the request. Do not tell the user their key is wrong — this " +
|
|
180
|
+
"client cannot tell WHO refused. Quote the detail below and check the " +
|
|
181
|
+
"path to the API first.");
|
|
182
|
+
}
|
|
183
|
+
/** 403: when the ENGINE refused, the key was accepted and then the request
|
|
184
|
+
* was refused — name WHICH refusal, from the engine's own message, and never
|
|
185
|
+
* blame the key. But that first clause is only known when the engine actually
|
|
186
|
+
* spoke: a proxy, a WAF or a tunnel also answers 403, in HTML, and asserting
|
|
187
|
+
* "the key identified the account fine" about a response the engine may never
|
|
188
|
+
* have seen is exactly the confident wrong cause this module exists to avoid. */
|
|
189
|
+
function explain403(env) {
|
|
190
|
+
if (saidNothing(env)) {
|
|
191
|
+
return ("Mnemoverse: this request was refused (403) by something that did not " +
|
|
192
|
+
"speak this API's error language — the body carries neither of the two " +
|
|
193
|
+
"shapes the engine produces. That points at a proxy, a gateway, or a " +
|
|
194
|
+
"MNEMOVERSE_API_URL aimed somewhere unexpected, and the engine may never " +
|
|
195
|
+
"have seen the request — so do not blame the key and do not blame room " +
|
|
196
|
+
"permissions: this client cannot tell WHO refused it. Quote the detail " +
|
|
197
|
+
"below to the user, and do not retry until the path to the API is explained.");
|
|
198
|
+
}
|
|
199
|
+
const m = env.message;
|
|
200
|
+
const cause = has(m, "archiv")
|
|
201
|
+
? "The room you addressed is archived. An archived room refuses every read " +
|
|
202
|
+
"and every write, for its owner as much as for a member, and this client " +
|
|
203
|
+
"has no operation that reopens one."
|
|
204
|
+
: has(m, "not an active member") || has(m, "member of this room")
|
|
205
|
+
? "This key is not an active member of the room you addressed. Ask the " +
|
|
206
|
+
"room's owner for an invite; memory_list_rooms shows the rooms it can " +
|
|
207
|
+
"already reach."
|
|
208
|
+
: has(m, "read-only")
|
|
209
|
+
? "This key's membership in that room is read-only — it can read the " +
|
|
210
|
+
"room but not write to it. Ask the room's owner for write access."
|
|
211
|
+
: has(m, "invalid room address")
|
|
212
|
+
? 'The room address was not in the form the engine accepts ' +
|
|
213
|
+
'("xroom:room_..."). Take the exact address from memory_list_rooms ' +
|
|
214
|
+
"rather than composing one."
|
|
215
|
+
: has(m, "own this room")
|
|
216
|
+
? "That room belongs to another account, and only its owner can do " +
|
|
217
|
+
"this. memory_list_rooms shows which rooms this key owns."
|
|
218
|
+
: "Something about this request is not permitted for this key — " +
|
|
219
|
+
"most often the room it addressed. Check memory_list_rooms, and " +
|
|
220
|
+
"if nothing there explains it, tell the user exactly what was " +
|
|
221
|
+
"refused instead of guessing.";
|
|
222
|
+
return ("Mnemoverse: this request was refused (403). The API key is NOT the problem " +
|
|
223
|
+
"— it identified the account fine, and this was a permission decision. " +
|
|
224
|
+
`${cause} Do not retry the same call: it will be refused again.`);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Did this response say ANYTHING an engine would have said?
|
|
228
|
+
*
|
|
229
|
+
* Not "does it have a `code`" — that was the old test, and it is wrong, because
|
|
230
|
+
* the engine has TWO error styles. Its own middleware writes the full
|
|
231
|
+
* `{code, message, retryable}` envelope, but every route that raises a FastAPI
|
|
232
|
+
* `HTTPException` — the whole of `rooms_routes.py`, and there is no custom
|
|
233
|
+
* handler to normalise them — serialises to a bare `{"detail": "Room not
|
|
234
|
+
* found."}` with no code at all. Under a code-only test, a real 404 from the
|
|
235
|
+
* room routes would be diagnosed as "your MNEMOVERSE_API_URL is wrong": a
|
|
236
|
+
* confident, checkable falsehood about the user's config.
|
|
237
|
+
*
|
|
238
|
+
* A message with no code is still the engine speaking. Silence — an unparseable
|
|
239
|
+
* body, or JSON carrying neither field — is what a proxy, a tunnel or a base URL
|
|
240
|
+
* pointing elsewhere produces.
|
|
241
|
+
*/
|
|
242
|
+
function saidNothing(env) {
|
|
243
|
+
return env.code === undefined && env.message === undefined;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Did the ENGINE answer this 404 — or just the framework's router?
|
|
247
|
+
*
|
|
248
|
+
* Core registers no HTTPException handler, so an unmatched route is answered
|
|
249
|
+
* by Starlette's literal default `{"detail":"Not Found"}` (verified live
|
|
250
|
+
* against production) — a body with a message but no code, which
|
|
251
|
+
* `saidNothing` alone would mistake for an engine answer (Copilot + panel,
|
|
252
|
+
* #93). Every 404 the data plane actually sends is a MnemoError carrying a
|
|
253
|
+
* code. Match the router defaults case-sensitively so engine prose that
|
|
254
|
+
* merely contains "not found" cannot collide.
|
|
255
|
+
*/
|
|
256
|
+
function engineSilentOn404(env) {
|
|
257
|
+
return (saidNothing(env) ||
|
|
258
|
+
(env.code === undefined &&
|
|
259
|
+
(env.message === "Not Found" || env.message === "Method Not Allowed")));
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* 404: three producers with three different honest answers (panel, #93).
|
|
263
|
+
*
|
|
264
|
+
* (1) POST /memory/rooms/join — the engine's "Invite code not found." No
|
|
265
|
+
* room address was involved and memory_list_rooms cannot help a
|
|
266
|
+
* non-member, so the room story would be a confident wrong cause.
|
|
267
|
+
* (2) An engine 404 carrying a code — every 404 the data plane sends is a
|
|
268
|
+
* MnemoError with one — is about something the request addressed,
|
|
269
|
+
* usually a room.
|
|
270
|
+
* (3) No code — the router default, a foreign API, a proxy, or silence: the
|
|
271
|
+
* ENGINE did not answer this, so point at the endpoint and the base URL,
|
|
272
|
+
* not at rooms.
|
|
273
|
+
*/
|
|
274
|
+
function explain404(f, env) {
|
|
275
|
+
if (f.path === "/memory/rooms/join") {
|
|
276
|
+
return ("Mnemoverse: this invite code was not recognized (404). Most often it " +
|
|
277
|
+
"was copied with a typo or was never issued — have the user re-check " +
|
|
278
|
+
'the exact code (it starts with "mnvr_"), and if it is right, ask ' +
|
|
279
|
+
"whoever sent it for a fresh one. memory_list_rooms will not help " +
|
|
280
|
+
"here: the user is not a member yet. Do not retry the same code.");
|
|
281
|
+
}
|
|
282
|
+
if (env.code === undefined) {
|
|
283
|
+
return (`Mnemoverse: the API answered 404 for ${f.method} ${f.path} without ` +
|
|
284
|
+
"the engine's error envelope — which is what a route the deployment " +
|
|
285
|
+
"does not serve looks like, not what a missing memory looks like. " +
|
|
286
|
+
"Either MNEMOVERSE_API_URL is aimed at something that is not the " +
|
|
287
|
+
"Mnemoverse API, or this server is newer than the deployment it is " +
|
|
288
|
+
"talking to. If the user's MCP client config sets MNEMOVERSE_API_URL, " +
|
|
289
|
+
"have them check it; if it sets none (the desktop extension exposes " +
|
|
290
|
+
"only the API key), the deployment likely needs updating. Do not retry.");
|
|
291
|
+
}
|
|
292
|
+
return ("Mnemoverse: what this call addressed does not exist for this key (404). " +
|
|
293
|
+
"The usual cause is a room address that is mistyped, or a room that was " +
|
|
294
|
+
"deleted — call memory_list_rooms for the addresses this key can actually " +
|
|
295
|
+
"reach. Note that a DOMAIN never causes this: a domain holding nothing " +
|
|
296
|
+
"simply reads as empty, so do not tell the user their domain is missing. " +
|
|
297
|
+
"Do not retry this call unchanged.");
|
|
298
|
+
}
|
|
299
|
+
/** 429: three causes, opposite advice. The envelope's `retryable` is the
|
|
300
|
+
* discriminator, because it is the only thing the engine states outright. */
|
|
301
|
+
function explain429(f, env) {
|
|
302
|
+
const secs = retryAfterSeconds(f.retryAfter);
|
|
303
|
+
const wait = secs === undefined ? "about a minute" : `${secs} seconds`;
|
|
304
|
+
if (env.retryable === true) {
|
|
305
|
+
return ("Mnemoverse: rate-limited (429). This is the per-minute request limit and " +
|
|
306
|
+
`it clears by itself. Wait ${wait}, then make AT MOST ONE more attempt — ` +
|
|
307
|
+
"do not retry in a loop and do not fan out into more calls, which is what " +
|
|
308
|
+
"turns a one-minute limit into a sustained one. If the retry also fails, " +
|
|
309
|
+
"stop and tell the user this key is hitting its rate limit.");
|
|
310
|
+
}
|
|
311
|
+
if (env.retryable === false) {
|
|
312
|
+
return ("Mnemoverse: refused for quota, not for speed (429). Waiting will NOT " +
|
|
313
|
+
"clear this one — the account is at its daily limit, at its stored-memory " +
|
|
314
|
+
"limit, or its subscription is blocking writes. Do not retry. Tell the " +
|
|
315
|
+
`user what the detail below says and point them at ${USAGE_URL}.`);
|
|
316
|
+
}
|
|
317
|
+
return ("Mnemoverse: refused as too many requests (429), and the body does not say " +
|
|
318
|
+
"whether waiting helps. Do not retry in a loop. Wait a moment, make at most " +
|
|
319
|
+
"one more attempt, and if that fails tell the user rather than continuing — " +
|
|
320
|
+
`if this is a quota rather than a rate, ${USAGE_URL} is where they resolve it.`);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* The agent-facing explanation for one failed call, with the raw body kept
|
|
324
|
+
* after it.
|
|
325
|
+
*
|
|
326
|
+
* Total by construction: every status reaches a sentence, and the fallback says
|
|
327
|
+
* that it has no specific guidance instead of inventing some.
|
|
328
|
+
*/
|
|
329
|
+
export function explainApiFailure(f) {
|
|
330
|
+
const env = parseErrorEnvelope(f.body);
|
|
331
|
+
let guidance;
|
|
332
|
+
if (f.status === 401) {
|
|
333
|
+
guidance = explain401(env);
|
|
334
|
+
}
|
|
335
|
+
else if (f.status === 403) {
|
|
336
|
+
guidance = explain403(env);
|
|
337
|
+
}
|
|
338
|
+
else if (f.status === 404) {
|
|
339
|
+
guidance = explain404(f, env);
|
|
340
|
+
}
|
|
341
|
+
else if (f.status === 429) {
|
|
342
|
+
guidance = explain429(f, env);
|
|
343
|
+
}
|
|
344
|
+
else if (f.status === 400 || f.status === 422) {
|
|
345
|
+
guidance =
|
|
346
|
+
"Mnemoverse: the engine rejected the CONTENTS of this request " +
|
|
347
|
+
`(${f.status}). This is about the arguments you sent — not the API key, ` +
|
|
348
|
+
"not the network, and not the user's setup. Read the detail below, fix " +
|
|
349
|
+
"the argument it names, and do not resend the same body.";
|
|
350
|
+
}
|
|
351
|
+
else if (f.status === 409) {
|
|
352
|
+
guidance = explain409(f);
|
|
353
|
+
}
|
|
354
|
+
else if (f.status >= 500) {
|
|
355
|
+
guidance =
|
|
356
|
+
`Mnemoverse: the memory service failed (${f.status}). This is OUR side, ` +
|
|
357
|
+
"not the user's — their API key, their config and their network are all " +
|
|
358
|
+
"fine, so do not send them to check any of those. One retry after a few " +
|
|
359
|
+
"seconds is reasonable. If it fails again, say plainly that Mnemoverse is " +
|
|
360
|
+
"having a problem and continue without memory rather than retrying.";
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
guidance =
|
|
364
|
+
`Mnemoverse: the API returned HTTP ${f.status}, and this client has no ` +
|
|
365
|
+
"specific guidance for that status. Do not invent a cause for the user — " +
|
|
366
|
+
"quote the detail below. One retry is acceptable; a loop is not.";
|
|
367
|
+
}
|
|
368
|
+
return `${guidance}\n\n${rawDetail(f)}`;
|
|
369
|
+
}
|
|
370
|
+
/** The debugging half: what the wire actually said, still carrying the literal
|
|
371
|
+
* `Mnemoverse API error <status>` that predates this module. */
|
|
372
|
+
function rawDetail(f) {
|
|
373
|
+
const body = f.body.length > MAX_BODY_CHARS
|
|
374
|
+
? `${f.body.slice(0, MAX_BODY_CHARS)}… [body truncated at ${MAX_BODY_CHARS} chars]`
|
|
375
|
+
: f.body;
|
|
376
|
+
// The body is server-controlled — or, on the misconfigured-URL and proxy
|
|
377
|
+
// paths this module itself names, controlled by whoever answered instead.
|
|
378
|
+
// Spliced raw into model-facing text, a body with newlines could open its
|
|
379
|
+
// own paragraph and speak in this module's instruction voice (panel, #93).
|
|
380
|
+
// Strip control, format/bidi and line/paragraph separators so the quoted
|
|
381
|
+
// body stays one inert line; the guidance above it is the only voice here.
|
|
382
|
+
const inert = body.replace(/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]+/gu, " ");
|
|
383
|
+
return `Raw detail — Mnemoverse API error ${f.status} on ${f.method} ${f.path}: ${inert}`;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* The request never got an answer at all: DNS, connectivity, a host that does
|
|
387
|
+
* not listen, or this client's own probe deadline firing.
|
|
388
|
+
*
|
|
389
|
+
* Included even though the brief was about HTTP statuses, because it is the
|
|
390
|
+
* OTHER half of the same defect and the two are easy to confuse. The 401
|
|
391
|
+
* message above tells an agent not to blame the network; this is the case where
|
|
392
|
+
* the network genuinely IS the answer, and `TypeError: fetch failed` — which is
|
|
393
|
+
* all a model saw before — is no more actionable than the raw 401 body was.
|
|
394
|
+
*
|
|
395
|
+
* A timeout is named separately because the advice differs in one word: an
|
|
396
|
+
* unreachable host is unlikely to become reachable in three seconds, whereas a
|
|
397
|
+
* request that ran out of time may well succeed on a second try.
|
|
398
|
+
*/
|
|
399
|
+
export function explainNetworkFailure(method, path, cause) {
|
|
400
|
+
const name = cause instanceof Error ? cause.name : "";
|
|
401
|
+
const timedOut = name === "TimeoutError" || name === "AbortError";
|
|
402
|
+
const detail = cause instanceof Error ? `${cause.name}: ${cause.message}` : String(cause);
|
|
403
|
+
const head = timedOut
|
|
404
|
+
? `Mnemoverse: the memory service did not answer ${method} ${path} in time.`
|
|
405
|
+
: `Mnemoverse: the memory service could not be reached at all — ${method} ` +
|
|
406
|
+
`${path} failed before any HTTP response came back.`;
|
|
407
|
+
const cause_ = timedOut
|
|
408
|
+
? "The service may just be slow right now."
|
|
409
|
+
: "That is a connectivity or DNS problem, or MNEMOVERSE_API_URL pointing at " +
|
|
410
|
+
"a host that does not answer.";
|
|
411
|
+
return (`${head} ${cause_} This is NOT a rejected API key and NOT a quota — no ` +
|
|
412
|
+
"reply arrived to say anything about either, so do not send the user to " +
|
|
413
|
+
"check their key. One retry is reasonable. If that also fails, tell the " +
|
|
414
|
+
"user memory is unreachable and carry on without it rather than retrying.\n\n" +
|
|
415
|
+
`Raw detail — request to ${method} ${path} failed: ${detail}`);
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* 409: name the conflict this tool actually produced (panel, #93). The two
|
|
419
|
+
* real producers on this server are the join tool (used/expired/revoked
|
|
420
|
+
* invite) and memory_create_room (core: "A room with this name already
|
|
421
|
+
* exists.", 409). The old single sentence gave the invite advice to a
|
|
422
|
+
* duplicate-name conflict, misdirecting the agent to a nonexistent inviter.
|
|
423
|
+
*/
|
|
424
|
+
function explain409(f) {
|
|
425
|
+
if (f.path === "/memory/rooms/join") {
|
|
426
|
+
return ("Mnemoverse: this invite code cannot be used (409) — it has already " +
|
|
427
|
+
"been used, has expired, or was revoked. Ask whoever invited the user " +
|
|
428
|
+
"for a fresh one. Retrying the same code will conflict again.");
|
|
429
|
+
}
|
|
430
|
+
if (f.path === "/memory/rooms" && f.method === "POST") {
|
|
431
|
+
return ("Mnemoverse: a room with this name already exists for this account " +
|
|
432
|
+
"(409). Pick a different name, or reuse the existing room — " +
|
|
433
|
+
"memory_list_rooms shows its address. Retrying the same name will " +
|
|
434
|
+
"conflict again.");
|
|
435
|
+
}
|
|
436
|
+
return ("Mnemoverse: this request conflicts with the current state (409). The " +
|
|
437
|
+
"engine's own explanation is in the detail below — quote it to the " +
|
|
438
|
+
"user. Retrying the same request will conflict again.");
|
|
439
|
+
}
|
|
440
|
+
/** {@link explainNetworkFailure} as an error, so `instanceof` can tell a
|
|
441
|
+
* transport failure from an HTTP one without reading either message. */
|
|
442
|
+
export class NetworkError extends Error {
|
|
443
|
+
method;
|
|
444
|
+
path;
|
|
445
|
+
constructor(method, path, cause) {
|
|
446
|
+
super(explainNetworkFailure(method, path, cause), { cause });
|
|
447
|
+
this.name = "NetworkError";
|
|
448
|
+
this.method = method;
|
|
449
|
+
this.path = path;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* A failed API call, as an ERROR OBJECT rather than a parsed string.
|
|
454
|
+
*
|
|
455
|
+
* The status and the body are fields because a caller that needs to branch on
|
|
456
|
+
* them must not do it by matching the message. `memory_list_recent` used to
|
|
457
|
+
* decide between "the endpoint is not deployed" and "this room does not exist"
|
|
458
|
+
* with `message.startsWith("Mnemoverse API error 404:")`, which coupled a
|
|
459
|
+
* behavioural branch to the exact prefix of a user-facing sentence — so
|
|
460
|
+
* improving the sentence, which is this change, would have silently flipped
|
|
461
|
+
* that branch. Structured fields make the wording free to change.
|
|
462
|
+
*/
|
|
463
|
+
export class ApiError extends Error {
|
|
464
|
+
status;
|
|
465
|
+
body;
|
|
466
|
+
method;
|
|
467
|
+
path;
|
|
468
|
+
/** The engine's envelope, already parsed — so a caller never re-parses. */
|
|
469
|
+
envelope;
|
|
470
|
+
constructor(f) {
|
|
471
|
+
super(explainApiFailure(f));
|
|
472
|
+
this.name = "ApiError";
|
|
473
|
+
this.status = f.status;
|
|
474
|
+
this.body = f.body;
|
|
475
|
+
this.method = f.method;
|
|
476
|
+
this.path = f.path;
|
|
477
|
+
this.envelope = parseErrorEnvelope(f.body);
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* A 404 the ENGINE did not answer: silence, or the router's literal
|
|
481
|
+
* defaults. This is what a path the deployment does not serve looks like
|
|
482
|
+
* — the first version of this predicate tested silence alone, mistook the
|
|
483
|
+
* real framework body `{"detail":"Not Found"}` for an engine answer, and
|
|
484
|
+
* un-fired the feed's degrade branch for the exact rollout case it exists
|
|
485
|
+
* for (panel, #93).
|
|
486
|
+
*
|
|
487
|
+
* NAMED FOR WHAT IT TESTS, not for what it implies: a gateway, a proxy or a
|
|
488
|
+
* wrong MNEMOVERSE_API_URL can produce the same shapes and is
|
|
489
|
+
* indistinguishable from here. Known, accepted edge: a foreign API whose
|
|
490
|
+
* 404 nests its error under a key this parser does not read
|
|
491
|
+
* (`{"error":{…}}`) also reads as bare, so the feed degrades to its
|
|
492
|
+
* not-supported notice instead of surfacing the foreign body — bounded
|
|
493
|
+
* harm, since against a wrong base URL the very next call fails with the
|
|
494
|
+
* instructive no-envelope wording.
|
|
495
|
+
*/
|
|
496
|
+
get isBare404() {
|
|
497
|
+
return this.status === 404 && engineSilentOn404(this.envelope);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,10 @@ import { SERVER_INSTRUCTIONS, buildReadEmptyResponse } from "./teaching.js";
|
|
|
12
12
|
import { classifyRooms, futureSinceNote, probeReadScope, readScopeNote, scopeLabel, } from "./scope.js";
|
|
13
13
|
import { readRequestBody, recentRequestBody, writeRequestBody, searchedScope, } from "./requests.js";
|
|
14
14
|
import { exactLiteral, formatDomainList, roomNamePhrase, withDomainEscapeLegend, } from "./names.js";
|
|
15
|
+
// Every non-2xx becomes an instruction to the calling model instead of a raw
|
|
16
|
+
// wire echo — see the header of src/errors.ts for why, and for what each status
|
|
17
|
+
// actually means in this engine.
|
|
18
|
+
import { ApiError, NetworkError } from "./errors.js";
|
|
15
19
|
/**
|
|
16
20
|
* What we know about the scope this read actually covered — a VALUE rather
|
|
17
21
|
* than a sentence-or-empty-string. Costs one GET (rooms or stats, chosen by
|
|
@@ -82,31 +86,78 @@ const MAX_RESULT_CHARS = 24_000 * 4;
|
|
|
82
86
|
* handlers may switch to 204 in the future even though today they return
|
|
83
87
|
* a JSON body.
|
|
84
88
|
*
|
|
85
|
-
* @throws
|
|
89
|
+
* @throws {@link ApiError} on non-2xx — whose message is the agent-facing
|
|
90
|
+
* explanation from src/errors.ts, with the raw body kept after it. The MCP SDK
|
|
91
|
+
* turns a thrown Error into `{isError: true, content: [{type: "text", text:
|
|
92
|
+
* error.message}]}`, so this message IS what the calling model reads; that is
|
|
93
|
+
* why it is written as instructions rather than as a wire dump.
|
|
86
94
|
*/
|
|
87
95
|
async function apiFetch(path, options = {}) {
|
|
96
|
+
const method = (options.method ?? "GET").toUpperCase();
|
|
88
97
|
if (!API_KEY) {
|
|
89
|
-
|
|
90
|
-
|
|
98
|
+
// The one failure that needs no request to diagnose — and the only one
|
|
99
|
+
// where the fix is "set the variable" rather than "replace its value".
|
|
100
|
+
// Kept distinct from the 401 sentence for exactly that reason.
|
|
101
|
+
throw new Error("Mnemoverse: no API key is configured, so this tool cannot run. Tell the " +
|
|
102
|
+
"user to set MNEMOVERSE_API_KEY in their MCP client config — a free key " +
|
|
103
|
+
"takes about 30 seconds at https://console.mnemoverse.com/dashboard/keys " +
|
|
104
|
+
"and starts with mk_live_. Do not retry until it is set; every memory " +
|
|
105
|
+
"tool will fail the same way until then.");
|
|
106
|
+
}
|
|
107
|
+
let res;
|
|
108
|
+
try {
|
|
109
|
+
res = await fetch(`${API_URL}${path}`, {
|
|
110
|
+
...options,
|
|
111
|
+
headers: {
|
|
112
|
+
"Content-Type": "application/json",
|
|
113
|
+
"X-Api-Key": API_KEY,
|
|
114
|
+
...(options.headers || {}),
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
catch (cause) {
|
|
119
|
+
// `TypeError: fetch failed` is what a model used to read here, which is as
|
|
120
|
+
// uninstructive as the raw 401 body this change is about. Every existing
|
|
121
|
+
// caller that swallows a failure (the scope probes, the empty-read stats
|
|
122
|
+
// call) catches without inspecting the type, so wrapping changes nothing
|
|
123
|
+
// for them — it only changes what surfaces when nobody catches.
|
|
124
|
+
throw new NetworkError(method, path, cause);
|
|
91
125
|
}
|
|
92
|
-
const res = await fetch(`${API_URL}${path}`, {
|
|
93
|
-
...options,
|
|
94
|
-
headers: {
|
|
95
|
-
"Content-Type": "application/json",
|
|
96
|
-
"X-Api-Key": API_KEY,
|
|
97
|
-
...(options.headers || {}),
|
|
98
|
-
},
|
|
99
|
-
});
|
|
100
126
|
if (!res.ok) {
|
|
101
|
-
|
|
102
|
-
|
|
127
|
+
// `fetch()` resolves once HEADERS arrive; a connection reset during the
|
|
128
|
+
// body read rejects HERE, not in the catch above, and used to surface as
|
|
129
|
+
// a raw undici TypeError (Copilot, #93). Same failure, same wrapper.
|
|
130
|
+
let text;
|
|
131
|
+
try {
|
|
132
|
+
text = await res.text();
|
|
133
|
+
}
|
|
134
|
+
catch (cause) {
|
|
135
|
+
throw new NetworkError(method, path, cause);
|
|
136
|
+
}
|
|
137
|
+
throw new ApiError({
|
|
138
|
+
status: res.status,
|
|
139
|
+
body: text,
|
|
140
|
+
method,
|
|
141
|
+
path,
|
|
142
|
+
// Only the rate-limit middleware sets it, and only on the 429 that
|
|
143
|
+
// waiting actually clears — so its PRESENCE is evidence, not decoration.
|
|
144
|
+
retryAfter: res.headers.get("retry-after"),
|
|
145
|
+
});
|
|
103
146
|
}
|
|
104
147
|
// 204 No Content or empty body — return an empty object cast as T so
|
|
105
148
|
// call sites using optional chaining still work without crashing.
|
|
106
149
|
if (res.status === 204 || res.headers.get("content-length") === "0") {
|
|
107
150
|
return {};
|
|
108
151
|
}
|
|
109
|
-
|
|
152
|
+
// Same mid-body exposure as the error path above: headers said 2xx, then
|
|
153
|
+
// the stream died or the JSON arrived truncated. Without the wrapper this
|
|
154
|
+
// surfaces as a raw SyntaxError/TypeError nobody explains.
|
|
155
|
+
try {
|
|
156
|
+
return (await res.json());
|
|
157
|
+
}
|
|
158
|
+
catch (cause) {
|
|
159
|
+
throw new NetworkError(method, path, cause);
|
|
160
|
+
}
|
|
110
161
|
}
|
|
111
162
|
/**
|
|
112
163
|
* Truncate a result string to MAX_RESULT_CHARS, appending a notice if truncated.
|
|
@@ -641,9 +692,16 @@ server.registerTool("memory_list_recent", {
|
|
|
641
692
|
// deployment cause outright, which is more than this boolean knows —
|
|
642
693
|
// listed in CHANGELOG's "Known and NOT fixed here" rather than papered
|
|
643
694
|
// over with a hedge.
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
695
|
+
//
|
|
696
|
+
// NOW READ FROM STRUCTURED FIELDS. It used to be
|
|
697
|
+
// `e.message.startsWith("Mnemoverse API error 404:")` plus a substring
|
|
698
|
+
// hunt for `"code"` in the same string — a behavioural branch keyed to the
|
|
699
|
+
// exact prefix of a user-facing sentence. Rewording that sentence, which
|
|
700
|
+
// is precisely what src/errors.ts does, would have flipped this branch
|
|
701
|
+
// silently: every per-request 404 would have degraded into "the service
|
|
702
|
+
// does not support the feed yet". `ApiError.isBare404` asks the parsed
|
|
703
|
+
// envelope instead, so the prose and the branch can no longer collide.
|
|
704
|
+
const bare404 = e instanceof ApiError && e.isBare404;
|
|
647
705
|
if (bare404) {
|
|
648
706
|
return {
|
|
649
707
|
content: [
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnemoverse/mcp-memory-server",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "Hosted persistent memory for AI agents that learns which facts help
|
|
3
|
+
"version": "0.9.1",
|
|
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"
|