@codingame/monaco-vscode-chat-service-override 32.0.2 → 33.0.4

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 (257) hide show
  1. package/index.d.ts +1 -1
  2. package/index.js +15 -5
  3. package/package.json +5 -5
  4. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +170 -24
  5. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +372 -66
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +18 -1
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +160 -31
  8. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.d.ts +8 -0
  9. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +19 -0
  10. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +134 -0
  11. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +257 -0
  12. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +84 -3
  13. package/vscode/src/vs/platform/agentHost/common/agentService.js +9 -1
  14. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +61 -1
  15. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +61 -1
  16. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.js +3 -1
  17. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +1 -1
  18. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +1 -1
  19. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +1 -1
  20. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +4 -4
  21. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +1 -1
  22. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +2 -7
  23. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +8 -29
  24. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  25. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +60 -60
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +10 -6
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +10 -1
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +180 -174
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +12 -12
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +12 -12
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
  44. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  45. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  46. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
  47. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +64 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +330 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.d.ts +24 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +77 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +6 -6
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +51 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +267 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +4 -3
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +53 -53
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +5 -4
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +30 -28
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +26 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -6
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +150 -119
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +45 -44
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +0 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +58 -76
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +2 -2
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +2 -6
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +88 -70
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +82 -56
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +10 -8
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +2 -6
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +89 -71
  89. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.d.ts +1 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +2 -2843
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.d.ts +1 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +2934 -0
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -4
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +53 -20
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +131 -61
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +23 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +91 -15
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -21
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -28
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +14 -14
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +15 -4
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +203 -163
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +1 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +31 -54
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.d.ts +1 -0
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +88 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  146. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +17 -4
  147. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.d.ts +8 -0
  148. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +91 -0
  149. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +52 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +82 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +21 -1
  152. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +55 -18
  153. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  154. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  155. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.d.ts +51 -0
  156. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.js +106 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +4 -2
  158. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  159. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  160. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +38 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +59 -0
  162. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  163. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +25 -25
  164. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
  165. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
  166. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  167. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  168. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  169. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  170. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileContributions.js +4 -6
  171. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  172. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  173. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  174. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  175. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  176. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  177. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  178. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +1 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +38 -28
  180. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -7
  181. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.d.ts +5 -1
  182. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.js +106 -7
  183. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -8
  184. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.d.ts +28 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +75 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  187. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.d.ts → chatOutputPartStateCache.d.ts} +5 -6
  188. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.js → chatOutputPartStateCache.js} +19 -11
  189. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  190. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +58 -26
  191. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +9 -9
  192. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
  193. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  194. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  196. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +18 -9
  197. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  198. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +13 -5
  199. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +6 -2
  200. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
  201. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +19 -18
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -2
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  205. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +6 -7
  206. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +14 -15
  207. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +155 -156
  208. package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.d.ts +6 -0
  209. package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.js +12 -0
  210. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.d.ts +88 -0
  211. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.js +25 -0
  212. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  213. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.d.ts +1 -0
  214. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +237 -0
  215. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.d.ts +66 -0
  216. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +600 -0
  217. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.d.ts +18 -0
  218. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +47 -0
  219. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.d.ts +22 -0
  220. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.js +7 -0
  221. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/media/imageCarousel.css +298 -0
  222. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  223. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  224. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  225. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  230. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +12 -1
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +78 -7
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +15 -11
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -9
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -16
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.d.ts +60 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.js +286 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.d.ts +24 -0
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.js +285 -0
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.d.ts +19 -12
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.js +415 -47
  252. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.d.ts +2 -7
  253. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.js +1 -1
  254. package/vscode/src/vs/base/common/defaultAccount.d.ts +0 -69
  255. package/vscode/src/vs/base/common/defaultAccount.js +0 -12
  256. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +0 -15
  257. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +0 -85
