@theia/ai-ide 1.75.0-next.8 → 1.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/lib/browser/ai-allow-all-mode-chat-banner.js +2 -20
  2. package/lib/browser/ai-allow-all-mode-chat-banner.js.map +1 -1
  3. package/lib/browser/ai-configuration/agent-icon.d.ts +16 -0
  4. package/lib/browser/ai-configuration/agent-icon.d.ts.map +1 -0
  5. package/lib/browser/ai-configuration/agent-icon.js +38 -0
  6. package/lib/browser/ai-configuration/agent-icon.js.map +1 -0
  7. package/lib/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.d.ts +36 -0
  8. package/lib/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.d.ts.map +1 -0
  9. package/lib/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.js +163 -0
  10. package/lib/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.js.map +1 -0
  11. package/lib/browser/ai-configuration/ai-configuration-detail-widget.d.ts +50 -0
  12. package/lib/browser/ai-configuration/ai-configuration-detail-widget.d.ts.map +1 -0
  13. package/lib/browser/ai-configuration/ai-configuration-detail-widget.js +208 -0
  14. package/lib/browser/ai-configuration/ai-configuration-detail-widget.js.map +1 -0
  15. package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.d.ts +2 -0
  16. package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.d.ts.map +1 -0
  17. package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.js +139 -0
  18. package/lib/browser/ai-configuration/ai-configuration-detail-widget.spec.js.map +1 -0
  19. package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.d.ts +13 -0
  20. package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.d.ts.map +1 -0
  21. package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.js +48 -0
  22. package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.js.map +1 -0
  23. package/lib/browser/ai-configuration/ai-configuration-open-preference-renderer.d.ts +22 -0
  24. package/lib/browser/ai-configuration/ai-configuration-open-preference-renderer.d.ts.map +1 -0
  25. package/lib/browser/ai-configuration/ai-configuration-open-preference-renderer.js +72 -0
  26. package/lib/browser/ai-configuration/ai-configuration-open-preference-renderer.js.map +1 -0
  27. package/lib/browser/ai-configuration/ai-configuration-preference-ownership.spec.d.ts +2 -0
  28. package/lib/browser/ai-configuration/ai-configuration-preference-ownership.spec.d.ts.map +1 -0
  29. package/lib/browser/ai-configuration/ai-configuration-preference-ownership.spec.js +126 -0
  30. package/lib/browser/ai-configuration/ai-configuration-preference-ownership.spec.js.map +1 -0
  31. package/lib/browser/ai-configuration/ai-configuration-resource.d.ts +10 -0
  32. package/lib/browser/ai-configuration/ai-configuration-resource.d.ts.map +1 -0
  33. package/lib/browser/ai-configuration/{components/configuration-section.js → ai-configuration-resource.js} +11 -11
  34. package/lib/browser/ai-configuration/ai-configuration-resource.js.map +1 -0
  35. package/lib/browser/ai-configuration/ai-configuration-search-widget.d.ts +29 -0
  36. package/lib/browser/ai-configuration/ai-configuration-search-widget.d.ts.map +1 -0
  37. package/lib/browser/ai-configuration/ai-configuration-search-widget.js +106 -0
  38. package/lib/browser/ai-configuration/ai-configuration-search-widget.js.map +1 -0
  39. package/lib/browser/ai-configuration/ai-configuration-search.d.ts +18 -0
  40. package/lib/browser/ai-configuration/ai-configuration-search.d.ts.map +1 -0
  41. package/lib/browser/ai-configuration/ai-configuration-search.js +45 -0
  42. package/lib/browser/ai-configuration/ai-configuration-search.js.map +1 -0
  43. package/lib/browser/ai-configuration/ai-configuration-search.spec.d.ts +2 -0
  44. package/lib/browser/ai-configuration/ai-configuration-search.spec.d.ts.map +1 -0
  45. package/lib/browser/ai-configuration/ai-configuration-search.spec.js +79 -0
  46. package/lib/browser/ai-configuration/ai-configuration-search.spec.js.map +1 -0
  47. package/lib/browser/ai-configuration/ai-configuration-tree-model.d.ts +8 -0
  48. package/lib/browser/ai-configuration/ai-configuration-tree-model.d.ts.map +1 -0
  49. package/lib/browser/ai-configuration/{base/ai-configuration-base-widget.js → ai-configuration-tree-model.js} +11 -14
  50. package/lib/browser/ai-configuration/ai-configuration-tree-model.js.map +1 -0
  51. package/lib/browser/ai-configuration/ai-configuration-tree-nodes.d.ts +57 -0
  52. package/lib/browser/ai-configuration/ai-configuration-tree-nodes.d.ts.map +1 -0
  53. package/lib/browser/ai-configuration/ai-configuration-tree-nodes.js +134 -0
  54. package/lib/browser/ai-configuration/ai-configuration-tree-nodes.js.map +1 -0
  55. package/lib/browser/ai-configuration/ai-configuration-tree-nodes.spec.d.ts +2 -0
  56. package/lib/browser/ai-configuration/ai-configuration-tree-nodes.spec.d.ts.map +1 -0
  57. package/lib/browser/ai-configuration/ai-configuration-tree-nodes.spec.js +134 -0
  58. package/lib/browser/ai-configuration/ai-configuration-tree-nodes.spec.js.map +1 -0
  59. package/lib/browser/ai-configuration/ai-configuration-tree-widget.d.ts +96 -0
  60. package/lib/browser/ai-configuration/ai-configuration-tree-widget.d.ts.map +1 -0
  61. package/lib/browser/ai-configuration/ai-configuration-tree-widget.js +407 -0
  62. package/lib/browser/ai-configuration/ai-configuration-tree-widget.js.map +1 -0
  63. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts +38 -4
  64. package/lib/browser/ai-configuration/ai-configuration-view-contribution.d.ts.map +1 -1
  65. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js +151 -19
  66. package/lib/browser/ai-configuration/ai-configuration-view-contribution.js.map +1 -1
  67. package/lib/browser/ai-configuration/ai-configuration-widget.d.ts +21 -23
  68. package/lib/browser/ai-configuration/ai-configuration-widget.d.ts.map +1 -1
  69. package/lib/browser/ai-configuration/ai-configuration-widget.js +102 -70
  70. package/lib/browser/ai-configuration/ai-configuration-widget.js.map +1 -1
  71. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts +56 -0
  72. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts.map +1 -0
  73. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js +195 -0
  74. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js.map +1 -0
  75. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.d.ts +2 -0
  76. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.d.ts.map +1 -0
  77. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.js +140 -0
  78. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.js.map +1 -0
  79. package/lib/browser/ai-configuration/categories/agent-chips.d.ts +15 -0
  80. package/lib/browser/ai-configuration/categories/agent-chips.d.ts.map +1 -0
  81. package/lib/browser/ai-configuration/categories/agent-chips.js +19 -0
  82. package/lib/browser/ai-configuration/categories/agent-chips.js.map +1 -0
  83. package/lib/browser/ai-configuration/categories/agent-detail-model.d.ts +37 -0
  84. package/lib/browser/ai-configuration/categories/agent-detail-model.d.ts.map +1 -0
  85. package/lib/browser/ai-configuration/categories/agent-detail-model.js +99 -0
  86. package/lib/browser/ai-configuration/categories/agent-detail-model.js.map +1 -0
  87. package/lib/browser/ai-configuration/categories/agent-detail-view.d.ts +28 -0
  88. package/lib/browser/ai-configuration/categories/agent-detail-view.d.ts.map +1 -0
  89. package/lib/browser/ai-configuration/categories/agent-detail-view.js +135 -0
  90. package/lib/browser/ai-configuration/categories/agent-detail-view.js.map +1 -0
  91. package/lib/browser/ai-configuration/categories/agents-configuration-category.d.ts +78 -0
  92. package/lib/browser/ai-configuration/categories/agents-configuration-category.d.ts.map +1 -0
  93. package/lib/browser/ai-configuration/categories/agents-configuration-category.js +352 -0
  94. package/lib/browser/ai-configuration/categories/agents-configuration-category.js.map +1 -0
  95. package/lib/browser/ai-configuration/categories/agents-configuration-category.spec.d.ts +2 -0
  96. package/lib/browser/ai-configuration/categories/agents-configuration-category.spec.d.ts.map +1 -0
  97. package/lib/browser/ai-configuration/categories/agents-configuration-category.spec.js +99 -0
  98. package/lib/browser/ai-configuration/categories/agents-configuration-category.spec.js.map +1 -0
  99. package/lib/browser/ai-configuration/categories/general-configuration-category.d.ts +93 -0
  100. package/lib/browser/ai-configuration/categories/general-configuration-category.d.ts.map +1 -0
  101. package/lib/browser/ai-configuration/categories/general-configuration-category.js +313 -0
  102. package/lib/browser/ai-configuration/categories/general-configuration-category.js.map +1 -0
  103. package/lib/browser/ai-configuration/categories/general-configuration-category.spec.d.ts +2 -0
  104. package/lib/browser/ai-configuration/categories/general-configuration-category.spec.d.ts.map +1 -0
  105. package/lib/browser/ai-configuration/categories/general-configuration-category.spec.js +213 -0
  106. package/lib/browser/ai-configuration/categories/general-configuration-category.spec.js.map +1 -0
  107. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.d.ts +53 -0
  108. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.d.ts.map +1 -0
  109. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.js +241 -0
  110. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.js.map +1 -0
  111. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.d.ts +2 -0
  112. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.d.ts.map +1 -0
  113. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.js +75 -0
  114. package/lib/browser/ai-configuration/categories/model-aliases-configuration-category.spec.js.map +1 -0
  115. package/lib/browser/ai-configuration/categories/models-configuration-category.d.ts +72 -0
  116. package/lib/browser/ai-configuration/categories/models-configuration-category.d.ts.map +1 -0
  117. package/lib/browser/ai-configuration/categories/models-configuration-category.js +227 -0
  118. package/lib/browser/ai-configuration/categories/models-configuration-category.js.map +1 -0
  119. package/lib/browser/ai-configuration/categories/models-configuration-category.spec.d.ts +2 -0
  120. package/lib/browser/ai-configuration/categories/models-configuration-category.spec.d.ts.map +1 -0
  121. package/lib/browser/ai-configuration/categories/models-configuration-category.spec.js +145 -0
  122. package/lib/browser/ai-configuration/categories/models-configuration-category.spec.js.map +1 -0
  123. package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.d.ts +114 -0
  124. package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.d.ts.map +1 -0
  125. package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.js +341 -0
  126. package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.js.map +1 -0
  127. package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.d.ts +2 -0
  128. package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.d.ts.map +1 -0
  129. package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.js +199 -0
  130. package/lib/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.js.map +1 -0
  131. package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.d.ts +84 -0
  132. package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.d.ts.map +1 -0
  133. package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.js +341 -0
  134. package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.js.map +1 -0
  135. package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.d.ts +2 -0
  136. package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.d.ts.map +1 -0
  137. package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.js +184 -0
  138. package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.js.map +1 -0
  139. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.d.ts +38 -0
  140. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.d.ts.map +1 -0
  141. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.js +130 -0
  142. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.js.map +1 -0
  143. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.spec.d.ts +2 -0
  144. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.spec.d.ts.map +1 -0
  145. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.spec.js +51 -0
  146. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.spec.js.map +1 -0
  147. package/lib/browser/ai-configuration/categories/tools-configuration-category.d.ts +60 -0
  148. package/lib/browser/ai-configuration/categories/tools-configuration-category.d.ts.map +1 -0
  149. package/lib/browser/ai-configuration/categories/tools-configuration-category.js +302 -0
  150. package/lib/browser/ai-configuration/categories/tools-configuration-category.js.map +1 -0
  151. package/lib/browser/ai-configuration/categories/tools-configuration-category.spec.d.ts +2 -0
  152. package/lib/browser/ai-configuration/categories/tools-configuration-category.spec.d.ts.map +1 -0
  153. package/lib/browser/ai-configuration/categories/tools-configuration-category.spec.js +111 -0
  154. package/lib/browser/ai-configuration/categories/tools-configuration-category.spec.js.map +1 -0
  155. package/lib/browser/ai-configuration/categories/variables-configuration-category.d.ts +72 -0
  156. package/lib/browser/ai-configuration/categories/variables-configuration-category.d.ts.map +1 -0
  157. package/lib/browser/ai-configuration/categories/variables-configuration-category.js +245 -0
  158. package/lib/browser/ai-configuration/categories/variables-configuration-category.js.map +1 -0
  159. package/lib/browser/ai-configuration/categories/variables-configuration-category.spec.d.ts +2 -0
  160. package/lib/browser/ai-configuration/categories/variables-configuration-category.spec.d.ts.map +1 -0
  161. package/lib/browser/ai-configuration/categories/variables-configuration-category.spec.js +131 -0
  162. package/lib/browser/ai-configuration/categories/variables-configuration-category.spec.js.map +1 -0
  163. package/lib/browser/ai-configuration/components/agent-notification-settings.d.ts +6 -2
  164. package/lib/browser/ai-configuration/components/agent-notification-settings.d.ts.map +1 -1
  165. package/lib/browser/ai-configuration/components/agent-notification-settings.js +15 -21
  166. package/lib/browser/ai-configuration/components/agent-notification-settings.js.map +1 -1
  167. package/lib/browser/ai-configuration/language-model-renderer.d.ts +25 -1
  168. package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -1
  169. package/lib/browser/ai-configuration/language-model-renderer.js +159 -63
  170. package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -1
  171. package/lib/browser/ai-configuration/language-model-renderer.spec.d.ts +2 -0
  172. package/lib/browser/ai-configuration/language-model-renderer.spec.d.ts.map +1 -0
  173. package/lib/browser/ai-configuration/language-model-renderer.spec.js +93 -0
  174. package/lib/browser/ai-configuration/language-model-renderer.spec.js.map +1 -0
  175. package/lib/browser/ai-sessions-widget.js +12 -16
  176. package/lib/browser/ai-sessions-widget.js.map +1 -1
  177. package/lib/browser/app-tester-chat-agent.d.ts +2 -0
  178. package/lib/browser/app-tester-chat-agent.d.ts.map +1 -1
  179. package/lib/browser/app-tester-chat-agent.js +5 -0
  180. package/lib/browser/app-tester-chat-agent.js.map +1 -1
  181. package/lib/browser/architect-agent.d.ts +2 -0
  182. package/lib/browser/architect-agent.d.ts.map +1 -1
  183. package/lib/browser/architect-agent.js +5 -0
  184. package/lib/browser/architect-agent.js.map +1 -1
  185. package/lib/browser/architect-prompt-template.d.ts.map +1 -1
  186. package/lib/browser/architect-prompt-template.js +7 -0
  187. package/lib/browser/architect-prompt-template.js.map +1 -1
  188. package/lib/browser/chat-session-item.d.ts.map +1 -1
  189. package/lib/browser/chat-session-item.js +17 -30
  190. package/lib/browser/chat-session-item.js.map +1 -1
  191. package/lib/browser/chat-session-list-components.js +7 -30
  192. package/lib/browser/chat-session-list-components.js.map +1 -1
  193. package/lib/browser/chat-session-list-service.d.ts +2 -1
  194. package/lib/browser/chat-session-list-service.d.ts.map +1 -1
  195. package/lib/browser/chat-session-list-service.js +6 -1
  196. package/lib/browser/chat-session-list-service.js.map +1 -1
  197. package/lib/browser/chat-sessions-welcome-message-provider.js +3 -21
  198. package/lib/browser/chat-sessions-welcome-message-provider.js.map +1 -1
  199. package/lib/browser/code-reviewer-agent.d.ts +2 -0
  200. package/lib/browser/code-reviewer-agent.d.ts.map +1 -1
  201. package/lib/browser/code-reviewer-agent.js +5 -0
  202. package/lib/browser/code-reviewer-agent.js.map +1 -1
  203. package/lib/browser/coder-agent.d.ts +2 -0
  204. package/lib/browser/coder-agent.d.ts.map +1 -1
  205. package/lib/browser/coder-agent.js +6 -1
  206. package/lib/browser/coder-agent.js.map +1 -1
  207. package/lib/browser/context-file-validation-service-impl.spec.js +2 -0
  208. package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -1
  209. package/lib/browser/create-skill-agent.d.ts +2 -0
  210. package/lib/browser/create-skill-agent.d.ts.map +1 -1
  211. package/lib/browser/create-skill-agent.js +5 -0
  212. package/lib/browser/create-skill-agent.js.map +1 -1
  213. package/lib/browser/explore-agent.d.ts +2 -0
  214. package/lib/browser/explore-agent.d.ts.map +1 -1
  215. package/lib/browser/explore-agent.js +5 -0
  216. package/lib/browser/explore-agent.js.map +1 -1
  217. package/lib/browser/file-changeset-functions.d.ts +7 -1
  218. package/lib/browser/file-changeset-functions.d.ts.map +1 -1
  219. package/lib/browser/file-changeset-functions.js +62 -20
  220. package/lib/browser/file-changeset-functions.js.map +1 -1
  221. package/lib/browser/file-changeset-functions.spec.js +130 -1
  222. package/lib/browser/file-changeset-functions.spec.js.map +1 -1
  223. package/lib/browser/frontend-module.d.ts.map +1 -1
  224. package/lib/browser/frontend-module.js +65 -59
  225. package/lib/browser/frontend-module.js.map +1 -1
  226. package/lib/browser/github-chat-agent.d.ts +2 -1
  227. package/lib/browser/github-chat-agent.d.ts.map +1 -1
  228. package/lib/browser/github-chat-agent.js +5 -0
  229. package/lib/browser/github-chat-agent.js.map +1 -1
  230. package/lib/browser/github-repo-variable-contribution.d.ts +2 -1
  231. package/lib/browser/github-repo-variable-contribution.d.ts.map +1 -1
  232. package/lib/browser/github-repo-variable-contribution.js +6 -1
  233. package/lib/browser/github-repo-variable-contribution.js.map +1 -1
  234. package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -1
  235. package/lib/browser/ide-chat-welcome-message-provider.js +31 -118
  236. package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -1
  237. package/lib/browser/memory-capability-contribution.d.ts +8 -0
  238. package/lib/browser/memory-capability-contribution.d.ts.map +1 -0
  239. package/lib/browser/memory-capability-contribution.js +88 -0
  240. package/lib/browser/memory-capability-contribution.js.map +1 -0
  241. package/lib/browser/memory-capability-contribution.spec.d.ts +2 -0
  242. package/lib/browser/memory-capability-contribution.spec.d.ts.map +1 -0
  243. package/lib/browser/memory-capability-contribution.spec.js +74 -0
  244. package/lib/browser/memory-capability-contribution.spec.js.map +1 -0
  245. package/lib/browser/memory-directory-variable-contribution.d.ts +41 -0
  246. package/lib/browser/memory-directory-variable-contribution.d.ts.map +1 -0
  247. package/lib/browser/memory-directory-variable-contribution.js +107 -0
  248. package/lib/browser/memory-directory-variable-contribution.js.map +1 -0
  249. package/lib/browser/memory-directory-variable-contribution.spec.d.ts +2 -0
  250. package/lib/browser/memory-directory-variable-contribution.spec.d.ts.map +1 -0
  251. package/lib/browser/memory-directory-variable-contribution.spec.js +98 -0
  252. package/lib/browser/memory-directory-variable-contribution.spec.js.map +1 -0
  253. package/lib/browser/open-editors-hint-contribution.d.ts +7 -0
  254. package/lib/browser/open-editors-hint-contribution.d.ts.map +1 -0
  255. package/lib/browser/open-editors-hint-contribution.js +43 -0
  256. package/lib/browser/open-editors-hint-contribution.js.map +1 -0
  257. package/lib/browser/project-info-agent.d.ts +2 -0
  258. package/lib/browser/project-info-agent.d.ts.map +1 -1
  259. package/lib/browser/project-info-agent.js +5 -0
  260. package/lib/browser/project-info-agent.js.map +1 -1
  261. package/lib/browser/review/pr-review-agent.d.ts +2 -0
  262. package/lib/browser/review/pr-review-agent.d.ts.map +1 -1
  263. package/lib/browser/review/pr-review-agent.js +5 -0
  264. package/lib/browser/review/pr-review-agent.js.map +1 -1
  265. package/lib/browser/summarize-session-command-contribution.d.ts +2 -1
  266. package/lib/browser/summarize-session-command-contribution.d.ts.map +1 -1
  267. package/lib/browser/summarize-session-command-contribution.js +6 -1
  268. package/lib/browser/summarize-session-command-contribution.js.map +1 -1
  269. package/lib/browser/task-context-file-storage-service.d.ts.map +1 -1
  270. package/lib/browser/task-context-file-storage-service.js +1 -0
  271. package/lib/browser/task-context-file-storage-service.js.map +1 -1
  272. package/lib/browser/todo-tool-renderer.js +11 -19
  273. package/lib/browser/todo-tool-renderer.js.map +1 -1
  274. package/lib/browser/user-interaction-tool-renderer.js +39 -83
  275. package/lib/browser/user-interaction-tool-renderer.js.map +1 -1
  276. package/lib/browser/user-interaction-tool.d.ts +2 -0
  277. package/lib/browser/user-interaction-tool.d.ts.map +1 -1
  278. package/lib/browser/user-interaction-tool.js +7 -1
  279. package/lib/browser/user-interaction-tool.js.map +1 -1
  280. package/lib/browser/user-interaction-tool.spec.js +4 -2
  281. package/lib/browser/user-interaction-tool.spec.js.map +1 -1
  282. package/lib/browser/workspace-functions.d.ts +45 -7
  283. package/lib/browser/workspace-functions.d.ts.map +1 -1
  284. package/lib/browser/workspace-functions.js +108 -70
  285. package/lib/browser/workspace-functions.js.map +1 -1
  286. package/lib/browser/workspace-functions.spec.js +139 -9
  287. package/lib/browser/workspace-functions.spec.js.map +1 -1
  288. package/lib/browser/workspace-launch-provider.spec.js +3 -0
  289. package/lib/browser/workspace-launch-provider.spec.js.map +1 -1
  290. package/lib/browser/workspace-search-provider.d.ts.map +1 -1
  291. package/lib/browser/workspace-search-provider.js +4 -7
  292. package/lib/browser/workspace-search-provider.js.map +1 -1
  293. package/lib/browser/workspace-search-provider.spec.js +1 -2
  294. package/lib/browser/workspace-search-provider.spec.js.map +1 -1
  295. package/lib/browser/workspace-task-provider.spec.js +4 -0
  296. package/lib/browser/workspace-task-provider.spec.js.map +1 -1
  297. package/lib/common/coder-replace-prompt-template.d.ts +0 -2
  298. package/lib/common/coder-replace-prompt-template.d.ts.map +1 -1
  299. package/lib/common/coder-replace-prompt-template.js +10 -11
  300. package/lib/common/coder-replace-prompt-template.js.map +1 -1
  301. package/lib/common/command-chat-agents.d.ts +2 -1
  302. package/lib/common/command-chat-agents.d.ts.map +1 -1
  303. package/lib/common/command-chat-agents.js +6 -1
  304. package/lib/common/command-chat-agents.js.map +1 -1
  305. package/lib/common/open-editors-hint-fragment-id.d.ts +2 -0
  306. package/lib/common/open-editors-hint-fragment-id.d.ts.map +1 -0
  307. package/lib/{browser/ai-configuration/components/empty-state.js → common/open-editors-hint-fragment-id.js} +5 -11
  308. package/lib/common/open-editors-hint-fragment-id.js.map +1 -0
  309. package/lib/common/orchestrator-chat-agent.d.ts +2 -1
  310. package/lib/common/orchestrator-chat-agent.d.ts.map +1 -1
  311. package/lib/common/orchestrator-chat-agent.js +5 -0
  312. package/lib/common/orchestrator-chat-agent.js.map +1 -1
  313. package/lib/common/universal-chat-agent.d.ts +2 -0
  314. package/lib/common/universal-chat-agent.d.ts.map +1 -1
  315. package/lib/common/universal-chat-agent.js +5 -0
  316. package/lib/common/universal-chat-agent.js.map +1 -1
  317. package/lib/common/universal-prompt-template.d.ts.map +1 -1
  318. package/lib/common/universal-prompt-template.js +3 -0
  319. package/lib/common/universal-prompt-template.js.map +1 -1
  320. package/lib/common/workspace-preferences.js +2 -2
  321. package/lib/common/workspace-preferences.js.map +1 -1
  322. package/lib/common/workspace-search-provider-util.d.ts +2 -1
  323. package/lib/common/workspace-search-provider-util.d.ts.map +1 -1
  324. package/lib/common/workspace-search-provider-util.js +3 -2
  325. package/lib/common/workspace-search-provider-util.js.map +1 -1
  326. package/lib/common/workspace-search-provider-util.spec.d.ts +2 -0
  327. package/lib/common/workspace-search-provider-util.spec.d.ts.map +1 -0
  328. package/lib/common/workspace-search-provider-util.spec.js +55 -0
  329. package/lib/common/workspace-search-provider-util.spec.js.map +1 -0
  330. package/lib/node/github-repo-service-impl.d.ts +2 -0
  331. package/lib/node/github-repo-service-impl.d.ts.map +1 -1
  332. package/lib/node/github-repo-service-impl.js +7 -1
  333. package/lib/node/github-repo-service-impl.js.map +1 -1
  334. package/package.json +26 -25
  335. package/src/browser/ai-configuration/agent-icon.ts +37 -0
  336. package/src/browser/ai-configuration/ai-configuration-breadcrumbs-contribution.ts +164 -0
  337. package/src/browser/ai-configuration/ai-configuration-detail-widget.spec.ts +165 -0
  338. package/src/browser/ai-configuration/ai-configuration-detail-widget.tsx +237 -0
  339. package/src/browser/ai-configuration/ai-configuration-label-provider-contribution.ts +47 -0
  340. package/src/browser/ai-configuration/ai-configuration-open-preference-renderer.ts +64 -0
  341. package/src/browser/ai-configuration/ai-configuration-preference-ownership.spec.ts +135 -0
  342. package/src/browser/ai-configuration/{components/configuration-section.tsx → ai-configuration-resource.ts} +9 -19
  343. package/src/browser/ai-configuration/ai-configuration-search-widget.tsx +135 -0
  344. package/src/browser/ai-configuration/ai-configuration-search.spec.ts +91 -0
  345. package/src/browser/ai-configuration/ai-configuration-search.ts +43 -0
  346. package/src/browser/ai-configuration/{components/empty-state.tsx → ai-configuration-tree-model.ts} +7 -11
  347. package/src/browser/ai-configuration/ai-configuration-tree-nodes.spec.ts +150 -0
  348. package/src/browser/ai-configuration/ai-configuration-tree-nodes.ts +167 -0
  349. package/src/browser/ai-configuration/ai-configuration-tree-widget.tsx +457 -0
  350. package/src/browser/ai-configuration/ai-configuration-view-contribution.ts +156 -18
  351. package/src/browser/ai-configuration/ai-configuration-widget.tsx +107 -75
  352. package/src/browser/ai-configuration/categories/agent-capabilities-settings.spec.ts +161 -0
  353. package/src/browser/ai-configuration/categories/agent-capabilities-settings.tsx +340 -0
  354. package/src/browser/ai-configuration/categories/agent-chips.tsx +51 -0
  355. package/src/browser/ai-configuration/categories/agent-detail-model.ts +152 -0
  356. package/src/browser/ai-configuration/categories/agent-detail-view.tsx +329 -0
  357. package/src/browser/ai-configuration/categories/agents-configuration-category.spec.ts +119 -0
  358. package/src/browser/ai-configuration/categories/agents-configuration-category.tsx +431 -0
  359. package/src/browser/ai-configuration/categories/general-configuration-category.spec.ts +225 -0
  360. package/src/browser/ai-configuration/categories/general-configuration-category.tsx +465 -0
  361. package/src/browser/ai-configuration/categories/model-aliases-configuration-category.spec.ts +87 -0
  362. package/src/browser/ai-configuration/categories/model-aliases-configuration-category.tsx +286 -0
  363. package/src/browser/ai-configuration/categories/models-configuration-category.spec.ts +167 -0
  364. package/src/browser/ai-configuration/categories/models-configuration-category.tsx +264 -0
  365. package/src/browser/ai-configuration/categories/prompt-snippets-configuration-category.spec.ts +250 -0
  366. package/src/browser/ai-configuration/categories/prompt-snippets-configuration-category.tsx +438 -0
  367. package/src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.ts +226 -0
  368. package/src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.tsx +419 -0
  369. package/src/browser/ai-configuration/categories/token-usage-configuration-category.spec.ts +57 -0
  370. package/src/browser/ai-configuration/categories/token-usage-configuration-category.tsx +185 -0
  371. package/src/browser/ai-configuration/categories/tools-configuration-category.spec.ts +130 -0
  372. package/src/browser/ai-configuration/categories/tools-configuration-category.tsx +421 -0
  373. package/src/browser/ai-configuration/categories/variables-configuration-category.spec.ts +154 -0
  374. package/src/browser/ai-configuration/categories/variables-configuration-category.tsx +322 -0
  375. package/src/browser/ai-configuration/components/agent-notification-settings.tsx +38 -33
  376. package/src/browser/ai-configuration/language-model-renderer.spec.ts +100 -0
  377. package/src/browser/ai-configuration/language-model-renderer.tsx +244 -100
  378. package/src/browser/app-tester-chat-agent.ts +5 -2
  379. package/src/browser/architect-agent.ts +5 -2
  380. package/src/browser/architect-prompt-template.ts +7 -0
  381. package/src/browser/chat-session-item.tsx +2 -4
  382. package/src/browser/chat-session-list-service.ts +6 -3
  383. package/src/browser/code-reviewer-agent.ts +5 -2
  384. package/src/browser/coder-agent.ts +7 -5
  385. package/src/browser/context-file-validation-service-impl.spec.ts +3 -2
  386. package/src/browser/create-skill-agent.ts +5 -2
  387. package/src/browser/explore-agent.ts +5 -2
  388. package/src/browser/file-changeset-functions.spec.ts +158 -5
  389. package/src/browser/file-changeset-functions.ts +61 -23
  390. package/src/browser/frontend-module.ts +76 -63
  391. package/src/browser/github-chat-agent.ts +5 -2
  392. package/src/browser/github-repo-variable-contribution.ts +6 -3
  393. package/src/browser/ide-chat-welcome-message-provider.tsx +11 -11
  394. package/src/browser/memory-capability-contribution.spec.ts +85 -0
  395. package/src/browser/memory-capability-contribution.ts +86 -0
  396. package/src/browser/memory-directory-variable-contribution.spec.ts +113 -0
  397. package/src/browser/memory-directory-variable-contribution.ts +113 -0
  398. package/src/browser/open-editors-hint-contribution.ts +38 -0
  399. package/src/browser/project-info-agent.ts +5 -2
  400. package/src/browser/review/pr-review-agent.ts +5 -2
  401. package/src/browser/style/ai-configuration-base.css +0 -6
  402. package/src/browser/style/ai-configuration-shell.css +416 -0
  403. package/src/browser/style/ai-configuration-table.css +2 -15
  404. package/src/browser/style/index.css +220 -276
  405. package/src/browser/summarize-session-command-contribution.ts +6 -3
  406. package/src/browser/task-context-file-storage-service.ts +5 -2
  407. package/src/browser/user-interaction-tool.spec.ts +5 -2
  408. package/src/browser/user-interaction-tool.ts +6 -2
  409. package/src/browser/workspace-functions.spec.ts +163 -10
  410. package/src/browser/workspace-functions.ts +121 -72
  411. package/src/browser/workspace-launch-provider.spec.ts +4 -1
  412. package/src/browser/workspace-search-provider.spec.ts +1 -2
  413. package/src/browser/workspace-search-provider.ts +4 -7
  414. package/src/browser/workspace-task-provider.spec.ts +5 -1
  415. package/src/common/coder-replace-prompt-template.ts +9 -9
  416. package/src/common/command-chat-agents.ts +6 -2
  417. package/src/{browser/ai-configuration/base/ai-configuration-base-widget.tsx → common/open-editors-hint-fragment-id.ts} +2 -22
  418. package/src/common/orchestrator-chat-agent.ts +5 -2
  419. package/src/common/universal-chat-agent.ts +5 -2
  420. package/src/common/universal-prompt-template.ts +3 -0
  421. package/src/common/workspace-preferences.ts +2 -2
  422. package/src/common/workspace-search-provider-util.spec.ts +61 -0
  423. package/src/common/workspace-search-provider-util.ts +3 -2
  424. package/src/node/github-repo-service-impl.ts +6 -2
  425. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts +0 -72
  426. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +0 -1
  427. package/lib/browser/ai-configuration/agent-configuration-widget.js +0 -620
  428. package/lib/browser/ai-configuration/agent-configuration-widget.js.map +0 -1
  429. package/lib/browser/ai-configuration/agent-configuration-widget.spec.d.ts +0 -2
  430. package/lib/browser/ai-configuration/agent-configuration-widget.spec.d.ts.map +0 -1
  431. package/lib/browser/ai-configuration/agent-configuration-widget.spec.js +0 -56
  432. package/lib/browser/ai-configuration/agent-configuration-widget.spec.js.map +0 -1
  433. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts +0 -31
  434. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts.map +0 -1
  435. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js +0 -55
  436. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js.map +0 -1
  437. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts +0 -13
  438. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts.map +0 -1
  439. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.js.map +0 -1
  440. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts +0 -23
  441. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts.map +0 -1
  442. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js +0 -60
  443. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js.map +0 -1
  444. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts +0 -55
  445. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts.map +0 -1
  446. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js +0 -96
  447. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js.map +0 -1
  448. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts +0 -44
  449. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts.map +0 -1
  450. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js +0 -66
  451. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js.map +0 -1
  452. package/lib/browser/ai-configuration/components/configuration-section.d.ts +0 -12
  453. package/lib/browser/ai-configuration/components/configuration-section.d.ts.map +0 -1
  454. package/lib/browser/ai-configuration/components/configuration-section.js.map +0 -1
  455. package/lib/browser/ai-configuration/components/empty-state.d.ts +0 -10
  456. package/lib/browser/ai-configuration/components/empty-state.d.ts.map +0 -1
  457. package/lib/browser/ai-configuration/components/empty-state.js.map +0 -1
  458. package/lib/browser/ai-configuration/components/expandable-section.d.ts +0 -13
  459. package/lib/browser/ai-configuration/components/expandable-section.d.ts.map +0 -1
  460. package/lib/browser/ai-configuration/components/expandable-section.js +0 -31
  461. package/lib/browser/ai-configuration/components/expandable-section.js.map +0 -1
  462. package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts +0 -26
  463. package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts.map +0 -1
  464. package/lib/browser/ai-configuration/model-aliases-configuration-widget.js +0 -198
  465. package/lib/browser/ai-configuration/model-aliases-configuration-widget.js.map +0 -1
  466. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts +0 -140
  467. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.d.ts.map +0 -1
  468. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js +0 -508
  469. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js.map +0 -1
  470. package/lib/browser/ai-configuration/skills-configuration-widget.d.ts +0 -29
  471. package/lib/browser/ai-configuration/skills-configuration-widget.d.ts.map +0 -1
  472. package/lib/browser/ai-configuration/skills-configuration-widget.js +0 -166
  473. package/lib/browser/ai-configuration/skills-configuration-widget.js.map +0 -1
  474. package/lib/browser/ai-configuration/skills-configuration-widget.spec.d.ts +0 -2
  475. package/lib/browser/ai-configuration/skills-configuration-widget.spec.d.ts.map +0 -1
  476. package/lib/browser/ai-configuration/skills-configuration-widget.spec.js +0 -191
  477. package/lib/browser/ai-configuration/skills-configuration-widget.spec.js.map +0 -1
  478. package/lib/browser/ai-configuration/template-settings-renderer.d.ts +0 -9
  479. package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +0 -1
  480. package/lib/browser/ai-configuration/template-settings-renderer.js +0 -78
  481. package/lib/browser/ai-configuration/template-settings-renderer.js.map +0 -1
  482. package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts +0 -20
  483. package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts.map +0 -1
  484. package/lib/browser/ai-configuration/token-usage-configuration-widget.js +0 -170
  485. package/lib/browser/ai-configuration/token-usage-configuration-widget.js.map +0 -1
  486. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +0 -52
  487. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +0 -1
  488. package/lib/browser/ai-configuration/tools-configuration-widget.js +0 -357
  489. package/lib/browser/ai-configuration/tools-configuration-widget.js.map +0 -1
  490. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts +0 -22
  491. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts.map +0 -1
  492. package/lib/browser/ai-configuration/variable-configuration-widget.js +0 -133
  493. package/lib/browser/ai-configuration/variable-configuration-widget.js.map +0 -1
  494. package/src/browser/ai-configuration/agent-configuration-widget.spec.ts +0 -71
  495. package/src/browser/ai-configuration/agent-configuration-widget.tsx +0 -928
  496. package/src/browser/ai-configuration/base/ai-card-grid-configuration-widget.tsx +0 -72
  497. package/src/browser/ai-configuration/base/ai-hierarchical-configuration-widget.tsx +0 -51
  498. package/src/browser/ai-configuration/base/ai-list-detail-configuration-widget.tsx +0 -140
  499. package/src/browser/ai-configuration/base/ai-table-configuration-widget.tsx +0 -107
  500. package/src/browser/ai-configuration/components/expandable-section.tsx +0 -51
  501. package/src/browser/ai-configuration/model-aliases-configuration-widget.tsx +0 -270
  502. package/src/browser/ai-configuration/prompt-fragments-configuration-widget.tsx +0 -736
  503. package/src/browser/ai-configuration/skills-configuration-widget.spec.ts +0 -248
  504. package/src/browser/ai-configuration/skills-configuration-widget.tsx +0 -229
  505. package/src/browser/ai-configuration/template-settings-renderer.tsx +0 -125
  506. package/src/browser/ai-configuration/token-usage-configuration-widget.tsx +0 -214
  507. package/src/browser/ai-configuration/tools-configuration-widget.tsx +0 -544
  508. package/src/browser/ai-configuration/variable-configuration-widget.tsx +0 -159
  509. package/src/browser/style/ai-configuration-cards.css +0 -60
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ var VariablesConfigurationCategory_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VariablesConfigurationCategory = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const jsx_runtime_1 = require("@theia/core/shared/react/jsx-runtime");
7
+ // *****************************************************************************
8
+ // Copyright (C) 2026 EclipseSource and others.
9
+ //
10
+ // This program and the accompanying materials are made available under the
11
+ // terms of the Eclipse Public License v. 2.0 which is available at
12
+ // http://www.eclipse.org/legal/epl-2.0.
13
+ //
14
+ // This Source Code may also be made available under the following Secondary
15
+ // Licenses when the conditions for such availability set forth in the Eclipse
16
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
17
+ // with the GNU Classpath Exception which is available at
18
+ // https://www.gnu.org/software/classpath/license.html.
19
+ //
20
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
21
+ // *****************************************************************************
22
+ const common_1 = require("@theia/ai-core/lib/common");
23
+ const core_1 = require("@theia/core");
24
+ const browser_1 = require("@theia/core/lib/browser");
25
+ const clipboard_service_1 = require("@theia/core/lib/browser/clipboard-service");
26
+ const common_2 = require("@theia/core/lib/common");
27
+ const inversify_1 = require("@theia/core/shared/inversify");
28
+ const React = require("@theia/core/shared/react");
29
+ const ai_configuration_category_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/ai-configuration-category");
30
+ const single_page_category_renderer_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/renderers/single-page-category-renderer");
31
+ const agent_chips_1 = require("./agent-chips");
32
+ const collapsible_list_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/components/collapsible-list");
33
+ /**
34
+ * The Variables category: a `single-page` category that renders every variable as a flat,
35
+ * expandable list rather than a tree of nodes with per-item detail pages. Each row shows the
36
+ * variable reference, a one-line description and count pills for its arguments and the agents
37
+ * that use it at a glance; expanding a row reveals the full description, its id, its arguments
38
+ * and the agents that use it as chips. Variables are read-only, so a dedicated detail page per
39
+ * item would be more navigation than the payload warrants.
40
+ */
41
+ let VariablesConfigurationCategory = VariablesConfigurationCategory_1 = class VariablesConfigurationCategory extends single_page_category_renderer_1.SinglePageCategoryRenderer {
42
+ constructor() {
43
+ super(...arguments);
44
+ this.id = ai_configuration_category_1.AiConfigurationCategoryId.VARIABLES;
45
+ this.label = core_1.nls.localizeByDefault('Variables');
46
+ this.description = core_1.nls.localize('theia/ai/ide/variableConfiguration/pageSubtitle', 'Values you can reference with {0}name in a prompt. They are resolved and inserted at request time.', common_1.PromptText.VARIABLE_CHAR);
47
+ this.iconClass = (0, browser_1.codicon)('symbol-variable');
48
+ this.order = ai_configuration_category_1.AiConfigurationCategoryOrder.VARIABLES;
49
+ this.kind = 'single-page';
50
+ this.onDidChangeEmitter = new core_1.Emitter();
51
+ this.onDidChange = this.onDidChangeEmitter.event;
52
+ this.toDispose = new common_2.DisposableCollection(this.onDidChangeEmitter);
53
+ }
54
+ get renderer() {
55
+ return this;
56
+ }
57
+ get search() {
58
+ return this;
59
+ }
60
+ init() {
61
+ this.toDispose.pushAll([
62
+ this.variableService.onDidChangeVariables(() => this.onDidChangeEmitter.fire()),
63
+ this.agentService.onDidChangeAgents(() => this.onDidChangeEmitter.fire())
64
+ ]);
65
+ }
66
+ dispose() {
67
+ this.toDispose.dispose();
68
+ }
69
+ getVariables() {
70
+ return this.variableService.getVariables().sort((a, b) => a.name.localeCompare(b.name));
71
+ }
72
+ /**
73
+ * Computes, per agent, which variables it uses: those explicitly declared in {@link Agent.variables}
74
+ * (matched by id) plus those referenced in its prompt templates as `{{name}}` (matched by name).
75
+ * Declared globals are rarely populated in practice, so the prompt-template references are the
76
+ * signal that actually surfaces the "used by" chips.
77
+ */
78
+ computeAgentUsage() {
79
+ return this.agentService.getAllAgents()
80
+ .slice()
81
+ .sort((a, b) => a.name.localeCompare(b.name))
82
+ .map(agent => ({
83
+ agent,
84
+ declaredIds: new Set(agent.variables ?? []),
85
+ referencedNames: this.getReferencedVariableNames(agent)
86
+ }));
87
+ }
88
+ /** Variable names referenced as `{{name}}` (or `{{name:arg}}`) across the agent's prompt templates. */
89
+ getReferencedVariableNames(agent) {
90
+ const names = new Set();
91
+ for (const promptVariantSet of agent.prompts ?? []) {
92
+ const fragments = [promptVariantSet.defaultVariant, ...(promptVariantSet.variants ?? [])];
93
+ for (const fragment of fragments) {
94
+ if (!fragment?.template) {
95
+ continue;
96
+ }
97
+ for (const match of (0, common_1.matchVariablesRegEx)(fragment.template)) {
98
+ const name = match[1].split(common_1.PromptText.VARIABLE_SEPARATOR_CHAR, 2)[0].trim();
99
+ if (name) {
100
+ names.add(name);
101
+ }
102
+ }
103
+ }
104
+ }
105
+ return names;
106
+ }
107
+ getAgentsForVariable(variable, usage) {
108
+ return usage
109
+ .filter(entry => entry.declaredIds.has(variable.id) || entry.referencedNames.has(variable.name))
110
+ .map(entry => entry.agent);
111
+ }
112
+ /** The prompt reference used to insert the variable, e.g. `#file`. */
113
+ getVariableReference(variable) {
114
+ return `${common_1.PromptText.VARIABLE_CHAR}${variable.name}`;
115
+ }
116
+ /**
117
+ * Case-insensitive match of a variable against the filter query, testing both the variable name
118
+ * and its description. An empty (or whitespace-only) query matches everything.
119
+ */
120
+ matchesVariable(variable, query) {
121
+ const needle = query.trim().toLocaleLowerCase();
122
+ if (!needle) {
123
+ return true;
124
+ }
125
+ const haystack = `${variable.name} ${VariablesConfigurationCategory_1.normalizeDescription(variable.description)}`.toLocaleLowerCase();
126
+ return haystack.includes(needle);
127
+ }
128
+ buildRow(variable, usage, onOpenAgent) {
129
+ const reference = this.getVariableReference(variable);
130
+ const description = VariablesConfigurationCategory_1.normalizeDescription(variable.description);
131
+ const agents = this.getAgentsForVariable(variable, usage);
132
+ const argCount = variable.args?.length ?? 0;
133
+ const pills = [];
134
+ if (argCount > 0) {
135
+ pills.push(argCount === 1
136
+ ? core_1.nls.localize('theia/ai/ide/variableConfiguration/argCountSingular', '1 argument')
137
+ : core_1.nls.localize('theia/ai/ide/variableConfiguration/argCountPlural', '{0} arguments', argCount));
138
+ }
139
+ if (agents.length > 0) {
140
+ pills.push(agents.length === 1 ? core_1.nls.localizeByDefault('1 agent') : core_1.nls.localizeByDefault('{0} agents', agents.length));
141
+ }
142
+ return {
143
+ id: variable.id,
144
+ title: reference,
145
+ description,
146
+ pills,
147
+ filterText: `${variable.name} ${description}`.toLocaleLowerCase(),
148
+ actions: (0, jsx_runtime_1.jsx)(CopyReferenceButton, { onCopy: () => this.copyReference(variable) }),
149
+ body: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: 'ai-variable-id-row', children: [(0, jsx_runtime_1.jsx)("span", { className: 'ai-variable-id-label', children: core_1.nls.localizeByDefault('ID') }), (0, jsx_runtime_1.jsx)("code", { className: 'ai-variable-id-value', children: variable.id })] }), argCount > 0 && (0, jsx_runtime_1.jsx)(VariableArgs, { variable: variable }), agents.length > 0 && (0, jsx_runtime_1.jsx)(UsedByAgents, { agents: agents, onOpenAgent: onOpenAgent })] })
150
+ };
151
+ }
152
+ /** Copies the variable's prompt reference (e.g. `#file`) to the clipboard. */
153
+ copyReference(variable) {
154
+ this.clipboardService.writeText(this.getVariableReference(variable));
155
+ }
156
+ renderSections(ctx) {
157
+ const variables = this.getVariables();
158
+ const usage = this.computeAgentUsage();
159
+ const onOpenAgent = (agentId) => ctx.navigate({ categoryId: ai_configuration_category_1.AiConfigurationCategoryId.AGENTS, itemId: agentId });
160
+ const groups = [
161
+ {
162
+ id: 'context',
163
+ title: core_1.nls.localize('theia/ai/ide/variableConfiguration/contextGroup', 'Context Variables'),
164
+ description: core_1.nls.localize('theia/ai/ide/variableConfiguration/contextGroupDescription', 'Referenced with {0}name in a prompt and also attachable to a request as context that the agent and its tools can inspect.', common_1.PromptText.VARIABLE_CHAR),
165
+ rows: variables.filter(variable => variable.isContextVariable).map(variable => this.buildRow(variable, usage, onOpenAgent))
166
+ },
167
+ {
168
+ id: 'plain',
169
+ title: core_1.nls.localize('theia/ai/ide/variableConfiguration/plainGroup', 'Plain Variables'),
170
+ description: core_1.nls.localize('theia/ai/ide/variableConfiguration/plainGroupDescription', 'Referenced with {0}name in a prompt and resolved inline to a text value at request time.', common_1.PromptText.VARIABLE_CHAR),
171
+ rows: variables.filter(variable => !variable.isContextVariable).map(variable => this.buildRow(variable, usage, onOpenAgent))
172
+ }
173
+ ];
174
+ return (0, jsx_runtime_1.jsx)(collapsible_list_1.CollapsibleList, { groups: groups, filterPlaceholder: core_1.nls.localize('theia/ai/ide/variableConfiguration/filterPlaceholder', 'Filter variables by name or description'), emptyMessage: core_1.nls.localize('theia/ai/ide/variableConfiguration/noVariables', 'No variables are available.'), filterEmptyMessage: query => core_1.nls.localize('theia/ai/ide/variableConfiguration/noMatches', 'No variables match "{0}".', query) });
175
+ }
176
+ getSearchItems() {
177
+ const typeLabel = core_1.nls.localizeByDefault('Variable');
178
+ return this.getVariables().map(variable => ({
179
+ label: variable.name,
180
+ typeLabel,
181
+ categoryId: this.id,
182
+ target: { categoryId: this.id, highlight: { rowId: variable.id } },
183
+ keywords: `${variable.id} ${variable.description ?? ''}`
184
+ }));
185
+ }
186
+ /**
187
+ * Trims and collapses internal whitespace in a description. Descriptions are contributed by
188
+ * third-party extensions, so they may contain runs of whitespace from indented template literals.
189
+ */
190
+ static normalizeDescription(text) {
191
+ return (text ?? '').replace(/\s+/g, ' ').trim();
192
+ }
193
+ };
194
+ exports.VariablesConfigurationCategory = VariablesConfigurationCategory;
195
+ tslib_1.__decorate([
196
+ (0, inversify_1.inject)(common_1.AIVariableService),
197
+ tslib_1.__metadata("design:type", Object)
198
+ ], VariablesConfigurationCategory.prototype, "variableService", void 0);
199
+ tslib_1.__decorate([
200
+ (0, inversify_1.inject)(common_1.AgentService),
201
+ tslib_1.__metadata("design:type", Object)
202
+ ], VariablesConfigurationCategory.prototype, "agentService", void 0);
203
+ tslib_1.__decorate([
204
+ (0, inversify_1.inject)(clipboard_service_1.ClipboardService),
205
+ tslib_1.__metadata("design:type", Object)
206
+ ], VariablesConfigurationCategory.prototype, "clipboardService", void 0);
207
+ tslib_1.__decorate([
208
+ (0, inversify_1.postConstruct)(),
209
+ tslib_1.__metadata("design:type", Function),
210
+ tslib_1.__metadata("design:paramtypes", []),
211
+ tslib_1.__metadata("design:returntype", void 0)
212
+ ], VariablesConfigurationCategory.prototype, "init", null);
213
+ exports.VariablesConfigurationCategory = VariablesConfigurationCategory = VariablesConfigurationCategory_1 = tslib_1.__decorate([
214
+ (0, inversify_1.injectable)()
215
+ ], VariablesConfigurationCategory);
216
+ /** A copy-to-clipboard affordance for the variable reference, briefly swapping to a check on success. */
217
+ const CopyReferenceButton = ({ onCopy }) => {
218
+ const [copied, setCopied] = React.useState(false);
219
+ const timeoutRef = React.useRef(undefined);
220
+ React.useEffect(() => () => {
221
+ if (timeoutRef.current !== undefined) {
222
+ clearTimeout(timeoutRef.current);
223
+ }
224
+ }, []);
225
+ const label = core_1.nls.localize('theia/ai/ide/variableConfiguration/copyVariableName', 'Copy variable name');
226
+ return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(collapsible_list_1.CollapsibleRowAction, { iconClass: (0, browser_1.codicon)(copied ? 'check' : 'copy'), label: label, onActivate: () => {
227
+ onCopy();
228
+ setCopied(true);
229
+ if (timeoutRef.current !== undefined) {
230
+ clearTimeout(timeoutRef.current);
231
+ }
232
+ timeoutRef.current = setTimeout(() => setCopied(false), 1500);
233
+ } }), (0, jsx_runtime_1.jsx)("span", { className: 'ai-variable-visually-hidden', "aria-live": 'polite', children: copied ? core_1.nls.localizeByDefault('Copied') : '' })] });
234
+ };
235
+ const VariableArgs = ({ variable }) => {
236
+ if (!variable.args || variable.args.length === 0) {
237
+ return undefined;
238
+ }
239
+ return (0, jsx_runtime_1.jsxs)("div", { className: 'ai-variable-section', children: [(0, jsx_runtime_1.jsx)("div", { className: 'ai-variable-section-label', children: core_1.nls.localizeByDefault('Arguments') }), (0, jsx_runtime_1.jsx)("div", { className: 'ai-variable-args-container', children: variable.args.map(arg => (0, jsx_runtime_1.jsxs)("div", { className: 'ai-variable-arg-row', children: [(0, jsx_runtime_1.jsx)("code", { className: 'ai-variable-arg-name', children: arg.name }), (0, jsx_runtime_1.jsx)("span", { className: `ai-variable-arg-badge ${arg.isOptional ? 'optional' : 'required'}`, children: arg.isOptional
240
+ ? core_1.nls.localize('theia/ai/ide/variableConfiguration/optional', 'optional')
241
+ : core_1.nls.localize('theia/ai/ide/variableConfiguration/required', 'required') }), (0, jsx_runtime_1.jsxs)("div", { className: 'ai-variable-arg-description', children: [VariablesConfigurationCategory.normalizeDescription(arg.description), arg.enum && arg.enum.length > 0 && (0, jsx_runtime_1.jsx)("span", { className: 'ai-variable-arg-enum', children: core_1.nls.localize('theia/ai/ide/variableConfiguration/argEnum', 'One of: {0}', arg.enum.join(', ')) })] })] }, arg.name)) })] });
242
+ };
243
+ /** The agents that reference the variable, rendered as navigable chips. */
244
+ const UsedByAgents = ({ agents, onOpenAgent }) => (0, jsx_runtime_1.jsxs)("div", { className: 'ai-variable-section', children: [(0, jsx_runtime_1.jsx)("div", { className: 'ai-variable-section-label', children: core_1.nls.localize('theia/ai/ide/variableConfiguration/usedByAgents', 'Used by Agents') }), (0, jsx_runtime_1.jsx)("div", { className: 'ai-variable-agent-chips', children: agents.map(agent => (0, jsx_runtime_1.jsx)(agent_chips_1.AgentChip, { agent: agent, onOpenAgent: onOpenAgent }, agent.id)) })] });
245
+ //# sourceMappingURL=variables-configuration-category.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables-configuration-category.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/variables-configuration-category.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=variables-configuration-category.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables-configuration-category.spec.d.ts","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/variables-configuration-category.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
19
+ let disableJSDOM = (0, jsdom_1.enableJSDOM)();
20
+ const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
21
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
22
+ const chai_1 = require("chai");
23
+ const ai_configuration_category_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/ai-configuration-category");
24
+ const variables_configuration_category_1 = require("./variables-configuration-category");
25
+ disableJSDOM();
26
+ function variable(id, name, description = '') {
27
+ return { id, name, description };
28
+ }
29
+ function agent(id, name, options = {}) {
30
+ return {
31
+ id,
32
+ name,
33
+ variables: options.variables ?? [],
34
+ prompts: (options.templates ?? []).map((template, index) => ({ id: `${id}-${index}`, defaultVariant: { id: `${id}-${index}-v`, template } }))
35
+ };
36
+ }
37
+ function createCategory(variables, agents = []) {
38
+ const category = new variables_configuration_category_1.VariablesConfigurationCategory();
39
+ const variableService = { getVariables: () => variables };
40
+ const agentService = { getAllAgents: () => agents };
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
+ category.variableService = variableService;
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ category.agentService = agentService;
45
+ return category;
46
+ }
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ function agentsForVariable(category, target) {
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
+ const anyCategory = category;
51
+ return anyCategory.getAgentsForVariable(target, anyCategory.computeAgentUsage()).map((a) => a.id);
52
+ }
53
+ describe('VariablesConfigurationCategory', () => {
54
+ before(() => disableJSDOM = (0, jsdom_1.enableJSDOM)());
55
+ after(() => disableJSDOM());
56
+ it('declares the variables single-page metadata', () => {
57
+ const category = createCategory([]);
58
+ (0, chai_1.expect)(category.id).to.equal(ai_configuration_category_1.AiConfigurationCategoryId.VARIABLES);
59
+ (0, chai_1.expect)(category.kind).to.equal('single-page');
60
+ (0, chai_1.expect)(category.renderer).to.equal(category);
61
+ });
62
+ it('indexes one search item per variable, sorted by name and highlighting the row', () => {
63
+ const items = createCategory([variable('b', 'Beta'), variable('a', 'Alpha', 'the alpha')]).getSearchItems();
64
+ (0, chai_1.expect)(items.map(i => i.label)).to.deep.equal(['Alpha', 'Beta']);
65
+ (0, chai_1.expect)(items[0].target).to.deep.equal({ categoryId: ai_configuration_category_1.AiConfigurationCategoryId.VARIABLES, highlight: { rowId: 'a' } });
66
+ (0, chai_1.expect)(items[0].keywords).to.contain('a').and.to.contain('the alpha');
67
+ });
68
+ it('associates an agent with a variable referenced in its prompt template', () => {
69
+ const productName = variable('product-name-provider', 'productName');
70
+ const category = createCategory([productName], [
71
+ agent('coder', 'Coder', { templates: ['You are running in {{productName}} today.'] }),
72
+ agent('other', 'Other', { templates: ['References {{today}} only.'] })
73
+ ]);
74
+ (0, chai_1.expect)(agentsForVariable(category, productName)).to.deep.equal(['coder']);
75
+ });
76
+ it('associates an agent that declares the variable id in Agent.variables', () => {
77
+ const file = variable('file-provider', 'file');
78
+ const category = createCategory([file], [agent('coder', 'Coder', { variables: ['file-provider'] })]);
79
+ (0, chai_1.expect)(agentsForVariable(category, file)).to.deep.equal(['coder']);
80
+ });
81
+ it('ignores template references with an argument suffix beyond the variable name', () => {
82
+ const file = variable('file-provider', 'file');
83
+ const category = createCategory([file], [agent('coder', 'Coder', { templates: ['Content: {{file:/tmp/x.ts}}'] })]);
84
+ (0, chai_1.expect)(agentsForVariable(category, file)).to.deep.equal(['coder']);
85
+ });
86
+ describe('filter matching', () => {
87
+ const category = createCategory([]);
88
+ it('matches everything for an empty or whitespace-only query', () => {
89
+ const file = variable('file-provider', 'file', 'The current file');
90
+ (0, chai_1.expect)(category.matchesVariable(file, '')).to.be.true;
91
+ (0, chai_1.expect)(category.matchesVariable(file, ' ')).to.be.true;
92
+ });
93
+ it('matches the variable name case-insensitively', () => {
94
+ const file = variable('file-provider', 'file', 'The current file');
95
+ (0, chai_1.expect)(category.matchesVariable(file, 'FIL')).to.be.true;
96
+ });
97
+ it('matches the description case-insensitively', () => {
98
+ const file = variable('file-provider', 'file', 'The Current File');
99
+ (0, chai_1.expect)(category.matchesVariable(file, 'current')).to.be.true;
100
+ });
101
+ it('does not match when neither name nor description contain the query', () => {
102
+ const file = variable('file-provider', 'file', 'The current file');
103
+ (0, chai_1.expect)(category.matchesVariable(file, 'agent')).to.be.false;
104
+ });
105
+ });
106
+ describe('description normalization', () => {
107
+ it('collapses runs of whitespace and trims', () => {
108
+ (0, chai_1.expect)(variables_configuration_category_1.VariablesConfigurationCategory.normalizeDescription(' The absolute path of the currently opened file. '))
109
+ .to.equal('The absolute path of the currently opened file.');
110
+ });
111
+ it('returns an empty string for an undefined description', () => {
112
+ (0, chai_1.expect)(variables_configuration_category_1.VariablesConfigurationCategory.normalizeDescription(undefined)).to.equal('');
113
+ });
114
+ it('matches variables whose description contains collapsible whitespace', () => {
115
+ const spaced = variable('file-provider', 'file', 'The absolute path of the current file.');
116
+ (0, chai_1.expect)(createCategory([]).matchesVariable(spaced, 'path of the current')).to.be.true;
117
+ });
118
+ });
119
+ describe('copy reference', () => {
120
+ it('copies the prompt reference of the variable to the clipboard', () => {
121
+ const written = [];
122
+ const category = createCategory([]);
123
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
124
+ category.clipboardService = { writeText: (text) => written.push(text) };
125
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
126
+ category.copyReference(variable('file-provider', 'file'));
127
+ (0, chai_1.expect)(written).to.deep.equal(['#file']);
128
+ });
129
+ });
130
+ });
131
+ //# sourceMappingURL=variables-configuration-category.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables-configuration-category.spec.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/variables-configuration-category.spec.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import { NotificationType } from '@theia/ai-core/lib/common';
2
- import * as React from '@theia/core/shared/react';
2
+ import { AiSettingsRowService } from '@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-settings-row-service';
3
3
  export interface AgentNotificationSettingsProps {
4
4
  agentId: string;
5
5
  currentNotificationType?: NotificationType;
6
6
  onNotificationTypeChange: (agentId: string, notificationType: NotificationType | undefined) => Promise<void>;
7
+ /** Opens the global AI notification setting (linked from the description). */
7
8
  onOpenNotificationSettings: () => void;
9
+ /** Backs the row's gear menu (its "Reset Setting" resets this agent's override). */
10
+ settingsRowService: AiSettingsRowService;
8
11
  }
