From 9c91a96b8ed27bffcb90cbc946fc3062a43eeed7 Mon Sep 17 00:00:00 2001 From: octo-patch <266937838+octo-patch@users.noreply.github.com> Date: Fri, 16 Oct 2026 11:02:02 +0800 Subject: [PATCH 1/2] Forward video content in Responses bridge --- skillclaw/protocols/openai_responses.py | 6 ++++++ tests/test_responses_codex.py | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/skillclaw/protocols/openai_responses.py b/skillclaw/protocols/openai_responses.py index 3691333..b628a61 100644 --- a/skillclaw/protocols/openai_responses.py +++ b/skillclaw/protocols/openai_responses.py @@ -48,6 +48,12 @@ def content_to_openai_chat_content(content: Any) -> str | list[dict[str, Any]]: image_url = image_url.get("url") if isinstance(image_url, str) and image_url: parts.append({"type": "image_url", "image_url": {"url": image_url}}) + elif item_type in {"input_video", "video_url"}: + video_url = item.get("video_url") or item.get("url") + if isinstance(video_url, dict): + video_url = video_url.get("url") + if isinstance(video_url, str) and video_url: + parts.append({"type": "video_url", "video_url": {"url": video_url}}) if not parts: return "" if all(part.get("type") == "text" for part in parts): diff --git a/tests/test_responses_codex.py b/tests/test_responses_codex.py index 47a12aa..9824c12 100644 --- a/tests/test_responses_codex.py +++ b/tests/test_responses_codex.py @@ -120,6 +120,11 @@ def test_codex_responses_multimodal_image_input_converts_to_openai_chat_content_ } ] +def test_codex_responses_minimax_video_input_converts_to_openai_chat_content_parts(): + body = {"model":"MiniMax-M3","input":[{"type":"message","role":"user","content":[{"type":"input_video","video_url":"https://example.test/video.mp4"}]}]} + converted = openai_responses.to_openai_body(body, "fallback-model") + assert converted["messages"][0]["content"] == [{"type":"video_url","video_url":{"url":"https://example.test/video.mp4"}}] + def test_codex_responses_skill_function_call_and_output_convert_to_chat_tool_roundtrip(): body = { From 87eb7eaafa65008f544a4808504f201b12975255 Mon Sep 17 00:00:00 2001 From: octo-patch <266937838+octo-patch@users.noreply.github.com> Date: Fri, 30 Oct 2026 07:26:09 +0800 Subject: [PATCH 2/2] style: format video input regression test --- tests/test_responses_codex.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/test_responses_codex.py b/tests/test_responses_codex.py index 9824c12..ee8bbe6 100644 --- a/tests/test_responses_codex.py +++ b/tests/test_responses_codex.py @@ -120,10 +120,22 @@ def test_codex_responses_multimodal_image_input_converts_to_openai_chat_content_ } ] + def test_codex_responses_minimax_video_input_converts_to_openai_chat_content_parts(): - body = {"model":"MiniMax-M3","input":[{"type":"message","role":"user","content":[{"type":"input_video","video_url":"https://example.test/video.mp4"}]}]} + body = { + "model": "MiniMax-M3", + "input": [ + { + "type": "message", + "role": "user", + "content": [{"type": "input_video", "video_url": "https://example.test/video.mp4"}], + } + ], + } converted = openai_responses.to_openai_body(body, "fallback-model") - assert converted["messages"][0]["content"] == [{"type":"video_url","video_url":{"url":"https://example.test/video.mp4"}}] + assert converted["messages"][0]["content"] == [ + {"type": "video_url", "video_url": {"url": "https://example.test/video.mp4"}} + ] def test_codex_responses_skill_function_call_and_output_convert_to_chat_tool_roundtrip():