@cloudflare/sandbox 0.13.0-next.797.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index-DfXx3uZL.d.ts","names":["BackupCompressionOptions","ReadFileRequest","WriteFileRequest","DeleteFileRequest","RenameFileRequest","MoveFileRequest","MkdirRequest","FileExistsRequest","ListFilesRequest","CreateBackupRequest","UploadPart","UploadPartsRequest","UploadedPart","UploadPartsResponse","CreateBackupResponse","RestoreBackupRequest","RestoreBackupResponse","SandboxProcessesAPI","SandboxTerminalsAPI","CreateBackupResponse","RestoreBackupResponse","UploadedPart","UploadPartsResponse","BackupCompressionOptions","CheckChangesRequest","CheckChangesResult","DeleteFileResult","FileEncoding","FileExistsResult","ListFilesOptions","ListFilesResult","MkdirResult","MoveFileResult","PortWatchRPCOptions","PortWatchSubscriptionAPI","ReadFileResult","ReadFileStreamResult","RenameFileResult","WatchRequest","WriteFileResult","S3FSOptionValue","MountCommandResult","MountS3FSRequest","Record","RemoveMountDirectoryRequest","SandboxAPI","SandboxFilesAPI","SandboxPortsAPI","SandboxUtilsAPI","SandboxBackupAPI","SandboxWatchAPI","SandboxTunnelsAPI","SandboxMountsAPI","SandboxWorkspaceAPI","SandboxExtensionsAPI","ReadFileStreamOptions","ReadFileBinaryOptions","ReadFileOptions","Exclude","WriteFileOptions","MkdirOptions","Promise","Uint8Array","ReadableStream","RuntimeMetadata","CreateWorkspaceArchiveRequest","CreateWorkspaceArchiveResult","ExtractWorkspaceArchiveRequest","BackupUploadArchiveRequest","BackupDownloadArchiveRequest","Array","BackupPrepareRestoreRequest","BackupUploadPartsRequest","BackupCreateArchiveOptions","WatchSubscriptionAPI","TunnelInfo","QuickTunnelInfo","NamedTunnelInfo","TunnelOptions","TunnelRunMode","TunnelRunIdentity","TunnelRunRef","EnsureQuickTunnelRunRequest","EnsureNamedTunnelRunRequest","EnsureTunnelRunRequest","QuickTunnelRunSnapshot","NamedTunnelRunSnapshot","TunnelRunSnapshot","EnsureTunnelRunResult","StopTunnelRunRequest","StopTunnelRunResult","TunnelRunExitEvent","ExtensionPackage","ExtensionRegistration","ExtensionHealth","ExtensionConnectRequest","EXTENSION_TARBALL_REQUIRED","SandboxControlCallback"],"sources":["../../shared/dist/request-types.d.ts","../../shared/dist/rpc-types.d.ts","../src/processes/rpc-types.ts","../src/extensions/index.ts"],"sourcesContent":["import type { BackupCompressionOptions } from './types.js';\n/**\n * Request types for API calls to the container\n * Single source of truth for the contract between SDK clients and container handlers\n */\n/**\n * Request to read a file\n */\nexport interface ReadFileRequest {\n path: string;\n encoding?: string;\n}\n/**\n * Request to write a file\n */\nexport interface WriteFileRequest {\n path: string;\n content: string;\n encoding?: string;\n}\n/**\n * Request to delete a file\n */\nexport interface DeleteFileRequest {\n path: string;\n}\n/**\n * Request to rename a file\n */\nexport interface RenameFileRequest {\n oldPath: string;\n newPath: string;\n}\n/**\n * Request to move a file\n */\nexport interface MoveFileRequest {\n sourcePath: string;\n destinationPath: string;\n}\n/**\n * Request to create a directory\n */\nexport interface MkdirRequest {\n path: string;\n recursive?: boolean;\n}\n/**\n * Request to check if a file or directory exists\n */\nexport interface FileExistsRequest {\n path: string;\n}\n/**\n * Request to list files in a directory\n */\nexport interface ListFilesRequest {\n path: string;\n options?: {\n recursive?: boolean;\n includeHidden?: boolean;\n };\n}\n/**\n * Request to create a backup archive from a directory.\n * The container creates a squashfs archive at archivePath.\n * The DO then reads it and uploads to R2.\n */\nexport interface CreateBackupRequest {\n /** Directory to back up */\n dir: string;\n /** Path where the container should write the archive */\n archivePath: string;\n /** Respect git ignore rules when the directory is inside a git repository */\n gitignore?: boolean;\n /** Glob patterns to exclude from the backup */\n excludes?: string[];\n compression?: BackupCompressionOptions;\n}\n/**\n * A single part to upload in a multipart upload.\n * The container reads the byte range from the local archive and PUTs it\n * to the presigned URL.\n */\nexport interface UploadPart {\n partNumber: number;\n /** Presigned PUT URL for this part */\n url: string;\n /** Byte offset within the archive file */\n offset: number;\n /** Number of bytes in this part */\n size: number;\n}\n/**\n * Request to upload parts of a backup archive directly from the container to R2.\n * Used for parallel multipart upload of large archives.\n */\nexport interface UploadPartsRequest {\n /** Path to the archive file in the container */\n archivePath: string;\n /** Parts to upload in parallel */\n parts: UploadPart[];\n}\n/**\n * Result for a single uploaded part (ETag returned by R2).\n */\nexport interface UploadedPart {\n partNumber: number;\n etag: string;\n}\n/**\n * Response after the container has uploaded all parts.\n */\nexport interface UploadPartsResponse {\n success: boolean;\n parts: UploadedPart[];\n}\n/**\n * Response from the container after creating a backup archive\n */\nexport interface CreateBackupResponse {\n success: boolean;\n /** Size of the archive in bytes */\n sizeBytes: number;\n /** Path to the archive file in the container */\n archivePath: string;\n}\n/**\n * Request to restore a backup from an archive file.\n * The DO writes the archive to archivePath first, then tells the container to extract it.\n */\nexport interface RestoreBackupRequest {\n /** Directory to restore into */\n dir: string;\n /** Path to the archive file in the container */\n archivePath: string;\n}\n/**\n * Response from the container after restoring a backup\n */\nexport interface RestoreBackupResponse {\n success: boolean;\n /** Directory that was restored */\n dir: string;\n}\n//# sourceMappingURL=request-types.d.ts.map","/**\n * Shared interface types for the container-control path.\n *\n * Defines the contract between the SDK control client and the container\n * control-plane API. The current wire implementation uses capnweb RPC.\n */\nimport type { SandboxProcessesAPI } from './process-types.js';\nimport type { SandboxTerminalsAPI } from './pty-types.js';\nimport type { CreateBackupResponse, RestoreBackupResponse, UploadedPart, UploadPartsResponse } from './request-types.js';\nimport type { BackupCompressionOptions, CheckChangesRequest, CheckChangesResult, DeleteFileResult, FileEncoding, FileExistsResult, ListFilesOptions, ListFilesResult, MkdirResult, MoveFileResult, PortWatchRPCOptions, PortWatchSubscriptionAPI, ReadFileResult, ReadFileStreamResult, RenameFileResult, WatchRequest, WriteFileResult } from './types.js';\nexport type S3FSOptionValue = string | boolean;\nexport interface MountCommandResult {\n success: boolean;\n exitCode: number;\n stdout: string;\n stderr: string;\n}\nexport interface MountS3FSRequest {\n source: string;\n mountPath: string;\n options: Record<string, S3FSOptionValue>;\n}\nexport interface RemoveMountDirectoryRequest {\n path: string;\n onlyIfNotMountpoint: boolean;\n}\nexport interface SandboxAPI {\n files: SandboxFilesAPI;\n ports: SandboxPortsAPI;\n utils: SandboxUtilsAPI;\n backup: SandboxBackupAPI;\n watch: SandboxWatchAPI;\n tunnels: SandboxTunnelsAPI;\n terminals: SandboxTerminalsAPI;\n processes: SandboxProcessesAPI;\n mounts: SandboxMountsAPI;\n workspace: SandboxWorkspaceAPI;\n extensions: SandboxExtensionsAPI;\n}\nexport type ReadFileStreamOptions = object;\nexport interface ReadFileBinaryOptions {\n encoding: 'none';\n}\nexport interface ReadFileOptions {\n encoding?: Exclude<FileEncoding, 'none'>;\n}\nexport interface WriteFileOptions {\n encoding?: string;\n permissions?: string;\n}\nexport interface MkdirOptions {\n recursive?: boolean;\n}\nexport interface SandboxFilesAPI {\n readFile(path: string, options: ReadFileBinaryOptions): Promise<ReadFileStreamResult>;\n readFile(path: string, options?: ReadFileOptions): Promise<ReadFileResult>;\n readFileStream(path: string, options?: ReadFileStreamOptions): Promise<ReadableStream<Uint8Array>>;\n writeFile(path: string, content: string, options?: WriteFileOptions): Promise<WriteFileResult>;\n writeFileStream(path: string, stream: ReadableStream<Uint8Array>, options?: Record<string, never>): Promise<{\n success: boolean;\n path: string;\n bytesWritten: number;\n timestamp: string;\n }>;\n deleteFile(path: string, options?: Record<string, never>): Promise<DeleteFileResult>;\n renameFile(oldPath: string, newPath: string, options?: Record<string, never>): Promise<RenameFileResult>;\n moveFile(sourcePath: string, destinationPath: string, options?: Record<string, never>): Promise<MoveFileResult>;\n mkdir(path: string, options?: MkdirOptions): Promise<MkdirResult>;\n listFiles(path: string, options?: ListFilesOptions): Promise<ListFilesResult>;\n exists(path: string, options?: Record<string, never>): Promise<FileExistsResult>;\n}\nexport interface SandboxPortsAPI {\n openWatch(port: number, options?: PortWatchRPCOptions): Promise<PortWatchSubscriptionAPI>;\n}\nexport interface RuntimeMetadata {\n runtimeIncarnationID: string;\n sandboxVersion: string;\n controlProtocolVersion: 1;\n}\nexport interface SandboxUtilsAPI {\n ping(): Promise<string>;\n getRuntimeMetadata(): Promise<RuntimeMetadata>;\n activateControlSession(expectedRuntimeIncarnationID: string): Promise<RuntimeMetadata>;\n}\nexport interface CreateWorkspaceArchiveRequest {\n root: string;\n excludes: readonly string[];\n}\nexport interface CreateWorkspaceArchiveResult {\n archivePath: string;\n}\nexport interface ExtractWorkspaceArchiveRequest {\n root: string;\n archivePath: string;\n}\nexport interface SandboxWorkspaceAPI {\n createArchive(request: CreateWorkspaceArchiveRequest): Promise<CreateWorkspaceArchiveResult>;\n extractArchive(request: ExtractWorkspaceArchiveRequest): Promise<void>;\n cleanupArchive(archivePath: string): Promise<void>;\n}\nexport interface SandboxMountsAPI {\n pathExists(path: string): Promise<boolean>;\n ensureDirectory(path: string): Promise<void>;\n chmodOwnerOnly(path: string): Promise<void>;\n deleteFile(path: string): Promise<void>;\n mountS3FS(request: MountS3FSRequest): Promise<MountCommandResult>;\n mountS3FSAndVerify(request: MountS3FSRequest): Promise<MountCommandResult>;\n isMountpoint(path: string): Promise<boolean>;\n unmountFuse(path: string): Promise<MountCommandResult>;\n unmountFuseIfMounted(path: string): Promise<void>;\n removeMountDirectory(request: RemoveMountDirectoryRequest): Promise<MountCommandResult>;\n}\nexport interface BackupUploadArchiveRequest {\n archivePath: string;\n url: string;\n timeoutMs: number;\n}\nexport interface BackupDownloadArchiveRequest {\n archivePath: string;\n expectedSize: number;\n parts: Array<{\n url: string;\n offset: number;\n range?: string;\n }>;\n timeoutMs: number;\n}\nexport interface BackupPrepareRestoreRequest {\n dir: string;\n backupId: string;\n archivePath: string;\n}\nexport interface BackupUploadPartsRequest {\n archivePath: string;\n parts: Array<{\n partNumber: number;\n url: string;\n offset: number;\n size: number;\n }>;\n}\nexport interface BackupCreateArchiveOptions {\n excludes?: string[];\n gitignore?: boolean;\n compression?: BackupCompressionOptions;\n}\nexport interface SandboxBackupAPI {\n createArchive(dir: string, archivePath: string, options?: BackupCreateArchiveOptions): Promise<CreateBackupResponse>;\n restoreArchive(dir: string, archivePath: string): Promise<RestoreBackupResponse>;\n uploadArchive(request: BackupUploadArchiveRequest): Promise<void>;\n uploadParts(request: BackupUploadPartsRequest): Promise<UploadPartsResponse>;\n prepareRestore(request: BackupPrepareRestoreRequest): Promise<{\n existingSize: number;\n }>;\n downloadArchive(request: BackupDownloadArchiveRequest): Promise<void>;\n extractArchive(dir: string, archivePath: string): Promise<void>;\n cleanupArchive(archivePath: string): Promise<void>;\n}\nexport type { UploadedPart, UploadPartsResponse };\nexport interface WatchSubscriptionAPI {\n stream(): Promise<ReadableStream<Uint8Array>>;\n cancel(): Promise<void>;\n [Symbol.dispose](): void;\n}\nexport interface SandboxWatchAPI {\n watch(request: WatchRequest): Promise<WatchSubscriptionAPI>;\n checkChanges(request: CheckChangesRequest): Promise<CheckChangesResult>;\n}\n/**\n * Public-facing tunnel record. Discriminated on the presence of `name`:\n * quick tunnels (`*.trycloudflare.com`) omit it, named tunnels carry the\n * label that was passed to `get(port, { name })`.\n */\nexport type TunnelInfo = QuickTunnelInfo | NamedTunnelInfo;\nexport interface QuickTunnelInfo {\n id: string;\n port: number;\n /** `https://<random>.trycloudflare.com`. */\n url: string;\n /** Hostname portion of `url`. */\n hostname: string;\n createdAt: string;\n /** Absent on quick tunnels; narrows the union. */\n name?: never;\n}\nexport interface NamedTunnelInfo {\n /** Cloudflare tunnel UUID (8-4-4-4-12). */\n id: string;\n port: number;\n /** `https://<hostname>`. */\n url: string;\n /** Full hostname bound to the tunnel (without scheme). */\n hostname: string;\n createdAt: string;\n /** Label originally passed via `TunnelOptions.name`. */\n name: string;\n}\n/**\n * Options accepted by `sandbox.tunnels.get(port, options)`. Omitting\n * `name` (or omitting the options object) selects the zero-config quick\n * tunnel; setting `name` selects the named-tunnel flow.\n */\nexport interface TunnelOptions {\n /**\n * Single DNS label under the configured zone. The full hostname is\n * `<name>.<zone-name>`. See `validateTunnelName` for the format rules.\n */\n name?: string;\n}\nexport type TunnelRunMode = 'quick' | 'named';\nexport interface TunnelRunIdentity {\n tunnelId: string;\n runId: string;\n}\nexport type TunnelRunRef = TunnelRunIdentity;\nexport interface EnsureQuickTunnelRunRequest extends TunnelRunIdentity {\n mode: 'quick';\n port: number;\n readyTimeoutMs?: number;\n stopGraceMs?: number;\n}\nexport interface EnsureNamedTunnelRunRequest extends TunnelRunIdentity {\n mode: 'named';\n port: number;\n cloudflaredToken: string;\n readyTimeoutMs?: number;\n stopGraceMs?: number;\n}\nexport type EnsureTunnelRunRequest = EnsureQuickTunnelRunRequest | EnsureNamedTunnelRunRequest;\nexport interface QuickTunnelRunSnapshot extends TunnelRunIdentity {\n mode: 'quick';\n port: number;\n url: string;\n hostname: string;\n startedAt: string;\n}\nexport interface NamedTunnelRunSnapshot extends TunnelRunIdentity {\n mode: 'named';\n port: number;\n startedAt: string;\n}\nexport type TunnelRunSnapshot = QuickTunnelRunSnapshot | NamedTunnelRunSnapshot;\nexport interface EnsureTunnelRunResult {\n run: TunnelRunSnapshot;\n started: boolean;\n}\nexport type StopTunnelRunRequest = TunnelRunRef;\nexport interface StopTunnelRunResult {\n stopped: boolean;\n}\nexport interface TunnelRunExitEvent extends TunnelRunIdentity {\n mode: TunnelRunMode;\n port: number;\n exitCode: number | null;\n}\nexport interface SandboxTunnelsAPI {\n /** Ensure a runtime-local cloudflared process for a DO-issued run id. */\n ensureTunnelRun(request: EnsureTunnelRunRequest): Promise<EnsureTunnelRunResult>;\n /** Stop the matching runtime-local cloudflared process. */\n stopTunnelRun(request: StopTunnelRunRequest): Promise<StopTunnelRunResult>;\n}\n/**\n * Author-facing description of a sidecar extension. An extension is an\n * npm-style package: an `.tgz` whose embedded `package.json` declares the\n * sidecar entrypoint (via `bin`) and any extension metadata (under the\n * `sandboxExtension` key).\n *\n * The SDK ships the tarball bytes; the container hashes them, provisions a\n * dedicated directory keyed by content hash, derives identity from the\n * embedded `package.json`, installs the package with `bun add`, and spawns\n * the declared bin under Bun.\n *\n * `ExtensionPackage` carries tarball bytes produced by an extension build.\n * The SDK sends those bytes only when the container has not provisioned the\n * package hash yet.\n */\nexport interface ExtensionPackage {\n /** Raw `.tgz` bytes. */\n tarball: Uint8Array;\n /**\n * Bin entry to run when the embedded `package.json` declares more than one.\n * Defaults to the value of `sandboxExtension.bin` in `package.json`, then\n * to the single bin entry if there is exactly one.\n */\n bin?: string;\n /**\n * Max time to wait for the sidecar to accept a capnweb connection on its\n * unix socket. Falls back to `sandboxExtension.readinessTimeoutMs` in\n * `package.json`, then to a host default.\n */\n readinessTimeoutMs?: number;\n /**\n * Run lifecycle scripts during `bun add`. Defaults to false — provisioning\n * happens before the sidecar is supervised, so install-time side effects\n * are deliberately opt-in.\n */\n allowInstallScripts?: boolean;\n}\n/**\n * Container-derived identity for a provisioned extension package. Not\n * authored — produced by the host after extracting the embedded\n * `package.json` from a tarball.\n */\nexport interface ExtensionRegistration {\n /** Slugified package name (e.g. `@acme/foo` → `acme-foo`). */\n id: string;\n packageName: string;\n version: string;\n /** Hex sha256 of the tarball bytes. */\n packageHash: string;\n /** Resolved bin entry the host spawns. */\n bin: string;\n readinessTimeoutMs: number;\n}\n/** Health snapshot for a provisioned extension. */\nexport interface ExtensionHealth {\n packageHash: string;\n id: string;\n version: string;\n /** Tarball is on disk and the package.json has been read. */\n provisioned: boolean;\n /** Sidecar process is currently running. */\n running: boolean;\n pid: number | null;\n /** Whether a `__ping__` round-tripped over capnweb. */\n responsive: boolean;\n}\n/**\n * Connect request payload. The SDK hashes the tarball locally and first sends\n * only the hash. If the current host process has not provisioned that hash,\n * it responds with an `ExtensionTarballRequired` error and the SDK retries\n * with `tarball` populated.\n */\nexport interface ExtensionConnectRequest {\n packageHash: string;\n /** Only sent when the host has not seen this hash yet. */\n tarball?: Uint8Array;\n bin?: string;\n readinessTimeoutMs?: number;\n allowInstallScripts?: boolean;\n}\n/**\n * Error name thrown by the host's `connect` when it has not yet provisioned\n * the requested hash and the request did not carry tarball bytes. The SDK\n * recognises this name via `Error.name` and retries the connect with the\n * bytes attached. Kept as a string constant so it survives capnweb\n * cross-realm error reconstruction.\n */\nexport declare const EXTENSION_TARBALL_REQUIRED = \"ExtensionTarballRequired\";\n/**\n * Control surface for container sidecar extensions.\n *\n * `connect` is the only entry point: it provisions on first use, supervises\n * lazily, and returns the sidecar's capnweb remote main as a stub. Calls on\n * the stub are proxied through the container's capnweb session to the\n * sidecar's capnweb session — callback parameters (including streaming\n * handlers) round-trip across both hops.\n */\nexport interface SandboxExtensionsAPI {\n /**\n * Provision the package (if new) and return the sidecar's typed remote\n * main. The result is a capnweb stub whose methods correspond to the\n * sidecar's `RpcTarget` surface.\n */\n connect(req: ExtensionConnectRequest): Promise<unknown>;\n /** Health snapshot, probing the sidecar with a `__ping__` when running. */\n health(packageHash: string): Promise<ExtensionHealth>;\n /** Stop a sidecar and release its capnweb session. */\n stop(packageHash: string): Promise<void>;\n}\n/**\n * RPC surface the Sandbox DO exposes to the container over the existing\n * capnweb session. The container reaches it via\n * `session.getRemoteMain<SandboxControlCallback>()` and invokes methods\n * to push control-plane events (today: tunnel exits) back to the DO.\n *\n * One stable target per sandbox; not per-tunnel. Reusable seam for\n * future container→DO events.\n */\nexport interface SandboxControlCallback {\n /** Called by the container when a runtime-local tunnel run exits. */\n onTunnelRunExit(event: TunnelRunExitEvent): Promise<void>;\n}\n//# sourceMappingURL=rpc-types.d.ts.map"],"mappings":"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"}
1
+ {"version":3,"file":"index-DfXx3uZL.d.ts","names":["BackupCompressionOptions","ReadFileRequest","WriteFileRequest","DeleteFileRequest","RenameFileRequest","MoveFileRequest","MkdirRequest","FileExistsRequest","ListFilesRequest","CreateBackupRequest","UploadPart","UploadPartsRequest","UploadedPart","UploadPartsResponse","CreateBackupResponse","RestoreBackupRequest","RestoreBackupResponse","SandboxProcessesAPI","SandboxTerminalsAPI","CreateBackupResponse","RestoreBackupResponse","UploadedPart","UploadPartsResponse","BackupCompressionOptions","CheckChangesRequest","CheckChangesResult","DeleteFileResult","FileEncoding","FileExistsResult","ListFilesOptions","ListFilesResult","MkdirResult","MoveFileResult","PortWatchRPCOptions","PortWatchSubscriptionAPI","ReadFileResult","ReadFileStreamResult","RenameFileResult","WatchRequest","WriteFileResult","S3FSOptionValue","MountCommandResult","MountS3FSRequest","Record","RemoveMountDirectoryRequest","SandboxAPI","SandboxFilesAPI","SandboxPortsAPI","SandboxUtilsAPI","SandboxBackupAPI","SandboxWatchAPI","SandboxTunnelsAPI","SandboxMountsAPI","SandboxWorkspaceAPI","SandboxExtensionsAPI","ReadFileStreamOptions","ReadFileBinaryOptions","ReadFileOptions","Exclude","WriteFileOptions","MkdirOptions","Promise","Uint8Array","ReadableStream","RuntimeMetadata","CreateWorkspaceArchiveRequest","CreateWorkspaceArchiveResult","ExtractWorkspaceArchiveRequest","BackupUploadArchiveRequest","BackupDownloadArchiveRequest","Array","BackupPrepareRestoreRequest","BackupUploadPartsRequest","BackupCreateArchiveOptions","WatchSubscriptionAPI","TunnelInfo","QuickTunnelInfo","NamedTunnelInfo","TunnelOptions","TunnelRunMode","TunnelRunIdentity","TunnelRunRef","EnsureQuickTunnelRunRequest","EnsureNamedTunnelRunRequest","EnsureTunnelRunRequest","QuickTunnelRunSnapshot","NamedTunnelRunSnapshot","TunnelRunSnapshot","EnsureTunnelRunResult","StopTunnelRunRequest","StopTunnelRunResult","TunnelRunExitEvent","ExtensionPackage","ExtensionRegistration","ExtensionHealth","ExtensionConnectRequest","EXTENSION_TARBALL_REQUIRED","SandboxControlCallback"],"sources":["../../shared/dist/request-types.d.ts","../../shared/dist/rpc-types.d.ts","../src/processes/rpc-types.ts","../src/extensions/index.ts"],"sourcesContent":["import type { BackupCompressionOptions } from './types.js';\n/**\n * Request types for API calls to the container\n * Single source of truth for the contract between SDK clients and container handlers\n */\n/**\n * Request to read a file\n */\nexport interface ReadFileRequest {\n path: string;\n encoding?: string;\n}\n/**\n * Request to write a file\n */\nexport interface WriteFileRequest {\n path: string;\n content: string;\n encoding?: string;\n}\n/**\n * Request to delete a file\n */\nexport interface DeleteFileRequest {\n path: string;\n}\n/**\n * Request to rename a file\n */\nexport interface RenameFileRequest {\n oldPath: string;\n newPath: string;\n}\n/**\n * Request to move a file\n */\nexport interface MoveFileRequest {\n sourcePath: string;\n destinationPath: string;\n}\n/**\n * Request to create a directory\n */\nexport interface MkdirRequest {\n path: string;\n recursive?: boolean;\n}\n/**\n * Request to check if a file or directory exists\n */\nexport interface FileExistsRequest {\n path: string;\n}\n/**\n * Request to list files in a directory\n */\nexport interface ListFilesRequest {\n path: string;\n options?: {\n recursive?: boolean;\n includeHidden?: boolean;\n };\n}\n/**\n * Request to create a backup archive from a directory.\n * The container creates a squashfs archive at archivePath.\n * The DO then reads it and uploads to R2.\n */\nexport interface CreateBackupRequest {\n /** Directory to back up */\n dir: string;\n /** Path where the container should write the archive */\n archivePath: string;\n /** Respect git ignore rules when the directory is inside a git repository */\n gitignore?: boolean;\n /** Glob patterns to exclude from the backup */\n excludes?: string[];\n compression?: BackupCompressionOptions;\n}\n/**\n * A single part to upload in a multipart upload.\n * The container reads the byte range from the local archive and PUTs it\n * to the presigned URL.\n */\nexport interface UploadPart {\n partNumber: number;\n /** Presigned PUT URL for this part */\n url: string;\n /** Byte offset within the archive file */\n offset: number;\n /** Number of bytes in this part */\n size: number;\n}\n/**\n * Request to upload parts of a backup archive directly from the container to R2.\n * Used for parallel multipart upload of large archives.\n */\nexport interface UploadPartsRequest {\n /** Path to the archive file in the container */\n archivePath: string;\n /** Parts to upload in parallel */\n parts: UploadPart[];\n}\n/**\n * Result for a single uploaded part (ETag returned by R2).\n */\nexport interface UploadedPart {\n partNumber: number;\n etag: string;\n}\n/**\n * Response after the container has uploaded all parts.\n */\nexport interface UploadPartsResponse {\n success: boolean;\n parts: UploadedPart[];\n}\n/**\n * Response from the container after creating a backup archive\n */\nexport interface CreateBackupResponse {\n success: boolean;\n /** Size of the archive in bytes */\n sizeBytes: number;\n /** Path to the archive file in the container */\n archivePath: string;\n}\n/**\n * Request to restore a backup from an archive file.\n * The DO writes the archive to archivePath first, then tells the container to extract it.\n */\nexport interface RestoreBackupRequest {\n /** Directory to restore into */\n dir: string;\n /** Path to the archive file in the container */\n archivePath: string;\n}\n/**\n * Response from the container after restoring a backup\n */\nexport interface RestoreBackupResponse {\n success: boolean;\n /** Directory that was restored */\n dir: string;\n}\n//# sourceMappingURL=request-types.d.ts.map","/**\n * Shared interface types for the container-control path.\n *\n * Defines the contract between the SDK control client and the container\n * control-plane API. The current wire implementation uses capnweb RPC.\n */\nimport type { SandboxProcessesAPI } from './process-types.js';\nimport type { SandboxTerminalsAPI } from './pty-types.js';\nimport type { CreateBackupResponse, RestoreBackupResponse, UploadedPart, UploadPartsResponse } from './request-types.js';\nimport type { BackupCompressionOptions, CheckChangesRequest, CheckChangesResult, DeleteFileResult, FileEncoding, FileExistsResult, ListFilesOptions, ListFilesResult, MkdirResult, MoveFileResult, PortWatchRPCOptions, PortWatchSubscriptionAPI, ReadFileResult, ReadFileStreamResult, RenameFileResult, WatchRequest, WriteFileResult } from './types.js';\nexport type S3FSOptionValue = string | boolean;\nexport interface MountCommandResult {\n success: boolean;\n exitCode: number;\n stdout: string;\n stderr: string;\n}\nexport interface MountS3FSRequest {\n source: string;\n mountPath: string;\n options: Record<string, S3FSOptionValue>;\n}\nexport interface RemoveMountDirectoryRequest {\n path: string;\n onlyIfNotMountpoint: boolean;\n}\nexport interface SandboxAPI {\n files: SandboxFilesAPI;\n ports: SandboxPortsAPI;\n utils: SandboxUtilsAPI;\n backup: SandboxBackupAPI;\n watch: SandboxWatchAPI;\n tunnels: SandboxTunnelsAPI;\n terminals: SandboxTerminalsAPI;\n processes: SandboxProcessesAPI;\n mounts: SandboxMountsAPI;\n workspace: SandboxWorkspaceAPI;\n extensions: SandboxExtensionsAPI;\n}\nexport type ReadFileStreamOptions = object;\nexport interface ReadFileBinaryOptions {\n encoding: 'none';\n}\nexport interface ReadFileOptions {\n encoding?: Exclude<FileEncoding, 'none'>;\n}\nexport interface WriteFileOptions {\n encoding?: string;\n permissions?: string;\n}\nexport interface MkdirOptions {\n recursive?: boolean;\n}\nexport interface SandboxFilesAPI {\n readFile(path: string, options: ReadFileBinaryOptions): Promise<ReadFileStreamResult>;\n readFile(path: string, options?: ReadFileOptions): Promise<ReadFileResult>;\n readFileStream(path: string, options?: ReadFileStreamOptions): Promise<ReadableStream<Uint8Array>>;\n writeFile(path: string, content: string, options?: WriteFileOptions): Promise<WriteFileResult>;\n writeFileStream(path: string, stream: ReadableStream<Uint8Array>, options?: Record<string, never>): Promise<{\n success: boolean;\n path: string;\n bytesWritten: number;\n timestamp: string;\n }>;\n deleteFile(path: string, options?: Record<string, never>): Promise<DeleteFileResult>;\n renameFile(oldPath: string, newPath: string, options?: Record<string, never>): Promise<RenameFileResult>;\n moveFile(sourcePath: string, destinationPath: string, options?: Record<string, never>): Promise<MoveFileResult>;\n mkdir(path: string, options?: MkdirOptions): Promise<MkdirResult>;\n listFiles(path: string, options?: ListFilesOptions): Promise<ListFilesResult>;\n exists(path: string, options?: Record<string, never>): Promise<FileExistsResult>;\n}\nexport interface SandboxPortsAPI {\n openWatch(port: number, options?: PortWatchRPCOptions): Promise<PortWatchSubscriptionAPI>;\n}\nexport interface RuntimeMetadata {\n runtimeIncarnationID: string;\n sandboxVersion: string;\n controlProtocolVersion: 1;\n}\nexport interface SandboxUtilsAPI {\n ping(): Promise<string>;\n getRuntimeMetadata(): Promise<RuntimeMetadata>;\n activateControlSession(expectedRuntimeIncarnationID: string): Promise<RuntimeMetadata>;\n}\nexport interface CreateWorkspaceArchiveRequest {\n root: string;\n excludes: readonly string[];\n}\nexport interface CreateWorkspaceArchiveResult {\n archivePath: string;\n}\nexport interface ExtractWorkspaceArchiveRequest {\n root: string;\n archivePath: string;\n}\nexport interface SandboxWorkspaceAPI {\n createArchive(request: CreateWorkspaceArchiveRequest): Promise<CreateWorkspaceArchiveResult>;\n extractArchive(request: ExtractWorkspaceArchiveRequest): Promise<void>;\n cleanupArchive(archivePath: string): Promise<void>;\n}\nexport interface SandboxMountsAPI {\n pathExists(path: string): Promise<boolean>;\n ensureDirectory(path: string): Promise<void>;\n chmodOwnerOnly(path: string): Promise<void>;\n deleteFile(path: string): Promise<void>;\n mountS3FS(request: MountS3FSRequest): Promise<MountCommandResult>;\n mountS3FSAndVerify(request: MountS3FSRequest): Promise<MountCommandResult>;\n isMountpoint(path: string): Promise<boolean>;\n unmountFuse(path: string): Promise<MountCommandResult>;\n unmountFuseIfMounted(path: string): Promise<void>;\n removeMountDirectory(request: RemoveMountDirectoryRequest): Promise<MountCommandResult>;\n}\nexport interface BackupUploadArchiveRequest {\n archivePath: string;\n url: string;\n timeoutMs: number;\n}\nexport interface BackupDownloadArchiveRequest {\n archivePath: string;\n expectedSize: number;\n parts: Array<{\n url: string;\n offset: number;\n range?: string;\n }>;\n timeoutMs: number;\n}\nexport interface BackupPrepareRestoreRequest {\n dir: string;\n backupId: string;\n archivePath: string;\n}\nexport interface BackupUploadPartsRequest {\n archivePath: string;\n parts: Array<{\n partNumber: number;\n url: string;\n offset: number;\n size: number;\n }>;\n}\nexport interface BackupCreateArchiveOptions {\n excludes?: string[];\n gitignore?: boolean;\n compression?: BackupCompressionOptions;\n}\nexport interface SandboxBackupAPI {\n createArchive(dir: string, archivePath: string, options?: BackupCreateArchiveOptions): Promise<CreateBackupResponse>;\n restoreArchive(dir: string, archivePath: string): Promise<RestoreBackupResponse>;\n uploadArchive(request: BackupUploadArchiveRequest): Promise<void>;\n uploadParts(request: BackupUploadPartsRequest): Promise<UploadPartsResponse>;\n prepareRestore(request: BackupPrepareRestoreRequest): Promise<{\n existingSize: number;\n }>;\n downloadArchive(request: BackupDownloadArchiveRequest): Promise<void>;\n extractArchive(dir: string, archivePath: string): Promise<void>;\n cleanupArchive(archivePath: string): Promise<void>;\n}\nexport type { UploadedPart, UploadPartsResponse };\nexport interface WatchSubscriptionAPI {\n stream(): Promise<ReadableStream<Uint8Array>>;\n cancel(): Promise<void>;\n [Symbol.dispose](): void;\n}\nexport interface SandboxWatchAPI {\n watch(request: WatchRequest): Promise<WatchSubscriptionAPI>;\n checkChanges(request: CheckChangesRequest): Promise<CheckChangesResult>;\n}\n/**\n * Public-facing tunnel record. Discriminated on the presence of `name`:\n * quick tunnels (`*.trycloudflare.com`) omit it, named tunnels carry the\n * label that was passed to `get(port, { name })`.\n */\nexport type TunnelInfo = QuickTunnelInfo | NamedTunnelInfo;\nexport interface QuickTunnelInfo {\n id: string;\n port: number;\n /** `https://<random>.trycloudflare.com`. */\n url: string;\n /** Hostname portion of `url`. */\n hostname: string;\n createdAt: string;\n /** Absent on quick tunnels; narrows the union. */\n name?: never;\n}\nexport interface NamedTunnelInfo {\n /** Cloudflare tunnel UUID (8-4-4-4-12). */\n id: string;\n port: number;\n /** `https://<hostname>`. */\n url: string;\n /** Full hostname bound to the tunnel (without scheme). */\n hostname: string;\n createdAt: string;\n /** Label originally passed via `TunnelOptions.name`. */\n name: string;\n}\n/**\n * Options accepted by `sandbox.tunnels.get(port, options)`. Omitting\n * `name` (or omitting the options object) selects the zero-config quick\n * tunnel; setting `name` selects the named-tunnel flow.\n */\nexport interface TunnelOptions {\n /**\n * Single DNS label under the configured zone. The full hostname is\n * `<name>.<zone-name>`. See `validateTunnelName` for the format rules.\n */\n name?: string;\n}\nexport type TunnelRunMode = 'quick' | 'named';\nexport interface TunnelRunIdentity {\n tunnelId: string;\n runId: string;\n}\nexport type TunnelRunRef = TunnelRunIdentity;\nexport interface EnsureQuickTunnelRunRequest extends TunnelRunIdentity {\n mode: 'quick';\n port: number;\n readyTimeoutMs?: number;\n stopGraceMs?: number;\n}\nexport interface EnsureNamedTunnelRunRequest extends TunnelRunIdentity {\n mode: 'named';\n port: number;\n cloudflaredToken: string;\n readyTimeoutMs?: number;\n stopGraceMs?: number;\n}\nexport type EnsureTunnelRunRequest = EnsureQuickTunnelRunRequest | EnsureNamedTunnelRunRequest;\nexport interface QuickTunnelRunSnapshot extends TunnelRunIdentity {\n mode: 'quick';\n port: number;\n url: string;\n hostname: string;\n startedAt: string;\n}\nexport interface NamedTunnelRunSnapshot extends TunnelRunIdentity {\n mode: 'named';\n port: number;\n startedAt: string;\n}\nexport type TunnelRunSnapshot = QuickTunnelRunSnapshot | NamedTunnelRunSnapshot;\nexport interface EnsureTunnelRunResult {\n run: TunnelRunSnapshot;\n started: boolean;\n}\nexport type StopTunnelRunRequest = TunnelRunRef;\nexport interface StopTunnelRunResult {\n stopped: boolean;\n}\nexport interface TunnelRunExitEvent extends TunnelRunIdentity {\n mode: TunnelRunMode;\n port: number;\n exitCode: number | null;\n}\nexport interface SandboxTunnelsAPI {\n /** Ensure a runtime-local cloudflared process for a DO-issued run id. */\n ensureTunnelRun(request: EnsureTunnelRunRequest): Promise<EnsureTunnelRunResult>;\n /** Stop the matching runtime-local cloudflared process. */\n stopTunnelRun(request: StopTunnelRunRequest): Promise<StopTunnelRunResult>;\n}\n/**\n * Author-facing description of a sidecar extension. An extension is an\n * npm-style package: an `.tgz` whose embedded `package.json` declares the\n * sidecar entrypoint (via `bin`) and any extension metadata (under the\n * `sandboxExtension` key).\n *\n * The SDK ships the tarball bytes; the container hashes them, provisions a\n * dedicated directory keyed by content hash, derives identity from the\n * embedded `package.json`, installs the package with `bun add`, and spawns\n * the declared bin under Bun.\n *\n * `ExtensionPackage` carries tarball bytes produced by an extension build.\n * The SDK sends those bytes only when the container has not provisioned the\n * package hash yet.\n */\nexport interface ExtensionPackage {\n /** Raw `.tgz` bytes. */\n tarball: Uint8Array;\n /**\n * Bin entry to run when the embedded `package.json` declares more than one.\n * Defaults to the value of `sandboxExtension.bin` in `package.json`, then\n * to the single bin entry if there is exactly one.\n */\n bin?: string;\n /**\n * Max time to wait for the sidecar to accept a capnweb connection on its\n * unix socket. Falls back to `sandboxExtension.readinessTimeoutMs` in\n * `package.json`, then to a host default.\n */\n readinessTimeoutMs?: number;\n /**\n * Run lifecycle scripts during `bun add`. Defaults to false — provisioning\n * happens before the sidecar is supervised, so install-time side effects\n * are deliberately opt-in.\n */\n allowInstallScripts?: boolean;\n}\n/**\n * Container-derived identity for a provisioned extension package. Not\n * authored — produced by the host after extracting the embedded\n * `package.json` from a tarball.\n */\nexport interface ExtensionRegistration {\n /** Slugified package name (e.g. `@acme/foo` → `acme-foo`). */\n id: string;\n packageName: string;\n version: string;\n /** Hex sha256 of the tarball bytes. */\n packageHash: string;\n /** Resolved bin entry the host spawns. */\n bin: string;\n readinessTimeoutMs: number;\n}\n/** Health snapshot for a provisioned extension. */\nexport interface ExtensionHealth {\n packageHash: string;\n id: string;\n version: string;\n /** Tarball is on disk and the package.json has been read. */\n provisioned: boolean;\n /** Sidecar process is currently running. */\n running: boolean;\n pid: number | null;\n /** Whether a `__ping__` round-tripped over capnweb. */\n responsive: boolean;\n}\n/**\n * Connect request payload. The SDK hashes the tarball locally and first sends\n * only the hash. If the current host process has not provisioned that hash,\n * it responds with an `ExtensionTarballRequired` error and the SDK retries\n * with `tarball` populated.\n */\nexport interface ExtensionConnectRequest {\n packageHash: string;\n /** Only sent when the host has not seen this hash yet. */\n tarball?: Uint8Array;\n bin?: string;\n readinessTimeoutMs?: number;\n allowInstallScripts?: boolean;\n}\n/**\n * Error name thrown by the host's `connect` when it has not yet provisioned\n * the requested hash and the request did not carry tarball bytes. The SDK\n * recognises this name via `Error.name` and retries the connect with the\n * bytes attached. Kept as a string constant so it survives capnweb\n * cross-realm error reconstruction.\n */\nexport declare const EXTENSION_TARBALL_REQUIRED = \"ExtensionTarballRequired\";\n/**\n * Control surface for container sidecar extensions.\n *\n * `connect` is the only entry point: it provisions on first use, supervises\n * lazily, and returns the sidecar's capnweb remote main as a stub. Calls on\n * the stub are proxied through the container's capnweb session to the\n * sidecar's capnweb session — callback parameters (including streaming\n * handlers) round-trip across both hops.\n */\nexport interface SandboxExtensionsAPI {\n /**\n * Provision the package (if new) and return the sidecar's typed remote\n * main. The result is a capnweb stub whose methods correspond to the\n * sidecar's `RpcTarget` surface.\n */\n connect(req: ExtensionConnectRequest): Promise<unknown>;\n /** Health snapshot, probing the sidecar with a `__ping__` when running. */\n health(packageHash: string): Promise<ExtensionHealth>;\n /** Stop a sidecar and release its capnweb session. */\n stop(packageHash: string): Promise<void>;\n}\n/**\n * RPC surface the Sandbox DO exposes to the container over the existing\n * capnweb session. The container reaches it via\n * `session.getRemoteMain<SandboxControlCallback>()` and invokes methods\n * to push control-plane events (today: tunnel exits) back to the DO.\n *\n * One stable target per sandbox; not per-tunnel. Reusable seam for\n * future container→DO events.\n */\nexport interface SandboxControlCallback {\n /** Called by the container when a runtime-local tunnel run exits. */\n onTunnelRunExit(event: TunnelRunExitEvent): Promise<void>;\n}\n//# sourceMappingURL=rpc-types.d.ts.map"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { H as RPCTransportErrorKind, V as RPCTransportContext, Z as ErrorCode } from "./contexts-1EsLHByO.js";
1
+ import { H as RPCTransportErrorKind, V as RPCTransportContext, Z as ErrorCode } from "./contexts-DNFVmC9N.js";
2
2
  import { c as WaitForLogResult, i as ProcessLogEvent, n as ProcessFailure, o as ProcessStatus, r as ProcessLogCursor, s as SandboxCommand, t as ProcessExit } from "./process-types-GStiZ8f8.js";
3
3
  import { A as CreateTerminalOptions, C as BucketCredentials, D as MountBucketOptions, E as LocalMountBucketOptions, F as TerminalOutputOptions, G as ProcessTextOutputOptions, H as ProcessLogsOptions, I as TerminalOutputSubscriptionAPI, J as WaitForExitOptions, K as SandboxOptions, L as TerminalSnapshot, M as Terminal, N as TerminalOutputCursor, O as RemoteMountBucketOptions, P as TerminalOutputEvent, R as ExecOptions, S as BackupOptions, T as DirectoryBackup, U as ProcessOutput, W as ProcessOutputOptions, X as WaitForPortOptions, Y as WaitForLogOptions, _ as RenameFileResult, a as FileChunk, b as WriteFileResult, c as FileMetadata, d as ListFilesOptions, f as ListFilesResult, g as ReadFileStreamResult, h as ReadFileResult, i as DeleteFileResult, k as RestoreBackupResult, l as FileStreamEvent, m as MoveFileResult, o as FileEncoding, p as MkdirResult, q as SandboxProcess, r as CheckChangesResult, s as FileExistsResult, t as CheckChangesOptions, u as FileWatchSSEEvent, v as WatchOptions, w as BucketProvider } from "./filesystem-Y5aF3nmJ.js";
4
4
  import { t as ISandbox } from "./sandbox-CBkS3tGv.js";
5
5
  import { _ as QuickTunnelInfo, d as sandboxRuntimeCall, f as ProcessPullSubscriptionRPC, g as NamedTunnelInfo, n as ExtensionRuntimeCall, p as ProcessRPCDescriptor, s as HTTPAuthInterceptorParams, v as TunnelInfo, y as TunnelOptions } from "./index-DfXx3uZL.js";
6
- import { $ as TerminalNotFoundError, G as ContainerUnavailableError, H as BackupExpiredError, J as InvalidTerminalCwdError, K as InvalidBackupConfigError, Q as TerminalControlError, U as BackupNotFoundError, V as BackupCreateError, W as BackupRestoreError, X as RPCTransportError, Y as OperationInterruptedError, Z as StaleTerminalHandleError, a as InvalidProcessCursorError, c as ProcessAbortedError, d as ProcessExitedBeforeReadyError, f as ProcessNotFoundError, g as StaleProcessHandleError, h as ProcessWaitTimeoutError, l as ProcessError, m as ProcessSpawnFailedError, n as RuntimeControlProtocolError, o as InvalidProcessCwdError, p as ProcessReadyTimeoutError, q as InvalidTerminalCursorError, s as InvalidProcessEnvironmentError, t as RuntimeIdentityInactiveError, u as ProcessExitedBeforeLogError } from "./index-HNYBk-az.js";
6
+ import { $ as TerminalNotFoundError, G as ContainerUnavailableError, H as BackupExpiredError, J as InvalidTerminalCwdError, K as InvalidBackupConfigError, Q as TerminalControlError, U as BackupNotFoundError, V as BackupCreateError, W as BackupRestoreError, X as RPCTransportError, Y as OperationInterruptedError, Z as StaleTerminalHandleError, a as InvalidProcessCursorError, c as ProcessAbortedError, d as ProcessExitedBeforeReadyError, f as ProcessNotFoundError, g as StaleProcessHandleError, h as ProcessWaitTimeoutError, l as ProcessError, m as ProcessSpawnFailedError, n as RuntimeControlProtocolError, o as InvalidProcessCwdError, p as ProcessReadyTimeoutError, q as InvalidTerminalCursorError, s as InvalidProcessEnvironmentError, t as RuntimeIdentityInactiveError, u as ProcessExitedBeforeLogError } from "./index-CfpTXmNv.js";
7
7
  import { Container, ContainerProxy as ContainerProxy$1, ContainerStartConfigOptions } from "@cloudflare/containers";
8
8
  import { RpcTarget, RpcTransport } from "capnweb";
9
9
 
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import "./errors-CXR0xBpw.js";
2
- import { $ as TerminalControlError, G as BackupRestoreError, H as BackupCreateError, J as InvalidTerminalCursorError, K as ContainerUnavailableError, Q as StaleTerminalHandleError, U as BackupExpiredError, W as BackupNotFoundError, X as OperationInterruptedError, Y as InvalidTerminalCwdError, Z as RPCTransportError, _ as StaleProcessHandleError, c as InvalidProcessEnvironmentError, d as ProcessExitedBeforeLogError, et as TerminalNotFoundError, f as ProcessExitedBeforeReadyError, g as ProcessWaitTimeoutError, h as ProcessSpawnFailedError, l as ProcessAbortedError, m as ProcessReadyTimeoutError, n as RuntimeIdentityInactiveError, o as InvalidProcessCursorError, p as ProcessNotFoundError, q as InvalidBackupConfigError, r as RuntimeControlProtocolError, s as InvalidProcessCwdError, u as ProcessError } from "./errors-QYlSkVGz.js";
1
+ import "./errors-Bb3s6nBS.js";
2
+ import { $ as TerminalControlError, G as BackupRestoreError, H as BackupCreateError, J as InvalidTerminalCursorError, K as ContainerUnavailableError, Q as StaleTerminalHandleError, U as BackupExpiredError, W as BackupNotFoundError, X as OperationInterruptedError, Y as InvalidTerminalCwdError, Z as RPCTransportError, _ as StaleProcessHandleError, c as InvalidProcessEnvironmentError, d as ProcessExitedBeforeLogError, et as TerminalNotFoundError, f as ProcessExitedBeforeReadyError, g as ProcessWaitTimeoutError, h as ProcessSpawnFailedError, l as ProcessAbortedError, m as ProcessReadyTimeoutError, n as RuntimeIdentityInactiveError, o as InvalidProcessCursorError, p as ProcessNotFoundError, q as InvalidBackupConfigError, r as RuntimeControlProtocolError, s as InvalidProcessCwdError, u as ProcessError } from "./errors--yR3zLC_.js";
3
3
  import { a as TraceContext, r as createLogger } from "./dist-n_eniPAR.js";
4
- import { _ as proxyTerminal, a as responseToAsyncIterable, b as collectFile, c as BucketUnmountError, d as S3FSMountError, f as parsePreviewRoute, i as parseSSEStream, l as InvalidMountConfigError, n as getSandbox, o as ContainerProxy, p as withPreviewProxyMetadata, r as asyncIterableToSSEStream, s as BucketMountError, t as Sandbox, u as MissingCredentialsError, v as isDurableObjectCodeUpdateReset, x as streamFile, y as isPlatformTransientError } from "./sandbox-BEhPgFZx.js";
5
- import "./extensions-Be5HnDGt.js";
4
+ import { _ as proxyTerminal, a as responseToAsyncIterable, b as collectFile, c as BucketUnmountError, d as S3FSMountError, f as parsePreviewRoute, i as parseSSEStream, l as InvalidMountConfigError, n as getSandbox, o as ContainerProxy, p as withPreviewProxyMetadata, r as asyncIterableToSSEStream, s as BucketMountError, t as Sandbox, u as MissingCredentialsError, v as isDurableObjectCodeUpdateReset, x as streamFile, y as isPlatformTransientError } from "./sandbox-CaesWCLh.js";
5
+ import "./extensions-BKL2zqL4.js";
6
6
 
7
7
  //#region src/request-handler.ts
8
8
  function createProxyLogger(request) {
@@ -1,7 +1,7 @@
1
- import "../errors-CXR0xBpw.js";
2
- import "../errors-QYlSkVGz.js";
1
+ import "../errors-Bb3s6nBS.js";
2
+ import "../errors--yR3zLC_.js";
3
3
  import "../dist-n_eniPAR.js";
4
- import { t as SandboxExtension } from "../extensions-Be5HnDGt.js";
4
+ import { t as SandboxExtension } from "../extensions-BKL2zqL4.js";
5
5
 
6
6
  //#region rolldown:runtime
7
7
  var __toBinaryNode = (base64) => new Uint8Array(Buffer.from(base64, "base64"));
@@ -1,4 +1,4 @@
1
- import "../errors-CXR0xBpw.js";
1
+ import "../errors-Bb3s6nBS.js";
2
2
  import { r as createLogger } from "../dist-n_eniPAR.js";
3
3
  import { applyDiff } from "@openai/agents";
4
4
 
@@ -1,4 +1,4 @@
1
- import { D as OpenCodeStartupContext } from "../contexts-1EsLHByO.js";
1
+ import { D as OpenCodeStartupContext } from "../contexts-DNFVmC9N.js";
2
2
  import "../process-types-GStiZ8f8.js";
3
3
  import "../filesystem-Y5aF3nmJ.js";
4
4
  import { c as SandboxExtension, l as SandboxLike } from "../index-DfXx3uZL.js";
@@ -1,7 +1,7 @@
1
- import { i as ErrorCode } from "../errors-CXR0xBpw.js";
2
- import "../errors-QYlSkVGz.js";
1
+ import { i as ErrorCode } from "../errors-Bb3s6nBS.js";
2
+ import "../errors--yR3zLC_.js";
3
3
  import { r as createLogger } from "../dist-n_eniPAR.js";
4
- import { n as createExtensionProcessSandbox, t as SandboxExtension } from "../extensions-Be5HnDGt.js";
4
+ import { n as createExtensionProcessSandbox, t as SandboxExtension } from "../extensions-BKL2zqL4.js";
5
5
 
6
6
  //#region ../../extensions/opencode/src/client.ts
7
7
  let createSDKClient;
@@ -1,7 +1,7 @@
1
- import { i as ErrorCode, n as getSuggestion, r as getHttpStatus } from "./errors-CXR0xBpw.js";
2
- import { $ as TerminalControlError, G as BackupRestoreError, H as BackupCreateError, Q as StaleTerminalHandleError, U as BackupExpiredError, W as BackupNotFoundError, X as OperationInterruptedError, Z as RPCTransportError, _ as StaleProcessHandleError, n as RuntimeIdentityInactiveError, p as ProcessNotFoundError, q as InvalidBackupConfigError, r as RuntimeControlProtocolError, t as createErrorFromResponse, tt as SandboxError, v as CustomDomainRequiredError } from "./errors-QYlSkVGz.js";
1
+ import { i as ErrorCode, n as getSuggestion, r as getHttpStatus } from "./errors-Bb3s6nBS.js";
2
+ import { $ as TerminalControlError, G as BackupRestoreError, H as BackupCreateError, Q as StaleTerminalHandleError, U as BackupExpiredError, W as BackupNotFoundError, X as OperationInterruptedError, Z as RPCTransportError, _ as StaleProcessHandleError, n as RuntimeIdentityInactiveError, p as ProcessNotFoundError, q as InvalidBackupConfigError, r as RuntimeControlProtocolError, t as createErrorFromResponse, tt as SandboxError, v as CustomDomainRequiredError } from "./errors--yR3zLC_.js";
3
3
  import { a as TraceContext, d as partitionEnvVars, i as createNoOpLogger, o as logCanonicalEvent, r as createLogger, t as parseSSEFrames, u as getEnvString } from "./dist-n_eniPAR.js";
4
- import { a as PullSubscriptionTarget, i as createSandboxProcess, o as openRemoteSubscription, r as sandboxRuntimeCall, s as translateRPCError, t as SandboxExtension } from "./extensions-Be5HnDGt.js";
4
+ import { a as PullSubscriptionTarget, i as createSandboxProcess, o as openRemoteSubscription, r as sandboxRuntimeCall, s as translateRPCError, t as SandboxExtension } from "./extensions-BKL2zqL4.js";
5
5
  import { Container, ContainerProxy, getContainer, switchPort } from "@cloudflare/containers";
6
6
  import { RpcTarget } from "cloudflare:workers";
7
7
  import { AwsClient } from "aws4fetch";
@@ -2529,11 +2529,6 @@ async function mountR2EgressBucket(context, bucket, mountPath, options) {
2529
2529
  const lifecycle = await context.lifecycle.capture(context.runtime);
2530
2530
  passwordFilePath = generatePasswordFilePath();
2531
2531
  additionalHeaderFilePath = generateS3FSAdditionalHeaderFilePath();
2532
- await createPasswordFile(context.s3fsHost, passwordFilePath, bucket, {
2533
- accessKeyId: "x",
2534
- secretAccessKey: "x"
2535
- });
2536
- await createDisableExpectHeaderFile(context.s3fsHost, additionalHeaderFilePath);
2537
2532
  mountInfo = {
2538
2533
  mountId: crypto.randomUUID(),
2539
2534
  mountType: "r2-egress",
@@ -2545,14 +2540,21 @@ async function mountR2EgressBucket(context, bucket, mountPath, options) {
2545
2540
  prefix,
2546
2541
  readOnly: options.readOnly ?? false
2547
2542
  };
2548
- await configureR2EgressOutbound(context.getOutboundHost(), { buckets: {
2549
- ...buildR2EgressParams(context.registry).buckets,
2550
- [bucket]: {
2551
- prefix,
2552
- readOnly: options.readOnly ?? false
2553
- }
2554
- } });
2555
- await context.runRuntimeCall("mount.ensureDirectory", (control) => control.mounts.ensureDirectory(mountPath));
2543
+ await allOrFirstError([
2544
+ createPasswordFile(context.s3fsHost, passwordFilePath, bucket, {
2545
+ accessKeyId: "x",
2546
+ secretAccessKey: "x"
2547
+ }),
2548
+ createDisableExpectHeaderFile(context.s3fsHost, additionalHeaderFilePath),
2549
+ configureR2EgressOutbound(context.getOutboundHost(), { buckets: {
2550
+ ...buildR2EgressParams(context.registry).buckets,
2551
+ [bucket]: {
2552
+ prefix,
2553
+ readOnly: options.readOnly ?? false
2554
+ }
2555
+ } }),
2556
+ context.runRuntimeCall("mount.ensureDirectory", (control) => control.mounts.ensureDirectory(mountPath))
2557
+ ]);
2556
2558
  s3fsStarted = true;
2557
2559
  await executeS3FSMount(context.s3fsHost, {
2558
2560
  bucket,
@@ -2616,6 +2618,14 @@ async function mountR2EgressBucket(context, bucket, mountPath, options) {
2616
2618
  });
2617
2619
  }
2618
2620
  }
2621
+ /**
2622
+ * Like `Promise.all`, but waits for every step to settle before rejecting, so
2623
+ * cleanup never runs while a support-file write or route update is in flight.
2624
+ */
2625
+ async function allOrFirstError(steps) {
2626
+ const failure = (await Promise.allSettled(steps)).find((result) => result.status === "rejected");
2627
+ if (failure) throw failure.reason;
2628
+ }
2619
2629
 
2620
2630
  //#endregion
2621
2631
  //#region src/storage-mount/validation/credentials.ts
@@ -7610,6 +7620,22 @@ function randomId(size = 20) {
7610
7620
  function createQuickTunnelId() {
7611
7621
  return `quick-${randomId()}`;
7612
7622
  }
7623
+ /**
7624
+ * The run holding `request.port` when the container rejected `request`
7625
+ * with a port conflict, or `null` when the conflict does not name both
7626
+ * the active run and its tunnel, which `stopTunnelRun` needs.
7627
+ */
7628
+ function conflictingRunOnPort(error, request) {
7629
+ const e = error;
7630
+ if (e?.code !== "TUNNEL_RUN_CONFLICT") return null;
7631
+ const runId = e.context?.activeRunId;
7632
+ const tunnelId = e.context?.activeTunnelId;
7633
+ if (e.context?.port !== request.port || typeof runId !== "string" || typeof tunnelId !== "string" || runId === request.runId) return null;
7634
+ return {
7635
+ tunnelId,
7636
+ runId
7637
+ };
7638
+ }
7613
7639
  var TunnelProvisioner = class {
7614
7640
  #host;
7615
7641
  #zoneNamePromise = null;
@@ -7617,7 +7643,7 @@ var TunnelProvisioner = class {
7617
7643
  this.#host = host;
7618
7644
  }
7619
7645
  async provisionQuickTunnel(tunnels, port, tunnelRunId, tunnelId = createQuickTunnelId()) {
7620
- const result = await this.#ensureTunnelRun(tunnels, {
7646
+ const result = await this.#ensureQuickTunnelRun(tunnels, {
7621
7647
  mode: "quick",
7622
7648
  tunnelId,
7623
7649
  runId: tunnelRunId,
@@ -7733,6 +7759,26 @@ var TunnelProvisioner = class {
7733
7759
  async #ensureTunnelRun(tunnels, request) {
7734
7760
  return await tunnels.ensureTunnelRun(request);
7735
7761
  }
7762
+ /**
7763
+ * Start a quick tunnel run. The Durable Object owns every tunnel run in
7764
+ * its container and holds the port lock, so a different run already on
7765
+ * the port lost its storage record. Stop it and retry once instead of
7766
+ * failing every later `get()` for the port.
7767
+ */
7768
+ async #ensureQuickTunnelRun(tunnels, request) {
7769
+ try {
7770
+ return await this.#ensureTunnelRun(tunnels, request);
7771
+ } catch (error) {
7772
+ const orphan = conflictingRunOnPort(error, request);
7773
+ if (!orphan) throw error;
7774
+ this.#host.logger?.warn("tunnel.get: stopping orphaned run on port", {
7775
+ port: request.port,
7776
+ ...orphan
7777
+ });
7778
+ await tunnels.stopTunnelRun(orphan);
7779
+ return await this.#ensureTunnelRun(tunnels, request);
7780
+ }
7781
+ }
7736
7782
  async #getZoneName(config) {
7737
7783
  if (!this.#zoneNamePromise) {
7738
7784
  const pending = getZoneName({
@@ -7965,13 +8011,37 @@ var TunnelService = class {
7965
8011
  await this.#assertSandboxLifetime(lifetime, "committing");
7966
8012
  return spawned;
7967
8013
  } catch (error) {
7968
- if (committedInfo) await this.#invalidateCommittedPortIfUnchanged(port, committedInfo, lease.runtime, runId);
8014
+ try {
8015
+ if (committedInfo) await this.#invalidateCommittedPortIfUnchanged(port, committedInfo, lease.runtime, runId);
8016
+ } finally {
8017
+ await this.#stopAbandonedQuickRun(lease.tunnels, port, {
8018
+ tunnelId,
8019
+ runId
8020
+ });
8021
+ }
7969
8022
  throw error;
7970
8023
  } finally {
7971
8024
  hold.release();
7972
8025
  }
7973
8026
  });
7974
8027
  }
8028
+ /**
8029
+ * Stop a quick tunnel run that provisioning is giving up on, so its
8030
+ * cloudflared does not keep holding the port without a stored record.
8031
+ * Best effort: the run may never have started, or may have died with a
8032
+ * replaced runtime.
8033
+ */
8034
+ async #stopAbandonedQuickRun(tunnels, port, run) {
8035
+ try {
8036
+ await tunnels.stopTunnelRun(run);
8037
+ } catch (error) {
8038
+ this.#host.logger.warn("tunnel.get: abandoned run cleanup failed", {
8039
+ port,
8040
+ ...run,
8041
+ error: error instanceof Error ? error.message : String(error)
8042
+ });
8043
+ }
8044
+ }
7975
8045
  async #provisionNamedTunnel(port, name) {
7976
8046
  const lifetime = await this.#host.currentLifetime?.getOrCreate();
7977
8047
  return await this.#host.runProvision(async (lease) => {
@@ -10132,4 +10202,4 @@ var Sandbox = class extends Container {
10132
10202
 
10133
10203
  //#endregion
10134
10204
  export { proxyTerminal as _, responseToAsyncIterable as a, collectFile as b, BucketUnmountError as c, S3FSMountError as d, parsePreviewRoute as f, validateTunnelName as g, validatePort as h, parseSSEStream as i, InvalidMountConfigError as l, SandboxSecurityError as m, getSandbox as n, ContainerProxy$1 as o, withPreviewProxyMetadata as p, asyncIterableToSSEStream as r, BucketMountError as s, Sandbox as t, MissingCredentialsError as u, isDurableObjectCodeUpdateReset as v, streamFile as x, isPlatformTransientError as y };
10135
- //# sourceMappingURL=sandbox-BEhPgFZx.js.map
10205
+ //# sourceMappingURL=sandbox-CaesWCLh.js.map