@deepseek-ai/dsh-tool-subagent-control 0.1.7-alpha.2 → 0.1.7-rc.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
@@ -1,6 +1,106 @@
1
- # Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
2
- # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
- # after editing either side, bring the other along and re-record with:
1
+ # Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading
2
+ # section, a hash of its English and Chinese blocks outside code blocks and generated regions.
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
- README.md: 2cfa000f1ba9f7950b28369a9b7bd3523610b579
6
- README.zh.md: f2154fde965899e7b4f30271846bce52414b010d
5
+ /:
6
+ en: 5413b8e52a0c8e3d
7
+ zh: 9b6d0385209ff9bb
8
+ /deepseek-ai-dsh-tool-subagent-control:
9
+ en: 465d36925c792167
10
+ zh: 269cac314f638827
11
+ /deepseek-ai-dsh-tool-subagent-control/summary:
12
+ en: 7464eb99b6f618eb
13
+ zh: 8c7628c8e9f163ca
14
+ /deepseek-ai-dsh-tool-subagent-control/table-of-contents:
15
+ en: d152484eb41ac6b4
16
+ zh: 09388d293f9be9cb
17
+ /deepseek-ai-dsh-tool-subagent-control/use-this-package:
18
+ en: 27c5bbe682f0b72b
19
+ zh: b16aeb2c43f3692e
20
+ /deepseek-ai-dsh-tool-subagent-control/use-this-package/minimal-configuration:
21
+ en: 4a52c81317ec9001
22
+ zh: ebd9f1ba920da50a
23
+ /deepseek-ai-dsh-tool-subagent-control/use-this-package/send-message:
24
+ en: d80bb1df2eb740b7
25
+ zh: e3203d9868a82910
26
+ /deepseek-ai-dsh-tool-subagent-control/use-this-package/interrupt-agent:
27
+ en: 01dd41fe11f294d7
28
+ zh: f45a2e4073c0b206
29
+ /deepseek-ai-dsh-tool-subagent-control/use-this-package/list-agents:
30
+ en: b777ad75f0eb7a59
31
+ zh: 19275aba6573a917
32
+ /deepseek-ai-dsh-tool-subagent-control/understand-the-implementation:
33
+ en: c5cdf01a78c990f2
34
+ zh: 53c180d726ce4502
35
+ /deepseek-ai-dsh-tool-subagent-control/understand-the-implementation/design-concept:
36
+ en: 0af7238c690ee8d6
37
+ zh: 5049eea23770ffed
38
+ /deepseek-ai-dsh-tool-subagent-control/understand-the-implementation/delivery-and-signal-ownership:
39
+ en: 4c7698ccea49a60b
40
+ zh: fbf129ff583e6ab9
41
+ /deepseek-ai-dsh-tool-subagent-control/understand-the-implementation/listing-projection:
42
+ en: 70e344022e6e535e
43
+ zh: 355488590648a82e
44
+ /deepseek-ai-dsh-tool-subagent-control/understand-the-implementation/source-map:
45
+ en: a2a918cbad1a8313
46
+ zh: 5bcddba1b2bdd26e
47
+ /deepseek-ai-dsh-tool-subagent-control/further-exploration:
48
+ en: df2bf39d0ffffd43
49
+ zh: 4cd02551f7433c90
50
+ /deepseek-ai-dsh-tool-subagent-control/model-experience:
51
+ en: 215e7ba838619b7b
52
+ zh: a311da3843709f90
53
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/tool-schema:
54
+ en: e4c7376d4f29dbd5
55
+ zh: 6b7a9eaf69c9ea53
56
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/tool-schema/what-the-model-sees:
57
+ en: a63be096ee9c4873
58
+ zh: cd1bd116ccc66318
59
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/tool-schema/token-effect:
60
+ en: db207dc8d5860684
61
+ zh: ad2663b4967fbca9
62
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/tool-schema/kv-cache-effect:
63
+ en: 4b77d42b96b3519d
64
+ zh: dd393d8f0f6536c1
65
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/interrupt-result:
66
+ en: d64e936e83e89a2b
67
+ zh: b9905c33af6cca45
68
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/interrupt-result/what-the-model-sees:
69
+ en: 89305619897680ba
70
+ zh: e610a844fc09c53f
71
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/interrupt-result/token-effect:
72
+ en: 5d1bcef28b5f18da
73
+ zh: 027d67d93d660e76
74
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/interrupt-result/kv-cache-effect:
75
+ en: 4a629edb36a17e32
76
+ zh: 5a7539cfbf404c54
77
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/delivery-result:
78
+ en: ab964e307bd37dca
79
+ zh: 03f975252f838a42
80
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/delivery-result/what-the-model-sees:
81
+ en: 4a0a4955589012ae
82
+ zh: 2bbbb5196a8aa4fd
83
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/delivery-result/token-effect:
84
+ en: 0f134e37e4bd9965
85
+ zh: ceb858d01266e976
86
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/delivery-result/kv-cache-effect:
87
+ en: f5d5f97a153f7c70
88
+ zh: 3d6bc05b9eadfbc2
89
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/listing-result:
90
+ en: 094e55d258f2ec2e
91
+ zh: f364bc9046530bff
92
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/listing-result/what-the-model-sees:
93
+ en: efbbd1e36c7b2edd
94
+ zh: a8a95475666ed1dc
95
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/listing-result/token-effect:
96
+ en: 4688e849b3143dfc
97
+ zh: f22b5520c454f9e7
98
+ /deepseek-ai-dsh-tool-subagent-control/model-experience/listing-result/kv-cache-effect:
99
+ en: 4a629edb36a17e32
100
+ zh: 5a7539cfbf404c54
101
+ /deepseek-ai-dsh-tool-subagent-control/known-limitations-and-deferred-work:
102
+ en: 31cd8a1934cf0093
103
+ zh: 2fd07e05c8e58e9a
104
+ /deepseek-ai-dsh-tool-subagent-control/known-limitations-and-deferred-work/dev-note:
105
+ en: e67f633dc6fe7773
106
+ zh: 3bb0c20c93f16f98
package/README.md CHANGED
@@ -54,7 +54,7 @@ Stops only the target's current turn: queued messages stay parked until a later
54
54
 
