dsh-codex-connect 0.1.0-alpha.4.19 → 0.1.0-alpha.4.21
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/INSTALL.md +28 -5
- package/README.i18n.yaml +2 -2
- package/README.md +39 -5
- package/cordis.patch.yml +1 -0
- package/docs/README.zh.md +39 -5
- package/docs/agent-notes/original-image-fork-access.md +7 -0
- package/lib/bin.js +368 -1
- package/lib/client.js +427 -34
- package/lib/index.d.ts +84 -3
- package/lib/index.js +2 -2
- package/lib/{src-CiOi4nFr.js → src-Cxq99TvF.js} +946 -176
- package/package.json +6 -2
package/INSTALL.md
CHANGED
|
@@ -12,16 +12,37 @@ Install `dsh-codex-connect` into one requested DeepSeek Harness profile without
|
|
|
12
12
|
|
|
13
13
|
## Install and validate
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
### Select an exact version before installation
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
Check `dsh --version` before changing the requested profile. Use `dsh --help` to locate the CLI if needed; from a Harness checkout use `pnpm dsh --version`. Select an exact pair from [verified-compatibility.json](verified-compatibility.json):
|
|
18
|
+
|
|
19
|
+
| Installed DSH version | Codex Connect version to pin |
|
|
20
|
+
| --- | --- |
|
|
21
|
+
| `0.1.0-rc.7` | `0.1.0-alpha.4.14` |
|
|
22
|
+
| `0.1.1-rc.2` | `0.1.0-alpha.4.21` |
|
|
23
|
+
|
|
24
|
+
If your exact DSH version is unknown or not listed, stop and verify the combination before installing. Do not blindly install `dsh-codex-connect@alpha`: `alpha` is a moving tag, not a compatibility guarantee. Do not infer support for newer DSH versions from these rows.
|
|
25
|
+
|
|
26
|
+
Alpha 4.21's verified contract is DSH plugin API packages `0.1.1-rc.2`, `@earendil-works/pi-ai` `0.82.1`, and Node.js `^22.19.0 || >=24.0.0`. It uses the rc.2 keyed Plugin configuration slot. Staying on DSH `0.1.0-rc.7` means selecting Alpha 4.14, not installing Alpha 4.21 into that older API. Upgrading DSH is a separate decision: upgrade the DSH API packages and pi-ai together, then rerun `dsh-codex-connect doctor --json` and `pnpm --silent run check:compatibility` for the selected combination.
|
|
27
|
+
|
|
28
|
+
These choices reflect the repository's existing verification record, not a new installation or runtime probe. This guidance does not fix upstream DSH compatibility or resolve [Issue #64](https://github.com/franksong2702/dsh-codex-connect/issues/64).
|
|
29
|
+
|
|
30
|
+
### Install the selected version and validate
|
|
31
|
+
|
|
32
|
+
1. Complete the version selection above. The commands below use `web`; substitute only the requested profile.
|
|
33
|
+
2. Install the selected exact version. For DSH `0.1.0-rc.7`:
|
|
19
34
|
|
|
20
35
|
```sh
|
|
21
|
-
dsh plugin --profile web add dsh-codex-connect@alpha
|
|
36
|
+
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.14
|
|
22
37
|
```
|
|
23
38
|
|
|
24
|
-
|
|
39
|
+
For DSH `0.1.1-rc.2`, use Alpha 4.21:
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.21
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
If npm is unavailable after its matching GitHub prerelease is created, use `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.21'` only for the DSH `0.1.1-rc.2` combination.
|
|
25
46
|
|
|
26
47
|
3. Run `dsh --profile web --dump-config` and require exactly one `llm-openai-codex` row loading `dsh-codex-connect`.
|
|
27
48
|
4. Confirm the effective `agent-default-model` and `web.searchProvider` values are unchanged from before installation.
|
|
@@ -76,6 +97,8 @@ Do not add the last two rows unless the user separately requested those routing
|
|
|
76
97
|
|
|
77
98
|
## Update and removal
|
|
78
99
|
|
|
100
|
+
Before updating, repeat the exact-version selection above. Use `@alpha` only after verifying that the version it currently resolves to is compatible with the installed DSH; otherwise pin the selected version in the update command.
|
|
101
|
+
|
|
79
102
|
```sh
|
|
80
103
|
dsh plugin --profile web update dsh-codex-connect@alpha
|
|
81
104
|
dsh plugin --profile web remove dsh-codex-connect
|
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# git hash-object README.md docs/README.zh.md
|
|
5
|
-
README.md:
|
|
6
|
-
docs/README.zh.md:
|
|
5
|
+
README.md: d62a4cd451fbe49ec059d3dafe63fff20ae20e79
|
|
6
|
+
docs/README.zh.md: f217d465535099bcd0144e506302169df9d32bc3
|
package/README.md
CHANGED
|
@@ -28,7 +28,13 @@ dsh plugin --profile web add dsh-codex-connect@alpha
|
|
|
28
28
|
|
|
29
29
|
Expected result: the package is added to that profile. This does not change the profile's default model or global search route.
|
|
30
30
|
|
|
31
|
-
To reproduce this release exactly, use `dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.
|
|
31
|
+
To reproduce this release exactly, use `dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.21`. If npm is unavailable after the matching GitHub prerelease exists, use `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.21'`. A local checkout can be installed as `link:/absolute/path/to/dsh-codex-connect`.
|
|
32
|
+
|
|
33
|
+
### What's new in Alpha 4.21
|
|
34
|
+
|
|
35
|
+
- Preserve and download the exact generated image separately from the conversation preview, including from restored sessions and forks that inherited the image result.
|
|
36
|
+
- Inspect runtime and Responses/SSE evidence with the opt-in `capabilities` command. Network probing requires explicit `--probe`; it does not enable unsupported features or alter routing.
|
|
37
|
+
- Use clearer exact-version installation guidance and expanded release/canary CI checks. The supported DSH version remains `0.1.1-rc.2`.
|
|
32
38
|
|
|
33
39
|
### Version updates
|
|
34
40
|
|
|
@@ -139,6 +145,7 @@ The installed bundle is intentionally inert beyond model-provider registration:
|
|
|
139
145
|
```yaml
|
|
140
146
|
- id: llm-openai-codex
|
|
141
147
|
config:
|
|
148
|
+
enableProxy: false
|
|
142
149
|
enableSearch: false
|
|
143
150
|
enableImageTool: false
|
|
144
151
|
enableImageGeneration: false
|
|
@@ -146,11 +153,19 @@ The installed bundle is intentionally inert beyond model-provider registration:
|
|
|
146
153
|
|
|
147
154
|
Open **Settings → Plugins → Plugin configuration → Codex Connect** to manage the account and these options in one card. **Save changes** affects only this plugin's capability section and applies live. It never selects a default model or a global search route.
|
|
148
155
|
|
|
156
|
+
### Network connection and proxy detection
|
|
157
|
+
|
|
158
|
+
Codex Connect uses a **Direct connection** by default. A proxy is optional and applies only to this plugin's Codex requests: model streaming, OAuth login and token refresh, usage, standalone search, and image generation. Other providers and unscoped network requests keep the process's original dispatcher.
|
|
159
|
+
|
|
160
|
+
Select **Detect proxy** to test only the standard proxy environment variables and the documented loopback candidates `127.0.0.1:7890`, `127.0.0.1:7897`, and `127.0.0.1:10809`. Detection makes no model call, consumes no quota, and does not write settings. A response from the canonical Codex endpoint proves network reachability; `401/403`, proxy `407`, DNS, refused connection, timeout, TLS, and CONNECT failures remain separate diagnostics.
|
|
161
|
+
|
|
162
|
+
Choose **Use this proxy** only after reviewing a candidate, then click **Save changes**. **Configure manually** lets you test a credential-free HTTP(S) proxy origin before activation. **Disable proxy** is always available. A failed probe leaves the previous mode unchanged, and an enabled proxy failure is shown as an actionable error; Codex Connect never silently retries the request through a direct connection.
|
|
163
|
+
|
|
149
164
|
### Enable only the capability you intend to use
|
|
150
165
|
|
|
151
166
|
- `enableSearch: true` registers Codex as an available search provider. It does not select the profile's global search route.
|
|
152
167
|
- `enableImageTool: true` enables `view_image` for approved local reads and public-network image fetches on vision-capable models.
|
|
153
|
-
- `enableImageGeneration: true` enables the prompt-only image generation tool. Use the image generation capability included with your current GPT subscription.
|
|
168
|
+
- `enableImageGeneration: true` enables the prompt-only image generation tool. Use the image generation capability included with your current GPT subscription. Codex Connect preserves the exact generated file in plugin-owned storage and saves a DSH attachment as the conversation preview.
|
|
154
169
|
|
|
155
170
|
The screenshot below is an example after someone has explicitly enabled capabilities. It does not show the fresh-install default. This English guide uses the English-localized capture; the Chinese guide shows the matching Chinese-localized state.
|
|
156
171
|
|
|
@@ -163,15 +178,17 @@ The screenshot below is an example after someone has explicitly enabled capabili
|
|
|
163
178
|
1. Turn on **Enable GPT Image generation** in the Codex Connect card and select **Save changes**.
|
|
164
179
|
2. Choose an `openai-codex` GPT model for the conversation.
|
|
165
180
|
3. Describe the image you want in ordinary language. The agent can expand that request into the prompt sent to GPT Image.
|
|
166
|
-
4. The
|
|
181
|
+
4. The exact generated file is preserved separately from the DSH attachment used to render the conversation preview. The result card lets you review and copy the full prompt, download the exact original or the preview, and compare their dimensions and file sizes.
|
|
167
182
|
|
|
168
183
|
This capability uses the image generation access included with your current GPT subscription; it does not require an OpenAI Platform API key. Availability remains subject to the GPT plan and model selected for the conversation.
|
|
169
184
|
|
|
185
|
+
Output dimensions are selected by the subscription service. The tool accepts a prompt only and does not offer a size setting or guarantee 4K output. Asking for "4K detail" does not establish the file's pixel dimensions; use the dimensions shown on the result card. Downloading the original preserves what the service returned, without upscaling it.
|
|
186
|
+
|
|
170
187
|
<p align="center">
|
|
171
188
|
<img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/en/image-generation.png" alt="English-localized Codex Connect GPT Image result with preview, copyable prompt, download action, and image details" width="780">
|
|
172
189
|
</p>
|
|
173
190
|
|
|
174
|
-
The detailed image prompt is authored by the selected GPT model. Codex Connect does not silently add image parameters: it validates the prompt-only request
|
|
191
|
+
The detailed image prompt is authored by the selected GPT model. Codex Connect does not silently add image parameters: it validates the prompt-only request and forwards it through the ChatGPT subscription capability. The exact returned bytes are stored below `$DSH_HOME/dsh-codex-connect/images/v1`; an additional DSH attachment is the preview used by the conversation and may be resized or re-encoded by the active DSH attachment policy. The **Download original** action always uses the plugin-owned exact file, while **Download preview** returns that DSH representation. Originals are owner-only, integrity-checked before download, and available to the creating session and forks that inherited the image result, including after session restoration. Forks made before that result and unrelated sessions cannot download it. Disabling image generation or uninstalling the plugin does not automatically delete the files; downloading through the result card requires the plugin to remain installed. On the result card you can scroll through and copy the complete prompt. **Try again** and **Generate another** send that card's own prompt again, so an older card is not accidentally regenerated from a newer conversation message. **Modify this image** first asks what you want to change, then continues from that card's prompt.
|
|
175
192
|
|
|
176
193
|
### Usage limits in Plugin configuration
|
|
177
194
|
|
|
@@ -210,6 +227,8 @@ Selecting Codex as the profile's global search route is another explicit change:
|
|
|
210
227
|
| Field | Default | Values |
|
|
211
228
|
|---|---:|---|
|
|
212
229
|
| `models` | full catalog | Codex model id array; empty hides all entries |
|
|
230
|
+
| `enableProxy` | `false` | boolean; direct connection unless explicitly enabled |
|
|
231
|
+
| `proxyUrl` | `http://127.0.0.1:7890` (inactive placeholder) | Credential-free HTTP(S) proxy origin |
|
|
213
232
|
| `enableSearch` | `false` | boolean |
|
|
214
233
|
| `enableImageTool` | `false` | boolean |
|
|
215
234
|
| `enableImageGeneration` | `false` | boolean |
|
|
@@ -237,9 +256,24 @@ Selecting Codex as the profile's global search route is another explicit change:
|
|
|
237
256
|
- If startup reports an `openai-codex` collision, an old `dsh-codex` bundle or manual provider row may already own the adapter. Inspect the effective configuration and remove only the confirmed conflicting owner. Do not delete auth files or unrelated providers.
|
|
238
257
|
- Removing the package does not delete OAuth state. Run `logout` only when credential removal is intended.
|
|
239
258
|
|
|
259
|
+
### On-demand capability report
|
|
260
|
+
|
|
261
|
+
Run the separate `capabilities` command from the intended plugin installation. Without `--probe`, it reads local host package versions and credential-file metadata only; it does not open the credential document or send network requests. Existing `doctor` behavior and the settings compatibility card are unchanged.
|
|
262
|
+
|
|
263
|
+
```sh
|
|
264
|
+
dsh plugin --profile web exec dsh-codex-connect capabilities --model gpt-5.6-sol --json
|
|
265
|
+
dsh plugin --profile web exec dsh-codex-connect capabilities --model gpt-5.6-sol --probe --json
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
`--probe` explicitly sends one fixed short request to the ordinary Codex Responses route and may consume quota. It reads an unexpired stored credential without refreshing or writing it. The command uses a direct connection unless you pass `--proxy <http(s)-origin>`; it does not load the active profile's proxy settings or environment proxy variables. The default deadline is 30000 ms; `--timeout-ms <1..60000>` overrides it. There are no redirects or retries, the response is capped at 64 KiB, and owned connections are destroyed before return. A deadline or size limit does not guarantee that server-side generation stopped. The reusable diagnostic instance caches only completed responses and explicit request rejections for at most 60 seconds in memory, scoped to credential, model, versions, and network policy. Separate CLI invocations do not share cached evidence.
|
|
269
|
+
|
|
270
|
+
The report labels each check `supported`, `rejected`, or `unknown`, with a reason and corrective action. Runtime support means the declared host package versions match, not that the Web profile or an exact Node patch was integration-tested. A catalog entry or private credential file leaves model access and OAuth validity `unknown`. Only an HTTP 200 finite SSE response with a complete, nonempty assistant output for the selected model confirms the standalone route; redirects, timeouts, rate limits, and incomplete streams remain `unknown`. HTTP 400/404 reject the particular request, not every model or optional feature; HTTP 401/403 also reject authorization for that request. Reports omit tokens, account ids, paths, proxy origins, response ids, headers, and generated text.
|
|
271
|
+
|
|
272
|
+
This report covers only the standalone route, not active profile routing, search/image tools, browser compatibility, provider retry behavior, or session recovery. Automatic provider failover is `rejected` because this plugin does not implement it; select an alternative provider explicitly. WebSocket-to-SSE fallback is inactive with the finite SSE default. `contextManagement` and continuation remain `unknown`; native compaction and WebSocket reuse are `rejected` by the current integration policy. No diagnostic result enables these capabilities or changes Harness history. Exit codes cover runtime, OAuth, selected model, Responses, and SSE only: `0` means all five were supported, `1` means at least one was rejected, and `2` means unknown evidence, invalid options, or an inspection failure. Rejected optional capabilities do not change that exit code.
|
|
273
|
+
|
|
240
274
|
## Compatibility and security boundary
|
|
241
275
|
|
|
242
|
-
- The only verified compatibility combination is DSH plugin API packages `0.1.1-rc.2`, `@earendil-works/pi-ai` `0.82.1`, and Node.js `^22.19.0 || >=24.0.0`; see [compatibility.json](compatibility.json). Alpha 4.
|
|
276
|
+
- The only verified compatibility combination is DSH plugin API packages `0.1.1-rc.2`, `@earendil-works/pi-ai` `0.82.1`, and Node.js `^22.19.0 || >=24.0.0`; see [compatibility.json](compatibility.json). Alpha 4.21 uses the rc.2 keyed Plugin configuration slot; users of older DSH API packages should upgrade to the rc.2 API packages.
|
|
243
277
|
- Upgrade the DSH plugin API packages and `@earendil-works/pi-ai` as one group, then run `dsh-codex-connect doctor --json` and the compatibility check again. This contract does not make claims about future versions.
|
|
244
278
|
- When the daily upstream check finds a new `latest` or `next` DSH candidate, it installs Codex Connect into an isolated profile, boots the installed model runtime without OAuth credentials, verifies model and reasoning-effort discovery, and confirms provider disposal. Live sign-in, quota, and model requests still require manual validation in the test profile.
|
|
245
279
|
- ChatGPT plan eligibility, model access, quotas, and backend behavior are controlled by OpenAI and may change.
|
package/cordis.patch.yml
CHANGED
package/docs/README.zh.md
CHANGED
|
@@ -28,7 +28,13 @@ dsh plugin --profile web add dsh-codex-connect@alpha
|
|
|
28
28
|
|
|
29
29
|
预期结果:包被加入该 profile。这个动作不会更改 profile 的默认模型或全局搜索路由。
|
|
30
30
|
|
|
31
|
-
如需精确复现这个版本,使用 `dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.
|
|
31
|
+
如需精确复现这个版本,使用 `dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.21`。对应 GitHub prerelease 已创建但 npm 不可用时,可使用 `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.21'`。本地 checkout 可安装为 `link:/absolute/path/to/dsh-codex-connect`。
|
|
32
|
+
|
|
33
|
+
### Alpha 4.21 更新内容
|
|
34
|
+
|
|
35
|
+
- 将生成图片的精确原文件与对话预览分开保存和下载,恢复会话及继承了图片结果的 fork 会话同样可用。
|
|
36
|
+
- 使用可选的 `capabilities` 命令检查运行环境与 Responses/SSE 的支持证据。网络探测必须显式传入 `--probe`;不会启用未支持的功能或修改路由。
|
|
37
|
+
- 提供更清晰的精确版本安装指引,并扩展发布与 canary 的 CI 检查。支持的 DSH 版本仍为 `0.1.1-rc.2`。
|
|
32
38
|
|
|
33
39
|
### 版本更新提醒
|
|
34
40
|
|
|
@@ -139,6 +145,7 @@ dsh plugin --profile web exec dsh-codex-connect doctor --json
|
|
|
139
145
|
```yaml
|
|
140
146
|
- id: llm-openai-codex
|
|
141
147
|
config:
|
|
148
|
+
enableProxy: false
|
|
142
149
|
enableSearch: false
|
|
143
150
|
enableImageTool: false
|
|
144
151
|
enableImageGeneration: false
|
|
@@ -146,11 +153,19 @@ dsh plugin --profile web exec dsh-codex-connect doctor --json
|
|
|
146
153
|
|
|
147
154
|
打开 **设置 → 插件 → 插件配置 → Codex Connect**,即可在同一张卡片中管理账户和这些选项。**保存更改**只影响本插件的能力配置并即时生效,绝不会选择默认模型或全局搜索路由。
|
|
148
155
|
|
|
156
|
+
### 网络连接与代理检测
|
|
157
|
+
|
|
158
|
+
Codex Connect 默认使用**直连**。代理是可选项,只作用于本插件的 Codex 请求:模型流式请求、OAuth 登录和 token 刷新、额度、独立搜索以及图片生成。其他提供方和未进入插件作用域的网络请求仍使用进程原来的 dispatcher。
|
|
159
|
+
|
|
160
|
+
点击 **检测代理** 时,只会测试标准代理环境变量,以及文档列出的本机候选地址:`127.0.0.1:7890`、`127.0.0.1:7897` 和 `127.0.0.1:10809`。检测不调用模型、不消耗额度,也不会写入设置。规范 Codex 端点返回任何 HTTP 响应都表示网络可达;`401/403`、代理 `407`、DNS、连接被拒绝、超时、TLS 和 CONNECT 失败会分别显示为诊断类别。
|
|
161
|
+
|
|
162
|
+
请先检查候选地址,再选择 **使用此代理**,最后点击 **保存更改**。**手动配置**可以先测试一个不带凭据的 HTTP(S) proxy origin,再启用它。**停用代理**始终可用。检测失败会保留原来的模式;代理已启用但请求失败时,界面会给出可操作的错误,绝不会静默改走直连。
|
|
163
|
+
|
|
149
164
|
### 只开启你准备使用的能力
|
|
150
165
|
|
|
151
166
|
- `enableSearch: true` 会把 Codex 注册为可选择的搜索提供方,不会把它选为 profile 的全局搜索路由。
|
|
152
167
|
- `enableImageTool: true` 会为具备视觉能力的模型启用 `view_image`,用于审批后的本地读取和公网图片获取。
|
|
153
|
-
- `enableImageGeneration: true` 会启用只接受文字描述的图片生成工具。使用你当前 GPT
|
|
168
|
+
- `enableImageGeneration: true` 会启用只接受文字描述的图片生成工具。使用你当前 GPT 订阅计划提供的图片生成能力。Codex Connect 会把生成结果的精确原文件保存到插件自有存储,同时另存一份 DSH 附件作为对话预览。
|
|
154
169
|
|
|
155
170
|
下图是有人显式开启能力之后的配置示例,不是新安装的默认状态。本中文指南使用中文本地化截图;English 版展示同一状态的英文截图。
|
|
156
171
|
|
|
@@ -163,15 +178,17 @@ dsh plugin --profile web exec dsh-codex-connect doctor --json
|
|
|
163
178
|
1. 在 Codex Connect 卡片中开启 **启用 GPT Image 图片生成**,然后点击 **保存更改**。
|
|
164
179
|
2. 为当前对话选择一个 `openai-codex` GPT 模型。
|
|
165
180
|
3. 用自然语言描述你想要的图片;Agent 可以在调用 GPT Image 前将这段描述扩展为更完整的提示词。
|
|
166
|
-
4.
|
|
181
|
+
4. 图片生成后,精确原文件会与用于对话展示的 DSH 附件分开保存。你可以在结果卡片里查看和复制完整提示词、分别下载原文件或预览,并比较两者的尺寸与文件大小。
|
|
167
182
|
|
|
168
183
|
此能力使用你当前 GPT 订阅计划提供的图片生成权限,不需要 OpenAI Platform API Key;具体可用性仍取决于当前对话所选的 GPT 套餐和模型。
|
|
169
184
|
|
|
185
|
+
输出尺寸由订阅服务决定。工具只接受提示词,不提供尺寸设置,也不保证生成 4K 图片。要求“4K 级细节”不代表文件具有 4K 像素尺寸,请以结果卡片显示的尺寸为准。下载原文件会保留服务实际返回的图片,不会将其放大。
|
|
186
|
+
|
|
170
187
|
<p align="center">
|
|
171
188
|
<img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/zh/image-generation.png" alt="Codex Connect 中文 GPT Image 结果卡片,包含图片预览、可复制提示词、下载操作和图片详情" width="780">
|
|
172
189
|
</p>
|
|
173
190
|
|
|
174
|
-
图片的详细提示词由当前选择的 GPT 模型生成。Codex Connect
|
|
191
|
+
图片的详细提示词由当前选择的 GPT 模型生成。Codex Connect 不会偷偷添加图片参数:它只校验“提示词”请求,并通过 ChatGPT 订阅提供的图片能力发送。服务返回的精确字节保存在 `$DSH_HOME/dsh-codex-connect/images/v1`;对话中使用的是另一份 DSH 附件预览,可能按照当前 DSH 附件策略缩放或重新编码。点击 **下载原文件** 得到的一定是插件保存的精确文件,**下载预览** 得到的是 DSH 表示。原文件仅允许文件所有者访问,下载前会校验完整性;创建图片的会话以及继承了该图片结果的 fork 会话均可下载,恢复会话后仍然有效。在该结果之前创建的 fork 会话和无关会话不能下载。关闭图片生成或卸载插件不会自动删除这些文件;通过结果卡片下载仍需安装插件。结果卡片里的提示词可以滚动查看和复制。点击 **再次尝试** 或 **再生成一张** 时,会重新发送这张卡片自己的提示词,不会因为后来出现了新的对话消息而误用最新上下文。点击 **基于此图修改** 时,模型会先询问你想改什么,再基于这张卡片的提示词继续处理。
|
|
175
192
|
|
|
176
193
|
### 插件配置中的额度说明
|
|
177
194
|
|
|
@@ -210,6 +227,8 @@ dsh plugin --profile web exec dsh-codex-connect doctor --json
|
|
|
210
227
|
| 字段 | 默认值 | 可选值 |
|
|
211
228
|
|---|---:|---|
|
|
212
229
|
| `models` | 完整目录 | Codex model id 数组;空数组隐藏全部条目 |
|
|
230
|
+
| `enableProxy` | `false` | boolean;除非显式启用,否则使用直连 |
|
|
231
|
+
| `proxyUrl` | `http://127.0.0.1:7890`(未启用的占位值) | 不带凭据的 HTTP(S) proxy origin |
|
|
213
232
|
| `enableSearch` | `false` | boolean |
|
|
214
233
|
| `enableImageTool` | `false` | boolean |
|
|
215
234
|
| `enableImageGeneration` | `false` | boolean |
|
|
@@ -237,9 +256,24 @@ dsh plugin --profile web exec dsh-codex-connect doctor --json
|
|
|
237
256
|
- 启动报告 `openai-codex` 冲突时,旧 `dsh-codex` bundle 或手动 provider 配置可能已占用该 adapter。先检查有效配置,只移除已确认的冲突所有者。不要删除认证文件或无关 provider。
|
|
238
257
|
- 移除包不会删除 OAuth 状态;只有确实需要删除凭据时才运行 `logout`。
|
|
239
258
|
|
|
259
|
+
### 按需能力报告
|
|
260
|
+
|
|
261
|
+
请从目标插件安装位置运行独立的 `capabilities` 命令。不传 `--probe` 时,它只读取本地主机包版本与认证文件元数据,不打开认证文件内容,也不发送网络请求。现有 `doctor` 行为和设置页兼容性卡不变。
|
|
262
|
+
|
|
263
|
+
```sh
|
|
264
|
+
dsh plugin --profile web exec dsh-codex-connect capabilities --model gpt-5.6-sol --json
|
|
265
|
+
dsh plugin --profile web exec dsh-codex-connect capabilities --model gpt-5.6-sol --probe --json
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
`--probe` 显式向普通 Codex Responses 路由发送一条固定短请求,可能消耗额度。它读取尚未过期的已存凭据,但不刷新或写入凭据。除非传入 `--proxy <http(s)-origin>`,否则命令使用直连,不读取正在运行的 profile 代理设置或环境代理变量。默认期限为 30000 ms,可通过 `--timeout-ms <1..60000>` 调整。命令不跟随重定向、不重试,响应上限为 64 KiB,并在返回前销毁自有连接。达到期限或大小上限不保证服务端生成已经停止。可复用诊断实例仅将完整响应和明确请求拒绝在内存中缓存至多 60 秒,按凭据、模型、版本与网络策略隔离。不同 CLI 调用之间不共享缓存证据。
|
|
269
|
+
|
|
270
|
+
报告为每项检查标注 `supported`(可用)、`rejected`(拒绝)或 `unknown`(未验证),并提供原因与修复动作。运行时可用仅表示声明的主机包版本匹配,不代表 Web profile 或某个 Node 补丁版本经过集成验证。模型目录条目或私有认证文件只能令模型权限与 OAuth 有效性保持 `unknown`。只有 HTTP 200 有限 SSE 响应包含所选模型完整、非空的助手输出,才能确认独立路由;重定向、超时、限流和不完整流仍为 `unknown`。HTTP 400/404 拒绝的是本次请求,并非所有模型或可选功能;HTTP 401/403 还表示本次请求的授权被拒绝。报告省略 token、账号 ID、路径、代理 origin、响应 ID、headers 和生成文本。
|
|
271
|
+
|
|
272
|
+
本报告仅涵盖独立路由,不验证活动 profile 路由、搜索/图片工具、浏览器兼容性、provider 重试行为或会话恢复。本插件没有实现自动 provider 故障切换,因此该项为 `rejected`,需要用户明确选择其他 provider。有限 SSE 默认路径不会触发 WebSocket 到 SSE 的回退。`contextManagement` 和续接仍为 `unknown`;原生 compaction 和 WebSocket reuse 在当前集成策略下为 `rejected`。诊断结果不会启用这些能力,也不会更改 Harness 历史。退出码只覆盖运行时、OAuth、所选模型、Responses 和 SSE:`0` 表示五项均可用,`1` 表示至少一项被拒绝,`2` 表示证据未知、选项无效或检查失败。被拒绝的可选能力不影响该退出码。
|
|
273
|
+
|
|
240
274
|
## 兼容性与安全边界
|
|
241
275
|
|
|
242
|
-
- 当前唯一已验证的兼容组合是 DSH 插件 API packages `0.1.1-rc.2`、`@earendil-works/pi-ai` `0.82.1` 和 Node.js `^22.19.0 || >=24.0.0`;详见 [compatibility.json](../compatibility.json)。Alpha 4.
|
|
276
|
+
- 当前唯一已验证的兼容组合是 DSH 插件 API packages `0.1.1-rc.2`、`@earendil-works/pi-ai` `0.82.1` 和 Node.js `^22.19.0 || >=24.0.0`;详见 [compatibility.json](../compatibility.json)。Alpha 4.21 使用 rc.2 的 keyed 插件配置 slot;旧版 DSH API packages 用户应升级到 rc.2 API packages。
|
|
243
277
|
- 升级时请将 DSH 插件 API packages 与 `@earendil-works/pi-ai` 作为一组升级,再运行 `dsh-codex-connect doctor --json` 和兼容性检查。本契约不对未来版本作判断。
|
|
244
278
|
- 每日上游检查发现新的 DSH `latest` 或 `next` 候选版本时,会把 Codex Connect 安装到隔离 Profile 中,在没有 OAuth 凭据的情况下启动已安装的模型运行时,验证模型与推理强度发现,并确认提供方可被正确卸载。真实登录、额度和模型请求仍需在测试 Profile 中人工验证。
|
|
245
279
|
- ChatGPT 套餐资格、模型权限、额度和后端行为由 OpenAI 控制,可能变化。
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Agent Note: Original image access from forked sessions
|
|
2
|
+
|
|
3
|
+
Original image files retain their creating session ID and immutable byte metadata. DSH forks copy tool-result events into a new session whose durable header records `parentSession` and `seedLength`. The download route accepts a cross-owner read only when that session's inherited event prefix contains a decoded Codex image result with the requested original reference, and every reference field matches the stored metadata. The HTTP caller supplies only session and asset IDs, never an inheritance proof.
|
|
4
|
+
|
|
5
|
+
Checking only the immediate parent would fail nested forks and restored sessions whose ancestors are not loaded. Granting access to every ancestor asset would expose images created after the fork boundary. The inherited event prefix supplies the narrower authorization without a second grant database or a new stored-reference format. Session records are trusted local DSH state; malformed presentation metadata is rejected by the existing decoder. Files remain subject to permission, format, dimensions, byte count and SHA-256 verification.
|
|
6
|
+
|
|
7
|
+
The route tests exercise the real DSH `SessionStore.fork` and `Session.fromRestore` paths with file-backed original storage. They cover exact downloads from nested/restored forks, absent ancestors, earlier forks, live references outside the inherited prefix, unrelated sessions, and mismatched stored metadata. They make no ChatGPT request and do not require a running profile. Existing presentation tests cover legacy preview-only records; no model-visible output or reference schema changes are introduced by this access fix.
|