@theia/ai-copilot 1.70.0-next.7 → 1.70.0-next.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/browser/copilot-command-contribution.d.ts +1 -0
  2. package/lib/browser/copilot-command-contribution.d.ts.map +1 -1
  3. package/lib/browser/copilot-command-contribution.js +5 -2
  4. package/lib/browser/copilot-command-contribution.js.map +1 -1
  5. package/lib/browser/copilot-frontend-application-contribution.d.ts +12 -2
  6. package/lib/browser/copilot-frontend-application-contribution.d.ts.map +1 -1
  7. package/lib/browser/copilot-frontend-application-contribution.js +110 -11
  8. package/lib/browser/copilot-frontend-application-contribution.js.map +1 -1
  9. package/lib/browser/copilot-status-bar-contribution.d.ts +2 -1
  10. package/lib/browser/copilot-status-bar-contribution.d.ts.map +1 -1
  11. package/lib/browser/copilot-status-bar-contribution.js +11 -1
  12. package/lib/browser/copilot-status-bar-contribution.js.map +1 -1
  13. package/lib/common/copilot-auth-service.d.ts +2 -0
  14. package/lib/common/copilot-auth-service.d.ts.map +1 -1
  15. package/lib/common/copilot-language-models-manager.d.ts +16 -0
  16. package/lib/common/copilot-language-models-manager.d.ts.map +1 -1
  17. package/lib/common/copilot-language-models-manager.js +14 -1
  18. package/lib/common/copilot-language-models-manager.js.map +1 -1
  19. package/lib/common/copilot-preferences.d.ts +2 -1
  20. package/lib/common/copilot-preferences.d.ts.map +1 -1
  21. package/lib/common/copilot-preferences.js +15 -15
  22. package/lib/common/copilot-preferences.js.map +1 -1
  23. package/lib/node/copilot-auth-service-impl.d.ts.map +1 -1
  24. package/lib/node/copilot-auth-service-impl.js +12 -5
  25. package/lib/node/copilot-auth-service-impl.js.map +1 -1
  26. package/lib/node/copilot-auth-service-impl.spec.d.ts +2 -0
  27. package/lib/node/copilot-auth-service-impl.spec.d.ts.map +1 -0
  28. package/lib/node/copilot-auth-service-impl.spec.js +148 -0
  29. package/lib/node/copilot-auth-service-impl.spec.js.map +1 -0
  30. package/lib/node/copilot-language-model.d.ts.map +1 -1
  31. package/lib/node/copilot-language-model.js +2 -7
  32. package/lib/node/copilot-language-model.js.map +1 -1
  33. package/lib/node/copilot-language-models-manager-impl.d.ts +14 -0
  34. package/lib/node/copilot-language-models-manager-impl.d.ts.map +1 -1
  35. package/lib/node/copilot-language-models-manager-impl.js +61 -0
  36. package/lib/node/copilot-language-models-manager-impl.js.map +1 -1
  37. package/package.json +5 -5
  38. package/src/browser/copilot-command-contribution.ts +7 -3
  39. package/src/browser/copilot-frontend-application-contribution.ts +123 -14
  40. package/src/browser/copilot-status-bar-contribution.ts +11 -2
  41. package/src/common/copilot-auth-service.ts +2 -0
  42. package/src/common/copilot-language-models-manager.ts +23 -0
  43. package/src/common/copilot-preferences.ts +16 -15
  44. package/src/node/copilot-auth-service-impl.spec.ts +185 -0
  45. package/src/node/copilot-auth-service-impl.ts +12 -5
  46. package/src/node/copilot-language-model.ts +3 -9
  47. package/src/node/copilot-language-models-manager-impl.ts +69 -1
@@ -20,5 +20,6 @@ export declare class CopilotCommandContribution implements CommandContribution,
20
20
  protected init(): void;
21
21
  dispose(): void;
22
22
  registerCommands(registry: CommandRegistry): void;
23
+ protected isCopilotEnabled(): boolean;
23
24
  }
24
25
  //# sourceMappingURL=copilot-command-contribution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-command-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/copilot-command-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,EAAO,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtI,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGlF,yBAAiB,eAAe,CAAC;IACtB,MAAM,OAAO,EAAE,OAIrB,CAAC;IAEK,MAAM,QAAQ,EAAE,OAItB,CAAC;CACL;AAED;;GAEG;AACH,qBACa,0BAA2B,YAAW,mBAAmB,EAAE,UAAU;IAG9E,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAGnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAEjD,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAA8B;IACnE,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAG1D,SAAS,CAAC,IAAI,IAAI,IAAI;IAUtB,OAAO,IAAI,IAAI;IAIf,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;CA8BpD"}
1
+ {"version":3,"file":"copilot-command-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/copilot-command-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,EAAO,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtI,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGlF,yBAAiB,eAAe,CAAC;IACtB,MAAM,OAAO,EAAE,OAIrB,CAAC;IAEK,MAAM,QAAQ,EAAE,OAItB,CAAC;CACL;AAED;;GAEG;AACH,qBACa,0BAA2B,YAAW,mBAAmB,EAAE,UAAU;IAG9E,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAGnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAEjD,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAA8B;IACnE,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAG1D,SAAS,CAAC,IAAI,IAAI,IAAI;IAUtB,OAAO,IAAI,IAAI;IAIf,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IA+BjD,SAAS,CAAC,gBAAgB,IAAI,OAAO;CAGxC"}
@@ -59,7 +59,7 @@ let CopilotCommandContribution = class CopilotCommandContribution {
59
59
  }