55
55
  ### list_agents
56
56
 
57
- Lists the continuable children below the calling agent: `children` (default) reads direct children from the parent catalog without opening child logs; `descendants` walks the whole tree in stable pre-order, annotating each entry with its durable direct-parent session id and depth. Status comes from the live Agent registry — `running` or `inactive`. One-shot children are intentionally absent because they cannot accept `send_message`, and unreadable candidates appear as diagnostics only in `descendants` scope.
57
+ Lists the continuable children below the calling agent: `children` (default) reads direct children from the parent catalog without opening child logs; `descendants` recursively reads child catalogs in stable pre-order, annotating each entry with its durable direct-parent session id and depth. Status comes from the live Agent registry — `running` or `inactive`. Readable one-shot children are omitted from output but their catalogs remain traversal nodes. Unknown modes and unreadable child catalogs, including one-shot children, appear as diagnostics only in `descendants` scope. Ordinary Session forks are not catalog entries, so neither those forks nor their descendants are listed from the source Session.
58
58
 
59
59
  -----
60
60
 
@@ -76,7 +76,7 @@ The tool forwards its execution signal, which owns admission only until inbox ac
76
76
 
77
77
  ### Listing projection
78
78
 
79
- `list_agents` derives the root id from the calling agent, reads the service catalog without a cursor, refines each candidate's status through the live Agent registry, and omits one-shot children because they cannot accept `send_message`. Diagnostics keep their positions in the descendants scope and never expose descriptor contents.
79
+ `list_agents` derives the root id from the calling agent, reads the service catalog without a cursor, refines each candidate's status through the live Agent registry, and omits one-shot children because they cannot accept `send_message`. Descendant traversal preserves each parent catalog's event order. Unknown modes produce diagnostics while their catalogs remain traversable; unreadable catalogs produce diagnostics and stop that branch. Descendants absent from reachable catalogs cannot be discovered.
80
80
 
