@zackbart/connecta 0.7.8 → 0.8.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 +94 -0
- package/README.md +67 -144
- package/dist/activity.d.ts +1 -1
- package/dist/activity.d.ts.map +1 -1
- package/dist/activity.js.map +1 -1
- package/dist/auth/bearer.d.ts +1 -1
- package/dist/auth/bearer.js +4 -4
- package/dist/auth/bearer.js.map +1 -1
- package/dist/auth/clerk.d.ts +1 -1
- package/dist/auth/clerk.js +1 -1
- package/dist/call-admission.d.ts +81 -0
- package/dist/call-admission.d.ts.map +1 -0
- package/dist/call-admission.js +345 -0
- package/dist/call-admission.js.map +1 -0
- package/dist/catalog-fingerprint.d.ts +20 -0
- package/dist/catalog-fingerprint.d.ts.map +1 -0
- package/dist/catalog-fingerprint.js +34 -0
- package/dist/catalog-fingerprint.js.map +1 -0
- package/dist/catalog-limits.d.ts +10 -0
- package/dist/catalog-limits.d.ts.map +1 -0
- package/dist/catalog-limits.js +10 -0
- package/dist/catalog-limits.js.map +1 -0
- package/dist/catalog-service.d.ts +138 -0
- package/dist/catalog-service.d.ts.map +1 -0
- package/dist/catalog-service.js +407 -0
- package/dist/catalog-service.js.map +1 -0
- package/dist/catalog.js +2 -2
- package/dist/catalog.js.map +1 -1
- package/dist/concurrency.d.ts +4 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +31 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/connectors/api.d.ts +3 -1
- package/dist/connectors/api.d.ts.map +1 -1
- package/dist/connectors/api.js +22 -11
- package/dist/connectors/api.js.map +1 -1
- package/dist/connectors/remote-mcp.d.ts +3 -1
- package/dist/connectors/remote-mcp.d.ts.map +1 -1
- package/dist/connectors/remote-mcp.js +44 -18
- package/dist/connectors/remote-mcp.js.map +1 -1
- package/dist/credential-health.d.ts +0 -22
- package/dist/credential-health.d.ts.map +1 -1
- package/dist/credential-health.js +14 -10
- package/dist/credential-health.js.map +1 -1
- package/dist/credentials.d.ts +3 -2
- package/dist/credentials.d.ts.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/execute.d.ts +9 -8
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +144 -291
- package/dist/execute.js.map +1 -1
- package/dist/executor-result.d.ts +0 -3
- package/dist/executor-result.d.ts.map +1 -1
- package/dist/executor-result.js +2 -2
- package/dist/executor-result.js.map +1 -1
- package/dist/executors/quickjs-child.js +3 -3
- package/dist/executors/quickjs-child.js.map +1 -1
- package/dist/executors/quickjs-protocol.d.ts +4 -1
- package/dist/executors/quickjs-protocol.d.ts.map +1 -1
- package/dist/executors/quickjs-runtime.d.ts.map +1 -1
- package/dist/executors/quickjs-runtime.js +7 -2
- package/dist/executors/quickjs-runtime.js.map +1 -1
- package/dist/executors/quickjs.d.ts.map +1 -1
- package/dist/executors/quickjs.js +4 -1
- package/dist/executors/quickjs.js.map +1 -1
- package/dist/favicon.js +2 -2
- package/dist/favicon.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -17
- package/dist/index.js.map +1 -1
- package/dist/invocation.d.ts +96 -0
- package/dist/invocation.d.ts.map +1 -0
- package/dist/invocation.js +369 -0
- package/dist/invocation.js.map +1 -0
- package/dist/meta-tools.d.ts +11 -86
- package/dist/meta-tools.d.ts.map +1 -1
- package/dist/meta-tools.js +145 -485
- package/dist/meta-tools.js.map +1 -1
- package/dist/operator-ui/generated.d.ts +3 -0
- package/dist/operator-ui/generated.d.ts.map +1 -0
- package/dist/operator-ui/generated.js +5 -0
- package/dist/operator-ui/generated.js.map +1 -0
- package/dist/operator-ui/model.d.ts +94 -0
- package/dist/operator-ui/model.d.ts.map +1 -0
- package/dist/operator-ui/model.js +28 -0
- package/dist/operator-ui/model.js.map +1 -0
- package/dist/registry.d.ts +47 -6
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +356 -35
- package/dist/registry.js.map +1 -1
- package/dist/routes/activity.d.ts +3 -0
- package/dist/routes/activity.d.ts.map +1 -0
- package/dist/routes/activity.js +173 -0
- package/dist/routes/activity.js.map +1 -0
- package/dist/routes/credentials.d.ts +3 -0
- package/dist/routes/credentials.d.ts.map +1 -0
- package/dist/routes/credentials.js +181 -0
- package/dist/routes/credentials.js.map +1 -0
- package/dist/routes/mcp.d.ts +8 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +383 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/oauth.d.ts +4 -0
- package/dist/routes/oauth.d.ts.map +1 -0
- package/dist/routes/oauth.js +268 -0
- package/dist/routes/oauth.js.map +1 -0
- package/dist/routes/shared.d.ts +97 -0
- package/dist/routes/shared.d.ts.map +1 -0
- package/dist/routes/shared.js +199 -0
- package/dist/routes/shared.js.map +1 -0
- package/dist/routes/ui.d.ts +3 -0
- package/dist/routes/ui.d.ts.map +1 -0
- package/dist/routes/ui.js +122 -0
- package/dist/routes/ui.js.map +1 -0
- package/dist/server.d.ts +9 -40
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +67 -1292
- package/dist/server.js.map +1 -1
- package/dist/skills.d.ts +0 -15
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +6 -5
- package/dist/skills.js.map +1 -1
- package/dist/storage/file.d.ts.map +1 -1
- package/dist/storage/file.js +3 -1
- package/dist/storage/file.js.map +1 -1
- package/dist/storage/memory.d.ts.map +1 -1
- package/dist/storage/memory.js +3 -1
- package/dist/storage/memory.js.map +1 -1
- package/dist/toolkits.d.ts +0 -22
- package/dist/toolkits.d.ts.map +1 -1
- package/dist/toolkits.js +2 -2
- package/dist/toolkits.js.map +1 -1
- package/dist/types.d.ts +64 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +3 -93
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +26 -1389
- package/dist/ui.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +15 -8
- package/src/activity.ts +5 -1
- package/src/auth/bearer.ts +4 -4
- package/src/auth/clerk.ts +1 -1
- package/src/call-admission.ts +522 -0
- package/src/catalog-fingerprint.ts +52 -0
- package/src/catalog-limits.ts +11 -0
- package/src/catalog-service.ts +601 -0
- package/src/catalog.ts +2 -2
- package/src/concurrency.ts +39 -0
- package/src/connectors/api.ts +25 -11
- package/src/connectors/remote-mcp.ts +55 -21
- package/src/credential-health.ts +13 -10
- package/src/credentials.ts +2 -2
- package/src/errors.ts +1 -1
- package/src/execute.ts +194 -377
- package/src/executor-result.ts +2 -2
- package/src/executors/quickjs-child.ts +8 -4
- package/src/executors/quickjs-protocol.ts +1 -1
- package/src/executors/quickjs-runtime.ts +5 -1
- package/src/executors/quickjs.ts +11 -8
- package/src/favicon.ts +2 -2
- package/src/index.ts +54 -17
- package/src/invocation.ts +527 -0
- package/src/meta-tools.ts +369 -797
- package/src/operator-ui/browser.css +413 -0
- package/src/operator-ui/browser.ts +1121 -0
- package/src/operator-ui/generated.ts +4 -0
- package/src/operator-ui/model.ts +127 -0
- package/src/registry.ts +489 -44
- package/src/routes/activity.ts +220 -0
- package/src/routes/credentials.ts +266 -0
- package/src/routes/mcp.ts +485 -0
- package/src/routes/oauth.ts +328 -0
- package/src/routes/shared.ts +330 -0
- package/src/routes/ui.ts +153 -0
- package/src/server.ts +70 -1702
- package/src/skills.ts +6 -5
- package/src/storage/file.ts +3 -1
- package/src/storage/memory.ts +3 -1
- package/src/toolkits.ts +2 -2
- package/src/types.ts +70 -2
- package/src/ui.ts +52 -1489
- package/src/version.ts +1 -1
package/dist/execute.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { assertDiscoveryResultSize, discoveryAddresses, discoverySearchLimit, errorResult, jsonResult, } from "./meta-tools.js";
|
|
2
|
+
import { assertDiscoveryResultSize, CatalogService, flatSearchResult, } from "./catalog-service.js";
|
|
3
|
+
import { errorResult, jsonResult } from "./meta-tools.js";
|
|
5
4
|
import { guardExecuteResultValue, MAX_EXECUTE_LOG_CHARS, truncateExecuteText, } from "./executor-result.js";
|
|
6
|
-
import { classifyCallError, ConnectorCallError } from "./errors.js";
|
|
7
5
|
import { ExecutorAdmissionError, isAdmittingExecutor, } from "./executor-admission.js";
|
|
8
6
|
import { unwrapMcpResult } from "./mcp-result.js";
|
|
7
|
+
import { InvocationFailure, InvocationService, } from "./invocation.js";
|
|
9
8
|
/** Keep one model-written program from amplifying into an unbounded fan-out. */
|
|
10
|
-
|
|
9
|
+
const EXECUTE_MAX_HOST_CALLS = 20;
|
|
11
10
|
export const EXECUTE_MAX_BATCH_CALLS = 10;
|
|
12
|
-
|
|
11
|
+
const EXECUTE_HOST_CALL_TIMEOUT_MS = 15_000;
|
|
13
12
|
// deno-fmt-ignore
|
|
14
13
|
const RESERVED = new Set([
|
|
15
14
|
"break",
|
|
@@ -63,9 +62,48 @@ export function sanitizeIdentifier(name) {
|
|
|
63
62
|
id = `${id}_`;
|
|
64
63
|
return id;
|
|
65
64
|
}
|
|
65
|
+
const SANDBOX_RESERVED_NAMES = new Set([
|
|
66
|
+
"connecta",
|
|
67
|
+
"console",
|
|
68
|
+
"arguments",
|
|
69
|
+
"result",
|
|
70
|
+
"undefined",
|
|
71
|
+
"setTimeout",
|
|
72
|
+
"Promise",
|
|
73
|
+
"Error",
|
|
74
|
+
"WorkerEntrypoint",
|
|
75
|
+
"CodeExecutor",
|
|
76
|
+
"__invoke",
|
|
77
|
+
"__namespace",
|
|
78
|
+
"__call",
|
|
79
|
+
"__log",
|
|
80
|
+
"__dispatchers",
|
|
81
|
+
"__connectors",
|
|
82
|
+
"__logs",
|
|
83
|
+
"__CODEMODE_BINARY_TAG",
|
|
84
|
+
"__bytesToBase64",
|
|
85
|
+
"__base64ToBytes",
|
|
86
|
+
"__encodeCodemodeValue",
|
|
87
|
+
"__decodeCodemodeValue",
|
|
88
|
+
"__stringifyForCodemode",
|
|
89
|
+
"__parseForCodemode",
|
|
90
|
+
]);
|
|
66
91
|
function msg(err) {
|
|
67
92
|
return err instanceof Error ? err.message : String(err);
|
|
68
93
|
}
|
|
94
|
+
function lazyNamespacePrelude(connectors) {
|
|
95
|
+
const declarations = connectors
|
|
96
|
+
.map(({ id, namespace }) => `globalThis[${JSON.stringify(namespace)}] = __makeConnectaNamespace(${JSON.stringify(id)});`)
|
|
97
|
+
.join("\n");
|
|
98
|
+
return `(() => {
|
|
99
|
+
const __makeConnectaNamespace = (connectorId) => Object.freeze(new Proxy(Object.create(null), {
|
|
100
|
+
get: (_target, toolName) => typeof toolName === "string"
|
|
101
|
+
? (args) => connecta.__callNamespace(connectorId, toolName, args)
|
|
102
|
+
: undefined
|
|
103
|
+
}));
|
|
104
|
+
${declarations}
|
|
105
|
+
})();`;
|
|
106
|
+
}
|
|
69
107
|
/**
|
|
70
108
|
* Unwrap an MCP CallToolResult so sandbox code sees plain values:
|
|
71
109
|
* isError throws (a real exception the code can catch), structuredContent
|
|
@@ -76,307 +114,115 @@ export function unwrapForSandbox(kind, result) {
|
|
|
76
114
|
return unwrapMcpResult(kind, result);
|
|
77
115
|
}
|
|
78
116
|
/**
|
|
79
|
-
* Expose
|
|
80
|
-
*
|
|
81
|
-
*
|
|
117
|
+
* Expose one fixed host provider plus trusted sandbox setup that creates a
|
|
118
|
+
* lazy proxy global per connector. No connector catalog is touched until code
|
|
119
|
+
* calls that namespace or explicitly asks search/describe.
|
|
82
120
|
*/
|
|
83
121
|
export async function buildSandboxProviders(registry, baseUrl, logger, activity, limits = {}) {
|
|
84
|
-
const providers = [];
|
|
85
122
|
// All host calls made by one execute_code invocation share a downstream
|
|
86
123
|
// connection, while a later invocation receives a fresh request scope.
|
|
87
124
|
const requestScope = {};
|
|
125
|
+
const catalog = new CatalogService(registry, baseUrl, {
|
|
126
|
+
requestScope,
|
|
127
|
+
...(limits.discoveryConcurrency !== undefined
|
|
128
|
+
? { concurrency: limits.discoveryConcurrency }
|
|
129
|
+
: {}),
|
|
130
|
+
});
|
|
131
|
+
const invocation = new InvocationService(registry, catalog, activity);
|
|
88
132
|
const maxHostCalls = Math.max(1, Math.trunc(limits.maxHostCalls ?? EXECUTE_MAX_HOST_CALLS));
|
|
89
133
|
const hostCallTimeoutMs = Math.max(1, Math.trunc(limits.hostCallTimeoutMs ?? EXECUTE_HOST_CALL_TIMEOUT_MS));
|
|
90
134
|
let hostCalls = 0;
|
|
91
|
-
// Reserve the `connecta` namespace plus every global the sandbox bridge
|
|
92
|
-
// installs (see setupScript/installBridge in quickjs.ts) — a connector id
|
|
93
|
-
// sanitizing to one of these would clobber log capture or the call bridge.
|
|
94
|
-
const used = new Set([
|
|
95
|
-
"connecta",
|
|
96
|
-
"console",
|
|
97
|
-
"__invoke",
|
|
98
|
-
"__namespace",
|
|
99
|
-
"__call",
|
|
100
|
-
"__log",
|
|
101
|
-
]);
|
|
102
135
|
const connectors = registry.listConnectors();
|
|
103
|
-
const
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
136
|
+
const namespaces = [];
|
|
137
|
+
const namespaceOwners = new Map();
|
|
138
|
+
for (const connector of connectors) {
|
|
139
|
+
const namespace = sanitizeIdentifier(connector.id);
|
|
140
|
+
const owner = namespaceOwners.get(namespace);
|
|
141
|
+
const problem = SANDBOX_RESERVED_NAMES.has(namespace)
|
|
142
|
+
? `Connector "${connector.id}" sanitizes to reserved execute_code namespace "${namespace}". Rename or exclude the connector before using execute_code.`
|
|
143
|
+
: owner
|
|
144
|
+
? `Connector ids "${owner}" and "${connector.id}" both sanitize to execute_code namespace "${namespace}". Rename or exclude one connector before using execute_code.`
|
|
145
|
+
: undefined;
|
|
146
|
+
if (problem) {
|
|
147
|
+
logger.warn(`[connecta] execute_code: ${problem}`);
|
|
148
|
+
throw new Error(problem);
|
|
149
|
+
}
|
|
150
|
+
namespaceOwners.set(namespace, connector.id);
|
|
151
|
+
namespaces.push({ id: connector.id, namespace });
|
|
109
152
|
}
|
|
110
|
-
const
|
|
153
|
+
const invocationContext = () => ({
|
|
154
|
+
source: "execute_code",
|
|
155
|
+
timeoutMs: hostCallTimeoutMs,
|
|
156
|
+
...(limits.signal !== undefined ? { requestSignal: limits.signal } : {}),
|
|
157
|
+
unwrapResult: true,
|
|
158
|
+
beforeDispatch: () => {
|
|
159
|
+
hostCalls++;
|
|
160
|
+
if (hostCalls > maxHostCalls) {
|
|
161
|
+
throw new Error(`execute_code host-call budget exceeded (${maxHostCalls} calls maximum)`);
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
});
|
|
111
165
|
const callAddress = async (address, args) => {
|
|
112
|
-
const
|
|
113
|
-
if (!
|
|
114
|
-
throw new
|
|
115
|
-
|
|
116
|
-
.get(resolved.connector.id)
|
|
117
|
-
?.find((tool) => tool.name === resolved.toolName);
|
|
118
|
-
if (!definition) {
|
|
119
|
-
throw new Error(`Unknown tool "${resolved.toolName}" on connector "${resolved.connector.id}"`);
|
|
120
|
-
}
|
|
121
|
-
if (definition.annotations?.readOnlyHint !== true ||
|
|
122
|
-
definition.annotations?.destructiveHint === true) {
|
|
123
|
-
throw new Error(`Tool "${String(address)}" is not explicitly read-only and cannot run inside execute_code. Invoke it through call_destructive_tool so the MCP host can request explicit approval.`);
|
|
124
|
-
}
|
|
125
|
-
hostCalls++;
|
|
126
|
-
if (hostCalls > maxHostCalls) {
|
|
127
|
-
throw new Error(`execute_code host-call budget exceeded (${maxHostCalls} calls maximum)`);
|
|
128
|
-
}
|
|
129
|
-
if (limits.signal?.aborted) {
|
|
130
|
-
throw new Error("execute_code host call cancelled");
|
|
131
|
-
}
|
|
132
|
-
const controller = new AbortController();
|
|
133
|
-
const cancel = () => controller.abort(limits.signal?.reason);
|
|
134
|
-
limits.signal?.addEventListener("abort", cancel, { once: true });
|
|
135
|
-
let timer;
|
|
136
|
-
let rejectCancelled;
|
|
137
|
-
const cancelled = new Promise((_, reject) => {
|
|
138
|
-
rejectCancelled = reject;
|
|
139
|
-
});
|
|
140
|
-
const onAbort = () => {
|
|
141
|
-
rejectCancelled(controller.signal.reason instanceof Error
|
|
142
|
-
? controller.signal.reason
|
|
143
|
-
: new Error("execute_code host call cancelled"));
|
|
144
|
-
};
|
|
145
|
-
controller.signal.addEventListener("abort", onAbort, { once: true });
|
|
146
|
-
const ctx = registry.contextFor(resolved.connector.id, baseUrl, requestScope, { signal: controller.signal, timeoutMs: hostCallTimeoutMs });
|
|
147
|
-
const started = Date.now();
|
|
148
|
-
try {
|
|
149
|
-
timer = setTimeout(() => {
|
|
150
|
-
controller.abort(new ConnectorCallError("timeout", `Tool call timed out after ${hostCallTimeoutMs}ms`));
|
|
151
|
-
}, hostCallTimeoutMs);
|
|
152
|
-
const pending = resolved.connector.callTool(resolved.toolName, args ?? {}, ctx);
|
|
153
|
-
const value = unwrapForSandbox(resolved.connector.kind, await Promise.race([pending, cancelled]));
|
|
154
|
-
registry.recordSuccess(resolved.connector.id, Date.now() - started);
|
|
155
|
-
recordToolActivity(activity, {
|
|
156
|
-
connectorId: resolved.connector.id,
|
|
157
|
-
toolName: resolved.toolName,
|
|
158
|
-
address: `${resolved.connector.id}.${resolved.toolName}`,
|
|
159
|
-
source: "execute_code",
|
|
160
|
-
outcome: "success",
|
|
161
|
-
durationMs: Date.now() - started,
|
|
162
|
-
attempts: 1,
|
|
163
|
-
});
|
|
164
|
-
return value;
|
|
165
|
-
}
|
|
166
|
-
catch (err) {
|
|
167
|
-
registry.recordFailure(resolved.connector.id, Date.now() - started, err);
|
|
168
|
-
const details = classifyCallError(err);
|
|
169
|
-
recordToolActivity(activity, {
|
|
170
|
-
connectorId: resolved.connector.id,
|
|
171
|
-
toolName: resolved.toolName,
|
|
172
|
-
address: `${resolved.connector.id}.${resolved.toolName}`,
|
|
173
|
-
source: "execute_code",
|
|
174
|
-
outcome: details.code === "timeout" ? "timeout" : "error",
|
|
175
|
-
durationMs: Date.now() - started,
|
|
176
|
-
attempts: 1,
|
|
177
|
-
errorCode: details.code,
|
|
178
|
-
});
|
|
179
|
-
throw err;
|
|
180
|
-
}
|
|
181
|
-
finally {
|
|
182
|
-
if (timer)
|
|
183
|
-
clearTimeout(timer);
|
|
184
|
-
controller.signal.removeEventListener("abort", onAbort);
|
|
185
|
-
limits.signal?.removeEventListener("abort", cancel);
|
|
186
|
-
}
|
|
166
|
+
const outcome = await invocation.invoke(String(address), args ?? {}, invocationContext());
|
|
167
|
+
if (!outcome.ok)
|
|
168
|
+
throw new InvocationFailure(outcome.error);
|
|
169
|
+
return outcome.value;
|
|
187
170
|
};
|
|
188
|
-
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
const details = classifyCallError(loadedTools.reason, "catalog_lookup_failed");
|
|
207
|
-
logger.warn(`[connecta] execute_code: connector "${connector.id}" skipped (${details.code}): ${msg(loadedTools.reason)}`);
|
|
208
|
-
continue;
|
|
209
|
-
}
|
|
210
|
-
const tools = loadedTools.value;
|
|
211
|
-
catalogs.set(connector.id, tools);
|
|
212
|
-
// Null-prototype map: tools named `toString`/`hasOwnProperty`/`constructor`
|
|
213
|
-
// are legitimate and must not collide with inherited Object members.
|
|
214
|
-
const fns = Object.create(null);
|
|
215
|
-
for (const t of tools) {
|
|
216
|
-
if (t.annotations?.readOnlyHint !== true ||
|
|
217
|
-
t.annotations?.destructiveHint === true) {
|
|
218
|
-
continue;
|
|
219
|
-
}
|
|
220
|
-
const key = sanitizeIdentifier(t.name);
|
|
221
|
-
if (Object.hasOwn(fns, key)) {
|
|
222
|
-
logger.warn(`[connecta] execute_code: tool "${connector.id}.${t.name}" sanitizes to duplicate "${key}" — skipped`);
|
|
223
|
-
continue;
|
|
224
|
-
}
|
|
225
|
-
// `await` (not a bare promise return) so a synchronous throw inside
|
|
226
|
-
// callAddress never sits handler-less for the thenable-adoption
|
|
227
|
-
// microtask — workerd reports that gap as an unhandled rejection.
|
|
228
|
-
fns[key] = async (args) => await callAddress(`${connector.id}.${t.name}`, args);
|
|
229
|
-
}
|
|
230
|
-
if (Object.keys(fns).length > 0) {
|
|
231
|
-
providers.push({ name: ns, fns });
|
|
232
|
-
used.add(ns);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
providers.push({
|
|
236
|
-
name: "connecta",
|
|
237
|
-
fns: {
|
|
238
|
-
call: callAddress,
|
|
239
|
-
batch: async (calls) => {
|
|
240
|
-
if (!Array.isArray(calls))
|
|
241
|
-
throw new Error("calls must be an array");
|
|
242
|
-
if (calls.length > EXECUTE_MAX_BATCH_CALLS) {
|
|
243
|
-
throw new Error(`connecta.batch accepts at most ${EXECUTE_MAX_BATCH_CALLS} calls`);
|
|
244
|
-
}
|
|
245
|
-
return await Promise.all(calls.map(async (call) => {
|
|
246
|
-
const item = call;
|
|
247
|
-
try {
|
|
248
|
-
return {
|
|
249
|
-
address: String(item.address),
|
|
250
|
-
ok: true,
|
|
251
|
-
data: await callAddress(item.address, item.args),
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
catch (err) {
|
|
255
|
-
return {
|
|
256
|
-
address: String(item.address),
|
|
257
|
-
ok: false,
|
|
258
|
-
error: msg(err),
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
}));
|
|
262
|
-
},
|
|
263
|
-
search: async (raw) => {
|
|
264
|
-
const args = (raw ?? {});
|
|
265
|
-
const matches = [];
|
|
266
|
-
let matchMode = "all";
|
|
267
|
-
const collectMatches = (mode) => {
|
|
268
|
-
matches.length = 0;
|
|
269
|
-
let orderBase = 0;
|
|
270
|
-
for (const connector of connectors) {
|
|
271
|
-
if (args.connector && connector.id !== args.connector)
|
|
272
|
-
continue;
|
|
273
|
-
const tools = catalogs.get(connector.id);
|
|
274
|
-
if (!tools)
|
|
275
|
-
continue;
|
|
276
|
-
for (const ranked of rankTools(tools, args.query ?? "", mode)) {
|
|
277
|
-
matches.push({
|
|
278
|
-
connector: connector.id,
|
|
279
|
-
tool: ranked.tool,
|
|
280
|
-
score: ranked.score,
|
|
281
|
-
order: orderBase + ranked.order,
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
orderBase += tools.length;
|
|
171
|
+
const callNamespace = async (connectorId, toolAlias, args) => {
|
|
172
|
+
const outcome = await invocation.invokeToolAlias(String(connectorId), String(toolAlias), sanitizeIdentifier, args ?? {}, invocationContext());
|
|
173
|
+
if (!outcome.ok)
|
|
174
|
+
throw new InvocationFailure(outcome.error);
|
|
175
|
+
return outcome.value;
|
|
176
|
+
};
|
|
177
|
+
return [
|
|
178
|
+
{
|
|
179
|
+
name: "connecta",
|
|
180
|
+
prelude: lazyNamespacePrelude(namespaces),
|
|
181
|
+
fns: {
|
|
182
|
+
__callNamespace: callNamespace,
|
|
183
|
+
call: callAddress,
|
|
184
|
+
batch: async (calls) => {
|
|
185
|
+
if (!Array.isArray(calls))
|
|
186
|
+
throw new Error("calls must be an array");
|
|
187
|
+
if (calls.length > EXECUTE_MAX_BATCH_CALLS) {
|
|
188
|
+
throw new Error(`connecta.batch accepts at most ${EXECUTE_MAX_BATCH_CALLS} calls`);
|
|
285
189
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
const limit = discoverySearchLimit(args.limit);
|
|
295
|
-
const page = matches.slice(offset, offset + limit).map((match) => {
|
|
296
|
-
const input = match.tool.inputSchema ?? { type: "object" };
|
|
297
|
-
return {
|
|
298
|
-
name: match.tool.name,
|
|
299
|
-
address: `${match.connector}.${match.tool.name}`,
|
|
300
|
-
description: summarizeDescription(match.tool.description, args.fullDescriptions === true),
|
|
301
|
-
...(args.includeSchemas
|
|
302
|
-
? {
|
|
303
|
-
inputSchema: args.includeSchemas === "json"
|
|
304
|
-
? input
|
|
305
|
-
: compactSchema(input),
|
|
306
|
-
}
|
|
307
|
-
: {}),
|
|
308
|
-
...(args.includeSchemas && match.tool.outputSchema
|
|
309
|
-
? {
|
|
310
|
-
outputSchema: args.includeSchemas === "json"
|
|
311
|
-
? match.tool.outputSchema
|
|
312
|
-
: compactSchema(match.tool.outputSchema),
|
|
313
|
-
}
|
|
314
|
-
: {}),
|
|
315
|
-
...(match.tool.annotations
|
|
316
|
-
? { annotations: match.tool.annotations }
|
|
317
|
-
: {}),
|
|
318
|
-
};
|
|
319
|
-
});
|
|
320
|
-
const nextOffset = offset + page.length < matches.length
|
|
321
|
-
? offset + page.length
|
|
322
|
-
: undefined;
|
|
323
|
-
const result = {
|
|
324
|
-
tools: page,
|
|
325
|
-
total: matches.length,
|
|
326
|
-
offset,
|
|
327
|
-
limit,
|
|
328
|
-
hasMore: nextOffset !== undefined,
|
|
329
|
-
...(nextOffset !== undefined ? { nextOffset } : {}),
|
|
330
|
-
...(matchMode === "partial" && matches.length > 0
|
|
331
|
-
? { matchMode }
|
|
332
|
-
: {}),
|
|
333
|
-
};
|
|
334
|
-
assertDiscoveryResultSize(result, "Request a smaller limit, omit fullDescriptions, or use compact schemas.");
|
|
335
|
-
return result;
|
|
336
|
-
},
|
|
337
|
-
describe: async (raw) => {
|
|
338
|
-
const args = (raw ?? {});
|
|
339
|
-
const addresses = discoveryAddresses(args.addresses);
|
|
340
|
-
const format = args.format ?? "compact";
|
|
341
|
-
const result = {
|
|
342
|
-
tools: addresses.map((rawAddress) => {
|
|
343
|
-
const address = String(rawAddress);
|
|
344
|
-
const resolved = registry.resolveAddress(address);
|
|
345
|
-
if (!resolved) {
|
|
346
|
-
return { address, error: `Unknown address "${address}"` };
|
|
190
|
+
return await Promise.all(calls.map(async (call) => {
|
|
191
|
+
const item = call;
|
|
192
|
+
try {
|
|
193
|
+
return {
|
|
194
|
+
address: String(item.address),
|
|
195
|
+
ok: true,
|
|
196
|
+
data: await callAddress(item.address, item.args),
|
|
197
|
+
};
|
|
347
198
|
}
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
199
|
+
catch (err) {
|
|
200
|
+
return {
|
|
201
|
+
address: String(item.address),
|
|
202
|
+
ok: false,
|
|
203
|
+
error: msg(err),
|
|
204
|
+
};
|
|
353
205
|
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
};
|
|
369
|
-
}),
|
|
370
|
-
};
|
|
371
|
-
assertDiscoveryResultSize(result, 'Split the address list or use format: "compact".');
|
|
372
|
-
return result;
|
|
206
|
+
}));
|
|
207
|
+
},
|
|
208
|
+
search: async (raw) => {
|
|
209
|
+
const args = (raw ?? {});
|
|
210
|
+
const result = flatSearchResult(await catalog.search(args));
|
|
211
|
+
assertDiscoveryResultSize(result, "Request a smaller limit, omit fullDescriptions, or use compact schemas.");
|
|
212
|
+
return result;
|
|
213
|
+
},
|
|
214
|
+
describe: async (raw) => {
|
|
215
|
+
const args = (raw ?? {});
|
|
216
|
+
const result = { tools: await catalog.describe(args) };
|
|
217
|
+
assertDiscoveryResultSize(result, 'Split the address list or use format: "compact".');
|
|
218
|
+
return result;
|
|
219
|
+
},
|
|
373
220
|
},
|
|
374
221
|
},
|
|
375
|
-
|
|
376
|
-
return providers;
|
|
222
|
+
];
|
|
377
223
|
}
|
|
378
224
|
/** The execute_code handler. Exported for direct testing. */
|
|
379
|
-
export function createExecuteTool(registry, baseUrl, executor, logger, activity) {
|
|
225
|
+
export function createExecuteTool(registry, baseUrl, executor, logger, activity, config = {}) {
|
|
380
226
|
return async ({ code }, options = {}) => {
|
|
381
227
|
const controller = new AbortController();
|
|
382
228
|
const forwardAbort = () => controller.abort(options.signal?.reason);
|
|
@@ -398,7 +244,12 @@ export function createExecuteTool(registry, baseUrl, executor, logger, activity)
|
|
|
398
244
|
});
|
|
399
245
|
}
|
|
400
246
|
}
|
|
401
|
-
const providers = await buildSandboxProviders(registry, baseUrl, logger, activity, {
|
|
247
|
+
const providers = await buildSandboxProviders(registry, baseUrl, logger, activity, {
|
|
248
|
+
signal: controller.signal,
|
|
249
|
+
...(config.discoveryConcurrency !== undefined
|
|
250
|
+
? { discoveryConcurrency: config.discoveryConcurrency }
|
|
251
|
+
: {}),
|
|
252
|
+
});
|
|
402
253
|
if (controller.signal.aborted) {
|
|
403
254
|
throw new ExecutorAdmissionError("executor_cancelled", "Execution was cancelled during sandbox setup.");
|
|
404
255
|
}
|
|
@@ -463,7 +314,7 @@ const EXECUTE_DESC = `Use for dependent multi-step calls, loops, joins, branchin
|
|
|
463
314
|
Write an async arrow function. It runs with NO network, filesystem, timers, or imports — the only capabilities are:
|
|
464
315
|
- One global per connector: every address <connectorId>.<toolName> from search_tools is callable as <connectorId>.<toolName>(args) with a single args object matching the schema from describe_tools. Names are sanitized to JS identifiers: characters outside [A-Za-z0-9_$] become "_" (e.g. my-service.get.thing → my_service.get_thing), leading digits get "_" prefixed, reserved words get "_" appended.
|
|
465
316
|
- connecta.call(address, args) and connecta.batch(calls) — call raw addresses.
|
|
466
|
-
- connecta.search(args) and connecta.describe(args) —
|
|
317
|
+
- connecta.search(args) and connecta.describe(args) — load and inspect request-local catalogs on demand.
|
|
467
318
|
- console.log(...) — captured and returned alongside the result.
|
|
468
319
|
|
|
469
320
|
Tool calls return plain values (MCP text content is JSON-parsed when possible) and throw on downstream errors — use try/catch to handle them. Return a JSON-serializable value; large results are truncated, so reduce data in code instead of returning raw payloads.
|
|
@@ -472,7 +323,9 @@ Workflow: search_tools → describe_tools (schemas) → execute_code. Plain Java
|
|
|
472
323
|
Example: async () => { const r = await crm.search({ query: "roadmap" }); return r.results.map((item) => item.title); }`;
|
|
473
324
|
/** Register the execute_code meta-tool. Only called when an executor is configured. */
|
|
474
325
|
export function registerExecuteTool(server, registry, ctx) {
|
|
475
|
-
const handler = createExecuteTool(registry, ctx.baseUrl, ctx.executor, ctx.logger, ctx.activity
|
|
326
|
+
const handler = createExecuteTool(registry, ctx.baseUrl, ctx.executor, ctx.logger, ctx.activity, ctx.discoveryConcurrency !== undefined
|
|
327
|
+
? { discoveryConcurrency: ctx.discoveryConcurrency }
|
|
328
|
+
: {});
|
|
476
329
|
server.registerTool("execute_code", {
|
|
477
330
|
description: EXECUTE_DESC,
|
|
478
331
|
inputSchema: {
|
package/dist/execute.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { ExecuteResult } from "./types.js";
|
|
2
|
-
/** ~6k tokens. Sandbox code should filter data down before returning. */
|
|
3
|
-
export declare const MAX_EXECUTE_RESULT_CHARS = 24000;
|
|
4
2
|
export declare const MAX_EXECUTE_LOG_CHARS = 4000;
|
|
5
|
-
export declare function serializeExecuteValue(value: unknown): string;
|
|
6
3
|
export declare function guardExecuteResultValue(value: unknown): unknown;
|
|
7
4
|
export declare function truncateExecuteText(text: string, max: number): string;
|
|
8
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-result.d.ts","sourceRoot":"","sources":["../src/executor-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"executor-result.d.ts","sourceRoot":"","sources":["../src/executor-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAW3C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS/D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,aAAa,GACrB,aAAa,CAyBf"}
|
package/dist/executor-result.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/** ~6k tokens. Sandbox code should filter data down before returning. */
|
|
2
|
-
|
|
2
|
+
const MAX_EXECUTE_RESULT_CHARS = 24_000;
|
|
3
3
|
export const MAX_EXECUTE_LOG_CHARS = 4_000;
|
|
4
4
|
function msg(err) {
|
|
5
5
|
return err instanceof Error ? err.message : String(err);
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
function serializeExecuteValue(value) {
|
|
8
8
|
const serialized = JSON.stringify(value, null, 2);
|
|
9
9
|
return serialized === undefined ? String(value) : serialized;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-result.js","sourceRoot":"","sources":["../src/executor-result.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,MAAM,
|
|
1
|
+
{"version":3,"file":"executor-result.js","sourceRoot":"","sources":["../src/executor-result.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,SAAS,GAAG,CAAC,GAAY;IACvB,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClD,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,MAAM,IAAI,wBAAwB;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO;QACL,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC;QAChD,UAAU,EAAE,IAAI,CAAC,MAAM;QACvB,IAAI,EAAE,yEAAyE;KAChF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,GAAW;IAC3D,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,oBAAoB,IAAI,CAAC,MAAM,0FAA0F,CAAC;AACxJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAC9C,OAAsB;IAEtB,uEAAuE;IACvE,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,IAAI,GACR,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,OAAO;YACL,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,oCAAoC,GAAG,CAAC,GAAG,CAAC,EAAE;YACrD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -16,7 +16,7 @@ function send(message) {
|
|
|
16
16
|
stringifyBounded(message, "QuickJS child IPC envelope");
|
|
17
17
|
process.send(message);
|
|
18
18
|
}
|
|
19
|
-
function provider(name, jobId) {
|
|
19
|
+
function provider(name, jobId, prelude) {
|
|
20
20
|
const functions = new Proxy(Object.create(null), {
|
|
21
21
|
get: (_target, key) => {
|
|
22
22
|
if (typeof key !== "string")
|
|
@@ -44,7 +44,7 @@ function provider(name, jobId) {
|
|
|
44
44
|
? { configurable: true, enumerable: false }
|
|
45
45
|
: undefined,
|
|
46
46
|
});
|
|
47
|
-
return { name, fns: functions };
|
|
47
|
+
return { name, fns: functions, ...(prelude ? { prelude } : {}) };
|
|
48
48
|
}
|
|
49
49
|
function fixedTransportFailure(message) {
|
|
50
50
|
return {
|
|
@@ -60,7 +60,7 @@ async function run(payload) {
|
|
|
60
60
|
}
|
|
61
61
|
activeJobId = payload.id;
|
|
62
62
|
try {
|
|
63
|
-
const providers = payload.
|
|
63
|
+
const providers = payload.providers.map(({ name, prelude }) => provider(name, payload.id, prelude));
|
|
64
64
|
const raw = await executeQuickJs(payload.code, providers, payload.options);
|
|
65
65
|
const prepared = {
|
|
66
66
|
outcome: prepareExecuteResultForTransport(raw),
|