mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-15 23:22:59 +08:00
47 lines
2.3 KiB
Go
47 lines
2.3 KiB
Go
package geminicli
|
|
|
|
// Model represents a selectable Gemini model for UI/testing purposes.
|
|
// Keep JSON fields consistent with existing frontend expectations.
|
|
type Model struct {
|
|
ID string `json:"id"`
|
|
Type string `json:"type"`
|
|
DisplayName string `json:"display_name"`
|
|
CreatedAt string `json:"created_at"`
|
|
}
|
|
|
|
// DefaultModels is the curated Gemini model list used by the admin UI "test account" flow.
|
|
var DefaultModels = []Model{
|
|
{ID: "gemini-2.0-flash", Type: "model", DisplayName: "Gemini 2.0 Flash", CreatedAt: ""},
|
|
{ID: "gemini-2.5-flash", Type: "model", DisplayName: "Gemini 2.5 Flash", CreatedAt: ""},
|
|
{ID: "gemini-2.5-flash-image", Type: "model", DisplayName: "Gemini 2.5 Flash Image", CreatedAt: ""},
|
|
{ID: "gemini-2.5-pro", Type: "model", DisplayName: "Gemini 2.5 Pro", CreatedAt: ""},
|
|
{ID: "gemini-3.5-flash", Type: "model", DisplayName: "Gemini 3.5 Flash", CreatedAt: ""},
|
|
{ID: "gemini-3-flash-preview", Type: "model", DisplayName: "Gemini 3 Flash Preview", CreatedAt: ""},
|
|
{ID: "gemini-3-pro-preview", Type: "model", DisplayName: "Gemini 3 Pro Preview", CreatedAt: ""},
|
|
{ID: "gemini-3.1-pro-preview", Type: "model", DisplayName: "Gemini 3.1 Pro Preview", CreatedAt: ""},
|
|
{ID: "gemini-3.1-flash-image", Type: "model", DisplayName: "Gemini 3.1 Flash Image", CreatedAt: ""},
|
|
{ID: "gemini-4-argon", Type: "model", DisplayName: "Gemini 4 Argon", CreatedAt: ""},
|
|
}
|
|
|
|
// GoogleOneModels is the conservative model set exposed for legacy Google One
|
|
// OAuth accounts. Newer subscription models are served through Antigravity
|
|
// OAuth rather than the retired consumer Gemini CLI / Code Assist channel.
|
|
var GoogleOneModels = []Model{
|
|
{ID: "gemini-2.5-flash", Type: "model", DisplayName: "Gemini 2.5 Flash", CreatedAt: ""},
|
|
{ID: "gemini-2.5-pro", Type: "model", DisplayName: "Gemini 2.5 Pro", CreatedAt: ""},
|
|
{ID: "gemini-2.0-flash", Type: "model", DisplayName: "Gemini 2.0 Flash", CreatedAt: ""},
|
|
}
|
|
|
|
// GoogleOneModelMapping returns a new whitelist map for each account so callers
|
|
// cannot mutate the package-level catalog.
|
|
func GoogleOneModelMapping() map[string]string {
|
|
mapping := make(map[string]string, len(GoogleOneModels))
|
|
for _, model := range GoogleOneModels {
|
|
mapping[model.ID] = model.ID
|
|
}
|
|
return mapping
|
|
}
|
|
|
|
// DefaultTestModel is the default model to preselect in test flows.
|
|
const DefaultTestModel = "gemini-2.0-flash"
|