@@ -207,6 +207,16 @@ func NewCodexExecutor(cfg *config.Config) *CodexExecutor { return &CodexExecutor
207207
208208func (e * CodexExecutor ) Identifier () string { return "codex" }
209209
210+ func translateCodexRequestPair (from , to sdktranslator.Format , model string , originalPayload , payload []byte , stream bool ) ([]byte , []byte ) {
211+ if bytes .Equal (originalPayload , payload ) {
212+ body := sdktranslator .TranslateRequest (from , to , model , payload , stream )
213+ return body , body
214+ }
215+ originalTranslated := sdktranslator .TranslateRequest (from , to , model , originalPayload , stream )
216+ body := sdktranslator .TranslateRequest (from , to , model , payload , stream )
217+ return originalTranslated , body
218+ }
219+
210220// PrepareRequest injects Codex credentials into the outgoing HTTP request.
211221func (e * CodexExecutor ) PrepareRequest (req * http.Request , auth * cliproxyauth.Auth ) error {
212222 if req == nil {
@@ -264,8 +274,7 @@ func (e *CodexExecutor) Execute(ctx context.Context, auth *cliproxyauth.Auth, re
264274 originalPayloadSource = opts .OriginalRequest
265275 }
266276 originalPayload := originalPayloadSource
267- originalTranslated := sdktranslator .TranslateRequest (from , to , baseModel , originalPayload , false )
268- body := sdktranslator .TranslateRequest (from , to , baseModel , req .Payload , false )
277+ originalTranslated , body := translateCodexRequestPair (from , to , baseModel , originalPayload , req .Payload , false )
269278
270279 body , err = thinking .ApplyThinking (body , req .Model , from .String (), to .String (), e .Identifier ())
271280 if err != nil {
@@ -427,8 +436,7 @@ func (e *CodexExecutor) executeCompact(ctx context.Context, auth *cliproxyauth.A
427436 originalPayloadSource = opts .OriginalRequest
428437 }
429438 originalPayload := originalPayloadSource
430- originalTranslated := sdktranslator .TranslateRequest (from , to , baseModel , originalPayload , false )
431- body := sdktranslator .TranslateRequest (from , to , baseModel , req .Payload , false )
439+ originalTranslated , body := translateCodexRequestPair (from , to , baseModel , originalPayload , req .Payload , false )
432440
433441 body , err = thinking .ApplyThinking (body , req .Model , from .String (), to .String (), e .Identifier ())
434442 if err != nil {
@@ -528,8 +536,7 @@ func (e *CodexExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth.Au
528536 originalPayloadSource = opts .OriginalRequest
529537 }
530538 originalPayload := originalPayloadSource
531- originalTranslated := sdktranslator .TranslateRequest (from , to , baseModel , originalPayload , true )
532- body := sdktranslator .TranslateRequest (from , to , baseModel , req .Payload , true )
539+ originalTranslated , body := translateCodexRequestPair (from , to , baseModel , originalPayload , req .Payload , true )
533540
534541 body , err = thinking .ApplyThinking (body , req .Model , from .String (), to .String (), e .Identifier ())
535542 if err != nil {
0 commit comments