dsh-codex-subscription 2.1.4 → 2.1.5

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.en.md CHANGED
@@ -26,18 +26,11 @@ Compatible with the settings and UI changes in DSH `0.1.7-alpha.1`, while retain
26
26
 
27
27
  ## Three-step start
28
28
 
29
- 1. **Install the plugin.** In newer DSH, open **Plugins → Add plugin** and enter `dsh-codex-subscription`. To select a candidate, enter `package@version`, for example `dsh-codex-subscription@2.1.4`. This field does not accept a full terminal command.
30
-
31
- For older DSH or terminal use, run:
32
-
33
- ```sh
34
- dsh plugin --profile web add dsh-codex-subscription
35
- ```
36
-
29
+ 1. **Install the plugin.** Open **Plugins → Add plugin**, enter `dsh-codex-subscription` in **Package name or address**, and click **Install**.
37
30
  2. **Sign in.** Follow the installation result; save your work and restart only if requested. Open **Settings -> Codex**, and choose browser sign-in. No Codex CLI and no pasted token are required.
38
31
  3. **Use Codex.** Select a Codex model. Quota, subscription search, image generation, and Fast mode remain inside DSH.
39
32
 
40
- DSH-Portable exposes the same standard plugin command, so the command above also applies there. See below for the complete official npm, update, and uninstall routes.
33
+ See below for detailed installation steps, terminal commands, updates, and removal.
41
34
 
42
35
  ## Why this plugin
43
36
 
@@ -45,7 +38,7 @@ DSH-Portable exposes the same standard plugin command, so the command above also
45
38
  | --- | --- |
46
39
  | **Subscription models** | Sign in to ChatGPT and use Codex without an OpenAI API key or Codex CLI |
47
40
  | **Recoverable and diagnosable** | Sign-in state reconciles automatically; failed reads can be retried in place, while timeouts and stale account responses cannot overwrite current state; Settings can create a support report without credentials or account identifiers |
48
- | **Visible quota** | Keep backend-provided standard Codex, Spark, and other limits separate |
41
+ | **Visible quota** | Keep backend-provided standard Codex, Spark, and other limits separate, with reset times |
49
42
  | **Composer quota** | Choose a compact percentage, progress bar, Beta runway forecast, or no inline display |
50
43
  | **Safe quota reset** | See each reset credit separately and deliberately try one with a cooldown and acknowledgement |
51
44
  | **Subscription search** | Explicitly route search globally through DSH default search or the signed-in Codex subscription |
@@ -73,72 +66,44 @@ This plugin supports the latest DeepSeek Harness release recorded in its package
73
66
 
74
67
  ## Install
75
68
 
76
- ### Standard DSH command
69
+ ### Install from the Plugins page (recommended)
77
70
 
78
- ```sh
79
- dsh plugin --profile web add dsh-codex-subscription
80
- ```
71
+ 1. Open **Plugins → Add plugin** in DSH.
72
+ 2. Paste this package name into the **Package name or address** field:
81
73
 
82
- DSH owns target selection, profile locking, dependency resolution, and bundle activation; this is the plugin's only installation path.
74
+ ```text
75
+ dsh-codex-subscription
76
+ ```
83
77
 
84
- ### Headless
78
+ 3. Click **Install** and wait for completion. Follow the page instructions; save your work before restarting if requested.
79
+ 4. Open **Settings → Codex**, sign in to ChatGPT, then select a Codex model in your conversation.
85
80
 
86
- After signing in and selecting a Codex model in Web once, install the same plugin in DSH's standard Headless profile:
87
-
88
- ```sh
89
- dsh plugin --profile headless add dsh-codex-subscription
90
- dsh --profile headless "Reply with only the word: ok"
91
- ```
81
+ The unversioned package name installs the latest stable release. To select a version, enter `dsh-codex-subscription@2.1.5`; for a beta, use the complete version from its release notes. Enter only the package name here, not a terminal command. This plugin can be installed using its npm package name; no GitHub URL or local directory is needed.
92
82
 
93
83
  <details>
94
- <summary>Official npm route (Node.js installed)</summary>
95
-
96
- The official `npx @deepseek-ai/dsh web` command does not create a global `dsh` command. Keep the full `npx` prefix when installing the plugin:
84
+ <summary>Terminal installation (with an existing dsh command)</summary>
97
85
 
