fix(core): distinguish fallback chains and fix maxAttempts for auto vs explicit model selection (#26163)

This commit is contained in:
Adam Weidman
2026-04-29 16:23:37 -04:00
committed by GitHub
parent 99235fc59d
commit 3aedbbc067
15 changed files with 922 additions and 67 deletions
@@ -557,7 +557,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
},
stateTransitions: {
terminal: 'terminal',
transient: 'sticky_retry',
transient: 'terminal',
not_found: 'terminal',
unknown: 'terminal',
},
@@ -565,12 +565,31 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
{
model: 'gemini-3-flash-preview',
isLastResort: true,
maxAttempts: 10,
actions: {
terminal: 'prompt',
transient: 'prompt',
not_found: 'prompt',
unknown: 'prompt',
},
stateTransitions: {
terminal: 'terminal',
transient: 'terminal',
not_found: 'terminal',
unknown: 'terminal',
},
},
],
'auto-preview': [
{
model: 'gemini-3-pro-preview',
maxAttempts: 3,
actions: {
terminal: 'prompt',
transient: 'silent',
not_found: 'prompt',
unknown: 'prompt',
},
stateTransitions: {
terminal: 'terminal',
transient: 'sticky_retry',
@@ -578,6 +597,23 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
unknown: 'terminal',
},
},
{
model: 'gemini-3-flash-preview',
isLastResort: true,
maxAttempts: 10,
actions: {
terminal: 'prompt',
transient: 'prompt',
not_found: 'prompt',
unknown: 'prompt',
},
stateTransitions: {
terminal: 'terminal',
transient: 'terminal',
not_found: 'terminal',
unknown: 'terminal',
},
},
],
default: [
{
@@ -598,12 +634,31 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
{
model: 'gemini-2.5-flash',
isLastResort: true,
maxAttempts: 10,
actions: {
terminal: 'prompt',
transient: 'prompt',
not_found: 'prompt',
unknown: 'prompt',
},
stateTransitions: {
terminal: 'terminal',
transient: 'terminal',
not_found: 'terminal',
unknown: 'terminal',
},
},
],
'auto-default': [
{
model: 'gemini-2.5-pro',
maxAttempts: 3,
actions: {
terminal: 'prompt',
transient: 'silent',
not_found: 'prompt',
unknown: 'prompt',
},
stateTransitions: {
terminal: 'terminal',
transient: 'sticky_retry',
@@ -611,6 +666,23 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
unknown: 'terminal',
},
},
{
model: 'gemini-2.5-flash',
isLastResort: true,
maxAttempts: 10,
actions: {
terminal: 'prompt',
transient: 'prompt',
not_found: 'prompt',
unknown: 'prompt',
},
stateTransitions: {
terminal: 'terminal',
transient: 'terminal',
not_found: 'terminal',
unknown: 'terminal',
},
},
],
lite: [
{
@@ -623,7 +695,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
},
stateTransitions: {
terminal: 'terminal',
transient: 'sticky_retry',
transient: 'terminal',
not_found: 'terminal',
unknown: 'terminal',
},
@@ -638,7 +710,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
},
stateTransitions: {
terminal: 'terminal',
transient: 'sticky_retry',
transient: 'terminal',
not_found: 'terminal',
unknown: 'terminal',
},
@@ -654,7 +726,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
},
stateTransitions: {
terminal: 'terminal',
transient: 'sticky_retry',
transient: 'terminal',
not_found: 'terminal',
unknown: 'terminal',
},