@sandboxrouter/sdk 0.8.0 → 0.8.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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # sandboxrouter
1
+ # sandboxRouter
2
2
 
3
3
  **One API for every sandbox.** A free, open-source router for the places an AI agent can run code: Agent37, Alibaba Cloud, AWS (Bedrock AgentCore and Lambda MicroVMs), Azure Container Apps, Beam, Blaxel, Boat, Cloudflare, CodeSandbox, Daytona, Dedalus Machines, Deno, E2B, exe.dev, Fly.io Sprites, Freestyle, HOPX, InstaBox, Koyeb, Maritime, Modal, Morph, Northflank, Novita, OpenScale, Runloop, Sail, Superserve, Tensorlake, Upstash Box and Vercel, plus Docker on your own machine. It picks a provider by price, speed or capability, and falls back to the next one when a provider is down or rate-limited.
4
4
 
@@ -27,7 +27,7 @@ Site and docs: [sandboxrouter.ai](https://sandboxrouter.ai) · npm: [`@sandboxro
27
27
 
28
28
  ## Why
29
29
 
30
- AI agents need a disposable computer to run code a model wrote: install packages, run tests, do an RL rollout. Dozens of providers sell one, each with its own SDK and auth, and the same 2 vCPU / 4 GB sandbox costs from under a cent to over thirty cents an hour. sandboxrouter is one interface over all of them:
30
+ AI agents need a disposable computer to run code a model wrote: install packages, run tests, do an RL rollout. Dozens of providers sell one, each with its own SDK and auth, and the same 2 vCPU / 4 GB sandbox costs from under a cent to over thirty cents an hour. sandboxRouter is one interface over all of them:
31
31
 
32
32
  - **Same code everywhere.** `create`, `exec` (streamed), `writeFile`, `readFile`, `pause`, `kill`. Switch providers by changing which keys are set.
33
33
  - **Cheapest real cost, then speed, with fallback.** Or `cheapest` for list price alone, `fastest` by start times, `verified` for tested providers first, or a list of providers you name. `requireVerified` limits a router to providers that passed the real-account check.
@@ -45,7 +45,7 @@ List price while running, 2 vCPU / 4 GB, cheapest first; waitlisted sign-ups fol
45
45
  | [Agent37](https://sandboxrouter.ai/providers/agent37) | $0.007 | none | passed (2026-11-13) | [pricing](https://www.agent37.com/docs/agents-api/billing) |
46
46
  | [Boat](https://sandboxrouter.ai/providers/boat) | $0.018 | $20/mo (credited) | not run yet | [pricing](https://docs.boat.dev/pricing.md) |
47
47
  | [Maritime](https://sandboxrouter.ai/providers/maritime) | $0.022 | $20/mo (credited) | passed (2026-11-13) | [pricing](https://maritime.sh/pricing) |
48
- | [Sailboxes (Sail Research)](https://sandboxrouter.ai/providers/sail) | up to $0.062 | none | passed (2026-11-13) | [pricing](https://docs.sailresearch.com/sailboxes-pricing.md) |
48
+ | [Sailboxes (Sail Research)](https://sandboxrouter.ai/providers/sail) | up to $0.062 | none | passed (2026-11-14) | [pricing](https://docs.sailresearch.com/sailboxes-pricing.md) |
49
49
  | [Northflank](https://sandboxrouter.ai/providers/northflank) | $0.067 | none | not run yet | [pricing](https://northflank.com/pricing) |
50
50
  | [Morph Cloud](https://sandboxrouter.ai/providers/morph) | $0.100 | none | not run yet | [pricing](https://cloud.morph.so/web/pricing) |
51
51
  | [exe.dev](https://sandboxrouter.ai/providers/exedev) | $0.105 | $15/mo | not run yet | [pricing](https://exe.dev/docs/standalone-vms.md) |
@@ -57,7 +57,7 @@ List price while running, 2 vCPU / 4 GB, cheapest first; waitlisted sign-ups fol
57
57
  | [Blaxel](https://sandboxrouter.ai/providers/blaxel) | $0.166 | none | passed (2026-11-13) | [pricing](https://blaxel.ai/pricing) |
58
58
  | [HOPX](https://sandboxrouter.ai/providers/hopx) | $0.166 | none | not run yet | [pricing](https://hopx.ai/pricing) |
59
59
  | [Superserve](https://sandboxrouter.ai/providers/superserve) | $0.166 | maybe $20/mo (credited) | passed (2026-11-13) | [pricing](https://superserve.ai/pricing) |
60
- | [Tensorlake](https://sandboxrouter.ai/providers/tensorlake) | up to $0.200 | none | not run yet | [pricing](https://www.tensorlake.ai/pricing) |
60
+ | [Tensorlake](https://sandboxrouter.ai/providers/tensorlake) | up to $0.200 | none | passed (2026-11-14) | [pricing](https://www.tensorlake.ai/pricing) |
61
61
  | [Upstash Box](https://sandboxrouter.ai/providers/upstash) | up to $0.200 | none | not run yet | [pricing](https://upstash.com/pricing/box) |
62
62
  | [Cloudflare Sandbox](https://sandboxrouter.ai/providers/cloudflare) | up to $0.216 | $5/mo | passed (2026-11-13) | [pricing](https://developers.cloudflare.com/containers/platform/pricing/) |
63
63
  | [Amazon Bedrock AgentCore Code Interpreter](https://sandboxrouter.ai/providers/agentcore) | up to $0.217 | none | passed (2026-11-13) | [pricing](https://aws.amazon.com/bedrock/agentcore/pricing/) |
@@ -24,6 +24,7 @@ export class TensorlakeProvider {
24
24
  try {
25
25
  sbx = await Sandbox.create({
26
26
  apiKey: this.apiKey,
27
+ name: `sbr-${randomUUID()}`,
27
28
  image,
28
29
  cpus: spec.vcpu ?? DEFAULT_VCPU,
29
30
  memoryMb: Math.round((spec.memoryGb ?? DEFAULT_MEMORY_GB) * 1024),
@@ -160,15 +161,9 @@ class TensorlakeBox {
160
161
  throw fail(err);
161
162
  }
162
163
  }
163
- /**
164
- * Suspend, keeping memory and disk. Only named sandboxes can suspend, so an unnamed one is
165
- * named first. router.get() resumes it.
166
- */
164
+ /** Suspend, keeping memory and disk. Names are assigned at creation and are immutable. */
167
165
  async pause() {
168
166
  try {
169
- const info = await this.sbx.info();
170
- if (!info.name)
171
- await this.sbx.update({ name: `sbr-${randomUUID()}` });
172
167
  await this.sbx.suspend();
173
168
  }
174
169
  catch (err) {
package/dist/verified.js CHANGED
@@ -12,8 +12,9 @@ export const VERIFIED = {
12
12
  modal: "2026-11-13",
13
13
  novita: "2026-11-13",
14
14
  openscale: "2026-11-13",
15
- sail: "2026-11-13",
15
+ sail: "2026-11-14",
16
16
  superserve: "2026-11-13",
17
+ tensorlake: "2026-11-14",
17
18
  vercel: "2026-11-13",
18
19
  };
19
20
  /** Providers whose last saved real-account check failed a step. The default strategy tries them last. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sandboxrouter/sdk",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "One API for every sandbox provider: route AI agents' code by price, speed or capability, with automatic fallback. Free and open source.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",