@theia/ai-ide 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 (373) hide show
  1. package/lib/browser/address-pr-review-command-contribution.d.ts +9 -0
  2. package/lib/browser/address-pr-review-command-contribution.d.ts.map +1 -0
  3. package/lib/browser/address-pr-review-command-contribution.js +176 -0
  4. package/lib/browser/address-pr-review-command-contribution.js.map +1 -0
  5. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts +47 -0
  6. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +1 -0
  7. package/lib/browser/ai-configuration/agent-configuration-widget.js +385 -0
  8. package/lib/browser/ai-configuration/agent-configuration-widget.js.map +1 -0
  9. package/lib/browser/ai-configuration/ai-configuration-service.d.ts +18 -0
  10. package/lib/browser/ai-configuration/ai-configuration-service.d.ts.map +1 -0
  11. package/lib/browser/ai-configuration/ai-configuration-service.js +53 -0
  12. package/lib/browser/ai-configuration/ai-configuration-service.js.map +1 -0
  13. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts +14 -0
  14. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts.map +1 -0
  15. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js +67 -0
  16. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js.map +1 -0
  17. package/lib/browser/ai-configuration/ai-configuration-widget.d.ts +29 -0
  18. package/lib/browser/ai-configuration/ai-configuration-widget.d.ts.map +1 -0
  19. package/lib/browser/ai-configuration/ai-configuration-widget.js +118 -0
  20. package/lib/browser/ai-configuration/ai-configuration-widget.js.map +1 -0
  21. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts +32 -0
  22. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts.map +1 -0
  23. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js +55 -0
  24. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js.map +1 -0
  25. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts +14 -0
  26. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts.map +1 -0
  27. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.js +35 -0
  28. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.js.map +1 -0
  29. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts +23 -0
  30. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts.map +1 -0
  31. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js +60 -0
  32. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js.map +1 -0
  33. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts +56 -0
  34. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts.map +1 -0
  35. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js +96 -0
  36. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js.map +1 -0
  37. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts +45 -0
  38. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts.map +1 -0
  39. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js +66 -0
  40. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js.map +1 -0
  41. package/lib/browser/ai-configuration/components/configuration-section.d.ts +13 -0
  42. package/lib/browser/ai-configuration/components/configuration-section.d.ts.map +1 -0
  43. package/lib/browser/ai-configuration/components/configuration-section.js +28 -0
  44. package/lib/browser/ai-configuration/components/configuration-section.js.map +1 -0
  45. package/lib/browser/ai-configuration/components/empty-state.d.ts +11 -0
  46. package/lib/browser/ai-configuration/components/empty-state.d.ts.map +1 -0
  47. package/lib/browser/ai-configuration/components/empty-state.js +26 -0
  48. package/lib/browser/ai-configuration/components/empty-state.js.map +1 -0
  49. package/lib/browser/ai-configuration/components/expandable-section.d.ts +14 -0
  50. package/lib/browser/ai-configuration/components/expandable-section.d.ts.map +1 -0
  51. package/lib/browser/ai-configuration/components/expandable-section.js +31 -0
  52. package/lib/browser/ai-configuration/components/expandable-section.js.map +1 -0
  53. package/lib/browser/ai-configuration/language-model-renderer.d.ts +13 -0
  54. package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -0
  55. package/lib/browser/ai-configuration/language-model-renderer.js +105 -0
  56. package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -0
  57. package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts +42 -0
  58. package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts.map +1 -0
  59. package/lib/browser/ai-configuration/mcp-configuration-widget.js +308 -0
  60. package/lib/browser/ai-configuration/mcp-configuration-widget.js.map +1 -0
  61. package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts +27 -0
  62. package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts.map +1 -0
  63. package/lib/browser/ai-configuration/model-aliases-configuration-widget.js +197 -0
  64. package/lib/browser/ai-configuration/model-aliases-configuration-widget.js.map +1 -0
  65. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts +141 -0
  66. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts.map +1 -0
  67. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js +508 -0
  68. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js.map +1 -0
  69. package/lib/browser/ai-configuration/template-settings-renderer.d.ts +10 -0
  70. package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +1 -0
  71. package/lib/browser/ai-configuration/template-settings-renderer.js +48 -0
  72. package/lib/browser/ai-configuration/template-settings-renderer.js.map +1 -0
  73. package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts +21 -0
  74. package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts.map +1 -0
  75. package/lib/browser/ai-configuration/token-usage-configuration-widget.js +170 -0
  76. package/lib/browser/ai-configuration/token-usage-configuration-widget.js.map +1 -0
  77. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +35 -0
  78. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +1 -0
  79. package/lib/browser/ai-configuration/tools-configuration-widget.js +158 -0
  80. package/lib/browser/ai-configuration/tools-configuration-widget.js.map +1 -0
  81. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts +23 -0
  82. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts.map +1 -0
  83. package/lib/browser/ai-configuration/variable-configuration-widget.js +132 -0
  84. package/lib/browser/ai-configuration/variable-configuration-widget.js.map +1 -0
  85. package/lib/browser/ai-ide-activation-service.d.ts +18 -0
  86. package/lib/browser/ai-ide-activation-service.d.ts.map +1 -0
  87. package/lib/browser/ai-ide-activation-service.js +71 -0
  88. package/lib/browser/ai-ide-activation-service.js.map +1 -0
  89. package/lib/browser/ai-terminal-functions.d.ts +13 -0
  90. package/lib/browser/ai-terminal-functions.d.ts.map +1 -0
  91. package/lib/browser/ai-terminal-functions.js +114 -0
  92. package/lib/browser/ai-terminal-functions.js.map +1 -0
  93. package/lib/browser/analyze-gh-ticket-command-contribution.d.ts +9 -0
  94. package/lib/browser/analyze-gh-ticket-command-contribution.d.ts.map +1 -0
  95. package/lib/browser/analyze-gh-ticket-command-contribution.js +172 -0
  96. package/lib/browser/analyze-gh-ticket-command-contribution.js.map +1 -0
  97. package/lib/browser/app-tester-chat-agent.d.ts +35 -0
  98. package/lib/browser/app-tester-chat-agent.d.ts.map +1 -0
  99. package/lib/browser/app-tester-chat-agent.js +142 -0
  100. package/lib/browser/app-tester-chat-agent.js.map +1 -0
  101. package/lib/browser/app-tester-chat-functions.d.ts +25 -0
  102. package/lib/browser/app-tester-chat-functions.d.ts.map +1 -0
  103. package/lib/browser/app-tester-chat-functions.js +170 -0
  104. package/lib/browser/app-tester-chat-functions.js.map +1 -0
  105. package/lib/browser/app-tester-prompt-template.d.ts +6 -0
  106. package/lib/browser/app-tester-prompt-template.d.ts.map +1 -0
  107. package/lib/browser/app-tester-prompt-template.js +83 -0
  108. package/lib/browser/app-tester-prompt-template.js.map +1 -0
  109. package/lib/browser/architect-agent.d.ts +15 -0
  110. package/lib/browser/architect-agent.d.ts.map +1 -0
  111. package/lib/browser/architect-agent.js +68 -0
  112. package/lib/browser/architect-agent.js.map +1 -0
  113. package/lib/browser/coder-agent.d.ts +15 -0
  114. package/lib/browser/coder-agent.d.ts.map +1 -0
  115. package/lib/browser/coder-agent.js +81 -0
  116. package/lib/browser/coder-agent.js.map +1 -0
  117. package/lib/browser/context-file-validation-service-impl.d.ts +13 -0
  118. package/lib/browser/context-file-validation-service-impl.d.ts.map +1 -0
  119. package/lib/browser/context-file-validation-service-impl.js +123 -0
  120. package/lib/browser/context-file-validation-service-impl.js.map +1 -0
  121. package/lib/browser/context-file-validation-service-impl.spec.d.ts +2 -0
  122. package/lib/browser/context-file-validation-service-impl.spec.d.ts.map +1 -0
  123. package/lib/browser/context-file-validation-service-impl.spec.js +340 -0
  124. package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -0
  125. package/lib/browser/context-functions.d.ts +16 -0
  126. package/lib/browser/context-functions.d.ts.map +1 -0
  127. package/lib/browser/context-functions.js +166 -0
  128. package/lib/browser/context-functions.js.map +1 -0
  129. package/lib/browser/context-functions.spec.d.ts +2 -0
  130. package/lib/browser/context-functions.spec.d.ts.map +1 -0
  131. package/lib/browser/context-functions.spec.js +213 -0
  132. package/lib/browser/context-functions.spec.js.map +1 -0
  133. package/lib/browser/file-changeset-function.spec.d.ts +2 -0
  134. package/lib/browser/file-changeset-function.spec.d.ts.map +1 -0
  135. package/lib/browser/file-changeset-function.spec.js +45 -0
  136. package/lib/browser/file-changeset-function.spec.js.map +1 -0
  137. package/lib/browser/file-changeset-functions.d.ts +87 -0
  138. package/lib/browser/file-changeset-functions.d.ts.map +1 -0
  139. package/lib/browser/file-changeset-functions.js +645 -0
  140. package/lib/browser/file-changeset-functions.js.map +1 -0
  141. package/lib/browser/file-changeset-functions.spec.d.ts +2 -0
  142. package/lib/browser/file-changeset-functions.spec.d.ts.map +1 -0
  143. package/lib/browser/file-changeset-functions.spec.js +179 -0
  144. package/lib/browser/file-changeset-functions.spec.js.map +1 -0
  145. package/lib/browser/frontend-module.d.ts +5 -0
  146. package/lib/browser/frontend-module.d.ts.map +1 -0
  147. package/lib/browser/frontend-module.js +226 -0
  148. package/lib/browser/frontend-module.js.map +1 -0
  149. package/lib/browser/github-chat-agent.d.ts +48 -0
  150. package/lib/browser/github-chat-agent.d.ts.map +1 -0
  151. package/lib/browser/github-chat-agent.js +222 -0
  152. package/lib/browser/github-chat-agent.js.map +1 -0
  153. package/lib/browser/github-prompt-template.d.ts +6 -0
  154. package/lib/browser/github-prompt-template.d.ts.map +1 -0
  155. package/lib/browser/github-prompt-template.js +53 -0
  156. package/lib/browser/github-prompt-template.js.map +1 -0
  157. package/lib/browser/github-repo-variable-contribution.d.ts +15 -0
  158. package/lib/browser/github-repo-variable-contribution.d.ts.map +1 -0
  159. package/lib/browser/github-repo-variable-contribution.js +82 -0
  160. package/lib/browser/github-repo-variable-contribution.js.map +1 -0
  161. package/lib/browser/ide-chat-welcome-message-provider.d.ts +10 -0
  162. package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -0
  163. package/lib/browser/ide-chat-welcome-message-provider.js +102 -0
  164. package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -0
  165. package/lib/browser/implement-gh-ticket-command-contribution.d.ts +9 -0
  166. package/lib/browser/implement-gh-ticket-command-contribution.d.ts.map +1 -0
  167. package/lib/browser/implement-gh-ticket-command-contribution.js +156 -0
  168. package/lib/browser/implement-gh-ticket-command-contribution.js.map +1 -0
  169. package/lib/browser/project-info-agent.d.ts +13 -0
  170. package/lib/browser/project-info-agent.d.ts.map +1 -0
  171. package/lib/browser/project-info-agent.js +45 -0
  172. package/lib/browser/project-info-agent.js.map +1 -0
  173. package/lib/browser/remember-command-contribution.d.ts +16 -0
  174. package/lib/browser/remember-command-contribution.d.ts.map +1 -0
  175. package/lib/browser/remember-command-contribution.js +101 -0
  176. package/lib/browser/remember-command-contribution.js.map +1 -0
  177. package/lib/browser/summarize-session-command-contribution.d.ts +19 -0
  178. package/lib/browser/summarize-session-command-contribution.d.ts.map +1 -0
  179. package/lib/browser/summarize-session-command-contribution.js +118 -0
  180. package/lib/browser/summarize-session-command-contribution.js.map +1 -0
  181. package/lib/browser/task-background-summary-variable.d.ts +9 -0
  182. package/lib/browser/task-background-summary-variable.d.ts.map +1 -0
  183. package/lib/browser/task-background-summary-variable.js +60 -0
  184. package/lib/browser/task-background-summary-variable.js.map +1 -0
  185. package/lib/browser/task-context-agent.d.ts +13 -0
  186. package/lib/browser/task-context-agent.d.ts.map +1 -0
  187. package/lib/browser/task-context-agent.js +45 -0
  188. package/lib/browser/task-context-agent.js.map +1 -0
  189. package/lib/browser/task-context-file-storage-service.d.ts +40 -0
  190. package/lib/browser/task-context-file-storage-service.d.ts.map +1 -0
  191. package/lib/browser/task-context-file-storage-service.js +232 -0
  192. package/lib/browser/task-context-file-storage-service.js.map +1 -0
  193. package/lib/browser/template-preference-contribution.d.ts +17 -0
  194. package/lib/browser/template-preference-contribution.d.ts.map +1 -0
  195. package/lib/browser/template-preference-contribution.js +94 -0
  196. package/lib/browser/template-preference-contribution.js.map +1 -0
  197. package/lib/browser/test/tool-provider-cancellation-test-util.spec.d.ts +2 -0
  198. package/lib/browser/test/tool-provider-cancellation-test-util.spec.d.ts.map +1 -0
  199. package/lib/browser/test/tool-provider-cancellation-test-util.spec.js +52 -0
  200. package/lib/browser/test/tool-provider-cancellation-test-util.spec.js.map +1 -0
  201. package/lib/browser/workspace-functions.d.ts +78 -0
  202. package/lib/browser/workspace-functions.d.ts.map +1 -0
  203. package/lib/browser/workspace-functions.js +697 -0
  204. package/lib/browser/workspace-functions.js.map +1 -0
  205. package/lib/browser/workspace-functions.spec.d.ts +2 -0
  206. package/lib/browser/workspace-functions.spec.d.ts.map +1 -0
  207. package/lib/browser/workspace-functions.spec.js +161 -0
  208. package/lib/browser/workspace-functions.spec.js.map +1 -0
  209. package/lib/browser/workspace-launch-provider.d.ts +24 -0
  210. package/lib/browser/workspace-launch-provider.d.ts.map +1 -0
  211. package/lib/browser/workspace-launch-provider.js +216 -0
  212. package/lib/browser/workspace-launch-provider.js.map +1 -0
  213. package/lib/browser/workspace-launch-provider.spec.d.ts +2 -0
  214. package/lib/browser/workspace-launch-provider.spec.d.ts.map +1 -0
  215. package/lib/browser/workspace-launch-provider.spec.js +245 -0
  216. package/lib/browser/workspace-launch-provider.spec.js.map +1 -0
  217. package/lib/browser/workspace-search-provider.d.ts +15 -0
  218. package/lib/browser/workspace-search-provider.d.ts.map +1 -0
  219. package/lib/browser/workspace-search-provider.js +204 -0
  220. package/lib/browser/workspace-search-provider.js.map +1 -0
  221. package/lib/browser/workspace-search-provider.spec.d.ts +2 -0
  222. package/lib/browser/workspace-search-provider.spec.d.ts.map +1 -0
  223. package/lib/browser/workspace-search-provider.spec.js +82 -0
  224. package/lib/browser/workspace-search-provider.spec.js.map +1 -0
  225. package/lib/browser/workspace-task-provider.d.ts +15 -0
  226. package/lib/browser/workspace-task-provider.d.ts.map +1 -0
  227. package/lib/browser/workspace-task-provider.js +138 -0
  228. package/lib/browser/workspace-task-provider.js.map +1 -0
  229. package/lib/browser/workspace-task-provider.spec.d.ts +2 -0
  230. package/lib/browser/workspace-task-provider.spec.d.ts.map +1 -0
  231. package/lib/browser/workspace-task-provider.spec.js +109 -0
  232. package/lib/browser/workspace-task-provider.spec.js.map +1 -0
  233. package/lib/common/ai-configuration-preferences.d.ts +8 -0
  234. package/lib/common/ai-configuration-preferences.d.ts.map +1 -0
  235. package/lib/common/ai-configuration-preferences.js +41 -0
  236. package/lib/common/ai-configuration-preferences.js.map +1 -0
  237. package/lib/common/ai-ide-preferences.d.ts +5 -0
  238. package/lib/common/ai-ide-preferences.d.ts.map +1 -0
  239. package/lib/common/ai-ide-preferences.js +53 -0
  240. package/lib/common/ai-ide-preferences.js.map +1 -0
  241. package/lib/common/ai-terminal-functions.d.ts +2 -0
  242. package/lib/common/ai-terminal-functions.d.ts.map +1 -0
  243. package/lib/common/ai-terminal-functions.js +20 -0
  244. package/lib/common/ai-terminal-functions.js.map +1 -0
  245. package/lib/common/app-tester-chat-functions.d.ts +5 -0
  246. package/lib/common/app-tester-chat-functions.d.ts.map +1 -0
  247. package/lib/common/app-tester-chat-functions.js +23 -0
  248. package/lib/common/app-tester-chat-functions.js.map +1 -0
  249. package/lib/common/architect-prompt-template.d.ts +3 -0
  250. package/lib/common/architect-prompt-template.d.ts.map +1 -0
  251. package/lib/common/architect-prompt-template.js +81 -0
  252. package/lib/common/architect-prompt-template.js.map +1 -0
  253. package/lib/common/browser-automation-protocol.d.ts +15 -0
  254. package/lib/common/browser-automation-protocol.d.ts.map +1 -0
  255. package/lib/common/browser-automation-protocol.js +22 -0
  256. package/lib/common/browser-automation-protocol.js.map +1 -0
  257. package/lib/common/coder-replace-prompt-template.d.ts +11 -0
  258. package/lib/common/coder-replace-prompt-template.d.ts.map +1 -0
  259. package/lib/common/coder-replace-prompt-template.js +296 -0
  260. package/lib/common/coder-replace-prompt-template.js.map +1 -0
  261. package/lib/common/command-chat-agents.d.ts +36 -0
  262. package/lib/common/command-chat-agents.d.ts.map +1 -0
  263. package/lib/common/command-chat-agents.js +122 -0
  264. package/lib/common/command-chat-agents.js.map +1 -0
  265. package/lib/common/command-prompt-template.d.ts +3 -0
  266. package/lib/common/command-prompt-template.d.ts.map +1 -0
  267. package/lib/common/command-prompt-template.js +226 -0
  268. package/lib/common/command-prompt-template.js.map +1 -0
  269. package/lib/common/context-files-variable.d.ts +9 -0
  270. package/lib/common/context-files-variable.d.ts.map +1 -0
  271. package/lib/common/context-files-variable.js +52 -0
  272. package/lib/common/context-files-variable.js.map +1 -0
  273. package/lib/common/context-functions.d.ts +4 -0
  274. package/lib/common/context-functions.d.ts.map +1 -0
  275. package/lib/common/context-functions.js +22 -0
  276. package/lib/common/context-functions.js.map +1 -0
  277. package/lib/common/context-variables.d.ts +3 -0
  278. package/lib/common/context-variables.d.ts.map +1 -0
  279. package/lib/common/context-variables.js +21 -0
  280. package/lib/common/context-variables.js.map +1 -0
  281. package/lib/common/file-changeset-function-ids.d.ts +19 -0
  282. package/lib/common/file-changeset-function-ids.d.ts.map +1 -0
  283. package/lib/common/file-changeset-function-ids.js +37 -0
  284. package/lib/common/file-changeset-function-ids.js.map +1 -0
  285. package/lib/common/github-repo-protocol.d.ts +15 -0
  286. package/lib/common/github-repo-protocol.d.ts.map +1 -0
  287. package/lib/common/github-repo-protocol.js +21 -0
  288. package/lib/common/github-repo-protocol.js.map +1 -0
  289. package/lib/common/orchestrator-chat-agent.d.ts +36 -0
  290. package/lib/common/orchestrator-chat-agent.d.ts.map +1 -0
  291. package/lib/common/orchestrator-chat-agent.js +167 -0
  292. package/lib/common/orchestrator-chat-agent.js.map +1 -0
  293. package/lib/common/orchestrator-prompt-template.d.ts +3 -0
  294. package/lib/common/orchestrator-prompt-template.d.ts.map +1 -0
  295. package/lib/common/orchestrator-prompt-template.js +55 -0
  296. package/lib/common/orchestrator-prompt-template.js.map +1 -0
  297. package/lib/common/project-info-prompt-template.d.ts +6 -0
  298. package/lib/common/project-info-prompt-template.d.ts.map +1 -0
  299. package/lib/common/project-info-prompt-template.js +145 -0
  300. package/lib/common/project-info-prompt-template.js.map +1 -0
  301. package/lib/common/summarize-session-commands.d.ts +4 -0
  302. package/lib/common/summarize-session-commands.d.ts.map +1 -0
  303. package/lib/common/summarize-session-commands.js +28 -0
  304. package/lib/common/summarize-session-commands.js.map +1 -0
  305. package/lib/common/task-context-prompt-template.d.ts +8 -0
  306. package/lib/common/task-context-prompt-template.d.ts.map +1 -0
  307. package/lib/common/task-context-prompt-template.js +217 -0
  308. package/lib/common/task-context-prompt-template.js.map +1 -0
  309. package/lib/common/universal-chat-agent.d.ts +17 -0
  310. package/lib/common/universal-chat-agent.d.ts.map +1 -0
  311. package/lib/common/universal-chat-agent.js +47 -0
  312. package/lib/common/universal-chat-agent.js.map +1 -0
  313. package/lib/common/universal-prompt-template.d.ts +4 -0
  314. package/lib/common/universal-prompt-template.d.ts.map +1 -0
  315. package/lib/common/universal-prompt-template.js +32 -0
  316. package/lib/common/universal-prompt-template.js.map +1 -0
  317. package/lib/common/workspace-functions.d.ts +12 -0
  318. package/lib/common/workspace-functions.d.ts.map +1 -0
  319. package/lib/common/workspace-functions.js +30 -0
  320. package/lib/common/workspace-functions.js.map +1 -0
  321. package/lib/common/workspace-preferences.d.ts +10 -0
  322. package/lib/common/workspace-preferences.d.ts.map +1 -0
  323. package/lib/common/workspace-preferences.js +89 -0
  324. package/lib/common/workspace-preferences.js.map +1 -0
  325. package/lib/common/workspace-search-provider-util.d.ts +17 -0
  326. package/lib/common/workspace-search-provider-util.d.ts.map +1 -0
  327. package/lib/common/workspace-search-provider-util.js +51 -0
  328. package/lib/common/workspace-search-provider-util.js.map +1 -0
  329. package/lib/node/app-tester-agent/browser-automation-impl.d.ts +18 -0
  330. package/lib/node/app-tester-agent/browser-automation-impl.d.ts.map +1 -0
  331. package/lib/node/app-tester-agent/browser-automation-impl.js +96 -0
  332. package/lib/node/app-tester-agent/browser-automation-impl.js.map +1 -0
  333. package/lib/node/backend-module.d.ts +4 -0
  334. package/lib/node/backend-module.d.ts.map +1 -0
  335. package/lib/node/backend-module.js +45 -0
  336. package/lib/node/backend-module.js.map +1 -0
  337. package/lib/node/github-repo-service-impl.d.ts +7 -0
  338. package/lib/node/github-repo-service-impl.d.ts.map +1 -0
  339. package/lib/node/github-repo-service-impl.js +86 -0
  340. package/lib/node/github-repo-service-impl.js.map +1 -0
  341. package/lib/package.spec.d.ts +1 -0
  342. package/lib/package.spec.d.ts.map +1 -0
  343. package/lib/package.spec.js +26 -0
  344. package/lib/package.spec.js.map +1 -0
  345. package/package.json +21 -21
  346. package/src/browser/address-pr-review-command-contribution.ts +180 -0
  347. package/src/browser/ai-configuration/agent-configuration-widget.tsx +256 -135
  348. package/src/browser/ai-configuration/base/ai-card-grid-configuration-widget.tsx +72 -0
  349. package/src/browser/ai-configuration/base/ai-configuration-base-widget.tsx +37 -0
  350. package/src/browser/ai-configuration/base/ai-hierarchical-configuration-widget.tsx +51 -0
  351. package/src/browser/ai-configuration/base/ai-list-detail-configuration-widget.tsx +140 -0
  352. package/src/browser/ai-configuration/base/ai-table-configuration-widget.tsx +107 -0
  353. package/src/browser/ai-configuration/components/configuration-section.tsx +37 -0
  354. package/src/browser/ai-configuration/components/empty-state.tsx +30 -0
  355. package/src/browser/ai-configuration/components/expandable-section.tsx +51 -0
  356. package/src/browser/ai-configuration/language-model-renderer.tsx +68 -63
  357. package/src/browser/ai-configuration/mcp-configuration-widget.tsx +80 -85
  358. package/src/browser/ai-configuration/model-aliases-configuration-widget.tsx +93 -107
  359. package/src/browser/ai-configuration/template-settings-renderer.tsx +25 -29
  360. package/src/browser/ai-configuration/token-usage-configuration-widget.tsx +130 -130
  361. package/src/browser/ai-configuration/tools-configuration-widget.tsx +68 -59
  362. package/src/browser/ai-configuration/variable-configuration-widget.tsx +95 -45
  363. package/src/browser/analyze-gh-ticket-command-contribution.ts +176 -0
  364. package/src/browser/frontend-module.ts +6 -0
  365. package/src/browser/implement-gh-ticket-command-contribution.ts +160 -0
  366. package/src/browser/style/ai-configuration-base.css +90 -0
  367. package/src/browser/style/ai-configuration-cards.css +60 -0
  368. package/src/browser/style/ai-configuration-hierarchical.css +61 -0
  369. package/src/browser/style/ai-configuration-list-detail.css +88 -0
  370. package/src/browser/style/ai-configuration-table.css +73 -0
  371. package/src/browser/style/index.css +458 -288
  372. package/src/browser/style/widgets/mcp-configuration.css +253 -0
  373. package/src/browser/style/widgets/model-aliases-configuration.css +74 -0
