@deepseek-ai/dsh-tool-bash 0.1.7-rc.1 → 0.2.0-rc.1

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,127 @@
1
- # Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
2
- # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
- # after editing either side, bring the other along and re-record with:
1
+ # Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading
2
+ # section, a hash of its English and Chinese blocks outside code blocks and generated regions.
3
+ # After editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/shell/tool-bash/README.md
5
- README.md: 3068e6d201758a2f66529155de12d1dbf912bae2
6
- README.zh.md: 032d59efa33b702c8d0b202ebd33e60ae63f6804
5
+ /:
6
+ en: aa0f6a31440050d2
7
+ zh: 388fc575115b9a4f
8
+ /deepseek-ai-dsh-tool-bash:
9
+ en: 76af715ac8c82942
10
+ zh: d24ef2eef9e8f386
11
+ /deepseek-ai-dsh-tool-bash/summary:
12
+ en: fea9162fe27f9091
13
+ zh: 267c460b81aeddf6
14
+ /deepseek-ai-dsh-tool-bash/table-of-contents:
15
+ en: d152484eb41ac6b4
16
+ zh: 09388d293f9be9cb
17
+ /deepseek-ai-dsh-tool-bash/use-this-package:
18
+ en: e20abe0ff6964f16
19
+ zh: 143d7c17499b2247
20
+ /deepseek-ai-dsh-tool-bash/use-this-package/minimal-configuration:
21
+ en: 9a16909fc013c6e5
22
+ zh: ba740dbce3cd2e93
23
+ /deepseek-ai-dsh-tool-bash/use-this-package/running-a-command:
24
+ en: 92fd68a57eecc265
25
+ zh: 715f22986827b692
26
+ /deepseek-ai-dsh-tool-bash/use-this-package/running-long-commands-in-the-background:
27
+ en: a5eecea7bb7a75e8
28
+ zh: fae7f08e0e11594e
29
+ /deepseek-ai-dsh-tool-bash/use-this-package/foreground-commands-as-jobs:
30
+ en: 5eef538028ca60d6
31
+ zh: dc1c8ec24c81d2ca
32
+ /deepseek-ai-dsh-tool-bash/use-this-package/sandboxed-execution-and-escalation:
33
+ en: 472beeb895ca46cf
34
+ zh: ba110c9f62f7d5b8
35
+ /deepseek-ai-dsh-tool-bash/use-this-package/what-can-go-wrong:
36
+ en: cc9a6cc87468d73a
37
+ zh: aaa94162ef9de2f0
38
+ /deepseek-ai-dsh-tool-bash/understand-the-implementation:
39
+ en: 8d94a7381bca3fa9
40
+ zh: f4bd2866fff6fa8d
41
+ /deepseek-ai-dsh-tool-bash/understand-the-implementation/design-philosophy:
42
+ en: 9332353fda6ac7be
43
+ zh: 45c17e5e83478032
44
+ /deepseek-ai-dsh-tool-bash/understand-the-implementation/source-map:
45
+ en: 5fe11138a292e82d
46
+ zh: e3e94af07b90b5ba
47
+ /deepseek-ai-dsh-tool-bash/understand-the-implementation/request-resolution:
48
+ en: b03c1d84aa4b5cd4
49
+ zh: 111eba387b7082ae
50
+ /deepseek-ai-dsh-tool-bash/understand-the-implementation/rendering-story:
51
+ en: 167c045d6a6278cc
52
+ zh: 3f17ee8d31e0bbad
53
+ /deepseek-ai-dsh-tool-bash/further-exploration:
54
+ en: 4ef40f3c178804f1
55
+ zh: a7c2bfb9329568b8
56
+ /deepseek-ai-dsh-tool-bash/model-experience:
57
+ en: 215e7ba838619b7b
58
+ zh: a311da3843709f90
59
+ /deepseek-ai-dsh-tool-bash/model-experience/system-prompt:
60
+ en: cf78b9dd5596495f
61
+ zh: bd44560f8c2435e8
62
+ /deepseek-ai-dsh-tool-bash/model-experience/system-prompt/what-the-model-sees:
63
+ en: f8173d0103e0c6b6
64
+ zh: ed8b92539ee74156
65
+ /deepseek-ai-dsh-tool-bash/model-experience/system-prompt/what-the-model-sees/bash-guidance:
66
+ en: 2d65d6ca9b82df1d
67
+ zh: 016a14eee33eba62
68
+ /deepseek-ai-dsh-tool-bash/model-experience/system-prompt/token-effect:
69
+ en: a38d59e3e6d8a1c9
70
+ zh: 96d60abecd38307b
71
+ /deepseek-ai-dsh-tool-bash/model-experience/system-prompt/kv-cache-effect:
72
+ en: 06f29b209347522f
73
+ zh: 4dd39a5a3b738c59
74
+ /deepseek-ai-dsh-tool-bash/model-experience/tool-schemas:
75
+ en: 3039bc5e7a796b21
76
+ zh: 6b7a9eaf69c9ea53
77
+ /deepseek-ai-dsh-tool-bash/model-experience/tool-schemas/what-the-model-sees:
78
+ en: d1ac6102f35ec68c
79
+ zh: 43d7e605b95096c5
80
+ /deepseek-ai-dsh-tool-bash/model-experience/tool-schemas/token-effect:
81
+ en: cdbd4262314e6856
82
+ zh: e8c12c0cf5492386
83
+ /deepseek-ai-dsh-tool-bash/model-experience/tool-schemas/kv-cache-effect:
84
+ en: 8b821a8b34948af9
85
+ zh: 858244c080bfc5cb
86
+ /deepseek-ai-dsh-tool-bash/model-experience/foreground-result:
87
+ en: d83f1f25a3719c54
88
+ zh: 445ca808e28dc936
89
+ /deepseek-ai-dsh-tool-bash/model-experience/foreground-result/what-the-model-sees:
90
+ en: 1cf435133078b803
91
+ zh: 3e7eb766a62b7e77
92
+ /deepseek-ai-dsh-tool-bash/model-experience/foreground-result/token-effect:
93
+ en: b2018adbda15b8a7
94
+ zh: 79521073a45c7f80
95
+ /deepseek-ai-dsh-tool-bash/model-experience/foreground-result/kv-cache-effect:
96
+ en: f5d5f97a153f7c70
97
+ zh: 31911b4f3506d6c8
98
+ /deepseek-ai-dsh-tool-bash/model-experience/background-job-context-and-results:
99
+ en: 38ce70c1818a5694
100
+ zh: ed3ad10f12ed1b8e
101
+ /deepseek-ai-dsh-tool-bash/model-experience/background-job-context-and-results/what-the-model-sees:
102
+ en: b2586ae30256dda7
103
+ zh: 03000224da9a68d1
104
+ /deepseek-ai-dsh-tool-bash/model-experience/background-job-context-and-results/token-effect:
105
+ en: 3a0d2d43640158d6
106
+ zh: 45ae711aedaa1d41
107
+ /deepseek-ai-dsh-tool-bash/model-experience/background-job-context-and-results/kv-cache-effect:
108
+ en: f5d5f97a153f7c70
109
+ zh: 31911b4f3506d6c8
110
+ /deepseek-ai-dsh-tool-bash/model-experience/tool-errors:
111
+ en: 2d4f2c8605eccab3
112
+ zh: 67f1f0218f73c6bf
113
+ /deepseek-ai-dsh-tool-bash/model-experience/tool-errors/what-the-model-sees:
114
+ en: d6d7068e23fc1b93
115
+ zh: 515e8aa586415179
116
+ /deepseek-ai-dsh-tool-bash/model-experience/tool-errors/token-effect:
117
+ en: a3a78ef476ec5e56
118
+ zh: dd2c8ad0f69e8ff1
119
+ /deepseek-ai-dsh-tool-bash/model-experience/tool-errors/kv-cache-effect:
120
+ en: f5d5f97a153f7c70
121
+ zh: 31911b4f3506d6c8
122
+ /deepseek-ai-dsh-tool-bash/known-limitations-and-deferred-work:
123
+ en: ccf18075dcff3d1f
124
+ zh: 3f4cf9e14465f3d8
125
+ /deepseek-ai-dsh-tool-bash/known-limitations-and-deferred-work/dev-note:
126
+ en: e67f633dc6fe7773
127
+ zh: 3bb0c20c93f16f98
package/README.md CHANGED
@@ -61,7 +61,7 @@ Passing `run_in_background: true` admits a job and returns its id immediately; c
61
61
 