9
- export declare const AgentNotificationSettings: ({ agentId, currentNotificationType, onNotificationTypeChange, onOpenNotificationSettings }: AgentNotificationSettingsProps) => React.JSX.Element;
12
+ /** The agent's completion-notification setting, rendered as a normal setting row whose gear menu resets the override. */
13
+ export declare const AgentNotificationSettings: ({ agentId, currentNotificationType, onNotificationTypeChange, onOpenNotificationSettings, settingsRowService }: AgentNotificationSettingsProps) => import("react").JSX.Element;
10
14
  //# sourceMappingURL=agent-notification-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-notification-settings.d.ts","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/components/agent-notification-settings.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACH,gBAAgB,EAInB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,MAAM,WAAW,8BAA8B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IAC3C,wBAAwB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7G,0BAA0B,EAAE,MAAM,IAAI,CAAC;CAC1C;AAkBD,eAAO,MAAM,yBAAyB,GAAI,4FAA4F,8BAA8B,sBAsBnK,CAAC"}
1
+ {"version":3,"file":"agent-notification-settings.d.ts","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/components/agent-notification-settings.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACH,gBAAgB,EAInB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mFAAmF,CAAC;AAEzH,MAAM,WAAW,8BAA8B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IAC3C,wBAAwB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7G,8EAA8E;IAC9E,0BAA0B,EAAE,MAAM,IAAI,CAAC;IACvC,oFAAoF;IACpF,kBAAkB,EAAE,oBAAoB,CAAC;CAC5C;AAkBD,yHAAyH;AACzH,eAAO,MAAM,yBAAyB,GAAI,gHAEvC,8BAA8B,gCA8BhC,CAAC"}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentNotificationSettings = void 0;
4
+ const jsx_runtime_1 = require("@theia/core/shared/react/jsx-runtime");
2
5
  // *****************************************************************************
