@cloudflare/sandbox 0.13.0-next.788.1 → 0.13.0-next.802.1
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/bridge/index.js +4 -4
- package/dist/{contexts-1EsLHByO.d.ts → contexts-DNFVmC9N.d.ts} +4 -1
- package/dist/contexts-DNFVmC9N.d.ts.map +1 -0
- package/dist/errors/index.d.ts +2 -2
- package/dist/errors/index.js +2 -2
- package/dist/{errors-QYlSkVGz.js → errors--yR3zLC_.js} +2 -2
- package/dist/{errors-QYlSkVGz.js.map → errors--yR3zLC_.js.map} +1 -1
- package/dist/{errors-CXR0xBpw.js → errors-Bb3s6nBS.js} +7 -1
- package/dist/errors-Bb3s6nBS.js.map +1 -0
- package/dist/extensions/index.js +3 -3
- package/dist/{extensions-Be5HnDGt.js → extensions-BKL2zqL4.js} +3 -3
- package/dist/{extensions-Be5HnDGt.js.map → extensions-BKL2zqL4.js.map} +1 -1
- package/dist/git/index.js +3 -3
- package/dist/{index-HNYBk-az.d.ts → index-CfpTXmNv.d.ts} +2 -2
- package/dist/{index-HNYBk-az.d.ts.map → index-CfpTXmNv.d.ts.map} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/interpreter/index.js +3 -3
- package/dist/openai/index.js +1 -1
- package/dist/opencode/index.d.ts +1 -1
- package/dist/opencode/index.js +3 -3
- package/dist/{sandbox-pJ4JSnDx.js → sandbox-CaesWCLh.js} +115 -24
- package/dist/sandbox-CaesWCLh.js.map +1 -0
- package/package.json +1 -1
- package/dist/contexts-1EsLHByO.d.ts.map +0 -1
- package/dist/errors-CXR0xBpw.js.map +0 -1
- package/dist/sandbox-pJ4JSnDx.js.map +0 -1
package/dist/bridge/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import "../errors-
|
|
2
|
-
import "../errors
|
|
1
|
+
import "../errors-Bb3s6nBS.js";
|
|
2
|
+
import "../errors--yR3zLC_.js";
|
|
3
3
|
import "../dist-n_eniPAR.js";
|
|
4
|
-
import { g as validateTunnelName, h as validatePort, m as SandboxSecurityError, n as getSandbox$1, x as streamFile } from "../sandbox-
|
|
5
|
-
import "../extensions-
|
|
4
|
+
import { g as validateTunnelName, h as validatePort, m as SandboxSecurityError, n as getSandbox$1, x as streamFile } from "../sandbox-CaesWCLh.js";
|
|
5
|
+
import "../extensions-BKL2zqL4.js";
|
|
6
6
|
import { DurableObject, env } from "cloudflare:workers";
|
|
7
7
|
import { Hono } from "hono";
|
|
8
8
|
|
|
@@ -61,6 +61,9 @@ declare const ErrorCode: {
|
|
|
61
61
|
readonly S3FS_MOUNT_ERROR: "S3FS_MOUNT_ERROR";
|
|
62
62
|
readonly MISSING_CREDENTIALS: "MISSING_CREDENTIALS";
|
|
63
63
|
readonly INVALID_MOUNT_CONFIG: "INVALID_MOUNT_CONFIG";
|
|
64
|
+
readonly TUNNEL_RUN_CONFLICT: "TUNNEL_RUN_CONFLICT";
|
|
65
|
+
readonly TUNNEL_START_ERROR: "TUNNEL_START_ERROR";
|
|
66
|
+
readonly CLOUDFLARED_NOT_FOUND: "CLOUDFLARED_NOT_FOUND";
|
|
64
67
|
readonly BACKUP_CREATE_FAILED: "BACKUP_CREATE_FAILED";
|
|
65
68
|
readonly BACKUP_RESTORE_FAILED: "BACKUP_RESTORE_FAILED";
|
|
66
69
|
readonly BACKUP_NOT_FOUND: "BACKUP_NOT_FOUND";
|
|
@@ -460,4 +463,4 @@ interface RPCTransportContext {
|
|
|
460
463
|
}
|
|
461
464
|
//#endregion
|
|
462
465
|
export { PortAlreadyExposedContext as A, ProcessWaitTimeoutContext as B, InvalidProcessCwdContext as C, OpenCodeStartupContext as D, InvalidTerminalCwdContext as E, ProcessExitedBeforeLogContext as F, TerminalControlErrorContext as G, RPCTransportErrorKind as H, ProcessExitedBeforeReadyContext as I, ErrorResponse as J, TerminalNotFoundContext as K, ProcessNotFoundContext as L, PortNotExposedContext as M, ProcessAbortedContext as N, OperationInterruptedContext as O, ProcessErrorContext as P, ProcessReadyTimeoutContext as R, InvalidProcessCursorContext as S, InvalidTerminalCursorContext as T, StaleProcessHandleContext as U, RPCTransportContext as V, StaleTerminalHandleContext as W, OperationType as X, Operation as Y, ErrorCode as Z, GitRepositoryNotFoundContext as _, CodeExecutionContext as a, InvalidBackupConfigContext as b, ContainerUnavailableContext as c, FileNotFoundContext as d, FileSystemContext as f, GitErrorContext as g, GitBranchNotFoundContext as h, BackupRestoreContext as i, PortErrorContext as j, OperationInterruptedReason as k, ContextNotFoundContext as l, GitAuthFailedContext as m, BackupExpiredContext as n, CommandErrorContext as o, FileTooLargeContext as p, ValidationFailedContext as q, BackupNotFoundContext as r, CommandNotFoundContext as s, BackupCreateContext as t, FileExistsContext as u, InternalErrorContext as v, InvalidProcessEnvironmentContext as w, InvalidPortContext as x, InterpreterNotReadyContext as y, ProcessSpawnFailedContext as z };
|
|
463
|
-
//# sourceMappingURL=contexts-
|
|
466
|
+
//# sourceMappingURL=contexts-DNFVmC9N.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts-DNFVmC9N.d.ts","names":["ErrorCode","ErrorCode","Operation","OperationType","ErrorResponse","TContext","Record","ServiceError","ServiceResult","T","ProcessExit","OperationType","FileNotFoundContext","FileExistsContext","FileTooLargeContext","FileSystemContext","CommandNotFoundContext","CommandErrorContext","ProcessNotFoundContext","ProcessErrorContext","InvalidProcessCwdContext","InvalidProcessEnvironmentContext","ProcessSpawnFailedContext","InvalidProcessCursorContext","StaleProcessHandleContext","ProcessWaitTimeoutContext","ProcessAbortedContext","TerminalNotFoundContext","InvalidTerminalCwdContext","InvalidTerminalCursorContext","TerminalControlErrorContext","StaleTerminalHandleContext","ProcessReadyTimeoutContext","ProcessExitedBeforeReadyContext","ProcessExitedBeforeLogContext","PortAlreadyExposedContext","PortNotExposedContext","InvalidPortContext","PortErrorContext","GitRepositoryNotFoundContext","GitAuthFailedContext","GitBranchNotFoundContext","GitErrorContext","InterpreterNotReadyContext","ContextNotFoundContext","CodeExecutionContext","ValidationFailedContext","Array","BucketMountContext","MissingCredentialsContext","InvalidMountConfigContext","BackupCreateContext","BackupRestoreContext","BackupNotFoundContext","BackupExpiredContext","InvalidBackupConfigContext","OpenCodeStartupContext","InternalErrorContext","ContainerUnavailableContext","OperationInterruptedReason","OperationInterruptedContext","RPCTransportErrorKind","RPCTransportContext"],"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 TERMINAL_NOT_FOUND: \"TERMINAL_NOT_FOUND\";\n readonly INVALID_PROCESS_CWD: \"INVALID_PROCESS_CWD\";\n readonly INVALID_PROCESS_ENVIRONMENT: \"INVALID_PROCESS_ENVIRONMENT\";\n readonly INVALID_PROCESS_CURSOR: \"INVALID_PROCESS_CURSOR\";\n readonly INVALID_TERMINAL_CWD: \"INVALID_TERMINAL_CWD\";\n readonly INVALID_TERMINAL_CURSOR: \"INVALID_TERMINAL_CURSOR\";\n readonly STALE_PROCESS_HANDLE: \"STALE_PROCESS_HANDLE\";\n readonly STALE_TERMINAL_HANDLE: \"STALE_TERMINAL_HANDLE\";\n readonly PROCESS_WAIT_TIMEOUT: \"PROCESS_WAIT_TIMEOUT\";\n readonly PROCESS_ABORTED: \"PROCESS_ABORTED\";\n readonly PROCESS_PERMISSION_DENIED: \"PROCESS_PERMISSION_DENIED\";\n readonly PROCESS_ERROR: \"PROCESS_ERROR\";\n readonly PROCESS_SPAWN_FAILED: \"PROCESS_SPAWN_FAILED\";\n readonly TERMINAL_CONTROL_ERROR: \"TERMINAL_CONTROL_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 BUCKET_UNMOUNT_ERROR: \"BUCKET_UNMOUNT_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 TUNNEL_RUN_CONFLICT: \"TUNNEL_RUN_CONFLICT\";\n readonly TUNNEL_START_ERROR: \"TUNNEL_START_ERROR\";\n readonly CLOUDFLARED_NOT_FOUND: \"CLOUDFLARED_NOT_FOUND\";\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 PROCESS_EXITED_BEFORE_LOG: \"PROCESS_EXITED_BEFORE_LOG\";\n readonly WATCH_NOT_FOUND: \"WATCH_NOT_FOUND\";\n readonly WATCH_START_ERROR: \"WATCH_START_ERROR\";\n readonly WATCH_STOP_ERROR: \"WATCH_STOP_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 readonly CONTAINER_UNAVAILABLE: \"CONTAINER_UNAVAILABLE\";\n readonly CONTROL_PROTOCOL_INCOMPATIBLE: \"CONTROL_PROTOCOL_INCOMPATIBLE\";\n readonly OPERATION_INTERRUPTED: \"OPERATION_INTERRUPTED\";\n readonly RPC_TRANSPORT_ERROR: \"RPC_TRANSPORT_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 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 { ProcessExit } from '../process-types';\nimport 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 InvalidProcessCwdContext {\n processId?: string;\n cwd: string;\n reason: string;\n}\nexport interface InvalidProcessEnvironmentContext {\n processId?: string;\n name?: string;\n reason: string;\n}\nexport interface ProcessSpawnFailedContext {\n processId: string;\n command: string;\n cwd?: string;\n stderr?: string;\n}\nexport interface InvalidProcessCursorContext {\n processId: string;\n cursor?: string;\n reason: string;\n}\nexport interface StaleProcessHandleContext {\n processId: string;\n pid: number;\n operation: string;\n}\nexport interface ProcessWaitTimeoutContext {\n processId: string;\n operation: 'output' | 'waitForExit' | 'waitForLog';\n timeout: number;\n}\nexport interface ProcessAbortedContext {\n processId: string;\n operation: string;\n}\nexport interface TerminalNotFoundContext {\n terminalId: string;\n}\nexport interface InvalidTerminalCwdContext {\n terminalId: string;\n cwd: string;\n reason: string;\n}\nexport interface InvalidTerminalCursorContext {\n terminalId: string;\n cursor?: string;\n reason: string;\n}\nexport interface TerminalControlErrorContext {\n terminalId: string;\n operation: string;\n reason?: string;\n failure?: {\n code: string;\n message: string;\n };\n}\nexport interface StaleTerminalHandleContext {\n terminalId: string;\n operation: 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}\nexport interface ProcessExitedBeforeLogContext {\n processId: string;\n pid: number;\n exit: ProcessExit;\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/**\n * Container availability error context. Surfaced when the sandbox container\n * cannot accept the incoming RPC connection. The container may be starting\n * up, undergoing a runtime replacement, or temporarily unhealthy. The\n * caller should retry the same operation.\n */\nexport interface ContainerUnavailableContext {\n /**\n * Categorical reason distinguishing startup unavailability from runtime\n * replacement and exhausted upgrade retries.\n */\n reason: 'container_starting' | 'container_unhealthy' | 'container_replaced' | 'rpc_upgrade_failed';\n /**\n * Always true — this error represents a transient unavailability, not a\n * permanent failure. Callers should retry the same operation.\n */\n retryable: true;\n /** Suggested delay in milliseconds before the next retry attempt. */\n retryAfterMs?: number;\n}\nexport type OperationInterruptedReason = 'runtime_replaced' | 'container_stopped' | 'transport_disposed' | 'sandbox_destroyed' | 'sandbox_lifetime_changed' | 'recovery_exhausted' | 'unknown';\nexport interface OperationInterruptedContext {\n reason: OperationInterruptedReason;\n operation: string;\n phase?: string;\n admitted: true | 'unknown';\n retryable: boolean;\n operationId?: string;\n operationKey?: string;\n idempotencyKey?: string;\n recoveryAttempts?: number;\n maxRecoveryAttempts?: number;\n backupId?: string;\n dir?: string;\n}\n/**\n * RPC transport error contexts. Surfaced when the capnweb WebSocket session\n * fails on the SDK side rather than the container reporting a structured\n * error. Always retryable — the next call will open a fresh connection.\n */\nexport type RPCTransportErrorKind = \n/** Server closed the WebSocket (container crash, DO eviction, network blip). */\n'peer_closed'\n/** Underlying socket fired the `error` event. */\n | 'connection_failed'\n/** WebSocket upgrade failed before the session was established. */\n | 'upgrade_failed'\n/** Peer sent a non-string frame; capnweb's wire format is JSON text only. */\n | 'invalid_frame'\n/** Peer sent a frame the wire-format parser rejected (capnweb readLoop SyntaxError). */\n | 'protocol_error' | 'session_disposed'\n/** Anything else that bubbled up from the transport with no recognisable shape. */\n | 'unknown';\nexport interface RPCTransportContext {\n /** Categorical bucket so callers can branch on `peer_closed` vs `upgrade_failed` etc. */\n kind: RPCTransportErrorKind;\n /** Original error message, verbatim from capnweb / our DeferredTransport. */\n originalMessage: string;\n /**\n * The underlying Error's `name` property. capnweb preserves this across\n * the wire for the standard built-ins (TypeError, SyntaxError, etc.), so\n * it's a more reliable hint than the message string for those cases.\n */\n errorName: string;\n /** WebSocket close code, when available (kind === 'peer_closed'). */\n closeCode?: number;\n /** WebSocket close reason, when available (kind === 'peer_closed'). */\n closeReason?: string;\n}\n//# sourceMappingURL=contexts.d.ts.map"],"mappings":";;;;;;;AAIA;AAoFYA,cApFSA,SAoFWA,EAAAA;;;;ECpFXE,SAAAA,YAyBpB,EAAA,cAAA;EACWC,SAAAA,aAAa,EAAA,eAAWD;EAKnBE,SAAAA,cAAaC,EAAAA,gBAAA;EAAYC,SAAAA,QAAAA,EAAAA,UAAAA;EAIhCL,SAAAA,cAAAA,EAAAA,gBAAAA;EAQME,SAAAA,aAAAA,EAAAA,eAAAA;EAKHE,SAAAA,SAAAA,EAAAA,WAAAA;EAAQ,SAAA,aAAA,EAAA,eAAA;;;;EC/CJO,SAAAA,yBAAmB,EAErBD,2BAAa;EAEXE,SAAAA,eAAiB,EAAA,iBAEnBF;EAEEG,SAAAA,uBAAmB,EAAA,yBAER;EAIXC,SAAAA,kBAAiB,EAAA,oBAEN;EAOXC,SAAAA,iBAAsB,EAAA,mBAAA;EAGtBC,SAAAA,kBAAmB,EAAA,oBAAA;EASnBC,SAAAA,mBAAsB,EAAA,qBAAA;EAGtBC,SAAAA,2BAAmB,EAAA,6BAAA;EAMnBC,SAAAA,sBAAwB,EAAA,wBAAA;EAKxBC,SAAAA,oBAAAA,EAAAA,sBAAgC;EAKhCC,SAAAA,uBAAyB,EAAA,yBAAA;EAMzBC,SAAAA,oBAAAA,EAA2B,sBAAA;EAK3BC,SAAAA,qBAAyB,EAAA,uBAAA;EAKzBC,SAAAA,oBAAyB,EAAA,sBAAA;EAKzBC,SAAAA,eAAqB,EAAA,iBAAA;EAIrBC,SAAAA,yBAAuB,EAAA,2BAAA;EAGvBC,SAAAA,aAAAA,EAAAA,eAAyB;EAKzBC,SAAAA,oBAAAA,EAA4B,sBAAA;EAK5BC,SAAAA,sBAA2B,EAAA,wBAAA;EAS3BC,SAAAA,oBAA0B,EAAA,sBAAA;EAO1BC,SAAAA,WAAAA,EAAAA,aAA0B;EAM1BC,SAAAA,gBAAAA,EAAAA,kBAA+B;EAM/BC,SAAAA,mBAAAA,EAAAA,qBAGPxB;EAKOyB,SAAAA,YAAAA,EAAAA,cAAyB;EAIzBC,SAAAA,sBAAqB,EAAA,wBAAA;EAGrBC,SAAAA,oBAAkB,EAAA,sBAAA;EAIlBC,SAAAA,sBAAgB,EAAA,wBAAA;EAQhBC,SAAAA,wBAA4B,EAAA,0BAAA;EAG5BC,SAAAA,oBAAoB,EAAA,sBAAA;EAGpBC,SAAAA,eAAAA,EAAAA,iBAAwB;EAIxBC,SAAAA,iBAAe,EAAA,mBAAA;EAUfC,SAAAA,eAAAA,EAAAA,iBAA0B;EAI1BC,SAAAA,gBAAsB,EAAA,kBAAA;EAGtBC,SAAAA,mBAAoB,EAAA,qBAAA;EASpBC,SAAAA,oBAAuB,EAAA,sBACb;EA6BVK,SAAAA,kBAAmB,EAAA,oBAAA;EAMnBC,SAAAA,oBAAoB,EAAA,sBAAA;EAMpBC,SAAAA,gBAAqB,EAAA,kBAAA;EAGrBC,SAAAA,mBAAoB,EAAA,qBAAA;EAIpBC,SAAAA,oBAA0B,EAAA,sBAAA;EAM1BC,SAAAA,mBAAsB,EAAA,qBAAA;EAQtBC,SAAAA,kBAAoB,EAAA,oBAAA;EAWpBC,SAAAA,qBAA2B,EAAA,uBAAA;EAchCC,SAAAA,oBAA0B,EAAA,sBAAA;EACrBC,SAAAA,qBAA2B,EAAA,uBAChCD;EAkBAE,SAAAA,gBAAqB,EAAA,kBAAA;EAahBC,SAAAA,cAAmB,EAAA,gBAE1BD;;;;;;;;;;;;;;;;;;;;;;;KF/NE7D,SAAAA,WAAoBA,wBAAwBA;;;;;AApFxD;AAoFYA,cCpFSE,SDoFWF,EAAAA;;;;ECpFXE,SAAAA,SAyBpB,EAAA,WAAA;EACWC,SAAAA,WAAa,EAAA,aAAWD;EAKnBE,SAAAA,SAAa,EAAA,WAAAC;EAAYC,SAAAA,gBAAAA,EAAAA,kBAAAA;EAIhCL,SAAAA,cAAAA,EAAAA,gBAAAA;EAQME,SAAAA,eAAAA,EAAAA,iBAAAA;EAKHE,SAAAA,cAAAA,EAAAA,gBAAAA;EAAQ,SAAA,aAAA,EAAA,eAAA;;;;EC/CJO,SAAAA,YAAAA,EAAmB,cAErBD;EAEEE,SAAAA,SAAAA,EAAiB,WAAA;EAIjBC,SAAAA,YAAAA,EAAmB,cAErBH;EAIEI,SAAAA,aAAiB,EAAA,eAEnBJ;EAOEK,SAAAA,aAAAA,EAAAA,eAAsB;EAGtBC,SAAAA,cAAmB,EAAA,gBAAA;EASnBC,SAAAA,cAAAA,EAAsB,gBAAA;EAGtBC,SAAAA,YAAAA,EAAmB,cAAA;EAMnBC,SAAAA,mBAAwB,EAAA,qBAAA;EAKxBC,SAAAA,mBAAAA,EAAAA,qBAAgC;AAKjD,CAAA;AAMiBE,KDnCLpB,aAAAA,GCmCKoB,CAAAA,ODnCmBrB,SCmCQ,CAAA,CAAA,MAAA,ODnCgBA,SCmChB,CAAA;AAK5C;AAKA;AAKA;AAIA;AAGiB0B,UDpDAxB,aCoDAwB,CAAAA,WDpDyBtB,MCoDA,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA;EAKzBuB;AAKjB;AASA;EAOiBG,IAAAA,ED1EP/B,SC0EO+B;EAMAC;AAMjB;AAQA;EAIiBG,OAAAA,EAAAA,MAAAA;EAGAC;AAIjB;AAQA;EAGiBG,SAAAA,CAAAA,ED5GDrC,aC4GqB;EAGpBsC;AAIjB;AAUA;AAIA;EAGiBI,OAAAA,ED/HJxC,QC+HIwC;EASAC;AA8BjB;AAMA;EAMiBO,UAAAA,EAAAA,MAAAA;EAGAC;AAIjB;AAMA;EAQiBG,SAAAA,EAAAA,MAAAA;EAWAC;AAcjB;AACA;EAmBYG,UAAAA,CAAAA,EAAAA,MAAAA;EAaKC;;;;;;;;AFjTjB;AAoFA;UEnFiBlD,mBAAAA;;aAEFD;ADHf;AA0BYR,UCrBKU,iBAAAA,CDqBmBX;EAKnBE,IAAAA,EAAAA,MAAAA;EAAyBE,SAAAA,ECxB3BK,aDwB2BL;;AAY1BH,UClCCW,mBAAAA,CDkCDX;EAKHE,IAAAA,EAAAA,MAAAA;EAAQ,SAAA,ECrCNM,aDqCM;;;;AC/CJC,UAcAG,iBAAAA,CAdmB;EAInBF,IAAAA,EAAAA,MAAAA;EAIAC,SAAAA,EAQFH,aARqB;EAMnBI,MAAAA,CAAAA,EAAAA,MAAAA;EASAC,QAAAA,CAAAA,EAAAA,MAAAA;AAGjB;AASA;AAGA;AAMA;AAKiBK,UA1BAL,sBAAAA,CA0BgC;EAKhCM,OAAAA,EAAAA,MAAAA;AAMjB;AAKiBE,UAvCAP,mBAAAA,CAuCyB;EAKzBQ,OAAAA,EAAAA,MAAAA;EAKAC,QAAAA,CAAAA,EAAAA,MAAAA;EAIAC,MAAAA,CAAAA,EAAAA,MAAAA;EAGAC,MAAAA,CAAAA,EAAAA,MAAAA;AAKjB;AAKA;AASA;AAOA;AAMiBK,UA/EAf,sBAAAA,CA+E+B;EAM/BgB,SAAAA,EAAAA,MAAAA;AAQjB;AAIiBE,UA9FAjB,mBAAAA,CA8FqB;EAGrBkB,SAAAA,EAAAA,MAAAA;EAIAC,GAAAA,CAAAA,EAAAA,MAAAA;EAQAC,QAAAA,CAAAA,EAAAA,MAAAA;EAGAC,MAAAA,CAAAA,EAAAA,MAAAA;AAGjB;AAIiBE,UAjHAtB,wBAAAA,CAiHe;EAUfuB,SAAAA,CAAAA,EAAAA,MAAAA;EAIAC,GAAAA,EAAAA,MAAAA;EAGAC,MAAAA,EAAAA,MAAAA;AASjB;AA8BiBM,UApKA9B,gCAAAA,CAoKmB;EAMnB+B,SAAAA,CAAAA,EAAAA,MAAAA;EAMAC,IAAAA,CAAAA,EAAAA,MAAAA;EAGAC,MAAAA,EAAAA,MAAAA;AAIjB;AAMiBE,UAxLAlC,yBAAAA,CAwLsB;EAQtBmC,SAAAA,EAAAA,MAAAA;EAWAC,OAAAA,EAAAA,MAAAA;EAcLC,GAAAA,CAAAA,EAAAA,MAAAA;EACKC,MAAAA,CAAAA,EAAAA,MAAAA;AAmBjB;AAaiBE,UApPAvC,2BAAAA,CAsPPsC;;;;;UAjPOrC,yBAAAA;;;;;UAKAC,yBAAAA;;;;;UAKAC,qBAAAA;;;;UAIAC,uBAAAA;;;UAGAC,yBAAAA;;;;;UAKAC,4BAAAA;;;;;UAKAC,2BAAAA;;;;;;;;;UASAC,0BAAAA;;;;;;;UAOAC,0BAAAA;;;;;;UAMAC,+BAAAA;;;;;;UAMAC,6BAAAA;;;QAGPxB;;;;;UAKOyB,yBAAAA;;;;UAIAC,qBAAAA;;;UAGAC,kBAAAA;;;;UAIAC,gBAAAA;;;;;;;;UAQAC,4BAAAA;;;UAGAC,oBAAAA;;;UAGAC,wBAAAA;;;;UAIAC,eAAAA;;;;;;;;;;UAUAC,0BAAAA;;;;UAIAC,sBAAAA;;;UAGAC,oBAAAA;;;;;;;;;UASAC,uBAAAA;oBACKC;;;;;;;;;UA6BLI,mBAAAA;;;;;;UAMAC,oBAAAA;;;;;;UAMAC,qBAAAA;;;UAGAC,oBAAAA;;;;UAIAC,0BAAAA;;;;;;UAMAC,sBAAAA;;;;;;;;UAQAC,oBAAAA;;;;;;;;;;;UAWAC,2BAAAA;;;;;;;;;;;;;;KAcLC,0BAAAA;UACKC,2BAAAA;UACLD;;;;;;;;;;;;;;;;;;KAkBAE,qBAAAA;;;;;;;UAaKC,mBAAAA;;QAEPD"}
|
package/dist/errors/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as PortAlreadyExposedContext, B as ProcessWaitTimeoutContext, C as InvalidProcessCwdContext, E as InvalidTerminalCwdContext, F as ProcessExitedBeforeLogContext, G as TerminalControlErrorContext, H as RPCTransportErrorKind, I as ProcessExitedBeforeReadyContext, J as ErrorResponse, K as TerminalNotFoundContext, L as ProcessNotFoundContext, M as PortNotExposedContext, N as ProcessAbortedContext, O as OperationInterruptedContext, P as ProcessErrorContext, R as ProcessReadyTimeoutContext, S as InvalidProcessCursorContext, T as InvalidTerminalCursorContext, U as StaleProcessHandleContext, V as RPCTransportContext, W as StaleTerminalHandleContext, X as OperationType, Y as Operation, Z as ErrorCode, _ as GitRepositoryNotFoundContext, a as CodeExecutionContext, b as InvalidBackupConfigContext, c as ContainerUnavailableContext, d as FileNotFoundContext, f as FileSystemContext, g as GitErrorContext, h as GitBranchNotFoundContext, i as BackupRestoreContext, j as PortErrorContext, k as OperationInterruptedReason, l as ContextNotFoundContext, m as GitAuthFailedContext, n as BackupExpiredContext, o as CommandErrorContext, q as ValidationFailedContext, r as BackupNotFoundContext, s as CommandNotFoundContext, t as BackupCreateContext, u as FileExistsContext, v as InternalErrorContext, w as InvalidProcessEnvironmentContext, x as InvalidPortContext, y as InterpreterNotReadyContext, z as ProcessSpawnFailedContext } from "../contexts-
|
|
1
|
+
import { A as PortAlreadyExposedContext, B as ProcessWaitTimeoutContext, C as InvalidProcessCwdContext, E as InvalidTerminalCwdContext, F as ProcessExitedBeforeLogContext, G as TerminalControlErrorContext, H as RPCTransportErrorKind, I as ProcessExitedBeforeReadyContext, J as ErrorResponse, K as TerminalNotFoundContext, L as ProcessNotFoundContext, M as PortNotExposedContext, N as ProcessAbortedContext, O as OperationInterruptedContext, P as ProcessErrorContext, R as ProcessReadyTimeoutContext, S as InvalidProcessCursorContext, T as InvalidTerminalCursorContext, U as StaleProcessHandleContext, V as RPCTransportContext, W as StaleTerminalHandleContext, X as OperationType, Y as Operation, Z as ErrorCode, _ as GitRepositoryNotFoundContext, a as CodeExecutionContext, b as InvalidBackupConfigContext, c as ContainerUnavailableContext, d as FileNotFoundContext, f as FileSystemContext, g as GitErrorContext, h as GitBranchNotFoundContext, i as BackupRestoreContext, j as PortErrorContext, k as OperationInterruptedReason, l as ContextNotFoundContext, m as GitAuthFailedContext, n as BackupExpiredContext, o as CommandErrorContext, q as ValidationFailedContext, r as BackupNotFoundContext, s as CommandNotFoundContext, t as BackupCreateContext, u as FileExistsContext, v as InternalErrorContext, w as InvalidProcessEnvironmentContext, x as InvalidPortContext, y as InterpreterNotReadyContext, z as ProcessSpawnFailedContext } from "../contexts-DNFVmC9N.js";
|
|
2
2
|
import "../process-types-GStiZ8f8.js";
|
|
3
|
-
import { $ as TerminalNotFoundError, A as GitError, B as PermissionDeniedError, C as ServiceNotRespondingError, D as GitBranchNotFoundError, E as GitAuthenticationError, F as ValidationFailedError, G as ContainerUnavailableError, H as BackupExpiredError, I as FileExistsError, J as InvalidTerminalCwdError, K as InvalidBackupConfigError, L as FileNotFoundError, M as GitRepositoryNotFoundError, N as InterpreterNotReadyError, O as GitCheckoutError, P as InvalidGitUrlError, Q as TerminalControlError, R as FileSystemError, S as PortNotExposedError, T as ContextNotFoundError, U as BackupNotFoundError, V as BackupCreateError, W as BackupRestoreError, X as RPCTransportError, Y as OperationInterruptedError, Z as StaleTerminalHandleError, _ as CustomDomainRequiredError, a as InvalidProcessCursorError, b as PortError, c as ProcessAbortedError, d as ProcessExitedBeforeReadyError, et as SandboxError, f as ProcessNotFoundError, g as StaleProcessHandleError, h as ProcessWaitTimeoutError, i as CommandNotFoundError, j as GitNetworkError, k as GitCloneError, l as ProcessError, m as ProcessSpawnFailedError, n as RuntimeControlProtocolError, o as InvalidProcessCwdError, p as ProcessReadyTimeoutError, q as InvalidTerminalCursorError, r as CommandError, s as InvalidProcessEnvironmentError, t as RuntimeIdentityInactiveError, tt as createErrorFromResponse, u as ProcessExitedBeforeLogError, v as InvalidPortError, w as CodeExecutionError, x as PortInUseError, y as PortAlreadyExposedError, z as FileTooLargeError } from "../index-
|
|
3
|
+
import { $ as TerminalNotFoundError, A as GitError, B as PermissionDeniedError, C as ServiceNotRespondingError, D as GitBranchNotFoundError, E as GitAuthenticationError, F as ValidationFailedError, G as ContainerUnavailableError, H as BackupExpiredError, I as FileExistsError, J as InvalidTerminalCwdError, K as InvalidBackupConfigError, L as FileNotFoundError, M as GitRepositoryNotFoundError, N as InterpreterNotReadyError, O as GitCheckoutError, P as InvalidGitUrlError, Q as TerminalControlError, R as FileSystemError, S as PortNotExposedError, T as ContextNotFoundError, U as BackupNotFoundError, V as BackupCreateError, W as BackupRestoreError, X as RPCTransportError, Y as OperationInterruptedError, Z as StaleTerminalHandleError, _ as CustomDomainRequiredError, a as InvalidProcessCursorError, b as PortError, c as ProcessAbortedError, d as ProcessExitedBeforeReadyError, et as SandboxError, f as ProcessNotFoundError, g as StaleProcessHandleError, h as ProcessWaitTimeoutError, i as CommandNotFoundError, j as GitNetworkError, k as GitCloneError, l as ProcessError, m as ProcessSpawnFailedError, n as RuntimeControlProtocolError, o as InvalidProcessCwdError, p as ProcessReadyTimeoutError, q as InvalidTerminalCursorError, r as CommandError, s as InvalidProcessEnvironmentError, t as RuntimeIdentityInactiveError, tt as createErrorFromResponse, u as ProcessExitedBeforeLogError, v as InvalidPortError, w as CodeExecutionError, x as PortInUseError, y as PortAlreadyExposedError, z as FileTooLargeError } from "../index-CfpTXmNv.js";
|
|
4
4
|
export { BackupCreateContext, BackupCreateError, BackupExpiredContext, BackupExpiredError, BackupNotFoundContext, BackupNotFoundError, BackupRestoreContext, BackupRestoreError, CodeExecutionContext, CodeExecutionError, CommandError, CommandErrorContext, CommandNotFoundContext, CommandNotFoundError, ContainerUnavailableContext, ContainerUnavailableError, ContextNotFoundContext, ContextNotFoundError, CustomDomainRequiredError, ErrorCode, ErrorCode as ErrorCodeType, ErrorResponse, FileExistsContext, FileExistsError, FileNotFoundContext, FileNotFoundError, FileSystemContext, FileSystemError, FileTooLargeError, GitAuthFailedContext, GitAuthenticationError, GitBranchNotFoundContext, GitBranchNotFoundError, GitCheckoutError, GitCloneError, GitError, GitErrorContext, GitNetworkError, GitRepositoryNotFoundContext, GitRepositoryNotFoundError, InternalErrorContext, InterpreterNotReadyContext, InterpreterNotReadyError, InvalidBackupConfigContext, InvalidBackupConfigError, InvalidGitUrlError, InvalidPortContext, InvalidPortError, InvalidProcessCursorContext, InvalidProcessCursorError, InvalidProcessCwdContext, InvalidProcessCwdError, InvalidProcessEnvironmentContext, InvalidProcessEnvironmentError, InvalidTerminalCursorContext, InvalidTerminalCursorError, InvalidTerminalCwdContext, InvalidTerminalCwdError, Operation, OperationInterruptedContext, OperationInterruptedError, OperationInterruptedReason, OperationType, PermissionDeniedError, PortAlreadyExposedContext, PortAlreadyExposedError, PortError, PortErrorContext, PortInUseError, PortNotExposedContext, PortNotExposedError, ProcessAbortedContext, ProcessAbortedError, ProcessError, ProcessErrorContext, ProcessExitedBeforeLogContext, ProcessExitedBeforeLogError, ProcessExitedBeforeReadyContext, ProcessExitedBeforeReadyError, ProcessNotFoundContext, ProcessNotFoundError, ProcessReadyTimeoutContext, ProcessReadyTimeoutError, ProcessSpawnFailedContext, ProcessSpawnFailedError, ProcessWaitTimeoutContext, ProcessWaitTimeoutError, RPCTransportContext, RPCTransportError, RPCTransportErrorKind, RuntimeControlProtocolError, RuntimeIdentityInactiveError, SandboxError, ServiceNotRespondingError, StaleProcessHandleContext, StaleProcessHandleError, StaleTerminalHandleContext, StaleTerminalHandleError, TerminalControlError, TerminalControlErrorContext, TerminalNotFoundContext, TerminalNotFoundError, ValidationFailedContext, ValidationFailedError, createErrorFromResponse };
|
package/dist/errors/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as ErrorCode, t as Operation } from "../errors-
|
|
2
|
-
import { $ as TerminalControlError, A as GitCloneError, B as FileTooLargeError, C as PortNotExposedError, D as GitAuthenticationError, E as ContextNotFoundError, F as InvalidGitUrlError, G as BackupRestoreError, H as BackupCreateError, I as ValidationFailedError, J as InvalidTerminalCursorError, K as ContainerUnavailableError, L as FileExistsError, M as GitNetworkError, N as GitRepositoryNotFoundError, O as GitBranchNotFoundError, P as InterpreterNotReadyError, Q as StaleTerminalHandleError, R as FileNotFoundError, S as PortInUseError, T as CodeExecutionError, U as BackupExpiredError, V as PermissionDeniedError, W as BackupNotFoundError, X as OperationInterruptedError, Y as InvalidTerminalCwdError, Z as RPCTransportError, _ as StaleProcessHandleError, a as CommandNotFoundError, b as PortAlreadyExposedError, c as InvalidProcessEnvironmentError, d as ProcessExitedBeforeLogError, et as TerminalNotFoundError, f as ProcessExitedBeforeReadyError, g as ProcessWaitTimeoutError, h as ProcessSpawnFailedError, i as CommandError, j as GitError, k as GitCheckoutError, l as ProcessAbortedError, m as ProcessReadyTimeoutError, n as RuntimeIdentityInactiveError, o as InvalidProcessCursorError, p as ProcessNotFoundError, q as InvalidBackupConfigError, r as RuntimeControlProtocolError, s as InvalidProcessCwdError, t as createErrorFromResponse, tt as SandboxError, u as ProcessError, v as CustomDomainRequiredError, w as ServiceNotRespondingError, x as PortError, y as InvalidPortError, z as FileSystemError } from "../errors
|
|
1
|
+
import { i as ErrorCode, t as Operation } from "../errors-Bb3s6nBS.js";
|
|
2
|
+
import { $ as TerminalControlError, A as GitCloneError, B as FileTooLargeError, C as PortNotExposedError, D as GitAuthenticationError, E as ContextNotFoundError, F as InvalidGitUrlError, G as BackupRestoreError, H as BackupCreateError, I as ValidationFailedError, J as InvalidTerminalCursorError, K as ContainerUnavailableError, L as FileExistsError, M as GitNetworkError, N as GitRepositoryNotFoundError, O as GitBranchNotFoundError, P as InterpreterNotReadyError, Q as StaleTerminalHandleError, R as FileNotFoundError, S as PortInUseError, T as CodeExecutionError, U as BackupExpiredError, V as PermissionDeniedError, W as BackupNotFoundError, X as OperationInterruptedError, Y as InvalidTerminalCwdError, Z as RPCTransportError, _ as StaleProcessHandleError, a as CommandNotFoundError, b as PortAlreadyExposedError, c as InvalidProcessEnvironmentError, d as ProcessExitedBeforeLogError, et as TerminalNotFoundError, f as ProcessExitedBeforeReadyError, g as ProcessWaitTimeoutError, h as ProcessSpawnFailedError, i as CommandError, j as GitError, k as GitCheckoutError, l as ProcessAbortedError, m as ProcessReadyTimeoutError, n as RuntimeIdentityInactiveError, o as InvalidProcessCursorError, p as ProcessNotFoundError, q as InvalidBackupConfigError, r as RuntimeControlProtocolError, s as InvalidProcessCwdError, t as createErrorFromResponse, tt as SandboxError, u as ProcessError, v as CustomDomainRequiredError, w as ServiceNotRespondingError, x as PortError, y as InvalidPortError, z as FileSystemError } from "../errors--yR3zLC_.js";
|
|
3
3
|
|
|
4
4
|
export { BackupCreateError, BackupExpiredError, BackupNotFoundError, BackupRestoreError, CodeExecutionError, CommandError, CommandNotFoundError, ContainerUnavailableError, ContextNotFoundError, CustomDomainRequiredError, ErrorCode, FileExistsError, FileNotFoundError, FileSystemError, FileTooLargeError, GitAuthenticationError, GitBranchNotFoundError, GitCheckoutError, GitCloneError, GitError, GitNetworkError, GitRepositoryNotFoundError, InterpreterNotReadyError, InvalidBackupConfigError, InvalidGitUrlError, InvalidPortError, InvalidProcessCursorError, InvalidProcessCwdError, InvalidProcessEnvironmentError, InvalidTerminalCursorError, InvalidTerminalCwdError, Operation, OperationInterruptedError, PermissionDeniedError, PortAlreadyExposedError, PortError, PortInUseError, PortNotExposedError, ProcessAbortedError, ProcessError, ProcessExitedBeforeLogError, ProcessExitedBeforeReadyError, ProcessNotFoundError, ProcessReadyTimeoutError, ProcessSpawnFailedError, ProcessWaitTimeoutError, RPCTransportError, RuntimeControlProtocolError, RuntimeIdentityInactiveError, SandboxError, ServiceNotRespondingError, StaleProcessHandleError, StaleTerminalHandleError, TerminalControlError, TerminalNotFoundError, ValidationFailedError, createErrorFromResponse };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as ErrorCode, r as getHttpStatus } from "./errors-
|
|
1
|
+
import { i as ErrorCode, r as getHttpStatus } from "./errors-Bb3s6nBS.js";
|
|
2
2
|
|
|
3
3
|
//#region src/errors/classes/base.ts
|
|
4
4
|
var SandboxError = class extends Error {
|
|
@@ -890,4 +890,4 @@ function createErrorFromResponse(errorResponse, options) {
|
|
|
890
890
|
|
|
891
891
|
//#endregion
|
|
892
892
|
export { TerminalControlError as $, GitCloneError as A, FileTooLargeError as B, PortNotExposedError as C, GitAuthenticationError as D, ContextNotFoundError as E, InvalidGitUrlError as F, BackupRestoreError as G, BackupCreateError as H, ValidationFailedError as I, InvalidTerminalCursorError as J, ContainerUnavailableError as K, FileExistsError as L, GitNetworkError as M, GitRepositoryNotFoundError as N, GitBranchNotFoundError as O, InterpreterNotReadyError as P, StaleTerminalHandleError as Q, FileNotFoundError as R, PortInUseError as S, CodeExecutionError as T, BackupExpiredError as U, PermissionDeniedError as V, BackupNotFoundError as W, OperationInterruptedError as X, InvalidTerminalCwdError as Y, RPCTransportError as Z, StaleProcessHandleError as _, CommandNotFoundError as a, PortAlreadyExposedError as b, InvalidProcessEnvironmentError as c, ProcessExitedBeforeLogError as d, TerminalNotFoundError as et, ProcessExitedBeforeReadyError as f, ProcessWaitTimeoutError as g, ProcessSpawnFailedError as h, CommandError as i, GitError as j, GitCheckoutError as k, ProcessAbortedError as l, ProcessReadyTimeoutError as m, RuntimeIdentityInactiveError as n, InvalidProcessCursorError as o, ProcessNotFoundError as p, InvalidBackupConfigError as q, RuntimeControlProtocolError as r, InvalidProcessCwdError as s, createErrorFromResponse as t, SandboxError as tt, ProcessError as u, CustomDomainRequiredError as v, ServiceNotRespondingError as w, PortError as x, InvalidPortError as y, FileSystemError as z };
|
|
893
|
-
//# sourceMappingURL=errors
|
|
893
|
+
//# sourceMappingURL=errors--yR3zLC_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-QYlSkVGz.js","names":["errorResponse: ErrorResponse<TContext>"],"sources":["../src/errors/classes/base.ts","../src/errors/classes/backup-terminal-lifecycle.ts","../src/errors/classes/filesystem.ts","../src/errors/classes/git-code.ts","../src/errors/classes/port.ts","../src/errors/classes/process.ts","../src/errors/classes/runtime-control-protocol.ts","../src/errors/classes/runtime-inactive.ts","../src/errors/adapter.ts"],"sourcesContent":["import type { ErrorResponse, OperationType } from '@repo/shared/errors';\n\ntype ErrorOperation<TContext> =\n | OperationType\n | (TContext extends { operation: infer TOperation } ? TOperation : never)\n | undefined;\n\nexport class SandboxError<TContext = Record<string, unknown>> extends Error {\n constructor(\n public readonly errorResponse: ErrorResponse<TContext>,\n options?: { cause?: unknown }\n ) {\n super(errorResponse.message, options);\n this.name = 'SandboxError';\n }\n\n get code() {\n return this.errorResponse.code;\n }\n get context() {\n return this.errorResponse.context;\n }\n get httpStatus() {\n return this.errorResponse.httpStatus;\n }\n get operation(): ErrorOperation<TContext> {\n return this.errorResponse.operation;\n }\n get suggestion() {\n return this.errorResponse.suggestion;\n }\n get timestamp() {\n return this.errorResponse.timestamp;\n }\n get documentation() {\n return this.errorResponse.documentation;\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n code: this.code,\n context: this.context,\n httpStatus: this.httpStatus,\n operation: this.operation,\n suggestion: this.suggestion,\n timestamp: this.timestamp,\n documentation: this.documentation,\n stack: this.stack\n };\n }\n}\n","import type {\n BackupCreateContext,\n BackupExpiredContext,\n BackupNotFoundContext,\n BackupRestoreContext,\n CodeExecutionContext,\n CommandErrorContext,\n CommandNotFoundContext,\n ContainerUnavailableContext,\n ContextNotFoundContext,\n ErrorResponse,\n FileExistsContext,\n FileNotFoundContext,\n FileSystemContext,\n GitAuthFailedContext,\n GitBranchNotFoundContext,\n GitErrorContext,\n GitRepositoryNotFoundContext,\n InternalErrorContext,\n InterpreterNotReadyContext,\n InvalidBackupConfigContext,\n InvalidPortContext,\n InvalidTerminalCursorContext,\n InvalidTerminalCwdContext,\n OperationInterruptedContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext,\n ProcessErrorContext,\n ProcessExitedBeforeReadyContext,\n ProcessNotFoundContext,\n ProcessReadyTimeoutContext,\n RPCTransportContext,\n RPCTransportErrorKind,\n StaleTerminalHandleContext,\n TerminalControlErrorContext,\n TerminalNotFoundContext,\n ValidationFailedContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n// Backup Errors\n// ============================================================================\n\n/**\n * Error thrown when a backup is not found in R2\n */\nexport class BackupNotFoundError extends SandboxError<BackupNotFoundContext> {\n constructor(errorResponse: ErrorResponse<BackupNotFoundContext>) {\n super(errorResponse);\n this.name = 'BackupNotFoundError';\n }\n\n get backupId() {\n return this.context.backupId;\n }\n}\n\n/**\n * Error thrown when a backup has expired (past its TTL)\n */\nexport class BackupExpiredError extends SandboxError<BackupExpiredContext> {\n constructor(errorResponse: ErrorResponse<BackupExpiredContext>) {\n super(errorResponse);\n this.name = 'BackupExpiredError';\n }\n\n get backupId() {\n return this.context.backupId;\n }\n get expiredAt() {\n return this.context.expiredAt;\n }\n}\n\n/**\n * Error thrown when backup configuration or inputs are invalid\n */\nexport class InvalidBackupConfigError extends SandboxError<InvalidBackupConfigContext> {\n constructor(errorResponse: ErrorResponse<InvalidBackupConfigContext>) {\n super(errorResponse);\n this.name = 'InvalidBackupConfigError';\n }\n\n get reason() {\n return this.context.reason;\n }\n}\n\n/**\n * Error thrown when backup creation fails\n */\nexport class BackupCreateError extends SandboxError<BackupCreateContext> {\n constructor(errorResponse: ErrorResponse<BackupCreateContext>) {\n super(errorResponse);\n this.name = 'BackupCreateError';\n }\n\n get dir() {\n return this.context.dir;\n }\n get backupId() {\n return this.context.backupId;\n }\n}\n\n/**\n * Error thrown when backup restoration fails\n */\nexport class BackupRestoreError extends SandboxError<BackupRestoreContext> {\n constructor(errorResponse: ErrorResponse<BackupRestoreContext>) {\n super(errorResponse);\n this.name = 'BackupRestoreError';\n }\n\n get dir() {\n return this.context.dir;\n }\n get backupId() {\n return this.context.backupId;\n }\n}\n\n// ============================================================================\n// Terminal Errors\n// ============================================================================\n\nexport class TerminalNotFoundError extends SandboxError<TerminalNotFoundContext> {\n constructor(errorResponse: ErrorResponse<TerminalNotFoundContext>) {\n super(errorResponse);\n this.name = 'TerminalNotFoundError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n}\n\nexport class InvalidTerminalCwdError extends SandboxError<InvalidTerminalCwdContext> {\n constructor(errorResponse: ErrorResponse<InvalidTerminalCwdContext>) {\n super(errorResponse);\n this.name = 'InvalidTerminalCwdError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n\n get cwd() {\n return this.context.cwd;\n }\n}\n\nexport class InvalidTerminalCursorError extends SandboxError<InvalidTerminalCursorContext> {\n constructor(errorResponse: ErrorResponse<InvalidTerminalCursorContext>) {\n super(errorResponse);\n this.name = 'InvalidTerminalCursorError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n}\n\nexport class TerminalControlError extends SandboxError<TerminalControlErrorContext> {\n constructor(errorResponse: ErrorResponse<TerminalControlErrorContext>) {\n super(errorResponse);\n this.name = 'TerminalControlError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n\n get operationName() {\n return this.context.operation;\n }\n}\n\nexport class StaleTerminalHandleError extends SandboxError<StaleTerminalHandleContext> {\n constructor(errorResponse: ErrorResponse<StaleTerminalHandleContext>) {\n super(errorResponse);\n this.name = 'StaleTerminalHandleError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n\n get operation() {\n return this.context.operation;\n }\n}\n\n// ============================================================================\n// Container Availability Errors\n// ============================================================================\n\nexport class ContainerUnavailableError extends SandboxError<ContainerUnavailableContext> {\n constructor(errorResponse: ErrorResponse<ContainerUnavailableContext>) {\n super(errorResponse);\n this.name = 'ContainerUnavailableError';\n }\n}\n\n// ============================================================================\n// Operation Lifecycle Errors\n// ============================================================================\n\nexport class OperationInterruptedError extends SandboxError<OperationInterruptedContext> {\n constructor(errorResponse: ErrorResponse<OperationInterruptedContext>) {\n super(errorResponse);\n this.name = 'OperationInterruptedError';\n }\n\n get reason() {\n return this.context.reason;\n }\n\n get retryable() {\n return this.context.retryable;\n }\n\n get operationName() {\n return this.context.operation;\n }\n}\n\n// ============================================================================\n// RPC Transport Errors (SDK-side)\n// ============================================================================\n\n/**\n * Raised when the capnweb WebSocket session itself fails on the SDK side.\n * Unlike the rest of the SandboxError tree, the container never produces\n * this error — it is synthesised by `translateRPCError` from the plain\n * Errors capnweb / DeferredTransport raise when the connection dies.\n *\n * `kind` distinguishes the failure mode (peer close, upgrade failed, etc.)\n * so callers can branch on a structured code instead of substring-matching\n * on the message.\n *\n * Always retryable: the SDK opens a fresh connection on the next call.\n */\nexport class RPCTransportError extends SandboxError<RPCTransportContext> {\n constructor(\n errorResponse: ErrorResponse<RPCTransportContext>,\n options?: { cause?: unknown }\n ) {\n super(errorResponse, options);\n this.name = 'RPCTransportError';\n }\n\n get kind(): RPCTransportErrorKind {\n return this.errorResponse.context.kind;\n }\n\n get originalMessage(): string {\n return this.errorResponse.context.originalMessage;\n }\n}\n","import type {\n BackupCreateContext,\n BackupExpiredContext,\n BackupNotFoundContext,\n BackupRestoreContext,\n CodeExecutionContext,\n CommandErrorContext,\n CommandNotFoundContext,\n ContainerUnavailableContext,\n ContextNotFoundContext,\n ErrorResponse,\n FileExistsContext,\n FileNotFoundContext,\n FileSystemContext,\n FileTooLargeContext,\n GitAuthFailedContext,\n GitBranchNotFoundContext,\n GitErrorContext,\n GitRepositoryNotFoundContext,\n InternalErrorContext,\n InterpreterNotReadyContext,\n InvalidBackupConfigContext,\n InvalidPortContext,\n InvalidTerminalCursorContext,\n OperationInterruptedContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext,\n ProcessErrorContext,\n ProcessExitedBeforeReadyContext,\n ProcessNotFoundContext,\n ProcessReadyTimeoutContext,\n RPCTransportContext,\n RPCTransportErrorKind,\n TerminalControlErrorContext,\n TerminalNotFoundContext,\n ValidationFailedContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n// File System Errors\n// ============================================================================\n\n/**\n * Error thrown when a file or directory is not found\n */\nexport class FileNotFoundError extends SandboxError<FileNotFoundContext> {\n constructor(errorResponse: ErrorResponse<FileNotFoundContext>) {\n super(errorResponse);\n this.name = 'FileNotFoundError';\n }\n\n // Type-safe accessors\n get path() {\n return this.context.path;\n }\n}\n\n/**\n * Error thrown when a file already exists\n */\nexport class FileExistsError extends SandboxError<FileExistsContext> {\n constructor(errorResponse: ErrorResponse<FileExistsContext>) {\n super(errorResponse);\n this.name = 'FileExistsError';\n }\n\n // Type-safe accessor\n get path() {\n return this.context.path;\n }\n}\n\n/**\n * Error thrown when a file is too large\n */\nexport class FileTooLargeError extends SandboxError<FileTooLargeContext> {\n constructor(errorResponse: ErrorResponse<FileTooLargeContext>) {\n super(errorResponse);\n this.name = 'FileTooLargeError';\n }\n\n // Type-safe accessor\n get path() {\n return this.context.path;\n }\n}\n\n/**\n * Generic file system error (permissions, disk full, etc.)\n */\nexport class FileSystemError extends SandboxError<FileSystemContext> {\n constructor(errorResponse: ErrorResponse<FileSystemContext>) {\n super(errorResponse);\n this.name = 'FileSystemError';\n }\n\n // Type-safe accessors\n get path() {\n return this.context.path;\n }\n get stderr() {\n return this.context.stderr;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n}\n\n/**\n * Error thrown when permission is denied\n */\nexport class PermissionDeniedError extends SandboxError<FileSystemContext> {\n constructor(errorResponse: ErrorResponse<FileSystemContext>) {\n super(errorResponse);\n this.name = 'PermissionDeniedError';\n }\n\n get path() {\n return this.context.path;\n }\n}\n\n// ============================================================================\n","import type {\n BackupCreateContext,\n BackupExpiredContext,\n BackupNotFoundContext,\n BackupRestoreContext,\n CodeExecutionContext,\n CommandErrorContext,\n CommandNotFoundContext,\n ContainerUnavailableContext,\n ContextNotFoundContext,\n ErrorResponse,\n FileExistsContext,\n FileNotFoundContext,\n FileSystemContext,\n GitAuthFailedContext,\n GitBranchNotFoundContext,\n GitErrorContext,\n GitRepositoryNotFoundContext,\n InternalErrorContext,\n InterpreterNotReadyContext,\n InvalidBackupConfigContext,\n InvalidPortContext,\n InvalidTerminalCursorContext,\n OperationInterruptedContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext,\n ProcessErrorContext,\n ProcessNotFoundContext,\n RPCTransportContext,\n RPCTransportErrorKind,\n TerminalControlErrorContext,\n TerminalNotFoundContext,\n ValidationFailedContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n// Git Errors\n// ============================================================================\n\n/**\n * Error thrown when a git repository is not found\n */\nexport class GitRepositoryNotFoundError extends SandboxError<GitRepositoryNotFoundContext> {\n constructor(errorResponse: ErrorResponse<GitRepositoryNotFoundContext>) {\n super(errorResponse);\n this.name = 'GitRepositoryNotFoundError';\n }\n\n // Type-safe accessor\n get repository() {\n return this.context.repository;\n }\n}\n\n/**\n * Error thrown when git authentication fails\n */\nexport class GitAuthenticationError extends SandboxError<GitAuthFailedContext> {\n constructor(errorResponse: ErrorResponse<GitAuthFailedContext>) {\n super(errorResponse);\n this.name = 'GitAuthenticationError';\n }\n\n // Type-safe accessor\n get repository() {\n return this.context.repository;\n }\n}\n\n/**\n * Error thrown when a git branch is not found\n */\nexport class GitBranchNotFoundError extends SandboxError<GitBranchNotFoundContext> {\n constructor(errorResponse: ErrorResponse<GitBranchNotFoundContext>) {\n super(errorResponse);\n this.name = 'GitBranchNotFoundError';\n }\n\n // Type-safe accessors\n get branch() {\n return this.context.branch;\n }\n get repository() {\n return this.context.repository;\n }\n}\n\n/**\n * Error thrown when a git network operation fails\n */\nexport class GitNetworkError extends SandboxError<GitErrorContext> {\n constructor(errorResponse: ErrorResponse<GitErrorContext>) {\n super(errorResponse);\n this.name = 'GitNetworkError';\n }\n\n // Type-safe accessors\n get repository() {\n return this.context.repository;\n }\n get branch() {\n return this.context.branch;\n }\n get targetDir() {\n return this.context.targetDir;\n }\n}\n\n/**\n * Error thrown when git clone fails\n */\nexport class GitCloneError extends SandboxError<GitErrorContext> {\n constructor(errorResponse: ErrorResponse<GitErrorContext>) {\n super(errorResponse);\n this.name = 'GitCloneError';\n }\n\n // Type-safe accessors\n get repository() {\n return this.context.repository;\n }\n get targetDir() {\n return this.context.targetDir;\n }\n get stderr() {\n return this.context.stderr;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n}\n\n/**\n * Error thrown when git checkout fails\n */\nexport class GitCheckoutError extends SandboxError<GitErrorContext> {\n constructor(errorResponse: ErrorResponse<GitErrorContext>) {\n super(errorResponse);\n this.name = 'GitCheckoutError';\n }\n\n // Type-safe accessors\n get branch() {\n return this.context.branch;\n }\n get repository() {\n return this.context.repository;\n }\n get stderr() {\n return this.context.stderr;\n }\n}\n\n/**\n * Error thrown when a git URL is invalid\n */\nexport class InvalidGitUrlError extends SandboxError<ValidationFailedContext> {\n constructor(errorResponse: ErrorResponse<ValidationFailedContext>) {\n super(errorResponse);\n this.name = 'InvalidGitUrlError';\n }\n\n // Type-safe accessor\n get validationErrors() {\n return this.context.validationErrors;\n }\n}\n\n/**\n * Generic git operation error\n */\nexport class GitError extends SandboxError<GitErrorContext> {\n constructor(errorResponse: ErrorResponse<GitErrorContext>) {\n super(errorResponse);\n this.name = 'GitError';\n }\n\n // Type-safe accessors\n get repository() {\n return this.context.repository;\n }\n get branch() {\n return this.context.branch;\n }\n get targetDir() {\n return this.context.targetDir;\n }\n get stderr() {\n return this.context.stderr;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n}\n\n// ============================================================================\n// Code Interpreter Errors\n// ============================================================================\n\n/**\n * Error thrown when interpreter is not ready\n */\nexport class InterpreterNotReadyError extends SandboxError<InterpreterNotReadyContext> {\n constructor(errorResponse: ErrorResponse<InterpreterNotReadyContext>) {\n super(errorResponse);\n this.name = 'InterpreterNotReadyError';\n }\n\n // Type-safe accessors\n get retryAfter() {\n return this.context.retryAfter;\n }\n get progress() {\n return this.context.progress;\n }\n}\n\n/**\n * Error thrown when a context is not found\n */\nexport class ContextNotFoundError extends SandboxError<ContextNotFoundContext> {\n constructor(errorResponse: ErrorResponse<ContextNotFoundContext>) {\n super(errorResponse);\n this.name = 'ContextNotFoundError';\n }\n\n // Type-safe accessor\n get contextId() {\n return this.context.contextId;\n }\n}\n\n/**\n * Error thrown when code execution fails\n */\nexport class CodeExecutionError extends SandboxError<CodeExecutionContext> {\n constructor(errorResponse: ErrorResponse<CodeExecutionContext>) {\n super(errorResponse);\n this.name = 'CodeExecutionError';\n }\n\n // Type-safe accessors\n get contextId() {\n return this.context.contextId;\n }\n get ename() {\n return this.context.ename;\n }\n get evalue() {\n return this.context.evalue;\n }\n get traceback() {\n return this.context.traceback;\n }\n}\n\n// ============================================================================\n// Validation Errors\n// ============================================================================\n\n/**\n * Error thrown when validation fails\n */\nexport class ValidationFailedError extends SandboxError<ValidationFailedContext> {\n constructor(errorResponse: ErrorResponse<ValidationFailedContext>) {\n super(errorResponse);\n this.name = 'ValidationFailedError';\n }\n\n // Type-safe accessor\n get validationErrors() {\n return this.context.validationErrors;\n }\n}\n","import type {\n ErrorResponse,\n InternalErrorContext,\n InvalidPortContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n\n// ============================================================================\n// Port Errors\n// ============================================================================\n\n/**\n * Error thrown when exposing a port that is already exposed.\n */\nexport class PortAlreadyExposedError extends SandboxError<PortAlreadyExposedContext> {\n constructor(errorResponse: ErrorResponse<PortAlreadyExposedContext>) {\n super(errorResponse);\n this.name = 'PortAlreadyExposedError';\n }\n\n // Type-safe accessors\n get port() {\n return this.context.port;\n }\n get portName() {\n return this.context.portName;\n }\n}\n\n/**\n * Error thrown when operating on a port that has not been exposed.\n */\nexport class PortNotExposedError extends SandboxError<PortNotExposedContext> {\n constructor(errorResponse: ErrorResponse<PortNotExposedContext>) {\n super(errorResponse);\n this.name = 'PortNotExposedError';\n }\n\n // Type-safe accessor\n get port() {\n return this.context.port;\n }\n}\n\n/**\n * Error thrown when a port number is invalid\n */\nexport class InvalidPortError extends SandboxError<InvalidPortContext> {\n constructor(errorResponse: ErrorResponse<InvalidPortContext>) {\n super(errorResponse);\n this.name = 'InvalidPortError';\n }\n\n // Type-safe accessors\n get port() {\n return this.context.port;\n }\n get reason() {\n return this.context.reason;\n }\n}\n\n/**\n * Error thrown when a service on a port is not responding\n */\nexport class ServiceNotRespondingError extends SandboxError<PortErrorContext> {\n constructor(errorResponse: ErrorResponse<PortErrorContext>) {\n super(errorResponse);\n this.name = 'ServiceNotRespondingError';\n }\n\n // Type-safe accessors\n get port() {\n return this.context.port;\n }\n get portName() {\n return this.context.portName;\n }\n}\n\n/**\n * Error thrown when a port is already in use\n */\nexport class PortInUseError extends SandboxError<PortErrorContext> {\n constructor(errorResponse: ErrorResponse<PortErrorContext>) {\n super(errorResponse);\n this.name = 'PortInUseError';\n }\n\n // Type-safe accessor\n get port() {\n return this.context.port;\n }\n}\n\n/**\n * Generic port operation error\n */\nexport class PortError extends SandboxError<PortErrorContext> {\n constructor(errorResponse: ErrorResponse<PortErrorContext>) {\n super(errorResponse);\n this.name = 'PortError';\n }\n\n // Type-safe accessors\n get port() {\n return this.context.port;\n }\n get portName() {\n return this.context.portName;\n }\n get stderr() {\n return this.context.stderr;\n }\n}\n\n/**\n * Error thrown when port exposure requires a custom domain\n */\nexport class CustomDomainRequiredError extends SandboxError<InternalErrorContext> {\n constructor(errorResponse: ErrorResponse<InternalErrorContext>) {\n super(errorResponse);\n this.name = 'CustomDomainRequiredError';\n }\n}\n","import type {\n CommandErrorContext,\n CommandNotFoundContext,\n ErrorResponse,\n InvalidProcessCursorContext,\n InvalidProcessCwdContext,\n InvalidProcessEnvironmentContext,\n ProcessAbortedContext,\n ProcessErrorContext,\n ProcessExitedBeforeLogContext,\n ProcessExitedBeforeReadyContext,\n ProcessNotFoundContext,\n ProcessReadyTimeoutContext,\n ProcessSpawnFailedContext,\n ProcessWaitTimeoutContext,\n StaleProcessHandleContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n// Command Errors\n// ============================================================================\n\n/**\n * Error thrown when a command is not found\n */\nexport class CommandNotFoundError extends SandboxError<CommandNotFoundContext> {\n constructor(errorResponse: ErrorResponse<CommandNotFoundContext>) {\n super(errorResponse);\n this.name = 'CommandNotFoundError';\n }\n\n // Type-safe accessor\n get command() {\n return this.context.command;\n }\n}\n\n/**\n * Generic command execution error\n */\nexport class CommandError extends SandboxError<CommandErrorContext> {\n constructor(errorResponse: ErrorResponse<CommandErrorContext>) {\n super(errorResponse);\n this.name = 'CommandError';\n }\n\n // Type-safe accessors\n get command() {\n return this.context.command;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n get stdout() {\n return this.context.stdout;\n }\n get stderr() {\n return this.context.stderr;\n }\n}\n\n// ============================================================================\n// Process Errors\n// ============================================================================\n\nexport class InvalidProcessCwdError extends SandboxError<InvalidProcessCwdContext> {\n constructor(errorResponse: ErrorResponse<InvalidProcessCwdContext>) {\n super(errorResponse);\n this.name = 'InvalidProcessCwdError';\n }\n}\n\nexport class InvalidProcessEnvironmentError extends SandboxError<InvalidProcessEnvironmentContext> {\n constructor(errorResponse: ErrorResponse<InvalidProcessEnvironmentContext>) {\n super(errorResponse);\n this.name = 'InvalidProcessEnvironmentError';\n }\n}\n\nexport class InvalidProcessCursorError extends SandboxError<InvalidProcessCursorContext> {\n constructor(errorResponse: ErrorResponse<InvalidProcessCursorContext>) {\n super(errorResponse);\n this.name = 'InvalidProcessCursorError';\n }\n}\n\nexport class ProcessSpawnFailedError extends SandboxError<ProcessSpawnFailedContext> {\n constructor(errorResponse: ErrorResponse<ProcessSpawnFailedContext>) {\n super(errorResponse);\n this.name = 'ProcessSpawnFailedError';\n }\n}\n\n/**\n * Error thrown when a process is not found\n */\nexport class ProcessNotFoundError extends SandboxError<ProcessNotFoundContext> {\n constructor(errorResponse: ErrorResponse<ProcessNotFoundContext>) {\n super(errorResponse);\n this.name = 'ProcessNotFoundError';\n }\n\n // Type-safe accessor\n get processId() {\n return this.context.processId;\n }\n}\n\n/**\n * Generic process error\n */\nexport class ProcessError extends SandboxError<ProcessErrorContext> {\n constructor(errorResponse: ErrorResponse<ProcessErrorContext>) {\n super(errorResponse);\n this.name = 'ProcessError';\n }\n\n // Type-safe accessors\n get processId() {\n return this.context.processId;\n }\n get pid() {\n return this.context.pid;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n get stderr() {\n return this.context.stderr;\n }\n}\n\nexport class StaleProcessHandleError extends SandboxError<StaleProcessHandleContext> {\n constructor(errorResponse: ErrorResponse<StaleProcessHandleContext>) {\n super(errorResponse);\n this.name = 'StaleProcessHandleError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get pid() {\n return this.context.pid;\n }\n get operation() {\n return this.context.operation;\n }\n}\n\nexport class ProcessWaitTimeoutError extends SandboxError<ProcessWaitTimeoutContext> {\n constructor(errorResponse: ErrorResponse<ProcessWaitTimeoutContext>) {\n super(errorResponse);\n this.name = 'ProcessWaitTimeoutError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get operation() {\n return this.context.operation;\n }\n get timeout() {\n return this.context.timeout;\n }\n}\n\nexport class ProcessAbortedError extends SandboxError<ProcessAbortedContext> {\n constructor(errorResponse: ErrorResponse<ProcessAbortedContext>) {\n super(errorResponse);\n this.name = 'ProcessAbortedError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get operation() {\n return this.context.operation;\n }\n}\n\nexport class ProcessReadyTimeoutError extends SandboxError<ProcessReadyTimeoutContext> {\n constructor(errorResponse: ErrorResponse<ProcessReadyTimeoutContext>) {\n super(errorResponse);\n this.name = 'ProcessReadyTimeoutError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get command() {\n return this.context.command;\n }\n get condition() {\n return this.context.condition;\n }\n get timeout() {\n return this.context.timeout;\n }\n}\n\nexport class ProcessExitedBeforeLogError extends SandboxError<ProcessExitedBeforeLogContext> {\n constructor(errorResponse: ErrorResponse<ProcessExitedBeforeLogContext>) {\n super(errorResponse);\n this.name = 'ProcessExitedBeforeLogError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get pid() {\n return this.context.pid;\n }\n get exit() {\n return this.context.exit;\n }\n}\n\nexport class ProcessExitedBeforeReadyError extends SandboxError<ProcessExitedBeforeReadyContext> {\n constructor(errorResponse: ErrorResponse<ProcessExitedBeforeReadyContext>) {\n super(errorResponse);\n this.name = 'ProcessExitedBeforeReadyError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get command() {\n return this.context.command;\n }\n get condition() {\n return this.context.condition;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n}\n","import { ErrorCode, getHttpStatus } from '@repo/shared/errors';\nimport { SandboxError } from './base';\n\nexport type RuntimeControlProtocolErrorReason =\n | 'missing-metadata'\n | 'malformed-metadata'\n | 'unsupported-protocol-version'\n | 'activation-mismatch';\n\nexport class RuntimeControlProtocolError extends SandboxError<{\n reason: RuntimeControlProtocolErrorReason;\n operation?: string;\n}> {\n constructor(\n message: string,\n context: {\n reason: RuntimeControlProtocolErrorReason;\n operation?: string;\n },\n options?: { cause?: unknown }\n ) {\n super(\n {\n code: ErrorCode.INTERNAL_ERROR,\n message,\n context,\n httpStatus: getHttpStatus(ErrorCode.INTERNAL_ERROR),\n timestamp: new Date().toISOString()\n },\n options\n );\n this.name = 'RuntimeControlProtocolError';\n }\n}\n","export class RuntimeIdentityInactiveError extends Error {\n constructor() {\n super('Runtime identity is no longer active');\n this.name = 'RuntimeIdentityInactiveError';\n }\n}\n","/**\n * Error adapter that converts ErrorResponse to appropriate Error class\n *\n * Simple switch statement - we trust the container sends correct context\n * No validation overhead since we control both sides\n */\n\nimport type {\n BackupCreateContext,\n BackupExpiredContext,\n BackupNotFoundContext,\n BackupRestoreContext,\n CodeExecutionContext,\n CommandErrorContext,\n CommandNotFoundContext,\n ContainerUnavailableContext,\n ContextNotFoundContext,\n ErrorResponse,\n FileExistsContext,\n FileNotFoundContext,\n FileSystemContext,\n FileTooLargeContext,\n GitAuthFailedContext,\n GitBranchNotFoundContext,\n GitErrorContext,\n GitRepositoryNotFoundContext,\n InternalErrorContext,\n InterpreterNotReadyContext,\n InvalidBackupConfigContext,\n InvalidPortContext,\n InvalidProcessCursorContext,\n InvalidProcessCwdContext,\n InvalidProcessEnvironmentContext,\n InvalidTerminalCursorContext,\n InvalidTerminalCwdContext,\n OperationInterruptedContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext,\n ProcessAbortedContext,\n ProcessErrorContext,\n ProcessNotFoundContext,\n ProcessSpawnFailedContext,\n ProcessWaitTimeoutContext,\n RPCTransportContext,\n StaleProcessHandleContext,\n StaleTerminalHandleContext,\n TerminalControlErrorContext,\n TerminalNotFoundContext,\n ValidationFailedContext\n} from '@repo/shared/errors';\nimport { ErrorCode } from '@repo/shared/errors';\n\nimport {\n BackupCreateError,\n BackupExpiredError,\n BackupNotFoundError,\n BackupRestoreError,\n CodeExecutionError,\n CommandError,\n CommandNotFoundError,\n ContainerUnavailableError,\n ContextNotFoundError,\n CustomDomainRequiredError,\n FileExistsError,\n FileNotFoundError,\n FileSystemError,\n FileTooLargeError,\n GitAuthenticationError,\n GitBranchNotFoundError,\n GitCheckoutError,\n GitCloneError,\n GitError,\n GitNetworkError,\n GitRepositoryNotFoundError,\n InterpreterNotReadyError,\n InvalidBackupConfigError,\n InvalidGitUrlError,\n InvalidPortError,\n InvalidProcessCursorError,\n InvalidProcessCwdError,\n InvalidProcessEnvironmentError,\n InvalidTerminalCursorError,\n InvalidTerminalCwdError,\n OperationInterruptedError,\n PermissionDeniedError,\n PortAlreadyExposedError,\n PortError,\n PortInUseError,\n PortNotExposedError,\n ProcessAbortedError,\n ProcessError,\n ProcessNotFoundError,\n ProcessSpawnFailedError,\n ProcessWaitTimeoutError,\n RPCTransportError,\n SandboxError,\n ServiceNotRespondingError,\n StaleProcessHandleError,\n StaleTerminalHandleError,\n TerminalControlError,\n TerminalNotFoundError,\n ValidationFailedError\n} from './classes';\n\ntype StaleProcessHandleResponse = ErrorResponse<StaleProcessHandleContext> & {\n code: typeof ErrorCode.STALE_PROCESS_HANDLE;\n};\n\ntype StaleTerminalHandleResponse = ErrorResponse<StaleTerminalHandleContext> & {\n code: typeof ErrorCode.STALE_TERMINAL_HANDLE;\n};\n\ntype ProcessWaitTimeoutResponse = ErrorResponse<ProcessWaitTimeoutContext> & {\n code: typeof ErrorCode.PROCESS_WAIT_TIMEOUT;\n};\n\ntype ProcessAbortedResponse = ErrorResponse<ProcessAbortedContext> & {\n code: typeof ErrorCode.PROCESS_ABORTED;\n};\n\ntype ProcessErrorResponse =\n | ErrorResponse\n | StaleProcessHandleResponse\n | StaleTerminalHandleResponse\n | ProcessWaitTimeoutResponse\n | ProcessAbortedResponse;\n\nfunction isStaleProcessHandleResponse(\n errorResponse: ProcessErrorResponse\n): errorResponse is StaleProcessHandleResponse {\n const { context } = errorResponse;\n return (\n errorResponse.code === ErrorCode.STALE_PROCESS_HANDLE &&\n 'processId' in context &&\n typeof context.processId === 'string' &&\n 'pid' in context &&\n typeof context.pid === 'number' &&\n 'operation' in context &&\n typeof context.operation === 'string'\n );\n}\n\nfunction isStaleTerminalHandleResponse(\n errorResponse: ProcessErrorResponse\n): errorResponse is StaleTerminalHandleResponse {\n const { context } = errorResponse;\n return (\n errorResponse.code === ErrorCode.STALE_TERMINAL_HANDLE &&\n 'terminalId' in context &&\n typeof context.terminalId === 'string' &&\n 'operation' in context &&\n typeof context.operation === 'string'\n );\n}\n\nfunction isProcessWaitTimeoutResponse(\n errorResponse: ProcessErrorResponse\n): errorResponse is ProcessWaitTimeoutResponse {\n const { context } = errorResponse;\n return (\n errorResponse.code === ErrorCode.PROCESS_WAIT_TIMEOUT &&\n 'processId' in context &&\n typeof context.processId === 'string' &&\n 'operation' in context &&\n (context.operation === 'output' ||\n context.operation === 'waitForExit' ||\n context.operation === 'waitForLog') &&\n 'timeout' in context &&\n typeof context.timeout === 'number'\n );\n}\n\nfunction isProcessAbortedResponse(\n errorResponse: ProcessErrorResponse\n): errorResponse is ProcessAbortedResponse {\n const { context } = errorResponse;\n return (\n errorResponse.code === ErrorCode.PROCESS_ABORTED &&\n 'processId' in context &&\n typeof context.processId === 'string' &&\n 'operation' in context &&\n typeof context.operation === 'string'\n );\n}\n\n/**\n * Convert ErrorResponse to appropriate Error class\n * Simple switch statement - we trust the container sends correct context\n */\nexport function createErrorFromResponse<TContext>(\n errorResponse: ErrorResponse<TContext>,\n options?: { cause?: unknown }\n): Error {\n // We trust the container sends correct context, use type assertions\n switch (errorResponse.code) {\n // File System Errors\n case ErrorCode.FILE_NOT_FOUND:\n return new FileNotFoundError(\n errorResponse as unknown as ErrorResponse<FileNotFoundContext>\n );\n\n case ErrorCode.FILE_EXISTS:\n return new FileExistsError(\n errorResponse as unknown as ErrorResponse<FileExistsContext>\n );\n\n case ErrorCode.FILE_TOO_LARGE:\n return new FileTooLargeError(\n errorResponse as unknown as ErrorResponse<FileTooLargeContext>\n );\n\n case ErrorCode.PERMISSION_DENIED:\n return new PermissionDeniedError(\n errorResponse as unknown as ErrorResponse<FileSystemContext>\n );\n\n case ErrorCode.IS_DIRECTORY:\n case ErrorCode.NOT_DIRECTORY:\n case ErrorCode.NO_SPACE:\n case ErrorCode.TOO_MANY_FILES:\n case ErrorCode.RESOURCE_BUSY:\n case ErrorCode.READ_ONLY:\n case ErrorCode.NAME_TOO_LONG:\n case ErrorCode.TOO_MANY_LINKS:\n case ErrorCode.FILESYSTEM_ERROR:\n return new FileSystemError(\n errorResponse as unknown as ErrorResponse<FileSystemContext>\n );\n\n // Command Errors\n case ErrorCode.COMMAND_NOT_FOUND:\n return new CommandNotFoundError(\n errorResponse as unknown as ErrorResponse<CommandNotFoundContext>\n );\n\n case ErrorCode.COMMAND_PERMISSION_DENIED:\n case ErrorCode.COMMAND_EXECUTION_ERROR:\n case ErrorCode.INVALID_COMMAND:\n case ErrorCode.STREAM_START_ERROR:\n return new CommandError(\n errorResponse as unknown as ErrorResponse<CommandErrorContext>\n );\n\n // Process Errors\n case ErrorCode.INVALID_PROCESS_CWD:\n return new InvalidProcessCwdError(\n errorResponse as unknown as ErrorResponse<InvalidProcessCwdContext>\n );\n\n case ErrorCode.INVALID_PROCESS_ENVIRONMENT:\n return new InvalidProcessEnvironmentError(\n errorResponse as unknown as ErrorResponse<InvalidProcessEnvironmentContext>\n );\n\n case ErrorCode.INVALID_PROCESS_CURSOR:\n return new InvalidProcessCursorError(\n errorResponse as unknown as ErrorResponse<InvalidProcessCursorContext>\n );\n\n case ErrorCode.PROCESS_SPAWN_FAILED:\n return new ProcessSpawnFailedError(\n errorResponse as unknown as ErrorResponse<ProcessSpawnFailedContext>\n );\n\n case ErrorCode.PROCESS_NOT_FOUND:\n return new ProcessNotFoundError(\n errorResponse as unknown as ErrorResponse<ProcessNotFoundContext>\n );\n\n case ErrorCode.STALE_PROCESS_HANDLE:\n if (\n isStaleProcessHandleResponse(\n errorResponse as unknown as ProcessErrorResponse\n )\n ) {\n return new StaleProcessHandleError(\n errorResponse as unknown as StaleProcessHandleResponse\n );\n }\n return new SandboxError(errorResponse);\n\n case ErrorCode.STALE_TERMINAL_HANDLE:\n if (\n isStaleTerminalHandleResponse(\n errorResponse as unknown as ProcessErrorResponse\n )\n ) {\n return new StaleTerminalHandleError(\n errorResponse as unknown as StaleTerminalHandleResponse\n );\n }\n return new SandboxError(errorResponse);\n\n case ErrorCode.PROCESS_WAIT_TIMEOUT:\n if (\n isProcessWaitTimeoutResponse(\n errorResponse as unknown as ProcessErrorResponse\n )\n ) {\n return new ProcessWaitTimeoutError(\n errorResponse as unknown as ProcessWaitTimeoutResponse\n );\n }\n return new SandboxError(errorResponse);\n\n case ErrorCode.PROCESS_ABORTED:\n if (\n isProcessAbortedResponse(\n errorResponse as unknown as ProcessErrorResponse\n )\n ) {\n return new ProcessAbortedError(\n errorResponse as unknown as ProcessAbortedResponse\n );\n }\n return new SandboxError(errorResponse);\n\n // Terminal Errors\n case ErrorCode.TERMINAL_NOT_FOUND:\n return new TerminalNotFoundError(\n errorResponse as unknown as ErrorResponse<TerminalNotFoundContext>\n );\n\n case ErrorCode.INVALID_TERMINAL_CWD:\n return new InvalidTerminalCwdError(\n errorResponse as unknown as ErrorResponse<InvalidTerminalCwdContext>\n );\n\n case ErrorCode.INVALID_TERMINAL_CURSOR:\n return new InvalidTerminalCursorError(\n errorResponse as unknown as ErrorResponse<InvalidTerminalCursorContext>\n );\n\n case ErrorCode.TERMINAL_CONTROL_ERROR:\n return new TerminalControlError(\n errorResponse as unknown as ErrorResponse<TerminalControlErrorContext>\n );\n\n case ErrorCode.PROCESS_PERMISSION_DENIED:\n case ErrorCode.PROCESS_ERROR:\n return new ProcessError(\n errorResponse as unknown as ErrorResponse<ProcessErrorContext>\n );\n\n case ErrorCode.PORT_ALREADY_EXPOSED:\n return new PortAlreadyExposedError(\n errorResponse as unknown as ErrorResponse<PortAlreadyExposedContext>\n );\n\n case ErrorCode.PORT_NOT_EXPOSED:\n return new PortNotExposedError(\n errorResponse as unknown as ErrorResponse<PortNotExposedContext>\n );\n\n case ErrorCode.INVALID_PORT_NUMBER:\n case ErrorCode.INVALID_PORT:\n return new InvalidPortError(\n errorResponse as unknown as ErrorResponse<InvalidPortContext>\n );\n\n case ErrorCode.SERVICE_NOT_RESPONDING:\n return new ServiceNotRespondingError(\n errorResponse as unknown as ErrorResponse<PortErrorContext>\n );\n\n case ErrorCode.PORT_IN_USE:\n return new PortInUseError(\n errorResponse as unknown as ErrorResponse<PortErrorContext>\n );\n\n case ErrorCode.PORT_OPERATION_ERROR:\n return new PortError(\n errorResponse as unknown as ErrorResponse<PortErrorContext>\n );\n\n case ErrorCode.CUSTOM_DOMAIN_REQUIRED:\n return new CustomDomainRequiredError(\n errorResponse as unknown as ErrorResponse<InternalErrorContext>\n );\n\n // Git Errors\n case ErrorCode.GIT_REPOSITORY_NOT_FOUND:\n return new GitRepositoryNotFoundError(\n errorResponse as unknown as ErrorResponse<GitRepositoryNotFoundContext>\n );\n\n case ErrorCode.GIT_AUTH_FAILED:\n return new GitAuthenticationError(\n errorResponse as unknown as ErrorResponse<GitAuthFailedContext>\n );\n\n case ErrorCode.GIT_BRANCH_NOT_FOUND:\n return new GitBranchNotFoundError(\n errorResponse as unknown as ErrorResponse<GitBranchNotFoundContext>\n );\n\n case ErrorCode.GIT_NETWORK_ERROR:\n return new GitNetworkError(\n errorResponse as unknown as ErrorResponse<GitErrorContext>\n );\n\n case ErrorCode.GIT_CLONE_FAILED:\n return new GitCloneError(\n errorResponse as unknown as ErrorResponse<GitErrorContext>\n );\n\n case ErrorCode.GIT_CHECKOUT_FAILED:\n return new GitCheckoutError(\n errorResponse as unknown as ErrorResponse<GitErrorContext>\n );\n\n case ErrorCode.INVALID_GIT_URL:\n return new InvalidGitUrlError(\n errorResponse as unknown as ErrorResponse<ValidationFailedContext>\n );\n\n case ErrorCode.GIT_OPERATION_FAILED:\n return new GitError(\n errorResponse as unknown as ErrorResponse<GitErrorContext>\n );\n\n // Backup Errors\n case ErrorCode.BACKUP_NOT_FOUND:\n return new BackupNotFoundError(\n errorResponse as unknown as ErrorResponse<BackupNotFoundContext>\n );\n\n case ErrorCode.BACKUP_EXPIRED:\n return new BackupExpiredError(\n errorResponse as unknown as ErrorResponse<BackupExpiredContext>\n );\n\n case ErrorCode.INVALID_BACKUP_CONFIG:\n return new InvalidBackupConfigError(\n errorResponse as unknown as ErrorResponse<InvalidBackupConfigContext>\n );\n\n case ErrorCode.BACKUP_CREATE_FAILED:\n return new BackupCreateError(\n errorResponse as unknown as ErrorResponse<BackupCreateContext>\n );\n\n case ErrorCode.BACKUP_RESTORE_FAILED:\n return new BackupRestoreError(\n errorResponse as unknown as ErrorResponse<BackupRestoreContext>\n );\n\n // Code Interpreter Errors\n case ErrorCode.INTERPRETER_NOT_READY:\n return new InterpreterNotReadyError(\n errorResponse as unknown as ErrorResponse<InterpreterNotReadyContext>\n );\n\n case ErrorCode.CONTEXT_NOT_FOUND:\n return new ContextNotFoundError(\n errorResponse as unknown as ErrorResponse<ContextNotFoundContext>\n );\n\n case ErrorCode.CODE_EXECUTION_ERROR:\n return new CodeExecutionError(\n errorResponse as unknown as ErrorResponse<CodeExecutionContext>\n );\n\n case ErrorCode.CONTAINER_UNAVAILABLE:\n return new ContainerUnavailableError(\n errorResponse as unknown as ErrorResponse<ContainerUnavailableContext>\n );\n\n case ErrorCode.OPERATION_INTERRUPTED:\n return new OperationInterruptedError(\n errorResponse as unknown as ErrorResponse<OperationInterruptedContext>\n );\n\n // RPC Transport Errors (SDK-side, raised by translateRPCError on\n // capnweb / DeferredTransport WebSocket failures).\n case ErrorCode.RPC_TRANSPORT_ERROR:\n return new RPCTransportError(\n errorResponse as unknown as ErrorResponse<RPCTransportContext>,\n options\n );\n\n // Validation Errors\n case ErrorCode.VALIDATION_FAILED:\n return new ValidationFailedError(\n errorResponse as unknown as ErrorResponse<ValidationFailedContext>\n );\n\n // Generic Errors\n case ErrorCode.INVALID_JSON_RESPONSE:\n case ErrorCode.UNKNOWN_ERROR:\n case ErrorCode.INTERNAL_ERROR:\n return new SandboxError(\n errorResponse as unknown as ErrorResponse<InternalErrorContext>\n );\n\n default:\n // Fallback for unknown error codes\n return new SandboxError(errorResponse);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors--yR3zLC_.js","names":["errorResponse: ErrorResponse<TContext>"],"sources":["../src/errors/classes/base.ts","../src/errors/classes/backup-terminal-lifecycle.ts","../src/errors/classes/filesystem.ts","../src/errors/classes/git-code.ts","../src/errors/classes/port.ts","../src/errors/classes/process.ts","../src/errors/classes/runtime-control-protocol.ts","../src/errors/classes/runtime-inactive.ts","../src/errors/adapter.ts"],"sourcesContent":["import type { ErrorResponse, OperationType } from '@repo/shared/errors';\n\ntype ErrorOperation<TContext> =\n | OperationType\n | (TContext extends { operation: infer TOperation } ? TOperation : never)\n | undefined;\n\nexport class SandboxError<TContext = Record<string, unknown>> extends Error {\n constructor(\n public readonly errorResponse: ErrorResponse<TContext>,\n options?: { cause?: unknown }\n ) {\n super(errorResponse.message, options);\n this.name = 'SandboxError';\n }\n\n get code() {\n return this.errorResponse.code;\n }\n get context() {\n return this.errorResponse.context;\n }\n get httpStatus() {\n return this.errorResponse.httpStatus;\n }\n get operation(): ErrorOperation<TContext> {\n return this.errorResponse.operation;\n }\n get suggestion() {\n return this.errorResponse.suggestion;\n }\n get timestamp() {\n return this.errorResponse.timestamp;\n }\n get documentation() {\n return this.errorResponse.documentation;\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n code: this.code,\n context: this.context,\n httpStatus: this.httpStatus,\n operation: this.operation,\n suggestion: this.suggestion,\n timestamp: this.timestamp,\n documentation: this.documentation,\n stack: this.stack\n };\n }\n}\n","import type {\n BackupCreateContext,\n BackupExpiredContext,\n BackupNotFoundContext,\n BackupRestoreContext,\n CodeExecutionContext,\n CommandErrorContext,\n CommandNotFoundContext,\n ContainerUnavailableContext,\n ContextNotFoundContext,\n ErrorResponse,\n FileExistsContext,\n FileNotFoundContext,\n FileSystemContext,\n GitAuthFailedContext,\n GitBranchNotFoundContext,\n GitErrorContext,\n GitRepositoryNotFoundContext,\n InternalErrorContext,\n InterpreterNotReadyContext,\n InvalidBackupConfigContext,\n InvalidPortContext,\n InvalidTerminalCursorContext,\n InvalidTerminalCwdContext,\n OperationInterruptedContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext,\n ProcessErrorContext,\n ProcessExitedBeforeReadyContext,\n ProcessNotFoundContext,\n ProcessReadyTimeoutContext,\n RPCTransportContext,\n RPCTransportErrorKind,\n StaleTerminalHandleContext,\n TerminalControlErrorContext,\n TerminalNotFoundContext,\n ValidationFailedContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n// Backup Errors\n// ============================================================================\n\n/**\n * Error thrown when a backup is not found in R2\n */\nexport class BackupNotFoundError extends SandboxError<BackupNotFoundContext> {\n constructor(errorResponse: ErrorResponse<BackupNotFoundContext>) {\n super(errorResponse);\n this.name = 'BackupNotFoundError';\n }\n\n get backupId() {\n return this.context.backupId;\n }\n}\n\n/**\n * Error thrown when a backup has expired (past its TTL)\n */\nexport class BackupExpiredError extends SandboxError<BackupExpiredContext> {\n constructor(errorResponse: ErrorResponse<BackupExpiredContext>) {\n super(errorResponse);\n this.name = 'BackupExpiredError';\n }\n\n get backupId() {\n return this.context.backupId;\n }\n get expiredAt() {\n return this.context.expiredAt;\n }\n}\n\n/**\n * Error thrown when backup configuration or inputs are invalid\n */\nexport class InvalidBackupConfigError extends SandboxError<InvalidBackupConfigContext> {\n constructor(errorResponse: ErrorResponse<InvalidBackupConfigContext>) {\n super(errorResponse);\n this.name = 'InvalidBackupConfigError';\n }\n\n get reason() {\n return this.context.reason;\n }\n}\n\n/**\n * Error thrown when backup creation fails\n */\nexport class BackupCreateError extends SandboxError<BackupCreateContext> {\n constructor(errorResponse: ErrorResponse<BackupCreateContext>) {\n super(errorResponse);\n this.name = 'BackupCreateError';\n }\n\n get dir() {\n return this.context.dir;\n }\n get backupId() {\n return this.context.backupId;\n }\n}\n\n/**\n * Error thrown when backup restoration fails\n */\nexport class BackupRestoreError extends SandboxError<BackupRestoreContext> {\n constructor(errorResponse: ErrorResponse<BackupRestoreContext>) {\n super(errorResponse);\n this.name = 'BackupRestoreError';\n }\n\n get dir() {\n return this.context.dir;\n }\n get backupId() {\n return this.context.backupId;\n }\n}\n\n// ============================================================================\n// Terminal Errors\n// ============================================================================\n\nexport class TerminalNotFoundError extends SandboxError<TerminalNotFoundContext> {\n constructor(errorResponse: ErrorResponse<TerminalNotFoundContext>) {\n super(errorResponse);\n this.name = 'TerminalNotFoundError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n}\n\nexport class InvalidTerminalCwdError extends SandboxError<InvalidTerminalCwdContext> {\n constructor(errorResponse: ErrorResponse<InvalidTerminalCwdContext>) {\n super(errorResponse);\n this.name = 'InvalidTerminalCwdError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n\n get cwd() {\n return this.context.cwd;\n }\n}\n\nexport class InvalidTerminalCursorError extends SandboxError<InvalidTerminalCursorContext> {\n constructor(errorResponse: ErrorResponse<InvalidTerminalCursorContext>) {\n super(errorResponse);\n this.name = 'InvalidTerminalCursorError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n}\n\nexport class TerminalControlError extends SandboxError<TerminalControlErrorContext> {\n constructor(errorResponse: ErrorResponse<TerminalControlErrorContext>) {\n super(errorResponse);\n this.name = 'TerminalControlError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n\n get operationName() {\n return this.context.operation;\n }\n}\n\nexport class StaleTerminalHandleError extends SandboxError<StaleTerminalHandleContext> {\n constructor(errorResponse: ErrorResponse<StaleTerminalHandleContext>) {\n super(errorResponse);\n this.name = 'StaleTerminalHandleError';\n }\n\n get terminalId() {\n return this.context.terminalId;\n }\n\n get operation() {\n return this.context.operation;\n }\n}\n\n// ============================================================================\n// Container Availability Errors\n// ============================================================================\n\nexport class ContainerUnavailableError extends SandboxError<ContainerUnavailableContext> {\n constructor(errorResponse: ErrorResponse<ContainerUnavailableContext>) {\n super(errorResponse);\n this.name = 'ContainerUnavailableError';\n }\n}\n\n// ============================================================================\n// Operation Lifecycle Errors\n// ============================================================================\n\nexport class OperationInterruptedError extends SandboxError<OperationInterruptedContext> {\n constructor(errorResponse: ErrorResponse<OperationInterruptedContext>) {\n super(errorResponse);\n this.name = 'OperationInterruptedError';\n }\n\n get reason() {\n return this.context.reason;\n }\n\n get retryable() {\n return this.context.retryable;\n }\n\n get operationName() {\n return this.context.operation;\n }\n}\n\n// ============================================================================\n// RPC Transport Errors (SDK-side)\n// ============================================================================\n\n/**\n * Raised when the capnweb WebSocket session itself fails on the SDK side.\n * Unlike the rest of the SandboxError tree, the container never produces\n * this error — it is synthesised by `translateRPCError` from the plain\n * Errors capnweb / DeferredTransport raise when the connection dies.\n *\n * `kind` distinguishes the failure mode (peer close, upgrade failed, etc.)\n * so callers can branch on a structured code instead of substring-matching\n * on the message.\n *\n * Always retryable: the SDK opens a fresh connection on the next call.\n */\nexport class RPCTransportError extends SandboxError<RPCTransportContext> {\n constructor(\n errorResponse: ErrorResponse<RPCTransportContext>,\n options?: { cause?: unknown }\n ) {\n super(errorResponse, options);\n this.name = 'RPCTransportError';\n }\n\n get kind(): RPCTransportErrorKind {\n return this.errorResponse.context.kind;\n }\n\n get originalMessage(): string {\n return this.errorResponse.context.originalMessage;\n }\n}\n","import type {\n BackupCreateContext,\n BackupExpiredContext,\n BackupNotFoundContext,\n BackupRestoreContext,\n CodeExecutionContext,\n CommandErrorContext,\n CommandNotFoundContext,\n ContainerUnavailableContext,\n ContextNotFoundContext,\n ErrorResponse,\n FileExistsContext,\n FileNotFoundContext,\n FileSystemContext,\n FileTooLargeContext,\n GitAuthFailedContext,\n GitBranchNotFoundContext,\n GitErrorContext,\n GitRepositoryNotFoundContext,\n InternalErrorContext,\n InterpreterNotReadyContext,\n InvalidBackupConfigContext,\n InvalidPortContext,\n InvalidTerminalCursorContext,\n OperationInterruptedContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext,\n ProcessErrorContext,\n ProcessExitedBeforeReadyContext,\n ProcessNotFoundContext,\n ProcessReadyTimeoutContext,\n RPCTransportContext,\n RPCTransportErrorKind,\n TerminalControlErrorContext,\n TerminalNotFoundContext,\n ValidationFailedContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n// File System Errors\n// ============================================================================\n\n/**\n * Error thrown when a file or directory is not found\n */\nexport class FileNotFoundError extends SandboxError<FileNotFoundContext> {\n constructor(errorResponse: ErrorResponse<FileNotFoundContext>) {\n super(errorResponse);\n this.name = 'FileNotFoundError';\n }\n\n // Type-safe accessors\n get path() {\n return this.context.path;\n }\n}\n\n/**\n * Error thrown when a file already exists\n */\nexport class FileExistsError extends SandboxError<FileExistsContext> {\n constructor(errorResponse: ErrorResponse<FileExistsContext>) {\n super(errorResponse);\n this.name = 'FileExistsError';\n }\n\n // Type-safe accessor\n get path() {\n return this.context.path;\n }\n}\n\n/**\n * Error thrown when a file is too large\n */\nexport class FileTooLargeError extends SandboxError<FileTooLargeContext> {\n constructor(errorResponse: ErrorResponse<FileTooLargeContext>) {\n super(errorResponse);\n this.name = 'FileTooLargeError';\n }\n\n // Type-safe accessor\n get path() {\n return this.context.path;\n }\n}\n\n/**\n * Generic file system error (permissions, disk full, etc.)\n */\nexport class FileSystemError extends SandboxError<FileSystemContext> {\n constructor(errorResponse: ErrorResponse<FileSystemContext>) {\n super(errorResponse);\n this.name = 'FileSystemError';\n }\n\n // Type-safe accessors\n get path() {\n return this.context.path;\n }\n get stderr() {\n return this.context.stderr;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n}\n\n/**\n * Error thrown when permission is denied\n */\nexport class PermissionDeniedError extends SandboxError<FileSystemContext> {\n constructor(errorResponse: ErrorResponse<FileSystemContext>) {\n super(errorResponse);\n this.name = 'PermissionDeniedError';\n }\n\n get path() {\n return this.context.path;\n }\n}\n\n// ============================================================================\n","import type {\n BackupCreateContext,\n BackupExpiredContext,\n BackupNotFoundContext,\n BackupRestoreContext,\n CodeExecutionContext,\n CommandErrorContext,\n CommandNotFoundContext,\n ContainerUnavailableContext,\n ContextNotFoundContext,\n ErrorResponse,\n FileExistsContext,\n FileNotFoundContext,\n FileSystemContext,\n GitAuthFailedContext,\n GitBranchNotFoundContext,\n GitErrorContext,\n GitRepositoryNotFoundContext,\n InternalErrorContext,\n InterpreterNotReadyContext,\n InvalidBackupConfigContext,\n InvalidPortContext,\n InvalidTerminalCursorContext,\n OperationInterruptedContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext,\n ProcessErrorContext,\n ProcessNotFoundContext,\n RPCTransportContext,\n RPCTransportErrorKind,\n TerminalControlErrorContext,\n TerminalNotFoundContext,\n ValidationFailedContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n// Git Errors\n// ============================================================================\n\n/**\n * Error thrown when a git repository is not found\n */\nexport class GitRepositoryNotFoundError extends SandboxError<GitRepositoryNotFoundContext> {\n constructor(errorResponse: ErrorResponse<GitRepositoryNotFoundContext>) {\n super(errorResponse);\n this.name = 'GitRepositoryNotFoundError';\n }\n\n // Type-safe accessor\n get repository() {\n return this.context.repository;\n }\n}\n\n/**\n * Error thrown when git authentication fails\n */\nexport class GitAuthenticationError extends SandboxError<GitAuthFailedContext> {\n constructor(errorResponse: ErrorResponse<GitAuthFailedContext>) {\n super(errorResponse);\n this.name = 'GitAuthenticationError';\n }\n\n // Type-safe accessor\n get repository() {\n return this.context.repository;\n }\n}\n\n/**\n * Error thrown when a git branch is not found\n */\nexport class GitBranchNotFoundError extends SandboxError<GitBranchNotFoundContext> {\n constructor(errorResponse: ErrorResponse<GitBranchNotFoundContext>) {\n super(errorResponse);\n this.name = 'GitBranchNotFoundError';\n }\n\n // Type-safe accessors\n get branch() {\n return this.context.branch;\n }\n get repository() {\n return this.context.repository;\n }\n}\n\n/**\n * Error thrown when a git network operation fails\n */\nexport class GitNetworkError extends SandboxError<GitErrorContext> {\n constructor(errorResponse: ErrorResponse<GitErrorContext>) {\n super(errorResponse);\n this.name = 'GitNetworkError';\n }\n\n // Type-safe accessors\n get repository() {\n return this.context.repository;\n }\n get branch() {\n return this.context.branch;\n }\n get targetDir() {\n return this.context.targetDir;\n }\n}\n\n/**\n * Error thrown when git clone fails\n */\nexport class GitCloneError extends SandboxError<GitErrorContext> {\n constructor(errorResponse: ErrorResponse<GitErrorContext>) {\n super(errorResponse);\n this.name = 'GitCloneError';\n }\n\n // Type-safe accessors\n get repository() {\n return this.context.repository;\n }\n get targetDir() {\n return this.context.targetDir;\n }\n get stderr() {\n return this.context.stderr;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n}\n\n/**\n * Error thrown when git checkout fails\n */\nexport class GitCheckoutError extends SandboxError<GitErrorContext> {\n constructor(errorResponse: ErrorResponse<GitErrorContext>) {\n super(errorResponse);\n this.name = 'GitCheckoutError';\n }\n\n // Type-safe accessors\n get branch() {\n return this.context.branch;\n }\n get repository() {\n return this.context.repository;\n }\n get stderr() {\n return this.context.stderr;\n }\n}\n\n/**\n * Error thrown when a git URL is invalid\n */\nexport class InvalidGitUrlError extends SandboxError<ValidationFailedContext> {\n constructor(errorResponse: ErrorResponse<ValidationFailedContext>) {\n super(errorResponse);\n this.name = 'InvalidGitUrlError';\n }\n\n // Type-safe accessor\n get validationErrors() {\n return this.context.validationErrors;\n }\n}\n\n/**\n * Generic git operation error\n */\nexport class GitError extends SandboxError<GitErrorContext> {\n constructor(errorResponse: ErrorResponse<GitErrorContext>) {\n super(errorResponse);\n this.name = 'GitError';\n }\n\n // Type-safe accessors\n get repository() {\n return this.context.repository;\n }\n get branch() {\n return this.context.branch;\n }\n get targetDir() {\n return this.context.targetDir;\n }\n get stderr() {\n return this.context.stderr;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n}\n\n// ============================================================================\n// Code Interpreter Errors\n// ============================================================================\n\n/**\n * Error thrown when interpreter is not ready\n */\nexport class InterpreterNotReadyError extends SandboxError<InterpreterNotReadyContext> {\n constructor(errorResponse: ErrorResponse<InterpreterNotReadyContext>) {\n super(errorResponse);\n this.name = 'InterpreterNotReadyError';\n }\n\n // Type-safe accessors\n get retryAfter() {\n return this.context.retryAfter;\n }\n get progress() {\n return this.context.progress;\n }\n}\n\n/**\n * Error thrown when a context is not found\n */\nexport class ContextNotFoundError extends SandboxError<ContextNotFoundContext> {\n constructor(errorResponse: ErrorResponse<ContextNotFoundContext>) {\n super(errorResponse);\n this.name = 'ContextNotFoundError';\n }\n\n // Type-safe accessor\n get contextId() {\n return this.context.contextId;\n }\n}\n\n/**\n * Error thrown when code execution fails\n */\nexport class CodeExecutionError extends SandboxError<CodeExecutionContext> {\n constructor(errorResponse: ErrorResponse<CodeExecutionContext>) {\n super(errorResponse);\n this.name = 'CodeExecutionError';\n }\n\n // Type-safe accessors\n get contextId() {\n return this.context.contextId;\n }\n get ename() {\n return this.context.ename;\n }\n get evalue() {\n return this.context.evalue;\n }\n get traceback() {\n return this.context.traceback;\n }\n}\n\n// ============================================================================\n// Validation Errors\n// ============================================================================\n\n/**\n * Error thrown when validation fails\n */\nexport class ValidationFailedError extends SandboxError<ValidationFailedContext> {\n constructor(errorResponse: ErrorResponse<ValidationFailedContext>) {\n super(errorResponse);\n this.name = 'ValidationFailedError';\n }\n\n // Type-safe accessor\n get validationErrors() {\n return this.context.validationErrors;\n }\n}\n","import type {\n ErrorResponse,\n InternalErrorContext,\n InvalidPortContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n\n// ============================================================================\n// Port Errors\n// ============================================================================\n\n/**\n * Error thrown when exposing a port that is already exposed.\n */\nexport class PortAlreadyExposedError extends SandboxError<PortAlreadyExposedContext> {\n constructor(errorResponse: ErrorResponse<PortAlreadyExposedContext>) {\n super(errorResponse);\n this.name = 'PortAlreadyExposedError';\n }\n\n // Type-safe accessors\n get port() {\n return this.context.port;\n }\n get portName() {\n return this.context.portName;\n }\n}\n\n/**\n * Error thrown when operating on a port that has not been exposed.\n */\nexport class PortNotExposedError extends SandboxError<PortNotExposedContext> {\n constructor(errorResponse: ErrorResponse<PortNotExposedContext>) {\n super(errorResponse);\n this.name = 'PortNotExposedError';\n }\n\n // Type-safe accessor\n get port() {\n return this.context.port;\n }\n}\n\n/**\n * Error thrown when a port number is invalid\n */\nexport class InvalidPortError extends SandboxError<InvalidPortContext> {\n constructor(errorResponse: ErrorResponse<InvalidPortContext>) {\n super(errorResponse);\n this.name = 'InvalidPortError';\n }\n\n // Type-safe accessors\n get port() {\n return this.context.port;\n }\n get reason() {\n return this.context.reason;\n }\n}\n\n/**\n * Error thrown when a service on a port is not responding\n */\nexport class ServiceNotRespondingError extends SandboxError<PortErrorContext> {\n constructor(errorResponse: ErrorResponse<PortErrorContext>) {\n super(errorResponse);\n this.name = 'ServiceNotRespondingError';\n }\n\n // Type-safe accessors\n get port() {\n return this.context.port;\n }\n get portName() {\n return this.context.portName;\n }\n}\n\n/**\n * Error thrown when a port is already in use\n */\nexport class PortInUseError extends SandboxError<PortErrorContext> {\n constructor(errorResponse: ErrorResponse<PortErrorContext>) {\n super(errorResponse);\n this.name = 'PortInUseError';\n }\n\n // Type-safe accessor\n get port() {\n return this.context.port;\n }\n}\n\n/**\n * Generic port operation error\n */\nexport class PortError extends SandboxError<PortErrorContext> {\n constructor(errorResponse: ErrorResponse<PortErrorContext>) {\n super(errorResponse);\n this.name = 'PortError';\n }\n\n // Type-safe accessors\n get port() {\n return this.context.port;\n }\n get portName() {\n return this.context.portName;\n }\n get stderr() {\n return this.context.stderr;\n }\n}\n\n/**\n * Error thrown when port exposure requires a custom domain\n */\nexport class CustomDomainRequiredError extends SandboxError<InternalErrorContext> {\n constructor(errorResponse: ErrorResponse<InternalErrorContext>) {\n super(errorResponse);\n this.name = 'CustomDomainRequiredError';\n }\n}\n","import type {\n CommandErrorContext,\n CommandNotFoundContext,\n ErrorResponse,\n InvalidProcessCursorContext,\n InvalidProcessCwdContext,\n InvalidProcessEnvironmentContext,\n ProcessAbortedContext,\n ProcessErrorContext,\n ProcessExitedBeforeLogContext,\n ProcessExitedBeforeReadyContext,\n ProcessNotFoundContext,\n ProcessReadyTimeoutContext,\n ProcessSpawnFailedContext,\n ProcessWaitTimeoutContext,\n StaleProcessHandleContext\n} from '@repo/shared/errors';\nimport { SandboxError } from './base';\n// Command Errors\n// ============================================================================\n\n/**\n * Error thrown when a command is not found\n */\nexport class CommandNotFoundError extends SandboxError<CommandNotFoundContext> {\n constructor(errorResponse: ErrorResponse<CommandNotFoundContext>) {\n super(errorResponse);\n this.name = 'CommandNotFoundError';\n }\n\n // Type-safe accessor\n get command() {\n return this.context.command;\n }\n}\n\n/**\n * Generic command execution error\n */\nexport class CommandError extends SandboxError<CommandErrorContext> {\n constructor(errorResponse: ErrorResponse<CommandErrorContext>) {\n super(errorResponse);\n this.name = 'CommandError';\n }\n\n // Type-safe accessors\n get command() {\n return this.context.command;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n get stdout() {\n return this.context.stdout;\n }\n get stderr() {\n return this.context.stderr;\n }\n}\n\n// ============================================================================\n// Process Errors\n// ============================================================================\n\nexport class InvalidProcessCwdError extends SandboxError<InvalidProcessCwdContext> {\n constructor(errorResponse: ErrorResponse<InvalidProcessCwdContext>) {\n super(errorResponse);\n this.name = 'InvalidProcessCwdError';\n }\n}\n\nexport class InvalidProcessEnvironmentError extends SandboxError<InvalidProcessEnvironmentContext> {\n constructor(errorResponse: ErrorResponse<InvalidProcessEnvironmentContext>) {\n super(errorResponse);\n this.name = 'InvalidProcessEnvironmentError';\n }\n}\n\nexport class InvalidProcessCursorError extends SandboxError<InvalidProcessCursorContext> {\n constructor(errorResponse: ErrorResponse<InvalidProcessCursorContext>) {\n super(errorResponse);\n this.name = 'InvalidProcessCursorError';\n }\n}\n\nexport class ProcessSpawnFailedError extends SandboxError<ProcessSpawnFailedContext> {\n constructor(errorResponse: ErrorResponse<ProcessSpawnFailedContext>) {\n super(errorResponse);\n this.name = 'ProcessSpawnFailedError';\n }\n}\n\n/**\n * Error thrown when a process is not found\n */\nexport class ProcessNotFoundError extends SandboxError<ProcessNotFoundContext> {\n constructor(errorResponse: ErrorResponse<ProcessNotFoundContext>) {\n super(errorResponse);\n this.name = 'ProcessNotFoundError';\n }\n\n // Type-safe accessor\n get processId() {\n return this.context.processId;\n }\n}\n\n/**\n * Generic process error\n */\nexport class ProcessError extends SandboxError<ProcessErrorContext> {\n constructor(errorResponse: ErrorResponse<ProcessErrorContext>) {\n super(errorResponse);\n this.name = 'ProcessError';\n }\n\n // Type-safe accessors\n get processId() {\n return this.context.processId;\n }\n get pid() {\n return this.context.pid;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n get stderr() {\n return this.context.stderr;\n }\n}\n\nexport class StaleProcessHandleError extends SandboxError<StaleProcessHandleContext> {\n constructor(errorResponse: ErrorResponse<StaleProcessHandleContext>) {\n super(errorResponse);\n this.name = 'StaleProcessHandleError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get pid() {\n return this.context.pid;\n }\n get operation() {\n return this.context.operation;\n }\n}\n\nexport class ProcessWaitTimeoutError extends SandboxError<ProcessWaitTimeoutContext> {\n constructor(errorResponse: ErrorResponse<ProcessWaitTimeoutContext>) {\n super(errorResponse);\n this.name = 'ProcessWaitTimeoutError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get operation() {\n return this.context.operation;\n }\n get timeout() {\n return this.context.timeout;\n }\n}\n\nexport class ProcessAbortedError extends SandboxError<ProcessAbortedContext> {\n constructor(errorResponse: ErrorResponse<ProcessAbortedContext>) {\n super(errorResponse);\n this.name = 'ProcessAbortedError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get operation() {\n return this.context.operation;\n }\n}\n\nexport class ProcessReadyTimeoutError extends SandboxError<ProcessReadyTimeoutContext> {\n constructor(errorResponse: ErrorResponse<ProcessReadyTimeoutContext>) {\n super(errorResponse);\n this.name = 'ProcessReadyTimeoutError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get command() {\n return this.context.command;\n }\n get condition() {\n return this.context.condition;\n }\n get timeout() {\n return this.context.timeout;\n }\n}\n\nexport class ProcessExitedBeforeLogError extends SandboxError<ProcessExitedBeforeLogContext> {\n constructor(errorResponse: ErrorResponse<ProcessExitedBeforeLogContext>) {\n super(errorResponse);\n this.name = 'ProcessExitedBeforeLogError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get pid() {\n return this.context.pid;\n }\n get exit() {\n return this.context.exit;\n }\n}\n\nexport class ProcessExitedBeforeReadyError extends SandboxError<ProcessExitedBeforeReadyContext> {\n constructor(errorResponse: ErrorResponse<ProcessExitedBeforeReadyContext>) {\n super(errorResponse);\n this.name = 'ProcessExitedBeforeReadyError';\n }\n\n get processId() {\n return this.context.processId;\n }\n get command() {\n return this.context.command;\n }\n get condition() {\n return this.context.condition;\n }\n get exitCode() {\n return this.context.exitCode;\n }\n}\n","import { ErrorCode, getHttpStatus } from '@repo/shared/errors';\nimport { SandboxError } from './base';\n\nexport type RuntimeControlProtocolErrorReason =\n | 'missing-metadata'\n | 'malformed-metadata'\n | 'unsupported-protocol-version'\n | 'activation-mismatch';\n\nexport class RuntimeControlProtocolError extends SandboxError<{\n reason: RuntimeControlProtocolErrorReason;\n operation?: string;\n}> {\n constructor(\n message: string,\n context: {\n reason: RuntimeControlProtocolErrorReason;\n operation?: string;\n },\n options?: { cause?: unknown }\n ) {\n super(\n {\n code: ErrorCode.INTERNAL_ERROR,\n message,\n context,\n httpStatus: getHttpStatus(ErrorCode.INTERNAL_ERROR),\n timestamp: new Date().toISOString()\n },\n options\n );\n this.name = 'RuntimeControlProtocolError';\n }\n}\n","export class RuntimeIdentityInactiveError extends Error {\n constructor() {\n super('Runtime identity is no longer active');\n this.name = 'RuntimeIdentityInactiveError';\n }\n}\n","/**\n * Error adapter that converts ErrorResponse to appropriate Error class\n *\n * Simple switch statement - we trust the container sends correct context\n * No validation overhead since we control both sides\n */\n\nimport type {\n BackupCreateContext,\n BackupExpiredContext,\n BackupNotFoundContext,\n BackupRestoreContext,\n CodeExecutionContext,\n CommandErrorContext,\n CommandNotFoundContext,\n ContainerUnavailableContext,\n ContextNotFoundContext,\n ErrorResponse,\n FileExistsContext,\n FileNotFoundContext,\n FileSystemContext,\n FileTooLargeContext,\n GitAuthFailedContext,\n GitBranchNotFoundContext,\n GitErrorContext,\n GitRepositoryNotFoundContext,\n InternalErrorContext,\n InterpreterNotReadyContext,\n InvalidBackupConfigContext,\n InvalidPortContext,\n InvalidProcessCursorContext,\n InvalidProcessCwdContext,\n InvalidProcessEnvironmentContext,\n InvalidTerminalCursorContext,\n InvalidTerminalCwdContext,\n OperationInterruptedContext,\n PortAlreadyExposedContext,\n PortErrorContext,\n PortNotExposedContext,\n ProcessAbortedContext,\n ProcessErrorContext,\n ProcessNotFoundContext,\n ProcessSpawnFailedContext,\n ProcessWaitTimeoutContext,\n RPCTransportContext,\n StaleProcessHandleContext,\n StaleTerminalHandleContext,\n TerminalControlErrorContext,\n TerminalNotFoundContext,\n ValidationFailedContext\n} from '@repo/shared/errors';\nimport { ErrorCode } from '@repo/shared/errors';\n\nimport {\n BackupCreateError,\n BackupExpiredError,\n BackupNotFoundError,\n BackupRestoreError,\n CodeExecutionError,\n CommandError,\n CommandNotFoundError,\n ContainerUnavailableError,\n ContextNotFoundError,\n CustomDomainRequiredError,\n FileExistsError,\n FileNotFoundError,\n FileSystemError,\n FileTooLargeError,\n GitAuthenticationError,\n GitBranchNotFoundError,\n GitCheckoutError,\n GitCloneError,\n GitError,\n GitNetworkError,\n GitRepositoryNotFoundError,\n InterpreterNotReadyError,\n InvalidBackupConfigError,\n InvalidGitUrlError,\n InvalidPortError,\n InvalidProcessCursorError,\n InvalidProcessCwdError,\n InvalidProcessEnvironmentError,\n InvalidTerminalCursorError,\n InvalidTerminalCwdError,\n OperationInterruptedError,\n PermissionDeniedError,\n PortAlreadyExposedError,\n PortError,\n PortInUseError,\n PortNotExposedError,\n ProcessAbortedError,\n ProcessError,\n ProcessNotFoundError,\n ProcessSpawnFailedError,\n ProcessWaitTimeoutError,\n RPCTransportError,\n SandboxError,\n ServiceNotRespondingError,\n StaleProcessHandleError,\n StaleTerminalHandleError,\n TerminalControlError,\n TerminalNotFoundError,\n ValidationFailedError\n} from './classes';\n\ntype StaleProcessHandleResponse = ErrorResponse<StaleProcessHandleContext> & {\n code: typeof ErrorCode.STALE_PROCESS_HANDLE;\n};\n\ntype StaleTerminalHandleResponse = ErrorResponse<StaleTerminalHandleContext> & {\n code: typeof ErrorCode.STALE_TERMINAL_HANDLE;\n};\n\ntype ProcessWaitTimeoutResponse = ErrorResponse<ProcessWaitTimeoutContext> & {\n code: typeof ErrorCode.PROCESS_WAIT_TIMEOUT;\n};\n\ntype ProcessAbortedResponse = ErrorResponse<ProcessAbortedContext> & {\n code: typeof ErrorCode.PROCESS_ABORTED;\n};\n\ntype ProcessErrorResponse =\n | ErrorResponse\n | StaleProcessHandleResponse\n | StaleTerminalHandleResponse\n | ProcessWaitTimeoutResponse\n | ProcessAbortedResponse;\n\nfunction isStaleProcessHandleResponse(\n errorResponse: ProcessErrorResponse\n): errorResponse is StaleProcessHandleResponse {\n const { context } = errorResponse;\n return (\n errorResponse.code === ErrorCode.STALE_PROCESS_HANDLE &&\n 'processId' in context &&\n typeof context.processId === 'string' &&\n 'pid' in context &&\n typeof context.pid === 'number' &&\n 'operation' in context &&\n typeof context.operation === 'string'\n );\n}\n\nfunction isStaleTerminalHandleResponse(\n errorResponse: ProcessErrorResponse\n): errorResponse is StaleTerminalHandleResponse {\n const { context } = errorResponse;\n return (\n errorResponse.code === ErrorCode.STALE_TERMINAL_HANDLE &&\n 'terminalId' in context &&\n typeof context.terminalId === 'string' &&\n 'operation' in context &&\n typeof context.operation === 'string'\n );\n}\n\nfunction isProcessWaitTimeoutResponse(\n errorResponse: ProcessErrorResponse\n): errorResponse is ProcessWaitTimeoutResponse {\n const { context } = errorResponse;\n return (\n errorResponse.code === ErrorCode.PROCESS_WAIT_TIMEOUT &&\n 'processId' in context &&\n typeof context.processId === 'string' &&\n 'operation' in context &&\n (context.operation === 'output' ||\n context.operation === 'waitForExit' ||\n context.operation === 'waitForLog') &&\n 'timeout' in context &&\n typeof context.timeout === 'number'\n );\n}\n\nfunction isProcessAbortedResponse(\n errorResponse: ProcessErrorResponse\n): errorResponse is ProcessAbortedResponse {\n const { context } = errorResponse;\n return (\n errorResponse.code === ErrorCode.PROCESS_ABORTED &&\n 'processId' in context &&\n typeof context.processId === 'string' &&\n 'operation' in context &&\n typeof context.operation === 'string'\n );\n}\n\n/**\n * Convert ErrorResponse to appropriate Error class\n * Simple switch statement - we trust the container sends correct context\n */\nexport function createErrorFromResponse<TContext>(\n errorResponse: ErrorResponse<TContext>,\n options?: { cause?: unknown }\n): Error {\n // We trust the container sends correct context, use type assertions\n switch (errorResponse.code) {\n // File System Errors\n case ErrorCode.FILE_NOT_FOUND:\n return new FileNotFoundError(\n errorResponse as unknown as ErrorResponse<FileNotFoundContext>\n );\n\n case ErrorCode.FILE_EXISTS:\n return new FileExistsError(\n errorResponse as unknown as ErrorResponse<FileExistsContext>\n );\n\n case ErrorCode.FILE_TOO_LARGE:\n return new FileTooLargeError(\n errorResponse as unknown as ErrorResponse<FileTooLargeContext>\n );\n\n case ErrorCode.PERMISSION_DENIED:\n return new PermissionDeniedError(\n errorResponse as unknown as ErrorResponse<FileSystemContext>\n );\n\n case ErrorCode.IS_DIRECTORY:\n case ErrorCode.NOT_DIRECTORY:\n case ErrorCode.NO_SPACE:\n case ErrorCode.TOO_MANY_FILES:\n case ErrorCode.RESOURCE_BUSY:\n case ErrorCode.READ_ONLY:\n case ErrorCode.NAME_TOO_LONG:\n case ErrorCode.TOO_MANY_LINKS:\n case ErrorCode.FILESYSTEM_ERROR:\n return new FileSystemError(\n errorResponse as unknown as ErrorResponse<FileSystemContext>\n );\n\n // Command Errors\n case ErrorCode.COMMAND_NOT_FOUND:\n return new CommandNotFoundError(\n errorResponse as unknown as ErrorResponse<CommandNotFoundContext>\n );\n\n case ErrorCode.COMMAND_PERMISSION_DENIED:\n case ErrorCode.COMMAND_EXECUTION_ERROR:\n case ErrorCode.INVALID_COMMAND:\n case ErrorCode.STREAM_START_ERROR:\n return new CommandError(\n errorResponse as unknown as ErrorResponse<CommandErrorContext>\n );\n\n // Process Errors\n case ErrorCode.INVALID_PROCESS_CWD:\n return new InvalidProcessCwdError(\n errorResponse as unknown as ErrorResponse<InvalidProcessCwdContext>\n );\n\n case ErrorCode.INVALID_PROCESS_ENVIRONMENT:\n return new InvalidProcessEnvironmentError(\n errorResponse as unknown as ErrorResponse<InvalidProcessEnvironmentContext>\n );\n\n case ErrorCode.INVALID_PROCESS_CURSOR:\n return new InvalidProcessCursorError(\n errorResponse as unknown as ErrorResponse<InvalidProcessCursorContext>\n );\n\n case ErrorCode.PROCESS_SPAWN_FAILED:\n return new ProcessSpawnFailedError(\n errorResponse as unknown as ErrorResponse<ProcessSpawnFailedContext>\n );\n\n case ErrorCode.PROCESS_NOT_FOUND:\n return new ProcessNotFoundError(\n errorResponse as unknown as ErrorResponse<ProcessNotFoundContext>\n );\n\n case ErrorCode.STALE_PROCESS_HANDLE:\n if (\n isStaleProcessHandleResponse(\n errorResponse as unknown as ProcessErrorResponse\n )\n ) {\n return new StaleProcessHandleError(\n errorResponse as unknown as StaleProcessHandleResponse\n );\n }\n return new SandboxError(errorResponse);\n\n case ErrorCode.STALE_TERMINAL_HANDLE:\n if (\n isStaleTerminalHandleResponse(\n errorResponse as unknown as ProcessErrorResponse\n )\n ) {\n return new StaleTerminalHandleError(\n errorResponse as unknown as StaleTerminalHandleResponse\n );\n }\n return new SandboxError(errorResponse);\n\n case ErrorCode.PROCESS_WAIT_TIMEOUT:\n if (\n isProcessWaitTimeoutResponse(\n errorResponse as unknown as ProcessErrorResponse\n )\n ) {\n return new ProcessWaitTimeoutError(\n errorResponse as unknown as ProcessWaitTimeoutResponse\n );\n }\n return new SandboxError(errorResponse);\n\n case ErrorCode.PROCESS_ABORTED:\n if (\n isProcessAbortedResponse(\n errorResponse as unknown as ProcessErrorResponse\n )\n ) {\n return new ProcessAbortedError(\n errorResponse as unknown as ProcessAbortedResponse\n );\n }\n return new SandboxError(errorResponse);\n\n // Terminal Errors\n case ErrorCode.TERMINAL_NOT_FOUND:\n return new TerminalNotFoundError(\n errorResponse as unknown as ErrorResponse<TerminalNotFoundContext>\n );\n\n case ErrorCode.INVALID_TERMINAL_CWD:\n return new InvalidTerminalCwdError(\n errorResponse as unknown as ErrorResponse<InvalidTerminalCwdContext>\n );\n\n case ErrorCode.INVALID_TERMINAL_CURSOR:\n return new InvalidTerminalCursorError(\n errorResponse as unknown as ErrorResponse<InvalidTerminalCursorContext>\n );\n\n case ErrorCode.TERMINAL_CONTROL_ERROR:\n return new TerminalControlError(\n errorResponse as unknown as ErrorResponse<TerminalControlErrorContext>\n );\n\n case ErrorCode.PROCESS_PERMISSION_DENIED:\n case ErrorCode.PROCESS_ERROR:\n return new ProcessError(\n errorResponse as unknown as ErrorResponse<ProcessErrorContext>\n );\n\n case ErrorCode.PORT_ALREADY_EXPOSED:\n return new PortAlreadyExposedError(\n errorResponse as unknown as ErrorResponse<PortAlreadyExposedContext>\n );\n\n case ErrorCode.PORT_NOT_EXPOSED:\n return new PortNotExposedError(\n errorResponse as unknown as ErrorResponse<PortNotExposedContext>\n );\n\n case ErrorCode.INVALID_PORT_NUMBER:\n case ErrorCode.INVALID_PORT:\n return new InvalidPortError(\n errorResponse as unknown as ErrorResponse<InvalidPortContext>\n );\n\n case ErrorCode.SERVICE_NOT_RESPONDING:\n return new ServiceNotRespondingError(\n errorResponse as unknown as ErrorResponse<PortErrorContext>\n );\n\n case ErrorCode.PORT_IN_USE:\n return new PortInUseError(\n errorResponse as unknown as ErrorResponse<PortErrorContext>\n );\n\n case ErrorCode.PORT_OPERATION_ERROR:\n return new PortError(\n errorResponse as unknown as ErrorResponse<PortErrorContext>\n );\n\n case ErrorCode.CUSTOM_DOMAIN_REQUIRED:\n return new CustomDomainRequiredError(\n errorResponse as unknown as ErrorResponse<InternalErrorContext>\n );\n\n // Git Errors\n case ErrorCode.GIT_REPOSITORY_NOT_FOUND:\n return new GitRepositoryNotFoundError(\n errorResponse as unknown as ErrorResponse<GitRepositoryNotFoundContext>\n );\n\n case ErrorCode.GIT_AUTH_FAILED:\n return new GitAuthenticationError(\n errorResponse as unknown as ErrorResponse<GitAuthFailedContext>\n );\n\n case ErrorCode.GIT_BRANCH_NOT_FOUND:\n return new GitBranchNotFoundError(\n errorResponse as unknown as ErrorResponse<GitBranchNotFoundContext>\n );\n\n case ErrorCode.GIT_NETWORK_ERROR:\n return new GitNetworkError(\n errorResponse as unknown as ErrorResponse<GitErrorContext>\n );\n\n case ErrorCode.GIT_CLONE_FAILED:\n return new GitCloneError(\n errorResponse as unknown as ErrorResponse<GitErrorContext>\n );\n\n case ErrorCode.GIT_CHECKOUT_FAILED:\n return new GitCheckoutError(\n errorResponse as unknown as ErrorResponse<GitErrorContext>\n );\n\n case ErrorCode.INVALID_GIT_URL:\n return new InvalidGitUrlError(\n errorResponse as unknown as ErrorResponse<ValidationFailedContext>\n );\n\n case ErrorCode.GIT_OPERATION_FAILED:\n return new GitError(\n errorResponse as unknown as ErrorResponse<GitErrorContext>\n );\n\n // Backup Errors\n case ErrorCode.BACKUP_NOT_FOUND:\n return new BackupNotFoundError(\n errorResponse as unknown as ErrorResponse<BackupNotFoundContext>\n );\n\n case ErrorCode.BACKUP_EXPIRED:\n return new BackupExpiredError(\n errorResponse as unknown as ErrorResponse<BackupExpiredContext>\n );\n\n case ErrorCode.INVALID_BACKUP_CONFIG:\n return new InvalidBackupConfigError(\n errorResponse as unknown as ErrorResponse<InvalidBackupConfigContext>\n );\n\n case ErrorCode.BACKUP_CREATE_FAILED:\n return new BackupCreateError(\n errorResponse as unknown as ErrorResponse<BackupCreateContext>\n );\n\n case ErrorCode.BACKUP_RESTORE_FAILED:\n return new BackupRestoreError(\n errorResponse as unknown as ErrorResponse<BackupRestoreContext>\n );\n\n // Code Interpreter Errors\n case ErrorCode.INTERPRETER_NOT_READY:\n return new InterpreterNotReadyError(\n errorResponse as unknown as ErrorResponse<InterpreterNotReadyContext>\n );\n\n case ErrorCode.CONTEXT_NOT_FOUND:\n return new ContextNotFoundError(\n errorResponse as unknown as ErrorResponse<ContextNotFoundContext>\n );\n\n case ErrorCode.CODE_EXECUTION_ERROR:\n return new CodeExecutionError(\n errorResponse as unknown as ErrorResponse<CodeExecutionContext>\n );\n\n case ErrorCode.CONTAINER_UNAVAILABLE:\n return new ContainerUnavailableError(\n errorResponse as unknown as ErrorResponse<ContainerUnavailableContext>\n );\n\n case ErrorCode.OPERATION_INTERRUPTED:\n return new OperationInterruptedError(\n errorResponse as unknown as ErrorResponse<OperationInterruptedContext>\n );\n\n // RPC Transport Errors (SDK-side, raised by translateRPCError on\n // capnweb / DeferredTransport WebSocket failures).\n case ErrorCode.RPC_TRANSPORT_ERROR:\n return new RPCTransportError(\n errorResponse as unknown as ErrorResponse<RPCTransportContext>,\n options\n );\n\n // Validation Errors\n case ErrorCode.VALIDATION_FAILED:\n return new ValidationFailedError(\n errorResponse as unknown as ErrorResponse<ValidationFailedContext>\n );\n\n // Generic Errors\n case ErrorCode.INVALID_JSON_RESPONSE:\n case ErrorCode.UNKNOWN_ERROR:\n case ErrorCode.INTERNAL_ERROR:\n return new SandboxError(\n errorResponse as unknown as ErrorResponse<InternalErrorContext>\n );\n\n default:\n // Fallback for unknown error codes\n return new SandboxError(errorResponse);\n }\n}\n"],"mappings":"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"}
|
|
@@ -58,6 +58,9 @@ const ErrorCode = {
|
|
|
58
58
|
S3FS_MOUNT_ERROR: "S3FS_MOUNT_ERROR",
|
|
59
59
|
MISSING_CREDENTIALS: "MISSING_CREDENTIALS",
|
|
60
60
|
INVALID_MOUNT_CONFIG: "INVALID_MOUNT_CONFIG",
|
|
61
|
+
TUNNEL_RUN_CONFLICT: "TUNNEL_RUN_CONFLICT",
|
|
62
|
+
TUNNEL_START_ERROR: "TUNNEL_START_ERROR",
|
|
63
|
+
CLOUDFLARED_NOT_FOUND: "CLOUDFLARED_NOT_FOUND",
|
|
61
64
|
BACKUP_CREATE_FAILED: "BACKUP_CREATE_FAILED",
|
|
62
65
|
BACKUP_RESTORE_FAILED: "BACKUP_RESTORE_FAILED",
|
|
63
66
|
BACKUP_NOT_FOUND: "BACKUP_NOT_FOUND",
|
|
@@ -139,6 +142,9 @@ const ERROR_STATUS_MAP = {
|
|
|
139
142
|
[ErrorCode.INVALID_BACKUP_CONFIG]: 400,
|
|
140
143
|
[ErrorCode.BACKUP_CREATE_FAILED]: 500,
|
|
141
144
|
[ErrorCode.BACKUP_RESTORE_FAILED]: 500,
|
|
145
|
+
[ErrorCode.TUNNEL_RUN_CONFLICT]: 409,
|
|
146
|
+
[ErrorCode.TUNNEL_START_ERROR]: 500,
|
|
147
|
+
[ErrorCode.CLOUDFLARED_NOT_FOUND]: 501,
|
|
142
148
|
[ErrorCode.PYTHON_NOT_AVAILABLE]: 501,
|
|
143
149
|
[ErrorCode.JAVASCRIPT_NOT_AVAILABLE]: 501,
|
|
144
150
|
[ErrorCode.INTERPRETER_NOT_READY]: 503,
|
|
@@ -282,4 +288,4 @@ const Operation = {
|
|
|
282
288
|
|
|
283
289
|
//#endregion
|
|
284
290
|
export { ErrorCode as i, getSuggestion as n, getHttpStatus as r, Operation as t };
|
|
285
|
-
//# sourceMappingURL=errors-
|
|
291
|
+
//# sourceMappingURL=errors-Bb3s6nBS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors-Bb3s6nBS.js","names":[],"sources":["../../shared/dist/errors/codes.js","../../shared/dist/errors/status-map.js","../../shared/dist/errors/suggestions.js","../../shared/dist/errors/types.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 TERMINAL_NOT_FOUND: 'TERMINAL_NOT_FOUND',\n // Process Errors (400)\n INVALID_PROCESS_CWD: 'INVALID_PROCESS_CWD',\n INVALID_PROCESS_ENVIRONMENT: 'INVALID_PROCESS_ENVIRONMENT',\n INVALID_PROCESS_CURSOR: 'INVALID_PROCESS_CURSOR',\n INVALID_TERMINAL_CWD: 'INVALID_TERMINAL_CWD',\n INVALID_TERMINAL_CURSOR: 'INVALID_TERMINAL_CURSOR',\n // Process Errors (408/409/499)\n STALE_PROCESS_HANDLE: 'STALE_PROCESS_HANDLE',\n STALE_TERMINAL_HANDLE: 'STALE_TERMINAL_HANDLE',\n PROCESS_WAIT_TIMEOUT: 'PROCESS_WAIT_TIMEOUT',\n PROCESS_ABORTED: 'PROCESS_ABORTED',\n // Process Errors (403/500)\n PROCESS_PERMISSION_DENIED: 'PROCESS_PERMISSION_DENIED',\n PROCESS_ERROR: 'PROCESS_ERROR',\n PROCESS_SPAWN_FAILED: 'PROCESS_SPAWN_FAILED',\n TERMINAL_CONTROL_ERROR: 'TERMINAL_CONTROL_ERROR',\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 BUCKET_UNMOUNT_ERROR: 'BUCKET_UNMOUNT_ERROR',\n S3FS_MOUNT_ERROR: 'S3FS_MOUNT_ERROR',\n MISSING_CREDENTIALS: 'MISSING_CREDENTIALS',\n INVALID_MOUNT_CONFIG: 'INVALID_MOUNT_CONFIG',\n // Tunnel Errors (409)\n TUNNEL_RUN_CONFLICT: 'TUNNEL_RUN_CONFLICT',\n // Tunnel Errors (500)\n TUNNEL_START_ERROR: 'TUNNEL_START_ERROR',\n // Tunnel Errors (501)\n CLOUDFLARED_NOT_FOUND: 'CLOUDFLARED_NOT_FOUND',\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 PROCESS_EXITED_BEFORE_LOG: 'PROCESS_EXITED_BEFORE_LOG',\n // File Watch Errors (404)\n WATCH_NOT_FOUND: 'WATCH_NOT_FOUND',\n // File Watch Errors (500)\n WATCH_START_ERROR: 'WATCH_START_ERROR',\n WATCH_STOP_ERROR: 'WATCH_STOP_ERROR',\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 // Container Availability Errors (503)\n CONTAINER_UNAVAILABLE: 'CONTAINER_UNAVAILABLE',\n CONTROL_PROTOCOL_INCOMPATIBLE: 'CONTROL_PROTOCOL_INCOMPATIBLE',\n // Operation Lifecycle Errors (409)\n OPERATION_INTERRUPTED: 'OPERATION_INTERRUPTED',\n // RPC Transport Errors (503) — capnweb WebSocket session-level failures\n // raised on the SDK side, not by the container. The container went away\n // mid-call (peer close), the WebSocket failed before/after upgrade, the\n // peer sent a frame the transport cannot handle, or the session was\n // disposed while a call was in flight.\n RPC_TRANSPORT_ERROR: 'RPC_TRANSPORT_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.TERMINAL_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 [ErrorCode.WATCH_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_PROCESS_CWD]: 400,\n [ErrorCode.INVALID_PROCESS_ENVIRONMENT]: 400,\n [ErrorCode.INVALID_PROCESS_CURSOR]: 400,\n [ErrorCode.INVALID_TERMINAL_CWD]: 400,\n [ErrorCode.INVALID_TERMINAL_CURSOR]: 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.OPERATION_INTERRUPTED]: 409,\n [ErrorCode.STALE_PROCESS_HANDLE]: 409,\n [ErrorCode.STALE_TERMINAL_HANDLE]: 409,\n [ErrorCode.PROCESS_EXITED_BEFORE_LOG]: 409,\n // 410 Gone\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 // Tunnel errors\n [ErrorCode.TUNNEL_RUN_CONFLICT]: 409,\n [ErrorCode.TUNNEL_START_ERROR]: 500,\n [ErrorCode.CLOUDFLARED_NOT_FOUND]: 501,\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 [ErrorCode.CONTAINER_UNAVAILABLE]: 503,\n [ErrorCode.CONTROL_PROTOCOL_INCOMPATIBLE]: 503,\n [ErrorCode.RPC_TRANSPORT_ERROR]: 503,\n // 408 Request Timeout\n [ErrorCode.PROCESS_READY_TIMEOUT]: 408,\n [ErrorCode.PROCESS_WAIT_TIMEOUT]: 408,\n // 499 Client Closed Request\n [ErrorCode.PROCESS_ABORTED]: 499,\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.PROCESS_SPAWN_FAILED]: 500,\n [ErrorCode.TERMINAL_CONTROL_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.BUCKET_UNMOUNT_ERROR]: 500,\n [ErrorCode.S3FS_MOUNT_ERROR]: 500,\n [ErrorCode.WATCH_START_ERROR]: 500,\n [ErrorCode.WATCH_STOP_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","import { ErrorCode } from './codes';\n/**\n * Get actionable suggestion for an error code\n * Used by handlers when enriching ServiceError → ErrorResponse\n */\nexport function getSuggestion(code, context) {\n switch (code) {\n case ErrorCode.FILE_NOT_FOUND:\n return `Ensure the file exists at ${context.path} before attempting to access it`;\n case ErrorCode.FILE_EXISTS:\n return `File already exists at ${context.path}. Use a different path or delete the existing file first`;\n case ErrorCode.COMMAND_NOT_FOUND:\n return `Check that \"${context.command}\" is installed and available in the system PATH`;\n case ErrorCode.PROCESS_NOT_FOUND:\n return 'Verify the process ID is correct and the process has not already exited';\n case ErrorCode.INVALID_PROCESS_CWD:\n return `Verify the process working directory exists and is accessible: ${context.cwd}`;\n case ErrorCode.INVALID_PROCESS_ENVIRONMENT:\n return 'Verify process environment variable names and values are valid strings without NUL bytes';\n case ErrorCode.PROCESS_SPAWN_FAILED:\n return `Check that \"${context.command}\" exists, is executable, and can be started in the requested working directory`;\n case ErrorCode.INVALID_PROCESS_CURSOR:\n return 'Use a log cursor previously returned by this process log stream';\n case ErrorCode.STALE_PROCESS_HANDLE:\n return 'The process handle refers to an older runtime process. Reacquire the process by ID before retrying the operation';\n case ErrorCode.STALE_TERMINAL_HANDLE:\n return 'The terminal handle refers to an older runtime terminal. Reacquire the terminal by ID before retrying the operation';\n case ErrorCode.PROCESS_WAIT_TIMEOUT:\n return 'The process did not complete before the timeout. Continue streaming logs or kill the process if it is no longer needed';\n case ErrorCode.PROCESS_ABORTED:\n return 'The process operation was aborted by the caller. Retry with a new AbortSignal if needed';\n case ErrorCode.TERMINAL_NOT_FOUND:\n return `Verify terminal \"${context.terminalId}\" exists and has not been evicted`;\n case ErrorCode.INVALID_TERMINAL_CWD:\n return `Verify the terminal working directory exists and is accessible: ${context.cwd}`;\n case ErrorCode.INVALID_TERMINAL_CURSOR:\n return 'Use a cursor previously returned by this terminal stream';\n case ErrorCode.TERMINAL_CONTROL_ERROR:\n return `Terminal control operation failed for terminal \"${context.terminalId}\"`;\n case ErrorCode.PORT_NOT_EXPOSED:\n return `Port ${context.port} is not currently available for this operation`;\n case ErrorCode.PORT_ALREADY_EXPOSED:\n return `Port ${context.port} already has preview URL authorization or activation state`;\n case ErrorCode.PORT_IN_USE:\n return `Port ${context.port} is already in use by another service. Choose a different port`;\n case ErrorCode.INVALID_PORT:\n return `Port must be between 1 and 65535. Port ${context.port} is ${context.reason}`;\n case ErrorCode.GIT_REPOSITORY_NOT_FOUND:\n return 'Verify the repository URL is correct and accessible';\n case ErrorCode.GIT_AUTH_FAILED:\n return 'Check authentication credentials or use a public repository';\n case ErrorCode.GIT_BRANCH_NOT_FOUND:\n return `Branch \"${context.branch}\" does not exist in the repository. Check the branch name or use the default branch`;\n case ErrorCode.CONTROL_PROTOCOL_INCOMPATIBLE:\n return 'Refresh the sandbox control session metadata and reconnect with a compatible control protocol';\n case ErrorCode.INTERPRETER_NOT_READY:\n return context.retryAfter\n ? `Code interpreter is starting up. Retry after ${context.retryAfter} seconds`\n : 'Code interpreter is not ready. Please wait a moment and try again';\n case ErrorCode.CONTEXT_NOT_FOUND:\n return `Context \"${context.contextId}\" does not exist. Create a context first using createContext()`;\n case ErrorCode.VALIDATION_FAILED:\n return 'Check the request parameters and ensure they match the required format';\n case ErrorCode.NO_SPACE:\n return 'Not enough disk space available. Consider cleaning up temporary files or increasing storage';\n case ErrorCode.PERMISSION_DENIED:\n return 'Operation not permitted. Check file/directory permissions';\n case ErrorCode.IS_DIRECTORY:\n return `Cannot perform this operation on a directory. Path ${context.path} is a directory`;\n case ErrorCode.NOT_DIRECTORY:\n return `Expected a directory but found a file at ${context.path}`;\n case ErrorCode.RESOURCE_BUSY:\n return 'Resource is currently in use. Wait for the current operation to complete';\n case ErrorCode.READ_ONLY:\n return 'Cannot modify a read-only resource';\n case ErrorCode.SERVICE_NOT_RESPONDING:\n return 'Service is not responding. Check if the service is running and accessible';\n case ErrorCode.BACKUP_NOT_FOUND:\n return `Backup \"${context.backupId}\" does not exist. Verify the backup ID is correct`;\n case ErrorCode.BACKUP_EXPIRED:\n return `Backup \"${context.backupId}\" has expired. Create a new backup`;\n case ErrorCode.INVALID_BACKUP_CONFIG:\n return `Invalid backup configuration: ${context.reason}`;\n case ErrorCode.BACKUP_CREATE_FAILED:\n return 'Backup creation failed. Check that the directory exists and you have sufficient disk space';\n case ErrorCode.BACKUP_RESTORE_FAILED:\n return 'Backup restoration failed. The archive may be corrupted or the target directory may be in use';\n case ErrorCode.CONTAINER_UNAVAILABLE: {\n const reason = context.reason;\n switch (reason) {\n case 'container_starting':\n return 'The container is still starting. Retry the operation in a moment.';\n case 'container_unhealthy':\n return 'The container is temporarily unhealthy. Retry the operation in a moment.';\n case 'container_replaced':\n return 'The container runtime was replaced. Retry the operation to use the new container.';\n case 'rpc_upgrade_failed':\n return 'The container did not accept the RPC connection before the retry budget expired. Retry the operation in a moment.';\n default:\n return 'The container is not ready yet. Retry the operation in a moment.';\n }\n }\n case ErrorCode.OPERATION_INTERRUPTED:\n return context.retryable\n ? 'Retry the operation with the same idempotency key or operation inputs so the SDK can reconcile the previous attempt.'\n : 'The operation may have started before it was interrupted. Inspect application state before retrying.';\n case ErrorCode.RPC_TRANSPORT_ERROR: {\n const kind = context.kind;\n switch (kind) {\n case 'peer_closed':\n return 'The container closed the WebSocket mid-call (likely a container restart, eviction, or crash). Retry the call — the SDK will open a fresh connection.';\n case 'connection_failed':\n return 'The WebSocket connection failed. Retry the call; if the failure persists, check container health and network connectivity.';\n case 'upgrade_failed':\n return 'The WebSocket upgrade was rejected by the container. Verify the container is running and reachable on the configured port.';\n case 'invalid_frame':\n return 'The container sent a frame the RPC transport cannot handle. This usually indicates a version mismatch between the SDK and the container image.';\n case 'protocol_error':\n return 'The peer sent a malformed RPC message (could not parse the wire format). This usually indicates a version mismatch between the SDK and the container image.';\n case 'session_disposed':\n return 'The RPC session was disposed while a call was in flight. Avoid reusing stubs after disconnect(); the next method call will reconnect automatically.';\n default:\n return 'The RPC transport raised an error. Retry the call — the SDK will open a fresh connection.';\n }\n }\n // Generic fallback for other errors\n default:\n return undefined;\n }\n}\n","/**\n * Standard operation types\n */\nexport const Operation = {\n // File Operations\n FILE_READ: 'file.read',\n FILE_WRITE: 'file.write',\n FILE_DELETE: 'file.delete',\n FILE_MOVE: 'file.move',\n FILE_RENAME: 'file.rename',\n FILE_STAT: 'file.stat',\n DIRECTORY_CREATE: 'directory.create',\n DIRECTORY_LIST: 'directory.list',\n // Command Operations\n COMMAND_EXECUTE: 'command.execute',\n COMMAND_STREAM: 'command.stream',\n // Process Operations\n PROCESS_START: 'process.start',\n PROCESS_KILL: 'process.kill',\n PROCESS_LIST: 'process.list',\n PROCESS_GET: 'process.get',\n PROCESS_LOGS: 'process.logs',\n // Git Operations\n GIT_CLONE: 'git.clone',\n GIT_CHECKOUT: 'git.checkout',\n GIT_OPERATION: 'git.operation',\n // Backup Operations\n BACKUP_CREATE: 'backup.create',\n BACKUP_RESTORE: 'backup.restore',\n BACKUP_UNMOUNT: 'backup.unmount',\n // Code Interpreter\n CODE_EXECUTE: 'code.execute',\n CODE_CONTEXT_CREATE: 'code.context.create',\n CODE_CONTEXT_DELETE: 'code.context.delete'\n};\n"],"mappings":"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"}
|
package/dist/extensions/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "../errors-
|
|
2
|
-
import "../errors
|
|
1
|
+
import "../errors-Bb3s6nBS.js";
|
|
2
|
+
import "../errors--yR3zLC_.js";
|
|
3
3
|
import "../dist-n_eniPAR.js";
|
|
4
|
-
import { n as createExtensionProcessSandbox, r as sandboxRuntimeCall, t as SandboxExtension } from "../extensions-
|
|
4
|
+
import { n as createExtensionProcessSandbox, r as sandboxRuntimeCall, t as SandboxExtension } from "../extensions-BKL2zqL4.js";
|
|
5
5
|
|
|
6
6
|
export { SandboxExtension, createExtensionProcessSandbox, sandboxRuntimeCall };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as ErrorCode, n as getSuggestion, r as getHttpStatus } from "./errors-
|
|
2
|
-
import { d as ProcessExitedBeforeLogError, f as ProcessExitedBeforeReadyError, g as ProcessWaitTimeoutError, l as ProcessAbortedError, m as ProcessReadyTimeoutError, t as createErrorFromResponse, tt as SandboxError, u as ProcessError } from "./errors
|
|
1
|
+
import { i as ErrorCode, n as getSuggestion, r as getHttpStatus } from "./errors-Bb3s6nBS.js";
|
|
2
|
+
import { d as ProcessExitedBeforeLogError, f as ProcessExitedBeforeReadyError, g as ProcessWaitTimeoutError, l as ProcessAbortedError, m as ProcessReadyTimeoutError, t as createErrorFromResponse, tt as SandboxError, u as ProcessError } from "./errors--yR3zLC_.js";
|
|
3
3
|
import { n as EXTENSION_TARBALL_REQUIRED } from "./dist-n_eniPAR.js";
|
|
4
4
|
import { RpcTarget } from "cloudflare:workers";
|
|
5
5
|
|
|
@@ -1020,4 +1020,4 @@ async function sha256Hex(bytes) {
|
|
|
1020
1020
|
|
|
1021
1021
|
//#endregion
|
|
1022
1022
|
export { PullSubscriptionTarget as a, createSandboxProcess as i, createExtensionProcessSandbox as n, openRemoteSubscription as o, sandboxRuntimeCall as r, translateRPCError as s, SandboxExtension as t };
|
|
1023
|
-
//# sourceMappingURL=extensions-
|
|
1023
|
+
//# sourceMappingURL=extensions-BKL2zqL4.js.map
|