@@ -13,7 +13,8 @@ import { Logger } from '@shared/utils/logger'
1313import { dictionary } from '@shared/constants/dictionary'
1414
1515export const initial_select_provider = async (
16- providers_manager : ModelProvidersManager
16+ providers_manager : ModelProvidersManager ,
17+ last_selected_provider_name ?: string
1718) : Promise < Provider | undefined > => {
1819 const providers = await providers_manager . get_providers ( )
1920
@@ -39,6 +40,12 @@ export const initial_select_provider = async (
3940 tooltip : 'Close'
4041 }
4142 quick_pick . buttons = [ close_button ]
43+ if ( last_selected_provider_name ) {
44+ const active = provider_items . find (
45+ ( p ) => p . label == last_selected_provider_name
46+ )
47+ if ( active ) quick_pick . activeItems = [ active ]
48+ }
4249 let accepted = false
4350 const disposables : vscode . Disposable [ ] = [ ]
4451
@@ -95,6 +102,12 @@ export const initial_select_model = async (
95102 quick_pick . title = 'Models'
96103 quick_pick . placeholder = 'Choose an AI model'
97104 quick_pick . buttons = [ vscode . QuickInputButtons . Back ]
105+ if ( provider . name ) {
106+ // Currently initial_select_model doesn't take a previous selection,
107+ // but if we wanted to highlight one, we would do it here.
108+ // Since this is the "Add" flow, usually we don't have a previous model yet.
109+ // Skipping activeItems for initial add flow model selection as per current logic.
110+ }
98111
99112 let accepted = false
100113 const disposables : vscode . Disposable [ ] = [ ]
@@ -150,7 +163,8 @@ export const initial_select_model = async (
150163}
151164
152165export const edit_provider_for_config = async (
153- providers_manager : ModelProvidersManager
166+ providers_manager : ModelProvidersManager ,
167+ current_provider_name ?: string
154168) => {
155169 const providers = await providers_manager . get_providers ( )
156170 const provider_items = providers . map ( ( p ) => ( {
@@ -166,6 +180,12 @@ export const edit_provider_for_config = async (
166180 quick_pick . title = 'Model Providers'
167181 quick_pick . placeholder = 'Select a model provider'
168182 quick_pick . buttons = [ vscode . QuickInputButtons . Back ]
183+ if ( current_provider_name ) {
184+ const active = provider_items . find (
185+ ( p ) => p . label === current_provider_name
186+ )
187+ if ( active ) quick_pick . activeItems = [ active ]
188+ }
169189 let accepted = false
170190 const disposables : vscode . Disposable [ ] = [ ]
171191
@@ -248,6 +268,12 @@ export const edit_model_for_config = async (
248268 quick_pick . title = 'Models'
249269 quick_pick . placeholder = 'Choose a model'
250270 quick_pick . buttons = [ vscode . QuickInputButtons . Back ]
271+ if ( config . model ) {
272+ const active = model_items . find (
273+ ( item ) => ( item . description || item . label ) === config . model
274+ )
275+ if ( active ) quick_pick . activeItems = [ active ]
276+ }
251277 let accepted = false
252278 const disposables : vscode . Disposable [ ] = [ ]
253279
@@ -377,7 +403,9 @@ export const edit_temperature_for_config = async (
377403 } )
378404}
379405
380- export const edit_reasoning_effort_for_config = async ( ) => {
406+ export const edit_reasoning_effort_for_config = async (
407+ current_effort ?: string
408+ ) => {
381409 const effort_options : vscode . QuickPickItem [ ] = [
382410 {
383411 label : 'Unset' ,
@@ -396,6 +424,12 @@ export const edit_reasoning_effort_for_config = async () => {
396424 quick_pick . title = 'Reasoning Efforts'
397425 quick_pick . placeholder = 'Select reasoning effort'
398426 quick_pick . buttons = [ vscode . QuickInputButtons . Back ]
427+ if ( current_effort ) {
428+ const active = effort_options . find (
429+ ( item ) => item . label . toLowerCase ( ) === current_effort . toLowerCase ( )
430+ )
431+ if ( active ) quick_pick . activeItems = [ active ]
432+ }
399433
400434 let accepted = false
401435 const disposables : vscode . Disposable [ ] = [ ]
0 commit comments