chore(release): update version to 0.4.1-rc.1

This commit is contained in:
Nathan Flurry 2026-03-16 15:49:16 -07:00
parent 9ce71c03c8
commit 167712ace7
28 changed files with 116 additions and 326 deletions

View file

@ -4,7 +4,7 @@ members = ["server/packages/*", "gigacode"]
exclude = ["factory/packages/desktop/src-tauri", "foundry/packages/desktop/src-tauri"] exclude = ["factory/packages/desktop/src-tauri", "foundry/packages/desktop/src-tauri"]
[workspace.package] [workspace.package]
version = "0.4.0" version = "0.4.1-rc.1"
edition = "2021" edition = "2021"
authors = [ "Rivet Gaming, LLC <developer@rivet.gg>" ] authors = [ "Rivet Gaming, LLC <developer@rivet.gg>" ]
license = "Apache-2.0" license = "Apache-2.0"
@ -13,13 +13,13 @@ description = "Universal API for automatic coding agents in sandboxes. Supports
[workspace.dependencies] [workspace.dependencies]
# Internal crates # Internal crates
sandbox-agent = { version = "0.4.0", path = "server/packages/sandbox-agent" } sandbox-agent = { version = "0.4.1-rc.1", path = "server/packages/sandbox-agent" }
sandbox-agent-error = { version = "0.4.0", path = "server/packages/error" } sandbox-agent-error = { version = "0.4.1-rc.1", path = "server/packages/error" }
sandbox-agent-agent-management = { version = "0.4.0", path = "server/packages/agent-management" } sandbox-agent-agent-management = { version = "0.4.1-rc.1", path = "server/packages/agent-management" }
sandbox-agent-agent-credentials = { version = "0.4.0", path = "server/packages/agent-credentials" } sandbox-agent-agent-credentials = { version = "0.4.1-rc.1", path = "server/packages/agent-credentials" }
sandbox-agent-opencode-adapter = { version = "0.4.0", path = "server/packages/opencode-adapter" } sandbox-agent-opencode-adapter = { version = "0.4.1-rc.1", path = "server/packages/opencode-adapter" }
sandbox-agent-opencode-server-manager = { version = "0.4.0", path = "server/packages/opencode-server-manager" } sandbox-agent-opencode-server-manager = { version = "0.4.1-rc.1", path = "server/packages/opencode-server-manager" }
acp-http-adapter = { version = "0.4.0", path = "server/packages/acp-http-adapter" } acp-http-adapter = { version = "0.4.1-rc.1", path = "server/packages/acp-http-adapter" }
# Serialization # Serialization
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }

View file

@ -56,7 +56,7 @@ Agents are installed lazily on first use. To avoid the cold-start delay, pre-ins
sandbox-agent install-agent --all sandbox-agent install-agent --all
``` ```
The `rivetdev/sandbox-agent:0.4.0-full` Docker image ships with all agents pre-installed. The `rivetdev/sandbox-agent:0.4.1-rc.1-full` Docker image ships with all agents pre-installed.
## Production-ready agent orchestration ## Production-ready agent orchestration

View file

@ -44,7 +44,7 @@ try {
} }
``` ```
The `daytona` provider uses the `rivetdev/sandbox-agent:0.4.0-full` image by default and starts the server automatically. The `daytona` provider uses the `rivetdev/sandbox-agent:0.4.1-rc.1-full` image by default and starts the server automatically.
## Using snapshots for faster startup ## Using snapshots for faster startup

View file

@ -15,11 +15,11 @@ Run the published full image with all supported agents pre-installed:
docker run --rm -p 3000:3000 \ docker run --rm -p 3000:3000 \
-e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \ -e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
-e OPENAI_API_KEY="$OPENAI_API_KEY" \ -e OPENAI_API_KEY="$OPENAI_API_KEY" \
rivetdev/sandbox-agent:0.4.0-full \ rivetdev/sandbox-agent:0.4.1-rc.1-full \
server --no-token --host 0.0.0.0 --port 3000 server --no-token --host 0.0.0.0 --port 3000
``` ```
The `0.4.0-full` tag pins the exact version. The moving `full` tag is also published for contributors who want the latest full image. The `0.4.1-rc.1-full` tag pins the exact version. The moving `full` tag is also published for contributors who want the latest full image.
## TypeScript with the Docker provider ## TypeScript with the Docker provider
@ -48,7 +48,7 @@ try {
} }
``` ```
The `docker` provider uses the `rivetdev/sandbox-agent:0.4.0-full` image by default. Override with `image`: The `docker` provider uses the `rivetdev/sandbox-agent:0.4.1-rc.1-full` image by default. Override with `image`:
```typescript ```typescript
docker({ image: "my-custom-image:latest" }) docker({ image: "my-custom-image:latest" })

