neotoma 0.22.0 → 0.22.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.
- package/dist/actions.d.ts +13 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +236 -93
- package/dist/actions.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +11 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +90 -0
- package/dist/config.js.map +1 -1
- package/dist/docs/api/rest_api.md +81 -0
- package/dist/docs/developer/getting_started.md +45 -0
- package/dist/docs/developer/mcp/proxy.md +48 -28
- package/dist/docs/developer/npm_scripts.md +10 -4
- package/dist/docs/infrastructure/client_instance_deployment.md +50 -2
- package/dist/docs/operations/configuration.md +44 -1
- package/dist/docs/security/advisories/2026-08-26-jwt-bearer-unverified-fallback-auth-bypass.md +59 -0
- package/dist/docs/security/advisories/README.md +1 -0
- package/dist/docs/security/practices.md +5 -1
- package/dist/docs/subsystems/agent_session_architecture.md +69 -0
- package/dist/docs/subsystems/usage_digest.md +127 -0
- package/dist/docs/testing/automated_test_catalog.md +49 -26
- package/dist/docs/testing/testing_standard.md +1 -1
- package/dist/middleware/aauth_admission.js +1 -1
- package/dist/middleware/aauth_admission.js.map +1 -1
- package/dist/middleware/db_abort_context.d.ts +24 -0
- package/dist/middleware/db_abort_context.d.ts.map +1 -0
- package/dist/middleware/db_abort_context.js +41 -0
- package/dist/middleware/db_abort_context.js.map +1 -0
- package/dist/proxy/mcp_stdio_proxy.d.ts +134 -6
- package/dist/proxy/mcp_stdio_proxy.d.ts.map +1 -1
- package/dist/proxy/mcp_stdio_proxy.js +373 -17
- package/dist/proxy/mcp_stdio_proxy.js.map +1 -1
- package/dist/repositories/sqlite/local_db_adapter.d.ts.map +1 -1
- package/dist/repositories/sqlite/local_db_adapter.js +20 -0
- package/dist/repositories/sqlite/local_db_adapter.js.map +1 -1
- package/dist/repositories/sqlite/sqlite_client.d.ts.map +1 -1
- package/dist/repositories/sqlite/sqlite_client.js +10 -0
- package/dist/repositories/sqlite/sqlite_client.js.map +1 -1
- package/dist/repositories/worker/worker_file_database.d.ts +135 -1
- package/dist/repositories/worker/worker_file_database.d.ts.map +1 -1
- package/dist/repositories/worker/worker_file_database.js +726 -27
- package/dist/repositories/worker/worker_file_database.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +182 -77
- package/dist/server.js.map +1 -1
- package/dist/services/attachment_resolution.d.ts +149 -0
- package/dist/services/attachment_resolution.d.ts.map +1 -0
- package/dist/services/attachment_resolution.js +206 -0
- package/dist/services/attachment_resolution.js.map +1 -0
- package/dist/services/attachment_resolution_sqlite.d.ts +57 -0
- package/dist/services/attachment_resolution_sqlite.d.ts.map +1 -0
- package/dist/services/attachment_resolution_sqlite.js +75 -0
- package/dist/services/attachment_resolution_sqlite.js.map +1 -0
- package/dist/services/entity_queries.d.ts.map +1 -1
- package/dist/services/entity_queries.js +85 -23
- package/dist/services/entity_queries.js.map +1 -1
- package/dist/services/entity_snapshot_at_time.d.ts.map +1 -1
- package/dist/services/entity_snapshot_at_time.js +23 -3
- package/dist/services/entity_snapshot_at_time.js.map +1 -1
- package/dist/services/file_input_diagnostics.d.ts +89 -0
- package/dist/services/file_input_diagnostics.d.ts.map +1 -0
- package/dist/services/file_input_diagnostics.js +174 -0
- package/dist/services/file_input_diagnostics.js.map +1 -0
- package/dist/services/interpretation.d.ts.map +1 -1
- package/dist/services/interpretation.js +22 -8
- package/dist/services/interpretation.js.map +1 -1
- package/dist/services/mcp_auth.d.ts +19 -3
- package/dist/services/mcp_auth.d.ts.map +1 -1
- package/dist/services/mcp_auth.js +23 -33
- package/dist/services/mcp_auth.js.map +1 -1
- package/dist/services/mcp_oauth.d.ts +14 -1
- package/dist/services/mcp_oauth.d.ts.map +1 -1
- package/dist/services/mcp_oauth.js +86 -1
- package/dist/services/mcp_oauth.js.map +1 -1
- package/dist/services/raw_storage.d.ts.map +1 -1
- package/dist/services/raw_storage.js +14 -2
- package/dist/services/raw_storage.js.map +1 -1
- package/dist/services/readiness.d.ts +85 -0
- package/dist/services/readiness.d.ts.map +1 -0
- package/dist/services/readiness.js +93 -0
- package/dist/services/readiness.js.map +1 -0
- package/dist/services/route_shadowing.d.ts +67 -0
- package/dist/services/route_shadowing.d.ts.map +1 -0
- package/dist/services/route_shadowing.js +126 -0
- package/dist/services/route_shadowing.js.map +1 -0
- package/dist/services/schema_definitions.d.ts.map +1 -1
- package/dist/services/schema_definitions.js +171 -0
- package/dist/services/schema_definitions.js.map +1 -1
- package/dist/services/schema_lag_repair.d.ts.map +1 -1
- package/dist/services/schema_lag_repair.js +32 -12
- package/dist/services/schema_lag_repair.js.map +1 -1
- package/dist/services/schema_registry.d.ts.map +1 -1
- package/dist/services/schema_registry.js +12 -5
- package/dist/services/schema_registry.js.map +1 -1
- package/dist/services/snapshot_computation.d.ts.map +1 -1
- package/dist/services/snapshot_computation.js +12 -8
- package/dist/services/snapshot_computation.js.map +1 -1
- package/dist/services/subscriptions/sse_hub.d.ts.map +1 -1
- package/dist/services/subscriptions/sse_hub.js +19 -1
- package/dist/services/subscriptions/sse_hub.js.map +1 -1
- package/dist/shared/action_handlers/entity_handlers.d.ts.map +1 -1
- package/dist/shared/action_handlers/entity_handlers.js +110 -26
- package/dist/shared/action_handlers/entity_handlers.js.map +1 -1
- package/dist/shared/action_schemas.d.ts +6 -6
- package/dist/shared/contract_mappings.d.ts.map +1 -1
- package/dist/shared/contract_mappings.js +8 -1
- package/dist/shared/contract_mappings.js.map +1 -1
- package/dist/shared/openapi_types.d.ts +108 -3
- package/dist/shared/openapi_types.d.ts.map +1 -1
- package/dist/tool_definitions.d.ts.map +1 -1
- package/dist/tool_definitions.js +18 -13
- package/dist/tool_definitions.js.map +1 -1
- package/openapi.yaml +83 -3
- package/package.json +2 -1
- package/skills/status/SKILL.md +0 -1
- package/skills/where/SKILL.md +315 -0
|
@@ -92,18 +92,122 @@ export class SessionState {
|
|
|
92
92
|
this.sessionId = null;
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
+
/** JSON-RPC error code `src/actions.ts` uses for an unknown/expired MCP session. */
|
|
96
|
+
const MCP_SESSION_LOST_RPC_CODE = -32001;
|
|
97
|
+
/** Statuses on which a session-loss body is honoured. 401 is deliberately absent — see below. */
|
|
98
|
+
const SESSION_LOST_STATUSES = new Set([404, 503]);
|
|
95
99
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* older/unpatched Neotoma server instances).
|
|
100
|
+
* Extract `error.code` from a JSON-RPC error envelope, or null when the body is
|
|
101
|
+
* not parseable JSON-RPC. A non-JSON body (an HTML 404 from a proxy in front of
|
|
102
|
+
* the app, say) yields null and is judged on its message text alone.
|
|
100
103
|
*/
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
function jsonRpcErrorCode(bodyText) {
|
|
105
|
+
try {
|
|
106
|
+
const parsed = JSON.parse(bodyText);
|
|
107
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
|
|
108
|
+
return null;
|
|
109
|
+
const err = parsed.error;
|
|
110
|
+
if (typeof err !== "object" || err === null)
|
|
111
|
+
return null;
|
|
112
|
+
const code = err.code;
|
|
113
|
+
return typeof code === "number" ? code : null;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** The session-unknown copy emitted by `src/actions.ts`, matched case-insensitively. */
|
|
120
|
+
function hasSessionUnknownMessage(bodyText) {
|
|
104
121
|
const t = bodyText.toLowerCase();
|
|
105
122
|
return (t.includes("mcp session is unknown") || t.includes("session is unknown on this api instance"));
|
|
106
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* True when a downstream response means "your MCP session is gone, re-initialize"
|
|
126
|
+
* (neotoma#2312). Exported for unit tests.
|
|
127
|
+
*
|
|
128
|
+
* Keyed on THREE things together, and each one is load-bearing:
|
|
129
|
+
*
|
|
130
|
+
* 1. **Status is 404 or 503.** 404 is the spec-compliant status per MCP Streamable
|
|
131
|
+
* HTTP session management (neotoma#1923); 503 was the prior status and is retained
|
|
132
|
+
* so this proxy still recovers against older/unpatched Neotoma server instances.
|
|
133
|
+
* 401 is deliberately excluded — `src/actions.ts` returns `-32001` on four separate
|
|
134
|
+
* auth failures (invalid/expired bearer, encryption-mode token, unauthenticated POST,
|
|
135
|
+
* invalid connection id). Those are not session loss, and replaying `initialize`
|
|
136
|
+
* against them would spin the retry loop against a credential problem the replay
|
|
137
|
+
* cannot fix, burning `maxAttempts` and masking the real error from the operator.
|
|
138
|
+
*
|
|
139
|
+
* 2. **The body carries JSON-RPC `error.code === -32001`.** This is what distinguishes
|
|
140
|
+
* a session loss from a genuine routing 404 (a missing route, a misconfigured
|
|
141
|
+
* downstream URL), which must surface as an error rather than be retried.
|
|
142
|
+
*
|
|
143
|
+
* 3. **The message says the session is unknown.** The code alone is not sufficient,
|
|
144
|
+
* since `-32001` is reused for auth; the message keeps an unrelated future
|
|
145
|
+
* `-32001` on 404/503 from being read as session loss.
|
|
146
|
+
*
|
|
147
|
+
* A body that is not parseable JSON-RPC (no code recoverable) still qualifies on the
|
|
148
|
+
* message alone, so a server that wraps or strips the envelope does not regress
|
|
149
|
+
* recovery that worked before this change.
|
|
150
|
+
*/
|
|
151
|
+
export function isRecoverableMcpSessionLostError(status, bodyText) {
|
|
152
|
+
if (!SESSION_LOST_STATUSES.has(status))
|
|
153
|
+
return false;
|
|
154
|
+
if (!hasSessionUnknownMessage(bodyText))
|
|
155
|
+
return false;
|
|
156
|
+
const code = jsonRpcErrorCode(bodyText);
|
|
157
|
+
return code === null || code === MCP_SESSION_LOST_RPC_CODE;
|
|
158
|
+
}
|
|
159
|
+
/** JSON-RPC code for an internal server error — the substrate's own crash surfacing (neotoma#2316). */
|
|
160
|
+
const MCP_INTERNAL_ERROR_RPC_CODE = -32603;
|
|
161
|
+
/**
|
|
162
|
+
* Classify a *handshake* failure (neotoma#2321).
|
|
163
|
+
*
|
|
164
|
+
* This is deliberately a separate predicate from {@link isRecoverableMcpSessionLostError},
|
|
165
|
+
* which answers a different question — "was an established session lost" — and
|
|
166
|
+
* must keep answering only that. On the initialize path there is no session yet,
|
|
167
|
+
* so session-loss reasoning does not apply at all.
|
|
168
|
+
*
|
|
169
|
+
* Each class is keyed on more than one signal, following the discipline
|
|
170
|
+
* neotoma#2320 established for the session-loss predicate:
|
|
171
|
+
*
|
|
172
|
+
* 1. **`auth_rejected` is keyed on HTTP 401**, not on `-32001`. `src/actions.ts`
|
|
173
|
+
* returns `-32001` from four separate auth paths (invalid/expired bearer,
|
|
174
|
+
* encryption-mode token, unauthenticated POST, invalid connection id) — and
|
|
175
|
+
* every one of them returns **401**, while the session-loss path returns 404.
|
|
176
|
+
* The status is therefore the reliable discriminator and the shared `-32001`
|
|
177
|
+
* is not. Retrying an auth rejection would hammer a server that is correctly
|
|
178
|
+
* refusing a credential a replay cannot change, so this exclusion is checked
|
|
179
|
+
* FIRST and no later rule can override it.
|
|
180
|
+
*
|
|
181
|
+
* 2. **`retryable_server` requires evidence the server itself failed** — an HTTP
|
|
182
|
+
* 5xx, or a JSON-RPC `-32603`. The `-32603` arm is load-bearing beyond the
|
|
183
|
+
* 5xx one: when the crash happens after response headers are already sent,
|
|
184
|
+
* `src/actions.ts` cannot restate the status, so the internal error rides out
|
|
185
|
+
* through an otherwise-200 response. That is the exact shape of the
|
|
186
|
+
* "DB request aborted by caller" handshake failure in neotoma#2316.
|
|
187
|
+
*
|
|
188
|
+
* 3. **A 4xx that is not 401 is `other_terminal`.** A 400 or a routing 404 is a
|
|
189
|
+
* client/config error; replaying it just burns the budget and hides the cause.
|
|
190
|
+
*
|
|
191
|
+
* Note what is deliberately absent: no rule keys on `-32001` alone. Auth and
|
|
192
|
+
* session loss share that code, so it cannot by itself justify a retry.
|
|
193
|
+
*/
|
|
194
|
+
export function classifyInitializeFailure(input) {
|
|
195
|
+
const { status, bodyText = "", networkError } = input;
|
|
196
|
+
// No usable HTTP response at all: nothing happened server-side, so replaying
|
|
197
|
+
// the handshake cannot duplicate any server-side effect.
|
|
198
|
+
if (networkError || status === undefined)
|
|
199
|
+
return "retryable_transport";
|
|
200
|
+
// Checked before everything else — see (1) above.
|
|
201
|
+
if (status === 401)
|
|
202
|
+
return "auth_rejected";
|
|
203
|
+
const code = jsonRpcErrorCode(bodyText);
|
|
204
|
+
if (status >= 500)
|
|
205
|
+
return "retryable_server";
|
|
206
|
+
// A 2xx/3xx carrying an internal-error envelope — the crash-after-headers case.
|
|
207
|
+
if (code === MCP_INTERNAL_ERROR_RPC_CODE)
|
|
208
|
+
return "retryable_server";
|
|
209
|
+
return "other_terminal";
|
|
210
|
+
}
|
|
107
211
|
/** Fresh proxy loop state — exported so callers/tests construct a clean session. */
|
|
108
212
|
export function createLoopState() {
|
|
109
213
|
return { session: new SessionState(), lastInitializeBody: null };
|
|
@@ -161,19 +265,68 @@ function emitErrorResponse(originalMessage, status, detail, emit = emitJson) {
|
|
|
161
265
|
},
|
|
162
266
|
});
|
|
163
267
|
}
|
|
164
|
-
|
|
268
|
+
/**
|
|
269
|
+
* True when `payload` is a JSON-RPC *response* (it carries `result` or
|
|
270
|
+
* `error`). Server-initiated requests and notifications are not responses and
|
|
271
|
+
* are never correlated against the pending request's id.
|
|
272
|
+
*/
|
|
273
|
+
export function isJsonRpcResponse(payload) {
|
|
274
|
+
if (typeof payload !== "object" || payload === null || Array.isArray(payload))
|
|
275
|
+
return false;
|
|
276
|
+
const rec = payload;
|
|
277
|
+
return "result" in rec || "error" in rec;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Guard against neotoma#2272: a response describing a DIFFERENT caller's write.
|
|
281
|
+
*
|
|
282
|
+
* The proxy used to forward whatever envelope downstream returned, so a payload
|
|
283
|
+
* belonging to another in-flight call could be delivered as the answer to this
|
|
284
|
+
* one. That is strictly worse than a failed write: the entire discipline for an
|
|
285
|
+
* append-only store under load is "don't trust a success code, re-read the
|
|
286
|
+
* entity", and that assumes the response at least says WHICH write it
|
|
287
|
+
* describes. An agent that stores the returned `entity_id` would attach
|
|
288
|
+
* subsequent work to the wrong parent, and no idempotency key can detect it —
|
|
289
|
+
* the mismatch is downstream of the write.
|
|
290
|
+
*
|
|
291
|
+
* A response whose id does not match the request is therefore dropped and
|
|
292
|
+
* replaced with an explicit error, so the caller retries or verifies rather
|
|
293
|
+
* than silently adopting another caller's entity id. Notifications and
|
|
294
|
+
* server-initiated requests (no id, no result/error) pass through untouched.
|
|
295
|
+
*
|
|
296
|
+
* Returns the payload to emit, or null to drop it.
|
|
297
|
+
*/
|
|
298
|
+
export function correlateResponse(payload, requestId) {
|
|
299
|
+
// A batch is forwarded only when every response in it matches.
|
|
300
|
+
if (Array.isArray(payload)) {
|
|
301
|
+
const mismatch = payload.some((el) => isJsonRpcResponse(el) && el.id !== requestId);
|
|
302
|
+
return mismatch ? null : payload;
|
|
303
|
+
}
|
|
304
|
+
if (!isJsonRpcResponse(payload))
|
|
305
|
+
return payload;
|
|
306
|
+
// A response with a null id is the spec's shape for "could not determine the
|
|
307
|
+
// request" (e.g. a parse error), so it is passed through as this call's error.
|
|
308
|
+
if (payload.id === null || payload.id === undefined)
|
|
309
|
+
return payload;
|
|
310
|
+
return payload.id === requestId ? payload : null;
|
|
311
|
+
}
|
|
312
|
+
async function forwardJsonResponse(response, emit = emitJson, requestId) {
|
|
165
313
|
const body = await response.text();
|
|
166
314
|
if (!body)
|
|
167
315
|
return;
|
|
168
316
|
try {
|
|
169
317
|
const payload = JSON.parse(body);
|
|
170
|
-
|
|
318
|
+
const correlated = correlateResponse(payload, requestId);
|
|
319
|
+
if (correlated === null) {
|
|
320
|
+
log(`Dropped mis-correlated downstream response (neotoma#2272): expected id=${JSON.stringify(requestId)}`);
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
emit(correlated);
|
|
171
324
|
}
|
|
172
325
|
catch (err) {
|
|
173
326
|
log(`Failed to decode JSON response: ${String(err)}`);
|
|
174
327
|
}
|
|
175
328
|
}
|
|
176
|
-
async function forwardSseResponse(response, emit = emitJson) {
|
|
329
|
+
async function forwardSseResponse(response, emit = emitJson, requestId) {
|
|
177
330
|
const reader = response.body?.getReader();
|
|
178
331
|
if (!reader)
|
|
179
332
|
return;
|
|
@@ -206,7 +359,12 @@ async function forwardSseResponse(response, emit = emitJson) {
|
|
|
206
359
|
continue;
|
|
207
360
|
try {
|
|
208
361
|
const payload = JSON.parse(data);
|
|
209
|
-
|
|
362
|
+
const correlated = correlateResponse(payload, requestId);
|
|
363
|
+
if (correlated === null) {
|
|
364
|
+
log(`Dropped mis-correlated downstream SSE response (neotoma#2272): expected id=${JSON.stringify(requestId)}`);
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
emit(correlated);
|
|
210
368
|
}
|
|
211
369
|
catch {
|
|
212
370
|
log(`SSE data frame is not JSON: ${data.slice(0, 200)}`);
|
|
@@ -219,13 +377,90 @@ async function forwardSseResponse(response, emit = emitJson) {
|
|
|
219
377
|
reader.releaseLock();
|
|
220
378
|
}
|
|
221
379
|
}
|
|
222
|
-
|
|
380
|
+
/**
|
|
381
|
+
* Forward a downstream response to stdout, dropping any envelope that does not
|
|
382
|
+
* correlate to `requestId` (neotoma#2272).
|
|
383
|
+
*
|
|
384
|
+
* Returns true when a response for `requestId` was emitted. A false return
|
|
385
|
+
* means every response frame was mis-correlated and dropped, so the caller is
|
|
386
|
+
* still owed an answer — `dispatchCore` turns that into an explicit error
|
|
387
|
+
* rather than leaving the client waiting forever.
|
|
388
|
+
*/
|
|
389
|
+
async function forwardResponse(response, emit, requestId) {
|
|
390
|
+
let answered = requestId === undefined;
|
|
391
|
+
const trackingEmit = (payload) => {
|
|
392
|
+
if (isJsonRpcResponse(payload) || Array.isArray(payload))
|
|
393
|
+
answered = true;
|
|
394
|
+
emit(payload);
|
|
395
|
+
};
|
|
223
396
|
const contentType = response.headers.get("content-type") ?? "";
|
|
224
397
|
if (contentType.includes("text/event-stream")) {
|
|
225
|
-
await forwardSseResponse(response,
|
|
398
|
+
await forwardSseResponse(response, trackingEmit, requestId);
|
|
226
399
|
}
|
|
227
400
|
else {
|
|
228
|
-
await forwardJsonResponse(response,
|
|
401
|
+
await forwardJsonResponse(response, trackingEmit, requestId);
|
|
402
|
+
}
|
|
403
|
+
return answered;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Emit an already-buffered response body, preserving the neotoma#2272
|
|
407
|
+
* correlation guard.
|
|
408
|
+
*
|
|
409
|
+
* The initialize path has to read the body to classify it (a crash can surface
|
|
410
|
+
* as `-32603` through a 200 — neotoma#2321), which consumes the stream, so
|
|
411
|
+
* `forwardResponse` can no longer be used. This re-implements the same emit
|
|
412
|
+
* rules over text already in hand: SSE frames are parsed out of the buffer, a
|
|
413
|
+
* JSON body is parsed directly, and either way a payload whose id does not match
|
|
414
|
+
* the request is dropped rather than delivered as this call's answer.
|
|
415
|
+
*/
|
|
416
|
+
function emitBufferedResponse(bodyText, response, emit, requestId, originalMessage) {
|
|
417
|
+
const contentType = response.headers.get("content-type") ?? "";
|
|
418
|
+
let answered = requestId === undefined;
|
|
419
|
+
const trackingEmit = (payload) => {
|
|
420
|
+
if (isJsonRpcResponse(payload) || Array.isArray(payload))
|
|
421
|
+
answered = true;
|
|
422
|
+
emit(payload);
|
|
423
|
+
};
|
|
424
|
+
const emitOne = (raw) => {
|
|
425
|
+
try {
|
|
426
|
+
const payload = JSON.parse(raw);
|
|
427
|
+
const correlated = correlateResponse(payload, requestId);
|
|
428
|
+
if (correlated === null) {
|
|
429
|
+
log(`Dropped mis-correlated downstream response (neotoma#2272): expected id=${JSON.stringify(requestId)}`);
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
trackingEmit(correlated);
|
|
433
|
+
}
|
|
434
|
+
catch {
|
|
435
|
+
log(`Failed to decode initialize response payload: ${raw.slice(0, 200)}`);
|
|
436
|
+
}
|
|
437
|
+
};
|
|
438
|
+
if (contentType.includes("text/event-stream")) {
|
|
439
|
+
let currentEvent = "message";
|
|
440
|
+
for (const rawLine of bodyText.split("\n")) {
|
|
441
|
+
const line = rawLine.replace(/\r$/, "");
|
|
442
|
+
if (line === "") {
|
|
443
|
+
currentEvent = "message";
|
|
444
|
+
continue;
|
|
445
|
+
}
|
|
446
|
+
if (line.startsWith(":"))
|
|
447
|
+
continue;
|
|
448
|
+
if (line.startsWith("event:")) {
|
|
449
|
+
currentEvent = line.slice(6).trim();
|
|
450
|
+
continue;
|
|
451
|
+
}
|
|
452
|
+
if (line.startsWith("data:")) {
|
|
453
|
+
if (currentEvent !== "message")
|
|
454
|
+
continue;
|
|
455
|
+
emitOne(line.slice(5).trim());
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
else if (bodyText) {
|
|
460
|
+
emitOne(bodyText);
|
|
461
|
+
}
|
|
462
|
+
if (!answered) {
|
|
463
|
+
emitErrorResponse(originalMessage, 502, "downstream response did not correlate to this request (neotoma#2272); it was dropped rather than delivered as your result — re-read the entity to confirm whether the write landed", emit);
|
|
229
464
|
}
|
|
230
465
|
}
|
|
231
466
|
/** Default per-request downstream timeout (ms) — below typical harness MCP timeouts so a hang retries rather than surfacing as "unavailable". */
|
|
@@ -281,6 +516,23 @@ export function withTimeout(p, ms) {
|
|
|
281
516
|
});
|
|
282
517
|
});
|
|
283
518
|
}
|
|
519
|
+
/**
|
|
520
|
+
* Wall-clock ceiling for retrying a failed handshake (neotoma#2321).
|
|
521
|
+
*
|
|
522
|
+
* Attempt count alone is not a sufficient bound here. The proxy is a stdio child
|
|
523
|
+
* and emits nothing until `dispatchCore` resolves, so the client sits blocked on
|
|
524
|
+
* its own `initialize` timeout for the whole retry window — 60s by default in the
|
|
525
|
+
* MCP SDK (`DEFAULT_REQUEST_TIMEOUT_MSEC`). Four attempts that each burn the full
|
|
526
|
+
* 15s request timeout plus backoff would total ~62s and blow past that, turning a
|
|
527
|
+
* recoverable handshake into a client-side abort — the very outcome this retry
|
|
528
|
+
* exists to prevent.
|
|
529
|
+
*
|
|
530
|
+
* 45s leaves headroom under the default client budget while still spanning the
|
|
531
|
+
* fast-failure cases this fix targets (ECONNREFUSED, socket close, 5xx/-32603 all
|
|
532
|
+
* return in well under a second, so the whole window is a couple of seconds of
|
|
533
|
+
* backoff). Overridable via NEOTOMA_MCP_PROXY_HANDSHAKE_BUDGET_MS.
|
|
534
|
+
*/
|
|
535
|
+
export const DEFAULT_HANDSHAKE_RETRY_BUDGET_MS = 45_000;
|
|
284
536
|
/**
|
|
285
537
|
* Forward one JSON-RPC message downstream, recovering automatically from a
|
|
286
538
|
* lost/expired MCP session — the failure mode behind neotoma#1472/#1667/#1923,
|
|
@@ -293,8 +545,16 @@ export function withTimeout(p, ms) {
|
|
|
293
545
|
* cached `initialize` is replayed downstream and the message retried, up to
|
|
294
546
|
* `maxAttempts` with exponential backoff. The client's stdout only ever sees
|
|
295
547
|
* the final result, so backend restarts become invisible instead of failing
|
|
296
|
-
* the whole session.
|
|
297
|
-
*
|
|
548
|
+
* the whole session.
|
|
549
|
+
*
|
|
550
|
+
* `initialize` takes a SEPARATE path (neotoma#2321). Session-loss recovery
|
|
551
|
+
* cannot help a handshake that never established — there is no session to
|
|
552
|
+
* recover and no cached handshake to replay — so a failed `initialize` used to
|
|
553
|
+
* be permanent for the life of the client, leaving every session opened during
|
|
554
|
+
* an outage dark long after the backend recovered. It is now retried, but only
|
|
555
|
+
* on a classified failure ({@link classifyInitializeFailure}): a transport
|
|
556
|
+
* failure that never reached a server, or a server that answered with its own
|
|
557
|
+
* internal failure. An `initialize` refused for authentication is never retried.
|
|
298
558
|
*/
|
|
299
559
|
export async function dispatchCore(deps, loopState, config, message) {
|
|
300
560
|
injectClientInfo(message, config);
|
|
@@ -320,6 +580,43 @@ export async function dispatchCore(deps, loopState, config, message) {
|
|
|
320
580
|
throw new Error(`re-initialize failed status=${resp.status} body=${text.slice(0, 300)}`);
|
|
321
581
|
}
|
|
322
582
|
};
|
|
583
|
+
const now = deps.now ?? Date.now;
|
|
584
|
+
const handshakeBudgetMs = deps.handshakeBudgetMs ??
|
|
585
|
+
envPositiveInt("NEOTOMA_MCP_PROXY_HANDSHAKE_BUDGET_MS") ??
|
|
586
|
+
DEFAULT_HANDSHAKE_RETRY_BUDGET_MS;
|
|
587
|
+
const handshakeStartedAt = now();
|
|
588
|
+
/**
|
|
589
|
+
* Decide whether a classified handshake failure gets another attempt, and log
|
|
590
|
+
* why. Returns false when the caller must surface a terminal error instead.
|
|
591
|
+
*/
|
|
592
|
+
const shouldRetryHandshake = (cls, attempt) => {
|
|
593
|
+
if (cls === "auth_rejected" || cls === "other_terminal")
|
|
594
|
+
return false;
|
|
595
|
+
if (attempt >= deps.maxAttempts)
|
|
596
|
+
return false;
|
|
597
|
+
const elapsed = now() - handshakeStartedAt;
|
|
598
|
+
const wait = backoffMs(attempt);
|
|
599
|
+
if (elapsed + wait >= handshakeBudgetMs) {
|
|
600
|
+
log(`initialize retry budget exhausted after ${elapsed}ms (limit ${handshakeBudgetMs}ms) — surfacing the failure while the client is still waiting`);
|
|
601
|
+
return false;
|
|
602
|
+
}
|
|
603
|
+
return true;
|
|
604
|
+
};
|
|
605
|
+
/** Terminal handshake error, with a class the client can act on. */
|
|
606
|
+
const emitHandshakeFailure = (cls, detail) => {
|
|
607
|
+
if (cls === "auth_rejected") {
|
|
608
|
+
log(`initialize auth rejected — not retrying: ${detail.slice(0, 300)}`);
|
|
609
|
+
emitErrorResponse(message, 401, `handshake_auth_rejected: downstream refused the credential, so retrying cannot help. Check the bearer token, X-Connection-Id, or AAuth agent grant. ${detail}`, deps.emit);
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
if (cls === "other_terminal") {
|
|
613
|
+
emitErrorResponse(message, 502, `handshake_failed: ${detail}`, deps.emit);
|
|
614
|
+
return;
|
|
615
|
+
}
|
|
616
|
+
const token = cls === "retryable_transport" ? "handshake_unreachable" : "handshake_server_error";
|
|
617
|
+
log(`initialize exhausted (${token}) after ${deps.maxAttempts} attempts`);
|
|
618
|
+
emitErrorResponse(message, 503, `${token}: the Neotoma MCP server could not be reached or failed to complete the handshake after ${deps.maxAttempts} attempts. This is a connection failure, NOT a missing tool — tools are unavailable because the session never established, not because they do not exist. ${detail}`, deps.emit);
|
|
619
|
+
};
|
|
323
620
|
let lastDetail = "";
|
|
324
621
|
for (let attempt = 1; attempt <= deps.maxAttempts; attempt++) {
|
|
325
622
|
try {
|
|
@@ -331,10 +628,55 @@ export async function dispatchCore(deps, loopState, config, message) {
|
|
|
331
628
|
const resp = await post(body);
|
|
332
629
|
loopState.session.capture(resp.headers);
|
|
333
630
|
if (resp.status < 400) {
|
|
334
|
-
|
|
631
|
+
// A handshake can fail through an otherwise-successful response: when the
|
|
632
|
+
// substrate crashes after headers are sent, `src/actions.ts` cannot restate
|
|
633
|
+
// the status, so `-32603` rides out on a 200 (neotoma#2316/#2321). Buffer
|
|
634
|
+
// the body once and classify before forwarding, or that failure is
|
|
635
|
+
// forwarded as a successful handshake and the session is dark for good.
|
|
636
|
+
if (isInit) {
|
|
637
|
+
const okText = await resp.text();
|
|
638
|
+
const cls = classifyInitializeFailure({ status: resp.status, bodyText: okText });
|
|
639
|
+
if (cls === "retryable_server") {
|
|
640
|
+
lastDetail = okText.slice(0, 300);
|
|
641
|
+
if (shouldRetryHandshake(cls, attempt)) {
|
|
642
|
+
log(`initialize retry attempt=${attempt}/${deps.maxAttempts} (${cls}): downstream returned an internal error through a ${resp.status} response — retrying`);
|
|
643
|
+
loopState.session.clearSession();
|
|
644
|
+
await deps.sleep(backoffMs(attempt));
|
|
645
|
+
continue;
|
|
646
|
+
}
|
|
647
|
+
emitHandshakeFailure(cls, lastDetail);
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
if (attempt > 1)
|
|
651
|
+
log(`initialize recovered after ${attempt} attempts`);
|
|
652
|
+
emitBufferedResponse(okText, resp, deps.emit, message.id, message);
|
|
653
|
+
return;
|
|
654
|
+
}
|
|
655
|
+
const answered = await forwardResponse(resp, deps.emit, message.id);
|
|
656
|
+
if (!answered) {
|
|
657
|
+
// Every frame downstream sent belonged to a different request
|
|
658
|
+
// (neotoma#2272). The caller must never adopt another write's
|
|
659
|
+
// payload, and must not be left hanging either.
|
|
660
|
+
emitErrorResponse(message, 502, "downstream response did not correlate to this request (neotoma#2272); it was dropped rather than delivered as your result — re-read the entity to confirm whether the write landed", deps.emit);
|
|
661
|
+
}
|
|
335
662
|
return;
|
|
336
663
|
}
|
|
337
664
|
const errText = await resp.text();
|
|
665
|
+
// The handshake path (neotoma#2321): classify, then retry only what a
|
|
666
|
+
// replay can fix. Session-loss reasoning below is left untouched — it
|
|
667
|
+
// answers a different question and never applies before a session exists.
|
|
668
|
+
if (isInit) {
|
|
669
|
+
const cls = classifyInitializeFailure({ status: resp.status, bodyText: errText });
|
|
670
|
+
lastDetail = `status=${resp.status} ${errText.slice(0, 300)}`;
|
|
671
|
+
if (shouldRetryHandshake(cls, attempt)) {
|
|
672
|
+
log(`initialize retry attempt=${attempt}/${deps.maxAttempts} (${cls}): downstream status=${resp.status} — retrying`);
|
|
673
|
+
loopState.session.clearSession();
|
|
674
|
+
await deps.sleep(backoffMs(attempt));
|
|
675
|
+
continue;
|
|
676
|
+
}
|
|
677
|
+
emitHandshakeFailure(cls, lastDetail);
|
|
678
|
+
return;
|
|
679
|
+
}
|
|
338
680
|
if (isRecoverableMcpSessionLostError(resp.status, errText) &&
|
|
339
681
|
!isInit &&
|
|
340
682
|
loopState.lastInitializeBody) {
|
|
@@ -354,6 +696,20 @@ export async function dispatchCore(deps, loopState, config, message) {
|
|
|
354
696
|
}
|
|
355
697
|
catch (err) {
|
|
356
698
|
lastDetail = describeNetworkError(err);
|
|
699
|
+
// A handshake that never reached a server (CONNECT_TIMEOUT, ECONNREFUSED,
|
|
700
|
+
// socket closed before a response). Nothing happened downstream, so a
|
|
701
|
+
// replay cannot duplicate a server-side effect (neotoma#2321).
|
|
702
|
+
if (isInit) {
|
|
703
|
+
const cls = classifyInitializeFailure({ networkError: true });
|
|
704
|
+
if (shouldRetryHandshake(cls, attempt)) {
|
|
705
|
+
log(`initialize retry attempt=${attempt}/${deps.maxAttempts} (${cls}): ${lastDetail} — retrying`);
|
|
706
|
+
loopState.session.clearSession();
|
|
707
|
+
await deps.sleep(backoffMs(attempt));
|
|
708
|
+
continue;
|
|
709
|
+
}
|
|
710
|
+
emitHandshakeFailure(cls, lastDetail);
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
357
713
|
// A transport error or timeout on a non-initialize call is treated as
|
|
358
714
|
// a downstream restart window: drop the session, back off, re-handshake.
|
|
359
715
|
if (!isInit && attempt < deps.maxAttempts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp_stdio_proxy.js","sourceRoot":"","sources":["../../src/proxy/mcp_stdio_proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp_stdio_proxy.js","sourceRoot":"","sources":["../../src/proxy/mcp_stdio_proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local_db_adapter.d.ts","sourceRoot":"","sources":["../../../src/repositories/sqlite/local_db_adapter.ts"],"names":[],"mappings":"AAUA,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,oFAAoF;QACpF,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,4DAA4D;QAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,IAAI,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiDF;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,UAAU,GAAG,IAAI,CA8B9C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAuFD,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAY1E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAazD;AAuED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA2CzE;
|
|
1
|
+
{"version":3,"file":"local_db_adapter.d.ts","sourceRoot":"","sources":["../../../src/repositories/sqlite/local_db_adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -456,9 +456,29 @@ async function ensureEntityRowForSnapshot(db, snapshotRow) {
|
|
|
456
456
|
.prepare("INSERT INTO entities (id, entity_type, canonical_name, created_at, updated_at, user_id) VALUES (?, ?, ?, ?, ?, ?)")
|
|
457
457
|
.run(entityId, entityType, canonicalName, now, now, userId);
|
|
458
458
|
}
|
|
459
|
+
/**
|
|
460
|
+
* Recompute an entity snapshot from inside the adapter's observation-insert
|
|
461
|
+
* path (local backend parity).
|
|
462
|
+
*
|
|
463
|
+
* #2343: this deliberately does NOT delegate to the service-layer
|
|
464
|
+
* `recomputeSnapshot`. `src/db.ts` exports this very adapter as `db`, so the
|
|
465
|
+
* service function's own `db.from("observations")` fetch would re-enter the
|
|
466
|
+
* adapter while it is mid-insert. What it shares with the seam instead is the
|
|
467
|
+
* RULES: `attachment_resolution_sqlite.ts` expresses the same merge-alias
|
|
468
|
+
* resolution, the same cycle guard, and the same depth constant against the
|
|
469
|
+
* raw handle this layer has. See that module's header for why the split is
|
|
470
|
+
* structural rather than duplication.
|
|
471
|
+
*/
|
|
459
472
|
async function recomputeEntitySnapshot(db, entityId) {
|
|
460
473
|
const { ObservationReducer } = await import("../../reducers/observation_reducer.js");
|
|
461
474
|
const reducer = new ObservationReducer();
|
|
475
|
+
// Resolution and ownership are different questions. A redirected id (a merge
|
|
476
|
+
// tombstone) resolves to its survivor but owns no snapshot row; writing the
|
|
477
|
+
// survivor's snapshot back under it would manufacture a duplicate the flat
|
|
478
|
+
// fetch never produced.
|
|
479
|
+
const { ownsSnapshotSqlite } = await import("../../services/attachment_resolution_sqlite.js");
|
|
480
|
+
if (!(await ownsSnapshotSqlite(db, entityId)))
|
|
481
|
+
return;
|
|
462
482
|
const rows = (await db
|
|
463
483
|
.prepare("SELECT * FROM observations WHERE entity_id = ?")
|
|
464
484
|
.all(entityId));
|