feat(sprites): add Fly.io Sprites sandbox provider - #807
Open
Kyle McLaren (kylemclaren) wants to merge 3 commits into
Open
feat(sprites): add Fly.io Sprites sandbox provider#807Kyle McLaren (kylemclaren) wants to merge 3 commits into
Kyle McLaren (kylemclaren) wants to merge 3 commits into
Conversation
🦋 Changeset detectedLatest commit: 5489462 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Someone is attempting to deploy a commit to the LangChain Team on Vercel. A member of the Team first needs to authorize it. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
deepagents-acp
deepagents
@langchain/sandbox-standard-tests
@langchain/daytona
@langchain/deno
@langchain/modal
@langchain/node-vfs
@langchain/quickjs
@langchain/sprites
commit: |
Adds @langchain/sprites, a Fly.io Sprites backend implementing the SandboxBackendProtocol. Sprites are persistent named Linux VMs with 1-2s creation, idle suspend, and sub-second full-machine checkpoint/restore. - execute() via bash -lc with configurable timeout and workdir - uploadFiles/downloadFiles via the Sprites filesystem API - fromName() reconnect to suspended sandboxes - checkpoint()/restore() for rolling back agent changes - deleteAll(prefix) for CI cleanup - Standard-tests conformance suite passes (98/98) against the live API; integration tests skip when SPRITES_TOKEN is unset Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AfkkQ2YUcajyBqtcQ5FYBN
Kyle McLaren (kylemclaren)
force-pushed
the
feat/sprites-sandbox-provider
branch
from
August 31, 2026 09:14
9532c79 to
43b3418
Compare
Pass SPRITES_TOKEN to the integration test job and add the sprites scope to the PR title lint, matching the other provider packages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AfkkQ2YUcajyBqtcQ5FYBN
Kyle McLaren (kylemclaren)
force-pushed
the
feat/sprites-sandbox-provider
branch
from
August 31, 2026 09:30
43b3418 to
e0e17a2
Compare
The Sprites documentation lives at docs.sprites.dev and the product page at fly.io/sprites. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AfkkQ2YUcajyBqtcQ5FYBN
This was referenced Aug 31, 2026
Closed
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.
This PR adds
@langchain/sprites. This package is a sandbox backend for Fly.io Sprites. It implements theSandboxBackendProtocol. It has the same structure as thedaytonaandmodalprovider packages.Sprites are persistent Linux VMs with names. A Sprite starts in 1 to 2 seconds. A Sprite stops automatically when it is idle. A stopped Sprite has no cost. A Sprite can make a checkpoint of the full machine state in less than one second. A Sprite can restore that checkpoint.
Contents
SpritesSandboxextendsBaseSandbox. Theexecute()method runs commands withbash -lc. So pipes and glob patterns operate correctly. TheuploadFiles()anddownloadFiles()methods use the Sprites SDK filesystem API.SpritesSandbox.fromName()connects again to an applicable sandbox.checkpoint()andrestore()roll back the full machine state.deleteAll(prefix)removes the test sandboxes in CI.@langchain/sandbox-standard-testsand Sprites tests (reconnect, checkpoint, restore).0.1.0release.SPRITES_TOKENto thetest-intenvironment.Test results
pnpm typecheck,pnpm build,pnpm format:check,pnpm lint, andpnpm test:unitpass.SPRITES_TOKENis not set. This is the same pattern as inmodal. CI stays green until the secret is available.Note for maintainers
The integration tests need a
SPRITES_TOKENrepository secret. Fly.io can supply the token.