// Package gemini provides minimal fallback model metadata for Gemini native endpoints. // It is used when upstream model listing is unavailable (e.g. OAuth token missing AI Studio scopes). package gemini type Model struct { Name string `json:"name"` DisplayName string `json:"displayName,omitempty"` Description string `json:"description,omitempty"` SupportedGenerationMethods []string `json:"supportedGenerationMethods,omitempty"` } type ModelsListResponse struct { Models []Model `json:"models"` } func DefaultModels() []Model { methods := []string{"generateContent", "streamGenerateContent"} return []Model{ {Name: "models/gemini-2.0-flash", SupportedGenerationMethods: methods}, {Name: "models/gemini-2.5-flash", SupportedGenerationMethods: methods}, {Name: "models/gemini-2.5-pro", SupportedGenerationMethods: methods}, {Name: "models/gemini-3-flash-preview", SupportedGenerationMethods: methods}, {Name: "models/gemini-3-pro-preview", SupportedGenerationMethods: methods}, } } func FallbackModelsList() ModelsListResponse { return ModelsListResponse{Models: DefaultModels()} } func FallbackModel(model string) Model { methods := []string{"generateContent", "streamGenerateContent"} if model == "" { return Model{Name: "models/unknown", SupportedGenerationMethods: methods} } if len(model) >= 7 && model[:7] == "models/" { return Model{Name: model, SupportedGenerationMethods: methods} } return Model{Name: "models/" + model, SupportedGenerationMethods: methods} }