@deepseek-ai/dsh-tool-bash 0.2.0-rc.2 → 0.2.1-alpha.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
@@ -21,8 +21,8 @@
21
21
  en: 9a16909fc013c6e5
22
22
  zh: ba740dbce3cd2e93
23
23
  /deepseek-ai-dsh-tool-bash/use-this-package/running-a-command:
24
- en: 1710624931aa2aa7
25
- zh: ef4fa86fd05a1cc8
24
+ en: 7610fa7c373e339a
25
+ zh: e3001ca072f53734
26
26
  /deepseek-ai-dsh-tool-bash/use-this-package/running-long-commands-in-the-background:
27
27
  en: a5eecea7bb7a75e8
28
28
  zh: fae7f08e0e11594e
@@ -42,8 +42,8 @@
42
42
  en: 9332353fda6ac7be
43
43
  zh: 45c17e5e83478032
44
44
  /deepseek-ai-dsh-tool-bash/understand-the-implementation/source-map:
45
- en: 5fe11138a292e82d
46
- zh: e3e94af07b90b5ba
45
+ en: 0547d68864628d08
46
+ zh: 5adb79f945b17a0d
47
47
  /deepseek-ai-dsh-tool-bash/understand-the-implementation/request-resolution:
48
48
  en: b03c1d84aa4b5cd4
49
49
  zh: 111eba387b7082ae
@@ -51,8 +51,8 @@
51
51
  en: 167c045d6a6278cc
52
52
  zh: 3f17ee8d31e0bbad
53
53
  /deepseek-ai-dsh-tool-bash/further-exploration:
54
- en: 4ef40f3c178804f1
55
- zh: a7c2bfb9329568b8
54
+ en: 15b7464d9a8ddd6a
55
+ zh: 471dba4b69e29aab
56
56
  /deepseek-ai-dsh-tool-bash/model-experience:
57
57
  en: 215e7ba838619b7b
58
58
  zh: a311da3843709f90
