update boxd sandbox blueprint for @boxd-sh/sdk 0.2 - #642
Closed
MichielMAnalytics wants to merge 1 commit into
Closed
update boxd sandbox blueprint for @boxd-sh/sdk 0.2#642MichielMAnalytics wants to merge 1 commit into
MichielMAnalytics wants to merge 1 commit into
Conversation
@boxd-sh/sdk 0.2 replaced the 0.1.x handle-based API: the client is now
Boxd (was Compute), the Box handle is gone in favor of a flat machines
namespace whose methods take the machine id, file transfer moved to
machines.files.download/upload, and the exec timeout option was renamed
from timeoutMs to timeout. Bumps the blueprint to version 2 with the
adapter rewritten against the new API, a cumulative Upgrade Guide entry
carrying the full v1 -> v2 unified diff, and a matching refresh of the
ecosystem docs page.
The adapter's public shape changes with the SDK: boxd(box, { client })
becomes boxd(client, machine) - the client is a required argument, so
the in-flight death detector is always active instead of opt-in.
Verified end to end against a real boxd VM: readiness probe, shell and
filesystem coverage through Flue's Sandbox interface, exec timeout
enforcement, and the death detector rejecting with SandboxDiedError when
the machine is deleted mid-exec.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Thanks for the contribution! We're closing this PR and moving the conversation to the discussion: #643 We've moved to a model where bugs and feature proposals are discussed in issues/discussions before code review, so the community can help prioritize and shape the work. Your branch is linked from the new thread so the implementation isn't lost — please join us there to continue the conversation. — astrobot 🤖 |
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
Follow-up to #62.
@boxd-sh/sdk0.2 (0.2.7 at time of writing) replaced the 0.1.x handle-based API the boxd blueprint was written against, so this updates the integration to the latest SDK:blueprints/sandbox--boxd.mdbumped to version 2: adapter rewritten against the new API, prose updated (@boxd-sh/sdk@^0.2.7,bxd_key prefix,machines.forktip), and a cumulative Upgrade Guide entry carrying the complete v1 → v2 unified diff per theblueprints/README.mdcontract. Validated withgenerate-blueprint-index.ts.apps/docs/.../ecosystem/sandboxes/boxd.mdrefreshed to match.What changed in the SDK
0.2 is a full API rewrite, not an incremental bump:
Boxd(wasCompute); the statefulBoxhandle is gone in favor of a flatclient.machines.*namespace whose methods take the machine id.machines.files.download/machines.files.upload.{ command, env, timeout }); the timeout option was renamed fromtimeoutMstotimeout(still milliseconds).suspended,starting,migrating, …); the terminal set the death detector keys on (destroyed/failed/stopped) is unchanged.Adapter shape change
boxd(box, { client })becomesboxd(client, machine, options?): theBoxdclient is now a required first argument (every operation routes through it), so the death detector is always active instead of opt-in viaoptions.client. The machine can be passed as theMachinerecord or its id.cwd,readyTimeoutMs, the/home/boxddefault, and allSandboxDriverbehavior are unchanged. The Upgrade Guide diff covers existing installs.Verification
boxdat version 2.tsc --noEmit) against@boxd-sh/sdk@0.2.7and@flue/runtime.Sandboxinterface (the same surface a model-invoked tool drives): 23/23 checks — readiness probe on a fresh machine, default cwd/home/boxd, shell coverage (compound commands, pipes, redirects, env forwarding with quoting, stderr/exit codes), file APIs including a binary round-trip viamachines.files,stat/readdir/exists/mkdir/rm, exectimeoutenforcement, and the death detector rejecting withSandboxDiedError~5s after the machine was deleted mid-exec.flue run: an agent using the generated adapter created a machine, the model called its sandbox tool, and all checks passed on the VM.Test plan
generate-blueprint-index.tspasses and listsboxdat version 2.@boxd-sh/sdk@0.2.7.Sandboxinterface + fullflue runloop).https://flueframework.com/cli/blueprints/boxd.mdserves the version-2 body.🤖 Generated with Claude Code