3
6
  // Copyright (C) 2026 EclipseSource GmbH.
4
7
  //
@@ -14,12 +17,10 @@
14
17
  //
15
18
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
19
  // *****************************************************************************
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.AgentNotificationSettings = void 0;
19
20
  const common_1 = require("@theia/ai-core/lib/common");
20
21
  const core_1 = require("@theia/core");
21
- const select_component_1 = require("@theia/core/lib/browser/widgets/select-component");
22
- const React = require("@theia/core/shared/react");
22
+ const ai_configuration_controls_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-configuration-controls");
23
+ const ai_configuration_setting_row_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-configuration-setting-row");
23
24
  const DEFAULT_VALUE = 'default';
24
25
  const NOTIFICATION_SELECT_OPTIONS = [
25
26
  {
@@ -33,25 +34,18 @@ const NOTIFICATION_SELECT_OPTIONS = [
33
34
  description: common_1.NOTIFICATION_TYPE_DESCRIPTIONS[type],
34
35
  })),
35
36
  ];
36
- const AgentNotificationSettings = ({ agentId, currentNotificationType, onNotificationTypeChange, onOpenNotificationSettings }) => {
37
- const handleChange = (option, _index) => {
38
- const notificationType = option.value === DEFAULT_VALUE ? undefined : option.value;
37
+ /** The agent's completion-notification setting, rendered as a normal setting row whose gear menu resets the override. */
38
+ const AgentNotificationSettings = ({ agentId, currentNotificationType, onNotificationTypeChange, onOpenNotificationSettings, settingsRowService }) => {
39
+ const handleChange = (value) => {
40
+ const notificationType = value === DEFAULT_VALUE ? undefined : value;
39
41
  onNotificationTypeChange(agentId, notificationType);
40
42
  };
41
- return (React.createElement("div", { className: "ai-llm-requirement-item" },
42
- React.createElement("div", { className: "ai-configuration-value-row" },
43
- React.createElement("label", { className: "ai-configuration-value-row-label" },
44
- core_1.nls.localizeByDefault('Notifications'),
45
- ":"),
46
- React.createElement(select_component_1.SelectComponent, { className: "ai-configuration-select", options: NOTIFICATION_SELECT_OPTIONS, defaultValue: currentNotificationType ?? DEFAULT_VALUE, onChange: handleChange })),
47
- React.createElement(NotificationDescription, { onOpenNotificationSettings: onOpenNotificationSettings })));
43
+ const isOverridden = currentNotificationType !== undefined;
44
+ return (0, jsx_runtime_1.jsx)(ai_configuration_setting_row_1.AiConfigurationSettingRow, { title: core_1.nls.localizeByDefault('Notifications'), description: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [core_1.nls.localize('theia/ai/core/agentConfiguration/completionNotificationIntro', 'How you want to be notified when this agent needs your attention (it completes its task or requests input). "Default" uses the global '), (0, jsx_runtime_1.jsx)("a", { href: '#', onClick: event => { event.preventDefault(); onOpenNotificationSettings(); }, children: core_1.nls.localize('theia/ai/core/agentConfiguration/notificationSettingsLink', 'AI notification setting') }), "."] }), modified: isOverridden, below: (0, jsx_runtime_1.jsx)(ai_configuration_controls_1.AiEnumSelect, { ariaLabel: core_1.nls.localizeByDefault('Notifications'), options: NOTIFICATION_SELECT_OPTIONS.map(option => ({
45
+ value: String(option.value ?? ''),
46
+ label: option.label ?? String(option.value ?? ''),
47
+ title: option.description
48
+ })), value: currentNotificationType ?? DEFAULT_VALUE, onCommit: handleChange }), onOpenMenu: gear => settingsRowService.openResetMenu(gear, () => onNotificationTypeChange(agentId, undefined)) });
48
49
  };
