@deepseek-ai/dsh-tool-subagent-control 0.1.5-rc.2 → 0.1.6-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
@@ -3,4 +3,4 @@
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/subagent/tool-subagent-control/README.md
5
5
  README.md: 99ca52dd4a7ea2629441c4d661632b8598c8171d
6
- README.zh.md: 5a22f40b469b35b3a0046c5602560310884ae6a0
6
+ README.zh.md: 1ff49a3179dbe61db1a9353e2fab131082cb29ae
package/README.zh.md CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "全局 send_message、interrupt_agent 与 list_agents 工具,供用户与维护者组合或排查可继续子级的控制。"
2
+ description: "供用户与维护者在组合或调试可继续子级控制功能时使用的全局 send_message、interrupt_agent 与 list_agents 工具。"
3
3
  kind: "package-reference"
4
4
  ---
5
5
 
@@ -9,7 +9,7 @@ kind: "package-reference"
9
9
 
10
10
  ## 概述
11
11
 
12
- `dsh-tool-subagent-control` 为可继续子级添加全局控制工具:`send_message` 在直接 parent 与 child 之间 steer,`interrupt_agent` 停止 child 当前轮次但保留其 inbox 与后代,`list_agents`(来自可单独加载的 `list-agents` 插件)按持久化 id 与标签列出可继续 child。parent 与可继续 child 继承相同的 `send_message` 定义和顺序,因此模型通信不会增加 child 专属工具 schema。是否加载这些工具不会决定委派工具是否启动可继续工作。
12
+ `dsh-tool-subagent-control` 为可继续子级添加全局控制工具:`send_message` 在直接父级与子级之间进行 steering(中途引导),`interrupt_agent` 停止子级当前轮次但保留其收件箱与后代,`list_agents`(来自可单独加载的 `list-agents` 插件)按持久化 ID 与标签列出可继续子级。父级与可继续子级继承相同的 `send_message` 定义和顺序,因此模型通信不会增加子级专属工具 schema。是否加载这些工具不会决定委派工具是否启动可继续工作。
13
13
 
14
14
  ## 目录
15
15
 
@@ -46,15 +46,15 @@ kind: "package-reference"
46
46
 
47
47
  ### send_message
48
48
 
49
- 向 `agent_id` 指定的 Agent 发送消息:任何确切在线 Agent 都可以指定自己的直接可继续 child,而驻留的可继续 child 还可以指定自己的直接 parent。正在工作的目标通过 Steer 在最近的 step 边界接收消息;空闲目标会启动一个轮次,冷状态的直接 child 会通过继续执行生命周期恢复。调用只返回接受结果(被接受消息的稳定 `messageId`),绝不返回回复。失败——不受支持的目标、不可用的 parent、未知 child、缺少描述符而无法恢复的 child,或准入被拒——会明确说明消息未送达。
49
+ 向 `agent_id` 指定的 Agent 发送消息:任何确切在线 Agent 都可以向自己的直接可继续子级发送消息,驻留的可继续子级还可以向自己的直接父级发送消息。正在工作的目标通过 Steer 在最近的步骤边界接收消息;空闲目标会启动一个轮次,冷状态的直接子级会通过继续执行生命周期恢复。调用只返回接受结果(被接受消息的稳定 `messageId`),绝不返回回复。失败——不受支持的目标、不可用的父级、未知子级、缺少描述符而无法恢复的子级,或准入被拒——会明确说明消息未送达。
50
50
 
51
51
  ### interrupt_agent
52
52
 
53
- 只停止目标当前轮次:已排队消息保持暂停直到之后的 `send_message`,后代继续运行,子级仍可接受后续消息。调用在停止请求被接受后立即返回,不等待目标完全停稳;中断已结束的 agent 是被接受的 no-op,而 self、sibling、陈旧与非 ancestor 调用方会收到出错结果。
53
+ 只停止目标当前轮次:已排队消息保持暂停,直到之后调用 `send_message`;后代继续运行,子级仍可接受后续消息。调用在停止请求被接受后立即返回,不等待目标完全停稳;中断已结束的 agent 会被接受并按空操作处理,而自身、同级、陈旧及非祖先调用方会收到出错结果。
54
54
 
55
55
  ### list_agents
56
56
 
