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

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 (243) hide show
  1. package/lib/browser/agent-completion-notification-service.d.ts +69 -0
  2. package/lib/browser/agent-completion-notification-service.d.ts.map +1 -0
  3. package/lib/browser/agent-completion-notification-service.js +187 -0
  4. package/lib/browser/agent-completion-notification-service.js.map +1 -0
  5. package/lib/browser/ai-activation-service.d.ts +31 -0
  6. package/lib/browser/ai-activation-service.d.ts.map +1 -0
  7. package/lib/browser/ai-activation-service.js +56 -0
  8. package/lib/browser/ai-activation-service.js.map +1 -0
  9. package/lib/browser/ai-command-handler-factory.d.ts +4 -0
  10. package/lib/browser/ai-command-handler-factory.d.ts.map +1 -0
  11. package/lib/browser/ai-command-handler-factory.js +20 -0
  12. package/lib/browser/ai-command-handler-factory.js.map +1 -0
  13. package/lib/browser/ai-core-command-contribution.d.ts +8 -0
  14. package/lib/browser/ai-core-command-contribution.d.ts.map +1 -0
  15. package/lib/browser/ai-core-command-contribution.js +44 -0
  16. package/lib/browser/ai-core-command-contribution.js.map +1 -0
  17. package/lib/browser/ai-core-frontend-application-contribution.d.ts +10 -0
  18. package/lib/browser/ai-core-frontend-application-contribution.d.ts.map +1 -0
  19. package/lib/browser/ai-core-frontend-application-contribution.js +46 -0
  20. package/lib/browser/ai-core-frontend-application-contribution.js.map +1 -0
  21. package/lib/browser/ai-core-frontend-module.d.ts +4 -0
  22. package/lib/browser/ai-core-frontend-module.d.ts.map +1 -0
  23. package/lib/browser/ai-core-frontend-module.js +137 -0
  24. package/lib/browser/ai-core-frontend-module.js.map +1 -0
  25. package/lib/browser/ai-settings-service.d.ts +16 -0
  26. package/lib/browser/ai-settings-service.d.ts.map +1 -0
  27. package/lib/browser/ai-settings-service.js +76 -0
  28. package/lib/browser/ai-settings-service.js.map +1 -0
  29. package/lib/browser/ai-variable-uri-label-provider.d.ts +17 -0
  30. package/lib/browser/ai-variable-uri-label-provider.d.ts.map +1 -0
  31. package/lib/browser/ai-variable-uri-label-provider.js +85 -0
  32. package/lib/browser/ai-variable-uri-label-provider.js.map +1 -0
  33. package/lib/browser/ai-view-contribution.d.ts +14 -0
  34. package/lib/browser/ai-view-contribution.d.ts.map +1 -0
  35. package/lib/browser/ai-view-contribution.js +87 -0
  36. package/lib/browser/ai-view-contribution.js.map +1 -0
  37. package/lib/browser/file-variable-contribution.d.ts +23 -0
  38. package/lib/browser/file-variable-contribution.d.ts.map +1 -0
  39. package/lib/browser/file-variable-contribution.js +114 -0
  40. package/lib/browser/file-variable-contribution.js.map +1 -0
  41. package/lib/browser/frontend-language-model-alias-registry.d.ts +31 -0
  42. package/lib/browser/frontend-language-model-alias-registry.d.ts.map +1 -0
  43. package/lib/browser/frontend-language-model-alias-registry.js +170 -0
  44. package/lib/browser/frontend-language-model-alias-registry.js.map +1 -0
  45. package/lib/browser/frontend-language-model-registry.d.ts +49 -0
  46. package/lib/browser/frontend-language-model-registry.d.ts.map +1 -0
  47. package/lib/browser/frontend-language-model-registry.js +387 -0
  48. package/lib/browser/frontend-language-model-registry.js.map +1 -0
  49. package/lib/browser/frontend-language-model-registry.spec.d.ts +2 -0
  50. package/lib/browser/frontend-language-model-registry.spec.d.ts.map +1 -0
  51. package/lib/browser/frontend-language-model-registry.spec.js +248 -0
  52. package/lib/browser/frontend-language-model-registry.spec.js.map +1 -0
  53. package/lib/browser/frontend-language-model-service.d.ts +10 -0
  54. package/lib/browser/frontend-language-model-service.d.ts.map +1 -0
  55. package/lib/browser/frontend-language-model-service.js +66 -0
  56. package/lib/browser/frontend-language-model-service.js.map +1 -0
  57. package/lib/browser/frontend-prompt-customization-service.d.ts +271 -0
  58. package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -0
  59. package/lib/browser/frontend-prompt-customization-service.js +869 -0
  60. package/lib/browser/frontend-prompt-customization-service.js.map +1 -0
  61. package/lib/browser/frontend-prompt-customization-service.spec.d.ts +2 -0
  62. package/lib/browser/frontend-prompt-customization-service.spec.d.ts.map +1 -0
  63. package/lib/browser/frontend-prompt-customization-service.spec.js +127 -0
  64. package/lib/browser/frontend-prompt-customization-service.spec.js.map +1 -0
  65. package/lib/browser/frontend-variable-service.d.ts +61 -0
  66. package/lib/browser/frontend-variable-service.d.ts.map +1 -0
  67. package/lib/browser/frontend-variable-service.js +165 -0
  68. package/lib/browser/frontend-variable-service.js.map +1 -0
  69. package/lib/browser/index.d.ts +20 -0
  70. package/lib/browser/index.d.ts.map +1 -0
  71. package/lib/browser/index.js +38 -0
  72. package/lib/browser/index.js.map +1 -0
  73. package/lib/browser/open-editors-variable-contribution.d.ts +17 -0
  74. package/lib/browser/open-editors-variable-contribution.d.ts.map +1 -0
  75. package/lib/browser/open-editors-variable-contribution.js +84 -0
  76. package/lib/browser/open-editors-variable-contribution.js.map +1 -0
  77. package/lib/browser/os-notification-service.d.ts +96 -0
  78. package/lib/browser/os-notification-service.d.ts.map +1 -0
  79. package/lib/browser/os-notification-service.js +222 -0
  80. package/lib/browser/os-notification-service.js.map +1 -0
  81. package/lib/browser/prompttemplate-contribution.d.ts +29 -0
  82. package/lib/browser/prompttemplate-contribution.d.ts.map +1 -0
  83. package/lib/browser/prompttemplate-contribution.js +246 -0
  84. package/lib/browser/prompttemplate-contribution.js.map +1 -0
  85. package/lib/browser/prompttemplate-parser.d.ts +36 -0
  86. package/lib/browser/prompttemplate-parser.d.ts.map +1 -0
  87. package/lib/browser/prompttemplate-parser.js +94 -0
  88. package/lib/browser/prompttemplate-parser.js.map +1 -0
  89. package/lib/browser/theia-variable-contribution.d.ts +26 -0
  90. package/lib/browser/theia-variable-contribution.d.ts.map +1 -0
  91. package/lib/browser/theia-variable-contribution.js +146 -0
  92. package/lib/browser/theia-variable-contribution.js.map +1 -0
  93. package/lib/browser/token-usage-frontend-service-impl.d.ts +25 -0
  94. package/lib/browser/token-usage-frontend-service-impl.d.ts.map +1 -0
  95. package/lib/browser/token-usage-frontend-service-impl.js +138 -0
  96. package/lib/browser/token-usage-frontend-service-impl.js.map +1 -0
  97. package/lib/browser/token-usage-frontend-service.d.ts +33 -0
  98. package/lib/browser/token-usage-frontend-service.d.ts.map +1 -0
  99. package/lib/browser/token-usage-frontend-service.js +23 -0
  100. package/lib/browser/token-usage-frontend-service.js.map +1 -0
  101. package/lib/browser/window-blink-service.d.ts +41 -0
  102. package/lib/browser/window-blink-service.d.ts.map +1 -0
  103. package/lib/browser/window-blink-service.js +174 -0
  104. package/lib/browser/window-blink-service.js.map +1 -0
  105. package/lib/common/agent-preferences.d.ts +4 -0
  106. package/lib/common/agent-preferences.d.ts.map +1 -0
  107. package/lib/common/agent-preferences.js +84 -0
  108. package/lib/common/agent-preferences.js.map +1 -0
  109. package/lib/common/agent-service.d.ts +66 -0
  110. package/lib/common/agent-service.d.ts.map +1 -0
  111. package/lib/common/agent-service.js +104 -0
  112. package/lib/common/agent-service.js.map +1 -0
  113. package/lib/common/agent.d.ts +72 -0
  114. package/lib/common/agent.d.ts.map +1 -0
  115. package/lib/common/agent.js +20 -0
  116. package/lib/common/agent.js.map +1 -0
  117. package/lib/common/agents-variable-contribution.d.ts +19 -0
  118. package/lib/common/agents-variable-contribution.d.ts.map +1 -0
  119. package/lib/common/agents-variable-contribution.js +57 -0
  120. package/lib/common/agents-variable-contribution.js.map +1 -0
  121. package/lib/common/ai-core-preferences.d.ts +48 -0
  122. package/lib/common/ai-core-preferences.d.ts.map +1 -0
  123. package/lib/common/ai-core-preferences.js +204 -0
  124. package/lib/common/ai-core-preferences.js.map +1 -0
  125. package/lib/common/ai-variable-resource.d.ts +18 -0
  126. package/lib/common/ai-variable-resource.d.ts.map +1 -0
  127. package/lib/common/ai-variable-resource.js +103 -0
  128. package/lib/common/ai-variable-resource.js.map +1 -0
  129. package/lib/common/configurable-in-memory-resources.d.ts +47 -0
  130. package/lib/common/configurable-in-memory-resources.d.ts.map +1 -0
  131. package/lib/common/configurable-in-memory-resources.js +154 -0
  132. package/lib/common/configurable-in-memory-resources.js.map +1 -0
  133. package/lib/common/index.d.ts +22 -0
  134. package/lib/common/index.d.ts.map +1 -0
  135. package/lib/common/index.js +40 -0
  136. package/lib/common/index.js.map +1 -0
  137. package/lib/common/language-model-alias.d.ts +58 -0
  138. package/lib/common/language-model-alias.d.ts.map +1 -0
  139. package/lib/common/language-model-alias.js +20 -0
  140. package/lib/common/language-model-alias.js.map +1 -0
  141. package/lib/common/language-model-delegate.d.ts +25 -0
  142. package/lib/common/language-model-delegate.d.ts.map +1 -0
  143. package/lib/common/language-model-delegate.js +26 -0
  144. package/lib/common/language-model-delegate.js.map +1 -0
  145. package/lib/common/language-model-interaction-model.d.ts +74 -0
  146. package/lib/common/language-model-interaction-model.d.ts.map +1 -0
  147. package/lib/common/language-model-interaction-model.js +3 -0
  148. package/lib/common/language-model-interaction-model.js.map +1 -0
  149. package/lib/common/language-model-service.d.ts +38 -0
  150. package/lib/common/language-model-service.d.ts.map +1 -0
  151. package/lib/common/language-model-service.js +128 -0
  152. package/lib/common/language-model-service.js.map +1 -0
  153. package/lib/common/language-model-util.d.ts +17 -0
  154. package/lib/common/language-model-util.d.ts.map +1 -0
  155. package/lib/common/language-model-util.js +82 -0
  156. package/lib/common/language-model-util.js.map +1 -0
  157. package/lib/common/language-model.d.ts +285 -0
  158. package/lib/common/language-model.d.ts.map +1 -0
  159. package/lib/common/language-model.js +248 -0
  160. package/lib/common/language-model.js.map +1 -0
  161. package/lib/common/language-model.spec.d.ts +2 -0
  162. package/lib/common/language-model.spec.d.ts.map +1 -0
  163. package/lib/common/language-model.spec.js +62 -0
  164. package/lib/common/language-model.spec.js.map +1 -0
  165. package/lib/common/notification-types.d.ts +7 -0
  166. package/lib/common/notification-types.d.ts.map +1 -0
  167. package/lib/common/notification-types.js +29 -0
  168. package/lib/common/notification-types.js.map +1 -0
  169. package/lib/common/prompt-service-util.d.ts +8 -0
  170. package/lib/common/prompt-service-util.d.ts.map +1 -0
  171. package/lib/common/prompt-service-util.js +34 -0
  172. package/lib/common/prompt-service-util.js.map +1 -0
  173. package/lib/common/prompt-service.d.ts +467 -0
  174. package/lib/common/prompt-service.d.ts.map +1 -0
  175. package/lib/common/prompt-service.js +657 -0
  176. package/lib/common/prompt-service.js.map +1 -0
  177. package/lib/common/prompt-service.spec.d.ts +2 -0
  178. package/lib/common/prompt-service.spec.d.ts.map +1 -0
  179. package/lib/common/prompt-service.spec.js +431 -0
  180. package/lib/common/prompt-service.spec.js.map +1 -0
  181. package/lib/common/prompt-text.d.ts +8 -0
  182. package/lib/common/prompt-text.d.ts.map +1 -0
  183. package/lib/common/prompt-text.js +27 -0
  184. package/lib/common/prompt-text.js.map +1 -0
  185. package/lib/common/prompt-variable-contribution.d.ts +18 -0
  186. package/lib/common/prompt-variable-contribution.d.ts.map +1 -0
  187. package/lib/common/prompt-variable-contribution.js +207 -0
  188. package/lib/common/prompt-variable-contribution.js.map +1 -0
  189. package/lib/common/prompt-variable-contribution.spec.d.ts +2 -0
  190. package/lib/common/prompt-variable-contribution.spec.d.ts.map +1 -0
  191. package/lib/common/prompt-variable-contribution.spec.js +163 -0
  192. package/lib/common/prompt-variable-contribution.spec.js.map +1 -0
  193. package/lib/common/protocol.d.ts +25 -0
  194. package/lib/common/protocol.d.ts.map +1 -0
  195. package/lib/common/protocol.js +22 -0
  196. package/lib/common/protocol.js.map +1 -0
  197. package/lib/common/settings-service.d.ts +29 -0
  198. package/lib/common/settings-service.d.ts.map +1 -0
  199. package/lib/common/settings-service.js +5 -0
  200. package/lib/common/settings-service.js.map +1 -0
  201. package/lib/common/today-variable-contribution.d.ts +17 -0
  202. package/lib/common/today-variable-contribution.d.ts.map +1 -0
  203. package/lib/common/today-variable-contribution.js +68 -0
  204. package/lib/common/today-variable-contribution.js.map +1 -0
  205. package/lib/common/token-usage-service.d.ts +43 -0
  206. package/lib/common/token-usage-service.d.ts.map +1 -0
  207. package/lib/common/token-usage-service.js +20 -0
  208. package/lib/common/token-usage-service.js.map +1 -0
  209. package/lib/common/tool-invocation-registry.d.ts +66 -0
  210. package/lib/common/tool-invocation-registry.d.ts.map +1 -0
  211. package/lib/common/tool-invocation-registry.js +101 -0
  212. package/lib/common/tool-invocation-registry.js.map +1 -0
  213. package/lib/common/variable-service.d.ts +172 -0
  214. package/lib/common/variable-service.d.ts.map +1 -0
  215. package/lib/common/variable-service.js +287 -0
  216. package/lib/common/variable-service.js.map +1 -0
  217. package/lib/common/variable-service.spec.d.ts +2 -0
  218. package/lib/common/variable-service.spec.d.ts.map +1 -0
  219. package/lib/common/variable-service.spec.js +237 -0
  220. package/lib/common/variable-service.spec.js.map +1 -0
  221. package/lib/node/ai-core-backend-module.d.ts +4 -0
  222. package/lib/node/ai-core-backend-module.d.ts.map +1 -0
  223. package/lib/node/ai-core-backend-module.js +65 -0
  224. package/lib/node/ai-core-backend-module.js.map +1 -0
  225. package/lib/node/backend-language-model-registry.d.ts +13 -0
  226. package/lib/node/backend-language-model-registry.d.ts.map +1 -0
  227. package/lib/node/backend-language-model-registry.js +68 -0
  228. package/lib/node/backend-language-model-registry.js.map +1 -0
  229. package/lib/node/language-model-frontend-delegate.d.ts +18 -0
  230. package/lib/node/language-model-frontend-delegate.d.ts.map +1 -0
  231. package/lib/node/language-model-frontend-delegate.js +109 -0
  232. package/lib/node/language-model-frontend-delegate.js.map +1 -0
  233. package/lib/node/token-usage-service-impl.d.ts +23 -0
  234. package/lib/node/token-usage-service-impl.d.ts.map +1 -0
  235. package/lib/node/token-usage-service-impl.js +78 -0
  236. package/lib/node/token-usage-service-impl.js.map +1 -0
  237. package/lib/node/tool-request-parameters.spec.d.ts +2 -0
  238. package/lib/node/tool-request-parameters.spec.d.ts.map +1 -0
  239. package/lib/node/tool-request-parameters.spec.js +116 -0
  240. package/lib/node/tool-request-parameters.spec.js.map +1 -0
  241. package/package.json +9 -9
  242. package/src/browser/ai-settings-service.ts +7 -10
  243. package/src/browser/prompttemplate-contribution.ts +7 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/file-variable-contribution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Emitter, Event } from '@theia/core';
