@cloudflare/sandbox 0.5.3 → 0.5.6

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.
@@ -1,23 +1,23 @@
1
1
 
2
- > @cloudflare/sandbox@0.5.3 build
2
+ > @cloudflare/sandbox@0.5.6 build
3
3
  > rm -rf dist && tsdown --config tsdown.config.ts
4
4
 
5
- ℹ tsdown v0.16.6 powered by rolldown v1.0.0-beta.51
5
+ ℹ tsdown v0.16.7 powered by rolldown v1.0.0-beta.51
6
6
  ℹ Using tsdown config: /home/runner/work/sandbox-sdk/sandbox-sdk/packages/sandbox/tsdown.config.ts
7
7
  ℹ entry: src/index.ts, src/openai/index.ts
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
- ℹ dist/index.js 102.82 kB │ gzip: 23.33 kB
10
+ ℹ dist/index.js 102.96 kB │ gzip: 23.37 kB
11
11
  ℹ dist/openai/index.js  10.42 kB │ gzip: 2.63 kB
12
- ℹ dist/index.js.map 219.05 kB │ gzip: 48.46 kB
12
+ ℹ dist/index.js.map 219.66 kB │ gzip: 48.65 kB
13
13
  ℹ dist/sandbox-HQazw9bn.d.ts.map  61.69 kB │ gzip: 16.89 kB
14
14
  ℹ dist/dist-gVyG2H2h.js.map  30.14 kB │ gzip: 8.31 kB
15
15
  ℹ dist/openai/index.js.map  21.00 kB │ gzip: 5.13 kB
16
16
  ℹ dist/dist-gVyG2H2h.js  17.03 kB │ gzip: 5.39 kB
17
- ℹ dist/index.d.ts.map  9.22 kB │ gzip: 2.82 kB
17
+ ℹ dist/index.d.ts.map  9.22 kB │ gzip: 2.83 kB
18
18
  ℹ dist/openai/index.d.ts.map  0.72 kB │ gzip: 0.37 kB
19
19
  ℹ dist/index.d.ts  11.11 kB │ gzip: 3.32 kB
20
20
  ℹ dist/openai/index.d.ts  2.10 kB │ gzip: 0.81 kB
21
21
  ℹ dist/sandbox-HQazw9bn.d.ts  51.36 kB │ gzip: 11.79 kB
22
- ℹ 12 files, total: 536.66 kB
23
- ✔ Build complete in 3733ms
22
+ ℹ 12 files, total: 537.41 kB
23
+ ✔ Build complete in 3702ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @cloudflare/sandbox
2
2
 
