feat(sandbox): add CoreWeave Sandbox (cwsandbox) provider - #1
Closed
brandonrjacobs wants to merge 1 commit into
Closed
feat(sandbox): add CoreWeave Sandbox (cwsandbox) provider#1brandonrjacobs wants to merge 1 commit into
brandonrjacobs wants to merge 1 commit into
Conversation
brandonrjacobs
force-pushed
the
feat/cwsandbox-provider
branch
4 times, most recently
from
June 14, 2026 22:50
8de3224 to
bc83afc
Compare
Add CoreWeave Sandbox (aviato) as a sandbox provider alongside Modal and
Daytona. CWSandboxLauncher wraps the official `cwsandbox` Python SDK as an
optional, lazily-imported extra (`omnigent[cwsandbox]`), supporting both
server-managed hosts (`sandbox.provider: cwsandbox`) and the CLI bootstrap.
- omnigent/onboarding/sandboxes/cwsandbox.py: the launcher
- register in the provider table + server managed-host YAML config
- pyproject: `cwsandbox` extra + mypy override; uv.lock pins cwsandbox 0.26.0
(per-package cooldown exemption in uv.toml, since the SDK is first-party)
- tests + deploy/cwsandbox/{README,smoke_test,e2e_managed}
The managed launch-token TTL is derived from OMNIGENT_CWSANDBOX_MAX_LIFETIME_S
so it always outlives the (operator-overridable) sandbox lifetime. The e2e
driver runs a real agent LLM turn inside a managed sandbox; it can target an
existing server (--server) or spin one up in a CW sandbox with a public
service, and only tears down the child sandboxes it created. Validated
end-to-end against api.cwsandbox.com.
brandonrjacobs
force-pushed
the
feat/cwsandbox-provider
branch
from
June 14, 2026 23:29
bc83afc to
3000d5f
Compare
Owner
Author
|
Superseded by the upstream PR omnigent-ai#76 (same branch). Closing this fork-internal review PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds CoreWeave Sandbox (https://www.cwsandbox.com) as a sandbox provider,
alongside Modal and Daytona.
CWSandboxLauncherwraps the officialcwsandboxPython SDK as anoptional, lazily-imported extra (
omnigent[cwsandbox]) — same posture as theexisting modal/daytona launchers.
Supports both server-managed hosts (
sandbox.provider: cwsandbox) and theCLI bootstrap (
omnigent sandbox create --provider cwsandbox). The onlyunsupported primitive is
forward_local_port(CW Sandbox has no local→sandboxpath), which is irrelevant here — managed hosts authenticate with a
server-minted launch token, not the Databricks App OAuth flow.
Changes
omnigent/onboarding/sandboxes/cwsandbox.py— the launcher (provision / run /put / terminate + streaming exec/foreground).
cwsandboxin the provider table and the server managed-host YAMLconfig (
SUPPORTED_SANDBOX_PROVIDERS,PROVIDERS_WITH_MANAGED_LAUNCH,factory + config parsers + token TTL).
pyproject.toml:cwsandboxextra + mypy override.httpx-free, fake SDK viasys.modules).deploy/cwsandbox/: README, a zero-dependency API smoke test, and a managede2e driver.
Validation
Exercised end-to-end against production
api.cwsandbox.com:terminate, all pass.
ingress), created a managed session, and the server provisioned a child CW
sandbox running
omnigent hostthat dialed back and registered.openai-agentsharness against an OpenAI-compatible CoreWeave inference endpoint) inside the
managed sandbox and returned a correct answer.
Unit tests +
ruff+mypyall green.Notes for reviewers
_ensure_sdk()in__init__is a deliberate workaround: the cwsandboxSDK installs signal handlers at import time, which raises when imported in a
worker thread (the managed flow calls
prepare()/provision()viaasyncio.to_thread). Importing at construction (main thread) sidesteps it.Removable once Import time signal handler install crashes from non-main threads such as marimo coreweave/cwsandbox-client#136 (PR perf(e2e_ui): round-robin shard split to balance CI wall-clock omnigent-ai/omnigent#138) ships.
cwsandbox>=0.26,<1;uv.toml'sexclude-newermay need abump for CI to resolve it.
Testing