98
86
  ```sh
99
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web add dsh-codex-subscription
100
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web list dsh-codex-subscription --depth 0
101
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 --profile web --dump-config
87
+ dsh plugin --profile web add dsh-codex-subscription
102
88
  ```
103
89
 
90
+ Follow the restart instructions, then sign in under **Settings → Codex**. Both the Plugins page and the terminal use DSH's installation management.
91
+
104
92
  </details>
105
93
 
106
94
  <details>
107
- <summary>An existing <code>dsh</code> command</summary>
95
+ <summary>Headless tasks</summary>
96
+
97
+ After signing in and selecting a Codex model in Web, install the same plugin in the Headless profile:
108
98
 
109
99
  ```sh
110
- dsh plugin --profile web add dsh-codex-subscription
111
- dsh plugin --profile web list dsh-codex-subscription --depth 0
112
- dsh --profile web --dump-config
100
+ dsh plugin --profile headless add dsh-codex-subscription
101
+ dsh --profile headless "Reply with only the word: ok"
113
102
  ```
114
103
 
115
- The plugin list should contain one `dsh-codex-subscription`, and the config should contain one `codex-subscription` entry.
116
-
117
104
  </details>
118
105
 
119
- Restart DSH manually after installation, then:
120
-
121
- 1. Open **Settings -> Codex**.
122
- 2. Sign in with a ChatGPT account that has Codex access.
123
- 3. Choose a search source.
124
- 4. Select a Codex model.
125
-
126
- ## Features
127
-
128
- - ChatGPT OAuth sign-in with credentials kept on the host; accounts are identified by a privacy-masked email that can be clicked to reveal, and can be manually added, switched, or removed without automatic rotation or quota pooling;
129
- - Codex models and Beta image generation/editing directly inside DSH conversations;
130
- - A clear global choice between DSH default search and Codex subscription search; it applies to every model and session rather than following the selected model;
131
- - Actual backend-provided quota, reset time, and freshness;
132
- - Separate standard Codex, Codex-Spark, Credits, and other independent limits;
133
- - One row per available quota reset with its disclosed name and expiry, plus deliberate early redemption, layered confirmation, and no automatic retry;
134
- - Optional percentage, progress bar, or Beta runway estimate for the selected Codex model (off by default);
135
- - Standard or Fast mode for supported Codex models directly in the composer;
136
- - Standard, Extended, and per-model Custom context windows; Custom accepts a full numeric token count, stays within each audited model capacity, and feeds DSH's native agent compaction policy;
137
- - A copyable support report and direct feedback link in Settings; the report includes bounded request stages, HTTP/transport classes, elapsed ranges, and route source types while excluding OAuth credentials, account identifiers, and authorization timestamps;
138
- - Visible errors when subscription routing is unavailable, with no silent paid fallback.
139
-
140
-
141
- Subscription chat and native DSH subtasks do not require the Codex runtime. Updating to 2.1.3 removes the runtime previously pulled in automatically when no other dependency requires it. An explicitly installed component can be removed in Advanced settings. Switching back to DSH does not uninstall it, and uninstalling does not automatically clear the host’s shared download cache.
106
+ ## Feature details
142
107
 
143
108
  ### Add instructions while a task is running
144
109
 
@@ -258,7 +223,7 @@ With a supported Codex model selected, open the composer's model menu to choose
258
223
  Standard adds no icon; only Fast shows a lightning icon before the model name. Spark does not show the speed entry. Fast mode increases speed and uses more Credits;
