models.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package geminicli
  2. // Model represents a selectable Gemini model for UI/testing purposes.
  3. // Keep JSON fields consistent with existing frontend expectations.
  4. type Model struct {
  5. ID string `json:"id"`
  6. Type string `json:"type"`
  7. DisplayName string `json:"display_name"`
  8. CreatedAt string `json:"created_at"`
  9. }
  10. // DefaultModels is the curated Gemini model list used by the admin UI "test account" flow.
  11. var DefaultModels = []Model{
  12. {ID: "gemini-2.0-flash", Type: "model", DisplayName: "Gemini 2.0 Flash", CreatedAt: ""},
  13. {ID: "gemini-2.5-flash", Type: "model", DisplayName: "Gemini 2.5 Flash", CreatedAt: ""},
  14. {ID: "gemini-2.5-flash-image", Type: "model", DisplayName: "Gemini 2.5 Flash Image", CreatedAt: ""},
  15. {ID: "gemini-2.5-pro", Type: "model", DisplayName: "Gemini 2.5 Pro", CreatedAt: ""},
  16. {ID: "gemini-3.5-flash", Type: "model", DisplayName: "Gemini 3.5 Flash", CreatedAt: ""},
  17. {ID: "gemini-3-flash-preview", Type: "model", DisplayName: "Gemini 3 Flash Preview", CreatedAt: ""},
  18. {ID: "gemini-3-pro-preview", Type: "model", DisplayName: "Gemini 3 Pro Preview", CreatedAt: ""},
  19. {ID: "gemini-3.1-pro-preview", Type: "model", DisplayName: "Gemini 3.1 Pro Preview", CreatedAt: ""},
  20. {ID: "gemini-3.1-flash-image", Type: "model", DisplayName: "Gemini 3.1 Flash Image", CreatedAt: ""},
  21. }
  22. // GoogleOneModels is the conservative model set exposed for legacy Google One
  23. // OAuth accounts. Newer subscription models are served through Antigravity
  24. // OAuth rather than the retired consumer Gemini CLI / Code Assist channel.
  25. var GoogleOneModels = []Model{
  26. {ID: "gemini-2.5-flash", Type: "model", DisplayName: "Gemini 2.5 Flash", CreatedAt: ""},
  27. {ID: "gemini-2.5-pro", Type: "model", DisplayName: "Gemini 2.5 Pro", CreatedAt: ""},
  28. {ID: "gemini-2.0-flash", Type: "model", DisplayName: "Gemini 2.0 Flash", CreatedAt: ""},
  29. }
  30. // GoogleOneModelMapping returns a new whitelist map for each account so callers
  31. // cannot mutate the package-level catalog.
  32. func GoogleOneModelMapping() map[string]string {
  33. mapping := make(map[string]string, len(GoogleOneModels))
  34. for _, model := range GoogleOneModels {
  35. mapping[model.ID] = model.ID
  36. }
  37. return mapping
  38. }
  39. // DefaultTestModel is the default model to preselect in test flows.
  40. const DefaultTestModel = "gemini-2.0-flash"