dsh-plugin-subagent-director 0.4.0-beta.1 → 0.4.0

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/CHANGELOG.md CHANGED
@@ -2,22 +2,32 @@
2
2
 
3
3
  本项目的所有显著变更都会记录在此文件中。格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。
4
4
 
5
- ## [0.4.0-beta.1] - 2026-08-30
5
+ ## [0.4.0] - 2026-08-31
6
6
 
7
7
  ### 新增
8
8
 
9
- - **纯编排模式(`/orchestrate`)**(PR #3,@WinterSold1er):`/orchestrate on|off` 命令(无参数默认 on),开启后注入「纯编排者」系统提示——主代理只允许通过 `subagent_role` 委派、禁止亲自读/写/执行,角色清单从 `subagent-director.roles` 动态渲染(无硬编码 role id),未配置角色时提示先配置;`sessionProjections` 服务缺失时命令返回明确错误而非假装成功。
9
+ - **纯编排模式(`/orchestrate`)**(PR #3,@WinterSold1er):`/orchestrate on|off` 命令(无参数默认 on),开启后注入「纯编排者」系统提示——主代理只允许通过 `subagent_role` 委派、禁止亲自读/写/执行,角色清单从 `subagent-director.roles` 动态渲染(无硬编码 role id),未配置角色时提示先配置;`sessionProjections` 服务缺失时命令返回明确错误而非假装成功;
10
+ - **纯编排模式改为按轮自动检测(类似 `/using aegis`)**:不再需要规定 on/off——消息开头声明 `/orchestrate`(无参数),或用自然语言写「使用orchestrate模式」(含「请使用 orchestrate 模式」「use orchestrate mode」等变体),该轮会话即自动进入纯编排模式;未声明时保持普通模式。系统提示段按轮判定:先扫描当前轮首条用户消息(`user/message` 事件)与最近一次 `orchestrate` 命令的 `command/run` 事件(以 `turn/start` 为轮次边界),投影仅作向后兼容兜底;
11
+ - **`/orchestrate <任务>` 直接编排该任务**:声明与任务同一条消息即可生效——任意任务文本(如 `/orchestrate 分析上周A股走势`)会被 handler 视为「编排该任务」,经 `agent.followup(createUserMessage(...))` 排入下一轮并唤醒模型。
10
12
 
11
13
  ### 修复
12
14
 
13
15
  - **真实 cordis 探针发现的隐性 bug**(issue #5):cordis 的 `ctx.effect(fn)` 契约是「立即执行 fn、以返回值为 disposer」,原先包在 effect 里的 `fiber.dispose()` 清理块会把 `/orchestrate` 命令与 projection 的 `ctx.inject` 子 fiber **在创建瞬间卸载**——真实宿主上命令从未注册成功过(既有测试全基于 fake,未覆盖该契约);子 fiber 本就随父 fiber 生命周期自动卸载,清理块已移除,并由新增的真实 cordis 探针测试永久钉住;
14
16
  - **开发/测试环境对齐真实宿主 0.1.1 线**(issue #5):devDeps 与 peer ranges 由 `0.1.0-rc.6/rc.8` 升至 `^0.1.1-rc.2`(新增 `dsh-session-projection` peer);projection 注册改用真实类型契约(`SessionEventMap` / `SessionProjectionStateMap` / `SessionProjectionMap` 声明合并 + 类型化 `register`),契约形状漂移现在在 typecheck 期暴露,而不是运行期被 `snapshot()` 静默跳过;
15
17
  - 顶层 `inject` 移除 `'commands'`(非 dsh-base 装配上主条目会永久 PENDING、核心委派功能全失效);命令 handler 增加 `invocation.agent.session` 可选链守卫;
16
- - 移除未使用的 `@deepseek-ai/dsh-client-schema-form` 依赖(源码零引用,且其 0.1.0 线 peer 链与 0.1.1 线冲突)。
18
+ - 移除未使用的 `@deepseek-ai/dsh-client-schema-form` 依赖(源码零引用,且其 0.1.0 线 peer 链与 0.1.1 线冲突);
19
+ - **「对话什么都不返回」**:`/orchestrate on` 后模型被「纯编排者」提示束缚,但 `subagent-director.roles` 未配置任何角色 → 无法委派、禁止亲自动手 → 对话无输出。现在未配置角色时不再注入束缚性的纯编排框架,而是注入一段简短「不可用提示」,指示模型明确告知用户需要先配置角色、并继续以普通模式处理请求——模型必然给出有意义的回复;
20
+ - **「不清楚是否已开启」**:`/orchestrate`(无参数)从「粘性 on」改为「本轮 on」(不写粘性事件,由 `command/run` 扫描按轮生效),命令反馈明确说明按轮/持久语义;`/orchestrate on` 保留为显式持久模式(向后兼容),`/orchestrate off` 退出持久模式;
21
+ - **`/orchestrate <任务>` 无响应**:commands 服务会整体消费斜杠命令行,任务文本到不了模型、命令返回错误 → 对话无输出。现在任意任务文本会被 handler 视为「编排该任务」:经 `agent.followup(createUserMessage(...))` 排入下一轮并唤醒模型,`command/run` 扫描(任务参数 → on)使该轮注入编排提示;
22
+ - **按轮检测被上下文注入事件击穿**(实测「分析上周A股走势」会话未编排):宿主会在用户消息之后把 runtime context / system-reminder / memos_context 作为**独立的 `user/message` 事件**追加进日志,导致「最新用户消息」「命令位于上一条与当前用户消息之间」的判定全部失效(命令被视为过期、声明消息被注入事件掩盖)。修复:检测改用 **`turn/start` 轮次边界**——消息检测取当前轮**首条**用户消息(忽略注入事件),命令扫描要求命令位于「上一轮最后一条用户消息之后、本轮 `turn/start` 之前」;无 turn 事件时回退旧逻辑。
23
+
24
+ ### 兼容性
25
+
26
+ - `orchestrate/change` 事件类型注册与投影注册保留(旧会话日志加载兼容 + 客户端 wire 视图);`renderOrchestratorPrompt` / `renderOrchestratorRoles` / `buildOrchestratorFrame` 公共 API 不变;新增导出 `detectOrchestrateRequest`、`renderOrchestratorUnavailableNotice`。
17
27
 
18
28
  ### 测试
19
29
 
20
- - 单元/集成测试由 197 增至 233:`/orchestrate` 功能与接线用例、handler 守卫用例,以及**真实 cordis `Context` + 真实 `SessionProjectionRegistry` 集成探针**(无 commands 服务时主条目正常激活、核心服务缺失时保持 PENDING、commands 后到时命令经真实 `ctx.inject` 子 fiber 响应式注册、projection 经真实 `snapshot()` 驱动 on→off 折叠)。
30
+ - 单元/集成测试由 197 增至 253:`detectOrchestrateRequest` 检测单测(斜杠/任务文本/自然语言/反例)、按轮段判定接线测试(用户消息声明、`command/run` 区间扫描、任务参数扫描、无角色不可用提示、投影兜底)、命令语义测试(无参数按轮不写事件、任务文本 followup 排队、on 持久、off 退出),以及真实 cordis `Context` + 真实 `SessionProjectionRegistry` 集成探针(无 commands 服务时主条目正常激活、核心服务缺失时保持 PENDING、commands 后到时命令经真实 `ctx.inject` 子 fiber 响应式注册、projection 经真实 `snapshot()` 驱动 on→off 折叠、按轮与任务文本探针)。
21
31
 
22
32
  ### 已知取舍
23
33
 
package/README.md CHANGED
@@ -134,16 +134,24 @@ subagent_role({ role: "code-reviewer", model: "deepseek-chat", prompt: "..." })
134
134
  ### 纯编排模式(`/orchestrate`)
135
135
 
136
136
  ```text
137
- /orchestrate # 等价于 /orchestrate on
138
- /orchestrate on # 进入纯编排模式
139
- /orchestrate off # 退出
137
+ /orchestrate 分析上周A股走势 # 本轮开启并直接编排该任务(推荐用法)
138
+ /orchestrate # 本轮开启(按轮生效,无需 on/off)
139
+ /orchestrate on # 持久开启(直到 /orchestrate off)
140
+ /orchestrate off # 退出持久模式
140
141
  ```
141
142
 
142
- 打开后会注入一段「纯编排者」系统提示:主代理只允许通过委派工具派活,角色清单
143
- 从当前 `subagent-director.roles` 动态渲染(无硬编码 role id),未配置角色时提示
144
- 先去配置。该模式依赖宿主的 `commands` `sessionProjections` 服务:标准 profile
145
- (dsh-base)都会提供二者;`sessionProjections` 缺失时命令返回明确错误而不是假装
146
- 成功,`commands` 缺失时命令不注册,插件其余功能不受影响。
143
+ 在消息开头声明 `/orchestrate`(可后接任务文本,如 `/orchestrate 分析上周A股走势`),
144
+ 或用自然语言写「使用orchestrate模式」(含「请使用 orchestrate 模式」「use
145
+ orchestrate mode」等变体),该轮会话即自动进入纯编排模式——类似 `/using aegis`
146
+ 的按轮声明式用法,无需记忆开关状态;未声明时保持普通模式。`/orchestrate <任务>`
147
+ 会把任务文本排入下一轮并唤醒模型,该轮以纯编排模式处理任务。开启后注入一段
148
+ 「纯编排者」系统提示:主代理只允许通过委派工具派活,角色清单从当前
149
+ `subagent-director.roles` 动态渲染(无硬编码 role id)。**未配置角色时**不会注入
150
+ 束缚性的纯编排框架,而是注入一段简短提示,让模型明确告知需要先配置角色并继续
151
+ 以普通模式处理请求(避免「对话无输出」)。该模式依赖宿主的 `commands` 与
152
+ `sessionProjections` 服务:标准 profile(dsh-base)都会提供二者;
153
+ `sessionProjections` 缺失时命令返回明确错误而不是假装成功,`commands` 缺失时
154
+ 命令不注册,插件其余功能不受影响。
147
155
 
148
156
  ## 术语
149
157
 
@@ -156,7 +164,7 @@ subagent_role({ role: "code-reviewer", model: "deepseek-chat", prompt: "..." })
156
164
 
157
165
  ```bash
158
166
  npm install
159
- npm test # vitest(233 用例)
167
+ npm test # vitest(253 用例)
160
168
  npm run typecheck
161
169
  npm run build # host(tsc) + client(rolldown bundle)
162
170
  ```
package/lib/index.d.ts CHANGED
@@ -25,7 +25,7 @@ export { Config } from './config.js';
25
25
  export type { DirectorConfig } from './config.js';
26
26
  export { assertDelegationCapabilities, buildSubagentRequest, createDelegationParameters, createDelegationOutputSchema, createDelegationTool, DELEGATION_TOOL_PREFIX, resolveDelegationMode, renderDelegationResult, type DelegationToolArgs, type DelegationResult, type DelegationRoute, type DelegationModeDecision, type SubagentRequestParts, } from './delegation-tool.js';
27
27
  export { applyGuidance, renderRolesGuidance, GUIDANCE_SECTION_ORDER, GUIDANCE_SECTION_NAME } from './guidance.js';
28
- export { applyOrchestrate, renderOrchestratorPrompt, renderOrchestratorRoles, buildOrchestratorFrame, ORCHESTRATE_SECTION_NAME, ORCHESTRATE_SECTION_ORDER, ORCHESTRATE_PROJECTION_KEY, ORCHESTRATE_EVENT_TYPE, ORCHESTRATE_VALID_MODES, type OrchestrateMode, } from './orchestrate.js';
28
+ export { applyOrchestrate, renderOrchestratorPrompt, renderOrchestratorRoles, renderOrchestratorUnavailableNotice, buildOrchestratorFrame, detectOrchestrateRequest, ORCHESTRATE_SECTION_NAME, ORCHESTRATE_SECTION_ORDER, ORCHESTRATE_PROJECTION_KEY, ORCHESTRATE_EVENT_TYPE, ORCHESTRATE_VALID_MODES, type OrchestrateMode, type OrchestrateRequest, } from './orchestrate.js';
29
29
  export { CLOSE_SUBAGENT_TOOL_NAME, createCloseSubagentTool } from './close-tool.js';
30
30
  export { SUBAGENT_DIRECTOR_SETTINGS_NAMESPACE, SettingsSchema, validateDirectorSettings, installDirectorSettings, type RoleTemplate, type SubagentDirectorSettings, } from './settings.js';
31
31
  export declare const name = "subagent-director";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAWnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAClH,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EACL,oCAAoC,EACpC,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,IAAI,sBAAsB,CAAC;AAExC,eAAO,MAAM,MAAM,UAA4C,CAAC;AAEhE,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,aAAa,EAAE,cAAc,QAmE/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAWnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAClH,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,mCAAmC,EACnC,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EACL,oCAAoC,EACpC,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,IAAI,sBAAsB,CAAC;AAExC,eAAO,MAAM,MAAM,UAA4C,CAAC;AAEhE,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,aAAa,EAAE,cAAc,QAmE/E"}
package/lib/index.js CHANGED
@@ -8,7 +8,7 @@ import { createSettingsSnapshot, installDirectorSettings } from './settings.js';
8
8
  export { Config } from './config.js';
9
9
  export { assertDelegationCapabilities, buildSubagentRequest, createDelegationParameters, createDelegationOutputSchema, createDelegationTool, DELEGATION_TOOL_PREFIX, resolveDelegationMode, renderDelegationResult, } from './delegation-tool.js';
10
10
  export { applyGuidance, renderRolesGuidance, GUIDANCE_SECTION_ORDER, GUIDANCE_SECTION_NAME } from './guidance.js';
11
- export { applyOrchestrate, renderOrchestratorPrompt, renderOrchestratorRoles, buildOrchestratorFrame, ORCHESTRATE_SECTION_NAME, ORCHESTRATE_SECTION_ORDER, ORCHESTRATE_PROJECTION_KEY, ORCHESTRATE_EVENT_TYPE, ORCHESTRATE_VALID_MODES, } from './orchestrate.js';
11
+ export { applyOrchestrate, renderOrchestratorPrompt, renderOrchestratorRoles, renderOrchestratorUnavailableNotice, buildOrchestratorFrame, detectOrchestrateRequest, ORCHESTRATE_SECTION_NAME, ORCHESTRATE_SECTION_ORDER, ORCHESTRATE_PROJECTION_KEY, ORCHESTRATE_EVENT_TYPE, ORCHESTRATE_VALID_MODES, } from './orchestrate.js';
12
12
  export { CLOSE_SUBAGENT_TOOL_NAME, createCloseSubagentTool } from './close-tool.js';
13
13
  export { SUBAGENT_DIRECTOR_SETTINGS_NAMESPACE, SettingsSchema, validateDirectorSettings, installDirectorSettings, } from './settings.js';
14
14
  export const name = 'subagent-director';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,23 @@ export declare const ORCHESTRATE_EVENT_TYPE = "orchestrate/change";
41
41
  /** Accepted mode values. */
42
42
  export declare const ORCHESTRATE_VALID_MODES: readonly ['on', 'off'];
43
43
  export type OrchestrateMode = (typeof ORCHESTRATE_VALID_MODES)[number];
44
+ /** Per-turn orchestrate request parsed from one user message. */
45
+ export type OrchestrateRequest = 'on' | 'off' | undefined;
46
+ /**
47
+ * Detect whether a user message requests pure-orchestrator mode for this turn.
48
+ * Slash form: `/orchestrate` — `off` → off; no args, `on`, or any task text
49
+ * (e.g. `/orchestrate 分析上周A股走势`) → on.
50
+ * Natural-language form (case-insensitive, anchored at the start with an
51
+ * optional politeness prefix so questions like 什么是orchestrate模式 do not
52
+ * false-positive): 使用orchestrate模式 / 使用 orchestrate mode / use orchestrate mode.
53
+ */
54
+ export declare function detectOrchestrateRequest(text: string): OrchestrateRequest;
55
+ /**
56
+ * Short notice injected instead of the pure-orchestrator frame when the mode
57
+ * is on but no roles are configured: the model must inform the user and
58
+ * continue in normal mode — never sit paralyzed (the "returns nothing" bug).
59
+ */
60
+ export declare function renderOrchestratorUnavailableNotice(toolName: string): string;
44
61
  interface OrchestrateState {
45
62
  mode: OrchestrateMode;
46
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../src/orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,yCAAyC;AACzC,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAE3D,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,wEAAwE;AACxE,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AAExD,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D,4BAA4B;AAC5B,eAAO,MAAM,uBAAuB,YAAI,IAAI,EAAE,KAAK,CAAU,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,UAAU,gBAAgB;IACxB,IAAI,EAAE,eAAe,CAAC;CACvB;AAYD,OAAO,QAAQ,gCAAgC,CAAC;IAC9C,UAAU,eAAe;QACvB,oBAAoB,EAAE;YAAE,IAAI,EAAE,eAAe,CAAA;SAAE,CAAC;KACjD;CACF;AAED,OAAO,QAAQ,2CAA2C,CAAC;IACzD,UAAU,yBAAyB;QACjC,wEAAwE;QACxE,WAAW,EAAE,gBAAgB,CAAC;KAC/B;IACD,UAAU,oBAAoB;QAC5B,sEAAsE;QACtE,WAAW,EAAE;YAAE,IAAI,EAAE,eAAe,CAAA;SAAE,CAAC;KACxC;CACF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAepG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUrG;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,MAAM,wBAAwB,EAC3C,QAAQ,EAAE,MAAM,GACf,IAAI,CAuNN"}
1
+ {"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../src/orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAMnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,yCAAyC;AACzC,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAE3D,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,wEAAwE;AACxE,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AAExD,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D,4BAA4B;AAC5B,eAAO,MAAM,uBAAuB,YAAI,IAAI,EAAE,KAAK,CAAU,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAWzE;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK5E;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,eAAe,CAAC;CACvB;AAYD,OAAO,QAAQ,gCAAgC,CAAC;IAC9C,UAAU,eAAe;QACvB,oBAAoB,EAAE;YAAE,IAAI,EAAE,eAAe,CAAA;SAAE,CAAC;KACjD;CACF;AAED,OAAO,QAAQ,2CAA2C,CAAC;IACzD,UAAU,yBAAyB;QACjC,wEAAwE;QACxE,WAAW,EAAE,gBAAgB,CAAC;KAC/B;IACD,UAAU,oBAAoB;QAC5B,sEAAsE;QACtE,WAAW,EAAE;YAAE,IAAI,EAAE,eAAe,CAAA;SAAE,CAAC;KACxC;CACF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAepG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUrG;AA4GD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,MAAM,wBAAwB,EAC3C,QAAQ,EAAE,MAAM,GACf,IAAI,CA8QN"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { createUserMessage } from '@deepseek-ai/dsh-llm';
2
3
  import { KNOWN_SESSION_EVENT_TYPES } from '@deepseek-ai/dsh-session';
3
4
  /** Stable system-prompt section name. */
4
5
  export const ORCHESTRATE_SECTION_NAME = 'orchestrate-mode';
@@ -10,6 +11,38 @@ export const ORCHESTRATE_PROJECTION_KEY = 'orchestrate';
10
11
  export const ORCHESTRATE_EVENT_TYPE = 'orchestrate/change';
11
12
  /** Accepted mode values. */
12
13
  export const ORCHESTRATE_VALID_MODES = ['on', 'off'];
14
+ /**
15
+ * Detect whether a user message requests pure-orchestrator mode for this turn.
16
+ * Slash form: `/orchestrate` — `off` → off; no args, `on`, or any task text
17
+ * (e.g. `/orchestrate 分析上周A股走势`) → on.
18
+ * Natural-language form (case-insensitive, anchored at the start with an
19
+ * optional politeness prefix so questions like 什么是orchestrate模式 do not
20
+ * false-positive): 使用orchestrate模式 / 使用 orchestrate mode / use orchestrate mode.
21
+ */
22
+ export function detectOrchestrateRequest(text) {
23
+ const trimmed = text.trimStart();
24
+ const slash = trimmed.match(/^\/orchestrate(?:\s+(\S+))?/i);
25
+ if (slash) {
26
+ const arg = (slash[1] ?? '').trim().toLowerCase();
27
+ if (arg === 'off')
28
+ return 'off';
29
+ return 'on';
30
+ }
31
+ if (/^(请|麻烦|麻烦你|帮我|请帮我|我想|我要)?\s*使用\s*orchestrate\s*(模式|mode)/i.test(trimmed))
32
+ return 'on';
33
+ if (/^use\s+orchestrate\s+mode/i.test(trimmed))
34
+ return 'on';
35
+ return undefined;
36
+ }
37
+ /**
38
+ * Short notice injected instead of the pure-orchestrator frame when the mode
39
+ * is on but no roles are configured: the model must inform the user and
40
+ * continue in normal mode — never sit paralyzed (the "returns nothing" bug).
41
+ */
42
+ export function renderOrchestratorUnavailableNotice(toolName) {
43
+ return (`Orchestrator mode is active, but no subagent-director roles are configured (subagent-director.roles is empty), so you cannot delegate work via \`${toolName}\`. ` +
44
+ `Inform the user that orchestrator mode requires roles to be configured first, then handle their request in normal mode.`);
45
+ }
13
46
  /**
14
47
  * Build the data-independent framing of the orchestrator prompt for a given
15
48
  * delegation tool name. The role list is appended separately by
@@ -61,6 +94,126 @@ export function renderOrchestratorPrompt(settings, toolName) {
61
94
  7. For independent fan-out you may set run_in_background: true and collect results later; for relay steps set run_in_background: false so you wait for the result before dispatching the next stage.
62
95
  8. Finish only when every subagent has completed. Then output a summary report: who produced what, and remaining todos.`;
63
96
  }
97
+ /**
98
+ * Full orchestrator prompt when roles are configured, else the short
99
+ * unavailable notice. The notice (not the paralyzing pure-orchestrator frame)
100
+ * is what prevents the "conversation returns nothing" failure: a model that
101
+ * cannot delegate must be told to inform the user and continue normally.
102
+ * @param settings - current resolved settings snapshot.
103
+ * @param toolName - the configured model-facing delegation tool name.
104
+ */
105
+ function renderOrchestratorSection(settings, toolName) {
106
+ const roles = settings.roles ?? {};
107
+ const hasRoles = Object.values(roles).some((role) => role !== undefined);
108
+ if (!hasRoles)
109
+ return renderOrchestratorUnavailableNotice(toolName);
110
+ return renderOrchestratorPrompt(settings, toolName);
111
+ }
112
+ /**
113
+ * Text of the user message that started the CURRENT turn, or undefined when
114
+ * the log has no user message in the current turn.
115
+ *
116
+ * The harness appends runtime-context injections (runtime snapshot,
117
+ * system-reminder, memos_context) as SEPARATE `user/message` events AFTER the
118
+ * real user message, so the FIRST user/message at or after the latest
119
+ * `turn/start` — not the latest event — carries the user's actual prompt.
120
+ * Without a `turn/start` (degenerate seed), falls back to the latest
121
+ * user/message. Text blocks are concatenated in order; non-text blocks skipped.
122
+ * @param session - a live Session (or a faithful fake with `.events`).
123
+ */
124
+ function currentTurnUserMessageText(session) {
125
+ const events = session?.events;
126
+ if (!Array.isArray(events))
127
+ return undefined;
128
+ let turnStart = -1;
129
+ for (const ev of events) {
130
+ if (ev && ev.type === 'turn/start' && typeof ev.seq === 'number')
131
+ turnStart = ev.seq;
132
+ }
133
+ for (const ev of events) {
134
+ if (!ev || ev.type !== 'user/message')
135
+ continue;
136
+ if (turnStart >= 0 && typeof ev.seq === 'number' && ev.seq < turnStart)
137
+ continue;
138
+ const blocks = ev.data?.content;
139
+ if (!Array.isArray(blocks))
140
+ return '';
141
+ let text = '';
142
+ for (const b of blocks) {
143
+ if (b && b.type === 'text' && typeof b.text === 'string')
144
+ text += b.text;
145
+ }
146
+ return text;
147
+ }
148
+ return undefined;
149
+ }
150
+ /**
151
+ * Per-turn slash path: an `orchestrate` command/run that happened since the
152
+ * previous turn marks the current turn (the command itself is consumed by the
153
+ * commands service and never appears in a user/message event). The command is
154
+ * "recent" when it sits strictly AFTER the last user message of the previous
155
+ * turn and BEFORE the current turn's `turn/start` — context-injection
156
+ * user/message events inside the current turn do not count as "previous".
157
+ * Without any `turn/start` (degenerate seed) falls back to the strictly
158
+ * between previous/current user-message check. Returns 'on' | 'off' | undefined.
159
+ * @param session - a live Session (or a faithful fake with `.events`).
160
+ */
161
+ function recentOrchestrateCommandRun(session) {
162
+ const events = session?.events;
163
+ if (!Array.isArray(events))
164
+ return undefined;
165
+ let turnStart = -1;
166
+ let cmdSeq = -1;
167
+ let cmdArgs;
168
+ for (const ev of events) {
169
+ if (!ev || typeof ev.seq !== 'number')
170
+ continue;
171
+ if (ev.type === 'turn/start')
172
+ turnStart = ev.seq;
173
+ if (ev.type === 'command/run' && ev.data?.name === 'orchestrate') {
174
+ cmdSeq = ev.seq;
175
+ cmdArgs = ev.data.args;
176
+ }
177
+ }
178
+ if (cmdSeq < 0)
179
+ return undefined;
180
+ if (turnStart >= 0) {
181
+ // The command must have happened after the last user message of the
182
+ // previous turn(s) AND before the current turn started.
183
+ let lastUserBeforeTurn = -1;
184
+ for (const ev of events) {
185
+ if (!ev || ev.type !== 'user/message')
186
+ continue;
187
+ const s = typeof ev.seq === 'number' ? ev.seq : -1;
188
+ if (s >= 0 && s < turnStart && s > lastUserBeforeTurn)
189
+ lastUserBeforeTurn = s;
190
+ }
191
+ if (cmdSeq <= lastUserBeforeTurn || cmdSeq >= turnStart)
192
+ return undefined;
193
+ }
194
+ else {
195
+ // Fallback: strictly between the previous and the current user message.
196
+ let prevUserSeq = -1;
197
+ let currentUserSeq = -1;
198
+ for (const ev of events) {
199
+ if (!ev || ev.type !== 'user/message')
200
+ continue;
201
+ const s = typeof ev.seq === 'number' ? ev.seq : -1;
202
+ if (s < 0)
203
+ continue;
204
+ prevUserSeq = currentUserSeq;
205
+ currentUserSeq = s;
206
+ }
207
+ if (cmdSeq <= prevUserSeq || cmdSeq >= currentUserSeq)
208
+ return undefined;
209
+ }
210
+ const arg = (cmdArgs ?? '').trim().toLowerCase();
211
+ if (arg === 'off')
212
+ return 'off';
213
+ // '' (bare), 'on', or task text (e.g. 分析上周A股走势 — the handler queued
214
+ // it as a follow-up turn) all mark this turn orchestrated.
215
+ return 'on';
216
+ }
64
217
  /**
65
218
  * Wire the `/orchestrate` command, its session projection, and the
66
219
  * orchestrator prompt section into the host. Each host-plane service is
@@ -165,13 +318,12 @@ export function applyOrchestrate(ctx, getSettings, toolName) {
165
318
  const commands = injectedCtx.get('commands');
166
319
  commands.register({
167
320
  name: 'orchestrate',
168
- description: 'Enter pure-orchestrator mode — delegate all work to the subagent-director team. No args defaults to "on".',
169
- input: { hint: 'on|off (no args = on)' },
321
+ description: 'Enter pure-orchestrator mode for this turn /orchestrate <task> (e.g. /orchestrate 分析上周A股走势) or say 使用orchestrate模式. No args = this turn; on = persistent until off.',
322
+ input: { hint: '<task> | on | off (no args = this turn)' },
170
323
  handler: (invocation) => {
171
- const mode = (invocation.rawInput || '').trim().toLowerCase() || 'on';
172
- if (!ORCHESTRATE_VALID_MODES.includes(mode)) {
173
- return { kind: 'error', text: `Invalid: "${invocation.rawInput}". Valid: on|off` };
174
- }
324
+ const raw = (invocation.rawInput || '').trim();
325
+ const lower = raw.toLowerCase();
326
+ const mode = lower || 'on';
175
327
  // Without sessionProjections the projection is never registered, so
176
328
  // /orchestrate cannot take effect. Refuse with an honest message
177
329
  // instead of falsely reporting success (P0 silent-degradation fix).
@@ -186,15 +338,47 @@ export function applyOrchestrate(ctx, getSettings, toolName) {
186
338
  `Provide the dsh-session-projection sessionProjections service to enable orchestrator mode.`,
187
339
  };
188
340
  }
189
- const session = invocation?.agent?.session;
341
+ const agent = invocation?.agent;
342
+ const session = agent?.session;
190
343
  if (session === undefined || typeof session.append !== 'function') {
191
344
  return {
192
345
  kind: 'error',
193
346
  text: `Orchestrator mode "${mode}" was NOT applied: this command invocation carries no agent session to append the mode change to.`,
194
347
  };
195
348
  }
349
+ if (!ORCHESTRATE_VALID_MODES.includes(mode)) {
350
+ // Task text: orchestrate THIS task. The commands service consumes the
351
+ // whole line, so queue the task as a follow-up turn (wakes the agent);
352
+ // the per-turn command/run scan marks that turn orchestrated.
353
+ if (typeof agent?.followup !== 'function') {
354
+ return {
355
+ kind: 'error',
356
+ text: `Orchestrator mode was NOT applied: this agent cannot queue a follow-up turn (no followup method).`,
357
+ };
358
+ }
359
+ agent.followup(createUserMessage({
360
+ content: [{ type: 'text', text: raw }],
361
+ source: { kind: 'user' },
362
+ }));
363
+ const preview = raw.length > 60 ? `${raw.slice(0, 60)}…` : raw;
364
+ return {
365
+ kind: 'success',
366
+ text: `Orchestrator mode: on for this turn — task queued: "${preview}"`,
367
+ };
368
+ }
369
+ if (mode === 'on' && raw === '') {
370
+ // Per-turn: no sticky event. The section detects this command/run
371
+ // and orchestrates the NEXT user-message turn only.
372
+ return {
373
+ kind: 'success',
374
+ text: 'Orchestrator mode: on for this turn. Declare /orchestrate at the start of your message (or say 使用orchestrate模式) to enable it per turn; use /orchestrate on to keep it on until /orchestrate off.',
375
+ };
376
+ }
196
377
  session.append(ORCHESTRATE_EVENT_TYPE, { mode });
197
- return { kind: 'success', text: mode === 'off' ? 'Orchestrator mode: off' : 'Orchestrator mode: on' };
378
+ return {
379
+ kind: 'success',
380
+ text: mode === 'off' ? 'Orchestrator mode: off' : 'Orchestrator mode: on (persistent until /orchestrate off)',
381
+ };
198
382
  },
199
383
  });
200
384
  });
@@ -233,6 +417,28 @@ export function applyOrchestrate(ctx, getSettings, toolName) {
233
417
  // skipped here (no per-assembly re-warning).
234
418
  if (projections === undefined)
235
419
  return '';
420
+ // Per-turn detection (the /using-aegis-like usage): the user message
421
+ // that started THIS turn, or a just-run /orchestrate command, decides
422
+ // this turn. The sticky projection below is only the backward-compat
423
+ // fallback. (Context-injection user/message events after the real
424
+ // message are ignored: currentTurnUserMessageText reads the FIRST
425
+ // message of the turn, and recentOrchestrateCommandRun bounds the
426
+ // command by turn/start, not by those injection events.)
427
+ for (const candidate of sessionCandidates) {
428
+ const msgText = currentTurnUserMessageText(candidate);
429
+ if (msgText !== undefined) {
430
+ const req = detectOrchestrateRequest(msgText);
431
+ if (req === 'on')
432
+ return renderOrchestratorSection(getSettings(), toolName);
433
+ if (req === 'off')
434
+ return '';
435
+ }
436
+ const cmdReq = recentOrchestrateCommandRun(candidate);
437
+ if (cmdReq === 'on')
438
+ return renderOrchestratorSection(getSettings(), toolName);
439
+ if (cmdReq === 'off')
440
+ return '';
441
+ }
236
442
  let resolvedMode;
237
443
  let sawError = false;
238
444
  for (const candidate of sessionCandidates) {
@@ -269,7 +475,7 @@ export function applyOrchestrate(ctx, getSettings, toolName) {
269
475
  // Legitimate off: no section, no warning (intended behavior).
270
476
  if (resolvedMode === 'off')
271
477
  return '';
272
- return renderOrchestratorPrompt(getSettings(), toolName);
478
+ return renderOrchestratorSection(getSettings(), toolName);
273
479
  },
274
480
  });
275
481
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../src/orchestrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../src/orchestrate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-subagent-director",
3
- "version": "0.4.0-beta.1",
3
+ "version": "0.4.0",
4
4
  "description": "Subagent Director: choose an LLM provider/model for each subagent (call args > role binding > plugin default > inherit parent) and plan main-agent/subagent responsibilities with role templates, plus a settings UI.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",