@deepseek-ai/dsh-bash-sandbox 0.0.1-rc.2 → 0.0.1-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.i18n.yaml CHANGED
@@ -1,6 +1,6 @@
1
1
  # Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
- # pnpm run verify-translation-pairing --write packages/bash/bash-sandbox/README.md
5
- README.md: 44321d7ef26e9e4399438f61b3fdfbfa2e4d8c11
6
- README.zh.md: f3e110c049871a5a6121716307aaa3d1d1f3eedb
4
+ # pnpm run verify-translation-pairing --write packages/shell/bash-sandbox/README.md
5
+ README.md: bd2e342b5dbb070360e5244fd7a93a1dacac2980
6
+ README.zh.md: 9827ec57f1fed846031efda0123e4d40ea9d308b
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  English | [中文](README.zh.md)
4
4
 
5
- Sandbox-consuming Service provider for the [`@deepseek-ai/dsh-bash`](../bash/) executor seam. Load it **instead of** `@deepseek-ai/dsh-bash-local`, together with a [`ctx.sandbox`](../../sandbox/sandbox/) provider (e.g. [`@deepseek-ai/dsh-sandbox-local`](../../sandbox/sandbox-local/)) and a [`ctx.sandboxPolicy`](../../sandbox/sandbox-policy/) (which owns the default mode + workspace root, shared with the sandboxed filesystem) — no alternate tool plugin is needed; `dsh-tool-bash` detects the executor's `sandboxMode` capability and adds the escalation fields.
5
+ Sandbox-consuming Service provider for the [`@deepseek-ai/dsh-shell`](../shell/) executor seam. Load it **instead of** `@deepseek-ai/dsh-bash-local`, together with a [`ctx.sandbox`](../../sandbox/sandbox/) provider (e.g. [`@deepseek-ai/dsh-sandbox-local`](../../sandbox/sandbox-local/)) and a [`ctx.sandboxPolicy`](../../sandbox/sandbox-policy/) (which owns the default mode + workspace root, shared with the sandboxed filesystem) — no alternate tool plugin is needed; `dsh-tool-bash` detects the executor's `sandboxMode` capability and adds the escalation fields.
6
6
 
7
7
  The package root exports the default and named `SandboxBashExecutor` plugin plus its `Config`; result-classification helpers stay internal.
8
8
 