@@ -0,0 +1,51 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+ import { injectable } from '@theia/core/shared/inversify';
17
+ import { AIConfigurationBaseWidget } from './ai-configuration-base-widget';
18
+
19
+ /**
20
+ * Base class for AI configuration widgets that display hierarchical or expandable content.
21
+ * This pattern is used by the prompt fragments and tools configuration widgets.
22
+ *
23
+ * This base class provides minimal structure - subclasses implement their own
24
+ * hierarchical rendering logic using the shared ExpandableSection component.
25
+ */
26
+ @injectable()
27
+ export abstract class AIHierarchicalConfigurationWidget extends AIConfigurationBaseWidget {
28
+ /**
29
+ * Track expansion state for sections.
30
+ */
31
+ protected expandedSections: Set<string> = new Set();
32
+
33
+ /**
34
+ * Toggle expansion state for a section.
35
+ */
36
+ protected toggleSection = (sectionId: string): void => {
37
+ if (this.expandedSections.has(sectionId)) {
38
+ this.expandedSections.delete(sectionId);
39
+ } else {
40
+ this.expandedSections.add(sectionId);
41
+ }
42
+ this.update();
43
+ };
44
+
45
+ /**
46
+ * Check if a section is expanded.
47
+ */
48
+ protected isSectionExpanded(sectionId: string): boolean {
49
+ return this.expandedSections.has(sectionId);
50
+ }
51
+ }
@@ -0,0 +1,140 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+ import * as React from '@theia/core/shared/react';
17
+ import { injectable } from '@theia/core/shared/inversify';
18
+ import { nls } from '@theia/core/lib/common/nls';
19
+ import { AIConfigurationBaseWidget } from './ai-configuration-base-widget';
20
+
21
+ /**
22
+ * Base class for AI configuration widgets that follow the list-detail pattern:
23
+ * - Left panel: Tree list of items
24
+ * - Right panel: Detail view of selected item
25
+ *
26
+ * This pattern is used by agents, variables, and model aliases widgets.
27
+ */
28
+ @injectable()
29
+ export abstract class AIListDetailConfigurationWidget<T> extends AIConfigurationBaseWidget {
30
+ protected selectedItem: T | undefined;
31
+ protected items: T[] = [];
32
+
33
+ /**
34
+ * Get unique identifier for an item. Used for selection tracking.
35
+ */
36
+ protected abstract getItemId(item: T): string;
37
+
38
+ /**
39
+ * Get display label for an item in the list.
40
+ */
41
+ protected abstract getItemLabel(item: T): string;
42
+
43
+ /**
44
+ * Render the detail panel for the selected item.
45
+ */
46
+ protected abstract renderItemDetail(item: T): React.ReactNode;
47
+
48
+ /**
49
+ * Load items to display in the list. Called during initialization.
50
+ */
51
+ protected abstract loadItems(): Promise<void>;
52
+
53
+ /**
54
+ * Get the message to display when no item is selected.
55
+ */
56
+ protected getEmptySelectionMessage(): string {
57
+ return nls.localize('theia/ai/configuration/selectItem', 'Please select an item.');
58
+ }
59
+
60
+ /**
61
+ * Optional: Additional CSS classes for list items.
62
+ */
63
+ protected getItemClassName(item: T): string {
64
+ return '';
65
+ }
66
+
67
+ /**
68
+ * Optional: Render additional content before the item label.
69
+ */
70
+ protected renderItemPrefix(item: T): React.ReactNode {
71
+ return undefined;
72
+ }
73
+
74
+ /**
75
+ * Optional: Render additional content after the item label.
76
+ */
77
+ protected renderItemSuffix(item: T): React.ReactNode {
78
+ return undefined;
79
+ }
80
+
81
+ protected handleItemSelect = (item: T): void => {
82
+ this.selectedItem = item;
83
+ this.update();
84
+ };
85
+
86
+ /**
87
+ * Public method to programmatically select an item.
88
+ * Useful for navigation from other widgets.
89
+ */
90
+ public selectItem(item: T): void {
91
+ this.handleItemSelect(item);
92
+ }
93
+
94
+ protected renderContent(): React.ReactNode {
95
+ return (
96
+ <div className="ai-list-detail-configuration-main">
97
+ {this.renderList()}
98
+ {this.renderDetail()}
99
+ </div>
100
+ );
101
+ }
102
+
103
+ protected renderList(): React.ReactNode {
104
+ return (
105
+ <div className="ai-configuration-list preferences-tree-widget theia-TreeContainer">
106
+ <ul>
107
+ {this.items.map(item => {
108
+ const itemId = this.getItemId(item);
109
+ const isSelected = this.selectedItem && this.getItemId(this.selectedItem) === itemId;
110
+ return (
111
+ <li
112
+ key={itemId}
113
+ className={`theia-TreeNode theia-CompositeTreeNode${isSelected ? ' theia-mod-selected' : ''} ${this.getItemClassName(item)}`}
114
+ onClick={() => this.handleItemSelect(item)}
115
+ >
116
+ {this.renderItemPrefix(item)}
117
+ <span className="ai-configuration-list-item-label">{this.getItemLabel(item)}</span>
118
+ {this.renderItemSuffix(item)}
119
+ </li>
120
+ );
121
+ })}
122
+ </ul>
123
+ </div>
124
+ );
125
+ }
126
+
127
+ protected renderDetail(): React.ReactNode {
128
+ return (
129
+ <div className="ai-configuration-detail preferences-editor-widget">
130
+ {this.selectedItem ? (
131
+ this.renderItemDetail(this.selectedItem)
132
+ ) : (
133
+ <div className="ai-configuration-empty-state">
134
+ <span className="ai-empty-state-message">{this.getEmptySelectionMessage()}</span>
135
+ </div>
136
+ )}
137
+ </div>
138
+ );
139
+ }
140
+ }
@@ -0,0 +1,107 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+ import * as React from '@theia/core/shared/react';
17
+ import { injectable } from '@theia/core/shared/inversify';
18
+ import { AIConfigurationBaseWidget } from './ai-configuration-base-widget';
19
+
20
+ /**
21
+ * Column definition for table configuration widgets.
22
+ */
23
+ export interface TableColumn<T> {
24
+ id: string;
25
+ label: string;
26
+ className?: string;
27
+ renderCell: (item: T) => React.ReactNode;
28
+ }
29
+
30
+ /**
31
+ * Base class for AI configuration widgets that display data in a table format.
32
+ * This pattern is used by the token usage configuration widget.
33
+ */
34
+ @injectable()
35
+ export abstract class AITableConfigurationWidget<T> extends AIConfigurationBaseWidget {
36
+ protected items: T[] = [];
37
+
38
+ /**
39
+ * Get unique identifier for a row item.
40
+ */
41
+ protected abstract getItemId(item: T): string;
42
+
43
+ /**
44
+ * Define the columns for the table.
45
+ */
46
+ protected abstract getColumns(): TableColumn<T>[];
47
+
48
+ /**
49
+ * Load items to display in the table. Called during initialization.
50
+ */
51
+ protected abstract loadItems(): Promise<void>;
52
+
53
+ /**
54
+ * Optional: Render content before the table (e.g., header, filters, controls).
55
+ */
56
+ protected renderHeader(): React.ReactNode {
57
+ return undefined;
58
+ }
59
+
60
+ /**
61
+ * Optional: Render content after the table (e.g., summary, footer).
62
+ */
63
+ protected renderFooter(): React.ReactNode {
64
+ return undefined;
65
+ }
66
+
67
+ /**
68
+ * Optional: Additional CSS class for a specific row.
69
+ */
70
+ protected getRowClassName(item: T): string {
71
+ return '';
72
+ }
73
+
74
+ protected renderContent(): React.ReactNode {
75
+ const columns = this.getColumns();
76
+ return (
77
+ <div className="ai-table-configuration-main">
78
+ {this.renderHeader()}
79
+ <div className="ai-configuration-table-container">
80
+ <table className="ai-configuration-table">
81
+ <thead>
82
+ <tr>
83
+ {columns.map(column => (
84
+ <th key={column.id} className={column.className}>
85
+ {column.label}
86
+ </th>
87
+ ))}
88
+ </tr>
89
+ </thead>
90
+ <tbody>
91
+ {this.items.map(item => (
92
+ <tr key={this.getItemId(item)} className={this.getRowClassName(item)}>
93
+ {columns.map(column => (
94
+ <td key={column.id} className={column.className}>
95
+ {column.renderCell(item)}
96
+ </td>
97
+ ))}
98
+ </tr>
99
+ ))}
100
+ </tbody>
101
+ </table>
102
+ </div>
103
+ {this.renderFooter()}
104
+ </div>
105
+ );
106
+ }
107
+ }
@@ -0,0 +1,37 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+ import * as React from '@theia/core/shared/react';
17
+
18
+ export interface ConfigurationSectionProps {
19
+ title: string;
20
+ children: React.ReactNode;
21
+ className?: string;
22
+ }
23
+
24
+ /**
25
+ * A reusable section component with a title and content area.
26
+ * Follows the Theia settings section styling.
27
+ */
28
+ export const ConfigurationSection: React.FC<ConfigurationSectionProps> = ({ title, children, className }) => (
29
+ <div className={`ai-configuration-section ${className || ''}`}>
30
+ <div className='settings-section-title settings-section-category-title'>
31
+ {title}
32
+ </div>
33
+ <div className='ai-configuration-section-content'>
34
+ {children}
35
+ </div>
36
+ </div>
37
+ );
@@ -0,0 +1,30 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+ import * as React from '@theia/core/shared/react';
17
+
18
+ export interface EmptyStateProps {
19
+ message: string;
20
+ className?: string;
21
+ }
22
+
23
+ /**
24
+ * A component to display an empty state message (e.g., "Please select an item").
25
+ */
26
+ export const EmptyState: React.FC<EmptyStateProps> = ({ message, className }) => (
27
+ <div className={`ai-configuration-empty-state ${className || ''}`}>
28
+ <span className='ai-empty-state-message'>{message}</span>
29
+ </div>
30
+ );
@@ -0,0 +1,51 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+ import * as React from '@theia/core/shared/react';
17
+ import { codicon } from '@theia/core/lib/browser';
18
+
19
+ export interface ExpandableSectionProps {
20
+ title: React.ReactNode;
21
+ isExpanded: boolean;
22
+ onToggle: () => void;
23
+ children: React.ReactNode;
24
+ className?: string;
25
+ }
26
+
27
+ /**
28
+ * A collapsible section with a chevron icon and expandable content.
29
+ */
30
+ export const ExpandableSection: React.FC<ExpandableSectionProps> = ({
31
+ title,
32
+ isExpanded,
33
+ onToggle,
34
+ children,
35
+ className
36
+ }) => (
37
+ <div className={`ai-expandable-section ${className || ''}`}>
38
+ <div
39
+ className={`ai-expandable-section-header ${isExpanded ? 'expanded' : ''}`}
40
+ onClick={onToggle}
41
+ >
42
+ <span className='ai-expandable-section-icon'>
43
+ <i className={codicon(isExpanded ? 'chevron-down' : 'chevron-right')} />
44
+ </span>
45
+ <div className='ai-expandable-section-title'>{title}</div>
46
+ </div>
47
+ {isExpanded && (
48
+ <div className='ai-expandable-section-content'>{children}</div>
49
+ )}
50
+ </div>
51
+ );
@@ -79,76 +79,81 @@ export const LanguageModelRenderer: React.FC<LanguageModelSettingsProps> = (
79
79
  };
