dsh-openai-codex

by devteapot

0 工具与能力github收录于 08-23

harness LLM 缝的 ChatGPT Plus/Pro OAuth 适配器:一个插件实例独占 openai-codex provider 路由,OAuth 会话存于凭据引用

ChatGPT Plus/Pro OAuth adapter for the harness LLM seam. One plugin instance owns the openai-codex provider route, stores the OAuth session under a credential reference, and…

安装

dsh plugin --profile web add github:devteapot/dsh-openai-codex

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

English | 中文

面向 harness LLM seam 的 ChatGPT Plus/Pro OAuth 适配器。一个插件实例拥有 openai-codex 提供方路由,把 OAuth 会话存在一条凭据引用下,并通过 pi-ai 的 Codex catalog 提供方发流。登录、刷新与登出留在本包,以便 @deepseek-ai/dsh-llm-pi-ai 继续只处理密钥加端点的 profile。

包根入口导出 Cordis 插件约定、OpenAiCodexAdapter、OpenAiCodexAuth(ctx.openaiCodex)、createCodexModels 以及 OAuth 存储辅助函数。本包内部自带 pi-ai 历史与事件转换,因此从 Git 安装时不依赖尚未发布的 harness 导出。

安装

此开发版本要求 DeepSeek Harness 0.1.0-rc.6 或更高版本。

把固定到特定提交的版本安装进 profile:

dsh plugin --profile web add github:devteapot/dsh-openai-codex#<commit>

构建产物已提交,因此按 Git 哈希安装时不会运行包构建。Harness 与 pi-ai 包作为 peer 通过 profile 的安装级 fallback 解析,所以 profile 不会再安装一套提供方 SDK 依赖树。本包声明了 dsh.bundle,所以 dsh plugin add 会在 profile 清单中跟踪它并应用 cordis.patch.yml。可用 dsh plugin --profile web remove @devteapot/dsh-openai-codex 删除。

配置

- id: llm-openai-codex
  name: '@devteapot/dsh-openai-codex'
  config:
    oauthEnv: OPENAI_CODEX_OAUTH  # default; resolved per request via ctx.credentials, then the environment
    displayName: OpenAI Codex     # optional selector label
    reasoning: high               # optional; off | minimal | low | medium | high | xhigh | max
    streamIdleTimeoutMs: 300000   # optional; five-minute default
    retryPolicy:                  # optional; omission uses bounded normal defaults
      mode: normal
      maxRetries: 3

在被引用的凭据写入一份 JSON OAuth 会话(type、access、refresh、expires)之前,该路由保持休眠。/codex-login 与 ctx.openaiCodex.login(interaction) 会持久化该会话;/codex-logout 与 ctx.openaiCodex.logout() 会删除它。pi-ai 在下一次请求时于存储锁下刷新即将过期的 token。未登录时发出的请求以 NO_ADAPTER 失败,因为路由尚未注册;MISSING_CREDENTIAL 留给无法持久化会话的登录(没有凭据服务)。

oauthEnv 是凭据引用。settings 文档从不保存 token。未挂载凭据服务时,适配器仍读取该环境变量,但登录无法写入新会话。

/codex-login 运行 pi-ai 的 ChatGPT 流程(http://localhost:1455/auth/callback 上的浏览器回调,或设备码)。提示走 ctx.userQuestions;浏览器登录会在该提示中显示授权 URL,授权 URL 或设备码也会写入宿主日志。回调 URL 本身不是登录链接。没有 userQuestions 的无头组合应自行实现 AuthInteraction 并调用 ctx.openaiCodex.login(),或把紧凑 JSON 会话写入该凭据引用。

GenerateOptions.provider 必须是 openai-codex。GenerateOptions.model 是 ctx.llm.listModels('openai-codex') 中的 catalog 模型 id。GenerateOptions.stop 以 UNSUPPORTED_OPTION 拒绝。

动态配置

插件用同一套 Config schema 注册 llm-openai-codex settings 命名空间。重试策略或显示名变更会就地重新注册已激活的路由。凭据变更(oauthEnv 上的 credentials/updated)会在不重启的情况下激活或撤回该路由。

错误

NO_ADAPTER — 路由处于休眠,或请求点名了其他提供方。UNKNOWN_MODEL — 模型 id 不在已安装的 Codex catalog 中。UNSUPPORTED_REASONING_EFFORT / UNSUPPORTED_OPTION / UNSUPPORTED_CONTENT — 请求要求了该模型或适配器不提供的能力。TIMEOUT / ABORTED — 空闲超时或调用方取消。INVALID_CREDENTIAL — 已存储文档不是可用的 OAuth 会话。MISSING_CREDENTIAL — 登录没有地方持久化会话。

模型体验

经 pi-ai 发出的提供方请求

模型看到的内容

所选 Codex catalog 模型会收到 GenerateOptions.system、历史、工具,以及 pi-ai 通用流式 API 支持的采样字段。本包不添加任何提示散文。

Token 影响

精确输入由提供方分词决定。转换不添加模型可见文本。

KV Cache 影响

转换保持逻辑请求顺序且不添加文本。更换适配器实例、提供方、模型或任何上游请求 token,都可能从第一处差异起阻止复用。传入 GenerateOptions.sessionId 时,除非 pi-ai 内部关闭了 cache retention,Codex 路径可以复用会话缓存。

提供方响应

模型看到的内容

pi-ai 事件变为 harness 的 reasoning、text、tool-call、usage 与 finish 分片。工具参数以原始 JSON 字符串存储。

Token 影响

生成内容仅在循环记录之后影响后续输入。pi-ai 把推理 token 折入 output usage。

KV Cache 影响

已记录的响应内容追加到下一请求,不会使较早可复用前缀失效。

已知限制与暂缓事项

  • Models 页面没有登录按钮 — ui-settings-models 只编辑 API 密钥卡片。登录入口是 /codex-login 或 ctx.openaiCodex.login()。专用设置卡片暂缓。
  • 登录提示需要 ctx.userQuestions — 没有该服务的组合无法完成 /codex-login;请自行提供 AuthInteraction,或直接写入会话 JSON。
  • 授权 URL 记在宿主日志里 — 浏览器回调监听的是 harness 进程,因此远程 Web 客户端应使用设备码登录,或在同一台机器上运行该命令。
  • 不导入 ~/.codex/auth.json — 不读取官方 Codex CLI 会话。请通过本插件粘贴或登录。
  • 已配置的 llm-pi-ai openai-codex profile 会与本插件冲突 — 安装本 bundle 前,请从 llm-pi-ai: 节删除该键。本插件独占该路由。

原始 README: https://github.com/devteapot/dsh-openai-codex/blob/main/README.zh.md ↗