3
+ ## 0.5.6
4
+
5
+ ### Patch Changes
6
+
7
+ - [#249](https://github.com/cloudflare/sandbox-sdk/pull/249) [`e69dce5`](https://github.com/cloudflare/sandbox-sdk/commit/e69dce54e76b5e0597e0f4ebb798c933543349a7) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Fix code context isolation bug where contexts leaked state after 10 executions. Each code context now gets a dedicated executor process from creation to deletion, ensuring complete isolation between contexts. Removed maximum pool size limits to allow organic scaling.
8
+
9
+ - [#258](https://github.com/cloudflare/sandbox-sdk/pull/258) [`34bfb81`](https://github.com/cloudflare/sandbox-sdk/commit/34bfb81e7d7f96d6e2f62bb43330a6e675c2c54c) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Fix executor mutex race condition and memory leak in code interpreter
10
+
11
+ - [#256](https://github.com/cloudflare/sandbox-sdk/pull/256) [`088ee5f`](https://github.com/cloudflare/sandbox-sdk/commit/088ee5fceae50f2338011b5c7560e056bdf6e48a) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Remove output size limit for command execution
12
+
13
+ The 10MB output size limit that was intended to prevent OOM attacks has been removed. This limit was too restrictive for legitimate use cases like reading large media files. Developers are now trusted to manage their own resource usage and handle potential OOM situations.
14
+
15
+ - [#254](https://github.com/cloudflare/sandbox-sdk/pull/254) [`8728890`](https://github.com/cloudflare/sandbox-sdk/commit/872889064f7ce59d49bc12bdf151df94cfe1efe4) Thanks [@deathbyknowledge](https://github.com/deathbyknowledge)! - close stream before releasing lock
16
+
17
+ ## 0.5.5
18
+
19
+ ### Patch Changes
20
+
21
+ - [#245](https://github.com/cloudflare/sandbox-sdk/pull/245) [`ecaafa9`](https://github.com/cloudflare/sandbox-sdk/commit/ecaafa9c4e213bf955a464d0c977830956a77336) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Publish Docker images for linux/amd64 only to ensure dev/prod parity. ARM Mac users will automatically use emulation, matching production deployment behavior. This prevents architecture-specific bugs caused by Docker automatically selecting ARM64 variants on ARM hosts.
22
+
23
+ - [#251](https://github.com/cloudflare/sandbox-sdk/pull/251) [`ba83581`](https://github.com/cloudflare/sandbox-sdk/commit/ba83581a9c8eff6f6bf5913baf2c9186729126a4) Thanks [@threepointone](https://github.com/threepointone)! - Update dependencies
24
+
25
+ ## 0.5.4
26
+
27
+ ### Patch Changes
28
+
29
+ - [#243](https://github.com/cloudflare/sandbox-sdk/pull/243) [`32a0dab`](https://github.com/cloudflare/sandbox-sdk/commit/32a0dab89375aa238a97b9d213234236fd364195) Thanks [@whoiskatrin](https://github.com/whoiskatrin)! - add getFileMetadata method in FileService to get only metadata
30
+
3
31
  ## 0.5.3
4
32
 
5
33
  ### Patch Changes
package/Dockerfile CHANGED
@@ -172,13 +172,10 @@ COPY --from=prod-deps /app/node_modules ./node_modules
172
172
  COPY --from=prod-deps /app/packages/shared/dist ./packages/shared/dist
173
173
  COPY --from=prod-deps /app/packages/shared/package.json ./packages/shared/package.json
174
174
 
175
- # Configure process pool sizes (can be overridden at runtime)
175
+ # Configure process pool sizes (minimum only)
176
176
  ENV PYTHON_POOL_MIN_SIZE=3
177
- ENV PYTHON_POOL_MAX_SIZE=15
178
177
  ENV JAVASCRIPT_POOL_MIN_SIZE=3
179
- ENV JAVASCRIPT_POOL_MAX_SIZE=10
180
178
  ENV TYPESCRIPT_POOL_MIN_SIZE=3
181
- ENV TYPESCRIPT_POOL_MAX_SIZE=10
182
179
 
183
180
  # Create clean workspace directory for user code
184
181
  RUN mkdir -p /workspace
package/README.md CHANGED
@@ -15,7 +15,7 @@ Perfect for AI code execution, interactive development environments, data analys
15
15
  ### Prerequisites
16
16
 
17
17
  1. Install [Node.js](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) (version 16.17.0 or later)
18
- 2. Ensure Docker is running locally
18
+ 2. Ensure Docker is running locally ([see setup guide](https://developers.cloudflare.com/sandbox/get-started/#ensure-docker-is-running-locally))
19
19
  3. For deploying to production, sign up for a [Cloudflare account](https://dash.cloudflare.com/sign-up/workers-and-pages)
20
20
 
21
21
  ### 1. Create a new project
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["ExecuteRequest","Record","StartProcessRequest","ReadFileRequest","WriteFileRequest","DeleteFileRequest","RenameFileRequest","MoveFileRequest","MkdirRequest","FileExistsRequest","ExposePortRequest","GitCheckoutRequest","SessionCreateRequest","SessionDeleteRequest","ErrorCode"],"sources":["../../shared/dist/request-types.d.ts","../src/file-stream.ts","../src/interpreter.ts","../src/request-handler.ts","../src/sse-parser.ts","../../shared/dist/errors/codes.d.ts","../src/storage-mount/errors.ts"],"sourcesContent":["/**\n * Request types for API calls to the container\n * These types enforce the contract between the Durable Object client and container handlers\n *\n * IMPORTANT: These types must match the Zod schemas in:\n * @repo/sandbox-container/src/validation/schemas.ts\n */\n/**\n * Request to execute a command\n */\nexport interface ExecuteRequest {\n command: string;\n sessionId?: string;\n background?: boolean;\n timeoutMs?: number;\n env?: Record<string, string>;\n cwd?: string;\n}\n/**\n * Request to start a background process\n * Uses flat structure consistent with other endpoints\n */\nexport interface StartProcessRequest {\n command: string;\n sessionId?: string;\n processId?: string;\n timeoutMs?: number;\n env?: Record<string, string>;\n cwd?: string;\n encoding?: string;\n autoCleanup?: boolean;\n}\n/**\n * Request to read a file\n */\nexport interface ReadFileRequest {\n path: string;\n encoding?: string;\n sessionId?: string;\n}\n/**\n * Request to write a file\n */\nexport interface WriteFileRequest {\n path: string;\n content: string;\n encoding?: string;\n sessionId?: string;\n}\n/**\n * Request to delete a file\n */\nexport interface DeleteFileRequest {\n path: string;\n sessionId?: string;\n}\n/**\n * Request to rename a file\n */\nexport interface RenameFileRequest {\n oldPath: string;\n newPath: string;\n sessionId?: string;\n}\n/**\n * Request to move a file\n */\nexport interface MoveFileRequest {\n sourcePath: string;\n destinationPath: string;\n sessionId?: string;\n}\n/**\n * Request to create a directory\n */\nexport interface MkdirRequest {\n path: string;\n recursive?: boolean;\n sessionId?: string;\n}\n/**\n * Request to check if a file or directory exists\n */\nexport interface FileExistsRequest {\n path: string;\n sessionId?: string;\n}\n/**\n * Request to expose a port\n */\nexport interface ExposePortRequest {\n port: number;\n name?: string;\n}\n/**\n * Request to clone a Git repository\n */\nexport interface GitCheckoutRequest {\n repoUrl: string;\n branch?: string;\n targetDir?: string;\n sessionId?: string;\n}\n/**\n * Request to create a session\n */\nexport interface SessionCreateRequest {\n id?: string;\n name?: string;\n env?: Record<string, string>;\n cwd?: string;\n}\n/**\n * Request to delete a session\n */\nexport interface SessionDeleteRequest {\n sessionId: string;\n}\n//# sourceMappingURL=request-types.d.ts.map","/**\n * Centralized error code registry\n * Each code maps to a specific error type with consistent semantics\n */\nexport declare const ErrorCode: {\n readonly FILE_NOT_FOUND: \"FILE_NOT_FOUND\";\n readonly PERMISSION_DENIED: \"PERMISSION_DENIED\";\n readonly FILE_EXISTS: \"FILE_EXISTS\";\n readonly IS_DIRECTORY: \"IS_DIRECTORY\";\n readonly NOT_DIRECTORY: \"NOT_DIRECTORY\";\n readonly NO_SPACE: \"NO_SPACE\";\n readonly TOO_MANY_FILES: \"TOO_MANY_FILES\";\n readonly RESOURCE_BUSY: \"RESOURCE_BUSY\";\n readonly READ_ONLY: \"READ_ONLY\";\n readonly NAME_TOO_LONG: \"NAME_TOO_LONG\";\n readonly TOO_MANY_LINKS: \"TOO_MANY_LINKS\";\n readonly FILESYSTEM_ERROR: \"FILESYSTEM_ERROR\";\n readonly COMMAND_NOT_FOUND: \"COMMAND_NOT_FOUND\";\n readonly COMMAND_PERMISSION_DENIED: \"COMMAND_PERMISSION_DENIED\";\n readonly INVALID_COMMAND: \"INVALID_COMMAND\";\n readonly COMMAND_EXECUTION_ERROR: \"COMMAND_EXECUTION_ERROR\";\n readonly STREAM_START_ERROR: \"STREAM_START_ERROR\";\n readonly PROCESS_NOT_FOUND: \"PROCESS_NOT_FOUND\";\n readonly PROCESS_PERMISSION_DENIED: \"PROCESS_PERMISSION_DENIED\";\n readonly PROCESS_ERROR: \"PROCESS_ERROR\";\n readonly PORT_ALREADY_EXPOSED: \"PORT_ALREADY_EXPOSED\";\n readonly PORT_IN_USE: \"PORT_IN_USE\";\n readonly PORT_NOT_EXPOSED: \"PORT_NOT_EXPOSED\";\n readonly INVALID_PORT_NUMBER: \"INVALID_PORT_NUMBER\";\n readonly INVALID_PORT: \"INVALID_PORT\";\n readonly SERVICE_NOT_RESPONDING: \"SERVICE_NOT_RESPONDING\";\n readonly PORT_OPERATION_ERROR: \"PORT_OPERATION_ERROR\";\n readonly CUSTOM_DOMAIN_REQUIRED: \"CUSTOM_DOMAIN_REQUIRED\";\n readonly GIT_REPOSITORY_NOT_FOUND: \"GIT_REPOSITORY_NOT_FOUND\";\n readonly GIT_BRANCH_NOT_FOUND: \"GIT_BRANCH_NOT_FOUND\";\n readonly GIT_AUTH_FAILED: \"GIT_AUTH_FAILED\";\n readonly GIT_NETWORK_ERROR: \"GIT_NETWORK_ERROR\";\n readonly INVALID_GIT_URL: \"INVALID_GIT_URL\";\n readonly GIT_CLONE_FAILED: \"GIT_CLONE_FAILED\";\n readonly GIT_CHECKOUT_FAILED: \"GIT_CHECKOUT_FAILED\";\n readonly GIT_OPERATION_FAILED: \"GIT_OPERATION_FAILED\";\n readonly BUCKET_MOUNT_ERROR: \"BUCKET_MOUNT_ERROR\";\n readonly S3FS_MOUNT_ERROR: \"S3FS_MOUNT_ERROR\";\n readonly MISSING_CREDENTIALS: \"MISSING_CREDENTIALS\";\n readonly INVALID_MOUNT_CONFIG: \"INVALID_MOUNT_CONFIG\";\n readonly INTERPRETER_NOT_READY: \"INTERPRETER_NOT_READY\";\n readonly CONTEXT_NOT_FOUND: \"CONTEXT_NOT_FOUND\";\n readonly CODE_EXECUTION_ERROR: \"CODE_EXECUTION_ERROR\";\n readonly VALIDATION_FAILED: \"VALIDATION_FAILED\";\n readonly INVALID_JSON_RESPONSE: \"INVALID_JSON_RESPONSE\";\n readonly UNKNOWN_ERROR: \"UNKNOWN_ERROR\";\n readonly INTERNAL_ERROR: \"INTERNAL_ERROR\";\n};\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n//# sourceMappingURL=codes.d.ts.map"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["ExecuteRequest","Record","StartProcessRequest","ReadFileRequest","WriteFileRequest","DeleteFileRequest","RenameFileRequest","MoveFileRequest","MkdirRequest","FileExistsRequest","ExposePortRequest","GitCheckoutRequest","SessionCreateRequest","SessionDeleteRequest","ErrorCode"],"sources":["../../shared/dist/request-types.d.ts","../src/file-stream.ts","../src/interpreter.ts","../src/request-handler.ts","../src/sse-parser.ts","../../shared/dist/errors/codes.d.ts","../src/storage-mount/errors.ts"],"sourcesContent":["/**\n * Request types for API calls to the container\n * These types enforce the contract between the Durable Object client and container handlers\n *\n * IMPORTANT: These types must match the Zod schemas in:\n * @repo/sandbox-container/src/validation/schemas.ts\n */\n/**\n * Request to execute a command\n */\nexport interface ExecuteRequest {\n command: string;\n sessionId?: string;\n background?: boolean;\n timeoutMs?: number;\n env?: Record<string, string>;\n cwd?: string;\n}\n/**\n * Request to start a background process\n * Uses flat structure consistent with other endpoints\n */\nexport interface StartProcessRequest {\n command: string;\n sessionId?: string;\n processId?: string;\n timeoutMs?: number;\n env?: Record<string, string>;\n cwd?: string;\n encoding?: string;\n autoCleanup?: boolean;\n}\n/**\n * Request to read a file\n */\nexport interface ReadFileRequest {\n path: string;\n encoding?: string;\n sessionId?: string;\n}\n/**\n * Request to write a file\n */\nexport interface WriteFileRequest {\n path: string;\n content: string;\n encoding?: string;\n sessionId?: string;\n}\n/**\n * Request to delete a file\n */\nexport interface DeleteFileRequest {\n path: string;\n sessionId?: string;\n}\n/**\n * Request to rename a file\n */\nexport interface RenameFileRequest {\n oldPath: string;\n newPath: string;\n sessionId?: string;\n}\n/**\n * Request to move a file\n */\nexport interface MoveFileRequest {\n sourcePath: string;\n destinationPath: string;\n sessionId?: string;\n}\n/**\n * Request to create a directory\n */\nexport interface MkdirRequest {\n path: string;\n recursive?: boolean;\n sessionId?: string;\n}\n/**\n * Request to check if a file or directory exists\n */\nexport interface FileExistsRequest {\n path: string;\n sessionId?: string;\n}\n/**\n * Request to expose a port\n */\nexport interface ExposePortRequest {\n port: number;\n name?: string;\n}\n/**\n * Request to clone a Git repository\n */\nexport interface GitCheckoutRequest {\n repoUrl: string;\n branch?: string;\n targetDir?: string;\n sessionId?: string;\n}\n/**\n * Request to create a session\n */\nexport interface SessionCreateRequest {\n id?: string;\n name?: string;\n env?: Record<string, string>;\n cwd?: string;\n}\n/**\n * Request to delete a session\n */\nexport interface SessionDeleteRequest {\n sessionId: string;\n}\n//# sourceMappingURL=request-types.d.ts.map","/**\n * Centralized error code registry\n * Each code maps to a specific error type with consistent semantics\n */\nexport declare const ErrorCode: {\n readonly FILE_NOT_FOUND: \"FILE_NOT_FOUND\";\n readonly PERMISSION_DENIED: \"PERMISSION_DENIED\";\n readonly FILE_EXISTS: \"FILE_EXISTS\";\n readonly IS_DIRECTORY: \"IS_DIRECTORY\";\n readonly NOT_DIRECTORY: \"NOT_DIRECTORY\";\n readonly NO_SPACE: \"NO_SPACE\";\n readonly TOO_MANY_FILES: \"TOO_MANY_FILES\";\n readonly RESOURCE_BUSY: \"RESOURCE_BUSY\";\n readonly READ_ONLY: \"READ_ONLY\";\n readonly NAME_TOO_LONG: \"NAME_TOO_LONG\";\n readonly TOO_MANY_LINKS: \"TOO_MANY_LINKS\";\n readonly FILESYSTEM_ERROR: \"FILESYSTEM_ERROR\";\n readonly COMMAND_NOT_FOUND: \"COMMAND_NOT_FOUND\";\n readonly COMMAND_PERMISSION_DENIED: \"COMMAND_PERMISSION_DENIED\";\n readonly INVALID_COMMAND: \"INVALID_COMMAND\";\n readonly COMMAND_EXECUTION_ERROR: \"COMMAND_EXECUTION_ERROR\";\n readonly STREAM_START_ERROR: \"STREAM_START_ERROR\";\n readonly PROCESS_NOT_FOUND: \"PROCESS_NOT_FOUND\";\n readonly PROCESS_PERMISSION_DENIED: \"PROCESS_PERMISSION_DENIED\";\n readonly PROCESS_ERROR: \"PROCESS_ERROR\";\n readonly PORT_ALREADY_EXPOSED: \"PORT_ALREADY_EXPOSED\";\n readonly PORT_IN_USE: \"PORT_IN_USE\";\n readonly PORT_NOT_EXPOSED: \"PORT_NOT_EXPOSED\";\n readonly INVALID_PORT_NUMBER: \"INVALID_PORT_NUMBER\";\n readonly INVALID_PORT: \"INVALID_PORT\";\n readonly SERVICE_NOT_RESPONDING: \"SERVICE_NOT_RESPONDING\";\n readonly PORT_OPERATION_ERROR: \"PORT_OPERATION_ERROR\";\n readonly CUSTOM_DOMAIN_REQUIRED: \"CUSTOM_DOMAIN_REQUIRED\";\n readonly GIT_REPOSITORY_NOT_FOUND: \"GIT_REPOSITORY_NOT_FOUND\";\n readonly GIT_BRANCH_NOT_FOUND: \"GIT_BRANCH_NOT_FOUND\";\n readonly GIT_AUTH_FAILED: \"GIT_AUTH_FAILED\";\n readonly GIT_NETWORK_ERROR: \"GIT_NETWORK_ERROR\";\n readonly INVALID_GIT_URL: \"INVALID_GIT_URL\";\n readonly GIT_CLONE_FAILED: \"GIT_CLONE_FAILED\";\n readonly GIT_CHECKOUT_FAILED: \"GIT_CHECKOUT_FAILED\";\n readonly GIT_OPERATION_FAILED: \"GIT_OPERATION_FAILED\";\n readonly BUCKET_MOUNT_ERROR: \"BUCKET_MOUNT_ERROR\";\n readonly S3FS_MOUNT_ERROR: \"S3FS_MOUNT_ERROR\";\n readonly MISSING_CREDENTIALS: \"MISSING_CREDENTIALS\";\n readonly INVALID_MOUNT_CONFIG: \"INVALID_MOUNT_CONFIG\";\n readonly INTERPRETER_NOT_READY: \"INTERPRETER_NOT_READY\";\n readonly CONTEXT_NOT_FOUND: \"CONTEXT_NOT_FOUND\";\n readonly CODE_EXECUTION_ERROR: \"CODE_EXECUTION_ERROR\";\n readonly VALIDATION_FAILED: \"VALIDATION_FAILED\";\n readonly INVALID_JSON_RESPONSE: \"INVALID_JSON_RESPONSE\";\n readonly UNKNOWN_ERROR: \"UNKNOWN_ERROR\";\n readonly INTERNAL_ERROR: \"INTERNAL_ERROR\";\n};\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n//# sourceMappingURL=codes.d.ts.map"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1265,6 +1265,9 @@ var InterpreterClient = class extends BaseHttpClient {
1265
1265
  }
1266
1266
  if (buffer.length > 0) yield buffer;
1267
1267
  } finally {
1268
+ try {
1269
+ await reader.cancel();
1270
+ } catch {}
1268
1271
  reader.releaseLock();
1269
1272
  }
1270
1273
  }
@@ -1886,6 +1889,9 @@ async function* parseSSEStream(stream, signal) {
1886
1889
  } catch {}
1887
1890
  }
1888
1891
  } finally {
1892
+ try {
1893
+ await reader.cancel();
1894
+ } catch {}
1889
1895
  reader.releaseLock();
1890
1896
  }
1891
1897
  }
@@ -2055,7 +2061,7 @@ function resolveS3fsOptions(provider, userOptions) {
2055
2061
  * This file is auto-updated by .github/changeset-version.ts during releases
2056
2062
  * DO NOT EDIT MANUALLY - Changes will be overwritten on the next version bump
2057
2063
  */
2058
- const SDK_VERSION = "0.5.3";
2064
+ const SDK_VERSION = "0.5.6";
2059
2065
 
2060
2066
  //#endregion
2061
2067
  //#region src/sandbox.ts
@@ -3037,6 +3043,9 @@ async function* parseSSE(stream) {
3037
3043
  }
3038
3044
  }
3039
3045
  } finally {
3046
+ try {
3047
+ await reader.cancel();
3048
+ } catch {}
3040
3049
  reader.releaseLock();
3041
3050
  }
3042
3051
  }