Skip to content

Publish the TypeScript packages at 0.1.6 #38

Closed

Description

@Nabhag8848

npm already has @sandbox-kit/contracts, @sandbox-kit/sandbox, @sandbox-kit/daytona, and @sandbox-kit/modal at 0.1.5. Publish 0.1.6 for all four after #37 lands on main. That PR adds the shared filesystem on the sandbox handle for Daytona and Modal. The Go release is #39.

Applications install the core package and one provider. Publish contracts as well: @sandbox-kit/sandbox depends on it at an exact version, and this release adds generated filesystem option and FileInfo types. Each provider depends on @sandbox-kit/sandbox at an exact version, and both providers gain filesystem adapters, so sandbox, Daytona, and Modal ship together. Publish contracts first, then sandbox, then the providers.

Packages

Package Publish Why
@sandbox-kit/contracts 0.1.6 Generated wire types add FileInfo, FileType, and the filesystem option messages (FileReadOptions, FileWriteOptions, FileCopyOptions, MakeDirectoryOptions, ListDirectoryOptions, StatOptions, RemoveOptions).
@sandbox-kit/sandbox 0.1.6 Public sandbox.filesystem with the eight shared calls. Path validation, file field constants, and ms timeouts on file options. Pin @sandbox-kit/contracts to 0.1.6.
@sandbox-kit/daytona 0.1.6 Filesystem adapter: whole-second timeouts on read/write/copy, omitted/zero timeout passed as 0 (no Daytona transfer default), local path classification, copyToLocal creates missing local parents. Pin @sandbox-kit/sandbox to 0.1.6.
@sandbox-kit/modal 0.1.6 Filesystem adapter over Modal file APIs; local path classification before native copy; parents default true. Pin @sandbox-kit/sandbox to 0.1.6.

Leave these unpublished:

  • sdks/typescript (@sandbox-kit/typescript-workspace, already "private": true)
  • examples/typescript/ (private projects, file: dependencies)
  • tooling/
  • website/ (docs site ships from main via Pages; not an npm package)

Leave @daytona/sdk at 0.225.0 and modal at 0.11.1.

flowchart LR
  contracts["@sandbox-kit/contracts 0.1.6"] --> sandboxTs["@sandbox-kit/sandbox 0.1.6"]
  sandboxTs --> daytonaTs["@sandbox-kit/daytona 0.1.6"]
  sandboxTs --> modalTs["@sandbox-kit/modal 0.1.6"]
Loading

What 0.1.6 changes

Daytona and Modal share one filesystem on the sandbox handle. The eight calls are readFile, writeFile, copyFromLocal, copyToLocal, makeDirectory, listDirectory, stat, and remove. Lifecycle stays on the handle. Closing the client or handle does not delete files or the sandbox.

A sandbox path must be absolute. A relative, blank, or NUL path fails in Kit before the provider is called; the field is path. Read and write move bytes. Copy uses a path on the caller's disk; a missing local source is not found and a local directory is an invalid argument, both with field local_path, before the provider call. copyToLocal creates missing local parent directories. An existing local directory destination is rejected with the same field.

parents defaults to true on makeDirectory. Daytona rejects parents: false. Modal requires the parent when parents is false. TypeScript Daytona read, write, and copy take a whole number of seconds (2000 → 2s; 1500 is rejected, field timeout). An omitted or zero timeout on those four calls is passed as 0 so Daytona adds no transfer limit; the abort signal carries the client deadline. Directory, list, stat, and remove use the abort signal, so 1500 is a valid deadline.

Guides under docs/filesystem.md / the site filesystem page and the provider READMEs describe the same surface. Runnable examples live under examples/typescript/<provider>/filesystem/.

Steps

Do this on current main after #37 merges. Do not move the 0.1.5 releases.

  1. Set "version": "0.1.6" in sdks/typescript/contracts, sdks/typescript/sandbox, sdks/typescript/providers/daytona, and sdks/typescript/providers/modal.
  2. Set @sandbox-kit/contracts to 0.1.6 in the sandbox package. Set @sandbox-kit/sandbox to 0.1.6 in both provider packages.
  3. From sdks/typescript, run npm install. From the repo root, run GOWORK=off go run ./tooling/cmd/sandbox-kit test typescript.
  4. Dry-run each pack. Confirm the tarball contains dist/, README.md, and LICENSE, and that dependencies are version numbers, not file::
cd sdks/typescript/contracts && npm pack --dry-run
cd ../sandbox && npm pack --dry-run
cd ../providers/daytona && npm pack --dry-run
cd ../providers/modal && npm pack --dry-run
  1. Publish in dependency order. prepublishOnly deletes dist/ and rebuilds it. Publish from the commit that contains the version bump and the merged filesystem changes:
cd sdks/typescript/contracts && npm publish
cd ../sandbox && npm publish
cd ../providers/daytona && npm publish
cd ../providers/modal && npm publish
  1. Confirm the registry:
npm view @sandbox-kit/contracts@0.1.6 version
npm view @sandbox-kit/sandbox@0.1.6 version
npm view @sandbox-kit/sandbox@0.1.6 dependencies
npm view @sandbox-kit/daytona@0.1.6 dependencies
npm view @sandbox-kit/modal@0.1.6 dependencies

@sandbox-kit/sandbox must depend on @sandbox-kit/contracts at 0.1.6. Each provider dependency list must show @sandbox-kit/sandbox at 0.1.6.

Apps install the core client and one provider:

npm install @sandbox-kit/sandbox@0.1.6 @sandbox-kit/daytona@0.1.6
# or @sandbox-kit/modal@0.1.6

Checklist

  • Add a shared filesystem for Daytona and Modal #37 is on main
  • Filesystem guides and public comments are on main
  • Companion Go release issue is linked (Publish the Go SDK at v0.1.4 #39)
  • Bump the four package versions and the exact dependency pins to 0.1.6
  • sandbox-kit test typescript passes
  • Dry-run packs include dist/, README.md, and LICENSE
  • Publish @sandbox-kit/contracts@0.1.6
  • Publish @sandbox-kit/sandbox@0.1.6
  • Publish @sandbox-kit/daytona@0.1.6
  • Publish @sandbox-kit/modal@0.1.6
  • npm view shows the 0.1.6 pins

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions