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.
Files changed (118) hide show
  1. package/dist/actions.d.ts +13 -0
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +236 -93
  4. package/dist/actions.js.map +1 -1
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +11 -0
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/config.d.ts +13 -0
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +90 -0
  11. package/dist/config.js.map +1 -1
  12. package/dist/docs/api/rest_api.md +81 -0
  13. package/dist/docs/developer/getting_started.md +45 -0
  14. package/dist/docs/developer/mcp/proxy.md +48 -28
  15. package/dist/docs/developer/npm_scripts.md +10 -4
  16. package/dist/docs/infrastructure/client_instance_deployment.md +50 -2
  17. package/dist/docs/operations/configuration.md +44 -1
  18. package/dist/docs/security/advisories/2026-08-26-jwt-bearer-unverified-fallback-auth-bypass.md +59 -0
  19. package/dist/docs/security/advisories/README.md +1 -0
  20. package/dist/docs/security/practices.md +5 -1
  21. package/dist/docs/subsystems/agent_session_architecture.md +69 -0
  22. package/dist/docs/subsystems/usage_digest.md +127 -0
  23. package/dist/docs/testing/automated_test_catalog.md +49 -26
  24. package/dist/docs/testing/testing_standard.md +1 -1
  25. package/dist/middleware/aauth_admission.js +1 -1
  26. package/dist/middleware/aauth_admission.js.map +1 -1
  27. package/dist/middleware/db_abort_context.d.ts +24 -0
  28. package/dist/middleware/db_abort_context.d.ts.map +1 -0
  29. package/dist/middleware/db_abort_context.js +41 -0
  30. package/dist/middleware/db_abort_context.js.map +1 -0
  31. package/dist/proxy/mcp_stdio_proxy.d.ts +134 -6
  32. package/dist/proxy/mcp_stdio_proxy.d.ts.map +1 -1
  33. package/dist/proxy/mcp_stdio_proxy.js +373 -17
  34. package/dist/proxy/mcp_stdio_proxy.js.map +1 -1
  35. package/dist/repositories/sqlite/local_db_adapter.d.ts.map +1 -1
  36. package/dist/repositories/sqlite/local_db_adapter.js +20 -0
  37. package/dist/repositories/sqlite/local_db_adapter.js.map +1 -1
  38. package/dist/repositories/sqlite/sqlite_client.d.ts.map +1 -1
  39. package/dist/repositories/sqlite/sqlite_client.js +10 -0
  40. package/dist/repositories/sqlite/sqlite_client.js.map +1 -1
  41. package/dist/repositories/worker/worker_file_database.d.ts +135 -1
  42. package/dist/repositories/worker/worker_file_database.d.ts.map +1 -1
  43. package/dist/repositories/worker/worker_file_database.js +726 -27
  44. package/dist/repositories/worker/worker_file_database.js.map +1 -1
  45. package/dist/server.d.ts.map +1 -1
  46. package/dist/server.js +182 -77
  47. package/dist/server.js.map +1 -1
  48. package/dist/services/attachment_resolution.d.ts +149 -0
  49. package/dist/services/attachment_resolution.d.ts.map +1 -0
  50. package/dist/services/attachment_resolution.js +206 -0
  51. package/dist/services/attachment_resolution.js.map +1 -0
  52. package/dist/services/attachment_resolution_sqlite.d.ts +57 -0
  53. package/dist/services/attachment_resolution_sqlite.d.ts.map +1 -0
  54. package/dist/services/attachment_resolution_sqlite.js +75 -0
  55. package/dist/services/attachment_resolution_sqlite.js.map +1 -0
  56. package/dist/services/entity_queries.d.ts.map +1 -1
  57. package/dist/services/entity_queries.js +85 -23
  58. package/dist/services/entity_queries.js.map +1 -1
  59. package/dist/services/entity_snapshot_at_time.d.ts.map +1 -1
  60. package/dist/services/entity_snapshot_at_time.js +23 -3
  61. package/dist/services/entity_snapshot_at_time.js.map +1 -1
  62. package/dist/services/file_input_diagnostics.d.ts +89 -0
  63. package/dist/services/file_input_diagnostics.d.ts.map +1 -0
  64. package/dist/services/file_input_diagnostics.js +174 -0
  65. package/dist/services/file_input_diagnostics.js.map +1 -0
  66. package/dist/services/interpretation.d.ts.map +1 -1
  67. package/dist/services/interpretation.js +22 -8
  68. package/dist/services/interpretation.js.map +1 -1
  69. package/dist/services/mcp_auth.d.ts +19 -3
  70. package/dist/services/mcp_auth.d.ts.map +1 -1
  71. package/dist/services/mcp_auth.js +23 -33
  72. package/dist/services/mcp_auth.js.map +1 -1
  73. package/dist/services/mcp_oauth.d.ts +14 -1
  74. package/dist/services/mcp_oauth.d.ts.map +1 -1
  75. package/dist/services/mcp_oauth.js +86 -1
  76. package/dist/services/mcp_oauth.js.map +1 -1
  77. package/dist/services/raw_storage.d.ts.map +1 -1
  78. package/dist/services/raw_storage.js +14 -2
  79. package/dist/services/raw_storage.js.map +1 -1
  80. package/dist/services/readiness.d.ts +85 -0
  81. package/dist/services/readiness.d.ts.map +1 -0
  82. package/dist/services/readiness.js +93 -0
  83. package/dist/services/readiness.js.map +1 -0
  84. package/dist/services/route_shadowing.d.ts +67 -0
  85. package/dist/services/route_shadowing.d.ts.map +1 -0
  86. package/dist/services/route_shadowing.js +126 -0
  87. package/dist/services/route_shadowing.js.map +1 -0
  88. package/dist/services/schema_definitions.d.ts.map +1 -1
  89. package/dist/services/schema_definitions.js +171 -0
  90. package/dist/services/schema_definitions.js.map +1 -1
  91. package/dist/services/schema_lag_repair.d.ts.map +1 -1
  92. package/dist/services/schema_lag_repair.js +32 -12
  93. package/dist/services/schema_lag_repair.js.map +1 -1
  94. package/dist/services/schema_registry.d.ts.map +1 -1
  95. package/dist/services/schema_registry.js +12 -5
  96. package/dist/services/schema_registry.js.map +1 -1
  97. package/dist/services/snapshot_computation.d.ts.map +1 -1
  98. package/dist/services/snapshot_computation.js +12 -8
  99. package/dist/services/snapshot_computation.js.map +1 -1
  100. package/dist/services/subscriptions/sse_hub.d.ts.map +1 -1
  101. package/dist/services/subscriptions/sse_hub.js +19 -1
  102. package/dist/services/subscriptions/sse_hub.js.map +1 -1
  103. package/dist/shared/action_handlers/entity_handlers.d.ts.map +1 -1
  104. package/dist/shared/action_handlers/entity_handlers.js +110 -26
  105. package/dist/shared/action_handlers/entity_handlers.js.map +1 -1
  106. package/dist/shared/action_schemas.d.ts +6 -6
  107. package/dist/shared/contract_mappings.d.ts.map +1 -1
  108. package/dist/shared/contract_mappings.js +8 -1
  109. package/dist/shared/contract_mappings.js.map +1 -1
  110. package/dist/shared/openapi_types.d.ts +108 -3
  111. package/dist/shared/openapi_types.d.ts.map +1 -1
  112. package/dist/tool_definitions.d.ts.map +1 -1
  113. package/dist/tool_definitions.js +18 -13
  114. package/dist/tool_definitions.js.map +1 -1
  115. package/openapi.yaml +83 -3
  116. package/package.json +2 -1
  117. package/skills/status/SKILL.md +0 -1
  118. 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