2
+ import { LanguageModelAlias, LanguageModelAliasRegistry } from '../common/language-model-alias';
3
+ import { PreferenceService } from '@theia/core/lib/common';
4
+ import { Deferred } from '@theia/core/lib/common/promise-util';
5
+ export declare class DefaultLanguageModelAliasRegistry implements LanguageModelAliasRegistry {
6
+ protected aliases: LanguageModelAlias[];
7
+ protected readonly onDidChangeEmitter: Emitter<void>;
8
+ readonly onDidChange: Event<void>;
9
+ protected readonly preferenceService: PreferenceService;
10
+ protected readonly _ready: Deferred<void>;
11
+ get ready(): Promise<void>;
12
+ protected init(): void;
13
+ addAlias(alias: LanguageModelAlias): void;
14
+ removeAlias(id: string): void;
15
+ getAliases(): LanguageModelAlias[];
16
+ resolveAlias(id: string): string[] | undefined;
17
+ /**
18
+ * Set the selected model for the given alias id.
19
+ * Updates the alias' selectedModelId to the given modelId, persists, and fires onDidChange.
20
+ */
21
+ selectModelForAlias(aliasId: string, modelId: string): void;
22
+ /**
23
+ * Load aliases from the persisted setting
24
+ */
25
+ protected loadFromPreference(): void;
26
+ /**
27
+ * Persist the current aliases and their selected models to the setting
28
+ */
29
+ protected saveToPreference(): void;
30
+ }
31
+ //# sourceMappingURL=frontend-language-model-alias-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-language-model-alias-registry.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-language-model-alias-registry.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAO,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EAAmB,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,qBACa,iCAAkC,YAAW,0BAA0B;IAEhF,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAqCrC;IACF,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAiC;IAGlE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,QAAQ,CAAC,MAAM,iBAAwB;IACjD,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzB;IAGD,SAAS,CAAC,IAAI,IAAI,IAAI;IActB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAWzC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAS7B,UAAU,IAAI,kBAAkB,EAAE;IAIlC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAW9C;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3D;;OAEG;IACH,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAWpC;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI;CASrC"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2024-2025 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DefaultLanguageModelAliasRegistry = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const core_1 = require("@theia/core");
22
+ const common_1 = require("@theia/core/lib/common");
23
+ const ai_core_preferences_1 = require("../common/ai-core-preferences");
24
+ const promise_util_1 = require("@theia/core/lib/common/promise-util");
25
+ let DefaultLanguageModelAliasRegistry = class DefaultLanguageModelAliasRegistry {
26
+ constructor() {
27
+ this.aliases = [
28
+ {
29
+ id: 'default/code',
30
+ defaultModelIds: [
31
+ 'anthropic/claude-sonnet-4-5',
32
+ 'openai/gpt-5.1',
33
+ 'google/gemini-3-pro-preview'
34
+ ],
35
+ description: core_1.nls.localize('theia/ai/core/defaultModelAliases/code/description', 'Optimized for code understanding and generation tasks.')
36
+ },
37
+ {
38
+ id: 'default/universal',
39
+ defaultModelIds: [
40
+ 'openai/gpt-5.1',
41
+ 'anthropic/claude-sonnet-4-5',
42
+ 'google/gemini-3-pro-preview'
43
+ ],
44
+ description: core_1.nls.localize('theia/ai/core/defaultModelAliases/universal/description', 'Well-balanced for both code and general language use.')
45
+ },
46
+ {
47
+ id: 'default/code-completion',
48
+ defaultModelIds: [
49
+ 'openai/gpt-4.1',
50
+ 'anthropic/claude-sonnet-4-5',
51
+ 'google/gemini-3-pro-preview'
52
+ ],
53
+ description: core_1.nls.localize('theia/ai/core/defaultModelAliases/code-completion/description', 'Best suited for code autocompletion scenarios.')
54
+ },
55
+ {
56
+ id: 'default/summarize',
57
+ defaultModelIds: [
58
+ 'openai/gpt-5.1',
59
+ 'anthropic/claude-sonnet-4-5',
60
+ 'google/gemini-3-pro-preview'
61
+ ],
62
+ description: core_1.nls.localize('theia/ai/core/defaultModelAliases/summarize/description', 'Models prioritized for summarization and condensation of content.')
63
+ }
64
+ ];
65
+ this.onDidChangeEmitter = new core_1.Emitter();
66
+ this.onDidChange = this.onDidChangeEmitter.event;
67
+ this._ready = new promise_util_1.Deferred();
68
+ }
69
+ get ready() {
70
+ return this._ready.promise;
71
+ }
72
+ init() {
73
+ this.preferenceService.ready.then(() => {
74
+ this.loadFromPreference();
75
+ this.preferenceService.onPreferenceChanged(ev => {
76
+ if (ev.preferenceName === ai_core_preferences_1.LANGUAGE_MODEL_ALIASES_PREFERENCE) {
77
+ this.loadFromPreference();
78
+ }
79
+ });
80
+ this._ready.resolve();
81
+ }, err => {
82
+ this._ready.reject(err);
83
+ });
84
+ }
85
+ addAlias(alias) {
86
+ const idx = this.aliases.findIndex(a => a.id === alias.id);
87
+ if (idx !== -1) {
88
+ this.aliases[idx] = alias;
89
+ }
90
+ else {
91
+ this.aliases.push(alias);
92
+ }
93
+ this.saveToPreference();
94
+ this.onDidChangeEmitter.fire();
95
+ }
96
+ removeAlias(id) {
97
+ const idx = this.aliases.findIndex(a => a.id === id);
98
+ if (idx !== -1) {
99
+ this.aliases.splice(idx, 1);
100
+ this.saveToPreference();
101
+ this.onDidChangeEmitter.fire();
102
+ }
103
+ }
104
+ getAliases() {
105
+ return [...this.aliases];
106
+ }
107
+ resolveAlias(id) {
108
+ const alias = this.aliases.find(a => a.id === id);
109
+ if (!alias) {
110
+ return undefined;
111
+ }
112
+ if (alias.selectedModelId) {
113
+ return [alias.selectedModelId];
114
+ }
115
+ return alias.defaultModelIds;
116
+ }
117
+ /**
118
+ * Set the selected model for the given alias id.
119
+ * Updates the alias' selectedModelId to the given modelId, persists, and fires onDidChange.
120
+ */
121
+ selectModelForAlias(aliasId, modelId) {
122
+ const alias = this.aliases.find(a => a.id === aliasId);
123
+ if (alias) {
124
+ alias.selectedModelId = modelId;
125
+ this.saveToPreference();
126
+ this.onDidChangeEmitter.fire();
127
+ }
128
+ }
129
+ /**
130
+ * Load aliases from the persisted setting
131
+ */
132
+ loadFromPreference() {
133
+ const stored = this.preferenceService.get(ai_core_preferences_1.LANGUAGE_MODEL_ALIASES_PREFERENCE) || {};
134
+ this.aliases.forEach(alias => {
135
+ if (stored[alias.id] && stored[alias.id].selectedModel) {
136
+ alias.selectedModelId = stored[alias.id].selectedModel;
137
+ }
138
+ else {
139
+ delete alias.selectedModelId;
140
+ }
141
+ });
142
+ }
143
+ /**
144
+ * Persist the current aliases and their selected models to the setting
145
+ */
146
+ saveToPreference() {
147
+ const map = {};
148
+ for (const alias of this.aliases) {
149
+ if (alias.selectedModelId) {
150
+ map[alias.id] = { selectedModel: alias.selectedModelId };
151
+ }
152
+ }
153
+ this.preferenceService.set(ai_core_preferences_1.LANGUAGE_MODEL_ALIASES_PREFERENCE, map, common_1.PreferenceScope.User);
154
+ }
155
+ };
156
+ exports.DefaultLanguageModelAliasRegistry = DefaultLanguageModelAliasRegistry;
157
+ tslib_1.__decorate([
158
+ (0, inversify_1.inject)(common_1.PreferenceService),
159
+ tslib_1.__metadata("design:type", Object)
160
+ ], DefaultLanguageModelAliasRegistry.prototype, "preferenceService", void 0);
161
+ tslib_1.__decorate([
162
+ (0, inversify_1.postConstruct)(),
163
+ tslib_1.__metadata("design:type", Function),
164
+ tslib_1.__metadata("design:paramtypes", []),
165
+ tslib_1.__metadata("design:returntype", void 0)
166
+ ], DefaultLanguageModelAliasRegistry.prototype, "init", null);
167
+ exports.DefaultLanguageModelAliasRegistry = DefaultLanguageModelAliasRegistry = tslib_1.__decorate([
168
+ (0, inversify_1.injectable)()
169
+ ], DefaultLanguageModelAliasRegistry);
170
+ //# sourceMappingURL=frontend-language-model-alias-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-language-model-alias-registry.js","sourceRoot":"","sources":["../../src/browser/frontend-language-model-alias-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { ILogger } from '@theia/core';
2
+ import { OutputChannelManager } from '@theia/output/lib/browser/output-channel';
3
+ import { AISettingsService, DefaultLanguageModelRegistryImpl, FrontendLanguageModelRegistry, LanguageModel, LanguageModelAliasRegistry, LanguageModelDelegateClient, LanguageModelFrontendDelegate, LanguageModelMetaData, LanguageModelRegistryClient, LanguageModelRegistryFrontendDelegate, LanguageModelRequest, LanguageModelSelector, LanguageModelStreamResponsePart, ToolCallResult } from '../common';
4
+ export declare class LanguageModelDelegateClientImpl implements LanguageModelDelegateClient, LanguageModelRegistryClient {
5
+ onLanguageModelUpdated(id: string): void;
6
+ protected receiver: FrontendLanguageModelRegistryImpl;
7
+ setReceiver(receiver: FrontendLanguageModelRegistryImpl): void;
8
+ send(id: string, token: LanguageModelStreamResponsePart | undefined): void;
9
+ toolCall(requestId: string, toolId: string, args_string: string): Promise<ToolCallResult>;
10
+ error(id: string, error: Error): void;
11
+ languageModelAdded(metadata: LanguageModelMetaData): void;
12
+ languageModelRemoved(id: string): void;
13
+ }
14
+ interface StreamState {
15
+ id: string;
16
+ tokens: (LanguageModelStreamResponsePart | undefined)[];
17
+ resolve?: (_: unknown) => void;
18
+ reject?: (_: unknown) => void;
19
+ }
20
+ export declare class FrontendLanguageModelRegistryImpl extends DefaultLanguageModelRegistryImpl implements FrontendLanguageModelRegistry {
21
+ protected aliasRegistry: LanguageModelAliasRegistry;
22
+ languageModelAdded(metadata: LanguageModelMetaData): void;
23
+ languageModelRemoved(id: string): void;
24
+ onLanguageModelUpdated(id: string): void;
25
+ /**
26
+ * Fetch the updated model metadata from the backend and update the registry.
27
+ */
28
+ protected updateLanguageModelFromBackend(id: string): Promise<void>;
29
+ protected registryDelegate: LanguageModelRegistryFrontendDelegate;
30
+ protected providerDelegate: LanguageModelFrontendDelegate;
31
+ protected client: LanguageModelDelegateClientImpl;
32
+ protected logger: ILogger;
33
+ protected outputChannelManager: OutputChannelManager;
34
+ protected settingsService: AISettingsService;
35
+ private static requestCounter;
36
+ addLanguageModels(models: LanguageModelMetaData[] | LanguageModel[]): void;
37
+ protected init(): void;
38
+ createFrontendLanguageModel(description: LanguageModelMetaData): LanguageModel;
39
+ protected streams: Map<string, StreamState>;
40
+ protected requests: Map<string, LanguageModelRequest>;
41
+ getIterable(state: StreamState): AsyncIterable<LanguageModelStreamResponsePart>;
42
+ send(id: string, token: LanguageModelStreamResponsePart | undefined): void;
43
+ toolCall(id: string, toolId: string, arg_string: string): Promise<ToolCallResult>;
44
+ error(id: string, error: Error): void;
45
+ selectLanguageModels(request: LanguageModelSelector): Promise<LanguageModel[] | undefined>;
46
+ getReadyLanguageModel(idOrAlias: string): Promise<LanguageModel | undefined>;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=frontend-language-model-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-language-model-registry.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-language-model-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,387 @@
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) 2025 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
+ onLanguageModelUpdated(id) {
27
+ this.receiver.onLanguageModelUpdated(id);
28
+ }
29
+ setReceiver(receiver) {
30
+ this.receiver = receiver;
31
+ }
32
+ send(id, token) {
33
+ this.receiver.send(id, token);
34
+ }
35
+ toolCall(requestId, toolId, args_string) {
36
+ return this.receiver.toolCall(requestId, toolId, args_string);
37
+ }
38
+ error(id, error) {
39
+ this.receiver.error(id, error);
40
+ }
41
+ languageModelAdded(metadata) {
42
+ this.receiver.languageModelAdded(metadata);
43
+ }
44
+ languageModelRemoved(id) {
45
+ this.receiver.languageModelRemoved(id);
46
+ }
47
+ };
48
+ exports.LanguageModelDelegateClientImpl = LanguageModelDelegateClientImpl;
49
+ exports.LanguageModelDelegateClientImpl = LanguageModelDelegateClientImpl = tslib_1.__decorate([
50
+ (0, inversify_1.injectable)()
51
+ ], LanguageModelDelegateClientImpl);
52
+ let FrontendLanguageModelRegistryImpl = FrontendLanguageModelRegistryImpl_1 = class FrontendLanguageModelRegistryImpl extends common_1.DefaultLanguageModelRegistryImpl {
53
+ constructor() {
54
+ super(...arguments);
55
+ this.streams = new Map();
56
+ this.requests = new Map();
57
+ }
58
+ // called by backend
59
+ languageModelAdded(metadata) {
60
+ this.addLanguageModels([metadata]);
61
+ }
62
+ // called by backend
63
+ languageModelRemoved(id) {
64
+ this.removeLanguageModels([id]);
65
+ }
66
+ // called by backend when a model is updated
67
+ onLanguageModelUpdated(id) {
68
+ this.updateLanguageModelFromBackend(id);
69
+ }
70
+ /**
71
+ * Fetch the updated model metadata from the backend and update the registry.
72
+ */
73
+ async updateLanguageModelFromBackend(id) {
74
+ try {
75
+ const backendModels = await this.registryDelegate.getLanguageModelDescriptions();
76
+ const updated = backendModels.find((m) => m.id === id);
77
+ if (updated) {
78
+ // Remove the old model and add the updated one
79
+ this.removeLanguageModels([id]);
80
+ this.addLanguageModels([updated]);
81
+ }
82
+ }
83
+ catch (err) {
84
+ this.logger.error('Failed to update language model from backend', err);
85
+ }
86
+ }
87
+ addLanguageModels(models) {
88
+ let modelAdded = false;
89
+ for (const model of models) {
90
+ if (this.languageModels.find(m => m.id === model.id)) {
91
+ console.warn(`Tried to add an existing model ${model.id}`);
92
+ continue;
93
+ }
94
+ if (common_1.LanguageModel.is(model)) {
95
+ this.languageModels.push(new Proxy(model, languageModelOutputHandler(() => this.outputChannelManager.getChannel(model.id))));
96
+ modelAdded = true;
97
+ }
98
+ else {
99
+ this.languageModels.push(new Proxy(this.createFrontendLanguageModel(model), languageModelOutputHandler(() => this.outputChannelManager.getChannel(model.id))));
100
+ modelAdded = true;
101
+ }
102
+ }
103
+ if (modelAdded) {
104
+ this.changeEmitter.fire({ models: this.languageModels });
105
+ }
106
+ }
107
+ init() {
108
+ this.client.setReceiver(this);
109
+ const contributions = this.languageModelContributions.getContributions();
110
+ const promises = contributions.map(provider => provider());
111
+ const backendDescriptions = this.registryDelegate.getLanguageModelDescriptions();
112
+ Promise.allSettled([backendDescriptions, ...promises]).then(results => {
113
+ const backendDescriptionsResult = results[0];
114
+ if (backendDescriptionsResult.status === 'fulfilled') {
115
+ this.addLanguageModels(backendDescriptionsResult.value);
116
+ }
117
+ else {
118
+ this.logger.error('Failed to add language models contributed from the backend', backendDescriptionsResult.reason);
119
+ }
120
+ for (let i = 1; i < results.length; i++) {
121
+ // assert that index > 0 contains only language models
122
+ const languageModelResult = results[i];
123
+ if (languageModelResult.status === 'fulfilled') {
124
+ this.addLanguageModels(languageModelResult.value);
125
+ }
126
+ else {
127
+ this.logger.error('Failed to add some language models:', languageModelResult.reason);
128
+ }
129
+ }
130
+ this.markInitialized();
131
+ });
132
+ }
133
+ createFrontendLanguageModel(description) {
134
+ return {
135
+ ...description,
136
+ request: async (request, cancellationToken) => {
137
+ const requestId = `${FrontendLanguageModelRegistryImpl_1.requestCounter++}`;
138
+ this.requests.set(requestId, request);
139
+ cancellationToken === null || cancellationToken === void 0 ? void 0 : cancellationToken.onCancellationRequested(() => {
140
+ this.providerDelegate.cancel(requestId);
141
+ });
142
+ const response = await this.providerDelegate.request(description.id, request, requestId, cancellationToken);
143
+ if ((0, common_1.isLanguageModelTextResponse)(response) || (0, common_1.isLanguageModelParsedResponse)(response)) {
144
+ return response;
145
+ }
146
+ if ((0, common_1.isLanguageModelStreamResponseDelegate)(response)) {
147
+ if (!this.streams.has(response.streamId)) {
148
+ const newStreamState = {
149
+ id: response.streamId,
150
+ tokens: [],
151
+ };
152
+ this.streams.set(response.streamId, newStreamState);
153
+ }
154
+ const streamState = this.streams.get(response.streamId);
155
+ return {
156
+ stream: this.getIterable(streamState),
157
+ };
158
+ }
159
+ this.logger.error(`Received unknown response in frontend for request to language model ${description.id}. Trying to continue without touching the response.`, response);
160
+ return response;
161
+ },
162
+ };
163
+ }
164
+ async *getIterable(state) {
165
+ let current = -1;
166
+ while (true) {
167
+ if (current < state.tokens.length - 1) {
168
+ current++;
169
+ const token = state.tokens[current];
170
+ if (token === undefined) {
171
+ // message is finished
172
+ break;
173
+ }
174
+ if (token !== undefined) {
175
+ yield token;
176
+ }
177
+ }
178
+ else {
179
+ await new Promise((resolve, reject) => {
180
+ state.resolve = resolve;
181
+ state.reject = reject;
182
+ });
183
+ }
184
+ }
185
+ this.streams.delete(state.id);
186
+ }
187
+ // called by backend via the "delegate client" with new tokens
188
+ send(id, token) {
189
+ if (!this.streams.has(id)) {
190
+ const newStreamState = {
191
+ id,
192
+ tokens: [],
193
+ };
194
+ this.streams.set(id, newStreamState);
195
+ }
196
+ const streamState = this.streams.get(id);
197
+ streamState.tokens.push(token);
198
+ if (streamState.resolve) {
199
+ streamState.resolve(token);
200
+ }
201
+ }
202
+ // called by backend once tool is invoked
203
+ async toolCall(id, toolId, arg_string) {
204
+ var _a;
205
+ if (!this.requests.has(id)) {
206
+ return { error: true, message: `No request found for ID '${id}'. The request may have been cancelled or completed.` };
207
+ }
208
+ const request = this.requests.get(id);
209
+ const tool = (_a = request.tools) === null || _a === void 0 ? void 0 : _a.find(t => t.id === toolId);
210
+ if (tool) {
211
+ try {
212
+ return await tool.handler(arg_string);
213
+ }
214
+ catch (error) {
215
+ const errorMessage = error instanceof Error ? error.message : String(error);
216
+ return { error: true, message: `Error executing tool '${toolId}': ${errorMessage}` };
217
+ }
218
+ ;
219
+ }
220
+ return { error: true, message: `Tool '${toolId}' not found in the available tools for this request.` };
221
+ }
222
+ // called by backend via the "delegate client" with the error to use for rejection
223
+ error(id, error) {
224
+ var _a;
225
+ if (!this.streams.has(id)) {
226
+ const newStreamState = {
227
+ id,
228
+ tokens: [],
229
+ };
230
+ this.streams.set(id, newStreamState);
231
+ }
232
+ const streamState = this.streams.get(id);
233
+ (_a = streamState.reject) === null || _a === void 0 ? void 0 : _a.call(streamState, error);
234
+ }
235
+ async selectLanguageModels(request) {
236
+ var _a, _b, _c;
237
+ await this.initialized;
238
+ 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);
239
+ const identifier = (_c = userSettings === null || userSettings === void 0 ? void 0 : userSettings.identifier) !== null && _c !== void 0 ? _c : request.identifier;
240
+ if (identifier) {
241
+ const model = await this.getReadyLanguageModel(identifier);
242
+ if (model) {
243
+ return [model];
244
+ }
245
+ }
246
+ // Previously we returned the default model here, but this is not really transparent for the user so we do not select any model here.
247
+ return undefined;
248
+ }
249
+ async getReadyLanguageModel(idOrAlias) {
250
+ await this.aliasRegistry.ready;
251
+ const modelIds = this.aliasRegistry.resolveAlias(idOrAlias);
252
+ if (modelIds) {
253
+ for (const modelId of modelIds) {
254
+ const model = await this.getLanguageModel(modelId);
255
+ if ((model === null || model === void 0 ? void 0 : model.status.status) === 'ready') {
256
+ return model;
257
+ }
258
+ }
259
+ return undefined;
260
+ }
261
+ const languageModel = await this.getLanguageModel(idOrAlias);
262
+ return (languageModel === null || languageModel === void 0 ? void 0 : languageModel.status.status) === 'ready' ? languageModel : undefined;
263
+ }
264
+ };
265
+ exports.FrontendLanguageModelRegistryImpl = FrontendLanguageModelRegistryImpl;
266
+ FrontendLanguageModelRegistryImpl.requestCounter = 0;
267
+ tslib_1.__decorate([
268
+ (0, inversify_1.inject)(common_1.LanguageModelAliasRegistry),
269
+ tslib_1.__metadata("design:type", Object)
270
+ ], FrontendLanguageModelRegistryImpl.prototype, "aliasRegistry", void 0);
271
+ tslib_1.__decorate([
272
+ (0, inversify_1.inject)(common_1.LanguageModelRegistryFrontendDelegate),
273
+ tslib_1.__metadata("design:type", Object)
274
+ ], FrontendLanguageModelRegistryImpl.prototype, "registryDelegate", void 0);
275
+ tslib_1.__decorate([
276
+ (0, inversify_1.inject)(common_1.LanguageModelFrontendDelegate),
277
+ tslib_1.__metadata("design:type", Object)
278
+ ], FrontendLanguageModelRegistryImpl.prototype, "providerDelegate", void 0);
279
+ tslib_1.__decorate([
280
+ (0, inversify_1.inject)(LanguageModelDelegateClientImpl),
281
+ tslib_1.__metadata("design:type", LanguageModelDelegateClientImpl)
282
+ ], FrontendLanguageModelRegistryImpl.prototype, "client", void 0);
283
+ tslib_1.__decorate([
284
+ (0, inversify_1.inject)(core_1.ILogger),
285
+ tslib_1.__metadata("design:type", Object)
286
+ ], FrontendLanguageModelRegistryImpl.prototype, "logger", void 0);
287
+ tslib_1.__decorate([
288
+ (0, inversify_1.inject)(output_channel_1.OutputChannelManager),
289
+ tslib_1.__metadata("design:type", output_channel_1.OutputChannelManager)
290
+ ], FrontendLanguageModelRegistryImpl.prototype, "outputChannelManager", void 0);
291
+ tslib_1.__decorate([
292
+ (0, inversify_1.inject)(common_1.AISettingsService),
293
+ tslib_1.__metadata("design:type", Object)
294
+ ], FrontendLanguageModelRegistryImpl.prototype, "settingsService", void 0);
295
+ tslib_1.__decorate([
296
+ (0, inversify_1.postConstruct)(),
297
+ tslib_1.__metadata("design:type", Function),
298
+ tslib_1.__metadata("design:paramtypes", []),
299
+ tslib_1.__metadata("design:returntype", void 0)
300
+ ], FrontendLanguageModelRegistryImpl.prototype, "init", null);
301
+ exports.FrontendLanguageModelRegistryImpl = FrontendLanguageModelRegistryImpl = FrontendLanguageModelRegistryImpl_1 = tslib_1.__decorate([
302
+ (0, inversify_1.injectable)()
303
+ ], FrontendLanguageModelRegistryImpl);
304
+ const formatJsonWithIndentation = (obj) => {
305
+ // eslint-disable-next-line no-null/no-null
306
+ const jsonString = JSON.stringify(obj, null, 2);
307
+ const lines = jsonString.split('\n');
308
+ const formattedLines = [];
309
+ lines.forEach(line => {
310
+ const subLines = line.split('\\n');
311
+ const index = indexOfValue(subLines[0]) + 1;
312
+ formattedLines.push(subLines[0]);
313
+ const prefix = index > 0 ? ' '.repeat(index) : '';
314
+ if (index !== -1) {
315
+ for (let i = 1; i < subLines.length; i++) {
316
+ formattedLines.push(prefix + subLines[i]);
317
+ }
318
+ }
319
+ });
320
+ return formattedLines;
321
+ };
322
+ const indexOfValue = (jsonLine) => {
323
+ const pattern = /"([^"]+)"\s*:\s*/g;
324
+ const match = pattern.exec(jsonLine);
325
+ return match ? match.index + match[0].length : -1;
326
+ };
327
+ const languageModelOutputHandler = (outputChannelGetter) => ({
328
+ get(target, prop) {
329
+ const original = target[prop];
330
+ if (prop === 'request' && typeof original === 'function') {
331
+ return async function (...args) {
332
+ const outputChannel = outputChannelGetter();
333
+ outputChannel.appendLine('Sending request:');
334
+ const formattedRequest = formatJsonWithIndentation(args[0]);
335
+ outputChannel.append(formattedRequest.join('\n'));
336
+ if (args[1]) {
337
+ args[1] = new Proxy(args[1], {
338
+ get(cTarget, cProp) {
339
+ if (cProp === 'onCancellationRequested') {
340
+ return (...cargs) => cTarget.onCancellationRequested(() => {
341
+ outputChannel.appendLine('\nCancel requested', output_channel_1.OutputChannelSeverity.Warning);
342
+ cargs[0]();
343
+ }, cargs[1], cargs[2]);
344
+ }
345
+ return cTarget[cProp];
346
+ }
347
+ });
348
+ }
349
+ try {
350
+ const result = await original.apply(target, args);
351
+ if ((0, common_1.isLanguageModelStreamResponse)(result)) {
352
+ outputChannel.appendLine('Received a response stream');
353
+ const stream = result.stream;
354
+ const loggedStream = {
355
+ async *[Symbol.asyncIterator]() {
356
+ for await (const part of stream) {
357
+ outputChannel.append(((0, common_1.isTextResponsePart)(part) && part.content) || '');
358
+ yield part;
359
+ }
360
+ outputChannel.append('\n');
361
+ outputChannel.appendLine('End of stream');
362
+ },
363
+ };
364
+ return {
365
+ ...result,
366
+ stream: loggedStream,
367
+ };
368
+ }
369
+ else {
370
+ outputChannel.appendLine('Received a response');
371
+ outputChannel.appendLine(JSON.stringify(result));
372
+ return result;
373
+ }
374
+ }
375
+ catch (err) {
376
+ outputChannel.appendLine('An error occurred');
377
+ if (err instanceof Error) {
378
+ outputChannel.appendLine(err.message, output_channel_1.OutputChannelSeverity.Error);
379
+ }
380
+ throw err;
381
+ }
382
+ };
383
+ }
384
+ return original;
385
+ },
386
+ });
387
+ //# sourceMappingURL=frontend-language-model-registry.js.map