DSH Codex Adapter # DSH Codex Adapter [English](README.md) · [简体中文](README.zh.md) [![npm](https://img.shields.io/npm/v/dsh-codex-adapter?style=flat-square&color=374151)](https://www.npmjs.com/package/dsh-codex-adapter) [![License: MIT](https://img.shields.io/badge/License-MIT-374151?style=flat-square)](LICENSE) [![DSH plugin](https://img.shields.io/badge/DSH-plugin-374151?style=flat-square)](https://github.com/topics/dsh-plugin)
在 DeepSeek Harness 中使用 ChatGPT 账号进行编码对话、生成图片和网页搜索。从 DSH 内完成登录、查看额度,并在一个设置面板中管理这些功能。 [快速开始](#快速开始) · [图片生成](#图片生成) · [设置面板](#设置面板) · [配置说明](docs/configuration.zh.md) ## 看看实际效果 DSH 真实对话:生成窗边橘猫水彩画、保存 PNG、显示下载按钮并正常完成回复 *真实运行截图:生成 1254 × 1254 PNG,自动保存到工作区,提供下载入口,并正常完成后续回复。设置页和图片卡片同时支持中文与英文。* ## 你可以做什么 | 功能 | 在 DSH 中的体验 | | --- | --- | | **编码对话** | `openai-codex` 模型路由,支持流式回复与图片上下文。 | | **账号与额度** | ChatGPT 登录、导入 CLI 登录、取消、退出,以及服务返回的套餐和额度窗口。 | | **文生图** | `imagegen` 工具、图片预览、尺寸、下载和工作区保存状态。 | | **参考图编辑** | 使用工作区图片或最近的图片附件进行编辑。 | | **网页搜索** | Codex 搜索服务,支持 cached、indexed 和 live 模式。 | | **原生设置页** | 独立 Codex 页面和 Plugins 紧凑卡片,适配浅深色主题与中英文。 | ## 快速开始 需要具备 0.1.5 适配器接口的当前 DSH,以及 Node.js 22.19+ 或 24+。 ```bash dsh plugin --profile web add dsh-codex-adapter@latest dsh web ``` 1. 打开 **设置 → Codex**,使用 ChatGPT 登录,或导入已有的 Codex CLI 登录。 2. 在对话的模型选择器中选择 **Codex** 下的模型。 3. 开始对话,或直接描述想生成的图片。 如果已经安装 `dsh-codex`,先移除它再安装本适配器:两个包使用相同的 `openai-codex` 路由。 ```bash dsh plugin --profile web remove dsh-codex ``` ## 图片生成 在对话中试试: > 生成一张窗边橘猫的水彩插画,旁边有小盆绿植,午后暖光,无文字。保存为 window-cat.png。 图片卡片会显示预览、尺寸、文件大小、下载按钮和保存状态。DSH 可能自动折叠已完成的工具调用;展开工具组即可再次查看图片。 编辑图片时,向 `imagegen` 提供 `referenced_image_paths` 或 `num_last_images_to_include`。每次选择一种参考方式,最多使用五张图片。 生成结果会保留为持久附件,后续对话可以继续看图。本地保存遵守工作区权限、取消信号和文件覆盖保护。远程文件系统需要提供二进制写入接口才能保存;不支持时仍可查看和下载图片附件。 ## 设置面板 - **账号:** 浏览器或设备登录、手动回调兜底、取消、导入 CLI 登录和退出;授权尝试十分钟后超时。 - **额度:** 显示服务返回的套餐、剩余额度、重置时间和余额。缺失数据保持未知,额度查询失败不会导致退出登录。 - **功能:** 图片生成与编辑、网页搜索和搜索模式;保存后对后续请求生效。 ## 网页搜索 先在 **设置 → Codex** 开启网页搜索。安装了多个搜索服务时,在 profile patch 中明确选择 Codex: ```yaml # ~/.dsh/profiles/web/cordis.patch.yml - id: web config: searchProvider: openai-codex fetchProvider: http ``` 也可以设置 `DSH_WEB_SEARCH_PROVIDER=openai-codex`。本插件提供搜索,页面抓取仍由 DSH 配置的 fetch provider 负责。 ## 凭证与兼容性 登录状态使用 DSH 凭证服务。独立 CLI 凭证文档可以初始化空记录,后续刷新由共享凭证写入器负责。退出会同时清理两处,避免旧文件让账号重新登录。 ```bash dsh plugin --profile web exec dsh-codex-adapter status dsh plugin --profile web exec dsh-codex-adapter import ``` `status` 只打印账号元数据,不打印 token。CLI 还支持 `login`、`logout` 和指定路径导入。存储位置与高级设置见[配置和授权说明](docs/configuration.zh.md)。 适配器遵循当前 `PiAiAdapter` 接口,补齐模型错误映射和图片附件解析;不包含其他 bundle 的 fast mode、原生压缩或 `/codex` 终端命令。 ## 实现与致谢 认证基于 [pi-ai](https://github.com/earendil-works/pi/tree/main/packages/ai) 的 `openaiCodexProvider`,认证流程与设置 UI 参考 [Yan-Zero/dsh-codex](https://github.com/Yan-Zero/dsh-codex)。运行时由 pi-ai 提供模型通信、OAuth 登录和凭证刷新,DSH 的 `PiAiAdapter` 负责将 provider 接入宿主。 **图像生成/编辑与 ChatGPT 内置网页搜索的功能接入由本项目实现。** 适配器直接调用 ChatGPT Codex 后端的图片和搜索接口,复用 pi-ai 管理的认证凭证,并将结果接入 DSH 的工具、附件和搜索服务。Provider 的图片输入能力用于让对话模型接收图片;图像生成使用本适配器单独实现的 `imagegen` 客户端。 用于保存生成图片的本地二进制写入兼容代码改编自 dsh-codex 0.2.9,保留其 [Apache-2.0 许可证](lib/licenses/dsh-codex-Apache-2.0.txt)。本包其余部分采用 MIT 许可证。 ## 自动发布 版本标签通过 [GitHub Actions](.github/workflows/release.yml) 和 npm Trusted Publishing 发布。推送与 `package.json` 版本一致的 `v<版本号>` 标签后,流程会执行干净安装、完整检查并发布到 `latest`。标签不匹配会停止,已经存在的不可变版本会跳过;发布使用 GitHub OIDC,不保存长期 npm 发布 token。 首个 npm 版本需要交互式创建,后续版本使用绑定到 `baixianger/dsh-codex-adapter` 仓库和 `release.yml` 的信任关系。 ## 开发与反馈 ```bash npm ci npm run check ``` [提交问题](https://github.com/baixianger/dsh-codex-adapter/issues) · [版本记录](RELEASES.md) · [MIT 许可证](LICENSE)