diff --git a/crates/protocols/src/responses.rs b/crates/protocols/src/responses.rs index eab66f066d..19ed26ca55 100644 --- a/crates/protocols/src/responses.rs +++ b/crates/protocols/src/responses.rs @@ -534,6 +534,10 @@ pub enum IncludeField { MessageOutputTextLogprobs, #[serde(rename = "reasoning.encrypted_content")] ReasoningEncryptedContent, + #[serde(rename = "web_search_call.action.sources")] + WebSearchCallActionSources, + #[serde(rename = "web_search_call.results")] + WebSearchCallResults, } // ============================================================================ @@ -1686,4 +1690,27 @@ mod tests { }) ); } + + #[test] + fn test_include_field_web_search_call_variants_round_trip() { + let fields: Vec = serde_json::from_value(json!([ + "web_search_call.action.sources", + "web_search_call.results", + ])) + .expect("include fields should deserialize"); + + assert_eq!( + fields, + vec![ + IncludeField::WebSearchCallActionSources, + IncludeField::WebSearchCallResults, + ] + ); + + let serialized = serde_json::to_value(&fields).expect("include fields should serialize"); + assert_eq!( + serialized, + json!(["web_search_call.action.sources", "web_search_call.results"]) + ); + } }