@cloudflare/sandbox 0.7.14 → 0.7.15
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/index.d.ts +1 -1
- package/dist/index.js +56 -16
- package/dist/index.js.map +1 -1
- package/dist/openai/index.d.ts +1 -1
- package/dist/opencode/index.d.ts +1 -1
- package/dist/{sandbox-CUee1P3v.d.ts → sandbox-DKzgVy6K.d.ts} +6 -1
- package/dist/sandbox-DKzgVy6K.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/sandbox-CUee1P3v.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as DirectoryBackup, A as DesktopStopResponse, At as WaitForPortOptions, B as ExecuteResponse, Bt as CreateContextOptions, C as ClickOptions, Ct as ProcessStartResult, D as DesktopStartOptions, Dt as SessionOptions, E as DesktopClient, Et as SandboxOptions, F as ScreenshotRegion, Ft as ExecuteRequest, G as HttpClientOptions, H as BaseApiResponse, Ht as ExecutionResult, I as ScreenshotResponse, It as ExposePortRequest, J as SessionRequest, K as RequestConfig, L as ScrollDirection, Lt as StartProcessRequest, M as ScreenSizeResponse, Mt as isExecResult, N as ScreenshotBytesResponse, Nt as isProcess, O as DesktopStartResponse, Ot as StreamOptions, P as ScreenshotOptions, Pt as isProcessStatus, Q as BucketProvider, R as TypeOptions, Rt as PtyOptions, S as WriteFileRequest, St as ProcessOptions, T as Desktop, Tt as RestoreBackupResult, U as ContainerStub, Ut as RunCodeOptions, V as BackupClient, Vt as Execution, W as ErrorResponse, X as BaseExecOptions, Y as BackupOptions, Z as BucketCredentials, _ as GitClient, _t as ProcessCleanupResult, a as CreateSessionRequest, at as FileMetadata, b as MkdirRequest, bt as ProcessListResult, c as DeleteSessionResponse, ct as GitCheckoutResult, d as ProcessClient, dt as LogEvent, et as ExecEvent, f as PortClient, ft as MountBucketOptions, g as GitCheckoutRequest, gt as Process, h as InterpreterClient, ht as PortListResult, i as CommandsResponse, it as FileChunk, j as KeyInput, jt as WatchOptions, k as DesktopStatusResponse, kt as WaitForLogResult, l as PingResponse, lt as ISandbox, m as ExecutionCallbacks, mt as PortExposeResult, n as getSandbox, nt as ExecResult, o as CreateSessionResponse, ot as FileStreamEvent, p as UnexposePortRequest, pt as PortCloseResult, q as ResponseHandler, r as SandboxClient, rt as ExecutionSession, s as DeleteSessionRequest, st as FileWatchSSEEvent, t as Sandbox, tt as ExecOptions, u as UtilityClient, ut as ListFilesOptions, v as FileClient, vt as ProcessInfoResult, w as CursorPositionResponse, wt as ProcessStatus, x as ReadFileRequest, xt as ProcessLogsResult, y as FileOperationRequest, yt as ProcessKillResult, z as CommandClient, zt as CodeContext } from "./sandbox-
|
|
1
|
+
import { $ as DirectoryBackup, A as DesktopStopResponse, At as WaitForPortOptions, B as ExecuteResponse, Bt as CreateContextOptions, C as ClickOptions, Ct as ProcessStartResult, D as DesktopStartOptions, Dt as SessionOptions, E as DesktopClient, Et as SandboxOptions, F as ScreenshotRegion, Ft as ExecuteRequest, G as HttpClientOptions, H as BaseApiResponse, Ht as ExecutionResult, I as ScreenshotResponse, It as ExposePortRequest, J as SessionRequest, K as RequestConfig, L as ScrollDirection, Lt as StartProcessRequest, M as ScreenSizeResponse, Mt as isExecResult, N as ScreenshotBytesResponse, Nt as isProcess, O as DesktopStartResponse, Ot as StreamOptions, P as ScreenshotOptions, Pt as isProcessStatus, Q as BucketProvider, R as TypeOptions, Rt as PtyOptions, S as WriteFileRequest, St as ProcessOptions, T as Desktop, Tt as RestoreBackupResult, U as ContainerStub, Ut as RunCodeOptions, V as BackupClient, Vt as Execution, W as ErrorResponse, X as BaseExecOptions, Y as BackupOptions, Z as BucketCredentials, _ as GitClient, _t as ProcessCleanupResult, a as CreateSessionRequest, at as FileMetadata, b as MkdirRequest, bt as ProcessListResult, c as DeleteSessionResponse, ct as GitCheckoutResult, d as ProcessClient, dt as LogEvent, et as ExecEvent, f as PortClient, ft as MountBucketOptions, g as GitCheckoutRequest, gt as Process, h as InterpreterClient, ht as PortListResult, i as CommandsResponse, it as FileChunk, j as KeyInput, jt as WatchOptions, k as DesktopStatusResponse, kt as WaitForLogResult, l as PingResponse, lt as ISandbox, m as ExecutionCallbacks, mt as PortExposeResult, n as getSandbox, nt as ExecResult, o as CreateSessionResponse, ot as FileStreamEvent, p as UnexposePortRequest, pt as PortCloseResult, q as ResponseHandler, r as SandboxClient, rt as ExecutionSession, s as DeleteSessionRequest, st as FileWatchSSEEvent, t as Sandbox, tt as ExecOptions, u as UtilityClient, ut as ListFilesOptions, v as FileClient, vt as ProcessInfoResult, w as CursorPositionResponse, wt as ProcessStatus, x as ReadFileRequest, xt as ProcessLogsResult, y as FileOperationRequest, yt as ProcessKillResult, z as CommandClient, zt as CodeContext } from "./sandbox-DKzgVy6K.js";
|
|
2
2
|
import { a as DesktopCoordinateErrorContext, d as ErrorResponse$1, f as OperationType, i as BackupRestoreContext, l as ProcessExitedBeforeReadyContext, n as BackupExpiredContext, o as DesktopErrorContext, p as ErrorCode, r as BackupNotFoundContext, s as InvalidBackupConfigContext, t as BackupCreateContext, u as ProcessReadyTimeoutContext } from "./contexts-CeQR115r.js";
|
|
3
3
|
|
|
4
4
|
//#region src/errors/classes.d.ts
|
package/dist/index.js
CHANGED
|
@@ -832,6 +832,12 @@ var HttpTransport = class extends BaseTransport {
|
|
|
832
832
|
//#endregion
|
|
833
833
|
//#region src/clients/transport/ws-transport.ts
|
|
834
834
|
/**
|
|
835
|
+
* Default timeout values (all in milliseconds)
|
|
836
|
+
*/
|
|
837
|
+
const DEFAULT_REQUEST_TIMEOUT_MS = 12e4;
|
|
838
|
+
const DEFAULT_STREAM_IDLE_TIMEOUT_MS = 3e5;
|
|
839
|
+
const DEFAULT_CONNECT_TIMEOUT_MS = 3e4;
|
|
840
|
+
/**
|
|
835
841
|
* WebSocket transport implementation
|
|
836
842
|
*
|
|
837
843
|
* Multiplexes HTTP-like requests over a single WebSocket connection.
|
|
@@ -930,7 +936,7 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
930
936
|
* parent Container class that supports the WebSocket protocol.
|
|
931
937
|
*/
|
|
932
938
|
async connectViaFetch() {
|
|
933
|
-
const timeoutMs = this.config.connectTimeoutMs ??
|
|
939
|
+
const timeoutMs = this.config.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS;
|
|
934
940
|
const controller = new AbortController();
|
|
935
941
|
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
936
942
|
try {
|
|
@@ -966,7 +972,7 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
966
972
|
*/
|
|
967
973
|
connectViaWebSocket() {
|
|
968
974
|
return new Promise((resolve, reject) => {
|
|
969
|
-
const timeoutMs = this.config.connectTimeoutMs ??
|
|
975
|
+
const timeoutMs = this.config.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS;
|
|
970
976
|
const timeout = setTimeout(() => {
|
|
971
977
|
this.cleanup();
|
|
972
978
|
reject(/* @__PURE__ */ new Error(`WebSocket connection timeout after ${timeoutMs}ms`));
|
|
@@ -1014,7 +1020,7 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
1014
1020
|
body
|
|
1015
1021
|
};
|
|
1016
1022
|
return new Promise((resolve, reject) => {
|
|
1017
|
-
const timeoutMs = this.config.requestTimeoutMs ??
|
|
1023
|
+
const timeoutMs = this.config.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
|
|
1018
1024
|
const timeoutId = setTimeout(() => {
|
|
1019
1025
|
this.pendingRequests.delete(id);
|
|
1020
1026
|
reject(/* @__PURE__ */ new Error(`Request timeout after ${timeoutMs}ms: ${method} ${path}`));
|
|
@@ -1054,6 +1060,10 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
1054
1060
|
* This method waits for the first message before returning. If the server
|
|
1055
1061
|
* responds with an error (non-streaming response), it throws immediately
|
|
1056
1062
|
* rather than returning a stream that will error later.
|
|
1063
|
+
*
|
|
1064
|
+
* Uses an inactivity timeout instead of a total-duration timeout so that
|
|
1065
|
+
* long-running streams (e.g. execStream from an agent) stay alive as long
|
|
1066
|
+
* as data is flowing. The timer resets on every chunk or response message.
|
|
1057
1067
|
*/
|
|
1058
1068
|
async requestStream(method, path, body) {
|
|
1059
1069
|
await this.connect();
|
|
@@ -1065,16 +1075,21 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
1065
1075
|
path,
|
|
1066
1076
|
body
|
|
1067
1077
|
};
|
|
1078
|
+
const idleTimeoutMs = this.config.streamIdleTimeoutMs ?? DEFAULT_STREAM_IDLE_TIMEOUT_MS;
|
|
1068
1079
|
return new Promise((resolveStream, rejectStream) => {
|
|
1069
1080
|
let streamController;
|
|
1070
1081
|
let firstMessageReceived = false;
|
|
1071
|
-
const
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1082
|
+
const createIdleTimeout = () => {
|
|
1083
|
+
return setTimeout(() => {
|
|
1084
|
+
this.pendingRequests.delete(id);
|
|
1085
|
+
const error = /* @__PURE__ */ new Error(`Stream idle timeout after ${idleTimeoutMs}ms: ${method} ${path}`);
|
|
1086
|
+
if (firstMessageReceived) try {
|
|
1087
|
+
streamController?.error(error);
|
|
1088
|
+
} catch {}
|
|
1089
|
+
else rejectStream(error);
|
|
1090
|
+
}, idleTimeoutMs);
|
|
1091
|
+
};
|
|
1092
|
+
const timeoutId = createIdleTimeout();
|
|
1078
1093
|
const stream = new ReadableStream({
|
|
1079
1094
|
start: (controller) => {
|
|
1080
1095
|
streamController = controller;
|
|
@@ -1098,7 +1113,8 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
1098
1113
|
});
|
|
1099
1114
|
this.pendingRequests.set(id, {
|
|
1100
1115
|
resolve: (response) => {
|
|
1101
|
-
|
|
1116
|
+
const pending = this.pendingRequests.get(id);
|
|
1117
|
+
if (pending?.timeoutId) clearTimeout(pending.timeoutId);
|
|
1102
1118
|
this.pendingRequests.delete(id);
|
|
1103
1119
|
if (!firstMessageReceived) {
|
|
1104
1120
|
firstMessageReceived = true;
|
|
@@ -1107,13 +1123,18 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
1107
1123
|
streamController?.close();
|
|
1108
1124
|
resolveStream(stream);
|
|
1109
1125
|
}
|
|
1110
|
-
} else if (response.status >= 400)
|
|
1126
|
+
} else if (response.status >= 400) try {
|
|
1127
|
+
streamController?.error(/* @__PURE__ */ new Error(`Stream error: ${response.status} - ${JSON.stringify(response.body)}`));
|
|
1128
|
+
} catch {}
|
|
1111
1129
|
else streamController?.close();
|
|
1112
1130
|
},
|
|
1113
1131
|
reject: (error) => {
|
|
1114
|
-
|
|
1132
|
+
const pending = this.pendingRequests.get(id);
|
|
1133
|
+
if (pending?.timeoutId) clearTimeout(pending.timeoutId);
|
|
1115
1134
|
this.pendingRequests.delete(id);
|
|
1116
|
-
if (firstMessageReceived)
|
|
1135
|
+
if (firstMessageReceived) try {
|
|
1136
|
+
streamController?.error(error);
|
|
1137
|
+
} catch {}
|
|
1117
1138
|
else rejectStream(error);
|
|
1118
1139
|
},
|
|
1119
1140
|
streamController: void 0,
|
|
@@ -1197,6 +1218,9 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
1197
1218
|
}
|
|
1198
1219
|
/**
|
|
1199
1220
|
* Handle a stream chunk message
|
|
1221
|
+
*
|
|
1222
|
+
* Resets the idle timeout on every chunk so that long-running streams
|
|
1223
|
+
* with continuous output are not killed by the inactivity timer.
|
|
1200
1224
|
*/
|
|
1201
1225
|
handleStreamChunk(chunk) {
|
|
1202
1226
|
const pending = this.pendingRequests.get(chunk.id);
|
|
@@ -1208,6 +1232,7 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
1208
1232
|
pending.onFirstChunk();
|
|
1209
1233
|
pending.onFirstChunk = void 0;
|
|
1210
1234
|
}
|
|
1235
|
+
if (pending.isStreaming) this.resetStreamIdleTimeout(chunk.id, pending);
|
|
1211
1236
|
if (!pending.streamController) {
|
|
1212
1237
|
if (!pending.bufferedChunks) pending.bufferedChunks = [];
|
|
1213
1238
|
const encoder$1 = new TextEncoder();
|
|
@@ -1233,6 +1258,20 @@ var WebSocketTransport = class extends BaseTransport {
|
|
|
1233
1258
|
}
|
|
1234
1259
|
}
|
|
1235
1260
|
/**
|
|
1261
|
+
* Reset the idle timeout for a streaming request.
|
|
1262
|
+
* Called on every incoming chunk to keep the stream alive while data flows.
|
|
1263
|
+
*/
|
|
1264
|
+
resetStreamIdleTimeout(id, pending) {
|
|
1265
|
+
if (pending.timeoutId) clearTimeout(pending.timeoutId);
|
|
1266
|
+
const idleTimeoutMs = this.config.streamIdleTimeoutMs ?? DEFAULT_STREAM_IDLE_TIMEOUT_MS;
|
|
1267
|
+
pending.timeoutId = setTimeout(() => {
|
|
1268
|
+
this.pendingRequests.delete(id);
|
|
1269
|
+
if (pending.streamController) try {
|
|
1270
|
+
pending.streamController.error(/* @__PURE__ */ new Error(`Stream idle timeout after ${idleTimeoutMs}ms`));
|
|
1271
|
+
} catch {}
|
|
1272
|
+
}, idleTimeoutMs);
|
|
1273
|
+
}
|
|
1274
|
+
/**
|
|
1236
1275
|
* Handle an error message
|
|
1237
1276
|
*/
|
|
1238
1277
|
handleError(error) {
|
|
@@ -3349,7 +3388,7 @@ function buildS3fsSource(bucket, prefix) {
|
|
|
3349
3388
|
* This file is auto-updated by .github/changeset-version.ts during releases
|
|
3350
3389
|
* DO NOT EDIT MANUALLY - Changes will be overwritten on the next version bump
|
|
3351
3390
|
*/
|
|
3352
|
-
const SDK_VERSION = "0.7.
|
|
3391
|
+
const SDK_VERSION = "0.7.15";
|
|
3353
3392
|
|
|
3354
3393
|
//#endregion
|
|
3355
3394
|
//#region src/sandbox.ts
|
|
@@ -4831,7 +4870,8 @@ var Sandbox = class Sandbox extends Container {
|
|
|
4831
4870
|
await this.client.utils.createSession({
|
|
4832
4871
|
id: sessionId,
|
|
4833
4872
|
...envPayload && { env: envPayload },
|
|
4834
|
-
...options?.cwd && { cwd: options.cwd }
|
|
4873
|
+
...options?.cwd && { cwd: options.cwd },
|
|
4874
|
+
...options?.commandTimeoutMs !== void 0 && { commandTimeoutMs: options.commandTimeoutMs }
|
|
4835
4875
|
});
|
|
4836
4876
|
return this.getSessionWrapper(sessionId);
|
|
4837
4877
|
}
|