package/README.md CHANGED
@@ -52,7 +52,7 @@ The generated [configuration catalog](../../../docs/config-catalog.md#deepseek-a
52
52
 
53
53
  ### Running a command
54
54
 
55
- The tool executes `bash -c <command>` and returns the combined output. Commands run in a fresh shell every call, so state never persists — pass `workdir` instead of `cd`. A non-zero exit is reported as `[exit code: N]` for the agent to interpret, not surfaced as a tool error. A `description` in active voice (5–10 words) labels the call in the UI; `timeoutMs` overrides the executor's default and cap. Output beyond the executor's stream caps is truncated to its tail, with the full output saved to a spill file whose path is reported. The description tells the agent to verify the resolved absolute target path before any delete or move and to guard variables in such paths with `${VAR:?}`.
55
+ The tool executes `bash -c <command>` and returns the combined output. Commands run in a fresh shell every call, so state never persists — pass `workdir` instead of `cd`. A non-zero exit is reported as `[exit code: N]` for the agent to interpret, not surfaced as a tool error. A `description` in active voice (5–10 words) labels the call in the UI; the schema lists it before `command` and asks the model to emit it first, without enforcing JSON member order. `timeoutMs` overrides the executor's default and cap. Output beyond the executor's stream caps is truncated to its tail, with the full output saved to a spill file whose path is reported. The description tells the agent to verify the resolved absolute target path before any delete or move and to guard variables in such paths with `${VAR:?}`.
56
56
 
57
57
  <a id="running-long-commands-in-the-background"></a>
58
58
  ### Running long commands in the background
@@ -95,7 +95,6 @@ This section explains the design decisions behind the tool and points at the cod
95
95
  | [`src/index.ts`](src/index.ts) | Plugin entry: tool registration, prompt section, arg validation, escalation, request assembly |
96
96
  | [`src/background.ts`](src/background.ts) | Own asynchronous shell preparation, map process settlement onto job outcomes, and render a ring read as a process read |
97
97
  | [`src/render.ts`](src/render.ts) | Model-facing result text: streams, markers, truncation notices |
98
- | — | No runtime invariant companion is published; the environment registry validates ownership and collected values at each mutation/read; it publishes no independent snapshot that a companion could cross-check. |
99
98
 
100
99
  ### Request resolution
101
100
 
@@ -118,7 +117,7 @@ Read these pages when the package-level contract is not enough. They move from t
118
117
  - [Bash executor subsystem](../../../docs/subsystems/shell.md) — request/spec vocabulary, results, and background processes.
119
118
  - [shell-env](../shell-env/README.md) — the managed `DSH_*` environment every call receives.
120
119
  - [tool-jobs](../../jobs/tool-jobs/README.md) — `job_output`, `job_list`, and `job_kill` controls for background runs.
121
- - [sandbox Agent Note](../../../.agents/notes/implemented/feature/2026-07-06-sandbox.md) — escalation and mode-switching rationale.
120
+ - [historical sandbox Agent Note](../../../.agents/notes/archived/feature/2026-07-06-sandbox.md) — escalation and mode-switching rationale.
122
121
  - [Generated tool catalog](../../../docs/tool-catalog.md#deepseek-aidsh-tool-bash) — the exact `bash` argument schema.
123
122
  - [Generated configuration catalog](../../../docs/config-catalog.md#deepseek-aidsh-tool-bash) — every accepted config field and its source declaration.
124
123
 
package/README.zh.md CHANGED
@@ -52,7 +52,7 @@ kind: "package-reference"
52
52
 
53
53
  ### 运行命令
54
54
 
55
- 工具执行 `bash -c <command>` 并返回合并后的输出。命令每次调用都运行在全新 shell 中,因此状态从不保留——请传 `workdir` 而不是 `cd`。非零退出以 `[exit code: N]` 报告给 agent 解读,而不是作为工具错误抛出。主动语态的 `description`(5–10 个词)在 UI 中标注该调用;`timeoutMs` 覆盖执行器的默认值与上限。超出执行器流上限的输出会被截断为尾部,完整输出保存到 spill 文件并报告其路径。工具描述要求 agent 在任何删除或移动前校验解析后的绝对目标路径,并用 `${VAR:?}` 保护此类路径中的变量。
55
+ 工具执行 `bash -c <command>` 并返回合并后的输出。命令每次调用都运行在全新 shell 中,因此状态从不保留——请传 `workdir` 而不是 `cd`。非零退出以 `[exit code: N]` 报告给 agent 解读,而不是作为工具错误抛出。主动语态的 `description`(5–10 个词)在 UI 中标注该调用;schema 将它列在 `command` 前并要求模型先输出它,但不强制 JSON 成员顺序。`timeoutMs` 覆盖执行器的默认值与上限。超出执行器流上限的输出会被截断为尾部,完整输出保存到 spill 文件并报告其路径。工具描述要求 agent 在任何删除或移动前校验解析后的绝对目标路径,并用 `${VAR:?}` 保护此类路径中的变量。
56
56
 
57
57
  <a id="running-long-commands-in-the-background"></a>
58
58
  ### 后台运行长时间命令
@@ -95,7 +95,6 @@ kind: "package-reference"
95
95
  | [`src/index.ts`](src/index.ts) | 插件入口:工具注册、提示词区段、参数校验、升权、请求组装 |
96
96
  | [`src/background.ts`](src/background.ts) | 管理异步 shell 准备、将进程结算映射为任务结果,并把输出环读取渲染为进程读取 |
97
97
  | [`src/render.ts`](src/render.ts) | 模型侧结果文本:流、标记、截断通知 |
98
- | — | 不发布运行时不变式伴生入口;环境注册表在每次变更和读取时校验所有权及收集值,且不发布可供伴生入口交叉核对的独立快照;执行关系由能力 seam 负责。 |
99
98
 
100
99
  ### 请求解析
101
100
 
@@ -118,7 +117,7 @@ kind: "package-reference"
118
117
  - [Bash 执行器子系统](../../../docs/subsystems/shell.zh.md)——请求/spec 词汇、结果与后台进程。
119
118
  - [shell-env](../shell-env/README.zh.md)——每次调用都会收到的受管 `DSH_*` 环境。
120
119
  - [tool-jobs](../../jobs/tool-jobs/README.zh.md)——后台运行的 `job_output`、`job_list` 与 `job_kill` 控制。
121
- - [沙箱 Agent Note](../../../.agents/notes/implemented/feature/2026-07-06-sandbox.zh.md)——升权与模式切换的理由。
120
+ - [历史沙箱 Agent Note](../../../.agents/notes/archived/feature/2026-07-06-sandbox.md)——升权与模式切换的理由。
122
121
  - [生成的工具目录](../../../docs/tool-catalog.zh.md#deepseek-aidsh-tool-bash)——`bash` 参数 schema 的确切内容。
123
122
  - [生成的配置目录](../../../docs/config-catalog.zh.md#deepseek-aidsh-tool-bash)——每个受支持配置字段及其源声明。
124
123
 
package/lib/index.js CHANGED
@@ -240,7 +240,7 @@ function validateBashArgs(args, effectiveMode) {
240
240
  validateEscalationArgs(args.sandbox_permissions, justification);
241
241
  }
242
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. Before any delete or move, verify that the resolved absolute target path is the intended one; never run it against a computed path you have not checked. An unset variable expands to an empty string, so guard variables in such paths with \`\${VAR:?}\`. 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.`;
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. Provide \`description\` before \`command\` in the arguments. Before any delete or move, verify that the resolved absolute target path is the intended one; never run it against a computed path you have not checked. An unset variable expands to an empty string, so guard variables in such paths with \`\${VAR:?}\`. 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.`;
244
244
  }
245
245
  function presentBashCall(args) {
246
246
  if (args.run_in_background === true) return {
@@ -488,15 +488,15 @@ function apply(ctx, config = {}) {
488
488
  name: "bash",
489
489
  description: bashDescription(),
490
490
  parameters: {
491
- command: {
491
+ description: {
492
492
  type: "string",
493
493
  required: true,
494
- description: "The bash command to execute."
494
+ description: "Clear, concise description of what this command does in active voice, 5-10 words (shown in the UI). Examples: \"ls\" → \"List files in current directory\"; \"git status\" → \"Show working tree status\"; \"npm install\" → \"Install package dependencies\"."
495
495
  },
496
- description: {
496
+ command: {
497
497
  type: "string",
498
498
  required: true,
499
- description: "Clear, concise description of what this command does in active voice, 5-10 words (shown in the UI). Examples: \"ls\" → \"List files in current directory\"; \"git status\" → \"Show working tree status\"; \"npm install\" → \"Install package dependencies\"."
499
+ description: "The bash command to execute."
500
500
  },
501
501
  timeoutMs: {
502
502
  type: "number",
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.2.0-rc.2",
4
+ "version": "0.2.1-alpha.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.2.0-rc.2",
31
- "@deepseek-ai/dsh-shell": "0.2.0-rc.2",
32
- "@deepseek-ai/dsh-shell-env": "0.2.0-rc.2",
33
- "@deepseek-ai/dsh-llm": "0.2.0-rc.2",
34
- "@deepseek-ai/dsh-sandbox": "0.2.0-rc.2",
35
- "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.2",
36
- "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
37
- "@deepseek-ai/dsh-user-approval": "0.2.0-rc.2",
38
- "@deepseek-ai/cordis": "~4.0.4",
39
- "@deepseek-ai/dsh-tools": "0.2.0-rc.2",
40
- "@deepseek-ai/dsh-jobs": "0.2.0-rc.2"
30
+ "@deepseek-ai/dsh-shell": "0.2.1-alpha.1",
31
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.1",
32
+ "@deepseek-ai/dsh-sandbox": "0.2.1-alpha.1",
33
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.1",
34
+ "@deepseek-ai/dsh-shell-env": "0.2.1-alpha.1",
35
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.1",
36
+ "@deepseek-ai/dsh-jobs": "0.2.1-alpha.1",
37
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.1",
38
+ "@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.1",
39
+ "@deepseek-ai/cordis": "~4.0.5-alpha.1",
40
+ "@deepseek-ai/dsh-user-approval": "0.2.1-alpha.1"
41
41
  },
42
42
  "dependencies": {
43
- "@deepseek-ai/schemastery": "~3.18.4"
43
+ "@deepseek-ai/schemastery": "~3.18.5-alpha.1"
44
44
  },
45
45
  "devDependencies": {
46
- "@deepseek-ai/dsh-agent": "0.2.0-rc.2",
47
- "@deepseek-ai/dsh-agent-loop-testkit": "0.2.0-rc.2",
48
- "@deepseek-ai/dsh-shell": "0.2.0-rc.2",
49
- "@deepseek-ai/dsh-shell-env": "0.2.0-rc.2",
50
- "@deepseek-ai/dsh-bash-local": "0.2.0-rc.2",
51
- "@deepseek-ai/dsh-llm": "0.2.0-rc.2",
52
- "@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.2",
53
- "@deepseek-ai/dsh-sandbox": "0.2.0-rc.2",
54
- "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.2",
55
- "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
56
- "@deepseek-ai/dsh-session": "0.2.0-rc.2",
57
- "@deepseek-ai/dsh-jobs": "0.2.0-rc.2",
58
- "@deepseek-ai/dsh-jobs-local": "0.2.0-rc.2",
59
- "@deepseek-ai/dsh-tool-jobs": "0.2.0-rc.2",
60
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.0-rc.2",
61
- "@deepseek-ai/dsh-user-approval": "0.2.0-rc.2",
62
- "@deepseek-ai/cordis": "~4.0.4",
63
- "@deepseek-ai/dsh-session-projection": "0.2.0-rc.2",
64
- "@deepseek-ai/dsh-tools": "0.2.0-rc.2",
65
- "@deepseek-ai/dsh-agent-loop": "0.2.0-rc.2"
46
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.1",
47
+ "@deepseek-ai/dsh-agent-loop": "0.2.1-alpha.1",
48
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.2.1-alpha.1",
49
+ "@deepseek-ai/dsh-shell": "0.2.1-alpha.1",
50
+ "@deepseek-ai/dsh-shell-env": "0.2.1-alpha.1",
51
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.1",
52
+ "@deepseek-ai/dsh-subprocess-local": "0.2.1-alpha.1",
53
+ "@deepseek-ai/dsh-sandbox": "0.2.1-alpha.1",
54
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.1",
55
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.1",
56
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.1-alpha.1",
57
+ "@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.1",
58
+ "@deepseek-ai/dsh-jobs": "0.2.1-alpha.1",
59
+ "@deepseek-ai/dsh-bash-local": "0.2.1-alpha.1",
60
+ "@deepseek-ai/dsh-tool-jobs": "0.2.1-alpha.1",
61
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.1",
62
+ "@deepseek-ai/dsh-user-approval": "0.2.1-alpha.1",
63
+ "@deepseek-ai/cordis": "~4.0.5-alpha.1",
64
+ "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.1",
65
+ "@deepseek-ai/dsh-jobs-local": "0.2.1-alpha.1"
66
66
  }
67
67
  }