60
60
  },
61
61
  isEnabled: () => !this.authState.isAuthenticated,
62
- isVisible: () => this.activationService.isActive
62
+ isVisible: () => this.activationService.isActive && this.isCopilotEnabled()
63
63
  });
64
64
  registry.registerCommand(CopilotCommands.SIGN_OUT, {
65
65
  execute: async () => {
@@ -74,9 +74,12 @@ let CopilotCommandContribution = class CopilotCommandContribution {
74
74
  }
75
75
  },
76
76
  isEnabled: () => this.authState.isAuthenticated,
77
- isVisible: () => this.activationService.isActive
77
+ isVisible: () => this.activationService.isActive && this.isCopilotEnabled()
78
78
  });
79
79
  }
80
+ isCopilotEnabled() {
81
+ return this.preferenceService.get(copilot_preferences_1.COPILOT_ENABLED_PREF, true);
82
+ }
80
83
  };
81
84
  exports.CopilotCommandContribution = CopilotCommandContribution;
82
85
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-command-contribution.js","sourceRoot":"","sources":["../../src/browser/copilot-command-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot-command-contribution.js","sourceRoot":"","sources":["../../src/browser/copilot-command-contribution.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,25 @@
1
- import { PreferenceService } from '@theia/core';
1
+ import { CommandService, PreferenceService } from '@theia/core';
2
2
  import { FrontendApplicationContribution } from '@theia/core/lib/browser';
3
- import { CopilotLanguageModelsManager, CopilotModelDescription } from '../common';
3
+ import { MessageService } from '@theia/core/lib/common/message-service';
4
+ import { CopilotAuthService, CopilotLanguageModelsManager, CopilotModelDescription } from '../common';
4
5
  import { AICorePreferences } from '@theia/ai-core/lib/common/ai-core-preferences';
5
6
  export declare class CopilotFrontendApplicationContribution implements FrontendApplicationContribution {
6
7
  protected readonly preferenceService: PreferenceService;
7
8
  protected readonly manager: CopilotLanguageModelsManager;
8
9
  protected readonly aiCorePreferences: AICorePreferences;
10
+ protected readonly authService: CopilotAuthService;
11
+ protected readonly messageService: MessageService;
12
+ protected readonly commandService: CommandService;
9
13
  protected prevModels: string[];
14
+ protected useAutoDiscovery: boolean;
10
15
  onStart(): void;
16
+ protected isCopilotEnabled(): boolean;
17
+ protected initializeModels(): Promise<void>;
18
+ protected discoverAndRegisterModels(): Promise<void>;
19
+ protected removeAllCopilotModels(): void;
11
20
  protected handleModelChanges(newModels: string[]): void;
12
21
  protected updateAllModels(): void;
22
+ protected notifyTokenMigration(): Promise<void>;
13
23
  protected createCopilotModelDescription(modelId: string): CopilotModelDescription;
14
24
  }
15
25
  //# sourceMappingURL=copilot-frontend-application-contribution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/copilot-frontend-application-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAuB,MAAM,WAAW,CAAC;AAEvG,OAAO,EAAE,iBAAiB,EAA+B,MAAM,+CAA+C,CAAC;AAE/G,qBACa,sCAAuC,YAAW,+BAA+B;IAG1F,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;IAGzD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC,OAAO,IAAI,IAAI;IAsBf,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAYvD,SAAS,CAAC,eAAe,IAAI,IAAI;IAKjC,SAAS,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB;CAYpF"}
1
+ {"version":3,"file":"copilot-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/copilot-frontend-application-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAO,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,uBAAuB,EAAuB,MAAM,WAAW,CAAC;AAE3H,OAAO,EAAE,iBAAiB,EAA+B,MAAM,+CAA+C,CAAC;AAG/G,qBACa,sCAAuC,YAAW,+BAA+B;IAG1F,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;IAGzD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAGnD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAElD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IACpC,SAAS,CAAC,gBAAgB,UAAS;IAEnC,OAAO,IAAI,IAAI;IA4Df,SAAS,CAAC,gBAAgB,IAAI,OAAO;cAIrB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;cAcjC,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB1D,SAAS,CAAC,sBAAsB,IAAI,IAAI;IASxC,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAYvD,SAAS,CAAC,eAAe,IAAI,IAAI;cASjB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrD,SAAS,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB;CAYpF"}
@@ -19,33 +19,109 @@ exports.CopilotFrontendApplicationContribution = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const inversify_1 = require("@theia/core/shared/inversify");
21
21
  const core_1 = require("@theia/core");
22
+ const message_service_1 = require("@theia/core/lib/common/message-service");
22
23
  const common_1 = require("../common");
23
24
  const copilot_preferences_1 = require("../common/copilot-preferences");
24
25
  const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