@@ -16,9 +16,9 @@ Every command is confined by handing the provider the exact `['bash', '-c', comm
16
16
 
17
17
  Semantics:
18
18
 
19
- - **Denials are result facts.** A failed run whose stderr carries the selected backend's own denial dialect — the signatures the provider stamps on every wrap (EROFS text under bwrap, EACCES under Landlock, EPERM under Seatbelt) — is reported as `BashRunResult.sandbox.denied: true` (conservative classification, read from the collected stderr tail); every CONFINED run also carries the mode it executed under (`result.sandbox.mode`) and the provider's enforcement completeness (`result.sandbox.enforcement`: `full`, or `partial` on an older Landlock ABI).
20
- - **The runner path or syscall must match.** Before a process starts, a rejection is attributed to the runner only when the caller-owned workdir is independently usable and Node reports `ENOENT` or `EACCES` with either an `error.path` equal to provider argv[0] or, when `error.path` is absent, an exact `syscall: 'spawn <runner>'`. A present path also requires `syscall: 'spawn'` or the exact `spawn <runner>`. This covers a missing runner, a non-executable runner, or an executable script whose shebang interpreter is unavailable. A bare `syscall: 'spawn'` without an exact error path, any other code, an invalid or unusable workdir, a resource failure, an unrelated syscall, or an unstructured rejection retains the local executor's command-start failure semantics. Foreground execution throws `SANDBOX_UNAVAILABLE` with the original spawn detail, while asynchronous background settlement stamps `runnerFailed: true` and `denied: false`. If a `SubprocessService` synchronously throws the same runner-identifying `ENOENT`/`EACCES` shape, background start throws `SANDBOX_UNAVAILABLE`; other synchronous errors propagate unchanged. After a process starts, a rule's optional exit-code check and a remaining fatal stderr line must both match after exact informational-line exclusions. A match takes priority over denial; foreground execution throws `SANDBOX_UNAVAILABLE` with the matched fatal line, while a settled background process stamps `process.sandbox.runnerFailed`, which the bash producer renders through generic `task_output`. Confined background handles retain their mode/enforcement facts and release per-process accounting in either path.
21
- - **Deployment fallback, per-call policy.** [`ctx.sandboxPolicy`](../../sandbox/sandbox-policy/) resolves a complete `SandboxExecutionPolicy` for every tool call: the calling session supplies its mode override and immutable cwd root, while deployment config supplies the fallbacks for agentless calls. An approved escalation changes only that policy's mode; its session root stays attached. `resolve()` carries the policy onto the spec, so overlapping commands from different projects run, classify, and report under their own roots and modes. The capability fact `ctx.bash.sandboxMode` reports the configured default so the tool layer advertises escalation only when this executor is mounted; the static bash tool description separately owns denial and escalation guidance.
19
+ - **Denials are result facts.** A failed run whose stderr carries the selected backend's own denial dialect — the signatures the provider stamps on every wrap (EROFS text under bwrap, EACCES under Landlock, EPERM under Seatbelt) — is reported as `ShellRunResult.sandbox.denied: true` (conservative classification, read from the collected stderr tail); every CONFINED run also carries the mode it executed under (`result.sandbox.mode`) and the provider's enforcement completeness (`result.sandbox.enforcement`: `full`, or `partial` on an older Landlock ABI).
20
+ - **The runner path or syscall must match.** Before a process starts, a rejection is attributed to the runner only when the caller-owned workdir is independently usable and Node reports `ENOENT` or `EACCES` with either an `error.path` equal to provider argv[0] or, when `error.path` is absent, an exact `syscall: 'spawn <runner>'`. A present path also requires `syscall: 'spawn'` or the exact `spawn <runner>`. This covers a missing runner, a non-executable runner, or an executable script whose shebang interpreter is unavailable. A bare `syscall: 'spawn'` without an exact error path, any other code, an invalid or unusable workdir, a resource failure, an unrelated syscall, or an unstructured rejection retains the local executor's command-start failure semantics. Foreground execution throws `SANDBOX_UNAVAILABLE` with the original spawn detail, while asynchronous background settlement stamps `runnerFailed: true` and `denied: false`. If a `SubprocessRuntime` synchronously throws the same runner-identifying `ENOENT`/`EACCES` shape, background start throws `SANDBOX_UNAVAILABLE`; other synchronous errors propagate unchanged. After a process starts, a rule's optional exit-code check and a remaining fatal stderr line must both match after exact informational-line exclusions. A match takes priority over denial; foreground execution throws `SANDBOX_UNAVAILABLE` with the matched fatal line, while a settled background process stamps `process.sandbox.runnerFailed`, which the bash producer renders through generic `job_output`. Confined background handles retain their mode/enforcement facts and release per-process accounting in either path.
21
+ - **Deployment fallback, per-call policy.** [`ctx.sandboxPolicy`](../../sandbox/sandbox-policy/) resolves a complete `SandboxExecutionPolicy` for every tool call: the calling session supplies its mode override and immutable cwd root, while deployment config supplies the fallbacks for agentless calls. An approved escalation changes only that policy's mode; its session root stays attached. `resolve()` carries the policy onto the spec, so overlapping commands from different projects run, classify, and report under their own roots and modes. The capability fact `ctx.shell.sandboxMode` reports the configured default so the tool layer advertises escalation only when this executor is mounted; the static bash tool description separately owns denial and escalation guidance.
22
22
  - **File effects only.** Network and process visibility are deliberately not restricted — the mode vocabulary does not pretend to cover what the backend does not enforce.
23
23
  - Process mechanics (spawn, process-group kills, output collection/spill, background handles, credential scrub) are inherited from [`dsh-bash-local`](../bash-local/); runner selection lives in [`dsh-sandbox-local`](../../sandbox/sandbox-local/).
24
24
 
@@ -84,5 +84,5 @@ Append-only; newly visible content follows the reusable request prefix and does
84
84
 
85
85
  - **Confinement covers file effects only** — network access and process visibility are unchanged, so the modes are not a general-purpose security sandbox.
86
86
  - **Denials are inferred from failed-command stderr** — backend signatures make the inference portable, but a matching application error can be classified as a denial and a denial omitted from the retained tail can be missed.
87
- - **An asynchronously observed background runner failure has no immediate error channel** — it is recorded on the settled process and surfaces when the caller reads the generic task with `task_output`; a synchronous `SubprocessService` throw that names the runner path instead fails `start()` immediately.
87
+ - **An asynchronously observed background runner failure has no immediate error channel** — it is recorded on the settled process and surfaces when the caller reads the generic task with `job_output`; a synchronous `SubprocessRuntime` throw that names the runner path instead fails `start()` immediately.
88
88
  - **`danger-full-access` deliberately bypasses `ctx.sandbox`** — it is an explicit unconfined mode, not a wider sandbox profile.
package/README.zh.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](README.md) | 中文
4
4
 
5
- 这是使用沙箱能力的 [`@deepseek-ai/dsh-bash`](../bash/) 执行器 seam Service provider。加载它时,应**用它替代** `@deepseek-ai/dsh-bash-local`,并同时加载 [`ctx.sandbox`](../../sandbox/sandbox/) 提供方(例如 [`@deepseek-ai/dsh-sandbox-local`](../../sandbox/sandbox-local/))及 [`ctx.sandboxPolicy`](../../sandbox/sandbox-policy/);默认模式和工作区根目录由后者负责,并与受沙箱约束的文件系统共享这些设置。无需使用替代工具插件;`dsh-tool-bash` 会检测执行器的 `sandboxMode` 能力并添加升权字段。
5
+ 这是使用沙箱能力的 [`@deepseek-ai/dsh-shell`](../shell/) 执行器 seam Service provider。加载它时,应**用它替代** `@deepseek-ai/dsh-bash-local`,并同时加载 [`ctx.sandbox`](../../sandbox/sandbox/) 提供方(例如 [`@deepseek-ai/dsh-sandbox-local`](../../sandbox/sandbox-local/))及 [`ctx.sandboxPolicy`](../../sandbox/sandbox-policy/);默认模式和工作区根目录由后者负责,并与受沙箱约束的文件系统共享这些设置。无需使用替代工具插件;`dsh-tool-bash` 会检测执行器的 `sandboxMode` 能力并添加升权字段。
6
6
 
7
7
  包根目录导出默认与具名的 `SandboxBashExecutor` 插件及其 `Config`;结果分类 helper 保留在内部。
8
8
 
@@ -16,9 +16,9 @@
16
16
 
17
17
  语义:
18
18
 
19
- - **拒绝是结果事实。** 如果一次失败运行的 stderr 包含所选后端自身的拒绝方言,即提供方在每次包装时加上的特征(bwrap 下的 EROFS 文本、Landlock 下的 EACCES、Seatbelt 下的 EPERM),则结果报告 `BashRunResult.sandbox.denied: true`(从已收集的 stderr 尾部进行保守分类)。每次受限制运行还会携带执行时模式(`result.sandbox.mode`)与提供方强制执行完整性(`result.sandbox.enforcement`:`full`,或在较旧 Landlock ABI 上为 `partial`)。
20
- - **Runner 路径或 syscall 必须匹配。** 进程启动前,调用方拥有的 workdir 必须经独立验证可用,Node 必须报告 `ENOENT` 或 `EACCES`,并且错误必须符合以下一种形态:`error.path` 等于提供方返回的 `argv[0]`,同时 `syscall` 为 `'spawn'` 或精确的 `'spawn <runner>'`;或者 `error.path` 不存在,同时 `syscall` 为精确的 `'spawn <runner>'`。这样可以识别缺失的 runner、不可执行的 runner,或 shebang 解释器不可用的可执行脚本。没有精确错误路径的裸 `syscall: 'spawn'`、任何其他错误码、无效或不可用的 workdir、资源失败、无关 syscall 或无结构拒绝仍保留本地执行器的命令启动失败语义。前台执行会抛出 `SANDBOX_UNAVAILABLE` 并附带原始 spawn 错误详情,异步后台结算则会标记 `runnerFailed: true` 和 `denied: false`。如果 `SubprocessService` 同步抛出同样能指明 runner 的 `ENOENT`/`EACCES` 形态,后台启动会抛出 `SANDBOX_UNAVAILABLE`;其他同步错误原样传播。进程启动后,先按整行精确匹配排除信息性行,随后规则的可选退出码检查和余下 stderr 中的一行致命诊断必须同时匹配。匹配结果优先于拒绝;前台执行会抛出 `SANDBOX_UNAVAILABLE` 并附带匹配到的致命行,已结算的后台进程则会标记 `process.sandbox.runnerFailed`,Bash 结果生成方通过通用 `task_output` 渲染它。无论走哪条路径,受限制的后台句柄都会保留自身的模式/强制执行事实,并释放每进程计数。
21
- - **部署回退,每次调用策略。** [`ctx.sandboxPolicy`](../../sandbox/sandbox-policy/) 为每次工具调用解析完整的 `SandboxExecutionPolicy`:调用会话提供自身的模式覆盖与不可变 cwd 根目录,部署配置则为无 agent(智能体)调用提供回退。已批准的升权只更改该策略的模式,会话根目录仍然附着其上。`resolve()` 把策略带入 spec,因此来自不同项目的重叠命令会在各自的根目录与模式下运行、分类和报告。能力事实 `ctx.bash.sandboxMode` 报告已配置的默认值,因此工具层只在装载该执行器时才公布升权;静态 bash 工具描述则单独负责拒绝与升权引导。
19
+ - **拒绝是结果事实。** 如果一次失败运行的 stderr 包含所选后端自身的拒绝方言,即提供方在每次包装时加上的特征(bwrap 下的 EROFS 文本、Landlock 下的 EACCES、Seatbelt 下的 EPERM),则结果报告 `ShellRunResult.sandbox.denied: true`(从已收集的 stderr 尾部进行保守分类)。每次受限制运行还会携带执行时模式(`result.sandbox.mode`)与提供方强制执行完整性(`result.sandbox.enforcement`:`full`,或在较旧 Landlock ABI 上为 `partial`)。
20
+ - **Runner 路径或 syscall 必须匹配。** 进程启动前,调用方拥有的 workdir 必须经独立验证可用,Node 必须报告 `ENOENT` 或 `EACCES`,并且错误必须符合以下一种形态:`error.path` 等于提供方返回的 `argv[0]`,同时 `syscall` 为 `'spawn'` 或精确的 `'spawn <runner>'`;或者 `error.path` 不存在,同时 `syscall` 为精确的 `'spawn <runner>'`。这样可以识别缺失的 runner、不可执行的 runner,或 shebang 解释器不可用的可执行脚本。没有精确错误路径的裸 `syscall: 'spawn'`、任何其他错误码、无效或不可用的 workdir、资源失败、无关 syscall 或无结构拒绝仍保留本地执行器的命令启动失败语义。前台执行会抛出 `SANDBOX_UNAVAILABLE` 并附带原始 spawn 错误详情,异步后台结算则会标记 `runnerFailed: true` 和 `denied: false`。如果 `SubprocessRuntime` 同步抛出同样能指明 runner 的 `ENOENT`/`EACCES` 形态,后台启动会抛出 `SANDBOX_UNAVAILABLE`;其他同步错误原样传播。进程启动后,先按整行精确匹配排除信息性行,随后规则的可选退出码检查和余下 stderr 中的一行致命诊断必须同时匹配。匹配结果优先于拒绝;前台执行会抛出 `SANDBOX_UNAVAILABLE` 并附带匹配到的致命行,已结算的后台进程则会标记 `process.sandbox.runnerFailed`,Bash 结果生成方通过通用 `job_output` 渲染它。无论走哪条路径,受限制的后台句柄都会保留自身的模式/强制执行事实,并释放每进程计数。
21
+ - **部署回退,每次调用策略。** [`ctx.sandboxPolicy`](../../sandbox/sandbox-policy/) 为每次工具调用解析完整的 `SandboxExecutionPolicy`:调用会话提供自身的模式覆盖与不可变 cwd 根目录,部署配置则为无 agent(智能体)调用提供回退。已批准的升权只更改该策略的模式,会话根目录仍然附着其上。`resolve()` 把策略带入 spec,因此来自不同项目的重叠命令会在各自的根目录与模式下运行、分类和报告。能力事实 `ctx.shell.sandboxMode` 报告已配置的默认值,因此工具层只在装载该执行器时才公布升权;静态 bash 工具描述则单独负责拒绝与升权引导。
22
22
  - **只限制文件影响。** 设计上不限制网络与进程可见性:模式词汇不会声称覆盖后端未强制执行的范围。
23
23
  - 进程机制(spawn、进程组终止、输出收集/spill、后台句柄、凭证清理)继承自 [`dsh-bash-local`](../bash-local/);runner 选择位于 [`dsh-sandbox-local`](../../sandbox/sandbox-local/)。
24
24
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  #### KV Cache 影响
66
66
 
67
- 仅追加;新可见内容位于可复用请求前缀之后,不会使现有 KV-cache 条目失效。
67
+ 仅追加;新可见内容位于可复用请求前缀之后,不会使现有 KV Cache 条目失效。
68
68
 
69
69
  ### 间接的 Bash 工具错误
70
70
 
@@ -78,11 +78,11 @@
78
78
 
79
79
  #### KV Cache 影响
80
80
 
81
- 仅追加;新可见内容位于可复用请求前缀之后,不会使现有 KV-cache 条目失效。
81
+ 仅追加;新可见内容位于可复用请求前缀之后,不会使现有 KV Cache 条目失效。
82
82
 
83
83
  ## 已知限制与暂缓事项
84
84
 
85
85
  - **限制只覆盖文件影响**:网络访问与进程可见性不变,因此这些模式不是通用安全沙箱。
86
86
  - **拒绝从失败命令的 stderr 推断**:后端特征使该推断可跨平台使用,但包含相同后端特征的应用错误可能被分类为拒绝,也可能遗漏未出现在保留尾部中的拒绝。
87
- - **异步观测到的后台 runner 失败没有即时错误通道**:它记录在已结算进程上,并在调用方使用 `task_output` 读取通用任务时呈现;`SubprocessService` 同步抛出的错误包含 runner 路径时,则会使 `start()` 立即失败。
87
+ - **异步观测到的后台 runner 失败没有即时错误通道**:它记录在已结算进程上,并在调用方使用 `job_output` 读取通用任务时呈现;`SubprocessRuntime` 同步抛出的错误包含 runner 路径时,则会使 `start()` 立即失败。
88
88
  - **`danger-full-access` 有意绕过 `ctx.sandbox`**:它是显式无约束模式,不是更宽的沙箱 profile。
package/lib/index.js CHANGED
@@ -101,7 +101,7 @@ function matchesSignature(exitCode, stderr, signatures) {
101
101
  * @module @deepseek-ai/dsh-bash-sandbox
102
102
  */
103
103
  /**
104
- * Registers as `ctx.bash` in place of the local executor and requires a
104
+ * Registers as `ctx.shell` in place of the local executor and requires a
105
105
  * `ctx.sandbox` provider plus `ctx.sandboxPolicy`; the tool layer is
106
106
  * unchanged. Tool calls pass the calling session's resolved policy; direct
107
107
  * calls fall back to deployment policy. `result.sandbox` reports the mode and
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module @deepseek-ai/dsh-bash-sandbox/helpers
5
5
  */
6
- import type { BashRunResult } from '@deepseek-ai/dsh-bash';
6
+ import type { ShellRunResult } from '@deepseek-ai/dsh-shell';
7
7
  import type { RunnerFailureRule } from '@deepseek-ai/dsh-sandbox';
8
8
  /**
9
9
  * Attribute only Node ENOENT/EACCES failures whose error path equals argv[0]
@@ -31,7 +31,7 @@ interface RunnerFailureMatch {
31
31
  * @param signatures - case-insensitive denial substrings from the active wrap.
32
32
  * @returns whether the failed run matches that denial dialect.
33
33
  */
34
- export declare function classifyDenial(result: BashRunResult, signatures: readonly string[]): boolean;
34
+ export declare function classifyDenial(result: ShellRunResult, signatures: readonly string[]): boolean;
35
35
  /**
36
36
  * Classify one settled process against the selected backend's structured
37
37
  * runner-failure rules. Each rule requires a nonzero exit, its optional
@@ -8,7 +8,7 @@
8
8
  * @module @deepseek-ai/dsh-bash-sandbox
9
9
  */
10
10
  import { Context } from '@deepseek-ai/cordis';
11
- import type { BashExecRequest, BashExecSpec, BashProcess, BashRunResult } from '@deepseek-ai/dsh-bash';
11
+ import type { ShellExecRequest, ShellExecSpec, ShellProcess, ShellRunResult } from '@deepseek-ai/dsh-shell';
12
12
  import type { SandboxMode } from '@deepseek-ai/dsh-sandbox';
13
13
  import { LocalBashExecutor } from '@deepseek-ai/dsh-bash-local';
14
14
  import type { Config as LocalConfig } from '@deepseek-ai/dsh-bash-local';
@@ -21,7 +21,7 @@ import type { Config as LocalConfig } from '@deepseek-ai/dsh-bash-local';
21
21
  */
22
22
  export type Config = LocalConfig;
23
23
  /**
24
- * Registers as `ctx.bash` in place of the local executor and requires a
24
+ * Registers as `ctx.shell` in place of the local executor and requires a
25
25
  * `ctx.sandbox` provider plus `ctx.sandboxPolicy`; the tool layer is
26
26
  * unchanged. Tool calls pass the calling session's resolved policy; direct
27
27
  * calls fall back to deployment policy. `result.sandbox` reports the mode and
@@ -45,14 +45,14 @@ export declare class SandboxBashExecutor extends LocalBashExecutor {
45
45
  * calling session's resolved mode and root; lower-level callers fall back to
46
46
  * the deployment policy.
47
47
  */
48
- resolve(request: BashExecRequest): BashExecSpec;
49
- run(spec: BashExecSpec): Promise<BashRunResult>;
50
- start(spec: BashExecSpec): BashProcess;
48
+ resolve(request: ShellExecRequest): ShellExecSpec;
49
+ run(spec: ShellExecSpec): Promise<ShellRunResult>;
50
+ start(spec: ShellExecSpec): ShellProcess;
51
51
  /**
52
52
  * Stamp per-process sandbox facts before `done` settles. Full-access processes
53
53
  * have no facts; signal deaths are not denials.
54
54
  */
55
- protected onProcessDone(proc: BashProcess, stderr: string, spawnFailed: boolean, spawnError?: unknown): void;
55
+ protected onProcessDone(proc: ShellProcess, stderr: string, spawnFailed: boolean, spawnError?: unknown): void;
56
56
  /**
57
57
  * Wrap one shell command via the `ctx.sandbox` provider. Provider errors
58
58
  * propagate unchanged; the returned argv is handed directly to the local
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-bash-sandbox",
3
3
  "description": "Sandbox-consuming implementation of the DeepSeek Harness bash executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts)",
4
- "version": "0.0.1-rc.2",
4
+ "version": "0.0.1-rc.3",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
7
7
  },
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
11
- "directory": "packages/bash/bash-sandbox"
11
+ "directory": "packages/shell/bash-sandbox"
12
12
  },
13
13
  "type": "module",
14
14
  "main": "lib/index.js",
@@ -32,22 +32,22 @@
32
32
  ],
33
33
  "license": "BSD-3-Clause",
34
34
  "peerDependencies": {
35
- "@deepseek-ai/dsh-bash": "^0.0.1-rc.2",
36
- "@deepseek-ai/dsh-bash-local": "^0.0.1-rc.2",
37
- "@deepseek-ai/dsh-invariants": "^0.0.1-rc.2",
38
- "@deepseek-ai/dsh-sandbox": "^0.0.1-rc.2",
39
- "@deepseek-ai/dsh-sandbox-policy": "^0.0.1-rc.2",
35
+ "@deepseek-ai/dsh-shell": "^0.0.1-rc.3",
36
+ "@deepseek-ai/dsh-bash-local": "^0.0.1-rc.3",
37
+ "@deepseek-ai/dsh-invariants": "^0.0.1-rc.3",
38
+ "@deepseek-ai/dsh-sandbox-policy": "^0.0.1-rc.3",
39
+ "@deepseek-ai/dsh-sandbox": "^0.0.1-rc.3",
40
40
  "@deepseek-ai/cordis": "^4.0.1-rc.1"
41
41
  },
42
42
  "devDependencies": {
43
- "@deepseek-ai/dsh-invariants": "^0.0.1-rc.2",
44
- "@deepseek-ai/dsh-bash": "^0.0.1-rc.2",
45
- "@deepseek-ai/dsh-bash-local": "^0.0.1-rc.2",
46
- "@deepseek-ai/dsh-subprocess-local": "^0.0.1-rc.2",
47
- "@deepseek-ai/dsh-sandbox": "^0.0.1-rc.2",
48
- "@deepseek-ai/dsh-sandbox-local": "^0.0.1-rc.2",
49
- "@deepseek-ai/dsh-sandbox-policy": "^0.0.1-rc.2",
50
- "@deepseek-ai/node-addon-landlock-run": "0.0.1",
51
- "@deepseek-ai/cordis": "^4.0.1-rc.1"
43
+ "@deepseek-ai/dsh-shell": "^0.0.1-rc.3",
44
+ "@deepseek-ai/dsh-bash-local": "^0.0.1-rc.3",
45
+ "@deepseek-ai/dsh-invariants": "^0.0.1-rc.3",
46
+ "@deepseek-ai/dsh-subprocess-local": "^0.0.1-rc.3",
47
+ "@deepseek-ai/dsh-sandbox": "^0.0.1-rc.3",
48
+ "@deepseek-ai/dsh-sandbox-local": "^0.0.1-rc.3",
49
+ "@deepseek-ai/dsh-sandbox-policy": "^0.0.1-rc.3",
50
+ "@deepseek-ai/cordis": "^4.0.1-rc.1",
51
+ "@deepseek-ai/node-addon-landlock-run": "0.0.1"
52
52
  }
53
53
  }