57
- 列出调用 agent 下方的可继续子级:`children`(默认)只显示直接子级,`descendants` 按稳定 pre-order 遍历整棵树,并为每个条目标注其持久化直接父级会话 id 与深度。状态来自在线 Agent 注册表——`running`、`idle` 或 `ready`。一次性子级因无法接受 `send_message` 而被有意排除,无法读取的候选项以 diagnostic 呈现。
57
+ 列出调用方 agent 下方的可继续子级:`children`(默认)只显示直接子级,`descendants` 按稳定前序遍历整棵树,并为每个条目标注其持久化直接父级会话 ID 与深度。状态来自在线 Agent 注册表——`running`、`idle` 或 `ready`。一次性子级因无法接受 `send_message` 而被有意排除,无法读取的候选项以诊断信息呈现。
58
58
 
59
59
  -----
60
60
 
@@ -84,7 +84,7 @@ kind: "package-reference"
84
84
  |---|---|
85
85
  | [`src/index.ts`](src/index.ts) | `send_message` 与 `interrupt_agent` 注册 |
86
86
  | [`src/list-agents.ts`](src/list-agents.ts) | `list_agents` 注册:作用域、状态细化、投影 |
87
- | — | 不发布运行时不变式伴生入口;这个模型侧 adapter 没有独立 lifecycle stream;delivery 与 activation 关系由 subagent service 负责。 |
87
+ | — | 不发布运行时不变式伴生入口;这个面向模型的适配器没有独立的生命周期流;投递与激活关系由其调用的 subagent 服务负责。 |
88
88
 
89
89
  </details>
90
90
 
@@ -126,7 +126,7 @@ kind: "package-reference"
126
126
 
127
127
  #### Token 影响
128
128
 
129
- 每次调用产生一条简短确认消息;被中断轮次的中止只在子级自己的 transcript 中可见。
129
+ 每次调用产生一条简短确认消息;被中断轮次的中止只在子级自己的 transcript(文本记录)中可见。
130
130
 
131
131
  #### KV Cache 影响
132
132
 
@@ -136,11 +136,11 @@ kind: "package-reference"
136
136
 
137
137
  #### 模型看到什么
138
138
 
139
- 接受时返回 `message delivered to agent <agent_id>`;规范输出携带被接受的 `messageId`。失败——非相邻目标、不可用的 parent、未知 child、缺少描述符而无法恢复的 child,或准入被拒——会成为出错的结果,其消息说明该消息未送达。
139
+ 接受时返回 `message delivered to agent <agent_id>`;规范输出携带被接受的 `messageId`。失败——非相邻目标、不可用的父级、未知子级、缺少描述符而无法恢复的子级,或准入被拒——会成为出错的结果,其消息说明该消息未送达。
140
140
 
141
141
  #### Token 影响
142
142
 
143
- 每次调用产生一条简短确认消息;目标的响应绝不会通过本次调用返回。child 使用同一个工具和初始任务中的 parent id,把选定内容追加到 parent 历史中。
143
+ 每次调用产生一条简短确认消息;目标的响应绝不会通过本次调用返回。子级使用同一个工具,并传入其初始任务中的父级 ID,将选定内容追加到父级历史中。
144
144
 
145
145
  #### KV Cache 影响
146
146
 
@@ -150,11 +150,11 @@ kind: "package-reference"
150
150
 
151
151
  #### 模型看到什么
152
152
 
153
- 按稳定目录顺序,每个可继续子级占一行:`<id> [<status>] — <label>`(`running` 表示 driver 活跃,`idle` 表示驻留但处于轮次之间,`ready` 表示仅存于存储,可恢复而非终态),另为无法读取的候选项渲染 `<id> [diagnostic: <reason>]`。`descendants` scope 会在每行 label 破折号之前按 pre-order 插入 ` parent=<id> depth=<n>`。一次性子级会被有意排除;`(no subagents)` 表示投影后没有留下可继续子级或 diagnostic。
153
+ 按稳定目录顺序,每个可继续子级占一行:`<id> [<status>] — <label>`(`running` 表示驱动器活跃,`idle` 表示驻留但处于轮次之间,`ready` 表示仅存于存储,可恢复而非终态),另为无法读取的候选项渲染 `<id> [diagnostic: <reason>]`。`descendants` 作用域会在每行标签的破折号之前按前序插入 ` parent=<id> depth=<n>`。一次性子级会被有意排除;`(no subagents)` 表示投影后没有留下可继续子级或诊断信息。
154
154
 
155
155
  #### Token 影响
156
156
 
157
- 随所列可继续子级数量线性增长——`descendants` scope 下为整棵树;没有 cursor 或上限,因此长期存活且有许多持久化子级的父级每次调用都会承担完整列表成本。
157
+ 随所列可继续子级数量线性增长——`descendants` 作用域下为整棵树;没有游标或上限,因此长期存活且有许多持久化子级的父级每次调用都会承担完整列表成本。
158
158
 
159
159
  #### KV Cache 影响
160
160
 
