@theia/ai-ide 1.67.0-next.56 → 1.67.0-next.59

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 (301) hide show
  1. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts +41 -0
  2. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +1 -0
  3. package/lib/browser/ai-configuration/agent-configuration-widget.js +333 -0
  4. package/lib/browser/ai-configuration/agent-configuration-widget.js.map +1 -0
  5. package/lib/browser/ai-configuration/ai-configuration-service.d.ts +18 -0
  6. package/lib/browser/ai-configuration/ai-configuration-service.d.ts.map +1 -0
  7. package/lib/browser/ai-configuration/ai-configuration-service.js +53 -0
  8. package/lib/browser/ai-configuration/ai-configuration-service.js.map +1 -0
  9. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts +14 -0
  10. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts.map +1 -0
  11. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js +67 -0
  12. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js.map +1 -0
  13. package/lib/browser/ai-configuration/ai-configuration-widget.d.ts +29 -0
  14. package/lib/browser/ai-configuration/ai-configuration-widget.d.ts.map +1 -0
  15. package/lib/browser/ai-configuration/ai-configuration-widget.js +118 -0
  16. package/lib/browser/ai-configuration/ai-configuration-widget.js.map +1 -0
  17. package/lib/browser/ai-configuration/language-model-renderer.d.ts +13 -0
  18. package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -0
  19. package/lib/browser/ai-configuration/language-model-renderer.js +104 -0
  20. package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -0
  21. package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts +43 -0
  22. package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts.map +1 -0
  23. package/lib/browser/ai-configuration/mcp-configuration-widget.js +302 -0
  24. package/lib/browser/ai-configuration/mcp-configuration-widget.js.map +1 -0
  25. package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts +41 -0
  26. package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts.map +1 -0
  27. package/lib/browser/ai-configuration/model-aliases-configuration-widget.js +226 -0
  28. package/lib/browser/ai-configuration/model-aliases-configuration-widget.js.map +1 -0
  29. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts +141 -0
  30. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts.map +1 -0
  31. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js +508 -0
  32. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js.map +1 -0
  33. package/lib/browser/ai-configuration/template-settings-renderer.d.ts +10 -0
  34. package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +1 -0
  35. package/lib/browser/ai-configuration/template-settings-renderer.js +48 -0
  36. package/lib/browser/ai-configuration/template-settings-renderer.js.map +1 -0
  37. package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts +22 -0
  38. package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts.map +1 -0
  39. package/lib/browser/ai-configuration/token-usage-configuration-widget.js +156 -0
  40. package/lib/browser/ai-configuration/token-usage-configuration-widget.js.map +1 -0
  41. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +30 -0
  42. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +1 -0
  43. package/lib/browser/ai-configuration/tools-configuration-widget.js +150 -0
  44. package/lib/browser/ai-configuration/tools-configuration-widget.js.map +1 -0
  45. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts +19 -0
  46. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts.map +1 -0
  47. package/lib/browser/ai-configuration/variable-configuration-widget.js +99 -0
  48. package/lib/browser/ai-configuration/variable-configuration-widget.js.map +1 -0
  49. package/lib/browser/ai-ide-activation-service.d.ts +18 -0
  50. package/lib/browser/ai-ide-activation-service.d.ts.map +1 -0
  51. package/lib/browser/ai-ide-activation-service.js +71 -0
  52. package/lib/browser/ai-ide-activation-service.js.map +1 -0
  53. package/lib/browser/ai-terminal-functions.d.ts +13 -0
  54. package/lib/browser/ai-terminal-functions.d.ts.map +1 -0
  55. package/lib/browser/ai-terminal-functions.js +114 -0
  56. package/lib/browser/ai-terminal-functions.js.map +1 -0
  57. package/lib/browser/app-tester-chat-agent.d.ts +35 -0
  58. package/lib/browser/app-tester-chat-agent.d.ts.map +1 -0
  59. package/lib/browser/app-tester-chat-agent.js +142 -0
  60. package/lib/browser/app-tester-chat-agent.js.map +1 -0
  61. package/lib/browser/app-tester-chat-functions.d.ts +25 -0
  62. package/lib/browser/app-tester-chat-functions.d.ts.map +1 -0
  63. package/lib/browser/app-tester-chat-functions.js +170 -0
  64. package/lib/browser/app-tester-chat-functions.js.map +1 -0
  65. package/lib/browser/app-tester-prompt-template.d.ts +6 -0
  66. package/lib/browser/app-tester-prompt-template.d.ts.map +1 -0
  67. package/lib/browser/app-tester-prompt-template.js +83 -0
  68. package/lib/browser/app-tester-prompt-template.js.map +1 -0
  69. package/lib/browser/architect-agent.d.ts +15 -0
  70. package/lib/browser/architect-agent.d.ts.map +1 -0
  71. package/lib/browser/architect-agent.js +68 -0
  72. package/lib/browser/architect-agent.js.map +1 -0
  73. package/lib/browser/coder-agent.d.ts +15 -0
  74. package/lib/browser/coder-agent.d.ts.map +1 -0
  75. package/lib/browser/coder-agent.js +81 -0
  76. package/lib/browser/coder-agent.js.map +1 -0
  77. package/lib/browser/context-file-validation-service-impl.d.ts +13 -0
  78. package/lib/browser/context-file-validation-service-impl.d.ts.map +1 -0
  79. package/lib/browser/context-file-validation-service-impl.js +123 -0
  80. package/lib/browser/context-file-validation-service-impl.js.map +1 -0
  81. package/lib/browser/context-file-validation-service-impl.spec.d.ts +2 -0
  82. package/lib/browser/context-file-validation-service-impl.spec.d.ts.map +1 -0
  83. package/lib/browser/context-file-validation-service-impl.spec.js +340 -0
  84. package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -0
  85. package/lib/browser/context-functions.d.ts +16 -0
  86. package/lib/browser/context-functions.d.ts.map +1 -0
  87. package/lib/browser/context-functions.js +166 -0
  88. package/lib/browser/context-functions.js.map +1 -0
  89. package/lib/browser/context-functions.spec.d.ts +2 -0
  90. package/lib/browser/context-functions.spec.d.ts.map +1 -0
  91. package/lib/browser/context-functions.spec.js +213 -0
  92. package/lib/browser/context-functions.spec.js.map +1 -0
  93. package/lib/browser/file-changeset-function.spec.d.ts +2 -0
  94. package/lib/browser/file-changeset-function.spec.d.ts.map +1 -0
  95. package/lib/browser/file-changeset-function.spec.js +45 -0
  96. package/lib/browser/file-changeset-function.spec.js.map +1 -0
  97. package/lib/browser/file-changeset-functions.d.ts +87 -0
  98. package/lib/browser/file-changeset-functions.d.ts.map +1 -0
  99. package/lib/browser/file-changeset-functions.js +645 -0
  100. package/lib/browser/file-changeset-functions.js.map +1 -0
  101. package/lib/browser/file-changeset-functions.spec.d.ts +2 -0
  102. package/lib/browser/file-changeset-functions.spec.d.ts.map +1 -0
  103. package/lib/browser/file-changeset-functions.spec.js +179 -0
  104. package/lib/browser/file-changeset-functions.spec.js.map +1 -0
  105. package/lib/browser/frontend-module.d.ts +5 -0
  106. package/lib/browser/frontend-module.d.ts.map +1 -0
  107. package/lib/browser/frontend-module.js +220 -0
  108. package/lib/browser/frontend-module.js.map +1 -0
  109. package/lib/browser/github-chat-agent.d.ts +48 -0
  110. package/lib/browser/github-chat-agent.d.ts.map +1 -0
  111. package/lib/browser/github-chat-agent.js +222 -0
  112. package/lib/browser/github-chat-agent.js.map +1 -0
  113. package/lib/browser/github-prompt-template.d.ts +6 -0
  114. package/lib/browser/github-prompt-template.d.ts.map +1 -0
  115. package/lib/browser/github-prompt-template.js +53 -0
  116. package/lib/browser/github-prompt-template.js.map +1 -0
  117. package/lib/browser/github-repo-variable-contribution.d.ts +15 -0
  118. package/lib/browser/github-repo-variable-contribution.d.ts.map +1 -0
  119. package/lib/browser/github-repo-variable-contribution.js +82 -0
  120. package/lib/browser/github-repo-variable-contribution.js.map +1 -0
  121. package/lib/browser/ide-chat-welcome-message-provider.d.ts +10 -0
  122. package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -0
  123. package/lib/browser/ide-chat-welcome-message-provider.js +102 -0
  124. package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -0
  125. package/lib/browser/project-info-agent.d.ts +13 -0
  126. package/lib/browser/project-info-agent.d.ts.map +1 -0
  127. package/lib/browser/project-info-agent.js +45 -0
  128. package/lib/browser/project-info-agent.js.map +1 -0
  129. package/lib/browser/remember-command-contribution.d.ts +16 -0
  130. package/lib/browser/remember-command-contribution.d.ts.map +1 -0
  131. package/lib/browser/remember-command-contribution.js +101 -0
  132. package/lib/browser/remember-command-contribution.js.map +1 -0
  133. package/lib/browser/summarize-session-command-contribution.d.ts +19 -0
  134. package/lib/browser/summarize-session-command-contribution.d.ts.map +1 -0
  135. package/lib/browser/summarize-session-command-contribution.js +118 -0
  136. package/lib/browser/summarize-session-command-contribution.js.map +1 -0
  137. package/lib/browser/task-background-summary-variable.d.ts +9 -0
  138. package/lib/browser/task-background-summary-variable.d.ts.map +1 -0
  139. package/lib/browser/task-background-summary-variable.js +60 -0
  140. package/lib/browser/task-background-summary-variable.js.map +1 -0
  141. package/lib/browser/task-context-agent.d.ts +13 -0
  142. package/lib/browser/task-context-agent.d.ts.map +1 -0
  143. package/lib/browser/task-context-agent.js +45 -0
  144. package/lib/browser/task-context-agent.js.map +1 -0
  145. package/lib/browser/task-context-file-storage-service.d.ts +40 -0
  146. package/lib/browser/task-context-file-storage-service.d.ts.map +1 -0
  147. package/lib/browser/task-context-file-storage-service.js +232 -0
  148. package/lib/browser/task-context-file-storage-service.js.map +1 -0
  149. package/lib/browser/template-preference-contribution.d.ts +17 -0
  150. package/lib/browser/template-preference-contribution.d.ts.map +1 -0
  151. package/lib/browser/template-preference-contribution.js +94 -0
  152. package/lib/browser/template-preference-contribution.js.map +1 -0
  153. package/lib/browser/test/tool-provider-cancellation-test-util.spec.d.ts +2 -0
  154. package/lib/browser/test/tool-provider-cancellation-test-util.spec.d.ts.map +1 -0
  155. package/lib/browser/test/tool-provider-cancellation-test-util.spec.js +52 -0
  156. package/lib/browser/test/tool-provider-cancellation-test-util.spec.js.map +1 -0
  157. package/lib/browser/workspace-functions.d.ts +78 -0
  158. package/lib/browser/workspace-functions.d.ts.map +1 -0
  159. package/lib/browser/workspace-functions.js +697 -0
  160. package/lib/browser/workspace-functions.js.map +1 -0
  161. package/lib/browser/workspace-functions.spec.d.ts +2 -0
  162. package/lib/browser/workspace-functions.spec.d.ts.map +1 -0
  163. package/lib/browser/workspace-functions.spec.js +161 -0
  164. package/lib/browser/workspace-functions.spec.js.map +1 -0
  165. package/lib/browser/workspace-launch-provider.d.ts +24 -0
  166. package/lib/browser/workspace-launch-provider.d.ts.map +1 -0
  167. package/lib/browser/workspace-launch-provider.js +216 -0
  168. package/lib/browser/workspace-launch-provider.js.map +1 -0
  169. package/lib/browser/workspace-launch-provider.spec.d.ts +2 -0
  170. package/lib/browser/workspace-launch-provider.spec.d.ts.map +1 -0
  171. package/lib/browser/workspace-launch-provider.spec.js +245 -0
  172. package/lib/browser/workspace-launch-provider.spec.js.map +1 -0
  173. package/lib/browser/workspace-search-provider.d.ts +15 -0
  174. package/lib/browser/workspace-search-provider.d.ts.map +1 -0
  175. package/lib/browser/workspace-search-provider.js +204 -0
  176. package/lib/browser/workspace-search-provider.js.map +1 -0
  177. package/lib/browser/workspace-search-provider.spec.d.ts +2 -0
  178. package/lib/browser/workspace-search-provider.spec.d.ts.map +1 -0
  179. package/lib/browser/workspace-search-provider.spec.js +82 -0
  180. package/lib/browser/workspace-search-provider.spec.js.map +1 -0
  181. package/lib/browser/workspace-task-provider.d.ts +15 -0
  182. package/lib/browser/workspace-task-provider.d.ts.map +1 -0
  183. package/lib/browser/workspace-task-provider.js +138 -0
  184. package/lib/browser/workspace-task-provider.js.map +1 -0
  185. package/lib/browser/workspace-task-provider.spec.d.ts +2 -0
  186. package/lib/browser/workspace-task-provider.spec.d.ts.map +1 -0
  187. package/lib/browser/workspace-task-provider.spec.js +109 -0
  188. package/lib/browser/workspace-task-provider.spec.js.map +1 -0
  189. package/lib/common/ai-configuration-preferences.d.ts +8 -0
  190. package/lib/common/ai-configuration-preferences.d.ts.map +1 -0
  191. package/lib/common/ai-configuration-preferences.js +41 -0
  192. package/lib/common/ai-configuration-preferences.js.map +1 -0
  193. package/lib/common/ai-ide-preferences.d.ts +5 -0
  194. package/lib/common/ai-ide-preferences.d.ts.map +1 -0
  195. package/lib/common/ai-ide-preferences.js +53 -0
  196. package/lib/common/ai-ide-preferences.js.map +1 -0
  197. package/lib/common/ai-terminal-functions.d.ts +2 -0
  198. package/lib/common/ai-terminal-functions.d.ts.map +1 -0
  199. package/lib/common/ai-terminal-functions.js +20 -0
  200. package/lib/common/ai-terminal-functions.js.map +1 -0
  201. package/lib/common/app-tester-chat-functions.d.ts +5 -0
  202. package/lib/common/app-tester-chat-functions.d.ts.map +1 -0
  203. package/lib/common/app-tester-chat-functions.js +23 -0
  204. package/lib/common/app-tester-chat-functions.js.map +1 -0
  205. package/lib/common/architect-prompt-template.d.ts +3 -0
  206. package/lib/common/architect-prompt-template.d.ts.map +1 -0
  207. package/lib/common/architect-prompt-template.js +81 -0
  208. package/lib/common/architect-prompt-template.js.map +1 -0
  209. package/lib/common/browser-automation-protocol.d.ts +15 -0
  210. package/lib/common/browser-automation-protocol.d.ts.map +1 -0
  211. package/lib/common/browser-automation-protocol.js +22 -0
  212. package/lib/common/browser-automation-protocol.js.map +1 -0
  213. package/lib/common/coder-replace-prompt-template.d.ts +11 -0
  214. package/lib/common/coder-replace-prompt-template.d.ts.map +1 -0
  215. package/lib/common/coder-replace-prompt-template.js +296 -0
  216. package/lib/common/coder-replace-prompt-template.js.map +1 -0
  217. package/lib/common/command-chat-agents.d.ts +36 -0
  218. package/lib/common/command-chat-agents.d.ts.map +1 -0
  219. package/lib/common/command-chat-agents.js +122 -0
  220. package/lib/common/command-chat-agents.js.map +1 -0
  221. package/lib/common/command-prompt-template.d.ts +3 -0
  222. package/lib/common/command-prompt-template.d.ts.map +1 -0
  223. package/lib/common/command-prompt-template.js +226 -0
  224. package/lib/common/command-prompt-template.js.map +1 -0
  225. package/lib/common/context-files-variable.d.ts +9 -0
  226. package/lib/common/context-files-variable.d.ts.map +1 -0
  227. package/lib/common/context-files-variable.js +52 -0
  228. package/lib/common/context-files-variable.js.map +1 -0
  229. package/lib/common/context-functions.d.ts +4 -0
  230. package/lib/common/context-functions.d.ts.map +1 -0
  231. package/lib/common/context-functions.js +22 -0
  232. package/lib/common/context-functions.js.map +1 -0
  233. package/lib/common/context-variables.d.ts +3 -0
  234. package/lib/common/context-variables.d.ts.map +1 -0
  235. package/lib/common/context-variables.js +21 -0
  236. package/lib/common/context-variables.js.map +1 -0
  237. package/lib/common/file-changeset-function-ids.d.ts +19 -0
  238. package/lib/common/file-changeset-function-ids.d.ts.map +1 -0
  239. package/lib/common/file-changeset-function-ids.js +37 -0
  240. package/lib/common/file-changeset-function-ids.js.map +1 -0
  241. package/lib/common/github-repo-protocol.d.ts +15 -0
  242. package/lib/common/github-repo-protocol.d.ts.map +1 -0
  243. package/lib/common/github-repo-protocol.js +21 -0
  244. package/lib/common/github-repo-protocol.js.map +1 -0
  245. package/lib/common/orchestrator-chat-agent.d.ts +36 -0
  246. package/lib/common/orchestrator-chat-agent.d.ts.map +1 -0
  247. package/lib/common/orchestrator-chat-agent.js +167 -0
  248. package/lib/common/orchestrator-chat-agent.js.map +1 -0
  249. package/lib/common/orchestrator-prompt-template.d.ts +3 -0
  250. package/lib/common/orchestrator-prompt-template.d.ts.map +1 -0
  251. package/lib/common/orchestrator-prompt-template.js +55 -0
  252. package/lib/common/orchestrator-prompt-template.js.map +1 -0
  253. package/lib/common/project-info-prompt-template.d.ts +6 -0
  254. package/lib/common/project-info-prompt-template.d.ts.map +1 -0
  255. package/lib/common/project-info-prompt-template.js +145 -0
  256. package/lib/common/project-info-prompt-template.js.map +1 -0
  257. package/lib/common/summarize-session-commands.d.ts +4 -0
  258. package/lib/common/summarize-session-commands.d.ts.map +1 -0
  259. package/lib/common/summarize-session-commands.js +28 -0
  260. package/lib/common/summarize-session-commands.js.map +1 -0
  261. package/lib/common/task-context-prompt-template.d.ts +8 -0
  262. package/lib/common/task-context-prompt-template.d.ts.map +1 -0
  263. package/lib/common/task-context-prompt-template.js +217 -0
  264. package/lib/common/task-context-prompt-template.js.map +1 -0
  265. package/lib/common/universal-chat-agent.d.ts +17 -0
  266. package/lib/common/universal-chat-agent.d.ts.map +1 -0
  267. package/lib/common/universal-chat-agent.js +47 -0
  268. package/lib/common/universal-chat-agent.js.map +1 -0
  269. package/lib/common/universal-prompt-template.d.ts +4 -0
  270. package/lib/common/universal-prompt-template.d.ts.map +1 -0
  271. package/lib/common/universal-prompt-template.js +32 -0
  272. package/lib/common/universal-prompt-template.js.map +1 -0
  273. package/lib/common/workspace-functions.d.ts +12 -0
  274. package/lib/common/workspace-functions.d.ts.map +1 -0
  275. package/lib/common/workspace-functions.js +30 -0
  276. package/lib/common/workspace-functions.js.map +1 -0
  277. package/lib/common/workspace-preferences.d.ts +10 -0
  278. package/lib/common/workspace-preferences.d.ts.map +1 -0
  279. package/lib/common/workspace-preferences.js +89 -0
  280. package/lib/common/workspace-preferences.js.map +1 -0
  281. package/lib/common/workspace-search-provider-util.d.ts +17 -0
  282. package/lib/common/workspace-search-provider-util.d.ts.map +1 -0
  283. package/lib/common/workspace-search-provider-util.js +51 -0
  284. package/lib/common/workspace-search-provider-util.js.map +1 -0
  285. package/lib/node/app-tester-agent/browser-automation-impl.d.ts +18 -0
  286. package/lib/node/app-tester-agent/browser-automation-impl.d.ts.map +1 -0
  287. package/lib/node/app-tester-agent/browser-automation-impl.js +96 -0
  288. package/lib/node/app-tester-agent/browser-automation-impl.js.map +1 -0
  289. package/lib/node/backend-module.d.ts +4 -0
  290. package/lib/node/backend-module.d.ts.map +1 -0
  291. package/lib/node/backend-module.js +45 -0
  292. package/lib/node/backend-module.js.map +1 -0
  293. package/lib/node/github-repo-service-impl.d.ts +7 -0
  294. package/lib/node/github-repo-service-impl.d.ts.map +1 -0
  295. package/lib/node/github-repo-service-impl.js +86 -0
  296. package/lib/node/github-repo-service-impl.js.map +1 -0
  297. package/lib/package.spec.d.ts +1 -0
  298. package/lib/package.spec.d.ts.map +1 -0
  299. package/lib/package.spec.js +26 -0
  300. package/lib/package.spec.js.map +1 -0
  301. package/package.json +21 -21
