dsh-codex-connect 0.1.0-alpha.4.33 → 0.1.0-alpha.4.34
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 +8 -7
- package/README.i18n.yaml +2 -2
- package/README.md +3 -3
- package/compatibility.json +1 -1
- package/docs/README.zh.md +3 -3
- package/docs/reference.i18n.yaml +2 -2
- package/docs/reference.md +5 -1
- package/docs/reference.zh.md +5 -1
- package/lib/bin.js +1 -1
- package/lib/client.js +53 -4
- package/lib/index.d.ts +14 -5
- package/lib/index.js +2 -2
- package/lib/{src-Dc-mRwDj.js → src-rxlwLWWN.js} +40 -8
- package/package.json +19 -19
package/INSTALL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Installation Runbook for CLI Agents
|
|
2
2
|
|
|
3
|
-
Alpha 4.
|
|
3
|
+
Alpha 4.33 is verified with DSH `0.1.2-rc.1` and pi-ai `0.84.4` within `^0.84.2`, and with DSH `0.1.5-alpha.1` and pi-ai `0.85.1`.
|
|
4
4
|
|
|
5
5
|
Install `dsh-codex-connect` into one requested DeepSeek Harness profile without changing its current default model, search route, global configuration, or OAuth state.
|
|
6
6
|
|
|
@@ -23,14 +23,15 @@ Check `dsh --version` before changing the requested profile. Use `dsh --help` to
|
|
|
23
23
|
| `0.1.0-rc.7` | `0.1.0-alpha.4.14` |
|
|
24
24
|
| `0.1.1-rc.2` | `0.1.0-alpha.4.21` |
|
|
25
25
|
| `0.1.2-alpha.2` | `0.1.0-alpha.4.23` |
|
|
26
|
-
| `0.1.2-rc.1` | `0.1.0-alpha.4.
|
|
26
|
+
| `0.1.2-rc.1` | `0.1.0-alpha.4.33` |
|
|
27
27
|
| `0.1.2-alpha.5` | `0.1.0-alpha.4.25` |
|
|
28
|
+
| `0.1.5-alpha.1` | `0.1.0-alpha.4.33` |
|
|
28
29
|
|
|
29
30
|
If your exact DSH version is unknown or not listed, preserve the installed host, report that the combination is unverified, and verify it before making installation changes. A missing record does not prove incompatibility, and the catalog's latest verified DSH version is not the latest upstream release. Do not recommend upgrading or downgrading DSH merely to match a row. Investigate any specific failure and seek verification of the installed combination. 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.
|
|
30
31
|
|
|
31
|
-
Alpha 4.
|
|
32
|
+
Alpha 4.33 requires one consistent DSH plugin API version: `0.1.2-rc.1` with `@earendil-works/pi-ai` `^0.84.2`, or `0.1.5-alpha.1` with pi-ai `0.85.1`; Node.js remains `^22.19.0 || >=24.0.0`. Mixed host versions and other DSH/pi-ai combinations remain unverified. Alpha 4.25 remains the verified choice for DSH `0.1.2-alpha.5`, Alpha 4.23 remains the verified choice for DSH `0.1.2-alpha.2`, Alpha 4.21 remains the verified choice for DSH `0.1.1-rc.2`, and staying on DSH `0.1.0-rc.7` means selecting Alpha 4.14. Changing DSH is a separate operation requiring the user's explicit request; a plugin update request does not authorize it. The repository's `pnpm --silent run check:compatibility` remains a strict development/release dependency gate, not a recommendation to change a user's host.
|
|
32
33
|
|
|
33
|
-
The Alpha 4.
|
|
34
|
+
The Alpha 4.33 rows reflect same-artifact isolated installation and runtime checks, bounded real-account calls, and isolated upgrades from Alpha 4.32. Fresh OAuth and manual callback acceptance used the real implementation through a temporary acceptance page. See [.github/ALPHA_433_RELEASE_READINESS.md](https://github.com/franksong2702/dsh-codex-connect/blob/main/.github/ALPHA_433_RELEASE_READINESS.md) for commands and verification limits. Historical rows remain the repository's existing verification record. This guidance does not change upstream DSH behavior or resolve [Issue #64](https://github.com/franksong2702/dsh-codex-connect/issues/64).
|
|
34
35
|
|
|
35
36
|
### Install the selected version and validate
|
|
36
37
|
|
|
@@ -53,10 +54,10 @@ The Alpha 4.32 row reflects a fresh isolated installation and runtime probe. His
|
|
|
53
54
|
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.23
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
For DSH `0.1.2-rc.1`, use Alpha 4.
|
|
57
|
+
For DSH `0.1.2-rc.1` or `0.1.5-alpha.1`, use Alpha 4.33:
|
|
57
58
|
|
|
58
59
|
```sh
|
|
59
|
-
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.
|
|
60
|
+
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.33
|
|
60
61
|
```
|
|
61
62
|
|
|
62
63
|
For DSH `0.1.2-alpha.5`, use Alpha 4.25:
|
|
@@ -65,7 +66,7 @@ The Alpha 4.32 row reflects a fresh isolated installation and runtime probe. His
|
|
|
65
66
|
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.25
|
|
66
67
|
```
|
|
67
68
|
|
|
68
|
-
If npm is unavailable after the 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, `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.23'` only for the DSH `0.1.2-alpha.2` combination, `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.25'` only for the DSH `0.1.2-alpha.5` combination, or `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.
|
|
69
|
+
If npm is unavailable after the 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, `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.23'` only for the DSH `0.1.2-alpha.2` combination, `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.25'` only for the DSH `0.1.2-alpha.5` combination, or `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.33'` only for the DSH `0.1.2-rc.1` or `0.1.5-alpha.1` combinations.
|
|
69
70
|
|
|
70
71
|
3. Run `dsh web --help` once to compose the installed profile without starting the server. DSH `0.1.2-rc.1` prepares profile plugin dependency fallback during this step.
|
|
71
72
|
4. Run `dsh --profile web --dump-config` and require exactly one `llm-openai-codex` row loading `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: abaac5cb3f80c204f01c6b804fff06e649a75298
|
|
6
|
+
docs/README.zh.md: fe1383a7deaeaf355782ee6cf79f296e0f3cbaad
|
package/README.md
CHANGED
|
@@ -16,15 +16,15 @@ This guide describes the published pairing below. Check `dsh --version` first; f
|
|
|
16
16
|
|
|
17
17
|
| Requirement | Verified pairing |
|
|
18
18
|
|---|---|
|
|
19
|
-
| Codex Connect | `0.1.0-alpha.4.
|
|
20
|
-
| DeepSeek Harness | `0.1.2-rc.1` |
|
|
19
|
+
| Codex Connect | `0.1.0-alpha.4.33` |
|
|
20
|
+
| DeepSeek Harness | `0.1.2-rc.1` or `0.1.5-alpha.1` |
|
|
21
21
|
| Node.js | `^22.19.0 \|\| >=24.0.0` |
|
|
22
22
|
| Account | ChatGPT OAuth with access to the requested Codex model; availability is decided by OpenAI |
|
|
23
23
|
|
|
24
24
|
### 1. Install
|
|
25
25
|
|
|
26
26
|
```sh
|
|
27
|
-
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.
|
|
27
|
+
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.33
|
|
28
28
|
dsh web
|
|
29
29
|
```
|
|
30
30
|
|
package/compatibility.json
CHANGED
package/docs/README.zh.md
CHANGED
|
@@ -16,15 +16,15 @@ Codex Connect 为标准 Harness agent loop 添加 `openai-codex` 模型提供方
|
|
|
16
16
|
|
|
17
17
|
| 要求 | 已验证组合 |
|
|
18
18
|
|---|---|
|
|
19
|
-
| Codex Connect | `0.1.0-alpha.4.
|
|
20
|
-
| DeepSeek Harness | `0.1.2-rc.1` |
|
|
19
|
+
| Codex Connect | `0.1.0-alpha.4.33` |
|
|
20
|
+
| DeepSeek Harness | `0.1.2-rc.1` 或 `0.1.5-alpha.1` |
|
|
21
21
|
| Node.js | `^22.19.0 \|\| >=24.0.0` |
|
|
22
22
|
| 账户 | 通过 ChatGPT OAuth 使用所请求的 Codex 模型;可用性由 OpenAI 决定 |
|
|
23
23
|
|
|
24
24
|
### 1. 安装
|
|
25
25
|
|
|
26
26
|
```sh
|
|
27
|
-
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.
|
|
27
|
+
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.33
|
|
28
28
|
dsh web
|
|
29
29
|
```
|
|
30
30
|
|
package/docs/reference.i18n.yaml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
# Bilingual-pair consistency record for the operational reference. Re-record with:
|
|
2
2
|
# git hash-object docs/reference.md docs/reference.zh.md
|
|
3
|
-
docs/reference.md:
|
|
4
|
-
docs/reference.zh.md:
|
|
3
|
+
docs/reference.md: d3e3af704f0a40f35f8f99b422cb2606877b3861
|
|
4
|
+
docs/reference.zh.md: 9b976d9b005c36a561d7a7fca74bb5250d518fb5
|
package/docs/reference.md
CHANGED
|
@@ -10,7 +10,7 @@ OAuth credentials are stored on the DSH host and used there to authenticate and
|
|
|
10
10
|
|
|
11
11
|
Choose an `openai-codex` model in the normal Harness model picker. Model names remain canonical in every UI language. **More settings → Models** controls which models appear in discovery; hiding a model does not disable routing by its exact id.
|
|
12
12
|
|
|
13
|
-
The Codex catalog comes from the installed `@earendil-works/pi-ai` package, not a live query of the account's available models. DSH `0.1.2-rc.1` uses pi-ai `^0.84.2`, which lacks `gpt-6-astra`; Codex Connect supplies that definition.
|
|
13
|
+
The Codex catalog comes from the installed `@earendil-works/pi-ai` package, not a live query of the account's available models. DSH `0.1.2-rc.1` uses pi-ai `^0.84.2`, which lacks `gpt-6-astra`; Codex Connect supplies that definition. Alpha 4.33 is also verified with DSH `0.1.5-alpha.1` and pi-ai `0.85.1`. Mixed host package versions and other DSH/pi-ai combinations remain unverified. With a native Astra entry, the plugin preserves its metadata and retains Low, Medium, High, Xhigh, and Max reasoning choices without modifying the installed catalog. Users do not need to upgrade pi-ai separately to select Astra. The exact verified pairs and acceptance limits are recorded in the release notes; dependency declarations alone do not establish verification. Neither catalog source proves account access.
|
|
14
14
|
|
|
15
15
|
- Adding an account leaves the current account usable while authorization is pending.
|
|
16
16
|
- Cancelling or timing out a new authorization preserves every existing account and closes accepted callback connections, including incomplete HTTP requests. After cancellation, the browser reads account labels and quota together before updating the view. Pending authorization expires after 10 minutes by default; `oauthTimeoutMs` accepts 1,000–1,800,000 milliseconds and is applied when the plugin loads.
|
|
@@ -62,6 +62,7 @@ Direct connection is the default. An enabled credential-free HTTP(S) proxy appli
|
|
|
62
62
|
- Search has a 30-second total deadline covering authentication, response headers and body reading. Responses larger than 1 MiB are rejected, and unfinished response bodies are cancelled on failure. Caller cancellation can end a search sooner.
|
|
63
63
|
- `enableImageTool: true` registers `view_image` on vision-capable models. Remote reads accept credential-free public HTTP(S) only and revalidate DNS and redirects.
|
|
64
64
|
- `enableImageGeneration: true` registers prompt-only GPT Image generation. Use the image generation capability included with your current GPT subscription. Availability, dimensions, and quota remain account- and service-controlled.
|
|
65
|
+
- `imageModelHint` is an optional profile-scoped setting in Plugin configuration or the profile config. Empty uses `gpt-image-2`; a custom value accepts 1–128 ASCII letters, digits, dots, underscores, or hyphens and must start with a letter or digit. Saving changes the `model` field of subsequent image requests to the same fixed endpoint; clearing restores the default. The tool still accepts only `prompt`. This is an unverified route hint: the service may ignore or reject it, and it does not guarantee the returned model.
|
|
65
66
|
|
|
66
67
|
Generated originals are stored under `$DSH_HOME/dsh-codex-connect/images/v1`; the conversation receives a separate DSH attachment preview. The result card reports dimensions and file sizes and can download either representation. Originals are owner-only, integrity-checked, and available only to the creating session and forks that inherited the result. Disabling or uninstalling the plugin does not delete those files automatically.
|
|
67
68
|
|
|
@@ -102,6 +103,7 @@ The main plugin options are:
|
|
|
102
103
|
| `enableSearch` | `false` | Register Codex search and select it when the setting is saved |
|
|
103
104
|
| `enableImageTool` | `false` | Register `view_image` |
|
|
104
105
|
| `enableImageGeneration` | `false` | Register GPT Image generation |
|
|
106
|
+
| `imageModelHint` | empty | Optional unverified image route hint; empty keeps the default request |
|
|
105
107
|
| `enableAutoReview` | `false` | Review eligible approval requests with Codex |
|
|
106
108
|
| `searchModel` | `gpt-5.6-sol` | Model used by standalone search |
|
|
107
109
|
| `searchMode` | `cached` | `cached`, `indexed`, or `live` |
|
|
@@ -114,6 +116,8 @@ The main plugin options are:
|
|
|
114
116
|
|
|
115
117
|
### Local installation diagnostics
|
|
116
118
|
|
|
119
|
+
Published Alpha 4.33 can fail to list or prepare Codex models on DSH `0.1.5-rc.1` with `Cannot read properties of undefined (reading 'get')`. That host requires a per-model error index absent from the older plugin profile. Builds containing [the Issue #178 fix](https://github.com/franksong2702/dsh-codex-connect/issues/178) initialize the index; re-authorizing does not supply it. Choose an exact plugin release verified with your host version, not merely one with the same Alpha series.
|
|
120
|
+
|
|
117
121
|
Run `dsh plugin --profile web exec dsh-codex-connect doctor --json` to inspect local installation metadata without a network request. Compatibility statuses mean: `compatible` matches the declared version requirements, not a behavioral test; `unverified` identifies package versions outside the declared support set; `unknown` means required version metadata is missing or unreadable; `incompatible` identifies a Node version outside the declared engine requirement. The aggregate prioritizes `incompatible`, then `unknown`, then `unverified`. Doctor exits `1` for any non-compatible result or unsafe credential-file metadata; this does not authorize or recommend changing DSH.
|
|
118
122
|
|
|
119
123
|
The normal update card checks only Codex Connect releases. It reuses successful plugin-version checks for up to 24 hours and retries unavailable checks every five minutes while mounted; a manual check bypasses the cache. It neither queries host compatibility nor recommends host upgrades or downgrades. An unlisted DSH/plugin combination requires verification, not an assumption of failure.
|
package/docs/reference.zh.md
CHANGED
|
@@ -10,7 +10,7 @@ OAuth 凭据保存在运行 DSH 的主机上,由该主机用于向 OpenAI 认
|
|
|
10
10
|
|
|
11
11
|
在 Harness 的常规模型选择器中选择一个 `openai-codex` 模型。所有界面语言均保留模型的规范名称。**更多设置 → 模型** 控制发现列表中显示哪些模型;隐藏模型不会禁用按精确 ID 路由。
|
|
12
12
|
|
|
13
|
-
Codex 目录来自已安装的 `@earendil-works/pi-ai` 包,不是实时查询账户可用模型的结果。DSH `0.1.2-rc.1` 使用 pi-ai `^0.84.2`,其中尚无 `gpt-6-astra`,因此由 Codex Connect 补充定义。Alpha 4.33
|
|
13
|
+
Codex 目录来自已安装的 `@earendil-works/pi-ai` 包,不是实时查询账户可用模型的结果。DSH `0.1.2-rc.1` 使用 pi-ai `^0.84.2`,其中尚无 `gpt-6-astra`,因此由 Codex Connect 补充定义。Alpha 4.33 也已验证 DSH `0.1.5-alpha.1` 与 pi-ai `0.85.1` 的组合;混装的宿主包以及其他 DSH/pi-ai 组合仍属未验证。遇到原生 Astra 条目时,插件保留其元数据,并维持 Low、Medium、High、Xhigh 和 Max 推理选择,不修改已安装的目录。用户无需单独升级 pi-ai 即可选择 Astra。发布说明记录了准确的已验证组合和验收限制;依赖声明本身不代表已验证。两种来源的目录条目都不能证明账户具有调用权限。
|
|
14
14
|
|
|
15
15
|
- 添加账户期间,当前账户仍可继续使用。
|
|
16
16
|
- 取消新的授权或等待超时,不会删除任何已有账户,并会关闭已接受的回调连接,包括未完成的 HTTP 请求。取消后,浏览器会一起读取账户标签与额度,再更新显示。待处理授权默认 10 分钟后过期;`oauthTimeoutMs` 接受 1,000–1,800,000 毫秒,并在插件加载时应用。
|
|
@@ -62,6 +62,7 @@ GPT Codex 对话的 Composer 会显示 Fast Mode 与额度:
|
|
|
62
62
|
- 搜索从认证开始到读完响应共用 30 秒总期限。超过 1 MiB 的响应会被拒绝,失败时会取消尚未读完的响应体。调用方也可以提前取消搜索。
|
|
63
63
|
- `enableImageTool: true` 为具备视觉能力的模型注册 `view_image`。远程读取只接受不带凭据的公网 HTTP(S),并重新检查 DNS 与重定向。
|
|
64
64
|
- `enableImageGeneration: true` 注册只接受提示词的 GPT Image 图片生成。使用你当前 GPT 订阅计划提供的图片生成能力。可用性、尺寸和额度仍由账户及服务端控制。
|
|
65
|
+
- `imageModelHint` 是“插件配置”或 profile config 中的可选设置,按 profile 保存。留空使用 `gpt-image-2`;自定义值接受 1–128 个 ASCII 字母、数字、点、下划线或连字符,且必须以字母或数字开头。保存后会修改后续图片请求的 `model` 字段,仍使用同一固定端点;清空可恢复默认值。工具仍只接受 `prompt`。这是未经验证的路由提示:服务端可能忽略或拒绝,也不保证返回指定模型。
|
|
65
66
|
|
|
66
67
|
生成的原文件保存在 `$DSH_HOME/dsh-codex-connect/images/v1`;对话会收到另一份 DSH 附件预览。结果卡片会报告尺寸和文件大小,并可下载任一版本。原文件仅允许所有者访问,下载前会校验完整性,并且只对创建会话及继承了该结果的 fork 开放。关闭能力或卸载插件不会自动删除这些文件。
|
|
67
68
|
|
|
@@ -102,6 +103,7 @@ GPT Codex 对话的 Composer 会显示 Fast Mode 与额度:
|
|
|
102
103
|
| `enableSearch` | `false` | 注册 Codex 搜索,并在保存时将它选为搜索提供方 |
|
|
103
104
|
| `enableImageTool` | `false` | 注册 `view_image` |
|
|
104
105
|
| `enableImageGeneration` | `false` | 注册 GPT Image 图片生成 |
|
|
106
|
+
| `imageModelHint` | 空字符串 | 可选的未验证图片路由提示;留空保持默认请求 |
|
|
105
107
|
| `enableAutoReview` | `false` | 使用 Codex 审查符合条件的审批请求 |
|
|
106
108
|
| `searchModel` | `gpt-5.6-sol` | 独立搜索使用的模型 |
|
|
107
109
|
| `searchMode` | `cached` | `cached`、`indexed` 或 `live` |
|
|
@@ -114,6 +116,8 @@ GPT Codex 对话的 Composer 会显示 Fast Mode 与额度:
|
|
|
114
116
|
|
|
115
117
|
### 本地安装诊断
|
|
116
118
|
|
|
119
|
+
已发布的 Alpha 4.33 在 DSH `0.1.5-rc.1` 上列出或准备 Codex 模型时,可能报 `Cannot read properties of undefined (reading 'get')`。新宿主要求按模型记录错误的索引,旧插件 profile 没有提供。包含 [Issue #178 修复](https://github.com/franksong2702/dsh-codex-connect/issues/178)的构建会初始化该索引;重新授权不能补齐这个字段。请选择与宿主版本完成验证的精确插件版本,不能仅凭属于同一 Alpha 系列判断。
|
|
120
|
+
|
|
117
121
|
运行 `dsh plugin --profile web exec dsh-codex-connect doctor --json` 可检查本地安装元数据,不会联网。兼容性状态含义:`compatible` 表示符合声明的版本要求,不是行为测试通过;`unverified` 表示包版本超出声明的支持集合;`unknown` 表示缺少必要版本元数据或无法读取;`incompatible` 表示 Node 版本不满足声明的 engine 要求。汇总状态依次优先采用 `incompatible`、`unknown`、`unverified`。任何非 compatible 结果或不安全的凭据文件元数据都会让 doctor 返回 `1`,但这并不授权或建议更改 DSH。
|
|
118
122
|
|
|
119
123
|
常规更新卡片只检查 Codex Connect 发布版本。插件版本检查成功后最多缓存 24 小时,页面挂载期间每五分钟重试不可用的检查;手动检查会绕过缓存。它不会查询宿主兼容性,也不会建议升级或降级宿主。未列入记录的 DSH/plugin 组合需要验证,不能据此认定无法运行。
|
package/lib/bin.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as readInstalledPackageVersion,
|
|
2
|
+
import { $ as readInstalledPackageVersion, At as normalizeTrustedOrigin, Ft as loginOpenAICodex, Gt as openAICodexAuthPath, H as DSH_PLUGIN_API_PACKAGES, It as logoutOpenAICodex, Lt as openAICodexAuthStatus, N as CODEX_CONNECT_VERSION, Pt as openAICodexModelCatalog, Q as isSupportedDshPluginApiVersion, Rt as publicAuthError, Ut as OPENAI_CODEX_PROVIDER, Wt as OpenAICodexCredentialStore, Z as evaluateCompatibility, c as migrateOpenAICodexSearchHistory, d as OPENAI_CODEX_BASE_URL, j as diagnoseOpenAICodex, kt as OpenAICodexTrustedOriginsStore, l as CODEX_AUTO_REVIEW_MODEL, u as probeCodexAutoReview, xt as normalizeOpenAICodexProxyUrl } from "./src-rxlwLWWN.js";
|
|
3
3
|
import { i as fetch, r as ProxyAgent, t as Agent } from "./undici-runtime-H2uktiw6.js";
|
|
4
4
|
import { createHash } from "node:crypto";
|
|
5
5
|
import { realpathSync } from "node:fs";
|
package/lib/client.js
CHANGED
|
@@ -13,6 +13,10 @@ window.__ModuleLoader__.load({
|
|
|
13
13
|
const OPENAI_CODEX_SETTINGS_NAMESPACE = "llm-openai-codex";
|
|
14
14
|
/** Suggested local HTTP proxy shown by the settings UI; it is never enabled by default. */
|
|
15
15
|
const DEFAULT_OPENAI_CODEX_PROXY_URL = "http://127.0.0.1:7890";
|
|
16
|
+
/** Validate an optional bounded ASCII image route model hint. */
|
|
17
|
+
function isValidOpenAICodexImageModelHint(value) {
|
|
18
|
+
return typeof value === "string" && (value === "" || /^(?=.{1,128}$)[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(value));
|
|
19
|
+
}
|
|
16
20
|
/**
|
|
17
21
|
* Normalize the credential-free HTTP proxy URL accepted by Codex Connect.
|
|
18
22
|
* Paths, query strings, fragments, and embedded credentials are rejected so
|
|
@@ -68,6 +72,7 @@ window.__ModuleLoader__.load({
|
|
|
68
72
|
enableSearch: false,
|
|
69
73
|
enableImageTool: false,
|
|
70
74
|
enableImageGeneration: false,
|
|
75
|
+
imageModelHint: "",
|
|
71
76
|
autoReviewDisclosureAcknowledged: false,
|
|
72
77
|
enableAutoReview: false,
|
|
73
78
|
searchModel: "gpt-5.6-sol",
|
|
@@ -88,6 +93,7 @@ window.__ModuleLoader__.load({
|
|
|
88
93
|
const enableSearch = value["enableSearch"];
|
|
89
94
|
const enableImageTool = value["enableImageTool"];
|
|
90
95
|
const enableImageGeneration = value["enableImageGeneration"];
|
|
96
|
+
const imageModelHint = value["imageModelHint"];
|
|
91
97
|
const autoReviewDisclosureAcknowledged = value["autoReviewDisclosureAcknowledged"];
|
|
92
98
|
const enableAutoReview = value["enableAutoReview"];
|
|
93
99
|
const searchModel = value["searchModel"];
|
|
@@ -100,6 +106,7 @@ window.__ModuleLoader__.load({
|
|
|
100
106
|
if (contextWindowOverrides !== void 0 && contextWindowOverrides !== null && !isValidOpenAICodexContextWindowOverrides(contextWindowOverrides)) return void 0;
|
|
101
107
|
if (typeof enableSearch !== "boolean" || typeof enableImageTool !== "boolean") return void 0;
|
|
102
108
|
if (enableImageGeneration !== void 0 && typeof enableImageGeneration !== "boolean") return void 0;
|
|
109
|
+
if (imageModelHint !== void 0 && !isValidOpenAICodexImageModelHint(imageModelHint)) return void 0;
|
|
103
110
|
if (autoReviewDisclosureAcknowledged !== void 0 && typeof autoReviewDisclosureAcknowledged !== "boolean") return void 0;
|
|
104
111
|
if (enableAutoReview !== void 0 && typeof enableAutoReview !== "boolean") return void 0;
|
|
105
112
|
if (typeof searchModel !== "string" || searchModel.trim().length === 0) return void 0;
|
|
@@ -115,6 +122,7 @@ window.__ModuleLoader__.load({
|
|
|
115
122
|
enableSearch,
|
|
116
123
|
enableImageTool,
|
|
117
124
|
enableImageGeneration: enableImageGeneration ?? false,
|
|
125
|
+
imageModelHint: imageModelHint ?? "",
|
|
118
126
|
autoReviewDisclosureAcknowledged: autoReviewDisclosureAcknowledged ?? false,
|
|
119
127
|
enableAutoReview: enableAutoReview ?? false,
|
|
120
128
|
searchModel,
|
|
@@ -907,6 +915,7 @@ window.__ModuleLoader__.load({
|
|
|
907
915
|
"proxyUrl",
|
|
908
916
|
"enableImageTool",
|
|
909
917
|
"enableImageGeneration",
|
|
918
|
+
"imageModelHint",
|
|
910
919
|
"autoReviewDisclosureAcknowledged",
|
|
911
920
|
"enableAutoReview",
|
|
912
921
|
"searchModel",
|
|
@@ -1224,6 +1233,7 @@ window.__ModuleLoader__.load({
|
|
|
1224
1233
|
const validModel = draft !== void 0 && draft.searchModel.trim().length > 0;
|
|
1225
1234
|
const validTokens = draft !== void 0 && Number.isInteger(draft.searchMaxOutputTokens) && draft.searchMaxOutputTokens > 0;
|
|
1226
1235
|
const validProxy = draft !== void 0 && isValidOpenAICodexProxyUrl(draft.proxyUrl);
|
|
1236
|
+
const validImageModelHint = draft !== void 0 && isValidOpenAICodexImageModelHint(draft.imageModelHint);
|
|
1227
1237
|
const normalizedManualProxy = normalizeOpenAICodexProxyUrl(manualProxyUrl);
|
|
1228
1238
|
const manualProxyEntered = manualProxyUrl.trim().length > 0;
|
|
1229
1239
|
const testedManualProxy = normalizedManualProxy !== void 0 && manualProbe?.reachable === true && manualProbe.proxyUrl === normalizedManualProxy;
|
|
@@ -1234,7 +1244,7 @@ window.__ModuleLoader__.load({
|
|
|
1234
1244
|
const model = modelCatalog?.find((entry) => entry.id === id);
|
|
1235
1245
|
return model !== void 0 && isValidOpenAICodexContextBudget(budget, model.maxContextWindow);
|
|
1236
1246
|
});
|
|
1237
|
-
const valid = validModel && validTokens && validProxy && validContexts && validProxySelection;
|
|
1247
|
+
const valid = validModel && validTokens && validProxy && validImageModelHint && validContexts && validProxySelection;
|
|
1238
1248
|
const save = async () => {
|
|
1239
1249
|
if (scope === void 0 || draft === void 0 || !snapshot.writable || !valid) return;
|
|
1240
1250
|
const desired = {
|
|
@@ -2091,6 +2101,28 @@ window.__ModuleLoader__.load({
|
|
|
2091
2101
|
})]
|
|
2092
2102
|
})]
|
|
2093
2103
|
}),
|
|
2104
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
2105
|
+
style: formFieldStyle,
|
|
2106
|
+
children: [
|
|
2107
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2108
|
+
style: labelStyle,
|
|
2109
|
+
children: t("imageModelHint")
|
|
2110
|
+
}),
|
|
2111
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
2112
|
+
style: controlStyle,
|
|
2113
|
+
value: draft.imageModelHint,
|
|
2114
|
+
placeholder: t("imageModelHintDefault"),
|
|
2115
|
+
"aria-invalid": !validImageModelHint,
|
|
2116
|
+
onChange: (event) => {
|
|
2117
|
+
update("imageModelHint", event.currentTarget.value);
|
|
2118
|
+
}
|
|
2119
|
+
}),
|
|
2120
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2121
|
+
style: bodyStyle$2,
|
|
2122
|
+
children: t("imageModelHintHelp")
|
|
2123
|
+
})
|
|
2124
|
+
]
|
|
2125
|
+
}),
|
|
2094
2126
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
2095
2127
|
style: toggleRowStyle,
|
|
2096
2128
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
@@ -2192,6 +2224,11 @@ window.__ModuleLoader__.load({
|
|
|
2192
2224
|
role: "alert",
|
|
2193
2225
|
children: t("invalidProxyUrl")
|
|
2194
2226
|
}) : null,
|
|
2227
|
+
visibleModule === "capabilities" && !validImageModelHint && draft !== void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
2228
|
+
style: errorStyle$2,
|
|
2229
|
+
role: "alert",
|
|
2230
|
+
children: t("invalidImageModelHint")
|
|
2231
|
+
}) : null,
|
|
2195
2232
|
visibleModule === "capabilities" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
2196
2233
|
style: bodyStyle$2,
|
|
2197
2234
|
children: t("routingNote")
|
|
@@ -2259,7 +2296,8 @@ window.__ModuleLoader__.load({
|
|
|
2259
2296
|
"auto-review",
|
|
2260
2297
|
"astra-compatibility",
|
|
2261
2298
|
"multi-account",
|
|
2262
|
-
"search-route"
|
|
2299
|
+
"search-route",
|
|
2300
|
+
"image-model-hint"
|
|
2263
2301
|
];
|
|
2264
2302
|
function isHighlightKind(value) {
|
|
2265
2303
|
return typeof value === "string" && HIGHLIGHT_KINDS.includes(value);
|
|
@@ -2728,7 +2766,8 @@ window.__ModuleLoader__.load({
|
|
|
2728
2766
|
"auto-review": "updateHighlightAutoReview",
|
|
2729
2767
|
"astra-compatibility": "updateHighlightAstraCompatibility",
|
|
2730
2768
|
"multi-account": "updateHighlightMultiAccount",
|
|
2731
|
-
"search-route": "updateHighlightSearchRoute"
|
|
2769
|
+
"search-route": "updateHighlightSearchRoute",
|
|
2770
|
+
"image-model-hint": "updateHighlightImageModelHint"
|
|
2732
2771
|
};
|
|
2733
2772
|
function pluginVersionSummary(current, latest, t) {
|
|
2734
2773
|
if (latest === void 0) return t("compatibilityPluginCurrentOnly", { current });
|
|
@@ -4695,6 +4734,10 @@ window.__ModuleLoader__.load({
|
|
|
4695
4734
|
enableImageToolHelp: "Allows approved local reads and public-network image fetches for vision-capable models.",
|
|
4696
4735
|
enableImageGeneration: "Enable GPT Image generation",
|
|
4697
4736
|
enableImageGenerationHelp: "Let GPT models use GPT Image to generate images in conversations.",
|
|
4737
|
+
imageModelHint: "Image route model hint",
|
|
4738
|
+
imageModelHintDefault: "Default: gpt-image-2; clear to restore",
|
|
4739
|
+
imageModelHintHelp: "Optional unverified route hint; it may be ignored or rejected and does not guarantee the returned model.",
|
|
4740
|
+
invalidImageModelHint: "Use an empty value or 1–128 ASCII letters, digits, dots, underscores, or hyphens, starting with a letter or digit.",
|
|
4698
4741
|
enableAutoReview: "Codex Auto-review (Approve for me)",
|
|
4699
4742
|
enableAutoReviewHelp: "Send eligible approval requests from OpenAI-Codex sessions to a separate Codex reviewer. This changes who reviews; it does not expand DSH file, network, or tool permissions.",
|
|
4700
4743
|
autoReviewOfficialBadge: "Official Codex capability",
|
|
@@ -4794,6 +4837,7 @@ window.__ModuleLoader__.load({
|
|
|
4794
4837
|
updateHighlightAstraCompatibility: "Added GPT-6-Astra compatibility metadata when the installed upstream catalog does not provide the model.",
|
|
4795
4838
|
updateHighlightMultiAccount: "Added management for multiple ChatGPT accounts; starting or cancelling authorization preserves existing accounts.",
|
|
4796
4839
|
updateHighlightSearchRoute: "Enabling Codex Search now selects the profile-wide search route; disabling it restores the previous provider.",
|
|
4840
|
+
updateHighlightImageModelHint: "Added an optional profile-scoped image route model hint. It is unverified, may be ignored or rejected, and does not guarantee the returned model.",
|
|
4797
4841
|
viewTechnicalDetails: "View technical details",
|
|
4798
4842
|
hideTechnicalDetails: "Hide technical details",
|
|
4799
4843
|
technicalDetailsHeading: "Technical changes",
|
|
@@ -4999,6 +5043,10 @@ window.__ModuleLoader__.load({
|
|
|
4999
5043
|
enableImageToolHelp: "允许具备视觉能力的模型在审批后读取本地图片或获取公网图片。",
|
|
5000
5044
|
enableImageGeneration: "启用 GPT Image 图片生成",
|
|
5001
5045
|
enableImageGenerationHelp: "启用后,GPT 模型可以在对话中调用 GPT Image 生成图片。",
|
|
5046
|
+
imageModelHint: "图片路由模型提示",
|
|
5047
|
+
imageModelHintDefault: "默认:gpt-image-2;清空可恢复",
|
|
5048
|
+
imageModelHintHelp: "可选的未验证路由提示;服务端可能忽略或拒绝,不能保证返回的模型。",
|
|
5049
|
+
invalidImageModelHint: "请输入空值,或输入 1–128 个 ASCII 字母、数字、点、下划线或连字符,且必须以字母或数字开头。",
|
|
5002
5050
|
enableAutoReview: "Codex 自动审查(代我审批)",
|
|
5003
5051
|
enableAutoReviewHelp: "将 OpenAI-Codex 会话中原本需要你确认的部分操作交给独立的 Codex 审查器。它只更换审批者,不会扩大 DSH 的文件、网络或工具权限。",
|
|
5004
5052
|
autoReviewOfficialBadge: "Codex 官方能力",
|
|
@@ -5098,6 +5146,7 @@ window.__ModuleLoader__.load({
|
|
|
5098
5146
|
updateHighlightAstraCompatibility: "当已安装的上游模型目录尚未提供 GPT-6-Astra 时,补充该模型的兼容元数据。",
|
|
5099
5147
|
updateHighlightMultiAccount: "增加多个 ChatGPT 账户的管理能力;开始或取消授权时会保留已有账户。",
|
|
5100
5148
|
updateHighlightSearchRoute: "启用 Codex 搜索时,现在会选中整个 profile 的搜索路由;关闭时恢复此前的提供方。",
|
|
5149
|
+
updateHighlightImageModelHint: "增加可选的 profile 图片路由模型提示。该提示未经验证,服务端可能忽略或拒绝,也不保证返回指定模型。",
|
|
5101
5150
|
viewTechnicalDetails: "查看完整技术说明",
|
|
5102
5151
|
hideTechnicalDetails: "收起技术说明",
|
|
5103
5152
|
technicalDetailsHeading: "技术变更",
|
|
@@ -6283,7 +6332,7 @@ window.__ModuleLoader__.load({
|
|
|
6283
6332
|
}
|
|
6284
6333
|
//#endregion
|
|
6285
6334
|
//#region src/version.ts
|
|
6286
|
-
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.
|
|
6335
|
+
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.34";
|
|
6287
6336
|
//#endregion
|
|
6288
6337
|
//#region src/client/OpenAICodexModelsCard.tsx
|
|
6289
6338
|
/** Compact Models account entry with quota disclosure and shared configuration. */
|
package/lib/index.d.ts
CHANGED
|
@@ -207,8 +207,9 @@ declare class OpenAICodexTransport extends Service implements OpenAICodexTranspo
|
|
|
207
207
|
private readonly credentials;
|
|
208
208
|
private readonly proxyManager?;
|
|
209
209
|
private readonly resolveProxyUrl;
|
|
210
|
+
private readonly resolveImageModelHint;
|
|
210
211
|
readonly apiVersion: 1;
|
|
211
|
-
constructor(ctx: Context, credentials: OpenAICodexCredentialStore, proxyManager?: OpenAICodexProxyManager | undefined, resolveProxyUrl?: () => string | undefined);
|
|
212
|
+
constructor(ctx: Context, credentials: OpenAICodexCredentialStore, proxyManager?: OpenAICodexProxyManager | undefined, resolveProxyUrl?: () => string | undefined, resolveImageModelHint?: () => string);
|
|
212
213
|
generateImages(input: ImageGenerationRequest, context: ImageRequestContext): Promise<ImageGenerationResponse>;
|
|
213
214
|
private generateImagesWithoutProxy;
|
|
214
215
|
}
|
|
@@ -225,7 +226,7 @@ declare const IMAGE_GENERATE_TOOL_NAME = "codex_connect_image_generate";
|
|
|
225
226
|
declare const COMPATIBILITY_SCHEMA_VERSION: 1;
|
|
226
227
|
declare const SUPPORTED_NODE_RANGE = "^22.19.0 || >=24.0.0";
|
|
227
228
|
declare const SUPPORTED_DSH_PLUGIN_API_VERSION = "0.1.2-rc.1";
|
|
228
|
-
declare const SUPPORTED_DSH_PLUGIN_API_VERSIONS: readonly ["0.1.2-rc.1", "0.1.5-alpha.1"];
|
|
229
|
+
declare const SUPPORTED_DSH_PLUGIN_API_VERSIONS: readonly ["0.1.2-rc.1", "0.1.5-alpha.1", "0.1.5-rc.1", "0.1.5-rc.2"];
|
|
229
230
|
declare const SUPPORTED_DSH_PLUGIN_API_RANGE: string;
|
|
230
231
|
declare const SUPPORTED_PI_AI_RANGE = "^0.84.2 || 0.85.1";
|
|
231
232
|
declare const PI_AI_PACKAGE = "@earendil-works/pi-ai";
|
|
@@ -272,7 +273,7 @@ declare const COMPATIBILITY_CONTRACT: {
|
|
|
272
273
|
};
|
|
273
274
|
readonly dshPluginApi: {
|
|
274
275
|
readonly version: "0.1.2-rc.1";
|
|
275
|
-
readonly versions: readonly ["0.1.2-rc.1", "0.1.5-alpha.1"];
|
|
276
|
+
readonly versions: readonly ["0.1.2-rc.1", "0.1.5-alpha.1", "0.1.5-rc.1", "0.1.5-rc.2"];
|
|
276
277
|
readonly packages: readonly ["@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-atomic-write", "@deepseek-ai/dsh-attachment", "@deepseek-ai/dsh-home-paths", "@deepseek-ai/dsh-host-webserver", "@deepseek-ai/dsh-invariants", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-llm-pi-ai", "@deepseek-ai/dsh-fs", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-tools", "@deepseek-ai/dsh-util-values", "@deepseek-ai/dsh-web"];
|
|
277
278
|
};
|
|
278
279
|
readonly piAi: {
|
|
@@ -402,6 +403,10 @@ declare function readOpenAICodexRateLimits(store: Pick<OpenAICodexCredentialStor
|
|
|
402
403
|
declare const OPENAI_CODEX_SETTINGS_NAMESPACE = "llm-openai-codex";
|
|
403
404
|
/** Suggested local HTTP proxy shown by the settings UI; it is never enabled by default. */
|
|
404
405
|
declare const DEFAULT_OPENAI_CODEX_PROXY_URL = "http://127.0.0.1:7890";
|
|
406
|
+
/** Empty profile setting, which makes image requests use the default route hint. */
|
|
407
|
+
declare const DEFAULT_OPENAI_CODEX_IMAGE_MODEL_HINT = "";
|
|
408
|
+
/** Validate an optional bounded ASCII image route model hint. */
|
|
409
|
+
declare function isValidOpenAICodexImageModelHint(value: unknown): value is string;
|
|
405
410
|
/** Whether a value is a supported, canonical HTTP(S) proxy origin. */
|
|
406
411
|
declare function isValidOpenAICodexProxyUrl(value: unknown): value is string;
|
|
407
412
|
/** Search modes accepted by the Codex standalone search endpoint. */
|
|
@@ -441,6 +446,8 @@ interface OpenAICodexSettingsConfig {
|
|
|
441
446
|
enableSearch: boolean;
|
|
442
447
|
enableImageTool: boolean;
|
|
443
448
|
enableImageGeneration: boolean;
|
|
449
|
+
/** Optional profile-scoped model hint for image generation; empty uses the route default. */
|
|
450
|
+
imageModelHint: string;
|
|
444
451
|
/** Whether this profile accepted the Auto-review data disclosure. */
|
|
445
452
|
autoReviewDisclosureAcknowledged: boolean;
|
|
446
453
|
/** Let the hidden Codex reviewer answer eligible DSH approval requests. */
|
|
@@ -624,7 +631,7 @@ declare const OPENAI_CODEX_FAST_MODE_PATH = "/plugins/dsh-openai-codex/fast-mode
|
|
|
624
631
|
declare const OPENAI_CODEX_UPDATE_PATH = "/openai-codex/update";
|
|
625
632
|
//#endregion
|
|
626
633
|
//#region src/update.d.ts
|
|
627
|
-
type OpenAICodexUpdateHighlightKind = 'trusted-origins' | 'runtime-compatibility' | 'quota-fast-mode' | 'dsh-rc7' | 'search-stability' | 'image-generation' | 'oauth-history' | 'model-visibility' | 'proxy-connection' | 'models-account' | 'context-budget' | 'auto-review-probe' | 'auto-review' | 'astra-compatibility' | 'multi-account' | 'search-route';
|
|
634
|
+
type OpenAICodexUpdateHighlightKind = 'trusted-origins' | 'runtime-compatibility' | 'quota-fast-mode' | 'dsh-rc7' | 'search-stability' | 'image-generation' | 'oauth-history' | 'model-visibility' | 'proxy-connection' | 'models-account' | 'context-budget' | 'auto-review-probe' | 'auto-review' | 'astra-compatibility' | 'multi-account' | 'search-route' | 'image-model-hint';
|
|
628
635
|
interface OpenAICodexUpdateHighlight {
|
|
629
636
|
version: string;
|
|
630
637
|
kind: OpenAICodexUpdateHighlightKind;
|
|
@@ -741,6 +748,8 @@ interface Config {
|
|
|
741
748
|
enableImageTool?: boolean;
|
|
742
749
|
/** Register the optional prompt-only image generation tool. */
|
|
743
750
|
enableImageGeneration?: boolean;
|
|
751
|
+
/** Optional profile-scoped image route model hint; empty uses the default route hint. */
|
|
752
|
+
imageModelHint?: string;
|
|
744
753
|
/** Record that this profile accepted the Auto-review data disclosure. */
|
|
745
754
|
autoReviewDisclosureAcknowledged?: boolean;
|
|
746
755
|
/** Let the hidden Codex reviewer answer eligible DSH approval requests. */
|
|
@@ -764,4 +773,4 @@ declare const Config: z<Config>;
|
|
|
764
773
|
*/
|
|
765
774
|
declare function apply(ctx: Context, config: Config): void;
|
|
766
775
|
//#endregion
|
|
767
|
-
export { COMPATIBILITY_CONTRACT, COMPATIBILITY_PACKAGES, COMPATIBILITY_SCHEMA_VERSION, type CompatibilityDetectionOptions, type CompatibilityEntry, type CompatibilityEvaluationInput, type CompatibilityPackageName, type CompatibilityReport, type CompatibilityStatus, Config, DEFAULT_OPENAI_CODEX_PROXY_URL, DEFAULT_OPENAI_CODEX_SEARCH_CONTEXT_SIZE, DEFAULT_OPENAI_CODEX_SEARCH_MAX_OUTPUT_TOKENS, DEFAULT_OPENAI_CODEX_SEARCH_MODE, DEFAULT_OPENAI_CODEX_SEARCH_MODEL, DEFAULT_OPENAI_CODEX_SETTINGS, DSH_PLUGIN_API_PACKAGES, FastModeRegistry, FastModeRegistry as OpenAICodexFastModeRegistry, type GeneratedImagePayload, IMAGE_GENERATE_TOOL_NAME, type ImageGenerationRequest, type ImageGenerationResponse, type ImageRequestContext, OPENAI_CODEX_ACCOUNT_LIMIT, OPENAI_CODEX_AUTH_DOCUMENT_LIMIT, OPENAI_CODEX_AUTH_FILENAME, OPENAI_CODEX_AUTH_V1_BACKUP_SUFFIX, OPENAI_CODEX_BASE_URL, OPENAI_CODEX_FAST_MODE_MAX_SESSIONS, OPENAI_CODEX_FAST_MODE_MAX_SESSION_ID_LENGTH, OPENAI_CODEX_FAST_MODE_PATH, OPENAI_CODEX_HISTORY_BACKUP_SUFFIX, OPENAI_CODEX_IMAGE_GENERATION_URL, OPENAI_CODEX_IMAGE_MAX_COUNT, OPENAI_CODEX_IMAGE_MAX_ERROR_BYTES, OPENAI_CODEX_IMAGE_MAX_RESPONSE_BYTES, OPENAI_CODEX_IMAGE_PROMPT_MAX_LENGTH, OPENAI_CODEX_IMAGE_REQUEST_TIMEOUT_MS, OPENAI_CODEX_LOCAL_PROXY_CANDIDATES, OPENAI_CODEX_PROVIDER, OPENAI_CODEX_PROXY_CANDIDATE_LIMIT, OPENAI_CODEX_PROXY_DETECT_PATH, OPENAI_CODEX_PROXY_PROBE_TIMEOUT_MS, OPENAI_CODEX_PROXY_PROBE_URL, OPENAI_CODEX_PROXY_TEST_PATH, OPENAI_CODEX_SEARCH_MODEL_REQUEST_EVENT, OPENAI_CODEX_SEARCH_PROVIDER, OPENAI_CODEX_SEARCH_URL, OPENAI_CODEX_SETTINGS_NAMESPACE, OPENAI_CODEX_SETTINGS_NS, OPENAI_CODEX_TRANSPORT_API_VERSION, OPENAI_CODEX_TRANSPORT_ERROR_CODES, OPENAI_CODEX_TRANSPORT_SERVICE, OPENAI_CODEX_UPDATE_PATH, OPENAI_CODEX_USAGE_URL, type OpenAICodexAccountSummary, type OpenAICodexAuthStatus, OpenAICodexCredentialStore, type OpenAICodexCredits, type OpenAICodexDiagnosticOptions, type OpenAICodexDiagnosticReport, type OpenAICodexHistoryMigrationFile, type OpenAICodexHistoryMigrationOptions, type OpenAICodexHistoryMigrationResult, type OpenAICodexIndividualLimit, OpenAICodexProxyManager, type OpenAICodexProxyProbeClassification, type OpenAICodexProxyProbeResult, type OpenAICodexRateLimit, type OpenAICodexRateLimitWindow, type OpenAICodexSearchContextSize, type OpenAICodexSearchMode, OpenAICodexSearchProvider, type OpenAICodexSearchProviderOptions, type OpenAICodexSearchRequestRecord, type OpenAICodexSettingsConfig, OpenAICodexTransport, OpenAICodexTransportError, type OpenAICodexTransportErrorCode, type OpenAICodexTransportV1, type OpenAICodexUpdateResult, type OpenAICodexUsage, PI_AI_PACKAGE, SUPPORTED_DSH_PLUGIN_API_RANGE, SUPPORTED_DSH_PLUGIN_API_VERSION, SUPPORTED_DSH_PLUGIN_API_VERSIONS, SUPPORTED_NODE_RANGE, SUPPORTED_PI_AI_RANGE, VIEW_IMAGE_TOOL_NAME, apply, assertNoOpenAICodexProviderConflict, assessCompatibility, checkForOpenAICodexUpdate, compareOpenAICodexVersions, decodeOpenAICodexSettings, detectCompatibility, detectOpenAICodexProxies, diagnoseOpenAICodex, evaluateCompatibility, inject, isFastModeSessionId, isOpenAICodexTransportError, isValidOpenAICodexContextWindowOverrides, isValidOpenAICodexProxyUrl, listOpenAICodexProxyCandidates, loginOpenAICodex, logoutOpenAICodex, mapOpenAICodexSearchResponse, migrateOpenAICodexSearchHistory, name, openAICodexAuthPath, openAICodexAuthStatus, openAICodexConflictMessage, parseOpenAICodexUpdateResult, parseOpenAICodexUsage, parseOpenAICodexVersion, readOpenAICodexRateLimits, resolveOpenAICodexProxyUrl, resolveOpenAICodexSettings };
|
|
776
|
+
export { COMPATIBILITY_CONTRACT, COMPATIBILITY_PACKAGES, COMPATIBILITY_SCHEMA_VERSION, type CompatibilityDetectionOptions, type CompatibilityEntry, type CompatibilityEvaluationInput, type CompatibilityPackageName, type CompatibilityReport, type CompatibilityStatus, Config, DEFAULT_OPENAI_CODEX_IMAGE_MODEL_HINT, DEFAULT_OPENAI_CODEX_PROXY_URL, DEFAULT_OPENAI_CODEX_SEARCH_CONTEXT_SIZE, DEFAULT_OPENAI_CODEX_SEARCH_MAX_OUTPUT_TOKENS, DEFAULT_OPENAI_CODEX_SEARCH_MODE, DEFAULT_OPENAI_CODEX_SEARCH_MODEL, DEFAULT_OPENAI_CODEX_SETTINGS, DSH_PLUGIN_API_PACKAGES, FastModeRegistry, FastModeRegistry as OpenAICodexFastModeRegistry, type GeneratedImagePayload, IMAGE_GENERATE_TOOL_NAME, type ImageGenerationRequest, type ImageGenerationResponse, type ImageRequestContext, OPENAI_CODEX_ACCOUNT_LIMIT, OPENAI_CODEX_AUTH_DOCUMENT_LIMIT, OPENAI_CODEX_AUTH_FILENAME, OPENAI_CODEX_AUTH_V1_BACKUP_SUFFIX, OPENAI_CODEX_BASE_URL, OPENAI_CODEX_FAST_MODE_MAX_SESSIONS, OPENAI_CODEX_FAST_MODE_MAX_SESSION_ID_LENGTH, OPENAI_CODEX_FAST_MODE_PATH, OPENAI_CODEX_HISTORY_BACKUP_SUFFIX, OPENAI_CODEX_IMAGE_GENERATION_URL, OPENAI_CODEX_IMAGE_MAX_COUNT, OPENAI_CODEX_IMAGE_MAX_ERROR_BYTES, OPENAI_CODEX_IMAGE_MAX_RESPONSE_BYTES, OPENAI_CODEX_IMAGE_PROMPT_MAX_LENGTH, OPENAI_CODEX_IMAGE_REQUEST_TIMEOUT_MS, OPENAI_CODEX_LOCAL_PROXY_CANDIDATES, OPENAI_CODEX_PROVIDER, OPENAI_CODEX_PROXY_CANDIDATE_LIMIT, OPENAI_CODEX_PROXY_DETECT_PATH, OPENAI_CODEX_PROXY_PROBE_TIMEOUT_MS, OPENAI_CODEX_PROXY_PROBE_URL, OPENAI_CODEX_PROXY_TEST_PATH, OPENAI_CODEX_SEARCH_MODEL_REQUEST_EVENT, OPENAI_CODEX_SEARCH_PROVIDER, OPENAI_CODEX_SEARCH_URL, OPENAI_CODEX_SETTINGS_NAMESPACE, OPENAI_CODEX_SETTINGS_NS, OPENAI_CODEX_TRANSPORT_API_VERSION, OPENAI_CODEX_TRANSPORT_ERROR_CODES, OPENAI_CODEX_TRANSPORT_SERVICE, OPENAI_CODEX_UPDATE_PATH, OPENAI_CODEX_USAGE_URL, type OpenAICodexAccountSummary, type OpenAICodexAuthStatus, OpenAICodexCredentialStore, type OpenAICodexCredits, type OpenAICodexDiagnosticOptions, type OpenAICodexDiagnosticReport, type OpenAICodexHistoryMigrationFile, type OpenAICodexHistoryMigrationOptions, type OpenAICodexHistoryMigrationResult, type OpenAICodexIndividualLimit, OpenAICodexProxyManager, type OpenAICodexProxyProbeClassification, type OpenAICodexProxyProbeResult, type OpenAICodexRateLimit, type OpenAICodexRateLimitWindow, type OpenAICodexSearchContextSize, type OpenAICodexSearchMode, OpenAICodexSearchProvider, type OpenAICodexSearchProviderOptions, type OpenAICodexSearchRequestRecord, type OpenAICodexSettingsConfig, OpenAICodexTransport, OpenAICodexTransportError, type OpenAICodexTransportErrorCode, type OpenAICodexTransportV1, type OpenAICodexUpdateResult, type OpenAICodexUsage, PI_AI_PACKAGE, SUPPORTED_DSH_PLUGIN_API_RANGE, SUPPORTED_DSH_PLUGIN_API_VERSION, SUPPORTED_DSH_PLUGIN_API_VERSIONS, SUPPORTED_NODE_RANGE, SUPPORTED_PI_AI_RANGE, VIEW_IMAGE_TOOL_NAME, apply, assertNoOpenAICodexProviderConflict, assessCompatibility, checkForOpenAICodexUpdate, compareOpenAICodexVersions, decodeOpenAICodexSettings, detectCompatibility, detectOpenAICodexProxies, diagnoseOpenAICodex, evaluateCompatibility, inject, isFastModeSessionId, isOpenAICodexTransportError, isValidOpenAICodexContextWindowOverrides, isValidOpenAICodexImageModelHint, isValidOpenAICodexProxyUrl, listOpenAICodexProxyCandidates, loginOpenAICodex, logoutOpenAICodex, mapOpenAICodexSearchResponse, migrateOpenAICodexSearchHistory, name, openAICodexAuthPath, openAICodexAuthStatus, openAICodexConflictMessage, parseOpenAICodexUpdateResult, parseOpenAICodexUsage, parseOpenAICodexVersion, readOpenAICodexRateLimits, resolveOpenAICodexProxyUrl, resolveOpenAICodexSettings };
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as assertNoOpenAICodexProviderConflict,
|
|
2
|
-
export { COMPATIBILITY_CONTRACT, COMPATIBILITY_PACKAGES, COMPATIBILITY_SCHEMA_VERSION, Config, DEFAULT_OPENAI_CODEX_PROXY_URL, DEFAULT_OPENAI_CODEX_SEARCH_CONTEXT_SIZE, DEFAULT_OPENAI_CODEX_SEARCH_MAX_OUTPUT_TOKENS, DEFAULT_OPENAI_CODEX_SEARCH_MODE, DEFAULT_OPENAI_CODEX_SEARCH_MODEL, DEFAULT_OPENAI_CODEX_SETTINGS, DSH_PLUGIN_API_PACKAGES, FastModeRegistry, FastModeRegistry as OpenAICodexFastModeRegistry, IMAGE_GENERATE_TOOL_NAME, OPENAI_CODEX_ACCOUNT_LIMIT, OPENAI_CODEX_AUTH_DOCUMENT_LIMIT, OPENAI_CODEX_AUTH_FILENAME, OPENAI_CODEX_AUTH_V1_BACKUP_SUFFIX, OPENAI_CODEX_BASE_URL, OPENAI_CODEX_FAST_MODE_MAX_SESSIONS, OPENAI_CODEX_FAST_MODE_MAX_SESSION_ID_LENGTH, OPENAI_CODEX_FAST_MODE_PATH, OPENAI_CODEX_HISTORY_BACKUP_SUFFIX, OPENAI_CODEX_IMAGE_GENERATION_URL, OPENAI_CODEX_IMAGE_MAX_COUNT, OPENAI_CODEX_IMAGE_MAX_ERROR_BYTES, OPENAI_CODEX_IMAGE_MAX_RESPONSE_BYTES, OPENAI_CODEX_IMAGE_PROMPT_MAX_LENGTH, OPENAI_CODEX_IMAGE_REQUEST_TIMEOUT_MS, OPENAI_CODEX_LOCAL_PROXY_CANDIDATES, OPENAI_CODEX_PROVIDER, OPENAI_CODEX_PROXY_CANDIDATE_LIMIT, OPENAI_CODEX_PROXY_DETECT_PATH, OPENAI_CODEX_PROXY_PROBE_TIMEOUT_MS, OPENAI_CODEX_PROXY_PROBE_URL, OPENAI_CODEX_PROXY_TEST_PATH, OPENAI_CODEX_SEARCH_MODEL_REQUEST_EVENT, OPENAI_CODEX_SEARCH_PROVIDER, OPENAI_CODEX_SEARCH_URL, OPENAI_CODEX_SETTINGS_NAMESPACE, OPENAI_CODEX_SETTINGS_NS, OPENAI_CODEX_TRANSPORT_API_VERSION, OPENAI_CODEX_TRANSPORT_ERROR_CODES, OPENAI_CODEX_TRANSPORT_SERVICE, OPENAI_CODEX_UPDATE_PATH, OPENAI_CODEX_USAGE_URL, OpenAICodexCredentialStore, OpenAICodexProxyManager, OpenAICodexSearchProvider, OpenAICodexTransport, OpenAICodexTransportError, PI_AI_PACKAGE, SUPPORTED_DSH_PLUGIN_API_RANGE, SUPPORTED_DSH_PLUGIN_API_VERSION, SUPPORTED_DSH_PLUGIN_API_VERSIONS, SUPPORTED_NODE_RANGE, SUPPORTED_PI_AI_RANGE, VIEW_IMAGE_TOOL_NAME, apply, assertNoOpenAICodexProviderConflict, assessCompatibility, checkForOpenAICodexUpdate, compareOpenAICodexVersions, decodeOpenAICodexSettings, detectCompatibility, detectOpenAICodexProxies, diagnoseOpenAICodex, evaluateCompatibility, inject, isFastModeSessionId, isOpenAICodexTransportError, isValidOpenAICodexContextWindowOverrides, isValidOpenAICodexProxyUrl, listOpenAICodexProxyCandidates, loginOpenAICodex, logoutOpenAICodex, mapOpenAICodexSearchResponse, migrateOpenAICodexSearchHistory, name, openAICodexAuthPath, openAICodexAuthStatus, openAICodexConflictMessage, parseOpenAICodexUpdateResult, parseOpenAICodexUsage, parseOpenAICodexVersion, readOpenAICodexRateLimits, resolveOpenAICodexProxyUrl, resolveOpenAICodexSettings };
|
|
1
|
+
import { A as assertNoOpenAICodexProviderConflict, B as COMPATIBILITY_PACKAGES, Bt as OPENAI_CODEX_AUTH_DOCUMENT_LIMIT, C as OPENAI_CODEX_TRANSPORT_ERROR_CODES, Ct as resolveOpenAICodexSettings, D as isOpenAICodexTransportError, Dt as OPENAI_CODEX_FAST_MODE_MAX_SESSION_ID_LENGTH, E as OpenAICodexTransportError, Et as OPENAI_CODEX_FAST_MODE_MAX_SESSIONS, F as checkForOpenAICodexUpdate, Ft as loginOpenAICodex, G as SUPPORTED_DSH_PLUGIN_API_VERSION, Gt as openAICodexAuthPath, H as DSH_PLUGIN_API_PACKAGES, Ht as OPENAI_CODEX_AUTH_V1_BACKUP_SUFFIX, I as compareOpenAICodexVersions, It as logoutOpenAICodex, J as SUPPORTED_PI_AI_RANGE, K as SUPPORTED_DSH_PLUGIN_API_VERSIONS, L as parseOpenAICodexUpdateResult, Lt as openAICodexAuthStatus, M as openAICodexConflictMessage, Mt as parseOpenAICodexUsage, Nt as readOpenAICodexRateLimits, O as VIEW_IMAGE_TOOL_NAME, Ot as isFastModeSessionId, P as OPENAI_CODEX_UPDATE_PATH, R as parseOpenAICodexVersion, S as OPENAI_CODEX_TRANSPORT_API_VERSION, St as resolveOpenAICodexProxyUrl, T as OpenAICodexTransport, Tt as FastModeRegistry, U as PI_AI_PACKAGE, Ut as OPENAI_CODEX_PROVIDER, V as COMPATIBILITY_SCHEMA_VERSION, Vt as OPENAI_CODEX_AUTH_FILENAME, W as SUPPORTED_DSH_PLUGIN_API_RANGE, Wt as OpenAICodexCredentialStore, X as detectCompatibility, Y as assessCompatibility, Z as evaluateCompatibility, _ as OPENAI_CODEX_IMAGE_MAX_COUNT, _t as decodeOpenAICodexSettings, a as name, at as OPENAI_CODEX_PROXY_PROBE_URL, b as OPENAI_CODEX_IMAGE_PROMPT_MAX_LENGTH, bt as isValidOpenAICodexProxyUrl, c as migrateOpenAICodexSearchHistory, ct as listOpenAICodexProxyCandidates, d as OPENAI_CODEX_BASE_URL, dt as DEFAULT_OPENAI_CODEX_SEARCH_CONTEXT_SIZE, et as OPENAI_CODEX_PROXY_DETECT_PATH, f as OPENAI_CODEX_SEARCH_PROVIDER, ft as DEFAULT_OPENAI_CODEX_SEARCH_MAX_OUTPUT_TOKENS, g as OPENAI_CODEX_IMAGE_GENERATION_URL, gt as OPENAI_CODEX_SETTINGS_NAMESPACE, h as mapOpenAICodexSearchResponse, ht as DEFAULT_OPENAI_CODEX_SETTINGS, i as inject, it as OPENAI_CODEX_PROXY_PROBE_TIMEOUT_MS, j as diagnoseOpenAICodex, jt as OPENAI_CODEX_USAGE_URL, k as IMAGE_GENERATE_TOOL_NAME, lt as DEFAULT_OPENAI_CODEX_IMAGE_MODEL_HINT, m as OpenAICodexSearchProvider, mt as DEFAULT_OPENAI_CODEX_SEARCH_MODEL, n as OPENAI_CODEX_SETTINGS_NS, nt as OPENAI_CODEX_LOCAL_PROXY_CANDIDATES, o as OPENAI_CODEX_HISTORY_BACKUP_SUFFIX, ot as OpenAICodexProxyManager, p as OPENAI_CODEX_SEARCH_URL, pt as DEFAULT_OPENAI_CODEX_SEARCH_MODE, q as SUPPORTED_NODE_RANGE, r as apply, rt as OPENAI_CODEX_PROXY_CANDIDATE_LIMIT, s as OPENAI_CODEX_SEARCH_MODEL_REQUEST_EVENT, st as detectOpenAICodexProxies, t as Config, tt as OPENAI_CODEX_PROXY_TEST_PATH, ut as DEFAULT_OPENAI_CODEX_PROXY_URL, v as OPENAI_CODEX_IMAGE_MAX_ERROR_BYTES, vt as isValidOpenAICodexContextWindowOverrides, w as OPENAI_CODEX_TRANSPORT_SERVICE, wt as OPENAI_CODEX_FAST_MODE_PATH, x as OPENAI_CODEX_IMAGE_REQUEST_TIMEOUT_MS, y as OPENAI_CODEX_IMAGE_MAX_RESPONSE_BYTES, yt as isValidOpenAICodexImageModelHint, z as COMPATIBILITY_CONTRACT, zt as OPENAI_CODEX_ACCOUNT_LIMIT } from "./src-rxlwLWWN.js";
|
|
2
|
+
export { COMPATIBILITY_CONTRACT, COMPATIBILITY_PACKAGES, COMPATIBILITY_SCHEMA_VERSION, Config, DEFAULT_OPENAI_CODEX_IMAGE_MODEL_HINT, DEFAULT_OPENAI_CODEX_PROXY_URL, DEFAULT_OPENAI_CODEX_SEARCH_CONTEXT_SIZE, DEFAULT_OPENAI_CODEX_SEARCH_MAX_OUTPUT_TOKENS, DEFAULT_OPENAI_CODEX_SEARCH_MODE, DEFAULT_OPENAI_CODEX_SEARCH_MODEL, DEFAULT_OPENAI_CODEX_SETTINGS, DSH_PLUGIN_API_PACKAGES, FastModeRegistry, FastModeRegistry as OpenAICodexFastModeRegistry, IMAGE_GENERATE_TOOL_NAME, OPENAI_CODEX_ACCOUNT_LIMIT, OPENAI_CODEX_AUTH_DOCUMENT_LIMIT, OPENAI_CODEX_AUTH_FILENAME, OPENAI_CODEX_AUTH_V1_BACKUP_SUFFIX, OPENAI_CODEX_BASE_URL, OPENAI_CODEX_FAST_MODE_MAX_SESSIONS, OPENAI_CODEX_FAST_MODE_MAX_SESSION_ID_LENGTH, OPENAI_CODEX_FAST_MODE_PATH, OPENAI_CODEX_HISTORY_BACKUP_SUFFIX, OPENAI_CODEX_IMAGE_GENERATION_URL, OPENAI_CODEX_IMAGE_MAX_COUNT, OPENAI_CODEX_IMAGE_MAX_ERROR_BYTES, OPENAI_CODEX_IMAGE_MAX_RESPONSE_BYTES, OPENAI_CODEX_IMAGE_PROMPT_MAX_LENGTH, OPENAI_CODEX_IMAGE_REQUEST_TIMEOUT_MS, OPENAI_CODEX_LOCAL_PROXY_CANDIDATES, OPENAI_CODEX_PROVIDER, OPENAI_CODEX_PROXY_CANDIDATE_LIMIT, OPENAI_CODEX_PROXY_DETECT_PATH, OPENAI_CODEX_PROXY_PROBE_TIMEOUT_MS, OPENAI_CODEX_PROXY_PROBE_URL, OPENAI_CODEX_PROXY_TEST_PATH, OPENAI_CODEX_SEARCH_MODEL_REQUEST_EVENT, OPENAI_CODEX_SEARCH_PROVIDER, OPENAI_CODEX_SEARCH_URL, OPENAI_CODEX_SETTINGS_NAMESPACE, OPENAI_CODEX_SETTINGS_NS, OPENAI_CODEX_TRANSPORT_API_VERSION, OPENAI_CODEX_TRANSPORT_ERROR_CODES, OPENAI_CODEX_TRANSPORT_SERVICE, OPENAI_CODEX_UPDATE_PATH, OPENAI_CODEX_USAGE_URL, OpenAICodexCredentialStore, OpenAICodexProxyManager, OpenAICodexSearchProvider, OpenAICodexTransport, OpenAICodexTransportError, PI_AI_PACKAGE, SUPPORTED_DSH_PLUGIN_API_RANGE, SUPPORTED_DSH_PLUGIN_API_VERSION, SUPPORTED_DSH_PLUGIN_API_VERSIONS, SUPPORTED_NODE_RANGE, SUPPORTED_PI_AI_RANGE, VIEW_IMAGE_TOOL_NAME, apply, assertNoOpenAICodexProviderConflict, assessCompatibility, checkForOpenAICodexUpdate, compareOpenAICodexVersions, decodeOpenAICodexSettings, detectCompatibility, detectOpenAICodexProxies, diagnoseOpenAICodex, evaluateCompatibility, inject, isFastModeSessionId, isOpenAICodexTransportError, isValidOpenAICodexContextWindowOverrides, isValidOpenAICodexImageModelHint, isValidOpenAICodexProxyUrl, listOpenAICodexProxyCandidates, loginOpenAICodex, logoutOpenAICodex, mapOpenAICodexSearchResponse, migrateOpenAICodexSearchHistory, name, openAICodexAuthPath, openAICodexAuthStatus, openAICodexConflictMessage, parseOpenAICodexUpdateResult, parseOpenAICodexUsage, parseOpenAICodexVersion, readOpenAICodexRateLimits, resolveOpenAICodexProxyUrl, resolveOpenAICodexSettings };
|
|
@@ -1325,7 +1325,7 @@ function requestProvider(provider, fastMode, proxyManager, resolveProxyUrl) {
|
|
|
1325
1325
|
}
|
|
1326
1326
|
};
|
|
1327
1327
|
}
|
|
1328
|
-
/** Build the
|
|
1328
|
+
/** Build the pi-ai profile with the model-error index required by DSH 0.1.5-rc.1. */
|
|
1329
1329
|
function createOpenAICodexProfile(provider, fastMode, proxyManager, resolveProxyUrl, contextWindowOverrides) {
|
|
1330
1330
|
const effectiveProvider = contextWindowOverrides === void 0 ? provider : withOpenAICodexContextWindowOverrides(provider, contextWindowOverrides);
|
|
1331
1331
|
return {
|
|
@@ -1338,6 +1338,7 @@ function createOpenAICodexProfile(provider, fastMode, proxyManager, resolveProxy
|
|
|
1338
1338
|
requestImageMaxBytes: OPENAI_CODEX_REQUEST_IMAGE_MAX_BYTES,
|
|
1339
1339
|
retryPolicy: resolveRetryPolicy(void 0, "dsh-codex-connect retryPolicy"),
|
|
1340
1340
|
configuredMaxTokens: /* @__PURE__ */ new Map(),
|
|
1341
|
+
modelErrors: /* @__PURE__ */ new Map(),
|
|
1341
1342
|
piProvider: requestProvider(effectiveProvider, fastMode, proxyManager, resolveProxyUrl)
|
|
1342
1343
|
};
|
|
1343
1344
|
}
|
|
@@ -2475,6 +2476,17 @@ function registerOpenAICodexAuthRoutes(ctx, store, trustedOriginsOverride, fastM
|
|
|
2475
2476
|
const OPENAI_CODEX_SETTINGS_NAMESPACE = "llm-openai-codex";
|
|
2476
2477
|
/** Suggested local HTTP proxy shown by the settings UI; it is never enabled by default. */
|
|
2477
2478
|
const DEFAULT_OPENAI_CODEX_PROXY_URL = "http://127.0.0.1:7890";
|
|
2479
|
+
/** Empty profile setting, which makes image requests use the default route hint. */
|
|
2480
|
+
const DEFAULT_OPENAI_CODEX_IMAGE_MODEL_HINT = "";
|
|
2481
|
+
/** Validate an optional bounded ASCII image route model hint. */
|
|
2482
|
+
function isValidOpenAICodexImageModelHint(value) {
|
|
2483
|
+
return typeof value === "string" && (value === "" || /^(?=.{1,128}$)[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(value));
|
|
2484
|
+
}
|
|
2485
|
+
/** Parse an image route model hint without exposing malformed input. */
|
|
2486
|
+
function parseOpenAICodexImageModelHint(value) {
|
|
2487
|
+
if (!isValidOpenAICodexImageModelHint(value)) throw new TypeError("OpenAI Codex imageModelHint must be empty or a bounded ASCII model slug");
|
|
2488
|
+
return value;
|
|
2489
|
+
}
|
|
2478
2490
|
/**
|
|
2479
2491
|
* Normalize the credential-free HTTP proxy URL accepted by Codex Connect.
|
|
2480
2492
|
* Paths, query strings, fragments, and embedded credentials are rejected so
|
|
@@ -2538,6 +2550,7 @@ const DEFAULT_OPENAI_CODEX_SETTINGS = Object.freeze({
|
|
|
2538
2550
|
enableSearch: false,
|
|
2539
2551
|
enableImageTool: false,
|
|
2540
2552
|
enableImageGeneration: false,
|
|
2553
|
+
imageModelHint: "",
|
|
2541
2554
|
autoReviewDisclosureAcknowledged: false,
|
|
2542
2555
|
enableAutoReview: false,
|
|
2543
2556
|
searchModel: DEFAULT_OPENAI_CODEX_SEARCH_MODEL,
|
|
@@ -2552,6 +2565,7 @@ function resolveOpenAICodexSettings(value) {
|
|
|
2552
2565
|
...value
|
|
2553
2566
|
};
|
|
2554
2567
|
if (!isValidOpenAICodexProxyUrl(resolved.proxyUrl)) throw new TypeError("OpenAI Codex proxyUrl must be an HTTP(S) origin without credentials or a path");
|
|
2568
|
+
parseOpenAICodexImageModelHint(resolved.imageModelHint);
|
|
2555
2569
|
return {
|
|
2556
2570
|
...resolved,
|
|
2557
2571
|
contextWindowOverrides: resolveOpenAICodexContextWindowOverrides(resolved.contextWindowOverrides)
|
|
@@ -2575,6 +2589,7 @@ function decodeOpenAICodexSettings(value) {
|
|
|
2575
2589
|
const enableSearch = value["enableSearch"];
|
|
2576
2590
|
const enableImageTool = value["enableImageTool"];
|
|
2577
2591
|
const enableImageGeneration = value["enableImageGeneration"];
|
|
2592
|
+
const imageModelHint = value["imageModelHint"];
|
|
2578
2593
|
const autoReviewDisclosureAcknowledged = value["autoReviewDisclosureAcknowledged"];
|
|
2579
2594
|
const enableAutoReview = value["enableAutoReview"];
|
|
2580
2595
|
const searchModel = value["searchModel"];
|
|
@@ -2587,6 +2602,7 @@ function decodeOpenAICodexSettings(value) {
|
|
|
2587
2602
|
if (contextWindowOverrides !== void 0 && contextWindowOverrides !== null && !isValidOpenAICodexContextWindowOverrides(contextWindowOverrides)) return void 0;
|
|
2588
2603
|
if (typeof enableSearch !== "boolean" || typeof enableImageTool !== "boolean") return void 0;
|
|
2589
2604
|
if (enableImageGeneration !== void 0 && typeof enableImageGeneration !== "boolean") return void 0;
|
|
2605
|
+
if (imageModelHint !== void 0 && !isValidOpenAICodexImageModelHint(imageModelHint)) return void 0;
|
|
2590
2606
|
if (autoReviewDisclosureAcknowledged !== void 0 && typeof autoReviewDisclosureAcknowledged !== "boolean") return void 0;
|
|
2591
2607
|
if (enableAutoReview !== void 0 && typeof enableAutoReview !== "boolean") return void 0;
|
|
2592
2608
|
if (typeof searchModel !== "string" || searchModel.trim().length === 0) return void 0;
|
|
@@ -2602,6 +2618,7 @@ function decodeOpenAICodexSettings(value) {
|
|
|
2602
2618
|
enableSearch,
|
|
2603
2619
|
enableImageTool,
|
|
2604
2620
|
enableImageGeneration: enableImageGeneration ?? false,
|
|
2621
|
+
imageModelHint: imageModelHint ?? "",
|
|
2605
2622
|
autoReviewDisclosureAcknowledged: autoReviewDisclosureAcknowledged ?? false,
|
|
2606
2623
|
enableAutoReview: enableAutoReview ?? false,
|
|
2607
2624
|
searchModel,
|
|
@@ -2967,7 +2984,12 @@ function registerOpenAICodexProxyRoutes(ctx, trustedOrigins, manager) {
|
|
|
2967
2984
|
const COMPATIBILITY_SCHEMA_VERSION = 1;
|
|
2968
2985
|
const SUPPORTED_NODE_RANGE = "^22.19.0 || >=24.0.0";
|
|
2969
2986
|
const SUPPORTED_DSH_PLUGIN_API_VERSION = "0.1.2-rc.1";
|
|
2970
|
-
const SUPPORTED_DSH_PLUGIN_API_VERSIONS = [
|
|
2987
|
+
const SUPPORTED_DSH_PLUGIN_API_VERSIONS = [
|
|
2988
|
+
SUPPORTED_DSH_PLUGIN_API_VERSION,
|
|
2989
|
+
"0.1.5-alpha.1",
|
|
2990
|
+
"0.1.5-rc.1",
|
|
2991
|
+
"0.1.5-rc.2"
|
|
2992
|
+
];
|
|
2971
2993
|
const SUPPORTED_DSH_PLUGIN_API_RANGE = SUPPORTED_DSH_PLUGIN_API_VERSIONS.join(" || ");
|
|
2972
2994
|
const SUPPORTED_PI_AI_RANGE = "^0.84.2 || 0.85.1";
|
|
2973
2995
|
const PI_AI_PACKAGE = "@earendil-works/pi-ai";
|
|
@@ -3146,7 +3168,8 @@ const HIGHLIGHT_KINDS = [
|
|
|
3146
3168
|
"auto-review",
|
|
3147
3169
|
"astra-compatibility",
|
|
3148
3170
|
"multi-account",
|
|
3149
|
-
"search-route"
|
|
3171
|
+
"search-route",
|
|
3172
|
+
"image-model-hint"
|
|
3150
3173
|
];
|
|
3151
3174
|
function isHighlightKind(value) {
|
|
3152
3175
|
return typeof value === "string" && HIGHLIGHT_KINDS.includes(value);
|
|
@@ -3675,7 +3698,7 @@ function registerOpenAICodexOriginalImageRoute(ctx, trustedOrigins, assets) {
|
|
|
3675
3698
|
}
|
|
3676
3699
|
//#endregion
|
|
3677
3700
|
//#region src/version.ts
|
|
3678
|
-
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.
|
|
3701
|
+
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.34";
|
|
3679
3702
|
//#endregion
|
|
3680
3703
|
//#region src/doctor.ts
|
|
3681
3704
|
/** Secret-free diagnostics and duplicate-provider guidance. */
|
|
@@ -4718,12 +4741,14 @@ var OpenAICodexTransport = class extends Service {
|
|
|
4718
4741
|
credentials;
|
|
4719
4742
|
proxyManager;
|
|
4720
4743
|
resolveProxyUrl;
|
|
4744
|
+
resolveImageModelHint;
|
|
4721
4745
|
apiVersion = 1;
|
|
4722
|
-
constructor(ctx, credentials, proxyManager, resolveProxyUrl = () => void 0) {
|
|
4746
|
+
constructor(ctx, credentials, proxyManager, resolveProxyUrl = () => void 0, resolveImageModelHint = () => "") {
|
|
4723
4747
|
super(ctx, OPENAI_CODEX_TRANSPORT_SERVICE);
|
|
4724
4748
|
this.credentials = credentials;
|
|
4725
4749
|
this.proxyManager = proxyManager;
|
|
4726
4750
|
this.resolveProxyUrl = resolveProxyUrl;
|
|
4751
|
+
this.resolveImageModelHint = resolveImageModelHint;
|
|
4727
4752
|
}
|
|
4728
4753
|
async generateImages(input, context) {
|
|
4729
4754
|
const operation = () => this.generateImagesWithoutProxy(input, context);
|
|
@@ -4732,6 +4757,12 @@ var OpenAICodexTransport = class extends Service {
|
|
|
4732
4757
|
async generateImagesWithoutProxy(input, context) {
|
|
4733
4758
|
if (typeof input?.prompt !== "string" || input.prompt.trim().length === 0 || input.prompt.length > 32e3) throw new OpenAICodexTransportError(OPENAI_CODEX_TRANSPORT_ERROR_CODES.invalidRequest);
|
|
4734
4759
|
if (isAborted(context.signal)) throw new OpenAICodexTransportError(OPENAI_CODEX_TRANSPORT_ERROR_CODES.canceled);
|
|
4760
|
+
let imageModelHint;
|
|
4761
|
+
try {
|
|
4762
|
+
imageModelHint = parseOpenAICodexImageModelHint(this.resolveImageModelHint()) || IMAGE_ROUTE_HINT_MODEL;
|
|
4763
|
+
} catch {
|
|
4764
|
+
throw new OpenAICodexTransportError(OPENAI_CODEX_TRANSPORT_ERROR_CODES.invalidRequest);
|
|
4765
|
+
}
|
|
4735
4766
|
const credentials = await this.credentials.captureActiveAccount();
|
|
4736
4767
|
if ((await credentials.read("openai-codex"))?.type !== "oauth") throw new OpenAICodexTransportError(OPENAI_CODEX_TRANSPORT_ERROR_CODES.signedOut);
|
|
4737
4768
|
let auth;
|
|
@@ -4769,7 +4800,7 @@ var OpenAICodexTransport = class extends Service {
|
|
|
4769
4800
|
"user-agent": "dsh-codex-connect"
|
|
4770
4801
|
},
|
|
4771
4802
|
body: JSON.stringify({
|
|
4772
|
-
model:
|
|
4803
|
+
model: imageModelHint,
|
|
4773
4804
|
prompt: input.prompt
|
|
4774
4805
|
})
|
|
4775
4806
|
});
|
|
@@ -6314,6 +6345,7 @@ const Config = z.object({
|
|
|
6314
6345
|
enableSearch: z.boolean().default(false),
|
|
6315
6346
|
enableImageTool: z.boolean().default(false),
|
|
6316
6347
|
enableImageGeneration: z.boolean().default(false),
|
|
6348
|
+
imageModelHint: z.transform(z.string(), parseOpenAICodexImageModelHint).default(""),
|
|
6317
6349
|
autoReviewDisclosureAcknowledged: z.boolean().default(false),
|
|
6318
6350
|
enableAutoReview: z.boolean().default(false),
|
|
6319
6351
|
searchModel: z.string().default(DEFAULT_OPENAI_CODEX_SEARCH_MODEL),
|
|
@@ -6352,7 +6384,7 @@ function apply(ctx, config) {
|
|
|
6352
6384
|
const trustedOrigins = new OpenAICodexTrustedOriginsStore(join(dirname(credentials.filename), OPENAI_CODEX_TRUSTED_ORIGINS_FILENAME));
|
|
6353
6385
|
const fastMode = new FastModeRegistry();
|
|
6354
6386
|
assertNoOpenAICodexProviderConflict(ctx.llm.listProviders().map((provider) => provider.id));
|
|
6355
|
-
new OpenAICodexTransport(ctx, credentials, proxyManager, resolveProviderProxyUrl);
|
|
6387
|
+
new OpenAICodexTransport(ctx, credentials, proxyManager, resolveProviderProxyUrl, () => resolveOpenAICodexSettings(current()).imageModelHint);
|
|
6356
6388
|
registerOpenAICodexAutoReview(ctx, credentials, proxyManager, resolveProviderProxyUrl, () => resolveOpenAICodexSettings(current()).enableAutoReview);
|
|
6357
6389
|
ctx.llm.registerAdapter([OPENAI_CODEX_PROVIDER], createOpenAICodexAdapter(credentials, () => ctx.get("attachments"), fastMode, () => resolveOpenAICodexSettings(current()).models, proxyManager, resolveProviderProxyUrl, () => resolveOpenAICodexSettings(current()).contextWindowOverrides));
|
|
6358
6390
|
ctx.inject(["webServer"], (webCtx) => {
|
|
@@ -6515,4 +6547,4 @@ function apply(ctx, config) {
|
|
|
6515
6547
|
scheduleCapabilities();
|
|
6516
6548
|
}
|
|
6517
6549
|
//#endregion
|
|
6518
|
-
export { readInstalledPackageVersion as $, assertNoOpenAICodexProviderConflict as A,
|
|
6550
|
+
export { readInstalledPackageVersion as $, assertNoOpenAICodexProviderConflict as A, normalizeTrustedOrigin as At, COMPATIBILITY_PACKAGES as B, OPENAI_CODEX_AUTH_DOCUMENT_LIMIT as Bt, OPENAI_CODEX_TRANSPORT_ERROR_CODES as C, resolveOpenAICodexSettings as Ct, isOpenAICodexTransportError as D, OPENAI_CODEX_FAST_MODE_MAX_SESSION_ID_LENGTH as Dt, OpenAICodexTransportError as E, OPENAI_CODEX_FAST_MODE_MAX_SESSIONS as Et, checkForOpenAICodexUpdate as F, loginOpenAICodex as Ft, SUPPORTED_DSH_PLUGIN_API_VERSION as G, openAICodexAuthPath as Gt, DSH_PLUGIN_API_PACKAGES as H, OPENAI_CODEX_AUTH_V1_BACKUP_SUFFIX as Ht, compareOpenAICodexVersions as I, logoutOpenAICodex as It, SUPPORTED_PI_AI_RANGE as J, SUPPORTED_DSH_PLUGIN_API_VERSIONS as K, parseOpenAICodexUpdateResult as L, openAICodexAuthStatus as Lt, openAICodexConflictMessage as M, parseOpenAICodexUsage as Mt, CODEX_CONNECT_VERSION as N, readOpenAICodexRateLimits as Nt, VIEW_IMAGE_TOOL_NAME as O, isFastModeSessionId as Ot, OPENAI_CODEX_UPDATE_PATH as P, openAICodexModelCatalog as Pt, isSupportedDshPluginApiVersion as Q, parseOpenAICodexVersion as R, publicAuthError as Rt, OPENAI_CODEX_TRANSPORT_API_VERSION as S, resolveOpenAICodexProxyUrl as St, OpenAICodexTransport as T, FastModeRegistry as Tt, PI_AI_PACKAGE as U, OPENAI_CODEX_PROVIDER as Ut, COMPATIBILITY_SCHEMA_VERSION as V, OPENAI_CODEX_AUTH_FILENAME as Vt, SUPPORTED_DSH_PLUGIN_API_RANGE as W, OpenAICodexCredentialStore as Wt, detectCompatibility as X, assessCompatibility as Y, evaluateCompatibility as Z, OPENAI_CODEX_IMAGE_MAX_COUNT as _, decodeOpenAICodexSettings as _t, name as a, OPENAI_CODEX_PROXY_PROBE_URL as at, OPENAI_CODEX_IMAGE_PROMPT_MAX_LENGTH as b, isValidOpenAICodexProxyUrl as bt, migrateOpenAICodexSearchHistory as c, listOpenAICodexProxyCandidates as ct, OPENAI_CODEX_BASE_URL as d, DEFAULT_OPENAI_CODEX_SEARCH_CONTEXT_SIZE as dt, OPENAI_CODEX_PROXY_DETECT_PATH as et, OPENAI_CODEX_SEARCH_PROVIDER as f, DEFAULT_OPENAI_CODEX_SEARCH_MAX_OUTPUT_TOKENS as ft, OPENAI_CODEX_IMAGE_GENERATION_URL as g, OPENAI_CODEX_SETTINGS_NAMESPACE as gt, mapOpenAICodexSearchResponse as h, DEFAULT_OPENAI_CODEX_SETTINGS as ht, inject as i, OPENAI_CODEX_PROXY_PROBE_TIMEOUT_MS as it, diagnoseOpenAICodex as j, OPENAI_CODEX_USAGE_URL as jt, IMAGE_GENERATE_TOOL_NAME as k, OpenAICodexTrustedOriginsStore as kt, CODEX_AUTO_REVIEW_MODEL as l, DEFAULT_OPENAI_CODEX_IMAGE_MODEL_HINT as lt, OpenAICodexSearchProvider as m, DEFAULT_OPENAI_CODEX_SEARCH_MODEL as mt, OPENAI_CODEX_SETTINGS_NS as n, OPENAI_CODEX_LOCAL_PROXY_CANDIDATES as nt, OPENAI_CODEX_HISTORY_BACKUP_SUFFIX as o, OpenAICodexProxyManager as ot, OPENAI_CODEX_SEARCH_URL as p, DEFAULT_OPENAI_CODEX_SEARCH_MODE as pt, SUPPORTED_NODE_RANGE as q, apply as r, OPENAI_CODEX_PROXY_CANDIDATE_LIMIT as rt, OPENAI_CODEX_SEARCH_MODEL_REQUEST_EVENT as s, detectOpenAICodexProxies as st, Config as t, OPENAI_CODEX_PROXY_TEST_PATH as tt, probeCodexAutoReview as u, DEFAULT_OPENAI_CODEX_PROXY_URL as ut, OPENAI_CODEX_IMAGE_MAX_ERROR_BYTES as v, isValidOpenAICodexContextWindowOverrides as vt, OPENAI_CODEX_TRANSPORT_SERVICE as w, OPENAI_CODEX_FAST_MODE_PATH as wt, OPENAI_CODEX_IMAGE_REQUEST_TIMEOUT_MS as x, normalizeOpenAICodexProxyUrl as xt, OPENAI_CODEX_IMAGE_MAX_RESPONSE_BYTES as y, isValidOpenAICodexImageModelHint as yt, COMPATIBILITY_CONTRACT as z, OPENAI_CODEX_ACCOUNT_LIMIT as zt };
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "dsh-codex-connect",
|
|
3
3
|
"displayName": "Codex Connect",
|
|
4
4
|
"description": "ChatGPT OAuth and Codex models for DeepSeek Harness.",
|
|
5
|
-
"version": "0.1.0-alpha.4.
|
|
5
|
+
"version": "0.1.0-alpha.4.34",
|
|
6
6
|
"author": "Frank Song",
|
|
7
7
|
"contributors": [
|
|
8
8
|
"Yan-Zero (original dsh-codex author)"
|
|
@@ -109,24 +109,24 @@
|
|
|
109
109
|
"peerDependencies": {
|
|
110
110
|
"@earendil-works/pi-ai": "^0.84.2 || 0.85.1",
|
|
111
111
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
112
|
-
"@deepseek-ai/dsh-agent": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
113
|
-
"@deepseek-ai/dsh-atomic-write": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
114
|
-
"@deepseek-ai/dsh-attachment": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
115
|
-
"@deepseek-ai/dsh-client-ui-layout": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
116
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
117
|
-
"@deepseek-ai/dsh-client-ui-tool": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
118
|
-
"@deepseek-ai/dsh-commands": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
119
|
-
"@deepseek-ai/dsh-home-paths": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
120
|
-
"@deepseek-ai/dsh-host-webserver": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
121
|
-
"@deepseek-ai/dsh-invariants": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
122
|
-
"@deepseek-ai/dsh-llm": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
123
|
-
"@deepseek-ai/dsh-llm-pi-ai": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
124
|
-
"@deepseek-ai/dsh-fs": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
125
|
-
"@deepseek-ai/dsh-session": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
126
|
-
"@deepseek-ai/dsh-settings": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
127
|
-
"@deepseek-ai/dsh-tools": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
128
|
-
"@deepseek-ai/dsh-util-values": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
129
|
-
"@deepseek-ai/dsh-web": "0.1.2-rc.1 || 0.1.5-alpha.1",
|
|
112
|
+
"@deepseek-ai/dsh-agent": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
113
|
+
"@deepseek-ai/dsh-atomic-write": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
114
|
+
"@deepseek-ai/dsh-attachment": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
115
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
116
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
117
|
+
"@deepseek-ai/dsh-client-ui-tool": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
118
|
+
"@deepseek-ai/dsh-commands": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
119
|
+
"@deepseek-ai/dsh-home-paths": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
120
|
+
"@deepseek-ai/dsh-host-webserver": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
121
|
+
"@deepseek-ai/dsh-invariants": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
122
|
+
"@deepseek-ai/dsh-llm": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
123
|
+
"@deepseek-ai/dsh-llm-pi-ai": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
124
|
+
"@deepseek-ai/dsh-fs": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
125
|
+
"@deepseek-ai/dsh-session": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
126
|
+
"@deepseek-ai/dsh-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
127
|
+
"@deepseek-ai/dsh-tools": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
128
|
+
"@deepseek-ai/dsh-util-values": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
129
|
+
"@deepseek-ai/dsh-web": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.1.5-rc.1 || 0.1.5-rc.2",
|
|
130
130
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
131
131
|
"react": "^18.2.0"
|
|
132
132
|
},
|