diff --git a/.claude/commands/post-release-testing.md b/.claude/commands/post-release-testing.md index 771a1d8..09e2b6a 100644 --- a/.claude/commands/post-release-testing.md +++ b/.claude/commands/post-release-testing.md @@ -43,7 +43,7 @@ Manually verify the install script works in a fresh environment: ```bash docker run --rm alpine:latest sh -c " apk add --no-cache curl ca-certificates libstdc++ libgcc bash && - curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh && + curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh && sandbox-agent --version " ``` diff --git a/README.md b/README.md index b7ac39a..535e5ad 100644 --- a/README.md +++ b/README.md @@ -80,11 +80,11 @@ Import the SDK directly into your Node or browser application. Full type safety **Install** ```bash -npm install sandbox-agent@0.2.x +npm install sandbox-agent@0.3.x ``` ```bash -bun add sandbox-agent@0.2.x +bun add sandbox-agent@0.3.x # Optional: allow Bun to run postinstall scripts for native binaries (required for SandboxAgent.start()). bun pm trust @sandbox-agent/cli-linux-x64 @sandbox-agent/cli-linux-arm64 @sandbox-agent/cli-darwin-arm64 @sandbox-agent/cli-darwin-x64 @sandbox-agent/cli-win32-x64 ``` @@ -138,7 +138,7 @@ Run as an HTTP server and connect from any language. Deploy to E2B, Daytona, Ver ```bash # Install it -curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh +curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh # Run it sandbox-agent server --token "$SANDBOX_TOKEN" --host 127.0.0.1 --port 2468 ``` @@ -165,12 +165,12 @@ sandbox-agent server --no-token --host 127.0.0.1 --port 2468 Install the CLI wrapper (optional but convenient): ```bash -npm install -g @sandbox-agent/cli@0.2.x +npm install -g @sandbox-agent/cli@0.3.x ``` ```bash # Allow Bun to run postinstall scripts for native binaries. -bun add -g @sandbox-agent/cli@0.2.x +bun add -g @sandbox-agent/cli@0.3.x bun pm -g trust @sandbox-agent/cli-linux-x64 @sandbox-agent/cli-linux-arm64 @sandbox-agent/cli-darwin-arm64 @sandbox-agent/cli-darwin-x64 @sandbox-agent/cli-win32-x64 ``` @@ -185,11 +185,11 @@ sandbox-agent api sessions send-message-stream my-session --message "Hello" --en You can also use npx like: ```bash -npx @sandbox-agent/cli@0.2.x --help +npx @sandbox-agent/cli@0.3.x --help ``` ```bash -bunx @sandbox-agent/cli@0.2.x --help +bunx @sandbox-agent/cli@0.3.x --help ``` [CLI documentation](https://sandboxagent.dev/docs/cli) diff --git a/docker/release/linux-aarch64.Dockerfile b/docker/release/linux-aarch64.Dockerfile index ef70c14..412e6c0 100644 --- a/docker/release/linux-aarch64.Dockerfile +++ b/docker/release/linux-aarch64.Dockerfile @@ -11,6 +11,7 @@ COPY frontend/packages/inspector/package.json ./frontend/packages/inspector/ COPY sdks/cli-shared/package.json ./sdks/cli-shared/ COPY sdks/acp-http-client/package.json ./sdks/acp-http-client/ COPY sdks/persist-indexeddb/package.json ./sdks/persist-indexeddb/ +COPY sdks/react/package.json ./sdks/react/ COPY sdks/typescript/package.json ./sdks/typescript/ # Install dependencies @@ -21,13 +22,15 @@ COPY docs/openapi.json ./docs/ COPY sdks/cli-shared ./sdks/cli-shared COPY sdks/acp-http-client ./sdks/acp-http-client COPY sdks/persist-indexeddb ./sdks/persist-indexeddb +COPY sdks/react ./sdks/react COPY sdks/typescript ./sdks/typescript -# Build cli-shared, acp-http-client, SDK, then persist-indexeddb (depends on SDK) +# Build cli-shared, acp-http-client, SDK, then persist-indexeddb and react (depends on SDK) RUN cd sdks/cli-shared && pnpm exec tsup RUN cd sdks/acp-http-client && pnpm exec tsup RUN cd sdks/typescript && SKIP_OPENAPI_GEN=1 pnpm exec tsup RUN cd sdks/persist-indexeddb && pnpm exec tsup +RUN cd sdks/react && pnpm exec tsup # Copy inspector source and build COPY frontend/packages/inspector ./frontend/packages/inspector diff --git a/docker/release/linux-x86_64.Dockerfile b/docker/release/linux-x86_64.Dockerfile index 262543b..323e471 100644 --- a/docker/release/linux-x86_64.Dockerfile +++ b/docker/release/linux-x86_64.Dockerfile @@ -11,6 +11,7 @@ COPY frontend/packages/inspector/package.json ./frontend/packages/inspector/ COPY sdks/cli-shared/package.json ./sdks/cli-shared/ COPY sdks/acp-http-client/package.json ./sdks/acp-http-client/ COPY sdks/persist-indexeddb/package.json ./sdks/persist-indexeddb/ +COPY sdks/react/package.json ./sdks/react/ COPY sdks/typescript/package.json ./sdks/typescript/ # Install dependencies @@ -21,13 +22,15 @@ COPY docs/openapi.json ./docs/ COPY sdks/cli-shared ./sdks/cli-shared COPY sdks/acp-http-client ./sdks/acp-http-client COPY sdks/persist-indexeddb ./sdks/persist-indexeddb +COPY sdks/react ./sdks/react COPY sdks/typescript ./sdks/typescript -# Build cli-shared, acp-http-client, SDK, then persist-indexeddb (depends on SDK) +# Build cli-shared, acp-http-client, SDK, then persist-indexeddb and react (depends on SDK) RUN cd sdks/cli-shared && pnpm exec tsup RUN cd sdks/acp-http-client && pnpm exec tsup RUN cd sdks/typescript && SKIP_OPENAPI_GEN=1 pnpm exec tsup RUN cd sdks/persist-indexeddb && pnpm exec tsup +RUN cd sdks/react && pnpm exec tsup # Copy inspector source and build COPY frontend/packages/inspector ./frontend/packages/inspector diff --git a/docker/release/macos-aarch64.Dockerfile b/docker/release/macos-aarch64.Dockerfile index e93ab15..000157e 100644 --- a/docker/release/macos-aarch64.Dockerfile +++ b/docker/release/macos-aarch64.Dockerfile @@ -11,6 +11,7 @@ COPY frontend/packages/inspector/package.json ./frontend/packages/inspector/ COPY sdks/cli-shared/package.json ./sdks/cli-shared/ COPY sdks/acp-http-client/package.json ./sdks/acp-http-client/ COPY sdks/persist-indexeddb/package.json ./sdks/persist-indexeddb/ +COPY sdks/react/package.json ./sdks/react/ COPY sdks/typescript/package.json ./sdks/typescript/ # Install dependencies @@ -21,13 +22,15 @@ COPY docs/openapi.json ./docs/ COPY sdks/cli-shared ./sdks/cli-shared COPY sdks/acp-http-client ./sdks/acp-http-client COPY sdks/persist-indexeddb ./sdks/persist-indexeddb +COPY sdks/react ./sdks/react COPY sdks/typescript ./sdks/typescript -# Build cli-shared, acp-http-client, SDK, then persist-indexeddb (depends on SDK) +# Build cli-shared, acp-http-client, SDK, then persist-indexeddb and react (depends on SDK) RUN cd sdks/cli-shared && pnpm exec tsup RUN cd sdks/acp-http-client && pnpm exec tsup RUN cd sdks/typescript && SKIP_OPENAPI_GEN=1 pnpm exec tsup RUN cd sdks/persist-indexeddb && pnpm exec tsup +RUN cd sdks/react && pnpm exec tsup # Copy inspector source and build COPY frontend/packages/inspector ./frontend/packages/inspector diff --git a/docker/release/macos-x86_64.Dockerfile b/docker/release/macos-x86_64.Dockerfile index af57336..9082018 100644 --- a/docker/release/macos-x86_64.Dockerfile +++ b/docker/release/macos-x86_64.Dockerfile @@ -11,6 +11,7 @@ COPY frontend/packages/inspector/package.json ./frontend/packages/inspector/ COPY sdks/cli-shared/package.json ./sdks/cli-shared/ COPY sdks/acp-http-client/package.json ./sdks/acp-http-client/ COPY sdks/persist-indexeddb/package.json ./sdks/persist-indexeddb/ +COPY sdks/react/package.json ./sdks/react/ COPY sdks/typescript/package.json ./sdks/typescript/ # Install dependencies @@ -21,13 +22,15 @@ COPY docs/openapi.json ./docs/ COPY sdks/cli-shared ./sdks/cli-shared COPY sdks/acp-http-client ./sdks/acp-http-client COPY sdks/persist-indexeddb ./sdks/persist-indexeddb +COPY sdks/react ./sdks/react COPY sdks/typescript ./sdks/typescript -# Build cli-shared, acp-http-client, SDK, then persist-indexeddb (depends on SDK) +# Build cli-shared, acp-http-client, SDK, then persist-indexeddb and react (depends on SDK) RUN cd sdks/cli-shared && pnpm exec tsup RUN cd sdks/acp-http-client && pnpm exec tsup RUN cd sdks/typescript && SKIP_OPENAPI_GEN=1 pnpm exec tsup RUN cd sdks/persist-indexeddb && pnpm exec tsup +RUN cd sdks/react && pnpm exec tsup # Copy inspector source and build COPY frontend/packages/inspector ./frontend/packages/inspector diff --git a/docker/release/windows.Dockerfile b/docker/release/windows.Dockerfile index 83b3f37..9c7694d 100644 --- a/docker/release/windows.Dockerfile +++ b/docker/release/windows.Dockerfile @@ -11,6 +11,7 @@ COPY frontend/packages/inspector/package.json ./frontend/packages/inspector/ COPY sdks/cli-shared/package.json ./sdks/cli-shared/ COPY sdks/acp-http-client/package.json ./sdks/acp-http-client/ COPY sdks/persist-indexeddb/package.json ./sdks/persist-indexeddb/ +COPY sdks/react/package.json ./sdks/react/ COPY sdks/typescript/package.json ./sdks/typescript/ # Install dependencies @@ -21,13 +22,15 @@ COPY docs/openapi.json ./docs/ COPY sdks/cli-shared ./sdks/cli-shared COPY sdks/acp-http-client ./sdks/acp-http-client COPY sdks/persist-indexeddb ./sdks/persist-indexeddb +COPY sdks/react ./sdks/react COPY sdks/typescript ./sdks/typescript -# Build cli-shared, acp-http-client, SDK, then persist-indexeddb (depends on SDK) +# Build cli-shared, acp-http-client, SDK, then persist-indexeddb and react (depends on SDK) RUN cd sdks/cli-shared && pnpm exec tsup RUN cd sdks/acp-http-client && pnpm exec tsup RUN cd sdks/typescript && SKIP_OPENAPI_GEN=1 pnpm exec tsup RUN cd sdks/persist-indexeddb && pnpm exec tsup +RUN cd sdks/react && pnpm exec tsup # Copy inspector source and build COPY frontend/packages/inspector ./frontend/packages/inspector diff --git a/docker/runtime/Dockerfile b/docker/runtime/Dockerfile index 029a969..27b9560 100644 --- a/docker/runtime/Dockerfile +++ b/docker/runtime/Dockerfile @@ -13,6 +13,7 @@ COPY frontend/packages/inspector/package.json ./frontend/packages/inspector/ COPY sdks/cli-shared/package.json ./sdks/cli-shared/ COPY sdks/acp-http-client/package.json ./sdks/acp-http-client/ COPY sdks/persist-indexeddb/package.json ./sdks/persist-indexeddb/ +COPY sdks/react/package.json ./sdks/react/ COPY sdks/typescript/package.json ./sdks/typescript/ # Install dependencies @@ -23,13 +24,15 @@ COPY docs/openapi.json ./docs/ COPY sdks/cli-shared ./sdks/cli-shared COPY sdks/acp-http-client ./sdks/acp-http-client COPY sdks/persist-indexeddb ./sdks/persist-indexeddb +COPY sdks/react ./sdks/react COPY sdks/typescript ./sdks/typescript -# Build cli-shared, acp-http-client, SDK, then persist-indexeddb (depends on SDK) +# Build cli-shared, acp-http-client, SDK, then persist-indexeddb and react (depends on SDK) RUN cd sdks/cli-shared && pnpm exec tsup RUN cd sdks/acp-http-client && pnpm exec tsup RUN cd sdks/typescript && SKIP_OPENAPI_GEN=1 pnpm exec tsup RUN cd sdks/persist-indexeddb && pnpm exec tsup +RUN cd sdks/react && pnpm exec tsup # Copy inspector source and build COPY frontend/packages/inspector ./frontend/packages/inspector diff --git a/docs/deploy/boxlite.mdx b/docs/deploy/boxlite.mdx index fb2f8d0..115d8b8 100644 --- a/docs/deploy/boxlite.mdx +++ b/docs/deploy/boxlite.mdx @@ -20,7 +20,7 @@ that BoxLite can load directly (BoxLite has its own image store separate from Do ```dockerfile FROM node:22-bookworm-slim RUN apt-get update && apt-get install -y curl ca-certificates && rm -rf /var/lib/apt/lists/* -RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh +RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh RUN sandbox-agent install-agent claude RUN sandbox-agent install-agent codex ``` diff --git a/docs/deploy/cloudflare.mdx b/docs/deploy/cloudflare.mdx index 0a19448..0dc1d1f 100644 --- a/docs/deploy/cloudflare.mdx +++ b/docs/deploy/cloudflare.mdx @@ -25,7 +25,7 @@ cd my-sandbox ```dockerfile FROM cloudflare/sandbox:0.7.0 -RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh +RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh RUN sandbox-agent install-agent claude && sandbox-agent install-agent codex EXPOSE 8000 diff --git a/docs/deploy/daytona.mdx b/docs/deploy/daytona.mdx index e6d8dc8..5eb8f5d 100644 --- a/docs/deploy/daytona.mdx +++ b/docs/deploy/daytona.mdx @@ -28,7 +28,7 @@ if (process.env.OPENAI_API_KEY) envVars.OPENAI_API_KEY = process.env.OPENAI_API_ const sandbox = await daytona.create({ envVars }); await sandbox.process.executeCommand( - "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh" + "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh" ); await sandbox.process.executeCommand("sandbox-agent install-agent claude"); @@ -64,7 +64,7 @@ if (!hasSnapshot) { name: SNAPSHOT, image: Image.base("ubuntu:22.04").runCommands( "apt-get update && apt-get install -y curl ca-certificates", - "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh", + "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh", "sandbox-agent install-agent claude", "sandbox-agent install-agent codex", ), diff --git a/docs/deploy/docker.mdx b/docs/deploy/docker.mdx index 1c64af8..988382a 100644 --- a/docs/deploy/docker.mdx +++ b/docs/deploy/docker.mdx @@ -17,7 +17,7 @@ docker run --rm -p 3000:3000 \ -e OPENAI_API_KEY="$OPENAI_API_KEY" \ alpine:latest sh -c "\ apk add --no-cache curl ca-certificates libstdc++ libgcc bash nodejs npm && \ - curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh && \ + curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh && \ sandbox-agent server --no-token --host 0.0.0.0 --port 3000" ``` @@ -36,7 +36,7 @@ const container = await docker.createContainer({ "apt-get update", "DEBIAN_FRONTEND=noninteractive apt-get install -y curl ca-certificates bash libstdc++6", "rm -rf /var/lib/apt/lists/*", - "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh", + "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh", `sandbox-agent server --no-token --host 0.0.0.0 --port ${PORT}`, ].join(" && ")], Env: [ diff --git a/docs/deploy/e2b.mdx b/docs/deploy/e2b.mdx index f7ac7ba..8ea4c74 100644 --- a/docs/deploy/e2b.mdx +++ b/docs/deploy/e2b.mdx @@ -21,7 +21,7 @@ if (process.env.OPENAI_API_KEY) envs.OPENAI_API_KEY = process.env.OPENAI_API_KEY const sandbox = await Sandbox.create({ allowInternetAccess: true, envs }); await sandbox.commands.run( - "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh" + "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh" ); await sandbox.commands.run("sandbox-agent install-agent claude"); diff --git a/docs/deploy/local.mdx b/docs/deploy/local.mdx index 8af9f51..eab8f3f 100644 --- a/docs/deploy/local.mdx +++ b/docs/deploy/local.mdx @@ -9,7 +9,7 @@ For local development, run Sandbox Agent directly on your machine. ```bash # Install -curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh +curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh # Run sandbox-agent server --no-token --host 127.0.0.1 --port 2468 @@ -20,12 +20,12 @@ Or with npm/Bun: ```bash - npx @sandbox-agent/cli@0.2.x server --no-token --host 127.0.0.1 --port 2468 + npx @sandbox-agent/cli@0.3.x server --no-token --host 127.0.0.1 --port 2468 ``` ```bash - bunx @sandbox-agent/cli@0.2.x server --no-token --host 127.0.0.1 --port 2468 + bunx @sandbox-agent/cli@0.3.x server --no-token --host 127.0.0.1 --port 2468 ``` diff --git a/docs/deploy/vercel.mdx b/docs/deploy/vercel.mdx index 4a840ee..2025d67 100644 --- a/docs/deploy/vercel.mdx +++ b/docs/deploy/vercel.mdx @@ -30,7 +30,7 @@ const run = async (cmd: string, args: string[] = []) => { } }; -await run("sh", ["-c", "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh"]); +await run("sh", ["-c", "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh"]); await run("sandbox-agent", ["install-agent", "claude"]); await run("sandbox-agent", ["install-agent", "codex"]); diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index ad2c2ca..0654e61 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -84,7 +84,7 @@ icon: "rocket" Install and run the binary directly. ```bash - curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh + curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh sandbox-agent server --no-token --host 0.0.0.0 --port 2468 ``` @@ -93,7 +93,7 @@ icon: "rocket" Run without installing globally. ```bash - npx @sandbox-agent/cli@0.2.x server --no-token --host 0.0.0.0 --port 2468 + npx @sandbox-agent/cli@0.3.x server --no-token --host 0.0.0.0 --port 2468 ``` @@ -101,7 +101,7 @@ icon: "rocket" Run without installing globally. ```bash - bunx @sandbox-agent/cli@0.2.x server --no-token --host 0.0.0.0 --port 2468 + bunx @sandbox-agent/cli@0.3.x server --no-token --host 0.0.0.0 --port 2468 ``` @@ -109,7 +109,7 @@ icon: "rocket" Install globally, then run. ```bash - npm install -g @sandbox-agent/cli@0.2.x + npm install -g @sandbox-agent/cli@0.3.x sandbox-agent server --no-token --host 0.0.0.0 --port 2468 ``` @@ -118,7 +118,7 @@ icon: "rocket" Install globally, then run. ```bash - bun add -g @sandbox-agent/cli@0.2.x + bun add -g @sandbox-agent/cli@0.3.x # Allow Bun to run postinstall scripts for native binaries (required for SandboxAgent.start()). bun pm -g trust @sandbox-agent/cli-linux-x64 @sandbox-agent/cli-linux-arm64 @sandbox-agent/cli-darwin-arm64 @sandbox-agent/cli-darwin-x64 @sandbox-agent/cli-win32-x64 sandbox-agent server --no-token --host 0.0.0.0 --port 2468 @@ -129,7 +129,7 @@ icon: "rocket" For local development, use `SandboxAgent.start()` to spawn and manage the server as a subprocess. ```bash - npm install sandbox-agent@0.2.x + npm install sandbox-agent@0.3.x ``` ```typescript @@ -143,7 +143,7 @@ icon: "rocket" For local development, use `SandboxAgent.start()` to spawn and manage the server as a subprocess. ```bash - bun add sandbox-agent@0.2.x + bun add sandbox-agent@0.3.x # Allow Bun to run postinstall scripts for native binaries (required for SandboxAgent.start()). bun pm trust @sandbox-agent/cli-linux-x64 @sandbox-agent/cli-linux-arm64 @sandbox-agent/cli-darwin-arm64 @sandbox-agent/cli-darwin-x64 @sandbox-agent/cli-win32-x64 ``` diff --git a/docs/react-components.mdx b/docs/react-components.mdx index e7298d0..e37e2a3 100644 --- a/docs/react-components.mdx +++ b/docs/react-components.mdx @@ -9,7 +9,7 @@ icon: "react" ## Install ```bash -npm install @sandbox-agent/react@0.2.x +npm install @sandbox-agent/react@0.3.x ``` ## Full example diff --git a/docs/sdk-overview.mdx b/docs/sdk-overview.mdx index 627e440..5bd2a50 100644 --- a/docs/sdk-overview.mdx +++ b/docs/sdk-overview.mdx @@ -11,12 +11,12 @@ The TypeScript SDK is centered on `sandbox-agent` and its `SandboxAgent` class. ```bash - npm install sandbox-agent@0.2.x + npm install sandbox-agent@0.3.x ``` ```bash - bun add sandbox-agent@0.2.x + bun add sandbox-agent@0.3.x # Allow Bun to run postinstall scripts for native binaries (required for SandboxAgent.start()). bun pm trust @sandbox-agent/cli-linux-x64 @sandbox-agent/cli-linux-arm64 @sandbox-agent/cli-darwin-arm64 @sandbox-agent/cli-darwin-x64 @sandbox-agent/cli-win32-x64 ``` @@ -26,13 +26,13 @@ The TypeScript SDK is centered on `sandbox-agent` and its `SandboxAgent` class. ## Optional persistence drivers ```bash -npm install @sandbox-agent/persist-indexeddb@0.2.x @sandbox-agent/persist-sqlite@0.2.x @sandbox-agent/persist-postgres@0.2.x +npm install @sandbox-agent/persist-indexeddb@0.3.x @sandbox-agent/persist-sqlite@0.3.x @sandbox-agent/persist-postgres@0.3.x ``` ## Optional React components ```bash -npm install @sandbox-agent/react@0.2.x +npm install @sandbox-agent/react@0.3.x ``` ## Create a client diff --git a/docs/session-persistence.mdx b/docs/session-persistence.mdx index 676c948..eaa4de0 100644 --- a/docs/session-persistence.mdx +++ b/docs/session-persistence.mdx @@ -38,7 +38,7 @@ const sdk = await SandboxAgent.connect({ Recommended for sandbox orchestration with actor state. ```bash -npm install @sandbox-agent/persist-rivet@0.2.x +npm install @sandbox-agent/persist-rivet@0.3.x ``` ```ts @@ -90,7 +90,7 @@ export default actor({ Best for browser apps that should survive reloads. ```bash -npm install @sandbox-agent/persist-indexeddb@0.2.x +npm install @sandbox-agent/persist-indexeddb@0.3.x ``` ```ts @@ -112,7 +112,7 @@ const sdk = await SandboxAgent.connect({ Best for local/server Node apps that need durable storage without a DB server. ```bash -npm install @sandbox-agent/persist-sqlite@0.2.x +npm install @sandbox-agent/persist-sqlite@0.3.x ``` ```ts @@ -134,7 +134,7 @@ const sdk = await SandboxAgent.connect({ Use when you already run Postgres and want shared relational storage. ```bash -npm install @sandbox-agent/persist-postgres@0.2.x +npm install @sandbox-agent/persist-postgres@0.3.x ``` ```ts diff --git a/examples/boxlite-python/Dockerfile b/examples/boxlite-python/Dockerfile index 4564417..3630511 100644 --- a/examples/boxlite-python/Dockerfile +++ b/examples/boxlite-python/Dockerfile @@ -1,5 +1,5 @@ FROM node:22-bookworm-slim RUN apt-get update && apt-get install -y curl ca-certificates && rm -rf /var/lib/apt/lists/* -RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh +RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh RUN sandbox-agent install-agent claude RUN sandbox-agent install-agent codex diff --git a/examples/boxlite/Dockerfile b/examples/boxlite/Dockerfile index 4564417..3630511 100644 --- a/examples/boxlite/Dockerfile +++ b/examples/boxlite/Dockerfile @@ -1,5 +1,5 @@ FROM node:22-bookworm-slim RUN apt-get update && apt-get install -y curl ca-certificates && rm -rf /var/lib/apt/lists/* -RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh +RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh RUN sandbox-agent install-agent claude RUN sandbox-agent install-agent codex diff --git a/examples/cloudflare/Dockerfile b/examples/cloudflare/Dockerfile index 17ddb78..d0796cb 100644 --- a/examples/cloudflare/Dockerfile +++ b/examples/cloudflare/Dockerfile @@ -1,7 +1,7 @@ FROM cloudflare/sandbox:0.7.0 # Install sandbox-agent -RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh +RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh # Pre-install agents RUN sandbox-agent install-agent claude && \ diff --git a/examples/daytona/src/daytona-with-snapshot.ts b/examples/daytona/src/daytona-with-snapshot.ts index d6900df..2f6ac45 100644 --- a/examples/daytona/src/daytona-with-snapshot.ts +++ b/examples/daytona/src/daytona-with-snapshot.ts @@ -13,7 +13,7 @@ if (process.env.OPENAI_API_KEY) // Build a custom image with sandbox-agent pre-installed (slower first run, faster subsequent runs) const image = Image.base("ubuntu:22.04").runCommands( "apt-get update && apt-get install -y curl ca-certificates", - "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh", + "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh", ); console.log("Creating Daytona sandbox (first run builds the base image and may take a few minutes, subsequent runs are fast)..."); diff --git a/examples/daytona/src/index.ts b/examples/daytona/src/index.ts index bbf9d6e..2982d13 100644 --- a/examples/daytona/src/index.ts +++ b/examples/daytona/src/index.ts @@ -17,7 +17,7 @@ const sandbox = await daytona.create({ envVars, autoStopInterval: 0 }); // Install sandbox-agent and start server console.log("Installing sandbox-agent..."); await sandbox.process.executeCommand( - "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh", + "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh", ); console.log("Installing agents..."); diff --git a/examples/docker/src/index.ts b/examples/docker/src/index.ts index 593ef31..6890a1e 100644 --- a/examples/docker/src/index.ts +++ b/examples/docker/src/index.ts @@ -34,7 +34,7 @@ const container = await docker.createContainer({ "apt-get update", "DEBIAN_FRONTEND=noninteractive apt-get install -y curl ca-certificates bash libstdc++6", "rm -rf /var/lib/apt/lists/*", - "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh", + "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh", `sandbox-agent server --no-token --host 0.0.0.0 --port ${PORT}`, ].join(" && ")], Env: [ diff --git a/examples/e2b/src/index.ts b/examples/e2b/src/index.ts index b02f239..7dd2882 100644 --- a/examples/e2b/src/index.ts +++ b/examples/e2b/src/index.ts @@ -16,7 +16,7 @@ const run = async (cmd: string) => { }; console.log("Installing sandbox-agent..."); -await run("curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh"); +await run("curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh"); console.log("Installing agents..."); await run("sandbox-agent install-agent claude"); diff --git a/examples/shared/Dockerfile.dev b/examples/shared/Dockerfile.dev index cac363d..53a9922 100644 --- a/examples/shared/Dockerfile.dev +++ b/examples/shared/Dockerfile.dev @@ -11,6 +11,7 @@ COPY sdks/typescript/ sdks/typescript/ COPY sdks/acp-http-client/ sdks/acp-http-client/ COPY sdks/cli-shared/ sdks/cli-shared/ COPY sdks/persist-indexeddb/ sdks/persist-indexeddb/ +COPY sdks/react/ sdks/react/ COPY frontend/packages/inspector/ frontend/packages/inspector/ COPY docs/openapi.json docs/ diff --git a/examples/vercel/src/index.ts b/examples/vercel/src/index.ts index 258fbe4..4a63bfc 100644 --- a/examples/vercel/src/index.ts +++ b/examples/vercel/src/index.ts @@ -22,7 +22,7 @@ const run = async (cmd: string, args: string[] = []) => { }; console.log("Installing sandbox-agent..."); -await run("sh", ["-c", "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh"]); +await run("sh", ["-c", "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh"]); console.log("Installing agents..."); await run("sandbox-agent", ["install-agent", "claude"]); diff --git a/frontend/packages/inspector/Dockerfile b/frontend/packages/inspector/Dockerfile index e57acf2..dff28db 100644 --- a/frontend/packages/inspector/Dockerfile +++ b/frontend/packages/inspector/Dockerfile @@ -9,6 +9,7 @@ COPY sdks/typescript/package.json ./sdks/typescript/ COPY sdks/cli-shared/package.json ./sdks/cli-shared/ COPY sdks/acp-http-client/package.json ./sdks/acp-http-client/ COPY sdks/persist-indexeddb/package.json ./sdks/persist-indexeddb/ +COPY sdks/react/package.json ./sdks/react/ # Install dependencies RUN pnpm install --filter @sandbox-agent/inspector... @@ -29,6 +30,10 @@ RUN cd sdks/typescript && pnpm exec tsup COPY sdks/persist-indexeddb ./sdks/persist-indexeddb RUN cd sdks/persist-indexeddb && pnpm exec tsup +# Copy react and build (depends on SDK) +COPY sdks/react ./sdks/react +RUN cd sdks/react && pnpm exec tsup + # Copy inspector source COPY frontend/packages/inspector ./frontend/packages/inspector diff --git a/frontend/packages/website/src/components/GetStarted.tsx b/frontend/packages/website/src/components/GetStarted.tsx index 63018e8..150c07e 100644 --- a/frontend/packages/website/src/components/GetStarted.tsx +++ b/frontend/packages/website/src/components/GetStarted.tsx @@ -87,7 +87,7 @@ function SdkCodeHighlighted() { ); } -const sandboxCommand = `curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh`; +const sandboxCommand = `curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh`; const sourceCommands = `git clone https://github.com/rivet-dev/sandbox-agent cd sandbox-agent @@ -180,7 +180,7 @@ export function GetStarted() { curl -fsSL \ {"\n"} {" "} - https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh + https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh diff --git a/scripts/release/sdk.ts b/scripts/release/sdk.ts index 1342978..f2b8679 100644 --- a/scripts/release/sdk.ts +++ b/scripts/release/sdk.ts @@ -302,8 +302,16 @@ export async function publishNpmLibraries(opts: ReleaseOpts) { } console.log(`==> Publishing to NPM: ${pkg.name}@${opts.version}`); - await $({ stdio: "inherit", cwd: pkg.dir })`pnpm publish --access public --tag ${tag} --no-git-checks`; - console.log(`✅ Published ${pkg.name}@${opts.version}`); + try { + await $({ stdio: "inherit", cwd: pkg.dir })`pnpm publish --access public --tag ${tag} --no-git-checks`; + console.log(`✅ Published ${pkg.name}@${opts.version}`); + } catch (err: any) { + if (err.stderr?.includes("You cannot publish over the previously published versions") || err.stderr?.includes("403")) { + console.log(`⚠️ ${pkg.name}@${opts.version} already published (npm registry). Skipping.`); + } else { + throw err; + } + } } console.log("✅ All library packages published"); @@ -384,9 +392,13 @@ export async function publishNpmCli(opts: ReleaseOpts) { cwd: pkg.dir, })`pnpm publish --access public --tag ${tag} --no-git-checks`; console.log(`✅ Published ${pkg.name}@${opts.version}`); - } catch (err) { - console.error(`❌ Failed to publish ${pkg.name}`); - throw err; + } catch (err: any) { + if (err.stderr?.includes("You cannot publish over the previously published versions") || err.stderr?.includes("403")) { + console.log(`⚠️ ${pkg.name}@${opts.version} already published (npm registry). Skipping.`); + } else { + console.error(`❌ Failed to publish ${pkg.name}`); + throw err; + } } } diff --git a/scripts/sandbox-testing/test-sandbox.ts b/scripts/sandbox-testing/test-sandbox.ts index a19224e..f85dbad 100644 --- a/scripts/sandbox-testing/test-sandbox.ts +++ b/scripts/sandbox-testing/test-sandbox.ts @@ -322,7 +322,7 @@ async function installSandboxAgent(sandbox: Sandbox, binaryPath: string): Promis if (binaryPath === "RELEASE") { log.info("Installing from releases.rivet.dev..."); const result = await sandbox.exec( - "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh", + "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh | sh", ); log.debug(`Install output: ${result.stdout}`); if (result.exitCode !== 0) {