@zackbart/connecta 0.7.1 → 0.7.3

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 (54) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +2 -1
  3. package/dist/connectors/remote-mcp.d.ts.map +1 -1
  4. package/dist/connectors/remote-mcp.js +117 -79
  5. package/dist/connectors/remote-mcp.js.map +1 -1
  6. package/dist/credential-health.d.ts +8 -5
  7. package/dist/credential-health.d.ts.map +1 -1
  8. package/dist/credential-health.js +20 -13
  9. package/dist/credential-health.js.map +1 -1
  10. package/dist/executors/quickjs.d.ts.map +1 -1
  11. package/dist/executors/quickjs.js +57 -5
  12. package/dist/executors/quickjs.js.map +1 -1
  13. package/dist/index.d.ts +2 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/meta-tools.d.ts.map +1 -1
  17. package/dist/meta-tools.js +47 -11
  18. package/dist/meta-tools.js.map +1 -1
  19. package/dist/registry.d.ts +18 -22
  20. package/dist/registry.d.ts.map +1 -1
  21. package/dist/registry.js +33 -21
  22. package/dist/registry.js.map +1 -1
  23. package/dist/server.d.ts.map +1 -1
  24. package/dist/server.js +9 -6
  25. package/dist/server.js.map +1 -1
  26. package/dist/timeout.d.ts +9 -4
  27. package/dist/timeout.d.ts.map +1 -1
  28. package/dist/timeout.js +34 -4
  29. package/dist/timeout.js.map +1 -1
  30. package/dist/toolkits.d.ts +8 -0
  31. package/dist/toolkits.d.ts.map +1 -1
  32. package/dist/toolkits.js +3 -0
  33. package/dist/toolkits.js.map +1 -1
  34. package/dist/types.d.ts +2 -2
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/ui.d.ts +12 -1
  37. package/dist/ui.d.ts.map +1 -1
  38. package/dist/ui.js +187 -6
  39. package/dist/ui.js.map +1 -1
  40. package/dist/version.d.ts +1 -1
  41. package/dist/version.js +1 -1
  42. package/package.json +1 -1
  43. package/src/connectors/remote-mcp.ts +128 -83
  44. package/src/credential-health.ts +20 -18
  45. package/src/executors/quickjs.ts +65 -5
  46. package/src/index.ts +2 -1
  47. package/src/meta-tools.ts +75 -26
  48. package/src/registry.ts +48 -20
  49. package/src/server.ts +11 -8
  50. package/src/timeout.ts +41 -4
  51. package/src/toolkits.ts +11 -0
  52. package/src/types.ts +2 -2
  53. package/src/ui.ts +212 -11
  54. package/src/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,78 @@
2
2
 
3
3
  All notable changes to this package are documented here.
4
4
 
