@@ -847,7 +847,10 @@ impl Config {
847847 hook_servers : parse_hook_servers_env ( "MCP_HOOK_SERVERS" ) ,
848848 hints_enabled : parse_env ( "BUZZ_AGENT_NO_HINTS" , 0u8 ) ? == 0 ,
849849 thinking_effort : parse_thinking_effort ( env ( "BUZZ_AGENT_THINKING_EFFORT" ) . as_deref ( ) ) ?,
850- service_tier : parse_service_tier ( env ( "BUZZ_AGENT_SERVICE_TIER" ) . as_deref ( ) ) ?,
850+ service_tier : parse_service_tier_for_provider (
851+ provider,
852+ env ( "BUZZ_AGENT_SERVICE_TIER" ) . as_deref ( ) ,
853+ ) ?,
851854 } ;
852855 cfg. validate ( ) ?;
853856 Ok ( cfg)
@@ -992,6 +995,17 @@ pub fn parse_service_tier(raw: Option<&str>) -> Result<Option<OpenAiServiceTier>
992995 }
993996}
994997
998+ fn parse_service_tier_for_provider (
999+ provider : Provider ,
1000+ raw : Option < & str > ,
1001+ ) -> Result < Option < OpenAiServiceTier > , String > {
1002+ if matches ! ( provider, Provider :: OpenAi ) {
1003+ parse_service_tier ( raw)
1004+ } else {
1005+ Ok ( None )
1006+ }
1007+ }
1008+
9951009fn env ( k : & str ) -> Option < String > {
9961010 std:: env:: var ( k) . ok ( )
9971011}
@@ -1401,6 +1415,14 @@ mod tests {
14011415 assert_eq ! ( parse_service_tier( Some ( " " ) ) . unwrap( ) , None ) ;
14021416 }
14031417
1418+ #[ test]
1419+ fn parse_service_tier_is_ignored_for_non_openai_providers ( ) {
1420+ assert_eq ! (
1421+ parse_service_tier_for_provider( Provider :: Anthropic , Some ( "invalid" ) ) . unwrap( ) ,
1422+ None
1423+ ) ;
1424+ }
1425+
14041426 #[ test]
14051427 fn parse_service_tier_rejects_unknown_value ( ) {
14061428 let err = parse_service_tier ( Some ( "economy" ) ) . unwrap_err ( ) ;
0 commit comments