Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 3 additions & 24 deletions packages/core/src/config/defaultModelConfigs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -481,35 +481,14 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
},
'gemini-3.5-flash': {
default: 'gemini-3.5-flash',
contexts: [
{
condition: { useGemini3_5Flash: false, hasAccessToPreview: false },
target: 'gemini-2.5-flash',
},
{
condition: { useGemini3_5Flash: false },
target: 'gemini-3-flash-preview',
},
],
},
'gemini-2.5-flash': {
default: 'gemini-2.5-flash',
contexts: [
{ condition: { useGemini3_5Flash: true }, target: 'gemini-3.5-flash' },
],
},
'gemini-3-pro-preview': {
default: 'gemini-3-pro-preview',
contexts: [
{ condition: { hasAccessToPreview: false }, target: 'gemini-2.5-pro' },
{
condition: { useGemini3_1: true, useCustomTools: true },
target: 'gemini-3.1-pro-preview-customtools',
},
{
condition: { useGemini3_1: true },
target: 'gemini-3.1-pro-preview',
},
],
},
auto: {
Expand Down Expand Up @@ -578,13 +557,13 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
flash: {
default: 'gemini-3-flash-preview',
contexts: [
{ condition: { useGemini3_5Flash: true }, target: 'gemini-3.5-flash' },
{
condition: { hasAccessToPreview: false },
condition: { requestedModels: ['gemini-2.5-pro', 'auto-gemini-2.5'] },
target: 'gemini-2.5-flash',
},
{ condition: { useGemini3_5Flash: true }, target: 'gemini-3.5-flash' },
{
condition: { requestedModels: ['gemini-2.5-pro', 'auto-gemini-2.5'] },
condition: { hasAccessToPreview: false },
target: 'gemini-2.5-flash',
},
],
Expand Down
32 changes: 30 additions & 2 deletions packages/core/src/config/models.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -801,7 +801,7 @@ describe('resolveModel Gemini 3.5 Flash GA', () => {
},
);

it('should resolve known non-preview flash models to gemini-3.5-flash when useGemini3_5Flash is true (dynamic)', () => {
it('should resolve flash alias to gemini-3.5-flash when useGemini3_5Flash is true (dynamic)', () => {
const mockDynamicConfig = {
getExperimentalDynamicModelConfiguration: () => true,
modelConfigService,
Expand All @@ -826,7 +826,7 @@ describe('resolveModel Gemini 3.5 Flash GA', () => {
mockDynamicConfig,
true,
),
).toBe('gemini-3.5-flash');
).toBe(DEFAULT_GEMINI_FLASH_MODEL);
expect(
resolveModel(
PREVIEW_GEMINI_FLASH_MODEL,
Expand All @@ -839,6 +839,34 @@ describe('resolveModel Gemini 3.5 Flash GA', () => {
).toBe(PREVIEW_GEMINI_FLASH_MODEL);
});

it('should preserve explicit gemini-3-pro-preview when useGemini3_1 is true', () => {
const mockDynamicConfig = {
getExperimentalDynamicModelConfiguration: () => true,
modelConfigService,
} as unknown as Config;

expect(
resolveModel(
PREVIEW_GEMINI_MODEL,
true,
false,
true,
mockDynamicConfig,
false,
),
).toBe(PREVIEW_GEMINI_MODEL);
expect(
resolveModel(
PREVIEW_GEMINI_MODEL,
true,
false,
true,
undefined,
false,
),
).toBe(PREVIEW_GEMINI_MODEL);
});

it('should NOT resolve flash models to DEFAULT_GEMINI_FLASH_MODEL when useGemini3_5Flash is false', () => {
expect(
resolveModel(
Expand Down
5 changes: 4 additions & 1 deletion packages/core/src/config/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,6 @@ export function resolveModel(
}
// fallthrough
}
case PREVIEW_GEMINI_MODEL:
case PREVIEW_GEMINI_MODEL_AUTO: {
if (useGemini3_1) {
resolved = useCustomToolModel
Expand All @@ -203,6 +202,10 @@ export function resolveModel(
}
break;
}
case PREVIEW_GEMINI_MODEL: {
resolved = PREVIEW_GEMINI_MODEL;
break;
}
case DEFAULT_GEMINI_MODEL_AUTO: {
resolved = DEFAULT_GEMINI_MODEL;
break;
Expand Down
Loading