@@ -8,7 +8,7 @@ import { filterMap } from '../../../util/common/arrays';
88import * as errors from '../../../util/common/errors' ;
99import { createTracer } from '../../../util/common/tracing' ;
1010import { pushMany } from '../../../util/vs/base/common/arrays' ;
11- import { softAssert } from '../../../util/vs/base/common/assert' ;
11+ import { assertNever , softAssert } from '../../../util/vs/base/common/assert' ;
1212import { Event } from '../../../util/vs/base/common/event' ;
1313import { Disposable } from '../../../util/vs/base/common/lifecycle' ;
1414import { derived , IObservable , observableFromEvent } from '../../../util/vs/base/common/observable' ;
@@ -279,7 +279,32 @@ export class InlineEditsModelService extends Disposable implements IInlineEditsM
279279 } ;
280280 }
281281 tracer . trace ( 'No selected model found, using default model.' ) ;
282- return this . determineDefaultModel ( undefined , undefined ) ;
282+ return this . determineDefaultModel ( this . _copilotTokenObs . get ( ) , this . _defaultModelConfigObs . get ( ) ) ;
283+ }
284+
285+ public defaultModelConfiguration ( ) : ModelConfiguration {
286+ const models = this . _modelsObs . get ( ) ;
287+ if ( models && models . length > 0 ) {
288+ const defaultModels = models . filter ( m => ! this . isConfiguredModel ( m ) ) ;
289+ if ( defaultModels . length > 0 ) {
290+ return defaultModels [ 0 ] ;
291+ }
292+ }
293+ return this . determineDefaultModel ( this . _copilotTokenObs . get ( ) , this . _defaultModelConfigObs . get ( ) ) ;
294+ }
295+
296+ private isConfiguredModel ( model : Model ) : boolean {
297+ switch ( model . source ) {
298+ case ModelSource . LocalConfig :
299+ case ModelSource . ExpConfig :
300+ case ModelSource . ExpDefaultConfig :
301+ return true ;
302+ case ModelSource . Fetched :
303+ case ModelSource . HardCodedDefault :
304+ return false ;
305+ default :
306+ assertNever ( model . source ) ;
307+ }
283308 }
284309
285310 private determineDefaultModel ( copilotToken : CopilotToken | undefined , defaultModelConfigString : string | undefined ) : Model {
0 commit comments