@@ -0,0 +1,508 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ var AIPromptFragmentsConfigurationWidget_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.AIPromptFragmentsConfigurationWidget = void 0;
20
+ const tslib_1 = require("tslib");
21
+ const core_1 = require("@theia/core");
22
+ const browser_1 = require("@theia/core/lib/browser");
23
+ const inversify_1 = require("@theia/core/shared/inversify");
24
+ const prompt_service_1 = require("@theia/ai-core/lib/common/prompt-service");
25
+ const React = require("@theia/core/shared/react");
26
+ const agent_service_1 = require("@theia/ai-core/lib/common/agent-service");
27
+ const frontend_prompt_customization_service_1 = require("@theia/ai-core/lib/browser/frontend-prompt-customization-service");
28
+ /**
29
+ * Widget for configuring AI prompt fragments and prompt variant sets.
30
+ * Allows users to view, create, edit, and manage various types of prompt
31
+ * fragments including their customizations and variants.
32
+ */
33
+ let AIPromptFragmentsConfigurationWidget = AIPromptFragmentsConfigurationWidget_1 = class AIPromptFragmentsConfigurationWidget extends browser_1.ReactWidget {
34
+ constructor() {
35
+ super(...arguments);
36
+ /**
37
+ * Stores all available prompt fragments by ID
38
+ */
39
+ this.promptFragmentMap = new Map();
40
+ /**
41
+ * Stores prompt variant sets and their variant IDs
42
+ */
43
+ this.promptVariantsMap = new Map();
44
+ /**
45
+ * Currently active prompt fragments
46
+ */
47
+ this.activePromptFragments = [];
48
+ /**
49
+ * Tracks expanded state of prompt fragment sections in the UI
50
+ */
51
+ this.expandedPromptFragmentIds = new Set();
52
+ /**
53
+ * Tracks expanded state of prompt content display
54
+ */
55
+ this.expandedPromptFragmentTemplates = new Set();
56
+ /**
57
+ * Tracks expanded state of prompt variant set sections
58
+ */
59
+ this.expandedPromptVariantSetIds = new Set();
60
+ /**
61
+ * All available agents that may use prompts
62
+ */
63
+ this.availableAgents = [];
64
+ /**
65
+ * Maps prompt variant set IDs to their resolved variant IDs
66
+ */
67
+ this.effectiveVariantIds = new Map();
68
+ /**
69
+ * Maps prompt variant set IDs to their default variant IDs
70
+ */
71
+ this.defaultVariantIds = new Map();
72
+ /**
73
+ * Maps prompt variant set IDs to their user selected variant IDs
74
+ */
75
+ this.userSelectedVariantIds = new Map();
76
+ this.togglePromptVariantSetExpansion = (promptVariantSetId) => {
77
+ if (this.expandedPromptVariantSetIds.has(promptVariantSetId)) {
78
+ this.expandedPromptVariantSetIds.delete(promptVariantSetId);
79
+ }
80
+ else {
81
+ this.expandedPromptVariantSetIds.add(promptVariantSetId);
82
+ }
83
+ this.update();
84
+ };
85
+ this.togglePromptFragmentExpansion = (promptFragmentId) => {
86
+ if (this.expandedPromptFragmentIds.has(promptFragmentId)) {
87
+ this.expandedPromptFragmentIds.delete(promptFragmentId);
88
+ }
89
+ else {
90
+ this.expandedPromptFragmentIds.add(promptFragmentId);
91
+ }
92
+ this.update();
93
+ };
94
+ this.toggleTemplateExpansion = (fragmentKey, event) => {
95
+ event.stopPropagation();
96
+ if (this.expandedPromptFragmentTemplates.has(fragmentKey)) {
97
+ this.expandedPromptFragmentTemplates.delete(fragmentKey);
98
+ }
99
+ else {
100
+ this.expandedPromptFragmentTemplates.add(fragmentKey);
101
+ }
102
+ this.update();
103
+ };
104
+ /**
105
+ * Call the edit action for the provided customized prompt fragment
106
+ * @param promptFragment Fragment to edit
107
+ * @param event Mouse event
108
+ */
109
+ this.editPromptCustomization = (promptFragment, event) => {
110
+ event.stopPropagation();
111
+ this.promptService.editCustomization(promptFragment.id, promptFragment.customizationId);
112
+ };
113
+ /**
114
+ * Resets a prompt fragment to use a specific customization (with confirmation dialog)
115
+ * @param customization customization to reset to
116
+ * @param event Mouse event
117
+ */
118
+ this.resetToPromptFragment = async (customization, event) => {
119
+ event.stopPropagation();
120
+ if ((0, prompt_service_1.isCustomizedPromptFragment)(customization)) {
121
+ // Get the customization type to show in the confirmation dialog
122
+ const type = await this.promptService.getCustomizationType(customization.id, customization.customizationId);
123
+ const dialog = new browser_1.ConfirmDialog({
124
+ title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToCustomizationDialogTitle', 'Reset to Customization'),
125
+ msg: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToCustomizationDialogMsg', 'Are you sure you want to reset the prompt fragment "{0}" to use the {1} customization? This will remove all higher-priority customizations.', customization.id, type),
126
+ ok: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetButton', 'Reset'),
127
+ cancel: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/cancelButton', 'Cancel')
128
+ });
129
+ const shouldReset = await dialog.open();
130
+ if (shouldReset) {
131
+ await this.promptService.resetToCustomization(customization.id, customization.customizationId);
132
+ }
133
+ }
134
+ else {
135
+ const dialog = new browser_1.ConfirmDialog({
136
+ title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToBuiltInDialogTitle', 'Reset to Built-in'),
137
+ msg: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToBuiltInDialogMsg', 'Are you sure you want to reset the prompt fragment "{0}" to its built-in version? This will remove all customizations.', customization.id),
138
+ ok: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetButton', 'Reset'),
139
+ cancel: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/cancelButton', 'Cancel')
140
+ });
141
+ const shouldReset = await dialog.open();
142
+ if (shouldReset) {
143
+ await this.promptService.resetToBuiltIn(customization.id);
144
+ }
145
+ }
146
+ };
147
+ /**
148
+ * Creates a new customization for a built-in prompt fragment
149
+ * @param promptFragment Built-in prompt fragment to customize
150
+ * @param event Mouse event
151
+ */
152
+ this.createPromptFragmentCustomization = (promptFragment, event) => {
153
+ event.stopPropagation();
154
+ this.promptService.createBuiltInCustomization(promptFragment.id);
155
+ };
156
+ /**
157
+ * Deletes a customization with confirmation dialog
158
+ * @param customization Customized prompt fragment to delete
159
+ * @param event Mouse event
160
+ */
161
+ this.deletePromptFragmentCustomization = async (customization, event) => {
162
+ event.stopPropagation();
163
+ // First get the customization type and description to show in the confirmation dialog
164
+ const type = await this.promptService.getCustomizationType(customization.id, customization.customizationId) || '';
165
+ const description = await this.promptService.getCustomizationDescription(customization.id, customization.customizationId) || '';
166
+ const dialog = new browser_1.ConfirmDialog({
167
+ title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/removeCustomizationDialogTitle', 'Remove Customization'),
168
+ msg: description ?
169
+ core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/removeCustomizationWithDescDialogMsg', 'Are you sure you want to remove the {0} customization for prompt fragment "{1}" ({2})?', type, customization.id, description) :
170
+ core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/removeCustomizationDialogMsg', 'Are you sure you want to remove the {0} customization for prompt fragment "{1}"?', type, customization.id),
171
+ ok: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/removeButton', 'Remove'),
172
+ cancel: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/cancelButton', 'Cancel')
173
+ });
174
+ const shouldDelete = await dialog.open();
175
+ if (shouldDelete) {
176
+ await this.promptService.removeCustomization(customization.id, customization.customizationId);
177
+ }
178
+ };
179
+ /**
180
+ * Removes all prompt customizations (resets to built-in versions) with confirmation
181
+ */
182
+ this.removeAllCustomizations = async () => {
183
+ const dialog = new browser_1.ConfirmDialog({
184
+ title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllCustomizationsDialogTitle', 'Reset All Customizations'),
185
+ msg: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllCustomizationsDialogMsg', 'Are you sure you want to reset all prompt fragments to their built-in versions? This will remove all customizations.'),
186
+ ok: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllButton', 'Reset All'),
187
+ cancel: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/cancelButton', 'Cancel')
188
+ });
189
+ const shouldReset = await dialog.open();
190
+ if (shouldReset) {
191
+ this.promptService.resetAllToBuiltIn();
192
+ }
193
+ };
194
+ }
195
+ init() {
196
+ this.id = AIPromptFragmentsConfigurationWidget_1.ID;
197
+ this.title.label = AIPromptFragmentsConfigurationWidget_1.LABEL;
198
+ this.title.caption = AIPromptFragmentsConfigurationWidget_1.LABEL;
199
+ this.title.closable = true;
200
+ this.addClass('ai-configuration-tab-content');
201
+ this.loadPromptFragments();
202
+ this.loadAgents();
203
+ this.toDispose.pushAll([
204
+ this.promptService.onPromptsChange(() => {
205
+ this.loadPromptFragments();
206
+ }),
207
+ this.agentService.onDidChangeAgents(() => {
208
+ this.loadAgents();
209
+ })
210
+ ]);
211
+ }
212
+ /**
213
+ * Loads all prompt fragments and prompt variant sets from the prompt service.
214
+ * Preserves UI expansion states and updates variant information.
215
+ */
216
+ loadPromptFragments() {
217
+ var _a;
218
+ this.promptFragmentMap = this.promptService.getAllPromptFragments();
219
+ this.promptVariantsMap = this.promptService.getPromptVariantSets();
220
+ this.activePromptFragments = this.promptService.getActivePromptFragments();
221
+ // Preserve expansion state when reloading
222
+ const existingExpandedFragmentIds = new Set(this.expandedPromptFragmentIds);
223
+ const existingExpandedPromptVariantIds = new Set(this.expandedPromptVariantSetIds);
224
+ const existingExpandedTemplates = new Set(this.expandedPromptFragmentTemplates);
225
+ if (existingExpandedFragmentIds.size > 0) {
226
+ // Keep existing expansion state but remove entries for fragments that no longer exist
227
+ this.expandedPromptFragmentIds = new Set(Array.from(existingExpandedFragmentIds).filter(id => this.promptFragmentMap.has(id)));
228
+ }
229
+ if (existingExpandedPromptVariantIds.size === 0) {
230
+ // Start with variant sets collapsed by default
231
+ this.expandedPromptVariantSetIds = new Set();
232
+ }
233
+ else {
234
+ // Keep existing expansion state but remove entries for prompt variant sets that no longer exist
235
+ this.expandedPromptVariantSetIds = new Set(Array.from(existingExpandedPromptVariantIds).filter(id => this.promptVariantsMap.has(id)));
236
+ }
237
+ // For templates, preserve existing expanded states - don't expand by default
238
+ this.expandedPromptFragmentTemplates = new Set(Array.from(existingExpandedTemplates).filter(id => {
239
+ const [fragmentId] = id.split('_');
240
+ return this.promptFragmentMap.has(fragmentId);
241
+ }));
242
+ // Update variant information (selected/default/effective) for prompt variant sets
243
+ for (const promptVariantSetId of this.promptVariantsMap.keys()) {
244
+ const effectiveId = this.promptService.getEffectiveVariantId(promptVariantSetId);
245
+ const defaultId = this.promptService.getDefaultVariantId(promptVariantSetId);
246
+ const selectedId = (_a = this.promptService.getSelectedVariantId(promptVariantSetId)) !== null && _a !== void 0 ? _a : defaultId;
247
+ this.userSelectedVariantIds.set(promptVariantSetId, selectedId);
248
+ this.effectiveVariantIds.set(promptVariantSetId, effectiveId);
249
+ this.defaultVariantIds.set(promptVariantSetId, defaultId);
250
+ }
251
+ this.update();
252
+ }
253
+ /**
254
+ * Loads all available agents from the agent service
255
+ */
256
+ loadAgents() {
257
+ this.availableAgents = this.agentService.getAllAgents();
258
+ this.update();
259
+ }
260
+ /**
261
+ * Finds agents that use a specific prompt variant set
262
+ * @param promptVariantSetId ID of the prompt variant set to match
263
+ * @returns Array of agents that use the prompt variant set
264
+ */
265
+ getAgentsUsingPromptVariantId(promptVariantSetId) {
266
+ return this.availableAgents.filter((agent) => agent.prompts.find(promptVariantSet => promptVariantSet.id === promptVariantSetId));
267
+ }
268
+ /**
269
+ * Determines if a prompt fragment is currently the active one for its ID
270
+ * @param promptFragment The prompt fragment to check
271
+ * @returns True if this prompt fragment is the active customization
272
+ */
273
+ isActiveCustomization(promptFragment) {
274
+ const activePromptFragment = this.activePromptFragments.find(activePrompt => activePrompt.id === promptFragment.id);
275
+ if (!activePromptFragment) {
276
+ return false;
277
+ }
278
+ if ((0, prompt_service_1.isCustomizedPromptFragment)(activePromptFragment) && (0, prompt_service_1.isCustomizedPromptFragment)(promptFragment)) {
279
+ return (activePromptFragment.id === promptFragment.id &&
280
+ activePromptFragment.template === promptFragment.template &&
281
+ activePromptFragment.customizationId === promptFragment.customizationId &&
282
+ activePromptFragment.priority === promptFragment.priority);
283
+ }
284
+ if ((0, prompt_service_1.isBasePromptFragment)(activePromptFragment) && (0, prompt_service_1.isBasePromptFragment)(promptFragment)) {
285
+ return (activePromptFragment.id === promptFragment.id &&
286
+ activePromptFragment.template === promptFragment.template);
287
+ }
288
+ return false;
289
+ }
290
+ /**
291
+ * Main render method for the widget
292
+ * @returns Complete UI for the configuration widget
293
+ */
294
+ render() {
295
+ const nonSystemPromptFragments = this.getNonPromptVariantSetFragments();
296
+ return (React.createElement("div", { className: 'ai-prompt-fragments-configuration' },
297
+ React.createElement("div", { className: "prompt-fragments-header" },
298
+ React.createElement("h2", null, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/headerTitle', 'Prompt Fragments')),
299
+ React.createElement("div", { className: "global-actions" },
300
+ React.createElement("button", { className: "global-action-button", onClick: this.removeAllCustomizations, title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllCustomizationsTitle', 'Reset all customizations') },
301
+ core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetAllPromptFragments', 'Reset all prompt fragments'),
302
+ " ",
303
+ React.createElement("span", { className: (0, browser_1.codicon)('clear-all') })))),
304
+ React.createElement("div", { className: "prompt-variants-container" },
305
+ React.createElement("h3", { className: "section-header" }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/promptVariantsHeader', 'Prompt Variant Sets')),
306
+ Array.from(this.promptVariantsMap.entries()).map(([promptVariantSetId, variantIds]) => this.renderPromptVariantSet(promptVariantSetId, variantIds))),
307
+ nonSystemPromptFragments.size > 0 && React.createElement("div", { className: "prompt-fragments-container" },
308
+ React.createElement("h3", { className: "section-header" }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/otherPromptFragmentsHeader', 'Other Prompt Fragments')),
309
+ Array.from(nonSystemPromptFragments.entries()).map(([promptFragmentId, fragments]) => this.renderPromptFragment(promptFragmentId, fragments))),
310
+ this.promptFragmentMap.size === 0 && (React.createElement("div", { className: "no-fragments" },
311
+ React.createElement("p", null, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/noFragmentsAvailable', 'No prompt fragments available.'))))));
312
+ }
313
+ /**
314
+ * Renders a prompt variant set with its variants
315
+ * @param promptVariantSetId ID of the prompt variant set
316
+ * @param variantIds Array of variant IDs
317
+ * @returns React node for the prompt variant set group
318
+ */
319
+ renderPromptVariantSet(promptVariantSetId, variantIds) {
320
+ const isSectionExpanded = this.expandedPromptVariantSetIds.has(promptVariantSetId);
321
+ // Get selected, effective, and default variant IDs from our class properties
322
+ const selectedVariantId = this.userSelectedVariantIds.get(promptVariantSetId);
323
+ const effectiveVariantId = this.effectiveVariantIds.get(promptVariantSetId);
324
+ const defaultVariantId = this.defaultVariantIds.get(promptVariantSetId);
325
+ // Get variant fragments grouped by ID
326
+ const variantGroups = new Map();
327
+ // First, collect all actual fragments for each variant ID
328
+ for (const variantId of variantIds) {
329
+ if (this.promptFragmentMap.has(variantId)) {
330
+ variantGroups.set(variantId, this.promptFragmentMap.get(variantId));
331
+ }
332
+ }
333
+ const relatedAgents = this.getAgentsUsingPromptVariantId(promptVariantSetId);
334
+ // Determine warning/error state
335
+ let variantSetMessage = undefined;
336
+ if (effectiveVariantId === undefined) {
337
+ // Error: effectiveId is undefined, so nothing works
338
+ variantSetMessage = (React.createElement("div", { className: "prompt-variant-error" },
339
+ React.createElement("span", { className: "codicon codicon-error" }),
340
+ core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/variantSetError', 'The selected variant does not exist and no default could be found. Please check your configuration.')));
341
+ }
342
+ else {
343
+ const needsWarning = selectedVariantId ? effectiveVariantId !== selectedVariantId : effectiveVariantId !== defaultVariantId;
344
+ if (needsWarning) {
345
+ // Warning: selectedId is set but does not exist, so default is used
346
+ variantSetMessage = (React.createElement("div", { className: "prompt-variant-warning" },
347
+ React.createElement("span", { className: "codicon codicon-warning" }),
348
+ core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/variantSetWarning', 'The selected variant does not exist. The default variant is being used instead.')));
349
+ }
350
+ }
351
+ return (React.createElement("div", { className: "prompt-fragment-section", key: `variant-${promptVariantSetId}` },
352
+ React.createElement("div", { className: `prompt-fragment-header ${isSectionExpanded ? 'expanded' : ''}`, onClick: () => this.togglePromptVariantSetExpansion(promptVariantSetId) },
353
+ React.createElement("div", { className: "prompt-fragment-title" },
354
+ React.createElement("span", { className: "expansion-icon" }, isSectionExpanded ? '▼' : '▶'),
355
+ React.createElement("h2", null, promptVariantSetId)),
356
+ relatedAgents.length > 0 && (React.createElement("div", { className: "agent-chips-container" }, relatedAgents.map(agent => (React.createElement("span", { key: agent.id, className: "agent-chip", title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/usedByAgentTitle', 'Used by agent: {0}', agent.name), onClick: e => e.stopPropagation() },
357
+ React.createElement("span", { className: (0, browser_1.codicon)('copilot') }),
358
+ agent.name)))))),
359
+ isSectionExpanded && (React.createElement("div", { className: "prompt-fragment-body" },
360
+ variantSetMessage,
361
+ React.createElement("div", { className: "prompt-fragment-description" },
362
+ React.createElement("p", null, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/variantsOfSystemPrompt', 'Variants of this prompt variant set:'))),
363
+ Array.from(variantGroups.entries()).map(([variantId, fragments]) => {
364
+ const isVariantExpanded = this.expandedPromptFragmentIds.has(variantId);
365
+ return (React.createElement("div", { key: variantId, className: `prompt-fragment-section ${selectedVariantId === variantId ? 'selected-variant' : ''}` },
366
+ React.createElement("div", { className: `prompt-fragment-header ${isVariantExpanded ? 'expanded' : ''}`, onClick: () => this.togglePromptFragmentExpansion(variantId) },
367
+ React.createElement("div", { className: "prompt-fragment-title" },
368
+ React.createElement("span", { className: "expansion-icon" }, isVariantExpanded ? '▼' : '▶'),
369
+ React.createElement("h4", null, variantId),
370
+ defaultVariantId === variantId && (React.createElement("span", { className: "badge default-variant", title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/defaultVariantTitle', 'Default variant') }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/defaultVariantLabel', 'Default'))),
371
+ selectedVariantId === variantId && (React.createElement("span", { className: "selected-indicator", title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/selectedVariantTitle', 'Selected variant') }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/selectedVariantLabel', 'Selected'))))),
372
+ isVariantExpanded && (React.createElement("div", { className: 'prompt-fragment-body' }, fragments.map(fragment => this.renderPromptFragmentCustomization(fragment))))));
373
+ })))));
374
+ }
375
+ /**
376
+ * Gets fragments that aren't part of any prompt variant set
377
+ * @returns Map of fragment IDs to their customizations
378
+ */
379
+ getNonPromptVariantSetFragments() {
380
+ const nonSystemPromptFragments = new Map();
381
+ const allVariantIds = new Set();
382
+ // Collect all variant IDs from prompt variant sets
383
+ this.promptVariantsMap.forEach((variants, _) => {
384
+ variants.forEach(variantId => allVariantIds.add(variantId));
385
+ });
386
+ // Add prompt variant set main IDs
387
+ this.promptVariantsMap.forEach((_, promptVariantSetId) => {
388
+ allVariantIds.add(promptVariantSetId);
389
+ });
390
+ // Filter the fragment map to only include non-prompt variant set fragments
391
+ this.promptFragmentMap.forEach((fragments, promptFragmentId) => {
392
+ if (!allVariantIds.has(promptFragmentId)) {
393
+ nonSystemPromptFragments.set(promptFragmentId, fragments);
394
+ }
395
+ });
396
+ return nonSystemPromptFragments;
397
+ }
398
+ /**
399
+ * Renders a prompt fragment with all of its customizations
400
+ * @param promptFragmentId ID of the prompt fragment
401
+ * @param customizations Array of the customizations
402
+ * @returns React node for the prompt fragment
403
+ */
404
+ renderPromptFragment(promptFragmentId, customizations) {
405
+ const isSectionExpanded = this.expandedPromptFragmentIds.has(promptFragmentId);
406
+ return (React.createElement("div", { className: 'prompt-fragment-group', key: promptFragmentId },
407
+ React.createElement("div", { className: `prompt-fragment-header ${isSectionExpanded ? 'expanded' : ''}`, onClick: () => this.togglePromptFragmentExpansion(promptFragmentId) },
408
+ React.createElement("div", { className: "prompt-fragment-title" },
409
+ React.createElement("span", { className: "expansion-icon" }, isSectionExpanded ? '▼' : '▶'),
410
+ promptFragmentId)),
411
+ isSectionExpanded && (React.createElement("div", { className: "prompt-fragment-body" }, customizations.map(fragment => this.renderPromptFragmentCustomization(fragment))))));
412
+ }
413
+ /**
414
+ * Renders a single prompt fragment customization with its controls and content
415
+ * @param promptFragment The prompt fragment to render
416
+ * @returns React node for the prompt fragment
417
+ */
418
+ renderPromptFragmentCustomization(promptFragment) {
419
+ var _a;
420
+ const isCustomized = (0, prompt_service_1.isCustomizedPromptFragment)(promptFragment);
421
+ const isActive = this.isActiveCustomization(promptFragment);
422
+ // Create a unique key for this fragment to track expansion state
423
+ const fragmentKey = `${promptFragment.id}_${isCustomized ? promptFragment.customizationId : 'built-in'}`;
424
+ const isTemplateExpanded = this.expandedPromptFragmentTemplates.has(fragmentKey);
425
+ const hasCustomizedBuiltIn = (_a = this.promptFragmentMap.get(promptFragment.id)) === null || _a === void 0 ? void 0 : _a.some(fragment => (0, prompt_service_1.isCustomizedPromptFragment)(fragment) && fragment.priority === frontend_prompt_customization_service_1.CustomizationSource.CUSTOMIZED);
426
+ return (React.createElement("div", { className: `prompt-customization ${isActive ? 'active-customization' : ''}`, key: fragmentKey },
427
+ React.createElement("div", { className: "prompt-customization-header" },
428
+ React.createElement("div", { className: "prompt-customization-title" },
429
+ React.createElement(React.Suspense, { fallback: React.createElement("div", null, "Loading...") },
430
+ React.createElement(CustomizationTypeBadge, { promptFragment: promptFragment, promptService: this.promptService })),
431
+ isActive && (React.createElement("span", { className: "active-indicator", title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/activeCustomizationTitle', 'Active customization') }, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/activeCustomizationLabel', 'Active')))),
432
+ React.createElement("div", { className: "prompt-customization-actions" },
433
+ !isCustomized && !hasCustomizedBuiltIn && (React.createElement("button", { className: "template-action-button config-button", onClick: e => this.createPromptFragmentCustomization(promptFragment, e), title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/createCustomizationTitle', 'Create Customization') },
434
+ React.createElement("span", { className: (0, browser_1.codicon)('add') }))),
435
+ isCustomized && (React.createElement("button", { className: "source-uri-button", onClick: e => this.editPromptCustomization(promptFragment, e), title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/editTemplateTitle', 'Edit template') },
436
+ React.createElement("span", { className: (0, browser_1.codicon)('edit') }))),
437
+ !isActive && (React.createElement("button", { className: "template-action-button reset-button", onClick: e => this.resetToPromptFragment(promptFragment, e), title: !isCustomized ?
438
+ core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToBuiltInTitle', 'Reset to this built-in') :
439
+ core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/resetToCustomizationTitle', 'Reset to this customization') },
440
+ React.createElement("span", { className: (0, browser_1.codicon)('discard') }))),
441
+ isCustomized && (React.createElement("button", { className: "template-action-button delete-button", onClick: e => this.deletePromptFragmentCustomization(promptFragment, e), title: core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/deleteCustomizationTitle', 'Delete Customization') },
442
+ React.createElement("span", { className: (0, browser_1.codicon)('trash') }))))),
443
+ isCustomized && (React.createElement(React.Suspense, { fallback: React.createElement("div", null, "Loading...") },
444
+ React.createElement(DescriptionBadge, { promptFragment: promptFragment, promptService: this.promptService }))),
445
+ React.createElement("div", { className: "template-content-container" },
446
+ React.createElement("div", { className: "template-toggle-button", onClick: e => this.toggleTemplateExpansion(fragmentKey, e) },
447
+ React.createElement("span", { className: "template-expansion-icon" }, isTemplateExpanded ? '▼' : '▶'),
448
+ React.createElement("span", null, core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/promptTemplateText', 'Prompt Template Text'))),
449
+ isTemplateExpanded && (React.createElement("div", { className: "template-content" },
450
+ React.createElement("pre", null, promptFragment.template))))));
451
+ }
452
+ };
453
+ exports.AIPromptFragmentsConfigurationWidget = AIPromptFragmentsConfigurationWidget;
454
+ AIPromptFragmentsConfigurationWidget.ID = 'ai-prompt-fragments-configuration';
455
+ AIPromptFragmentsConfigurationWidget.LABEL = core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/label', 'Prompt Fragments');
456
+ tslib_1.__decorate([
457
+ (0, inversify_1.inject)(prompt_service_1.PromptService),
458
+ tslib_1.__metadata("design:type", Object)
459
+ ], AIPromptFragmentsConfigurationWidget.prototype, "promptService", void 0);
460
+ tslib_1.__decorate([
461
+ (0, inversify_1.inject)(agent_service_1.AgentService),
462
+ tslib_1.__metadata("design:type", Object)
463
+ ], AIPromptFragmentsConfigurationWidget.prototype, "agentService", void 0);
464
+ tslib_1.__decorate([
465
+ (0, inversify_1.postConstruct)(),
466
+ tslib_1.__metadata("design:type", Function),
467
+ tslib_1.__metadata("design:paramtypes", []),
468
+ tslib_1.__metadata("design:returntype", void 0)
469
+ ], AIPromptFragmentsConfigurationWidget.prototype, "init", null);
470
+ exports.AIPromptFragmentsConfigurationWidget = AIPromptFragmentsConfigurationWidget = AIPromptFragmentsConfigurationWidget_1 = tslib_1.__decorate([
471
+ (0, inversify_1.injectable)()
472
+ ], AIPromptFragmentsConfigurationWidget);
473
+ /**
474
+ * Displays a badge indicating the type of a prompt fragment customization (built-in, user, workspace)
475
+ */
476
+ const CustomizationTypeBadge = ({ promptFragment, promptService }) => {
477
+ const [typeLabel, setTypeLabel] = React.useState('unknown');
478
+ React.useEffect(() => {
479
+ const fetchCustomizationType = async () => {
480
+ if ((0, prompt_service_1.isCustomizedPromptFragment)(promptFragment)) {
481
+ const customizationType = await promptService.getCustomizationType(promptFragment.id, promptFragment.customizationId);
482
+ setTypeLabel(`${customizationType ?
483
+ customizationType + ' ' + core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/customization', 'customization')
484
+ : core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/customizationLabel', 'Customization')}`);
485
+ }
486
+ else {
487
+ setTypeLabel(core_1.nls.localize('theia/ai/core/promptFragmentsConfiguration/builtInLabel', 'Built-in'));
488
+ }
489
+ };
490
+ fetchCustomizationType();
491
+ }, [promptFragment, promptService]);
492
+ return React.createElement("span", null, typeLabel);
493
+ };
494
+ /**
495
+ * Displays the description of a customized prompt fragment if available
496
+ */
497
+ const DescriptionBadge = ({ promptFragment, promptService }) => {
498
+ const [description, setDescription] = React.useState('');
499
+ React.useEffect(() => {
500
+ const fetchDescription = async () => {
501
+ const customizationDescription = await promptService.getCustomizationDescription(promptFragment.id, promptFragment.customizationId);
502
+ setDescription(customizationDescription || '');
503
+ };
504
+ fetchDescription();
505
+ }, [promptFragment.id, promptFragment.customizationId, promptService]);
506
+ return React.createElement("span", { className: "prompt-customization-description" }, description);
507
+ };
508
+ //# sourceMappingURL=prompt-fragments-configuration-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-fragments-configuration-widget.js","sourceRoot":"","sources":["../../../src/browser/ai-configuration/prompt-fragments-configuration-widget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { PromptService, PromptVariantSet } from '@theia/ai-core/lib/common';
3
+ import * as React from '@theia/core/shared/react';
4
+ export interface PromptVariantRendererProps {
5
+ agentId: string;
6
+ promptVariantSet: PromptVariantSet;
7
+ promptService: PromptService;
8
+ }
9
+ export declare const PromptVariantRenderer: React.FC<PromptVariantRendererProps>;
10
+ //# sourceMappingURL=template-settings-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-settings-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/ai-configuration/template-settings-renderer.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAGlD,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;CAChC;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAsFtE,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromptVariantRenderer = void 0;
4
+ const React = require("@theia/core/shared/react");
5
+ const nls_1 = require("@theia/core/lib/common/nls");
6
+ const PromptVariantRenderer = ({ agentId, promptVariantSet, promptService, }) => {
7
+ const variantIds = promptService.getVariantIds(promptVariantSet.id);
8
+ const defaultVariantId = promptService.getDefaultVariantId(promptVariantSet.id);
9
+ const [selectedVariant, setSelectedVariant] = React.useState(defaultVariantId);
10
+ React.useEffect(() => {
11
+ const currentVariant = promptService.getSelectedVariantId(promptVariantSet.id);
12
+ setSelectedVariant(currentVariant !== null && currentVariant !== void 0 ? currentVariant : defaultVariantId);
13
+ const disposable = promptService.onSelectedVariantChange(notification => {
14
+ var _a;
15
+ if (notification.promptVariantSetId === promptVariantSet.id) {
16
+ setSelectedVariant((_a = notification.variantId) !== null && _a !== void 0 ? _a : defaultVariantId);
17
+ }
18
+ });
19
+ return () => {
20
+ disposable.dispose();
21
+ };
22
+ }, [promptVariantSet.id, promptService, defaultVariantId]);
23
+ const isInvalidVariant = !variantIds.includes(selectedVariant);
24
+ const handleVariantChange = async (event) => {
25
+ const newVariant = event.target.value;
26
+ setSelectedVariant(newVariant);
27
+ promptService.updateSelectedVariantId(agentId, promptVariantSet.id, newVariant);
28
+ };
29
+ const openTemplate = () => {
30
+ promptService.editBuiltInCustomization(selectedVariant);
31
+ };
32
+ const resetTemplate = () => {
33
+ promptService.resetToBuiltIn(selectedVariant);
34
+ };
35
+ return (React.createElement("div", { className: "template-renderer" },
36
+ React.createElement("div", { className: "settings-section-title template-header" },
37
+ React.createElement("strong", null, promptVariantSet.id)),
38
+ React.createElement("div", { className: "template-controls" },
39
+ (variantIds.length > 1 || isInvalidVariant) && (React.createElement(React.Fragment, null,
40
+ React.createElement("label", { htmlFor: `variant-selector-${promptVariantSet.id}`, className: "template-select-label" }, nls_1.nls.localize('theia/ai/core/templateSettings/selectVariant', 'Select Variant:')),
41
+ React.createElement("select", { id: `variant-selector-${promptVariantSet.id}`, className: `theia-select template-variant-selector ${isInvalidVariant ? 'error' : ''}`, value: isInvalidVariant ? 'invalid' : selectedVariant, onChange: handleVariantChange },
42
+ isInvalidVariant && (React.createElement("option", { value: "invalid", disabled: true }, nls_1.nls.localize('theia/ai/core/templateSettings/unavailableVariant', 'Selected variant not available, default will be used'))),
43
+ variantIds.map(variantId => (React.createElement("option", { key: variantId, value: variantId }, variantId === defaultVariantId ? variantId + ' ' + nls_1.nls.localizeByDefault('(default)') : variantId)))))),
44
+ React.createElement("button", { className: "theia-button main", onClick: openTemplate, disabled: isInvalidVariant }, nls_1.nls.localizeByDefault('Edit')),
45
+ React.createElement("button", { className: "theia-button secondary", onClick: resetTemplate, disabled: isInvalidVariant }, nls_1.nls.localizeByDefault('Reset')))));
46
+ };
47
+ exports.PromptVariantRenderer = PromptVariantRenderer;
48
+ //# sourceMappingURL=template-settings-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-settings-renderer.js","sourceRoot":"","sources":["../../../src/browser/ai-configuration/template-settings-renderer.tsx"],"names":[],"mappings":"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"}