feat(sandbox-tenki): add Tenki sandbox provider - #1
Closed
monoppa wants to merge 1 commit into
Closed
Conversation
monoppa
force-pushed
the
feat/sandbox-tenki
branch
2 times, most recently
from
July 15, 2026 18:39
9730397 to
09c583e
Compare
monoppa
force-pushed
the
feat/sandbox-tenki
branch
from
July 24, 2026 12:23
ae84d01 to
3ae3e58
Compare
|
lgtm @monoppa let's submit a pr upstream |
Add @voltagent/sandbox-tenki, a WorkspaceSandbox provider that runs each execute_command inside a disposable Tenki Linux microVM via @tenkicloud/sandbox, mirroring the existing E2B / Blaxel / Daytona providers. TenkiSandbox is built on the SDK's session run() API, which returns a process handle and is the only primitive that can enforce a per-command timeout and AbortSignal. It forwards cwd/env/stdin natively, keeps stdout and stderr separate, truncates each stream at maxOutputBytes on a UTF-8 character boundary, and serializes start/stop/destroy so concurrent lifecycle calls observe one transition at a time. createTenkiToolkit adds optional expose_preview_url and authorize_ssh_key tools, kept in tools.ts so consumers can omit them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
monoppa
force-pushed
the
feat/sandbox-tenki
branch
from
July 30, 2026 09:29
63a9e8b to
94889cb
Compare
Owner
Author
|
Superseded by the upstream PR: VoltAgent#1387 |
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
@voltagent/sandbox-tenki, a first-partyWorkspaceSandboxprovider that runs eachexecute_commandinside a disposable Tenki Linux microVM via@tenkicloud/sandbox. Mirrors the existing E2B / Blaxel / Daytona providers.What's included
TenkiSandboximplementsWorkspaceSandboxon top of the SDK sessionrunAPI: nativecwd/env/stdin, per-command timeout + abort viakill(), separate stdout/stderr streams, andmaxOutputBytestruncation. Lazy cached session (clear-on-failure), plusstart/stop/destroy/getInfo/getInstructions/getSession.createTenkiToolkit— optional preview-URL (expose_preview_url) and SSH-key (authorize_ssh_key) tools, isolated intools.tsso they can be dropped without touching the core adapter.website/docs/workspaces/sandbox.md), and a changeset (minor).SDK note / design deviation
The Tenki SDK's
session.exec()ignorestimeoutMs/signal; the real handle-based primitive issession.run(argv, { cwd, env, stdin })(returns aProcessRunHandlewithstdout/stderrstreams,stdin,kill(), and asignalin the result). The adapter is built onrun()— it's the closest mirror to E2B'scommands.run().wait()/kill()and the only way to actually enforce timeout/abort. Output bytes are decoded withTextDecoder;CommandTimeoutErroris caught →timedOut.Testing
pnpm --filter @voltagent/sandbox-tenki typecheck— cleanpnpm --filter @voltagent/sandbox-tenki build— CJS + ESM + d.ts (SDK externalized)pnpm --filter @voltagent/sandbox-tenki test— 57 tests passing, 100% coverage (SDK fully mocked, no network)Live end-to-end check against a real microVM was not run (no
TENKI_API_KEYavailable in the dev environment).