@@ -168,7 +168,7 @@ kind: "package-reference"
168
168
  这些限制说明控制工具无法观察或引导什么;它们是当前包约束。
169
169
 
170
170
  - **已投递消息没有独立结果**——接受时只返回其 inbox `messageId`;目标后续工作会落入该目标的持久化会话,绝不会通过本工具收集。回复是另一条显式指定地址的 `send_message`,而非本次调用的结果。
171
- - **只有受支持的相邻 Agent 可以通信**——每个 sender 都可以指定直接可继续 child,只有具备驻留可继续 Activation 的 sender 可以指定自己的直接 parent,且该 parent 必须仍在线;sibling 与更深的后代不能作为消息目标,只有直接 child 投递支持冷激活。
171
+ - **只有受支持的相邻 Agent 可以通信**——每个发送方都可以向直接可继续子级发送消息;只有具备驻留可继续 Activation 的发送方可以向自己的直接父级发送消息,且该父级必须仍在线;同级与更深的后代不能作为消息目标,只有向直接子级投递才支持冷激活。
172
172
  - **列表是快照,而非投递承诺**——它可能与发布、dispose(资源释放)或后续消息发生竞态,另一个进程也可能激活当前进程报告为 `ready` 的子级;跨进程准确性需要共享租约。`interrupt_agent` 自己执行权威的在线 lineage 检查,因此过期的发现结果不会授予权限。
173
173
  - **没有分页或删除**——系统返回完整且稳定排序的集合;只要子级会话仍在持久化存储中,它就会继续出现在列表中,服务级上限或删除操作留待后续产品决策。
174
174
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-tool-subagent-control",
3
3
  "description": "Globally named send_message, interrupt_agent, and list_agents tools over ctx.subagents continuations",
4
- "version": "0.1.5-rc.2",
4
+ "version": "0.1.6-alpha.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -33,29 +33,29 @@
33
33
  "license": "MIT",
34
34
  "peerDependencies": {
35
35
  "@deepseek-ai/cordis": "^4.0.2",
36
- "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
37
- "@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
38
- "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
39
- "@deepseek-ai/dsh-session": "^0.1.5-rc.2"
36
+ "@deepseek-ai/dsh-llm": "^0.1.6-alpha.1",
37
+ "@deepseek-ai/dsh-session": "^0.1.6-alpha.1",
38
+ "@deepseek-ai/dsh-subagent": "^0.1.6-alpha.1",
39
+ "@deepseek-ai/dsh-tools": "^0.1.6-alpha.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@deepseek-ai/cordis": "^4.0.2",
43
- "@deepseek-ai/dsh-agent-loop": "^0.1.5-rc.2",
44
- "@deepseek-ai/dsh-agent-loop-testkit": "^0.1.5-rc.2",
45
- "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
46
- "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
47
- "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
48
- "@deepseek-ai/dsh-session-persistence": "^0.1.5-rc.2",
49
- "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.5-rc.2",
50
- "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
51
- "@deepseek-ai/dsh-session-query": "^0.1.5-rc.2",
52
- "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
53
- "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.5-rc.2",
54
- "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.5-rc.2",
55
- "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
43
+ "@deepseek-ai/dsh-agent": "^0.1.6-alpha.1",
44
+ "@deepseek-ai/dsh-agent-loop": "^0.1.6-alpha.1",
45
+ "@deepseek-ai/dsh-agent-loop-testkit": "^0.1.6-alpha.1",
46
+ "@deepseek-ai/dsh-llm": "^0.1.6-alpha.1",
47
+ "@deepseek-ai/dsh-session": "^0.1.6-alpha.1",
48
+ "@deepseek-ai/dsh-session-persistence": "^0.1.6-alpha.1",
49
+ "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.6-alpha.1",
50
+ "@deepseek-ai/dsh-session-projection": "^0.1.6-alpha.1",
51
+ "@deepseek-ai/dsh-session-query": "^0.1.6-alpha.1",
52
+ "@deepseek-ai/dsh-subagent": "^0.1.6-alpha.1",
53
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.6-alpha.1",
54
+ "@deepseek-ai/dsh-tools": "^0.1.6-alpha.1",
55
+ "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.6-alpha.1"
56
56
  },
57
57
  "dependencies": {
58
- "@deepseek-ai/dsh-brand": "^0.1.5-rc.2",
59
- "@deepseek-ai/dsh-util-values": "^0.1.5-rc.2"
58
+ "@deepseek-ai/dsh-brand": "^0.1.6-alpha.1",
59
+ "@deepseek-ai/dsh-util-values": "^0.1.6-alpha.1"
60
60
  }
61
61
  }