2026-07-09 16:05:44 +08:00
{
"name" : "@deepseek-ai/dsh-bash-sandbox" ,
"description" : "Sandbox-consuming implementation of the DeepSeek Harness bash executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts)" ,
"version" : "0.0.1" ,
"private" : true ,
"type" : "module" ,
"main" : "lib/index.js" ,
"types" : "lib/types/index.d.ts" ,
"exports" : {
"." : {
"types" : "./lib/types/index.d.ts" ,
"default" : "./lib/index.js"
} ,
2026-07-19 22:13:50 +08:00
"./invariant" : {
"types" : "./lib/types/invariant.d.ts" ,
"default" : "./lib/invariant.js"
} ,
2026-07-09 16:05:44 +08:00
"./src/*" : "./src/*" ,
"./package.json" : "./package.json"
} ,
"files" : [
"lib/index.js" ,
2026-07-19 22:13:50 +08:00
"lib/invariant.js" ,
2026-07-09 16:05:44 +08:00
"lib/types/**/*.d.ts" ,
"lib/types/**/*.d.ts.map" ,
"src"
] ,
"license" : "BSD-3-Clause" ,
"peerDependencies" : {
"@deepseek-ai/dsh-bash" : "^0.0.1" ,
"@deepseek-ai/dsh-bash-local" : "^0.0.1" ,
2026-07-19 22:13:50 +08:00
"@deepseek-ai/dsh-invariants" : "^0.0.1" ,
2026-07-09 16:05:44 +08:00
"@deepseek-ai/dsh-sandbox" : "^0.0.1" ,
feat(sandbox): cross-family file sandbox — one policy home, sandboxed fs provider, fs escalation parity
Extend SandboxMode enforcement from bash to the filesystem tools, the sandbox
RFC's deferred cross-family phase.
- dsh-sandbox-policy (new, ctx.sandboxPolicy): the single home for the
deployment default mode + workspaceRoot and the per-session override event,
renamed bash/sandbox-mode -> sandbox/mode and moved here with its fold/setter.
Decouples the bash seam from dsh-session.
- dsh-fs-sandbox (new): SandboxedFileSystem extends LocalFileSystem and fences
write/edit by the per-call mode (read-only denies, workspace-write contains to
the workspace + temp roots via the shared writableRoots, danger passes
through); reads pass through. Structured FS_SANDBOX_DENIED; in-lock parent
re-canonicalization. A policy fence in trusted code, not a kernel boundary.
- dsh-sandbox: the shared escalation kit (writableRoots, the strictly-wider
ladder, denial/hint markers, approveEscalation) both tool families use;
approveEscalation takes a structural approver so dsh-sandbox gains no
approval/agent dependency, and both tools stay duplication-free.
- tool-fs: write/edit advertise sandbox_permissions/justification under a
confining ctx.fs, map FS_SANDBOX_DENIED to the shared [sandbox: ...] marker,
and resolve the same one-approved-wider retry.
- examples/acp-agent: composes sandbox-policy + fs-sandbox, drops the gating
that disabled the fs stack under confined modes.
RFC docs/rfc/implemented/feature/2026-07-14-cross-family-fs-sandbox.md; the old
sandbox RFC's In-process/deferred/FAQ sections updated to shipped fact.
2026-07-14 20:05:57 +08:00
"@deepseek-ai/dsh-sandbox-policy" : "^0.0.1" ,
2026-07-15 11:28:45 +08:00
"cordis" : "^4.0.0-rc.7"
2026-07-09 16:05:44 +08:00
} ,
"devDependencies" : {
"@deepseek-ai/dsh-bash" : "workspace:^" ,
"@deepseek-ai/dsh-bash-local" : "workspace:^" ,
2026-07-19 22:13:50 +08:00
"@deepseek-ai/dsh-invariants" : "workspace:^" ,
refactor(subprocess): rename the process seam to subprocess and address review
Review feedback (tianyicui): 'process' is a poor service name. The family is
now packages/subprocess/ — @deepseek-ai/dsh-subprocess (ctx.subprocess,
abstract SubprocessService, Subprocess* vocabulary) and
@deepseek-ai/dsh-subprocess-local (LocalSubprocessService) — renamed
throughout code, compositions, docs (en+zh, pairs re-recorded), catalogs,
and gates. 'subprocess' is the precise term for managed OS children (the
Python-stdlib sense), avoids colliding with Node's global process object,
and reads as one system beside dsh-subagent-subprocess.
ds-review-bot findings addressed:
- kill() on a settled handle is now a no-op (no signal to a possibly-reused
pgid, no referenced grace timer delaying exit); pinned by a spy test.
- The moved DshEnvironmentKey/DshEnvironment/CollectedOutput types get
drift-checked type-equiv blocks on the new subprocess.md page, restoring
their manifest registration.
- subprocess.md is registered in the core.md sub-page index (en+zh).
2026-07-26 12:43:14 +08:00
"@deepseek-ai/dsh-subprocess-local" : "workspace:^" ,
2026-07-09 16:05:44 +08:00
"@deepseek-ai/dsh-sandbox" : "workspace:^" ,
"@deepseek-ai/dsh-sandbox-local" : "workspace:^" ,
feat(sandbox): cross-family file sandbox — one policy home, sandboxed fs provider, fs escalation parity
Extend SandboxMode enforcement from bash to the filesystem tools, the sandbox
RFC's deferred cross-family phase.
- dsh-sandbox-policy (new, ctx.sandboxPolicy): the single home for the
deployment default mode + workspaceRoot and the per-session override event,
renamed bash/sandbox-mode -> sandbox/mode and moved here with its fold/setter.
Decouples the bash seam from dsh-session.
- dsh-fs-sandbox (new): SandboxedFileSystem extends LocalFileSystem and fences
write/edit by the per-call mode (read-only denies, workspace-write contains to
the workspace + temp roots via the shared writableRoots, danger passes
through); reads pass through. Structured FS_SANDBOX_DENIED; in-lock parent
re-canonicalization. A policy fence in trusted code, not a kernel boundary.
- dsh-sandbox: the shared escalation kit (writableRoots, the strictly-wider
ladder, denial/hint markers, approveEscalation) both tool families use;
approveEscalation takes a structural approver so dsh-sandbox gains no
approval/agent dependency, and both tools stay duplication-free.
- tool-fs: write/edit advertise sandbox_permissions/justification under a
confining ctx.fs, map FS_SANDBOX_DENIED to the shared [sandbox: ...] marker,
and resolve the same one-approved-wider retry.
- examples/acp-agent: composes sandbox-policy + fs-sandbox, drops the gating
that disabled the fs stack under confined modes.
RFC docs/rfc/implemented/feature/2026-07-14-cross-family-fs-sandbox.md; the old
sandbox RFC's In-process/deferred/FAQ sections updated to shipped fact.
2026-07-14 20:05:57 +08:00
"@deepseek-ai/dsh-sandbox-policy" : "workspace:^" ,
2026-07-19 22:13:50 +08:00
"cordis" : "^4.0.0-rc.7" ,
"node-addon-landlock-run" : "0.0.0-test.0"
2026-07-09 16:05:44 +08:00
}
}