@cloudflare/sandbox 0.7.5 → 0.7.7

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.
@@ -9,6 +9,7 @@ declare const ErrorCode: {
9
9
  readonly FILE_EXISTS: "FILE_EXISTS";
10
10
  readonly IS_DIRECTORY: "IS_DIRECTORY";
11
11
  readonly NOT_DIRECTORY: "NOT_DIRECTORY";
12
+ readonly FILE_TOO_LARGE: "FILE_TOO_LARGE";
12
13
  readonly NO_SPACE: "NO_SPACE";
13
14
  readonly TOO_MANY_FILES: "TOO_MANY_FILES";
14
15
  readonly RESOURCE_BUSY: "RESOURCE_BUSY";
@@ -192,4 +193,4 @@ interface OpencodeStartupContext {
192
193
  }
193
194
  //#endregion
194
195
  export { InvalidBackupConfigContext as a, ProcessReadyTimeoutContext as c, ErrorCode as d, BackupRestoreContext as i, ErrorResponse as l, BackupExpiredContext as n, OpencodeStartupContext as o, BackupNotFoundContext as r, ProcessExitedBeforeReadyContext as s, BackupCreateContext as t, OperationType as u };
195
- //# sourceMappingURL=contexts-BHx40XTT.d.ts.map
196
+ //# sourceMappingURL=contexts-B0qA8qmx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts-B0qA8qmx.d.ts","names":["ErrorCode","ErrorCode","Operation","OperationType","ErrorResponse","TContext","Record","ServiceError","ServiceResult","T","OperationType","FileNotFoundContext","FileExistsContext","FileTooLargeContext","FileSystemContext","CommandNotFoundContext","CommandErrorContext","ProcessNotFoundContext","ProcessErrorContext","SessionAlreadyExistsContext","ProcessReadyTimeoutContext","ProcessExitedBeforeReadyContext","PortAlreadyExposedContext","PortNotExposedContext","InvalidPortContext","PortErrorContext","GitRepositoryNotFoundContext","GitAuthFailedContext","GitBranchNotFoundContext","GitErrorContext","InterpreterNotReadyContext","ContextNotFoundContext","CodeExecutionContext","ValidationFailedContext","Array","BucketMountContext","MissingCredentialsContext","InvalidMountConfigContext","BackupCreateContext","BackupRestoreContext","BackupNotFoundContext","BackupExpiredContext","InvalidBackupConfigContext","OpencodeStartupContext","InternalErrorContext"],"sources":["../../shared/dist/errors/codes.d.ts","../../shared/dist/errors/types.d.ts","../../shared/dist/errors/contexts.d.ts"],"sourcesContent":["/**\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 FILE_TOO_LARGE: \"FILE_TOO_LARGE\";\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 SESSION_ALREADY_EXISTS: \"SESSION_ALREADY_EXISTS\";\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 BACKUP_CREATE_FAILED: \"BACKUP_CREATE_FAILED\";\n readonly BACKUP_RESTORE_FAILED: \"BACKUP_RESTORE_FAILED\";\n readonly BACKUP_NOT_FOUND: \"BACKUP_NOT_FOUND\";\n readonly BACKUP_EXPIRED: \"BACKUP_EXPIRED\";\n readonly INVALID_BACKUP_CONFIG: \"INVALID_BACKUP_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 PYTHON_NOT_AVAILABLE: \"PYTHON_NOT_AVAILABLE\";\n readonly JAVASCRIPT_NOT_AVAILABLE: \"JAVASCRIPT_NOT_AVAILABLE\";\n readonly OPENCODE_STARTUP_FAILED: \"OPENCODE_STARTUP_FAILED\";\n readonly PROCESS_READY_TIMEOUT: \"PROCESS_READY_TIMEOUT\";\n readonly PROCESS_EXITED_BEFORE_READY: \"PROCESS_EXITED_BEFORE_READY\";\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","import type { ErrorCode } from './codes';\n/**\n * Standard operation types\n */\nexport declare const Operation: {\n readonly FILE_READ: \"file.read\";\n readonly FILE_WRITE: \"file.write\";\n readonly FILE_DELETE: \"file.delete\";\n readonly FILE_MOVE: \"file.move\";\n readonly FILE_RENAME: \"file.rename\";\n readonly FILE_STAT: \"file.stat\";\n readonly DIRECTORY_CREATE: \"directory.create\";\n readonly DIRECTORY_LIST: \"directory.list\";\n readonly COMMAND_EXECUTE: \"command.execute\";\n readonly COMMAND_STREAM: \"command.stream\";\n readonly PROCESS_START: \"process.start\";\n readonly PROCESS_KILL: \"process.kill\";\n readonly PROCESS_LIST: \"process.list\";\n readonly PROCESS_GET: \"process.get\";\n readonly PROCESS_LOGS: \"process.logs\";\n readonly PORT_EXPOSE: \"port.expose\";\n readonly PORT_UNEXPOSE: \"port.unexpose\";\n readonly PORT_LIST: \"port.list\";\n readonly PORT_PROXY: \"port.proxy\";\n readonly GIT_CLONE: \"git.clone\";\n readonly GIT_CHECKOUT: \"git.checkout\";\n readonly GIT_OPERATION: \"git.operation\";\n readonly BACKUP_CREATE: \"backup.create\";\n readonly BACKUP_RESTORE: \"backup.restore\";\n readonly BACKUP_UNMOUNT: \"backup.unmount\";\n readonly CODE_EXECUTE: \"code.execute\";\n readonly CODE_CONTEXT_CREATE: \"code.context.create\";\n readonly CODE_CONTEXT_DELETE: \"code.context.delete\";\n};\nexport type OperationType = (typeof Operation)[keyof typeof Operation];\n/**\n * Standard error response format with generic context type\n * TContext allows type-safe access to error-specific context\n */\nexport interface ErrorResponse<TContext = Record<string, unknown>> {\n /**\n * Error type code (machine-readable)\n */\n code: ErrorCode;\n /**\n * Human-readable error message\n */\n message: string;\n /**\n * Operation that was attempted (useful for debugging and logging)\n */\n operation?: OperationType;\n /**\n * Structured error context with relevant details\n * Type varies based on error code\n */\n context: TContext;\n /**\n * HTTP status code (for client SDK)\n */\n httpStatus: number;\n /**\n * Timestamp when error occurred\n */\n timestamp: string;\n /**\n * Actionable suggestion for fixing the error\n */\n suggestion?: string;\n /**\n * Link to documentation\n */\n documentation?: string;\n}\n/**\n * Container ServiceError (lightweight, enriched by handlers)\n */\nexport interface ServiceError {\n message: string;\n code: ErrorCode;\n details?: Record<string, unknown>;\n}\n/**\n * ServiceResult type for container services\n */\nexport type ServiceResult<T> = {\n success: true;\n data: T;\n} | {\n success: false;\n error: ServiceError;\n};\n//# sourceMappingURL=types.d.ts.map","import type { OperationType } from './types';\n/**\n * File system error contexts\n */\nexport interface FileNotFoundContext {\n path: string;\n operation: OperationType;\n}\nexport interface FileExistsContext {\n path: string;\n operation: OperationType;\n}\nexport interface FileTooLargeContext {\n path: string;\n operation: OperationType;\n maxSize: number;\n actualSize: number;\n}\nexport interface FileSystemContext {\n path: string;\n operation: OperationType;\n stderr?: string;\n exitCode?: number;\n}\n/**\n * Command error contexts\n */\nexport interface CommandNotFoundContext {\n command: string;\n}\nexport interface CommandErrorContext {\n command: string;\n exitCode?: number;\n stdout?: string;\n stderr?: string;\n}\n/**\n * Process error contexts\n */\nexport interface ProcessNotFoundContext {\n processId: string;\n}\nexport interface ProcessErrorContext {\n processId: string;\n pid?: number;\n exitCode?: number;\n stderr?: string;\n}\nexport interface SessionAlreadyExistsContext {\n sessionId: string;\n}\n/**\n * Process readiness error contexts\n */\nexport interface ProcessReadyTimeoutContext {\n processId: string;\n command: string;\n condition: string;\n timeout: number;\n}\nexport interface ProcessExitedBeforeReadyContext {\n processId: string;\n command: string;\n condition: string;\n exitCode: number;\n}\n/**\n * Port error contexts\n */\nexport interface PortAlreadyExposedContext {\n port: number;\n portName?: string;\n}\nexport interface PortNotExposedContext {\n port: number;\n}\nexport interface InvalidPortContext {\n port: number;\n reason: string;\n}\nexport interface PortErrorContext {\n port: number;\n portName?: string;\n stderr?: string;\n}\n/**\n * Git error contexts\n */\nexport interface GitRepositoryNotFoundContext {\n repository: string;\n}\nexport interface GitAuthFailedContext {\n repository: string;\n}\nexport interface GitBranchNotFoundContext {\n branch: string;\n repository?: string;\n}\nexport interface GitErrorContext {\n repository?: string;\n branch?: string;\n targetDir?: string;\n stderr?: string;\n exitCode?: number;\n}\n/**\n * Code interpreter error contexts\n */\nexport interface InterpreterNotReadyContext {\n retryAfter?: number;\n progress?: number;\n}\nexport interface ContextNotFoundContext {\n contextId: string;\n}\nexport interface CodeExecutionContext {\n contextId?: string;\n ename?: string;\n evalue?: string;\n traceback?: string[];\n}\n/**\n * Validation error contexts\n */\nexport interface ValidationFailedContext {\n validationErrors: Array<{\n field: string;\n message: string;\n code?: string;\n }>;\n}\n/**\n * Bucket mounting error contexts\n */\nexport interface BucketMountContext {\n bucket: string;\n mountPath: string;\n endpoint: string;\n stderr?: string;\n exitCode?: number;\n}\nexport interface MissingCredentialsContext {\n bucket: string;\n endpoint: string;\n}\nexport interface InvalidMountConfigContext {\n bucket?: string;\n mountPath?: string;\n endpoint?: string;\n reason?: string;\n}\n/**\n * Backup error contexts\n */\nexport interface BackupCreateContext {\n dir: string;\n backupId?: string;\n stderr?: string;\n exitCode?: number;\n}\nexport interface BackupRestoreContext {\n dir: string;\n backupId: string;\n stderr?: string;\n exitCode?: number;\n}\nexport interface BackupNotFoundContext {\n backupId: string;\n}\nexport interface BackupExpiredContext {\n backupId: string;\n expiredAt?: string;\n}\nexport interface InvalidBackupConfigContext {\n reason: string;\n}\n/**\n * OpenCode error contexts\n */\nexport interface OpencodeStartupContext {\n port: number;\n stderr?: string;\n command?: string;\n}\n/**\n * Generic error contexts\n */\nexport interface InternalErrorContext {\n originalError?: string;\n stack?: string;\n [key: string]: unknown;\n}\n//# sourceMappingURL=contexts.d.ts.map"],"mappings":";;AAIA;AA6DA;;cA7DqBA;;ECAAE,SAAAA,iBA6BpB,EAAA,mBAAA;EACWC,SAAAA,WAAa,EAAA,aAAWD;EAKnBE,SAAAA,YAAa,EAAAC,cAAA;EAAYC,SAAAA,aAAAA,EAAAA,eAAAA;EAIhCL,SAAAA,cAAAA,EAAAA,gBAAAA;EAQME,SAAAA,QAAAA,EAAAA,UAAAA;EAKHE,SAAAA,cAAAA,EAAAA,gBAAAA;EAAQ,SAAA,aAAA,EAAA,eAAA;;;;ECFJe,SAAAA,gBAAAA,EAAAA,kBAA0B;EAM1BC,SAAAA,iBAAAA,EAAAA,mBAA+B;EA8F/BiB,SAAAA,yBAAmB,EAAA,2BAAA;EAMnBC,SAAAA,eAAoB,EAAA,iBAAA;EAMpBC,SAAAA,uBAAqB,EAAA,yBAAA;EAGrBC,SAAAA,kBAAoB,EAAA,oBAAA;EAIpBC,SAAAA,iBAAAA,EAAAA,mBAA0B;EAM1BC,SAAAA,yBAAsB,EAAA,2BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KFlH3B3C,SAAAA,WAAoBA,wBAAwBA;;;AA7DxD;AA6DA;;cC7DqBE;;EAAAA,SAAAA,UA6BpB,EAAA,YAAA;EACWC,SAAAA,WAAa,EAAA,aAAWD;EAKnBE,SAAAA,SAAa,EAAA,WAAAC;EAAYC,SAAAA,WAAAA,EAAAA,aAAAA;EAIhCL,SAAAA,SAAAA,EAAAA,WAAAA;EAQME,SAAAA,gBAAAA,EAAAA,kBAAAA;EAKHE,SAAAA,cAAAA,EAAAA,gBAAAA;EAAQ,SAAA,eAAA,EAAA,iBAAA;;;;ECFJe,SAAAA,YAAAA,EAAAA,cAA0B;EAM1BC,SAAAA,WAAAA,EAAAA,aAA+B;EA8F/BiB,SAAAA,YAAAA,EAAmB,cAAA;EAMnBC,SAAAA,WAAAA,EAAAA,aAAoB;EAMpBC,SAAAA,aAAAA,EAAqB,eAAA;EAGrBC,SAAAA,SAAAA,EAAAA,WAAoB;EAIpBC,SAAAA,UAAAA,EAAAA,YAA0B;EAM1BC,SAAAA,SAAAA,EAAAA,WAAsB;;;;;;;;;;KDjJ3BxC,aAAAA,WAAwBD,wBAAwBA;;;;;UAK3CE,yBAAyBE;;;;QAIhCL;;;;;;;;cAQME;;;;;WAKHE;;;;;;;;;;;;;;;;;;;;;;;;UCFIe,0BAAAA;;;;;;UAMAC,+BAAAA;;;;;;;;;UA8FAiB,mBAAAA;;;;;;UAMAC,oBAAAA;;;;;;UAMAC,qBAAAA;;;UAGAC,oBAAAA;;;;UAIAC,0BAAAA;;;;;;UAMAC,sBAAAA"}
@@ -9,6 +9,7 @@ const ErrorCode = {
9
9
  FILE_EXISTS: "FILE_EXISTS",
10
10
  IS_DIRECTORY: "IS_DIRECTORY",
11
11
  NOT_DIRECTORY: "NOT_DIRECTORY",
12
+ FILE_TOO_LARGE: "FILE_TOO_LARGE",
12
13
  NO_SPACE: "NO_SPACE",
13
14
  TOO_MANY_FILES: "TOO_MANY_FILES",
14
15
  RESOURCE_BUSY: "RESOURCE_BUSY",
@@ -100,6 +101,7 @@ const ERROR_STATUS_MAP = {
100
101
  [ErrorCode.PORT_IN_USE]: 409,
101
102
  [ErrorCode.RESOURCE_BUSY]: 409,
102
103
  [ErrorCode.SESSION_ALREADY_EXISTS]: 409,
104
+ [ErrorCode.FILE_TOO_LARGE]: 413,
103
105
  [ErrorCode.SERVICE_NOT_RESPONDING]: 502,
104
106
  [ErrorCode.GIT_NETWORK_ERROR]: 502,
105
107
  [ErrorCode.BACKUP_NOT_FOUND]: 404,
@@ -133,4 +135,4 @@ const ERROR_STATUS_MAP = {
133
135
 
134
136
  //#endregion
135
137
  export { ErrorCode as t };
136
- //# sourceMappingURL=errors-CYUY62c6.js.map
138
+ //# sourceMappingURL=errors-CAZT-Gtg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors-CAZT-Gtg.js","names":[],"sources":["../../shared/dist/errors/codes.js","../../shared/dist/errors/status-map.js"],"sourcesContent":["/**\n * Centralized error code registry\n * Each code maps to a specific error type with consistent semantics\n */\nexport const ErrorCode = {\n // File System Errors (404)\n FILE_NOT_FOUND: 'FILE_NOT_FOUND',\n // Permission Errors (403)\n PERMISSION_DENIED: 'PERMISSION_DENIED',\n // File System Errors (409)\n FILE_EXISTS: 'FILE_EXISTS',\n // File System Errors (400)\n IS_DIRECTORY: 'IS_DIRECTORY',\n NOT_DIRECTORY: 'NOT_DIRECTORY',\n // File Too Large Errors (413)\n FILE_TOO_LARGE: 'FILE_TOO_LARGE',\n // File System Errors (500)\n NO_SPACE: 'NO_SPACE',\n TOO_MANY_FILES: 'TOO_MANY_FILES',\n RESOURCE_BUSY: 'RESOURCE_BUSY',\n READ_ONLY: 'READ_ONLY',\n NAME_TOO_LONG: 'NAME_TOO_LONG',\n TOO_MANY_LINKS: 'TOO_MANY_LINKS',\n FILESYSTEM_ERROR: 'FILESYSTEM_ERROR',\n // Command Errors (404)\n COMMAND_NOT_FOUND: 'COMMAND_NOT_FOUND',\n // Command Errors (403/400)\n COMMAND_PERMISSION_DENIED: 'COMMAND_PERMISSION_DENIED',\n INVALID_COMMAND: 'INVALID_COMMAND',\n // Command Errors (500)\n COMMAND_EXECUTION_ERROR: 'COMMAND_EXECUTION_ERROR',\n STREAM_START_ERROR: 'STREAM_START_ERROR',\n // Process Errors (404)\n PROCESS_NOT_FOUND: 'PROCESS_NOT_FOUND',\n // Process Errors (403/500)\n PROCESS_PERMISSION_DENIED: 'PROCESS_PERMISSION_DENIED',\n PROCESS_ERROR: 'PROCESS_ERROR',\n // Session Errors (409)\n SESSION_ALREADY_EXISTS: 'SESSION_ALREADY_EXISTS',\n // Port Errors (409)\n PORT_ALREADY_EXPOSED: 'PORT_ALREADY_EXPOSED',\n PORT_IN_USE: 'PORT_IN_USE',\n // Port Errors (404)\n PORT_NOT_EXPOSED: 'PORT_NOT_EXPOSED',\n // Port Errors (400)\n INVALID_PORT_NUMBER: 'INVALID_PORT_NUMBER',\n INVALID_PORT: 'INVALID_PORT',\n // Port Errors (502/500)\n SERVICE_NOT_RESPONDING: 'SERVICE_NOT_RESPONDING',\n PORT_OPERATION_ERROR: 'PORT_OPERATION_ERROR',\n // Port Errors (400)\n CUSTOM_DOMAIN_REQUIRED: 'CUSTOM_DOMAIN_REQUIRED',\n // Git Errors (404)\n GIT_REPOSITORY_NOT_FOUND: 'GIT_REPOSITORY_NOT_FOUND',\n GIT_BRANCH_NOT_FOUND: 'GIT_BRANCH_NOT_FOUND',\n // Git Errors (401)\n GIT_AUTH_FAILED: 'GIT_AUTH_FAILED',\n // Git Errors (502)\n GIT_NETWORK_ERROR: 'GIT_NETWORK_ERROR',\n // Git Errors (400)\n INVALID_GIT_URL: 'INVALID_GIT_URL',\n // Git Errors (500)\n GIT_CLONE_FAILED: 'GIT_CLONE_FAILED',\n GIT_CHECKOUT_FAILED: 'GIT_CHECKOUT_FAILED',\n GIT_OPERATION_FAILED: 'GIT_OPERATION_FAILED',\n // Bucket mounting errors\n BUCKET_MOUNT_ERROR: 'BUCKET_MOUNT_ERROR',\n S3FS_MOUNT_ERROR: 'S3FS_MOUNT_ERROR',\n MISSING_CREDENTIALS: 'MISSING_CREDENTIALS',\n INVALID_MOUNT_CONFIG: 'INVALID_MOUNT_CONFIG',\n // Backup Errors (500)\n BACKUP_CREATE_FAILED: 'BACKUP_CREATE_FAILED',\n BACKUP_RESTORE_FAILED: 'BACKUP_RESTORE_FAILED',\n // Backup Errors (404)\n BACKUP_NOT_FOUND: 'BACKUP_NOT_FOUND',\n // Backup Errors (400)\n BACKUP_EXPIRED: 'BACKUP_EXPIRED',\n INVALID_BACKUP_CONFIG: 'INVALID_BACKUP_CONFIG',\n // Code Interpreter Errors (503)\n INTERPRETER_NOT_READY: 'INTERPRETER_NOT_READY',\n // Code Interpreter Errors (404)\n CONTEXT_NOT_FOUND: 'CONTEXT_NOT_FOUND',\n // Code Interpreter Errors (500)\n CODE_EXECUTION_ERROR: 'CODE_EXECUTION_ERROR',\n // Code Interpreter Errors (501) - Feature not available in image variant\n PYTHON_NOT_AVAILABLE: 'PYTHON_NOT_AVAILABLE',\n JAVASCRIPT_NOT_AVAILABLE: 'JAVASCRIPT_NOT_AVAILABLE',\n // OpenCode Errors (503)\n OPENCODE_STARTUP_FAILED: 'OPENCODE_STARTUP_FAILED',\n // Process Readiness Errors (408/500)\n PROCESS_READY_TIMEOUT: 'PROCESS_READY_TIMEOUT',\n PROCESS_EXITED_BEFORE_READY: 'PROCESS_EXITED_BEFORE_READY',\n // Validation Errors (400)\n VALIDATION_FAILED: 'VALIDATION_FAILED',\n // Generic Errors (400/500)\n INVALID_JSON_RESPONSE: 'INVALID_JSON_RESPONSE',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n INTERNAL_ERROR: 'INTERNAL_ERROR'\n};\n","import { ErrorCode } from './codes';\n/**\n * Maps error codes to HTTP status codes\n * Centralized mapping ensures consistency across SDK\n */\nexport const ERROR_STATUS_MAP = {\n // 404 Not Found\n [ErrorCode.FILE_NOT_FOUND]: 404,\n [ErrorCode.COMMAND_NOT_FOUND]: 404,\n [ErrorCode.PROCESS_NOT_FOUND]: 404,\n [ErrorCode.PORT_NOT_EXPOSED]: 404,\n [ErrorCode.GIT_REPOSITORY_NOT_FOUND]: 404,\n [ErrorCode.GIT_BRANCH_NOT_FOUND]: 404,\n [ErrorCode.CONTEXT_NOT_FOUND]: 404,\n // 400 Bad Request\n [ErrorCode.IS_DIRECTORY]: 400,\n [ErrorCode.NOT_DIRECTORY]: 400,\n [ErrorCode.INVALID_COMMAND]: 400,\n [ErrorCode.INVALID_PORT_NUMBER]: 400,\n [ErrorCode.INVALID_PORT]: 400,\n [ErrorCode.INVALID_GIT_URL]: 400,\n [ErrorCode.CUSTOM_DOMAIN_REQUIRED]: 400,\n [ErrorCode.INVALID_JSON_RESPONSE]: 400,\n [ErrorCode.NAME_TOO_LONG]: 400,\n [ErrorCode.VALIDATION_FAILED]: 400,\n [ErrorCode.MISSING_CREDENTIALS]: 400,\n [ErrorCode.INVALID_MOUNT_CONFIG]: 400,\n // 401 Unauthorized\n [ErrorCode.GIT_AUTH_FAILED]: 401,\n // 403 Forbidden\n [ErrorCode.PERMISSION_DENIED]: 403,\n [ErrorCode.COMMAND_PERMISSION_DENIED]: 403,\n [ErrorCode.PROCESS_PERMISSION_DENIED]: 403,\n [ErrorCode.READ_ONLY]: 403,\n // 409 Conflict\n [ErrorCode.FILE_EXISTS]: 409,\n [ErrorCode.PORT_ALREADY_EXPOSED]: 409,\n [ErrorCode.PORT_IN_USE]: 409,\n [ErrorCode.RESOURCE_BUSY]: 409,\n [ErrorCode.SESSION_ALREADY_EXISTS]: 409,\n // 413 Content Too Large\n [ErrorCode.FILE_TOO_LARGE]: 413,\n // 502 Bad Gateway\n [ErrorCode.SERVICE_NOT_RESPONDING]: 502,\n [ErrorCode.GIT_NETWORK_ERROR]: 502,\n // Backup errors\n [ErrorCode.BACKUP_NOT_FOUND]: 404,\n [ErrorCode.BACKUP_EXPIRED]: 400,\n [ErrorCode.INVALID_BACKUP_CONFIG]: 400,\n [ErrorCode.BACKUP_CREATE_FAILED]: 500,\n [ErrorCode.BACKUP_RESTORE_FAILED]: 500,\n // 501 Not Implemented (feature not available in image variant)\n [ErrorCode.PYTHON_NOT_AVAILABLE]: 501,\n [ErrorCode.JAVASCRIPT_NOT_AVAILABLE]: 501,\n // 503 Service Unavailable\n [ErrorCode.INTERPRETER_NOT_READY]: 503,\n [ErrorCode.OPENCODE_STARTUP_FAILED]: 503,\n // 408 Request Timeout\n [ErrorCode.PROCESS_READY_TIMEOUT]: 408,\n // 500 Internal Server Error\n [ErrorCode.PROCESS_EXITED_BEFORE_READY]: 500,\n [ErrorCode.NO_SPACE]: 500,\n [ErrorCode.TOO_MANY_FILES]: 500,\n [ErrorCode.TOO_MANY_LINKS]: 500,\n [ErrorCode.FILESYSTEM_ERROR]: 500,\n [ErrorCode.COMMAND_EXECUTION_ERROR]: 500,\n [ErrorCode.STREAM_START_ERROR]: 500,\n [ErrorCode.PROCESS_ERROR]: 500,\n [ErrorCode.PORT_OPERATION_ERROR]: 500,\n [ErrorCode.GIT_CLONE_FAILED]: 500,\n [ErrorCode.GIT_CHECKOUT_FAILED]: 500,\n [ErrorCode.GIT_OPERATION_FAILED]: 500,\n [ErrorCode.CODE_EXECUTION_ERROR]: 500,\n [ErrorCode.BUCKET_MOUNT_ERROR]: 500,\n [ErrorCode.S3FS_MOUNT_ERROR]: 500,\n [ErrorCode.UNKNOWN_ERROR]: 500,\n [ErrorCode.INTERNAL_ERROR]: 500\n};\n/**\n * Get HTTP status code for an error code\n * Falls back to 500 for unknown errors\n */\nexport function getHttpStatus(code) {\n return ERROR_STATUS_MAP[code] || 500;\n}\n"],"mappings":";;;;;AAIA,MAAa,YAAY;CAErB,gBAAgB;CAEhB,mBAAmB;CAEnB,aAAa;CAEb,cAAc;CACd,eAAe;CAEf,gBAAgB;CAEhB,UAAU;CACV,gBAAgB;CAChB,eAAe;CACf,WAAW;CACX,eAAe;CACf,gBAAgB;CAChB,kBAAkB;CAElB,mBAAmB;CAEnB,2BAA2B;CAC3B,iBAAiB;CAEjB,yBAAyB;CACzB,oBAAoB;CAEpB,mBAAmB;CAEnB,2BAA2B;CAC3B,eAAe;CAEf,wBAAwB;CAExB,sBAAsB;CACtB,aAAa;CAEb,kBAAkB;CAElB,qBAAqB;CACrB,cAAc;CAEd,wBAAwB;CACxB,sBAAsB;CAEtB,wBAAwB;CAExB,0BAA0B;CAC1B,sBAAsB;CAEtB,iBAAiB;CAEjB,mBAAmB;CAEnB,iBAAiB;CAEjB,kBAAkB;CAClB,qBAAqB;CACrB,sBAAsB;CAEtB,oBAAoB;CACpB,kBAAkB;CAClB,qBAAqB;CACrB,sBAAsB;CAEtB,sBAAsB;CACtB,uBAAuB;CAEvB,kBAAkB;CAElB,gBAAgB;CAChB,uBAAuB;CAEvB,uBAAuB;CAEvB,mBAAmB;CAEnB,sBAAsB;CAEtB,sBAAsB;CACtB,0BAA0B;CAE1B,yBAAyB;CAEzB,uBAAuB;CACvB,6BAA6B;CAE7B,mBAAmB;CAEnB,uBAAuB;CACvB,eAAe;CACf,gBAAgB;CACnB;;;;;;;;AC7FD,MAAa,mBAAmB;EAE3B,UAAU,iBAAiB;EAC3B,UAAU,oBAAoB;EAC9B,UAAU,oBAAoB;EAC9B,UAAU,mBAAmB;EAC7B,UAAU,2BAA2B;EACrC,UAAU,uBAAuB;EACjC,UAAU,oBAAoB;EAE9B,UAAU,eAAe;EACzB,UAAU,gBAAgB;EAC1B,UAAU,kBAAkB;EAC5B,UAAU,sBAAsB;EAChC,UAAU,eAAe;EACzB,UAAU,kBAAkB;EAC5B,UAAU,yBAAyB;EACnC,UAAU,wBAAwB;EAClC,UAAU,gBAAgB;EAC1B,UAAU,oBAAoB;EAC9B,UAAU,sBAAsB;EAChC,UAAU,uBAAuB;EAEjC,UAAU,kBAAkB;EAE5B,UAAU,oBAAoB;EAC9B,UAAU,4BAA4B;EACtC,UAAU,4BAA4B;EACtC,UAAU,YAAY;EAEtB,UAAU,cAAc;EACxB,UAAU,uBAAuB;EACjC,UAAU,cAAc;EACxB,UAAU,gBAAgB;EAC1B,UAAU,yBAAyB;EAEnC,UAAU,iBAAiB;EAE3B,UAAU,yBAAyB;EACnC,UAAU,oBAAoB;EAE9B,UAAU,mBAAmB;EAC7B,UAAU,iBAAiB;EAC3B,UAAU,wBAAwB;EAClC,UAAU,uBAAuB;EACjC,UAAU,wBAAwB;EAElC,UAAU,uBAAuB;EACjC,UAAU,2BAA2B;EAErC,UAAU,wBAAwB;EAClC,UAAU,0BAA0B;EAEpC,UAAU,wBAAwB;EAElC,UAAU,8BAA8B;EACxC,UAAU,WAAW;EACrB,UAAU,iBAAiB;EAC3B,UAAU,iBAAiB;EAC3B,UAAU,mBAAmB;EAC7B,UAAU,0BAA0B;EACpC,UAAU,qBAAqB;EAC/B,UAAU,gBAAgB;EAC1B,UAAU,uBAAuB;EACjC,UAAU,mBAAmB;EAC7B,UAAU,sBAAsB;EAChC,UAAU,uBAAuB;EACjC,UAAU,uBAAuB;EACjC,UAAU,qBAAqB;EAC/B,UAAU,mBAAmB;EAC7B,UAAU,gBAAgB;EAC1B,UAAU,iBAAiB;CAC/B"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { $ as Process, A as RequestConfig, B as ExecResult, C as CommandClient, Ct as Execution, D as ContainerStub, E as BaseApiResponse, F as BucketCredentials, G as GitCheckoutResult, H as FileChunk, I as BucketProvider, J as LogEvent, K as ISandbox, L as DirectoryBackup, M as SessionRequest, N as BackupOptions, O as ErrorResponse, P as BaseExecOptions, Q as PortListResult, R as ExecEvent, S as WriteFileRequest, St as CreateContextOptions, T as BackupClient, Tt as RunCodeOptions, U as FileMetadata, V as ExecutionSession, W as FileStreamEvent, X as PortCloseResult, Y as MountBucketOptions, Z as PortExposeResult, _ as GitClient, _t as ExecuteRequest, a as CreateSessionRequest, at as ProcessOptions, b as MkdirRequest, bt as PtyOptions, c as DeleteSessionResponse, ct as RestoreBackupResult, d as ProcessClient, dt as StreamOptions, et as ProcessCleanupResult, f as PortClient, ft as WaitForLogResult, g as GitCheckoutRequest, gt as isProcessStatus, h as InterpreterClient, ht as isProcess, i as CommandsResponse, it as ProcessLogsResult, j as ResponseHandler, k as HttpClientOptions, l as PingResponse, lt as SandboxOptions, m as ExecutionCallbacks, mt as isExecResult, n as getSandbox, nt as ProcessKillResult, o as CreateSessionResponse, ot as ProcessStartResult, p as UnexposePortRequest, pt as WaitForPortOptions, q as ListFilesOptions, r as SandboxClient, rt as ProcessListResult, s as DeleteSessionRequest, st as ProcessStatus, t as Sandbox, tt as ProcessInfoResult, u as UtilityClient, ut as SessionOptions, v as FileClient, vt as ExposePortRequest, w as ExecuteResponse, wt as ExecutionResult, x as ReadFileRequest, xt as CodeContext, y as FileOperationRequest, yt as StartProcessRequest, z as ExecOptions } from "./sandbox-8qsR1OnB.js";
2
- import { a as InvalidBackupConfigContext, c as ProcessReadyTimeoutContext, d as ErrorCode, i as BackupRestoreContext, l as ErrorResponse$1, n as BackupExpiredContext, r as BackupNotFoundContext, s as ProcessExitedBeforeReadyContext, t as BackupCreateContext, u as OperationType } from "./contexts-BHx40XTT.js";
1
+ import { $ as Process, A as RequestConfig, B as ExecResult, C as CommandClient, Ct as Execution, D as ContainerStub, E as BaseApiResponse, F as BucketCredentials, G as GitCheckoutResult, H as FileChunk, I as BucketProvider, J as LogEvent, K as ISandbox, L as DirectoryBackup, M as SessionRequest, N as BackupOptions, O as ErrorResponse, P as BaseExecOptions, Q as PortListResult, R as ExecEvent, S as WriteFileRequest, St as CreateContextOptions, T as BackupClient, Tt as RunCodeOptions, U as FileMetadata, V as ExecutionSession, W as FileStreamEvent, X as PortCloseResult, Y as MountBucketOptions, Z as PortExposeResult, _ as GitClient, _t as ExecuteRequest, a as CreateSessionRequest, at as ProcessOptions, b as MkdirRequest, bt as PtyOptions, c as DeleteSessionResponse, ct as RestoreBackupResult, d as ProcessClient, dt as StreamOptions, et as ProcessCleanupResult, f as PortClient, ft as WaitForLogResult, g as GitCheckoutRequest, gt as isProcessStatus, h as InterpreterClient, ht as isProcess, i as CommandsResponse, it as ProcessLogsResult, j as ResponseHandler, k as HttpClientOptions, l as PingResponse, lt as SandboxOptions, m as ExecutionCallbacks, mt as isExecResult, n as getSandbox, nt as ProcessKillResult, o as CreateSessionResponse, ot as ProcessStartResult, p as UnexposePortRequest, pt as WaitForPortOptions, q as ListFilesOptions, r as SandboxClient, rt as ProcessListResult, s as DeleteSessionRequest, st as ProcessStatus, t as Sandbox, tt as ProcessInfoResult, u as UtilityClient, ut as SessionOptions, v as FileClient, vt as ExposePortRequest, w as ExecuteResponse, wt as ExecutionResult, x as ReadFileRequest, xt as CodeContext, y as FileOperationRequest, yt as StartProcessRequest, z as ExecOptions } from "./sandbox-DGAjk7r3.js";
2
+ import { a as InvalidBackupConfigContext, c as ProcessReadyTimeoutContext, d as ErrorCode, i as BackupRestoreContext, l as ErrorResponse$1, n as BackupExpiredContext, r as BackupNotFoundContext, s as ProcessExitedBeforeReadyContext, t as BackupCreateContext, u as OperationType } from "./contexts-B0qA8qmx.js";
3
3
 
4
4
  //#region src/errors/classes.d.ts
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/errors/classes.ts","../src/file-stream.ts","../src/interpreter.ts","../src/pty/proxy.ts","../src/request-handler.ts","../src/sse-parser.ts","../src/storage-mount/errors.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/errors/classes.ts","../src/file-stream.ts","../src/interpreter.ts","../src/pty/proxy.ts","../src/request-handler.ts","../src/sse-parser.ts","../src/storage-mount/errors.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { _ as getEnvString, a as isExecResult, c as shellEscape, d as TraceContext, f as Execution, g as filterEnvVars, h as extractRepoName, i as isWSStreamChunk, l as createLogger, m as GitLogger, n as isWSError, o as isProcess, p as ResultImpl, r as isWSResponse, s as isProcessStatus, t as generateRequestId, u as createNoOpLogger, v as partitionEnvVars } from "./dist-D9B_6gn_.js";
2
- import { t as ErrorCode } from "./errors-CYUY62c6.js";
2
+ import { t as ErrorCode } from "./errors-CAZT-Gtg.js";
3
3
  import { Container, getContainer, switchPort } from "@cloudflare/containers";
4
4
  import { AwsClient } from "aws4fetch";
5
5
 
@@ -75,6 +75,18 @@ var FileExistsError = class extends SandboxError {
75
75
  }
76
76
  };
77
77
  /**
78
+ * Error thrown when a file is too large
79
+ */
80
+ var FileTooLargeError = class extends SandboxError {
81
+ constructor(errorResponse) {
82
+ super(errorResponse);
83
+ this.name = "FileTooLargeError";
84
+ }
85
+ get path() {
86
+ return this.context.path;
87
+ }
88
+ };
89
+ /**
78
90
  * Generic file system error (permissions, disk full, etc.)
79
91
  */
80
92
  var FileSystemError = class extends SandboxError {
@@ -592,6 +604,7 @@ function createErrorFromResponse(errorResponse) {
592
604
  switch (errorResponse.code) {
593
605
  case ErrorCode.FILE_NOT_FOUND: return new FileNotFoundError(errorResponse);
594
606
  case ErrorCode.FILE_EXISTS: return new FileExistsError(errorResponse);
607
+ case ErrorCode.FILE_TOO_LARGE: return new FileTooLargeError(errorResponse);
595
608
  case ErrorCode.PERMISSION_DENIED: return new PermissionDeniedError(errorResponse);
596
609
  case ErrorCode.IS_DIRECTORY:
597
610
  case ErrorCode.NOT_DIRECTORY:
@@ -2414,7 +2427,8 @@ async function proxyToSandbox(request, env) {
2414
2427
  method: request.method,
2415
2428
  headers,
2416
2429
  body: request.body,
2417
- duplex: "half"
2430
+ duplex: "half",
2431
+ redirect: "manual"
2418
2432
  });
2419
2433
  return await sandbox.containerFetch(proxyRequest, port);
2420
2434
  } catch (error) {
@@ -2698,7 +2712,7 @@ function buildS3fsSource(bucket, prefix) {
2698
2712
  * This file is auto-updated by .github/changeset-version.ts during releases
2699
2713
  * DO NOT EDIT MANUALLY - Changes will be overwritten on the next version bump
2700
2714
  */
2701
- const SDK_VERSION = "0.7.5";
2715
+ const SDK_VERSION = "0.7.7";
2702
2716
 
2703
2717
  //#endregion
2704
2718
  //#region src/sandbox.ts
@@ -3820,7 +3834,7 @@ var Sandbox = class Sandbox extends Container {
3820
3834
  * @param options - Configuration options
3821
3835
  * @param options.hostname - Your Worker's domain name (required for preview URL construction)
3822
3836
  * @param options.name - Optional friendly name for the port
3823
- * @param options.token - Optional custom token for the preview URL (1-16 characters: lowercase letters, numbers, hyphens, underscores)
3837
+ * @param options.token - Optional custom token for the preview URL (1-16 characters: lowercase letters, numbers, underscores)
3824
3838
  * If not provided, a random 16-character token will be generated automatically
3825
3839
  * @returns Preview URL information including the full URL, port number, and optional name
3826
3840
  *
@@ -3833,9 +3847,9 @@ var Sandbox = class Sandbox extends Container {
3833
3847
  * // With custom token for stable URLs across deployments
3834
3848
  * const { url } = await sandbox.exposePort(8080, {
3835
3849
  * hostname: 'example.com',
3836
- * token: 'my-token-v1'
3850
+ * token: 'my_token_v1'
3837
3851
  * });
3838
- * // url: https://8080-sandbox-id-my-token-v1.example.com
3852
+ * // url: https://8080-sandbox-id-my_token_v1.example.com
3839
3853
  */
3840
3854
  async exposePort(port, options) {
3841
3855
  if (!validatePort(port)) throw new SecurityError(`Invalid port number: ${port}. Must be 1024-65535, excluding 3000 (sandbox control plane).`);
@@ -4208,13 +4222,13 @@ var Sandbox = class Sandbox extends Container {
4208
4222
  "-X PUT",
4209
4223
  "-H 'Content-Type: application/octet-stream'",
4210
4224
  "--connect-timeout 10",
4211
- "--max-time 300",
4225
+ "--max-time 1800",
4212
4226
  "--retry 2",
4213
4227
  "--retry-max-time 60",
4214
- `--data-binary @${shellEscape(archivePath)}`,
4228
+ `-T ${shellEscape(archivePath)}`,
4215
4229
  shellEscape(presignedUrl)
4216
4230
  ].join(" ");
4217
- const result = await this.execWithSession(curlCmd, backupSession, { timeout: 31e4 });
4231
+ const result = await this.execWithSession(curlCmd, backupSession, { timeout: 181e4 });
4218
4232
  if (result.exitCode !== 0) throw new BackupCreateError({
4219
4233
  message: `Presigned URL upload failed (exit code ${result.exitCode}): ${result.stderr}`,
4220
4234
  code: ErrorCode.BACKUP_CREATE_FAILED,
@@ -4226,16 +4240,19 @@ var Sandbox = class Sandbox extends Container {
4226
4240
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
4227
4241
  });
4228
4242
  const head = await this.requireBackupBucket().head(r2Key);
4229
- if (!head || head.size !== archiveSize) throw new BackupCreateError({
4230
- message: `Upload verification failed: expected ${archiveSize} bytes, got ${head?.size ?? 0}`,
4231
- code: ErrorCode.BACKUP_CREATE_FAILED,
4232
- httpStatus: 500,
4233
- context: {
4234
- dir,
4235
- backupId
4236
- },
4237
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
4238
- });
4243
+ if (!head || head.size !== archiveSize) {
4244
+ const actualSize = head?.size ?? 0;
4245
+ throw new BackupCreateError({
4246
+ message: `Upload verification failed: expected ${archiveSize} bytes, got ${actualSize}.${result.exitCode === 0 && actualSize === 0 ? " This usually means the BACKUP_BUCKET R2 binding is using local storage while presigned URLs upload to remote R2. Add `\"remote\": true` to your BACKUP_BUCKET R2 binding in wrangler.jsonc to fix this." : ""}`,
4247
+ code: ErrorCode.BACKUP_CREATE_FAILED,
4248
+ httpStatus: 500,
4249
+ context: {
4250
+ dir,
4251
+ backupId
4252
+ },
4253
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
4254
+ });
4255
+ }
4239
4256
  }
4240
4257
  /**
4241
4258
  * Download a backup archive via presigned GET URL.
@@ -4254,13 +4271,13 @@ var Sandbox = class Sandbox extends Container {
4254
4271
  const curlCmd = [
4255
4272
  "curl -sSf",
4256
4273
  "--connect-timeout 10",
4257
- "--max-time 300",
4274
+ "--max-time 1800",
4258
4275
  "--retry 2",
4259
4276
  "--retry-max-time 60",
4260
4277
  `-o ${shellEscape(tmpPath)}`,
4261
4278
  shellEscape(presignedUrl)
4262
4279
  ].join(" ");
4263
- const result = await this.execWithSession(curlCmd, backupSession, { timeout: 31e4 });
4280
+ const result = await this.execWithSession(curlCmd, backupSession, { timeout: 181e4 });
4264
4281
  if (result.exitCode !== 0) {
4265
4282
  await this.execWithSession(`rm -f ${shellEscape(tmpPath)}`, backupSession).catch(() => {});
4266
4283
  throw new BackupRestoreError({