@@ -36,8 +36,7 @@ export declare class McpListWidget extends Disposable {
36
36
  readonly onDidChangeItemCount: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<number>;
37
37
  private readonly _onDidRequestShowPlugin;
38
38
  readonly onDidRequestShowPlugin: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<IAgentPluginItem>;
39
- private sectionHeader;
40
- private sectionDescription;
39
+ private sectionTitleHeader;
41
40
  private sectionLink;
42
41
  private searchAndButtonContainer;
43
42
  private searchInput;
@@ -60,6 +59,7 @@ export declare class McpListWidget extends Disposable {
60
59
  private browseMode;
61
60
  private lastHeight;
62
61
  private lastWidth;
62
+ private lastHeaderHeight;
63
63
  private _layoutDeferred;
64
64
  private readonly collapsedGroups;
65
65
  private galleryCts;
@@ -88,10 +88,6 @@ export declare class McpListWidget extends Disposable {
88
88
  * Toggles the collapsed state of a group.
89
89
  */
90
90
  private toggleGroup;
91
- /**
92
- * Prepends an element to the search row (left of the search input).
93
- */
94
- prependToSearchRow(element: HTMLElement): void;
95
91
  /**
96
92
  * Whether the widget is currently in marketplace browse mode.
97
93
  */
@@ -2,7 +2,7 @@
2
2
  import { registerCss } from '@codingame/monaco-vscode-api/css';
3
3
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
4
  import * as aiCustomizationManagement from './media/aiCustomizationManagement.css';
5
- import { $ as $$1, append, addDisposableListener, clearNode, createTextNode, getWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
+ import { $ as $$1, append, createTextNode, addDisposableListener, getWindow, DisposableResizeObserver, clearNode } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
6
  import { DisposableStore, Disposable, MutableDisposable, isDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
7
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
8
8
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
@@ -119,7 +119,7 @@ let McpServerItemRenderer = class McpServerItemRenderer {
119
119
  const plugin = this.agentPluginService.plugins.get().find(p => ( p.uri.toString()) === pluginUriStr);
120
120
  if (plugin) {
121
121
  return {
122
- content: `${element.label}\n${( localize(5593, "Plugin: {0}", plugin.label))}`,
122
+ content: `${element.label}\n${( localize(5641, "Plugin: {0}", plugin.label))}`,
123
123
  appearance: {
124
124
  compact: true,
125
125
  skipFadeInAnimation: true
@@ -161,26 +161,26 @@ let McpServerItemRenderer = class McpServerItemRenderer {
161
161
  }
162
162
  statusElement.style.display = "";
163
163
  if (state === "disabled") {
164
- statusElement.textContent = ( localize(5594, "Disabled"));
164
+ statusElement.textContent = ( localize(5642, "Disabled"));
165
165
  statusElement.classList.add("disabled");
166
166
  return;
167
167
  }
168
168
  switch (state) {
169
169
  case McpConnectionState.Kind.Running:
170
- statusElement.textContent = ( localize(5595, "Running"));
170
+ statusElement.textContent = ( localize(5643, "Running"));
171
171
  statusElement.classList.add("running");
172
172
  break;
173
173
  case McpConnectionState.Kind.Starting:
174
- statusElement.textContent = ( localize(5596, "Starting"));
174
+ statusElement.textContent = ( localize(5644, "Starting"));
175
175
  statusElement.classList.add("starting");
176
176
  break;
177
177
  case McpConnectionState.Kind.Error:
178
- statusElement.textContent = ( localize(5597, "Error"));
178
+ statusElement.textContent = ( localize(5645, "Error"));
179
179
  statusElement.classList.add("error");
180
180
  break;
181
181
  case McpConnectionState.Kind.Stopped:
182
182
  default:
183
- statusElement.textContent = ( localize(5598, "Stopped"));
183
+ statusElement.textContent = ( localize(5646, "Stopped"));
184
184
  statusElement.classList.add("stopped");
185
185
  break;
186
186
  }
@@ -231,7 +231,7 @@ class McpGalleryItemRenderer {
231
231
  templateData.elementDisposables.add(templateData.installButton.onDidClick(async () => {
232
232
  const canInstall = this.mcpWorkbenchService.canInstall(element.server);
233
233
  if (canInstall === true) {
234
- templateData.installButton.label = ( localize(5599, "Installing..."));
234
+ templateData.installButton.label = ( localize(5647, "Installing..."));
235
235
  templateData.installButton.enabled = false;
236
236
  await this.mcpWorkbenchService.install(element.server);
237
237
  }
@@ -245,15 +245,15 @@ class McpGalleryItemRenderer {
245
245
  updateInstallButton(button, server) {
246
246
  switch (server.installState) {
247
247
  case McpServerInstallState.Installed:
248
- button.label = ( localize(5600, "Installed"));
248
+ button.label = ( localize(5648, "Installed"));
249
249
  button.enabled = false;
250
250
  break;
251
251
  case McpServerInstallState.Installing:
252
- button.label = ( localize(5599, "Installing..."));
252
+ button.label = ( localize(5647, "Installing..."));
253
253
  button.enabled = false;
254
254
  break;
255
255
  default:
256
- button.label = ( localize(5601, "Install"));
256
+ button.label = ( localize(5649, "Install"));
257
257
  button.enabled = true;
258
258
  break;
259
259
  }
@@ -306,6 +306,7 @@ let McpListWidget = class McpListWidget extends Disposable {
306
306
  this.browseMode = false;
307
307
  this.lastHeight = 0;
308
308
  this.lastWidth = 0;
309
+ this.lastHeaderHeight = 0;
309
310
  this._layoutDeferred = false;
310
311
  this.collapsedGroups = ( new Set());
311
312
  this.delayedFilter = ( new Delayer(200));
@@ -325,10 +326,45 @@ let McpListWidget = class McpListWidget extends Disposable {
325
326
  });
326
327
  }
327
328
  create() {
329
+ this.sectionTitleHeader = append(this.element, $(".section-title-header"));
330
+ const titleRow = append(this.sectionTitleHeader, $(".section-title-row"));
331
+ const sectionTitle = append(titleRow, $("h2.section-title"));
332
+ sectionTitle.textContent = ( localize(5650, "MCP Servers"));
333
+ const sectionTitleDescription = append(this.sectionTitleHeader, $("p.section-title-description"));
334
+ const sectionTitleDescriptionText = append(sectionTitleDescription, $("span.section-title-description-text"));
335
+ sectionTitleDescriptionText.textContent = ( localize(
336
+ 5651,
337
+ "An open standard that lets AI use external tools and services. MCP servers provide tools for file operations, databases, APIs, and more."
338
+ ));
339
+ sectionTitleDescription.appendChild(createTextNode(" "));
340
+ this.sectionLink = append(sectionTitleDescription, $("a.section-title-link"));
341
+ this.sectionLink.textContent = ( localize(5652, "Learn more about MCP servers"));
342
+ this.sectionLink.href = "https://code.visualstudio.com/docs/copilot/chat/mcp-servers";
343
+ this._register(addDisposableListener(this.sectionLink, "click", e => {
344
+ e.preventDefault();
345
+ const href = this.sectionLink.href;
346
+ if (href) {
347
+ this.openerService.open(( URI.parse(href)));
348
+ }
349
+ }));
350
+ const targetWindow = getWindow(this.element);
351
+ const headerObserver = this._register(
352
+ new DisposableResizeObserver("McpListWidget.sectionTitleHeader", () => {
353
+ if (this.lastWidth <= 0 || this.lastHeight <= 0) {
354
+ return;
355
+ }
356
+ const headerHeight = this.sectionTitleHeader.offsetHeight;
357
+ if (headerHeight === this.lastHeaderHeight) {
358
+ return;
359
+ }
360
+ this.layout(this.lastHeight, this.lastWidth);
361
+ }, targetWindow)
362
+ );
363
+ this._register(headerObserver.observe(this.sectionTitleHeader));
328
364
  this.searchAndButtonContainer = append(this.element, $(".list-search-and-button-container"));
329
365
  const searchContainer = append(this.searchAndButtonContainer, $(".list-search-container"));
330
366
  this.searchInput = this._register(( new InputBox(searchContainer, this.contextViewService, {
331
- placeholder: ( localize(5602, "Type to search...")),
367
+ placeholder: ( localize(5653, "Type to search...")),
332
368
  inputBoxStyles: defaultInputBoxStyles
333
369
  })));
334
370
  this._register(this.searchInput.onDidChange(() => {
@@ -346,7 +382,7 @@ let McpListWidget = class McpListWidget extends Disposable {
346
382
  secondary: true,
347
383
  supportIcons: true
348
384
  })));
349
- this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5603, "Browse Marketplace"))}`;
385
+ this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5654, "Browse Marketplace"))}`;
350
386
  this.browseButton.element.classList.add("list-add-button");
351
387
  this._register(this.browseButton.onDidClick(() => {
352
388
  this.toggleBrowseMode(!this.browseMode);
@@ -355,13 +391,13 @@ let McpListWidget = class McpListWidget extends Disposable {
355
391
  ...defaultButtonStyles,
356
392
  secondary: true,
357
393
  supportIcons: true,
358
- title: ( localize(5604, "Add Server")),
359
- ariaLabel: ( localize(5604, "Add Server"))
394
+ title: ( localize(5655, "Add Server")),
395
+ ariaLabel: ( localize(5655, "Add Server"))
360
396
  })));
361
397
  this.addButton.label = `$(${Codicon.add.id})`;
362
398
  this.addButton.element.classList.add("list-icon-button");
363
399
  this._register(
364
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), this.addButton.element, ( localize(5605, "Add Server")))
400
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), this.addButton.element, ( localize(5656, "Add Server")))
365
401
  );
366
402
  this._register(this.addButton.onDidClick(() => {
367
403
  this.commandService.executeCommand(McpCommandIds.AddConfiguration);
@@ -376,25 +412,9 @@ let McpListWidget = class McpListWidget extends Disposable {
376
412
  const disabledHeader = append(this.disabledContainer, $(".empty-state-header"));
377
413
  this.disabledIcon = append(disabledHeader, $(".empty-icon"));
378
414
  const disabledText = append(disabledHeader, $(".empty-text"));
379
- disabledText.textContent = ( localize(5606, "MCP servers are disabled"));
415
+ disabledText.textContent = ( localize(5657, "MCP servers are disabled"));
380
416
  this.disabledMessage = append(this.disabledContainer, $(".empty-subtext"));
381
417
  this.listContainer = append(this.element, $(".mcp-list-container"));
382
- this.sectionHeader = append(this.element, $(".section-footer"));
383
- this.sectionDescription = append(this.sectionHeader, $("p.section-footer-description"));
384
- this.sectionDescription.textContent = ( localize(
385
- 5607,
386
- "An open standard that lets AI use external tools and services. MCP servers provide tools for file operations, databases, APIs, and more."
387
- ));
388
- this.sectionLink = append(this.sectionHeader, $("a.section-footer-link"));
389
- this.sectionLink.textContent = ( localize(5608, "Learn more about MCP servers"));
390
- this.sectionLink.href = "https://code.visualstudio.com/docs/copilot/chat/mcp-servers";
391
- this._register(addDisposableListener(this.sectionLink, "click", e => {
392
- e.preventDefault();
393
- const href = this.sectionLink.href;
394
- if (href) {
395
- this.openerService.open(( URI.parse(href)));
396
- }
397
- }));
398
418
  const delegate = ( new McpServerItemDelegate());
399
419
  const groupHeaderRenderer = ( new CustomizationGroupHeaderRenderer("mcpGroupHeader", this.hoverService));
400
420
  const localRenderer = this.instantiationService.createInstance(McpServerItemRenderer);
@@ -413,17 +433,17 @@ let McpListWidget = class McpListWidget extends Disposable {
413
433
  getAriaLabel: element => {
414
434
  if (element.type === "group-header") {
415
435
  return localize(
416
- 5609,
436
+ 5658,
417
437
  "{0}, {1} items, {2}",
418
438
  element.label,
419
439
  element.count,
420
- element.collapsed ? ( localize(5610, "collapsed")) : ( localize(5611, "expanded"))
440
+ element.collapsed ? ( localize(5659, "collapsed")) : ( localize(5660, "expanded"))
421
441
  );
422
442
  }
423
443
  return element.type === "builtin-item" ? element.label : element.server.label;
424
444
  },
425
445
  getWidgetAriaLabel() {
426
- return localize(5612, "MCP Servers");
446
+ return localize(5661, "MCP Servers");
427
447
  }
428
448
  },
429
449
  openOnSingleClick: true,
@@ -485,13 +505,13 @@ let McpListWidget = class McpListWidget extends Disposable {
485
505
  this.disabledLinkListener.clear();
486
506
  if (policyLocked) {
487
507
  this.disabledMessage.textContent = ( localize(
488
- 5613,
508
+ 5662,
489
509
  "Access to MCP servers is disabled by your organization. Contact your organization administrator for more information."
490
510
  ));
491
511
  } else {
492
- this.disabledMessage.appendChild(createTextNode(( localize(5614, "MCP servers are disabled in settings. "))));
512
+ this.disabledMessage.appendChild(createTextNode(( localize(5663, "MCP servers are disabled in settings. "))));
493
513
  const link = append(this.disabledMessage, $("a.mcp-disabled-settings-link"));
494
- link.textContent = ( localize(5615, "Configure in settings."));
514
+ link.textContent = ( localize(5664, "Configure in settings."));
495
515
  link.href = "#";
496
516
  link.setAttribute("role", "button");
497
517
  this.disabledLinkListener.value = addDisposableListener(link, "click", e => {
@@ -512,7 +532,7 @@ let McpListWidget = class McpListWidget extends Disposable {
512
532
  this.searchQuery = "";
513
533
  this.addButton.element.style.display = browse ? "none" : "";
514
534
  this.browseButton.element.parentElement.style.display = browse ? "none" : "";
515
- this.searchInput.setPlaceHolder(browse ? ( localize(5616, "Search MCP marketplace...")) : ( localize(5602, "Type to search...")));
535
+ this.searchInput.setPlaceHolder(browse ? ( localize(5665, "Search MCP marketplace...")) : ( localize(5653, "Type to search...")));
516
536
  if (browse) {
517
537
  void this.queryGallery();
518
538
  } else {
@@ -529,7 +549,7 @@ let McpListWidget = class McpListWidget extends Disposable {
529
549
  const cts = this.galleryCts = ( new CancellationTokenSource());
530
550
  this.emptyContainer.style.display = "flex";
531
551
  this.listContainer.style.display = "none";
532
- this.emptyText.textContent = ( localize(5617, "Loading marketplace..."));
552
+ this.emptyText.textContent = ( localize(5666, "Loading marketplace..."));
533
553
  this.emptySubtext.textContent = "";
534
554
  try {
535
555
  const pager = await this.mcpWorkbenchService.queryGallery({
@@ -545,8 +565,8 @@ let McpListWidget = class McpListWidget extends Disposable {
545
565
  this.galleryServers = [];
546
566
  this.emptyContainer.style.display = "flex";
547
567
  this.listContainer.style.display = "none";
548
- this.emptyText.textContent = ( localize(5618, "Unable to load marketplace"));
549
- this.emptySubtext.textContent = ( localize(5619, "Check your connection and try again"));
568
+ this.emptyText.textContent = ( localize(5667, "Unable to load marketplace"));
569
+ this.emptySubtext.textContent = ( localize(5668, "Check your connection and try again"));
550
570
  }
551
571
  }
552
572
  }
@@ -555,10 +575,10 @@ let McpListWidget = class McpListWidget extends Disposable {
555
575
  this.emptyContainer.style.display = "flex";
556
576
  this.listContainer.style.display = "none";
557
577
  if (this.searchQuery.trim()) {
558
- this.emptyText.textContent = ( localize(5620, "No servers match '{0}'", this.searchQuery));
559
- this.emptySubtext.textContent = ( localize(5621, "Try a different search term"));
578
+ this.emptyText.textContent = ( localize(5669, "No servers match '{0}'", this.searchQuery));
579
+ this.emptySubtext.textContent = ( localize(5670, "Try a different search term"));
560
580
  } else {
561
- this.emptyText.textContent = ( localize(5622, "No MCP servers available"));
581
+ this.emptyText.textContent = ( localize(5671, "No MCP servers available"));
562
582
  this.emptySubtext.textContent = "";
563
583
  }
564
584
  } else {
@@ -586,11 +606,11 @@ let McpListWidget = class McpListWidget extends Disposable {
586
606
  this.emptyContainer.style.display = "flex";
587
607
  this.listContainer.style.display = "none";
588
608
  if (this.searchQuery.trim()) {
589
- this.emptyText.textContent = ( localize(5623, "No servers match '{0}'", this.searchQuery));
590
- this.emptySubtext.textContent = ( localize(5621, "Try a different search term"));
609
+ this.emptyText.textContent = ( localize(5672, "No servers match '{0}'", this.searchQuery));
610
+ this.emptySubtext.textContent = ( localize(5670, "Try a different search term"));
591
611
  } else {
592
- this.emptyText.textContent = ( localize(5624, "No MCP servers configured"));
593
- this.emptySubtext.textContent = ( localize(5625, "Add an MCP server configuration to get started"));
612
+ this.emptyText.textContent = ( localize(5673, "No MCP servers configured"));
613
+ this.emptySubtext.textContent = ( localize(5674, "Add an MCP server configuration to get started"));
594
614
  }
595
615
  } else {
596
616
  this.emptyContainer.style.display = "none";
@@ -598,19 +618,19 @@ let McpListWidget = class McpListWidget extends Disposable {
598
618
  }
599
619
  const groups = [{
600
620
  scope: LocalMcpServerScope.Workspace,
601
- label: ( localize(5626, "Workspace")),
621
+ label: ( localize(5675, "Workspace")),
602
622
  icon: workspaceIcon,
603
623
  description: ( localize(
604
- 5627,
624
+ 5676,
605
625
  "MCP servers configured in your workspace settings, shared with your team via version control."
606
626
  )),
607
627
  servers: []
608
628
  }, {
609
629
  scope: LocalMcpServerScope.User,
610
- label: ( localize(5628, "User")),
630
+ label: ( localize(5677, "User")),
611
631
  icon: userIcon,
612
632
  description: ( localize(
613
- 5629,
633
+ 5678,
614
634
  "MCP servers configured in your user settings. Private to you and available across all projects."
615
635
  )),
616
636
  servers: []
@@ -671,11 +691,11 @@ let McpListWidget = class McpListWidget extends Disposable {
671
691
  type: "group-header",
672
692
  id: "mcp-group-plugin",
673
693
  scope: "plugin",
674
- label: ( localize(5630, "Plugins")),
694
+ label: ( localize(5679, "Plugins")),
675
695
  icon: pluginIcon,
676
696
  count: pluginServers.length,
677
697
  isFirst,
678
- description: ( localize(5631, "MCP servers provided by installed plugins.")),
698
+ description: ( localize(5680, "MCP servers provided by installed plugins.")),
679
699
  collapsed
680
700
  });
681
701
  if (!collapsed) {
@@ -697,11 +717,11 @@ let McpListWidget = class McpListWidget extends Disposable {
697
717
  type: "group-header",
698
718
  id: "mcp-group-extension",
699
719
  scope: "extension",
700
- label: ( localize(5632, "Extensions")),
720
+ label: ( localize(5681, "Extensions")),
701
721
  icon: extensionIcon,
702
722
  count: extensionServers.length,
703
723
  isFirst,
704
- description: ( localize(5633, "MCP servers contributed by installed VS Code extensions.")),
724
+ description: ( localize(5682, "MCP servers contributed by installed VS Code extensions.")),
705
725
  collapsed
706
726
  });
707
727
  if (!collapsed) {
@@ -723,11 +743,11 @@ let McpListWidget = class McpListWidget extends Disposable {
723
743
  type: "group-header",
724
744
  id: "mcp-group-builtin",
725
745
  scope: "builtin",
726
- label: ( localize(5634, "Built-in")),
746
+ label: ( localize(5683, "Built-in")),
727
747
  icon: builtinIcon,
728
748
  count: otherBuiltinServers.length,
729
749
  isFirst,
730
- description: ( localize(5635, "MCP servers built into VS Code. These are available automatically.")),
750
+ description: ( localize(5684, "MCP servers built into VS Code. These are available automatically.")),
731
751
  collapsed
732
752
  });
733
753
  if (!collapsed) {
@@ -762,9 +782,6 @@ let McpListWidget = class McpListWidget extends Disposable {
762
782
  }
763
783
  this.filterServers();
764
784
  }
765
- prependToSearchRow(element) {
766
- this.searchAndButtonContainer.insertBefore(element, this.searchAndButtonContainer.firstChild);
767
- }
768
785
  isInBrowseMode() {
769
786
  return this.browseMode;
770
787
  }
@@ -789,8 +806,9 @@ let McpListWidget = class McpListWidget extends Disposable {
789
806
  });
790
807
  return;
791
808
  }
792
- const footerHeight = this.sectionHeader.offsetHeight;
793
- const listHeight = Math.max(0, height - searchBarHeight - footerHeight);
809
+ const headerHeight = this.sectionTitleHeader.offsetHeight;
810
+ this.lastHeaderHeight = headerHeight;
811
+ const listHeight = Math.max(0, height - searchBarHeight - headerHeight);
794
812
  this.listContainer.style.height = `${listHeight}px`;
795
813
  this.list.layout(listHeight, width);
796
814
  }
@@ -824,7 +842,7 @@ let McpListWidget = class McpListWidget extends Disposable {
824
842
  return;
825
843
  }
826
844
  const disposables = ( new DisposableStore());
827
- const showPluginAction = disposables.add(( new Action("mcpServer.showPlugin", ( localize(5636, "Show Plugin")), undefined, true, async () => {
845
+ const showPluginAction = disposables.add(( new Action("mcpServer.showPlugin", ( localize(5685, "Show Plugin")), undefined, true, async () => {
828
846
  const item = {
829
847
  kind: AgentPluginItemKind.Installed,
830
848
  name: plugin.label,
@@ -834,14 +852,14 @@ let McpListWidget = class McpListWidget extends Disposable {
834
852
  };
835
853
  this._onDidRequestShowPlugin.fire(item);
836
854
  })));
837
- const uninstallAction = disposables.add(( new Action("mcpServer.uninstallPlugin", ( localize(5637, "Uninstall Plugin")), undefined, true, async () => {
855
+ const uninstallAction = disposables.add(( new Action("mcpServer.uninstallPlugin", ( localize(5686, "Uninstall Plugin")), undefined, true, async () => {
838
856
  const result = await this.dialogService.confirm({
839
- message: ( localize(5638, "This MCP server is provided by the plugin '{0}'", plugin.label)),
857
+ message: ( localize(5687, "This MCP server is provided by the plugin '{0}'", plugin.label)),
840
858
  detail: ( localize(
841
- 5639,
859
+ 5688,
842
860
  "Individual MCP servers from a plugin cannot be removed separately. Would you like to uninstall the entire plugin?"
843
861
  )),
844
- primaryButton: ( localize(5640, "Uninstall Plugin")),
862
+ primaryButton: ( localize(5689, "Uninstall Plugin")),
845
863
  type: "question"
846
864
  });
847
865
  if (result.confirmed) {
@@ -32,8 +32,6 @@
32
32
  align-items: center;
33
33
  gap: 4px;
34
34
  padding: 2px 0 6px;
35
- margin-bottom: 6px;
36
- border-bottom: 1px solid var(--vscode-sideBarSectionHeader-border, var(--vscode-panel-border, var(--vscode-widget-border, transparent)));
37
35
  }
38
36
 
39
37
  .ai-customization-management-editor .sidebar-home-button {
@@ -253,7 +251,7 @@
253
251
  align-items: center;
254
252
  gap: 8px;
255
253
  flex-shrink: 0;
256
- padding: 6px 2px;
254
+ padding: 12px 2px;
257
255
  }
258
256
 
259
257
  .ai-customization-list-widget .list-search-container,
@@ -358,6 +356,8 @@
358
356
  justify-content: center;
359
357
  font-size: 12px;
360
358
  opacity: 0.7;
359
+ order: 10;
360
+ margin-left: auto;
361
361
  }
362
362
 
363
363
  .ai-customization-group-header .group-icon {
@@ -365,7 +365,6 @@
365
365
  }
366
366
 
367
367
  .ai-customization-group-header .group-label-group {
368
- flex: 1;
369
368
  display: flex;
370
369
  align-items: center;
371
370
  gap: 4px;
@@ -376,7 +375,6 @@
376
375
  .ai-customization-group-header .group-label {
377
376
  font-weight: 500;
378
377
  text-transform: capitalize;
379
- letter-spacing: 0.04em;
380
378
  color: var(--vscode-sideBarSectionHeader-foreground, var(--vscode-foreground));
381
379
  overflow: hidden;
382
380
  text-overflow: ellipsis;
@@ -388,7 +386,6 @@
388
386
  font-size: 10px;
389
387
  font-weight: 500;
390
388
  color: var(--vscode-descriptionForeground);
391
- border-radius: 8px;
392
389
  min-width: 14px;
393
390
  text-align: center;
394
391
  line-height: 16px;
@@ -423,7 +420,7 @@
423
420
  .ai-customization-list-item {
424
421
  display: flex;
425
422
  align-items: flex-start;
426
- padding: 6px 8px 6px 24px;
423
+ padding: 6px 8px 6px 30px;
427
424
  cursor: pointer;
428
425
  border-radius: 4px;
429
426
  min-height: 32px;
@@ -479,7 +476,7 @@
479
476
  opacity: 0.6;
480
477
  }
481
478
 
482
- /* Shared inline badge style — used for item badges */
479
+ /* Shared inline badge style — used by MCP "Bridged" badge and item badges */
483
480
  .inline-badge {
484
481
  flex-shrink: 0;
485
482
  font-size: 10px;
@@ -510,7 +507,7 @@
510
507
  margin-right: 4px;
511
508
  }
512
509
 
513
- /* MCP server name row — inline layout for the server name */
510
+ /* MCP bridged badgeshown inline next to the server name */
514
511
  .mcp-server-item .mcp-server-name-row {
515
512
  display: flex;
516
513
  align-items: center;
@@ -518,14 +515,7 @@
518
515
  }
519
516
 
520
517
  .ai-customization-list-item .item-type-icon {
521
- flex-shrink: 0;
522
- width: 16px;
523
- height: 16px;
524
- display: flex;
525
- align-items: center;
526
- justify-content: center;
527
- opacity: 0.8;
528
- font-size: 14px;
518
+ display: none;
529
519
  }
530
520
 
531
521
  .ai-customization-list-item .item-text {
@@ -578,7 +568,7 @@
578
568
 
579
569
  .ai-customization-list-item:hover .item-right,
580
570
  .ai-customization-list-item:focus-within .item-right,
581
- .monaco-list-row.focused .item-right {
571
+ .monaco-list-row.focused .ai-customization-list-item .item-right {
582
572
  opacity: 1;
583
573
  }
584
574
 
@@ -588,6 +578,74 @@
588
578
  color: var(--vscode-list-highlightForeground);
589
579
  }
590
580
 
581
+ /* Section title header at top of list widget (shared by all list widgets) */
582
+ .ai-customization-list-widget .section-title-header,
583
+ .mcp-list-widget .section-title-header {
584
+ flex-shrink: 0;
585
+ padding: 4px 4px 32px 4px;
586
+ border-bottom: 1px solid var(--vscode-panel-border);
587
+ }
588
+
589
+ .ai-customization-list-widget .section-title-header .section-title-row,
590
+ .mcp-list-widget .section-title-header .section-title-row {
591
+ display: flex;
592
+ align-items: center;
593
+ gap: 6px;
594
+ margin: 0 0 6px 0;
595
+ }
596
+
597
+ .ai-customization-list-widget .section-title-header .section-title-back-slot,
598
+ .mcp-list-widget .section-title-header .section-title-back-slot {
599
+ display: flex;
600
+ align-items: center;
601
+ }
602
+
603
+ .ai-customization-list-widget .section-title-header .section-title-back-slot:empty,
604
+ .mcp-list-widget .section-title-header .section-title-back-slot:empty {
605
+ display: none;
606
+ }
607
+
608
+ .ai-customization-list-widget .section-title-header .section-title,
609
+ .mcp-list-widget .section-title-header .section-title {
610
+ font-size: 22px;
611
+ font-weight: 600;
612
+ line-height: 1.2;
613
+ margin: 0;
614
+ color: var(--vscode-foreground);
615
+ }
616
+
617
+ .ai-customization-list-widget .section-title-header .section-title-description,
618
+ .mcp-list-widget .section-title-header .section-title-description {
619
+ font-size: 13px;
620
+ line-height: 1.45;
621
+ color: var(--vscode-descriptionForeground);
622
+ margin: 0 0 8px 0;
623
+ /* Reserve space for ~2 lines so the header height is stable across sections. */
624
+ /* Rounded up to a whole pixel so naturally-wrapped 2-line descriptions and */
625
+ /* shorter 1-line descriptions render at the same height instead of differing */
626
+ /* by a sub-pixel rounding. */
627
+ min-height: 38px;
628
+ }
629
+
630
+ .ai-customization-list-widget .section-title-header .section-title-link,
631
+ .mcp-list-widget .section-title-header .section-title-link {
632
+ font-size: 13px;
633
+ /* Match the description's line-height so the link's inline-flex line-box */
634
+ /* does not change the total header height between sections. */
635
+ line-height: 1.45;
636
+ color: var(--vscode-textLink-foreground);
637
+ text-decoration: none;
638
+ cursor: pointer;
639
+ display: inline-flex;
640
+ align-items: center;
641
+ gap: 4px;
642
+ }
643
+
644
+ .ai-customization-list-widget .section-title-header .section-title-link:hover,
645
+ .mcp-list-widget .section-title-header .section-title-link:hover {
646
+ text-decoration: underline;
647
+ }
648
+
591
649
  /* Section footer at bottom of list widget */
592
650
  .ai-customization-list-widget .section-footer {
593
651
  flex-shrink: 0;
@@ -850,34 +908,6 @@
850
908
  overflow: hidden;
851
909
  }
852
910
 
853
- .mcp-list-widget .section-footer {
854
- flex-shrink: 0;
855
- padding: 12px 4px 6px 4px;
856
- border-top: 1px solid var(--vscode-widget-border);
857
- }
858
-
859
- .mcp-list-widget .section-footer .section-footer-description {
860
- font-size: 13px;
861
- color: var(--vscode-descriptionForeground);
862
- line-height: 1.5;
863
- margin: 0 0 8px 0;
864
- }
865
-
866
- .mcp-list-widget .section-footer .section-footer-link {
867
- font-size: 13px;
868
- color: var(--vscode-textLink-foreground);
869
- text-decoration: none;
870
- cursor: pointer;
871
- display: inline-flex;
872
- align-items: center;
873
- gap: 4px;
874
- }
875
-
876
- .mcp-list-widget .section-footer .section-footer-link:hover {
877
- text-decoration: underline;
878
- color: var(--vscode-textLink-activeForeground);
879
- }
880
-
881
911
  .mcp-list-widget .mcp-list-container {
882
912
  flex: 1;
883
913
  min-height: 0;
@@ -990,7 +1020,7 @@
990
1020
  .mcp-server-item {
991
1021
  display: flex;
992
1022
  align-items: center;
993
- padding: 6px 8px;
1023
+ padding: 6px 8px 6px 30px;
994
1024
  cursor: pointer;
995
1025
  border-radius: 4px;
996
1026
  min-height: 32px;
@@ -1007,13 +1037,7 @@
1007
1037
  }
1008
1038
 
1009
1039
  .mcp-server-item .mcp-server-icon {
1010
- flex-shrink: 0;
1011
- width: 24px;
1012
- height: 24px;
1013
- display: flex;
1014
- align-items: center;
1015
- justify-content: center;
1016
- opacity: 0.8;
1040
+ display: none;
1017
1041
  }
1018
1042
 
1019
1043
  .mcp-server-item .mcp-server-details {
@@ -1083,8 +1107,10 @@
1083
1107
  display: flex;
1084
1108
  gap: 4px;
1085
1109
  flex-shrink: 0;
1086
- /* Reserve space so focused button outlines do not clip against the widget's overflow:hidden */
1087
- padding: 1px;
1110
+ /* Horizontal-only padding so focused button outlines do not clip against */
1111
+ /* the widget's overflow:hidden. Vertical padding is omitted so the button */
1112
+ /* group does not make the search row taller than on other sections. */
1113
+ padding: 0 1px;
1088
1114
  }
1089
1115
 
1090
1116
  .mcp-list-widget .list-button-group .monaco-button:focus-visible {