@zackbart/connecta 0.7.9 → 0.8.1

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 (199) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/README.md +47 -148
  3. package/dist/activity.d.ts +0 -8
  4. package/dist/activity.d.ts.map +1 -1
  5. package/dist/activity.js +0 -1
  6. package/dist/activity.js.map +1 -1
  7. package/dist/auth/bearer.d.ts +1 -7
  8. package/dist/auth/bearer.d.ts.map +1 -1
  9. package/dist/auth/bearer.js +3 -24
  10. package/dist/auth/bearer.js.map +1 -1
  11. package/dist/auth/clerk.d.ts +2 -11
  12. package/dist/auth/clerk.d.ts.map +1 -1
  13. package/dist/auth/clerk.js +31 -46
  14. package/dist/auth/clerk.js.map +1 -1
  15. package/dist/call-admission.d.ts.map +1 -1
  16. package/dist/call-admission.js +9 -4
  17. package/dist/call-admission.js.map +1 -1
  18. package/dist/catalog-fingerprint.d.ts +20 -0
  19. package/dist/catalog-fingerprint.d.ts.map +1 -0
  20. package/dist/catalog-fingerprint.js +34 -0
  21. package/dist/catalog-fingerprint.js.map +1 -0
  22. package/dist/catalog-limits.d.ts +10 -0
  23. package/dist/catalog-limits.d.ts.map +1 -0
  24. package/dist/catalog-limits.js +10 -0
  25. package/dist/catalog-limits.js.map +1 -0
  26. package/dist/catalog-service.d.ts +137 -0
  27. package/dist/catalog-service.d.ts.map +1 -0
  28. package/dist/catalog-service.js +401 -0
  29. package/dist/catalog-service.js.map +1 -0
  30. package/dist/catalog.d.ts +6 -0
  31. package/dist/catalog.d.ts.map +1 -1
  32. package/dist/catalog.js +53 -2
  33. package/dist/catalog.js.map +1 -1
  34. package/dist/concurrency.d.ts +4 -0
  35. package/dist/concurrency.d.ts.map +1 -0
  36. package/dist/concurrency.js +31 -0
  37. package/dist/concurrency.js.map +1 -0
  38. package/dist/connectors/api.d.ts.map +1 -1
  39. package/dist/connectors/api.js +22 -12
  40. package/dist/connectors/api.js.map +1 -1
  41. package/dist/connectors/remote-mcp.d.ts.map +1 -1
  42. package/dist/connectors/remote-mcp.js +53 -41
  43. package/dist/connectors/remote-mcp.js.map +1 -1
  44. package/dist/credentials.d.ts +3 -2
  45. package/dist/credentials.d.ts.map +1 -1
  46. package/dist/errors.d.ts +19 -1
  47. package/dist/errors.d.ts.map +1 -1
  48. package/dist/errors.js.map +1 -1
  49. package/dist/execute.d.ts +10 -16
  50. package/dist/execute.d.ts.map +1 -1
  51. package/dist/execute.js +143 -330
  52. package/dist/execute.js.map +1 -1
  53. package/dist/executor-result.d.ts +0 -3
  54. package/dist/executor-result.d.ts.map +1 -1
  55. package/dist/executor-result.js +3 -3
  56. package/dist/executor-result.js.map +1 -1
  57. package/dist/executors/quickjs-child.js +3 -3
  58. package/dist/executors/quickjs-child.js.map +1 -1
  59. package/dist/executors/quickjs-protocol.d.ts +4 -1
  60. package/dist/executors/quickjs-protocol.d.ts.map +1 -1
  61. package/dist/executors/quickjs-runtime.d.ts.map +1 -1
  62. package/dist/executors/quickjs-runtime.js +7 -2
  63. package/dist/executors/quickjs-runtime.js.map +1 -1
  64. package/dist/executors/quickjs.d.ts.map +1 -1
  65. package/dist/executors/quickjs.js +4 -1
  66. package/dist/executors/quickjs.js.map +1 -1
  67. package/dist/favicon.js +2 -2
  68. package/dist/favicon.js.map +1 -1
  69. package/dist/index.d.ts +8 -82
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +58 -104
  72. package/dist/index.js.map +1 -1
  73. package/dist/invocation.d.ts +101 -0
  74. package/dist/invocation.d.ts.map +1 -0
  75. package/dist/invocation.js +405 -0
  76. package/dist/invocation.js.map +1 -0
  77. package/dist/meta-tools.d.ts +9 -95
  78. package/dist/meta-tools.d.ts.map +1 -1
  79. package/dist/meta-tools.js +235 -725
  80. package/dist/meta-tools.js.map +1 -1
  81. package/dist/operator-ui/generated.d.ts +3 -0
  82. package/dist/operator-ui/generated.d.ts.map +1 -0
  83. package/dist/operator-ui/generated.js +5 -0
  84. package/dist/operator-ui/generated.js.map +1 -0
  85. package/dist/operator-ui/model.d.ts +73 -0
  86. package/dist/operator-ui/model.d.ts.map +1 -0
  87. package/dist/operator-ui/model.js +28 -0
  88. package/dist/operator-ui/model.js.map +1 -0
  89. package/dist/registry.d.ts +33 -184
  90. package/dist/registry.d.ts.map +1 -1
  91. package/dist/registry.js +345 -330
  92. package/dist/registry.js.map +1 -1
  93. package/dist/retired-toolkits.d.ts +3 -0
  94. package/dist/retired-toolkits.d.ts.map +1 -0
  95. package/dist/retired-toolkits.js +9 -0
  96. package/dist/retired-toolkits.js.map +1 -0
  97. package/dist/routes/activity.d.ts +3 -0
  98. package/dist/routes/activity.d.ts.map +1 -0
  99. package/dist/routes/activity.js +170 -0
  100. package/dist/routes/activity.js.map +1 -0
  101. package/dist/routes/credentials.d.ts +3 -0
  102. package/dist/routes/credentials.d.ts.map +1 -0
  103. package/dist/routes/credentials.js +170 -0
  104. package/dist/routes/credentials.js.map +1 -0
  105. package/dist/routes/mcp.d.ts +8 -0
  106. package/dist/routes/mcp.d.ts.map +1 -0
  107. package/dist/routes/mcp.js +270 -0
  108. package/dist/routes/mcp.js.map +1 -0
  109. package/dist/routes/oauth.d.ts +4 -0
  110. package/dist/routes/oauth.d.ts.map +1 -0
  111. package/dist/routes/oauth.js +263 -0
  112. package/dist/routes/oauth.js.map +1 -0
  113. package/dist/routes/shared.d.ts +76 -0
  114. package/dist/routes/shared.d.ts.map +1 -0
  115. package/dist/routes/shared.js +140 -0
  116. package/dist/routes/shared.js.map +1 -0
  117. package/dist/routes/ui.d.ts +3 -0
  118. package/dist/routes/ui.d.ts.map +1 -0
  119. package/dist/routes/ui.js +116 -0
  120. package/dist/routes/ui.js.map +1 -0
  121. package/dist/server.d.ts +9 -40
  122. package/dist/server.d.ts.map +1 -1
  123. package/dist/server.js +62 -1322
  124. package/dist/server.js.map +1 -1
  125. package/dist/skills.d.ts +3 -21
  126. package/dist/skills.d.ts.map +1 -1
  127. package/dist/skills.js +15 -43
  128. package/dist/skills.js.map +1 -1
  129. package/dist/storage/file.d.ts.map +1 -1
  130. package/dist/storage/file.js +3 -1
  131. package/dist/storage/file.js.map +1 -1
  132. package/dist/storage/memory.d.ts.map +1 -1
  133. package/dist/storage/memory.js +3 -1
  134. package/dist/storage/memory.js.map +1 -1
  135. package/dist/timeout.d.ts.map +1 -1
  136. package/dist/timeout.js +2 -4
  137. package/dist/timeout.js.map +1 -1
  138. package/dist/types.d.ts +9 -59
  139. package/dist/types.d.ts.map +1 -1
  140. package/dist/ui.d.ts +3 -94
  141. package/dist/ui.d.ts.map +1 -1
  142. package/dist/ui.js +30 -1427
  143. package/dist/ui.js.map +1 -1
  144. package/dist/version.d.ts +1 -1
  145. package/dist/version.js +1 -1
  146. package/package.json +15 -8
  147. package/src/activity.ts +0 -9
  148. package/src/auth/bearer.ts +4 -33
  149. package/src/auth/clerk.ts +35 -48
  150. package/src/call-admission.ts +8 -6
  151. package/src/catalog-fingerprint.ts +52 -0
  152. package/src/catalog-limits.ts +11 -0
  153. package/src/catalog-service.ts +601 -0
  154. package/src/catalog.ts +57 -2
  155. package/src/concurrency.ts +39 -0
  156. package/src/connectors/api.ts +22 -12
  157. package/src/connectors/remote-mcp.ts +63 -45
  158. package/src/credentials.ts +2 -2
  159. package/src/errors.ts +21 -1
  160. package/src/execute.ts +193 -423
  161. package/src/executor-result.ts +3 -3
  162. package/src/executors/quickjs-child.ts +8 -4
  163. package/src/executors/quickjs-protocol.ts +1 -1
  164. package/src/executors/quickjs-runtime.ts +5 -1
  165. package/src/executors/quickjs.ts +11 -8
  166. package/src/favicon.ts +2 -2
  167. package/src/index.ts +70 -222
  168. package/src/invocation.ts +580 -0
  169. package/src/meta-tools.ts +393 -985
  170. package/src/operator-ui/browser.css +360 -0
  171. package/src/operator-ui/browser.ts +987 -0
  172. package/src/operator-ui/generated.ts +4 -0
  173. package/src/operator-ui/model.ts +105 -0
  174. package/src/registry.ts +459 -439
  175. package/src/retired-toolkits.ts +14 -0
  176. package/src/routes/activity.ts +215 -0
  177. package/src/routes/credentials.ts +254 -0
  178. package/src/routes/mcp.ts +339 -0
  179. package/src/routes/oauth.ts +322 -0
  180. package/src/routes/shared.ts +240 -0
  181. package/src/routes/ui.ts +143 -0
  182. package/src/server.ts +64 -1731
  183. package/src/skills.ts +15 -43
  184. package/src/storage/file.ts +3 -1
  185. package/src/storage/memory.ts +3 -1
  186. package/src/timeout.ts +2 -4
  187. package/src/types.ts +8 -60
  188. package/src/ui.ts +60 -1538
  189. package/src/version.ts +1 -1
  190. package/dist/credential-health.d.ts +0 -227
  191. package/dist/credential-health.d.ts.map +0 -1
  192. package/dist/credential-health.js +0 -606
  193. package/dist/credential-health.js.map +0 -1
  194. package/dist/toolkits.d.ts +0 -146
  195. package/dist/toolkits.d.ts.map +0 -1
  196. package/dist/toolkits.js +0 -322
  197. package/dist/toolkits.js.map +0 -1
  198. package/src/credential-health.ts +0 -832
  199. package/src/toolkits.ts +0 -461
