@buda-ai/connector 0.1.4 → 0.1.5
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/dist/cli.js +27 -16
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1081,6 +1081,7 @@ var BASE_CONNECTOR_CAPABILITIES = [
|
|
|
1081
1081
|
"git"
|
|
1082
1082
|
];
|
|
1083
1083
|
var browserAvailabilityWarningLogged = false;
|
|
1084
|
+
var getBrowserAvailabilityWarning = (browserAvailability) => browserAvailability.available ? null : `${browserAvailability.error} Browser automation is disabled, but shell, filesystem, Git, and coding capabilities remain available.`;
|
|
1084
1085
|
var getAdvertisedCapabilities = (browserAvailability = resolveBrowserAvailability(), deviceToken) => [
|
|
1085
1086
|
...BASE_CONNECTOR_CAPABILITIES,
|
|
1086
1087
|
...browserAvailability.available ? ["browser"] : [],
|
|
@@ -1089,9 +1090,10 @@ var getAdvertisedCapabilities = (browserAvailability = resolveBrowserAvailabilit
|
|
|
1089
1090
|
async function buildPayload(config, extra) {
|
|
1090
1091
|
const bundle = await readBundledManifest();
|
|
1091
1092
|
const browserAvailability = resolveBrowserAvailability();
|
|
1092
|
-
|
|
1093
|
+
const browserWarning = getBrowserAvailabilityWarning(browserAvailability);
|
|
1094
|
+
if (browserWarning && !browserAvailabilityWarningLogged) {
|
|
1093
1095
|
browserAvailabilityWarningLogged = true;
|
|
1094
|
-
await writeLog("warn",
|
|
1096
|
+
await writeLog("warn", browserWarning);
|
|
1095
1097
|
}
|
|
1096
1098
|
return {
|
|
1097
1099
|
connectorId: config.connectorId,
|
|
@@ -2113,6 +2115,7 @@ var isAlreadyExists3 = (error) => error instanceof Error && "code" in error && e
|
|
|
2113
2115
|
// src/relay.ts
|
|
2114
2116
|
var RELAY_PING_INTERVAL_MS = 2e4;
|
|
2115
2117
|
var RELAY_PONG_TIMEOUT_MS = 1e4;
|
|
2118
|
+
var RELAY_HANDSHAKE_TIMEOUT_MS = 1e4;
|
|
2116
2119
|
var RELAY_RECONNECT_MAX_MS = 3e4;
|
|
2117
2120
|
var RELAY_RECONNECT_JITTER = 0.2;
|
|
2118
2121
|
var RELAY_FAST_RECONNECT_MS = 500;
|
|
@@ -2120,6 +2123,22 @@ var CONNECTOR_SOCKET_REPLACED_CLOSE_CODE = 4001;
|
|
|
2120
2123
|
var CONNECTOR_SOCKET_REVOKED_CLOSE_CODE = 4003;
|
|
2121
2124
|
var shouldReconnectConnectorRelay = (closeCode) => closeCode !== CONNECTOR_SOCKET_REPLACED_CLOSE_CODE && closeCode !== CONNECTOR_SOCKET_REVOKED_CLOSE_CODE;
|
|
2122
2125
|
var getConnectorRelayReconnectBaseDelay = (hadOpenConnection, backoffMs) => hadOpenConnection ? RELAY_FAST_RECONNECT_MS : backoffMs;
|
|
2126
|
+
var formatConnectorRelayError = (error, depth = 0) => {
|
|
2127
|
+
if (depth >= 3) return String(error);
|
|
2128
|
+
const details = [String(error)];
|
|
2129
|
+
if (error && typeof error === "object") {
|
|
2130
|
+
const candidate = error;
|
|
2131
|
+
if (candidate.cause !== void 0) {
|
|
2132
|
+
details.push(`cause=${formatConnectorRelayError(candidate.cause, depth + 1)}`);
|
|
2133
|
+
}
|
|
2134
|
+
if (Array.isArray(candidate.errors) && candidate.errors.length > 0) {
|
|
2135
|
+
details.push(
|
|
2136
|
+
`errors=[${candidate.errors.map((nestedError) => formatConnectorRelayError(nestedError, depth + 1)).join(", ")}]`
|
|
2137
|
+
);
|
|
2138
|
+
}
|
|
2139
|
+
}
|
|
2140
|
+
return [...new Set(details.filter(Boolean))].join(" ") || "Unknown relay error";
|
|
2141
|
+
};
|
|
2123
2142
|
function startConnectorRelay(config, bunnyDaemon, relayProtocol, workspaceRegistry, launchConfig) {
|
|
2124
2143
|
let socket = null;
|
|
2125
2144
|
let reconnectTimer = null;
|
|
@@ -2161,10 +2180,7 @@ function startConnectorRelay(config, bunnyDaemon, relayProtocol, workspaceRegist
|
|
|
2161
2180
|
try {
|
|
2162
2181
|
connect();
|
|
2163
2182
|
} catch (error) {
|
|
2164
|
-
void writeLog(
|
|
2165
|
-
"warn",
|
|
2166
|
-
`relay reconnect threw: ${error instanceof Error ? error.message : error}`
|
|
2167
|
-
);
|
|
2183
|
+
void writeLog("warn", `relay reconnect threw: ${formatConnectorRelayError(error)}`);
|
|
2168
2184
|
scheduleReconnect("connect-throw");
|
|
2169
2185
|
}
|
|
2170
2186
|
}, delay);
|
|
@@ -2180,7 +2196,8 @@ function startConnectorRelay(config, bunnyDaemon, relayProtocol, workspaceRegist
|
|
|
2180
2196
|
headers["X-Buda-Connector-Id"] = config.connectorId;
|
|
2181
2197
|
if (config.deviceToken) headers["X-Buda-Connector-Device-Token"] = config.deviceToken;
|
|
2182
2198
|
const ws = new WebSocket(relayUrl, {
|
|
2183
|
-
headers: Object.keys(headers).length > 0 ? headers : void 0
|
|
2199
|
+
headers: Object.keys(headers).length > 0 ? headers : void 0,
|
|
2200
|
+
handshakeTimeout: RELAY_HANDSHAKE_TIMEOUT_MS
|
|
2184
2201
|
});
|
|
2185
2202
|
socket = ws;
|
|
2186
2203
|
const inflight = /* @__PURE__ */ new Map();
|
|
@@ -2201,10 +2218,7 @@ function startConnectorRelay(config, bunnyDaemon, relayProtocol, workspaceRegist
|
|
|
2201
2218
|
try {
|
|
2202
2219
|
ws.ping();
|
|
2203
2220
|
} catch (error) {
|
|
2204
|
-
void writeLog(
|
|
2205
|
-
"warn",
|
|
2206
|
-
`relay ping failed: ${error instanceof Error ? error.message : error}`
|
|
2207
|
-
);
|
|
2221
|
+
void writeLog("warn", `relay ping failed: ${formatConnectorRelayError(error)}`);
|
|
2208
2222
|
ws.terminate();
|
|
2209
2223
|
return;
|
|
2210
2224
|
}
|
|
@@ -2247,7 +2261,7 @@ function startConnectorRelay(config, bunnyDaemon, relayProtocol, workspaceRegist
|
|
|
2247
2261
|
scheduleReconnect("close");
|
|
2248
2262
|
});
|
|
2249
2263
|
ws.on("error", (error) => {
|
|
2250
|
-
void writeLog("warn", `relay error: ${error
|
|
2264
|
+
void writeLog("warn", `relay error: ${formatConnectorRelayError(error)}`);
|
|
2251
2265
|
detach();
|
|
2252
2266
|
scheduleReconnect("error");
|
|
2253
2267
|
});
|
|
@@ -2255,10 +2269,7 @@ function startConnectorRelay(config, bunnyDaemon, relayProtocol, workspaceRegist
|
|
|
2255
2269
|
try {
|
|
2256
2270
|
connect();
|
|
2257
2271
|
} catch (error) {
|
|
2258
|
-
void writeLog(
|
|
2259
|
-
"warn",
|
|
2260
|
-
`relay initial connect threw: ${error instanceof Error ? error.message : error}`
|
|
2261
|
-
);
|
|
2272
|
+
void writeLog("warn", `relay initial connect threw: ${formatConnectorRelayError(error)}`);
|
|
2262
2273
|
scheduleReconnect("connect-throw");
|
|
2263
2274
|
}
|
|
2264
2275
|
return {
|