@theia/ai-core 1.67.0-next.13 → 1.67.0-next.56

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 (246) hide show
  1. package/README.md +1 -0
  2. package/data/prompttemplate.tmLanguage.json +3 -0
  3. package/package.json +9 -9
  4. package/src/browser/frontend-language-model-alias-registry.ts +11 -11
  5. package/src/common/agent-service.ts +6 -6
  6. package/src/common/prompt-service.ts +6 -2
  7. package/lib/browser/agent-completion-notification-service.d.ts +0 -69
  8. package/lib/browser/agent-completion-notification-service.d.ts.map +0 -1
  9. package/lib/browser/agent-completion-notification-service.js +0 -187
  10. package/lib/browser/agent-completion-notification-service.js.map +0 -1
  11. package/lib/browser/ai-activation-service.d.ts +0 -31
  12. package/lib/browser/ai-activation-service.d.ts.map +0 -1
  13. package/lib/browser/ai-activation-service.js +0 -56
  14. package/lib/browser/ai-activation-service.js.map +0 -1
  15. package/lib/browser/ai-command-handler-factory.d.ts +0 -4
  16. package/lib/browser/ai-command-handler-factory.d.ts.map +0 -1
  17. package/lib/browser/ai-command-handler-factory.js +0 -20
  18. package/lib/browser/ai-command-handler-factory.js.map +0 -1
  19. package/lib/browser/ai-core-command-contribution.d.ts +0 -8
  20. package/lib/browser/ai-core-command-contribution.d.ts.map +0 -1
  21. package/lib/browser/ai-core-command-contribution.js +0 -44
  22. package/lib/browser/ai-core-command-contribution.js.map +0 -1
  23. package/lib/browser/ai-core-frontend-application-contribution.d.ts +0 -10
  24. package/lib/browser/ai-core-frontend-application-contribution.d.ts.map +0 -1
  25. package/lib/browser/ai-core-frontend-application-contribution.js +0 -46
  26. package/lib/browser/ai-core-frontend-application-contribution.js.map +0 -1
  27. package/lib/browser/ai-core-frontend-module.d.ts +0 -4
  28. package/lib/browser/ai-core-frontend-module.d.ts.map +0 -1
  29. package/lib/browser/ai-core-frontend-module.js +0 -137
  30. package/lib/browser/ai-core-frontend-module.js.map +0 -1
  31. package/lib/browser/ai-settings-service.d.ts +0 -16
  32. package/lib/browser/ai-settings-service.d.ts.map +0 -1
  33. package/lib/browser/ai-settings-service.js +0 -78
  34. package/lib/browser/ai-settings-service.js.map +0 -1
  35. package/lib/browser/ai-variable-uri-label-provider.d.ts +0 -17
  36. package/lib/browser/ai-variable-uri-label-provider.d.ts.map +0 -1
  37. package/lib/browser/ai-variable-uri-label-provider.js +0 -85
  38. package/lib/browser/ai-variable-uri-label-provider.js.map +0 -1
  39. package/lib/browser/ai-view-contribution.d.ts +0 -14
  40. package/lib/browser/ai-view-contribution.d.ts.map +0 -1
  41. package/lib/browser/ai-view-contribution.js +0 -87
  42. package/lib/browser/ai-view-contribution.js.map +0 -1
  43. package/lib/browser/file-variable-contribution.d.ts +0 -23
  44. package/lib/browser/file-variable-contribution.d.ts.map +0 -1
  45. package/lib/browser/file-variable-contribution.js +0 -114
  46. package/lib/browser/file-variable-contribution.js.map +0 -1
  47. package/lib/browser/frontend-language-model-alias-registry.d.ts +0 -31
  48. package/lib/browser/frontend-language-model-alias-registry.d.ts.map +0 -1
  49. package/lib/browser/frontend-language-model-alias-registry.js +0 -170
  50. package/lib/browser/frontend-language-model-alias-registry.js.map +0 -1
  51. package/lib/browser/frontend-language-model-registry.d.ts +0 -49
  52. package/lib/browser/frontend-language-model-registry.d.ts.map +0 -1
  53. package/lib/browser/frontend-language-model-registry.js +0 -387
  54. package/lib/browser/frontend-language-model-registry.js.map +0 -1
  55. package/lib/browser/frontend-language-model-registry.spec.d.ts +0 -2
  56. package/lib/browser/frontend-language-model-registry.spec.d.ts.map +0 -1
  57. package/lib/browser/frontend-language-model-registry.spec.js +0 -248
  58. package/lib/browser/frontend-language-model-registry.spec.js.map +0 -1
  59. package/lib/browser/frontend-language-model-service.d.ts +0 -10
  60. package/lib/browser/frontend-language-model-service.d.ts.map +0 -1
  61. package/lib/browser/frontend-language-model-service.js +0 -66
  62. package/lib/browser/frontend-language-model-service.js.map +0 -1
  63. package/lib/browser/frontend-prompt-customization-service.d.ts +0 -271
  64. package/lib/browser/frontend-prompt-customization-service.d.ts.map +0 -1
  65. package/lib/browser/frontend-prompt-customization-service.js +0 -869
  66. package/lib/browser/frontend-prompt-customization-service.js.map +0 -1
  67. package/lib/browser/frontend-prompt-customization-service.spec.d.ts +0 -2
  68. package/lib/browser/frontend-prompt-customization-service.spec.d.ts.map +0 -1
  69. package/lib/browser/frontend-prompt-customization-service.spec.js +0 -127
  70. package/lib/browser/frontend-prompt-customization-service.spec.js.map +0 -1
  71. package/lib/browser/frontend-variable-service.d.ts +0 -61
  72. package/lib/browser/frontend-variable-service.d.ts.map +0 -1
  73. package/lib/browser/frontend-variable-service.js +0 -165
  74. package/lib/browser/frontend-variable-service.js.map +0 -1
  75. package/lib/browser/index.d.ts +0 -20
  76. package/lib/browser/index.d.ts.map +0 -1
  77. package/lib/browser/index.js +0 -38
  78. package/lib/browser/index.js.map +0 -1
  79. package/lib/browser/open-editors-variable-contribution.d.ts +0 -17
  80. package/lib/browser/open-editors-variable-contribution.d.ts.map +0 -1
  81. package/lib/browser/open-editors-variable-contribution.js +0 -84
  82. package/lib/browser/open-editors-variable-contribution.js.map +0 -1
  83. package/lib/browser/os-notification-service.d.ts +0 -96
  84. package/lib/browser/os-notification-service.d.ts.map +0 -1
  85. package/lib/browser/os-notification-service.js +0 -222
  86. package/lib/browser/os-notification-service.js.map +0 -1
  87. package/lib/browser/prompttemplate-contribution.d.ts +0 -29
  88. package/lib/browser/prompttemplate-contribution.d.ts.map +0 -1
  89. package/lib/browser/prompttemplate-contribution.js +0 -243
  90. package/lib/browser/prompttemplate-contribution.js.map +0 -1
  91. package/lib/browser/prompttemplate-parser.d.ts +0 -36
  92. package/lib/browser/prompttemplate-parser.d.ts.map +0 -1
  93. package/lib/browser/prompttemplate-parser.js +0 -94
  94. package/lib/browser/prompttemplate-parser.js.map +0 -1
  95. package/lib/browser/theia-variable-contribution.d.ts +0 -26
  96. package/lib/browser/theia-variable-contribution.d.ts.map +0 -1
  97. package/lib/browser/theia-variable-contribution.js +0 -146
  98. package/lib/browser/theia-variable-contribution.js.map +0 -1
  99. package/lib/browser/token-usage-frontend-service-impl.d.ts +0 -25
  100. package/lib/browser/token-usage-frontend-service-impl.d.ts.map +0 -1
  101. package/lib/browser/token-usage-frontend-service-impl.js +0 -138
  102. package/lib/browser/token-usage-frontend-service-impl.js.map +0 -1
  103. package/lib/browser/token-usage-frontend-service.d.ts +0 -33
  104. package/lib/browser/token-usage-frontend-service.d.ts.map +0 -1
  105. package/lib/browser/token-usage-frontend-service.js +0 -23
  106. package/lib/browser/token-usage-frontend-service.js.map +0 -1
  107. package/lib/browser/window-blink-service.d.ts +0 -41
  108. package/lib/browser/window-blink-service.d.ts.map +0 -1
  109. package/lib/browser/window-blink-service.js +0 -174
  110. package/lib/browser/window-blink-service.js.map +0 -1
  111. package/lib/common/agent-preferences.d.ts +0 -4
  112. package/lib/common/agent-preferences.d.ts.map +0 -1
  113. package/lib/common/agent-preferences.js +0 -84
  114. package/lib/common/agent-preferences.js.map +0 -1
  115. package/lib/common/agent-service.d.ts +0 -66
  116. package/lib/common/agent-service.d.ts.map +0 -1
  117. package/lib/common/agent-service.js +0 -104
  118. package/lib/common/agent-service.js.map +0 -1
  119. package/lib/common/agent.d.ts +0 -72
  120. package/lib/common/agent.d.ts.map +0 -1
  121. package/lib/common/agent.js +0 -20
  122. package/lib/common/agent.js.map +0 -1
  123. package/lib/common/agents-variable-contribution.d.ts +0 -19
  124. package/lib/common/agents-variable-contribution.d.ts.map +0 -1
  125. package/lib/common/agents-variable-contribution.js +0 -57
  126. package/lib/common/agents-variable-contribution.js.map +0 -1
  127. package/lib/common/ai-core-preferences.d.ts +0 -48
  128. package/lib/common/ai-core-preferences.d.ts.map +0 -1
  129. package/lib/common/ai-core-preferences.js +0 -204
  130. package/lib/common/ai-core-preferences.js.map +0 -1
  131. package/lib/common/ai-variable-resource.d.ts +0 -18
  132. package/lib/common/ai-variable-resource.d.ts.map +0 -1
  133. package/lib/common/ai-variable-resource.js +0 -103
  134. package/lib/common/ai-variable-resource.js.map +0 -1
  135. package/lib/common/configurable-in-memory-resources.d.ts +0 -47
  136. package/lib/common/configurable-in-memory-resources.d.ts.map +0 -1
  137. package/lib/common/configurable-in-memory-resources.js +0 -154
  138. package/lib/common/configurable-in-memory-resources.js.map +0 -1
  139. package/lib/common/index.d.ts +0 -22
  140. package/lib/common/index.d.ts.map +0 -1
  141. package/lib/common/index.js +0 -40
  142. package/lib/common/index.js.map +0 -1
  143. package/lib/common/language-model-alias.d.ts +0 -58
  144. package/lib/common/language-model-alias.d.ts.map +0 -1
  145. package/lib/common/language-model-alias.js +0 -20
  146. package/lib/common/language-model-alias.js.map +0 -1
  147. package/lib/common/language-model-delegate.d.ts +0 -25
  148. package/lib/common/language-model-delegate.d.ts.map +0 -1
  149. package/lib/common/language-model-delegate.js +0 -26
  150. package/lib/common/language-model-delegate.js.map +0 -1
  151. package/lib/common/language-model-interaction-model.d.ts +0 -74
  152. package/lib/common/language-model-interaction-model.d.ts.map +0 -1
  153. package/lib/common/language-model-interaction-model.js +0 -3
  154. package/lib/common/language-model-interaction-model.js.map +0 -1
  155. package/lib/common/language-model-service.d.ts +0 -38
  156. package/lib/common/language-model-service.d.ts.map +0 -1
  157. package/lib/common/language-model-service.js +0 -128
  158. package/lib/common/language-model-service.js.map +0 -1
  159. package/lib/common/language-model-util.d.ts +0 -17
  160. package/lib/common/language-model-util.d.ts.map +0 -1
  161. package/lib/common/language-model-util.js +0 -82
  162. package/lib/common/language-model-util.js.map +0 -1
  163. package/lib/common/language-model.d.ts +0 -285
  164. package/lib/common/language-model.d.ts.map +0 -1
  165. package/lib/common/language-model.js +0 -248
  166. package/lib/common/language-model.js.map +0 -1
  167. package/lib/common/language-model.spec.d.ts +0 -2
  168. package/lib/common/language-model.spec.d.ts.map +0 -1
  169. package/lib/common/language-model.spec.js +0 -62
  170. package/lib/common/language-model.spec.js.map +0 -1
  171. package/lib/common/notification-types.d.ts +0 -7
  172. package/lib/common/notification-types.d.ts.map +0 -1
  173. package/lib/common/notification-types.js +0 -29
  174. package/lib/common/notification-types.js.map +0 -1
  175. package/lib/common/prompt-service-util.d.ts +0 -8
  176. package/lib/common/prompt-service-util.d.ts.map +0 -1
  177. package/lib/common/prompt-service-util.js +0 -34
  178. package/lib/common/prompt-service-util.js.map +0 -1
  179. package/lib/common/prompt-service.d.ts +0 -466
  180. package/lib/common/prompt-service.d.ts.map +0 -1
  181. package/lib/common/prompt-service.js +0 -653
  182. package/lib/common/prompt-service.js.map +0 -1
  183. package/lib/common/prompt-service.spec.d.ts +0 -2
  184. package/lib/common/prompt-service.spec.d.ts.map +0 -1
  185. package/lib/common/prompt-service.spec.js +0 -431
  186. package/lib/common/prompt-service.spec.js.map +0 -1
  187. package/lib/common/prompt-text.d.ts +0 -8
  188. package/lib/common/prompt-text.d.ts.map +0 -1
  189. package/lib/common/prompt-text.js +0 -27
  190. package/lib/common/prompt-text.js.map +0 -1
  191. package/lib/common/prompt-variable-contribution.d.ts +0 -18
  192. package/lib/common/prompt-variable-contribution.d.ts.map +0 -1
  193. package/lib/common/prompt-variable-contribution.js +0 -207
  194. package/lib/common/prompt-variable-contribution.js.map +0 -1
  195. package/lib/common/prompt-variable-contribution.spec.d.ts +0 -2
  196. package/lib/common/prompt-variable-contribution.spec.d.ts.map +0 -1
  197. package/lib/common/prompt-variable-contribution.spec.js +0 -163
  198. package/lib/common/prompt-variable-contribution.spec.js.map +0 -1
  199. package/lib/common/protocol.d.ts +0 -25
  200. package/lib/common/protocol.d.ts.map +0 -1
  201. package/lib/common/protocol.js +0 -22
  202. package/lib/common/protocol.js.map +0 -1
  203. package/lib/common/settings-service.d.ts +0 -29
  204. package/lib/common/settings-service.d.ts.map +0 -1
  205. package/lib/common/settings-service.js +0 -5
  206. package/lib/common/settings-service.js.map +0 -1
  207. package/lib/common/today-variable-contribution.d.ts +0 -17
  208. package/lib/common/today-variable-contribution.d.ts.map +0 -1
  209. package/lib/common/today-variable-contribution.js +0 -68
  210. package/lib/common/today-variable-contribution.js.map +0 -1
  211. package/lib/common/token-usage-service.d.ts +0 -43
  212. package/lib/common/token-usage-service.d.ts.map +0 -1
  213. package/lib/common/token-usage-service.js +0 -20
  214. package/lib/common/token-usage-service.js.map +0 -1
  215. package/lib/common/tool-invocation-registry.d.ts +0 -66
  216. package/lib/common/tool-invocation-registry.d.ts.map +0 -1
  217. package/lib/common/tool-invocation-registry.js +0 -101
  218. package/lib/common/tool-invocation-registry.js.map +0 -1
  219. package/lib/common/variable-service.d.ts +0 -172
  220. package/lib/common/variable-service.d.ts.map +0 -1
  221. package/lib/common/variable-service.js +0 -287
  222. package/lib/common/variable-service.js.map +0 -1
  223. package/lib/common/variable-service.spec.d.ts +0 -2
  224. package/lib/common/variable-service.spec.d.ts.map +0 -1
  225. package/lib/common/variable-service.spec.js +0 -237
  226. package/lib/common/variable-service.spec.js.map +0 -1
  227. package/lib/node/ai-core-backend-module.d.ts +0 -4
  228. package/lib/node/ai-core-backend-module.d.ts.map +0 -1
  229. package/lib/node/ai-core-backend-module.js +0 -65
  230. package/lib/node/ai-core-backend-module.js.map +0 -1
  231. package/lib/node/backend-language-model-registry.d.ts +0 -13
  232. package/lib/node/backend-language-model-registry.d.ts.map +0 -1
  233. package/lib/node/backend-language-model-registry.js +0 -68
  234. package/lib/node/backend-language-model-registry.js.map +0 -1
  235. package/lib/node/language-model-frontend-delegate.d.ts +0 -18
  236. package/lib/node/language-model-frontend-delegate.d.ts.map +0 -1
  237. package/lib/node/language-model-frontend-delegate.js +0 -109
  238. package/lib/node/language-model-frontend-delegate.js.map +0 -1
  239. package/lib/node/token-usage-service-impl.d.ts +0 -23
  240. package/lib/node/token-usage-service-impl.d.ts.map +0 -1
  241. package/lib/node/token-usage-service-impl.js +0 -78
  242. package/lib/node/token-usage-service-impl.js.map +0 -1
  243. package/lib/node/tool-request-parameters.spec.d.ts +0 -2
  244. package/lib/node/tool-request-parameters.spec.d.ts.map +0 -1
  245. package/lib/node/tool-request-parameters.spec.js +0 -116
  246. package/lib/node/tool-request-parameters.spec.js.map +0 -1
