@zackbart/connecta 0.4.1 → 0.6.0
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 +527 -0
- package/README.md +83 -7
- package/SECURITY.md +10 -6
- package/dist/activity.d.ts +8 -0
- package/dist/activity.d.ts.map +1 -1
- package/dist/activity.js +1 -0
- package/dist/activity.js.map +1 -1
- package/dist/auth/bearer.d.ts +10 -3
- package/dist/auth/bearer.d.ts.map +1 -1
- package/dist/auth/bearer.js +21 -0
- package/dist/auth/bearer.js.map +1 -1
- package/dist/auth/clerk.d.ts +26 -1
- package/dist/auth/clerk.d.ts.map +1 -1
- package/dist/auth/clerk.js +161 -4
- package/dist/auth/clerk.js.map +1 -1
- package/dist/connectors/api.d.ts +13 -0
- package/dist/connectors/api.d.ts.map +1 -1
- package/dist/connectors/api.js +2 -0
- package/dist/connectors/api.js.map +1 -1
- package/dist/connectors/remote-mcp.d.ts +13 -0
- package/dist/connectors/remote-mcp.d.ts.map +1 -1
- package/dist/connectors/remote-mcp.js +10 -0
- package/dist/connectors/remote-mcp.js.map +1 -1
- package/dist/credential-health.d.ts +212 -0
- package/dist/credential-health.d.ts.map +1 -0
- package/dist/credential-health.js +535 -0
- package/dist/credential-health.js.map +1 -0
- package/dist/execute.d.ts +4 -4
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +16 -4
- package/dist/execute.js.map +1 -1
- package/dist/index.d.ts +77 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +112 -2
- package/dist/index.js.map +1 -1
- package/dist/meta-tools.d.ts +76 -7
- package/dist/meta-tools.d.ts.map +1 -1
- package/dist/meta-tools.js +328 -98
- package/dist/meta-tools.js.map +1 -1
- package/dist/registry.d.ts +245 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +377 -27
- package/dist/registry.js.map +1 -1
- package/dist/server.d.ts +7 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +342 -27
- package/dist/server.js.map +1 -1
- package/dist/skills.d.ts +53 -2
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +162 -2
- package/dist/skills.js.map +1 -1
- package/dist/timeout.d.ts +16 -0
- package/dist/timeout.d.ts.map +1 -0
- package/dist/timeout.js +38 -0
- package/dist/timeout.js.map +1 -0
- package/dist/toolkits.d.ts +138 -0
- package/dist/toolkits.d.ts.map +1 -0
- package/dist/toolkits.js +319 -0
- package/dist/toolkits.js.map +1 -0
- package/dist/types.d.ts +90 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +63 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +176 -11
- package/dist/ui.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -2
- package/src/activity.ts +9 -0
- package/src/auth/bearer.ts +35 -1
- package/src/auth/clerk.ts +202 -5
- package/src/connectors/api.ts +15 -0
- package/src/connectors/remote-mcp.ts +24 -0
- package/src/credential-health.ts +736 -0
- package/src/execute.ts +32 -8
- package/src/index.ts +226 -2
- package/src/meta-tools.ts +397 -119
- package/src/registry.ts +540 -29
- package/src/server.ts +431 -25
- package/src/skills.ts +185 -2
- package/src/timeout.ts +49 -0
- package/src/toolkits.ts +450 -0
- package/src/types.ts +96 -2
- package/src/ui.ts +190 -11
- package/src/version.ts +1 -1
package/dist/registry.js
CHANGED
|
@@ -1,7 +1,82 @@
|
|
|
1
|
+
import { CredentialHealthChecker, } from "./credential-health.js";
|
|
2
|
+
import { splitAddress } from "./toolkits.js";
|
|
1
3
|
const ID_RE = /^[a-z0-9_-]+$/;
|
|
2
4
|
const DEFAULT_TTL_SECONDS = 300;
|
|
3
5
|
const DEFAULT_STALE_SECONDS = 3600;
|
|
4
|
-
const DEFAULT_MAX_RESULT_BYTES = 50_000;
|
|
6
|
+
export const DEFAULT_MAX_RESULT_BYTES = 50_000;
|
|
7
|
+
/**
|
|
8
|
+
* Smallest accepted inline-result cap. One byte is pathological but harmless:
|
|
9
|
+
* `alignEndToCharBoundary` widens a window narrower than the codepoint at the
|
|
10
|
+
* offset, so even a 1-byte cap still truncates sanely and still pages. Caps
|
|
11
|
+
* that small already ship in the test suite (4 and 5), so the floor is placed
|
|
12
|
+
* where it excludes only values that are *broken* rather than merely tiny.
|
|
13
|
+
*/
|
|
14
|
+
export const MIN_MAX_RESULT_BYTES = 1;
|
|
15
|
+
/**
|
|
16
|
+
* The one definition of a usable `maxResultBytes`: a finite whole number of at
|
|
17
|
+
* least {@link MIN_MAX_RESULT_BYTES} bytes. Shared by all three intake points
|
|
18
|
+
* — deployment config, the per-connector override, and `get_result`'s
|
|
19
|
+
* `maxBytes` argument — so a value that is valid at one is valid at all.
|
|
20
|
+
*
|
|
21
|
+
* Everything else is rejected rather than coerced, because each rejected shape
|
|
22
|
+
* silently does something *worse* than the default: `0`/`NaN` serve an empty
|
|
23
|
+
* head (`slice(0, 0)`) and make paging fail to advance, negatives serve a
|
|
24
|
+
* LARGER head than asked for (`slice(0, -1)` counts from the end) while still
|
|
25
|
+
* claiming truncation, and `Infinity` disables the guard with no notice.
|
|
26
|
+
*/
|
|
27
|
+
export function isValidMaxResultBytes(value) {
|
|
28
|
+
return Number.isInteger(value) && value >= MIN_MAX_RESULT_BYTES;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve a configured cap against the value it inherits, dropping anything
|
|
32
|
+
* `isValidMaxResultBytes` rejects. Operator-facing surfaces pair this with a
|
|
33
|
+
* startup warning (see `Registry.checkResultCaps`) so the fallback is never
|
|
34
|
+
* silent; the resolution itself stays total so no call site has to cope with
|
|
35
|
+
* a broken cap.
|
|
36
|
+
*/
|
|
37
|
+
export function resolveMaxResultBytes(value, inherited) {
|
|
38
|
+
return value !== undefined && isValidMaxResultBytes(value)
|
|
39
|
+
? value
|
|
40
|
+
: inherited;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Recent real-call outcomes per connector, as observed by ONE view.
|
|
44
|
+
*
|
|
45
|
+
* The deployment keeps one log, and each toolkit keeps its own. That split is a
|
|
46
|
+
* scope boundary, not bookkeeping: `lastError` is a downstream error string
|
|
47
|
+
* that routinely names the tool that failed, and `list_connectors` returns the
|
|
48
|
+
* observation verbatim. Sharing one log would let a toolkit read back the tools
|
|
49
|
+
* and failures of a sibling toolkit through a connector they happen to share —
|
|
50
|
+
* and let a sibling's failures flip this view's reported status. A scoped view
|
|
51
|
+
* reads back only the calls it made itself.
|
|
52
|
+
*/
|
|
53
|
+
export class HealthLog {
|
|
54
|
+
observations = new Map();
|
|
55
|
+
recordSuccess(id, latencyMs) {
|
|
56
|
+
const previous = this.observations.get(id);
|
|
57
|
+
this.observations.set(id, {
|
|
58
|
+
...previous,
|
|
59
|
+
lastSuccessAt: new Date().toISOString(),
|
|
60
|
+
lastLatencyMs: latencyMs,
|
|
61
|
+
consecutiveFailures: 0,
|
|
62
|
+
lastError: undefined,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
recordFailure(id, latencyMs, error) {
|
|
66
|
+
const previous = this.observations.get(id);
|
|
67
|
+
this.observations.set(id, {
|
|
68
|
+
...previous,
|
|
69
|
+
lastFailureAt: new Date().toISOString(),
|
|
70
|
+
lastLatencyMs: latencyMs,
|
|
71
|
+
consecutiveFailures: (previous?.consecutiveFailures ?? 0) + 1,
|
|
72
|
+
lastError: msg(error),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
get(id) {
|
|
76
|
+
const observation = this.observations.get(id);
|
|
77
|
+
return observation ? { ...observation } : undefined;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
5
80
|
function namespaced(storage, prefix) {
|
|
6
81
|
return {
|
|
7
82
|
get: (k) => storage.get(prefix + k),
|
|
@@ -22,12 +97,15 @@ export class Registry {
|
|
|
22
97
|
connectors = new Map();
|
|
23
98
|
cache = new Map();
|
|
24
99
|
invalidated = new Set();
|
|
25
|
-
|
|
100
|
+
/** Deployment-wide observations — every call, whatever view made it. */
|
|
101
|
+
health = new HealthLog();
|
|
26
102
|
ttlMs;
|
|
27
103
|
staleMs;
|
|
28
104
|
persistToolCatalog;
|
|
29
105
|
/** Result-size guard cap threaded to the meta-tools. */
|
|
30
106
|
maxResultBytes;
|
|
107
|
+
/** Proactive liveness checks over stored downstream credentials (issue #24). */
|
|
108
|
+
credentialHealth;
|
|
31
109
|
constructor(connectors, opts) {
|
|
32
110
|
this.opts = opts;
|
|
33
111
|
this.ttlMs =
|
|
@@ -35,7 +113,7 @@ export class Registry {
|
|
|
35
113
|
this.staleMs =
|
|
36
114
|
(opts.toolCatalogStaleSeconds ?? DEFAULT_STALE_SECONDS) * 1000;
|
|
37
115
|
this.persistToolCatalog = opts.persistToolCatalog ?? true;
|
|
38
|
-
this.maxResultBytes = opts.maxResultBytes
|
|
116
|
+
this.maxResultBytes = resolveMaxResultBytes(opts.maxResultBytes, DEFAULT_MAX_RESULT_BYTES);
|
|
39
117
|
for (const c of connectors) {
|
|
40
118
|
if (!ID_RE.test(c.id)) {
|
|
41
119
|
throw new Error(`Invalid connector id "${c.id}": must match ${ID_RE.source}`);
|
|
@@ -46,6 +124,45 @@ export class Registry {
|
|
|
46
124
|
this.connectors.set(c.id, c);
|
|
47
125
|
}
|
|
48
126
|
this.checkConventions(opts.logger);
|
|
127
|
+
this.checkResultCaps(opts.logger, opts.maxResultBytes);
|
|
128
|
+
this.credentialHealth = new CredentialHealthChecker({
|
|
129
|
+
listConnectors: () => this.listConnectors(),
|
|
130
|
+
getConnector: (id) => this.getConnector(id),
|
|
131
|
+
contextFor: (id, baseUrl, requestScope) => this.contextFor(id, baseUrl, requestScope),
|
|
132
|
+
storage: opts.storage,
|
|
133
|
+
logger: opts.logger,
|
|
134
|
+
credentialVault: opts.credentialVault,
|
|
135
|
+
}, opts.credentialHealth);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Warn once per unusable result cap, at construction time — the same
|
|
139
|
+
* "runs fine but is surely unintended" channel as the insecure-config
|
|
140
|
+
* warnings in `createConnecta`. A rejected cap can't be honoured, and
|
|
141
|
+
* honouring it *approximately* is exactly the inversion issue #32 is about,
|
|
142
|
+
* so the value is dropped in favour of what it inherits and the operator is
|
|
143
|
+
* told which one is actually in force.
|
|
144
|
+
*/
|
|
145
|
+
checkResultCaps(logger, configured) {
|
|
146
|
+
if (configured !== undefined && !isValidMaxResultBytes(configured)) {
|
|
147
|
+
logger.warn(`[connecta] maxResultBytes ${configured} is not a whole number of ` +
|
|
148
|
+
`bytes >= ${MIN_MAX_RESULT_BYTES}: it would serve an empty, ` +
|
|
149
|
+
"oversized, or unguarded result instead of truncating. Using the " +
|
|
150
|
+
`default ${DEFAULT_MAX_RESULT_BYTES} instead.`);
|
|
151
|
+
}
|
|
152
|
+
for (const c of this.connectors.values()) {
|
|
153
|
+
if (c.maxResultBytes !== undefined &&
|
|
154
|
+
!isValidMaxResultBytes(c.maxResultBytes)) {
|
|
155
|
+
// The number quoted here is `this.maxResultBytes` because that is
|
|
156
|
+
// literally what a call falls back to: meta-tools reads the inherited
|
|
157
|
+
// cap off `RegistryView.maxResultBytes`, so the warned value and the
|
|
158
|
+
// runtime value are the same field rather than two copies of it.
|
|
159
|
+
logger.warn(`[connecta] connector "${c.id}" sets maxResultBytes ` +
|
|
160
|
+
`${c.maxResultBytes}, which is not a whole number of bytes >= ` +
|
|
161
|
+
`${MIN_MAX_RESULT_BYTES}. Ignoring the override — the connector ` +
|
|
162
|
+
`inherits the deployment-wide cap calls fall back to ` +
|
|
163
|
+
`(${this.maxResultBytes}).`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
49
166
|
}
|
|
50
167
|
/**
|
|
51
168
|
* Warn once per convention violation at construction time. Static only —
|
|
@@ -100,15 +217,13 @@ export class Registry {
|
|
|
100
217
|
}
|
|
101
218
|
/** Resolve "<connectorId>.<toolName>" → connector + tool name. */
|
|
102
219
|
resolveAddress(address) {
|
|
103
|
-
const
|
|
104
|
-
if (
|
|
220
|
+
const parts = splitAddress(address);
|
|
221
|
+
if (!parts)
|
|
105
222
|
return null;
|
|
106
|
-
const
|
|
107
|
-
const toolName = address.slice(dot + 1);
|
|
108
|
-
const connector = this.connectors.get(id);
|
|
223
|
+
const connector = this.connectors.get(parts.connectorId);
|
|
109
224
|
if (!connector)
|
|
110
225
|
return null;
|
|
111
|
-
return { connector, toolName };
|
|
226
|
+
return { connector, toolName: parts.toolName };
|
|
112
227
|
}
|
|
113
228
|
catalogKey(id) {
|
|
114
229
|
return `catalog:${id}`;
|
|
@@ -227,28 +342,74 @@ export class Registry {
|
|
|
227
342
|
return hit && hit.staleUntil > Date.now() ? hit.tools : undefined;
|
|
228
343
|
}
|
|
229
344
|
recordSuccess(id, latencyMs) {
|
|
230
|
-
|
|
231
|
-
this.health.set(id, {
|
|
232
|
-
...previous,
|
|
233
|
-
lastSuccessAt: new Date().toISOString(),
|
|
234
|
-
lastLatencyMs: latencyMs,
|
|
235
|
-
consecutiveFailures: 0,
|
|
236
|
-
lastError: undefined,
|
|
237
|
-
});
|
|
345
|
+
this.health.recordSuccess(id, latencyMs);
|
|
238
346
|
}
|
|
239
347
|
recordFailure(id, latencyMs, error) {
|
|
240
|
-
|
|
241
|
-
this.health.set(id, {
|
|
242
|
-
...previous,
|
|
243
|
-
lastFailureAt: new Date().toISOString(),
|
|
244
|
-
lastLatencyMs: latencyMs,
|
|
245
|
-
consecutiveFailures: (previous?.consecutiveFailures ?? 0) + 1,
|
|
246
|
-
lastError: msg(error),
|
|
247
|
-
});
|
|
348
|
+
this.health.recordFailure(id, latencyMs, error);
|
|
248
349
|
}
|
|
249
350
|
healthFor(id) {
|
|
250
|
-
|
|
251
|
-
|
|
351
|
+
return this.health.get(id);
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Whether ANY view of this deployment has seen a successful call to `id` —
|
|
355
|
+
* a bare boolean, never the observation. Connector liveness (reachable,
|
|
356
|
+
* credentials still valid) is a deployment-level fact, not a per-view one, so
|
|
357
|
+
* `list_connectors` may classify a connector as ok/unknown from it. The
|
|
358
|
+
* observation itself — `lastError` above all, which names the tool that
|
|
359
|
+
* failed — stays strictly per view.
|
|
360
|
+
*/
|
|
361
|
+
hasObservedSuccess(id) {
|
|
362
|
+
return this.observedSuccessAt(id) !== undefined;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* The timestamp behind `hasObservedSuccess`, on the same deployment-wide
|
|
366
|
+
* terms and for the same reason: it says only *when* the connector last
|
|
367
|
+
* answered, never what was called or what failed. Credential health reads it
|
|
368
|
+
* to decide whether a failed verdict has been overtaken by real traffic.
|
|
369
|
+
*/
|
|
370
|
+
observedSuccessAt(id) {
|
|
371
|
+
return this.health.get(id)?.lastSuccessAt;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* The last credential-liveness verdict for `id` — the layer that lets a cached
|
|
375
|
+
* status read report `auth_required` before a real call discovers it. Read
|
|
376
|
+
* from storage (mirrored in memory for a few seconds) rather than held in
|
|
377
|
+
* memory alone, because on Workers the isolate that ran the check is usually
|
|
378
|
+
* not the isolate answering this read.
|
|
379
|
+
*/
|
|
380
|
+
credentialHealthFor(id) {
|
|
381
|
+
return this.credentialHealth.healthFor(id);
|
|
382
|
+
}
|
|
383
|
+
recordCredentialHealth(id, record) {
|
|
384
|
+
return this.credentialHealth.record(id, record);
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Check stored downstream credentials now and return one outcome per
|
|
388
|
+
* connector considered. THE operator-facing entry point behind
|
|
389
|
+
* `Connecta.checkCredentials()`: wire it to a Worker cron trigger or a Node
|
|
390
|
+
* interval. Never rejects; connectors checked recently are reported as
|
|
391
|
+
* `fresh` unless `force` is set.
|
|
392
|
+
*/
|
|
393
|
+
checkCredentialHealth(baseUrl, opts) {
|
|
394
|
+
return this.credentialHealth.check(baseUrl, opts);
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* The traffic-triggered sweep: a promise for the caller to defer (Workers:
|
|
398
|
+
* `ctx.waitUntil`), or `undefined` when nothing is due — which is the common
|
|
399
|
+
* case and costs no I/O. Called by the server after an authenticated request;
|
|
400
|
+
* the checker owns the rate limiting.
|
|
401
|
+
*/
|
|
402
|
+
sweepCredentialHealthIfDue(baseUrl) {
|
|
403
|
+
return this.credentialHealth.sweepIfDue(baseUrl);
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Drop a connector's liveness verdict, because its credential just changed
|
|
407
|
+
* under us (OAuth callback completed, credential stored or removed in /ui). A
|
|
408
|
+
* stale `auth_required` must not outlive the re-authorization that fixed it —
|
|
409
|
+
* that is the difference between recovery working and needing a restart.
|
|
410
|
+
*/
|
|
411
|
+
clearCredentialHealth(id) {
|
|
412
|
+
return this.credentialHealth.clear(id);
|
|
252
413
|
}
|
|
253
414
|
/** Best-effort connector status for list_connectors. */
|
|
254
415
|
async statusFor(id, baseUrl, requestScope = {}) {
|
|
@@ -296,4 +457,193 @@ export class Registry {
|
|
|
296
457
|
}
|
|
297
458
|
}
|
|
298
459
|
}
|
|
460
|
+
/**
|
|
461
|
+
* Per-toolkit HealthLogs, keyed by registry and then by toolkit name.
|
|
462
|
+
*
|
|
463
|
+
* Module-scoped rather than a `Registry` member on purpose: `Registry`'s type
|
|
464
|
+
* is part of the public API surface (`Connecta.registry`), and this is internal
|
|
465
|
+
* factoring only `ScopedRegistry` may touch. The WeakMap keeps the logs alive
|
|
466
|
+
* exactly as long as their registry, and the inner map is bounded by the
|
|
467
|
+
* number of configured toolkits.
|
|
468
|
+
*/
|
|
469
|
+
const toolkitHealthLogs = new WeakMap();
|
|
470
|
+
/** The long-lived log one toolkit records into; created on first use. */
|
|
471
|
+
function toolkitHealthLog(base, toolkitName) {
|
|
472
|
+
let logs = toolkitHealthLogs.get(base);
|
|
473
|
+
if (!logs) {
|
|
474
|
+
logs = new Map();
|
|
475
|
+
toolkitHealthLogs.set(base, logs);
|
|
476
|
+
}
|
|
477
|
+
let log = logs.get(toolkitName);
|
|
478
|
+
if (!log) {
|
|
479
|
+
log = new HealthLog();
|
|
480
|
+
logs.set(toolkitName, log);
|
|
481
|
+
}
|
|
482
|
+
return log;
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
* THE toolkit enforcement point (issue #22).
|
|
486
|
+
*
|
|
487
|
+
* A filtered VIEW of one long-lived `Registry`: same connectors, same tool
|
|
488
|
+
* caches, same health — narrowed to the connectors and tool addresses one
|
|
489
|
+
* toolkit selects. `serveMcp` builds it once per scoped connection and hands it
|
|
490
|
+
* to `registerMetaTools`/`registerExecuteTool`, so `list_connectors`,
|
|
491
|
+
* `search_tools`, `describe_tools`, `call_tool`, `call_destructive_tool`,
|
|
492
|
+
* `batch_call`, `authorize_connector`, `get_result`, `skills`, and the
|
|
493
|
+
* `execute_code` host bridge all inherit the boundary from here instead of
|
|
494
|
+
* re-implementing nine checks.
|
|
495
|
+
*
|
|
496
|
+
* Two invariants make it reviewable:
|
|
497
|
+
*
|
|
498
|
+
* 1. **Indistinguishability.** Out-of-scope input fails through the SAME code
|
|
499
|
+
* path, with the same error class and message, as input naming something
|
|
500
|
+
* that does not exist at all. An out-of-scope CONNECTOR disappears from
|
|
501
|
+
* `resolveAddress`/`getConnector` (→ `Unknown address` / `Unknown
|
|
502
|
+
* connector`); an out-of-scope TOOL disappears from the catalog this view
|
|
503
|
+
* returns (→ `Unknown tool "<t>" on connector "<c>"`), which is exactly the
|
|
504
|
+
* error a misspelled tool name already produced. Scoping deliberately does
|
|
505
|
+
* NOT reject at `resolveAddress` for tools: that would answer with the
|
|
506
|
+
* connector-level message and make "hidden here" distinguishable from
|
|
507
|
+
* "never existed".
|
|
508
|
+
* 2. **It filters views, never state.** Every read delegates to the shared
|
|
509
|
+
* registry and filters the returned array, so the tool cache, the persisted
|
|
510
|
+
* catalog, and the health map stay whole and shared across scopes.
|
|
511
|
+
*/
|
|
512
|
+
export class ScopedRegistry {
|
|
513
|
+
base;
|
|
514
|
+
toolkit;
|
|
515
|
+
/** This toolkit's own health observations — see HealthLog. */
|
|
516
|
+
health;
|
|
517
|
+
constructor(base, toolkit) {
|
|
518
|
+
this.base = base;
|
|
519
|
+
this.toolkit = toolkit;
|
|
520
|
+
this.health = toolkitHealthLog(base, toolkit.name);
|
|
521
|
+
}
|
|
522
|
+
get maxResultBytes() {
|
|
523
|
+
return this.base.maxResultBytes;
|
|
524
|
+
}
|
|
525
|
+
/** In scope AND actually registered. */
|
|
526
|
+
visible(id) {
|
|
527
|
+
return (this.toolkit.hasConnector(id) && this.base.getConnector(id) !== undefined);
|
|
528
|
+
}
|
|
529
|
+
/** Byte-identical to what the unscoped registry throws for an unknown id. */
|
|
530
|
+
unknownConnector(id) {
|
|
531
|
+
return new Error(`Unknown connector "${id}"`);
|
|
532
|
+
}
|
|
533
|
+
inScopeTools(id, tools) {
|
|
534
|
+
return tools.filter((tool) => this.toolkit.hasTool(id, tool.name));
|
|
535
|
+
}
|
|
536
|
+
listConnectors() {
|
|
537
|
+
return this.base
|
|
538
|
+
.listConnectors()
|
|
539
|
+
.filter((connector) => this.toolkit.hasConnector(connector.id));
|
|
540
|
+
}
|
|
541
|
+
getConnector(id) {
|
|
542
|
+
return this.visible(id) ? this.base.getConnector(id) : undefined;
|
|
543
|
+
}
|
|
544
|
+
resolveAddress(address) {
|
|
545
|
+
const resolved = this.base.resolveAddress(address);
|
|
546
|
+
if (!resolved)
|
|
547
|
+
return null;
|
|
548
|
+
// Connector-level only — see invariant 1 above.
|
|
549
|
+
return this.toolkit.hasConnector(resolved.connector.id) ? resolved : null;
|
|
550
|
+
}
|
|
551
|
+
async getTools(id, baseUrl, requestScope) {
|
|
552
|
+
if (!this.visible(id))
|
|
553
|
+
throw this.unknownConnector(id);
|
|
554
|
+
return this.inScopeTools(id, await this.base.getTools(id, baseUrl, requestScope));
|
|
555
|
+
}
|
|
556
|
+
async refreshTools(id, baseUrl, requestScope) {
|
|
557
|
+
if (!this.visible(id))
|
|
558
|
+
throw this.unknownConnector(id);
|
|
559
|
+
return this.inScopeTools(id, await this.base.refreshTools(id, baseUrl, requestScope));
|
|
560
|
+
}
|
|
561
|
+
peekTools(id) {
|
|
562
|
+
if (!this.visible(id))
|
|
563
|
+
return undefined;
|
|
564
|
+
const tools = this.base.peekTools(id);
|
|
565
|
+
return tools ? this.inScopeTools(id, tools) : undefined;
|
|
566
|
+
}
|
|
567
|
+
contextFor(id, baseUrl, requestScope = {}, callOptions = {}) {
|
|
568
|
+
// Unreachable through the meta-tools (they resolve first), so a throw here
|
|
569
|
+
// is a loud backstop rather than a silent grant of connector storage and
|
|
570
|
+
// credentials to a scope that may not see the connector.
|
|
571
|
+
if (!this.visible(id))
|
|
572
|
+
throw this.unknownConnector(id);
|
|
573
|
+
return this.base.contextFor(id, baseUrl, requestScope, callOptions);
|
|
574
|
+
}
|
|
575
|
+
/**
|
|
576
|
+
* Stashed oversized results are bound to the scope that produced them: a
|
|
577
|
+
* scoped session cannot page a result it could not have produced, and an id
|
|
578
|
+
* from another scope reads back as the ordinary "Unknown or expired result
|
|
579
|
+
* id". Unscoped sessions keep the historical `results:` prefix untouched.
|
|
580
|
+
*/
|
|
581
|
+
resultsStorage() {
|
|
582
|
+
return namespaced(this.base.resultsStorage(), `toolkit:${this.toolkit.name}:`);
|
|
583
|
+
}
|
|
584
|
+
// Outcomes are recorded twice on purpose: the deployment-wide log keeps the
|
|
585
|
+
// operator surfaces complete, while the toolkit's own log is the ONLY one
|
|
586
|
+
// this view reads back — so `list_connectors` here never reports a sibling
|
|
587
|
+
// toolkit's failures, or the tool names their error strings carry.
|
|
588
|
+
recordSuccess(id, latencyMs) {
|
|
589
|
+
if (!this.visible(id))
|
|
590
|
+
return;
|
|
591
|
+
this.base.recordSuccess(id, latencyMs);
|
|
592
|
+
this.health.recordSuccess(id, latencyMs);
|
|
593
|
+
}
|
|
594
|
+
recordFailure(id, latencyMs, error) {
|
|
595
|
+
if (!this.visible(id))
|
|
596
|
+
return;
|
|
597
|
+
this.base.recordFailure(id, latencyMs, error);
|
|
598
|
+
this.health.recordFailure(id, latencyMs, error);
|
|
599
|
+
}
|
|
600
|
+
healthFor(id) {
|
|
601
|
+
return this.visible(id) ? this.health.get(id) : undefined;
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Deliberately NOT per view: whether the connector has ever answered is a
|
|
605
|
+
* fact about the connector, not about a team's traffic, and withholding it
|
|
606
|
+
* would report every remote connector as "unknown" to a scoped session that
|
|
607
|
+
* has not called it yet. It carries no tool name, error text, or count — the
|
|
608
|
+
* per-view isolation of those, above, is unchanged.
|
|
609
|
+
*/
|
|
610
|
+
hasObservedSuccess(id) {
|
|
611
|
+
return this.visible(id) ? this.base.hasObservedSuccess(id) : false;
|
|
612
|
+
}
|
|
613
|
+
/** Deployment-wide for the same reason as `hasObservedSuccess` above. */
|
|
614
|
+
observedSuccessAt(id) {
|
|
615
|
+
return this.visible(id) ? this.base.observedSuccessAt(id) : undefined;
|
|
616
|
+
}
|
|
617
|
+
/**
|
|
618
|
+
* Also deliberately NOT per view, for the same reason as
|
|
619
|
+
* `hasObservedSuccess`: whether the credential connecta stores for a connector
|
|
620
|
+
* still works is a fact about the deployment's credential, not about a team's
|
|
621
|
+
* traffic. Withholding it would leave a scoped session unable to see that the
|
|
622
|
+
* connector it shares needs re-authorization. The verdict carries the
|
|
623
|
+
* connector's own connector-level reason — never a tool name — so the per-view
|
|
624
|
+
* isolation of `lastError` above is unchanged.
|
|
625
|
+
*/
|
|
626
|
+
credentialHealthFor(id) {
|
|
627
|
+
return this.visible(id)
|
|
628
|
+
? this.base.credentialHealthFor(id)
|
|
629
|
+
: Promise.resolve(undefined);
|
|
630
|
+
}
|
|
631
|
+
async recordCredentialHealth(id, record) {
|
|
632
|
+
if (!this.visible(id))
|
|
633
|
+
return;
|
|
634
|
+
await this.base.recordCredentialHealth(id, record);
|
|
635
|
+
}
|
|
636
|
+
async statusFor(id, baseUrl, requestScope = {}) {
|
|
637
|
+
// Same shape the unscoped registry returns for an unregistered id.
|
|
638
|
+
if (!this.visible(id)) {
|
|
639
|
+
return { state: "error", message: "Unknown connector" };
|
|
640
|
+
}
|
|
641
|
+
return this.base.statusFor(id, baseUrl, requestScope);
|
|
642
|
+
}
|
|
643
|
+
async invalidateStored(id) {
|
|
644
|
+
if (!this.visible(id))
|
|
645
|
+
return;
|
|
646
|
+
await this.base.invalidateStored(id);
|
|
647
|
+
}
|
|
648
|
+
}
|
|
299
649
|
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { ActivityReadGate, ActivityStore } from "./activity.js";
|
|
3
3
|
import type { CredentialVault } from "./credentials.js";
|
|
4
|
-
import type
|
|
4
|
+
import { type Registry } from "./registry.js";
|
|
5
|
+
import { type Toolkit } from "./toolkits.js";
|
|
5
6
|
import type { ConnectaBranding, Executor, InboundAuth, Logger } from "./types.js";
|
|
6
7
|
export interface ServerOptions {
|
|
7
8
|
registry: Registry;
|
|
@@ -23,6 +24,11 @@ export interface ServerOptions {
|
|
|
23
24
|
credentialVault?: CredentialVault;
|
|
24
25
|
/** Optional browser UI and OAuth result-page labels. */
|
|
25
26
|
branding?: ConnectaBranding;
|
|
27
|
+
/**
|
|
28
|
+
* Validated named scopes, selected per connection with `?toolkit=<name>` on
|
|
29
|
+
* `/mcp`. Omit (or leave empty) and every connection sees the full registry.
|
|
30
|
+
*/
|
|
31
|
+
toolkits?: ReadonlyMap<string, Toolkit>;
|
|
26
32
|
}
|
|
27
33
|
/** Build the Web-standard fetch handler that serves connecta. */
|
|
28
34
|
export declare function createFetchHandler(opts: ServerOptions): (request: Request, runtimeContext?: RuntimeExecutionContext) => Promise<Response>;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,KAAK,EAEV,gBAAgB,EAEhB,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,KAAK,EAEV,gBAAgB,EAEhB,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAkB,KAAK,QAAQ,EAAqB,MAAM,eAAe,CAAC;AACjF,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAGV,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,MAAM,EAEP,MAAM,YAAY,CAAC;AA6CpB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,UAAU,EAAE,qBAAqB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,qFAAqF;IACrF,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,wDAAwD;IACxD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AA00BD,iEAAiE;AACjE,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,GAClB,CACD,OAAO,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,uBAAuB,KACrC,OAAO,CAAC,QAAQ,CAAC,CAqRrB;AAED,UAAU,uBAAuB;IAC/B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C"}
|