Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
2e2c70f
docs: design DeepSeek Responses terminal repair
baileyh8 Aug 6, 2026
e019b14
docs: tighten terminal repair completion predicate
baileyh8 Aug 6, 2026
816b53c
docs: plan DeepSeek Responses terminal repair
baileyh8 Aug 6, 2026
f868862
fix(deepseek): restore Responses upstream streaming
baileyh8 Aug 6, 2026
af1d302
feat(responses): repair complete terminal-less streams
baileyh8 Aug 6, 2026
896943b
fix(responses): fail closed on unsafe terminal repair
baileyh8 Aug 6, 2026
3813c99
fix(responses): preserve terminal repair backpressure
baileyh8 Aug 6, 2026
bf678b1
fix(deepseek): repair terminal-less Responses streams
baileyh8 Aug 6, 2026
2becae4
docs: describe DeepSeek streaming terminal repair
baileyh8 Aug 6, 2026
157c3e4
docs: document DeepSeek Responses streaming
baileyh8 Aug 6, 2026
e7e3877
test(responses): track provider-scoped SSE relay
baileyh8 Aug 6, 2026
243ee6d
docs: design routed computer use and browser support
baileyh8 Aug 9, 2026
c769ef9
docs: clarify routed tool mode scope
baileyh8 Aug 9, 2026
fa17f1b
docs: plan routed computer use and browser support
baileyh8 Aug 9, 2026
30f48a0
test(codex): require code mode for routed models
baileyh8 Aug 9, 2026
f60dd98
fix(codex): enable code mode for routed models
baileyh8 Aug 9, 2026
aa9f11f
test(codex): persist routed code mode policy
baileyh8 Aug 9, 2026
8bb00d3
docs(codex): explain routed local tool access
baileyh8 Aug 9, 2026
e6ad8fb
fix(responses): bridge routed exec custom tools
baileyh8 Aug 9, 2026
f61ed63
fix(responses): address streaming review edge cases
baileyh8 Aug 10, 2026
d20aae4
fix(responses): harden malformed stream repair
baileyh8 Aug 10, 2026
b9b723c
fix(responses): guard late custom tool frames
baileyh8 Aug 10, 2026
da36a30
fix(responses): harden routed custom-tool progressive repair
Wibias Aug 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions docs-site/src/content/docs/guides/codex-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,25 @@ Routed catalog entries also get their GPT-5 identity rewritten to the real upstr
Reasoning controls come from provider/model metadata across Codex's `low | medium | high | xhigh |
max | ultra` ladder; unsupported values are mapped or clamped before the upstream request.

### Routed local tools

Non-native routed catalog rows use `tool_mode: "code_mode_only"`. This lets Codex expose its official
`exec` entrypoint and nested MCP tools, including Browser and Computer Use, while opencodex routes
only the model's ordinary function call. Tool execution, permissions, and confirmations remain
local to Codex; opencodex does not implement a second browser or desktop-control executor.

For key-auth Responses providers that do not accept Codex's `exec` custom-tool grammar, opencodex
encodes that declaration and its history as an upstream function tool, then restores the streamed
function-call lifecycle to `custom_tool_call` before Codex sees it. Native OpenAI forward routing
and the supported `apply_patch` custom tool stay unchanged.

The selected provider must support function/tool calling. A text-only provider without tool-call
support cannot use `exec`, Browser, or Computer Use. Native OpenAI rows keep their upstream tool
mode unchanged.

After `ocx sync` changes this metadata, restart Codex App and open a fresh task. Existing app-server
processes and tasks may retain the catalog and tool plan they loaded at startup.

Comment thread
coderabbitai[bot] marked this conversation as resolved.
### Custom model display names

A custom model can carry a human-readable **display name** that overrides the label Codex shows in
Expand Down
4 changes: 4 additions & 0 deletions docs-site/src/content/docs/guides/providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,10 @@ wait-and-retry remains opt-in via [`retryOn429`](/reference/configuration/).
Most use the `openai-chat` adapter with a bearer key; a few that expose only an Anthropic-compatible
endpoint (e.g. **Xiaomi MiMo**) use the `anthropic` adapter (`x-api-key`).
Volcengine Agent Plan uses its native Responses endpoint through `openai-responses`.
The built-in DeepSeek preset also routes `deepseek-v4-flash` over its native Responses endpoint and
keeps upstream SSE streaming enabled. If that model finishes every output item but omits the final
Responses event, opencodex applies a five-second model-scoped grace repair; malformed or partial
streams close as incomplete rather than being reported as successful.

> **Three Volcengine billing routes:** `volcengine` is the pay-as-you-go Ark API,
> `volcengine-coding-plan` consumes Coding Plan quota, and `volcengine-agent-plan` consumes Agent
Expand Down
19 changes: 19 additions & 0 deletions docs-site/src/content/docs/ja/guides/codex-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,25 @@ Codex には、ディスク上のカタログ (デフォルトでは `$CODEX_HOM
プロバイダーとモデルメタデータに応じて Codex の `low | medium | high | xhigh | max | ultra` 段階を使い、
上流がサポートしない値はリクエスト送信前にマッピングまたはサポート範囲に下げます。

