返回目录
其他 插件

dsh-chatgpt-subscription

Aa728848/dsh-chatgpt-subscription

该仓库暂未提供项目说明。

Stars
3
Forks
0
Issues
0
更新
今天

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:Aa728848/dsh-chatgpt-subscription

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

DSH ChatGPT Subscription

让 DSH(DeepSeek Harness)通过 ChatGPT 订阅使用 Gpt 系列模型的插件。

插件注册 codex-chatgpt Provider(显示名 “Codex(ChatGPT 订阅)”),以当前 Host 用户的 ChatGPT OAuth 登录态访问模型,并在设置页展示账号信息、连接状态与订阅额度。支持 Windows 与 Linux。

目录

功能特性

登录与会话

  • Authorization Code + PKCE(S256)登录,一次性 localhost 回调;
  • 支持 token 刷新、登录取消与账号注销;
  • Windows 使用 CurrentUser DPAPI 加密存储 token;Linux 使用当前用户独占的 0600 文件存储;明文不发送给 Client;
  • 设置页会明确显示当前存储类型,并在 Linux 上提示文件存储未额外加密。

模型接入

  • 固定 Codex Responses 地址,支持流式文本、reasoning summary、图片输入与工具调用/结果;
  • 原样转发 DSH 暴露的工具 schema;命令工具兼容 pwsh / powershellbashshshell,并按 PowerShell、Bash 或 POSIX sh 注入对应说明;
  • 429/5xx 由 DSH retry policy 接管;401 只强制刷新并重试一次,支持 AbortSignal
  • Codex 与 Code review 多窗口额度,60 秒缓存、15 秒上游节流并遵守 Retry-After
  • 临时兼容 DSH 0.1.0-rc.6 的子代理最终报告去重:若 settlement 已向父 Agent 提供同一子代理、完全相同的最终内容,则删除仍在 inbox 中的重复 report;部分报告、不同内容和不同子代理不受影响。兼容代码以 DSH_COMPAT_REMOVE(subagent-report-settlement-dedup) 集中标记,待 DSH 原生修复后删除。

设置页

  • 展示账号(脱敏 email、套餐、账号 ID 后四位)、连接状态与额度;
  • 可访问的进度条、窄窗口/200% 缩放布局、深浅主题与 reduced-motion。

模型目录

gpt-5.6-solgpt-5.6-terragpt-5.6-lunagpt-5.5gpt-5.4gpt-5.4-minigpt-5.2

目录只用于展示;账号实际可用的模型由 ChatGPT 套餐、workspace 策略与上游兼容状态决定。

环境要求

  • Windows 或 Linux;
    • Windows:系统需提供 Windows PowerShell,以使用 CurrentUser DPAPI;
    • Linux:Host 用户必须拥有可写的 ~/.dsh(或 $DSH_HOME),凭据文件会强制使用 0600、目录使用 0700
  • 已安装 DSH;
  • Node.js 与 npm。

安装

方式 1:通过 DSH CLI 安装(推荐)

直接从 npm 安装已发布的插件包:

# Windows PowerShell、Bash 和 POSIX sh 均可执行
# 如果全局安装了 dsh
dsh plugin --profile web add @eddyskywalker/dsh-chatgpt-subscription

# 或使用 npx 直接运行
npx @deepseek-ai/dsh plugin --profile web add @eddyskywalker/dsh-chatgpt-subscription

方式 2:通过 DSH 插件市场安装

  1. 打开 DSH 界面中的 插件市场 / Plugin Market
  2. 搜索 @eddyskywalker/dsh-chatgpt-subscriptiondsh-chatgpt-subscription
  3. 点击 安装

方式 3:本地开发调试(源码软链接)

如需进行二次开发或本地源码调试:

git clone https://github.com/Aa728848/dsh-chatgpt-subscription.git
cd dsh-chatgpt-subscription
npm install
npm run build

# Linux
npx @deepseek-ai/dsh plugin --profile web add "link:/absolute/path/to/dsh-chatgpt-subscription"

# Windows PowerShell
npx @deepseek-ai/dsh plugin --profile web add "link:C:\absolute\path\to\dsh-chatgpt-subscription"

使用

  1. 重启 dsh web
  2. 打开 设置 → Codex 订阅
  3. 完成 ChatGPT 登录;
  4. 执行 测试连接

