@deepseek-ai/dsh-subagent-codex 0.2.1-alpha.3 → 0.2.1-alpha.4

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
@@ -9,8 +9,8 @@
9
9
  en: c3f2c833cb91228d
10
10
  zh: 3267d24936c5973f
11
11
  /deepseek-ai-dsh-subagent-codex/summary:
12
- en: 6eade95bb21eae52
13
- zh: 72de7d6fcdc0c31a
12
+ en: 895eb3910428c51e
13
+ zh: c5eb0d32c789520d
14
14
  /deepseek-ai-dsh-subagent-codex/table-of-contents:
15
15
  en: d152484eb41ac6b4
16
16
  zh: 09388d293f9be9cb
@@ -27,8 +27,8 @@
27
27
  en: a36399c7ac98724d
28
28
  zh: d43815e08689da6b
29
29
  /deepseek-ai-dsh-subagent-codex/use-this-package/what-you-get:
30
- en: 4b271f17f16fb162
31
- zh: 154c909023f1366b
30
+ en: abd75016d4c7f61e
31
+ zh: 904158c896bd21ce
32
32
  /deepseek-ai-dsh-subagent-codex/use-this-package/failure-and-recovery:
33
33
  en: 4ffe0312c5a8f722
34
34
  zh: 532a1997e9ae825b
@@ -42,8 +42,8 @@
42
42
  en: 36647129f061610f
43
43
  zh: 42947c700d1d9202
44
44
  /deepseek-ai-dsh-subagent-codex/understand-the-implementation/run-flow:
45
- en: 19b10ff145644564
46
- zh: c015d530f1bd227e
45
+ en: b8244d26ba25f468
46
+ zh: 6cb77dfece19cce7
47
47
  /deepseek-ai-dsh-subagent-codex/further-exploration:
48
48
  en: e2e35a40060c1ba8
49
49
  zh: c1676579ebac7c7f
@@ -66,17 +66,17 @@
66
66
  en: 4c391bb16e3cd380
67
67
  zh: ab3847efe35fa6dc
68
68
  /deepseek-ai-dsh-subagent-codex/model-experience/parent-scheduling-and-results-indirectly/what-the-model-sees:
69
- en: 18dcb74d6a52e96a
70
- zh: 068c57f9fd959ecb
69
+ en: 9ca324fb0b034a6c
70
+ zh: 83ff78167bd31a14
71
71
  /deepseek-ai-dsh-subagent-codex/model-experience/parent-scheduling-and-results-indirectly/token-effect:
72
- en: 0c436fb0897a6eca
73
- zh: 7ec0a953d0232af2
72
+ en: f618e05fde7c8b57
73
+ zh: 7306c4535b6fa4c0
74
74
  /deepseek-ai-dsh-subagent-codex/model-experience/parent-scheduling-and-results-indirectly/kv-cache-effect:
75
75
  en: 19f1316ea4bb1bb9
76
76
  zh: 181231ddffdc8494
77
77
  /deepseek-ai-dsh-subagent-codex/known-limitations-and-deferred-work:
78
- en: 46cbb0a3f4f81a5a
79
- zh: a27faaaefe61158f
78
+ en: e55a466c946cbce4
79
+ zh: 96dfb5c8f8210927
80
80
  /deepseek-ai-dsh-subagent-codex/known-limitations-and-deferred-work/dev-note:
81
81
  en: cacc98025ed8913e
82
82
  zh: e7673a3087ec0c62
package/README.md CHANGED
@@ -9,7 +9,7 @@ English | [中文](README.zh.md)
9
9
 
10
10
  ## Summary
11
11
 
12
- Install `@deepseek-ai/dsh-subagent-codex` into a Profile when delegated work should run in a genuine, unattended Codex session in the parent Session's workspace. Each delegation uses a fresh isolated Codex thread for one self-contained text task and returns only its final answer or a safe failure diagnostic. Native Codex configuration and authentication remain authoritative, while `permissionMode` selects the non-interactive approval and sandbox behavior. The Bundle supplies a compatible native Codex payload and adds its delegation tool as a global tool.
12
+ Install `@deepseek-ai/dsh-subagent-codex` into a Profile when delegated work should run in a genuine, unattended Codex session in the parent Session's workspace. Each delegation uses a fresh isolated Codex thread for one self-contained text task and returns only the selected answer or a safe failure diagnostic. Native Codex configuration and authentication remain authoritative, while `permissionMode` selects the non-interactive approval and sandbox behavior. The Bundle supplies a compatible native Codex payload and adds its delegation tool as a global tool.
13
13
 
