From 573b640f916905fe6322fa81024b16a708ce4890 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 19 May 2026 18:38:00 +0400 Subject: [PATCH] fix CC: map system->user, content string->array, strip tools, fix threadId UUID --- codex-launcher_2.1.1_all.deb | Bin 22380 -> 22554 bytes src/translate-proxy.py | 35 +++++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/codex-launcher_2.1.1_all.deb b/codex-launcher_2.1.1_all.deb index 3e1c353d036a0fd45ce8854249d0ae0a54adfb51..6ee6e5146f6e30267d35913c37efa244bb3a7d8e 100644 GIT binary patch delta 21513 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 A8~^|S delta 21338 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 diff --git a/src/translate-proxy.py b/src/translate-proxy.py index ed492f7..34489dc 100755 --- a/src/translate-proxy.py +++ b/src/translate-proxy.py @@ -719,11 +719,34 @@ class Handler(http.server.BaseHTTPRequestHandler): def _handle_command_code(self, body, model, stream): input_data = body.get("input", "") + raw_msgs = oa_input_to_messages(input_data) + instructions = body.get("instructions", "").strip() - messages = cc_input_to_messages(input_data) + cc_msgs = [] if instructions: - sys_msg = {"role": "system", "content": instructions} - messages.insert(0, sys_msg) + cc_msgs.append({"role": "user", "content": [{"type": "text", "text": instructions}]}) + for m in raw_msgs: + role = m.get("role", "user") + if role == "system": + role = "user" + content = m.get("content", "") + if isinstance(content, str): + content = [{"type": "text", "text": content}] + elif content is None: + content = [{"type": "text", "text": ""}] + cc_msgs.append({"role": role, "content": content}) + for tc in m.get("tool_calls") or []: + fn = tc.get("function", {}) + cc_msgs.append({"role": "assistant", "content": [{"type": "text", "text": ""}], + "tool_calls": [{"id": tc.get("id", uid("tc")), "type": "function", + "function": {"name": fn.get("name", ""), "arguments": fn.get("arguments", "{}")}}]}) + if m.get("tool_call_id"): + cc_msgs.append({"role": "tool", "tool_call_id": m["tool_call_id"], + "content": [{"type": "text", "text": m.get("content", "")}]}) + + thread_id = body.get("request_id") or body.get("id") or uid("thread") + if len(thread_id) < 32: + thread_id = uid("thread") cc_body = { "config": _cc_config(), @@ -734,11 +757,11 @@ class Handler(http.server.BaseHTTPRequestHandler): "stream": True, "max_tokens": body.get("max_output_tokens", 64000), "temperature": body.get("temperature", 0.3), - "messages": messages, + "messages": cc_msgs, "model": model, - "tools": cc_convert_tools(body.get("tools")) or [], + "tools": [], }, - "threadId": body.get("request_id") or uid("thread"), + "threadId": thread_id, } target = upstream_target(TARGET_URL, "/alpha/generate")