@@ -0,0 +1,405 @@
1
+ import { recordToolActivity, } from "./activity.js";
2
+ import { isCallAdmissionError } from "./call-admission.js";
3
+ import { classifyCallError, ConnectorCallError, messageLooksRetryable, } from "./errors.js";
4
+ import { unwrapMcpResult } from "./mcp-result.js";
5
+ /**
6
+ * The longest the engine will park a synchronous inbound request in *waiting
7
+ * alone*. The engine already treats ~15 s as the outer bound of one reasonable
8
+ * connector call (EXECUTE_HOST_CALL_TIMEOUT_MS), so sleeping for minutes trades
9
+ * a fast, informative failure for a hung one. A connector-reported window this
10
+ * long isn't truncated — it's declined (see `retryBackoffMs`) and reported
11
+ * verbatim as `error.retryAfterMs`, so the agent, which can afford to wait,
12
+ * decides when to re-issue.
13
+ */
14
+ export const MAX_RETRY_BACKOFF_MS = 10_000;
15
+ /**
16
+ * How long to wait before the next attempt, or `undefined` for "don't retry".
17
+ *
18
+ * A connector that read a `Retry-After` header knows the window exactly, so it
19
+ * is honoured **exactly or not at all**: truncating an exponential *guess* is
20
+ * harmless, but truncating a *known* window means deliberately retrying inside
21
+ * a rate limit — the harm this channel exists to prevent. A window longer than
22
+ * `MAX_RETRY_BACKOFF_MS` therefore declines the retry rather than shortening
23
+ * it. (`retryAfterMs` is normalized non-negative, so `0` means "retry now".)
24
+ * Connectors that report no window keep the historical exponential guess.
25
+ *
26
+ * Waits are per attempt, matching the per-attempt `timeoutMs` race in
27
+ * `InvocationService.invoke`. Exported for direct testing.
28
+ */
29
+ export function retryBackoffMs(attempt, retryAfterMs) {
30
+ if (retryAfterMs === undefined) {
31
+ return Math.min(250 * 2 ** (attempt - 1), 1_000);
32
+ }
33
+ return retryAfterMs <= MAX_RETRY_BACKOFF_MS ? retryAfterMs : undefined;
34
+ }
35
+ /** The one fail-closed admission predicate for every invocation adapter. */
36
+ function isExplicitlyReadOnly(definition) {
37
+ return (definition.annotations?.readOnlyHint === true &&
38
+ definition.annotations?.destructiveHint !== true);
39
+ }
40
+ function retrySafe(definition) {
41
+ return (definition.annotations?.readOnlyHint === true ||
42
+ definition.annotations?.idempotentHint === true);
43
+ }
44
+ function framingError(code, message) {
45
+ return { code, message, retryable: messageLooksRetryable(message) };
46
+ }
47
+ function callerCancelledDetails() {
48
+ return {
49
+ code: "cancelled",
50
+ message: "Tool call was cancelled by the caller.",
51
+ retryable: false,
52
+ };
53
+ }
54
+ function recoveryMode(registry, connector, baseUrl) {
55
+ if (connector.startAuth)
56
+ return "oauth";
57
+ if (connector.credential &&
58
+ registry.contextFor(connector.id, baseUrl).credential) {
59
+ return "operator_config";
60
+ }
61
+ return "unavailable";
62
+ }
63
+ function isCallerCancellation(error, signal) {
64
+ return (signal?.aborted === true ||
65
+ (isCallAdmissionError(error) && error.admissionKind === "cancelled"));
66
+ }
67
+ function assertRawMcpSuccess(kind, result) {
68
+ if (kind !== "mcp" || result == null || typeof result !== "object")
69
+ return;
70
+ const mcpResult = result;
71
+ if (!mcpResult.isError)
72
+ return;
73
+ throw new Error(mcpResult.content
74
+ ?.filter((block) => block.type === "text")
75
+ .map((block) => block.text ?? "")
76
+ .join("") || "Downstream tool call failed");
77
+ }
78
+ export class InvocationFailure extends Error {
79
+ details;
80
+ code;
81
+ retryable;
82
+ retryAfterMs;
83
+ connector;
84
+ operation;
85
+ recovery;
86
+ nextAction;
87
+ retry;
88
+ constructor(details) {
89
+ super(details.message);
90
+ this.details = details;
91
+ this.name = "InvocationFailure";
92
+ this.code = details.code;
93
+ this.retryable = details.retryable;
94
+ this.retryAfterMs = details.retryAfterMs;
95
+ this.connector = details.connector;
96
+ this.operation = details.operation;
97
+ this.recovery = details.recovery;
98
+ this.nextAction = details.nextAction;
99
+ this.retry = details.retry;
100
+ }
101
+ }
102
+ /**
103
+ * Shared downstream invocation engine. Address/catalog resolution is delegated
104
+ * to the request-local CatalogService; every remaining call semantic lives
105
+ * here so MCP and code mode cannot drift independently.
106
+ */
107
+ export class InvocationService {
108
+ registry;
109
+ catalog;
110
+ activity;
111
+ constructor(registry, catalog, activity) {
112
+ this.registry = registry;
113
+ this.catalog = catalog;
114
+ this.activity = activity;
115
+ }
116
+ async invoke(address, args, context) {
117
+ return this.invokeWithResolution(address, args, context, () => this.catalog.resolveTool(address, context.requestSignal !== undefined
118
+ ? { signal: context.requestSignal }
119
+ : {}));
120
+ }
121
+ /**
122
+ * Code-mode namespace dispatch preserves JavaScript-safe tool aliases while
123
+ * still feeding the resolved catalog entry through the one invocation path.
124
+ */
125
+ async invokeToolAlias(connectorId, toolAlias, aliasFor, args, context) {
126
+ return this.invokeWithResolution(`${connectorId}.${toolAlias}`, args, context, () => this.catalog.resolveToolAlias(connectorId, toolAlias, aliasFor, context.requestSignal !== undefined
127
+ ? { signal: context.requestSignal }
128
+ : {}));
129
+ }
130
+ async invokeWithResolution(address, args, context, resolve) {
131
+ const started = Date.now();
132
+ let catalogMs = 0;
133
+ let admissionMs = 0;
134
+ let connectorMs = 0;
135
+ let backoffMs = 0;
136
+ let resultProcessingMs = 0;
137
+ let attempts = 0;
138
+ let resolved;
139
+ let activityTarget;
140
+ const timing = () => ({
141
+ catalogMs,
142
+ admissionMs,
143
+ connectorMs,
144
+ backoffMs,
145
+ resultProcessingMs,
146
+ totalMs: Date.now() - started,
147
+ });
148
+ const record = (outcome, errorCode) => {
149
+ if (!activityTarget)
150
+ return;
151
+ recordToolActivity(this.activity, {
152
+ connectorId: activityTarget.connector.id,
153
+ toolName: activityTarget.toolName,
154
+ address: `${activityTarget.connector.id}.${activityTarget.toolName}`,
155
+ source: context.source,
156
+ outcome,
157
+ durationMs: Date.now() - started,
158
+ attempts,
159
+ ...(errorCode ? { errorCode } : {}),
160
+ });
161
+ };
162
+ const failed = (error) => {
163
+ const diagnostics = timing();
164
+ const target = resolved ?? activityTarget;
165
+ const details = error.code === "auth_required" && target
166
+ ? {
167
+ ...error,
168
+ connector: target.connector.id,
169
+ operation: `${target.connector.id}.${target.toolName}`,
170
+ recovery: recoveryMode(this.registry, target.connector, this.catalog.baseUrl),
171
+ nextAction: {
172
+ tool: "authorize_connector",
173
+ arguments: { connector: target.connector.id },
174
+ operatorHandoff: "Give the URL and instructions it returns to the operator.",
175
+ },
176
+ retry: `Retry ${target.connector.id}.${target.toolName} after ` +
177
+ "the operator completes recovery.",
178
+ }
179
+ : error;
180
+ record(details.code === "timeout"
181
+ ? "timeout"
182
+ : details.code === "cancelled"
183
+ ? "cancelled"
184
+ : "error", details.code);
185
+ return {
186
+ ok: false,
187
+ durationMs: Date.now() - started,
188
+ attempts,
189
+ timing: diagnostics,
190
+ ...(resolved ? { resolved } : {}),
191
+ error: details,
192
+ };
193
+ };
194
+ const resolution = await resolve();
195
+ catalogMs += resolution.catalogMs;
196
+ if (!resolution.ok) {
197
+ if (resolution.connector && resolution.toolName) {
198
+ activityTarget = {
199
+ connector: resolution.connector,
200
+ toolName: resolution.toolName,
201
+ };
202
+ }
203
+ if (resolution.cause && resolution.connector) {
204
+ if (context.requestSignal?.aborted) {
205
+ return failed(callerCancelledDetails());
206
+ }
207
+ // A connector whose catalog cannot be fetched is as unusable as one
208
+ // whose execution fails, so it feeds health accounting the same way the
209
+ // attempt catch below does — otherwise a connector every call fails
210
+ // against (a revoked downstream grant, say) still reads clean from the
211
+ // cheap `list_connectors({ probe: false })` signal.
212
+ //
213
+ // Recorded HERE rather than inside the registry's catalog fetch because
214
+ // a cache hit that avoids a live listTools call records nothing — it is
215
+ // not evidence of health. Success stays what it has always been: an
216
+ // actual downstream call that returned.
217
+ this.registry.recordFailure(resolution.connector.id, Date.now() - started, resolution.cause);
218
+ }
219
+ return failed(resolution.error);
220
+ }
221
+ resolved = resolution.resolved;
222
+ activityTarget = resolved;
223
+ if (!isExplicitlyReadOnly(resolved.definition) && !context.allowDestructive) {
224
+ const canonicalAddress = `${resolved.connector.id}.${resolved.toolName}`;
225
+ return failed(framingError("destructive_tool_requires_approval", `Tool "${canonicalAddress}" is not explicitly read-only. Invoke it through call_destructive_tool so the MCP host can request explicit approval.`));
226
+ }
227
+ try {
228
+ context.beforeDispatch?.();
229
+ }
230
+ catch (error) {
231
+ return failed(classifyCallError(error));
232
+ }
233
+ const maxRetries = Math.min(2, Math.max(0, Math.trunc(context.maxRetries ?? 0)));
234
+ let result;
235
+ while (true) {
236
+ attempts++;
237
+ let permit;
238
+ const controller = context.timeoutMs || context.requestSignal
239
+ ? new AbortController()
240
+ : undefined;
241
+ const forwardAbort = () => controller?.abort(context.requestSignal?.reason);
242
+ if (context.requestSignal?.aborted)
243
+ forwardAbort();
244
+ else {
245
+ context.requestSignal?.addEventListener("abort", forwardAbort, {
246
+ once: true,
247
+ });
248
+ }
249
+ let timer;
250
+ let onAbort;
251
+ let attemptError;
252
+ let attemptFailed = false;
253
+ try {
254
+ const admissionStarted = Date.now();
255
+ try {
256
+ permit = await this.registry.admitCall(resolved.connector.id, {
257
+ toolName: resolved.toolName,
258
+ args: args ?? {},
259
+ ...(context.requestSignal !== undefined
260
+ ? { signal: context.requestSignal }
261
+ : {}),
262
+ });
263
+ }
264
+ finally {
265
+ admissionMs += Date.now() - admissionStarted;
266
+ }
267
+ const connectorContext = this.registry.contextFor(resolved.connector.id, this.catalog.baseUrl, this.catalog.requestScope, {
268
+ ...(controller?.signal !== undefined
269
+ ? { signal: controller.signal }
270
+ : {}),
271
+ ...(context.timeoutMs !== undefined
272
+ ? { timeoutMs: context.timeoutMs }
273
+ : {}),
274
+ });
275
+ if (resolved.connector.credential && !connectorContext.credential) {
276
+ throw new ConnectorCallError("auth_required", "Operator-managed credential storage is not configured. Call " +
277
+ `authorize_connector({ connector: "${resolved.connector.id}" }).`);
278
+ }
279
+ let rejectCancelled;
280
+ const cancelled = controller
281
+ ? new Promise((_, reject) => {
282
+ rejectCancelled = reject;
283
+ })
284
+ : undefined;
285
+ onAbort = () => {
286
+ rejectCancelled(controller?.signal.reason ??
287
+ new ConnectorCallError("timeout", "Tool call was cancelled"));
288
+ };
289
+ controller?.signal.addEventListener("abort", onAbort, { once: true });
290
+ if (controller?.signal.aborted)
291
+ onAbort();
292
+ if (controller?.signal.aborted)
293
+ await cancelled;
294
+ if (context.timeoutMs) {
295
+ timer = setTimeout(() => {
296
+ controller?.abort(new ConnectorCallError("timeout", `Tool call timed out after ${context.timeoutMs}ms`));
297
+ }, context.timeoutMs);
298
+ }
299
+ const connectorStarted = Date.now();
300
+ try {
301
+ const pending = resolved.connector.callTool(resolved.toolName, args ?? {}, connectorContext);
302
+ const raw = cancelled
303
+ ? await Promise.race([pending, cancelled])
304
+ : await pending;
305
+ // isError is checked here for BOTH result shapes so every adapter
306
+ // reports the same downstream-failure wording, and the throw lands
307
+ // inside the attempt where it stays retry-eligible and feeds health.
308
+ assertRawMcpSuccess(resolved.connector.kind, raw);
309
+ result = context.unwrapResult
310
+ ? unwrapMcpResult(resolved.connector.kind, raw)
311
+ : raw;
312
+ }
313
+ finally {
314
+ connectorMs += Date.now() - connectorStarted;
315
+ }
316
+ }
317
+ catch (error) {
318
+ attemptFailed = true;
319
+ attemptError = error;
320
+ }
321
+ finally {
322
+ if (timer)
323
+ clearTimeout(timer);
324
+ if (onAbort) {
325
+ controller?.signal.removeEventListener("abort", onAbort);
326
+ }
327
+ context.requestSignal?.removeEventListener("abort", forwardAbort);
328
+ permit?.release();
329
+ }
330
+ if (attemptFailed) {
331
+ const callerCancelled = isCallerCancellation(attemptError, context.requestSignal);
332
+ const details = callerCancelled
333
+ ? callerCancelledDetails()
334
+ : classifyCallError(attemptError);
335
+ if (!callerCancelled &&
336
+ attempts <= maxRetries &&
337
+ retrySafe(resolved.definition) &&
338
+ details.retryable) {
339
+ const wait = retryBackoffMs(attempts, details.retryAfterMs);
340
+ if (wait !== undefined) {
341
+ const backoffStarted = Date.now();
342
+ if (wait > 0) {
343
+ const completed = await new Promise((resolve) => {
344
+ let settled = false;
345
+ const finish = (value) => {
346
+ if (settled)
347
+ return;
348
+ settled = true;
349
+ clearTimeout(timer);
350
+ context.requestSignal?.removeEventListener("abort", cancel);
351
+ resolve(value);
352
+ };
353
+ const timer = setTimeout(() => finish(true), wait);
354
+ const cancel = () => finish(false);
355
+ context.requestSignal?.addEventListener("abort", cancel, {
356
+ once: true,
357
+ });
358
+ if (context.requestSignal?.aborted)
359
+ cancel();
360
+ });
361
+ backoffMs += Date.now() - backoffStarted;
362
+ if (!completed)
363
+ return failed(callerCancelledDetails());
364
+ }
365
+ else {
366
+ backoffMs += Date.now() - backoffStarted;
367
+ }
368
+ continue;
369
+ }
370
+ // The reported window is longer than the engine will park a
371
+ // synchronous request for. Fall through to failure with
372
+ // retryAfterMs reported verbatim so the agent can re-issue.
373
+ }
374
+ if (!callerCancelled && !isCallAdmissionError(attemptError)) {
375
+ this.registry.recordFailure(resolved.connector.id, Date.now() - started, attemptError);
376
+ }
377
+ return failed(details);
378
+ }
379
+ break;
380
+ }
381
+ this.registry.recordSuccess(resolved.connector.id, Date.now() - started);
382
+ const processingStarted = Date.now();
383
+ try {
384
+ const value = context.processResult
385
+ ? await context.processResult(result, resolved)
386
+ : result;
387
+ resultProcessingMs += Date.now() - processingStarted;
388
+ const diagnostics = timing();
389
+ record("success");
390
+ return {
391
+ ok: true,
392
+ value,
393
+ resolved,
394
+ durationMs: Date.now() - started,
395
+ attempts,
396
+ timing: diagnostics,
397
+ };
398
+ }
399
+ catch (error) {
400
+ resultProcessingMs += Date.now() - processingStarted;
401
+ return failed(framingError("result_processing_failed", error instanceof Error ? error.message : String(error)));
402
+ }
403
+ }
404
+ }
405
+ //# sourceMappingURL=invocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../src/invocation.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { type ActivityRequestContext } from "./activity.js";
2
+ import type { ActivityRequestContext } from "./activity.js";
3
+ import { MAX_DESCRIBE_ADDRESSES, MAX_DISCOVERY_RESULT_BYTES, MAX_SEARCH_LIMIT } from "./catalog-service.js";
3
4
  import { type DeferredWork } from "./connector-scope.js";
