@deepseek-ai/dsh-terminal-bash 0.2.1-alpha.1 → 0.2.1-alpha.2

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
@@ -15,8 +15,8 @@
15
15
  en: d152484eb41ac6b4
16
16
  zh: 09388d293f9be9cb
17
17
  /deepseek-ai-dsh-terminal-bash/use-this-package:
18
- en: 13e1b604a235290e
19
- zh: 5292c92ffe20537e
18
+ en: d8e828f8e99fe4f1
19
+ zh: 75c5823fe6364a11
20
20
  /deepseek-ai-dsh-terminal-bash/use-this-package/when-to-choose-it:
21
21
  en: f4304ced55e55d4f
22
22
  zh: 739d7a16691e4cc0
@@ -54,8 +54,8 @@
54
54
  en: a88b693ec539ac28
55
55
  zh: a309bbe671166027
56
56
  /deepseek-ai-dsh-terminal-bash/further-exploration:
57
- en: 648ee87712ed5c66
58
- zh: 6444df8b1fabbc17
57
+ en: 0c44b6dab2f819b7
58
+ zh: bdd3da50d9180977
59
59
  /deepseek-ai-dsh-terminal-bash/model-experience:
60
60
  en: 215e7ba838619b7b
61
61
  zh: a311da3843709f90
package/README.md CHANGED
@@ -25,6 +25,8 @@ English | [中文](README.zh.md)
25
25
  <a id="use-this-package"></a>
26
26
  ## Use this package
27
27
 
28
+ A terminal without an explicit initial directory starts in the owner's current Session directory. Its sandbox permission root remains governed by Session policy.
29
+
28
30
  Mount this backend when a composition needs persistent shell sessions — state such as cwd, exported variables, functions, or running interactive children must survive across tool calls. It is the default `shell` type: a composition that mounts `@deepseek-ai/dsh-terminal` without it has no sessions to open.
29
31
 
30
32
  ### When to choose it
@@ -119,7 +121,7 @@ Read these pages when the package-level contract is not enough. They move from t
119
121
 
120
122
  - [Terminal subsystem reference](../../../docs/subsystems/terminal.md) — the service contract this backend implements and the generated `ctx.terminals` surface.
121
123
  - [terminal service](../terminal/README.md) — backend registration, owner fencing, and cleanup semantics.
122
- - [tool-terminal tools](../tool-terminal/README.md) — the model-facing tools that operate sessions.
124
+ - [tool-terminal tools](../../experimental/tool-terminal/README.md) — the model-facing tools that operate sessions.
123
125
  - [Subprocess seam](../../../docs/subsystems/subprocess.md) — the terminal primitive that owns PTY allocation and process-tree cleanup.
124
126
  - [Persistent PTY Agent Note](../../../.agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.md) — the capability design and deferred boundaries.
125
127
  - [Persistent pwsh Agent Note](../../../.agents/notes/archived/architecture/2026-08-11-pwsh-persistent-pty.md) — the Windows substrate and the pwsh dialect.
package/README.zh.md CHANGED
@@ -25,6 +25,8 @@ kind: "package-reference"
25
25
  <a id="use-this-package"></a>
26
26
  ## 使用本包
27
27
 
28
+ 未显式指定初始目录的终端从所属 Session 的当前目录启动。沙箱权限根目录仍由 Session 策略控制。
29
+
28
30
  当组合需要持久 shell 会话时挂载此后端——cwd、导出的变量、函数或正在运行的交互式子进程等状态必须跨工具调用存活。它是默认的 `shell` 类型:组合只挂载 `@deepseek-ai/dsh-terminal` 而不挂载它时,将没有任何会话可打开。
29
31
 
30
32
  ### 何时选择
@@ -119,7 +121,7 @@ Scrollback 和尚未读取的发送输出保留独立拥有的字符串,并增
119
121
 
120
122
  - [终端子系统参考](../../../docs/subsystems/terminal.zh.md)——此后端实现的服务约定与生成的 `ctx.terminals` 接口面。
121
123
  - [terminal 服务](../terminal/README.zh.md)——后端注册、所有者限制与清理语义。
122
- - [tool-terminal 工具](../tool-terminal/README.zh.md)——操作会话的面向模型工具。
124
+ - [tool-terminal 工具](../../experimental/tool-terminal/README.zh.md)——操作会话的面向模型工具。
123
125
  - [子进程 seam](../../../docs/subsystems/subprocess.zh.md)——负责 PTY 分配与进程树清理的终端原语。