259
224
  see the [OpenAI Codex Speed documentation](https://learn.chatgpt.com/docs/agent-configuration/speed) for the current rules.
260
225
 
261
- ### Advanced experiments (2.1.1 Beta)
226
+ ### Advanced experiments
262
227
 
263
228
  Opt in under **Advanced & diagnostics**. SSE and DSH subtasks remain the defaults:
264
229
 
@@ -275,19 +240,20 @@ In **Settings → Codex → Advanced → Independent subtasks**, click **Install
275
240
 
276
241
  ![Optional component management](docs/assets/settings-runtime-current-en.png)
277
242
 
278
- For older hosts without the management interface, run this in the target DSH environment, then restart:
243
+ Prefer **Install component** above: the plugin selects a verified component version. Stable release **2.1.5** installs `0.1.5-rc.3` by default and remains compatible with an existing rc.2 installation. Do not omit the component version or substitute `@next`.
244
+
245
+ <details>
246
+ <summary>Manual installation on older hosts and offline preparation</summary>
247
+
248
+ Enter `@deepseek-ai/dsh-subagent-codex@0.1.5-rc.2` in the plugin installer, or run:
279
249
 
280
250
  ```sh
281
251
  dsh plugin --profile web add @deepseek-ai/dsh-subagent-codex@0.1.5-rc.2
282
252
  ```
283
253
 
284
- In the plugin installation UI, enter only `@deepseek-ai/dsh-subagent-codex@0.1.5-rc.2`, not the full command. Select Codex in advanced settings after preparation. Missing or failed preparation does not block subscription chat or the DSH backend. Shared-context subtasks remain in DSH.
254
+ Use the same profile as the subscription plugin and restart afterwards. Offline preparation requires a complete runtime installed and verified on the target OS and architecture; copying only the subscription plugin or Codex launcher is insufficient. Model requests still need connectivity.
285
255
 
286
- For offline preparation, install and verify beforehand on the target operating system and architecture, retaining the complete profile dependencies when moving it. The subscription archive or Codex wrapper alone is insufficient without the platform binary. First-time installation cannot complete offline unless dependencies are already prepared. Existing runtime checks and startup do not download anything; model requests still require connectivity. Do not use `--force` to install foreign-platform optional packages.
287
-
288
- **Upgrading an existing installation:** if you use Codex subtasks, run the preparation command before upgrading this plugin to retain the runtime explicitly in the same profile. A runtime only installed transitively by an older version may be removed during dependency reconciliation. The same command repairs an already-upgraded installation; restart afterwards.
289
-
290
- The runtime version is pinned separately; subscription updates do not silently upgrade it. This integration uses the official provider package-local CLI, never searches PATH or desktop-private runtimes, and removes the component only after an explicit uninstall request. Shared package caches are not deleted.
256
+ </details>
291
257
 
292
258
  ### When you no longer need it
293
259
 
@@ -307,46 +273,26 @@ Uninstalling does not clear shared package caches or guarantee a fixed amount of
307
273
 
308
274
  ## Update and uninstall
309
275
 
310
- ### Update and verify
311
-
312
- ```sh
313
- dsh plugin --profile web update dsh-codex-subscription
314
- dsh plugin --profile web list dsh-codex-subscription --depth 0
315
- dsh --profile web --dump-config
316
- ```
317
-
318
- ### Uninstall
319
-
320
- Run this only when you want to remove the plugin:
321
-
322
- ```sh
323
- dsh plugin --profile web remove dsh-codex-subscription
324
- ```
325
-
326
- These operations preserve the DSH profile, other plugins, and saved sign-in.
276
+ Find this plugin on the DSH **Plugins** page and use its update or uninstall action. Follow any restart instructions. Uninstalling this plugin does not remove other plugins.
327
277
 
328
278
  <details>
329
- <summary>Official npm fallback</summary>
330
-
331
- ### Update and verify
279
+ <summary>Terminal commands</summary>
332
280
 
333
281
  ```sh
334
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web update dsh-codex-subscription
335
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web list dsh-codex-subscription --depth 0
336
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 --profile web --dump-config
282
+ dsh plugin --profile web update dsh-codex-subscription
337
283
  ```
338
284
 
339
- ### Uninstall
285
+ Run only when you want to uninstall:
340
286
 
341
287
  ```sh
342
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web remove dsh-codex-subscription
288
+ dsh plugin --profile web remove dsh-codex-subscription
343
289
  ```
344
290
 
345
291
  </details>
346
292
 
347
293
  ## Troubleshooting
348
294
 
349
- - **`dsh` is not recognized:** the official npm route does not create a global `dsh` command; use the complete `npx -y @deepseek-ai/dsh@0.1.5-rc.2 ...` command above;
295
+ - **`dsh` is not recognized:** install from the DSH Plugins page; no terminal setup is needed.
350
296
  - **More than one DSH exists:** run the standard command from the intended DSH environment so that product selects the corresponding profile;
351
297
  - **Setup still fails:** confirm the command is running in the intended DSH environment. Do not delete the profile or change the system PATH to force an install.
352
298
  - **Need to report a problem:** generate a **Support diagnostics** report at the bottom of Settings, then open the [bug report form](https://github.com/WSL043/dsh-codex-subscription/issues/new?template=install-problem.yml). The report includes the OS/runtime, bounded sign-in phase, and safe request-failure categories, but excludes credentials, account identifiers, raw responses, and full logs. Paste it into the required diagnostics field; never attach sign-in URLs, authorization codes, or browser callback addresses.
package/README.md CHANGED
@@ -27,18 +27,11 @@
27
27
 
28
28
  ## 三步开始
29
29
 
30
- 1. **安装插件**:在新版 DSH 的 **插件 → 添加插件** 中填写 `dsh-codex-subscription`;指定候选版本时填写完整的 `包名@版本`,例如 `dsh-codex-subscription@2.1.4`。这个输入框不接受整条终端命令。
31
-
32
- 旧版 DSH 或偏好终端操作时,才在终端运行:
33
-
34
- ```sh
35
- dsh plugin --profile web add dsh-codex-subscription
36
- ```
37
-
30
+ 1. **安装插件**:打开 **插件 → 添加插件**,在 **包名或地址** 中填写 `dsh-codex-subscription`,点击 **安装**。
38
31
  2. **登录订阅**:按安装结果提示操作;若提示需要重启,先保存工作再重启。打开 **设置 -> Codex 订阅**,点击浏览器登录。无需 Codex CLI,也不要粘贴 token。
39
32
  3. **开始使用**:在模型选择器中选择 Codex;额度、订阅搜索、图片生成和高速模式都在 DSH 内使用。
40
33
 
41
- DSH-Portable 也提供相同的标准插件命令,因此同样使用上面的命令。完整的官方 npm、更新和卸载方式见下文。
34
+ 详细安装步骤、终端方式以及更新与卸载说明见下文。
42
35
 
43
36
  ## 核心优势
44
37
 
@@ -46,7 +39,7 @@ DSH-Portable 也提供相同的标准插件命令,因此同样使用上面的
46
39
  | --- | --- |
47
40
  | **订阅模型直连** | 登录 ChatGPT 后直接使用 Codex,不需要 OpenAI API Key 或 Codex CLI |
48
41
  | **可恢复、可诊断** | 登录状态会自动对账;读取失败时可在原处重试,超时和旧账号响应不会覆盖当前状态;设置页可生成不含凭据和账号标识的支持报告 |
49
- | **额度可见** | 普通 Codex、Spark 等服务端实际返回的额度分开显示 |
42
+ | **额度可见** | 普通 Codex、Spark 等服务端实际返回的额度分开显示,并显示重置时间 |
50
43
  | **输入框额度** | 可选择紧凑百分比、进度条、Beta 续航预测或关闭显示 |
51
44
  | **安全额度重置** | 每张重置卡单独显示,并通过冷静期和知情确认主动尝试重置 |
52
45
  | **订阅搜索** | 可将全部模型的搜索明确路由到 DSH 默认搜索或已登录的 Codex 订阅 |
@@ -74,72 +67,44 @@ DSH-Portable 也提供相同的标准插件命令,因此同样使用上面的
74
67
 
75
68
  ## 安装
76
69
 
77
- ### DSH 标准命令
70
+ ### 在插件页面安装(推荐)
78
71
 
79
- ```sh
80
- dsh plugin --profile web add dsh-codex-subscription
81
- ```
72
+ 1. 打开 DSH 的 **插件 → 添加插件**。
73
+ 2. 在 **包名或地址** 输入框中粘贴下面的包名:
82
74
 
83
- 目标选择、profile 锁、依赖解析和 bundle 激活均由 DSH 负责;这是插件唯一的安装路径。
75
+ ```text
76
+ dsh-codex-subscription
77
+ ```
84
78
 
85
- ### Headless
79
+ 3. 点击 **安装**,等待安装完成;按页面提示操作,需要重启时先保存工作。
80
+ 4. 打开 **设置 → Codex 订阅**,登录 ChatGPT,然后在会话中选择 Codex 模型。
86
81
 
87
- 先在 Web 中完成登录并选择一次 Codex 模型,再把同一个插件安装到 DSH 的标准 Headless profile:
88
-
89
- ```sh
90
- dsh plugin --profile headless add dsh-codex-subscription
91
- dsh --profile headless "只回复:ok"
92
- ```
82
+ 包名不带版本号时安装最新正式版。指定版本时填写 `dsh-codex-subscription@2.1.5`;测试版则使用对应发布说明中的完整版本号。此处只填包名,不要粘贴整条终端命令。安装本插件使用上面的 npm 包名即可,无需填写 GitHub 地址或本地目录。
93
83
 
94
84
  <details>
95
- <summary>官方 npm 方式(已安装 Node.js)</summary>
96
-
97
- 官方的 `npx @deepseek-ai/dsh web` 不会创建全局 `dsh` 命令,因此安装插件时也要保留完整的 `npx` 前缀:
85
+ <summary>终端安装(已能运行 dsh 命令)</summary>
98
86
 
99
87
  ```sh
100
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web add dsh-codex-subscription
101
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web list dsh-codex-subscription --depth 0
102
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 --profile web --dump-config
88
+ dsh plugin --profile web add dsh-codex-subscription
103
89
  ```
104
90
 
91
+ 安装完成后按提示重启 DSH,再到 **设置 → Codex 订阅** 登录。插件页面和终端均由 DSH 管理安装。
92
+
105
93
  </details>
106
94
 
107
95
  <details>
108
- <summary>已经能运行 <code>dsh</code></summary>
96
+ <summary>Headless 任务</summary>
97
+
98
+ 先在 Web 中完成登录并选择一次 Codex 模型,再把同一个插件安装到 Headless profile:
109
99
 
110
100
  ```sh
111
- dsh plugin --profile web add dsh-codex-subscription
112
- dsh plugin --profile web list dsh-codex-subscription --depth 0
113
- dsh --profile web --dump-config
101
+ dsh plugin --profile headless add dsh-codex-subscription
102
+ dsh --profile headless "只回复:ok"
114
103
  ```
115
104
 
116
- 安装列表中应只有一个 `dsh-codex-subscription`,配置中应只有一个 `codex-subscription` 条目。
117
-
118
105
  </details>
119
106
 
120
- 安装完成后手动重启 DSH,然后:
121
-
122
- 1. 打开 **设置 -> Codex 订阅**;
123
- 2. 登录具有 Codex 使用资格的 ChatGPT 账户;
124
- 3. 选择搜索来源;
125
- 4. 在模型选择器中选择 Codex 模型。
126
-
127
- ## 功能
128
-
129
- - ChatGPT OAuth 登录,凭据保留在本机;账号以默认隐藏部分字符的邮箱区分,点击可切换完整显示;可手动添加、切换和移除多个账号,不会自动轮换或合并额度;
130
- - Codex 模型和 Beta 图片生成与编辑直接出现在 DSH 会话中;
131
- - 搜索来源是全局设置,可在 DSH 默认搜索与 Codex 订阅搜索之间切换;它对所有模型和会话生效,不会随当前模型自动切换;
132
- - 设置页显示服务端返回的额度、重置时间和更新时间;
133
- - 普通 Codex、Codex-Spark、Credits 等独立额度分开显示;
134
- - 每张可用重置卡单独显示名称和到期时间,也允许在额度未完全用尽时主动尝试,并经过分层确认且不会自动重试;
135
- - 输入框可用百分比、进度条或可选的 Beta 续航预测显示当前 Codex 模型的剩余额度(默认关闭);
136
- - 输入框可为支持的 Codex 模型切换标准或高速模式;
137
- - 上下文窗口提供标准、扩展和逐模型自定义;自定义直接填写完整 Token 数值,并在已审核的模型容量内交给 DSH 原生 Agent 压缩策略处理;
138
- - 设置页可生成并复制无敏感信息的支持诊断,并直接打开反馈入口;报告包含有限的请求阶段、HTTP/网络分类、耗时区间和路由来源类型,但不包含 OAuth 凭据、账号标识或授权时间;
139
- - 订阅路由不可用时明确报错,不会静默切换到其他付费路由。
140
-
141
-
142
- 普通订阅对话和 DSH 原生子任务不需要安装 Codex 运行时。升级到 2.1.3 后,旧版自动引入且没有其他依赖引用的运行时会随依赖更新移除;主动安装的独立组件可在高级设置中卸载。切换回 DSH 不等于卸载,卸载也不会自动清空宿主共享下载缓存。
107
+ ## 功能说明
143
108
 
144
109
  ### 执行中补充指令
145
110
 
@@ -257,7 +222,7 @@ ChatGPT 返回可用重置卡时,设置页会把每张卡分别显示为紧凑
257
222
  只有高速模式会在模型名称左侧显示闪电;Spark 不显示速度入口。高速模式会提高速度,也会消耗更多 Credits;具体规则见
258
223
  [OpenAI Codex Speed 文档](https://learn.chatgpt.com/docs/agent-configuration/speed)。
259
224
 
260
- ### 高级实验选项(2.1.1 Beta)
225
+ ### 高级实验选项
261
226
 
262
227
  在 **高级与诊断** 中按需开启,默认仍使用 SSE 和 DSH 子任务:
263
228
 
@@ -274,19 +239,20 @@ ChatGPT 返回可用重置卡时,设置页会把每张卡分别显示为紧凑
274
239
 
275
240
  ![可选组件管理实机界面](docs/assets/settings-runtime-current.png)
276
241
 
277
- 旧版宿主没有管理接口时,才在目标 DSH 环境的终端执行,然后重启:
242
+ 优先使用上面的 **安装组件** 按钮,由插件选择已验证的组件版本。正式版 **2.1.5** 默认安装 `0.1.5-rc.3`,并继续兼容已安装的 rc.2。请不要省略组件版本号或自行改用 `@next`。
243
+
244
+ <details>
245
+ <summary>旧版宿主手动安装与离线准备</summary>
246
+
247
+ 插件安装页面填写 `@deepseek-ai/dsh-subagent-codex@0.1.5-rc.2`。终端方式:
278
248
 
279
249
  ```sh
280
250
  dsh plugin --profile web add @deepseek-ai/dsh-subagent-codex@0.1.5-rc.2
281
251
  ```
282
252
 
283
- 如果使用插件安装页面,在包名框只填 `@deepseek-ai/dsh-subagent-codex@0.1.5-rc.2`,不要粘贴整条命令。安装到订阅插件所在的同一个 profile。之后在高级设置选择 Codex;共享上下文子任务仍由 DSH 处理。准备失败或尚未准备不影响普通订阅聊天,可继续选择 DSH。
253
+ 安装到订阅插件所在的同一个 profile,完成后重启。离线使用须提前在目标系统与架构上安装并验证完整运行时;只复制订阅插件或 Codex 启动脚本不够。模型请求仍需联网。
284
254
 
285
- 离线使用前,应在同系统、同架构的目标环境提前安装并验证运行时,迁移时保留完整的 DSH profile 依赖。只有订阅插件压缩包或 Codex 主包不能代替当前平台的可执行包;未提前准备时,断网无法完成首次安装。已有运行时的检查和启动不需要下载安装,但模型请求本身仍需要联网。不要使用 `--force` 安装其他平台的可选包。
286
-
287
- **旧版升级**:如果已使用 Codex 独立子任务,请在升级订阅插件前执行上面的准备命令,将运行时显式保留在同一个 profile;仅由旧版间接安装的运行时可能随依赖整理移除。已经升级也可执行同一命令补齐,然后重启。
288
-
289
- 运行时版本单独固定,不会随订阅插件更新而自动下载新 CLI。现阶段沿用官方 provider 的包内 CLI,不自动查找 PATH,也不复用桌面应用的私有 CLI。只有明确点击卸载才移除组件,安装缓存不由插件清理。
255
+ </details>
290
256
 
291
257
  ### 不再使用时
292
258
 
@@ -306,46 +272,26 @@ dsh plugin --profile web remove @deepseek-ai/dsh-subagent-codex
306
272
 
307
273
  ## 更新与卸载
308
274
 
309
- ### 更新并检查
310
-
311
- ```sh
312
- dsh plugin --profile web update dsh-codex-subscription
313
- dsh plugin --profile web list dsh-codex-subscription --depth 0
314
- dsh --profile web --dump-config
315
- ```
316
-
317
- ### 卸载
318
-
319
- 确认需要移除插件后再运行:
320
-
321
- ```sh
322
- dsh plugin --profile web remove dsh-codex-subscription
323
- ```
324
-
325
- 这些操作会保留 DSH profile、其他插件和登录信息。
275
+ 在 DSH **插件** 页面找到本插件,使用更新或卸载操作,完成后按页面提示重启。卸载插件不会删除其他插件。
326
276
 
327
277
  <details>
328
- <summary>官方 npm 备用方式</summary>
329
-
330
- ### 更新并检查
278
+ <summary>终端方式</summary>
331
279
 
332
280
  ```sh
333
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web update dsh-codex-subscription
334
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web list dsh-codex-subscription --depth 0
335
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 --profile web --dump-config
281
+ dsh plugin --profile web update dsh-codex-subscription
336
282
  ```
337
283
 
338
- ### 卸载
284
+ 仅在需要卸载时运行:
339
285
 
340
286
  ```sh
341
- npx -y @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile web remove dsh-codex-subscription
287
+ dsh plugin --profile web remove dsh-codex-subscription
342
288
  ```
343
289
 
344
290
  </details>
345
291
 
346
292
  ## 常见问题
347
293
 
348
- - **`dsh` 无法识别**:官方 npm 方式本来就不会创建全局 `dsh` 命令,请使用上面的完整 `npx -y @deepseek-ai/dsh@0.1.5-rc.2 ...` 命令;
294
+ - **`dsh` 无法识别**:直接使用 DSH 的插件页面安装,无需为了安装插件配置终端命令。
349
295
  - **电脑上有多个 DSH**:请从目标 DSH 环境运行标准命令,由该产品自身选择对应 profile;
350
296
  - **安装仍然失败**:确认命令是在目标 DSH 环境中运行,不要删除 profile 或随意修改系统 PATH。
351
297
  - **需要提交问题**:在设置页底部生成“支持诊断”,然后打开[使用问题表单](https://github.com/WSL043/dsh-codex-subscription/issues/new?template=install-problem.yml)。报告包含系统/运行时、有限的登录阶段和安全的请求失败分类,但不含凭据、账号标识、原始响应或完整日志;请粘贴到必填诊断栏,且不要附上登录链接、授权码或浏览器回调地址。
@@ -10,6 +10,7 @@
10
10
  "0.1.5-alpha.2",
11
11
  "0.1.6-alpha.1",
12
12
  "0.1.6-alpha.2",
13
- "0.1.7-alpha.1"
13
+ "0.1.7-alpha.1",
14
+ "0.1.7-alpha.2"
14
15
  ]
15
16
  }
Binary file
package/lib/client.js CHANGED
@@ -7274,7 +7274,7 @@ window.__ModuleLoader__.load({
7274
7274
  }
7275
7275
  //#endregion
7276
7276
  //#region src/version.js
7277
- const PACKAGE_VERSION = "2.1.4";
7277
+ const PACKAGE_VERSION = "2.1.5";
7278
7278
  //#endregion
7279
7279
  //#region src/client-recovery.js
7280
7280
  async function recoveryCall(rpc, endpoint, payload = {}, timeoutMs = 1e4) {
package/lib/index.js CHANGED
@@ -1074,13 +1074,15 @@ function authenticatedSubagentChild(child, { Transport, getTokens, thread, signa
1074
1074
  //#endregion
1075
1075
  //#region src/subagent-runtime.js
1076
1076
  const SUBAGENT_RUNTIME_PACKAGE = "@deepseek-ai/dsh-subagent-codex";
1077
- const SUBAGENT_RUNTIME_VERSION = "0.1.5-rc.2";
1077
+ const SUBAGENT_RUNTIME_VERSION = "0.1.5-rc.3";
1078
+ const SUPPORTED_RUNTIME_VERSIONS = /* @__PURE__ */ new Set(["0.1.5-rc.2", SUBAGENT_RUNTIME_VERSION]);
1078
1079
  const require = createRequire(import.meta.url);
1079
1080
  const execute = promisify(execFile);
1080
1081
  function inspectSubagentRuntime(resolve = require.resolve) {
1081
1082
  try {
1082
1083
  const manifestPath = resolve(`${SUBAGENT_RUNTIME_PACKAGE}/package.json`);
1083
- if (JSON.parse(readFileSync(manifestPath, "utf8")).version !== "0.1.5-rc.2") return {
1084
+ const manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
1085
+ if (!SUPPORTED_RUNTIME_VERSIONS.has(manifest.version)) return {
1084
1086
  installed: false,
1085
1087
  present: true
1086
1088
  };
@@ -2810,7 +2812,7 @@ function openaiCodexSubscriptionProvider({ resolveSpeedMode = () => void 0, reso
2810
2812
  Object.freeze(["0.82.1", "0.85.1"]);
2811
2813
  //#endregion
2812
2814
  //#region src/version.js
2813
- const PACKAGE_VERSION = "2.1.4";
2815
+ const PACKAGE_VERSION = "2.1.5";
2814
2816
  const USER_AGENT = `dsh-codex-subscription/${PACKAGE_VERSION}`;
2815
2817
  //#endregion
2816
2818
  //#region src/model-catalog.js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-codex-subscription",
3
- "version": "2.1.4",
3
+ "version": "2.1.5",
4
4
  "description": "Use ChatGPT and Codex subscriptions in DeepSeek Harness with OAuth, quota, safe resets, web search, images, and Fast mode",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -19,7 +19,8 @@
19
19
  "compatibility.json",
20
20
  "LICENSE",
21
21
  "SECURITY.md",
22
- "THIRD_PARTY_NOTICES.md"
22
+ "THIRD_PARTY_NOTICES.md",
23
+ "icon-subscription.webp"
23
24
  ],
24
25
  "dsh": {
25
26
  "bundle": {
@@ -74,26 +75,26 @@
74
75
  },
75
76
  "peerDependencies": {
76
77
  "@deepseek-ai/cordis": "4.0.1 || 4.0.2 || 4.0.3",
77
- "@deepseek-ai/dsh-api-remotes": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
78
- "@deepseek-ai/dsh-client-connection": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
79
- "@deepseek-ai/dsh-client-locale": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
80
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
81
- "@deepseek-ai/dsh-client-ui-model-selection": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
82
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
83
- "@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
84
- "@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
85
- "@deepseek-ai/dsh-client-ui-tool": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
86
- "@deepseek-ai/dsh-credentials": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
87
- "@deepseek-ai/dsh-llm": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
88
- "@deepseek-ai/dsh-llm-pi-ai": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
89
- "@deepseek-ai/dsh-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
90
- "@deepseek-ai/dsh-tools": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
91
- "@deepseek-ai/dsh-web": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1",
78
+ "@deepseek-ai/dsh-api-remotes": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
79
+ "@deepseek-ai/dsh-client-connection": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
80
+ "@deepseek-ai/dsh-client-locale": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
81
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
82
+ "@deepseek-ai/dsh-client-ui-model-selection": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
83
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
84
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
85
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
86
+ "@deepseek-ai/dsh-client-ui-tool": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
87
+ "@deepseek-ai/dsh-credentials": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
88
+ "@deepseek-ai/dsh-llm": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
89
+ "@deepseek-ai/dsh-llm-pi-ai": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
90
+ "@deepseek-ai/dsh-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
91
+ "@deepseek-ai/dsh-tools": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
92
+ "@deepseek-ai/dsh-web": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2",
92
93
  "@deepseek-ai/schemastery": "3.18.1 || ^3.18.2",
93
94
  "@earendil-works/pi-ai": "0.82.1 || 0.85.1",
94
95
  "react": "^18.2.0",
95
96
  "react-dom": "^18.2.0",
96
- "@deepseek-ai/dsh-subagent-codex": "0.1.5-rc.2"
97
+ "@deepseek-ai/dsh-subagent-codex": "0.1.5-rc.2 || 0.1.5-rc.3"
97
98
  },
98
99
  "devDependencies": {
99
100
  "@deepseek-ai/cordis": "4.0.2",
@@ -134,6 +135,7 @@
134
135
  "optional": true
135
136
  }
136
137
  },
138
+ "icon": "./icon-subscription.webp",
137
139
  "scripts": {
138
140
  "build": "tsdown --config tsdown.config.mjs",
139
141
  "test:behavior": "node scripts/run-tests.mjs behavior",