14
14
  ## Table of Contents
15
15
 
@@ -74,7 +74,7 @@ The tool returns a child id after accepting the task and sends its result to the
74
74
 
75
75
  ### What you get
76
76
 
77
- The completion notice contains the final Codex answer, or the stop reason and optional safe diagnostic. The parent Session also retains the external task identity and complete terminal result independently of the notice; no local child Session is created. Product reasoning, tool activity, raw stderr, and workspace diffs do not enter the parent Session.
77
+ The completion notice contains the selected Codex answer, or the stop reason and optional safe diagnostic. The parent Session also retains the external task identity and complete terminal result independently of the notice; no local child Session is created. Product reasoning, tool activity, raw stderr, and workspace diffs do not enter the parent Session.
78
78
 
79
79
  ### Failure and recovery
80
80
 
@@ -107,7 +107,7 @@ This section explains how the provider drives a real Codex app-server and where
107
107
 
108
108
  ### Run flow
109
109
 
110
- A start accepts only a non-empty sequence of text blocks and uses the child cwd selected by the subagent service. It spawns the fixed command through the subprocess seam, performs the `initialize` → `initialized` handshake, maps the Profile-selected mode and optional model into official `thread/start` fields beside `{ cwd, ephemeral: true }`, and publishes the run only after Codex returns a valid ephemeral thread. The published result starts exactly one turn, accepts only notifications for that run's thread and turn, and waits for the authoritative `turn/completed` terminal. The latest `agentMessage` with `phase: "final_answer"` wins; when Codex emits no explicit final phase, the latest message with `phase: null` is the compatibility fallback. A successful turn with no nonblank answer settles as an error. Failed turns use the coarse categories `limit`, `access-policy`, `service`, `transport`, `product-error`, `invalid-result`, or `unknown`; an early app-server exit uses `process`, and applicable connection and stream failures retain a numeric `httpStatusCode`.
110
+ A start accepts only a non-empty sequence of text blocks and uses the child cwd selected by the subagent service. It spawns the fixed command through the subprocess seam, performs the `initialize` → `initialized` handshake, maps the Profile-selected mode and optional model into official `thread/start` fields beside `{ cwd, ephemeral: true }`, and publishes the run only after Codex returns a valid ephemeral thread. The published result starts exactly one turn, accepts only notifications for that run's thread and turn, and waits for the authoritative `turn/completed` terminal. The latest `agentMessage` with `phase: "final_answer"` wins; without one, the latest `phase: "partial_answer"` message (stable answer text that later assistant output or tool calls may follow) is selected; when Codex emits neither explicit answer phase, the latest message with `phase: null` is the compatibility fallback. `commentary` messages are never selected, and any other phase fails the run. A successful turn with no nonblank answer settles as an error. Failed turns use the coarse categories `limit`, `access-policy`, `service`, `transport`, `product-error`, `invalid-result`, or `unknown`; an early app-server exit uses `process`, and applicable connection and stream failures retain a numeric `httpStatusCode`.
111
111
 
112
112
  </details>
113
113
 
@@ -147,11 +147,11 @@ Independent of the parent request cache. Reuse depends only on Codex's own provi
147
147
 
148
148
  #### What the model sees
149
149
 
150
- Through `dsh-tool-subagent`, the parent model first receives a child id, then the final Codex answer or a failure notice with its stop reason and safe diagnostic. Diagnostics contain only fixed stage, category, and observed protocol or process facts. Product reasoning, intermediate messages, tool activity, stderr, usage, product identifiers, commands, paths, and raw protocol payloads are not copied into the parent Session.
150
+ Through `dsh-tool-subagent`, the parent model first receives a child id, then the selected Codex answer (final, partial, or unphased, in that order of precedence) or a failure notice with its stop reason and safe diagnostic. Diagnostics contain only fixed stage, category, and observed protocol or process facts. Product reasoning, intermediate messages, tool activity, stderr, usage, product identifiers, commands, paths, and raw protocol payloads are not copied into the parent Session.
151
151
 