62
62
  ### Foreground commands as jobs
63
63
 
64
- With a job registry composed, a foreground command is registered with `ctx.jobs` at its start and the call waits on that job: the command is listed, streams through `job.list` and `job.follow`, and can be stopped from the Web task list for as long as it runs. A command that finishes within the timeout returns the ordinary foreground result and its job record leaves the registry with it, so the model never sees an id. A command that outlives the timeout keeps running as the job it already was, and the call returns `[still running after <timeoutMs>ms; moved to background job <id>]` plus the job hand-off guidance, seeded with one consuming read of the output so far — `job_output` continues exactly after it. A kill from outside the call (the human stopping the job) settles the foreground result with `[stopped: <reason>]` ahead of the signal marker, so the model reads the reason instead of a command failure; cancelling the call itself kills the job. Registration is best-effort: `promoteOnTimeout: false`, a missing job registry, or a registry that refuses the job at its start (the owner's job limit, no controller) run the command under the executor's deadline kill instead, and the tool description advertises the hand-over only when it holds.
64
+ With a job registry composed, a foreground command is registered with `ctx.jobs` at its start and the call waits on that job: the command is listed, streams through `job.list` and `job.follow`, and can be stopped from the Web task list for as long as it runs. A command that finishes within the timeout returns the ordinary foreground result and its job record leaves the registry with it, so the model never sees an id. A command that outlives the timeout keeps running as the job it already was, and the call returns `[still running after <timeoutMs>ms; moved to background job <id>]` plus the job hand-off guidance, seeded with one consuming read of the output so far — `job_output` continues exactly after it. A kill from outside the call (the human stopping the job) settles the foreground result with `[stopped: <reason>]` ahead of the signal marker, so the model reads the reason instead of a command failure; cancelling the call itself kills the job. Registration is best-effort: `promoteOnTimeout: false`, a missing job registry, or a registry that refuses the job at its start (the owner's job limit, no controller) run the command under the executor's deadline kill instead, and the `timeoutMs` parameter description advertises the hand-over only when it holds.
65
65
 
66
66
  ### Sandboxed execution and escalation
67
67
 
@@ -151,7 +151,7 @@ Prefix-stable while the registration scope and prompt text are unchanged. Plugin
151
151
 
152
152
  #### What the model sees
153
153
 
154
- The model sees the generated [`bash` schema](../../../docs/tool-catalog.md#deepseek-aidsh-tool-bash). `run_in_background` appears only when this producer enables it and a job registry is composed; `sandbox_permissions` and `justification` appear only when the mounted executor advertises sandboxing. Agent-scoped tool restrictions can remove the definition for that agent.
154
+ The model sees the generated [`bash` schema](../../../docs/tool-catalog.md#deepseek-aidsh-tool-bash). `run_in_background` appears only when this producer enables it and a job registry is composed; `sandbox_permissions` and `justification` appear only when the mounted executor advertises sandboxing; the justification asks the model to use the language of the current user request. Agent-scoped tool restrictions can remove the definition for that agent.
155
155
 
156
156
  #### Token effect
157
157
 
package/README.zh.md CHANGED
@@ -61,7 +61,7 @@ kind: "package-reference"
61
61
 
62
62
  ### 前台命令即任务
63
63
 
64
- 组合中有 job 注册表时,前台命令一启动就登记到 `ctx.jobs`,调用等待该任务:命令在运行期间始终被列出、经 `job.list` 与 `job.follow` 流式观看,并可从 Web 任务列表停止。在超时内完成的命令返回普通前台结果,其任务记录随结果一起离开注册表,模型从不看到 id。超过超时仍在运行的命令继续作为它本来就是的那个任务运行,调用返回 `[still running after <timeoutMs>ms; moved to background job <id>]` 加任务交接指引,并以一次消费式读取带上目前为止的输出——`job_output` 恰好从此处接续。来自调用之外的杀停(人在界面上停止任务)会让前台结果在信号标记之前带上 `[stopped: <reason>]`,模型读到的是原因而不是命令失败;取消调用本身则杀掉任务。登记是尽力而为的:`promoteOnTimeout: false`、缺少 job 注册表,或注册表在启动时拒绝该任务(持有者的任务上限、没有控制器)都会改为在执行器的 deadline 杀下运行命令,工具描述也只在交接语义成立时才宣传它。
64
+ 组合中有 job 注册表时,前台命令一启动就登记到 `ctx.jobs`,调用等待该任务:命令在运行期间始终被列出、经 `job.list` 与 `job.follow` 流式观看,并可从 Web 任务列表停止。在超时内完成的命令返回普通前台结果,其任务记录随结果一起离开注册表,模型从不看到 id。超过超时仍在运行的命令继续作为它本来就是的那个任务运行,调用返回 `[still running after <timeoutMs>ms; moved to background job <id>]` 加任务交接指引,并以一次消费式读取带上目前为止的输出——`job_output` 恰好从此处接续。来自调用之外的杀停(人在界面上停止任务)会让前台结果在信号标记之前带上 `[stopped: <reason>]`,模型读到的是原因而不是命令失败;取消调用本身则杀掉任务。登记是尽力而为的:`promoteOnTimeout: false`、缺少 job 注册表,或注册表在启动时拒绝该任务(持有者的任务上限、没有控制器)都会改为在执行器的 deadline 杀下运行命令,`timeoutMs` 参数描述也只在交接语义成立时才宣传它。
65
65
 
66
66
  ### 沙箱执行与升权
67
67
 
@@ -151,7 +151,7 @@ Check the [exit code: N] marker on every bash result; investigate failures befor
151
151
 
152
152
  #### 模型看到什么
153
153
 
154
- 模型会看到生成的 [`bash` schema](../../../docs/tool-catalog.zh.md#deepseek-aidsh-tool-bash)。仅当本生产方启用 `run_in_background` 且组合中有 job 注册表时,该字段才会出现;仅当已挂载执行器声明支持沙箱时,`sandbox_permissions` 和 `justification` 才会出现。按 agent 作用域限制工具可以移除该 agent 的定义。
154
+ 模型会看到生成的 [`bash` schema](../../../docs/tool-catalog.zh.md#deepseek-aidsh-tool-bash)。仅当本生产方启用 `run_in_background` 且组合中有 job 注册表时,该字段才会出现;仅当已挂载执行器声明支持沙箱时,`sandbox_permissions` 和 `justification` 才会出现;理由字段提示模型使用用户当前提问的语言。按 agent 作用域限制工具可以移除该 agent 的定义。
155
155
 
156
156
  #### Token 影响
157
157
 
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@ import z from "@deepseek-ai/schemastery";
2
2
  import { isAbsolute, sep } from "node:path";
3
3
  import { TOOL_ABORTED, defineTool } from "@deepseek-ai/dsh-tools";
4
4
  import { HarnessError } from "@deepseek-ai/dsh-llm";
5
- import { ESCALATION_TARGETS, approveEscalation, escalationHintMarker, sandboxDenialMarker, validateEscalationArgs } from "@deepseek-ai/dsh-sandbox";
5
+ import { ESCALATION_TARGETS, approveEscalation, escalationHintMarker, sandboxDenialMarker, sandboxPermissionsDescription, validateEscalationArgs } from "@deepseek-ai/dsh-sandbox";
6
6
  import { DSH_ENV_PREFIX, parseExitStatus } from "@deepseek-ai/dsh-shell";
7
7
  //#region lib/types/background.js
8
8
  /**
@@ -239,11 +239,8 @@ function validateBashArgs(args, effectiveMode) {
239
239
  const justification = args.sandbox_permissions === void 0 && args.justification?.trim() === "" ? void 0 : args.justification;
240
240
  validateEscalationArgs(args.sandbox_permissions, justification);
241
241
  }
242
- function bashDescription(backgroundEnabled, escalationModes, promoteOnTimeout) {
243
- const background = backgroundEnabled ? "Set `run_in_background: true` for long-running commands: the call returns a job id immediately; read its output with `job_output` and stop it with `job_kill`." + (promoteOnTimeout ? " A foreground command that reaches its timeout is not killed: it moves to the background the same way, returning its job id and the output so far." : "") : "Background execution is not available; long-running commands must finish within the timeout.";
244
- const base = `Execute a bash command (\`bash -c\`) and return its stdout/stderr. Each call runs in a fresh shell: no state (cwd, variables, functions) persists between calls — pass \`workdir\` instead of using \`cd\`. Non-zero exits are reported as \`[exit code: N]\`. Current harness environment facts are exposed through managed \`$${DSH_ENV_PREFIX}*\` variables; inspect them when needed. Commands may run under a file sandbox; a blocked file operation is reported as \`[sandbox: file access denied under <mode> mode]\` — a policy denial, not a bug in the command; do not retry another way. Long output is truncated to its tail; the full output is saved to a file whose path is reported when available. ` + background;
245
- if (escalationModes.length === 0) return base;
246
- return base + " Attempting a command the sandbox may deny is safe and expected: run it and read the marker rather than assuming the denial. When a command is denied and a wider mode would let it succeed, escalate immediately in the same turn — the one sanctioned exception to a denial: retry the exact same command once with `sandbox_permissions` (the narrowest wider mode that suffices) plus a one-sentence `justification`. Do not detour through chat to ask permission first — the approval prompt raised by that retry is how the user consents. If the session states approval prompts are disabled, there is no exception: a denial is final — do not set `sandbox_permissions`. Never escalate speculatively: ground the request in a real denial — normally the one this command just hit; escalating up front is fine only when this session already denied the same access. A rejected escalation is final for that command — stop and explain, never work around it — but it does not forbid attempting or escalating other commands later.";
242
+ function bashDescription() {
243
+ return `Execute a bash command (\`bash -c\`) and return its stdout/stderr. Each call runs in a fresh shell; pass \`workdir\` instead of using \`cd\`. Managed \`$${DSH_ENV_PREFIX}*\` variables expose current harness environment facts. Long output is truncated to its tail; the full output is saved to a file whose path is reported when available. Commands may run under a file sandbox; a blocked file operation is reported as \`[sandbox: file access denied under <mode> mode]\`, a policy denial: do not retry another way.`;
247
244
  }
248
245
  function presentBashCall(args) {
249
246
  if (args.run_in_background === true) return {
@@ -489,7 +486,7 @@ function apply(ctx, config = {}) {
489
486
  };
490
487
  return defineTool({
491
488
  name: "bash",
492
- description: bashDescription(background, escalationModes, promote),
489
+ description: bashDescription(),
493
490
  parameters: {
494
491
  command: {
495
492
  type: "string",
@@ -517,11 +514,11 @@ function apply(ctx, config = {}) {
517
514
  sandbox_permissions: {
518
515
  type: "string",
519
516
  enum: [...escalationModes],
520
- description: "The wider sandbox mode this command needs. Only valid as a one-shot retry of a command the sandbox just denied; requires justification and user approval."
517
+ description: sandboxPermissionsDescription("command")
521
518
  },
522
519
  justification: {
523
520
  type: "string",
524
- description: "Required with sandbox_permissions: one sentence for the user explaining why this exact command needs the wider access."
521
+ description: "Required with sandbox_permissions: one sentence for the user explaining why this exact command needs the wider access. Use the language of the user’s current request."
525
522
  }
526
523
  } : {}
527
524
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-tool-bash",
3
3
  "description": "Model-facing bash tool with optional generic background-job and sandbox-escalation support",
4
- "version": "0.1.7-rc.1",
4
+ "version": "0.2.0-rc.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -27,41 +27,41 @@
27
27
  ],
28
28
  "license": "MIT",
29
29
  "peerDependencies": {
30
- "@deepseek-ai/dsh-agent": "0.1.7-rc.1",
31
- "@deepseek-ai/dsh-shell-env": "0.1.7-rc.1",
32
- "@deepseek-ai/dsh-shell": "0.1.7-rc.1",
33
- "@deepseek-ai/dsh-llm": "0.1.7-rc.1",
34
- "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.1",
35
- "@deepseek-ai/dsh-sandbox": "0.1.7-rc.1",
36
- "@deepseek-ai/dsh-jobs": "0.1.7-rc.1",
37
- "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.1",
38
- "@deepseek-ai/cordis": "~4.0.4",
39
- "@deepseek-ai/dsh-user-approval": "0.1.7-rc.1",
40
- "@deepseek-ai/dsh-tools": "0.1.7-rc.1"
30
+ "@deepseek-ai/dsh-shell": "0.2.0-rc.1",
31
+ "@deepseek-ai/dsh-shell-env": "0.2.0-rc.1",
32
+ "@deepseek-ai/dsh-llm": "0.2.0-rc.1",
33
+ "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1",
34
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1",
35
+ "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1",
36
+ "@deepseek-ai/dsh-agent": "0.2.0-rc.1",
37
+ "@deepseek-ai/dsh-jobs": "0.2.0-rc.1",
38
+ "@deepseek-ai/dsh-tools": "0.2.0-rc.1",
39
+ "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1",
40
+ "@deepseek-ai/cordis": "~4.0.4"
41
41
  },
42
42
  "dependencies": {
43
43
  "@deepseek-ai/schemastery": "~3.18.4"
44
44
  },
45
45
  "devDependencies": {
46
- "@deepseek-ai/dsh-agent": "0.1.7-rc.1",
47
- "@deepseek-ai/dsh-agent-loop": "0.1.7-rc.1",
48
- "@deepseek-ai/dsh-shell": "0.1.7-rc.1",
49
- "@deepseek-ai/dsh-shell-env": "0.1.7-rc.1",
50
- "@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-rc.1",
51
- "@deepseek-ai/dsh-bash-local": "0.1.7-rc.1",
52
- "@deepseek-ai/dsh-llm": "0.1.7-rc.1",
53
- "@deepseek-ai/dsh-subprocess-local": "0.1.7-rc.1",
54
- "@deepseek-ai/dsh-sandbox": "0.1.7-rc.1",
55
- "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.1",
56
- "@deepseek-ai/dsh-session": "0.1.7-rc.1",
57
- "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.1",
58
- "@deepseek-ai/dsh-jobs": "0.1.7-rc.1",
59
- "@deepseek-ai/dsh-jobs-local": "0.1.7-rc.1",
60
- "@deepseek-ai/dsh-tool-jobs": "0.1.7-rc.1",
61
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.1",
62
- "@deepseek-ai/dsh-tools": "0.1.7-rc.1",
63
- "@deepseek-ai/dsh-user-approval": "0.1.7-rc.1",
64
- "@deepseek-ai/dsh-session-projection": "0.1.7-rc.1",
65
- "@deepseek-ai/cordis": "~4.0.4"
46
+ "@deepseek-ai/dsh-agent": "0.2.0-rc.1",
47
+ "@deepseek-ai/dsh-agent-loop": "0.2.0-rc.1",
48
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.2.0-rc.1",
49
+ "@deepseek-ai/dsh-shell": "0.2.0-rc.1",
50
+ "@deepseek-ai/dsh-shell-env": "0.2.0-rc.1",
51
+ "@deepseek-ai/dsh-bash-local": "0.2.0-rc.1",
52
+ "@deepseek-ai/dsh-llm": "0.2.0-rc.1",
53
+ "@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.1",
54
+ "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1",
55
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1",
56
+ "@deepseek-ai/dsh-session": "0.2.0-rc.1",
57
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.0-rc.1",
58
+ "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1",
59
+ "@deepseek-ai/dsh-jobs": "0.2.0-rc.1",
60
+ "@deepseek-ai/dsh-tool-jobs": "0.2.0-rc.1",
61
+ "@deepseek-ai/dsh-tools": "0.2.0-rc.1",
62
+ "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1",
63
+ "@deepseek-ai/cordis": "~4.0.4",
64
+ "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1",
65
+ "@deepseek-ai/dsh-jobs-local": "0.2.0-rc.1"
66
66
  }
67
67
  }