@deepseek-ai/dsh 0.1.0-rc.6 → 0.1.0-rc.8

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.
@@ -198,16 +198,17 @@
198
198
  toolName: subagent_fork
199
199
  backgroundMode: continuable
200
200
 
201
- # Product providers are host-plane singletons. Copy this preset, then
202
- # remove `disabled` from either ordinary tool row to expose that product
203
- # only to agents composed from the copy.
201
+ # Production dsh does not install these optional providers. Install the
202
+ # matching Bundle in this Profile and restart the Host, then copy this
203
+ # preset and remove `disabled` from the matching tool row. Host availability
204
+ # alone grants no tool.
204
205
  - id: tool-subagent-codex
205
206
  name: '@deepseek-ai/dsh-tool-subagent'
206
207
  disabled: true
207
208
  config:
208
209
  provider: codex
209
210
  toolName: subagent_codex
210
- enableRunInBackground: false
211
+ backgroundMode: one-shot
211
212
  maxDepth: provider-managed
212
213
 
213
214
  - id: tool-subagent-claude-code
@@ -216,7 +217,7 @@
216
217
  config:
217
218
  provider: claude-code
218
219
  toolName: subagent_claude_code
219
- enableRunInBackground: false
220
+ backgroundMode: one-shot
220
221
  maxDepth: provider-managed
221
222
 
222
223
  - id: workflow-worker-thread
@@ -185,16 +185,17 @@
185
185
  toolName: subagent_fork
186
186
  backgroundMode: continuable
187
187
 
188
- # Product providers are host-plane singletons. Copy this preset, then
189
- # remove `disabled` from either ordinary tool row to expose that product
190
- # only to agents composed from the copy.
188
+ # Production dsh does not install these optional providers. Install the
189
+ # matching Bundle in this Profile and restart the Host, then copy this
190
+ # preset and remove `disabled` from the matching tool row. Host availability
191
+ # alone grants no tool.
191
192
  - id: tool-subagent-codex
192
193
  name: '@deepseek-ai/dsh-tool-subagent'
193
194
  disabled: true
194
195
  config:
195
196
  provider: codex
196
197
  toolName: subagent_codex
197
- enableRunInBackground: false
198
+ backgroundMode: one-shot
198
199
  maxDepth: provider-managed
199
200
 
200
201
  - id: tool-subagent-claude-code
@@ -203,7 +204,7 @@
203
204
  config:
204
205
  provider: claude-code
205
206
  toolName: subagent_claude_code
206
- enableRunInBackground: false
207
+ backgroundMode: one-shot
207
208
  maxDepth: provider-managed
208
209
 
209
210
  - id: workflow-worker-thread
@@ -123,7 +123,16 @@ After a clean mount-validation, ask the user to start a session on the new prese
123
123
 
124
124
  ## Native product subagents
125
125
 
126
- Codex and Claude Code providers already live in the host composition. A preset chooses either product by contributing the same ordinary delegation-tool row used for spawn and fork; never move a product provider into the preset and never add a product-specific settings field.
126
+ Codex and Claude Code providers are independent optional Profile Bundles. Install only the products a Profile needs, then restart the Profile so its Host registers those providers:
127
+
128
+ ```sh
129
+ dsh plugin --profile <name> add @deepseek-ai/dsh-subagent-codex
130
+ dsh plugin --profile <name> add @deepseek-ai/dsh-subagent-claude-code
131
+ dsh plugin --profile <name> remove @deepseek-ai/dsh-subagent-codex
132
+ dsh plugin --profile <name> remove @deepseek-ai/dsh-subagent-claude-code
133
+ ```
134
+
135
+ Each Bundle owns its Host availability; the preset separately grants one Agent its ordinary delegation tool. Never move a product provider into the preset and never add a product-specific settings field. Removing one package withdraws only that provider on the next Profile start.
127
136
 
128
137
  Copy these disabled templates from a shipped full preset and remove `disabled` only for the products the user requested:
129
138
 
@@ -134,7 +143,7 @@ Copy these disabled templates from a shipped full preset and remove `disabled` o
134
143
  config:
135
144
  provider: codex
136
145
  toolName: subagent_codex
137
- enableRunInBackground: false
146
+ backgroundMode: one-shot
138
147
  maxDepth: provider-managed
139
148
 
140
149
  - id: tool-subagent-claude-code
@@ -143,11 +152,13 @@ Copy these disabled templates from a shipped full preset and remove `disabled` o
143
152
  config:
144
153
  provider: claude-code
145
154
  toolName: subagent_claude_code
146
- enableRunInBackground: false
155
+ backgroundMode: one-shot
147
156
  maxDepth: provider-managed
148
157
  ```
149
158
 
150
- The two rows are independent. Leaving both disabled preserves the copied preset, enabling one exposes only that product tool, and enabling both exposes both. The host must provide `codex` or `claude` on `PATH`; the preset does not install, authenticate, select a model for, or probe either product.
159
+ For additional named Codex or Claude Code instances, mount a separate host-plane provider row for each instance with a unique `providerName`, then add a separate preset tool row whose `provider` exactly matches that name and whose `toolName` is also unique. Keep the shipped rows for the default `codex` and `claude-code` names; do not reuse one tool row for several providers or derive either name from permission or environment settings.
160
+
161
+ The two rows are independent. Leaving both disabled preserves the copied preset, enabling one exposes only that product tool, and enabling both exposes both. Production `dsh` does not install either optional provider: before enabling a row, install the matching `@deepseek-ai/dsh-subagent-codex` or `@deepseek-ai/dsh-subagent-claude-code` Bundle in the Profile and restart it. Each Bundle registers its dormant default provider and exclusively uses its pinned package-local platform CLI; additional named instances use extra host-plane rows from the same installed package. A preset cannot provide that host dependency. `backgroundMode: one-shot` keeps omitted or `false` calls in the foreground and lets explicit `run_in_background: true` return a generic Job id. Full presets already carry `tool-jobs`, while the base host carries the job registry; retain both so `job_output`, `job_list`, `job_kill`, cancellation, and completion notices stay available. Installing a Bundle or composing a preset row does not start a product, authenticate an account, select a model, probe credentials, or manage native product settings.
151
162
 
152
163
  ## What not to move into a preset
153
164
 
@@ -3,7 +3,8 @@
3
3
  # The persona is the complete system prompt, so global identity, Web orientation,
4
4
  # tool guidance, and later assembly listeners cannot add prompt text. Runtime
5
5
  # context snapshots are suppressed for this preset, and the model composes only
6
- # persistent `bash` and `str_replace_editor`. Context compaction is absent.
6
+ # the persistent shell (`bash` on POSIX, `pwsh` on win32) and
7
+ # `str_replace_editor`. Context compaction is absent.
7
8
 
8
9
  - id: persona
9
10
  name: '@deepseek-ai/dsh-persona'
@@ -15,6 +16,8 @@
15
16
  # The PTY registry is an agent-owned service, so it lives in an entry-local
16
17
  # realm. The backend still consumes the host sandbox policy and subprocess
17
18
  # implementation, while the tool registers into this agent's scoped catalog.
19
+ # Exactly one shell stack mounts per host: the bash stack gates off win32 and
20
+ # its pwsh twin gates off POSIX, mirroring the one-shot shell rows.
18
21
  - id: persistent-shell
19
22
  name: cordis:group
20
23
  group: true
@@ -26,11 +29,13 @@
26
29
 
27
30
  - id: terminal-bash
28
31
  name: '@deepseek-ai/dsh-terminal-bash'
32
+ disabled: !!js process.platform === 'win32'
29
33
  config:
30
34
  timeoutMs: 300000
31
35
 
32
36
  - id: persistent-bash
33
37
  name: '@deepseek-ai/dsh-tool-bash-persistent'
38
+ disabled: !!js process.platform === 'win32'
34
39
  config:
35
40
  timeoutMs: 300000
36
41
  description: |-
@@ -43,6 +48,27 @@
43
48
  * Please avoid commands that may produce a very large amount of output.
44
49
  * Please run long lived commands in the background, e.g. 'sleep 10 &' or start a server in the background.
45
50
 
51
+ - id: terminal-pwsh
52
+ name: '@deepseek-ai/dsh-terminal-bash'
53
+ disabled: !!js process.platform !== 'win32'
54
+ config:
55
+ shellDialect: pwsh
56
+ timeoutMs: 300000
57
+
58
+ - id: persistent-pwsh
59
+ name: '@deepseek-ai/dsh-tool-pwsh-persistent'
60
+ disabled: !!js process.platform !== 'win32'
61
+ config:
62
+ timeoutMs: 300000
63
+ description: |-
64
+ Run commands in a PowerShell shell
65
+ * When invoking this tool, the contents of the "command" parameter does NOT need to be XML-escaped.
66
+ * You don't have access to the internet via this tool.
67
+ * State is persistent across command calls and discussions with the user.
68
+ * Use native Windows paths (C:\...) and $env:NAME variables; this is PowerShell, not bash.
69
+ * Please avoid commands that may produce a very large amount of output.
70
+ * Please run long lived commands in the background, e.g. 'Start-Job' or start a server with Start-Process.
71
+
46
72
  # The bare local filesystem shadows the host's sandboxed provider only for this
47
73
  # preset. The editor shares that realm and requires absolute paths.
48
74
  - id: filesystem
@@ -197,16 +197,17 @@
197
197
  toolName: subagent_fork
198
198
  backgroundMode: continuable
199
199
 
200
- # Product providers are host-plane singletons. Copy this preset, then
201
- # remove `disabled` from either ordinary tool row to expose that product
202
- # only to agents composed from the copy.
200
+ # Production dsh does not install these optional providers. Install the
201
+ # matching Bundle in this Profile and restart the Host, then copy this
202
+ # preset and remove `disabled` from the matching tool row. Host availability
203
+ # alone grants no tool.
203
204
  - id: tool-subagent-codex
204
205
  name: '@deepseek-ai/dsh-tool-subagent'
205
206
  disabled: true
206
207
  config:
207
208
  provider: codex
208
209
  toolName: subagent_codex
209
- enableRunInBackground: false
210
+ backgroundMode: one-shot
210
211
  maxDepth: provider-managed
211
212
 
212
213
  - id: tool-subagent-claude-code
@@ -215,7 +216,7 @@
215
216
  config:
216
217
  provider: claude-code
217
218
  toolName: subagent_claude_code
218
- enableRunInBackground: false
219
+ backgroundMode: one-shot
219
220
  maxDepth: provider-managed
220
221
 
221
222
  - id: workflow-worker-thread
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh",
3
3
  "description": "dsh CLI: profile boot, plugin management, and the browser UI alias",
4
- "version": "0.1.0-rc.6",
4
+ "version": "0.1.0-rc.8",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -25,77 +25,78 @@
25
25
  "node-addon-require-builtin": "^0.1.4",
26
26
  "@deepseek-ai/cordis-plugin-hmr": "^1.0.16",
27
27
  "@deepseek-ai/cordis-plugin-include": "^1.0.6",
28
- "@deepseek-ai/cordis-plugin-timer": "^1.1.3",
29
- "@deepseek-ai/dsh-agent-tool-presentation": "^0.1.0-rc.6",
30
- "@deepseek-ai/dsh-app-boot": "^0.1.0-rc.6",
31
- "@deepseek-ai/dsh-base": "^0.1.0-rc.6",
32
28
  "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
33
- "@deepseek-ai/dsh-cordis-client-runner": "^0.1.0-rc.6",
34
- "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.0-rc.6",
35
- "@deepseek-ai/dsh-client-ui-cordis": "^0.1.0-rc.6",
36
- "@deepseek-ai/dsh-command-compact": "^0.1.0-rc.6",
37
- "@deepseek-ai/dsh-command-goal": "^0.1.0-rc.6",
38
- "@deepseek-ai/dsh-compaction-basic": "^0.1.0-rc.6",
39
- "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.0-rc.6",
40
- "@deepseek-ai/dsh-goal": "^0.1.0-rc.6",
41
- "@deepseek-ai/dsh-goal-round-driver": "^0.1.0-rc.6",
42
- "@deepseek-ai/dsh-cmdline": "^0.1.0-rc.6",
43
- "@deepseek-ai/dsh-launch-environment": "^0.1.0-rc.6",
44
- "@deepseek-ai/dsh-fs-local": "^0.1.0-rc.6",
45
- "@deepseek-ai/dsh-headless": "^0.1.0-rc.6",
46
- "@deepseek-ai/dsh-mcp-client": "^0.1.0-rc.6",
47
- "@deepseek-ai/dsh-home-paths": "^0.1.0-rc.6",
48
- "@deepseek-ai/dsh-persona": "^0.1.0-rc.6",
49
- "@deepseek-ai/dsh-plan-mode": "^0.1.0-rc.6",
50
- "@deepseek-ai/dsh-terminal": "^0.1.0-rc.6",
51
- "@deepseek-ai/dsh-terminal-bash": "^0.1.0-rc.6",
52
- "@deepseek-ai/dsh-pwsh-local": "^0.1.0-rc.6",
53
- "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.0-rc.6",
54
- "@deepseek-ai/dsh-session-projection": "^0.1.0-rc.6",
55
- "@deepseek-ai/dsh-time-context": "^0.1.0-rc.6",
56
- "@deepseek-ai/dsh-session-reference": "^0.1.0-rc.6",
57
- "@deepseek-ai/dsh-skill": "^0.1.0-rc.6",
58
- "@deepseek-ai/dsh-skill-filesystem": "^0.1.0-rc.6",
59
- "@deepseek-ai/dsh-jobs-local": "^0.1.0-rc.6",
60
- "@deepseek-ai/dsh-tmux-context": "^0.1.0-rc.6",
61
- "@deepseek-ai/dsh-token-meter": "^0.1.0-rc.6",
62
- "@deepseek-ai/dsh-tool-ask-user": "^0.1.0-rc.6",
63
- "@deepseek-ai/dsh-tool-bash": "^0.1.0-rc.6",
64
- "@deepseek-ai/dsh-tool-bash-persistent": "^0.1.0-rc.6",
65
- "@deepseek-ai/dsh-tool-cordis": "^0.1.0-rc.6",
66
- "@deepseek-ai/dsh-tool-fs": "^0.1.0-rc.6",
67
- "@deepseek-ai/dsh-tool-fs-search": "^0.1.0-rc.6",
68
- "@deepseek-ai/dsh-tool-goal": "^0.1.0-rc.6",
69
- "@deepseek-ai/dsh-tool-pwsh": "^0.1.0-rc.6",
70
- "@deepseek-ai/dsh-tool-ralph": "^0.1.0-rc.6",
71
- "@deepseek-ai/dsh-schedule": "^0.1.0-rc.6",
72
- "@deepseek-ai/dsh-tool-skill": "^0.1.0-rc.6",
73
- "@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.0-rc.6",
74
- "@deepseek-ai/dsh-tool-subagent": "^0.1.0-rc.6",
75
- "@deepseek-ai/dsh-tool-subagent-control": "^0.1.0-rc.6",
76
- "@deepseek-ai/dsh-tool-jobs": "^0.1.0-rc.6",
77
- "@deepseek-ai/dsh-tool-todo": "^0.1.0-rc.6",
78
- "@deepseek-ai/dsh-tool-web": "^0.1.0-rc.6",
79
- "@deepseek-ai/dsh-tool-workflow": "^0.1.0-rc.6",
80
- "@deepseek-ai/dsh-web-app": "^0.1.0-rc.6",
81
- "@deepseek-ai/dsh-workflow-worker-thread": "^0.1.0-rc.6",
82
- "@deepseek-ai/dsh-agent-instructions": "^0.1.0-rc.6",
83
- "@deepseek-ai/cordis": "^4.0.1"
29
+ "@deepseek-ai/cordis-plugin-timer": "^1.1.3",
30
+ "@deepseek-ai/dsh-agent-tool-presentation": "^0.1.0-rc.8",
31
+ "@deepseek-ai/dsh-app-boot": "^0.1.0-rc.8",
32
+ "@deepseek-ai/dsh-base": "^0.1.0-rc.8",
33
+ "@deepseek-ai/dsh-cordis-client-runner": "^0.1.0-rc.8",
34
+ "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.0-rc.8",
35
+ "@deepseek-ai/dsh-command-compact": "^0.1.0-rc.8",
36
+ "@deepseek-ai/dsh-command-goal": "^0.1.0-rc.8",
37
+ "@deepseek-ai/dsh-client-ui-cordis": "^0.1.0-rc.8",
38
+ "@deepseek-ai/dsh-compaction-basic": "^0.1.0-rc.8",
39
+ "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.0-rc.8",
40
+ "@deepseek-ai/dsh-goal": "^0.1.0-rc.8",
41
+ "@deepseek-ai/dsh-goal-round-driver": "^0.1.0-rc.8",
42
+ "@deepseek-ai/dsh-cmdline": "^0.1.0-rc.8",
43
+ "@deepseek-ai/dsh-headless": "^0.1.0-rc.8",
44
+ "@deepseek-ai/dsh-mcp-client": "^0.1.0-rc.8",
45
+ "@deepseek-ai/dsh-home-paths": "^0.1.0-rc.8",
46
+ "@deepseek-ai/dsh-persona": "^0.1.0-rc.8",
47
+ "@deepseek-ai/dsh-plan-mode": "^0.1.0-rc.8",
48
+ "@deepseek-ai/dsh-terminal": "^0.1.0-rc.8",
49
+ "@deepseek-ai/dsh-terminal-bash": "^0.1.0-rc.8",
50
+ "@deepseek-ai/dsh-pwsh-local": "^0.1.0-rc.8",
51
+ "@deepseek-ai/dsh-launch-environment": "^0.1.0-rc.8",
52
+ "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.0-rc.8",
53
+ "@deepseek-ai/dsh-fs-local": "^0.1.0-rc.8",
54
+ "@deepseek-ai/dsh-session-projection": "^0.1.0-rc.8",
55
+ "@deepseek-ai/dsh-session-reference": "^0.1.0-rc.8",
56
+ "@deepseek-ai/dsh-time-context": "^0.1.0-rc.8",
57
+ "@deepseek-ai/dsh-skill": "^0.1.0-rc.8",
58
+ "@deepseek-ai/dsh-skill-filesystem": "^0.1.0-rc.8",
59
+ "@deepseek-ai/dsh-tmux-context": "^0.1.0-rc.8",
60
+ "@deepseek-ai/dsh-token-meter": "^0.1.0-rc.8",
61
+ "@deepseek-ai/dsh-tool-ask-user": "^0.1.0-rc.8",
62
+ "@deepseek-ai/dsh-tool-bash": "^0.1.0-rc.8",
63
+ "@deepseek-ai/dsh-tool-bash-persistent": "^0.1.0-rc.8",
64
+ "@deepseek-ai/dsh-tool-pwsh-persistent": "^0.1.0-rc.8",
65
+ "@deepseek-ai/dsh-tool-cordis": "^0.1.0-rc.8",
66
+ "@deepseek-ai/dsh-jobs-local": "^0.1.0-rc.8",
67
+ "@deepseek-ai/dsh-tool-fs": "^0.1.0-rc.8",
68
+ "@deepseek-ai/dsh-tool-pwsh": "^0.1.0-rc.8",
69
+ "@deepseek-ai/dsh-tool-fs-search": "^0.1.0-rc.8",
70
+ "@deepseek-ai/dsh-tool-ralph": "^0.1.0-rc.8",
71
+ "@deepseek-ai/dsh-tool-skill": "^0.1.0-rc.8",
72
+ "@deepseek-ai/dsh-schedule": "^0.1.0-rc.8",
73
+ "@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.0-rc.8",
74
+ "@deepseek-ai/dsh-tool-subagent-control": "^0.1.0-rc.8",
75
+ "@deepseek-ai/dsh-tool-jobs": "^0.1.0-rc.8",
76
+ "@deepseek-ai/dsh-tool-goal": "^0.1.0-rc.8",
77
+ "@deepseek-ai/dsh-tool-todo": "^0.1.0-rc.8",
78
+ "@deepseek-ai/dsh-tool-web": "^0.1.0-rc.8",
79
+ "@deepseek-ai/dsh-tool-subagent": "^0.1.0-rc.8",
80
+ "@deepseek-ai/dsh-web-app": "^0.1.0-rc.8",
81
+ "@deepseek-ai/dsh-agent-instructions": "^0.1.0-rc.8",
82
+ "@deepseek-ai/cordis": "^4.0.1",
83
+ "@deepseek-ai/dsh-tool-workflow": "^0.1.0-rc.8",
84
+ "@deepseek-ai/dsh-workflow-worker-thread": "^0.1.0-rc.8"
84
85
  },
85
86
  "devDependencies": {
86
87
  "@types/js-yaml": "^4.0.9",
87
88
  "execa": "^10.0.0",
88
- "@deepseek-ai/dsh-agent": "^0.1.0-rc.6",
89
- "@deepseek-ai/dsh-host-frontend-static": "^0.1.0-rc.6",
90
- "@deepseek-ai/dsh-host-apiproxy": "^0.1.0-rc.6",
91
- "@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.6",
92
- "@deepseek-ai/dsh-llm": "^0.1.0-rc.6",
93
- "@deepseek-ai/dsh-llm-mock-server": "^0.1.0-rc.6",
94
- "@deepseek-ai/dsh-loader-smoke": "^0.1.0-rc.6",
95
- "@deepseek-ai/dsh-session": "^0.1.0-rc.6",
96
- "@deepseek-ai/dsh-settings": "^0.1.0-rc.6",
97
- "@deepseek-ai/dsh-subagent": "^0.1.0-rc.6",
98
- "@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.6",
99
- "@deepseek-ai/dsh-tools": "^0.1.0-rc.6"
89
+ "@deepseek-ai/dsh-agent": "^0.1.0-rc.8",
90
+ "@deepseek-ai/dsh-host-frontend-static": "^0.1.0-rc.8",
91
+ "@deepseek-ai/dsh-host-apiproxy": "^0.1.0-rc.8",
92
+ "@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.8",
93
+ "@deepseek-ai/dsh-llm": "^0.1.0-rc.8",
94
+ "@deepseek-ai/dsh-llm-mock-server": "^0.1.0-rc.8",
95
+ "@deepseek-ai/dsh-loader-smoke": "^0.1.0-rc.8",
96
+ "@deepseek-ai/dsh-session": "^0.1.0-rc.8",
97
+ "@deepseek-ai/dsh-settings": "^0.1.0-rc.8",
98
+ "@deepseek-ai/dsh-subagent": "^0.1.0-rc.8",
99
+ "@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.8",
100
+ "@deepseek-ai/dsh-tools": "^0.1.0-rc.8"
100
101
  }
101
102
  }