152
152
  #### Token effect
153
153
 
154
- Parent input grows by the start acknowledgement and completion notice, including the final answer or failure detail. Child tokens do not enter the parent context. This provider adds no parent tool schema by itself.
154
+ Parent input grows by the start acknowledgement and completion notice, including the selected answer or failure detail. Child tokens do not enter the parent context. This provider adds no parent tool schema by itself.
155
155
 
156
156
  #### KV Cache effect
157
157
 
@@ -170,7 +170,7 @@ These limits define when this provider is a poor fit or needs special operationa
170
170
  - **The native platform payload is required at delegation time** — installs that omit optional dependencies, unsupported platforms, and missing or damaged payloads fail at the first run; there is no host-CLI fallback.
171
171
  - **Compatibility is pinned by development evidence** — upgrading from the verified 0.153.4 protocol baseline requires regenerating upstream schema evidence and rerunning handshake, answer-selection, approval, cancellation, keyless real-product, and credentialed DeepSeek nonce tests.
172
172
  - **No human approval path** — known unattended approval requests are denied and unknown server requests fail closed; the three Profile modes never create a DSH interaction channel or per-call allow policy.
173
- - **Assistant payload is final text only** — failed runs can also expose a separate safe diagnostic; reasoning, intermediate messages, tool traffic, usage, stderr, and workspace diffs remain outside the parent Session. Task identity and terminal results are retained in the parent log.
173
+ - **Assistant payload is the selected answer text only** — failed runs can also expose a separate safe diagnostic; reasoning, intermediate messages, tool traffic, usage, stderr, and workspace diffs remain outside the parent Session. Task identity and terminal results are retained in the parent log.
174
174
  - **No optional shared capabilities** — `agentPreset`, `agentOptions`, output schemas, and harness depth enforcement are rejected by the shared service for this provider.
175
175
  - **No wall-clock timeout or side-effect rollback** — the caller cancels long work, and files or external systems changed before cancellation are not restored.
176
176
 
package/README.zh.md CHANGED
@@ -9,7 +9,7 @@ kind: "package-bundle"
9
9
 
10
10
  ## 概述
11
11
 
12
- 当委派工作需要在父会话工作区中的真实无人值守 Codex 会话内运行时,把 `@deepseek-ai/dsh-subagent-codex` 安装进 Profile。每次委派都会为一个自包含文本任务使用全新且隔离的 Codex 线程,并且只返回其最终答案或安全失败诊断。原生 Codex 配置和身份验证继续作为权威来源,而 `permissionMode` 选择非交互式审批和沙箱行为。Bundle 提供兼容的原生 Codex 载荷,并以全局工具形式添加委派工具。
12
+ 当委派工作需要在父会话工作区中的真实无人值守 Codex 会话内运行时,把 `@deepseek-ai/dsh-subagent-codex` 安装进 Profile。每次委派都会为一个自包含文本任务使用全新且隔离的 Codex 线程,并且只返回所选答案或安全失败诊断。原生 Codex 配置和身份验证继续作为权威来源,而 `permissionMode` 选择非交互式审批和沙箱行为。Bundle 提供兼容的原生 Codex 载荷,并以全局工具形式添加委派工具。
13
13
 
14
14
  ## 目录
15
15
 
@@ -74,7 +74,7 @@ Bundle 将 `tool-subagent-codex` 作为 Host 条目插入,因此 `subagent_cod
74
74
 
75
75
  ### 你会得到什么
76
76
 
77
- 完成通知包含 Codex 的最终答案,或停止原因与可选的安全诊断。父会话还独立保存外部任务的身份和完整终态结果;无需创建本地子 Session。产品推理、工具活动、原始 stderr 与工作区差异不会进入父会话。
77
+ 完成通知包含所选的 Codex 答案,或停止原因与可选的安全诊断。父会话还独立保存外部任务的身份和完整终态结果;无需创建本地子 Session。产品推理、工具活动、原始 stderr 与工作区差异不会进入父会话。
78
78
 
79
79
  ### 失败与恢复
80
80
 
@@ -107,7 +107,7 @@ Bundle 将 `tool-subagent-codex` 作为 Host 条目插入,因此 `subagent_cod
107
107
 