81
81
  ### Source map
82
82
 
@@ -150,11 +150,11 @@ Append-only; newly visible content follows the reusable request prefix and does
150
150
 
151
151
  #### What the model sees
152
152
 
153
- One line per continuable child in stable catalog order: `<id> [<status>] — <label>` (`running` = executing a turn; `inactive` = no turn executing, whether loaded or stored; neither status describes task completion or outcome). Only `descendants` scope adds `<id> [diagnostic: <reason>]` for a candidate that could not be read. The `descendants` scope inserts ` parent=<id> depth=<n>` before the label dash on every line, in pre-order. One-shot children are intentionally absent; `(no subagents)` means no continuable child or diagnostic survived the projection.
153
+ One line per continuable child in stable catalog order: `<id> [<status>] — <label>` (`running` = executing a turn; `inactive` = no turn executing, whether loaded or stored; neither status describes task completion or outcome). Only `descendants` scope adds `<id> [diagnostic: <reason>]` for an unknown mode or unreadable child catalog, including an unreadable one-shot child. The `descendants` scope inserts ` parent=<id> depth=<n>` before the label dash on every line, in pre-order. Readable one-shot children are omitted; `(no subagents)` means no continuable child or diagnostic survived the projection.
154
154
 
155
155
  #### Token effect
156
156
 
157
- Grows linearly with the listed continuable children — the whole tree under the `descendants` scope; there is no cursor or cap, so long-lived parents with many persisted children pay the full list each call.
157
+ Grows linearly with the listed continuable children and diagnostics — reachable catalog descendants under the `descendants` scope; there is no cursor or cap, so long-lived parents with many persisted children pay the full list each call.
158
158
 
159
159
  #### KV Cache effect
160
160
 
package/README.zh.md CHANGED
@@ -54,7 +54,7 @@ kind: "package-reference"
54
54
 
55
55
  ### list_agents
56
56
 
57
- 列出调用方 agent 下方的可继续子级:`children`(默认)从父目录读取直接子级,不打开子日志;`descendants` 按稳定前序遍历整棵树,并为每个条目标注其持久化直接父级会话 ID 与深度。状态来自在线 Agent 注册表——`running` 或 `inactive`。一次性子级因无法接受 `send_message` 而被有意排除,无法读取的候选项仅在 `descendants` 作用域中以诊断信息呈现。
57
+ 列出调用方 agent 下方的可继续子级:`children`(默认)从父目录读取直接子级,不打开子日志;`descendants` 按稳定前序递归读取子级目录,并为每个条目标注其持久化直接父级会话 ID 与深度。状态来自在线 Agent 注册表——`running` 或 `inactive`。可读取的一次性子级不出现在输出中,但其目录仍是遍历节点。未知模式与无法读取的子级目录(包括一次性子级)仅在 `descendants` 作用域中以诊断信息呈现。普通 Session fork 不是目录条目,因此从源 Session 列表中既无法发现这些 fork,也无法发现其后代。
58
58
 
59
59
  -----
60
60
 
@@ -76,7 +76,7 @@ kind: "package-reference"
76
76
 
77
77
  ### 列表投影
78
78
 
79
- `list_agents` 从调用 agent 推导根 id,不使用 cursor 读取服务目录,通过在线 Agent 注册表细化每个候选的状态,并省略无法接受 `send_message` 的一次性子级。diagnostic 在 descendants scope 中保留其位置,且绝不暴露描述符内容。
79
+ `list_agents` 从调用 agent 推导根 id,不使用 cursor 读取服务目录,通过在线 Agent 注册表细化每个候选的状态,并省略无法接受 `send_message` 的一次性子级。后代遍历保留每个父目录的事件顺序。未知模式产生诊断,但其目录仍可遍历;无法读取的目录产生诊断,并停止该分支。可达目录中不存在的后代无法被发现。
80
80
 
