diff --git a/internal/api/server_test.go b/internal/api/server_test.go index 9435ff122..e503fe71b 100644 --- a/internal/api/server_test.go +++ b/internal/api/server_test.go @@ -346,6 +346,12 @@ func TestModelsWithClientVersionReturnsCodexCatalog(t *testing.T) { if _, ok := custom["apply_patch_tool_type"]; ok { t.Fatal("expected custom model to omit apply_patch_tool_type") } + if _, ok := custom["upgrade"]; ok { + t.Fatal("expected custom model to omit upgrade") + } + if _, ok := custom["availability_nux"]; ok { + t.Fatal("expected custom model to omit availability_nux") + } hiddenModels := map[string]bool{ "grok-imagine-image-quality": false, diff --git a/internal/registry/codex_client_models.go b/internal/registry/codex_client_models.go new file mode 100644 index 000000000..f254d5e1e --- /dev/null +++ b/internal/registry/codex_client_models.go @@ -0,0 +1,11 @@ +package registry + +import _ "embed" + +//go:embed models/codex_client_models.json +var codexClientModelsJSON []byte + +// GetCodexClientModelsJSON returns the embedded Codex client model catalog. +func GetCodexClientModelsJSON() []byte { + return append([]byte(nil), codexClientModelsJSON...) +} diff --git a/sdk/api/handlers/openai/codex_client_models.json b/internal/registry/models/codex_client_models.json similarity index 100% rename from sdk/api/handlers/openai/codex_client_models.json rename to internal/registry/models/codex_client_models.json diff --git a/sdk/api/handlers/openai/codex_client_models.go b/sdk/api/handlers/openai/codex_client_models.go index 7fa857de1..bf2058151 100644 --- a/sdk/api/handlers/openai/codex_client_models.go +++ b/sdk/api/handlers/openai/codex_client_models.go @@ -66,7 +66,7 @@ func buildCodexClientModels(models []map[string]any) []map[string]any { func loadCodexClientModelTemplates() (map[string]map[string]any, map[string]any, error) { codexClientModelTemplatesOnce.Do(func() { var payload codexClientModelsPayload - codexClientModelTemplatesErr = json.Unmarshal(codexClientModelsJSON, &payload) + codexClientModelTemplatesErr = json.Unmarshal(registry.GetCodexClientModelsJSON(), &payload) if codexClientModelTemplatesErr != nil { return } @@ -120,6 +120,8 @@ func applyCodexClientModelMetadata(entry map[string]any, id string, model map[st entry["priority"] = 100 entry["prefer_websockets"] = false delete(entry, "apply_patch_tool_type") + delete(entry, "upgrade") + delete(entry, "availability_nux") if contextWindow > 0 { entry["context_window"] = contextWindow diff --git a/sdk/api/handlers/openai/openai_handlers.go b/sdk/api/handlers/openai/openai_handlers.go index f7b8ad88a..cdb3c6c24 100644 --- a/sdk/api/handlers/openai/openai_handlers.go +++ b/sdk/api/handlers/openai/openai_handlers.go @@ -8,7 +8,6 @@ package openai import ( "context" - _ "embed" "encoding/json" "fmt" "net/http" @@ -30,9 +29,6 @@ type OpenAIAPIHandler struct { *handlers.BaseAPIHandler } -//go:embed codex_client_models.json -var codexClientModelsJSON []byte - // NewOpenAIAPIHandler creates a new OpenAI API handlers instance. // It takes an BaseAPIHandler instance as input and returns an OpenAIAPIHandler. //