diff --git a/codex-rs/app-server-protocol/src/protocol/v2.rs b/codex-rs/app-server-protocol/src/protocol/v2.rs index d652bb5372..d10d80a50a 100644 --- a/codex-rs/app-server-protocol/src/protocol/v2.rs +++ b/codex-rs/app-server-protocol/src/protocol/v2.rs @@ -25,15 +25,13 @@ use codex_protocol::config_types::ForcedLoginMethod; use codex_protocol::config_types::ModeKind; use codex_protocol::config_types::Personality; use codex_protocol::config_types::ReasoningSummary; +use codex_protocol::config_types::SERVICE_TIER_FLEX; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::config_types::SandboxMode as CoreSandboxMode; use codex_protocol::config_types::ServiceTier as CoreServiceTier; use codex_protocol::config_types::Verbosity; use codex_protocol::config_types::WebSearchMode; use codex_protocol::config_types::WebSearchToolConfig; -use codex_protocol::config_types::flex_service_tier; -use codex_protocol::config_types::is_flex_service_tier; -use codex_protocol::config_types::is_priority_service_tier; -use codex_protocol::config_types::priority_service_tier; use codex_protocol::items::AgentMessageContent as CoreAgentMessageContent; use codex_protocol::items::TurnItem as CoreTurnItem; use codex_protocol::mcp::CallToolResult as CoreMcpCallToolResult; @@ -133,26 +131,26 @@ pub enum ServiceTier { Flex, } -pub fn service_tier_to_core(service_tier: ServiceTier) -> CoreServiceTier { - match service_tier { - ServiceTier::Fast => priority_service_tier(), - ServiceTier::Flex => flex_service_tier(), - } -} - -pub fn service_tier_from_core(service_tier: &CoreServiceTier) -> Option { - if is_priority_service_tier(service_tier) { - Some(ServiceTier::Fast) - } else if is_flex_service_tier(service_tier) { - Some(ServiceTier::Flex) - } else { - None - } -} - impl From for CoreServiceTier { fn from(value: ServiceTier) -> Self { - service_tier_to_core(value) + match value { + ServiceTier::Fast => SERVICE_TIER_PRIORITY.into(), + ServiceTier::Flex => SERVICE_TIER_FLEX.into(), + } + } +} + +impl TryFrom<&CoreServiceTier> for ServiceTier { + type Error = (); + + fn try_from(value: &CoreServiceTier) -> Result { + if value.as_ref() == SERVICE_TIER_PRIORITY { + Ok(ServiceTier::Fast) + } else if value.as_ref() == SERVICE_TIER_FLEX { + Ok(ServiceTier::Flex) + } else { + Err(()) + } } } diff --git a/codex-rs/app-server/src/codex_message_processor.rs b/codex-rs/app-server/src/codex_message_processor.rs index 5bc7c30e7c..dbf72ae685 100644 --- a/codex-rs/app-server/src/codex_message_processor.rs +++ b/codex-rs/app-server/src/codex_message_processor.rs @@ -241,8 +241,6 @@ use codex_app_server_protocol::WindowsSandboxSetupMode; use codex_app_server_protocol::WindowsSandboxSetupStartParams; use codex_app_server_protocol::WindowsSandboxSetupStartResponse; use codex_app_server_protocol::build_turns_from_rollout_items; -use codex_app_server_protocol::service_tier_from_core; -use codex_app_server_protocol::service_tier_to_core; use codex_arg0::Arg0DispatchPaths; use codex_backend_client::AddCreditsNudgeCreditType as BackendAddCreditsNudgeCreditType; use codex_backend_client::Client as BackendClient; @@ -342,6 +340,7 @@ use codex_protocol::ThreadId; use codex_protocol::config_types::CollaborationMode; use codex_protocol::config_types::ForcedLoginMethod; use codex_protocol::config_types::Personality; +use codex_protocol::config_types::ServiceTier as CoreServiceTier; use codex_protocol::config_types::TrustLevel; use codex_protocol::config_types::WindowsSandboxLevel; use codex_protocol::dynamic_tools::DynamicToolSpec as CoreDynamicToolSpec; @@ -2925,7 +2924,7 @@ impl CodexMessageProcessor { service_tier: config_snapshot .service_tier .as_ref() - .and_then(service_tier_from_core), + .and_then(|service_tier| ServiceTier::try_from(service_tier).ok()), cwd: config_snapshot.cwd, instruction_sources, approval_policy: config_snapshot.approval_policy.into(), @@ -3027,8 +3026,8 @@ impl CodexMessageProcessor { fn resolve_service_tier_override( service_tier: Option>, - ) -> Option> { - service_tier.map(|service_tier| service_tier.map(service_tier_to_core)) + ) -> Option> { + service_tier.map(|service_tier| service_tier.map(Into::into)) } async fn thread_archive(&self, request_id: ConnectionRequestId, params: ThreadArchiveParams) { @@ -4514,7 +4513,7 @@ impl CodexMessageProcessor { service_tier: session_configured .service_tier .as_ref() - .and_then(service_tier_from_core), + .and_then(|service_tier| ServiceTier::try_from(service_tier).ok()), cwd: session_configured.cwd, instruction_sources, approval_policy: session_configured.approval_policy.into(), @@ -5152,7 +5151,7 @@ impl CodexMessageProcessor { service_tier: session_configured .service_tier .as_ref() - .and_then(service_tier_from_core), + .and_then(|service_tier| ServiceTier::try_from(service_tier).ok()), cwd: session_configured.cwd, instruction_sources, approval_policy: session_configured.approval_policy.into(), @@ -8510,7 +8509,9 @@ async fn handle_pending_thread_resume_request( thread, model, model_provider: model_provider_id, - service_tier: service_tier.as_ref().and_then(service_tier_from_core), + service_tier: service_tier + .as_ref() + .and_then(|service_tier| ServiceTier::try_from(service_tier).ok()), cwd, instruction_sources, approval_policy: approval_policy.into(), @@ -8680,13 +8681,13 @@ fn collect_resume_override_mismatches( )); } if let Some(requested_service_tier) = request.service_tier.as_ref() - && requested_service_tier.map(service_tier_to_core).as_ref() + && requested_service_tier.map(CoreServiceTier::from).as_ref() != config_snapshot.service_tier.as_ref() { let active_service_tier = config_snapshot .service_tier .as_ref() - .and_then(service_tier_from_core); + .and_then(|service_tier| ServiceTier::try_from(service_tier).ok()); mismatch_details.push(format!( "service_tier requested={requested_service_tier:?} active={active_service_tier:?}" )); @@ -10070,7 +10071,7 @@ mod tests { use codex_model_provider_info::ModelProviderInfo; use codex_model_provider_info::WireApi; use codex_protocol::ThreadId; - use codex_protocol::config_types::flex_service_tier; + use codex_protocol::config_types::SERVICE_TIER_FLEX; use codex_protocol::openai_models::ReasoningEffort; use codex_protocol::permissions::FileSystemAccessMode; use codex_protocol::permissions::FileSystemPath; @@ -10567,7 +10568,7 @@ mod tests { let config_snapshot = ThreadConfigSnapshot { model: "gpt-5".to_string(), model_provider_id: "openai".to_string(), - service_tier: Some(flex_service_tier()), + service_tier: Some(SERVICE_TIER_FLEX.into()), approval_policy: codex_protocol::protocol::AskForApproval::OnRequest, approvals_reviewer: codex_protocol::config_types::ApprovalsReviewer::User, permission_profile: codex_protocol::models::PermissionProfile::Disabled, diff --git a/codex-rs/app-server/src/models.rs b/codex-rs/app-server/src/models.rs index 13f8ece9ce..4095893b20 100644 --- a/codex-rs/app-server/src/models.rs +++ b/codex-rs/app-server/src/models.rs @@ -5,7 +5,7 @@ use codex_app_server_protocol::ModelUpgradeInfo; use codex_app_server_protocol::ReasoningEffortOption; use codex_core::ThreadManager; use codex_models_manager::manager::RefreshStrategy; -use codex_protocol::config_types::is_priority_service_tier; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::openai_models::ModelPreset; use codex_protocol::openai_models::ModelServiceTier as CoreModelServiceTier; use codex_protocol::openai_models::ReasoningEffortPreset; @@ -53,7 +53,9 @@ fn model_from_preset(preset: ModelPreset) -> Model { fn legacy_additional_speed_tiers(service_tiers: &[CoreModelServiceTier]) -> Vec { service_tiers .iter() - .filter_map(|tier| is_priority_service_tier(&tier.id).then_some("fast".to_string())) + .filter_map(|tier| { + (tier.id.as_ref() == SERVICE_TIER_PRIORITY).then_some("fast".to_string()) + }) .collect() } diff --git a/codex-rs/app-server/tests/suite/v2/model_list.rs b/codex-rs/app-server/tests/suite/v2/model_list.rs index d18c73ed48..26593e6f32 100644 --- a/codex-rs/app-server/tests/suite/v2/model_list.rs +++ b/codex-rs/app-server/tests/suite/v2/model_list.rs @@ -12,7 +12,7 @@ use codex_app_server_protocol::ModelListResponse; use codex_app_server_protocol::ModelUpgradeInfo; use codex_app_server_protocol::ReasoningEffortOption; use codex_app_server_protocol::RequestId; -use codex_protocol::config_types::is_priority_service_tier; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::openai_models::ModelPreset; use codex_protocol::openai_models::ModelServiceTier as CoreModelServiceTier; use pretty_assertions::assert_eq; @@ -60,7 +60,9 @@ fn model_from_preset(preset: &ModelPreset) -> Model { fn legacy_additional_speed_tiers(service_tiers: &[CoreModelServiceTier]) -> Vec { service_tiers .iter() - .filter_map(|tier| is_priority_service_tier(&tier.id).then_some("fast".to_string())) + .filter_map(|tier| { + (tier.id.as_ref() == SERVICE_TIER_PRIORITY).then_some("fast".to_string()) + }) .collect() } diff --git a/codex-rs/core/src/client_common_tests.rs b/codex-rs/core/src/client_common_tests.rs index e9e5dd7cfa..e93080a203 100644 --- a/codex-rs/core/src/client_common_tests.rs +++ b/codex-rs/core/src/client_common_tests.rs @@ -2,8 +2,8 @@ use codex_api::OpenAiVerbosity; use codex_api::ResponsesApiRequest; use codex_api::TextControls; use codex_api::create_text_param_for_request; +use codex_protocol::config_types::SERVICE_TIER_FLEX; use codex_protocol::config_types::ServiceTier; -use codex_protocol::config_types::flex_service_tier; use codex_protocol::models::FunctionCallOutputPayload; use pretty_assertions::assert_eq; @@ -156,7 +156,7 @@ fn serializes_flex_service_tier_when_set() { stream: true, include: vec![], prompt_cache_key: None, - service_tier: Some(flex_service_tier().to_string()), + service_tier: Some(ServiceTier::from(SERVICE_TIER_FLEX).to_string()), text: None, client_metadata: None, }; diff --git a/codex-rs/core/src/config/mod.rs b/codex-rs/core/src/config/mod.rs index eeb5bebf1d..7c0e163e8a 100644 --- a/codex-rs/core/src/config/mod.rs +++ b/codex-rs/core/src/config/mod.rs @@ -81,6 +81,7 @@ use codex_protocol::config_types::AltScreenMode; use codex_protocol::config_types::ForcedLoginMethod; use codex_protocol::config_types::Personality; use codex_protocol::config_types::ReasoningSummary; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::config_types::SandboxMode; use codex_protocol::config_types::ServiceTier; use codex_protocol::config_types::ShellEnvironmentPolicy; @@ -89,7 +90,6 @@ use codex_protocol::config_types::Verbosity; use codex_protocol::config_types::WebSearchConfig; use codex_protocol::config_types::WebSearchMode; use codex_protocol::config_types::WindowsSandboxLevel; -use codex_protocol::config_types::is_priority_service_tier; use codex_protocol::models::ActivePermissionProfile; use codex_protocol::models::ActivePermissionProfileModification; use codex_protocol::models::PermissionProfile; @@ -2661,7 +2661,7 @@ impl Config { }; let service_tier = match service_tier { Some(service_tier) - if is_priority_service_tier(&service_tier) + if service_tier.as_ref() == SERVICE_TIER_PRIORITY && !features.enabled(Feature::FastMode) => { None diff --git a/codex-rs/core/src/session/mod.rs b/codex-rs/core/src/session/mod.rs index 37b136a617..7858703742 100644 --- a/codex-rs/core/src/session/mod.rs +++ b/codex-rs/core/src/session/mod.rs @@ -312,9 +312,9 @@ use codex_otel::TelemetryAuthMode; use codex_protocol::config_types::CollaborationMode; use codex_protocol::config_types::Personality; use codex_protocol::config_types::ReasoningSummary as ReasoningSummaryConfig; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::config_types::ServiceTier; use codex_protocol::config_types::WindowsSandboxLevel; -use codex_protocol::config_types::priority_service_tier; use codex_protocol::models::ContentItem; use codex_protocol::models::ResponseInputItem; use codex_protocol::models::ResponseItem; @@ -789,7 +789,7 @@ fn get_service_tier( account_plan_type .is_some_and(is_enterprise_default_service_tier_plan) - .then(priority_service_tier) + .then(|| SERVICE_TIER_PRIORITY.into()) } fn is_enterprise_default_service_tier_plan(plan_type: AccountPlanType) -> bool { diff --git a/codex-rs/core/src/session/tests.rs b/codex-rs/core/src/session/tests.rs index 9376127f52..e7559462ef 100644 --- a/codex-rs/core/src/session/tests.rs +++ b/codex-rs/core/src/session/tests.rs @@ -32,9 +32,9 @@ use codex_models_manager::test_support::get_model_offline_for_tests; use codex_protocol::AgentPath; use codex_protocol::ThreadId; use codex_protocol::account::PlanType as AccountPlanType; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::config_types::ServiceTier; use codex_protocol::config_types::TrustLevel; -use codex_protocol::config_types::priority_service_tier; use codex_protocol::exec_output::ExecToolCallOutput; use codex_protocol::models::FileSystemPermissions; use codex_protocol::models::FunctionCallOutputBody; @@ -2802,7 +2802,7 @@ fn get_service_tier_defaults_enterprise_accounts_to_fast() { Some(AccountPlanType::Enterprise), /*fast_mode_enabled*/ true, ), - Some(priority_service_tier()) + Some(SERVICE_TIER_PRIORITY.into()) ); assert_eq!( get_service_tier( @@ -2811,7 +2811,7 @@ fn get_service_tier_defaults_enterprise_accounts_to_fast() { Some(AccountPlanType::EnterpriseCbpUsageBased), /*fast_mode_enabled*/ true, ), - Some(priority_service_tier()) + Some(SERVICE_TIER_PRIORITY.into()) ); assert_eq!( get_service_tier( @@ -2820,7 +2820,7 @@ fn get_service_tier_defaults_enterprise_accounts_to_fast() { Some(AccountPlanType::Business), /*fast_mode_enabled*/ true, ), - Some(priority_service_tier()) + Some(SERVICE_TIER_PRIORITY.into()) ); assert_eq!( get_service_tier( @@ -2829,7 +2829,7 @@ fn get_service_tier_defaults_enterprise_accounts_to_fast() { Some(AccountPlanType::Team), /*fast_mode_enabled*/ true, ), - Some(priority_service_tier()) + Some(SERVICE_TIER_PRIORITY.into()) ); assert_eq!( get_service_tier( @@ -2838,7 +2838,7 @@ fn get_service_tier_defaults_enterprise_accounts_to_fast() { Some(AccountPlanType::SelfServeBusinessUsageBased), /*fast_mode_enabled*/ true, ), - Some(priority_service_tier()) + Some(SERVICE_TIER_PRIORITY.into()) ); } diff --git a/codex-rs/core/tests/suite/agent_websocket.rs b/codex-rs/core/tests/suite/agent_websocket.rs index 56dae67672..bf745a2dd7 100644 --- a/codex-rs/core/tests/suite/agent_websocket.rs +++ b/codex-rs/core/tests/suite/agent_websocket.rs @@ -1,7 +1,7 @@ use anyhow::Result; use codex_features::Feature; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::config_types::ServiceTier; -use codex_protocol::config_types::priority_service_tier; use core_test_support::responses::WebSocketConnectionConfig; use core_test_support::responses::ev_assistant_message; use core_test_support::responses::ev_completed; @@ -270,7 +270,7 @@ async fn websocket_v2_first_turn_uses_updated_fast_tier_after_startup_prewarm() assert_eq!(warmup["generate"].as_bool(), Some(false)); assert_eq!(warmup.get("service_tier"), None); - test.submit_turn_with_service_tier("hello", Some(priority_service_tier())) + test.submit_turn_with_service_tier("hello", Some(SERVICE_TIER_PRIORITY.into())) .await?; assert_eq!(server.handshakes().len(), 1); @@ -314,7 +314,7 @@ async fn websocket_v2_first_turn_drops_fast_tier_after_startup_prewarm() -> Resu .features .enable(Feature::ResponsesWebsocketsV2) .expect("test config should allow feature update"); - config.service_tier = Some(priority_service_tier()); + config.service_tier = Some(SERVICE_TIER_PRIORITY.into()); }); let test = builder.build_with_websocket_server(&server).await?; @@ -386,7 +386,7 @@ async fn websocket_v2_next_turn_uses_updated_service_tier() -> Result<()> { assert_eq!(warmup["generate"].as_bool(), Some(false)); assert_eq!(warmup.get("service_tier"), None); - test.submit_turn_with_service_tier("first", Some(priority_service_tier())) + test.submit_turn_with_service_tier("first", Some(SERVICE_TIER_PRIORITY.into())) .await?; test.submit_turn_with_service_tier("second", /*service_tier*/ None) .await?; diff --git a/codex-rs/core/tests/suite/model_switching.rs b/codex-rs/core/tests/suite/model_switching.rs index 173a87ae91..a28d7fb4b0 100644 --- a/codex-rs/core/tests/suite/model_switching.rs +++ b/codex-rs/core/tests/suite/model_switching.rs @@ -4,9 +4,9 @@ use codex_features::Feature; use codex_login::CodexAuth; use codex_models_manager::manager::RefreshStrategy; use codex_protocol::config_types::ReasoningSummary; +use codex_protocol::config_types::SERVICE_TIER_FLEX; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::config_types::ServiceTier; -use codex_protocol::config_types::flex_service_tier; -use codex_protocol::config_types::priority_service_tier; use codex_protocol::models::PermissionProfile; use codex_protocol::openai_models::ConfigShellToolType; use codex_protocol::openai_models::InputModality; @@ -299,7 +299,7 @@ async fn service_tier_change_is_applied_on_next_http_turn() -> Result<()> { let test = test_codex().build(&server).await?; - test.submit_turn_with_service_tier("fast turn", Some(priority_service_tier())) + test.submit_turn_with_service_tier("fast turn", Some(SERVICE_TIER_PRIORITY.into())) .await?; test.submit_turn_with_service_tier("standard turn", /*service_tier*/ None) .await?; @@ -325,7 +325,7 @@ async fn flex_service_tier_is_applied_to_http_turn() -> Result<()> { let test = test_codex().build(&server).await?; - test.submit_turn_with_service_tier("flex turn", Some(flex_service_tier())) + test.submit_turn_with_service_tier("flex turn", Some(SERVICE_TIER_FLEX.into())) .await?; let request = resp_mock.single_request(); diff --git a/codex-rs/memories/write/src/startup_tests.rs b/codex-rs/memories/write/src/startup_tests.rs index 98befeee37..4e364d9067 100644 --- a/codex-rs/memories/write/src/startup_tests.rs +++ b/codex-rs/memories/write/src/startup_tests.rs @@ -3,8 +3,8 @@ use codex_features::Feature; use codex_git_utils::diff_since_latest_init; use codex_git_utils::reset_git_repository; use codex_protocol::ThreadId; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::config_types::ServiceTier; -use codex_protocol::config_types::priority_service_tier; use codex_protocol::openai_models::ReasoningEffort; use codex_protocol::protocol::EventMsg; use codex_protocol::protocol::Op; @@ -254,14 +254,17 @@ async fn memories_startup_phase1_uses_live_thread_service_tier() -> anyhow::Resu model: None, effort: None, summary: None, - service_tier: Some(Some(priority_service_tier())), + service_tier: Some(Some(SERVICE_TIER_PRIORITY.into())), collaboration_mode: None, personality: None, }) .await?; - let config_snapshot = wait_for_service_tier(&test, Some(priority_service_tier())).await?; - assert_eq!(config_snapshot.service_tier, Some(priority_service_tier())); + let config_snapshot = wait_for_service_tier(&test, Some(SERVICE_TIER_PRIORITY.into())).await?; + assert_eq!( + config_snapshot.service_tier, + Some(SERVICE_TIER_PRIORITY.into()) + ); let context = crate::runtime::MemoryStartupContext::new( Arc::clone(&test.thread_manager), @@ -278,7 +281,10 @@ async fn memories_startup_phase1_uses_live_thread_service_tier() -> anyhow::Resu ReasoningEffort::Low, ) .await; - assert_eq!(request_context.service_tier, Some(priority_service_tier())); + assert_eq!( + request_context.service_tier, + Some(SERVICE_TIER_PRIORITY.into()) + ); shutdown_test_codex(&test).await?; Ok(()) diff --git a/codex-rs/model-provider/src/amazon_bedrock/catalog.rs b/codex-rs/model-provider/src/amazon_bedrock/catalog.rs index 0686bcc076..82c1644d83 100644 --- a/codex-rs/model-provider/src/amazon_bedrock/catalog.rs +++ b/codex-rs/model-provider/src/amazon_bedrock/catalog.rs @@ -1,7 +1,7 @@ use codex_models_manager::model_info::BASE_INSTRUCTIONS; use codex_protocol::config_types::ReasoningSummary; +use codex_protocol::config_types::SERVICE_TIER_PRIORITY; use codex_protocol::config_types::Verbosity; -use codex_protocol::config_types::priority_service_tier; use codex_protocol::openai_models::ApplyPatchToolType; use codex_protocol::openai_models::ConfigShellToolType; use codex_protocol::openai_models::InputModality; @@ -49,7 +49,7 @@ fn gpt_5_4_cmb_bedrock_model(priority: i32) -> ModelInfo { supported_in_api: true, priority, service_tiers: vec![ModelServiceTier { - id: priority_service_tier(), + id: SERVICE_TIER_PRIORITY.into(), name: "Fast".to_string(), description: "Fast tier".to_string(), }], diff --git a/codex-rs/protocol/src/config_types.rs b/codex-rs/protocol/src/config_types.rs index eb54ab8a25..cc2c55129b 100644 --- a/codex-rs/protocol/src/config_types.rs +++ b/codex-rs/protocol/src/config_types.rs @@ -355,26 +355,6 @@ pub const SERVICE_TIER_FLEX: &str = "flex"; #[ts(type = "string")] pub struct ServiceTier(String); -pub fn priority_service_tier() -> ServiceTier { - ServiceTier::from(SERVICE_TIER_PRIORITY) -} - -pub fn flex_service_tier() -> ServiceTier { - ServiceTier::from(SERVICE_TIER_FLEX) -} - -pub fn service_tier_id(service_tier: &ServiceTier) -> &str { - service_tier.as_ref() -} - -pub fn is_priority_service_tier(service_tier: &ServiceTier) -> bool { - service_tier_id(service_tier) == SERVICE_TIER_PRIORITY -} - -pub fn is_flex_service_tier(service_tier: &ServiceTier) -> bool { - service_tier_id(service_tier) == SERVICE_TIER_FLEX -} - impl AsRef for ServiceTier { fn as_ref(&self) -> &str { self.0.as_str() @@ -401,7 +381,7 @@ impl From for String { impl std::fmt::Display for ServiceTier { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.write_str(service_tier_id(self)) + f.write_str(self.as_ref()) } } diff --git a/codex-rs/protocol/src/openai_models.rs b/codex-rs/protocol/src/openai_models.rs index 5afbee4098..c4167d8416 100644 --- a/codex-rs/protocol/src/openai_models.rs +++ b/codex-rs/protocol/src/openai_models.rs @@ -17,9 +17,9 @@ use ts_rs::TS; use crate::config_types::Personality; use crate::config_types::ReasoningSummary; +use crate::config_types::SERVICE_TIER_PRIORITY; use crate::config_types::ServiceTier; use crate::config_types::Verbosity; -use crate::config_types::priority_service_tier; const PERSONALITY_PLACEHOLDER: &str = "{{ personality }}"; @@ -837,7 +837,7 @@ mod tests { message: "Try Spark.".to_string(), }), service_tiers: vec![ModelServiceTier { - id: priority_service_tier(), + id: SERVICE_TIER_PRIORITY.into(), name: "Fast".to_string(), description: "Fast tier".to_string(), }], @@ -852,7 +852,7 @@ mod tests { ); assert!(model_supports_service_tier( &preset, - &priority_service_tier() + &SERVICE_TIER_PRIORITY.into() )); } }