81
81
  ### 源码地图
82
82
 
@@ -150,11 +150,11 @@ kind: "package-reference"
150
150
 
151
151
  #### 模型看到什么
152
152
 
153
- 按稳定目录顺序,每个可继续子级占一行:`<id> [<status>] — <label>`(`running` 表示正在执行轮次;`inactive` 表示没有轮次在执行,包括已加载和仅存于存储的情况;两种状态均不表示任务完成或结果)。仅 `descendants` 作用域会为无法读取的候选项添加 `<id> [diagnostic: <reason>]`。`descendants` 作用域会在每行标签的破折号之前按前序插入 ` parent=<id> depth=<n>`。一次性子级会被有意排除;`(no subagents)` 表示投影后没有留下可继续子级或诊断信息。
153
+ 按稳定目录顺序,每个可继续子级占一行:`<id> [<status>] — <label>`(`running` 表示正在执行轮次;`inactive` 表示没有轮次在执行,包括已加载和仅存于存储的情况;两种状态均不表示任务完成或结果)。仅 `descendants` 作用域会为未知模式或无法读取的子级目录添加 `<id> [diagnostic: <reason>]`,包括无法读取的一次性子级。`descendants` 作用域会在每行标签的破折号之前按前序插入 ` parent=<id> depth=<n>`。可读取的一次性子级会被省略;`(no subagents)` 表示投影后没有留下可继续子级或诊断信息。
154
154
 
155
155
  #### Token 影响
156
156
 
157
- 随所列可继续子级数量线性增长——`descendants` 作用域下为整棵树;没有游标或上限,因此长期存活且有许多持久化子级的父级每次调用都会承担完整列表成本。
157
+ 随所列可继续子级和诊断数量线性增长——`descendants` 作用域下为目录可达后代;没有游标或上限,因此长期存活且有许多持久化子级的父级每次调用都会承担完整列表成本。
158
158
 
159
159
  #### KV Cache 影响
160
160
 