@@ -1,287 +0,0 @@
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
- /*---------------------------------------------------------------------------------------------
18
- * Copyright (c) Microsoft Corporation. All rights reserved.
19
- * Licensed under the MIT License. See License.txt in the project root for license information.
20
- *--------------------------------------------------------------------------------------------*/
21
- // Partially copied from https://github.com/microsoft/vscode/blob/a2cab7255c0df424027be05d58e1b7b941f4ea60/src/vs/workbench/contrib/chat/common/chatVariables.ts
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.DefaultAIVariableService = exports.getAllResolvedAIVariables = exports.createAIResolveVariableCache = exports.AIVariableContribution = exports.AIVariableService = exports.AIVariableResolutionRequest = exports.ResolvedAIContextVariable = exports.ResolvedAIVariable = exports.AIContextVariable = exports.AIVariable = void 0;
24
- const tslib_1 = require("tslib");
25
- const core_1 = require("@theia/core");
26
- const inversify_1 = require("@theia/core/shared/inversify");
27
- const prompt_text_1 = require("./prompt-text");
28
- var AIVariable;
29
- (function (AIVariable) {
30
- function is(arg) {
31
- return !!arg && typeof arg === 'object' &&
32
- 'id' in arg &&
33
- 'name' in arg &&
34
- 'description' in arg;
35
- }
36
- AIVariable.is = is;
37
- })(AIVariable || (exports.AIVariable = AIVariable = {}));
38
- var AIContextVariable;
39
- (function (AIContextVariable) {
40
- function is(arg) {
41
- return AIVariable.is(arg) && 'isContextVariable' in arg && arg.isContextVariable === true;
42
- }
43
- AIContextVariable.is = is;
44
- })(AIContextVariable || (exports.AIContextVariable = AIContextVariable = {}));
45
- var ResolvedAIVariable;
46
- (function (ResolvedAIVariable) {
47
- function is(arg) {
48
- return !!arg && typeof arg === 'object' &&
49
- 'variable' in arg &&
50
- 'value' in arg &&
51
- typeof arg.variable === 'object' &&
52
- typeof arg.value === 'string';
53
- }
54
- ResolvedAIVariable.is = is;
55
- })(ResolvedAIVariable || (exports.ResolvedAIVariable = ResolvedAIVariable = {}));
56
- var ResolvedAIContextVariable;
57
- (function (ResolvedAIContextVariable) {
58
- function is(arg) {
59
- return ResolvedAIVariable.is(arg) &&
60
- 'contextValue' in arg &&
61
- typeof arg.contextValue === 'string';
62
- }
63
- ResolvedAIContextVariable.is = is;
64
- })(ResolvedAIContextVariable || (exports.ResolvedAIContextVariable = ResolvedAIContextVariable = {}));
65
- var AIVariableResolutionRequest;
66
- (function (AIVariableResolutionRequest) {
67
- function is(arg) {
68
- return !!arg && typeof arg === 'object' &&
69
- 'variable' in arg &&
70
- typeof arg.variable.name === 'string';
71
- }
72
- AIVariableResolutionRequest.is = is;
73
- function fromResolved(arg) {
74
- return {
75
- variable: arg.variable,
76
- arg: arg.arg
77
- };
78
- }
79
- AIVariableResolutionRequest.fromResolved = fromResolved;
80
- })(AIVariableResolutionRequest || (exports.AIVariableResolutionRequest = AIVariableResolutionRequest = {}));
81
- function isResolverWithDependencies(resolver) {
82
- return resolver !== undefined && resolver.resolve.length >= 3;
83
- }
84
- exports.AIVariableService = Symbol('AIVariableService');
85
- /** Contributions on the frontend can optionally implement `FrontendVariableContribution`. */
86
- exports.AIVariableContribution = Symbol('AIVariableContribution');
87
- /**
88
- * Creates a new, empty cache for AI variable resolution to hand into `AIVariableService.resolveVariable`.
89
- */
90
- function createAIResolveVariableCache() {
91
- return new Map();
92
- }
93
- exports.createAIResolveVariableCache = createAIResolveVariableCache;
94
- /** Utility function to get all resolved AI variables from a {@link ResolveAIVariableCache} */
95
- async function getAllResolvedAIVariables(cache) {
96
- const resolvedVariables = [];
97
- for (const cacheEntry of cache.values()) {
98
- if (!cacheEntry.inProgress) {
99
- const resolvedVariable = await cacheEntry.promise;
100
- if (resolvedVariable) {
101
- resolvedVariables.push(resolvedVariable);
102
- }
103
- }
104
- }
105
- return resolvedVariables;
106
- }
107
- exports.getAllResolvedAIVariables = getAllResolvedAIVariables;
108
- let DefaultAIVariableService = class DefaultAIVariableService {
109
- constructor(contributionProvider, logger) {
110
- this.contributionProvider = contributionProvider;
111
- this.logger = logger;
112
- this.variables = new Map();
113
- this.resolvers = new Map();
114
- this.argPickers = new Map();
115
- this.openers = new Map();
116
- this.argCompletionProviders = new Map();
117
- this.onDidChangeVariablesEmitter = new core_1.Emitter();
118
- this.onDidChangeVariables = this.onDidChangeVariablesEmitter.event;
119
- }
120
- initContributions() {
121
- this.contributionProvider.getContributions().forEach(contribution => contribution.registerVariables(this));
122
- }
123
- getKey(name) {
124
- return `${name.toLowerCase()}`;
125
- }
126
- async getResolver(name, arg, context) {
127
- const resolvers = await this.prioritize(name, arg, context);
128
- return resolvers[0];
129
- }
130
- getResolvers(name) {
131
- var _a;
132
- return (_a = this.resolvers.get(this.getKey(name))) !== null && _a !== void 0 ? _a : [];
133
- }
134
- async prioritize(name, arg, context) {
135
- const variable = this.getVariable(name);
136
- if (!variable) {
137
- return [];
138
- }
139
- const prioritized = await core_1.Prioritizeable.prioritizeAll(this.getResolvers(name), async (resolver) => {
140
- try {
141
- return await resolver.canResolve({ variable, arg }, context);
142
- }
143
- catch {
144
- return 0;
145
- }
146
- });
147
- return prioritized.map(p => p.value);
148
- }
149
- hasVariable(name) {
150
- return !!this.getVariable(name);
151
- }
152
- getVariable(name) {
153
- return this.variables.get(this.getKey(name));
154
- }
155
- getVariables() {
156
- return [...this.variables.values()];
157
- }
158
- getContextVariables() {
159
- return this.getVariables().filter(AIContextVariable.is);
160
- }
161
- registerVariable(variable) {
162
- const key = this.getKey(variable.name);
163
- if (!this.variables.get(key)) {
164
- this.variables.set(key, variable);
165
- this.onDidChangeVariablesEmitter.fire();
166
- return core_1.Disposable.create(() => this.unregisterVariable(variable.name));
167
- }
168
- return core_1.Disposable.NULL;
169
- }
170
- registerResolver(variable, resolver) {
171
- var _a;
172
- this.registerVariable(variable);
173
- const key = this.getKey(variable.name);
174
- const resolvers = (_a = this.resolvers.get(key)) !== null && _a !== void 0 ? _a : [];
175
- resolvers.push(resolver);
176
- this.resolvers.set(key, resolvers);
177
- return core_1.Disposable.create(() => this.unregisterResolver(variable, resolver));
178
- }
179
- unregisterResolver(variable, resolver) {
180
- const key = this.getKey(variable.name);
181
- const registeredResolvers = this.resolvers.get(key);
182
- registeredResolvers === null || registeredResolvers === void 0 ? void 0 : registeredResolvers.splice(registeredResolvers.indexOf(resolver), 1);
183
- if ((registeredResolvers === null || registeredResolvers === void 0 ? void 0 : registeredResolvers.length) === 0) {
184
- this.unregisterVariable(variable.name);
185
- }
186
- }
187
- unregisterVariable(name) {
188
- this.variables.delete(this.getKey(name));
189
- this.resolvers.delete(this.getKey(name));
190
- this.onDidChangeVariablesEmitter.fire();
191
- }
192
- registerArgumentPicker(variable, argPicker) {
193
- this.registerVariable(variable);
194
- const key = this.getKey(variable.name);
195
- this.argPickers.set(key, argPicker);
196
- return core_1.Disposable.create(() => this.unregisterArgumentPicker(variable, argPicker));
197
- }
198
- unregisterArgumentPicker(variable, argPicker) {
199
- const key = this.getKey(variable.name);
200
- const registeredArgPicker = this.argPickers.get(key);
201
- if (registeredArgPicker === argPicker) {
202
- this.argPickers.delete(key);
203
- }
204
- }
205
- async getArgumentPicker(name) {
206
- var _a;
207
- return (_a = this.argPickers.get(this.getKey(name))) !== null && _a !== void 0 ? _a : undefined;
208
- }
209
- registerArgumentCompletionProvider(variable, completionProvider) {
210
- this.registerVariable(variable);
211
- const key = this.getKey(variable.name);
212
- this.argCompletionProviders.set(key, completionProvider);
213
- return core_1.Disposable.create(() => this.unregisterArgumentCompletionProvider(variable, completionProvider));
214
- }
215
- unregisterArgumentCompletionProvider(variable, completionProvider) {
216
- const key = this.getKey(variable.name);
217
- const registeredCompletionProvider = this.argCompletionProviders.get(key);
218
- if (registeredCompletionProvider === completionProvider) {
219
- this.argCompletionProviders.delete(key);
220
- }
221
- }
222
- async getArgumentCompletionProvider(name) {
223
- var _a;
224
- return (_a = this.argCompletionProviders.get(this.getKey(name))) !== null && _a !== void 0 ? _a : undefined;
225
- }
226
- parseRequest(request) {
227
- const variableName = typeof request === 'string'
228
- ? request
229
- : typeof request.variable === 'string'
230
- ? request.variable
231
- : request.variable.name;
232
- const arg = typeof request === 'string' ? undefined : request.arg;
233
- return { variableName, arg };
234
- }
235
- async resolveVariable(request, context, cache = createAIResolveVariableCache()) {
236
- // Calculate unique variable cache key from variable name and argument
237
- const { variableName, arg } = this.parseRequest(request);
238
- const cacheKey = `${variableName}${prompt_text_1.PromptText.VARIABLE_SEPARATOR_CHAR}${arg !== null && arg !== void 0 ? arg : ''}`;
239
- // If the current cache key exists and is still in progress, we reached a cycle.
240
- // If we reach it but it has been resolved, it was part of another resolution branch and we can simply return it.
241
- if (cache.has(cacheKey)) {
242
- const existingEntry = cache.get(cacheKey);
243
- if (existingEntry.inProgress) {
244
- this.logger.warn(`Cycle detected for variable: ${variableName} with arg: ${arg}. Skipping resolution.`);
245
- return undefined;
246
- }
247
- return existingEntry.promise;
248
- }
249
- const entry = { promise: this.doResolve(variableName, arg, context, cache), inProgress: true };
250
- entry.promise.finally(() => entry.inProgress = false);
251
- cache.set(cacheKey, entry);
252
- return entry.promise;
253
- }
254
- /**
255
- * Asynchronously resolves a variable, handling its dependencies while preventing cyclical resolution.
256
- * Selects the appropriate resolver and resolution strategy based on whether nested dependency resolution is supported.
257
- */
258
- async doResolve(variableName, arg, context, cache) {
259
- const variable = this.getVariable(variableName);
260
- if (!variable) {
261
- return undefined;
262
- }
263
- const resolver = await this.getResolver(variableName, arg, context);
264
- let resolved;
265
- if (isResolverWithDependencies(resolver)) {
266
- // Explicit cast needed because Typescript does not consider the method parameter length of the type guard at compile time
267
- resolved = await resolver.resolve({ variable, arg }, context, async (depRequest) => this.resolveVariable(depRequest, context, cache));
268
- }
269
- else if (resolver) {
270
- // Explicit cast needed because Typescript does not consider the method parameter length of the type guard at compile time
271
- resolved = await resolver.resolve({ variable, arg }, context);
272
- }
273
- else {
274
- resolved = undefined;
275
- }
276
- return resolved ? { ...resolved, arg } : undefined;
277
- }
278
- };
279
- exports.DefaultAIVariableService = DefaultAIVariableService;
280
- exports.DefaultAIVariableService = DefaultAIVariableService = tslib_1.__decorate([
281
- (0, inversify_1.injectable)(),
282
- tslib_1.__param(0, (0, inversify_1.inject)(core_1.ContributionProvider)),
283
- tslib_1.__param(0, (0, inversify_1.named)(exports.AIVariableContribution)),
284
- tslib_1.__param(1, (0, inversify_1.inject)(core_1.ILogger)),
285
- tslib_1.__metadata("design:paramtypes", [Object, Object])
286
- ], DefaultAIVariableService);
287
- //# sourceMappingURL=variable-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variable-service.js","sourceRoot":"","sources":["../../src/common/variable-service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=variable-service.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variable-service.spec.d.ts","sourceRoot":"","sources":["../../src/common/variable-service.spec.ts"],"names":[],"mappings":""}
@@ -1,237 +0,0 @@
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
- const sinon = require("sinon");
19
- const core_1 = require("@theia/core");
20
- const chai_1 = require("chai");
21
- const variable_service_1 = require("./variable-service");
22
- describe('DefaultAIVariableService', () => {
23
- let variableService;
24
- let contributionProvider;
25
- let logger;
26
- const varA = {
27
- id: 'provider.a',
28
- name: 'a',
29
- description: 'Variable A'
30
- };
31
- const varB = {
32
- id: 'provider.b',
33
- name: 'b',
34
- description: 'Variable B'
35
- };
36
- const varC = {
37
- id: 'provider.c',
38
- name: 'c',
39
- description: 'Variable C'
40
- };
41
- const varD = {
42
- id: 'provider.d',
43
- name: 'd',
44
- description: 'Variable D'
45
- };
46
- // Create resolvers for our variables
47
- const resolverA = {
48
- canResolve: sinon.stub().returns(1),
49
- resolve: async (_request, _context, resolveDependency) => {
50
- var _a, _b;
51
- if (resolveDependency) {
52
- // Variable A depends on both B and C
53
- const dependencyB = await resolveDependency({ variable: varB });
54
- const dependencyC = await resolveDependency({ variable: varC });
55
- return {
56
- variable: varA,
57
- value: `A resolved with B: ${(_a = dependencyB === null || dependencyB === void 0 ? void 0 : dependencyB.value) !== null && _a !== void 0 ? _a : 'undefined'} and C: ${(_b = dependencyC === null || dependencyC === void 0 ? void 0 : dependencyC.value) !== null && _b !== void 0 ? _b : 'undefined'}`,
58
- allResolvedDependencies: [
59
- ...(dependencyB ? [dependencyB] : []),
60
- ...(dependencyC ? [dependencyC] : [])
61
- ]
62
- };
63
- }
64
- return { variable: varA, value: 'A value' };
65
- }
66
- };
67
- const resolverB = {
68
- canResolve: sinon.stub().returns(1),
69
- resolve: async (_request, _context, resolveDependency) => {
70
- var _a;
71
- if (resolveDependency) {
72
- // Variable B depends on A, creating a cycle
73
- const dependencyA = await resolveDependency({ variable: varA });
74
- return {
75
- variable: varB,
76
- value: `B resolved with A: ${(_a = dependencyA === null || dependencyA === void 0 ? void 0 : dependencyA.value) !== null && _a !== void 0 ? _a : 'undefined (cycle detected)'}`,
77
- allResolvedDependencies: dependencyA ? [dependencyA] : []
78
- };
79
- }
80
- return { variable: varB, value: 'B value' };
81
- }
82
- };
83
- const resolverC = {
84
- canResolve: sinon.stub().returns(1),
85
- resolve: async (_request, _context, resolveDependency) => {
86
- var _a, _b;
87
- if (resolveDependency) {
88
- // Variable C depends on D with two different arguments
89
- const dependencyD1 = await resolveDependency({ variable: varD, arg: 'arg1' });
90
- const dependencyD2 = await resolveDependency({ variable: varD, arg: 'arg2' });
91
- return {
92
- variable: varC,
93
- value: `C resolved with D(arg1): ${(_a = dependencyD1 === null || dependencyD1 === void 0 ? void 0 : dependencyD1.value) !== null && _a !== void 0 ? _a : 'undefined'} and D(arg2): ${(_b = dependencyD2 === null || dependencyD2 === void 0 ? void 0 : dependencyD2.value) !== null && _b !== void 0 ? _b : 'undefined'}`,
94
- allResolvedDependencies: [
95
- ...(dependencyD1 ? [dependencyD1] : []),
96
- ...(dependencyD2 ? [dependencyD2] : [])
97
- ]
98
- };
99
- }
100
- return { variable: varC, value: 'C value' };
101
- }
102
- };
103
- const resolverD = {
104
- canResolve: sinon.stub().returns(1),
105
- resolve: async (request) => {
106
- const arg = request.arg;
107
- return {
108
- variable: varD,
109
- value: arg ? `D value with ${arg}` : 'D value'
110
- };
111
- }
112
- };
113
- beforeEach(() => {
114
- // Create stub for the contribution provider
115
- contributionProvider = {
116
- getContributions: sinon.stub().returns([])
117
- };
118
- // Create stub for logger
119
- logger = sinon.createStubInstance(core_1.Logger);
120
- // Create the service under test
121
- variableService = new variable_service_1.DefaultAIVariableService(contributionProvider, logger);
122
- // Register the variables and resolvers
123
- variableService.registerResolver(varA, resolverA);
124
- variableService.registerResolver(varB, resolverB);
125
- variableService.registerResolver(varC, resolverC);
126
- variableService.registerResolver(varD, resolverD);
127
- });
128
- describe('resolveVariable', () => {
129
- it('should handle recursive variable resolution and detect cycles', async () => {
130
- // Try to resolve variable A, which has a cycle with B and also depends on C which depends on D
131
- const result = await variableService.resolveVariable('a', {});
132
- // Verify the result
133
- (0, chai_1.expect)(result).to.not.be.undefined;
134
- (0, chai_1.expect)(result.variable).to.deep.equal(varA);
135
- // The value should contain B's value (with a cycle detection) and C's value
136
- (0, chai_1.expect)(result.value).to.include('B resolved with A: undefined (cycle detected)');
137
- (0, chai_1.expect)(result.value).to.include('C resolved with D(arg1): D value with arg1 and D(arg2): D value with arg2');
138
- // Verify that we logged a warning about the cycle
139
- (0, chai_1.expect)(logger.warn.calledOnce).to.be.true;
140
- (0, chai_1.expect)(logger.warn.firstCall.args[0]).to.include('Cycle detected for variable: a');
141
- // Verify dependencies are tracked
142
- (0, chai_1.expect)(result.allResolvedDependencies).to.have.lengthOf(2);
143
- // Find the B dependency and verify it doesn't have A in its dependencies (due to cycle detection)
144
- const bDependency = result.allResolvedDependencies.find(d => d.variable.name === 'b');
145
- (0, chai_1.expect)(bDependency).to.not.be.undefined;
146
- (0, chai_1.expect)(bDependency.allResolvedDependencies).to.be.empty;
147
- // Find the C dependency and its D dependencies
148
- const cDependency = result.allResolvedDependencies.find(d => d.variable.name === 'c');
149
- (0, chai_1.expect)(cDependency).to.not.be.undefined;
150
- (0, chai_1.expect)(cDependency.value).to.equal('C resolved with D(arg1): D value with arg1 and D(arg2): D value with arg2');
151
- (0, chai_1.expect)(cDependency.allResolvedDependencies).to.have.lengthOf(2);
152
- const dDependency1 = cDependency.allResolvedDependencies[0];
153
- (0, chai_1.expect)(dDependency1.variable.name).to.equal('d');
154
- (0, chai_1.expect)(dDependency1.value).to.equal('D value with arg1');
155
- const dDependency2 = cDependency.allResolvedDependencies[1];
156
- (0, chai_1.expect)(dDependency2.variable.name).to.equal('d');
157
- (0, chai_1.expect)(dDependency2.value).to.equal('D value with arg2');
158
- });
159
- it('should handle variables with a simple chain of dependencies', async () => {
160
- // Variable C depends on D with two different arguments
161
- const result = await variableService.resolveVariable('c', {});
162
- (0, chai_1.expect)(result).to.not.be.undefined;
163
- (0, chai_1.expect)(result.variable).to.deep.equal(varC);
164
- (0, chai_1.expect)(result.value).to.equal('C resolved with D(arg1): D value with arg1 and D(arg2): D value with arg2');
165
- // Verify dependency chain
166
- (0, chai_1.expect)(result.allResolvedDependencies).to.have.lengthOf(2);
167
- const dDependency1 = result.allResolvedDependencies[0];
168
- (0, chai_1.expect)(dDependency1.variable.name).to.equal('d');
169
- (0, chai_1.expect)(dDependency1.value).to.equal('D value with arg1');
170
- const dDependency2 = result.allResolvedDependencies[1];
171
- (0, chai_1.expect)(dDependency2.variable.name).to.equal('d');
172
- (0, chai_1.expect)(dDependency2.value).to.equal('D value with arg2');
173
- });
174
- it('should handle variables without dependencies', async () => {
175
- // D has no dependencies
176
- const result = await variableService.resolveVariable('d', {});
177
- (0, chai_1.expect)(result).to.not.be.undefined;
178
- (0, chai_1.expect)(result.variable).to.deep.equal(varD);
179
- (0, chai_1.expect)(result.value).to.equal('D value');
180
- (0, chai_1.expect)(result.allResolvedDependencies).to.be.undefined;
181
- });
182
- it('should handle variables with arguments', async () => {
183
- // Test D with an argument
184
- const result = await variableService.resolveVariable({ variable: 'd', arg: 'test-arg' }, {}, undefined);
185
- (0, chai_1.expect)(result).to.not.be.undefined;
186
- (0, chai_1.expect)(result.variable).to.deep.equal(varD);
187
- (0, chai_1.expect)(result.value).to.equal('D value with test-arg');
188
- (0, chai_1.expect)(result.allResolvedDependencies).to.be.undefined;
189
- });
190
- it('should return undefined for non-existent variables', async () => {
191
- const result = await variableService.resolveVariable('nonexistent', {});
192
- (0, chai_1.expect)(result).to.be.undefined;
193
- });
194
- it('should properly populate cache when resolving variables with dependencies', async () => {
195
- // Create a cache to pass into the resolver
196
- const cache = (0, variable_service_1.createAIResolveVariableCache)();
197
- // Resolve variable A, which depends on B and C, and C depends on D with two arguments
198
- const result = await variableService.resolveVariable('a', {}, cache);
199
- // Verify that the result is correct
200
- (0, chai_1.expect)(result).to.not.be.undefined;
201
- (0, chai_1.expect)(result.variable).to.deep.equal(varA);
202
- // Verify that the cache has entries for all variables
203
- (0, chai_1.expect)(cache.size).to.equal(5); // A, B, C, D(arg1), and D(arg2)
204
- // Verify that all variables have entries in the cache
205
- (0, chai_1.expect)(cache.has('a:')).to.be.true; // 'a:' key format is variableName + separator + arg (empty in this case)
206
- (0, chai_1.expect)(cache.has('b:')).to.be.true;
207
- (0, chai_1.expect)(cache.has('c:')).to.be.true;
208
- (0, chai_1.expect)(cache.has('d:arg1')).to.be.true;
209
- (0, chai_1.expect)(cache.has('d:arg2')).to.be.true;
210
- // Verify that all promises in the cache are resolved
211
- for (const entry of cache.values()) {
212
- const resolvedVar = await entry.promise;
213
- (0, chai_1.expect)(resolvedVar).to.not.be.undefined;
214
- (0, chai_1.expect)(entry.inProgress).to.be.false;
215
- }
216
- // Check specific variable results from cache
217
- const aEntry = cache.get('a:');
218
- const aResult = await aEntry.promise;
219
- (0, chai_1.expect)(aResult.variable.name).to.equal('a');
220
- const bEntry = cache.get('b:');
221
- const bResult = await bEntry.promise;
222
- (0, chai_1.expect)(bResult.variable.name).to.equal('b');
223
- const cEntry = cache.get('c:');
224
- const cResult = await cEntry.promise;
225
- (0, chai_1.expect)(cResult.variable.name).to.equal('c');
226
- const dEntry1 = cache.get('d:arg1');
227
- const dResult1 = await dEntry1.promise;
228
- (0, chai_1.expect)(dResult1.variable.name).to.equal('d');
229
- (0, chai_1.expect)(dResult1.value).to.equal('D value with arg1');
230
- const dEntry2 = cache.get('d:arg2');
231
- const dResult2 = await dEntry2.promise;
232
- (0, chai_1.expect)(dResult2.variable.name).to.equal('d');
233
- (0, chai_1.expect)(dResult2.value).to.equal('D value with arg2');
234
- });
235
- });
236
- });
237
- //# sourceMappingURL=variable-service.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variable-service.spec.js","sourceRoot":"","sources":["../../src/common/variable-service.spec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { ContainerModule } from '@theia/core/shared/inversify';
2
- declare const _default: ContainerModule;
3
- export default _default;
4
- //# sourceMappingURL=ai-core-backend-module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-core-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/ai-core-backend-module.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAgG/D,wBAIG"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // *****************************************************************************
4
- // Copyright (C) 2024 EclipseSource GmbH.
5
- //
6
- // This program and the accompanying materials are made available under the
7
- // terms of the Eclipse Public License v. 2.0 which is available at
8
- // http://www.eclipse.org/legal/epl-2.0.
9
- //
10
- // This Source Code may also be made available under the following Secondary
11
- // Licenses when the conditions for such availability set forth in the Eclipse
12
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
- // with the GNU Classpath Exception which is available at
14
- // https://www.gnu.org/software/classpath/license.html.
15
- //
16
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
17
- // *****************************************************************************
18
- const inversify_1 = require("@theia/core/shared/inversify");
19
- const language_model_frontend_delegate_1 = require("./language-model-frontend-delegate");
20
- const core_1 = require("@theia/core");
21
- const connection_container_module_1 = require("@theia/core/lib/node/messaging/connection-container-module");
22
- const common_1 = require("../common");
23
- const backend_language_model_registry_1 = require("./backend-language-model-registry");
24
- const token_usage_service_impl_1 = require("./token-usage-service-impl");
25
- const agent_preferences_1 = require("../common/agent-preferences");
26
- const ai_core_preferences_1 = require("../common/ai-core-preferences");
27
- // We use a connection module to handle AI services separately for each frontend.
28
- const aiCoreConnectionModule = connection_container_module_1.ConnectionContainerModule.create(({ bind, bindBackendService, bindFrontendService }) => {
29
- (0, core_1.bindContributionProvider)(bind, common_1.LanguageModelProvider);
30
- bind(backend_language_model_registry_1.BackendLanguageModelRegistryImpl).toSelf().inSingletonScope();
31
- bind(common_1.LanguageModelRegistry).toService(backend_language_model_registry_1.BackendLanguageModelRegistryImpl);
32
- bind(common_1.TokenUsageService).to(token_usage_service_impl_1.TokenUsageServiceImpl).inSingletonScope();
33
- bind(core_1.ConnectionHandler)
34
- .toDynamicValue(({ container }) => new core_1.RpcConnectionHandler(common_1.TOKEN_USAGE_SERVICE_PATH, client => {
35
- const service = container.get(common_1.TokenUsageService);
36
- service.setClient(client);
37
- return service;
38
- }))
39
- .inSingletonScope();
40
- bind(common_1.LanguageModelRegistryFrontendDelegate).to(language_model_frontend_delegate_1.LanguageModelRegistryFrontendDelegateImpl).inSingletonScope();
41
- bind(core_1.ConnectionHandler)
42
- .toDynamicValue(ctx => new core_1.RpcConnectionHandler(common_1.languageModelRegistryDelegatePath, client => {
43
- const registryDelegate = ctx.container.get(common_1.LanguageModelRegistryFrontendDelegate);
44
- registryDelegate.setClient(client);
45
- return registryDelegate;
46
- }))
47
- .inSingletonScope();
48
- bind(language_model_frontend_delegate_1.LanguageModelFrontendDelegateImpl).toSelf().inSingletonScope();
49
- bind(common_1.LanguageModelFrontendDelegate).toService(language_model_frontend_delegate_1.LanguageModelFrontendDelegateImpl);
50
- bind(core_1.ConnectionHandler)
51
- .toDynamicValue(({ container }) => new core_1.RpcConnectionHandler(common_1.languageModelDelegatePath, client => {
52
- const service = container.get(language_model_frontend_delegate_1.LanguageModelFrontendDelegateImpl);
53
- service.setClient(client);
54
- return service;
55
- }))
56
- .inSingletonScope();
57
- bind(common_1.PromptServiceImpl).toSelf().inSingletonScope();
58
- bind(common_1.PromptService).toService(common_1.PromptServiceImpl);
59
- });
60
- exports.default = new inversify_1.ContainerModule(bind => {
61
- bind(core_1.PreferenceContribution).toConstantValue({ schema: agent_preferences_1.AgentSettingsPreferenceSchema });
62
- (0, ai_core_preferences_1.bindAICorePreferences)(bind);
63
- bind(connection_container_module_1.ConnectionContainerModule).toConstantValue(aiCoreConnectionModule);
64
- });
65
- //# sourceMappingURL=ai-core-backend-module.js.map