From 387ab0840dfe12df26f8271b52dd1c7e670fab63 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Thu, 29 Jan 2026 10:03:07 -0800 Subject: [PATCH] fix: update daytona example with correct install URL and timeout - Fix install URL from latest to 0.1.3 - Add 180s timeout for sandbox creation - Add autoStopInterval: 0 to prevent auto-stop - Add log message explaining first run may be slow --- examples/daytona/src/daytona.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/examples/daytona/src/daytona.ts b/examples/daytona/src/daytona.ts index effb6a6..cc05637 100644 --- a/examples/daytona/src/daytona.ts +++ b/examples/daytona/src/daytona.ts @@ -4,15 +4,18 @@ import { logInspectorUrl, runPrompt } from "@sandbox-agent/example-shared"; const daytona = new Daytona(); const envVars: Record = {}; -if (process.env.ANTHROPIC_API_KEY) envVars.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY; -if (process.env.OPENAI_API_KEY) envVars.OPENAI_API_KEY = process.env.OPENAI_API_KEY; +if (process.env.ANTHROPIC_API_KEY) + envVars.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY; +if (process.env.OPENAI_API_KEY) + envVars.OPENAI_API_KEY = process.env.OPENAI_API_KEY; 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/latest/install.sh | sh", + "curl -fsSL https://releases.rivet.dev/sandbox-agent/0.1.3/install.sh | sh", ); -const sandbox = await daytona.create({ envVars, image }); +console.log("Creating Daytona sandbox (first run builds the base image and may take a few minutes, subsequent runs are fast)..."); +const sandbox = await daytona.create({ envVars, image, autoStopInterval: 0 }, { timeout: 180 }); await sandbox.process.executeCommand( "nohup sandbox-agent server --no-token --host 0.0.0.0 --port 3000 >/tmp/sandbox-agent.log 2>&1 &", @@ -28,8 +31,7 @@ const cleanup = async () => { process.once("SIGINT", cleanup); process.once("SIGTERM", cleanup); -// When running as root in a container, Claude requires interactive permission prompts -// (bypass mode is not supported). Set autoApprovePermissions: true to auto-approve, +// When running as root in a container, Claude requires interactive permission prompts (bypass mode is not supported). Set autoApprovePermissions: true to auto-approve, // or leave false for interactive prompts. await runPrompt({ baseUrl,