124
126
  - [持久 PTY Agent Note](../../../.agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.zh.md)——能力设计与暂缓边界。
125
127
  - [持久 pwsh Agent Note](../../../.agents/notes/archived/architecture/2026-08-11-pwsh-persistent-pty.md)——Windows 基底与 pwsh 方言。
package/lib/index.js CHANGED
@@ -907,7 +907,8 @@ const inject = [
907
907
  "terminals",
908
908
  "sandboxPolicy",
909
909
  "sessionProjections",
910
- "subprocess"
910
+ "subprocess",
911
+ "workingDirectory"
911
912
  ];
912
913
  const sandboxModeFences = /* @__PURE__ */ new WeakMap();
913
914
  function ensureSandboxModeFence(ctx, owner) {
@@ -1052,7 +1053,7 @@ var BashTerminalBackend = class {
1052
1053
  if (argv[0] === void 0) throw new Error("terminal-bash: sandbox returned empty argv");
1053
1054
  const terminal = await this.spawnTerminal({
1054
1055
  argv,
1055
- cwd: spec.cwd ?? policy.workspaceRoot,
1056
+ cwd: spec.cwd ?? await this.ctx.workingDirectory.ensure(spec.owner, spec.signal),
1056
1057
  env: childEnvironment(spec, this.config.shellDialect),
1057
1058
  rows: this.config.rows,
1058
1059
  cols: this.config.cols,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-terminal-bash",
3
3
  "description": "Persistent shell PTY backend over the DeepSeek Harness subprocess terminal primitive",
4
- "version": "0.2.1-alpha.1",
4
+ "version": "0.2.1-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -27,30 +27,32 @@
27
27
  ],
28
28
  "license": "MIT",
29
29
  "peerDependencies": {
30
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.1",
31
- "@deepseek-ai/dsh-terminal": "0.2.1-alpha.1",
32
- "@deepseek-ai/dsh-sandbox": "0.2.1-alpha.1",
33
- "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.1",
34
- "@deepseek-ai/dsh-session": "0.2.1-alpha.1",
35
- "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.1",
30
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
31
+ "@deepseek-ai/dsh-terminal": "0.2.1-alpha.2",
32
+ "@deepseek-ai/dsh-sandbox": "0.2.1-alpha.2",
33
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.2",
34
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
35
+ "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.2",
36
36
  "@deepseek-ai/cordis": "~4.0.5-alpha.1",
37
- "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.1"
37
+ "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.2",
38
+ "@deepseek-ai/dsh-working-directory": "0.2.1-alpha.2"
38
39
  },
39
40
  "dependencies": {
40
- "@xterm/headless": "^6.0.0",
41
- "@deepseek-ai/dsh-lazy-require": "0.2.1-alpha.1",
42
- "@deepseek-ai/dsh-pwsh-local": "0.2.1-alpha.1",
43
- "@deepseek-ai/schemastery": "~3.18.5-alpha.1"
41
+ "@deepseek-ai/dsh-lazy-require": "0.2.1-alpha.2",
42
+ "@deepseek-ai/dsh-pwsh-local": "0.2.1-alpha.2",
43
+ "@deepseek-ai/schemastery": "~3.18.5-alpha.1",
44
+ "@xterm/headless": "^6.0.0"
44
45
  },
45
46
  "devDependencies": {
46
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.1",
47
- "@deepseek-ai/dsh-agent-loop-testkit": "0.2.1-alpha.1",
48
- "@deepseek-ai/dsh-terminal": "0.2.1-alpha.1",
49
- "@deepseek-ai/dsh-sandbox": "0.2.1-alpha.1",
50
- "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.1",
51
- "@deepseek-ai/dsh-session": "0.2.1-alpha.1",
52
- "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.1",
53
- "@deepseek-ai/dsh-subprocess-local": "0.2.1-alpha.1",
54
- "@deepseek-ai/cordis": "~4.0.5-alpha.1"
47
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
48
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.2.1-alpha.2",
49
+ "@deepseek-ai/dsh-terminal": "0.2.1-alpha.2",
50
+ "@deepseek-ai/dsh-sandbox": "0.2.1-alpha.2",
51
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.2",
52
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
53
+ "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.2",
54
+ "@deepseek-ai/dsh-subprocess-local": "0.2.1-alpha.2",
55
+ "@deepseek-ai/cordis": "~4.0.5-alpha.1",
56
+ "@deepseek-ai/dsh-working-directory": "0.2.1-alpha.2"
55
57
  }
56
58
  }