5
+ ## 0.7.3 — 2026-07-27
6
+
7
+ 0.7.3 is the first published package after 0.7.1. It consolidates the
8
+ unpublished 0.7.2 candidate with the hardening and operator work that followed:
9
+ catalog deadlines and authorization recovery, session-safe operator pages,
10
+ terminal probe and QuickJS cleanup, decisive credential-shape drift, stronger
11
+ documentation checks, and a read-only toolkit map. There are no dependency,
12
+ configuration, storage-schema, or breaking TypeScript changes. The authenticated
13
+ `/ui/data` response gains one additive `toolkits` array; existing fields and
14
+ package entrypoints are unchanged.
15
+
16
+ ### Added
17
+
18
+ - **Connections shows the configured toolkit views** (PR #112). Unrestricted
19
+ operators can inspect connector membership, tool inclusions/exclusions,
20
+ currently loaded effective tool counts, and copyable scoped MCP URLs without
21
+ gaining any mutation or persistence path. Toolkit-restricted identities still
22
+ cannot enumerate deployment-wide data, the open HTML shell remains data-free,
23
+ and config-only toolkit descriptions never leave the server.
24
+
25
+ ### Changed
26
+
27
+ - **Discovery deadlines now govern the catalog work, not only the caller's
28
+ wait** (issue #98). `list_connectors`, `search_tools`, and `describe_tools`
29
+ pass `discovery.probeTimeoutMs` into a full downstream `tools/list` walk.
30
+ Expiry cancels the in-flight page where the transport supports it and prevents
31
+ another page from starting; existing tool/page bounds remain as backstops,
32
+ partial catalogs are never published, and the last complete stale catalog
33
+ remains eligible.
34
+ - **`nextCursor: null` is accepted as end-of-pagination** (issue #99). This
35
+ narrow compatibility concession treats the common JSON null spelling like an
36
+ absent cursor while preserving empty string as a real cursor and retaining
37
+ the SDK's validation for every tool and other result field.
38
+
39
+ ### Fixed
40
+
41
+ - **Authorization expiry is classified consistently across a catalog walk**
42
+ (issue #97). A downstream 401 on any `tools/list` page now reports
43
+ `auth_required` with the pending authorization URL, latches that verdict for
44
+ the request scope, and never publishes the prefix collected before failure.
45
+ Network, protocol, and malformed-page failures remain ordinary errors.
46
+ - **Operator pages clear stale identity data when Clerk changes in another tab
47
+ or outside the page** (issue #92). Connector inventory, masked credential
48
+ metadata and notices, activity rows, toolkit rows, and capability navigation
49
+ are discarded together, and the next navigation fetches under the new session
50
+ rather than repainting cached data.
51
+ - **The three operator routes handle HEAD and small navigation-state edges
52
+ correctly** (issue #93). `/`, `/credentials`, and `/activity` return their GET
53
+ headers with no HEAD body; Back/Forward focus stays visible while gated;
54
+ credential notices clear on page changes; and credential controls use the
55
+ same Clerk capability predicate as the mutation API.
56
+ - **Stored credential-shape drift is decisive on both status and calls** (issue
57
+ #90). The fast connector inventory reports the existing `auth_required`
58
+ replacement state instead of a stale `ok`, while `ctx.credential.get()` and
59
+ `getAll()` reject the obsolete shape before returning any value. Generic
60
+ failed health checks remain non-decisive, valid stored supersets remain
61
+ readable, and replacement/removal remains the recovery path.
62
+ - **Probe teardown cannot be skipped or resurrect a closed request scope**
63
+ (issue #91). Sibling work settles before shared teardown, cleanup no longer
64
+ short-circuits on the first rejection, and a closed scope remains terminal.
65
+ The formerly exported scope-borrowing option remains accepted as deprecated
66
+ and ignored so the fix does not create a TypeScript compatibility break.
67
+ - **QuickJS host-result cleanup is deterministic under timeout and load**
68
+ (issue #84). Settled bridge results are bounded, consumed exactly once, and
69
+ released when execution completes or its deadline wins, preventing late work
70
+ from retaining unobservable values.
71
+ - **The documentation guard catches the legacy syntax it was meant to prevent**
72
+ (issue #94). Bare `§N` citations now fail on live source, docs, examples, and
73
+ README surfaces—including extensionless files—while historical changelog
74
+ entries remain explicitly exempt. Negative fixtures cover every structural
75
+ invariant.
76
+
5
77
  ## 0.7.1 — 2026-07-27
6
78
 
7
79
  0.7.1 is a security-and-bounds patch. It closes both redirect paths that could
package/README.md CHANGED
@@ -95,7 +95,8 @@ rather than a redaction pass: the event type has nowhere to put a payload, which
95
95
  is what keeps an operations log from becoming something worth stealing.
96
96
 
97
97
  **Operator pages that cannot administer the deployment.** Connections at `GET /`
98
- shows connector health, tool counts, and downstream authorization links;
98
+ shows connector health, tool counts, downstream authorization links, and a
99
+ read-only map of the toolkit views declared in deployment config;
99
100
  `/credentials` rotates stored secrets; and `/activity` shows the optional
100
101
  payload-free ledger. They share one data-free shell with no build step and use
101
102
  authenticated private APIs for deployment data. They cannot add a connector,
@@ -1 +1 @@
1
- {"version":3,"file":"remote-mcp.d.ts","sourceRoot":"","sources":["../../src/connectors/remote-mcp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACV,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAEhB,MAAM,EAEP,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,aAAa,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,SAAS,CAAC;CAC1D;AAwJD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAW1C,qBAAa,sBAAuB,SAAQ,kBAAkB;gBAChD,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAOhD;AAaD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,uBAAgC,EACxC,SAAS,GAAE,SAAiB,GAC3B,SAAS,CA2EX;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,SAAS,CAwfvE"}
1
+ {"version":3,"file":"remote-mcp.d.ts","sourceRoot":"","sources":["../../src/connectors/remote-mcp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACV,MAAM,+CAA+C,CAAC;AAKvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAEhB,MAAM,EAEP,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,aAAa,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,SAAS,CAAC;CAC1D;AA8JD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAW1C,qBAAa,sBAAuB,SAAQ,kBAAkB;gBAChD,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAOhD;AAaD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,uBAAgC,EACxC,SAAS,GAAE,SAAiB,GAC3B,SAAS,CA2EX;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,SAAS,CA6hBvE"}
@@ -1,7 +1,9 @@
1
1
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
2
  import { UnauthorizedError } from "@modelcontextprotocol/sdk/client/auth.js";
3
3
  import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
4
+ import { ListToolsResultSchema } from "@modelcontextprotocol/sdk/types.js";
4
5
  import { CfWorkerJsonSchemaValidator } from "@modelcontextprotocol/sdk/validation/cfworker";
6
+ import { z } from "zod";
5
7
  import { KvOAuthProvider } from "../auth/downstream-oauth.js";
6
8
  import { ConnectorCallError } from "../errors.js";
7
9
  import { CONNECTA_VERSION } from "../version.js";
@@ -47,23 +49,28 @@ const MAX_TOOLS = 100_000;
47
49
  * is a definite loop, two consecutive pages that add no new tools are a server
48
50
  * going nowhere, and MAX_TOOLS caps what any of it can accumulate. This exists
49
51
  * only so the loop is finite even if a downstream somehow satisfies all three
50
- * forever, because the caller's probe deadline abandons the *caller*, not the
51
- * loop. Set high enough that no honest server reaches it.
52
+ * forever on a path with no discovery deadline. Set high enough that no honest
53
+ * server reaches it.
52
54
  */
53
55
  const MAX_TOOL_PAGES = 10_000;
56
+ /**
57
+ * Compatibility concession for hand-rolled servers that serialize
58
+ * end-of-pagination as `null`. Only the cursor is widened; every tool and every
59
+ * other result field still passes through the SDK's pinned schema.
60
+ */
61
+ const CompatibleListToolsResultSchema = ListToolsResultSchema.extend({
62
+ nextCursor: z.string().nullable().optional(),
63
+ });
54
64
  /**
55
65
  * Re-prime an SDK client's tool-metadata cache from the *full* walked catalog.
56
66
  *
57
- * `Client.listTools()` ends by calling its private `cacheToolMetadata`, which
58
- * **clears** the output-schema validators and the task-support sets before
59
- * repopulating them from the page it just received. Call it once per page —
60
- * which walking the chain necessarily does and the request-scoped client is
61
- * left holding metadata for the *last* page alone. `callTool` then finds no
62
- * validator for every earlier-page tool and silently skips both the "declared
63
- * an outputSchema but returned no structuredContent" check and the
64
- * structured-content validation, and finds no task requirement so a
65
- * required-task tool is dispatched as a plain `tools/call`. Enforcement would
66
- * depend on which page a tool happened to land on, which is not enforcement.
67
+ * The SDK's `Client.listTools()` caches one page at a time and **clears** the
68
+ * output-schema validators and task-support sets before each replacement.
69
+ * This walk uses `Client.request()` so it can make the narrow null-cursor
70
+ * compatibility concession above, then primes the metadata exactly once from
71
+ * the complete chain. Otherwise `callTool` would find no validator or task
72
+ * requirement for earlier-page tools and enforcement would depend on where a
73
+ * tool happened to land, which is not enforcement.
67
74
  *
68
75
  * So hand the whole aggregated list back deliberately, once, at the end. The
69
76
  * SDK types the method `private`, hence the cast; the SDK version is pinned
@@ -78,9 +85,9 @@ function primeToolMetadata(client, tools) {
78
85
  prime.call(client, tools);
79
86
  }
80
87
  /**
81
- * True for a result-parse failure caused by the page's `nextCursor` itself
82
- * in practice `nextCursor: null`, a very common JSON idiom for "no more pages"
83
- * that the MCP schema does not accept (the chain ends on an *absent* cursor).
88
+ * True for a result-parse failure caused by the page's `nextCursor` itself.
89
+ * `null` is accepted deliberately; other non-string values remain a named
90
+ * downstream nonconformance instead of surfacing as a raw validation dump.
84
91
  * Duck-typed rather than `instanceof ZodError`: the SDK may parse with its own
85
92
  * zod instance, and cross-instance `instanceof` is a coin flip.
86
93
  */
@@ -236,6 +243,9 @@ export function remoteMcp(id, opts) {
236
243
  // transport, response bodies, AbortSignals, or connection promise reachable
237
244
  // from the isolate singleton. Those are request-bound in Cloudflare Workers.
238
245
  const states = new WeakMap();
246
+ // Closing is terminal even after `states.delete`: a late or future lookup
247
+ // must not recreate an ownerless connection under the ended scope.
248
+ const closedScopes = new WeakSet();
239
249
  const isOauth = opts.auth?.type === "oauth";
240
250
  const logger = opts.logger ?? console;
241
251
  // Check the destination scheme once at construction: buildTransport (and the
@@ -256,25 +266,32 @@ export function remoteMcp(id, opts) {
256
266
  const authRequiredError = (cause) => new ConnectorCallError("auth_required", `Connector "${id}" requires authorization — call authorize_connector({ connector: "${id}" }) and open the returned URL.`, { cause });
257
267
  const scopeEndedError = () => new Error(`Connector "${id}" scope ended during connection.`);
258
268
  /**
259
- * One `tools/list` request. The only thing wrapped here is the diagnosis of a
260
- * `nextCursor` the MCP result schema refuses — overwhelmingly `null`, which
261
- * plenty of servers use to mean "no more pages" but the spec spells as an
262
- * *absent* cursor. The SDK surfaces that as a raw validation dump about a
263
- * field the operator never sees; say which server broke which rule instead.
264
- * Accepting `null` as end-of-chain outright is issue #99.
269
+ * One `tools/list` request. The SDK schema is retained wholesale except for
270
+ * accepting `null` as the common, unambiguous end-of-chain spelling. Other
271
+ * cursor shapes still get a useful connector-level diagnosis.
265
272
  */
266
- const listPage = async (client, cursor) => {
273
+ const listPage = async (client, cursor, ctx) => {
267
274
  try {
268
- return await client.listTools(cursor === undefined ? undefined : { cursor });
275
+ return await client.request({
276
+ method: "tools/list",
277
+ ...(cursor === undefined ? {} : { params: { cursor } }),
278
+ }, CompatibleListToolsResultSchema, ctx.timeoutMs || ctx.signal
279
+ ? {
280
+ ...(ctx.timeoutMs ? { timeout: ctx.timeoutMs } : {}),
281
+ ...(ctx.signal ? { signal: ctx.signal } : {}),
282
+ }
283
+ : undefined);
269
284
  }
270
285
  catch (err) {
271
286
  if (!isCursorShapeError(err))
272
287
  throw err;
273
- throw new Error(`Connector "${id}" returned a tools/list page whose nextCursor is neither a string nor absent (a null cursor is the usual culprit) MCP ends pagination on an absent nextCursor, so this catalog cannot be walked.`, { cause: err });
288
+ throw new Error(`Connector "${id}" returned a tools/list page whose nextCursor is neither a string, null, nor absent — this catalog cannot be walked.`, { cause: err });
274
289
  }
275
290
  };
276
291
  const stateFor = (ctx) => {
277
292
  const scope = ctx.requestScope ?? ctx;
293
+ if (closedScopes.has(scope))
294
+ throw scopeEndedError();
278
295
  let state = states.get(scope);
279
296
  if (!state) {
280
297
  state = {
@@ -320,6 +337,12 @@ export function remoteMcp(id, opts) {
320
337
  // `closed` is deliberately not cleared — see ConnectionState.
321
338
  };
322
339
  const ensureConnected = async (ctx, state) => {
340
+ // A 401 after connect is a verdict for the whole request scope, not merely
341
+ // for the one call that observed it. Do not let the still-cached client make
342
+ // a later status or call in the same scope report healthy.
343
+ if (state.authRequired) {
344
+ throw authRequiredError(new UnauthorizedError("Downstream authorization is no longer valid."));
345
+ }
323
346
  // Cross-isolate force re-auth: another isolate bumped the KV generation and
324
347
  // wiped credentials. This request's cached client still speaks the old
325
348
  // token — drop it so the next connect runs against current state.
@@ -453,61 +476,74 @@ export function remoteMcp(id, opts) {
453
476
  /** Consecutive pages that advertised a successor but added nothing. */
454
477
  let barren = 0;
455
478
  let complete = false;
456
- for (let page = 0; page < MAX_TOOL_PAGES; page++) {
457
- // The scope can end between pages (probe timeout, teardown). Stop
458
- // rather than keep paging into a transport that is being closed.
459
- if (state.closed)
460
- throw scopeEndedError();
461
- // Page one sends no params at all, so a non-paginated server sees
462
- // exactly the request it saw before pagination existed.
463
- const res = await listPage(client, cursor);
464
- let added = 0;
465
- for (const t of res.tools) {
466
- // First page wins. An unstable cursor can serve the same tool on two
467
- // pages — a failure mode that did not exist while only page one was
468
- // read and a duplicate would inflate `toolCount`, double the tool's
469
- // `search_tools` row, and churn the registry's catalog-changed
470
- // comparison into a persistence write on every refresh.
471
- if (names.has(t.name))
472
- continue;
473
- names.add(t.name);
474
- listed.push(t);
475
- added++;
476
- }
477
- // Pagination ends when `nextCursor` is ABSENT not when it is falsy.
478
- // An empty string is a legal cursor and means "keep going"; `if
479
- // (!next)` here would silently truncate that server's catalog.
480
- const next = res.nextCursor;
481
- if (typeof next !== "string") {
482
- complete = true;
483
- break;
484
- }
485
- // A page that adds nothing and still claims a successor made no
486
- // progress. Allow exactly one: the widespread idiom is to advertise a
487
- // cursor whenever a page came back full and then serve one empty page
488
- // to terminate, and that server is conformant. Two in a row is a
489
- // downstream going nowhere, and this kills a "fresh cursor forever, no
490
- // tools" adversary in a couple of round trips instead of thousands.
491
- if (added === 0 && ++barren > 1) {
492
- throw new Error(`Connector "${id}" returned two consecutive tools/list pages that added no tools and still advertised another — the catalog is not advancing.`);
493
- }
494
- if (added > 0)
495
- barren = 0;
496
- // A cursor handed back a second time is not a slow server, it is a
497
- // loop. Fail now rather than walking it until a ceiling notices.
498
- if (spent.has(next)) {
499
- throw new Error(`Connector "${id}" handed back a tools/list cursor it had already issued — the pagination chain loops.`);
479
+ try {
480
+ for (let page = 0; page < MAX_TOOL_PAGES; page++) {
481
+ // The scope can end between pages (probe timeout, teardown). Stop
482
+ // rather than keep paging into a transport that is being closed.
483
+ if (state.closed)
484
+ throw scopeEndedError();
485
+ // A discovery deadline uses the same signal for the whole chain.
486
+ // Check it before issuing each page as well as passing it to the
487
+ // in-flight SDK request, so expiry never starts one more round trip.
488
+ if (ctx.signal?.aborted) {
489
+ throw ctx.signal.reason instanceof Error
490
+ ? ctx.signal.reason
491
+ : new Error(`Connector "${id}" catalog deadline expired.`);
492
+ }
493
+ // Page one sends no params at all, so a non-paginated server sees
494
+ // exactly the request it saw before pagination existed.
495
+ const res = await listPage(client, cursor, ctx);
496
+ let added = 0;
497
+ for (const t of res.tools) {
498
+ // First page wins. An unstable cursor can serve the same tool on
499
+ // two pages — a duplicate would inflate `toolCount`, double the
500
+ // `search_tools` row, and churn catalog persistence.
501
+ if (names.has(t.name))
502
+ continue;
503
+ names.add(t.name);
504
+ listed.push(t);
505
+ added++;
506
+ }
507
+ // Pagination ends when `nextCursor` is absent or null — never merely
508
+ // falsy. Empty string is present and means "keep going".
509
+ const next = res.nextCursor;
510
+ if (next === undefined || next === null) {
511
+ complete = true;
512
+ break;
513
+ }
514
+ // A page that adds nothing and still claims a successor made no
515
+ // progress. Allow exactly one: the widespread idiom is to advertise
516
+ // a cursor whenever a page came back full and then serve one empty
517
+ // page to terminate. Two in a row is a downstream going nowhere.
518
+ if (added === 0 && ++barren > 1) {
519
+ throw new Error(`Connector "${id}" returned two consecutive tools/list pages that added no tools and still advertised another — the catalog is not advancing.`);
520
+ }
521
+ if (added > 0)
522
+ barren = 0;
523
+ // A cursor handed back a second time is a loop, not a slow server.
524
+ if (spent.has(next)) {
525
+ throw new Error(`Connector "${id}" handed back a tools/list cursor it had already issued — the pagination chain loops.`);
526
+ }
527
+ // Checked here rather than on arrival: this bounds what a *walk* may
528
+ // accumulate; a one-page server was always free to send its page.
529
+ if (listed.length > MAX_TOOLS) {
530
+ throw new Error(`Connector "${id}" advertised further tools/list pages past ${listed.length} tools, over the ${MAX_TOOLS}-tool ceiling one catalog refresh will collect.`);
531
+ }
532
+ // Opaque by contract: handed straight back, never parsed, rewritten,
533
+ // or persisted.
534
+ spent.add(next);
535
+ cursor = next;
500
536
  }
501
- // Checked here rather than on arrival: this bounds what a *walk* may
502
- // accumulate, and a server that answers in one page was always free to
503
- // send whatever it sends.
504
- if (listed.length > MAX_TOOLS) {
505
- throw new Error(`Connector "${id}" advertised further tools/list pages past ${listed.length} tools, over the ${MAX_TOOLS}-tool ceiling one catalog refresh will collect.`);
537
+ }
538
+ catch (err) {
539
+ // A grant can be revoked after connect and after any earlier page.
540
+ // Classify that exactly like connect-time and call-time authorization
541
+ // failures, and latch it for the rest of this request scope.
542
+ if (err instanceof UnauthorizedError) {
543
+ state.authRequired = true;
544
+ throw authRequiredError(err);
506
545
  }
507
- // Opaque by contract: handed straight back, never parsed, rewritten,
508
- // or persisted.
509
- spent.add(next);
510
- cursor = next;
546
+ throw err;
511
547
  }
512
548
  // Fail the refresh outright. Returning what we have would publish a
513
549
  // partial catalog that looks complete; throwing lets the registry keep
@@ -551,11 +587,13 @@ export function remoteMcp(id, opts) {
551
587
  },
552
588
  async closeScope(ctx) {
553
589
  const scope = ctx.requestScope ?? ctx;
590
+ // Tombstone before any lookup or await. This also makes close-before-use
591
+ // terminal rather than allowing the scope to spring into existence later.
592
+ closedScopes.add(scope);
554
593
  const state = states.get(scope);
555
594
  if (!state)
556
595
  return;
557
- // Delete before awaiting: a duplicate teardown is a no-op, and no later
558
- // lookup can reuse the state while its client is closing.
596
+ // Delete before awaiting: a duplicate teardown is a no-op.
559
597
  states.delete(scope);
560
598
  state.closed = true;
561
599
  const client = state.client;
@@ -1 +1 @@
1
- {"version":3,"file":"remote-mcp.js","sourceRoot":"","sources":["../../src/connectors/remote-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-mcp.js","sourceRoot":"","sources":["../../src/connectors/remote-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAKnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA+DjD;;;;;;;;;GASG;AACH,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,SAAS,GAAG,OAAO,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,MAAM,cAAc,GAAG,MAAM,CAAC;AAK9B;;;;GAIG;AACH,MAAM,+BAA+B,GAAG,qBAAqB,CAAC,MAAM,CAAC;IACnE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAmB;IAC5D,MAAM,KAAK,GACT,MAGD,CAAC,iBAAiB,CAAC;IACpB,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO;IACxC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,GAAY;IACtC,MAAM,MAAM,GAAI,GAAmC,EAAE,MAAM,CAAC;IAC5D,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACpB,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;YAChD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC;QACzD,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,GAAY;IACvB,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,gBAAgB,CAAC,SAAoB;IAClD,MAAM,SAAS,GACb,SACD,CAAC,gBAAgB,CAAC;IACnB,IAAI,OAAO,SAAS,KAAK,UAAU;QAAE,OAAO;IAC5C,6EAA6E;IAC7E,uDAAuD;IACvD,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QAChE,wEAAwE;QACxE,uEAAuE;QACvE,yDAAyD;IAC3D,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,CACL,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,OAAO;QACpB,QAAQ,KAAK,KAAK,CACnB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,YAAY,GAAG;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,mBAAmB;CACpB,CAAC;AAEF,MAAM,OAAO,sBAAuB,SAAQ,kBAAkB;IAC5D,YAAY,WAAmB,EAAE,MAAc;QAC7C,KAAK,CACH,uBAAuB,EACvB,cAAc,WAAW,uDAAuD,MAAM,GAAG,CAC1F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,SAAS,cAAc,CAAC,IAAiB,EAAE,MAAc;IACvD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,UAAU,GACd,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC;QACzD,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,YAAY;QAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAAmB,EACnB,SAAkC,MAAM,EACxC,YAAuB,KAAK;IAE5B,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,GAAG,EAAE,EAAE,EAAE;QACvC,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,IAAI,GAAG,WAAW,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE;gBACxC,GAAG,IAAI;gBACP,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,QAAQ,CAAC;YAE7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,sBAAsB,CAC9B,WAAW,EACX,QAAQ,QAAQ,CAAC,MAAM,6BAA6B,CACrD,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,sBAAsB,CAC9B,WAAW,EACX,QAAQ,QAAQ,CAAC,MAAM,yBAAyB,CACjD,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,IAAI,wBAAwB,EAAE,CAAC;gBACrC,MAAM,IAAI,sBAAsB,CAC9B,WAAW,EACX,+BAA+B,wBAAwB,OAAO,CAC/D,CAAC;YACJ,CAAC;YAED,IAAI,IAAS,CAAC;YACd,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,sBAAsB,CAC9B,WAAW,EACX,QAAQ,QAAQ,CAAC,MAAM,qCAAqC,CAC7D,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAChE,MAAM,IAAI,sBAAsB,CAC9B,WAAW,EACX,2CAA2C,CAC5C,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,IAAI,sBAAsB,CAC9B,WAAW,EACX,wCAAwC,CACzC,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,IAAI,sBAAsB,CAC9B,WAAW,EACX,6DAA6D,CAC9D,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,sBAAsB,CAC9B,WAAW,EACX,0BAA0B,CAC3B,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC;YACP,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAiBD;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,EAAU,EAAE,IAAsB;IAC1D,sEAAsE;IACtE,4EAA4E;IAC5E,6EAA6E;IAC7E,MAAM,MAAM,GAAG,IAAI,OAAO,EAA2B,CAAC;IACtD,0EAA0E;IAC1E,mEAAmE;IACnE,MAAM,YAAY,GAAG,IAAI,OAAO,EAAU,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;IAEtC,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,yBAAyB;IACzB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,mBAAmB,GACvB,WAAW,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7E,IAAI,mBAAmB,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,yBAAyB,EAAE,SAAS,IAAI,CAAC,GAAG,2EAA2E,CACxH,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CACT,yBAAyB,EAAE,iCAAiC,IAAI,CAAC,GAAG,kFAAkF,CACvJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAE,EAAE,CAC3C,IAAI,kBAAkB,CACpB,eAAe,EACf,cAAc,EAAE,qEAAqE,EAAE,iCAAiC,EACxH,EAAE,KAAK,EAAE,CACV,CAAC;IAEJ,MAAM,eAAe,GAAG,GAAG,EAAE,CAC3B,IAAI,KAAK,CAAC,cAAc,EAAE,kCAAkC,CAAC,CAAC;IAEhE;;;;OAIG;IACH,MAAM,QAAQ,GAAG,KAAK,EACpB,MAAc,EACd,MAA0B,EAC1B,GAAqB,EACrB,EAAE;QACF,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,OAAO,CACzB;gBACE,MAAM,EAAE,YAAY;gBACpB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;aACxD,EACD,+BAA+B,EAC/B,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM;gBACzB,CAAC,CAAC;oBACE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9C;gBACH,CAAC,CAAC,SAAS,CACd,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,cAAc,EAAE,sHAAsH,EACtI,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,GAAqB,EAAmB,EAAE;QAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC;QACtC,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,eAAe,EAAE,CAAC;QACrD,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI;gBACd,mBAAmB,EAAE,IAAI;gBACzB,MAAM,EAAE,KAAK;aACd,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAClB,GAAqB,EACrB,KAAsB,EACL,EAAE;QACnB,KAAK,CAAC,QAAQ,KAAK,IAAI,eAAe,CACpC,EAAE,EACF,GAAG,CAAC,OAAO,EACX,GAAG,GAAG,CAAC,OAAO,mBAAmB,EAAE,EAAE,CACtC,CAAC;QACF,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CACrB,GAAqB,EACrB,KAAsB,EACX,EAAE;QACb,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,IAAI,6BAA6B,CAAC,GAAG,EAAE;gBAC5C,YAAY,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;gBACrC,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GACX,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,OAAO,IAAI,6BAA6B,CACtC,GAAG,EACH;YACE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,KAAK,EAAE,YAAY;SACpB,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,KAAsB,EAAE,EAAE;QACvC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QAC3B,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACjC,8DAA8D;IAChE,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,EAC3B,GAAqB,EACrB,KAAsB,EACP,EAAE;QACjB,2EAA2E;QAC3E,6EAA6E;QAC7E,2DAA2D;QAC3D,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,iBAAiB,CACrB,IAAI,iBAAiB,CAAC,8CAA8C,CAAC,CACtE,CAAC;QACJ,CAAC;QACD,4EAA4E;QAC5E,uEAAuE;QACvE,kEAAkE;QAClE,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,IAAI,KAAK,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;YAClE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,eAAe,EAAE,CAAC;YAC1C,IAAI,UAAU,KAAK,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBAC7C,KAAK,CAAC,KAAK,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,eAAe,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO;QACzB,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,IAAI,EAAE;YAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,eAAe,EAAE,CAAC;YAC1C,2EAA2E;YAC3E,0EAA0E;YAC1E,oEAAoE;YACpE,0EAA0E;YAC1E,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACxC,wEAAwE;YACxE,gEAAgE;YAChE,wEAAwE;YACxE,wDAAwD;YACxD,MAAM,CAAC,GAAG,IAAI,MAAM,CAClB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAC/C,EAAE,mBAAmB,EAAE,IAAI,2BAA2B,EAAE,EAAE,CAC3D,CAAC;YACF,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACrC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnB,uEAAuE;gBACvE,qEAAqE;gBACrE,wEAAwE;gBACxE,0CAA0C;gBAC1C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,IAAI,CAAC;wBACH,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;oBAClB,CAAC;oBAAC,MAAM,CAAC;wBACP,mDAAmD;oBACrD,CAAC;oBACD,MAAM,eAAe,EAAE,CAAC;gBAC1B,CAAC;gBACD,uEAAuE;gBACvE,uEAAuE;gBACvE,oEAAoE;gBACpE,qEAAqE;gBACrE,kBAAkB;gBAClB,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;oBAC/C,kEAAkE;oBAClE,kEAAkE;oBAClE,wCAAwC;oBACxC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjB,IAAI,CAAC;4BACH,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;wBAClB,CAAC;wBAAC,MAAM,CAAC;4BACP,mDAAmD;wBACrD,CAAC;wBACD,MAAM,eAAe,EAAE,CAAC;oBAC1B,CAAC;oBACD,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACH,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;wBAClB,CAAC;wBAAC,MAAM,CAAC;4BACP,wBAAwB;wBAC1B,CAAC;wBACD,MAAM,IAAI,iBAAiB,CACzB,iEAAiE,CAClE,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACjB,KAAK,CAAC,mBAAmB,GAAG,UAAU,CAAC;gBACvC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kEAAkE;gBAClE,mEAAmE;gBACnE,mBAAmB;gBACnB,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;oBACrC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC1B,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;oBAAS,CAAC;gBACT,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,SAAS,GAAc;QAC3B,EAAE;QACF,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,UAAU,EAAE,IAAI,CAAC,UAAU;QAE3B,yEAAyE;QACzE,+DAA+D;QAC/D,wEAAwE;QACxE,2EAA2E;QAC3E,4EAA4E;QAC5E,mDAAmD;QACnD,EAAE;QACF,4EAA4E;QAC5E,yEAAyE;QACzE,wDAAwD;QACxD,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClC,wEAAwE;YACxE,oEAAoE;YACpE,yEAAyE;YACzE,oEAAoE;YACpE,mEAAmE;YACnE,gEAAgE;YAChE,yBAAyB;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAO,CAAC;YAC7B,wEAAwE;YACxE,6DAA6D;YAC7D,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;YAChC,IAAI,MAA0B,CAAC;YAC/B,uEAAuE;YACvE,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC;gBACH,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC;oBACjD,kEAAkE;oBAClE,iEAAiE;oBACjE,IAAI,KAAK,CAAC,MAAM;wBAAE,MAAM,eAAe,EAAE,CAAC;oBAC1C,iEAAiE;oBACjE,iEAAiE;oBACjE,qEAAqE;oBACrE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,YAAY,KAAK;4BACtC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;4BACnB,CAAC,CAAC,IAAI,KAAK,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;oBAC/D,CAAC;oBACD,kEAAkE;oBAClE,wDAAwD;oBACxD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;oBAChD,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;wBAC1B,iEAAiE;wBACjE,gEAAgE;wBAChE,qDAAqD;wBACrD,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;4BAAE,SAAS;wBAChC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACf,KAAK,EAAE,CAAC;oBACV,CAAC;oBACD,qEAAqE;oBACrE,yDAAyD;oBACzD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;oBAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACxC,QAAQ,GAAG,IAAI,CAAC;wBAChB,MAAM;oBACR,CAAC;oBACD,gEAAgE;oBAChE,oEAAoE;oBACpE,mEAAmE;oBACnE,iEAAiE;oBACjE,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChC,MAAM,IAAI,KAAK,CACb,cAAc,EAAE,8HAA8H,CAC/I,CAAC;oBACJ,CAAC;oBACD,IAAI,KAAK,GAAG,CAAC;wBAAE,MAAM,GAAG,CAAC,CAAC;oBAC1B,mEAAmE;oBACnE,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpB,MAAM,IAAI,KAAK,CACb,cAAc,EAAE,uFAAuF,CACxG,CAAC;oBACJ,CAAC;oBACD,qEAAqE;oBACrE,kEAAkE;oBAClE,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;wBAC9B,MAAM,IAAI,KAAK,CACb,cAAc,EAAE,8CAA8C,MAAM,CAAC,MAAM,oBAAoB,SAAS,iDAAiD,CAC1J,CAAC;oBACJ,CAAC;oBACD,qEAAqE;oBACrE,gBAAgB;oBAChB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAChB,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,mEAAmE;gBACnE,sEAAsE;gBACtE,6DAA6D;gBAC7D,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;oBACrC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC1B,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,oEAAoE;YACpE,uEAAuE;YACvE,wDAAwD;YACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,cAAc,EAAE,kDAAkD,cAAc,8BAA8B,CAC/G,CAAC;YACJ,CAAC;YACD,qEAAqE;YACrE,oDAAoD;YACpD,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,WAAqC;gBACpD,YAAY,EAAE,CAAC,CAAC,YAAuC;gBACvD,WAAW,EAAE,CAAC,CAAC,WAAqC;aACrD,CAAC,CAAC,CAAC;QACN,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG;YAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC;gBACH,OAAO,MAAM,KAAK,CAAC,MAAO,CAAC,QAAQ,CACjC;oBACE,IAAI;oBACJ,SAAS,EAAE,CAAC,IAAI,IAAI,EAAE,CAA4B;iBACnD,EACD,SAAS,EACT,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM;oBACzB,CAAC,CAAC;wBACE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9C;oBACH,CAAC,CAAC,SAAS,CACd,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,uEAAuE;gBACvE,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;oBACrC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC1B,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,GAAG;YAClB,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC;YACtC,yEAAyE;YACzE,0EAA0E;YAC1E,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,2DAA2D;YAC3D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YAClC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACvB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;YAC3B,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAEjC,yEAAyE;YACzE,iEAAiE;YACjE,0CAA0C;YAC1C,IAAI,SAAS;gBAAE,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEjD,uEAAuE;YACvE,uEAAuE;YACvE,oDAAoD;YACpD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,GAAG;YACd,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACzB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,uBAAuB,EAAE,CAAC;oBACpE,OAAO;wBACL,KAAK,EAAE,eAAe;wBACtB,gBAAgB,EAAE,GAAG;wBACrB,OAAO,EAAE,mDAAmD;qBAC7D,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG;YACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzC,yEAAyE;YACzE,0EAA0E;YAC1E,0EAA0E;YAC1E,qEAAqE;YACrE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS;gBACxB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAkC,CAAC;YAC/D,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC9B,mEAAmE;YACnE,KAAK,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;KACF,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,wEAAwE;QACxE,sEAAsE;QACtE,0EAA0E;QAC1E,gEAAgE;QAChE,SAAS,CAAC,mBAAmB,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;QAChE,CAAC,CAAC;QAEF,SAAS,CAAC,WAAW,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;YAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,SAAS,CAAC,SAAS,GAAG,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClC,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC;gBACrB,mEAAmE;gBACnE,qEAAqE;gBACrE,wEAAwE;gBACxE,wEAAwE;gBACxE,wEAAwE;gBACxE,0BAA0B;gBAC1B,MAAM,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACP,4DAA4D;gBAC9D,CAAC;gBACD,mEAAmE;gBACnE,qEAAqE;gBACrE,6DAA6D;gBAC7D,MAAM,CAAC,CAAC,cAAc,EAAE,CAAC;gBACzB,wEAAwE;gBACxE,yCAAyC;gBACzC,MAAM,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;gBACvB,KAAK,CAAC,KAAK,CAAC,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,wEAAwE;gBACxE,uEAAuE;gBACvE,8CAA8C;gBAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,uBAAuB,EAAE,CAAC;gBAClD,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO;wBACL,KAAK,EAAE,eAAe;wBACtB,gBAAgB,EAAE,OAAO;wBACzB,OAAO,EAAE,mDAAmD;qBAC7D,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO;oBACL,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,6CAA6C;iBACvD,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACvB,OAAO;wBACL,KAAK,EAAE,eAAe;wBACtB,gBAAgB,EAAE,MAAM,CAAC,CAAC,uBAAuB,EAAE;wBACnD,OAAO,EAAE,mDAAmD;qBAC7D,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -88,8 +88,8 @@ export interface CredentialCheckOptions {
88
88
  /** Restrict the sweep to these connector ids. Default: every connector. */
89
89
  ids?: string[];
90
90
  /**
91
- * Internal scope identity supplied by an existing owner. When omitted, the
92
- * check creates and ends its own probe scope.
91
+ * @deprecated Ignored. Credential checks always create and close their own
92
+ * probe scope; no core path supplies an existing request scope.
93
93
  */
94
94
  requestScope?: object;
95
95
  }
@@ -211,9 +211,12 @@ export declare class CredentialHealthChecker {
211
211
  * blip. Error verdicts stay visible in `credentialCheck` (an operator wants
212
212
  * to know checks are failing) but the status keeps coming from observed real
213
213
  * calls, which is evidence.
214
- * 2. **A successful real call retires the verdict.** Traffic beats a background
215
- * probe, so a `lastSuccessAt` at or after `checkedAt` means the credential
216
- * demonstrably works whatever the check concluded. The next check re-decides.
214
+ * 2. **A successful real call retires the verdict, except static shape drift.**
215
+ * Traffic beats a background probe, so a `lastSuccessAt` at or after
216
+ * `checkedAt` normally means the credential demonstrably works. Stored-shape
217
+ * drift is different: a credential-independent tool can succeed without
218
+ * making a missing declared field appear, so only replacement/removal clears
219
+ * that verdict.
217
220
  *
218
221
  * `auth_required` deliberately outranks an observed real-call *failure*: both
219
222
  * say something is wrong, and only one of them carries the URL that fixes it.
@@ -1 +1 @@
1
- {"version":3,"file":"credential-health.d.ts","sourceRoot":"","sources":["../src/credential-health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-health.d.ts","sourceRoot":"","sources":["../src/credential-health.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  // scheduler their runtime has — a Worker cron trigger, a Node `setInterval`.
15
15
  // There is no background daemon and no long-lived timer, so Workers and Node run
16
16
  // the same code.
17
- import { credentialTestRule, storedCredentialShape, } from "./credentials.js";
17
+ import { credentialTestRule, STORED_CREDENTIAL_SHAPE_MISMATCH_ERROR, storedCredentialShape, } from "./credentials.js";
18
18
  import { closeConnectorScope } from "./connector-scope.js";
19
19
  import { DEFAULT_PROBE_TIMEOUT_MS, normalizeTimeoutMs, withTimeout } from "./timeout.js";
20
20
  export const DEFAULT_CREDENTIAL_CHECK_INTERVAL_SECONDS = 900;
@@ -403,7 +403,7 @@ export class CredentialHealthChecker {
403
403
  ...(await this.recordOrNothing(connectorId)),
404
404
  };
405
405
  }
406
- const run = this.runCheck(connector, baseUrl, opts.force ?? false, opts.requestScope);
406
+ const run = this.runCheck(connector, baseUrl, opts.force ?? false);
407
407
  this.inFlight.set(connectorId, run);
408
408
  try {
409
409
  return await run;
@@ -416,7 +416,7 @@ export class CredentialHealthChecker {
416
416
  const record = await this.store.get(connectorId);
417
417
  return record ? { record } : {};
418
418
  }
419
- async runCheck(connector, baseUrl, force, requestScope) {
419
+ async runCheck(connector, baseUrl, force) {
420
420
  const connectorId = connector.id;
421
421
  const started = Date.now();
422
422
  // Captured BEFORE anything downstream happens — including the vault read
@@ -438,7 +438,7 @@ export class CredentialHealthChecker {
438
438
  }
439
439
  const shape = storedCredentialShape(connector.credential, values);
440
440
  if (shape.state === "mismatch") {
441
- // Drift is a persistent operator-error state, not an event: left
441
+ // Drift is a persistent operator-reconfiguration state, not an event:
442
442
  // outside the freshness gate it would spend a write on every sweep in
443
443
  // every isolate, forever, against exactly the deployments this feature
444
444
  // is meant to help (and on Cloudflare KV those writes are metered).
@@ -450,14 +450,16 @@ export class CredentialHealthChecker {
450
450
  if (!force) {
451
451
  const current = await this.store.get(connectorId);
452
452
  if (current &&
453
- current.state === "error" &&
453
+ current.state === "auth_required" &&
454
454
  current.message === shape.message &&
455
455
  Date.now() - Date.parse(current.checkedAt) < this.intervalMs) {
456
456
  return { connectorId, skipped: "fresh", record: current };
457
457
  }
458
458
  }
459
459
  return this.settle(connectorId, started, generation, {
460
- state: "error",
460
+ // Unlike a failed check, this is a completed static classification:
461
+ // the current declaration cannot consume what the vault holds.
462
+ state: "auth_required",
461
463
  checkedAt: new Date().toISOString(),
462
464
  message: shape.message,
463
465
  });
@@ -472,8 +474,9 @@ export class CredentialHealthChecker {
472
474
  return { connectorId, skipped: "fresh", record: current };
473
475
  }
474
476
  }
475
- const ownsScope = requestScope === undefined;
476
- const scope = requestScope ?? {};
477
+ // Credential checks are always probe owners. No caller may lend them an
478
+ // ordinary request scope and thereby suppress the teardown below.
479
+ const scope = {};
477
480
  const ctx = this.deps.contextFor(connectorId, baseUrl, scope);
478
481
  try {
479
482
  if (credentialReadError) {
@@ -512,8 +515,7 @@ export class CredentialHealthChecker {
512
515
  }
513
516
  }
514
517
  finally {
515
- if (ownsScope)
516
- await closeConnectorScope(connector, ctx);
518
+ await closeConnectorScope(connector, ctx);
517
519
  }
518
520
  }
519
521
  /**
@@ -580,9 +582,12 @@ export class CredentialHealthChecker {
580
582
  * blip. Error verdicts stay visible in `credentialCheck` (an operator wants
581
583
  * to know checks are failing) but the status keeps coming from observed real
582
584
  * calls, which is evidence.
583
- * 2. **A successful real call retires the verdict.** Traffic beats a background
584
- * probe, so a `lastSuccessAt` at or after `checkedAt` means the credential
585
- * demonstrably works whatever the check concluded. The next check re-decides.
585
+ * 2. **A successful real call retires the verdict, except static shape drift.**
586
+ * Traffic beats a background probe, so a `lastSuccessAt` at or after
587
+ * `checkedAt` normally means the credential demonstrably works. Stored-shape
588
+ * drift is different: a credential-independent tool can succeed without
589
+ * making a missing declared field appear, so only replacement/removal clears
590
+ * that verdict.
586
591
  *
587
592
  * `auth_required` deliberately outranks an observed real-call *failure*: both
588
593
  * say something is wrong, and only one of them carries the URL that fixes it.
@@ -591,6 +596,8 @@ export class CredentialHealthChecker {
591
596
  export function credentialVerdictApplies(record, lastSuccessAt) {
592
597
  if (!record || record.state !== "auth_required")
593
598
  return false;
599
+ if (record.message === STORED_CREDENTIAL_SHAPE_MISMATCH_ERROR)
600
+ return true;
594
601
  if (!lastSuccessAt)
595
602
  return true;
596
603
  const success = Date.parse(lastSuccessAt);