@@ -249,7 +249,16 @@ class SetupAgent extends Disposable implements IChatAgentImplementation {
249249 }
250250
251251 private async doInvoke ( request : IChatAgentRequest , progress : ( part : IChatProgress ) => void , chatService : IChatService , languageModelsService : ILanguageModelsService , chatWidgetService : IChatWidgetService , chatAgentService : IChatAgentService , languageModelToolsService : ILanguageModelToolsService ) : Promise < IChatAgentResult > {
252- if ( ! this . context . state . installed || this . context . state . disabled || this . context . state . untrusted || this . context . state . entitlement === ChatEntitlement . Available || this . context . state . entitlement === ChatEntitlement . Unknown ) {
252+ if (
253+ ! this . context . state . installed || // Extension not installed: run setup to install
254+ this . context . state . disabled || // Extension disabled: run setup to enable
255+ this . context . state . untrusted || // Workspace untrusted: run setup to ask for trust
256+ this . context . state . entitlement === ChatEntitlement . Available || // Entitlement available: run setup to sign up
257+ (
258+ this . context . state . entitlement === ChatEntitlement . Unknown && // Entitlement unknown: run setup to sign in / sign up
259+ ! this . chatEntitlementService . anonymous // unless anonymous access is enabled
260+ )
261+ ) {
253262 return this . doInvokeWithSetup ( request , progress , chatService , languageModelsService , chatWidgetService , chatAgentService , languageModelToolsService ) ;
254263 }
255264
@@ -925,12 +934,15 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
925934 return ; // TODO@bpasero eventually remove this when we figured out extension activation issues
926935 }
927936
937+ const defaultAgentDisposables = markAsSingleton ( new MutableDisposable ( ) ) ; // prevents flicker on window reload
938+ const vscodeAgentDisposables = markAsSingleton ( new MutableDisposable ( ) ) ;
939+
940+ const renameProviderDisposables = markAsSingleton ( new MutableDisposable ( ) ) ;
941+
928942 const updateRegistration = ( ) => {
929943
930944 // Agent + Tools
931945 {
932- const defaultAgentDisposables = markAsSingleton ( new MutableDisposable ( ) ) ; // prevents flicker on window reload
933- const vscodeAgentDisposables = markAsSingleton ( new MutableDisposable ( ) ) ;
934946 if ( ! context . state . hidden && ! context . state . disabled ) {
935947
936948 // Default Agents (always, even if installed to allow for speedy requests right on startup)
@@ -979,8 +991,6 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
979991
980992 // Rename Provider
981993 {
982- const renameProviderDisposables = markAsSingleton ( new MutableDisposable ( ) ) ;
983-
984994 if ( ! context . state . installed && ! context . state . hidden && ! context . state . disabled ) {
985995 if ( ! renameProviderDisposables . value ) {
986996 renameProviderDisposables . value = DefaultNewSymbolNamesProvider . registerProvider ( this . instantiationService , context , controller ) ;
0 commit comments