@@ -849,7 +849,8 @@ fn builtin_aliases() -> HashMap<String, String> {
849849 ( "minimax-m2.1" , "MiniMax-M2.1" ) ,
850850 ( "codegeex" , "codegeex-4" ) ,
851851 // Codex aliases
852- ( "codex" , "codex/gpt-4.1" ) ,
852+ ( "codex" , "codex/gpt-5.4" ) ,
853+ ( "codex-5.4" , "codex/gpt-5.4" ) ,
853854 ( "codex-4.1" , "codex/gpt-4.1" ) ,
854855 ( "codex-o4" , "codex/o4-mini" ) ,
855856 // NVIDIA NIM aliases
@@ -3471,6 +3472,20 @@ fn builtin_models() -> Vec<ModelCatalogEntry> {
34713472 // ══════════════════════════════════════════════════════════════
34723473 // OpenAI Codex (2) — reuses OpenAI driver
34733474 // ══════════════════════════════════════════════════════════════
3475+ ModelCatalogEntry {
3476+ id: "codex/gpt-5.4" . into( ) ,
3477+ display_name: "GPT-5.4 (Codex)" . into( ) ,
3478+ provider: "codex" . into( ) ,
3479+ tier: ModelTier :: Frontier ,
3480+ context_window: 1_047_576 ,
3481+ max_output_tokens: 32_768 ,
3482+ input_cost_per_m: 2.00 ,
3483+ output_cost_per_m: 8.00 ,
3484+ supports_tools: true ,
3485+ supports_vision: true ,
3486+ supports_streaming: true ,
3487+ aliases: vec![ "codex" . into( ) , "codex-5.4" . into( ) ] ,
3488+ } ,
34743489 ModelCatalogEntry {
34753490 id: "codex/gpt-4.1" . into( ) ,
34763491 display_name: "GPT-4.1 (Codex)" . into( ) ,
@@ -3483,7 +3498,7 @@ fn builtin_models() -> Vec<ModelCatalogEntry> {
34833498 supports_tools: true ,
34843499 supports_vision: true ,
34853500 supports_streaming: true ,
3486- aliases: vec![ "codex" . into ( ) , "codex -4.1". into( ) ] ,
3501+ aliases: vec![ "codex-4.1" . into( ) ] ,
34873502 } ,
34883503 ModelCatalogEntry {
34893504 id: "codex/o4-mini" . into( ) ,
@@ -4055,7 +4070,8 @@ mod tests {
40554070 fn test_codex_models ( ) {
40564071 let catalog = ModelCatalog :: new ( ) ;
40574072 let models = catalog. models_by_provider ( "codex" ) ;
4058- assert_eq ! ( models. len( ) , 2 ) ;
4073+ assert_eq ! ( models. len( ) , 3 ) ;
4074+ assert ! ( models. iter( ) . any( |m| m. id == "codex/gpt-5.4" ) ) ;
40594075 assert ! ( models. iter( ) . any( |m| m. id == "codex/gpt-4.1" ) ) ;
40604076 assert ! ( models. iter( ) . any( |m| m. id == "codex/o4-mini" ) ) ;
40614077 }
@@ -4064,7 +4080,7 @@ mod tests {
40644080 fn test_codex_aliases ( ) {
40654081 let catalog = ModelCatalog :: new ( ) ;
40664082 let entry = catalog. find_model ( "codex" ) . unwrap ( ) ;
4067- assert_eq ! ( entry. id, "codex/gpt-4.1 " ) ;
4083+ assert_eq ! ( entry. id, "codex/gpt-5.4 " ) ;
40684084 }
40694085
40704086 #[ test]
0 commit comments