package/lib/index.js CHANGED
@@ -21,7 +21,7 @@ const inject = ["tools", "subagents"];
21
21
  function apply(ctx) {
22
22
  ctx.tools.register(markAdjacentAgentSendMessageTool(defineTool({
23
23
  name: "send_message",
24
- description: "Send a message to a direct continuable child by its agent id. If you are a resident continuable child, you may also target your direct parent. If the target is still working, the message steers its nearest step; if it is inactive, the message starts or resumes a turn. This call returns no answer from the agent — only confirmation that the message was delivered. A failure means the message was NOT delivered.",
24
+ description: "Send a message to an agent. A working agent receives it at its next step; an idle agent starts a new turn with it. Returns delivery confirmation, not the agent's answer.",
25
25
  parameters: {
26
26
  agent_id: {
27
27
  type: "string",
@@ -60,11 +60,11 @@ function apply(ctx) {
60
60
  })));
61
61
  ctx.tools.register(defineTool({
62
62
  name: "interrupt_agent",
63
- description: "Request cancellation of a background agent's current turn by its agent id. The target may be your direct child or a deeper agent created under you. Only the current turn stops: messages already queued for the agent stay parked until a later send_message, agents it started keep running, and the agent itself stays available for follow-ups. This call returns as soon as the stop request is accepted, so the target may keep running briefly; interrupting an agent that already finished is an accepted no-op.",
63
+ description: "Ask a subagent to stop its current work. This call returns without waiting for it to stop. You can continue a direct child's conversation later with send_message. Subagents it started will keep running.",
64
64
  parameters: { agent_id: {
65
65
  type: "string",
66
66
  required: true,
67
- description: "The agent id of the running agent to interrupt."
67
+ description: "The id of an agent created under you: your direct child or a deeper descendant."
68
68
  } },
69
69
  output: {
70
70
  schema: {
@@ -20,10 +20,8 @@ export const inject = ['tools', 'subagents'];
20
20
  export function apply(ctx) {
21
21
  ctx.tools.register(markAdjacentAgentSendMessageTool(defineTool({
22
22
  name: 'send_message',
23
- description: 'Send a message to a direct continuable child by its agent id. If you are a resident continuable child, '
24
- + 'you may also target your direct parent. If the target is still working, the message steers its nearest step; '
25
- + 'if it is inactive, the message starts or resumes a turn. This call returns no answer from the agent — only confirmation '
26
- + 'that the message was delivered. A failure means the message was NOT delivered.',
23
+ description: 'Send a message to an agent. A working agent receives it at its next step; an idle agent starts a new turn with it. '
24
+ + 'Returns delivery confirmation, not the agent\'s answer.',
27
25
  parameters: {
28
26
  agent_id: {
29
27
  type: 'string',
@@ -61,17 +59,14 @@ export function apply(ctx) {
61
59
  })));
62
60
  ctx.tools.register(defineTool({
63
61
  name: 'interrupt_agent',
64
- description: 'Request cancellation of a background agent\'s current turn by its agent id. The target may be your '
65
- + 'direct child or a deeper agent created under you. Only the current turn stops: messages already '
66
- + 'queued for the agent stay parked until a later send_message, agents it started keep running, and '
67
- + 'the agent itself stays available for follow-ups. This call returns as soon as the stop request is '
68
- + 'accepted, so the target may keep running briefly; interrupting an agent that already finished is '
69
- + 'an accepted no-op.',
62
+ description: 'Ask a subagent to stop its current work. This call returns without waiting for it to stop. '
63
+ + 'You can continue a direct child\'s conversation later with send_message. '
64
+ + 'Subagents it started will keep running.',
70
65
  parameters: {
71
66
  agent_id: {
72
67
  type: 'string',
73
68
  required: true,
74
- description: 'The agent id of the running agent to interrupt.',
69
+ description: 'The id of an agent created under you: your direct child or a deeper descendant.',
75
70
  },
76
71
  },
77
72
  output: {
@@ -43,23 +43,16 @@ function project(agents, entry, position) {
43
43
  export function apply(ctx) {
44
44
  ctx.tools.register(defineTool({
45
45
  name: 'list_agents',
46
- description: 'List your continuable background subagents by durable id and label. Use it to recall which ones '
47
- + 'you started, not to poll for completion — you are told when one finishes. Status comes from the live '
48
- + 'registry: running means the agent is working right now; inactive means no turn is executing, whether '
49
- + 'the child is loaded or must be resumed. inactive does not describe task completion, success, failure, '
50
- + 'or waiting for other agents. A `send_message` steers a running child at its nearest step boundary '
51
- + 'or starts or resumes a turn for an inactive child, and a direct child remains a `send_message` '
52
- + 'candidate in every status. The snapshot is not a delivery '
53
- + 'promise — `send_message` performs the authoritative check and may still fail. Children that could '
54
- + 'not be read are reported as diagnostics only in `descendants` scope. Scope `descendants` '
55
- + 'walks the whole tree below you in stable pre-order, annotating each entry with its durable direct-parent '
56
- + 'session id and depth. You may use `send_message` only for depth-1 entries; deeper entries are '
57
- + 'candidates for `interrupt_agent` only.',
46
+ description: 'List subagents you started, with their ids, labels, and status. '
47
+ + 'running means it is working; inactive means it is not currently working. '
48
+ + 'You will be notified when a subagent finishes; there is no need to keep checking its status. '
49
+ + 'Use send_message to continue the conversation.',
58
50
  parameters: {
59
51
  scope: {
60
52
  type: 'string',
61
53
  enum: ['children', 'descendants'],
62
- description: 'children (default) lists direct children only; descendants walks the complete tree below you.',
54
+ description: 'children (default) lists direct children, which accept send_message in any status. '
55
+ + 'descendants lists the whole tree below you with each entry\'s parent session id and depth; entries deeper than 1 accept only interrupt_agent.',
63
56
  },
64
57
  },
65
58
  output: {
@@ -128,7 +121,6 @@ export function apply(ctx) {
128
121
  .filter(entry => entry !== undefined);
129
122
  }
130
123
  case 'descendants': {
131
- // Complete-corpus reads can await storage, so they observe tool cancellation.
132
124
  const entries = await ctx.subagents.listDescendants(parent.id, exec.signal);
133
125
  return entries
134
126
  .map(entry => project(ctx.agents, entry, entry))
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.7-alpha.2",
4
+ "version": "0.1.7-rc.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -32,30 +32,30 @@
32
32
  ],
33
33
  "license": "MIT",
34
34
  "peerDependencies": {
35
- "@deepseek-ai/cordis": "~4.0.4",
36
- "@deepseek-ai/dsh-llm": "0.1.7-alpha.2",
37
- "@deepseek-ai/dsh-session": "0.1.7-alpha.2",
38
- "@deepseek-ai/dsh-subagent": "0.1.7-alpha.2",
39
- "@deepseek-ai/dsh-tools": "0.1.7-alpha.2"
35
+ "@deepseek-ai/dsh-llm": "0.1.7-rc.2",
36
+ "@deepseek-ai/dsh-session": "0.1.7-rc.2",
37
+ "@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
38
+ "@deepseek-ai/dsh-tools": "0.1.7-rc.2",
39
+ "@deepseek-ai/cordis": "~4.0.4"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@deepseek-ai/cordis": "~4.0.4",
43
- "@deepseek-ai/dsh-agent": "0.1.7-alpha.2",
44
- "@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-alpha.2",
45
- "@deepseek-ai/dsh-llm": "0.1.7-alpha.2",
46
- "@deepseek-ai/dsh-agent-loop": "0.1.7-alpha.2",
47
- "@deepseek-ai/dsh-session": "0.1.7-alpha.2",
48
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-alpha.2",
49
- "@deepseek-ai/dsh-session-projection": "0.1.7-alpha.2",
50
- "@deepseek-ai/dsh-session-persistence": "0.1.7-alpha.2",
51
- "@deepseek-ai/dsh-session-query": "0.1.7-alpha.2",
52
- "@deepseek-ai/dsh-subagent": "0.1.7-alpha.2",
53
- "@deepseek-ai/dsh-subagent-fork-in-process": "0.1.7-alpha.2",
54
- "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-alpha.2",
55
- "@deepseek-ai/dsh-tools": "0.1.7-alpha.2"
43
+ "@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2",
44
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-rc.2",
45
+ "@deepseek-ai/dsh-agent": "0.1.7-rc.2",
46
+ "@deepseek-ai/dsh-session": "0.1.7-rc.2",
47
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.2",
48
+ "@deepseek-ai/dsh-llm": "0.1.7-rc.2",
49
+ "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2",
50
+ "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2",
51
+ "@deepseek-ai/dsh-session-query": "0.1.7-rc.2",
52
+ "@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
53
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-rc.2",
54
+ "@deepseek-ai/dsh-subagent-fork-in-process": "0.1.7-rc.2",
55
+ "@deepseek-ai/dsh-tools": "0.1.7-rc.2"
56
56
  },
57
57
  "dependencies": {
58
- "@deepseek-ai/dsh-util-values": "0.1.7-alpha.2",
59
- "@deepseek-ai/dsh-brand": "0.1.7-alpha.2"
58
+ "@deepseek-ai/dsh-brand": "0.1.7-rc.2",
59
+ "@deepseek-ai/dsh-util-values": "0.1.7-rc.2"
60
60
  }
61
61
  }