Files
deepseek-harness/packages/e2b
Tianyi Cui d488330ba4 fix(rebase): migrate the replayed E2B branch onto the rebased parent
The linear replay carried old-lineage content over parent-owned files;
this checkpoint restores them and adapts the branch to the parent's
post-rebase seam:

- restore all pty/lsp/subprocess/code-runtime surfaces to the parent's
  exact content (this branch claims none of them) and drop the net-zero
  code-runtime-e2b/pty-e2b/lsp-e2b residue and its registrations
- widen serializeRemoteEnvironment to the seam's NodeJS.ProcessEnv
  tombstone contract: an explicit undefined removes an ambient entry
- migrate the two E2B fixture Agent stubs to the Inbox-model interface
  and Session.create
- re-apply the branch's gen-doc-graphs roles, THIRD_PARTY_NOTICES e2b
  row, and packages/README group row (trimmed to the doc budget);
  regenerate catalogs and re-record bilingual pairings
2026-08-08 22:19:13 +08:00
..

e2b/ — E2B remote runtime family

English | 中文

An experimental provider-composition POC that places one filesystem/process execution world in an E2B Linux sandbox. E2B supplies only sandbox lifecycle and the two fundamental OS adapters; provider-neutral consumers build higher capabilities above them.

Package ctx key Role
e2b (@deepseek-ai/dsh-e2b) ctx.e2b Create one sandbox, prepare its working/runtime directories, expose the shared SDK handle, and delete it on timeout or disposal
fs-e2b (@deepseek-ai/dsh-fs-e2b) ctx.fs Implement the filesystem seam over E2B Filesystem APIs
subprocess-e2b (@deepseek-ai/dsh-subprocess-e2b) ctx.subprocess Implement executable lookup, managed process groups and stdio, remote spill files, and terminal sessions over E2B Commands and PTY APIs

The existing dsh-bash-local, dsh-pty-local, and dsh-lsp-local need no E2B-specific forks. They delegate every execution-world operation to ctx.fs and ctx.subprocess, so mounting the two E2B adapters places their mutable work in the same sandbox.

This boundary does not move the harness process, Cordis objects, model calls, agent/session state, session persistence, skills, higher-level protocol state, or E2B SDK buffers. The portable execution-world decision owns both the generic composition and this POC boundary.