web search resolution

This commit is contained in:
ashwinnathan-openai
2026-03-18 17:04:28 -07:00
parent 4b9f85e15b
commit ae038b9b88
2 changed files with 39 additions and 1 deletions

View File

@@ -1631,6 +1631,41 @@ fn resolve_tool_feature_overrides_profile_web_search_config_only_inherits_disabl
);
}
#[test]
fn resolve_tool_feature_overrides_web_search_config_only_defaults_to_enabled_when_both_layers_present() {
let cfg = ConfigToml {
tools: Some(ToolsToml {
web_search: Some(WebSearchFeatureToml {
enabled: None,
config: WebSearchToolConfig::default(),
}),
..Default::default()
}),
..Default::default()
};
let profile = ConfigProfile {
tools: Some(ToolsToml {
web_search: Some(WebSearchFeatureToml {
enabled: None,
config: WebSearchToolConfig {
context_size: Some(WebSearchContextSize::Low),
..Default::default()
},
}),
..Default::default()
}),
..Default::default()
};
assert_eq!(
resolve_tool_feature_overrides(&cfg, &profile),
ToolFeatureOverrides {
web_search: Some(true),
..Default::default()
}
);
}
#[test]
fn web_search_mode_for_turn_uses_preference_for_read_only() {
let web_search_mode = Constrained::allow_any(WebSearchMode::Cached);

View File

@@ -2231,7 +2231,10 @@ fn resolve_tool_feature_overrides(
base.and_then(|tools| tools.web_search.as_ref()),
) {
(Some(profile_web_search), Some(base_web_search)) => {
profile_web_search.enabled.or(base_web_search.enabled)
profile_web_search
.enabled
.or(base_web_search.enabled)
.or(Some(true))
}
(Some(profile_web_search), None) => Some(profile_web_search.is_enabled()),
(None, Some(base_web_search)) => Some(base_web_search.is_enabled()),