feat(providers): add GPT-5.6 Codex models (#1416)

This commit is contained in:
Zezae Oh authored and GitHub committed 2026-07-10 06:55:30 +07:00
1 parent db69ccf882
commit 9be468edad
4 files changed
+30 -16

No files matched your search

+2
View File
@@ -119,6 +119,8 @@ func acpModels() []ModelInfo {
// chatGPTOAuthModels returns models available via ChatGPT OAuth integration.
func chatGPTOAuthModels() []ModelInfo {
return withReasoningCapabilities([]ModelInfo{
{ID: "gpt-5.6-sol", Name: "GPT-5.6 Sol"},
{ID: "gpt-5.6-terra", Name: "GPT-5.6 Terra"},
{ID: providers.DefaultCodexModel, Name: "GPT-5.5"},
{ID: "gpt-5.4", Name: "GPT-5.4"},
{ID: "gpt-5.4-mini", Name: "GPT-5.4 Mini"},
+24 -16
View File
@@ -112,24 +112,32 @@ func TestProvidersHandlerListProviderModelsChatGPTOAuthIncludesReasoningMetadata
t.Fatalf("reasoning_defaults.effort = %q, want high", result.ReasoningDefaults.Effort)
}
var found bool
for _, model := range result.Models {
if model.ID != "gpt-5.5" {
continue
assertModelIDsInOrder(t, result.Models, []string{
"gpt-5.6-sol",
"gpt-5.6-terra",
"gpt-5.5",
})
for _, wantID := range []string{"gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.5"} {
var found bool
for _, model := range result.Models {
if model.ID != wantID {
continue
}
found = true
if model.Reasoning == nil {
t.Fatalf("%s reasoning = nil, want capability metadata", wantID)
}
if model.Reasoning.DefaultEffort != "medium" {
t.Fatalf("%s default_effort = %q, want medium", wantID, model.Reasoning.DefaultEffort)
}
if got := model.Reasoning.Levels; len(got) != 5 || got[4] != "xhigh" {
t.Fatalf("%s levels = %#v, want none..xhigh", wantID, got)
}
}
found = true
if model.Reasoning == nil {
t.Fatal("gpt-5.5 reasoning = nil, want capability metadata")
if !found {
t.Fatalf("%s not found in ChatGPT OAuth model list", wantID)
}
if model.Reasoning.DefaultEffort != "medium" {
t.Fatalf("gpt-5.5 default_effort = %q, want medium", model.Reasoning.DefaultEffort)
}
if got := model.Reasoning.Levels; len(got) != 5 || got[4] != "xhigh" {
t.Fatalf("gpt-5.5 levels = %#v, want none..xhigh", got)
}
}
if !found {
t.Fatal("gpt-5.5 not found in ChatGPT OAuth model list")
}
}
+2
View File
@@ -154,6 +154,8 @@ func SeedDefaultModels(r *InMemoryRegistry) {
// OpenAI models
for _, s := range []ModelSpec{
{ID: "gpt-5.6-sol", Provider: "openai", ContextWindow: 1_050_000, MaxTokens: 128_000, Reasoning: true, Vision: true, TokenizerID: "o200k_base"},
{ID: "gpt-5.6-terra", Provider: "openai", ContextWindow: 1_050_000, MaxTokens: 128_000, Reasoning: true, Vision: true, TokenizerID: "o200k_base"},
{ID: "gpt-5.5", Provider: "openai", ContextWindow: 1_050_000, MaxTokens: 128_000, Reasoning: true, Vision: true, TokenizerID: "o200k_base"},
{ID: "gpt-5.4", Provider: "openai", ContextWindow: 1_000_000, MaxTokens: 100_000, Reasoning: true, Vision: true, TokenizerID: "o200k_base"},
{ID: "gpt-5.2", Provider: "openai", ContextWindow: 256_000, MaxTokens: 64_000, Reasoning: true, Vision: true, TokenizerID: "o200k_base"},
@@ -25,6 +25,8 @@ type reasoningCapabilityEntry struct {
}
var reasoningCapabilityEntries = []reasoningCapabilityEntry{
{id: "gpt-5.6-sol", capability: ReasoningCapability{Levels: []string{"none", "low", "medium", "high", "xhigh"}, DefaultEffort: "medium"}},
{id: "gpt-5.6-terra", capability: ReasoningCapability{Levels: []string{"none", "low", "medium", "high", "xhigh"}, DefaultEffort: "medium"}},
{id: "gpt-5.5", capability: ReasoningCapability{Levels: []string{"none", "low", "medium", "high", "xhigh"}, DefaultEffort: "medium"}},
{id: "gpt-5.4-mini", capability: ReasoningCapability{Levels: []string{"none", "low", "medium", "high", "xhigh"}, DefaultEffort: "none"}},
{id: "gpt-5-mini", capability: ReasoningCapability{Levels: []string{"none", "low", "medium", "high", "xhigh"}, DefaultEffort: "none"}},