26
+ const copilot_command_contribution_1 = require("./copilot-command-contribution");
25
27
  let CopilotFrontendApplicationContribution = class CopilotFrontendApplicationContribution {
26
28
  constructor() {
27
29
  this.prevModels = [];
30
+ this.useAutoDiscovery = false;
28
31
  }
29
32
  onStart() {
30
- this.preferenceService.ready.then(() => {
31
- const models = this.preferenceService.get(copilot_preferences_1.COPILOT_MODELS_PREF, []);
32
- this.manager.createOrUpdateLanguageModels(...models.map((modelId) => this.createCopilotModelDescription(modelId)));
33
- this.prevModels = [...models];
33
+ this.preferenceService.ready.then(async () => {
34
+ const enterpriseUrl = this.preferenceService.get(copilot_preferences_1.COPILOT_ENTERPRISE_URL_PREF);
35
+ this.manager.setEnterpriseUrl(enterpriseUrl || undefined);
36
+ if (this.isCopilotEnabled()) {
37
+ const authState = await this.authService.getAuthState();
38
+ if (authState.migrationRequired) {
39
+ this.notifyTokenMigration();
40
+ }
41
+ await this.initializeModels();
42
+ }
34
43
  this.preferenceService.onPreferenceChanged(event => {
35
- if (event.preferenceName === copilot_preferences_1.COPILOT_MODELS_PREF) {
36
- this.handleModelChanges(this.preferenceService.get(copilot_preferences_1.COPILOT_MODELS_PREF, []));
44
+ if (event.preferenceName === copilot_preferences_1.COPILOT_ENABLED_PREF) {
45
+ if (this.isCopilotEnabled()) {
46
+ this.initializeModels();
47
+ }
48
+ else {
49
+ this.removeAllCopilotModels();
50
+ }
51
+ }
52
+ else if (event.preferenceName === copilot_preferences_1.COPILOT_MODEL_OVERRIDES_PREF && this.isCopilotEnabled()) {
53
+ const newModels = this.preferenceService.get(copilot_preferences_1.COPILOT_MODEL_OVERRIDES_PREF, []);
54
+ if (newModels.length > 0) {
55
+ this.useAutoDiscovery = false;
56
+ this.handleModelChanges(newModels);
57
+ }
58
+ else {
59
+ this.useAutoDiscovery = true;
60
+ this.removeAllCopilotModels();
61
+ this.discoverAndRegisterModels();
62
+ }
37
63
  }
38
- else if (event.preferenceName === copilot_preferences_1.COPILOT_ENTERPRISE_URL_PREF) {
39
- this.manager.refreshModelsStatus();
64
+ else if (event.preferenceName === copilot_preferences_1.COPILOT_ENTERPRISE_URL_PREF && this.isCopilotEnabled()) {
65
+ const url = this.preferenceService.get(copilot_preferences_1.COPILOT_ENTERPRISE_URL_PREF);
66
+ this.manager.setEnterpriseUrl(url || undefined);
67
+ if (this.useAutoDiscovery) {
68
+ this.removeAllCopilotModels();
69
+ this.discoverAndRegisterModels();
70
+ }
71
+ else {
72
+ this.manager.refreshModelsStatus();
73
+ }
74
+ }
75
+ });
76
+ this.authService.onAuthStateChanged(async (state) => {
77
+ if (this.isCopilotEnabled() && this.useAutoDiscovery) {
78
+ if (state.isAuthenticated) {
79
+ await this.discoverAndRegisterModels();
80
+ }
81
+ else {
82
+ this.removeAllCopilotModels();
83
+ }
40
84
  }
41
85
  });
42
86
  this.aiCorePreferences.onPreferenceChanged(event => {
43
- if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) {
87
+ if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES && this.isCopilotEnabled()) {
44
88
  this.updateAllModels();
45
89
  }
46
90
  });
47
91
  });
48
92
  }
93
+ isCopilotEnabled() {
94
+ return this.preferenceService.get(copilot_preferences_1.COPILOT_ENABLED_PREF, true);
95
+ }
96
+ async initializeModels() {
97
+ const configuredModels = this.preferenceService.get(copilot_preferences_1.COPILOT_MODEL_OVERRIDES_PREF, []);
98
+ if (configuredModels.length > 0) {
99
+ this.useAutoDiscovery = false;
100
+ this.manager.createOrUpdateLanguageModels(...configuredModels.map((modelId) => this.createCopilotModelDescription(modelId)));
101
+ this.prevModels = [...configuredModels];
102
+ }
103
+ else {
104
+ this.useAutoDiscovery = true;
105
+ await this.discoverAndRegisterModels();
106
+ }
107
+ }
108
+ async discoverAndRegisterModels() {
109
+ const modelIds = await this.manager.fetchAvailableModelIds();
110
+ if (modelIds.length > 0) {
111
+ const modelsToRemove = this.prevModels.filter(m => !modelIds.includes(m));
112
+ if (modelsToRemove.length > 0) {
113
+ this.manager.removeLanguageModels(...modelsToRemove.map(model => `${common_1.COPILOT_PROVIDER_ID}/${model}`));
114
+ }
115
+ this.manager.createOrUpdateLanguageModels(...modelIds.map((modelId) => this.createCopilotModelDescription(modelId)));
116
+ this.prevModels = [...modelIds];
117
+ }
118
+ }
119
+ removeAllCopilotModels() {
120
+ if (this.prevModels.length > 0) {
121
+ this.manager.removeLanguageModels(...this.prevModels.map(model => `${common_1.COPILOT_PROVIDER_ID}/${model}`));
122
+ this.prevModels = [];
123
+ }
124
+ }
49
125
  handleModelChanges(newModels) {
50
126
  const oldModels = new Set(this.prevModels);
51
127
  const updatedModels = new Set(newModels);
@@ -53,12 +129,23 @@ let CopilotFrontendApplicationContribution = class CopilotFrontendApplicationCon
53
129
  const modelsToAdd = [...updatedModels].filter(model => !oldModels.has(model));
54
130
  this.manager.removeLanguageModels(...modelsToRemove.map(model => `${common_1.COPILOT_PROVIDER_ID}/${model}`));
55
131
  this.manager.createOrUpdateLanguageModels(...modelsToAdd.map((modelId) => this.createCopilotModelDescription(modelId)));
56
- this.prevModels = newModels;
132
+ this.prevModels = [...newModels];
57
133
  }
58
134
  updateAllModels() {
59
- const models = this.preferenceService.get(copilot_preferences_1.COPILOT_MODELS_PREF, []);
135
+ if (this.useAutoDiscovery) {
136
+ this.discoverAndRegisterModels();
137
+ return;
138
+ }
139
+ const models = this.preferenceService.get(copilot_preferences_1.COPILOT_MODEL_OVERRIDES_PREF, []);
60
140
  this.manager.createOrUpdateLanguageModels(...models.map((modelId) => this.createCopilotModelDescription(modelId)));
61
141
  }
142
+ async notifyTokenMigration() {
143
+ const signIn = core_1.nls.localize('theia/ai/copilot/commands/signIn', 'Sign in to GitHub Copilot');
144
+ const action = await this.messageService.info(core_1.nls.localize('theia/ai/copilot/tokenMigration', 'Your GitHub Copilot session used an outdated authentication method and has been cleared. Please sign in again to access all available models.'), signIn);
145
+ if (action === signIn) {
146
+ this.commandService.executeCommand(copilot_command_contribution_1.CopilotCommands.SIGN_IN.id);
147
+ }
148
+ }
62
149
  createCopilotModelDescription(modelId) {
63
150
  const id = `${common_1.COPILOT_PROVIDER_ID}/${modelId}`;
64
151
  const maxRetries = this.aiCorePreferences.get(ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) ?? 3;
@@ -84,6 +171,18 @@ tslib_1.__decorate([
84
171
  (0, inversify_1.inject)(ai_core_preferences_1.AICorePreferences),
85
172
  tslib_1.__metadata("design:type", Object)
86
173
  ], CopilotFrontendApplicationContribution.prototype, "aiCorePreferences", void 0);
174
+ tslib_1.__decorate([
175
+ (0, inversify_1.inject)(common_1.CopilotAuthService),
176
+ tslib_1.__metadata("design:type", Object)
177
+ ], CopilotFrontendApplicationContribution.prototype, "authService", void 0);
178
+ tslib_1.__decorate([
179
+ (0, inversify_1.inject)(message_service_1.MessageService),
180
+ tslib_1.__metadata("design:type", message_service_1.MessageService)
181
+ ], CopilotFrontendApplicationContribution.prototype, "messageService", void 0);
182
+ tslib_1.__decorate([
183
+ (0, inversify_1.inject)(core_1.CommandService),
184
+ tslib_1.__metadata("design:type", Object)
185
+ ], CopilotFrontendApplicationContribution.prototype, "commandService", void 0);
87
186
  exports.CopilotFrontendApplicationContribution = CopilotFrontendApplicationContribution = tslib_1.__decorate([
88
187
  (0, inversify_1.injectable)()
89
188
  ], CopilotFrontendApplicationContribution);
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/copilot-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/copilot-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { FrontendApplicationContribution } from '@theia/core/lib/browser';
2
2
  import { StatusBar } from '@theia/core/lib/browser/status-bar/status-bar-types';
3
- import { Disposable, DisposableCollection } from '@theia/core';
3
+ import { Disposable, DisposableCollection, PreferenceService } from '@theia/core';
4
4
  import { AIActivationService } from '@theia/ai-core/lib/browser';
5
5
  import { CopilotAuthService, CopilotAuthState } from '../common/copilot-auth-service';
6
6
  /**
@@ -10,6 +10,7 @@ export declare class CopilotStatusBarContribution implements FrontendApplication
10
10
  protected readonly statusBar: StatusBar;
11
11
  protected readonly authService: CopilotAuthService;
12
12
  protected readonly activationService: AIActivationService;
13
+ protected readonly preferenceService: PreferenceService;
13
14
  protected authState: CopilotAuthState;
14
15
  protected readonly toDispose: DisposableCollection;
15
16
  protected init(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-status-bar-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/copilot-status-bar-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAsB,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAO,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKtF;;GAEG;AACH,qBACa,4BAA6B,YAAW,+BAA+B,EAAE,UAAU;IAG5F,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAGxC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAGnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAE1D,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAA8B;IACnE,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAG1D,SAAS,CAAC,IAAI,IAAI,IAAI;IAUtB,OAAO,IAAI,IAAI;IAIf,OAAO,IAAI,IAAI;IAOf,SAAS,CAAC,eAAe,IAAI,IAAI;CAiCpC"}
1
+ {"version":3,"file":"copilot-status-bar-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/copilot-status-bar-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAsB,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAO,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAMtF;;GAEG;AACH,qBACa,4BAA6B,YAAW,+BAA+B,EAAE,UAAU;IAG5F,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAGxC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAGnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAA8B;IACnE,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAG1D,SAAS,CAAC,IAAI,IAAI,IAAI;IAetB,OAAO,IAAI,IAAI;IAIf,OAAO,IAAI,IAAI;IAOf,SAAS,CAAC,eAAe,IAAI,IAAI;CAiCpC"}
@@ -23,6 +23,7 @@ const core_1 = require("@theia/core");
23
23
  const browser_1 = require("@theia/ai-core/lib/browser");
24
24
  const copilot_auth_service_1 = require("../common/copilot-auth-service");
25
25
  const copilot_command_contribution_1 = require("./copilot-command-contribution");
26
+ const copilot_preferences_1 = require("../common/copilot-preferences");
26
27
  const COPILOT_STATUS_BAR_ID = 'copilot-auth-status';
27
28
  /**
28
29
  * Frontend contribution that displays GitHub Copilot authentication status in the status bar.
@@ -40,6 +41,11 @@ let CopilotStatusBarContribution = class CopilotStatusBarContribution {
40
41
  this.toDispose.push(this.activationService.onDidChangeActiveStatus(() => {
41
42
  this.updateStatusBar();
42
43
  }));
44
+ this.toDispose.push(this.preferenceService.onPreferenceChanged(event => {
45
+ if (event.preferenceName === copilot_preferences_1.COPILOT_ENABLED_PREF) {
46
+ this.updateStatusBar();
47
+ }
48
+ }));
43
49
  }
44
50
  dispose() {
45
51
  this.toDispose.dispose();
@@ -51,7 +57,7 @@ let CopilotStatusBarContribution = class CopilotStatusBarContribution {
51
57
  });
52
58
  }
53
59
  updateStatusBar() {
54
- if (!this.activationService.isActive) {
60
+ if (!this.activationService.isActive || !this.preferenceService.get(copilot_preferences_1.COPILOT_ENABLED_PREF, true)) {
55
61
  this.statusBar.removeElement(COPILOT_STATUS_BAR_ID);
56
62
  return;
57
63
  }
@@ -92,6 +98,10 @@ tslib_1.__decorate([
92
98
  (0, inversify_1.inject)(browser_1.AIActivationService),
93
99
  tslib_1.__metadata("design:type", Object)
94
100
  ], CopilotStatusBarContribution.prototype, "activationService", void 0);
101
+ tslib_1.__decorate([
102
+ (0, inversify_1.inject)(core_1.PreferenceService),
103
+ tslib_1.__metadata("design:type", Object)
104
+ ], CopilotStatusBarContribution.prototype, "preferenceService", void 0);
95
105
  tslib_1.__decorate([
96
106
  (0, inversify_1.postConstruct)(),
97
107
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-status-bar-contribution.js","sourceRoot":"","sources":["../../src/browser/copilot-status-bar-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot-status-bar-contribution.js","sourceRoot":"","sources":["../../src/browser/copilot-status-bar-contribution.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,8 @@ export interface CopilotAuthState {
27
27
  accountLabel?: string;
28
28
  /** GitHub Enterprise URL if using enterprise */
29
29
  enterpriseUrl?: string;
30
+ /** True when credentials were cleared due to a client ID migration */
31
+ migrationRequired?: boolean;
30
32
  }
31
33
  /**
32
34
  * Client interface for receiving auth state change notifications.
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-auth-service.d.ts","sourceRoot":"","sources":["../../src/common/copilot-auth-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,mFAAmF;IACnF,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;;OAIG;IACH,kBAAkB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExE;;;;;;OAMG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7F;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE1C;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI,CAAC;IAE9D;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CACxD"}
1
+ {"version":3,"file":"copilot-auth-service.d.ts","sourceRoot":"","sources":["../../src/common/copilot-auth-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,mFAAmF;IACnF,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;;OAIG;IACH,kBAAkB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExE;;;;;;OAMG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7F;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE1C;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI,CAAC;IAE9D;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CACxD"}
@@ -1,6 +1,12 @@
1
1
  export declare const COPILOT_LANGUAGE_MODELS_MANAGER_PATH = "/services/copilot/language-model-manager";
2
2
  export declare const CopilotLanguageModelsManager: unique symbol;
3
3
  export declare const COPILOT_PROVIDER_ID = "copilot";
4
+ export declare const COPILOT_API_BASE_URL = "https://api.githubcopilot.com";
5
+ export declare const COPILOT_USER_AGENT = "Theia-Copilot/1.0.0";
6
+ /**
7
+ * Returns the Copilot API base URL, taking an optional GitHub Enterprise domain into account.
8
+ */
9
+ export declare function getCopilotApiBaseUrl(enterpriseUrl?: string): string;
4
10
  export interface CopilotModelDescription {
5
11
  /**
6
12
  * The identifier of the model which will be shown in the UI.
@@ -33,9 +39,19 @@ export interface CopilotLanguageModelsManager {
33
39
  * Remove language models from the registry.
34
40
  */
35
41
  removeLanguageModels(...modelIds: string[]): void;
42
+ /**
43
+ * Set the GitHub Enterprise URL for Copilot API requests.
44
+ */
45
+ setEnterpriseUrl(url: string | undefined): void;
36
46
  /**
37
47
  * Refresh the status of all Copilot models (e.g., after authentication state changes).
38
48
  */
39
49
  refreshModelsStatus(): Promise<void>;
50
+ /**
51
+ * Fetches the list of available model IDs from the Copilot API.
52
+ * Requires authentication. Returns an empty array if not authenticated
53
+ * or if the API call fails.
54
+ */
55
+ fetchAvailableModelIds(): Promise<string[]>;
40
56
  }
41
57
  //# sourceMappingURL=copilot-language-models-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/copilot-language-models-manager.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,oCAAoC,6CAA6C,CAAC;AAC/F,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AAEnF,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,MAAM,WAAW,uBAAuB;IACpC;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,4BAA4B,CAAC,GAAG,MAAM,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF;;OAEG;IACH,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"}
1
+ {"version":3,"file":"copilot-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/copilot-language-models-manager.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,oCAAoC,6CAA6C,CAAC;AAC/F,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AAEnF,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,oBAAoB,kCAAkC,CAAC;AACpE,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAExD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,MAAM,WAAW,uBAAuB;IACpC;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,4BAA4B,CAAC,GAAG,MAAM,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF;;OAEG;IACH,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAChD;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC;;;;OAIG;IACH,sBAAsB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/C"}
@@ -15,8 +15,21 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.COPILOT_PROVIDER_ID = exports.CopilotLanguageModelsManager = exports.COPILOT_LANGUAGE_MODELS_MANAGER_PATH = void 0;
18
+ exports.COPILOT_USER_AGENT = exports.COPILOT_API_BASE_URL = exports.COPILOT_PROVIDER_ID = exports.CopilotLanguageModelsManager = exports.COPILOT_LANGUAGE_MODELS_MANAGER_PATH = void 0;
19
+ exports.getCopilotApiBaseUrl = getCopilotApiBaseUrl;
19
20
  exports.COPILOT_LANGUAGE_MODELS_MANAGER_PATH = '/services/copilot/language-model-manager';
20
21
  exports.CopilotLanguageModelsManager = Symbol('CopilotLanguageModelsManager');
21
22
  exports.COPILOT_PROVIDER_ID = 'copilot';
23
+ exports.COPILOT_API_BASE_URL = 'https://api.githubcopilot.com';
24
+ exports.COPILOT_USER_AGENT = 'Theia-Copilot/1.0.0';
25
+ /**
26
+ * Returns the Copilot API base URL, taking an optional GitHub Enterprise domain into account.
27
+ */
28
+ function getCopilotApiBaseUrl(enterpriseUrl) {
29
+ if (enterpriseUrl) {
30
+ const domain = enterpriseUrl.replace(/^https?:\/\//, '').replace(/\/$/, '');
31
+ return `https://copilot-api.${domain}`;
32
+ }
33
+ return exports.COPILOT_API_BASE_URL;
34
+ }
22
35
  //# sourceMappingURL=copilot-language-models-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-language-models-manager.js","sourceRoot":"","sources":["../../src/common/copilot-language-models-manager.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEnE,QAAA,oCAAoC,GAAG,0CAA0C,CAAC;AAClF,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAEtE,QAAA,mBAAmB,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"copilot-language-models-manager.js","sourceRoot":"","sources":["../../src/common/copilot-language-models-manager.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAYhF,oDAMC;AAhBY,QAAA,oCAAoC,GAAG,0CAA0C,CAAC;AAClF,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAEtE,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,oBAAoB,GAAG,+BAA+B,CAAC;AACvD,QAAA,kBAAkB,GAAG,qBAAqB,CAAC;AAExD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,aAAsB;IACvD,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5E,OAAO,uBAAuB,MAAM,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,4BAAoB,CAAC;AAChC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { PreferenceSchema } from '@theia/core';
2
- export declare const COPILOT_MODELS_PREF = "ai-features.copilot.models";
2
+ export declare const COPILOT_ENABLED_PREF = "ai-features.copilot.enabled";
3
+ export declare const COPILOT_MODEL_OVERRIDES_PREF = "ai-features.copilot.modelOverrides";
3
4
  export declare const COPILOT_ENTERPRISE_URL_PREF = "ai-features.copilot.enterpriseUrl";
4
5
  export declare const CopilotPreferencesSchema: PreferenceSchema;
5
6
  //# sourceMappingURL=copilot-preferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-preferences.d.ts","sourceRoot":"","sources":["../../src/common/copilot-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAChE,eAAO,MAAM,2BAA2B,sCAAsC,CAAC;AAE/E,eAAO,MAAM,wBAAwB,EAAE,gBA8BtC,CAAC"}
1
+ {"version":3,"file":"copilot-preferences.d.ts","sourceRoot":"","sources":["../../src/common/copilot-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAClE,eAAO,MAAM,4BAA4B,uCAAuC,CAAC;AACjF,eAAO,MAAM,2BAA2B,sCAAsC,CAAC;AAE/E,eAAO,MAAM,wBAAwB,EAAE,gBA8BtC,CAAC"}
@@ -15,28 +15,28 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.CopilotPreferencesSchema = exports.COPILOT_ENTERPRISE_URL_PREF = exports.COPILOT_MODELS_PREF = void 0;
18
+ exports.CopilotPreferencesSchema = exports.COPILOT_ENTERPRISE_URL_PREF = exports.COPILOT_MODEL_OVERRIDES_PREF = exports.COPILOT_ENABLED_PREF = void 0;
19
19
  const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
20
20
  const core_1 = require("@theia/core");
21
- exports.COPILOT_MODELS_PREF = 'ai-features.copilot.models';
21
+ exports.COPILOT_ENABLED_PREF = 'ai-features.copilot.enabled';
22
+ exports.COPILOT_MODEL_OVERRIDES_PREF = 'ai-features.copilot.modelOverrides';
22
23
  exports.COPILOT_ENTERPRISE_URL_PREF = 'ai-features.copilot.enterpriseUrl';
23
24
  exports.CopilotPreferencesSchema = {
24
25
  properties: {
25
- [exports.COPILOT_MODELS_PREF]: {
26
+ [exports.COPILOT_ENABLED_PREF]: {
27
+ type: 'boolean',
28
+ markdownDescription: core_1.nls.localize('theia/ai/copilot/enabled/mdDescription', 'Enable the GitHub Copilot provider. When enabled, a status bar entry '
29
+ + 'appears for authentication and available models are discovered from your Copilot subscription.'),
30
+ title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
31
+ default: true
32
+ },
33
+ [exports.COPILOT_MODEL_OVERRIDES_PREF]: {
26
34
  type: 'array',
27
- description: core_1.nls.localize('theia/ai/copilot/models/description', 'GitHub Copilot models to use. Available models depend on your Copilot subscription.'),
35
+ markdownDescription: core_1.nls.localize('theia/ai/copilot/modelOverrides/mdDescription', 'Override the automatically discovered GitHub Copilot models. '
36
+ + 'When empty (default), available models are discovered from your Copilot subscription. '
37
+ + 'Set explicit model IDs to override auto-discovery.'),
28
38
  title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
29
- // https://models.dev/?search=copilot
30
- default: [
31
- 'claude-haiku-4.5',
32
- 'claude-sonnet-4.5',
33
- 'claude-opus-4.5',
34
- 'gemini-2.5-pro',
35
- 'gpt-4.1',
36
- 'gpt-4o',
37
- 'gpt-5-mini',
38
- 'gpt-5.2',
39
- ],
39
+ default: [],
40
40
  items: {
41
41
  type: 'string'
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-preferences.js","sourceRoot":"","sources":["../../src/common/copilot-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,uFAA0F;AAC1F,sCAAoD;AAEvC,QAAA,mBAAmB,GAAG,4BAA4B,CAAC;AACnD,QAAA,2BAA2B,GAAG,mCAAmC,CAAC;AAElE,QAAA,wBAAwB,GAAqB;IACtD,UAAU,EAAE;QACR,CAAC,2BAAmB,CAAC,EAAE;YACnB,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,qCAAqC,EAC3D,qFAAqF,CAAC;YAC1F,KAAK,EAAE,+CAAyB;YAChC,qCAAqC;YACrC,OAAO,EAAE;gBACL,kBAAkB;gBAClB,mBAAmB;gBACnB,iBAAiB;gBACjB,gBAAgB;gBAChB,SAAS;gBACT,QAAQ;gBACR,YAAY;gBACZ,SAAS;aACZ;YACD,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,CAAC,mCAA2B,CAAC,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,8CAA8C,EAC5E,sGAAsG,CAAC;YAC3G,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE,EAAE;SACd;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"copilot-preferences.js","sourceRoot":"","sources":["../../src/common/copilot-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,uFAA0F;AAC1F,sCAAoD;AAEvC,QAAA,oBAAoB,GAAG,6BAA6B,CAAC;AACrD,QAAA,4BAA4B,GAAG,oCAAoC,CAAC;AACpE,QAAA,2BAA2B,GAAG,mCAAmC,CAAC;AAElE,QAAA,wBAAwB,GAAqB;IACtD,UAAU,EAAE;QACR,CAAC,4BAAoB,CAAC,EAAE;YACpB,IAAI,EAAE,SAAS;YACf,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,wCAAwC,EACtE,uEAAuE;kBACrE,gGAAgG,CAAC;YACvG,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE,IAAI;SAChB;QACD,CAAC,oCAA4B,CAAC,EAAE;YAC5B,IAAI,EAAE,OAAO;YACb,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,+CAA+C,EAC7E,+DAA+D;kBAC7D,wFAAwF;kBACxF,oDAAoD,CAAC;YAC3D,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,CAAC,mCAA2B,CAAC,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,8CAA8C,EAC5E,sGAAsG,CAAC;YAC3G,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE,EAAE;SACd;KACJ;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-auth-service-impl.d.ts","sourceRoot":"","sources":["../../src/node/copilot-auth-service-impl.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,gCAAgC,CAAC;AAqBxC;;;GAGG;AACH,qBACa,sBAAuB,YAAW,kBAAkB;IAG7D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAEpD,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACvD,SAAS,CAAC,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAEpD,SAAS,CAAC,QAAQ,CAAC,yBAAyB,4BAAmC;IAC/E,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAwC;IAE5F,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI;IAI7D,SAAS,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAgBhG,kBAAkB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyBvE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAsFlF,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAwBrG,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAwBzC,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAMxD,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7C"}
1
+ {"version":3,"file":"copilot-auth-service-impl.d.ts","sourceRoot":"","sources":["../../src/node/copilot-auth-service-impl.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,gCAAgC,CAAC;AAqBxC;;;GAGG;AACH,qBACa,sBAAuB,YAAW,kBAAkB;IAG7D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAEpD,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACvD,SAAS,CAAC,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAEpD,SAAS,CAAC,QAAQ,CAAC,yBAAyB,4BAAmC;IAC/E,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAwC;IAE5F,SAAS,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI;IAI7D,SAAS,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAgBhG,kBAAkB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyBvE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAsFlF,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAwBrG,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA+BzC,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAMxD,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7C"}
@@ -20,12 +20,12 @@ const tslib_1 = require("tslib");
20
20
  const inversify_1 = require("@theia/core/shared/inversify");
21
21
  const core_1 = require("@theia/core");
22
22
  const key_store_1 = require("@theia/core/lib/common/key-store");
23
- const COPILOT_CLIENT_ID = 'Iv23ctNZvWb5IGBKdyPY';
23
+ const common_1 = require("../common");
24
+ const COPILOT_CLIENT_ID = 'Ov23liS2vINy9VOAweyv'; // 'Theia Copilot OAuth Access' Client ID
24
25
  const COPILOT_SCOPE = 'read:user';
25
26
  const COPILOT_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:device_code';
26
27
  const KEYSTORE_SERVICE = 'theia-copilot-auth';
27
28
  const KEYSTORE_ACCOUNT = 'github-copilot';
28
- const USER_AGENT = 'Theia-Copilot/1.0.0';
29
29
  /**
30
30
  * Maximum number of polling attempts for token retrieval.
31
31
  * With a default 5-second interval, this allows approximately 5 minutes of polling.
@@ -65,7 +65,7 @@ let CopilotAuthServiceImpl = class CopilotAuthServiceImpl {
65
65
  headers: {
66
66
  'Accept': 'application/json',
67
67
  'Content-Type': 'application/json',
68
- 'User-Agent': USER_AGENT
68
+ 'User-Agent': common_1.COPILOT_USER_AGENT
69
69
  },
70
70
  body: JSON.stringify({
71
71
  client_id: COPILOT_CLIENT_ID,
@@ -90,7 +90,7 @@ let CopilotAuthServiceImpl = class CopilotAuthServiceImpl {
90
90
  headers: {
91
91
  'Accept': 'application/json',
92
92
  'Content-Type': 'application/json',
93
- 'User-Agent': USER_AGENT
93
+ 'User-Agent': common_1.COPILOT_USER_AGENT
94
94
  },
95
95
  body: JSON.stringify({
96
96
  client_id: COPILOT_CLIENT_ID,
@@ -150,7 +150,7 @@ let CopilotAuthServiceImpl = class CopilotAuthServiceImpl {
150
150
  const response = await fetch(`${apiBaseUrl}/user`, {
151
151
  headers: {
152
152
  'Authorization': `Bearer ${accessToken}`,
153
- 'User-Agent': USER_AGENT,
153
+ 'User-Agent': common_1.COPILOT_USER_AGENT,
154
154
  'Accept': 'application/vnd.github.v3+json'
155
155
  }
156
156
  });
@@ -172,6 +172,13 @@ let CopilotAuthServiceImpl = class CopilotAuthServiceImpl {
172
172
  const stored = await this.keyStoreService.getPassword(KEYSTORE_SERVICE, KEYSTORE_ACCOUNT);
173
173
  if (stored) {
174
174
  const credentials = JSON.parse(stored);
175
+ // Tokens from the current OAuth App start with 'gho_'; other prefixes (e.g. 'ghu_') indicate a token from the previous GitHub App (Iv-prefixed client ID).
176
+ if (!credentials.accessToken.startsWith('gho_')) {
177
+ console.info('Copilot: clearing outdated GitHub App token. Please sign in again.');
178
+ await this.keyStoreService.deletePassword(KEYSTORE_SERVICE, KEYSTORE_ACCOUNT);
179
+ this.cachedState = { isAuthenticated: false, migrationRequired: true };
180
+ return this.cachedState;
181
+ }
175
182
  this.cachedState = {
176
183
  isAuthenticated: true,
177
184
  accountLabel: credentials.accountLabel,