DSH 模型选择器应显示 “Codex(ChatGPT 订阅)”

卸载前建议先在设置页点击 “注销”,它会删除当前平台的凭据和 Host 内存中的额度缓存。

若 DSH 已异常退出,可在确认路径后手动处理凭据文件:

  • Windows:%DSH_HOME%\storages\dsh-chatgpt-subscription\oauth.dpapi,未设置 DSH_HOME 时为 %USERPROFILE%\.dsh\storages\dsh-chatgpt-subscription\oauth.dpapi
  • Linux:$DSH_HOME/storages/dsh-chatgpt-subscription/oauth.json,未设置 DSH_HOME 时为 ~/.dsh/storages/dsh-chatgpt-subscription/oauth.json

Windows 文件只能由创建它的用户通过 DPAPI 解密。Linux 文件是未额外加密的 JSON,依赖目录 0700 和文件 0600 隔离;不要复制、打印或提交该文件。跨平台迁移需要重新登录。

安全边界

  • OAuth 回调固定为 http://localhost:1455/auth/callback,登录任务五分钟超时,同一时刻只允许一个;
  • OAuth token 只发送到 https://auth.openai.com/oauth/token
  • 模型与额度地址分别固定为 https://chatgpt.com/backend-api/codex/responseshttps://chatgpt.com/backend-api/wham/usage,没有 endpoint override;
  • Windows token bundle 使用 CurrentUser DPAPI;明文只经过 Host 内存和 PowerShell stdin/stdout;
  • Linux token bundle 原子写入当前用户私有文件并在读取时校验普通文件、所有者与 0600 权限,同时拒绝符号链接;该文件没有应用层加密,同 UID 进程、root、备份和磁盘快照仍可读取;
  • 两个平台的 token 都不会进入浏览器、settings.yaml 或日志;
  • 工具调用只有在参数是完整 JSON 对象时才产生可执行的 block-end;畸形参数终止本次生成;
  • 所有修改状态的路由只接受同源 JSON POST,并校验 OriginHost

插件路由

所有路由都以 /api/dsh-chatgpt-subscription 为前缀:

方法 路径 说明
GET /status 查询账号、连接状态与额度
POST /login/start 开始 OAuth 登录
GET /login/events?loginId=... SSE 订阅登录进度
POST /login/cancel 取消登录任务
POST /logout 注销并清除凭据与额度缓存
POST /token/refresh 刷新 token
POST /quota/refresh 刷新额度
POST /connection/test 测试连接

状态响应只包含脱敏 email、套餐、账号 ID 后四位、token 到期时间和额度 DTO。

开发与验证

npm run typecheck
npm test
npm run build
npm pack --dry-run

测试使用 mock OAuth、Responses SSE 和 Wham usage,不需要真实 ChatGPT 凭据。真实账号的端到端登录与生成应在独立 DSH profile 中人工验收,避免影响日常 profile。

故障排查

现象 处理
1455 端口占用 结束旧登录任务或占用该端口的进程后重试;插件卸载会关闭 listener
登录后仍是 401 刷新 token;若刷新 token 已失效,注销并重新登录,不会循环请求
额度显示旧数据 设置页会保留最后成功值;等待 15 秒节流窗口后手动刷新
429 插件遵守 Retry-After,不会高频轮询;模型请求由 DSH retry policy 有界重试
模型不可用 检查 ChatGPT 套餐、workspace 权限与当前模型可用性
DPAPI 读取失败 确认 DSH 以创建凭据时的同一 Windows 用户运行;必要时清理凭据后重新登录
Linux 凭据存储不可用 确认凭据属于当前用户且权限为 0600,父目录权限为 0700;修复权限或注销后重新登录
Linux 上工具调用语法错误 确认 DSH 暴露的是 bashshshell,并使用相应的 Bash/POSIX 语法与 / 路径
父 Agent 已收到子代理结果,但相同报告仍显示为排队消息 本插件为 DSH 0.1.0-rc.6 提供临时 report/settlement 精确去重;升级或重载插件并新建会话后验证。若未来 DSH 已原生修复,可移除所有 DSH_COMPAT_REMOVE(subagent-report-settlement-dedup) 标记代码

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类其他
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。