49
50
  exports.AgentNotificationSettings = AgentNotificationSettings;
50
- const NotificationDescription = ({ onOpenNotificationSettings }) => {
51
- const linkText = core_1.nls.localize('theia/ai/core/agentConfiguration/notificationSettingsLink', 'AI notification setting');
52
- return (React.createElement("div", { className: "ai-configuration-description" },
53
- core_1.nls.localize('theia/ai/core/agentConfiguration/completionNotificationDescriptionPrefix', 'Select how you want to be notified when this agent needs your attention, i.e. it completes its task or requests your input. "Default" uses the '),
54
- React.createElement("a", { href: "#", onClick: e => { e.preventDefault(); onOpenNotificationSettings(); } }, linkText),
55
- "."));
56
- };
57
51
  //# sourceMappingURL=agent-notification-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-notification-settings.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/components/agent-notification-settings.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,sDAKmC;AACnC,sCAAkC;AAClC,uFAAiG;AACjG,kDAAkD;AASlD,MAAM,aAAa,GAAG,SAAS,CAAC;AAEhC,MAAM,2BAA2B,GAAmB;IAChD;QACI,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,UAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACvC,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,iEAAiE,EACvF,yCAAyC,CAAC;KACjD;IACD,GAAG,2BAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,iCAAwB,CAAC,IAAI,CAAC;QACrC,WAAW,EAAE,uCAA8B,CAAC,IAAI,CAAC;KACpD,CAAC,CAAC;CACN,CAAC;AAEK,MAAM,yBAAyB,GAAG,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,0BAA0B,EAAkC,EAAE,EAAE;IACpK,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAE,MAAc,EAAQ,EAAE;QAChE,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAyB,CAAC;QACvG,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,OAAO,CACH,6BAAK,SAAS,EAAC,yBAAyB;QACpC,6BAAK,SAAS,EAAC,4BAA4B;YACvC,+BAAO,SAAS,EAAC,kCAAkC;gBAC9C,UAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC;oBACnC;YACR,oBAAC,kCAAe,IACZ,SAAS,EAAC,yBAAyB,EACnC,OAAO,EAAE,2BAA2B,EACpC,YAAY,EAAE,uBAAuB,IAAI,aAAa,EACtD,QAAQ,EAAE,YAAY,GACxB,CACA;QACN,oBAAC,uBAAuB,IAAC,0BAA0B,EAAE,0BAA0B,GAAI,CACjF,CACT,CAAC;AACN,CAAC,CAAC;AAtBW,QAAA,yBAAyB,6BAsBpC;AAEF,MAAM,uBAAuB,GAAG,CAAC,EAAE,0BAA0B,EAA8C,EAAsB,EAAE;IAC/H,MAAM,QAAQ,GAAG,UAAG,CAAC,QAAQ,CAAC,2DAA2D,EAAE,yBAAyB,CAAC,CAAC;IACtH,OAAO,CACH,6BAAK,SAAS,EAAC,8BAA8B;QACxC,UAAG,CAAC,QAAQ,CAAC,0EAA0E,EACpF,iJAAiJ,CAAC;QACtJ,2BAAG,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,IAAG,QAAQ,CAAK;YAC7F,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"agent-notification-settings.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/components/agent-notification-settings.tsx"],"names":[],"mappings":";;;;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAEhF,sDAKmC;AACnC,sCAAkC;AAElC,mIAAmH;AACnH,yIAAmI;AAanI,MAAM,aAAa,GAAG,SAAS,CAAC;AAEhC,MAAM,2BAA2B,GAAmB;IAChD;QACI,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,UAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACvC,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,iEAAiE,EACvF,yCAAyC,CAAC;KACjD;IACD,GAAG,2BAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,iCAAwB,CAAC,IAAI,CAAC;QACrC,WAAW,EAAE,uCAA8B,CAAC,IAAI,CAAC;KACpD,CAAC,CAAC;CACN,CAAC;AAEF,yHAAyH;AAClH,MAAM,yBAAyB,GAAG,CAAC,EACtC,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,kBAAkB,EAC7E,EAAE,EAAE;IACjC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAQ,EAAE;QACzC,MAAM,gBAAgB,GAAG,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAyB,CAAC;QACzF,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,uBAAuB,KAAK,SAAS,CAAC;IAC3D,OAAO,uBAAC,wDAAyB,IAC7B,KAAK,EAAE,UAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAC7C,WAAW,EAAE,6DAGR,UAAG,CAAC,QAAQ,CAAC,8DAA8D,EACxE,wIAAwI,CAAC,EAC7I,8BAAG,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,YAClF,UAAG,CAAC,QAAQ,CAAC,2DAA2D,EAAE,yBAAyB,CAAC,GACrG,SACL,EACH,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,uBAAC,wCAAY,IAChB,SAAS,EAAE,UAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,EACjD,OAAO,EAAE,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjD,KAAK,EAAE,MAAM,CAAC,WAAW;aAC5B,CAAC,CAAC,EACH,KAAK,EAAE,uBAAuB,IAAI,aAAa,EAC/C,QAAQ,EAAE,YAAY,GACxB,EACF,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,GAChH,CAAC;AACP,CAAC,CAAC;AAhCW,QAAA,yBAAyB,6BAgCpC"}