5
+ import { MAX_RETRY_BACKOFF_MS, retryBackoffMs } from "./invocation.js";
4
6
  import { type RegistryView } from "./registry.js";
7
+ export { MAX_DESCRIBE_ADDRESSES, MAX_DISCOVERY_RESULT_BYTES, MAX_RETRY_BACKOFF_MS, MAX_SEARCH_LIMIT, retryBackoffMs, };
5
8
  interface TextContent {
6
9
  type: "text";
7
10
  text: string;
@@ -14,73 +17,6 @@ export interface ToolResult {
14
17
  }
15
18
  export declare function jsonResult(obj: unknown): ToolResult;
16
19
  export declare function errorResult(message: string): ToolResult;
17
- export declare const DEFAULT_SEARCH_LIMIT = 25;
18
- /**
19
- * A discovery page is for choosing the next tool, not exporting the catalog.
20
- * One hundred leaves room for broad browsing while keeping each deliberate
21
- * page far below the catalog sizes Connecta supports.
22
- */
23
- export declare const MAX_SEARCH_LIMIT = 100;
24
- /** Same one-request work bound for address-based discovery. */
25
- export declare const MAX_DESCRIBE_ADDRESSES = 100;
26
- /**
27
- * Final UTF-8 ceiling for a generated search/describe response. The count
28
- * limits are the ordinary guard; this catches unusually large full schemas or
29
- * descriptions that make even a bounded page expensive.
30
- */
31
- export declare const MAX_DISCOVERY_RESULT_BYTES = 256000;
32
- export declare class DiscoveryPolicyError extends Error {
33
- readonly code: "invalid_args" | "result_too_large";
34
- constructor(code: "invalid_args" | "result_too_large", message: string);
35
- }
36
- /** Validate before ranking so a huge page request does no proportional work. */
37
- export declare function discoverySearchLimit(value: unknown): number;
38
- /** Validate the raw list so duplicate addresses consume the same bound. */
39
- export declare function discoveryAddresses(value: unknown): unknown[];
40
- /** Apply the same final result guard to code-mode discovery helpers. */
41
- export declare function assertDiscoveryResultSize(value: unknown, hint: string): void;
42
- /**
43
- * The longest the engine will park a synchronous inbound request in *waiting
44
- * alone*. The engine already treats ~15 s as the outer bound of one reasonable
45
- * connector call (EXECUTE_HOST_CALL_TIMEOUT_MS), so sleeping for minutes trades
46
- * a fast, informative failure for a hung one. A connector-reported window this
47
- * long isn't truncated — it's declined (see `retryBackoffMs`) and reported
48
- * verbatim as `error.retryAfterMs`, so the agent, which can afford to wait,
49
- * decides when to re-issue.
50
- */
51
- export declare const MAX_RETRY_BACKOFF_MS = 10000;
52
- /**
53
- * How long to wait before the next attempt, or `undefined` for "don't retry".
54
- *
55
- * A connector that read a `Retry-After` header knows the window exactly, so it
56
- * is honoured **exactly or not at all**: truncating an exponential *guess* is
57
- * harmless, but truncating a *known* window means deliberately retrying inside
58
- * a rate limit — the harm this channel exists to prevent. A window longer than
59
- * `MAX_RETRY_BACKOFF_MS` therefore declines the retry rather than shortening
60
- * it. (`retryAfterMs` is normalized non-negative, so `0` means "retry now".)
61
- * Connectors that report no window keep the historical exponential guess.
62
- *
63
- * Waits are per attempt, matching the per-attempt `timeoutMs` race in
64
- * `runCall`. Exported for direct testing.
65
- */
66
- export declare function retryBackoffMs(attempt: number, retryAfterMs: number | undefined): number | undefined;
67
- /** Smallest accepted `get_result` byte offset. */
68
- export declare const MIN_RESULT_OFFSET = 0;
69
- /**
70
- * The one definition of a usable `get_result` offset: a whole number of bytes
71
- * at or past {@link MIN_RESULT_OFFSET}. Shared by the registered zod schema and
72
- * the handler's own check, the way `isValidMaxResultBytes` is shared across the
73
- * cap's intake points (issue #32) — so a value valid at the wire is valid in
74
- * process, and the two cannot drift.
75
- *
76
- * Everything else is rejected rather than coerced, because coercion is how an
77
- * out-of-domain offset used to void a result silently: `Math.max(0, NaN)` is
78
- * `NaN`, which slices to nothing, serializes as `"offset": null`, and reports
79
- * no `nextOffset` — a caller sees a successful, empty result instead of an
80
- * error. An offset past the end of the payload stays legal: it is a whole
81
- * number of bytes, and it answers with an empty final page.
82
- */
83
- export declare function isValidResultOffset(value: number): boolean;
84
20
  /**
85
21
  * Move a byte `offset` back to the nearest UTF-8 codepoint boundary in
86
22
  * `[0, offset]`, so decoding from it never starts mid-character (which emits
@@ -110,22 +46,6 @@ export declare function alignStartToCharBoundary(bytes: Uint8Array, offset: numb
110
46
  * ever does. Exported for direct testing of that invariant.
111
47
  */
112
48
  export declare function alignEndToCharBoundary(bytes: Uint8Array, offset: number, end: number, total: number): number;
113
- /**
114
- * The one serialization every result guard measures, stashes, and pages: JSON
115
- * text for whatever JSON can represent, and `String(value)` for the returns
116
- * JSON renders as `undefined` — a handler that returns nothing, a function, or
117
- * a Symbol. `JSON.stringify` is *typed* as returning `string` while actually
118
- * returning `undefined` for those, which is how a handler returning `undefined`
119
- * reached clients as a `{"type":"text"}` block carrying no `text` at all: the
120
- * size guard measured `enc.encode(undefined)` — the empty string, per the
121
- * WebIDL default — and emitted the non-string unchanged (issue #42). `null`
122
- * needs no special case; JSON renders it as `"null"`.
123
- *
124
- * Shared by `guardText`, `guardValue`, and execute_code's `guardResultValue` so
125
- * the three give one answer to the same question. A value JSON cannot serialize
126
- * at all (a BigInt) still throws, as before, and is reported as a failure.
127
- */
128
- export declare function serializeResultText(value: unknown): string;
129
49
  export interface SearchArgs {
130
50
  query?: string;
131
51
  connector?: string;
@@ -143,7 +63,7 @@ export interface ListArgs {
143
63
  /** When false, return cached/observed health without downstream I/O. */
144
64
  probe?: boolean;
145
65
  }
146
- export type ResultMode = "mcp" | "value";
66
+ type ResultMode = "mcp" | "value";
147
67
  export interface CallArgs {
148
68
  address: string;
149
69
  args?: Record<string, unknown>;
@@ -165,15 +85,7 @@ export interface GetResultArgs {
165
85
  /** Page size in bytes; a whole number >= 1. Defaults to the deployment cap. */
166
86
  maxBytes?: number;
167
87
  }
168
- export interface BatchCall {
169
- address: string;
170
- args?: Record<string, unknown>;
171
- fields?: string[];
172
- resultMode?: ResultMode;
173
- timeoutMs?: number;
174
- maxRetries?: number;
175
- diagnostics?: boolean;
176
- }
88
+ export type BatchCall = CallArgs;
177
89
  export interface BatchArgs {
178
90
  calls: BatchCall[];
179
91
  resultMode?: ResultMode;
@@ -204,6 +116,8 @@ export declare function createMetaTools(registry: RegistryView, baseUrl: string,
204
116
  defaultToolTimeoutMs?: number;
205
117
  /** Per-connector deadline for the list/search/describe probe fan-out. Default 30_000. */
206
118
  probeTimeoutMs?: number;
119
+ /** Maximum simultaneous connector discovery operations. Default 4. */
120
+ discoveryConcurrency?: number;
207
121
  activity?: ActivityRequestContext;
208
122
  /** Inbound request cancellation shared by direct and batch child calls. */
209
123
  requestSignal?: AbortSignal;
@@ -225,9 +139,9 @@ export declare function registerMetaTools(server: McpServer, registry: RegistryV
225
139
  baseUrl: string;
226
140
  defaultToolTimeoutMs?: number;
227
141
  probeTimeoutMs?: number;
142
+ discoveryConcurrency?: number;
228
143
  activity?: ActivityRequestContext;
229
144
  requestSignal?: AbortSignal;
230
145
  defer?: DeferredWork;
231
146
  }): void;
232
- export {};
233
147
  //# sourceMappingURL=meta-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-tools.d.ts","sourceRoot":"","sources":["../src/meta-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meta-tools.d.ts","sourceRoot":"","sources":["../src/meta-tools.ts"],"names":[],"mappings":"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"}