- * Exported for unit tests — matches `src/actions.ts` Streamable HTTP unknown-session
97
- * copy. Accepts 404 (current, spec-compliant status per MCP Streamable HTTP session
98
- * management) and 503 (prior status, retained so this proxy still recovers against
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
- export function isRecoverableMcpSessionLostError(status, bodyText) {
102
- if (status !== 404 && status !== 503)
103
- return false;
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
- async function forwardJsonResponse(response, emit = emitJson) {
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
- emit(payload);
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
- emit(payload);
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
- async function forwardResponse(response, emit) {
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, emit);
398
+ await forwardSseResponse(response, trackingEmit, requestId);
226
399
  }
227
400
  else {
228
- await forwardJsonResponse(response, emit);
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. `initialize` itself is never retried here — the client
297
- * owns the handshake.
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
- await forwardResponse(resp, deps.emit);
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":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AAClE,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAgCxC,SAAS,mBAAmB,CAAC,MAAmB;IAC9C,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1E,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED,SAAS,GAAG,CAAC,GAAW;IACtB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,0FAA0F;AAC1F,SAAS,oBAAoB,CAAC,GAAY;IACxC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAE,KAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAmB;IAC3C,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,MAAM,EAAE,qCAAqC;QAC7C,YAAY,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE;KACvE,CAAC;IACF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC;IAC5D,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;IACpD,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgC,EAAE,MAAmB;IAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO;IAC5C,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;IACjE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IACxE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC;IACrC,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9E,UAAU,CAAC,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,GAAG,CACD,wCAAwC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CACxG,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,YAAY;IACvB,SAAS,GAAkB,IAAI,CAAC;IAEhC,MAAM,CAAC,OAA+B;QACpC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,eAAwB;QAC9B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,KAAK;YAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,6EAA6E;IAC7E,YAAY;QACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;CACF;AAED,oFAAoF;AACpF,MAAM,yBAAyB,GAAG,CAAC,KAAK,CAAC;AAEzC,iGAAiG;AACjG,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAElD;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,CAAC;QAC/C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACxF,MAAM,GAAG,GAAI,MAA8B,CAAC,KAAK,CAAC;QAClD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACzD,MAAM,IAAI,GAAI,GAA0B,CAAC,IAAI,CAAC;QAC9C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,SAAS,wBAAwB,CAAC,QAAgB;IAChD,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,CACL,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAC9F,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,gCAAgC,CAAC,MAAc,EAAE,QAAgB;IAC/E,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,yBAAyB,CAAC;AAC7D,CAAC;AAED,uGAAuG;AACvG,MAAM,2BAA2B,GAAG,CAAC,KAAK,CAAC;AAmB3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAIzC;IACC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAEtD,6EAA6E;IAC7E,yDAAyD;IACzD,IAAI,YAAY,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,qBAAqB,CAAC;IAEvE,kDAAkD;IAClD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,eAAe,CAAC;IAE3C,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,kBAAkB,CAAC;IAC7C,gFAAgF;IAChF,IAAI,IAAI,KAAK,2BAA2B;QAAE,OAAO,kBAAkB,CAAC;IAEpE,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAQD,oFAAoF;AACpF,MAAM,UAAU,eAAe;IAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,YAAY,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,MAAmB,EACnB,OAA+B,EAC/B,IAAY;IAEZ,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,OAAO,MAAM,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE;gBAC7C,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI;gBACJ,MAAM,EAAE,MAAM,CAAC,WAAW;aAC3B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACjB,GAAG,CAAC,yBAAyB,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE;gBACvC,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI;aACL,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE;QACvC,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,OAAgB;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAc,EAAE,MAAc;IACzE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,CAAC,OAAO;QAAE,OAAO,uCAAuC,MAAM,GAAG,CAAC;IACtE,OAAO,uCAAuC,MAAM,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACpF,CAAC;AAID,SAAS,iBAAiB,CACxB,eAAwC,EACxC,MAAc,EACd,MAAc,EACd,OAAe,QAAQ;IAEvB,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,CAAC;IACrC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO;IACpC,IAAI,CAAC;QACH,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,SAAS;QACb,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;YACpC,OAAO,EAAE,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC;YACrD,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SACvC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5F,MAAM,GAAG,GAAG,OAAkC,CAAC;IAC/C,OAAO,QAAQ,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,SAAkB;IACpE,+DAA+D;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACpF,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,6EAA6E;IAC7E,+EAA+E;IAC/E,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACpE,OAAO,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,QAAkB,EAClB,OAAe,QAAQ,EACvB,SAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,GAAG,CACD,0EAA0E,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CACtG,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,mCAAmC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAkB,EAClB,OAAe,QAAQ,EACvB,SAAmB;IAEnB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAC3B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBAChB,YAAY,GAAG,SAAS,CAAC;oBACzB,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACnC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9B,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACpC,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAClC,IAAI,YAAY,KAAK,SAAS;wBAAE,SAAS;oBACzC,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBACzD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,GAAG,CACD,8EAA8E,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAC1G,CAAC;4BACF,SAAS;wBACX,CAAC;wBACD,IAAI,CAAC,UAAU,CAAC,CAAC;oBACnB,CAAC;oBAAC,MAAM,CAAC;wBACP,GAAG,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,IAAY,EACZ,SAAmB;IAEnB,IAAI,QAAQ,GAAG,SAAS,KAAK,SAAS,CAAC;IACvC,MAAM,YAAY,GAAW,CAAC,OAAO,EAAE,EAAE;QACvC,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9C,MAAM,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,MAAM,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CAC3B,QAAgB,EAChB,QAAkB,EAClB,IAAY,EACZ,SAAkB,EAClB,eAAwC;IAExC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,QAAQ,GAAG,SAAS,KAAK,SAAS,CAAC;IACvC,MAAM,YAAY,GAAW,CAAC,OAAO,EAAE,EAAE;QACvC,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAQ,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACzD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,GAAG,CACD,0EAA0E,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CACtG,CAAC;gBACF,OAAO;YACT,CAAC;YACD,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,iDAAiD,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9C,IAAI,YAAY,GAAG,SAAS,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,YAAY,GAAG,SAAS,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpC,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,IAAI,YAAY,KAAK,SAAS;oBAAE,SAAS;gBACzC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,iBAAiB,CACf,eAAe,EACf,GAAG,EACH,oLAAoL,EACpL,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,iJAAiJ;AACjJ,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AACjD,gFAAgF;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAmB;IAC3C,OAAO,CACL,MAAM,CAAC,gBAAgB;QACvB,cAAc,CAAC,8BAA8B,CAAC;QAC9C,0BAA0B,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB;IAC7C,OAAO,CACL,MAAM,CAAC,UAAU,IAAI,cAAc,CAAC,gCAAgC,CAAC,IAAI,oBAAoB,CAC9F,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAI,CAAa,EAAE,EAAU;IACtD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACrD,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,EAAE,EAAE;YACJ,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EACD,CAAC,CAAC,EAAE,EAAE;YACJ,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAexD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAkB,EAClB,SAAyB,EACzB,MAAmB,EACnB,OAAgC;IAEhC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC;IAC/C,IAAI,MAAM;QAAE,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAEhD,MAAM,IAAI,GAAG,CAAC,OAAe,EAAqB,EAAE;QAClD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACtE,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7E,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,MAAM,iBAAiB,GACrB,IAAI,CAAC,iBAAiB;QACtB,cAAc,CAAC,uCAAuC,CAAC;QACvD,iCAAiC,CAAC;IACpC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC;IAEjC;;;OAGG;IACH,MAAM,oBAAoB,GAAG,CAAC,GAA2B,EAAE,OAAe,EAAW,EAAE;QACrF,IAAI,GAAG,KAAK,eAAe,IAAI,GAAG,KAAK,gBAAgB;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC9C,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,kBAAkB,CAAC;QAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,OAAO,GAAG,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACxC,GAAG,CACD,2CAA2C,OAAO,aAAa,iBAAiB,+DAA+D,CAChJ,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,oEAAoE;IACpE,MAAM,oBAAoB,GAAG,CAAC,GAA2B,EAAE,MAAc,EAAQ,EAAE;QACjF,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC5B,GAAG,CAAC,4CAA4C,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,iBAAiB,CACf,OAAO,EACP,GAAG,EACH,uJAAuJ,MAAM,EAAE,EAC/J,IAAI,CAAC,IAAI,CACV,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YAC7B,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,qBAAqB,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GACT,GAAG,KAAK,qBAAqB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACrF,GAAG,CAAC,yBAAyB,KAAK,WAAW,IAAI,CAAC,WAAW,WAAW,CAAC,CAAC;QAC1E,iBAAiB,CACf,OAAO,EACP,GAAG,EACH,GAAG,KAAK,2FAA2F,IAAI,CAAC,WAAW,6JAA6J,MAAM,EAAE,EACxR,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7D,IAAI,CAAC;YACH,iEAAiE;YACjE,iEAAiE;YACjE,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,kBAAkB,EAAE,CAAC;gBAC5E,MAAM,YAAY,EAAE,CAAC;YACvB,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAExC,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBACtB,0EAA0E;gBAC1E,4EAA4E;gBAC5E,0EAA0E;gBAC1E,mEAAmE;gBACnE,wEAAwE;gBACxE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBACjC,MAAM,GAAG,GAAG,yBAAyB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBACjF,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;wBAC/B,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAClC,IAAI,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;4BACvC,GAAG,CACD,4BAA4B,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,sDAAsD,IAAI,CAAC,MAAM,sBAAsB,CACvJ,CAAC;4BACF,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;4BACjC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;4BACrC,SAAS;wBACX,CAAC;wBACD,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;wBACtC,OAAO;oBACT,CAAC;oBACD,IAAI,OAAO,GAAG,CAAC;wBAAE,GAAG,CAAC,8BAA8B,OAAO,WAAW,CAAC,CAAC;oBACvE,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;oBACnE,OAAO;gBACT,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,8DAA8D;oBAC9D,8DAA8D;oBAC9D,gDAAgD;oBAChD,iBAAiB,CACf,OAAO,EACP,GAAG,EACH,oLAAoL,EACpL,IAAI,CAAC,IAAI,CACV,CAAC;gBACJ,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAElC,sEAAsE;YACtE,sEAAsE;YACtE,0EAA0E;YAC1E,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,yBAAyB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClF,UAAU,GAAG,UAAU,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC9D,IAAI,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;oBACvC,GAAG,CACD,4BAA4B,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,wBAAwB,IAAI,CAAC,MAAM,aAAa,CAChH,CAAC;oBACF,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBACrC,SAAS;gBACX,CAAC;gBACD,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,IACE,gCAAgC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;gBACtD,CAAC,MAAM;gBACP,SAAS,CAAC,kBAAkB,EAC5B,CAAC;gBACD,UAAU,GAAG,OAAO,CAAC;gBACrB,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACjC,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC/B,GAAG,CACD,2CAA2C,OAAO,IAAI,IAAI,CAAC,WAAW,kCAAkC,CACzG,CAAC;oBACF,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBACrC,SAAS;gBACX,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CACD,2BAA2B,IAAI,CAAC,MAAM,iBAAiB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC9H,CAAC;gBACF,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAEvC,0EAA0E;YAC1E,sEAAsE;YACtE,+DAA+D;YAC/D,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,yBAAyB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,IAAI,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;oBACvC,GAAG,CACD,4BAA4B,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,MAAM,UAAU,aAAa,CAC7F,CAAC;oBACF,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBACrC,SAAS;gBACX,CAAC;gBACD,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,sEAAsE;YACtE,yEAAyE;YACzE,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,GAAG,CACD,uCAAuC,OAAO,IAAI,IAAI,CAAC,WAAW,MAAM,UAAU,kCAAkC,CACrH,CAAC;gBACF,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;IACH,CAAC;IAED,iBAAiB,CACf,OAAO,EACP,GAAG,EACH,wCAAwC,IAAI,CAAC,WAAW,cAAc,UAAU,EAAE,EAClF,IAAI,CAAC,IAAI,CACV,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,SAAyB,EACzB,MAAmB,EACnB,OAAgC;IAEhC,MAAM,YAAY,CAChB;QACE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,QAAQ;QACd,KAAK;QACL,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACnC,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC;KACxC,EACD,SAAS,EACT,MAAM,EACN,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAmB;IAChD,GAAG,CACD,8BAA8B,MAAM,CAAC,aAAa,gBAAgB,mBAAmB,CAAC,MAAM,CAAC,YAAY,MAAM,CAAC,aAAa,cAAc,MAAM,CAAC,gBAAgB,gBAAgB,MAAM,CAAC,UAAU,EAAE,CACtM,CAAC;IAEF,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1E,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,OAAgC,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,iCAAiC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,yCAAyC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACnE,SAAS;QACX,CAAC;QACD,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,GAAG,CAAC,kCAAkC,CAAC,CAAC;AAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"local_db_adapter.d.ts","sourceRoot":"","sources":["../../../src/repositories/sqlite/local_db_adapter.ts"],"names":[],"mappings":"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"}
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));