mirror of
https://github.com/openai/codex.git
synced 2026-11-07 08:34:29 +00:00
Require data URLs for code-mode image output (#33659)
## What changed - Accept image output from `image()` and `generatedImage()` only when its URL uses the `data:` scheme. - Preserve the dedicated error for remote HTTP URLs and report other malformed or unsupported image URLs as invalid image output. ## Testing - Add service-level coverage for rejecting invalid output from both image helpers. - Add an end-to-end code-mode test that verifies the tool call fails instead of returning an invalid image item. GitOrigin-RevId: beaf8c8830574150e8166b6ff5daf7f6dc4dc0a1
This commit is contained in:
1 parent
c4ce0493dc
commit
5331d20f6e
3 files changed
+86
-2
No files matched your search
@@ -2983,6 +2983,49 @@ async fn code_mode_image_helper_rejects_remote_url() -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn code_mode_image_helper_rejects_invalid_image_output() -> Result<()> {
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
let server = responses::start_mock_server().await;
|
||||
let (_test, second_mock) = run_code_mode_turn(
|
||||
&server,
|
||||
"use exec to return an image",
|
||||
r#"
|
||||
const s = "Error executing tool exec: Expected at least one message to convert to CallToolResult";
|
||||
image(s.trim(), "original");
|
||||
"#,
|
||||
)
|
||||
.await?;
|
||||
|
||||
let req = second_mock.single_request();
|
||||
let items = custom_tool_output_items(&req, "call-1");
|
||||
let (_, success) = custom_tool_output_body_and_success(&req, "call-1");
|
||||
assert_ne!(
|
||||
success,
|
||||
Some(true),
|
||||
"code_mode invalid image output unexpectedly succeeded"
|
||||
);
|
||||
assert_eq!(items.len(), 2);
|
||||
assert_regex_match(
|
||||
concat!(
|
||||
r"(?s)\A",
|
||||
r"Script failed\nWall time \d+\.\d seconds\nOutput:\n\z"
|
||||
),
|
||||
text_item(&items, /*index*/ 0),
|
||||
);
|
||||
assert_eq!(
|
||||
text_item(&items, /*index*/ 1),
|
||||
concat!(
|
||||
"Script error:\n",
|
||||
"Tool call failed: invalid image output. ",
|
||||
"Pass a base64 data URI instead"
|
||||
)
|
||||
);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||
async fn code_mode_can_use_view_image_result_with_image_helper() -> Result<()> {
|
||||
skip_if_no_network!(Ok(()));
|
||||
|
||||
Reference in new issue
Block a user