108
108
  ### 运行流程
109
109
 
110
- 一次启动只接受非空的文本块序列,并使用子代理服务选择的子级 cwd。它经子进程 seam spawn 固定命令,完成 `initialize` → `initialized` 握手,把 Profile 选择的模式与可选模型映射为官方 `thread/start` 字段并与 `{ cwd, ephemeral: true }` 一起发送,且仅在 Codex 返回有效的临时线程后发布运行。已发布的结果恰好启动一个轮次,只接受与此次运行的线程和轮次匹配的通知,并等待权威的 `turn/completed` 终态。以最后一条 `phase: "final_answer"` 的 `agentMessage` 为准;若 Codex 没有发出明确的最终阶段,则以最后一条 `phase: null` 的消息作为兼容性回退。成功完成的轮次若没有非空白答案,结果也会判为错误。失败轮次使用粗粒度类别 `limit`、`access-policy`、`service`、`transport`、`product-error`、`invalid-result` 或 `unknown`;app-server 提前退出使用 `process`,适用的连接与 stream 失败保留数值 `httpStatusCode`。
110
+ 一次启动只接受非空的文本块序列,并使用子代理服务选择的子级 cwd。它经子进程 seam spawn 固定命令,完成 `initialize` → `initialized` 握手,把 Profile 选择的模式与可选模型映射为官方 `thread/start` 字段并与 `{ cwd, ephemeral: true }` 一起发送,且仅在 Codex 返回有效的临时线程后发布运行。已发布的结果恰好启动一个轮次,只接受与此次运行的线程和轮次匹配的通知,并等待权威的 `turn/completed` 终态。以最后一条 `phase: "final_answer"` 的 `agentMessage` 为准;若没有,则选最后一条 `phase: "partial_answer"` 的消息(稳定的回答文本,其后仍可能有助手输出或工具调用);若 Codex 两种明确的回答阶段都没有发出,则以最后一条 `phase: null` 的消息作为兼容性回退。`commentary` 消息绝不会被选中,其它任何阶段都会使运行失败。成功完成的轮次若没有非空白答案,结果也会判为错误。失败轮次使用粗粒度类别 `limit`、`access-policy`、`service`、`transport`、`product-error`、`invalid-result` 或 `unknown`;app-server 提前退出使用 `process`,适用的连接与 stream 失败保留数值 `httpStatusCode`。
111
111
 
112
112
  </details>
113
113
 
@@ -147,11 +147,11 @@ Codex 子级会在一个全新的临时线程中,以单个轮次接收这些
147
147
 
148
148
  #### 模型看到什么
149
149
 
150
- 通过 `dsh-tool-subagent`,父模型先收到 child id,随后收到 Codex 最终答案或带停止原因与安全诊断的失败通知。诊断只包含固定的阶段、类别和已观测的协议或进程事实。产品推理、中间消息、工具活动、stderr、用量、产品标识符、命令、路径与原始协议载荷不会复制到父 Session。
150
+ 通过 `dsh-tool-subagent`,父模型先收到 child id,随后收到所选的 Codex 答案(按 final、partial、未标阶段的优先次序)或带停止原因与安全诊断的失败通知。诊断只包含固定的阶段、类别和已观测的协议或进程事实。产品推理、中间消息、工具活动、stderr、用量、产品标识符、命令、路径与原始协议载荷不会复制到父 Session。
151
151
 
152
152
  #### Token 影响
153
153
 
154
- 父级输入会增加启动确认与完成通知,包括最终答案或失败信息。子任务 token 不进入父级上下文。本提供方自身不添加父级工具 schema。
154
+ 父级输入会增加启动确认与完成通知,包括所选答案或失败信息。子任务 token 不进入父级上下文。本提供方自身不添加父级工具 schema。
155
155
 
156
156
  #### KV Cache 影响
157
157
 
@@ -170,7 +170,7 @@ Codex 子级会在一个全新的临时线程中,以单个轮次接收这些
170
170
  - **委派时必须存在原生平台载荷**——省略 optional dependencies 的安装、不受支持的平台以及缺失或损坏的载荷都会在第一次运行时失败;不会回退到宿主 CLI。
171
171
  - **兼容性由开发证据锁定**——若要从已验证的 0.153.4 协议基线升级,必须重新生成上游 schema 证据,并重新运行握手、答案选择、审批、取消、无密钥真实产品以及带密钥的 DeepSeek 随机数测试。
172
172
  - **没有人工审批路径**——已知的无人值守审批请求会被拒绝,未知服务器请求会以默认拒绝方式使运行失败;三种 Profile 模式都不会创建 DSH 交互通道或逐次调用 allow 策略。
173
- - **assistant 载荷仅包含最终文本**——失败运行还可公开独立的安全诊断;推理、中间消息、工具通信、用量、stderr 与工作区差异不会进入父 Session。任务身份与终态结果保存在父日志中。
173
+ - **assistant 载荷仅包含所选回答文本**——失败运行还可公开独立的安全诊断;推理、中间消息、工具通信、用量、stderr 与工作区差异不会进入父 Session。任务身份与终态结果保存在父日志中。
174
174
  - **没有可选的共享能力**——对于本提供方,共享服务会拒绝 `agentPreset`、`agentOptions`、输出 schema 和 harness 深度强制约束。
175
175
  - **没有按实际经过时间触发的超时或副作用回滚**——长时间运行的工作由调用方取消,且取消前已更改的文件或外部系统不会恢复原状。
176
176
 
package/lib/index.js CHANGED
@@ -145,6 +145,7 @@ var CodexAppServerWire = class {
145
145
  turnCompleted;
146
146
  earlyTurnNotifications = [];
147
147
  lastFinalAnswer;
148
+ lastPartialAnswer;
148
149
  lastUnphasedAnswer;
149
150
  diagnostic;
150
151
  failure;
@@ -283,7 +284,7 @@ var CodexAppServerWire = class {
283
284
  stage: "turn",
284
285
  category: "invalid-result"
285
286
  });
286
- throw new Error("subagent-codex: Codex completed without a final answer");
287
+ throw new Error("subagent-codex: Codex completed without an answer");
287
288
  }
288
289
  return {
289
290
  output,
@@ -302,11 +303,13 @@ var CodexAppServerWire = class {
302
303
  }).catch(() => {});
303
304
  }
304
305
  /**
305
- * The best non-commentary answer observed so far, preserving exact bytes.
306
- * @returns the selected final or nullable-phase text block, if any.
306
+ * The best non-commentary answer observed so far, preserving exact bytes:
307
+ * the latest `final_answer`, else the latest `partial_answer`, else the
308
+ * latest nullable-phase message.
309
+ * @returns the selected text block, if any.
307
310
  */
