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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions