dsh-lead-mode 0.2.1 → 0.2.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.md CHANGED
@@ -101,10 +101,10 @@ The model will not pretend it can delegate, and it will not pass `subagent` off
101
101
  Lead mode delegates through `spawn_teammate`, `send_message`, and `team_task_*`. Those come from the official dsh Team runtime, which this plugin does not ship.
102
102
 
103
103
  ```bash
104
- dsh plugin --profile <your profile name> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.1-rc.3
104
+ dsh plugin --profile <your profile name> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.2-rc.1
105
105
  ```
106
106
 
107
- **The version pin is required.** Without it npm resolves `latest`, which is 0.1.5-alpha.2 — built for 0.1.x hosts and it will not mount on a 0.2.1 host. `next` points at 0.2.1-rc.3, which is the correct one. Restart dsh afterwards.
107
+ **The version pin is required.** Without it npm resolves `latest`, which is 0.1.5-alpha.2 — built for 0.1.x hosts and it will not mount on a 0.2.2 host. `next` points at 0.2.2-rc.1, which is the correct one. The pin also has to equal your host version (`dsh --version`): the team packages pin exact `dsh-*` peers, so an older rc installs a peer set the newer host does not satisfy. Restart dsh afterwards.
108
108
 
109
109
  Not sure whether it is installed? Run `/lead-mode` in dsh; it reports dependency state.
110
110
 
@@ -181,15 +181,15 @@ This plugin ships none of the packages below. The host or an official bundle pro
181
181
 
182
182
  | Package | Requirement | Provided by | When missing |
183
183
  |---|---|---|---|
184
- | `@deepseek-ai/dsh-experimental-agent-team-profile` | `0.2.1-rc.3` | You install it explicitly | Cannot delegate; `/lead-mode` returns error; startup warn |
185
- | `@deepseek-ai/dsh` | `>=0.2.1-rc.2` | Host | Will not install |
184
+ | `@deepseek-ai/dsh-experimental-agent-team-profile` | `0.2.2-rc.1` | You install it explicitly | Cannot delegate; `/lead-mode` returns error; startup warn |
185
+ | `@deepseek-ai/dsh` | `>=0.2.2-rc.1` | Host | Will not install |
186
186
  | `@deepseek-ai/cordis` | `^4.0.5` | Host | Will not install |
187
187
  | `@deepseek-ai/schemastery` | `^3.18.5` | Host | Will not install |
188
- | `@deepseek-ai/dsh-agent-preset-registry` | `>=0.2.1-rc.2` | Host | Preset row does not take effect; `/lead-mode` reports unknown |
189
- | `@deepseek-ai/dsh-skill` | `>=0.2.1-rc.2` | Host | Skill not registered; startup warn |
190
- | `@deepseek-ai/dsh-commands` | `>=0.2.1-rc.2` | Host | `/lead-mode` not registered; startup warn |
188
+ | `@deepseek-ai/dsh-agent-preset-registry` | `>=0.2.2-rc.1` | Host | Preset row does not take effect; `/lead-mode` reports unknown |
189
+ | `@deepseek-ai/dsh-skill` | `>=0.2.2-rc.1` | Host | Skill not registered; startup warn |
190
+ | `@deepseek-ai/dsh-commands` | `>=0.2.2-rc.1` | Host | `/lead-mode` not registered; startup warn |
191
191
 
192
- The target host version is `dshTarget` in `package.json`: `0.2.1-rc.3`.
192
+ The target host version is `dshTarget` in `package.json`: `0.2.2-rc.1`.
193
193
 
194
194
  ## Why the install command pins a version
195
195
 
@@ -198,10 +198,10 @@ The target host version is `dshTarget` in `package.json`: `0.2.1-rc.3`.
198
198
  | dist-tag | Version | Host it fits |
199
199
  |---|---|---|
200
200
  | `latest` | 0.1.5-alpha.2 | 0.1.x |
201
- | `alpha` | 0.2.1-alpha.5 | the 0.2.1 prerelease line |
202
- | `next` | 0.2.1-rc.3 | 0.2.1 |
201
+ | `alpha` | 0.2.2-alpha.3 | an earlier preview of the 0.2.2 line |
202
+ | `next` | 0.2.2-rc.1 | 0.2.2 |
203
203
 
204
- Bare package name resolves `latest`, which installs 0.1.5-alpha.2. That build targets 0.1.x hosts and does not mount on a 0.2.1 host. After installing it, no Team tools appear in dsh and `/lead-mode` still reports "not mounted".
204
+ Bare package name resolves `latest`, which installs 0.1.5-alpha.2. That build targets 0.1.x hosts and does not mount on a 0.2.2 host. After installing it, no Team tools appear in dsh and `/lead-mode` still reports "not mounted".
205
205
 
206
206
  Measured on 2026-10-26 with npm 11.20.0:
207
207
 
@@ -210,9 +210,9 @@ $ npm view @deepseek-ai/dsh-experimental-agent-team-profile version
210
210
  0.1.5-alpha.2
211
211
  ```
212
212
 
213
- So every install command in this plugin carries `@0.2.1-rc.3`: the persona prefix, the `/lead-mode` output, the startup warn, and SKILL.md. `test/preset.test.mjs` and `test/smoke.test.mjs` both assert that string, so a future edit cannot quietly drop back to the bare name.
213
+ So every install command in this plugin carries `@0.2.2-rc.1`: the persona prefix, the `/lead-mode` output, the startup warn, and SKILL.md. `test/preset.test.mjs` and `test/smoke.test.mjs` both assert that string, so a future edit cannot quietly drop back to the bare name.
214
214
 
215
- For the `alpha` line, pin `@0.2.1-alpha.5` yourself; do not use the bare name.
215
+ `next` now points at `0.2.2-rc.1`, the build this plugin pins; `alpha` (`0.2.2-alpha.3`) is an earlier preview of the same line.
216
216
 
217
217
  ## Difference from the official standard preset
218
218
 
@@ -223,7 +223,7 @@ One place only: the persona. The other 21 rows are copied field for field from `
223
223
  | persona prefix | `You are a coding agent powered by the {{model}} model.` | Chinese Lead persona plus an Agent Teams precondition check |
224
224
  | other 21 rows | — | identical to standard, field for field |
225
225
 
226
- The four classic subagent rows (`tool-subagent-control`, `tool-subagent-list-agents`, `tool-subagent`, `tool-subagent-fork`) stay enabled. Nothing is disabled. The Team tools are a host decision, not a preset decision.
226
+ The three classic subagent rows (`tool-subagent-control`, `tool-subagent`, `tool-subagent-fork`) stay enabled. `list_agents` now comes from `tool-subagent-control` itself, so there is no separate row for it. Nothing is disabled. The Team tools are a host decision, not a preset decision.
227
227
 
228
228
  ## Why the preset does not carry the Team runtime
229
229
 
package/README.zh-CN.md CHANGED
@@ -101,10 +101,10 @@
101
101
  Lead 模式靠 `spawn_teammate`、`send_message`、`team_task_*` 这些工具派活。它们由 dsh 官方的 Team 运行时提供,本插件不带。
102
102
 
103
103
  ```bash
104
- dsh plugin --profile <你的 profile 名> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.1-rc.3
104
+ dsh plugin --profile <你的 profile 名> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.2-rc.1
105
105
  ```
106
106
 
107
- **必须带版本号。** 不带会装到 `latest` 上的 0.1.5-alpha.2,那是给 0.1.x 宿主用的,在 0.2.1 宿主上挂不上。`next` 指向的 0.2.1-rc.3 才对。装完重启 dsh。
107
+ **必须带版本号。** 不带会装到 `latest` 上的 0.1.5-alpha.2,那是给 0.1.x 宿主用的,在 0.2.2 宿主上挂不上。`next` 指向的 0.2.2-rc.1 才对。版本号还要等于你的宿主版本(`dsh --version`):团队包把 `dsh-*` 的 peer 钉死到具体版本,老 rc 装到新宿主上,peer 对不上。装完重启 dsh。
108
108
 
109
109
  不确定装没装?进 dsh 敲 `/lead-mode`,它会报依赖状态。
110
110
 
@@ -181,15 +181,15 @@ Lead 模式 skill 里也写了这个入口,所以派活时模型会直接让
181
181
 
182
182
  | 包 | 版本要求 | 谁提供 | 缺了会怎样 |
183
183
  |---|---|---|---|
184
- | `@deepseek-ai/dsh-experimental-agent-team-profile` | `0.2.1-rc.3` | 用户显式安装 | 派不了活,`/lead-mode` 报 error,启动 warn |
185
- | `@deepseek-ai/dsh` | `>=0.2.1-rc.2` | 宿主 | 装不上 |
184
+ | `@deepseek-ai/dsh-experimental-agent-team-profile` | `0.2.2-rc.1` | 用户显式安装 | 派不了活,`/lead-mode` 报 error,启动 warn |
185
+ | `@deepseek-ai/dsh` | `>=0.2.2-rc.1` | 宿主 | 装不上 |
186
186
  | `@deepseek-ai/cordis` | `^4.0.5` | 宿主 | 装不上 |
187
187
  | `@deepseek-ai/schemastery` | `^3.18.5` | 宿主 | 装不上 |
188
- | `@deepseek-ai/dsh-agent-preset-registry` | `>=0.2.1-rc.2` | 宿主 | 预设行不生效,`/lead-mode` 报「查不到」 |
189
- | `@deepseek-ai/dsh-skill` | `>=0.2.1-rc.2` | 宿主 | skill 不注册,启动 warn |
190
- | `@deepseek-ai/dsh-commands` | `>=0.2.1-rc.2` | 宿主 | `/lead-mode` 不注册,启动 warn |
188
+ | `@deepseek-ai/dsh-agent-preset-registry` | `>=0.2.2-rc.1` | 宿主 | 预设行不生效,`/lead-mode` 报「查不到」 |
189
+ | `@deepseek-ai/dsh-skill` | `>=0.2.2-rc.1` | 宿主 | skill 不注册,启动 warn |
190
+ | `@deepseek-ai/dsh-commands` | `>=0.2.2-rc.1` | 宿主 | `/lead-mode` 不注册,启动 warn |
191
191
 
192
- 目标宿主版本写在 `package.json` 的 `dshTarget` 字段:`0.2.1-rc.3`。
192
+ 目标宿主版本写在 `package.json` 的 `dshTarget` 字段:`0.2.2-rc.1`。
193
193
 
194
194
  ## 为什么安装命令要带版本号
195
195
 
@@ -198,10 +198,10 @@ Lead 模式 skill 里也写了这个入口,所以派活时模型会直接让
198
198
  | dist-tag | 版本 | 配哪个宿主 |
199
199
  |---|---|---|
200
200
  | `latest` | 0.1.5-alpha.2 | 0.1.x |
201
- | `alpha` | 0.2.1-alpha.5 | 0.2.1 预发布线 |
202
- | `next` | 0.2.1-rc.3 | 0.2.1 |
201
+ | `alpha` | 0.2.2-alpha.3 | 0.2.2 线早期预览 |
202
+ | `next` | 0.2.2-rc.1 | 0.2.2 |
203
203
 
204
- 裸写包名,npm 解析 `latest`,装到 0.1.5-alpha.2。这个版本是给 0.1.x 宿主用的,在 0.2.1 宿主上挂不上。装完 dsh 里看不到 Team 工具,`/lead-mode` 还是报「未挂载」。
204
+ 裸写包名,npm 解析 `latest`,装到 0.1.5-alpha.2。这个版本是给 0.1.x 宿主用的,在 0.2.2 宿主上挂不上。装完 dsh 里看不到 Team 工具,`/lead-mode` 还是报「未挂载」。
205
205
 
206
206
  实测(2026-10-26,npm 11.20.0):
207
207
 
@@ -210,9 +210,9 @@ $ npm view @deepseek-ai/dsh-experimental-agent-team-profile version
210
210
  0.1.5-alpha.2
211
211
  ```
212
212
 
213
- 所以本插件里所有出现安装命令的地方都带 `@0.2.1-rc.3`:persona prefix、`/lead-mode` 输出、启动 warn、SKILL.md。`test/preset.test.mjs` 与 `test/smoke.test.mjs` 都断言这个字符串在,防止以后被改回裸包名。
213
+ 所以本插件里所有出现安装命令的地方都带 `@0.2.2-rc.1`:persona prefix、`/lead-mode` 输出、启动 warn、SKILL.md。`test/preset.test.mjs` 与 `test/smoke.test.mjs` 都断言这个字符串在,防止以后被改回裸包名。
214
214
 
215
- 要装 `alpha` 线的话自己换成 `@0.2.1-alpha.5`,别用裸名。
215
+ `next` 现在指向 `0.2.2-rc.1`,就是本插件钉的版本;`alpha`(`0.2.2-alpha.3`)是同一条线的早期预览。
216
216
 
217
217
  ## 与官方 standard 预设的差异
218
218
 
@@ -223,7 +223,7 @@ $ npm view @deepseek-ai/dsh-experimental-agent-team-profile version
223
223
  | persona prefix | `You are a coding agent powered by the {{model}} model.` | 中文 Lead 人设 + Agent Teams 前置检查 |
224
224
  | 其余 21 行 | — | 与 standard 逐字段相同 |
225
225
 
226
- classic subagent 四行(`tool-subagent-control`、`tool-subagent-list-agents`、`tool-subagent`、`tool-subagent-fork`)保持启用,没有禁用。Team 工具由 host 决定,不由预设决定。
226
+ classic subagent 三行(`tool-subagent-control`、`tool-subagent`、`tool-subagent-fork`)保持启用,没有禁用。`list_agents` 现在由 `tool-subagent-control` 自己注册,不再单列一行。Team 工具由 host 决定,不由预设决定。
227
227
 
228
228
  ## 为什么预设里不塞 Team 运行时
229
229
 
package/cordis.patch.yml CHANGED
@@ -16,10 +16,13 @@
16
16
  # agent, so it belongs to the host plane, not to a preset row. Users turn it on
17
17
  # with the official profile package:
18
18
  #
19
- # dsh plugin --profile <name> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.1-rc.3
19
+ # dsh plugin --profile <name> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.2-rc.1
20
20
  #
21
21
  # The version pin matters: bare `npm i` resolves `latest`, which is 0.1.5-alpha.2
22
- # and does not mount on a 0.2.1 host. `next` points at 0.2.1-rc.3.
22
+ # and does not mount on a 0.2.2 host. `next` points at 0.2.2-rc.1. The pin must
23
+ # equal the host version (`dsh --version`): the team packages pin exact `dsh-*`
24
+ # peers, so a profile built for an older rc installs peers this host does not
25
+ # satisfy.
23
26
  - insert:
24
27
  - id: dsh-lead-mode
25
28
  name: 'dsh-lead-mode'
@@ -41,9 +44,9 @@
41
44
 
42
45
  没有的话,停下。只做一件事:告诉用户去开 dsh 官方的 Agent Teams,命令是
43
46
 
44
- dsh plugin --profile <你的 profile 名> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.1-rc.3
47
+ dsh plugin --profile <你的 profile 名> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.2-rc.1
45
48
 
46
- 不带版本号会装到 0.1.5-alpha.2,和 0.2.1 宿主对不上。装完重启 dsh。
49
+ 不带版本号会装到 0.1.5-alpha.2,和 0.2.2 宿主对不上。版本号要跟 `dsh --version` 的输出一致。装完重启 dsh。
47
50
 
48
51
  这是本插件存在的主要理由。没有这些工具,你派不了活。不要自己硬干,不要假装能派活,也不要拿 subagent 凑数顶替 teammate。
49
52
 
@@ -73,6 +76,9 @@
73
76
  disabled: !!js process.platform !== 'win32'
74
77
  - id: tool-fs
75
78
  name: '@deepseek-ai/dsh-tool-fs'
79
+ config:
80
+ # 0.2.2 起 apply_patch 默认开启。standard 显式关掉,这里跟着关。
81
+ applyPatch: false
76
82
  - id: tool-fs-search
77
83
  name: '@deepseek-ai/dsh-tool-fs-search'
78
84
  config:
@@ -135,14 +141,13 @@
135
141
  config:
136
142
  - id: tool-subagent-control
137
143
  name: '@deepseek-ai/dsh-tool-subagent-control'
138
- - id: tool-subagent-list-agents
139
- name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
140
144
  - id: tool-subagent
141
145
  name: '@deepseek-ai/dsh-tool-subagent'
142
146
  config:
143
147
  provider: spawn
144
148
  toolName: subagent
145
- modelSelectionSettings: true
149
+ modelSelection: true
150
+ modelDiscovery: true
146
151
  - id: tool-subagent-fork
147
152
  name: '@deepseek-ai/dsh-tool-subagent'
148
153
  config:
@@ -169,7 +174,7 @@
169
174
  name: '@deepseek-ai/dsh-tool-present'
170
175
  - id: tool-plugin-manager
171
176
  name: '@deepseek-ai/dsh-plugin-manager/tools'
172
- disabled: true
177
+ disabled: !!js "!ctx.get('profileContext')"
173
178
  - id: tool-plugin-market
174
179
  name: '@deepseek-ai/dsh-plugin-market/tools'
175
180
  disabled: true
package/lib/index.js CHANGED
@@ -20,14 +20,21 @@ import { fileURLToPath } from 'node:url'
20
20
  /** Cordis plugin name. */
21
21
  export const name = 'lead-mode'
22
22
 
23
- /** Profile package that provides the Team runtime, pinned to the rc.3 line. */
24
- const TEAM_PROFILE_PACKAGE = '@deepseek-ai/dsh-experimental-agent-team-profile@0.2.1-rc.3'
23
+ /**
24
+ * Profile package that provides the Team runtime.
25
+ *
26
+ * The pin has to match the host version line: the team packages declare exact
27
+ * `@deepseek-ai/dsh-*` peers, so an older profile on a newer host installs an
28
+ * unsatisfied peer set. Bump this constant together with `engines.dsh` and
29
+ * `dshTarget` whenever the target host line moves.
30
+ */
31
+ const TEAM_PROFILE_PACKAGE = '@deepseek-ai/dsh-experimental-agent-team-profile@0.2.2-rc.1'
25
32
 
26
33
  /** Install command shown in every reminder. */
27
34
  const ENABLE_COMMAND = `dsh plugin --profile <你的 profile 名> add ${TEAM_PROFILE_PACKAGE}`
28
35
 
29
36
  /** Why the version pin matters, repeated wherever the command appears. */
30
- const VERSION_NOTE = '不带版本号会装到 0.1.5-alpha.2,和 0.2.1 宿主对不上。'
37
+ const VERSION_NOTE = '不带版本号会装到 0.1.5-alpha.2,和 0.2.1 宿主对不上。版本号要跟 `dsh --version` 的输出一致。'
31
38
 
32
39
  /** Directory holding one subdirectory per bundled skill; the directory name is the skill name. */
33
40
  const SKILLS_DIR = new URL('../skills/', import.meta.url)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-lead-mode",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Lead mode for DSH: an agent preset, a working-method skill, a dependency self-check, and two reminders that tell you to enable the official Agent Teams. | 给 DSH 加 Lead 模式:预设、skill、依赖自检、两条前置提醒。",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -16,11 +16,16 @@
16
16
  "README.zh-CN.md",
17
17
  "LICENSE"
18
18
  ],
19
+ "scripts": {
20
+ "test": "node --test test/*.test.mjs",
21
+ "check": "node --check lib/index.js && node scripts/validate-names.mjs --manifest ./dsh-plugin.naming.json && node scripts/check-patch.mjs",
22
+ "pack:dry": "npm pack --dry-run"
23
+ },
19
24
  "engines": {
20
25
  "node": ">=20",
21
- "dsh": ">=0.2.1-rc.2"
26
+ "dsh": ">=0.2.2-rc.1"
22
27
  },
23
- "dshTarget": "0.2.1-rc.3",
28
+ "dshTarget": "0.2.2-rc.1",
24
29
  "dsh": {
25
30
  "bundle": {
26
31
  "patch": "./cordis.patch.yml"
@@ -42,10 +47,10 @@
42
47
  "license": "MIT",
43
48
  "peerDependencies": {
44
49
  "@deepseek-ai/cordis": "^4.0.5",
45
- "@deepseek-ai/dsh": ">=0.2.1-rc.2",
50
+ "@deepseek-ai/dsh": ">=0.2.2-rc.1",
46
51
  "@deepseek-ai/schemastery": "^3.18.5",
47
- "@deepseek-ai/dsh-agent-preset-registry": ">=0.2.1-rc.2",
48
- "@deepseek-ai/dsh-skill": ">=0.2.1-rc.2",
49
- "@deepseek-ai/dsh-commands": ">=0.2.1-rc.2"
52
+ "@deepseek-ai/dsh-agent-preset-registry": ">=0.2.2-rc.1",
53
+ "@deepseek-ai/dsh-skill": ">=0.2.2-rc.1",
54
+ "@deepseek-ai/dsh-commands": ">=0.2.2-rc.1"
50
55
  }
51
56
  }
@@ -14,10 +14,10 @@ description: Lead 工作法。当你要拆活、派活给 teammate、用共享
14
14
  没有就停下。只做一件事:让用户去开 dsh 官方 Agent Teams,命令是
15
15
 
16
16
  ```
17
- dsh plugin --profile <你的 profile 名> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.1-rc.3
17
+ dsh plugin --profile <你的 profile 名> add @deepseek-ai/dsh-experimental-agent-team-profile@0.2.2-rc.1
18
18
  ```
19
19
 
20
- 不带版本号会装到 0.1.5-alpha.2,和 0.2.1 宿主对不上。
20
+ 不带版本号会装到 0.1.5-alpha.2,和 0.2.2 宿主对不上。版本号要跟 `dsh --version` 的输出一致。
21
21
 
22
22
  不要自己硬干,也不要假装能派活。
23
23
 
@@ -204,7 +204,7 @@ teammate 继承你(Lead)在 spawn 那一刻的 provider 和 model。想换
204
204
  | 整队换模型 | 切 Lead 自己的模型。之后新 spawn 的 teammate 跟着变 |
205
205
  | 按任务挑模型 | 用不了 team,改用经典 `subagent` 工具 |
206
206
 
207
- 经典 `subagent` 支持 `provider`、`model`、`reasoning_effort`、`agent_preset` 四个参数(本插件预设已开 `modelSelectionSettings`)。
207
+ 经典 `subagent` 支持 `provider`、`model`、`reasoning_effort`、`agent_preset` 四个参数(本插件预设已开 `modelSelection` 与 `modelDiscovery`)。
208
208
 
209
209
  代价说清楚:经典 `subagent` 是一次性子代理,没有共享任务板,没有持久身份。要用团队就得接受统一模型。
210
210