Skip to content

Add Upstash Box sandbox provider (@tanstack/ai-sandbox-upstash-box) #898

Description

@alitariksahin

Summary

Add a new sandbox provider package, @tanstack/ai-sandbox-upstash-box, so harness adapters can run inside isolated Upstash Box cloud sandboxes through the uniform SandboxHandle — alongside the existing Docker / Daytona / Vercel / Cloudflare / Sprites providers.

Motivation

Upstash Box is a cloud sandbox with a feature set close to Daytona (create → exec → fs → preview URLs → destroy) plus native snapshots. Adding it as a provider gives users another managed backend for running coding-agent harnesses, with first-class snapshot/restore.

Scope

  • SandboxProvider + SandboxHandle implemented over the @upstash/box SDK.
  • fs via Box's native file API (+ shell for mkdir/remove/rename/exists); virtual /workspace ↔ Box /workspace/home path mapping.
  • exec and streamed spawn (via exec.stream) with shell-wrapped cwd/env; writableStdin: false (Daytona parity).
  • ports.connect via getPublicURL; native snapshots (box.snapshot() / Box.fromSnapshot()) + restoreSnapshot.
  • Unit tests (mocked Box), gated integration tests (UPSTASH_BOX_API_KEY), README, changeset, and the central provider-list row in @tanstack/ai-sandbox.

Notes / limitations

  • backgroundProcesses: true but writableStdin: false — stdin-driven harnesses (Codex/Gemini ACP) must deliver the prompt via a file + shell redirection, same as Daytona.
  • fork and networkPolicy unsupported in v1.

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