Commit graph

41 commits

Author SHA1 Message Date
Nathan Flurry
688f8f45ad feat: add filesystem service and opencode file endpoints 2026-02-05 11:41:05 -08:00
Nathan Flurry
ef3e811c94
feat: add opencode compatibility layer (#68) 2026-02-04 13:43:05 -08:00
Nathan Flurry
24de9e686c
i need to update the terminology of 'capabilities' to 'feature coverage' in the inspector ui and anywhere else its mentioned thats not in the actual api (#61) 2026-02-02 19:00:35 -08:00
Nathan Flurry
553f249836
fix: add postinstall chmod for npm binary permissions (#43)
* fix: add postinstall chmod for npm binary permissions

* fix: report npm package version instead of compiled binary version

The --version flag now reports the version from package.json instead of the
version compiled into the Rust binary. This ensures the version matches what
was installed via npm, even when binaries are reused from previous releases.

* fix: bake version into binary at build time

Instead of hacking around the version in the Node.js wrapper script,
properly pass the version at build time via SANDBOX_AGENT_VERSION env var.

Changes:
- build.rs: Generate version.rs with VERSION constant from env var
- main.rs: Use generated version constant for clap --version
- Dockerfiles: Accept SANDBOX_AGENT_VERSION as build arg
- build.sh: Pass version as second argument to Docker builds
- release.yaml: Pass version to build script during CI
- Remove version hack from sdks/cli/bin/sandbox-agent wrapper

The version is now baked into the binary during the release build,
ensuring --version reports the correct npm package version.
2026-02-02 00:45:31 -08:00
Nathan Flurry
e3c030f66d
fix: correct inspector package name in Dockerfiles and add .dockerignore (#50)
* chore: remove inspect.sandboxagent.dev in favor of /ui/

* chore: add 404 page

* fix: correct inspector package name in Dockerfiles and add .dockerignore

- Change @anthropic-ai/sdk-inspector to @sandbox-agent/inspector in all Dockerfiles
- Add .dockerignore to exclude target/, node_modules/, etc from Docker context

The wrong package name caused pnpm install --filter to match nothing, so the
inspector frontend was never built, resulting in binaries without the /ui/ endpoint.

* chore: cargo fmt

* chore(release): update version to 0.1.4-rc.7
2026-02-01 23:03:51 -08:00
Nathan Flurry
a25991b00e
feat: show help with docs link when no command provided (#38) 2026-01-30 00:01:24 -08:00
Nathan Flurry
fdad5fb30a
feat: add default root route with server info (#36) 2026-01-29 23:57:11 -08:00
Nathan Flurry
7475760bee fix: add read_stderr stub to Windows AgentServerLogs 2026-01-29 07:51:11 -08:00
Nathan Flurry
bfd2a80bf1 fix: add StderrOutput to OpenAPI schema 2026-01-29 07:22:25 -08:00
Nathan Flurry
0ee60920c8
feat: add Claude adapter improvements for HITL support (#30)
* feat: add Claude adapter improvements for HITL support

- Add question and permission handling for Claude sessions
- Add Claude sender channel for interactive communication
- Add stream event and control request handling
- Update agent compatibility documentation

* fix: restore Claude HITL streaming input and permission handling

- Add streaming_input field to SpawnOptions for Claude stdin streaming
- Enable --input-format stream-json, --permission-prompt-tool stdio flags
- Pipe stdin for Claude (not just Codex) in spawn_streaming
- Update Claude capabilities: permissions, questions, tool_calls, tool_results, streaming_deltas
- Fix permission mode normalization to respect user's choice instead of forcing bypass
- Add acceptEdits permission mode support
- Add libc dependency for is_running_as_root check
2026-01-29 07:19:10 -08:00
Nathan Flurry
c7d6482fd4
feat: add structured stderr output for error diagnostics (#29)
Add StderrOutput schema with head/tail/truncated/total_lines fields to
provide better error diagnostics when agent processes fail.
2026-01-29 07:18:56 -08:00
Nathan Flurry
8acb2bb078 feat: enable inspector CORS by default
- Enable CORS for https://inspect.sandboxagent.dev by default
- Add --no-inspector-cors flag to opt out
- Additional --cors-allow-origin flags are now cumulative with inspector
- Inspector now tries current origin first before localhost:2468 fallback
2026-01-28 05:12:16 -08:00
Nathan Flurry
08d299a3ef
docs: documentation overhaul and universal schema reference (#10)
* remove website .astro

* fix default origin

* docs: comprehensive documentation overhaul

- Add quickstart with multi-platform examples (E2B, Daytona, Docker, local)
- Add environment variables setup with platform-specific tabs
- Add Python SDK page (coming soon)
- Add local deployment guide
- Update E2B/Daytona/Docker guides with TypeScript examples
- Configure OpenAPI auto-generation for API reference
- Add CORS configuration guide
- Update manage-sessions with Rivet Actors examples
- Fix SDK method names and URLs throughout
- Add icons to main documentation pages
- Remove outdated universal-api and http-api pages

* docs: add universal schema and agent compatibility docs

- Create universal-schema.mdx with full event/item schema reference
- Create agent-compatibility.mdx mirroring README feature matrix
- Rename glossary.md to universal-schema.mdx
- Update CLAUDE.md with sync requirements for new docs
- Add links in README to building-chat-ui, manage-sessions, universal-schema
- Fix CLI docs link (rivet.dev -> sandboxagent.dev)

* docs: add inspector page and daytona network limits warning
2026-01-28 05:07:15 -08:00
Nathan Flurry
cbd36eeca8 fix: detect musl/glibc at runtime for correct Claude binary download
Previously used cfg!(target_env = "musl") which checks compile-time,
causing musl-compiled sandbox-agent to always download musl binaries
even on glibc systems like Debian/E2B.

Now checks for /lib/ld-musl-*.so.1 at runtime to detect the actual
system libc and download the correct Claude binary variant.
2026-01-28 04:19:35 -08:00
Nathan Flurry
8a91b8e9aa feat: move api cli commands under api subcommand 2026-01-28 01:11:57 -08:00
Nathan Flurry
6d6f6d0272 refactor: split examples into separate packages and update Claude plan mode
- Restructure examples into individual packages per provider (daytona, docker, e2b, vercel) with shared utilities in @sandbox-agent/example-shared
- Make Claude plan mode prompt-only (no longer requires permissionMode=plan)
- Claude now defaults to bypass permission mode
- Add agent_file_edit_flow test for file editing capabilities
- Fix Daytona file permission setting to use executeCommand
2026-01-27 22:50:31 -08:00
Nathan Flurry
50b5289e47 feat: show mock agent hint bubble in empty state 2026-01-27 21:32:56 -08:00
Nathan Flurry
53a06becb1 fix: separate claude turns by item 2026-01-27 21:01:51 -08:00
Nathan Flurry
d30ddc24f2 fix: remove copy icon, reduce padding, reposition badges in dropdown 2026-01-27 20:42:45 -08:00
Nathan Flurry
6f6a5ba04d fix: make agent badges subtle, position next to name, widen dropdown 2026-01-27 20:40:02 -08:00
Nathan Flurry
f452b46b94 fix: add description and repository fields to all crate Cargo.toml files 2026-01-27 20:32:09 -08:00
Nathan Flurry
f2c060903f feat: add copy button to events tab to copy all events as JSON 2026-01-27 20:31:38 -08:00
Nathan Flurry
665ace5e16 fix: make Docker image validation optional in release validation 2026-01-27 20:16:25 -08:00
Nathan Flurry
308d7f279c test: update snapshots and test gating 2026-01-27 19:49:03 -08:00
Nathan Flurry
b49776145b fix: add docker-setup action, runtime Dockerfile, and align release workflow
- Add .github/actions/docker-setup composite action (from rivet)
- Add docker/runtime/Dockerfile for Docker image builds
- Update release.yaml to match rivet patterns:
  - Use corepack enable instead of pnpm/action-setup
  - Add reuse_engine_version input
  - Add Docker job with Depot runners
  - Use --no-frozen-lockfile for pnpm install
  - Add id-token permission for setup job
2026-01-27 19:29:54 -08:00
Nathan Flurry
f67b6fc4b1 wip inspector 2026-01-27 19:26:13 -08:00
Nathan Flurry
7a5bb2b8b0 fix: add agent_server_logs module import to lib.rs 2026-01-27 17:24:42 -08:00
Nathan Flurry
be7aecb362 fix: add missing agent_server_logs module 2026-01-27 17:21:27 -08:00
Nathan Flurry
d5e2a27a5f fix: add ServerStatus and ServerStatusInfo to OpenAPI schemas 2026-01-27 17:16:55 -08:00
Nathan Flurry
29b159ca20 wip 2026-01-27 13:56:09 -08:00
Nathan Flurry
34d4f3693e feat: add turn streaming and inspector updates 2026-01-27 06:18:43 -08:00
Nathan Flurry
bf58891edf chore: sync workspace changes 2026-01-27 05:06:33 -08:00
Nathan Flurry
d24f983e2c feat: add mock server mode for UI testing 2026-01-27 03:42:41 -08:00
Nathan Flurry
f5d1a6383d feat: sync universal schema and sdk updates 2026-01-27 02:52:25 -08:00
Nathan Flurry
4083baa1c1 chore: sync workspace changes 2026-01-26 22:29:10 -08:00
Nathan Flurry
4b5b390b7f feat: migrate codex app server 2026-01-26 21:50:37 -08:00
Nathan Flurry
c91595d338 fix: normalize claude system events and refresh tests 2026-01-26 20:44:58 -08:00
Nathan Flurry
fdeef51f9c fix: skip OpenCode event streaming tests due to bun plugin hang
OpenCode's embedded bun hangs indefinitely when trying to install the
@gitlab/opencode-gitlab-auth plugin with --force, blocking all SSE
event streaming. Skip OpenCode in http_events_snapshots,
sse_events_snapshots, and concurrency_snapshots tests until the
upstream issue is resolved.

The basic API endpoint tests (install, modes, sessions) still work
for OpenCode.
2026-01-26 03:31:45 -08:00
Nathan Flurry
cab9935bd2 fix: improve test compatibility for OpenCode and OAuth credentials
- Add test_permission_mode() helper to use "default" for OpenCode
  (it only supports default, not bypass or plan modes)
- Fix OAuth health check to accept 403 "Missing scopes" as valid auth
  (OAuth tokens may lack api.model.read scope but still work for agents)
- Skip OpenCode in approval_flow_snapshots (doesn't support plan mode)
- Make sessions_list_global snapshot agent-agnostic (just check count)
- Add new snapshots for Codex and OpenCode agents
2026-01-26 02:51:45 -08:00
Nathan Flurry
011ca27287 feat: expand api snapshots and schema tooling 2026-01-26 00:13:17 -08:00
Nathan Flurry
71ab40388c refactor: rename engine/ to server/ 2026-01-25 14:14:58 -08:00