@theia/ai-code-completion 1.62.0-next.3 → 1.62.0

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 (26) hide show
  1. package/lib/browser/ai-code-completion-preference.d.ts +1 -0
  2. package/lib/browser/ai-code-completion-preference.d.ts.map +1 -1
  3. package/lib/browser/ai-code-completion-preference.js +9 -1
  4. package/lib/browser/ai-code-completion-preference.js.map +1 -1
  5. package/lib/browser/ai-code-frontend-application-contribution.d.ts +3 -1
  6. package/lib/browser/ai-code-frontend-application-contribution.d.ts.map +1 -1
  7. package/lib/browser/ai-code-frontend-application-contribution.js +29 -9
  8. package/lib/browser/ai-code-frontend-application-contribution.js.map +1 -1
  9. package/lib/browser/code-completion-agent.d.ts +2 -3
  10. package/lib/browser/code-completion-agent.d.ts.map +1 -1
  11. package/lib/browser/code-completion-agent.js +2 -18
  12. package/lib/browser/code-completion-agent.js.map +1 -1
  13. package/lib/browser/code-completion-debouncer.d.ts +5 -0
  14. package/lib/browser/code-completion-debouncer.d.ts.map +1 -0
  15. package/lib/browser/code-completion-debouncer.js +35 -0
  16. package/lib/browser/code-completion-debouncer.js.map +1 -0
  17. package/lib/browser/code-completion-prompt-template.d.ts +2 -2
  18. package/lib/browser/code-completion-prompt-template.d.ts.map +1 -1
  19. package/lib/browser/code-completion-prompt-template.js +12 -11
  20. package/lib/browser/code-completion-prompt-template.js.map +1 -1
  21. package/package.json +8 -8
  22. package/src/browser/ai-code-completion-preference.ts +9 -0
  23. package/src/browser/ai-code-frontend-application-contribution.ts +37 -5
  24. package/src/browser/code-completion-agent.ts +6 -20
  25. package/src/browser/code-completion-debouncer.ts +35 -0
  26. package/src/browser/code-completion-prompt-template.ts +8 -7
@@ -1,5 +1,6 @@
1
1
  import { PreferenceSchema } from '@theia/core/lib/browser/preferences/preference-contribution';
2
2
  export declare const PREF_AI_INLINE_COMPLETION_AUTOMATIC_ENABLE = "ai-features.codeCompletion.automaticCodeCompletion";
3
+ export declare const PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY = "ai-features.codeCompletion.debounceDelay";
3
4
  export declare const PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS = "ai-features.codeCompletion.excludedFileExtensions";
4
5
  export declare const PREF_AI_INLINE_COMPLETION_MAX_CONTEXT_LINES = "ai-features.codeCompletion.maxContextLines";
5
6
  export declare const PREF_AI_INLINE_COMPLETION_STRIP_BACKTICKS = "ai-features.codeCompletion.stripBackticks";
