66import { Raw } from '@vscode/prompt-tsx' ;
77import { FetchStreamSource } from '../../../platform/chat/common/chatMLFetcher' ;
88import { ChatFetchError , ChatFetchResponseType , ChatLocation } from '../../../platform/chat/common/commonTypes' ;
9- import { ConfigKey , ExperimentBasedConfig , IConfigurationService , XTabProviderId } from '../../../platform/configuration/common/configurationService' ;
9+ import { ConfigKey , IConfigurationService , XTabProviderId } from '../../../platform/configuration/common/configurationService' ;
1010import { IDiffService } from '../../../platform/diff/common/diffService' ;
1111import { ChatEndpoint } from '../../../platform/endpoint/node/chatEndpoint' ;
1212import { createProxyXtabEndpoint } from '../../../platform/endpoint/node/proxyXtabEndpoint' ;
@@ -18,6 +18,7 @@ import { NextCursorLinePrediction } from '../../../platform/inlineEdits/common/d
1818import * as xtabPromptOptions from '../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions' ;
1919import { LanguageContextLanguages , LanguageContextOptions } from '../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions' ;
2020import { InlineEditRequestLogContext } from '../../../platform/inlineEdits/common/inlineEditLogContext' ;
21+ import { IInlineEditsModelService } from '../../../platform/inlineEdits/common/inlineEditsModelService' ;
2122import { ResponseProcessor } from '../../../platform/inlineEdits/common/responseProcessor' ;
2223import { IStatelessNextEditProvider , NoNextEditReason , PushEdit , ShowNextEditPreference , StatelessNextEditDocument , StatelessNextEditRequest , StatelessNextEditResult , StatelessNextEditTelemetryBuilder } from '../../../platform/inlineEdits/common/statelessNextEditProvider' ;
2324import { editWouldDeleteWhatWasJustInserted , editWouldDeleteWhatWasJustInserted2 , IgnoreEmptyLineAndLeadingTrailingWhitespaceChanges , IgnoreWhitespaceOnlyChanges } from '../../../platform/inlineEdits/common/statelessNextEditProviders' ;
@@ -28,7 +29,6 @@ import { OptionalChatRequestParams, Prediction } from '../../../platform/network
2829import { IChatEndpoint } from '../../../platform/networking/common/networking' ;
2930import { ISimulationTestContext } from '../../../platform/simulationTestContext/common/simulationTestContext' ;
3031import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService' ;
31- import { ITelemetryService } from '../../../platform/telemetry/common/telemetry' ;
3232import { IWorkspaceService } from '../../../platform/workspace/common/workspaceService' ;
3333import { raceFilter } from '../../../util/common/async' ;
3434import * as errors from '../../../util/common/errors' ;
@@ -83,6 +83,7 @@ export class XtabProvider implements IStatelessNextEditProvider {
8383 private nextCursorPredictor : XtabNextCursorPredictor ;
8484
8585 constructor (
86+ @IInlineEditsModelService private readonly modelService : IInlineEditsModelService ,
8687 @ISimulationTestContext private readonly simulationCtx : ISimulationTestContext ,
8788 @IInstantiationService private readonly instaService : IInstantiationService ,
8889 @IWorkspaceService private readonly workspaceService : IWorkspaceService ,
@@ -92,7 +93,6 @@ export class XtabProvider implements IStatelessNextEditProvider {
9293 @ILanguageContextProviderService private readonly langCtxService : ILanguageContextProviderService ,
9394 @ILanguageDiagnosticsService private readonly langDiagService : ILanguageDiagnosticsService ,
9495 @IIgnoreService private readonly ignoreService : IIgnoreService ,
95- @ITelemetryService private readonly telemetryService : ITelemetryService
9696 ) {
9797 this . delayer = new Delayer ( this . configService , this . expService ) ;
9898 this . nextCursorPredictor = this . instaService . createInstance ( XtabNextCursorPredictor , XtabProvider . computeTokens ) ;
@@ -1009,51 +1009,8 @@ export class XtabProvider implements IStatelessNextEditProvider {
10091009 includePostScript : true ,
10101010 } ;
10111011
1012- const localOverridingModelConfig = this . configService . getConfig ( ConfigKey . TeamInternal . InlineEditsXtabProviderModelConfiguration ) ;
1013- if ( localOverridingModelConfig ) {
1014- return XtabProvider . overrideModelConfig ( sourcedModelConfig , localOverridingModelConfig ) ;
1015- }
1016-
1017- const expBasedModelConfig = this . overrideByStringModelConfig ( sourcedModelConfig , ConfigKey . TeamInternal . InlineEditsXtabProviderModelConfigurationString ) ;
1018- if ( expBasedModelConfig ) {
1019- return expBasedModelConfig ;
1020- }
1021-
1022- const defaultModelConfig = this . overrideByStringModelConfig ( sourcedModelConfig , ConfigKey . TeamInternal . InlineEditsXtabProviderDefaultModelConfigurationString ) ;
1023- if ( defaultModelConfig ) {
1024- return defaultModelConfig ;
1025- }
1026-
1027- return sourcedModelConfig ;
1028- }
1029-
1030- private overrideByStringModelConfig ( originalModelConfig : ModelConfig , configKey : ExperimentBasedConfig < string | undefined > ) : ModelConfig | undefined {
1031- const configString = this . configService . getExperimentBasedConfig ( configKey , this . expService ) ;
1032- if ( configString === undefined ) {
1033- return undefined ;
1034- }
1035-
1036- let parsedConfig : xtabPromptOptions . ModelConfiguration | undefined ;
1037- try {
1038- parsedConfig = JSON . parse ( configString ) ;
1039- } catch ( e : unknown ) {
1040- /* __GDPR__
1041- "incorrectNesModelConfig" : {
1042- "owner": "ulugbekna",
1043- "comment": "Capture if model configuration string is invalid JSON.",
1044- "configName": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "Name of the configuration that failed to parse." },
1045- "errorMessage": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "Error message from JSON.parse." },
1046- "configValue": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The invalid JSON string." }
1047- }
1048- */
1049- this . telemetryService . sendMSFTTelemetryEvent ( 'incorrectNesModelConfig' , { configName : configKey . id , errorMessage : errors . toString ( errors . fromUnknown ( e ) ) , configValue : configString } ) ;
1050- }
1051-
1052- if ( parsedConfig ) {
1053- return XtabProvider . overrideModelConfig ( originalModelConfig , parsedConfig ) ;
1054- }
1055-
1056- return undefined ;
1012+ const modelConfig = this . modelService . selectedModelConfiguration ( ) ;
1013+ return XtabProvider . overrideModelConfig ( sourcedModelConfig , modelConfig ) ;
10571014 }
10581015
10591016 private static overrideModelConfig ( modelConfig : ModelConfig , overridingConfig : xtabPromptOptions . ModelConfiguration ) : ModelConfig {
0 commit comments