@theia/ai-code-completion 1.60.0-next.47 → 1.60.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.
- package/lib/browser/ai-code-completion-preference.js +1 -1
- package/lib/browser/ai-code-completion-preference.js.map +1 -1
- package/lib/browser/code-completion-agent.d.ts +3 -1
- package/lib/browser/code-completion-agent.d.ts.map +1 -1
- package/lib/browser/code-completion-agent.js +16 -7
- package/lib/browser/code-completion-agent.js.map +1 -1
- package/package.json +8 -8
- package/src/browser/ai-code-completion-preference.ts +1 -1
- package/src/browser/code-completion-agent.ts +17 -8
|
@@ -31,7 +31,7 @@ exports.AICodeCompletionPreferencesSchema = {
|
|
|
31
31
|
description: core_1.nls.localize('theia/ai/completion/automaticEnable/description', 'Automatically trigger AI completions inline within any (Monaco) editor while editing.\
|
|
32
32
|
\n\
|
|
33
33
|
Alternatively, you can manually trigger the code via the command "Trigger Inline Suggestion" or the default shortcut "Ctrl+Alt+Space".'),
|
|
34
|
-
default:
|
|
34
|
+
default: false
|
|
35
35
|
},
|
|
36
36
|
[exports.PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS]: {
|
|
37
37
|
title: core_1.nls.localize('theia/ai/completion/excludedFileExts/title', 'Excluded File Extensions'),
|
|
@@ -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,
|
|
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,13 +1,15 @@
|
|
|
1
|
+
import { LanguageModelService } from '@theia/ai-core/lib/browser';
|
|
1
2
|
import { Agent, AgentSpecificVariables, CommunicationRecordingService, LanguageModelRegistry, LanguageModelRequirement, PromptService, PromptTemplate } from '@theia/ai-core/lib/common';
|
|
2
3
|
import { ILogger, ProgressService } from '@theia/core';
|
|
3
|
-
import * as monaco from '@theia/monaco-editor-core';
|
|
4
4
|
import { PreferenceService } from '@theia/core/lib/browser';
|
|
5
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
5
6
|
import { CodeCompletionPostProcessor } from './code-completion-postprocessor';
|
|
6
7
|
export declare const CodeCompletionAgent: unique symbol;
|
|
7
8
|
export interface CodeCompletionAgent extends Agent {
|
|
8
9
|
provideInlineCompletions(model: monaco.editor.ITextModel, position: monaco.Position, context: monaco.languages.InlineCompletionContext, token: monaco.CancellationToken): Promise<monaco.languages.InlineCompletions | undefined>;
|
|
9
10
|
}
|
|
10
11
|
export declare class CodeCompletionAgentImpl implements CodeCompletionAgent {
|
|
12
|
+
protected languageModelService: LanguageModelService;
|
|
11
13
|
provideInlineCompletions(model: monaco.editor.ITextModel, position: monaco.Position, context: monaco.languages.InlineCompletionContext, token: monaco.CancellationToken): Promise<monaco.languages.InlineCompletions | undefined>;
|
|
12
14
|
protected logger: ILogger;
|
|
13
15
|
protected languageModelRegistry: LanguageModelRegistry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-completion-agent.d.ts","sourceRoot":"","sources":["../../src/browser/code-completion-agent.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAC5D,qBAAqB,
|
|
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;IA+H1D,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"}
|
|
@@ -17,12 +17,13 @@
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.CodeCompletionAgentImpl = exports.CodeCompletionAgent = void 0;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
|
+
const browser_1 = require("@theia/ai-core/lib/browser");
|
|
20
21
|
const common_1 = require("@theia/ai-core/lib/common");
|
|
21
22
|
const core_1 = require("@theia/core");
|
|
23
|
+
const browser_2 = require("@theia/core/lib/browser");
|
|
22
24
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
23
25
|
const ai_code_completion_preference_1 = require("./ai-code-completion-preference");
|
|
24
26
|
const code_completion_prompt_template_1 = require("./code-completion-prompt-template");
|
|
25
|
-
const browser_1 = require("@theia/core/lib/browser");
|
|
26
27
|
const code_completion_postprocessor_1 = require("./code-completion-postprocessor");
|
|
27
28
|
exports.CodeCompletionAgent = Symbol('CodeCompletionAgent');
|
|
28
29
|
let CodeCompletionAgentImpl = class CodeCompletionAgentImpl {
|
|
@@ -103,10 +104,14 @@ let CodeCompletionAgentImpl = class CodeCompletionAgentImpl {
|
|
|
103
104
|
const sessionId = (0, core_1.generateUuid)();
|
|
104
105
|
const requestId = (0, core_1.generateUuid)();
|
|
105
106
|
const request = {
|
|
106
|
-
messages: [{ type: 'text', actor: 'user',
|
|
107
|
+
messages: [{ type: 'text', actor: 'user', text: prompt }],
|
|
107
108
|
settings: {
|
|
108
109
|
stream: false
|
|
109
|
-
}
|
|
110
|
+
},
|
|
111
|
+
agentId: this.id,
|
|
112
|
+
sessionId,
|
|
113
|
+
requestId,
|
|
114
|
+
cancellationToken: token
|
|
110
115
|
};
|
|
111
116
|
if (token.isCancellationRequested) {
|
|
112
117
|
return undefined;
|
|
@@ -115,9 +120,9 @@ let CodeCompletionAgentImpl = class CodeCompletionAgentImpl {
|
|
|
115
120
|
agentId: this.id,
|
|
116
121
|
sessionId,
|
|
117
122
|
requestId,
|
|
118
|
-
request:
|
|
123
|
+
request: request.messages
|
|
119
124
|
});
|
|
120
|
-
const response = await
|
|
125
|
+
const response = await this.languageModelService.sendRequest(languageModel, request);
|
|
121
126
|
if (token.isCancellationRequested) {
|
|
122
127
|
return undefined;
|
|
123
128
|
}
|
|
@@ -129,7 +134,7 @@ let CodeCompletionAgentImpl = class CodeCompletionAgentImpl {
|
|
|
129
134
|
agentId: this.id,
|
|
130
135
|
sessionId,
|
|
131
136
|
requestId,
|
|
132
|
-
response: completionText,
|
|
137
|
+
response: [{ actor: 'ai', text: completionText, type: 'text' }]
|
|
133
138
|
});
|
|
134
139
|
const postProcessedCompletionText = this.postProcessor.postProcess(completionText);
|
|
135
140
|
return {
|
|
@@ -148,6 +153,10 @@ let CodeCompletionAgentImpl = class CodeCompletionAgentImpl {
|
|
|
148
153
|
}
|
|
149
154
|
};
|
|
150
155
|
exports.CodeCompletionAgentImpl = CodeCompletionAgentImpl;
|
|
156
|
+
tslib_1.__decorate([
|
|
157
|
+
(0, inversify_1.inject)(browser_1.LanguageModelService),
|
|
158
|
+
tslib_1.__metadata("design:type", Object)
|
|
159
|
+
], CodeCompletionAgentImpl.prototype, "languageModelService", void 0);
|
|
151
160
|
tslib_1.__decorate([
|
|
152
161
|
(0, inversify_1.inject)(core_1.ILogger),
|
|
153
162
|
(0, inversify_1.named)('code-completion-agent'),
|
|
@@ -170,7 +179,7 @@ tslib_1.__decorate([
|
|
|
170
179
|
tslib_1.__metadata("design:type", core_1.ProgressService)
|
|
171
180
|
], CodeCompletionAgentImpl.prototype, "progressService", void 0);
|
|
172
181
|
tslib_1.__decorate([
|
|
173
|
-
(0, inversify_1.inject)(
|
|
182
|
+
(0, inversify_1.inject)(browser_2.PreferenceService),
|
|
174
183
|
tslib_1.__metadata("design:type", Object)
|
|
175
184
|
], CodeCompletionAgentImpl.prototype, "preferences", void 0);
|
|
176
185
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"code-completion-agent.js","sourceRoot":"","sources":["../../src/browser/code-completion-agent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-code-completion",
|
|
3
|
-
"version": "1.60.0
|
|
3
|
+
"version": "1.60.0",
|
|
4
4
|
"description": "Theia - AI Core",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-core": "1.60.0
|
|
7
|
-
"@theia/core": "1.60.0
|
|
8
|
-
"@theia/filesystem": "1.60.0
|
|
6
|
+
"@theia/ai-core": "1.60.0",
|
|
7
|
+
"@theia/core": "1.60.0",
|
|
8
|
+
"@theia/filesystem": "1.60.0",
|
|
9
9
|
"@theia/monaco-editor-core": "1.96.302",
|
|
10
|
-
"@theia/output": "1.60.0
|
|
11
|
-
"@theia/workspace": "1.60.0
|
|
10
|
+
"@theia/output": "1.60.0",
|
|
11
|
+
"@theia/workspace": "1.60.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.
|
|
49
|
+
"@theia/ext-scripts": "1.60.0"
|
|
50
50
|
},
|
|
51
51
|
"nyc": {
|
|
52
52
|
"extends": "../../configs/nyc.json"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "193fa55d7e26aa9dc8acba3ae3b99b0182f3603f"
|
|
55
55
|
}
|
|
@@ -33,7 +33,7 @@ export const AICodeCompletionPreferencesSchema: PreferenceSchema = {
|
|
|
33
33
|
'Automatically trigger AI completions inline within any (Monaco) editor while editing.\
|
|
34
34
|
\n\
|
|
35
35
|
Alternatively, you can manually trigger the code via the command "Trigger Inline Suggestion" or the default shortcut "Ctrl+Alt+Space".'),
|
|
36
|
-
default:
|
|
36
|
+
default: false
|
|
37
37
|
},
|
|
38
38
|
[PREF_AI_INLINE_COMPLETION_EXCLUDED_EXTENSIONS]: {
|
|
39
39
|
title: nls.localize('theia/ai/completion/excludedFileExts/title', 'Excluded File Extensions'),
|
|
@@ -14,16 +14,18 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
+
import { LanguageModelService } from '@theia/ai-core/lib/browser';
|
|
17
18
|
import {
|
|
18
19
|
Agent, AgentSpecificVariables, CommunicationRecordingService, getTextOfResponse,
|
|
19
|
-
LanguageModelRegistry,
|
|
20
|
+
LanguageModelRegistry, LanguageModelRequirement, PromptService, PromptTemplate,
|
|
21
|
+
UserRequest
|
|
20
22
|
} from '@theia/ai-core/lib/common';
|
|
21
23
|
import { generateUuid, ILogger, nls, ProgressService } from '@theia/core';
|
|
24
|
+
import { PreferenceService } from '@theia/core/lib/browser';
|
|
22
25
|
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
23
26
|
import * as monaco from '@theia/monaco-editor-core';
|
|
24
27
|
import { PREF_AI_INLINE_COMPLETION_MAX_CONTEXT_LINES } from './ai-code-completion-preference';
|
|
25
28
|
import { codeCompletionPromptTemplates } from './code-completion-prompt-template';
|
|
26
|
-
import { PreferenceService } from '@theia/core/lib/browser';
|
|
27
29
|
import { CodeCompletionPostProcessor } from './code-completion-postprocessor';
|
|
28
30
|
|
|
29
31
|
export const CodeCompletionAgent = Symbol('CodeCompletionAgent');
|
|
@@ -34,6 +36,9 @@ export interface CodeCompletionAgent extends Agent {
|
|
|
34
36
|
|
|
35
37
|
@injectable()
|
|
36
38
|
export class CodeCompletionAgentImpl implements CodeCompletionAgent {
|
|
39
|
+
@inject(LanguageModelService)
|
|
40
|
+
protected languageModelService: LanguageModelService;
|
|
41
|
+
|
|
37
42
|
async provideInlineCompletions(
|
|
38
43
|
model: monaco.editor.ITextModel,
|
|
39
44
|
position: monaco.Position,
|
|
@@ -114,11 +119,15 @@ export class CodeCompletionAgentImpl implements CodeCompletionAgent {
|
|
|
114
119
|
// since we do not actually hold complete conversions, the request/response pair is considered a session
|
|
115
120
|
const sessionId = generateUuid();
|
|
116
121
|
const requestId = generateUuid();
|
|
117
|
-
const request:
|
|
118
|
-
messages: [{ type: 'text', actor: 'user',
|
|
122
|
+
const request: UserRequest = {
|
|
123
|
+
messages: [{ type: 'text', actor: 'user', text: prompt }],
|
|
119
124
|
settings: {
|
|
120
125
|
stream: false
|
|
121
|
-
}
|
|
126
|
+
},
|
|
127
|
+
agentId: this.id,
|
|
128
|
+
sessionId,
|
|
129
|
+
requestId,
|
|
130
|
+
cancellationToken: token
|
|
122
131
|
};
|
|
123
132
|
if (token.isCancellationRequested) {
|
|
124
133
|
return undefined;
|
|
@@ -127,9 +136,9 @@ export class CodeCompletionAgentImpl implements CodeCompletionAgent {
|
|
|
127
136
|
agentId: this.id,
|
|
128
137
|
sessionId,
|
|
129
138
|
requestId,
|
|
130
|
-
request:
|
|
139
|
+
request: request.messages
|
|
131
140
|
});
|
|
132
|
-
const response = await
|
|
141
|
+
const response = await this.languageModelService.sendRequest(languageModel, request);
|
|
133
142
|
if (token.isCancellationRequested) {
|
|
134
143
|
return undefined;
|
|
135
144
|
}
|
|
@@ -141,7 +150,7 @@ export class CodeCompletionAgentImpl implements CodeCompletionAgent {
|
|
|
141
150
|
agentId: this.id,
|
|
142
151
|
sessionId,
|
|
143
152
|
requestId,
|
|
144
|
-
response: completionText,
|
|
153
|
+
response: [{ actor: 'ai', text: completionText, type: 'text' }]
|
|
145
154
|
});
|
|
146
155
|
|
|
147
156
|
const postProcessedCompletionText = this.postProcessor.postProcess(completionText);
|