@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.
- package/CHANGELOG.md +72 -0
- package/README.md +2 -1
- package/dist/connectors/remote-mcp.d.ts.map +1 -1
- package/dist/connectors/remote-mcp.js +117 -79
- package/dist/connectors/remote-mcp.js.map +1 -1
- package/dist/credential-health.d.ts +8 -5
- package/dist/credential-health.d.ts.map +1 -1
- package/dist/credential-health.js +20 -13
- package/dist/credential-health.js.map +1 -1
- package/dist/executors/quickjs.d.ts.map +1 -1
- package/dist/executors/quickjs.js +57 -5
- package/dist/executors/quickjs.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/meta-tools.d.ts.map +1 -1
- package/dist/meta-tools.js +47 -11
- package/dist/meta-tools.js.map +1 -1
- package/dist/registry.d.ts +18 -22
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +33 -21
- package/dist/registry.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -6
- package/dist/server.js.map +1 -1
- package/dist/timeout.d.ts +9 -4
- package/dist/timeout.d.ts.map +1 -1
- package/dist/timeout.js +34 -4
- package/dist/timeout.js.map +1 -1
- package/dist/toolkits.d.ts +8 -0
- package/dist/toolkits.d.ts.map +1 -1
- package/dist/toolkits.js +3 -0
- package/dist/toolkits.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +12 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +187 -6
- package/dist/ui.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/connectors/remote-mcp.ts +128 -83
- package/src/credential-health.ts +20 -18
- package/src/executors/quickjs.ts +65 -5
- package/src/index.ts +2 -1
- package/src/meta-tools.ts +75 -26
- package/src/registry.ts +48 -20
- package/src/server.ts +11 -8
- package/src/timeout.ts +41 -4
- package/src/toolkits.ts +11 -0
- package/src/types.ts +2 -2
- package/src/ui.ts +212 -11
- 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,
|
|
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;
|
|
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
|
|
51
|
-
*
|
|
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()`
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
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
|
-
*
|
|
83
|
-
*
|
|
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
|
|
260
|
-
* `
|
|
261
|
-
*
|
|
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.
|
|
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
|
|
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
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
//
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
barren
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
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
|
-
|
|
502
|
-
|
|
503
|
-
//
|
|
504
|
-
|
|
505
|
-
|
|
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
|
-
|
|
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
|
|
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":"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"}
|
|
@@ -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
|
-
*
|
|
92
|
-
*
|
|
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
|
|
215
|
-
* probe, so a `lastSuccessAt` at or after
|
|
216
|
-
*
|
|
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":"
|
|
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
|
|
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
|
|
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-
|
|
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 === "
|
|
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
|
-
|
|
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
|
-
|
|
476
|
-
|
|
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
|
-
|
|
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
|
|
584
|
-
* probe, so a `lastSuccessAt` at or after
|
|
585
|
-
*
|
|
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);
|