### ルーティングされたローカルツール

ネイティブではないルーティング済みカタログ項目は `tool_mode: "code_mode_only"` を使用します。これにより、
Codex は公式の `exec` エントリポイントと、Browser や Computer Use を含むネストされた MCP ツールを公開できます。
opencodex がルーティングするのはモデルの通常の function call だけです。ツールの実行、権限、確認は Codex 内に
残り、opencodex が別のブラウザーやデスクトップ操作 executor を実装することはありません。

Codex の `exec` custom-tool grammar を受け付けない key-auth Responses provider に対しては、opencodex が宣言と
履歴を上流向けの function tool にエンコードし、ストリーミングされた function-call lifecycle を Codex に返す前に
`custom_tool_call` へ復元します。ネイティブ OpenAI の forward routing と、対応済みの `apply_patch` custom tool は
変更されません。

選択した provider は function/tool calling をサポートしている必要があります。tool call に対応しない text-only
provider では `exec`、Browser、Computer Use は使用できません。ネイティブ OpenAI の項目は上流の tool mode を
そのまま維持します。

`ocx sync` でこの metadata を変更した後は Codex App を再起動し、新しいタスクを開いてください。既存の
app-server process とタスクは、起動時に読み込んだ catalog と tool plan を保持している場合があります。

### カスタムモデルの表示名