80
80
 
81
81
  return <div className='language-model-container'>
82
+ {lmRequirementMap && Object.keys(lmRequirementMap).length > 0 ? (
83
+ <div className="settings-section-subcategory-title ai-settings-section-subcategory-title">
84
+ {nls.localize('theia/ai/core/agentConfiguration/llmRequirements', 'LLM Requirements')}
85
+ </div>
86
+ ) : undefined}
82
87
  {Object.values(lmRequirementMap).map((requirement, index) => {
83
88
  const isAlias = requirement.identifier && aliases.some(a => a.id === requirement.identifier);
84
89
  const resolvedModel = isAlias ? resolvedAliasModels[requirement.identifier] : undefined;
85
90
  return (
86
- <React.Fragment key={index}>
87
- <div className="ai-alias-evaluates-to-container">
88
- <strong>{nls.localize('theia/ai/core/languageModelRenderer/purpose', 'Purpose')}:</strong> {requirement.purpose}
91
+ <div key={index} className="ai-llm-requirement-item">
92
+ <div className="ai-configuration-value-row">
93
+ <span className="ai-configuration-value-row-label">{nls.localize('theia/ai/core/languageModelRenderer/purpose', 'Purpose')}:</span>
94
+ <span className="ai-configuration-value-row-value">{requirement.purpose}</span>
89
95
  </div>
90
- <div>
91
- <div className="ai-alias-evaluates-to-container">
92
- <label
93
- className="theia-header no-select"
94
- htmlFor={`model-select-${agent.id}`}>
95
- {nls.localize('theia/ai/core/languageModelRenderer/languageModel', 'Language Model') + ': '}
96
- </label>
97
- <select
98
- className="theia-select"
99
- id={`model-select-${agent.id}-${requirement.purpose}`}
100
- value={requirement.identifier}
101
- onChange={event => onSelectedModelChange(requirement.purpose, event)}
102
- >
103
- <option value=""></option>
104
- {/* Aliases first, then languange models */}
105
- {aliases?.sort((a, b) => a.id.localeCompare(b.id)).map(alias => (
106
- <option key={`alias/${alias.id}`} value={alias.id} className='ai-language-model-item-ready'>
107
- {nls.localize('theia/ai/core/languageModelRenderer/alias', '[alias] {0}', alias.id)}
96
+ <div className="ai-configuration-value-row">
97
+ <label
98
+ className="ai-configuration-value-row-label"
99
+ style={{ lineHeight: '1.4' }}
100
+ htmlFor={`model-select-${agent.id}-${requirement.purpose}`}>
101
+ {nls.localize('theia/ai/core/languageModelRenderer/languageModel', 'Language Model')}:
102
+ </label>
103
+ <select
104
+ className="theia-select ai-configuration-value-row-value"
105
+ id={`model-select-${agent.id}-${requirement.purpose}`}
106
+ style={{ maxWidth: '400px' }}
107
+ value={requirement.identifier}
108
+ onChange={event => onSelectedModelChange(requirement.purpose, event)}
109
+ >
110
+ <option value=""></option>
111
+ {/* Aliases first, then languange models */}
112
+ {aliases?.sort((a, b) => a.id.localeCompare(b.id)).map(alias => (
113
+ <option key={`alias/${alias.id}`} value={alias.id} className='ai-language-model-item-ready'>
114
+ {nls.localize('theia/ai/core/languageModelRenderer/alias', '[alias] {0}', alias.id)}
115
+ </option>
116
+ ))}
117
+ {languageModels?.sort((a, b) => (a.name ?? a.id).localeCompare(b.name ?? b.id)).map(model => {
118
+ const isNotReady = model.status.status !== 'ready';
119
+ return (
120
+ <option
121
+ key={model.id}
122
+ value={model.id}
123
+ className={isNotReady ? 'ai-language-model-item-not-ready' : 'ai-language-model-item-ready'}
124
+ title={isNotReady && model.status.message ? model.status.message : undefined}
125
+ >
126
+ {model.name ?? model.id} {isNotReady ? '✗' : '✓'}
108
127
  </option>
109
- ))}
110
- {languageModels?.sort((a, b) => (a.name ?? a.id).localeCompare(b.name ?? b.id)).map(model => {
111
- const isNotReady = model.status.status !== 'ready';
112
- return (
113
- <option
114
- key={model.id}
115
- value={model.id}
116
- className={isNotReady ? 'ai-language-model-item-not-ready' : 'ai-language-model-item-ready'}
117
- title={isNotReady && model.status.message ? model.status.message : undefined}
118
- >
119
- {model.name ?? model.id} {isNotReady ? '✗' : '✓'}
120
- </option>
121
- );
122
- })}
123
- </select>
124
- </div>
125
- {/* If alias is selected, show what it currently evaluates to */}
126
- {isAlias && (
127
- <div className="ai-alias-evaluates-to-container">
128
- <label className="ai-alias-evaluates-to-label">{nls.localize('theia/ai/core/modelAliasesConfiguration/evaluatesTo', 'Evaluates to')}:</label>
129
- {resolvedModel ? (
130
- <span className="ai-alias-evaluates-to-value">
131
- {resolvedModel.name ?? resolvedModel.id}
132
- {resolvedModel.status.status === 'ready' ? (
133
- <span className="ai-model-status-ready"
134
- title={nls.localize('theia/ai/core/modelAliasesConfiguration/modelReadyTooltip', 'Ready')}>✓</span>
135
- ) : (
136
- <span className="ai-model-status-not-ready" title={resolvedModel.status.message
137
- || nls.localize('theia/ai/core/modelAliasesConfiguration/modelNotReadyTooltip', 'Not ready')}>✗</span>
138
- )}
139
- </span>
140
- ) : (
141
- <span className="ai-alias-evaluates-to-unresolved">
142
- {nls.localize('theia/ai/core/modelAliasesConfiguration/noResolvedModel', 'No model ready for this alias.')}
143
- <span className="ai-model-status-not-ready"
144
- title={nls.localize('theia/ai/core/modelAliasesConfiguration/noModelReadyTooltip', 'No model ready')}>✗</span>
145
- </span>
146
- )}
147
- </div>
148
- )}
149
- <hr />
128
+ );
129
+ })}
130
+ </select>
150
131
  </div>
151
- </React.Fragment>
132
+ {/* If alias is selected, show what it currently evaluates to */}
133
+ {isAlias && (
134
+ <div className="ai-configuration-value-row">
135
+ <span className="ai-configuration-value-row-label">{nls.localize('theia/ai/core/modelAliasesConfiguration/evaluatesTo', 'Evaluates to')}:</span>
136
+ {resolvedModel ? (
137
+ <span className="ai-configuration-value-row-value">
138
+ {resolvedModel.name ?? resolvedModel.id}
139
+ {resolvedModel.status.status === 'ready' ? (
140
+ <span className="ai-model-status-ready"
141
+ title={nls.localize('theia/ai/core/modelAliasesConfiguration/modelReadyTooltip', 'Ready')}>✓</span>
142
+ ) : (
143
+ <span className="ai-model-status-not-ready" title={resolvedModel.status.message
144
+ || nls.localize('theia/ai/core/modelAliasesConfiguration/modelNotReadyTooltip', 'Not ready')}>✗</span>
145
+ )}
146
+ </span>
147
+ ) : (
148
+ <span className="ai-configuration-value-row-value ai-alias-evaluates-to-unresolved">
149
+ {nls.localize('theia/ai/core/modelAliasesConfiguration/noResolvedModel', 'No model ready for this alias.')}
150
+ <span className="ai-model-status-not-ready"
151
+ title={nls.localize('theia/ai/core/modelAliasesConfiguration/noModelReadyTooltip', 'No model ready')}>✗</span>
152
+ </span>
153
+ )}
154
+ </div>
155
+ )}
156
+ </div>
152
157
  );
153
158
  })}
154
159
  </div>;