Repository navigation
v0.1.10
What's Changed
Full OpenAI Codex CLI support across all models: multi-agent namespaces, custom programmatic tools (exec), tool call results, and reasoning efforts are fully functional.
Bug Fixes
- Fix missing Responses stream item lifecycle completion events (output_text.done, content_part.done, function_call_arguments.done, output_item.done) prior to response.completed, resolving dropped assistant output and tool calls in OpenAI Codex CLI and strict Responses clients.
- Fix handling of in-history messages with role: "system" across protocol adapters without rejecting them as unsupported roles or forwarding invalid turn roles to upstream providers that require alternating user/assistant turns.
- Fix handling of multi-part content arrays in function_call_output.output under /v1/responses decoding.
- Fix upstream HTTP >= 400 error propagation in streaming and non-streaming requests by reading and extracting the upstream error payload instead of discarding it with generic fallback errors.
- Add two-way Responses tool namespace and additional_tools translation: merge dynamic declarations from input items (type: "additional_tools"), unroll client-side grouping tools (type: "namespace") into qualified wire names for upstream models, and restore original tool names and namespaces across non-streaming output and streaming SSE events for OpenAI Codex CLI and multi-agent harnesses.
- Add Codex custom tool normalization and hosted tool dropping: rewrite generic custom tools (
type: "custom", e.g.exec) into function tools with default object schemas, and drop client-only/hosted tools (apply_patch,web_search,web_search_preview,tool_search,image_generation) when routing to Chat Completions or Messages endpoints, resolving Codex CLI failures on models likespace-bunny-free. - Add bidirectional support for
custom_tool_callandcustom_tool_call_outputconversation items and outbound custom tool events: translate inbound custom tool calls and results across Chat Completions and Messages protocols, unwrap arguments into clean raw input, and restorecustom_tool_callandresponse.custom_tool_call_input.doneon outbound non-streaming and streaming responses, resolving Codex tool dispatch aborts on programmatic tools likeexec. - Remove local reasoning effort validation across request translators: allow client-declared reasoning effort levels (e.g.
xhigh,max, and unlisted levels) to pass through transparently to upstream endpoints without local gatekeeping inchatcompletions,responses, andmessagesadapters. - Normalize tools for non-GPT native Responses models: unroll namespaces, convert custom tools (
exec) into function tools, and sanitizeweb_searchdefinitions when targeting non-GPT Responses endpoints (e.g.muse-spark,grok), while preserving transparent passthrough for native GPT models (e.g.gpt-6-luna). - Restore custom tool calls across native Responses-to-Responses streaming and non-streaming adapters, ensure historical function_call arguments default to valid JSON via
shared.DefaultArgsto resolve Muse Spark errors, drop compaction input items to fix Grok compaction blob decode failures, and expandUnwrapCustomToolInputto unwrap arguments, code, cmd, and command fields. - Drop historical
reasoninginput items for non-GPT Responses upstreams: resolve Grok HTTP 400 "Could not decode the compaction blob" decryption errors on multi-turn conversations caused by pooled account credential mismatches on encrypted reasoning blobs.
Upgrade Notes
- Replace the old plugin binary with the new release binary.
- Restart CLIProxyAPI after replacing the plugin.
- Hard-refresh Management Center if the plugin page looks stale.
Full Changelog: v0.1.9...v0.1.10