@@ -1 +1 @@
1
- {"version":3,"file":"ai-code-completion-preference.d.ts","sourceRoot":"","sources":["../../src/browser/ai-code-completion-preference.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAI/F,eAAO,MAAM,0CAA0C,uDAAuD,CAAC;AAC/G,eAAO,MAAM,6CAA6C,sDAAsD,CAAC;AACjH,eAAO,MAAM,2CAA2C,+CAA+C,CAAC;AACxG,eAAO,MAAM,yCAAyC,8CAA8C,CAAC;AAErG,eAAO,MAAM,iCAAiC,EAAE,gBAuC/C,CAAC"}
1
+ {"version":3,"file":"ai-code-completion-preference.d.ts","sourceRoot":"","sources":["../../src/browser/ai-code-completion-preference.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAI/F,eAAO,MAAM,0CAA0C,uDAAuD,CAAC;AAC/G,eAAO,MAAM,wCAAwC,6CAA6C,CAAC;AACnG,eAAO,MAAM,6CAA6C,sDAAsD,CAAC;AACjH,eAAO,MAAM,2CAA2C,+CAA+C,CAAC;AACxG,eAAO,MAAM,yCAAyC,8CAA8C,CAAC;AAErG,eAAO,MAAM,iCAAiC,EAAE,gBA+C/C,CAAC"}
@@ -15,10 +15,11 @@
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.AICodeCompletionPreferencesSchema = exports.PREF_AI_INLINE_COMPLETION_STRIP_BACKTICKS = exports.PREF_AI_INLINE_COMPLETION_MAX_CONTEXT_LINES = exports.PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS = exports.PREF_AI_INLINE_COMPLETION_AUTOMATIC_ENABLE = void 0;
18
+ exports.AICodeCompletionPreferencesSchema = exports.PREF_AI_INLINE_COMPLETION_STRIP_BACKTICKS = exports.PREF_AI_INLINE_COMPLETION_MAX_CONTEXT_LINES = exports.PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS = exports.PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY = exports.PREF_AI_INLINE_COMPLETION_AUTOMATIC_ENABLE = void 0;
19
19
  const ai_core_preferences_1 = require("@theia/ai-core/lib/browser/ai-core-preferences");
20
20
  const core_1 = require("@theia/core");
21
21
  exports.PREF_AI_INLINE_COMPLETION_AUTOMATIC_ENABLE = 'ai-features.codeCompletion.automaticCodeCompletion';
22
+ exports.PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY = 'ai-features.codeCompletion.debounceDelay';
22
23
  exports.PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS = 'ai-features.codeCompletion.excludedFileExtensions';
23
24
  exports.PREF_AI_INLINE_COMPLETION_MAX_CONTEXT_LINES = 'ai-features.codeCompletion.maxContextLines';
24
25
  exports.PREF_AI_INLINE_COMPLETION_STRIP_BACKTICKS = 'ai-features.codeCompletion.stripBackticks';
@@ -33,6 +34,13 @@ exports.AICodeCompletionPreferencesSchema = {
33
34
  Alternatively, you can manually trigger the code via the command "Trigger Inline Suggestion" or the default shortcut "Ctrl+Alt+Space".'),
34
35
  default: false
35
36
  },
37
+ [exports.PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY]: {
38
+ title: core_1.nls.localize('theia/ai/completion/debounceDelay/title', 'Debounce Delay'),
39
+ type: 'number',
40
+ description: core_1.nls.localize('theia/ai/completion/debounceDelay/description', 'Controls the delay in milliseconds before triggering AI completions after changes have been detected in the editor.\
41
+ Requires `Automatic Code Completion` to be enabled. Enter 0 to disable the debounce delay.'),
42
+ default: 300
43
+ },
36
44
  [exports.PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS]: {
37
45
  title: core_1.nls.localize('theia/ai/completion/excludedFileExts/title', 'Excluded File Extensions'),
38
46
  type: 'array',
@@ -1 +1 @@
1
- {"version":3,"file":"ai-code-completion-preference.js","sourceRoot":"","sources":["../../src/browser/ai-code-completion-preference.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;;;AAGhF,wFAA2F;AAC3F,sCAAkC;AAErB,QAAA,0CAA0C,GAAG,oDAAoD,CAAC;AAClG,QAAA,6CAA6C,GAAG,mDAAmD,CAAC;AACpG,QAAA,2CAA2C,GAAG,4CAA4C,CAAC;AAC3F,QAAA,yCAAyC,GAAG,2CAA2C,CAAC;AAExF,QAAA,iCAAiC,GAAqB;IAC/D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,CAAC,kDAA0C,CAAC,EAAE;YAC1C,KAAK,EAAE,+CAAyB;YAChC,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EACvE;;mJAEmI,CAAC;YACxI,OAAO,EAAE,KAAK;SACjB;QACD,CAAC,qDAA6C,CAAC,EAAE;YAC7C,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,4CAA4C,EAAE,0BAA0B,CAAC;YAC7F,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EAAE,oFAAoF,CAAC;YACnK,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;YACD,OAAO,EAAE,EAAE;SACd;QACD,CAAC,mDAA2C,CAAC,EAAE;YAC3C,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,2CAA2C,EAAE,uBAAuB,CAAC;YACzF,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EACvE;sHACsG,CAAC;YAC3G,OAAO,EAAE,CAAC,CAAC;YACX,OAAO,EAAE,CAAC,CAAC;SACd;QACD,CAAC,iDAAyC,CAAC,EAAE;YACzC,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,0CAA0C,EAAE,yCAAyC,CAAC;YAC1G,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,gDAAgD,EACtE;+IAC+H,CAAC;YACpI,OAAO,EAAE,IAAI;SAChB;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"ai-code-completion-preference.js","sourceRoot":"","sources":["../../src/browser/ai-code-completion-preference.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;;;AAGhF,wFAA2F;AAC3F,sCAAkC;AAErB,QAAA,0CAA0C,GAAG,oDAAoD,CAAC;AAClG,QAAA,wCAAwC,GAAG,0CAA0C,CAAC;AACtF,QAAA,6CAA6C,GAAG,mDAAmD,CAAC;AACpG,QAAA,2CAA2C,GAAG,4CAA4C,CAAC;AAC3F,QAAA,yCAAyC,GAAG,2CAA2C,CAAC;AAExF,QAAA,iCAAiC,GAAqB;IAC/D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,CAAC,kDAA0C,CAAC,EAAE;YAC1C,KAAK,EAAE,+CAAyB;YAChC,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EACvE;;mJAEmI,CAAC;YACxI,OAAO,EAAE,KAAK;SACjB;QACD,CAAC,gDAAwC,CAAC,EAAE;YACxC,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,yCAAyC,EAAE,gBAAgB,CAAC;YAChF,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,+CAA+C,EACrE;2GAC2F,CAAC;YAChG,OAAO,EAAE,GAAG;SACf;QACD,CAAC,qDAA6C,CAAC,EAAE;YAC7C,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,4CAA4C,EAAE,0BAA0B,CAAC;YAC7F,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EAAE,oFAAoF,CAAC;YACnK,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;YACD,OAAO,EAAE,EAAE;SACd;QACD,CAAC,mDAA2C,CAAC,EAAE;YAC3C,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,2CAA2C,EAAE,uBAAuB,CAAC;YACzF,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EACvE;sHACsG,CAAC;YAC3G,OAAO,EAAE,CAAC,CAAC;YACX,OAAO,EAAE,CAAC,CAAC;SACd;QACD,CAAC,iDAAyC,CAAC,EAAE;YACzC,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,0CAA0C,EAAE,yCAAyC,CAAC;YAC1G,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,gDAAgD,EACtE;+IAC+H,CAAC;YACpI,OAAO,EAAE,IAAI;SAChB;KACJ;CACJ,CAAC"}
@@ -1,10 +1,12 @@
1
- import { FrontendApplicationContribution, KeybindingContribution, KeybindingRegistry, PreferenceService } from '@theia/core/lib/browser';
2
1
  import { AIActivationService } from '@theia/ai-core/lib/browser';
3
2
  import { Disposable } from '@theia/core';
3
+ import { FrontendApplicationContribution, KeybindingContribution, KeybindingRegistry, PreferenceService } from '@theia/core/lib/browser';
4
4
  export declare class AIFrontendApplicationContribution implements FrontendApplicationContribution, KeybindingContribution {
5
5
  private inlineCodeCompletionProvider;
6
6
  protected readonly preferenceService: PreferenceService;
7
7
  protected readonly activationService: AIActivationService;
8
+ private debouncer;
9
+ private debounceDelay;
8
10
  private toDispose;
9
11
  onDidInitializeLayout(): void;
10
12
  protected handlePreferences(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-code-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/ai-code-frontend-application-contribution.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEzI,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,qBACa,iCAAkC,YAAW,+BAA+B,EAAE,sBAAsB;IAE7G,OAAO,CAAC,4BAA4B,CAAkC;IAGtE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAE1D,OAAO,CAAC,SAAS,CAAiC;IAElD,qBAAqB,IAAI,IAAI;IAM7B,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAmBnC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAQ1D,SAAS,CAAC,uBAAuB,IAAI,UAAU;CA0BlD"}
1
+ {"version":3,"file":"ai-code-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/ai-code-frontend-application-contribution.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAWzI,qBACa,iCAAkC,YAAW,+BAA+B,EAAE,sBAAsB;IAE7G,OAAO,CAAC,4BAA4B,CAAkC;IAGtE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAE1D,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,SAAS,CAAiC;IAElD,qBAAqB,IAAI,IAAI;IAM7B,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAwBnC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAQ1D,SAAS,CAAC,uBAAuB,IAAI,UAAU;CA6ClD"}
@@ -18,15 +18,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.AIFrontendApplicationContribution = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const monaco = require("@theia/monaco-editor-core");
21
- const browser_1 = require("@theia/core/lib/browser");
22
- const inversify_1 = require("@theia/core/shared/inversify");
23
- const browser_2 = require("@theia/ai-core/lib/browser");
21
+ const browser_1 = require("@theia/ai-core/lib/browser");
24
22
  const core_1 = require("@theia/core");
25
- const ai_code_inline_completion_provider_1 = require("./ai-code-inline-completion-provider");
26
- const ai_code_completion_preference_1 = require("./ai-code-completion-preference");
23
+ const browser_2 = require("@theia/core/lib/browser");
24
+ const inversify_1 = require("@theia/core/shared/inversify");
27
25
  const languages_1 = require("@theia/monaco-editor-core/esm/vs/editor/common/languages");
26
+ const ai_code_completion_preference_1 = require("./ai-code-completion-preference");
27
+ const ai_code_inline_completion_provider_1 = require("./ai-code-inline-completion-provider");
28
+ const code_completion_debouncer_1 = require("./code-completion-debouncer");
28
29
  let AIFrontendApplicationContribution = class AIFrontendApplicationContribution {
29
30
  constructor() {
31
+ this.debouncer = new code_completion_debouncer_1.InlineCompletionDebouncer();
30
32
  this.toDispose = new Map();
31
33
  }
32
34
  onDidInitializeLayout() {
@@ -37,6 +39,7 @@ let AIFrontendApplicationContribution = class AIFrontendApplicationContribution
37
39
  handlePreferences() {
38
40
  const handler = () => this.handleInlineCompletions();
39
41
  this.toDispose.set('inlineCompletions', handler());
42
+ this.debounceDelay = this.preferenceService.get(ai_code_completion_preference_1.PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY, 300);
40
43
  this.preferenceService.onPreferenceChanged(event => {
41
44
  var _a;
42
45
  if (event.preferenceName === ai_code_completion_preference_1.PREF_AI_INLINE_COMPLETION_AUTOMATIC_ENABLE
@@ -44,6 +47,9 @@ let AIFrontendApplicationContribution = class AIFrontendApplicationContribution
44
47
  (_a = this.toDispose.get('inlineCompletions')) === null || _a === void 0 ? void 0 : _a.dispose();
45
48
  this.toDispose.set('inlineCompletions', handler());
46
49
  }
50
+ if (event.preferenceName === ai_code_completion_preference_1.PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY) {
51
+ this.debounceDelay = event.newValue;
52
+ }
47
53
  });
48
54
  this.activationService.onDidChangeActiveStatus(change => {
49
55
  var _a;
@@ -73,7 +79,21 @@ let AIFrontendApplicationContribution = class AIFrontendApplicationContribution
73
79
  if (excludedExtensions.some(ext => fileName.endsWith(ext))) {
74
80
  return { items: [] };
75
81
  }
76
- return this.inlineCodeCompletionProvider.provideInlineCompletions(model, position, context, token);
82
+ const completionHandler = () => {
83
+ try {
84
+ return this.inlineCodeCompletionProvider.provideInlineCompletions(model, position, context, token);
85
+ }
86
+ catch (error) {
87
+ console.error('Error providing inline completions:', error);
88
+ return { items: [] };
89
+ }
90
+ };
91
+ if (context.triggerKind === languages_1.InlineCompletionTriggerKind.Automatic) {
92
+ return this.debouncer.debounce(async () => completionHandler(), this.debounceDelay);
93
+ }
94
+ else if (context.triggerKind === languages_1.InlineCompletionTriggerKind.Explicit) {
95
+ return completionHandler();
96
+ }
77
97
  },
78
98
  freeInlineCompletions: completions => {
79
99
  this.inlineCodeCompletionProvider.freeInlineCompletions(completions);
@@ -87,12 +107,12 @@ tslib_1.__decorate([
87
107
  tslib_1.__metadata("design:type", ai_code_inline_completion_provider_1.AICodeInlineCompletionsProvider)
88
108
  ], AIFrontendApplicationContribution.prototype, "inlineCodeCompletionProvider", void 0);
89
109
  tslib_1.__decorate([
90
- (0, inversify_1.inject)(browser_1.PreferenceService),
110
+ (0, inversify_1.inject)(browser_2.PreferenceService),
91
111
  tslib_1.__metadata("design:type", Object)
92
112
  ], AIFrontendApplicationContribution.prototype, "preferenceService", void 0);
93
113
  tslib_1.__decorate([
94
- (0, inversify_1.inject)(browser_2.AIActivationService),
95
- tslib_1.__metadata("design:type", browser_2.AIActivationService)
114
+ (0, inversify_1.inject)(browser_1.AIActivationService),
115
+ tslib_1.__metadata("design:type", browser_1.AIActivationService)
96
116
  ], AIFrontendApplicationContribution.prototype, "activationService", void 0);
97
117
  exports.AIFrontendApplicationContribution = AIFrontendApplicationContribution = tslib_1.__decorate([
98
118
  (0, inversify_1.injectable)()
@@ -1 +1 @@
1
- {"version":3,"file":"ai-code-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/ai-code-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-code-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/ai-code-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { LanguageModelService } from '@theia/ai-core/lib/browser';
2
- import { Agent, AgentSpecificVariables, CommunicationRecordingService, LanguageModelRegistry, LanguageModelRequirement, PromptService, PromptTemplate } from '@theia/ai-core/lib/common';
2
+ import { Agent, AgentSpecificVariables, LanguageModelRegistry, LanguageModelRequirement, PromptService, PromptVariantSet } from '@theia/ai-core/lib/common';
3
3
  import { ILogger, ProgressService } from '@theia/core';
4
4
  import { PreferenceService } from '@theia/core/lib/browser';
5
5
  import * as monaco from '@theia/monaco-editor-core';
@@ -14,14 +14,13 @@ export declare class CodeCompletionAgentImpl implements CodeCompletionAgent {
14
14
  protected logger: ILogger;
15
15
  protected languageModelRegistry: LanguageModelRegistry;
16
16
  protected promptService: PromptService;
17
- protected recordingService: CommunicationRecordingService;
18
17
  protected progressService: ProgressService;
19
18
  protected preferences: PreferenceService;
20
19
  protected postProcessor: CodeCompletionPostProcessor;
21
20
  id: string;
22
21
  name: string;
23
22
  description: string;
24
- promptTemplates: PromptTemplate[];
23
+ prompts: PromptVariantSet[];
25
24
  languageModelRequirements: LanguageModelRequirement[];
26
25
  readonly variables: string[];
27
26
  readonly functions: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"code-completion-agent.d.ts","sourceRoot":"","sources":["../../src/browser/code-completion-agent.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACH,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAC5D,qBAAqB,EAAE,wBAAwB,EAAE,aAAa,EAAE,cAAc,EAEjF,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAgB,OAAO,EAAO,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAGpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,MAAM,WAAW,mBAAoB,SAAQ,KAAK;IAC9C,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAC/E,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,uBAAuB,EAAE,KAAK,EAAE,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;CACnJ;AAED,qBACa,uBAAwB,YAAW,mBAAmB;IAE/D,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE/C,wBAAwB,CAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,uBAAuB,EACjD,KAAK,EAAE,MAAM,CAAC,iBAAiB,GAChC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAkI1D,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAG1B,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGvD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;IAG1D,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAG3C,SAAS,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGzC,SAAS,CAAC,aAAa,EAAE,2BAA2B,CAAC;IAErD,EAAE,SAAqB;IACvB,IAAI,SAAqB;IACzB,WAAW,SACkI;IAC7I,eAAe,EAAE,cAAc,EAAE,CAAiC;IAClE,yBAAyB,EAAE,wBAAwB,EAAE,CAKnD;IACF,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;IAClC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,CAKvD;IACF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACxC"}
1
+ {"version":3,"file":"code-completion-agent.d.ts","sourceRoot":"","sources":["../../src/browser/code-completion-agent.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACH,KAAK,EAAE,sBAAsB,EAC7B,qBAAqB,EAAE,wBAAwB,EAAE,aAAa,EAC9D,gBAAgB,EAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAgB,OAAO,EAAO,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAGpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,MAAM,WAAW,mBAAoB,SAAQ,KAAK;IAC9C,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAC/E,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,uBAAuB,EAAE,KAAK,EAAE,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;CACnJ;AAED,qBACa,uBAAwB,YAAW,mBAAmB;IAE/D,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE/C,wBAAwB,CAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,uBAAuB,EACjD,KAAK,EAAE,MAAM,CAAC,iBAAiB,GAChC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAsH1D,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAG1B,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGvD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAG3C,SAAS,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGzC,SAAS,CAAC,aAAa,EAAE,2BAA2B,CAAC;IAErD,EAAE,SAAqB;IACvB,IAAI,SAAqB;IACzB,WAAW,SACkI;IAC7I,OAAO,EAAE,gBAAgB,EAAE,CAAyB;IACpD,yBAAyB,EAAE,wBAAwB,EAAE,CAKnD;IACF,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;IAClC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,CAKvD;IACF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACxC"}
@@ -32,7 +32,7 @@ let CodeCompletionAgentImpl = class CodeCompletionAgentImpl {
32
32
  this.id = 'Code Completion';
33
33
  this.name = 'Code Completion';
34
34
  this.description = core_1.nls.localize('theia/ai/completion/agent/description', 'This agent provides inline code completion in the code editor in the Theia IDE.');
35
- this.promptTemplates = code_completion_prompt_template_1.codeCompletionPromptTemplates;
35
+ this.prompts = code_completion_prompt_template_1.codeCompletionPrompts;
36
36
  this.languageModelRequirements = [
37
37
  {
38
38
  purpose: 'code-completion',
@@ -95,7 +95,7 @@ let CodeCompletionAgentImpl = class CodeCompletionAgentImpl {
95
95
  return undefined;
96
96
  }
97
97
  const prompt = await this.promptService
98
- .getPrompt('code-completion-prompt', { prefix, suffix, file, language })
98
+ .getResolvedPromptFragment('code-completion-prompt', { prefix, suffix, file, language })
99
99
  .then(p => p === null || p === void 0 ? void 0 : p.text);
100
100
  if (!prompt) {
101
101
  this.logger.error('No prompt found for code-completion-agent');
@@ -117,12 +117,6 @@ let CodeCompletionAgentImpl = class CodeCompletionAgentImpl {
117
117
  if (token.isCancellationRequested) {
118
118
  return undefined;
119
119
  }
120
- this.recordingService.recordRequest({
121
- agentId: this.id,
122
- sessionId,
123
- requestId,
124
- request: request.messages
125
- });
126
120
  const response = await this.languageModelService.sendRequest(languageModel, request);
127
121
  if (token.isCancellationRequested) {
128
122
  return undefined;
@@ -131,12 +125,6 @@ let CodeCompletionAgentImpl = class CodeCompletionAgentImpl {
131
125
  if (token.isCancellationRequested) {
132
126
  return undefined;
133
127
  }
134
- this.recordingService.recordResponse({
135
- agentId: this.id,
136
- sessionId,
137
- requestId,
138
- response: [{ actor: 'ai', text: completionText, type: 'text' }]
139
- });
140
128
  const postProcessedCompletionText = this.postProcessor.postProcess(completionText);
141
129
  return {
142
130
  items: [{
@@ -174,10 +162,6 @@ tslib_1.__decorate([
174
162
  (0, inversify_1.inject)(common_1.PromptService),
175
163
  tslib_1.__metadata("design:type", Object)
176
164
  ], CodeCompletionAgentImpl.prototype, "promptService", void 0);
177
- tslib_1.__decorate([
178
- (0, inversify_1.inject)(common_1.CommunicationRecordingService),
179
- tslib_1.__metadata("design:type", Object)
180
- ], CodeCompletionAgentImpl.prototype, "recordingService", void 0);
181
165
  tslib_1.__decorate([
182
166
  (0, inversify_1.inject)(core_1.ProgressService),
183
167
  tslib_1.__metadata("design:type", core_1.ProgressService)
@@ -1 +1 @@
1
- {"version":3,"file":"code-completion-agent.js","sourceRoot":"","sources":["../../src/browser/code-completion-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-completion-agent.js","sourceRoot":"","sources":["../../src/browser/code-completion-agent.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,wDAAkE;AAClE,sDAKmC;AACnC,sCAA0E;AAC1E,qDAA4D;AAC5D,4DAAyE;AACzE,oDAAoD;AACpD,mFAA8F;AAC9F,uFAA0E;AAC1E,mFAA8E;AAEjE,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAO1D,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAA7B;QAgJH,OAAE,GAAG,iBAAiB,CAAC;QACvB,SAAI,GAAG,iBAAiB,CAAC;QACzB,gBAAW,GACP,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,iFAAiF,CAAC,CAAC;QAC7I,YAAO,GAAuB,uDAAqB,CAAC;QACpD,8BAAyB,GAA+B;YACpD;gBACI,OAAO,EAAE,iBAAiB;gBAC1B,UAAU,EAAE,eAAe;aAC9B;SACJ,CAAC;QACO,cAAS,GAAa,EAAE,CAAC;QACzB,cAAS,GAAa,EAAE,CAAC;QACzB,2BAAsB,GAA6B;YACxD,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,mCAAmC,EAAE;YACtF,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,0CAA0C,EAAE;YACjG,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,qDAAqD,EAAE;YAC1G,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,oDAAoD,EAAE;SAC5G,CAAC;IAEN,CAAC;IAhKG,KAAK,CAAC,wBAAwB,CAC1B,KAA+B,EAC/B,QAAyB,EACzB,OAAiD,EACjD,KAA+B;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CACpD,EAAE,IAAI,EAAE,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,mCAAmC,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACxI,CAAC;QACF,IAAI,CAAC;YACD,MAAM,aAAa,GACf,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;gBACjD,KAAK,EAAE,IAAI,CAAC,EAAE;gBACd,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;aACvC,CAAC,CAAC;YACP,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,mDAAmD,CACtD,CAAC;gBACF,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAS,2EAA2C,EAAE,CAAC,CAAC,CAAC,CAAC;YAEtG,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,IAAI,aAAa,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACzC,gFAAgF;YAEhF,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;gBACxB,uBAAuB;gBACvB,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACtC,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC;YACxC,CAAC;iBAAM,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;gBAClD,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC;gBAEpE,yEAAyE;gBACzE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CACxB,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAC9B,iBAAiB,CACpB,CAAC;gBACF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CACxB,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,EAC/B,gBAAgB,CACnB,CAAC;gBAEF,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;gBACjE,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;YACtF,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC;gBACjC,eAAe,EAAE,eAAe;gBAChC,WAAW,EAAE,CAAC;gBACd,aAAa,EAAE,QAAQ,CAAC,UAAU;gBAClC,SAAS,EAAE,QAAQ,CAAC,MAAM;aAC7B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC;gBACjC,eAAe,EAAE,QAAQ,CAAC,UAAU;gBACpC,WAAW,EAAE,QAAQ,CAAC,MAAM;gBAC5B,aAAa,EAAE,aAAa;gBAC5B,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC;aACnD,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YAEvC,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBAChC,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa;iBAClC,yBAAyB,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;iBACvF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,wGAAwG;YACxG,MAAM,SAAS,GAAG,IAAA,mBAAY,GAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAA,mBAAY,GAAE,CAAC;YACjC,MAAM,OAAO,GAAgB;gBACzB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzD,QAAQ,EAAE;oBACN,MAAM,EAAE,KAAK;iBAChB;gBACD,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,SAAS;gBACT,SAAS;gBACT,iBAAiB,EAAE,KAAK;aAC3B,CAAC;YACF,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBAChC,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACrF,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBAChC,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,IAAA,0BAAiB,EAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBAChC,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,2BAA2B,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAEnF,OAAO;gBACH,KAAK,EAAE,CAAC;wBACJ,UAAU,EAAE,2BAA2B;wBACvC,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC;qBACtG,CAAC;gBACF,sBAAsB,EAAE,IAAI;aAC/B,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;gBACO,CAAC;YACL,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;CAyCJ,CAAA;AApKY,0DAAuB;AAEtB;IADT,IAAA,kBAAM,EAAC,8BAAoB,CAAC;;qEACwB;AA6H3C;IAFT,IAAA,kBAAM,EAAC,cAAO,CAAC;IACf,IAAA,iBAAK,EAAC,uBAAuB,CAAC;;uDACL;AAGhB;IADT,IAAA,kBAAM,EAAC,8BAAqB,CAAC;;sEACyB;AAG7C;IADT,IAAA,kBAAM,EAAC,sBAAa,CAAC;;8DACiB;AAG7B;IADT,IAAA,kBAAM,EAAC,sBAAe,CAAC;sCACG,sBAAe;gEAAC;AAGjC;IADT,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;4DACe;AAG/B;IADT,IAAA,kBAAM,EAAC,2DAA2B,CAAC;;8DACiB;kCA9I5C,uBAAuB;IADnC,IAAA,sBAAU,GAAE;GACA,uBAAuB,CAoKnC"}
@@ -0,0 +1,5 @@
1
+ export declare class InlineCompletionDebouncer {
2
+ private timeoutId?;
3
+ debounce<T>(callback: () => Promise<T>, debounceDelay: number): Promise<T>;
4
+ }
5
+ //# sourceMappingURL=code-completion-debouncer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-completion-debouncer.d.ts","sourceRoot":"","sources":["../../src/browser/code-completion-debouncer.ts"],"names":[],"mappings":"AAgBA,qBAAa,yBAAyB;IAElC,OAAO,CAAC,SAAS,CAAC,CAAS;IAE3B,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAc7E"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.InlineCompletionDebouncer = void 0;
19
+ class InlineCompletionDebouncer {
20
+ debounce(callback, debounceDelay) {
21
+ return new Promise((resolve, reject) => {
22
+ if (this.timeoutId) {
23
+ window.clearTimeout(this.timeoutId);
24
+ }
25
+ this.timeoutId = window.setTimeout(() => {
26
+ callback()
27
+ .then(resolve)
28
+ .catch(reject);
29
+ this.timeoutId = undefined;
30
+ }, debounceDelay);
31
+ });
32
+ }
33
+ }
34
+ exports.InlineCompletionDebouncer = InlineCompletionDebouncer;
35
+ //# sourceMappingURL=code-completion-debouncer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-completion-debouncer.js","sourceRoot":"","sources":["../../src/browser/code-completion-debouncer.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,MAAa,yBAAyB;IAIlC,QAAQ,CAAI,QAA0B,EAAE,aAAqB;QACzD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE;qBACL,IAAI,CAAC,OAAO,CAAC;qBACb,KAAK,CAAC,MAAM,CAAC,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,CAAC,EAAE,aAAa,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAlBD,8DAkBC"}
@@ -1,3 +1,3 @@
1
- import { PromptTemplate } from '@theia/ai-core/lib/common';
2
- export declare const codeCompletionPromptTemplates: PromptTemplate[];
1
+ import { PromptVariantSet } from '@theia/ai-core/lib/common';
2
+ export declare const codeCompletionPrompts: PromptVariantSet[];
3
3
  //# sourceMappingURL=code-completion-prompt-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-completion-prompt-template.d.ts","sourceRoot":"","sources":["../../src/browser/code-completion-prompt-template.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,eAAO,MAAM,6BAA6B,EAAE,cAAc,EA+BzD,CAAC"}
1
+ {"version":3,"file":"code-completion-prompt-template.d.ts","sourceRoot":"","sources":["../../src/browser/code-completion-prompt-template.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,EAgCnD,CAAC"}
@@ -10,12 +10,12 @@
10
10
  // SPDX-License-Identifier: MIT
11
11
  // *****************************************************************************
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.codeCompletionPromptTemplates = void 0;
14
- exports.codeCompletionPromptTemplates = [
15
- {
16
- id: 'code-completion-prompt-previous',
17
- variantOf: 'code-completion-prompt',
18
- template: `{{!-- This prompt is licensed under the MIT License (https://opensource.org/license/mit).
13
+ exports.codeCompletionPrompts = void 0;
14
+ exports.codeCompletionPrompts = [{
15
+ id: 'code-completion-prompt',
16
+ variants: [{
17
+ id: 'code-completion-prompt-previous',
18
+ template: `{{!-- This prompt is licensed under the MIT License (https://opensource.org/license/mit).
19
19
  Made improvements or adaptations to this prompt template? We’d love for you to share it with the community! Contribute back here:
20
20
  https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-contribution --}}
21
21
  You are a code completion agent. The current file you have to complete is named {{file}}.
@@ -25,10 +25,10 @@ Finish the following code snippet.
25
25
  {{prefix}}[[MARKER]]{{suffix}}
26
26
 
27
27
  Only return the exact replacement for [[MARKER]] to complete the snippet.`
28
- },
29
- {
30
- id: 'code-completion-prompt',
31
- template: `{{!-- This prompt is licensed under the MIT License (https://opensource.org/license/mit).
28
+ }],
29
+ defaultVariant: {
30
+ id: 'code-completion-prompt-default',
31
+ template: `{{!-- This prompt is licensed under the MIT License (https://opensource.org/license/mit).
32
32
  Made improvements or adaptations to this prompt template? We’d love for you to share it with the community! Contribute back here:
33
33
  https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-contribution --}}
34
34
  ## Code snippet
@@ -41,6 +41,7 @@ https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-
41
41
  - Language: {{language}}
42
42
 
43
43
  Replace [[MARKER]] with the exact code to complete the code snippet. Return only the replacement of [[MARKER]] as plain text.`,
44
- },
44
+ },
45
+ }
45
46
  ];
46
47
  //# sourceMappingURL=code-completion-prompt-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-completion-prompt-template.js","sourceRoot":"","sources":["../../src/browser/code-completion-prompt-template.ts"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,+CAA+C;AAC/C,mEAAmE;AACnE,sCAAsC;AACtC,EAAE;AACF,+BAA+B;AAC/B,gFAAgF;;;AAInE,QAAA,6BAA6B,GAAqB;IAC3D;QACI,EAAE,EAAE,iCAAiC;QACrC,SAAS,EAAE,wBAAwB;QACnC,QAAQ,EAAE;;;;;;;;;0EASwD;KACrE;IACD;QACI,EAAE,EAAE,wBAAwB;QAC5B,QAAQ,EAAE;;;;;;;;;;;;8HAY4G;KACzH;CACJ,CAAC"}
1
+ {"version":3,"file":"code-completion-prompt-template.js","sourceRoot":"","sources":["../../src/browser/code-completion-prompt-template.ts"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,+CAA+C;AAC/C,mEAAmE;AACnE,sCAAsC;AACtC,EAAE;AACF,+BAA+B;AAC/B,gFAAgF;;;AAInE,QAAA,qBAAqB,GAAuB,CAAC;QACtD,EAAE,EAAE,wBAAwB;QAC5B,QAAQ,EAAE,CAAC;gBACP,EAAE,EAAE,iCAAiC;gBACrC,QAAQ,EAAE;;;;;;;;;0EASwD;aACrE,CAAC;QACF,cAAc,EAAE;YACZ,EAAE,EAAE,gCAAgC;YACpC,QAAQ,EAAE;;;;;;;;;;;;8HAY4G;SACzH;KACJ;CACA,CAAC"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@theia/ai-code-completion",
3
- "version": "1.62.0-next.3+907647f99",
3
+ "version": "1.62.0",
4
4
  "description": "Theia - AI Core",
5
5
  "dependencies": {
6
- "@theia/ai-core": "1.62.0-next.3+907647f99",
7
- "@theia/core": "1.62.0-next.3+907647f99",
8
- "@theia/filesystem": "1.62.0-next.3+907647f99",
6
+ "@theia/ai-core": "1.62.0",
7
+ "@theia/core": "1.62.0",
8
+ "@theia/filesystem": "1.62.0",
9
9
  "@theia/monaco-editor-core": "1.96.302",
10
- "@theia/output": "1.62.0-next.3+907647f99",
11
- "@theia/workspace": "1.62.0-next.3+907647f99",
10
+ "@theia/output": "1.62.0",
11
+ "@theia/workspace": "1.62.0",
12
12
  "minimatch": "^5.1.0",
13
13
  "tslib": "^2.6.2"
14
14
  },
@@ -46,10 +46,10 @@
46
46
  "watch": "theiaext watch"
47
47
  },
48
48
  "devDependencies": {
49
- "@theia/ext-scripts": "1.61.0"
49
+ "@theia/ext-scripts": "1.62.0"
50
50
  },
51
51
  "nyc": {
52
52
  "extends": "../../configs/nyc.json"
53
53
  },
54
- "gitHead": "907647f99bd78541b18e8e6133acc9246d85a8a2"
54
+ "gitHead": "a4e035ccc26fde24c2769a466cb18e3b54c517c5"
55
55
  }
@@ -19,6 +19,7 @@ import { AI_CORE_PREFERENCES_TITLE } from '@theia/ai-core/lib/browser/ai-core-pr
19
19
  import { nls } from '@theia/core';
20
20
 
21
21
  export const PREF_AI_INLINE_COMPLETION_AUTOMATIC_ENABLE = 'ai-features.codeCompletion.automaticCodeCompletion';
22
+ export const PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY = 'ai-features.codeCompletion.debounceDelay';
22
23
  export const PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS = 'ai-features.codeCompletion.excludedFileExtensions';
23
24
  export const PREF_AI_INLINE_COMPLETION_MAX_CONTEXT_LINES = 'ai-features.codeCompletion.maxContextLines';
24
25
  export const PREF_AI_INLINE_COMPLETION_STRIP_BACKTICKS = 'ai-features.codeCompletion.stripBackticks';
@@ -35,6 +36,14 @@ export const AICodeCompletionPreferencesSchema: PreferenceSchema = {
35
36
  Alternatively, you can manually trigger the code via the command "Trigger Inline Suggestion" or the default shortcut "Ctrl+Alt+Space".'),
36
37
  default: false
37
38
  },
39
+ [PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY]: {
40
+ title: nls.localize('theia/ai/completion/debounceDelay/title', 'Debounce Delay'),
41
+ type: 'number',
42
+ description: nls.localize('theia/ai/completion/debounceDelay/description',
43
+ 'Controls the delay in milliseconds before triggering AI completions after changes have been detected in the editor.\
44
+ Requires `Automatic Code Completion` to be enabled. Enter 0 to disable the debounce delay.'),
45
+ default: 300
46
+ },
38
47
  [PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS]: {
39
48
  title: nls.localize('theia/ai/completion/excludedFileExts/title', 'Excluded File Extensions'),
40
49
  type: 'array',
@@ -16,13 +16,18 @@
16
16
 
17
17
  import * as monaco from '@theia/monaco-editor-core';
18
18
 
19
- import { FrontendApplicationContribution, KeybindingContribution, KeybindingRegistry, PreferenceService } from '@theia/core/lib/browser';
20
- import { inject, injectable } from '@theia/core/shared/inversify';
21
19
  import { AIActivationService } from '@theia/ai-core/lib/browser';
22
20
  import { Disposable } from '@theia/core';
23
- import { AICodeInlineCompletionsProvider } from './ai-code-inline-completion-provider';
24
- import { PREF_AI_INLINE_COMPLETION_AUTOMATIC_ENABLE, PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS } from './ai-code-completion-preference';
21
+ import { FrontendApplicationContribution, KeybindingContribution, KeybindingRegistry, PreferenceService } from '@theia/core/lib/browser';
22
+ import { inject, injectable } from '@theia/core/shared/inversify';
25
23
  import { InlineCompletionTriggerKind } from '@theia/monaco-editor-core/esm/vs/editor/common/languages';
24
+ import {
25
+ PREF_AI_INLINE_COMPLETION_AUTOMATIC_ENABLE,
26
+ PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY,
27
+ PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS
28
+ } from './ai-code-completion-preference';
29
+ import { AICodeInlineCompletionsProvider } from './ai-code-inline-completion-provider';
30
+ import { InlineCompletionDebouncer } from './code-completion-debouncer';
26
31
 
27
32
  @injectable()
28
33
  export class AIFrontendApplicationContribution implements FrontendApplicationContribution, KeybindingContribution {
@@ -35,6 +40,9 @@ export class AIFrontendApplicationContribution implements FrontendApplicationCon
35
40
  @inject(AIActivationService)
36
41
  protected readonly activationService: AIActivationService;
37
42
 
43
+ private debouncer = new InlineCompletionDebouncer();
44
+ private debounceDelay: number;
45
+
38
46
  private toDispose = new Map<string, Disposable>();
39
47
 
40
48
  onDidInitializeLayout(): void {
@@ -48,12 +56,17 @@ export class AIFrontendApplicationContribution implements FrontendApplicationCon
48
56
 
49
57
  this.toDispose.set('inlineCompletions', handler());
50
58
 
59
+ this.debounceDelay = this.preferenceService.get<number>(PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY, 300);
60
+
51
61
  this.preferenceService.onPreferenceChanged(event => {
52
62
  if (event.preferenceName === PREF_AI_INLINE_COMPLETION_AUTOMATIC_ENABLE
53
63
  || event.preferenceName === PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS) {
54
64
  this.toDispose.get('inlineCompletions')?.dispose();
55
65
  this.toDispose.set('inlineCompletions', handler());
56
66
  }
67
+ if (event.preferenceName === PREF_AI_INLINE_COMPLETION_DEBOUNCE_DELAY) {
68
+ this.debounceDelay = event.newValue;
69
+ }
57
70
  });
58
71
 
59
72
  this.activationService.onDidChangeActiveStatus(change => {
@@ -88,7 +101,26 @@ export class AIFrontendApplicationContribution implements FrontendApplicationCon
88
101
  if (excludedExtensions.some(ext => fileName.endsWith(ext))) {
89
102
  return { items: [] };
90
103
  }
91
- return this.inlineCodeCompletionProvider.provideInlineCompletions(model, position, context, token);
104
+
105
+ const completionHandler = () => {
106
+ try {
107
+ return this.inlineCodeCompletionProvider.provideInlineCompletions(
108
+ model,
109
+ position,
110
+ context,
111
+ token
112
+ );
113
+ } catch (error) {
114
+ console.error('Error providing inline completions:', error);
115
+ return { items: [] };
116
+ }
117
+ };
118
+
119
+ if (context.triggerKind === InlineCompletionTriggerKind.Automatic) {
120
+ return this.debouncer.debounce(async () => completionHandler(), this.debounceDelay);
121
+ } else if (context.triggerKind === InlineCompletionTriggerKind.Explicit) {
122
+ return completionHandler();
123
+ }
92
124
  },
93
125
  freeInlineCompletions: completions => {
94
126
  this.inlineCodeCompletionProvider.freeInlineCompletions(completions);
@@ -16,8 +16,9 @@
16
16
 
17
17
  import { LanguageModelService } from '@theia/ai-core/lib/browser';
18
18
  import {
19
- Agent, AgentSpecificVariables, CommunicationRecordingService, getTextOfResponse,
20
- LanguageModelRegistry, LanguageModelRequirement, PromptService, PromptTemplate,
19
+ Agent, AgentSpecificVariables, getTextOfResponse,
20
+ LanguageModelRegistry, LanguageModelRequirement, PromptService,
21
+ PromptVariantSet,
21
22
  UserRequest
22
23
  } from '@theia/ai-core/lib/common';
23
24
  import { generateUuid, ILogger, nls, ProgressService } from '@theia/core';
@@ -25,7 +26,7 @@ import { PreferenceService } from '@theia/core/lib/browser';
25
26
  import { inject, injectable, named } from '@theia/core/shared/inversify';
26
27
  import * as monaco from '@theia/monaco-editor-core';
27
28
  import { PREF_AI_INLINE_COMPLETION_MAX_CONTEXT_LINES } from './ai-code-completion-preference';
28
- import { codeCompletionPromptTemplates } from './code-completion-prompt-template';
29
+ import { codeCompletionPrompts } from './code-completion-prompt-template';
29
30
  import { CodeCompletionPostProcessor } from './code-completion-postprocessor';
30
31
 
31
32
  export const CodeCompletionAgent = Symbol('CodeCompletionAgent');
@@ -110,7 +111,7 @@ export class CodeCompletionAgentImpl implements CodeCompletionAgent {
110
111
  return undefined;
111
112
  }
112
113
  const prompt = await this.promptService
113
- .getPrompt('code-completion-prompt', { prefix, suffix, file, language })
114
+ .getResolvedPromptFragment('code-completion-prompt', { prefix, suffix, file, language })
114
115
  .then(p => p?.text);
115
116
  if (!prompt) {
116
117
  this.logger.error('No prompt found for code-completion-agent');
@@ -132,12 +133,6 @@ export class CodeCompletionAgentImpl implements CodeCompletionAgent {
132
133
  if (token.isCancellationRequested) {
133
134
  return undefined;
134
135
  }
135
- this.recordingService.recordRequest({
136
- agentId: this.id,
137
- sessionId,
138
- requestId,
139
- request: request.messages
140
- });
141
136
  const response = await this.languageModelService.sendRequest(languageModel, request);
142
137
  if (token.isCancellationRequested) {
143
138
  return undefined;
@@ -146,12 +141,6 @@ export class CodeCompletionAgentImpl implements CodeCompletionAgent {
146
141
  if (token.isCancellationRequested) {
147
142
  return undefined;
148
143
  }
149
- this.recordingService.recordResponse({
150
- agentId: this.id,
151
- sessionId,
152
- requestId,
153
- response: [{ actor: 'ai', text: completionText, type: 'text' }]
154
- });
155
144
 
156
145
  const postProcessedCompletionText = this.postProcessor.postProcess(completionText);
157
146
 
@@ -182,9 +171,6 @@ export class CodeCompletionAgentImpl implements CodeCompletionAgent {
182
171
  @inject(PromptService)
183
172
  protected promptService: PromptService;
184
173
 
185
- @inject(CommunicationRecordingService)
186
- protected recordingService: CommunicationRecordingService;
187
-
188
174
  @inject(ProgressService)
189
175
  protected progressService: ProgressService;
190
176
 
@@ -198,7 +184,7 @@ export class CodeCompletionAgentImpl implements CodeCompletionAgent {
198
184
  name = 'Code Completion';
199
185
  description =
200
186
  nls.localize('theia/ai/completion/agent/description', 'This agent provides inline code completion in the code editor in the Theia IDE.');
201
- promptTemplates: PromptTemplate[] = codeCompletionPromptTemplates;
187
+ prompts: PromptVariantSet[] = codeCompletionPrompts;
202
188
  languageModelRequirements: LanguageModelRequirement[] = [
203
189
  {
204
190
  purpose: 'code-completion',
@@ -0,0 +1,35 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ export class InlineCompletionDebouncer {
18
+
19
+ private timeoutId?: number;
20
+
21
+ debounce<T>(callback: () => Promise<T>, debounceDelay: number): Promise<T> {
22
+ return new Promise<T>((resolve, reject) => {
23
+ if (this.timeoutId) {
24
+ window.clearTimeout(this.timeoutId);
25
+ }
26
+
27
+ this.timeoutId = window.setTimeout(() => {
28
+ callback()
29
+ .then(resolve)
30
+ .catch(reject);
31
+ this.timeoutId = undefined;
32
+ }, debounceDelay);
33
+ });
34
+ }
35
+ }
@@ -9,12 +9,12 @@
9
9
  // SPDX-License-Identifier: MIT
10
10
  // *****************************************************************************
11
11
 
12
- import { PromptTemplate } from '@theia/ai-core/lib/common';
12
+ import { PromptVariantSet } from '@theia/ai-core/lib/common';
13
13
 
14
- export const codeCompletionPromptTemplates: PromptTemplate[] = [
15
- {
14
+ export const codeCompletionPrompts: PromptVariantSet[] = [{
15
+ id: 'code-completion-prompt',
16
+ variants: [{
16
17
  id: 'code-completion-prompt-previous',
17
- variantOf: 'code-completion-prompt',
18
18
  template: `{{!-- This prompt is licensed under the MIT License (https://opensource.org/license/mit).
19
19
  Made improvements or adaptations to this prompt template? We’d love for you to share it with the community! Contribute back here:
20
20
  https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-contribution --}}
@@ -25,9 +25,9 @@ Finish the following code snippet.
25
25
  {{prefix}}[[MARKER]]{{suffix}}
26
26
 
27
27
  Only return the exact replacement for [[MARKER]] to complete the snippet.`
28
- },
29
- {
30
- id: 'code-completion-prompt',
28
+ }],
29
+ defaultVariant: {
30
+ id: 'code-completion-prompt-default',
31
31
  template: `{{!-- This prompt is licensed under the MIT License (https://opensource.org/license/mit).
32
32
  Made improvements or adaptations to this prompt template? We’d love for you to share it with the community! Contribute back here:
33
33
  https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-contribution --}}
@@ -42,4 +42,5 @@ https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-
42
42
 
43
43
  Replace [[MARKER]] with the exact code to complete the code snippet. Return only the replacement of [[MARKER]] as plain text.`,
44
44
  },
45
+ }
45
46
  ];