| |
| |
| package registry |
|
|
| import ( |
| "sort" |
| "strings" |
| ) |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| func GetStaticModelDefinitionsByChannel(channel string) []*ModelInfo { |
| key := strings.ToLower(strings.TrimSpace(channel)) |
| switch key { |
| case "claude": |
| return GetClaudeModels() |
| case "gemini": |
| return GetGeminiModels() |
| case "vertex": |
| return GetGeminiVertexModels() |
| case "gemini-cli": |
| return GetGeminiCLIModels() |
| case "aistudio": |
| return GetAIStudioModels() |
| case "codex": |
| return GetOpenAIModels() |
| case "qwen": |
| return GetQwenModels() |
| case "iflow": |
| return GetIFlowModels() |
| case "kiro": |
| return GetKiroModels() |
| case "antigravity": |
| cfg := GetAntigravityModelConfig() |
| if len(cfg) == 0 { |
| return nil |
| } |
| models := make([]*ModelInfo, 0, len(cfg)) |
| for modelID, entry := range cfg { |
| if modelID == "" || entry == nil { |
| continue |
| } |
| models = append(models, &ModelInfo{ |
| ID: modelID, |
| Object: "model", |
| OwnedBy: "antigravity", |
| Type: "antigravity", |
| Thinking: entry.Thinking, |
| MaxCompletionTokens: entry.MaxCompletionTokens, |
| }) |
| } |
| sort.Slice(models, func(i, j int) bool { |
| return strings.ToLower(models[i].ID) < strings.ToLower(models[j].ID) |
| }) |
| return models |
| default: |
| return nil |
| } |
| } |
|
|
| |
| |
| func LookupStaticModelInfo(modelID string) *ModelInfo { |
| if modelID == "" { |
| return nil |
| } |
|
|
| allModels := [][]*ModelInfo{ |
| GetClaudeModels(), |
| GetGeminiModels(), |
| GetGeminiVertexModels(), |
| GetGeminiCLIModels(), |
| GetAIStudioModels(), |
| GetOpenAIModels(), |
| GetQwenModels(), |
| GetIFlowModels(), |
| GetKiroModels(), |
| } |
| for _, models := range allModels { |
| for _, m := range models { |
| if m != nil && m.ID == modelID { |
| return m |
| } |
| } |
| } |
|
|
| |
| if cfg := GetAntigravityModelConfig()[modelID]; cfg != nil { |
| return &ModelInfo{ |
| ID: modelID, |
| Thinking: cfg.Thinking, |
| MaxCompletionTokens: cfg.MaxCompletionTokens, |
| } |
| } |
|
|
| return nil |
| } |
|
|