@@ -44,7 +44,7 @@ const migrate = (value: unknown) => {
4444}
4545
4646const clone = ( value : State | undefined ) => {
47- if ( ! value ) return undefined
47+ if ( ! value ) return
4848 return {
4949 ...value ,
5050 model : value . model ? { ...value . model } : undefined ,
@@ -104,7 +104,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
104104
105105 const pickAgent = ( name : string | undefined ) => {
106106 const items = list ( )
107- if ( items . length === 0 ) return undefined
107+ if ( items . length === 0 ) return
108108 return items . find ( ( item ) => item . name === name ) ?? items [ 0 ]
109109 }
110110
@@ -227,14 +227,14 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
227227 ( ) => agent . current ( ) ?. model ,
228228 fallback ,
229229 )
230- if ( ! item ) return undefined
230+ if ( ! item ) return
231231 return models . find ( item )
232232 }
233233
234234 const configured = ( ) => {
235235 const item = agent . current ( )
236236 const model = current ( )
237- if ( ! item || ! model ) return undefined
237+ if ( ! item || ! model ) return
238238 return getConfiguredAgentVariant ( {
239239 agent : { model : item . model , variant : item . variant } ,
240240 model : { providerID : model . provider . id , modelID : model . id , variants : model . variants } ,
@@ -314,11 +314,16 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
314314 configured,
315315 selected,
316316 current ( ) {
317- return resolveModelVariant ( {
317+ const resolved = resolveModelVariant ( {
318318 variants : this . list ( ) ,
319319 selected : this . selected ( ) ,
320320 configured : this . configured ( ) ,
321321 } )
322+ if ( resolved ) return resolved
323+ const model = current ( )
324+ if ( ! model ) return
325+ const saved = models . variant . get ( { providerID : model . provider . id , modelID : model . id } )
326+ if ( saved && this . list ( ) . includes ( saved ) ) return saved
322327 } ,
323328 list ( ) {
324329 const item = current ( )
@@ -335,6 +340,9 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
335340 variant : value ?? null ,
336341 } )
337342 write ( { variant : value ?? null } )
343+ if ( model ) {
344+ models . variant . set ( { providerID : model . provider . id , modelID : model . id } , value ?? undefined )
345+ }
338346 } )
339347 } ,
340348 cycle ( ) {
0 commit comments