@theia/ai-core 1.54.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 (209) hide show
  1. package/README.md +30 -0
  2. package/data/prompttemplate.tmLanguage.json +52 -0
  3. package/lib/browser/ai-activation-service.d.ts +17 -0
  4. package/lib/browser/ai-activation-service.d.ts.map +1 -0
  5. package/lib/browser/ai-activation-service.js +63 -0
  6. package/lib/browser/ai-activation-service.js.map +1 -0
  7. package/lib/browser/ai-command-handler-factory.d.ts +4 -0
  8. package/lib/browser/ai-command-handler-factory.d.ts.map +1 -0
  9. package/lib/browser/ai-command-handler-factory.js +20 -0
  10. package/lib/browser/ai-command-handler-factory.js.map +1 -0
  11. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts +27 -0
  12. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +1 -0
  13. package/lib/browser/ai-configuration/agent-configuration-widget.js +231 -0
  14. package/lib/browser/ai-configuration/agent-configuration-widget.js.map +1 -0
  15. package/lib/browser/ai-configuration/ai-configuration-service.d.ts +13 -0
  16. package/lib/browser/ai-configuration/ai-configuration-service.d.ts.map +1 -0
  17. package/lib/browser/ai-configuration/ai-configuration-service.js +44 -0
  18. package/lib/browser/ai-configuration/ai-configuration-service.js.map +1 -0
  19. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts +12 -0
  20. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts.map +1 -0
  21. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js +41 -0
  22. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js.map +1 -0
  23. package/lib/browser/ai-configuration/ai-configuration-widget.d.ts +20 -0
  24. package/lib/browser/ai-configuration/ai-configuration-widget.d.ts.map +1 -0
  25. package/lib/browser/ai-configuration/ai-configuration-widget.js +88 -0
  26. package/lib/browser/ai-configuration/ai-configuration-widget.js.map +1 -0
  27. package/lib/browser/ai-configuration/language-model-renderer.d.ts +13 -0
  28. package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -0
  29. package/lib/browser/ai-configuration/language-model-renderer.js +104 -0
  30. package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -0
  31. package/lib/browser/ai-configuration/template-settings-renderer.d.ts +11 -0
  32. package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +1 -0
  33. package/lib/browser/ai-configuration/template-settings-renderer.js +33 -0
  34. package/lib/browser/ai-configuration/template-settings-renderer.js.map +1 -0
  35. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts +20 -0
  36. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts.map +1 -0
  37. package/lib/browser/ai-configuration/variable-configuration-widget.js +99 -0
  38. package/lib/browser/ai-configuration/variable-configuration-widget.js.map +1 -0
  39. package/lib/browser/ai-core-frontend-application-contribution.d.ts +8 -0
  40. package/lib/browser/ai-core-frontend-application-contribution.d.ts.map +1 -0
  41. package/lib/browser/ai-core-frontend-application-contribution.js +46 -0
  42. package/lib/browser/ai-core-frontend-application-contribution.js.map +1 -0
  43. package/lib/browser/ai-core-frontend-module.d.ts +4 -0
  44. package/lib/browser/ai-core-frontend-module.d.ts.map +1 -0
  45. package/lib/browser/ai-core-frontend-module.js +122 -0
  46. package/lib/browser/ai-core-frontend-module.js.map +1 -0
  47. package/lib/browser/ai-core-preferences.d.ts +14 -0
  48. package/lib/browser/ai-core-preferences.d.ts.map +1 -0
  49. package/lib/browser/ai-core-preferences.js +69 -0
  50. package/lib/browser/ai-core-preferences.js.map +1 -0
  51. package/lib/browser/ai-settings-service.d.ts +14 -0
  52. package/lib/browser/ai-settings-service.d.ts.map +1 -0
  53. package/lib/browser/ai-settings-service.js +56 -0
  54. package/lib/browser/ai-settings-service.js.map +1 -0
  55. package/lib/browser/ai-view-contribution.d.ts +14 -0
  56. package/lib/browser/ai-view-contribution.d.ts.map +1 -0
  57. package/lib/browser/ai-view-contribution.js +71 -0
  58. package/lib/browser/ai-view-contribution.js.map +1 -0
  59. package/lib/browser/frontend-language-model-registry.d.ts +39 -0
  60. package/lib/browser/frontend-language-model-registry.d.ts.map +1 -0
  61. package/lib/browser/frontend-language-model-registry.js +321 -0
  62. package/lib/browser/frontend-language-model-registry.js.map +1 -0
  63. package/lib/browser/frontend-prompt-customization-service.d.ts +31 -0
  64. package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -0
  65. package/lib/browser/frontend-prompt-customization-service.js +194 -0
  66. package/lib/browser/frontend-prompt-customization-service.js.map +1 -0
  67. package/lib/browser/frontend-variable-service.d.ts +6 -0
  68. package/lib/browser/frontend-variable-service.d.ts.map +1 -0
  69. package/lib/browser/frontend-variable-service.js +31 -0
  70. package/lib/browser/frontend-variable-service.js.map +1 -0
  71. package/lib/browser/index.d.ts +11 -0
  72. package/lib/browser/index.d.ts.map +1 -0
  73. package/lib/browser/index.js +29 -0
  74. package/lib/browser/index.js.map +1 -0
  75. package/lib/browser/prompttemplate-contribution.d.ts +28 -0
  76. package/lib/browser/prompttemplate-contribution.d.ts.map +1 -0
  77. package/lib/browser/prompttemplate-contribution.js +207 -0
  78. package/lib/browser/prompttemplate-contribution.js.map +1 -0
  79. package/lib/browser/theia-variable-contribution.d.ts +13 -0
  80. package/lib/browser/theia-variable-contribution.d.ts.map +1 -0
  81. package/lib/browser/theia-variable-contribution.js +64 -0
  82. package/lib/browser/theia-variable-contribution.js.map +1 -0
  83. package/lib/common/agent-service.d.ts +48 -0
  84. package/lib/common/agent-service.d.ts.map +1 -0
  85. package/lib/common/agent-service.js +88 -0
  86. package/lib/common/agent-service.js.map +1 -0
  87. package/lib/common/agent.d.ts +45 -0
  88. package/lib/common/agent.d.ts.map +1 -0
  89. package/lib/common/agent.js +20 -0
  90. package/lib/common/agent.js.map +1 -0
  91. package/lib/common/agents-variable-contribution.d.ts +19 -0
  92. package/lib/common/agents-variable-contribution.d.ts.map +1 -0
  93. package/lib/common/agents-variable-contribution.js +56 -0
  94. package/lib/common/agents-variable-contribution.js.map +1 -0
  95. package/lib/common/communication-recording-service.d.ts +23 -0
  96. package/lib/common/communication-recording-service.d.ts.map +1 -0
  97. package/lib/common/communication-recording-service.js +20 -0
  98. package/lib/common/communication-recording-service.js.map +1 -0
  99. package/lib/common/index.d.ts +16 -0
  100. package/lib/common/index.d.ts.map +1 -0
  101. package/lib/common/index.js +34 -0
  102. package/lib/common/index.js.map +1 -0
  103. package/lib/common/language-model-delegate.d.ts +24 -0
  104. package/lib/common/language-model-delegate.d.ts.map +1 -0
  105. package/lib/common/language-model-delegate.js +26 -0
  106. package/lib/common/language-model-delegate.js.map +1 -0
  107. package/lib/common/language-model-util.d.ts +5 -0
  108. package/lib/common/language-model-util.d.ts.map +1 -0
  109. package/lib/common/language-model-util.js +75 -0
  110. package/lib/common/language-model-util.js.map +1 -0
  111. package/lib/common/language-model.d.ts +137 -0
  112. package/lib/common/language-model.d.ts.map +1 -0
  113. package/lib/common/language-model.js +142 -0
  114. package/lib/common/language-model.js.map +1 -0
  115. package/lib/common/language-model.spec.d.ts +2 -0
  116. package/lib/common/language-model.spec.d.ts.map +1 -0
  117. package/lib/common/language-model.spec.js +62 -0
  118. package/lib/common/language-model.spec.js.map +1 -0
  119. package/lib/common/prompt-service-util.d.ts +5 -0
  120. package/lib/common/prompt-service-util.d.ts.map +1 -0
  121. package/lib/common/prompt-service-util.js +23 -0
  122. package/lib/common/prompt-service-util.js.map +1 -0
  123. package/lib/common/prompt-service.d.ts +101 -0
  124. package/lib/common/prompt-service.d.ts.map +1 -0
  125. package/lib/common/prompt-service.js +139 -0
  126. package/lib/common/prompt-service.js.map +1 -0
  127. package/lib/common/prompt-service.spec.d.ts +2 -0
  128. package/lib/common/prompt-service.spec.d.ts.map +1 -0
  129. package/lib/common/prompt-service.spec.js +86 -0
  130. package/lib/common/prompt-service.spec.js.map +1 -0
  131. package/lib/common/protocol.d.ts +7 -0
  132. package/lib/common/protocol.d.ts.map +1 -0
  133. package/lib/common/protocol.js +20 -0
  134. package/lib/common/protocol.js.map +1 -0
  135. package/lib/common/settings-service.d.ts +18 -0
  136. package/lib/common/settings-service.d.ts.map +1 -0
  137. package/lib/common/settings-service.js +5 -0
  138. package/lib/common/settings-service.js.map +1 -0
  139. package/lib/common/today-variable-contribution.d.ts +17 -0
  140. package/lib/common/today-variable-contribution.d.ts.map +1 -0
  141. package/lib/common/today-variable-contribution.js +48 -0
  142. package/lib/common/today-variable-contribution.js.map +1 -0
  143. package/lib/common/tomorrow-variable-contribution.d.ts +17 -0
  144. package/lib/common/tomorrow-variable-contribution.d.ts.map +1 -0
  145. package/lib/common/tomorrow-variable-contribution.js +48 -0
  146. package/lib/common/tomorrow-variable-contribution.js.map +1 -0
  147. package/lib/common/tool-invocation-registry.d.ts +23 -0
  148. package/lib/common/tool-invocation-registry.d.ts.map +1 -0
  149. package/lib/common/tool-invocation-registry.js +72 -0
  150. package/lib/common/tool-invocation-registry.js.map +1 -0
  151. package/lib/common/variable-service.d.ts +70 -0
  152. package/lib/common/variable-service.d.ts.map +1 -0
  153. package/lib/common/variable-service.js +122 -0
  154. package/lib/common/variable-service.js.map +1 -0
  155. package/lib/node/ai-core-backend-module.d.ts +4 -0
  156. package/lib/node/ai-core-backend-module.d.ts.map +1 -0
  157. package/lib/node/ai-core-backend-module.js +47 -0
  158. package/lib/node/ai-core-backend-module.js.map +1 -0
  159. package/lib/node/backend-language-model-registry.d.ts +12 -0
  160. package/lib/node/backend-language-model-registry.d.ts.map +1 -0
  161. package/lib/node/backend-language-model-registry.js +61 -0
  162. package/lib/node/backend-language-model-registry.js.map +1 -0
  163. package/lib/node/language-model-frontend-delegate.d.ts +18 -0
  164. package/lib/node/language-model-frontend-delegate.d.ts.map +1 -0
  165. package/lib/node/language-model-frontend-delegate.js +100 -0
  166. package/lib/node/language-model-frontend-delegate.js.map +1 -0
  167. package/package.json +59 -0
  168. package/src/browser/ai-activation-service.ts +56 -0
  169. package/src/browser/ai-command-handler-factory.ts +20 -0
  170. package/src/browser/ai-configuration/agent-configuration-widget.tsx +299 -0
  171. package/src/browser/ai-configuration/ai-configuration-service.ts +43 -0
  172. package/src/browser/ai-configuration/ai-configuration-view-contribution.ts +54 -0
  173. package/src/browser/ai-configuration/ai-configuration-widget.tsx +80 -0
  174. package/src/browser/ai-configuration/language-model-renderer.tsx +113 -0
  175. package/src/browser/ai-configuration/template-settings-renderer.tsx +39 -0
  176. package/src/browser/ai-configuration/variable-configuration-widget.tsx +110 -0
  177. package/src/browser/ai-core-frontend-application-contribution.ts +40 -0
  178. package/src/browser/ai-core-frontend-module.ts +161 -0
  179. package/src/browser/ai-core-preferences.ts +76 -0
  180. package/src/browser/ai-settings-service.ts +50 -0
  181. package/src/browser/ai-view-contribution.ts +77 -0
  182. package/src/browser/frontend-language-model-registry.ts +405 -0
  183. package/src/browser/frontend-prompt-customization-service.ts +197 -0
  184. package/src/browser/frontend-variable-service.ts +26 -0
  185. package/src/browser/index.ts +26 -0
  186. package/src/browser/prompttemplate-contribution.ts +250 -0
  187. package/src/browser/style/index.css +90 -0
  188. package/src/browser/theia-variable-contribution.ts +58 -0
  189. package/src/common/agent-service.ts +108 -0
  190. package/src/common/agent.ts +70 -0
  191. package/src/common/agents-variable-contribution.ts +64 -0
  192. package/src/common/communication-recording-service.ts +44 -0
  193. package/src/common/index.ts +30 -0
  194. package/src/common/language-model-delegate.ts +45 -0
  195. package/src/common/language-model-util.ts +67 -0
  196. package/src/common/language-model.spec.ts +86 -0
  197. package/src/common/language-model.ts +237 -0
  198. package/src/common/prompt-service-util.ts +21 -0
  199. package/src/common/prompt-service.spec.ts +98 -0
  200. package/src/common/prompt-service.ts +213 -0
  201. package/src/common/protocol.ts +23 -0
  202. package/src/common/settings-service.ts +33 -0
  203. package/src/common/today-variable-contribution.ts +67 -0
  204. package/src/common/tomorrow-variable-contribution.ts +66 -0
  205. package/src/common/tool-invocation-registry.ts +79 -0
  206. package/src/common/variable-service.ts +177 -0
  207. package/src/node/ai-core-backend-module.ts +83 -0
  208. package/src/node/backend-language-model-registry.ts +59 -0
  209. package/src/node/language-model-frontend-delegate.ts +116 -0
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ var FrontendLanguageModelRegistryImpl_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.FrontendLanguageModelRegistryImpl = exports.LanguageModelDelegateClientImpl = void 0;
5
+ const tslib_1 = require("tslib");
6
+ // *****************************************************************************
7
+ // Copyright (C) 2024 EclipseSource GmbH.
8
+ //
9
+ // This program and the accompanying materials are made available under the
10
+ // terms of the Eclipse Public License v. 2.0 which is available at
11
+ // http://www.eclipse.org/legal/epl-2.0.
12
+ //
13
+ // This Source Code may also be made available under the following Secondary
14
+ // Licenses when the conditions for such availability set forth in the Eclipse
15
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
16
+ // with the GNU Classpath Exception which is available at
17
+ // https://www.gnu.org/software/classpath/license.html.
18
+ //
19
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
20
+ // *****************************************************************************
21
+ const core_1 = require("@theia/core");
22
+ const inversify_1 = require("@theia/core/shared/inversify");
23
+ const output_channel_1 = require("@theia/output/lib/browser/output-channel");
24
+ const common_1 = require("../common");
25
+ let LanguageModelDelegateClientImpl = class LanguageModelDelegateClientImpl {
26
+ setReceiver(receiver) {
27
+ this.receiver = receiver;
28
+ }
29
+ send(id, token) {
30
+ this.receiver.send(id, token);
31
+ }
32
+ toolCall(requestId, toolId, args_string) {
33
+ return this.receiver.toolCall(requestId, toolId, args_string);
34
+ }
35
+ languageModelAdded(metadata) {
36
+ this.receiver.languageModelAdded(metadata);
37
+ }
38
+ languageModelRemoved(id) {
39
+ this.receiver.languageModelRemoved(id);
40
+ }
41
+ };
42
+ exports.LanguageModelDelegateClientImpl = LanguageModelDelegateClientImpl;
43
+ exports.LanguageModelDelegateClientImpl = LanguageModelDelegateClientImpl = tslib_1.__decorate([
44
+ (0, inversify_1.injectable)()
45
+ ], LanguageModelDelegateClientImpl);
46
+ let FrontendLanguageModelRegistryImpl = FrontendLanguageModelRegistryImpl_1 = class FrontendLanguageModelRegistryImpl extends common_1.DefaultLanguageModelRegistryImpl {
47
+ constructor() {
48
+ super(...arguments);
49
+ this.streams = new Map();
50
+ this.requests = new Map();
51
+ }
52
+ // called by backend
53
+ languageModelAdded(metadata) {
54
+ this.addLanguageModels([metadata]);
55
+ }
56
+ // called by backend
57
+ languageModelRemoved(id) {
58
+ this.removeLanguageModels([id]);
59
+ }
60
+ addLanguageModels(models) {
61
+ let modelAdded = false;
62
+ for (const model of models) {
63
+ if (this.languageModels.find(m => m.id === model.id)) {
64
+ console.warn(`Tried to add an existing model ${model.id}`);
65
+ continue;
66
+ }
67
+ if (common_1.LanguageModel.is(model)) {
68
+ this.languageModels.push(new Proxy(model, languageModelOutputHandler(() => this.outputChannelManager.getChannel(model.id))));
69
+ modelAdded = true;
70
+ }
71
+ else {
72
+ this.languageModels.push(new Proxy(this.createFrontendLanguageModel(model), languageModelOutputHandler(() => this.outputChannelManager.getChannel(model.id))));
73
+ modelAdded = true;
74
+ }
75
+ }
76
+ if (modelAdded) {
77
+ this.changeEmitter.fire({ models: this.languageModels });
78
+ }
79
+ }
80
+ init() {
81
+ this.client.setReceiver(this);
82
+ const contributions = this.languageModelContributions.getContributions();
83
+ const promises = contributions.map(provider => provider());
84
+ const backendDescriptions = this.registryDelegate.getLanguageModelDescriptions();
85
+ Promise.allSettled([backendDescriptions, ...promises]).then(results => {
86
+ const backendDescriptionsResult = results[0];
87
+ if (backendDescriptionsResult.status === 'fulfilled') {
88
+ this.addLanguageModels(backendDescriptionsResult.value);
89
+ }
90
+ else {
91
+ this.logger.error('Failed to add language models contributed from the backend', backendDescriptionsResult.reason);
92
+ }
93
+ for (let i = 1; i < results.length; i++) {
94
+ // assert that index > 0 contains only language models
95
+ const languageModelResult = results[i];
96
+ if (languageModelResult.status === 'fulfilled') {
97
+ this.addLanguageModels(languageModelResult.value);
98
+ }
99
+ else {
100
+ this.logger.error('Failed to add some language models:', languageModelResult.reason);
101
+ }
102
+ }
103
+ this.markInitialized();
104
+ });
105
+ }
106
+ createFrontendLanguageModel(description) {
107
+ return {
108
+ ...description,
109
+ request: async (request, cancellationToken) => {
110
+ const requestId = `${FrontendLanguageModelRegistryImpl_1.requestCounter++}`;
111
+ this.requests.set(requestId, request);
112
+ cancellationToken === null || cancellationToken === void 0 ? void 0 : cancellationToken.onCancellationRequested(() => {
113
+ this.providerDelegate.cancel(requestId);
114
+ });
115
+ const response = await this.providerDelegate.request(description.id, request, requestId, cancellationToken);
116
+ if ((0, common_1.isLanguageModelTextResponse)(response) || (0, common_1.isLanguageModelParsedResponse)(response)) {
117
+ return response;
118
+ }
119
+ if ((0, common_1.isLanguageModelStreamResponseDelegate)(response)) {
120
+ if (!this.streams.has(response.streamId)) {
121
+ const newStreamState = {
122
+ id: response.streamId,
123
+ tokens: [],
124
+ };
125
+ this.streams.set(response.streamId, newStreamState);
126
+ }
127
+ const streamState = this.streams.get(response.streamId);
128
+ return {
129
+ stream: this.getIterable(streamState),
130
+ };
131
+ }
132
+ this.logger.error(`Received unknown response in frontend for request to language model ${description.id}. Trying to continue without touching the response.`, response);
133
+ return response;
134
+ },
135
+ };
136
+ }
137
+ async *getIterable(state) {
138
+ let current = -1;
139
+ while (true) {
140
+ if (current < state.tokens.length - 1) {
141
+ current++;
142
+ const token = state.tokens[current];
143
+ if (token === undefined) {
144
+ // message is finished
145
+ break;
146
+ }
147
+ if (token !== undefined) {
148
+ yield token;
149
+ }
150
+ }
151
+ else {
152
+ await new Promise(resolve => {
153
+ state.resolve = resolve;
154
+ });
155
+ }
156
+ }
157
+ this.streams.delete(state.id);
158
+ }
159
+ // called by backend via the "delegate client" with new tokens
160
+ send(id, token) {
161
+ if (!this.streams.has(id)) {
162
+ const newStreamState = {
163
+ id,
164
+ tokens: [],
165
+ };
166
+ this.streams.set(id, newStreamState);
167
+ }
168
+ const streamState = this.streams.get(id);
169
+ streamState.tokens.push(token);
170
+ if (streamState.resolve) {
171
+ streamState.resolve(token);
172
+ }
173
+ }
174
+ // called by backend once tool is invoked
175
+ toolCall(id, toolId, arg_string) {
176
+ var _a;
177
+ if (!this.requests.has(id)) {
178
+ throw new Error('Somehow we got a callback for a non existing request!');
179
+ }
180
+ const request = this.requests.get(id);
181
+ const tool = (_a = request.tools) === null || _a === void 0 ? void 0 : _a.find(t => t.id === toolId);
182
+ if (tool) {
183
+ return tool.handler(arg_string);
184
+ }
185
+ throw new Error(`Could not find a tool for ${toolId}!`);
186
+ }
187
+ async selectLanguageModels(request) {
188
+ var _a, _b;
189
+ await this.initialized;
190
+ const userSettings = (_b = (_a = (await this.settingsService.getAgentSettings(request.agent))) === null || _a === void 0 ? void 0 : _a.languageModelRequirements) === null || _b === void 0 ? void 0 : _b.find(req => req.purpose === request.purpose);
191
+ if (userSettings === null || userSettings === void 0 ? void 0 : userSettings.identifier) {
192
+ const model = await this.getLanguageModel(userSettings.identifier);
193
+ if (model) {
194
+ return [model];
195
+ }
196
+ }
197
+ return this.languageModels.filter(model => (0, common_1.isModelMatching)(request, model));
198
+ }
199
+ async selectLanguageModel(request) {
200
+ return (await this.selectLanguageModels(request))[0];
201
+ }
202
+ };
203
+ exports.FrontendLanguageModelRegistryImpl = FrontendLanguageModelRegistryImpl;
204
+ FrontendLanguageModelRegistryImpl.requestCounter = 0;
205
+ tslib_1.__decorate([
206
+ (0, inversify_1.inject)(common_1.LanguageModelRegistryFrontendDelegate),
207
+ tslib_1.__metadata("design:type", Object)
208
+ ], FrontendLanguageModelRegistryImpl.prototype, "registryDelegate", void 0);
209
+ tslib_1.__decorate([
210
+ (0, inversify_1.inject)(common_1.LanguageModelFrontendDelegate),
211
+ tslib_1.__metadata("design:type", Object)
212
+ ], FrontendLanguageModelRegistryImpl.prototype, "providerDelegate", void 0);
213
+ tslib_1.__decorate([
214
+ (0, inversify_1.inject)(LanguageModelDelegateClientImpl),
215
+ tslib_1.__metadata("design:type", LanguageModelDelegateClientImpl)
216
+ ], FrontendLanguageModelRegistryImpl.prototype, "client", void 0);
217
+ tslib_1.__decorate([
218
+ (0, inversify_1.inject)(core_1.ILogger),
219
+ tslib_1.__metadata("design:type", Object)
220
+ ], FrontendLanguageModelRegistryImpl.prototype, "logger", void 0);
221
+ tslib_1.__decorate([
222
+ (0, inversify_1.inject)(output_channel_1.OutputChannelManager),
223
+ tslib_1.__metadata("design:type", output_channel_1.OutputChannelManager)
224
+ ], FrontendLanguageModelRegistryImpl.prototype, "outputChannelManager", void 0);
225
+ tslib_1.__decorate([
226
+ (0, inversify_1.inject)(common_1.AISettingsService),
227
+ tslib_1.__metadata("design:type", Object)
228
+ ], FrontendLanguageModelRegistryImpl.prototype, "settingsService", void 0);
229
+ tslib_1.__decorate([
230
+ (0, inversify_1.postConstruct)(),
231
+ tslib_1.__metadata("design:type", Function),
232
+ tslib_1.__metadata("design:paramtypes", []),
233
+ tslib_1.__metadata("design:returntype", void 0)
234
+ ], FrontendLanguageModelRegistryImpl.prototype, "init", null);
235
+ exports.FrontendLanguageModelRegistryImpl = FrontendLanguageModelRegistryImpl = FrontendLanguageModelRegistryImpl_1 = tslib_1.__decorate([
236
+ (0, inversify_1.injectable)()
237
+ ], FrontendLanguageModelRegistryImpl);
238
+ const formatJsonWithIndentation = (obj) => {
239
+ // eslint-disable-next-line no-null/no-null
240
+ const jsonString = JSON.stringify(obj, null, 2);
241
+ const lines = jsonString.split('\n');
242
+ const formattedLines = [];
243
+ lines.forEach(line => {
244
+ const subLines = line.split('\\n');
245
+ const index = indexOfValue(subLines[0]) + 1;
246
+ formattedLines.push(subLines[0]);
247
+ const prefix = index > 0 ? ' '.repeat(index) : '';
248
+ if (index !== -1) {
249
+ for (let i = 1; i < subLines.length; i++) {
250
+ formattedLines.push(prefix + subLines[i]);
251
+ }
252
+ }
253
+ });
254
+ return formattedLines;
255
+ };
256
+ const indexOfValue = (jsonLine) => {
257
+ const pattern = /"([^"]+)"\s*:\s*/g;
258
+ const match = pattern.exec(jsonLine);
259
+ return match ? match.index + match[0].length : -1;
260
+ };
261
+ const languageModelOutputHandler = (outputChannelGetter) => ({
262
+ get(target, prop) {
263
+ const original = target[prop];
264
+ if (prop === 'request' && typeof original === 'function') {
265
+ return async function (...args) {
266
+ const outputChannel = outputChannelGetter();
267
+ outputChannel.appendLine('Sending request:');
268
+ const formattedRequest = formatJsonWithIndentation(args[0]);
269
+ formattedRequest.forEach(line => outputChannel.appendLine(line));
270
+ if (args[1]) {
271
+ args[1] = new Proxy(args[1], {
272
+ get(cTarget, cProp) {
273
+ if (cProp === 'onCancellationRequested') {
274
+ return (...cargs) => cTarget.onCancellationRequested(() => {
275
+ outputChannel.appendLine('\nCancel requested', output_channel_1.OutputChannelSeverity.Warning);
276
+ cargs[0]();
277
+ }, cargs[1], cargs[2]);
278
+ }
279
+ return cTarget[cProp];
280
+ }
281
+ });
282
+ }
283
+ try {
284
+ const result = await original.apply(target, args);
285
+ if ((0, common_1.isLanguageModelStreamResponse)(result)) {
286
+ outputChannel.appendLine('Received a response stream');
287
+ const stream = result.stream;
288
+ const loggedStream = {
289
+ async *[Symbol.asyncIterator]() {
290
+ for await (const part of stream) {
291
+ outputChannel.append(part.content || '');
292
+ yield part;
293
+ }
294
+ outputChannel.append('\n');
295
+ outputChannel.appendLine('End of stream');
296
+ },
297
+ };
298
+ return {
299
+ ...result,
300
+ stream: loggedStream,
301
+ };
302
+ }
303
+ else {
304
+ outputChannel.appendLine('Received a response');
305
+ outputChannel.appendLine(JSON.stringify(result));
306
+ return result;
307
+ }
308
+ }
309
+ catch (err) {
310
+ outputChannel.appendLine('An error occurred');
311
+ if (err instanceof Error) {
312
+ outputChannel.appendLine(err.message, output_channel_1.OutputChannelSeverity.Error);
313
+ }
314
+ throw err;
315
+ }
316
+ };
317
+ }
318
+ return original;
319
+ },
320
+ });
321
+ //# sourceMappingURL=frontend-language-model-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-language-model-registry.js","sourceRoot":"","sources":["../../src/browser/frontend-language-model-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { DisposableCollection, URI, Event } from '@theia/core';
2
+ import { OpenerService } from '@theia/core/lib/browser';
3
+ import { PromptCustomizationService, PromptTemplate } from '../common';
4
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
5
+ import { AICorePreferences } from './ai-core-preferences';
6
+ import { AgentService } from '../common/agent-service';
7
+ import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
8
+ export declare class FrontendPromptCustomizationServiceImpl implements PromptCustomizationService {
9
+ protected readonly envVariablesServer: EnvVariablesServer;
10
+ protected readonly preferences: AICorePreferences;
11
+ protected readonly fileService: FileService;
12
+ protected readonly openerService: OpenerService;
13
+ protected readonly agentService: AgentService;
14
+ protected readonly trackedTemplateURIs: Set<string>;
15
+ protected templates: Map<string, string>;
16
+ protected toDispose: DisposableCollection;
17
+ private readonly onDidChangePromptEmitter;
18
+ readonly onDidChangePrompt: Event<string>;
19
+ protected init(): void;
20
+ protected update(): Promise<void>;
21
+ protected getTemplatesDirectoryURI(): Promise<URI>;
22
+ protected getTemplateURI(templateId: string): Promise<URI>;
23
+ protected removePromptTemplateSuffix(filename: string): string;
24
+ isPromptTemplateCustomized(id: string): boolean;
25
+ getCustomizedPromptTemplate(id: string): string | undefined;
26
+ editTemplate(id: string, content?: string): Promise<void>;
27
+ resetTemplate(id: string): Promise<void>;
28
+ getOriginalTemplate(id: string): PromptTemplate | undefined;
29
+ getTemplateIDFromURI(uri: URI): string | undefined;
30
+ }
31
+ //# sourceMappingURL=frontend-prompt-customization-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-prompt-customization-service.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-prompt-customization-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,GAAG,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAoC,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,qBACa,sCAAuC,YAAW,0BAA0B;IAGrF,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAE9C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,cAAqB;IAC3D,SAAS,CAAC,SAAS,sBAA6B;IAEhD,SAAS,CAAC,SAAS,uBAA8B;IAEjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAyB;IAClE,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAuC;IAGhF,SAAS,CAAC,IAAI,IAAI,IAAI;cASN,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;cA8DvB,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC;cASxC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhE,SAAS,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQ9D,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/C,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIrD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAW3D,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;CAQrD"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2024 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.FrontendPromptCustomizationServiceImpl = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const core_1 = require("@theia/core");
21
+ const browser_1 = require("@theia/core/lib/browser");
22
+ const inversify_1 = require("@theia/core/shared/inversify");
23
+ const buffer_1 = require("@theia/core/lib/common/buffer");
24
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
25
+ const ai_core_preferences_1 = require("./ai-core-preferences");
26
+ const agent_service_1 = require("../common/agent-service");
27
+ const env_variables_1 = require("@theia/core/lib/common/env-variables");
28
+ let FrontendPromptCustomizationServiceImpl = class FrontendPromptCustomizationServiceImpl {
29
+ constructor() {
30
+ this.trackedTemplateURIs = new Set();
31
+ this.templates = new Map();
32
+ this.toDispose = new core_1.DisposableCollection();
33
+ this.onDidChangePromptEmitter = new core_1.Emitter();
34
+ this.onDidChangePrompt = this.onDidChangePromptEmitter.event;
35
+ }
36
+ init() {
37
+ this.preferences.onPreferenceChanged(event => {
38
+ if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_PROMPT_TEMPLATES) {
39
+ this.update();
40
+ }
41
+ });
42
+ this.update();
43
+ }
44
+ async update() {
45
+ this.toDispose.dispose();
46
+ // we need to assign a local variable, so that updates running in parallel don't interfere with each other
47
+ const _templates = new Map();
48
+ this.templates = _templates;
49
+ this.trackedTemplateURIs.clear();
50
+ const templateURI = await this.getTemplatesDirectoryURI();
51
+ this.toDispose.push(this.fileService.watch(templateURI, { recursive: true, excludes: [] }));
52
+ this.toDispose.push(this.fileService.onDidFilesChange(async (event) => {
53
+ // check deleted templates
54
+ for (const deletedFile of event.getDeleted()) {
55
+ if (this.trackedTemplateURIs.has(deletedFile.resource.toString())) {
56
+ this.trackedTemplateURIs.delete(deletedFile.resource.toString());
57
+ const templateId = this.removePromptTemplateSuffix(deletedFile.resource.path.name);
58
+ _templates.delete(templateId);
59
+ this.onDidChangePromptEmitter.fire(templateId);
60
+ }
61
+ }
62
+ // check updated templates
63
+ for (const updatedFile of event.getUpdated()) {
64
+ if (this.trackedTemplateURIs.has(updatedFile.resource.toString())) {
65
+ const filecontent = await this.fileService.read(updatedFile.resource);
66
+ const templateId = this.removePromptTemplateSuffix(updatedFile.resource.path.name);
67
+ _templates.set(templateId, filecontent.value);
68
+ this.onDidChangePromptEmitter.fire(templateId);
69
+ }
70
+ }
71
+ // check new templates
72
+ for (const addedFile of event.getAdded()) {
73
+ if (addedFile.resource.parent.toString() === templateURI.toString() && addedFile.resource.path.ext === '.prompttemplate') {
74
+ this.trackedTemplateURIs.add(addedFile.resource.toString());
75
+ const filecontent = await this.fileService.read(addedFile.resource);
76
+ const templateId = this.removePromptTemplateSuffix(addedFile.resource.path.name);
77
+ _templates.set(templateId, filecontent.value);
78
+ this.onDidChangePromptEmitter.fire(templateId);
79
+ }
80
+ }
81
+ }));
82
+ const stat = await this.fileService.resolve(templateURI);
83
+ if (stat.children === undefined) {
84
+ return;
85
+ }
86
+ for (const file of stat.children) {
87
+ if (!file.isFile) {
88
+ continue;
89
+ }
90
+ const fileURI = file.resource;
91
+ if (fileURI.path.ext === '.prompttemplate') {
92
+ this.trackedTemplateURIs.add(fileURI.toString());
93
+ const filecontent = await this.fileService.read(fileURI);
94
+ const templateId = this.removePromptTemplateSuffix(file.name);
95
+ _templates.set(templateId, filecontent.value);
96
+ this.onDidChangePromptEmitter.fire(templateId);
97
+ }
98
+ }
99
+ }
100
+ async getTemplatesDirectoryURI() {
101
+ const templatesFolder = this.preferences[ai_core_preferences_1.PREFERENCE_NAME_PROMPT_TEMPLATES];
102
+ if (templatesFolder && templatesFolder.trim().length > 0) {
103
+ return core_1.URI.fromFilePath(templatesFolder);
104
+ }
105
+ const theiaConfigDir = await this.envVariablesServer.getConfigDirUri();
106
+ return new core_1.URI(theiaConfigDir).resolve('prompt-templates');
107
+ }
108
+ async getTemplateURI(templateId) {
109
+ return (await this.getTemplatesDirectoryURI()).resolve(`${templateId}.prompttemplate`);
110
+ }
111
+ removePromptTemplateSuffix(filename) {
112
+ const suffix = '.prompttemplate';
113
+ if (filename.endsWith(suffix)) {
114
+ return filename.slice(0, -suffix.length);
115
+ }
116
+ return filename;
117
+ }
118
+ isPromptTemplateCustomized(id) {
119
+ return this.templates.has(id);
120
+ }
121
+ getCustomizedPromptTemplate(id) {
122
+ return this.templates.get(id);
123
+ }
124
+ async editTemplate(id, content) {
125
+ const template = this.getOriginalTemplate(id);
126
+ if (template === undefined) {
127
+ throw new Error(`Unable to edit template ${id}: template not found.`);
128
+ }
129
+ const editorUri = await this.getTemplateURI(id);
130
+ if (!await this.fileService.exists(editorUri)) {
131
+ await this.fileService.createFile(editorUri, buffer_1.BinaryBuffer.fromString(content !== null && content !== void 0 ? content : template.template));
132
+ }
133
+ else if (content) {
134
+ // Write content to the file before opening it
135
+ await this.fileService.writeFile(editorUri, buffer_1.BinaryBuffer.fromString(content));
136
+ }
137
+ const openHandler = await this.openerService.getOpener(editorUri);
138
+ openHandler.open(editorUri);
139
+ }
140
+ async resetTemplate(id) {
141
+ const editorUri = await this.getTemplateURI(id);
142
+ if (await this.fileService.exists(editorUri)) {
143
+ await this.fileService.delete(editorUri);
144
+ }
145
+ }
146
+ getOriginalTemplate(id) {
147
+ for (const agent of this.agentService.getAllAgents()) {
148
+ for (const template of agent.promptTemplates) {
149
+ if (template.id === id) {
150
+ return template;
151
+ }
152
+ }
153
+ }
154
+ return undefined;
155
+ }
156
+ getTemplateIDFromURI(uri) {
157
+ const id = this.removePromptTemplateSuffix(uri.path.name);
158
+ if (this.templates.has(id)) {
159
+ return id;
160
+ }
161
+ return undefined;
162
+ }
163
+ };
164
+ exports.FrontendPromptCustomizationServiceImpl = FrontendPromptCustomizationServiceImpl;
165
+ tslib_1.__decorate([
166
+ (0, inversify_1.inject)(env_variables_1.EnvVariablesServer),
167
+ tslib_1.__metadata("design:type", Object)
168
+ ], FrontendPromptCustomizationServiceImpl.prototype, "envVariablesServer", void 0);
169
+ tslib_1.__decorate([
170
+ (0, inversify_1.inject)(ai_core_preferences_1.AICorePreferences),
171
+ tslib_1.__metadata("design:type", Object)
172
+ ], FrontendPromptCustomizationServiceImpl.prototype, "preferences", void 0);
173
+ tslib_1.__decorate([
174
+ (0, inversify_1.inject)(file_service_1.FileService),
175
+ tslib_1.__metadata("design:type", file_service_1.FileService)
176
+ ], FrontendPromptCustomizationServiceImpl.prototype, "fileService", void 0);
177
+ tslib_1.__decorate([
178
+ (0, inversify_1.inject)(browser_1.OpenerService),
179
+ tslib_1.__metadata("design:type", Object)
180
+ ], FrontendPromptCustomizationServiceImpl.prototype, "openerService", void 0);
181
+ tslib_1.__decorate([
182
+ (0, inversify_1.inject)(agent_service_1.AgentService),
183
+ tslib_1.__metadata("design:type", Object)
184
+ ], FrontendPromptCustomizationServiceImpl.prototype, "agentService", void 0);
185
+ tslib_1.__decorate([
186
+ (0, inversify_1.postConstruct)(),
187
+ tslib_1.__metadata("design:type", Function),
188
+ tslib_1.__metadata("design:paramtypes", []),
189
+ tslib_1.__metadata("design:returntype", void 0)
190
+ ], FrontendPromptCustomizationServiceImpl.prototype, "init", null);
191
+ exports.FrontendPromptCustomizationServiceImpl = FrontendPromptCustomizationServiceImpl = tslib_1.__decorate([
192
+ (0, inversify_1.injectable)()
193
+ ], FrontendPromptCustomizationServiceImpl);
194
+ //# sourceMappingURL=frontend-prompt-customization-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-prompt-customization-service.js","sourceRoot":"","sources":["../../src/browser/frontend-prompt-customization-service.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,sCAAwE;AACxE,qDAAwD;AACxD,4DAAiF;AAEjF,0DAA6D;AAC7D,6EAAyE;AAEzE,+DAA4F;AAC5F,2DAAuD;AACvD,wEAA0E;AAGnE,IAAM,sCAAsC,GAA5C,MAAM,sCAAsC;IAA5C;QAiBgB,wBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QACjD,cAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEtC,cAAS,GAAG,IAAI,2BAAoB,EAAE,CAAC;QAEhC,6BAAwB,GAAG,IAAI,cAAO,EAAU,CAAC;QACzD,sBAAiB,GAAkB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAiJpF,CAAC;IA9Ia,IAAI;QACV,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;YACzC,IAAI,KAAK,CAAC,cAAc,KAAK,sDAAgC,EAAE,CAAC;gBAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,MAAM;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,0GAA0G;QAC1G,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;QAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAEjC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAE1D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAuB,EAAE,EAAE;YACpF,0BAA0B;YAC1B,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC3C,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;oBAChE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACjE,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnF,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC9B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnD,CAAC;YACL,CAAC;YACD,0BAA0B;YAC1B,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC3C,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;oBAChE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnF,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnD,CAAC;YACL,CAAC;YACD,sBAAsB;YACtB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,iBAAiB,EAAE,CAAC;oBACvH,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC5D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACpE,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjF,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnD,CAAC;YACL,CAAC;QAEL,CAAC,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,SAAS;YACb,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,iBAAiB,EAAE,CAAC;gBACzC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzD,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9D,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,wBAAwB;QACpC,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,sDAAgC,CAAC,CAAC;QAC3E,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,UAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;QACvE,OAAO,IAAI,UAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC7C,OAAO,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,UAAU,iBAAiB,CAAC,CAAC;IAC3F,CAAC;IAES,0BAA0B,CAAC,QAAgB;QACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC;QACjC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,0BAA0B,CAAC,EAAU;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,2BAA2B,CAAC,EAAU;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,OAAgB;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,uBAAuB,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,qBAAY,CAAC,UAAU,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxG,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACjB,8CAA8C;YAC9C,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,qBAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,CAAC;YACnD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC3C,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACrB,OAAO,QAAQ,CAAC;gBACpB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,oBAAoB,CAAC,GAAQ;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CAEJ,CAAA;AAxKY,wFAAsC;AAG5B;IADlB,IAAA,kBAAM,EAAC,kCAAkB,CAAC;;kFAC+B;AAGvC;IADlB,IAAA,kBAAM,EAAC,uCAAiB,CAAC;;2EACwB;AAG/B;IADlB,IAAA,kBAAM,EAAC,0BAAW,CAAC;sCACY,0BAAW;2EAAC;AAGzB;IADlB,IAAA,kBAAM,EAAC,uBAAa,CAAC;;6EAC0B;AAG7B;IADlB,IAAA,kBAAM,EAAC,4BAAY,CAAC;;4EACyB;AAWpC;IADT,IAAA,yBAAa,GAAE;;;;kEAQf;iDAjCQ,sCAAsC;IADlD,IAAA,sBAAU,GAAE;GACA,sCAAsC,CAwKlD"}
@@ -0,0 +1,6 @@
1
+ import { DefaultAIVariableService } from '../common';
2
+ import { FrontendApplicationContribution } from '@theia/core/lib/browser';
3
+ export declare class FrontendVariableService extends DefaultAIVariableService implements FrontendApplicationContribution {
4
+ onStart(): void;
5
+ }
6
+ //# sourceMappingURL=frontend-variable-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-variable-service.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-variable-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,qBACa,uBAAwB,SAAQ,wBAAyB,YAAW,+BAA+B;IAC5G,OAAO,IAAI,IAAI;CAGlB"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2024 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.FrontendVariableService = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const common_1 = require("../common");
22
+ let FrontendVariableService = class FrontendVariableService extends common_1.DefaultAIVariableService {
23
+ onStart() {
24
+ this.initContributions();
25
+ }
26
+ };
27
+ exports.FrontendVariableService = FrontendVariableService;
28
+ exports.FrontendVariableService = FrontendVariableService = tslib_1.__decorate([
29
+ (0, inversify_1.injectable)()
30
+ ], FrontendVariableService);
31
+ //# sourceMappingURL=frontend-variable-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-variable-service.js","sourceRoot":"","sources":["../../src/browser/frontend-variable-service.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,4DAA0D;AAC1D,sCAAqD;AAI9C,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,iCAAwB;IACjE,OAAO;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;CACJ,CAAA;AAJY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,sBAAU,GAAE;GACA,uBAAuB,CAInC"}
@@ -0,0 +1,11 @@
1
+ export * from './ai-activation-service';
2
+ export * from './ai-core-frontend-application-contribution';
3
+ export * from './ai-core-frontend-module';
4
+ export * from './ai-core-preferences';
5
+ export * from './ai-settings-service';
6
+ export * from './ai-view-contribution';
7
+ export * from './frontend-language-model-registry';
8
+ export * from './frontend-variable-service';
9
+ export * from './prompttemplate-contribution';
10
+ export * from './theia-variable-contribution';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAgBA,cAAc,yBAAyB,CAAC;AACxC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC"}