カスタム モデルは、モデルのルーティング方法を何も変更することなく、Codex がモデル ピッカーに表示するラベルをオーバーライドする人間が判読できる **表示名** を付けることができます。表示名はカタログ エントリの `display_name` フィールドのみにマップされます。ルーティング スラグ (`<provider>/<model>`)、エイリアスの衝突順序、プロバイダー、およびネイティブ OpenAI マーケティング名はすべて変更されません。
Expand Down
19 changes: 19 additions & 0 deletions docs-site/src/content/docs/ko/guides/codex-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,25 @@ Codex는 디스크의 카탈로그(`$CODEX_HOME/opencodex-catalog.json`이 기
프로바이더와 모델 메타데이터에 따라 Codex의 `low | medium | high | xhigh | max | ultra` 단계를 사용하며,
업스트림이 지원하지 않는 값은 요청을 보내기 전에 매핑하거나 지원 범위로 낮춥니다.

### 라우팅된 로컬 도구

네이티브가 아닌 라우팅 catalog 항목은 `tool_mode: "code_mode_only"`를 사용합니다. 이를 통해 Codex는 공식
`exec` 진입점과 Browser 및 Computer Use를 포함한 중첩 MCP 도구를 노출할 수 있으며, opencodex는 모델의 일반
function call만 라우팅합니다. 도구 실행, 권한, 확인은 Codex에 그대로 남고 opencodex가 별도의 browser 또는
desktop-control executor를 구현하지는 않습니다.

Codex의 `exec` custom-tool grammar를 허용하지 않는 key-auth Responses provider의 경우, opencodex는 해당 선언과
history를 업스트림 function tool로 인코딩한 다음 스트리밍된 function-call lifecycle을 Codex에 전달하기 전에
`custom_tool_call`로 복원합니다. 네이티브 OpenAI forward routing과 지원되는 `apply_patch` custom tool은 변경되지
않습니다.

선택한 provider는 function/tool calling을 지원해야 합니다. tool call을 지원하지 않는 text-only provider에서는
`exec`, Browser 또는 Computer Use를 사용할 수 없습니다. 네이티브 OpenAI 항목은 업스트림 tool mode를 그대로
유지합니다.

`ocx sync`가 이 metadata를 변경한 뒤에는 Codex App을 다시 시작하고 새 task를 여세요. 기존 app-server process와
task는 시작할 때 불러온 catalog와 tool plan을 계속 유지할 수 있습니다.

### 사용자 지정 모델 표시 이름

사용자 지정 모델은 사람이 읽을 수 있는 **표시 이름**을 가질 수 있습니다. 이 이름은 Codex의 model picker에 보이는 label만 바꾸고, 모델이 라우팅되는 방식은 바꾸지 않습니다. 표시 이름은 catalog entry의 `display_name` 필드에만 매핑되며, routing slug(`<provider>/<model>`), alias collision order, provider, native OpenAI marketing name은 모두 그대로 둡니다.
Expand Down
21 changes: 21 additions & 0 deletions docs-site/src/content/docs/ru/guides/codex-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,27 @@ Codex показывает модели из каталога на диске (`
по шкале Codex `low | medium | high | xhigh | max | ultra`; неподдерживаемые значения
сопоставляются или ограничиваются перед запросом к вышестоящему провайдеру.

### Локальные инструменты для маршрутизируемых моделей

Маршрутизируемые записи, которые не являются нативными, используют
`tool_mode: "code_mode_only"`. Благодаря этому Codex предоставляет официальный entrypoint `exec`
и вложенные MCP-инструменты, включая Browser и Computer Use, а opencodex маршрутизирует только
обычный function call модели. Выполнение инструментов, разрешения и подтверждения остаются в
Codex; opencodex не реализует второй executor для браузера или управления рабочим столом.

Для key-auth Responses provider'ов, которые не принимают custom-tool grammar `exec` от Codex,
opencodex кодирует объявление и историю как function tool для upstream, а затем восстанавливает
потоковый lifecycle function call в `custom_tool_call` до передачи в Codex. Нативная forward-
маршрутизация OpenAI и поддерживаемый custom tool `apply_patch` остаются без изменений.

Выбранный provider должен поддерживать function/tool calling. Text-only provider без tool calls
не может использовать `exec`, Browser или Computer Use. Нативные записи OpenAI сохраняют свой
upstream tool mode без изменений.

После того как `ocx sync` изменит эти metadata, перезапустите Codex App и откройте новую задачу.
Существующие процессы app-server и задачи могут сохранять catalog и tool plan, загруженные при
запуске.

### Пользовательские display-name моделей

У custom-модели может быть человекочитаемый **display name**, который переопределяет метку в
Expand Down
15 changes: 15 additions & 0 deletions docs-site/src/content/docs/zh-cn/guides/codex-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,21 @@ Codex 显示的模型来自一个磁盘上的 catalog(默认是 `$CODEX_HOME/o
使用 Codex 的 `low | medium | high | xhigh | max | ultra` 档位;上游不支持的值会在发送请求前完成
映射或下调。

### 路由模型的本地工具

非原生的路由 catalog 条目使用 `tool_mode: "code_mode_only"`。这样 Codex 可以公开其官方 `exec` 入口以及
嵌套的 MCP 工具,包括 Browser 和 Computer Use;opencodex 只负责路由模型发起的普通 function call。
工具执行、权限和确认仍由 Codex 在本地处理;opencodex 不会实现另一套浏览器或桌面控制 executor。

对于不接受 Codex `exec` custom-tool grammar 的 key-auth Responses provider,opencodex 会把该工具声明及其
历史记录编码成上游 function tool,再在 Codex 收到结果前,把流式 function-call lifecycle 还原成
`custom_tool_call`。原生 OpenAI forward routing 和已支持的 `apply_patch` custom tool 保持不变。

所选 provider 必须支持 function/tool calling。不支持 tool call 的 text-only provider 无法使用 `exec`、
Browser 或 Computer Use。原生 OpenAI 条目会保持其上游 tool mode 不变。

`ocx sync` 修改这些 metadata 后,请重启 Codex App 并打开一个新任务。现有 app-server process 和任务可能仍会
保留它们在启动时加载的 catalog 和 tool plan。

### 自定义模型显示名

Expand Down
3 changes: 3 additions & 0 deletions docs-site/src/content/docs/zh-cn/guides/providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,9 @@ Cline IDE/CLI 中提供,不能通过 API 使用;`minimax/minimax-m2.5` 是

大多数使用带 bearer 密钥的 `openai-chat` adapter;少数仅暴露 Anthropic 兼容端点的提供商(例如 **Xiaomi MiMo**)使用 `anthropic` adapter(`x-api-key`)。
火山方舟 Agent Plan 通过 `openai-responses` adapter 使用原生 Responses 端点。
内置 DeepSeek preset 同样会让 `deepseek-v4-flash` 使用原生 Responses 端点,并保留上游 SSE
流式输出。如果该模型已经完成全部输出项却缺少最终 Responses 事件,opencodex 会应用模型级
5 秒宽限修复;不完整或格式异常的流会以 incomplete 结束,不会被误报为成功。

> **三条火山方舟计费线路:**`volcengine` 是按量付费方舟 API,`volcengine-coding-plan`
> 消耗 Coding Plan 额度,`volcengine-agent-plan` 消耗 Agent Plan 额度。密钥与端点需要属于
Expand Down
Loading
Loading