dsh-codex-subscription 1.1.6 → 1.2.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/AGENTS.md +7 -7
- package/DIRECTORY.md +30 -0
- package/README.en.md +36 -14
- package/README.md +36 -14
- package/compatibility.json +3 -2
- package/lib/client.js +68 -0
- package/lib/index.js +60 -5
- package/package.json +35 -34
package/AGENTS.md
CHANGED
|
@@ -6,7 +6,7 @@ Use this guide when a user asks an Agent to install, update, verify, or remove
|
|
|
6
6
|
## Safety
|
|
7
7
|
|
|
8
8
|
- Confirm the target DSH installation and profile. Use `web` only when it is the user's target.
|
|
9
|
-
- Use the exact `1.1
|
|
9
|
+
- Use the exact `1.2.1` package below; do not install a moving branch.
|
|
10
10
|
- Never print OAuth credentials, account IDs, authorization callbacks, or credential-store contents.
|
|
11
11
|
- Preserve the DSH profile, unrelated plugins, sessions, and saved sign-in.
|
|
12
12
|
- Do not start, stop, or restart DSH without explicit permission.
|
|
@@ -38,19 +38,19 @@ For an official DSH installation run through npm, keep the complete `npx` prefix
|
|
|
38
38
|
run command does not create a global `dsh` command:
|
|
39
39
|
|
|
40
40
|
```sh
|
|
41
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
41
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web add dsh-codex-subscription@1.2.1
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
With an existing global `dsh` command:
|
|
45
45
|
|
|
46
46
|
```sh
|
|
47
|
-
dsh plugin --profile web add dsh-codex-subscription@1.1
|
|
47
|
+
dsh plugin --profile web add dsh-codex-subscription@1.2.1
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
From a DSH-Portable folder:
|
|
51
51
|
|
|
52
52
|
```powershell
|
|
53
|
-
.\dsh.exe plugin --profile web add dsh-codex-subscription@1.1
|
|
53
|
+
.\dsh.exe plugin --profile web add dsh-codex-subscription@1.2.1
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
Use the same `add` command to update or repair. This is the complete package-changing operation.
|
|
@@ -68,9 +68,9 @@ dsh --profile web --dump-config
|
|
|
68
68
|
|
|
69
69
|
For DSH-Portable, replace `dsh` with `.\dsh.exe`. Static acceptance requires:
|
|
70
70
|
|
|
71
|
-
For the official npm route, run the same checks with `npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
71
|
+
For the official npm route, run the same checks with `npx -y @deepseek-ai/dsh@0.1.1-rc.2` in place of `dsh`.
|
|
72
72
|
|
|
73
|
-
1. `dsh-codex-subscription` version `1.1
|
|
73
|
+
1. `dsh-codex-subscription` version `1.2.1` appears exactly once.
|
|
74
74
|
2. `codex-subscription` appears exactly once in the composed config.
|
|
75
75
|
3. No unrelated plugin or profile was changed and DSH was not restarted.
|
|
76
76
|
|
|
@@ -94,7 +94,7 @@ For DSH-Portable:
|
|
|
94
94
|
For the official npm route:
|
|
95
95
|
|
|
96
96
|
```sh
|
|
97
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
97
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web remove dsh-codex-subscription
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
Uninstall removes only this plugin. It must preserve the profile, sessions, other plugins, and saved
|
package/DIRECTORY.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Directory listing copy
|
|
2
|
+
|
|
3
|
+
Use this factual copy when listing `dsh-codex-subscription` in a DSH plugin directory. The repository README remains the installation authority.
|
|
4
|
+
|
|
5
|
+
## Short description
|
|
6
|
+
|
|
7
|
+
Use a ChatGPT subscription in DeepSeek Harness through independent OAuth sign-in, with Codex models, backend-reported quota, subscription web search, image generation, and no silent paid fallback.
|
|
8
|
+
|
|
9
|
+
## 中文短描述
|
|
10
|
+
|
|
11
|
+
通过独立 OAuth 登录在 DeepSeek Harness 中使用 ChatGPT 订阅,提供 Codex 模型、服务端实际额度、订阅搜索和图片生成,不会静默切换其他付费路由。
|
|
12
|
+
|
|
13
|
+
## Facts
|
|
14
|
+
|
|
15
|
+
- Package: `dsh-codex-subscription`
|
|
16
|
+
- Provider: `openai-codex`
|
|
17
|
+
- Authentication: independent ChatGPT OAuth managed on the DSH host
|
|
18
|
+
- Codex CLI required: no
|
|
19
|
+
- OpenAI API key required: no
|
|
20
|
+
- Platforms: official DSH plus DSH-Portable product forms for Windows, macOS, and Linux
|
|
21
|
+
- Main capabilities: Codex models, quota, web search, image generation, optional composer quota, optional Fast mode, secret-free support diagnostics
|
|
22
|
+
- Safety boundary: subscription failures remain visible and never silently fall back to another paid provider
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
dsh plugin --profile web add dsh-codex-subscription
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Do not describe this plugin as reusing a local Codex CLI login, copying `~/.codex/auth.json`, requiring Windows, or providing Claude, Grok, Gemini, or GitHub Copilot subscriptions.
|
package/README.en.md
CHANGED
|
@@ -12,7 +12,7 @@ No OpenAI API key or Codex CLI. Models, search, quota, and image generation stay
|
|
|
12
12
|
[](LICENSE)
|
|
13
13
|
[](https://github.com/WSL043/dsh-codex-subscription/stargazers)
|
|
14
14
|
|
|
15
|
-
[
|
|
15
|
+
[Three-step start](#three-step-start) · [Agent install](#let-an-agent-install-it-recommended) · [Update and uninstall](#update-and-uninstall) · [简体中文](https://github.com/WSL043/dsh-codex-subscription/blob/main/README.md)
|
|
16
16
|
|
|
17
17
|
</div>
|
|
18
18
|
|
|
@@ -20,14 +20,34 @@ No OpenAI API key or Codex CLI. Models, search, quota, and image generation stay
|
|
|
20
20
|
<img src="https://raw.githubusercontent.com/WSL043/dsh-codex-subscription/main/docs/assets/readme-hero-en.webp" width="900" alt="Your Codex subscription inside DSH: subscription models, web search, live quota, and image generation">
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
|
+
## Three-step start
|
|
24
|
+
|
|
25
|
+
1. **Install the plugin.** On Windows, open PowerShell and run the line below. Existing `dsh` and DSH-Portable users can use the standard command that follows.
|
|
26
|
+
|
|
27
|
+
```powershell
|
|
28
|
+
irm 'https://github.com/WSL043/dsh-codex-subscription/releases/latest/download/dsh-codex-setup.ps1' | iex
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
2. **Sign in.** Restart DSH yourself, open **Settings -> Codex**, and choose browser sign-in. No Codex CLI and no pasted token are required.
|
|
32
|
+
3. **Use Codex.** Select a Codex model. Quota, subscription search, image generation, and Fast mode remain inside DSH.
|
|
33
|
+
|
|
34
|
+
With an existing `dsh` command, install with:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
dsh plugin --profile web add dsh-codex-subscription
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
From a DSH-Portable product folder, run `./dsh plugin ...` (`.\dsh.exe plugin ...` in Windows PowerShell). See below for the complete official npm, Agent, update, and uninstall routes.
|
|
41
|
+
|
|
23
42
|
## Why this plugin
|
|
24
43
|
|
|
25
44
|
| Capability | What you get |
|
|
26
45
|
| --- | --- |
|
|
27
|
-
| **Codex image generation** | Describe an image in a DSH conversation and view the generated result in that session |
|
|
28
46
|
| **Subscription models** | Sign in to ChatGPT and use Codex without an OpenAI API key or Codex CLI |
|
|
29
|
-
| **
|
|
47
|
+
| **Recoverable and diagnosable** | Sign-in state reconciles automatically; Settings can create a support report without credentials or account identifiers |
|
|
30
48
|
| **Visible quota** | Keep backend-provided standard Codex, Spark, and other limits separate |
|
|
49
|
+
| **Subscription search** | Explicitly choose DSH default search or Codex subscription search |
|
|
50
|
+
| **Codex image generation** | Describe an image in a DSH conversation and view the generated result in that session |
|
|
31
51
|
| **Fast mode (Beta)** | Switch between Standard and Fast directly in the composer |
|
|
32
52
|
|
|
33
53
|
These capabilities reuse the same local ChatGPT sign-in. Subscription routing failures stay visible and never silently switch to another paid route.
|
|
@@ -47,7 +67,7 @@ These capabilities reuse the same local ChatGPT sign-in. Subscription routing fa
|
|
|
47
67
|
|
|
48
68
|
## Prepare DSH
|
|
49
69
|
|
|
50
|
-
This plugin is currently compatible through DeepSeek Harness `0.1.1-rc.
|
|
70
|
+
This plugin is currently compatible through DeepSeek Harness `0.1.1-rc.2` and requires a ChatGPT account that currently has Codex access.
|
|
51
71
|
|
|
52
72
|
- Do not want to configure Node.js? Use [DSH-Portable](https://github.com/WSL043/DSH-Portable), a community desktop distribution with portable and installed editions for Windows plus desktop packages for macOS and Linux.
|
|
53
73
|
- Prefer the official route? Follow the [DeepSeek Harness run guide](https://github.com/deepseek-ai/deepseek-harness#run).
|
|
@@ -78,7 +98,7 @@ The lightweight setup checks the current folder, the system command, common loca
|
|
|
78
98
|
[DSH-Portable](https://github.com/WSL043/DSH-Portable), then invokes the official `plugin add`
|
|
79
99
|
operation once. It does not recursively scan disks, install pnpm, create a resident command, snapshot a
|
|
80
100
|
profile, or download the plugin twice. It needs no administrator access and never restarts DSH. Only
|
|
81
|
-
when no existing DSH is found does it use the official npm route pinned to `0.1.1-rc.
|
|
101
|
+
when no existing DSH is found does it use the official npm route pinned to `0.1.1-rc.2`; the setup warns
|
|
82
102
|
that first-time dependency resolution can take a while.
|
|
83
103
|
|
|
84
104
|
<details>
|
|
@@ -87,9 +107,9 @@ that first-time dependency resolution can take a while.
|
|
|
87
107
|
The official `npx @deepseek-ai/dsh web` command does not create a global `dsh` command. Keep the full `npx` prefix when installing the plugin:
|
|
88
108
|
|
|
89
109
|
```sh
|
|
90
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
91
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
92
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
110
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web add dsh-codex-subscription
|
|
111
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web list dsh-codex-subscription --depth 0
|
|
112
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 --profile web --dump-config
|
|
93
113
|
```
|
|
94
114
|
|
|
95
115
|
</details>
|
|
@@ -124,6 +144,7 @@ Restart DSH manually after installation, then:
|
|
|
124
144
|
- Separate standard Codex, Codex-Spark, Credits, and other independent limits;
|
|
125
145
|
- Optional composer quota for the selected Codex model (Beta, off by default);
|
|
126
146
|
- Standard or Fast mode for supported Codex models directly in the composer (Beta);
|
|
147
|
+
- A copyable support report in Settings that excludes OAuth credentials, account identifiers, and authorization timestamps;
|
|
127
148
|
- Visible errors when subscription routing is unavailable, with no silent paid fallback.
|
|
128
149
|
|
|
129
150
|
### Composer quota
|
|
@@ -147,10 +168,10 @@ see the [OpenAI Codex Speed documentation](https://learn.chatgpt.com/docs/agent-
|
|
|
147
168
|
On Windows, rerun the one-line setup above to update. For the official npm route, use:
|
|
148
169
|
|
|
149
170
|
```sh
|
|
150
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
151
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
152
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
153
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
171
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web update dsh-codex-subscription
|
|
172
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web list dsh-codex-subscription --depth 0
|
|
173
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 --profile web --dump-config
|
|
174
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web remove dsh-codex-subscription
|
|
154
175
|
```
|
|
155
176
|
|
|
156
177
|
These operations preserve the DSH profile, other plugins, and saved sign-in.
|
|
@@ -171,15 +192,16 @@ From a DSH-Portable folder, replace `dsh` above with `.\dsh.exe`.
|
|
|
171
192
|
|
|
172
193
|
## Troubleshooting
|
|
173
194
|
|
|
174
|
-
- **`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.1-rc.
|
|
195
|
+
- **`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.1-rc.2 ...` command above;
|
|
175
196
|
- **`dsh.exe` is not recognized:** that file is not in the current folder; enter the DSH-Portable folder first or use the one-line Windows setup;
|
|
176
197
|
- **DSH-Portable is not found:** enter its folder and rerun setup, or run `.\dsh.exe plugin --profile web add dsh-codex-subscription` directly;
|
|
177
198
|
- **More than one DSH exists:** the one-line setup combines running copies with Portable folders detected in common locations; enter its number. For an Agent, use the intended folder or pass `-DshPath` explicitly;
|
|
178
199
|
- **Setup still fails:** send the Agent guide above to an Agent. Do not delete the profile or change the system PATH to force an install.
|
|
200
|
+
- **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 form collects exact DSH/plugin versions and reproduction steps. The generated report excludes credentials and account identifiers; still do not attach sign-in URLs, authorization codes, or browser callback addresses.
|
|
179
201
|
|
|
180
202
|
The ChatGPT Codex backend and DSH can change independently. This community project is not affiliated with or endorsed by DeepSeek or OpenAI.
|
|
181
203
|
|
|
182
|
-
Use [
|
|
204
|
+
Use the [bug report form](https://github.com/WSL043/dsh-codex-subscription/issues/new?template=install-problem.yml) for project feedback.
|
|
183
205
|
For DSH plugin discussion, visit [DeepSeek Harness Discussions](https://github.com/deepseek-ai/deepseek-harness/discussions).
|
|
184
206
|
Read [SECURITY.md](SECURITY.md) before reporting sensitive issues.
|
|
185
207
|
|
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
[](LICENSE)
|
|
14
14
|
[](https://github.com/WSL043/dsh-codex-subscription/stargazers)
|
|
15
15
|
|
|
16
|
-
[
|
|
16
|
+
[三步开始](#三步开始) · [交给 Agent 安装](#交给-agent推荐) · [更新与卸载](#更新与卸载) · [English](https://github.com/WSL043/dsh-codex-subscription/blob/main/README.en.md)
|
|
17
17
|
|
|
18
18
|
</div>
|
|
19
19
|
|
|
@@ -21,14 +21,34 @@
|
|
|
21
21
|
<img src="https://raw.githubusercontent.com/WSL043/dsh-codex-subscription/main/docs/assets/readme-hero.webp" width="900" alt="Codex 订阅直接用在 DSH:订阅模型、联网搜索、实时额度和图片生成">
|
|
22
22
|
</p>
|
|
23
23
|
|
|
24
|
+
## 三步开始
|
|
25
|
+
|
|
26
|
+
1. **安装插件**:Windows 打开 PowerShell,运行下面一行;已有 `dsh` 或 DSH-Portable 的用户也可使用后面的标准命令。
|
|
27
|
+
|
|
28
|
+
```powershell
|
|
29
|
+
irm 'https://github.com/WSL043/dsh-codex-subscription/releases/latest/download/dsh-codex-setup.ps1' | iex
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
2. **登录订阅**:手动重启 DSH,打开 **设置 -> Codex 订阅**,点击浏览器登录。无需 Codex CLI,也不要粘贴 token。
|
|
33
|
+
3. **开始使用**:在模型选择器中选择 Codex;额度、订阅搜索、图片生成和高速模式都在 DSH 内使用。
|
|
34
|
+
|
|
35
|
+
已有 `dsh` 命令时,标准安装命令是:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
dsh plugin --profile web add dsh-codex-subscription
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
DSH-Portable 用户在产品目录中运行 `./dsh plugin ...`,Windows PowerShell 使用 `.\dsh.exe plugin ...`。完整的官方 npm、Agent 安装、更新和卸载方式见下文。
|
|
42
|
+
|
|
24
43
|
## 核心优势
|
|
25
44
|
|
|
26
45
|
| 能力 | 用户得到什么 |
|
|
27
46
|
| --- | --- |
|
|
28
|
-
| **Codex 图片生成** | 在 DSH 对话里直接描述画面,生成结果会显示在当前会话中 |
|
|
29
47
|
| **订阅模型直连** | 登录 ChatGPT 后直接使用 Codex,不需要 OpenAI API Key 或 Codex CLI |
|
|
30
|
-
|
|
|
48
|
+
| **可恢复、可诊断** | 登录状态会自动对账;设置页可生成不含凭据和账号标识的支持报告 |
|
|
31
49
|
| **额度可见** | 普通 Codex、Spark 等服务端实际返回的额度分开显示 |
|
|
50
|
+
| **订阅搜索** | 可在 DSH 默认搜索与 Codex 订阅搜索之间明确切换 |
|
|
51
|
+
| **Codex 图片生成** | 在 DSH 对话里直接描述画面,生成结果会显示在当前会话中 |
|
|
32
52
|
| **高速模式(Beta)** | 直接在输入框切换标准或高速,无需离开当前会话 |
|
|
33
53
|
|
|
34
54
|
这些能力共用同一份本机 ChatGPT 登录。订阅路由失败时会明确报错,不会静默切换到其他付费路由。
|
|
@@ -48,7 +68,7 @@
|
|
|
48
68
|
|
|
49
69
|
## 准备 DSH
|
|
50
70
|
|
|
51
|
-
本插件当前适配到 DeepSeek Harness `0.1.1-rc.
|
|
71
|
+
本插件当前适配到 DeepSeek Harness `0.1.1-rc.2`,并需要一个当前具有 Codex 使用资格的 ChatGPT 账户。
|
|
52
72
|
|
|
53
73
|
- 不想配置 Node.js:使用 [DSH-Portable](https://github.com/WSL043/DSH-Portable)。这是社区桌面分发,提供 Windows 便携版和安装版,以及 macOS、Linux 桌面包;
|
|
54
74
|
- 想按官方方式运行:查看 [DeepSeek Harness 官方说明](https://github.com/deepseek-ai/deepseek-harness#run)。
|
|
@@ -78,7 +98,7 @@ irm 'https://github.com/WSL043/dsh-codex-subscription/releases/latest/download/d
|
|
|
78
98
|
这个轻量助手会检查当前目录、系统命令、常见位置以及正在运行的官方 DSH 或
|
|
79
99
|
[DSH-Portable](https://github.com/WSL043/DSH-Portable),然后调用一次官方
|
|
80
100
|
`plugin add`。它不会递归扫盘、安装 pnpm、创建常驻命令、保存 profile 快照或重复下载插件。
|
|
81
|
-
无需管理员权限,也不会擅自重启 DSH。找不到现有 DSH 时才会使用固定为 `0.1.1-rc.
|
|
101
|
+
无需管理员权限,也不会擅自重启 DSH。找不到现有 DSH 时才会使用固定为 `0.1.1-rc.2`
|
|
82
102
|
的官方 npm 运行方式;首次解析依赖可能较慢,安装器会先明确提示。
|
|
83
103
|
|
|
84
104
|
<details>
|
|
@@ -87,9 +107,9 @@ irm 'https://github.com/WSL043/dsh-codex-subscription/releases/latest/download/d
|
|
|
87
107
|
官方的 `npx @deepseek-ai/dsh web` 不会创建全局 `dsh` 命令,因此安装插件时也要保留完整的 `npx` 前缀:
|
|
88
108
|
|
|
89
109
|
```sh
|
|
90
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
91
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
92
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
110
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web add dsh-codex-subscription
|
|
111
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web list dsh-codex-subscription --depth 0
|
|
112
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 --profile web --dump-config
|
|
93
113
|
```
|
|
94
114
|
|
|
95
115
|
</details>
|
|
@@ -124,6 +144,7 @@ DSH-Portable 请把 `dsh` 换成 `./dsh`(PowerShell 使用 `.\dsh.exe`)。
|
|
|
124
144
|
- 普通 Codex、Codex-Spark、Credits 等独立额度分开显示;
|
|
125
145
|
- 输入框可显示当前 Codex 模型的剩余额度(Beta,默认关闭);
|
|
126
146
|
- 输入框可为支持的 Codex 模型切换标准或高速模式(Beta);
|
|
147
|
+
- 设置页可生成并复制无敏感信息的支持诊断,报告不包含 OAuth 凭据、账号标识或授权时间;
|
|
127
148
|
- 订阅路由不可用时明确报错,不会静默切换到其他付费路由。
|
|
128
149
|
|
|
129
150
|
### 输入框额度
|
|
@@ -146,10 +167,10 @@ Spark 使用独立额度。插件不会写死“5 小时 + 每周”,也不会
|
|
|
146
167
|
Windows 用户重新运行上面的单行助手即可更新。官方 npm 用户使用:
|
|
147
168
|
|
|
148
169
|
```sh
|
|
149
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
150
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
151
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
152
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
170
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web update dsh-codex-subscription
|
|
171
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web list dsh-codex-subscription --depth 0
|
|
172
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 --profile web --dump-config
|
|
173
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web remove dsh-codex-subscription
|
|
153
174
|
```
|
|
154
175
|
|
|
155
176
|
这些操作会保留 DSH profile、其他插件和登录信息。
|
|
@@ -170,17 +191,18 @@ DSH-Portable 在其目录中把上述 `dsh` 换成 `.\dsh.exe`。
|
|
|
170
191
|
|
|
171
192
|
## 常见问题
|
|
172
193
|
|
|
173
|
-
- **`dsh` 无法识别**:官方 npm 方式本来就不会创建全局 `dsh` 命令,请使用上面的完整 `npx -y @deepseek-ai/dsh@0.1.1-rc.
|
|
194
|
+
- **`dsh` 无法识别**:官方 npm 方式本来就不会创建全局 `dsh` 命令,请使用上面的完整 `npx -y @deepseek-ai/dsh@0.1.1-rc.2 ...` 命令;
|
|
174
195
|
- **`dsh.exe` 无法识别**:当前目录没有该文件。请先进入 DSH-Portable 目录,或使用 Windows 单行助手;
|
|
175
196
|
- **找不到 DSH-Portable**:进入它的目录后重新执行安装命令,或直接运行 `.\dsh.exe plugin --profile web add dsh-codex-subscription`;
|
|
176
197
|
- **电脑上有多个 DSH**:单行助手会合并正在运行的副本与常用目录内检测到的 Portable,输入对应编号即可;交给 Agent 时让它进入目标目录,或明确传入 `-DshPath`;
|
|
177
198
|
- **安装仍然失败**:把上面的 Agent 文档链接发给 Agent,不要删除 profile 或随意修改系统 PATH。
|
|
199
|
+
- **需要提交问题**:在设置页底部生成“支持诊断”,然后打开[使用问题表单](https://github.com/WSL043/dsh-codex-subscription/issues/new?template=install-problem.yml)。表单会收集准确的 DSH/插件版本和复现步骤;报告不含凭据和账号标识,仍不要附上登录链接、授权码或浏览器回调地址。
|
|
178
200
|
|
|
179
201
|
## 边界与支持
|
|
180
202
|
|
|
181
203
|
ChatGPT Codex 后端和 DSH 可能独立变化;本项目为社区项目,与 DeepSeek、OpenAI 无隶属或背书关系。
|
|
182
204
|
|
|
183
|
-
本项目的问题反馈请使用
|
|
205
|
+
本项目的问题反馈请使用[使用问题表单](https://github.com/WSL043/dsh-codex-subscription/issues/new?template=install-problem.yml);
|
|
184
206
|
DSH 插件交流可前往 [DeepSeek Harness Discussions](https://github.com/deepseek-ai/deepseek-harness/discussions)。
|
|
185
207
|
敏感问题请先阅读 [SECURITY.md](SECURITY.md)。
|
|
186
208
|
|
package/compatibility.json
CHANGED
package/lib/client.js
CHANGED
|
@@ -140,6 +140,12 @@ window.__ModuleLoader__.load({
|
|
|
140
140
|
failed: "登录失败,请重试。",
|
|
141
141
|
loadFailed: "无法读取账户状态。",
|
|
142
142
|
accountRetry: "重试",
|
|
143
|
+
diagnostics: "支持诊断",
|
|
144
|
+
diagnosticsHint: "生成不含凭据、账号标识和授权时间的诊断信息。",
|
|
145
|
+
diagnosticsLoad: "生成诊断",
|
|
146
|
+
diagnosticsCopy: "复制诊断",
|
|
147
|
+
diagnosticsCopied: "已复制",
|
|
148
|
+
diagnosticsFailed: "无法生成诊断信息。",
|
|
143
149
|
searchTitle: "搜索来源",
|
|
144
150
|
searchDsh: "DSH 默认",
|
|
145
151
|
searchDshHint: "当前搜索服务",
|
|
@@ -223,6 +229,12 @@ window.__ModuleLoader__.load({
|
|
|
223
229
|
failed: "Sign-in failed. Try again.",
|
|
224
230
|
loadFailed: "Could not read account status.",
|
|
225
231
|
accountRetry: "Retry",
|
|
232
|
+
diagnostics: "Support diagnostics",
|
|
233
|
+
diagnosticsHint: "Create a report without credentials, account identifiers, or authorization timestamps.",
|
|
234
|
+
diagnosticsLoad: "Create report",
|
|
235
|
+
diagnosticsCopy: "Copy report",
|
|
236
|
+
diagnosticsCopied: "Copied",
|
|
237
|
+
diagnosticsFailed: "Could not create diagnostics.",
|
|
226
238
|
searchTitle: "Search source",
|
|
227
239
|
searchDsh: "DSH default",
|
|
228
240
|
searchDshHint: "Current search service",
|
|
@@ -304,6 +316,7 @@ window.__ModuleLoader__.load({
|
|
|
304
316
|
.codexSubscriptionFlow p{font-size:13px;line-height:20px;color:var(--dsw-alias-label-secondary)}.codexSubscriptionCode{width:max-content;max-width:100%;font:600 16px/22px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;overflow-wrap:anywhere}
|
|
305
317
|
.codexSubscriptionError{font-size:13px;line-height:20px;color:var(--dsw-alias-state-error-primary)}.codexSubscriptionInput{width:100%;box-sizing:border-box}
|
|
306
318
|
.codexSubscriptionRecover{display:flex;align-items:center;justify-content:space-between;gap:12px}.codexSubscriptionRecover .codexSubscriptionError{flex:1}.codexSubscriptionRecover button{flex:0 0 auto}
|
|
319
|
+
.codexSubscriptionDiagnostics pre{max-height:240px;margin:0;padding:10px 12px;border-radius:8px;background:var(--dsw-alias-bg-module-platform);overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:11px/17px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--dsw-alias-label-secondary)}
|
|
307
320
|
.codexSubscriptionSectionTitle{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.codexSubscriptionFreshness{font-size:11px;line-height:17px;color:var(--dsw-alias-label-tertiary)}
|
|
308
321
|
.codexSubscriptionRefresh{flex:0 0 auto;min-width:72px;width:max-content;white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;writing-mode:horizontal-tb!important}.codexSubscriptionRefresh *{white-space:nowrap!important;word-break:keep-all!important;writing-mode:horizontal-tb!important}
|
|
309
322
|
.codexSubscriptionEmpty{padding:18px;border:1px dashed var(--dsw-alias-border-l3);border-radius:10px;text-align:center;font-size:13px;line-height:20px;color:var(--dsw-alias-label-tertiary)}
|
|
@@ -1204,6 +1217,57 @@ window.__ModuleLoader__.load({
|
|
|
1204
1217
|
})]
|
|
1205
1218
|
});
|
|
1206
1219
|
}
|
|
1220
|
+
function DiagnosticsCard({ rpc, t }) {
|
|
1221
|
+
const [report, setReport] = (0, react.useState)();
|
|
1222
|
+
const [busy, setBusy] = (0, react.useState)(false);
|
|
1223
|
+
const [copied, setCopied] = (0, react.useState)(false);
|
|
1224
|
+
const [error, setError] = (0, react.useState)(false);
|
|
1225
|
+
const load = () => {
|
|
1226
|
+
setBusy(true);
|
|
1227
|
+
setError(false);
|
|
1228
|
+
setCopied(false);
|
|
1229
|
+
rpc.call(CHANNEL, "diagnostics", {}).then(unwrap).then(setReport).catch(() => setError(true)).finally(() => setBusy(false));
|
|
1230
|
+
};
|
|
1231
|
+
const copy = () => {
|
|
1232
|
+
if (report === void 0) return;
|
|
1233
|
+
navigator.clipboard.writeText(JSON.stringify(report, null, 2)).then(() => setCopied(true)).catch(() => setError(true));
|
|
1234
|
+
};
|
|
1235
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1236
|
+
className: "codexSubscriptionCard codexSubscriptionDiagnostics",
|
|
1237
|
+
children: [
|
|
1238
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1239
|
+
className: "codexSubscriptionSectionHead",
|
|
1240
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1241
|
+
className: "codexSubscriptionSectionTitle",
|
|
1242
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", { children: t("diagnostics") }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1243
|
+
className: "codexSubscriptionNote",
|
|
1244
|
+
children: t("diagnosticsHint")
|
|
1245
|
+
})]
|
|
1246
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1247
|
+
className: "codexSubscriptionActions",
|
|
1248
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1249
|
+
type: "button",
|
|
1250
|
+
variant: "outline",
|
|
1251
|
+
disabled: busy,
|
|
1252
|
+
onClick: load,
|
|
1253
|
+
children: t("diagnosticsLoad")
|
|
1254
|
+
}), report === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1255
|
+
type: "button",
|
|
1256
|
+
variant: "outline",
|
|
1257
|
+
onClick: copy,
|
|
1258
|
+
children: copied ? t("diagnosticsCopied") : t("diagnosticsCopy")
|
|
1259
|
+
})]
|
|
1260
|
+
})]
|
|
1261
|
+
}),
|
|
1262
|
+
report === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", { children: JSON.stringify(report, null, 2) }),
|
|
1263
|
+
error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1264
|
+
className: "codexSubscriptionError",
|
|
1265
|
+
role: "alert",
|
|
1266
|
+
children: t("diagnosticsFailed")
|
|
1267
|
+
}) : null
|
|
1268
|
+
]
|
|
1269
|
+
});
|
|
1270
|
+
}
|
|
1207
1271
|
function ResetTime({ resetsAt, t }) {
|
|
1208
1272
|
const date = Number.isSafeInteger(resetsAt) ? validDate(resetsAt * 1e3) : void 0;
|
|
1209
1273
|
if (date === void 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("resetUnknown") });
|
|
@@ -1430,6 +1494,10 @@ window.__ModuleLoader__.load({
|
|
|
1430
1494
|
t,
|
|
1431
1495
|
signedIn: account.authenticated === true,
|
|
1432
1496
|
resetKey
|
|
1497
|
+
}),
|
|
1498
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DiagnosticsCard, {
|
|
1499
|
+
rpc,
|
|
1500
|
+
t
|
|
1433
1501
|
})
|
|
1434
1502
|
]
|
|
1435
1503
|
});
|
package/lib/index.js
CHANGED
|
@@ -494,7 +494,10 @@ function openaiCodexSubscriptionProvider({ resolveSpeedMode = () => void 0 } = {
|
|
|
494
494
|
streamSimple: (model, context, options) => provider.streamSimple(model, context, withSpeed(model, options))
|
|
495
495
|
});
|
|
496
496
|
}
|
|
497
|
-
|
|
497
|
+
//#endregion
|
|
498
|
+
//#region src/version.js
|
|
499
|
+
const PACKAGE_VERSION = "1.2.1";
|
|
500
|
+
const USER_AGENT = `dsh-codex-subscription/${PACKAGE_VERSION}`;
|
|
498
501
|
//#endregion
|
|
499
502
|
//#region src/codex-search.js
|
|
500
503
|
const CODEX_SEARCH_PROVIDER_ID = "codex-subscription";
|
|
@@ -822,6 +825,43 @@ function createCodexImageTool(options) {
|
|
|
822
825
|
});
|
|
823
826
|
}
|
|
824
827
|
//#endregion
|
|
828
|
+
//#region src/diagnostics.js
|
|
829
|
+
/** Build a support report that deliberately excludes OAuth and account metadata. */
|
|
830
|
+
async function createSubscriptionDiagnostics({ auth, preferences }) {
|
|
831
|
+
let account = { status: "unknown" };
|
|
832
|
+
const issues = [];
|
|
833
|
+
try {
|
|
834
|
+
account = { status: (await auth.status()).authenticated === true ? "signed-in" : "signed-out" };
|
|
835
|
+
} catch {
|
|
836
|
+
issues.push({ code: "account-status-unavailable" });
|
|
837
|
+
}
|
|
838
|
+
return {
|
|
839
|
+
schemaVersion: 1,
|
|
840
|
+
package: "dsh-codex-subscription",
|
|
841
|
+
version: PACKAGE_VERSION,
|
|
842
|
+
runtime: { node: process.version },
|
|
843
|
+
account,
|
|
844
|
+
provider: {
|
|
845
|
+
id: "openai-codex",
|
|
846
|
+
transport: "sse",
|
|
847
|
+
cache: {
|
|
848
|
+
owner: "dsh/pi-ai",
|
|
849
|
+
retention: "short"
|
|
850
|
+
}
|
|
851
|
+
},
|
|
852
|
+
capabilities: {
|
|
853
|
+
models: true,
|
|
854
|
+
quota: true,
|
|
855
|
+
search: true,
|
|
856
|
+
imageGeneration: true,
|
|
857
|
+
composerQuota: true,
|
|
858
|
+
speedMode: true
|
|
859
|
+
},
|
|
860
|
+
configuration: preferences.status(),
|
|
861
|
+
issues
|
|
862
|
+
};
|
|
863
|
+
}
|
|
864
|
+
//#endregion
|
|
825
865
|
//#region src/usage.js
|
|
826
866
|
const CODEX_USAGE_URL = "https://chatgpt.com/backend-api/wham/usage";
|
|
827
867
|
const DEFAULT_TTL_MS = 6e4;
|
|
@@ -1023,8 +1063,18 @@ const publicError = (code, message) => ({
|
|
|
1023
1063
|
details: { issues: [] }
|
|
1024
1064
|
}
|
|
1025
1065
|
});
|
|
1026
|
-
function createSubscriptionRpcHandler({ authHandler, usageReader, preferences }) {
|
|
1066
|
+
function createSubscriptionRpcHandler({ authHandler, usageReader, preferences, diagnosticsReader }) {
|
|
1027
1067
|
return async (endpoint, payload, signal) => {
|
|
1068
|
+
if (endpoint === "diagnostics") try {
|
|
1069
|
+
signal.throwIfAborted();
|
|
1070
|
+
return {
|
|
1071
|
+
ok: true,
|
|
1072
|
+
value: await diagnosticsReader()
|
|
1073
|
+
};
|
|
1074
|
+
} catch (error) {
|
|
1075
|
+
if (signal.aborted) throw error;
|
|
1076
|
+
return publicError("internal", "Could not create support diagnostics");
|
|
1077
|
+
}
|
|
1028
1078
|
if (endpoint === "preferences/status" || endpoint === "preferences/update") try {
|
|
1029
1079
|
signal.throwIfAborted();
|
|
1030
1080
|
if (endpoint === "preferences/update") {
|
|
@@ -1169,7 +1219,8 @@ function apply(ctx) {
|
|
|
1169
1219
|
select(settings.get());
|
|
1170
1220
|
return settings.watch(select);
|
|
1171
1221
|
}, "codex-subscription: search provider selection");
|
|
1172
|
-
const
|
|
1222
|
+
const auth = createCodexAuthService(authModels, store);
|
|
1223
|
+
const coordinator = new CodexLoginCoordinator(auth);
|
|
1173
1224
|
const usageReader = createCodexUsageReader({
|
|
1174
1225
|
getAuth: resolveAuth,
|
|
1175
1226
|
readCredential: (options) => store.read(PROVIDER, options)
|
|
@@ -1177,9 +1228,13 @@ function apply(ctx) {
|
|
|
1177
1228
|
const handler = createSubscriptionRpcHandler({
|
|
1178
1229
|
authHandler: createCodexRpcHandler(coordinator, { openExternal: openCodexAuthUrl }),
|
|
1179
1230
|
usageReader,
|
|
1180
|
-
preferences
|
|
1231
|
+
preferences,
|
|
1232
|
+
diagnosticsReader: () => createSubscriptionDiagnostics({
|
|
1233
|
+
auth,
|
|
1234
|
+
preferences
|
|
1235
|
+
})
|
|
1181
1236
|
});
|
|
1182
1237
|
ctx.effect(() => ctx.connection.rpc.handle(CHANNEL, handler, { authority: "loopback" }), "codex-subscription: loopback account RPC");
|
|
1183
1238
|
}
|
|
1184
1239
|
//#endregion
|
|
1185
|
-
export { CODEX_IMAGE_GENERATION_URL, CODEX_IMAGE_TOOL_NAME, CODEX_USAGE_URL, CodexLoginCoordinator, DshOAuthCredentialStore, apply, assertCodexAuthUrl, commandForCodexAuthUrl, createCodexAuthService, createCodexImageTool, createCodexRpcHandler, createCodexUsageReader, createSearchProviderSwitcher, createSubscriptionRpcHandler, decodeCodexPng, inject, name, openCodexAuthUrl, parseCodexUsage };
|
|
1240
|
+
export { CODEX_IMAGE_GENERATION_URL, CODEX_IMAGE_TOOL_NAME, CODEX_USAGE_URL, CodexLoginCoordinator, DshOAuthCredentialStore, apply, assertCodexAuthUrl, commandForCodexAuthUrl, createCodexAuthService, createCodexImageTool, createCodexRpcHandler, createCodexUsageReader, createSearchProviderSwitcher, createSubscriptionDiagnostics, createSubscriptionRpcHandler, decodeCodexPng, inject, name, openCodexAuthUrl, parseCodexUsage };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-codex-subscription",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "ChatGPT and Codex subscriptions for DeepSeek Harness with OAuth login, image generation, quota, and subscription web search",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"cordis.patch.yml",
|
|
16
16
|
"README.md",
|
|
17
17
|
"README.en.md",
|
|
18
|
+
"DIRECTORY.md",
|
|
18
19
|
"AGENTS.md",
|
|
19
20
|
"compatibility.json",
|
|
20
21
|
"LICENSE",
|
|
@@ -46,7 +47,7 @@
|
|
|
46
47
|
"deepseek-harness",
|
|
47
48
|
"dsh",
|
|
48
49
|
"openai-codex",
|
|
49
|
-
"
|
|
50
|
+
"chatgpt-oauth",
|
|
50
51
|
"chatgpt",
|
|
51
52
|
"chatgpt-plus",
|
|
52
53
|
"subscription",
|
|
@@ -74,44 +75,44 @@
|
|
|
74
75
|
},
|
|
75
76
|
"peerDependencies": {
|
|
76
77
|
"@deepseek-ai/cordis": "4.0.1",
|
|
77
|
-
"@deepseek-ai/dsh-api-remotes": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
78
|
-
"@deepseek-ai/dsh-client-connection": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
79
|
-
"@deepseek-ai/dsh-client-locale": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
80
|
-
"@deepseek-ai/dsh-client-runtime": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
81
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
82
|
-
"@deepseek-ai/dsh-client-ui-model-selection": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
83
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
84
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
85
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
86
|
-
"@deepseek-ai/dsh-client-ui-tool": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
87
|
-
"@deepseek-ai/dsh-credentials": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
88
|
-
"@deepseek-ai/dsh-llm": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
89
|
-
"@deepseek-ai/dsh-llm-pi-ai": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
90
|
-
"@deepseek-ai/dsh-settings": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
91
|
-
"@deepseek-ai/dsh-tools": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
92
|
-
"@deepseek-ai/dsh-web": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1",
|
|
78
|
+
"@deepseek-ai/dsh-api-remotes": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
79
|
+
"@deepseek-ai/dsh-client-connection": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
80
|
+
"@deepseek-ai/dsh-client-locale": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
81
|
+
"@deepseek-ai/dsh-client-runtime": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
82
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
83
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
84
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
85
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
86
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
87
|
+
"@deepseek-ai/dsh-client-ui-tool": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
88
|
+
"@deepseek-ai/dsh-credentials": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
89
|
+
"@deepseek-ai/dsh-llm": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
90
|
+
"@deepseek-ai/dsh-llm-pi-ai": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
91
|
+
"@deepseek-ai/dsh-settings": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
92
|
+
"@deepseek-ai/dsh-tools": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
93
|
+
"@deepseek-ai/dsh-web": "0.1.0-rc.6 || 0.1.0-rc.7 || 0.1.0-rc.8 || 0.1.1-rc.1 || 0.1.1-rc.2",
|
|
93
94
|
"@deepseek-ai/schemastery": "3.18.1",
|
|
94
95
|
"@earendil-works/pi-ai": "0.82.1",
|
|
95
96
|
"react": "^18.2.0"
|
|
96
97
|
},
|
|
97
98
|
"devDependencies": {
|
|
98
99
|
"@deepseek-ai/cordis": "4.0.1",
|
|
99
|
-
"@deepseek-ai/dsh-api-remotes": "0.1.1-rc.
|
|
100
|
-
"@deepseek-ai/dsh-client-connection": "0.1.1-rc.
|
|
101
|
-
"@deepseek-ai/dsh-client-locale": "0.1.1-rc.
|
|
102
|
-
"@deepseek-ai/dsh-client-runtime": "0.1.1-rc.
|
|
103
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.1.1-rc.
|
|
104
|
-
"@deepseek-ai/dsh-client-ui-model-selection": "0.1.1-rc.
|
|
105
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.1.1-rc.
|
|
106
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.1-rc.
|
|
107
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.1-rc.
|
|
108
|
-
"@deepseek-ai/dsh-client-ui-tool": "0.1.1-rc.
|
|
109
|
-
"@deepseek-ai/dsh-credentials": "0.1.1-rc.
|
|
110
|
-
"@deepseek-ai/dsh-llm": "0.1.1-rc.
|
|
111
|
-
"@deepseek-ai/dsh-llm-pi-ai": "0.1.1-rc.
|
|
112
|
-
"@deepseek-ai/dsh-settings": "0.1.1-rc.
|
|
113
|
-
"@deepseek-ai/dsh-tools": "0.1.1-rc.
|
|
114
|
-
"@deepseek-ai/dsh-web": "0.1.1-rc.
|
|
100
|
+
"@deepseek-ai/dsh-api-remotes": "0.1.1-rc.2",
|
|
101
|
+
"@deepseek-ai/dsh-client-connection": "0.1.1-rc.2",
|
|
102
|
+
"@deepseek-ai/dsh-client-locale": "0.1.1-rc.2",
|
|
103
|
+
"@deepseek-ai/dsh-client-runtime": "0.1.1-rc.2",
|
|
104
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.1.1-rc.2",
|
|
105
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "0.1.1-rc.2",
|
|
106
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.1.1-rc.2",
|
|
107
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.1-rc.2",
|
|
108
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.1-rc.2",
|
|
109
|
+
"@deepseek-ai/dsh-client-ui-tool": "0.1.1-rc.2",
|
|
110
|
+
"@deepseek-ai/dsh-credentials": "0.1.1-rc.2",
|
|
111
|
+
"@deepseek-ai/dsh-llm": "0.1.1-rc.2",
|
|
112
|
+
"@deepseek-ai/dsh-llm-pi-ai": "0.1.1-rc.2",
|
|
113
|
+
"@deepseek-ai/dsh-settings": "0.1.1-rc.2",
|
|
114
|
+
"@deepseek-ai/dsh-tools": "0.1.1-rc.2",
|
|
115
|
+
"@deepseek-ai/dsh-web": "0.1.1-rc.2",
|
|
115
116
|
"@deepseek-ai/schemastery": "3.18.1",
|
|
116
117
|
"@earendil-works/pi-ai": "0.82.1",
|
|
117
118
|
"@heroicons/react": "2.2.0",
|