diff --git a/codex-rs/app-server/tests/suite/v2/model_provider_capabilities_read.rs b/codex-rs/app-server/tests/suite/v2/model_provider_capabilities_read.rs index 6dcb9ac4e..529f23879 100644 --- a/codex-rs/app-server/tests/suite/v2/model_provider_capabilities_read.rs +++ b/codex-rs/app-server/tests/suite/v2/model_provider_capabilities_read.rs @@ -60,7 +60,7 @@ async fn read_amazon_bedrock_provider_capabilities() -> Result<()> { let received: ModelProviderCapabilitiesReadResponse = to_response(response)?; let expected = ModelProviderCapabilitiesReadResponse { - namespace_tools: false, + namespace_tools: true, image_generation: false, web_search: false, }; diff --git a/codex-rs/core/src/tools/spec_plan_tests.rs b/codex-rs/core/src/tools/spec_plan_tests.rs index 2eb6eea5d..a2f12d1c0 100644 --- a/codex-rs/core/src/tools/spec_plan_tests.rs +++ b/codex-rs/core/src/tools/spec_plan_tests.rs @@ -526,7 +526,7 @@ async fn mcp_and_tool_search_follow_direct_and_deferred_tool_exposure() { "read_mcp_resource", ]); - let missing_namespace_capability = probe_with( + let bedrock_namespace_capability = probe_with( |turn| { turn.model_info.supports_search_tool = true; use_bedrock_provider(turn); @@ -537,7 +537,7 @@ async fn mcp_and_tool_search_follow_direct_and_deferred_tool_exposure() { }, ) .await; - missing_namespace_capability.assert_visible_lacks(&["tool_search"]); + bedrock_namespace_capability.assert_visible_contains(&["tool_search"]); let enabled = probe_with( |turn| { @@ -890,7 +890,7 @@ async fn multi_agent_v2_can_use_configured_tool_namespace() { } #[tokio::test] -async fn multi_agent_v2_namespace_is_ignored_without_provider_namespace_support() { +async fn multi_agent_v2_namespace_is_supported_by_bedrock_provider() { let plan = probe(|turn| { set_feature(turn, Feature::MultiAgentV2, /*enabled*/ true); update_config(turn, |config| { @@ -900,15 +900,15 @@ async fn multi_agent_v2_namespace_is_ignored_without_provider_namespace_support( }) .await; - plan.assert_visible_contains(&["spawn_agent", "send_message", "list_agents"]); - plan.assert_visible_lacks(&["agents"]); - assert!( - plan.registered_names - .contains(&ToolName::plain("spawn_agent").to_string()) - ); + plan.assert_visible_contains(&["agents"]); + plan.assert_visible_lacks(&["spawn_agent", "send_message", "list_agents"]); assert!( !plan .registered_names + .contains(&ToolName::plain("spawn_agent").to_string()) + ); + assert!( + plan.registered_names .contains(&ToolName::namespaced("agents", "spawn_agent").to_string()) ); } diff --git a/codex-rs/model-provider/src/amazon_bedrock/mod.rs b/codex-rs/model-provider/src/amazon_bedrock/mod.rs index 3940f73fc..4d6a9afb3 100644 --- a/codex-rs/model-provider/src/amazon_bedrock/mod.rs +++ b/codex-rs/model-provider/src/amazon_bedrock/mod.rs @@ -57,7 +57,7 @@ impl ModelProvider for AmazonBedrockModelProvider { fn capabilities(&self) -> ProviderCapabilities { ProviderCapabilities { - namespace_tools: false, + namespace_tools: true, image_generation: false, web_search: false, } @@ -131,7 +131,7 @@ mod tests { } #[test] - fn capabilities_disable_unsupported_launch_features() { + fn capabilities_disable_unsupported_hosted_tools() { let provider = AmazonBedrockModelProvider::new( ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None), ); @@ -139,7 +139,7 @@ mod tests { assert_eq!( provider.capabilities(), ProviderCapabilities { - namespace_tools: false, + namespace_tools: true, image_generation: false, web_search: false, }