From d8e458c3ca0f14d7f9bffc47b86b25be7b20fe2d Mon Sep 17 00:00:00 2001 From: Johnson-LYS Date: Mon, 29 Jun 2026 16:17:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(compute):=20=E6=96=B0=E5=A2=9E=20ChatGPT?= =?UTF-8?q?=20=E8=AE=A2=E9=98=85=20(Codex)=20Provider=20=E9=A2=84=E8=AE=BE?= =?UTF-8?q?=20(#33)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 自动检测客户端本地 Codex CLI 的 ChatGPT 订阅授权(~/.codex/auth.json), 以用户订阅额度调用 gpt-5.x/codex 模型,无需 API Key。 - compute/providers/openai-codex.json:accessMode=coding-plan + credentialSource=codex-cli + apiFormat=openai-codex-responses,5 个模型, enabled=false(由客户端检测器按本地凭证自动启用) - schemas/provider.schema.json:frozen baseline 新增 credentialSource 字段 - manifest.json:presetDataVersion 59 → 60 ⚠️ 发布顺序:本数据引入老客户端不识别的 credentialSource 字段。必须先发布带 compute.json 韧性(容忍未知字段)的客户端并等自动更新铺开,再合并本 PR—— 否则更早的客户端合并时会因严格 schema 校验失败而停收所有预设更新。 --- compute/providers/_index.json | 1 + compute/providers/openai-codex.json | 126 ++++++++++++++++++++++++++++ manifest.json | 4 +- schemas/provider.schema.json | 5 ++ 4 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 compute/providers/openai-codex.json diff --git a/compute/providers/_index.json b/compute/providers/_index.json index f5a98a6..ce3eb4a 100644 --- a/compute/providers/_index.json +++ b/compute/providers/_index.json @@ -2,6 +2,7 @@ "description": "Provider 加载顺序索引", "order": [ "openai", + "openai-codex", "anthropic", "deepseek", "dashscope", diff --git a/compute/providers/openai-codex.json b/compute/providers/openai-codex.json new file mode 100644 index 0000000..1ff0f8b --- /dev/null +++ b/compute/providers/openai-codex.json @@ -0,0 +1,126 @@ +{ + "id": "provider-openai-codex-plan-001", + "provider": "openai-codex", + "brandGroup": "openai", + "label": "ChatGPT 订阅 (Codex)", + "baseUrl": "https://chatgpt.com/backend-api", + "apiFormat": "openai-codex-responses", + "apiKeyRef": "openai-codex-access-token", + "apiKeyVerified": false, + "enabled": false, + "status": "unconfigured", + "priceCurrency": "USD", + "accessMode": "coding-plan", + "credentialSource": "codex-cli", + "codingPlan": { + "quotas": {}, + "usageTracking": { + "method": "none", + "consoleUrl": "https://chatgpt.com/codex/settings/usage" + } + }, + "services": [ + "chat", + "reasoning" + ], + "models": [ + { + "modelName": "gpt-5.5", + "displayName": "GPT-5.5 (订阅)", + "serviceType": [ + "chat" + ], + "description": "ChatGPT 订阅额度计费,旗舰模型,272K 上下文", + "contextWindow": 272000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "long_context", + "tool_use", + "agent" + ], + "source": "preset" + }, + { + "modelName": "gpt-5.4", + "displayName": "GPT-5.4 (订阅)", + "serviceType": [ + "chat" + ], + "description": "ChatGPT 订阅额度计费,高阶通用模型,272K 上下文", + "contextWindow": 272000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "long_context", + "tool_use", + "agent" + ], + "source": "preset" + }, + { + "modelName": "gpt-5.3-codex", + "displayName": "GPT-5.3 Codex (订阅)", + "serviceType": [ + "chat" + ], + "description": "ChatGPT 订阅额度计费,编程专用旗舰,272K 上下文", + "contextWindow": 272000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "long_context", + "tool_use", + "agent" + ], + "source": "preset" + }, + { + "modelName": "gpt-5.2-codex", + "displayName": "GPT-5.2 Codex (订阅)", + "serviceType": [ + "chat" + ], + "description": "ChatGPT 订阅额度计费,编程专用模型,272K 上下文", + "contextWindow": 272000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "long_context", + "tool_use", + "agent" + ], + "source": "preset" + }, + { + "modelName": "gpt-5.1-codex-mini", + "displayName": "GPT-5.1 Codex Mini (订阅)", + "serviceType": [ + "chat" + ], + "description": "ChatGPT 订阅额度计费,轻量编程模型,272K 上下文", + "contextWindow": 272000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "code", + "vision", + "long_context", + "tool_use" + ], + "source": "preset" + } + ] +} diff --git a/manifest.json b/manifest.json index 9ddaa24..f9a666b 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "version": "1.0.0", - "presetDataVersion": 59, - "updatedAt": "2026-06-11", + "presetDataVersion": 60, + "updatedAt": "2026-06-14", "description": "DesireCore 官方配置中心" } diff --git a/schemas/provider.schema.json b/schemas/provider.schema.json index b36eb16..0a9c1f4 100644 --- a/schemas/provider.schema.json +++ b/schemas/provider.schema.json @@ -81,6 +81,11 @@ "type": "string", "description": "品牌分组标识,UI 按此字段排序" }, + "credentialSource": { + "type": "string", + "enum": ["codex-cli"], + "description": "凭证托管来源。codex-cli:密钥由客户端本地 Codex CLI 凭证检测器托管(读取 ~/.codex/auth.json 自动刷新写回,fresh token 同步 secrets.json)。需 requiredClientVersion ≥ 引入此字段的客户端版本——老客户端不识别本字段,必须先发版铺开 compute.json 韧性(容忍未知字段)再推送本数据" + }, "codingPlan": { "type": "object", "description": "Coding Plan / Token Plan 专属配置(仅当 accessMode = coding-plan 或 token-plan 时有效)",