308
311
  collectOutput() {
309
- const selected = this.lastFinalAnswer ?? this.lastUnphasedAnswer;
312
+ const selected = this.lastFinalAnswer ?? this.lastPartialAnswer ?? this.lastUnphasedAnswer;
310
313
  return selected !== void 0 && selected.trim().length > 0 ? [{
311
314
  type: "text",
312
315
  text: selected
@@ -484,6 +487,7 @@ var CodexAppServerWire = class {
484
487
  throw new Error("subagent-codex: app-server returned an invalid agent message");
485
488
  })();
486
489
  if (item.phase === "final_answer") this.lastFinalAnswer = text;
490
+ else if (item.phase === "partial_answer") this.lastPartialAnswer = text;
487
491
  else if (item.phase === null) this.lastUnphasedAnswer = text;
488
492
  else if (item.phase !== "commentary") throw new Error(`subagent-codex: app-server returned an unknown agent message phase ${JSON.stringify(item.phase)}`);
489
493
  return;
@@ -34,6 +34,7 @@ export declare class CodexAppServerWire {
34
34
  private turnCompleted;
35
35
  private readonly earlyTurnNotifications;
36
36
  private lastFinalAnswer;
37
+ private lastPartialAnswer;
37
38
  private lastUnphasedAnswer;
38
39
  private diagnostic;
39
40
  private failure;
@@ -76,8 +77,10 @@ export declare class CodexAppServerWire {
76
77
  */
77
78
  interrupt(): void;
78
79
  /**
79
- * The best non-commentary answer observed so far, preserving exact bytes.
80
- * @returns the selected final or nullable-phase text block, if any.
80
+ * The best non-commentary answer observed so far, preserving exact bytes:
81
+ * the latest `final_answer`, else the latest `partial_answer`, else the
82
+ * latest nullable-phase message.
83
+ * @returns the selected text block, if any.
81
84
  */
82
85
  collectOutput(): ContentBlock[];
83
86
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-subagent-codex",
3
3
  "description": "One-shot Codex subagent provider over the official app-server protocol",
4
- "version": "0.2.1-alpha.3",
4
+ "version": "0.2.1-alpha.4",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -38,36 +38,36 @@
38
38
  },
39
39
  "peerDependencies": {
40
40
  "@deepseek-ai/cordis": "~4.0.5-alpha.2",
41
- "@deepseek-ai/dsh-llm": "0.2.1-alpha.3",
42
- "@deepseek-ai/dsh-session": "0.2.1-alpha.3",
43
- "@deepseek-ai/dsh-subagent": "0.2.1-alpha.3",
44
- "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.3",
45
- "@deepseek-ai/dsh-timeout": "0.2.1-alpha.3"
41
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.4",
42
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.4",
43
+ "@deepseek-ai/dsh-subagent": "0.2.1-alpha.4",
44
+ "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.4",
45
+ "@deepseek-ai/dsh-timeout": "0.2.1-alpha.4"
46
46
  },
47
47
  "dependencies": {
48
- "@deepseek-ai/dsh-brand": "0.2.1-alpha.3",
49
- "@deepseek-ai/dsh-sdk-protocol": "0.2.1-alpha.3",
48
+ "@deepseek-ai/dsh-brand": "0.2.1-alpha.4",
49
+ "@deepseek-ai/dsh-sdk-protocol": "0.2.1-alpha.4",
50
50
  "@deepseek-ai/schemastery": "~3.18.5-alpha.2",
51
51
  "@openai/codex": "0.153.4",
52
- "@deepseek-ai/dsh-tool-subagent": "0.2.1-alpha.3"
52
+ "@deepseek-ai/dsh-tool-subagent": "0.2.1-alpha.4"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@deepseek-ai/cordis": "~4.0.5-alpha.2",
56
56
  "@deepseek-ai/cordis-plugin-loader": "~1.0.6-alpha.2",
57
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.3",
58
- "@deepseek-ai/dsh-app-boot": "0.2.1-alpha.3",
59
- "@deepseek-ai/dsh-llm": "0.2.1-alpha.3",
60
- "@deepseek-ai/dsh-loader-smoke": "0.2.1-alpha.3",
61
- "@deepseek-ai/dsh-session": "0.2.1-alpha.3",
62
- "@deepseek-ai/dsh-session-checkpoint-policy": "0.2.1-alpha.3",
63
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.1-alpha.3",
64
- "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.3",
65
- "@deepseek-ai/dsh-subagent": "0.2.1-alpha.3",
66
- "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.3",
67
- "@deepseek-ai/dsh-subprocess-local": "0.2.1-alpha.3",
68
- "@deepseek-ai/dsh-timeout": "0.2.1-alpha.3",
69
- "@deepseek-ai/dsh-tool-jobs": "0.2.1-alpha.3",
70
- "@deepseek-ai/dsh-tools": "0.2.1-alpha.3"
57
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.4",
58
+ "@deepseek-ai/dsh-app-boot": "0.2.1-alpha.4",
59
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.4",
60
+ "@deepseek-ai/dsh-loader-smoke": "0.2.1-alpha.4",
61
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.4",
62
+ "@deepseek-ai/dsh-session-checkpoint-policy": "0.2.1-alpha.4",
63
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.1-alpha.4",
64
+ "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.4",
65
+ "@deepseek-ai/dsh-subagent": "0.2.1-alpha.4",
66
+ "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.4",
67
+ "@deepseek-ai/dsh-subprocess-local": "0.2.1-alpha.4",
68
+ "@deepseek-ai/dsh-timeout": "0.2.1-alpha.4",
69
+ "@deepseek-ai/dsh-tool-jobs": "0.2.1-alpha.4",
70
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.4"
71
71
  },
72
72
  "icon": "./icon.svg"
73
73
  }