fix: sanitize chat payloads and provider precedence
This commit is contained in:
parent
a20d373945
commit
358dab52ce
8 changed files with 91 additions and 10 deletions
|
|
@ -95,6 +95,47 @@ class TestBuildApiKwargsOpenRouter:
|
|||
assert "instructions" not in kwargs
|
||||
assert "store" not in kwargs
|
||||
|
||||
def test_strips_codex_only_tool_call_fields_from_chat_messages(self, monkeypatch):
|
||||
agent = _make_agent(monkeypatch, "openrouter")
|
||||
messages = [
|
||||
{"role": "user", "content": "hi"},
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": "Checking now.",
|
||||
"codex_reasoning_items": [
|
||||
{"type": "reasoning", "id": "rs_1", "encrypted_content": "blob"},
|
||||
],
|
||||
"tool_calls": [
|
||||
{
|
||||
"id": "call_123",
|
||||
"call_id": "call_123",
|
||||
"response_item_id": "fc_123",
|
||||
"type": "function",
|
||||
"function": {"name": "terminal", "arguments": "{\"command\":\"pwd\"}"},
|
||||
"extra_content": {"thought_signature": "opaque"},
|
||||
}
|
||||
],
|
||||
},
|
||||
{"role": "tool", "tool_call_id": "call_123", "content": "/tmp"},
|
||||
]
|
||||
|
||||
kwargs = agent._build_api_kwargs(messages)
|
||||
|
||||
assistant_msg = kwargs["messages"][1]
|
||||
tool_call = assistant_msg["tool_calls"][0]
|
||||
|
||||
assert "codex_reasoning_items" not in assistant_msg
|
||||
assert tool_call["id"] == "call_123"
|
||||
assert tool_call["function"]["name"] == "terminal"
|
||||
assert tool_call["extra_content"] == {"thought_signature": "opaque"}
|
||||
assert "call_id" not in tool_call
|
||||
assert "response_item_id" not in tool_call
|
||||
|
||||
# Original stored history must remain unchanged for Responses replay mode.
|
||||
assert messages[1]["tool_calls"][0]["call_id"] == "call_123"
|
||||
assert messages[1]["tool_calls"][0]["response_item_id"] == "fc_123"
|
||||
assert "codex_reasoning_items" in messages[1]
|
||||
|
||||
|
||||
class TestBuildApiKwargsNousPortal:
|
||||
def test_includes_nous_product_tags(self, monkeypatch):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue