feat(core): Add model config for flash 3 (#78)

This commit is contained in:
joshualitt
2025-12-09 10:26:05 -08:00
committed by Tommaso Sciortino
parent 06dcf216e1
commit 562d84545a
6 changed files with 71 additions and 16 deletions
+11
View File
@@ -367,6 +367,12 @@ their corresponding top-level category object in your `settings.json` file.
"model": "gemini-3-pro-preview" "model": "gemini-3-pro-preview"
} }
}, },
"gemini-3-flash-preview": {
"extends": "chat-base-3",
"modelConfig": {
"model": "skyhawk"
}
},
"gemini-2.5-pro": { "gemini-2.5-pro": {
"extends": "chat-base-2.5", "extends": "chat-base-2.5",
"modelConfig": { "modelConfig": {
@@ -496,6 +502,11 @@ their corresponding top-level category object in your `settings.json` file.
"model": "gemini-3-pro-preview" "model": "gemini-3-pro-preview"
} }
}, },
"chat-compression-3-flash": {
"modelConfig": {
"model": "skyhawk"
}
},
"chat-compression-2.5-pro": { "chat-compression-2.5-pro": {
"modelConfig": { "modelConfig": {
"model": "gemini-2.5-pro" "model": "gemini-2.5-pro"
@@ -8,6 +8,10 @@ import { ThinkingLevel } from '@google/genai';
import type { ModelConfigServiceConfig } from '../services/modelConfigService.js'; import type { ModelConfigServiceConfig } from '../services/modelConfigService.js';
import { DEFAULT_THINKING_MODE } from './models.js'; import { DEFAULT_THINKING_MODE } from './models.js';
// TODO(joshualitt): This is safe for orions belt, but this change SHOULD NOT
// be merged when orions belt is merged with it's upstream.
const FLASH_PREVIEW_MODEL_REVERT_BEFORE_MERGE = 'skyhawk';
// The default model configs. We use `base` as the parent for all of our model // The default model configs. We use `base` as the parent for all of our model
// configs, while `chat-base`, a child of `base`, is the parent of the models // configs, while `chat-base`, a child of `base`, is the parent of the models
// we use in the "chat" experience. // we use in the "chat" experience.
@@ -65,6 +69,12 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
model: 'gemini-3-pro-preview', model: 'gemini-3-pro-preview',
}, },
}, },
'gemini-3-flash-preview': {
extends: 'chat-base-3',
modelConfig: {
model: FLASH_PREVIEW_MODEL_REVERT_BEFORE_MERGE,
},
},
'gemini-2.5-pro': { 'gemini-2.5-pro': {
extends: 'chat-base-2.5', extends: 'chat-base-2.5',
modelConfig: { modelConfig: {
@@ -188,6 +198,11 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
model: 'gemini-3-pro-preview', model: 'gemini-3-pro-preview',
}, },
}, },
'chat-compression-3-flash': {
modelConfig: {
model: FLASH_PREVIEW_MODEL_REVERT_BEFORE_MERGE,
},
},
'chat-compression-2.5-pro': { 'chat-compression-2.5-pro': {
modelConfig: { modelConfig: {
model: 'gemini-2.5-pro', model: 'gemini-2.5-pro',
+1
View File
@@ -5,6 +5,7 @@
*/ */
export const PREVIEW_GEMINI_MODEL = 'gemini-3-pro-preview'; export const PREVIEW_GEMINI_MODEL = 'gemini-3-pro-preview';
export const PREVIEW_GEMINI_FLASH_MODEL = 'gemini-3-flash-preview';
export const DEFAULT_GEMINI_MODEL = 'gemini-2.5-pro'; export const DEFAULT_GEMINI_MODEL = 'gemini-2.5-pro';
export const DEFAULT_GEMINI_FLASH_MODEL = 'gemini-2.5-flash'; export const DEFAULT_GEMINI_FLASH_MODEL = 'gemini-2.5-flash';
export const DEFAULT_GEMINI_FLASH_LITE_MODEL = 'gemini-2.5-flash-lite'; export const DEFAULT_GEMINI_FLASH_LITE_MODEL = 'gemini-2.5-flash-lite';
@@ -20,6 +20,7 @@ import {
DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_MODEL,
DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL,
PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
} from '../config/models.js'; } from '../config/models.js';
import { firePreCompressHook } from '../core/sessionHookTriggers.js'; import { firePreCompressHook } from '../core/sessionHookTriggers.js';
import { PreCompressTrigger } from '../hooks/types.js'; import { PreCompressTrigger } from '../hooks/types.js';
@@ -88,6 +89,8 @@ export function modelStringToModelConfigAlias(model: string): string {
switch (model) { switch (model) {
case PREVIEW_GEMINI_MODEL: case PREVIEW_GEMINI_MODEL:
return 'chat-compression-3-pro'; return 'chat-compression-3-pro';
case PREVIEW_GEMINI_FLASH_MODEL:
return 'chat-compression-3-flash';
case DEFAULT_GEMINI_MODEL: case DEFAULT_GEMINI_MODEL:
return 'chat-compression-2.5-pro'; return 'chat-compression-2.5-pro';
case DEFAULT_GEMINI_FLASH_MODEL: case DEFAULT_GEMINI_FLASH_MODEL:
@@ -49,6 +49,18 @@
"topK": 64 "topK": 64
} }
}, },
"gemini-3-flash-preview": {
"model": "skyhawk",
"generateContentConfig": {
"temperature": 1,
"topP": 0.95,
"thinkingConfig": {
"includeThoughts": true,
"thinkingLevel": "HIGH"
},
"topK": 64
}
},
"gemini-2.5-pro": { "gemini-2.5-pro": {
"model": "gemini-2.5-pro", "model": "gemini-2.5-pro",
"generateContentConfig": { "generateContentConfig": {
@@ -203,6 +215,10 @@
"model": "gemini-3-pro-preview", "model": "gemini-3-pro-preview",
"generateContentConfig": {} "generateContentConfig": {}
}, },
"chat-compression-3-flash": {
"model": "skyhawk",
"generateContentConfig": {}
},
"chat-compression-2.5-pro": { "chat-compression-2.5-pro": {
"model": "gemini-2.5-pro", "model": "gemini-2.5-pro",
"generateContentConfig": {} "generateContentConfig": {}
File diff suppressed because one or more lines are too long