View file

@ -10,7 +10,7 @@
"license": { "license": {
"name": "Apache-2.0" "name": "Apache-2.0"
}, },
"version": "0.4.0" "version": "0.4.1-rc.1"
}, },
"servers": [ "servers": [
{ {
@ -20,9 +20,7 @@
"paths": { "paths": {
"/v1/acp": { "/v1/acp": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_acp_servers", "operationId": "get_v1_acp_servers",
"responses": { "responses": {
"200": { "200": {
@ -40,9 +38,7 @@
}, },
"/v1/acp/{server_id}": { "/v1/acp/{server_id}": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_acp", "operationId": "get_v1_acp",
"parameters": [ "parameters": [
{ {
@ -92,9 +88,7 @@
} }
}, },
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "post_v1_acp", "operationId": "post_v1_acp",
"parameters": [ "parameters": [
{ {
@ -204,9 +198,7 @@
} }
}, },
"delete": { "delete": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "delete_v1_acp", "operationId": "delete_v1_acp",
"parameters": [ "parameters": [
{ {
@ -228,9 +220,7 @@
}, },
"/v1/agents": { "/v1/agents": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_agents", "operationId": "get_v1_agents",
"parameters": [ "parameters": [
{ {
@ -280,9 +270,7 @@
}, },
"/v1/agents/{agent}": { "/v1/agents/{agent}": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_agent", "operationId": "get_v1_agent",
"parameters": [ "parameters": [
{ {
@ -351,9 +339,7 @@
}, },
"/v1/agents/{agent}/install": { "/v1/agents/{agent}/install": {
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "post_v1_agent_install", "operationId": "post_v1_agent_install",
"parameters": [ "parameters": [
{ {
@ -412,9 +398,7 @@
}, },
"/v1/config/mcp": { "/v1/config/mcp": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_config_mcp", "operationId": "get_v1_config_mcp",
"parameters": [ "parameters": [
{ {
@ -460,9 +444,7 @@
} }
}, },
"put": { "put": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "put_v1_config_mcp", "operationId": "put_v1_config_mcp",
"parameters": [ "parameters": [
{ {
@ -501,9 +483,7 @@
} }
}, },
"delete": { "delete": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "delete_v1_config_mcp", "operationId": "delete_v1_config_mcp",
"parameters": [ "parameters": [
{ {
@ -534,9 +514,7 @@
}, },
"/v1/config/skills": { "/v1/config/skills": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_config_skills", "operationId": "get_v1_config_skills",
"parameters": [ "parameters": [
{ {
@ -582,9 +560,7 @@
} }
}, },
"put": { "put": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "put_v1_config_skills", "operationId": "put_v1_config_skills",
"parameters": [ "parameters": [
{ {
@ -623,9 +599,7 @@
} }
}, },
"delete": { "delete": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "delete_v1_config_skills", "operationId": "delete_v1_config_skills",
"parameters": [ "parameters": [
{ {
@ -656,9 +630,7 @@
}, },
"/v1/fs/entries": { "/v1/fs/entries": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_fs_entries", "operationId": "get_v1_fs_entries",
"parameters": [ "parameters": [
{ {
@ -691,9 +663,7 @@
}, },
"/v1/fs/entry": { "/v1/fs/entry": {
"delete": { "delete": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "delete_v1_fs_entry", "operationId": "delete_v1_fs_entry",
"parameters": [ "parameters": [
{ {
@ -732,9 +702,7 @@
}, },
"/v1/fs/file": { "/v1/fs/file": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_fs_file", "operationId": "get_v1_fs_file",
"parameters": [ "parameters": [
{ {
@ -754,9 +722,7 @@
} }
}, },
"put": { "put": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "put_v1_fs_file", "operationId": "put_v1_fs_file",
"parameters": [ "parameters": [
{ {
@ -796,9 +762,7 @@
}, },
"/v1/fs/mkdir": { "/v1/fs/mkdir": {
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "post_v1_fs_mkdir", "operationId": "post_v1_fs_mkdir",
"parameters": [ "parameters": [
{ {
@ -827,9 +791,7 @@
}, },
"/v1/fs/move": { "/v1/fs/move": {
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "post_v1_fs_move", "operationId": "post_v1_fs_move",
"requestBody": { "requestBody": {
"content": { "content": {
@ -857,9 +819,7 @@
}, },
"/v1/fs/stat": { "/v1/fs/stat": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_fs_stat", "operationId": "get_v1_fs_stat",
"parameters": [ "parameters": [
{ {
@ -888,9 +848,7 @@
}, },
"/v1/fs/upload-batch": { "/v1/fs/upload-batch": {
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "post_v1_fs_upload_batch", "operationId": "post_v1_fs_upload_batch",
"parameters": [ "parameters": [
{ {
@ -931,9 +889,7 @@
}, },
"/v1/health": { "/v1/health": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"operationId": "get_v1_health", "operationId": "get_v1_health",
"responses": { "responses": {
"200": { "200": {
@ -951,9 +907,7 @@
}, },
"/v1/processes": { "/v1/processes": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "List all managed processes.", "summary": "List all managed processes.",
"description": "Returns a list of all processes (running and exited) currently tracked\nby the runtime, sorted by process ID.", "description": "Returns a list of all processes (running and exited) currently tracked\nby the runtime, sorted by process ID.",
"operationId": "get_v1_processes", "operationId": "get_v1_processes",
@ -981,9 +935,7 @@
} }
}, },
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Create a long-lived managed process.", "summary": "Create a long-lived managed process.",
"description": "Spawns a new process with the given command and arguments. Supports both\npipe-based and PTY (tty) modes. Returns the process descriptor on success.", "description": "Spawns a new process with the given command and arguments. Supports both\npipe-based and PTY (tty) modes. Returns the process descriptor on success.",
"operationId": "post_v1_processes", "operationId": "post_v1_processes",
@ -1043,9 +995,7 @@
}, },
"/v1/processes/config": { "/v1/processes/config": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Get process runtime configuration.", "summary": "Get process runtime configuration.",
"description": "Returns the current runtime configuration for the process management API,\nincluding limits for concurrency, timeouts, and buffer sizes.", "description": "Returns the current runtime configuration for the process management API,\nincluding limits for concurrency, timeouts, and buffer sizes.",
"operationId": "get_v1_processes_config", "operationId": "get_v1_processes_config",
@ -1073,9 +1023,7 @@
} }
}, },
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Update process runtime configuration.", "summary": "Update process runtime configuration.",
"description": "Replaces the runtime configuration for the process management API.\nValidates that all values are non-zero and clamps default timeout to max.", "description": "Replaces the runtime configuration for the process management API.\nValidates that all values are non-zero and clamps default timeout to max.",
"operationId": "post_v1_processes_config", "operationId": "post_v1_processes_config",
@ -1125,9 +1073,7 @@
}, },
"/v1/processes/run": { "/v1/processes/run": {
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Run a one-shot command.", "summary": "Run a one-shot command.",
"description": "Executes a command to completion and returns its stdout, stderr, exit code,\nand duration. Supports configurable timeout and output size limits.", "description": "Executes a command to completion and returns its stdout, stderr, exit code,\nand duration. Supports configurable timeout and output size limits.",
"operationId": "post_v1_processes_run", "operationId": "post_v1_processes_run",
@ -1177,9 +1123,7 @@
}, },
"/v1/processes/{id}": { "/v1/processes/{id}": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Get a single process by ID.", "summary": "Get a single process by ID.",
"description": "Returns the current state of a managed process including its status,\nPID, exit code, and creation/exit timestamps.", "description": "Returns the current state of a managed process including its status,\nPID, exit code, and creation/exit timestamps.",
"operationId": "get_v1_process", "operationId": "get_v1_process",
@ -1228,9 +1172,7 @@
} }
}, },
"delete": { "delete": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Delete a process record.", "summary": "Delete a process record.",
"description": "Removes a stopped process from the runtime. Returns 409 if the process\nis still running; stop or kill it first.", "description": "Removes a stopped process from the runtime. Returns 409 if the process\nis still running; stop or kill it first.",
"operationId": "delete_v1_process", "operationId": "delete_v1_process",
@ -1284,9 +1226,7 @@
}, },
"/v1/processes/{id}/input": { "/v1/processes/{id}/input": {
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Write input to a process.", "summary": "Write input to a process.",
"description": "Sends data to a process's stdin (pipe mode) or PTY writer (tty mode).\nData can be encoded as base64, utf8, or text. Returns 413 if the decoded\npayload exceeds the configured `maxInputBytesPerRequest` limit.", "description": "Sends data to a process's stdin (pipe mode) or PTY writer (tty mode).\nData can be encoded as base64, utf8, or text. Returns 413 if the decoded\npayload exceeds the configured `maxInputBytesPerRequest` limit.",
"operationId": "post_v1_process_input", "operationId": "post_v1_process_input",
@ -1367,9 +1307,7 @@
}, },
"/v1/processes/{id}/kill": { "/v1/processes/{id}/kill": {
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Send SIGKILL to a process.", "summary": "Send SIGKILL to a process.",
"description": "Sends SIGKILL to the process and optionally waits up to `waitMs`\nmilliseconds for the process to exit before returning.", "description": "Sends SIGKILL to the process and optionally waits up to `waitMs`\nmilliseconds for the process to exit before returning.",
"operationId": "post_v1_process_kill", "operationId": "post_v1_process_kill",
@ -1432,9 +1370,7 @@
}, },
"/v1/processes/{id}/logs": { "/v1/processes/{id}/logs": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Fetch process logs.", "summary": "Fetch process logs.",
"description": "Returns buffered log entries for a process. Supports filtering by stream\ntype, tail count, and sequence-based resumption. When `follow=true`,\nreturns an SSE stream that replays buffered entries then streams live output.", "description": "Returns buffered log entries for a process. Supports filtering by stream\ntype, tail count, and sequence-based resumption. When `follow=true`,\nreturns an SSE stream that replays buffered entries then streams live output.",
"operationId": "get_v1_process_logs", "operationId": "get_v1_process_logs",
@ -1532,9 +1468,7 @@
}, },
"/v1/processes/{id}/stop": { "/v1/processes/{id}/stop": {
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Send SIGTERM to a process.", "summary": "Send SIGTERM to a process.",
"description": "Sends SIGTERM to the process and optionally waits up to `waitMs`\nmilliseconds for the process to exit before returning.", "description": "Sends SIGTERM to the process and optionally waits up to `waitMs`\nmilliseconds for the process to exit before returning.",
"operationId": "post_v1_process_stop", "operationId": "post_v1_process_stop",
@ -1597,9 +1531,7 @@
}, },
"/v1/processes/{id}/terminal/resize": { "/v1/processes/{id}/terminal/resize": {
"post": { "post": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Resize a process terminal.", "summary": "Resize a process terminal.",
"description": "Sets the PTY window size (columns and rows) for a tty-mode process and\nsends SIGWINCH so the child process can adapt.", "description": "Sets the PTY window size (columns and rows) for a tty-mode process and\nsends SIGWINCH so the child process can adapt.",
"operationId": "post_v1_process_terminal_resize", "operationId": "post_v1_process_terminal_resize",
@ -1680,9 +1612,7 @@
}, },
"/v1/processes/{id}/terminal/ws": { "/v1/processes/{id}/terminal/ws": {
"get": { "get": {
"tags": [ "tags": ["v1"],
"v1"
],
"summary": "Open an interactive WebSocket terminal session.", "summary": "Open an interactive WebSocket terminal session.",
"description": "Upgrades the connection to a WebSocket for bidirectional PTY I/O. Accepts\n`access_token` query param for browser-based auth (WebSocket API cannot\nsend custom headers). Streams raw PTY output as binary frames and accepts\nJSON control frames for input, resize, and close.", "description": "Upgrades the connection to a WebSocket for bidirectional PTY I/O. Accepts\n`access_token` query param for browser-based auth (WebSocket API cannot\nsend custom headers). Streams raw PTY output as binary frames and accepts\nJSON control frames for input, resize, and close.",
"operationId": "get_v1_process_terminal_ws", "operationId": "get_v1_process_terminal_ws",
@ -1759,9 +1689,7 @@
"schemas": { "schemas": {
"AcpEnvelope": { "AcpEnvelope": {
"type": "object", "type": "object",
"required": [ "required": ["jsonrpc"],
"jsonrpc"
],
"properties": { "properties": {
"error": { "error": {
"nullable": true "nullable": true
@ -1795,11 +1723,7 @@
}, },
"AcpServerInfo": { "AcpServerInfo": {
"type": "object", "type": "object",
"required": [ "required": ["serverId", "agent", "createdAtMs"],
"serverId",
"agent",
"createdAtMs"
],
"properties": { "properties": {
"agent": { "agent": {
"type": "string" "type": "string"
@ -1815,9 +1739,7 @@
}, },
"AcpServerListResponse": { "AcpServerListResponse": {
"type": "object", "type": "object",
"required": [ "required": ["servers"],
"servers"
],
"properties": { "properties": {
"servers": { "servers": {
"type": "array", "type": "array",
@ -1908,12 +1830,7 @@
}, },
"AgentInfo": { "AgentInfo": {
"type": "object", "type": "object",
"required": [ "required": ["id", "installed", "credentialsAvailable", "capabilities"],
"id",
"installed",
"credentialsAvailable",
"capabilities"
],
"properties": { "properties": {
"capabilities": { "capabilities": {
"$ref": "#/components/schemas/AgentCapabilities" "$ref": "#/components/schemas/AgentCapabilities"
@ -1956,11 +1873,7 @@
}, },
"AgentInstallArtifact": { "AgentInstallArtifact": {
"type": "object", "type": "object",
"required": [ "required": ["kind", "path", "source"],
"kind",
"path",
"source"
],
"properties": { "properties": {
"kind": { "kind": {
"type": "string" "type": "string"
@ -1996,10 +1909,7 @@
}, },
"AgentInstallResponse": { "AgentInstallResponse": {
"type": "object", "type": "object",
"required": [ "required": ["already_installed", "artifacts"],
"already_installed",
"artifacts"
],
"properties": { "properties": {
"already_installed": { "already_installed": {
"type": "boolean" "type": "boolean"
@ -2014,9 +1924,7 @@
}, },
"AgentListResponse": { "AgentListResponse": {
"type": "object", "type": "object",
"required": [ "required": ["agents"],
"agents"
],
"properties": { "properties": {
"agents": { "agents": {
"type": "array", "type": "array",
@ -2049,9 +1957,7 @@
}, },
"FsActionResponse": { "FsActionResponse": {
"type": "object", "type": "object",
"required": [ "required": ["path"],
"path"
],
"properties": { "properties": {
"path": { "path": {
"type": "string" "type": "string"
@ -2060,9 +1966,7 @@
}, },
"FsDeleteQuery": { "FsDeleteQuery": {
"type": "object", "type": "object",
"required": [ "required": ["path"],
"path"
],
"properties": { "properties": {
"path": { "path": {
"type": "string" "type": "string"
@ -2084,12 +1988,7 @@
}, },
"FsEntry": { "FsEntry": {
"type": "object", "type": "object",
"required": [ "required": ["name", "path", "entryType", "size"],
"name",
"path",
"entryType",
"size"
],
"properties": { "properties": {
"entryType": { "entryType": {
"$ref": "#/components/schemas/FsEntryType" "$ref": "#/components/schemas/FsEntryType"
@ -2113,17 +2012,11 @@
}, },
"FsEntryType": { "FsEntryType": {
"type": "string", "type": "string",
"enum": [ "enum": ["file", "directory"]
"file",
"directory"
]
}, },
"FsMoveRequest": { "FsMoveRequest": {
"type": "object", "type": "object",
"required": [ "required": ["from", "to"],
"from",
"to"
],
"properties": { "properties": {
"from": { "from": {
"type": "string" "type": "string"
@ -2139,10 +2032,7 @@
}, },
"FsMoveResponse": { "FsMoveResponse": {
"type": "object", "type": "object",
"required": [ "required": ["from", "to"],
"from",
"to"
],
"properties": { "properties": {
"from": { "from": {
"type": "string" "type": "string"
@ -2154,9 +2044,7 @@
}, },
"FsPathQuery": { "FsPathQuery": {
"type": "object", "type": "object",
"required": [ "required": ["path"],
"path"
],
"properties": { "properties": {
"path": { "path": {
"type": "string" "type": "string"
@ -2165,11 +2053,7 @@
}, },
"FsStat": { "FsStat": {
"type": "object", "type": "object",
"required": [ "required": ["path", "entryType", "size"],
"path",
"entryType",
"size"
],
"properties": { "properties": {
"entryType": { "entryType": {
"$ref": "#/components/schemas/FsEntryType" "$ref": "#/components/schemas/FsEntryType"
@ -2199,10 +2083,7 @@
}, },
"FsUploadBatchResponse": { "FsUploadBatchResponse": {
"type": "object", "type": "object",
"required": [ "required": ["paths", "truncated"],
"paths",
"truncated"
],
"properties": { "properties": {
"paths": { "paths": {
"type": "array", "type": "array",
@ -2217,10 +2098,7 @@
}, },
"FsWriteResponse": { "FsWriteResponse": {
"type": "object", "type": "object",
"required": [ "required": ["path", "bytesWritten"],
"path",
"bytesWritten"
],
"properties": { "properties": {
"bytesWritten": { "bytesWritten": {
"type": "integer", "type": "integer",
@ -2234,9 +2112,7 @@
}, },
"HealthResponse": { "HealthResponse": {
"type": "object", "type": "object",
"required": [ "required": ["status"],
"status"
],
"properties": { "properties": {
"status": { "status": {
"type": "string" "type": "string"
@ -2245,10 +2121,7 @@
}, },
"McpConfigQuery": { "McpConfigQuery": {
"type": "object", "type": "object",
"required": [ "required": ["directory", "mcpName"],
"directory",
"mcpName"
],
"properties": { "properties": {
"directory": { "directory": {
"type": "string" "type": "string"
@ -2262,10 +2135,7 @@
"oneOf": [ "oneOf": [
{ {
"type": "object", "type": "object",
"required": [ "required": ["command", "type"],
"command",
"type"
],
"properties": { "properties": {
"args": { "args": {
"type": "array", "type": "array",
@ -2299,18 +2169,13 @@
}, },
"type": { "type": {
"type": "string", "type": "string",
"enum": [ "enum": ["local"]
"local"
]
} }
} }
}, },
{ {
"type": "object", "type": "object",
"required": [ "required": ["url", "type"],
"url",
"type"
],
"properties": { "properties": {
"bearerTokenEnvVar": { "bearerTokenEnvVar": {
"type": "string", "type": "string",
@ -2358,9 +2223,7 @@
}, },
"type": { "type": {
"type": "string", "type": "string",
"enum": [ "enum": ["remote"]
"remote"
]
}, },
"url": { "url": {
"type": "string" "type": "string"
@ -2374,11 +2237,7 @@
}, },
"ProblemDetails": { "ProblemDetails": {
"type": "object", "type": "object",
"required": [ "required": ["type", "title", "status"],
"type",
"title",
"status"
],
"properties": { "properties": {
"detail": { "detail": {
"type": "string", "type": "string",
@ -2404,14 +2263,7 @@
}, },
"ProcessConfig": { "ProcessConfig": {
"type": "object", "type": "object",
"required": [ "required": ["maxConcurrentProcesses", "defaultRunTimeoutMs", "maxRunTimeoutMs", "maxOutputBytes", "maxLogBytesPerProcess", "maxInputBytesPerRequest"],
"maxConcurrentProcesses",
"defaultRunTimeoutMs",
"maxRunTimeoutMs",
"maxOutputBytes",
"maxLogBytesPerProcess",
"maxInputBytesPerRequest"
],
"properties": { "properties": {
"defaultRunTimeoutMs": { "defaultRunTimeoutMs": {
"type": "integer", "type": "integer",
@ -2443,9 +2295,7 @@
}, },
"ProcessCreateRequest": { "ProcessCreateRequest": {
"type": "object", "type": "object",
"required": [ "required": ["command"],
"command"
],
"properties": { "properties": {
"args": { "args": {
"type": "array", "type": "array",
@ -2476,15 +2326,7 @@
}, },
"ProcessInfo": { "ProcessInfo": {
"type": "object", "type": "object",
"required": [ "required": ["id", "command", "args", "tty", "interactive", "status", "createdAtMs"],
"id",
"command",
"args",
"tty",
"interactive",
"status",
"createdAtMs"
],
"properties": { "properties": {
"args": { "args": {
"type": "array", "type": "array",
@ -2535,9 +2377,7 @@
}, },
"ProcessInputRequest": { "ProcessInputRequest": {
"type": "object", "type": "object",
"required": [ "required": ["data"],
"data"
],
"properties": { "properties": {
"data": { "data": {
"type": "string" "type": "string"
@ -2550,9 +2390,7 @@
}, },
"ProcessInputResponse": { "ProcessInputResponse": {
"type": "object", "type": "object",
"required": [ "required": ["bytesWritten"],
"bytesWritten"
],
"properties": { "properties": {
"bytesWritten": { "bytesWritten": {
"type": "integer", "type": "integer",
@ -2562,9 +2400,7 @@
}, },
"ProcessListResponse": { "ProcessListResponse": {
"type": "object", "type": "object",
"required": [ "required": ["processes"],
"processes"
],
"properties": { "properties": {
"processes": { "processes": {
"type": "array", "type": "array",
@ -2576,13 +2412,7 @@
}, },
"ProcessLogEntry": { "ProcessLogEntry": {
"type": "object", "type": "object",
"required": [ "required": ["sequence", "stream", "timestampMs", "data", "encoding"],
"sequence",
"stream",
"timestampMs",
"data",
"encoding"
],
"properties": { "properties": {
"data": { "data": {
"type": "string" "type": "string"
@ -2634,11 +2464,7 @@
}, },
"ProcessLogsResponse": { "ProcessLogsResponse": {
"type": "object", "type": "object",
"required": [ "required": ["processId", "stream", "entries"],
"processId",
"stream",
"entries"
],
"properties": { "properties": {
"entries": { "entries": {
"type": "array", "type": "array",
@ -2656,18 +2482,11 @@
}, },
"ProcessLogsStream": { "ProcessLogsStream": {
"type": "string", "type": "string",
"enum": [ "enum": ["stdout", "stderr", "combined", "pty"]
"stdout",
"stderr",
"combined",
"pty"
]
}, },
"ProcessRunRequest": { "ProcessRunRequest": {
"type": "object", "type": "object",
"required": [ "required": ["command"],
"command"
],
"properties": { "properties": {
"args": { "args": {
"type": "array", "type": "array",
@ -2703,14 +2522,7 @@
}, },
"ProcessRunResponse": { "ProcessRunResponse": {
"type": "object", "type": "object",
"required": [ "required": ["timedOut", "stdout", "stderr", "stdoutTruncated", "stderrTruncated", "durationMs"],
"timedOut",
"stdout",
"stderr",
"stdoutTruncated",
"stderrTruncated",
"durationMs"
],
"properties": { "properties": {
"durationMs": { "durationMs": {
"type": "integer", "type": "integer",
@ -2752,17 +2564,11 @@
}, },
"ProcessState": { "ProcessState": {
"type": "string", "type": "string",
"enum": [ "enum": ["running", "exited"]
"running",
"exited"
]
}, },
"ProcessTerminalResizeRequest": { "ProcessTerminalResizeRequest": {
"type": "object", "type": "object",
"required": [ "required": ["cols", "rows"],
"cols",
"rows"
],
"properties": { "properties": {
"cols": { "cols": {
"type": "integer", "type": "integer",
@ -2778,10 +2584,7 @@
}, },
"ProcessTerminalResizeResponse": { "ProcessTerminalResizeResponse": {
"type": "object", "type": "object",
"required": [ "required": ["cols", "rows"],
"cols",
"rows"
],
"properties": { "properties": {
"cols": { "cols": {
"type": "integer", "type": "integer",
@ -2797,16 +2600,11 @@
}, },
"ServerStatus": { "ServerStatus": {
"type": "string", "type": "string",
"enum": [ "enum": ["running", "stopped"]
"running",
"stopped"
]
}, },
"ServerStatusInfo": { "ServerStatusInfo": {
"type": "object", "type": "object",
"required": [ "required": ["status"],
"status"
],
"properties": { "properties": {
"status": { "status": {
"$ref": "#/components/schemas/ServerStatus" "$ref": "#/components/schemas/ServerStatus"
@ -2821,10 +2619,7 @@
}, },
"SkillSource": { "SkillSource": {
"type": "object", "type": "object",
"required": [ "required": ["type", "source"],
"type",
"source"
],
"properties": { "properties": {
"ref": { "ref": {
"type": "string", "type": "string",
@ -2851,9 +2646,7 @@
}, },
"SkillsConfig": { "SkillsConfig": {
"type": "object", "type": "object",
"required": [ "required": ["sources"],
"sources"
],
"properties": { "properties": {
"sources": { "sources": {
"type": "array", "type": "array",
@ -2865,10 +2658,7 @@
}, },
"SkillsConfigQuery": { "SkillsConfigQuery": {
"type": "object", "type": "object",
"required": [ "required": ["directory", "skillName"],
"directory",
"skillName"
],
"properties": { "properties": {
"directory": { "directory": {
"type": "string" "type": "string"

View file

@ -242,7 +242,7 @@ icon: "rocket"
docker run -p 2468:2468 \ docker run -p 2468:2468 \
-e ANTHROPIC_API_KEY="sk-ant-..." \ -e ANTHROPIC_API_KEY="sk-ant-..." \
-e OPENAI_API_KEY="sk-..." \ -e OPENAI_API_KEY="sk-..." \
rivetdev/sandbox-agent:0.4.0-full \ rivetdev/sandbox-agent:0.4.1-rc.1-full \
server --no-token --host 0.0.0.0 --port 2468 server --no-token --host 0.0.0.0 --port 2468
``` ```
</Tab> </Tab>

View file

@ -9,7 +9,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
const REPO_ROOT = path.resolve(__dirname, "..", "..", ".."); const REPO_ROOT = path.resolve(__dirname, "..", "..", "..");
/** Pre-built Docker image with all agents installed. */ /** Pre-built Docker image with all agents installed. */
export const FULL_IMAGE = "rivetdev/sandbox-agent:0.4.0-full"; export const FULL_IMAGE = "rivetdev/sandbox-agent:0.4.1-rc.1-full";
export interface DockerSandboxOptions { export interface DockerSandboxOptions {
/** Container port used by sandbox-agent inside Docker. */ /** Container port used by sandbox-agent inside Docker. */

View file

@ -1,6 +1,6 @@
{ {
"name": "acp-http-client", "name": "acp-http-client",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "Protocol-faithful ACP JSON-RPC over streamable HTTP client.", "description": "Protocol-faithful ACP JSON-RPC over streamable HTTP client.",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-shared", "name": "@sandbox-agent/cli-shared",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "Shared helpers for sandbox-agent CLI and SDK", "description": "Shared helpers for sandbox-agent CLI and SDK",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli", "name": "@sandbox-agent/cli",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "CLI for sandbox-agent - run AI coding agents in sandboxes", "description": "CLI for sandbox-agent - run AI coding agents in sandboxes",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-darwin-arm64", "name": "@sandbox-agent/cli-darwin-arm64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "sandbox-agent CLI binary for macOS ARM64", "description": "sandbox-agent CLI binary for macOS ARM64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-darwin-x64", "name": "@sandbox-agent/cli-darwin-x64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "sandbox-agent CLI binary for macOS x64", "description": "sandbox-agent CLI binary for macOS x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-linux-arm64", "name": "@sandbox-agent/cli-linux-arm64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "sandbox-agent CLI binary for Linux arm64", "description": "sandbox-agent CLI binary for Linux arm64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-linux-x64", "name": "@sandbox-agent/cli-linux-x64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "sandbox-agent CLI binary for Linux x64", "description": "sandbox-agent CLI binary for Linux x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-win32-x64", "name": "@sandbox-agent/cli-win32-x64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "sandbox-agent CLI binary for Windows x64", "description": "sandbox-agent CLI binary for Windows x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode", "name": "@sandbox-agent/gigacode",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "Gigacode CLI (sandbox-agent with OpenCode attach by default)", "description": "Gigacode CLI (sandbox-agent with OpenCode attach by default)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-darwin-arm64", "name": "@sandbox-agent/gigacode-darwin-arm64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "gigacode CLI binary for macOS arm64", "description": "gigacode CLI binary for macOS arm64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-darwin-x64", "name": "@sandbox-agent/gigacode-darwin-x64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "gigacode CLI binary for macOS x64", "description": "gigacode CLI binary for macOS x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-linux-arm64", "name": "@sandbox-agent/gigacode-linux-arm64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "gigacode CLI binary for Linux arm64", "description": "gigacode CLI binary for Linux arm64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-linux-x64", "name": "@sandbox-agent/gigacode-linux-x64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "gigacode CLI binary for Linux x64", "description": "gigacode CLI binary for Linux x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-win32-x64", "name": "@sandbox-agent/gigacode-win32-x64",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "gigacode CLI binary for Windows x64", "description": "gigacode CLI binary for Windows x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/persist-indexeddb", "name": "@sandbox-agent/persist-indexeddb",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "IndexedDB persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)", "description": "IndexedDB persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/persist-postgres", "name": "@sandbox-agent/persist-postgres",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "PostgreSQL persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)", "description": "PostgreSQL persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/persist-rivet", "name": "@sandbox-agent/persist-rivet",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "Rivet Actor persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)", "description": "Rivet Actor persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/persist-sqlite", "name": "@sandbox-agent/persist-sqlite",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "SQLite persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)", "description": "SQLite persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/react", "name": "@sandbox-agent/react",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "React components for Sandbox Agent frontend integrations", "description": "React components for Sandbox Agent frontend integrations",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "sandbox-agent", "name": "sandbox-agent",
"version": "0.4.0", "version": "0.4.1-rc.1",
"description": "Universal API for automatic coding agents in sandboxes. Supports Claude Code, Codex, OpenCode, and Amp.", "description": "Universal API for automatic coding agents in sandboxes. Supports Claude Code, Codex, OpenCode, and Amp.",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,4 +1,4 @@
export const DEFAULT_SANDBOX_AGENT_IMAGE = "rivetdev/sandbox-agent:0.4.0-full"; export const DEFAULT_SANDBOX_AGENT_IMAGE = "rivetdev/sandbox-agent:0.4.1-rc.1-full";
export const SANDBOX_AGENT_INSTALL_SCRIPT = "https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh"; export const SANDBOX_AGENT_INSTALL_SCRIPT = "https://releases.rivet.dev/sandbox-agent/0.3.x/install.sh";
export const DEFAULT_AGENTS = ["claude", "codex"] as const; export const DEFAULT_AGENTS = ["claude", "codex"] as const;