@@ -1,12 +1,36 @@
1
1
  import * as React from '@theia/core/shared/react';
2
- import { Agent, AISettingsService, FrontendLanguageModelRegistry, LanguageModel } from '@theia/ai-core/lib/common';
2
+ import { Agent, AISettingsService, FrontendLanguageModelRegistry, LanguageModel, ReasoningLevel, ReasoningSupport } from '@theia/ai-core/lib/common';
3
3
  import { LanguageModelAlias } from '@theia/ai-core/lib/common/language-model-alias';
4
+ import { AiSettingsRowService } from '@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-settings-row-service';
4
5
  export interface LanguageModelSettingsProps {
5
6
  agent: Agent;
6
7
  languageModels?: LanguageModel[];
7
8
  aiSettingsService: AISettingsService;
8
9
  languageModelRegistry: FrontendLanguageModelRegistry;
9
10
  languageModelAliases: LanguageModelAlias[];
11
+ /** Backs each purpose row's gear menu (its "Reset Setting" drops that purpose's override). */
12
+ settingsRowService: AiSettingsRowService;
10
13
  }
14
+ /**
15
+ * The agent's persisted reasoning level, shown right below its models because that is the model
16
+ * capability it depends on. The chat input's selector writes this same per-agent setting, so without this
17
+ * row there is no way to see what it stored, change it outside a chat, or clear it again.
18
+ *
19
+ * Shown only while the resolved model declares reasoning support, matching the chat input, which hides its
20
+ * selector in that case. The select carries `theia-ReasoningLevelSelector` so it shows the same per-level
21
+ * lightbulb glyphs as the chat input.
22
+ *
23
+ * Exported for tests: the glyph class it builds is the contract with `ai-chat-ui`'s shared CSS.
24
+ */
25
+ export declare const ReasoningRow: React.FC<{
26
+ support: ReasoningSupport;
27
+ /** Level stored for this agent; `undefined` means the level is inherited. */
28
+ savedLevel?: ReasoningLevel;
29
+ /** Level that applies when nothing is stored: the matching preference default, else the model's. */
30
+ inheritedLevel: ReasoningLevel;
31
+ onSelect: (level: ReasoningLevel) => void;
32
+ onReset: () => void;
33
+ settingsRowService: AiSettingsRowService;
34
+ }>;
11
35
  export declare const LanguageModelRenderer: React.FC<LanguageModelSettingsProps>;
12
36
  //# sourceMappingURL=language-model-renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"language-model-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/ai-configuration/language-model-renderer.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,aAAa,EAA4B,MAAM,2BAA2B,CAAC;AAC7I,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAIpF,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,qBAAqB,EAAE,6BAA6B,CAAC;IACrD,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;CAC9C;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAkItE,CAAC"}
1
+ {"version":3,"file":"language-model-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/ai-configuration/language-model-renderer.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EACH,KAAK,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,aAAa,EAGb,cAAc,EAEd,gBAAgB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAKpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mFAAmF,CAAC;AAEzH,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,qBAAqB,EAAE,6BAA6B,CAAC;IACrD,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAC3C,8FAA8F;IAC9F,kBAAkB,EAAE,oBAAoB,CAAC;CAC5C;AAsCD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,oGAAoG;IACpG,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kBAAkB,EAAE,oBAAoB,CAAC;CAC5C,CA4BA,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA4KtE,CAAC"}