diff --git a/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelSelector.vue b/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelSelector.vue index a871adba4..d676e166f 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelSelector.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelSelector.vue @@ -28,7 +28,7 @@ const PROVIDER_ICONS = { openai: 'i-logos-openai-icon', anthropic: 'i-logos-anthropic-icon', mistral: 'i-logos-mistral-icon', - gemini: 'i-logos-gemini-icon', + gemini: 'i-woot-gemini', }; const iconForModel = model => { @@ -128,7 +128,7 @@ const selectModel = model => { { // Move coming_soon items to the end if (a.coming_soon && !b.coming_soon) return 1; if (!a.coming_soon && b.coming_soon) return -1; + // Sort by provider + const providerA = providerOrder[a.provider] ?? 999; + const providerB = providerOrder[b.provider] ?? 999; + if (providerA !== providerB) return providerA - providerB; + // Sort by credit_multiplier (highest first) return (b.credit_multiplier || 0) - (a.credit_multiplier || 0); }); diff --git a/config/llm.yml b/config/llm.yml index 47f32442d..4a56105dd 100644 --- a/config/llm.yml +++ b/config/llm.yml @@ -1,10 +1,10 @@ providers: openai: display_name: 'OpenAI' - logo: openai.png anthropic: display_name: 'Anthropic' - logo: anthropic.png + gemini: + display_name: 'Gemini' models: gpt-4.1: @@ -49,6 +49,16 @@ models: display_name: 'Claude Sonnet 4' coming_soon: true credit_multiplier: 2 + gemini-3-flash: + provider: gemini + display_name: 'Gemini 3 Flash' + coming_soon: true + credit_multiplier: 0.5 + gemini-3-pro: + provider: gemini + display_name: 'Gemini 3 Pro' + coming_soon: true + credit_multiplier: 1.5 whisper-1: provider: openai display_name: 'Whisper' @@ -70,6 +80,8 @@ features: gpt-5.1, gpt-5.2, claude-haiku-4.5, + gemini-3-flash, + gemini-3-pro, ] default: gpt-4.1-mini assistant: @@ -82,6 +94,8 @@ features: gpt-5.2, claude-haiku-4.5, claude-sonnet-4, + gemini-3-flash, + gemini-3-pro, ] default: gpt-5.2 copilot: @@ -94,10 +108,13 @@ features: gpt-5.2, claude-haiku-4.5, claude-sonnet-4, + gemini-3-flash, + gemini-3-pro, ] default: gpt-5.2 label_suggestion: - models: [gpt-4.1-nano, gpt-4.1-mini, gpt-5-mini] + models: + [gpt-4.1-nano, gpt-4.1-mini, gpt-5-mini, gemini-3-flash, claude-haiku-4.5] default: gpt-4.1-nano audio_transcription: models: [whisper-1] diff --git a/theme/icons.js b/theme/icons.js index 6e7df16a4..373421de8 100644 --- a/theme/icons.js +++ b/theme/icons.js @@ -184,5 +184,106 @@ export const icons = { width: 14, height: 14, }, + gemini: { + width: 32, + height: 32, + body: ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `, + }, /** Ends */ };